{"version":3,"file":"static/js/main.09ccf1e6.js","mappings":"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I,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,IAAK,GAAGp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp4C,OAAOo4C,EAAI,GAAI,KAAKp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,eACE,+EAEF,oBAAmC,kCACnC,mBAAkC,iCAClC,4BACE,uEACF,wBACE,wDACF,wBACE,6GAEF,wCACE,0LAGF,6BACE,+FAEF,kCACE,wDACF,uBACE,0DACF,yBACE,gKAGF,sBAAkC,+BAClC,0BACE,mFACF,iBAAgC,sCAChC,yBACE,sIAEF,iBACE,qEACF,qBACE,sLAGF,qBAAoC,sCACpC,4BACE,wLAGF,uBACE,uDACF,gCACE,gOAIF,uBACE,wEACF,8BACE,4FACF,gBAA+B,wCAC/B,0BACE,qEACF,kBACE,sEACF,oBACE,kDACF,qBACE,4DACF,0BACE,+KAEF,+BACE,iFACF,yBACE,uGAEF,0BACE,0FAEF,sBACE,+IAEF,sBACE,2GAEF,iBACE,gEACF,2BACE,oFACF,uBACE,gPAIF,sBACE,wCACF,0BACE,4GAEF,iBACE,6KAEF,0BACE,2EACF,oBACE,4CACF,gBACE,4DACF,2BACE,2FACF,8BACE,8HAEF,yBACE,gIAEF,4BACE,6EACF,uBACE,kDACF,uBAAsC,sCACtC,wBACE,oEACF,2BACE,oKAGF,mBAAkC,wCAClC,4BACE,2CACF,+BACE,mEACF,uBACE,wEACF,0BACE,uEACF,cACE,iDACF,8BACE,2EACF,6BACE,yEACF,2CACE,wJAGF,yBACE,kGACF,gBAA+B,sCAC/B,mBACE,6DACF,YACE,0GAEF,wBACE,yJAGF,8CACE,kLAGF,gBACE,4FACF,uBACE,yEACF,0BACE,kEACF,iBACE,4DACF,6BACE,2EACF,6BACE,mDACF,sBACE,6DACF,+BACE,yDACF,uCACE,4EACF,qBACE,sEACF,QAAyB,+BACzB,qBACE,yEACF,oBACE,0FAEF,4BACE,2GAEF,2BACE,sHACF,+BACE,2EACF,+BACE,6DACF,mBACE,2CACF,iBACE,wEACF,iBACE,4FAEF,gBACE,0DACF,gBACE,+EACF,kBAAiC,GACjC,gBACE,kDACF,0BACE,+EACF,sBACE,oOAIF,0BACE,sEACF,0BACE,sEACF,2BACE,uEACF,wBACE,oEACF,sBACE,4EACF,4BACE,wEACF,mBAAkC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T,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,UAAW,QACX,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACTU,GAAI,KACJC,GAAI,KACJ,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,Q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CT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MA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AAEjmC,EAAE,GAAG4nD,IAAI,CAAC,EAAE,IAAIA,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE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AmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,iEAAiE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,kEAAkE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,mEAAmE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,oEAAoE,CAAC,mEAAmE,sEAAsE,EAAE,CAAC,GAAG,IAAI,CAAC,SAASzjF,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEzkC,EAAE4nD,EAAEtxE,EAAE,SAAS/N,EAAE+N,EAAE,uBAAuBnP,EAAEmP,EAAE,6BAA6BmuD,EAAEq2U,OAAOvyY,EAAEk8D,EAAE5B,QAAQ17D,EAAE07D,QAAQ4B,EAAE2lmB,MAAMjjqB,EAAEijqB,MAAM3lmB,EAAEk0E,MAAMxxI,EAAEwxI,MAAMl0E,EAAEm3jB,OAAOz0nB,EAAEy0nB,OAAOn3jB,EAAEi+lB,OAAO,SAASpspB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,GAAGykC,EAAE,GAAGwB,EAAE,EAAE2hB,EAAEtxE,EAAEu6E,QAAQjJ,EAAE6hkB,KAAK,IAAI,GAAG,CAAC,IAAIlhpB,EAAE,GAAGq/E,EAAE0hkB,QAAQ,CAAC,IAAInipB,EAAEygF,EAAE67jB,MAAMh/kB,EAAE,GAAGl8D,EAAEpB,GAAGs9D,GAAG,GAAG,GAAGA,GAAG,GAAGt9D,EAAEA,EAAEygF,EAAE8gkB,MAAMngpB,EAAE,MAAMA,EAAE,EAAEy3B,EAAEp0B,KAAKrD,GAAG,IAAI,IAAIymE,EAAE,IAAI4Y,EAAE6hkB,KAAK,IAAI,IAAI7hkB,EAAE67jB,MAAMh/kB,EAAE,GAAGwB,EAAE,EAAE,EAAE4H,EAAE,EAAEA,EAAEmB,EAAEnB,IAAI7tC,EAAEp0B,KAAK,GAAGg8E,EAAE87jB,OAAO10kB,EAAE,CAAC,OAAOhvC,CAAC,EAAEykC,EAAEk+lB,OAAO,SAASrspB,EAAE2vD,GAAG,IAAIjmC,EAAE,CAAC,GAAG,IAAI1pB,EAAEA,EAAEu6E,QAAQ5qB,EAAEA,EAAE4qB,QAAQ,IAAI,IAAIpsB,EAAE,EAAEmjB,EAAE,EAAEtxE,EAAEmzoB,MAAMhllB,GAAG,GAAGwB,EAAEwjlB,MAAM7hkB,GAAG,GAAG,CAAC,IAAIr/E,EAAEpB,EAAE6nE,EAAEnB,EAAEv3D,EAAEmtoB,MAAM,GAAGh/kB,EAAE,EAAEh+C,EAAEw/C,EAAEw9kB,MAAM,GAAG77jB,EAAE,EAAK,IAAI/Z,IAAIA,GAAG,GAAG,IAAIpnD,IAAIA,GAAG,GAAYle,EAAT,IAAI,EAAEslE,GAAK,EAAS,KAAKmB,EAAE14D,EAAEmtoB,MAAM,GAAGh/kB,EAAE,IAAI,IAAIuK,GAAG,IAAIvoD,EAAEonD,GAAGA,EAAK7tC,EAAE,GAAGp0B,KAAKrD,GAAYpB,EAAT,IAAI,EAAEsf,GAAK,EAAS,KAAKuoD,EAAE/I,EAAEw9kB,MAAM,GAAG77jB,EAAE,IAAI,IAAI5Y,GAAG,IAAInB,EAAEpnD,GAAGA,EAAEuZ,EAAE,GAAGp0B,KAAKzE,GAAG,EAAEs9D,IAAIl8D,EAAE,IAAIk8D,EAAE,EAAEA,GAAG,EAAEmjB,IAAIzgF,EAAE,IAAIygF,EAAE,EAAEA,GAAGtxE,EAAEotoB,OAAO,GAAGz9kB,EAAEy9kB,OAAO,EAAE,CAAC,OAAO1jnB,CAAC,EAAEykC,EAAEglmB,eAAe,SAASnzpB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,IAAIwB,EAAE3vD,EAAE8mD,UAAU6I,GAAG,WAAW,YAAO,IAAS4K,KAAKpM,GAAGoM,KAAKpM,GAAGoM,KAAKpM,GAAGzkC,EAAEqsC,KAAKwE,KAAK,CAAC,EAAEpM,EAAEikmB,WAAW,SAASpypB,GAAG,MAAM,iBAAiBA,EAAEmuD,EAAE5B,QAAQvsD,EAAE,OAAOA,CAAC,EAAEmuD,EAAE2kmB,UAAU,SAAS9ypB,GAAG,OAAO,IAAIsxE,EAAEtxE,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC,QAAQ,IAAI,sBAAsB,IAAI,4BAA4B,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,CAAClnD,MAAM,kBAAkBnO,IAAI,iBAAiB21lB,WAAU,EAAGC,WAAW,kGAAkGC,UAAU,YAAYC,iBAAiB,CAAC,EAAEC,WAAW,CAAChjqB,KAAK,QAAQyyQ,UAAS,EAAGjsM,IAAI,kBAAkBtlE,KAAK,WAAW+hqB,YAAY,WAAWC,QAAQ,SAASC,SAAS,KAAKC,UAAU,UAAUC,YAAY,CAAC,mBAAmB,gBAAgBC,UAAU,2DAA2DC,QAAQ,2CAA2CC,MAAM,kBAAkBC,OAAO,sDAAsDC,OAAO,CAACxiqB,KAAK,gBAAgB6Q,MAAM,qBAAqB4xpB,KAAK,CAACnxpB,IAAI,8CAA8CoxpB,oBAAmB,EAAGC,aAAa,CAAC,QAAQ,SAAS7I,QAAQ,SAAS,UAAU,SAAS,YAAY,SAASvoG,SAAS,SAAS,sBAAsB,SAAS,4BAA4B,UAAUqxG,YAAW,EAAGr7oB,YAAY,kBAAkBs7oB,gBAAgB,CAACC,KAAK,SAASC,UAAU,UAAUC,MAAM,SAAS,mBAAmB,SAAS,YAAY,SAAS,wBAAwB,SAAS,qBAAqB,SAAS,uBAAuB,SAAS,uBAAuB,SAAS,kBAAkB,SAASC,SAAS,SAASC,KAAK,SAASC,OAAO,SAASC,MAAM,UAAUC,MAAM,CAAC,OAAOC,SAAS,sCAAsC3uC,SAAS,CAAC,KAAK,WAAW,QAAQ,gBAAgB4uC,QAAQ,MAAMjpgB,KAAK,kBAAkBt6J,KAAK,WAAWwjqB,WAAW,CAAC1kqB,KAAK,MAAMwS,IAAI,iDAAiDmypB,QAAQ,CAACP,KAAK,yEAAyEC,OAAO,yEAAyEO,KAAK,iCAAiCpopB,KAAK,+BAA+BukE,KAAK,qDAAqDvS,QAAQ,+BAA+BA,QAAQ,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS3/D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE55C,OAAOiN,QAAQ,SAASxhB,GAAG,IAAI2vD,EAAE,WAAW,EAAE,OAAOA,EAAE7I,UAAU9mD,EAAE,IAAI2vD,CAAC,EAAE2hB,EAAE/8D,OAAOs+B,MAAM,SAAS7yC,GAAG,IAAI2vD,EAAE,GAAG,IAAI,IAAIjmC,KAAK1pB,EAAEuU,OAAOuyC,UAAUujE,eAAet0D,KAAK/1D,EAAE0pB,IAAIimC,EAAEr6D,KAAKo0B,GAAG,OAAOA,CAAC,EAAEz3B,EAAEk+H,SAASrpE,UAAUkmJ,MAAM,SAAShtM,GAAG,IAAI2vD,EAAE4K,KAAK,OAAO,WAAW,OAAO5K,EAAE1S,MAAMj9C,EAAE0jE,UAAU,CAAC,EAAE,SAAS7yE,IAAI0pE,KAAK6+T,SAAS7kX,OAAOuyC,UAAUujE,eAAet0D,KAAKwE,KAAK,aAAaA,KAAK6+T,QAAQjrU,EAAE,MAAMoM,KAAKy7lB,aAAa,GAAGz7lB,KAAK07lB,cAAc17lB,KAAK07lB,oBAAe,CAAM,CAACtmmB,EAAE8jE,QAAQ5iI,EAAEA,EAAEq/nB,aAAar/nB,EAAEA,EAAEi2D,UAAUsyU,aAAQ,EAAOvoY,EAAEi2D,UAAUmvmB,mBAAc,EAAO,IAAIv9lB,EAAEnB,EAAE,GAAG,IAAI,IAAIpnD,EAAE,CAAC,EAAEoE,OAAOo6E,gBAAgBp6E,OAAOo6E,eAAex+E,EAAE,IAAI,CAACte,MAAM,IAAI6mE,EAAE,IAAIvoD,EAAEvf,CAAC,CAAC,MAAMoP,GAAG04D,GAAE,CAAE,CAAC,SAASqH,EAAE//D,GAAG,YAAO,IAASA,EAAEi2pB,cAAcplqB,EAAEqlqB,oBAAoBl2pB,EAAEi2pB,aAAa,CAAof,SAASnrlB,EAAE9qE,EAAE2vD,EAAEjmC,EAAE4nD,GAAG,IAAIr/E,EAAEpB,EAAE6nE,EAAE,GAAG,mBAAmBhvC,EAAE,MAAM,IAAI6hG,UAAU,0CAA0C,IAAI16H,EAAEmP,EAAEo5X,UAAUvoY,EAAEslqB,cAAcn2pB,EAAE47mB,KAAK,cAAcjsjB,EAAEjmC,EAAEkmF,SAASlmF,EAAEkmF,SAASlmF,GAAG74B,EAAEmP,EAAEo5X,SAAS1gU,EAAE7nE,EAAE8+D,KAAK9+D,EAAEmP,EAAEo5X,QAAQjrU,EAAE,MAAMnuD,EAAEg2pB,aAAa,GAAGt9lB,GAAG,GAAG,mBAAmBA,EAAEA,EAAE7nE,EAAE8+D,GAAG2hB,EAAE,CAAC5nD,EAAEgvC,GAAG,CAACA,EAAEhvC,GAAG4nD,EAAE5Y,EAAEhnE,QAAQg4B,GAAGgvC,EAAEpjE,KAAKo0B,IAAIgvC,EAAE09lB,SAASnkqB,EAAE8tE,EAAE//D,KAAK/N,EAAE,GAAGymE,EAAExmE,OAAOD,EAAE,CAACymE,EAAE09lB,QAAO,EAAG,IAAI7+lB,EAAE,IAAInpD,MAAM,+CAA+CsqD,EAAExmE,OAAO,KAAKwwB,OAAOitC,GAAG,uEAAuE4H,EAAEllE,KAAK,8BAA8BklE,EAAEkjV,QAAQz6Y,EAAEu3D,EAAEpmE,KAAKw+D,EAAE4H,EAAEvvC,MAAM0wC,EAAExmE,OAAO,YAAY,oBAAoB7F,QAAQ,YAAYyunB,SAASzunB,WAAWA,QAAQs+D,MAAMt+D,QAAQs+D,KAAK,SAAS4M,EAAEllE,KAAKklE,EAAEr5D,QAAQ,OAAOw6D,EAAE7nE,EAAE8+D,GAAGjmC,IAAI1pB,EAAEg2pB,aAAa,OAAOh2pB,CAAC,CAAC,SAASlP,IAAI,IAAIypE,KAAK0mU,MAAM,OAAO1mU,KAAK3oE,OAAOygZ,eAAe93U,KAAKppE,KAAKopE,KAAK87lB,QAAQ97lB,KAAK0mU,OAAM,EAAGv9T,UAAUxxE,QAAQ,KAAK,EAAE,OAAOqoE,KAAKq1C,SAAS75C,KAAKwE,KAAK3oE,QAAQ,KAAK,EAAE,OAAO2oE,KAAKq1C,SAAS75C,KAAKwE,KAAK3oE,OAAO8xE,UAAU,IAAI,KAAK,EAAE,OAAOnJ,KAAKq1C,SAAS75C,KAAKwE,KAAK3oE,OAAO8xE,UAAU,GAAGA,UAAU,IAAI,KAAK,EAAE,OAAOnJ,KAAKq1C,SAAS75C,KAAKwE,KAAK3oE,OAAO8xE,UAAU,GAAGA,UAAU,GAAGA,UAAU,IAAI,QAAQ,IAAI,IAAI1jE,EAAE,IAAI4pD,MAAM8Z,UAAUxxE,QAAQy9D,EAAE,EAAEA,EAAE3vD,EAAE9N,SAASy9D,EAAE3vD,EAAE2vD,GAAG+T,UAAU/T,GAAG4K,KAAKq1C,SAAS3yD,MAAMsd,KAAK3oE,OAAOoO,GAAG,CAAC,SAASysD,EAAEzsD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,CAAC8yU,OAAM,EAAGo1R,YAAO,EAAOzkqB,OAAOoO,EAAE7O,KAAKw+D,EAAEigD,SAASlmF,GAAG4nD,EAAEr/E,EAAE8jE,KAAKjlE,EAAEq9D,GAAG,OAAOmjB,EAAEs+B,SAASlmF,EAAEykC,EAAEkomB,OAAO/klB,EAAEA,CAAC,CAAC,SAASjU,EAAEr9D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAEo5X,QAAQ,IAAIjrU,EAAE,MAAM,GAAG,IAAImjB,EAAEnjB,EAAEwB,GAAG,OAAO2hB,EAAE,mBAAmBA,EAAE5nD,EAAE,CAAC4nD,EAAEs+B,UAAUt+B,GAAG,CAACA,GAAG5nD,EAAE,SAAS1pB,GAAG,IAAI,IAAI2vD,EAAE,IAAI/F,MAAM5pD,EAAE9N,QAAQw3B,EAAE,EAAEA,EAAEimC,EAAEz9D,SAASw3B,EAAEimC,EAAEjmC,GAAG1pB,EAAE0pB,GAAGkmF,UAAU5vG,EAAE0pB,GAAG,OAAOimC,CAAC,CAA9F,CAAgG2hB,GAAGsf,EAAEtf,EAAEA,EAAEp/E,QAAQ,EAAE,CAAC,SAASsnU,EAAEx5T,GAAG,IAAI2vD,EAAE4K,KAAK6+T,QAAQ,GAAGzpU,EAAE,CAAC,IAAIjmC,EAAEimC,EAAE3vD,GAAG,GAAG,mBAAmB0pB,EAAE,OAAO,EAAE,GAAGA,EAAE,OAAOA,EAAEx3B,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS0+F,EAAE5wF,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,IAAIkgC,MAAM+F,GAAGxB,EAAE,EAAEA,EAAEwB,IAAIxB,EAAEzkC,EAAEykC,GAAGnuD,EAAEmuD,GAAG,OAAOzkC,CAAC,CAACgvC,EAAEnkD,OAAOo6E,eAAe99F,EAAE,sBAAsB,CAACy9F,YAAW,EAAGrzB,IAAI,WAAW,OAAO1D,CAAC,EAAE8L,IAAI,SAASrjE,GAAG,GAAG,iBAAiBA,GAAGA,EAAE,GAAGA,GAAGA,EAAE,MAAM,IAAIurH,UAAU,mDAAmDh0D,EAAEv3D,CAAC,IAAInP,EAAEqlqB,oBAAoB3+lB,EAAE1mE,EAAEi2D,UAAUwvmB,gBAAgB,SAASt2pB,GAAG,GAAG,iBAAiBA,GAAGA,EAAE,GAAGy0D,MAAMz0D,GAAG,MAAM,IAAIurH,UAAU,0CAA0C,OAAOhxD,KAAK07lB,cAAcj2pB,EAAEu6D,IAAI,EAAE1pE,EAAEi2D,UAAUyvmB,gBAAgB,WAAW,OAAOx2lB,EAAExF,KAAK,EAAE1pE,EAAEi2D,UAAU80jB,KAAK,SAAS57mB,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,EAAE,UAAU14D,EAAE,GAAGnP,EAAE0pE,KAAK6+T,QAAQ1gU,EAAEA,GAAG,MAAM7nE,EAAEpD,WAAW,IAAIirE,EAAE,OAAM,EAAG,GAAGA,EAAE,CAAC,GAAGgL,UAAUxxE,OAAO,IAAIy9D,EAAE+T,UAAU,IAAI/T,aAAavhD,MAAM,MAAMuhD,EAAE,IAAI4H,EAAE,IAAInpD,MAAM,6BAA6BuhD,EAAE,KAAK,MAAM4H,EAAEmC,QAAQ/J,EAAE4H,CAAC,CAAC,KAAK7tC,EAAE74B,EAAEmP,IAAI,OAAM,EAAG,IAAImQ,EAAE,mBAAmBuZ,EAAE,OAAOykC,EAAEuV,UAAUxxE,QAAQ,KAAK,GAAnjG,SAAW8N,EAAE2vD,EAAEjmC,GAAG,GAAGimC,EAAE3vD,EAAE+1D,KAAKrsC,QAAQ,IAAI,IAAIykC,EAAEnuD,EAAE9N,OAAOo/E,EAAEsf,EAAE5wF,EAAEmuD,GAAGl8D,EAAE,EAAEA,EAAEk8D,IAAIl8D,EAAEq/E,EAAEr/E,GAAG8jE,KAAKrsC,EAAE,CAA29F6jC,CAAE7jC,EAAEvZ,EAAEoqD,MAAM,MAAM,KAAK,GAAj/F,SAAWv6D,EAAE2vD,EAAEjmC,EAAEykC,GAAG,GAAGwB,EAAE3vD,EAAE+1D,KAAKrsC,EAAEykC,QAAQ,IAAI,IAAImjB,EAAEtxE,EAAE9N,OAAOD,EAAE2+F,EAAE5wF,EAAEsxE,GAAGzgF,EAAE,EAAEA,EAAEygF,IAAIzgF,EAAEoB,EAAEpB,GAAGklE,KAAKrsC,EAAEykC,EAAE,CAAm5F4O,CAAErzC,EAAEvZ,EAAEoqD,KAAKmJ,UAAU,IAAI,MAAM,KAAK,GAAt7F,SAAW1jE,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,GAAG3hB,EAAE3vD,EAAE+1D,KAAKrsC,EAAEykC,EAAEmjB,QAAQ,IAAI,IAAIr/E,EAAE+N,EAAE9N,OAAOrB,EAAE+/F,EAAE5wF,EAAE/N,GAAGymE,EAAE,EAAEA,EAAEzmE,IAAIymE,EAAE7nE,EAAE6nE,GAAG3C,KAAKrsC,EAAEykC,EAAEmjB,EAAE,CAAk1Fna,CAAEztC,EAAEvZ,EAAEoqD,KAAKmJ,UAAU,GAAGA,UAAU,IAAI,MAAM,KAAK,GAAl4F,SAAW1jE,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,GAAG09D,EAAE3vD,EAAE+1D,KAAKrsC,EAAEykC,EAAEmjB,EAAEr/E,QAAQ,IAAI,IAAIpB,EAAEmP,EAAE9N,OAAOwmE,EAAEk4B,EAAE5wF,EAAEnP,GAAG0mE,EAAE,EAAEA,EAAE1mE,IAAI0mE,EAAEmB,EAAEnB,GAAGxB,KAAKrsC,EAAEykC,EAAEmjB,EAAEr/E,EAAE,CAAwxFq8D,CAAE5kC,EAAEvZ,EAAEoqD,KAAKmJ,UAAU,GAAGA,UAAU,GAAGA,UAAU,IAAI,MAAM,QAAQ,IAAI4N,EAAE,IAAI1nB,MAAMuE,EAAE,GAAGl8D,EAAE,EAAEA,EAAEk8D,EAAEl8D,IAAIq/E,EAAEr/E,EAAE,GAAGyxE,UAAUzxE,IAA14F,SAAW+N,EAAE2vD,EAAEjmC,EAAEykC,GAAG,GAAGwB,EAAE3vD,EAAEi9C,MAAMvzB,EAAEykC,QAAQ,IAAI,IAAImjB,EAAEtxE,EAAE9N,OAAOD,EAAE2+F,EAAE5wF,EAAEsxE,GAAGzgF,EAAE,EAAEA,EAAEygF,IAAIzgF,EAAEoB,EAAEpB,GAAGosD,MAAMvzB,EAAEykC,EAAE,CAA2yFpqB,CAAEra,EAAEvZ,EAAEoqD,KAAK+W,GAAG,OAAM,CAAE,EAAEzgF,EAAEi2D,UAAU8qB,YAAY,SAAS5xE,EAAE2vD,GAAG,OAAOmb,EAAEvQ,KAAKv6D,EAAE2vD,GAAE,EAAG,EAAE9+D,EAAEi2D,UAAU2zT,GAAG5pX,EAAEi2D,UAAU8qB,YAAY/gF,EAAEi2D,UAAU0vmB,gBAAgB,SAASx2pB,EAAE2vD,GAAG,OAAOmb,EAAEvQ,KAAKv6D,EAAE2vD,GAAE,EAAG,EAAE9+D,EAAEi2D,UAAUyZ,KAAK,SAASvgE,EAAE2vD,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAI47D,UAAU,0CAA0C,OAAOhxD,KAAKkgT,GAAGz6W,EAAEysD,EAAE8N,KAAKv6D,EAAE2vD,IAAI4K,IAAI,EAAE1pE,EAAEi2D,UAAU2vmB,oBAAoB,SAASz2pB,EAAE2vD,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAI47D,UAAU,0CAA0C,OAAOhxD,KAAKi8lB,gBAAgBx2pB,EAAEysD,EAAE8N,KAAKv6D,EAAE2vD,IAAI4K,IAAI,EAAE1pE,EAAEi2D,UAAUurV,eAAe,SAASryY,EAAE2vD,GAAG,IAAIjmC,EAAE4nD,EAAEr/E,EAAEpB,EAAE6nE,EAAE,GAAG,mBAAmB/I,EAAE,MAAM,IAAI47D,UAAU,0CAA0C,KAAKj6C,EAAE/W,KAAK6+T,SAAS,OAAO7+T,KAAK,KAAK7wC,EAAE4nD,EAAEtxE,IAAI,OAAOu6D,KAAK,GAAG7wC,IAAIimC,GAAGjmC,EAAEkmF,WAAWjgD,EAAE,KAAK4K,KAAKy7lB,aAAaz7lB,KAAK6+T,QAAQjrU,EAAE,cAAcmjB,EAAEtxE,GAAGsxE,EAAE+gU,gBAAgB93U,KAAKqhjB,KAAK,iBAAiB57mB,EAAE0pB,EAAEkmF,UAAUjgD,SAAS,GAAG,mBAAmBjmC,EAAE,CAAC,IAAIz3B,GAAG,EAAEpB,EAAE64B,EAAEx3B,OAAO,EAAErB,GAAG,EAAEA,IAAI,GAAG64B,EAAE74B,KAAK8+D,GAAGjmC,EAAE74B,GAAG++G,WAAWjgD,EAAE,CAAC+I,EAAEhvC,EAAE74B,GAAG++G,SAAS39G,EAAEpB,EAAE,KAAK,CAAC,GAAGoB,EAAE,EAAE,OAAOsoE,KAAK,IAAItoE,EAAEy3B,EAAEo0C,QAAQ,SAAS99D,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAEimC,EAAExB,EAAEzkC,EAAE,EAAE4nD,EAAEtxE,EAAE9N,OAAOi8D,EAAEmjB,EAAE5nD,GAAG,EAAEykC,GAAG,EAAEnuD,EAAE0pB,GAAG1pB,EAAEmuD,GAAGnuD,EAAEm9C,KAAK,CAA1E,CAA4EzzB,EAAEz3B,GAAG,IAAIy3B,EAAEx3B,SAASo/E,EAAEtxE,GAAG0pB,EAAE,IAAI4nD,EAAE+gU,gBAAgB93U,KAAKqhjB,KAAK,iBAAiB57mB,EAAE04D,GAAG/I,EAAE,CAAC,OAAO4K,IAAI,EAAE1pE,EAAEi2D,UAAU4vmB,mBAAmB,SAAS12pB,GAAG,IAAI2vD,EAAEjmC,EAAEz3B,EAAE,KAAKy3B,EAAE6wC,KAAK6+T,SAAS,OAAO7+T,KAAK,IAAI7wC,EAAE2oX,eAAe,OAAO,IAAI3uU,UAAUxxE,QAAQqoE,KAAK6+T,QAAQjrU,EAAE,MAAMoM,KAAKy7lB,aAAa,GAAGtsoB,EAAE1pB,KAAK,KAAKu6D,KAAKy7lB,aAAaz7lB,KAAK6+T,QAAQjrU,EAAE,aAAazkC,EAAE1pB,IAAIu6D,KAAK,GAAG,IAAImJ,UAAUxxE,OAAO,CAAC,IAAIrB,EAAE6nE,EAAE4Y,EAAE5nD,GAAG,IAAIz3B,EAAE,EAAEA,EAAEymE,EAAExmE,SAASD,EAAE,oBAAoBpB,EAAE6nE,EAAEzmE,KAAKsoE,KAAKm8lB,mBAAmB7lqB,GAAG,OAAO0pE,KAAKm8lB,mBAAmB,kBAAkBn8lB,KAAK6+T,QAAQjrU,EAAE,MAAMoM,KAAKy7lB,aAAa,EAAEz7lB,IAAI,CAAC,GAAG,mBAAmB5K,EAAEjmC,EAAE1pB,IAAIu6D,KAAK83U,eAAeryY,EAAE2vD,QAAQ,GAAGA,EAAE,IAAI19D,EAAE09D,EAAEz9D,OAAO,EAAED,GAAG,EAAEA,IAAIsoE,KAAK83U,eAAeryY,EAAE2vD,EAAE19D,IAAI,OAAOsoE,IAAI,EAAE1pE,EAAEi2D,UAAUm/J,UAAU,SAASjmN,GAAG,OAAOq9D,EAAE9C,KAAKv6D,GAAE,EAAG,EAAEnP,EAAEi2D,UAAU6vmB,aAAa,SAAS32pB,GAAG,OAAOq9D,EAAE9C,KAAKv6D,GAAE,EAAG,EAAEnP,EAAE+lqB,cAAc,SAAS52pB,EAAE2vD,GAAG,MAAM,mBAAmB3vD,EAAE42pB,cAAc52pB,EAAE42pB,cAAcjnmB,GAAG6pQ,EAAEzjQ,KAAK/1D,EAAE2vD,EAAE,EAAE9+D,EAAEi2D,UAAU8vmB,cAAcp9V,EAAE3oU,EAAEi2D,UAAUmlW,WAAW,WAAW,OAAO1xV,KAAKy7lB,aAAa,EAAEpkW,QAAQzjO,QAAQ5zB,KAAK6+T,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASp5X,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,eAAe4zH,OAAOtiD,EAAEtxE,EAAE,UAAU2vD,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,EAAEz3B,GAAG,GAAGk8D,EAAE+mE,SAASl1H,KAAKA,EAAEmuD,EAAExuC,KAAK3f,EAAE,WAAW2vD,IAAIxB,EAAE+mE,SAASvlE,KAAKA,EAAExB,EAAExuC,KAAKgwC,EAAE,WAAW,IAAIA,EAAEz9D,QAAQ,MAAM,IAAIs+T,WAAW,4CAA4C,IAAI,IAAI3/T,EAAE64B,EAAE,EAAEgvC,EAAEvK,EAAEknI,MAAMxkM,GAAG0mE,EAAEpJ,EAAEknI,MAAMpjM,GAAG,GAAGke,EAAEg+C,EAAEknI,MAAM,GAAGxkM,EAAE,GAAGoB,EAAE,GAAG,CAAC,IAAI8tE,EAAE,IAAIuR,EAAEvR,EAAEogL,OAAOhwO,GAAG4vD,EAAEogL,OAAOngP,GAAG2vD,GAAGoQ,EAAEogL,OAAOxwL,GAAGx/C,EAAE4vD,EAAE2rjB,SAAS,IAAIn+jB,EAAE,EAAE,GAAG18D,EAAE,EAAE,CAAC,IAAIksE,EAAErE,EAAExmE,OAAOrB,EAAE08D,EAAEviE,KAAK64C,IAAIhzC,EAAEsf,EAAEje,QAAQie,EAAE2+C,KAAK4J,EAAEqE,EAAE,EAAExP,GAAG18D,GAAG08D,CAAC,CAAC,GAAGA,EAAEp9C,EAAEje,QAAQD,EAAE,EAAE,CAAC,IAAIklE,EAAEI,EAAErlE,OAAOD,EAAEq8D,EAAEtjE,KAAK64C,IAAI5xC,EAAEke,EAAEje,OAAOq7D,GAAGp9C,EAAE2+C,KAAKyI,EAAEJ,EAAE5J,EAAEA,EAAEe,GAAGr8D,GAAGq8D,CAAC,CAAC,CAAC,OAAOn+C,EAAEu0E,KAAK,GAAG,CAAChuE,IAAIgiD,EAAE2glB,GAAG9hlB,EAAE,CAAC,EAAE,CAAC,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAASv3D,EAAE2vD,EAAEjmC,IAAG,SAAUimC,GAAG,SAASxB,EAAEnuD,GAAG,OAAOmuD,EAAE,mBAAmBiiE,QAAQ,iBAAiBA,OAAOkN,SAAS,SAASt9H,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBowH,QAAQpwH,EAAE+mD,cAAcqpE,QAAQpwH,IAAIowH,OAAOtpE,UAAU,gBAAgB9mD,CAAC,GAAGA,EAAE,CAAC,SAASsxE,EAAEtxE,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,SAASl8D,EAAE+N,EAAE2vD,GAAG,OAAOA,GAAG,WAAWxB,EAAEwB,IAAI,mBAAmBA,EAAE,SAAS3vD,GAAG,QAAG,IAASA,EAAE,MAAM,IAAI0mD,eAAe,6DAA6D,OAAO1mD,CAAC,CAAxH,CAA0HA,GAAG2vD,CAAC,CAA2P,SAAS+I,EAAE14D,GAAG,OAAO04D,EAAEnkD,OAAOm4G,eAAen4G,OAAOk3G,eAAe,SAASzrH,GAAG,OAAOA,EAAEgnD,WAAWzyC,OAAOk3G,eAAezrH,EAAE,GAAGA,EAAE,CAAC,SAASu3D,EAAEv3D,EAAE2vD,GAAG,OAAO4H,EAAEhjD,OAAOm4G,gBAAgB,SAAS1sH,EAAE2vD,GAAG,OAAO3vD,EAAEgnD,UAAU2I,EAAE3vD,CAAC,GAAGA,EAAE2vD,EAAE,CAAyDp7C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIkuE,EAAE//D,EAAE,UAAUutD,EAArH,SAASvtD,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAAuEmQ,CAAEnQ,EAAE,6BAA6B+8D,EAAE,SAAS/8D,IAAI,SAASA,EAAE2vD,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAI47D,UAAU,sDAAsDvrH,EAAE8mD,UAAUvyC,OAAOiN,OAAOmuC,GAAGA,EAAE7I,UAAU,CAACC,YAAY,CAACl1D,MAAMmO,EAAE+qH,UAAS,EAAGD,cAAa,KAAMn7D,GAAG4H,EAAEv3D,EAAE2vD,EAAE,CAAjO,CAAmOwH,EAAEn3D,GAAG,IAAI0pB,EAAEykC,EAAEh+C,EAAI4sD,GAAGrzC,EAAEytC,EAAE,WAAW,IAAIn3D,EAAE2vD,EAAE+I,EAAEhvC,GAAG,GAAv5B,WAAa,GAAG,oBAAoBkoS,UAAUA,QAAQC,UAAU,OAAM,EAAG,GAAGD,QAAQC,UAAUk6T,KAAK,OAAM,EAAG,GAAG,mBAAmBC,MAAM,OAAM,EAAG,IAAI,OAAO9goB,KAAK47D,UAAU76D,SAAS8pE,KAAK67P,QAAQC,UAAU3mU,KAAK,IAAI,WAAW,MAAK,CAAE,CAAC,MAAM8U,GAAG,OAAM,CAAE,CAAC,CAAiqBnP,GAAI,CAAC,IAAIs9D,EAAEuK,EAAE6B,MAAMxT,YAAY/mD,EAAE4xT,QAAQC,UAAUliQ,EAAE+T,UAAUvV,EAAE,MAAMnuD,EAAE2vD,EAAE1S,MAAMsd,KAAKmJ,WAAW,OAAOzxE,EAAEsoE,KAAKv6D,EAAE,GAAG,SAASm3D,EAAEn3D,GAAG,IAAI2vD,EAAE,OAAO,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKpD,IAAIxH,EAAEoN,EAAEhH,KAAKwE,KAAK,CAACs8lB,WAAW72pB,EAAE62pB,cAAcC,eAAc,EAAGnnmB,EAAEu2S,iBAAiBlmW,EAAE2vD,EAAEonmB,aAAa,IAAIxpmB,EAAEyiF,QAAQhwI,GAAG2vD,EAAEmnmB,eAAe92pB,EAAEg3pB,SAASrnmB,CAAC,CAAC,OAAOxB,EAAEgJ,GAAGhnD,EAAE,CAAC,CAACuG,IAAI,YAAY7kB,MAAM,SAASmO,GAAG,OAAOu6D,KAAKw8lB,aAAaE,aAAaj3pB,EAAEu6D,IAAI,GAAG,CAAC7jD,IAAI,aAAa7kB,MAAM,SAASmO,EAAE0pB,EAAEykC,GAAG,IAAImjB,EAAE/W,KAAKtoE,GAAE,EAAG,IAAIsoE,KAAKu8lB,gBAAgBv8lB,KAAKjlE,KAAKilE,KAAK2rS,iBAAiBgxT,KAAK38lB,KAAKu8lB,eAAc,GAAIv8lB,KAAKw8lB,aAAaxqqB,OAAOyT,GAAG,SAASA,EAAE0pB,GAAG,OAAO1pB,GAAG/N,GAAE,EAAGk8D,EAAEnuD,KAAK0pB,GAAGA,EAAEmI,SAAS,SAAS7xB,GAAGsxE,EAAEh8E,KAAKq6D,EAAEhwC,KAAK3f,EAAE,QAAQ,IAAI/N,GAAE,EAAGk8D,IAAI,GAAG,CAAC,MAAMnuD,GAAG,GAAG/N,EAAE,MAAM+N,EAAEmuD,EAAEnuD,EAAE,CAAC,GAAG,CAAC0W,IAAI,SAAS7kB,MAAM,SAASmO,GAAG,IAAI0pB,EAAE6wC,KAAKA,KAAKw8lB,aAAaI,QAAQ,SAAShpmB,EAAEmjB,GAAG,OAAOnjB,EAAEnuD,EAAEmuD,IAAImjB,GAAGA,EAAEz/C,SAAS,SAAS7xB,GAAG0pB,EAAEp0B,KAAKq6D,EAAEhwC,KAAK3f,EAAE,QAAQ,IAAIA,IAAI,GAAG,MAAMsxE,EAAEnjB,EAAErH,UAAU32C,GAAagnD,CAAC,CAAtvC,CAAwvC4I,EAAEosjB,WAAWzimB,EAAEsmH,QAAQjzE,CAAE,GAAEhH,KAAKwE,KAAKv6D,EAAE,UAAU4zH,OAAO,EAAE,CAAC,2BAA2B,IAAIloG,OAAO,IAAIkkmB,OAAO,MAAM,IAAI,CAAC,SAAS5vnB,EAAE2vD,EAAEjmC,GAAiGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK63B,EAAE0toB,iBAAiB,SAASp3pB,IAAI,IAAI2vD,EAAEjmC,EAAE4nD,EAAEr/E,EAAEpB,EAAE6yE,UAAUxxE,OAAO,QAAG,IAASwxE,UAAU,GAAGA,UAAU,GAAG,CAAC,GAArP,SAAW1jE,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,EAA0Jp9D,CAAEoM,KAAKv6D,GAAGu6D,KAAKs8lB,YAAW,EAAGt8lB,KAAKi7H,UAAU,IAAIj7H,KAAK88lB,aAAa,KAAK98lB,KAAKy7E,MAAM,IAAIz7E,KAAK6kM,OAAO7kM,KAAKy7E,MAAMz7E,KAAK+8lB,cAAa,EAAG/8lB,KAAKg9lB,aAAah9lB,KAAK+8lB,aAAa/8lB,KAAKmtH,QAAQ,KAAKntH,KAAKi9lB,wBAAuB,EAAGj9lB,KAAKniE,UAAU,KAAKmiE,KAAKy8lB,UAAS,EAAGz8lB,KAAK28lB,IAAI,SAAS38lB,KAAKk9lB,oBAAmB,EAAGljpB,OAAOC,OAAO+lD,KAAK1pE,GAAG,CAAC,QAAG,KAAU,QAAQ8+D,EAAE9+D,SAAI,IAAS8+D,OAAE,EAAOA,EAAE4nmB,gBAAgBh9lB,KAAKg9lB,aAAah9lB,KAAK+8lB,eAAc,KAAM,QAAQ5toB,EAAE74B,SAAI,IAAS64B,OAAE,EAAOA,EAAEssH,OAAOz7E,KAAKy7E,MAAM,KAAI,KAAM,QAAQ1kE,EAAEzgF,SAAI,IAASygF,OAAE,EAAOA,EAAE0kE,SAASz7E,KAAKy7E,MAAM,IAAI,iBAAiB,QAAQ/jJ,EAAEpB,SAAI,IAASoB,OAAE,EAAOA,EAAEmtQ,UAAU7kM,KAAK6kM,OAAO7kM,KAAKy7E,OAAOz7E,KAAKm9lB,qBAAqBn9lB,KAAKmtH,QAAQntH,KAAKmtH,QAAQ99H,MAAMC,QAAQ0Q,KAAKmtH,SAASntH,KAAKmtH,QAAQ,KAAKntH,KAAKo9lB,aAAa,GAAG9gnB,OAAO0jB,KAAK6kM,QAAQvoN,OAAO0jB,KAAKy7E,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASh2I,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,IAAImjB,EAAE,SAAStxE,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,EAAEuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAEq/E,EAAEtxE,EAAE,qBAAqBnP,EAAEygF,EAAEtxE,EAAE,iBAAiB04D,EAAE4Y,EAAEtxE,EAAE,wBAAwBu3D,EAAE,WAAW,SAASv3D,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKq9lB,SAAS,KAAKr9lB,KAAK2rS,iBAAiBv2S,EAAE,OAAOA,EAAE+3H,UAAUntH,KAAKmtH,QAAQ/3H,EAAE+3H,SAASntH,KAAKs9lB,eAAe,IAAI95lB,OAAOpO,EAAEqmF,MAAM,KAAK,IAAItsH,EAAE,IAAImtB,OAAO8Y,EAAE6lI,WAAW3+I,OAAO6hB,EAAEs3E,QAAQrgF,EAAE0nmB,cAAc,MAAM98lB,KAAKu9lB,cAAc,IAAI/5lB,OAAOr0C,EAAE,CAAC,IAAIimC,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,cAAc7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAEimC,EAAE4K,KAAK2rS,iBAAiBqxT,aAAah9lB,KAAK2rS,iBAAiBoxT,aAAa,OAAOrlqB,EAAE+9I,QAAQtmH,GAAGA,EAAEkgC,MAAMC,QAAQngC,GAAGA,EAAE1pB,GAAG,OAAOu6D,KAAKq9lB,UAAUluoB,EAAE6wC,KAAKq9lB,SAAS53pB,GAAG,GAAG,CAAC0W,IAAI,SAAS7kB,MAAM,SAASmO,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,GAAGtX,OAAOhmD,EAAEm/I,QAAQhwI,GAAG,GAAGA,GAAG8f,QAAQ,MAAM,IAAIwxD,EAAE/W,KAAK2rS,iBAAiB,MAAM,KAAK50R,EAAE0kE,QAAQ,IAAI7nF,EAAE38D,QAAQ8/E,EAAE0kE,OAAOz7E,KAAKw9lB,WAAW5pmB,EAAEruC,QAAQy6C,KAAKs9lB,eAAevmlB,EAAEqmlB,gBAAgB,IAAIxpmB,EAAE4yH,OAAOxmH,KAAKu9lB,gBAAgBv9lB,KAAKy9lB,YAAYromB,EAAEjmC,GAAG6wC,KAAKw9lB,WAAW5pmB,GAAGA,CAAC,GAAG,CAACz3C,IAAI,aAAa7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE4K,KAAK2rS,iBAAiBlwN,MAAM,MAAM,GAAGn/F,OAAO8Y,GAAG9Y,OAAO72C,GAAG62C,OAAO8Y,EAAE,GAAG,CAACj5C,IAAI,UAAU2sD,IAAI,SAASrjE,GAAGu6D,KAAKq9lB,SAAS53pB,CAAC,MAAMmuD,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAAxjC,GAA4jC0pB,EAAEsmH,QAAQz4E,CAAC,EAAE,CAAC,sBAAsB,IAAI,mBAAmB,IAAI,eAAe,MAAM,IAAI,CAAC,SAASv3D,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,IAAImjB,EAAE,SAAStxE,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,EAAEuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAEq/E,EAAEtxE,EAAE,sBAAsBnP,EAAEygF,EAAEtxE,EAAE,mBAAmB04D,EAAE4Y,EAAEtxE,EAAE,qBAAqBu3D,EAAE,WAAW,SAASv3D,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKg1a,SAAS,EAAEh1a,KAAK2rS,iBAAiBv2S,EAAE4K,KAAK09lB,eAAe,IAAIv/lB,EAAEs3E,QAAQrgF,GAAG4K,KAAK29lB,cAAc,KAAK39lB,KAAKmtH,QAAQ/3H,EAAE+3H,QAAQntH,KAAKm9lB,mBAAmB/nmB,EAAE+nmB,mBAAmBn9lB,KAAK49lB,mBAAkB,EAAG,OAAO59lB,KAAKmtH,UAAUntH,KAAK09lB,eAAevwe,QAAQntH,KAAKmtH,SAAS,OAAO/3H,EAAEv3D,YAAYmiE,KAAK08lB,aAAatnmB,EAAEv3D,UAAU,CAAC,IAAIu3D,EAAEjmC,EAAE4nD,EAAE,OAAO3hB,EAAE3vD,EAAEsxE,EAAE,CAAC,CAAC56D,IAAI,cAAc7kB,MAAM,SAASmO,GAAG,QAAQ4pD,MAAMC,QAAQ7pD,IAAI4pD,MAAMC,QAAQ7pD,EAAE,KAAK,IAAIA,EAAE,GAAG9N,MAAM,GAAG,CAACwkB,IAAI,gBAAgB7kB,MAAM,SAAS89D,GAAG,OAAO3vD,EAAEo4pB,YAAYzomB,GAAGA,EAAE77D,KAAK,SAASkM,GAAG,OAAOA,EAAE,EAAE,IAAI4pD,MAAMC,QAAQ8F,GAAGA,EAAEp7C,OAAOs+B,KAAK8c,EAAE,GAAG,CAACj5C,IAAI,kBAAkB7kB,MAAM,SAASmO,GAAG,OAAO,IAAIA,EAAE9N,OAAO,SAASy9D,EAAEjmC,GAAG,IAAIykC,EAAE,KAAK,IAAIA,EAAEnuD,EAAE2vD,EAAE,CAAC,MAAM3vD,GAAG,OAAO0pB,EAAE1pB,EAAE,CAAC,OAAO0pB,EAAE,KAAKykC,EAAE,EAAE,SAASwB,EAAEjmC,GAAG1pB,EAAE2vD,EAAEjmC,EAAE,CAAC,KAAKA,EAAE,CAAC,CAAChT,IAAI,SAAS7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKA,KAAK89lB,gBAAgBr4pB,GAAG,SAASmuD,EAAEmjB,GAAG,GAAGnjB,EAAE,OAAOwB,EAAExB,GAAG,IAAInuD,EAAE,OAAO2vD,EAAE,MAAM,IAAI19D,EAAE,GAAG,GAAGq/E,EAAE,CAAC,IAAIzgF,EAAE64B,EAAE4uoB,aAAahnlB,GAAG5Y,EAAE7nE,EAAE0nqB,oBAAoBhhmB,EAAE1mE,EAAE62L,QAAQ,GAAGh+J,EAAEguoB,oBAAoBngmB,IAAI7tC,EAAEyuoB,oBAAoBlmqB,EAAEqD,KAAKo0B,EAAEyzmB,cAAc5lkB,GAAE,IAAK7tC,EAAEyuoB,mBAAkB,GAAIz/lB,EAAE,CAAC,IAAIvoD,EAAEuZ,EAAE8uoB,cAAclnlB,GAAGr/E,EAAEqD,KAAKo0B,EAAEyzmB,cAAchtnB,GAAE,GAAI,CAAC,CAAC,OAAOw/C,EAAE,KAAK19D,EAAE,GAAG,GAAG,CAACykB,IAAI,SAAS7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE,GAAG,GAAG4K,KAAK2rS,iBAAiBuxT,oBAAoB,IAAIl9lB,KAAKg1a,SAAS,CAAC,IAAIh1a,KAAKmtH,QAAQ,OAAO1nL,EAAE,IAAIoO,MAAM,kFAAkFuhD,EAAEr6D,KAAKilE,KAAK4ikB,cAAc5ikB,KAAKmtH,SAAQ,GAAI,CAAC,OAAOntH,KAAK2rS,iBAAiBsxT,wBAAwB7nmB,EAAEr6D,KAAKilE,KAAK2rS,iBAAiBmxT,cAAcr3pB,EAAE,KAAK2vD,EAAE,GAAG,CAACj5C,IAAI,eAAe7kB,MAAM,SAAS89D,GAAG,GAAG4K,KAAKmtH,QAAQ,MAAM,CAAC6we,qBAAoB,EAAG7we,QAAQntH,KAAKmtH,SAAS,IAAIh+J,EAAE1pB,EAAEy4pB,cAAc9omB,GAAG,OAAO4K,KAAKmtH,QAAQh+J,EAAE6wC,KAAK09lB,eAAevwe,QAAQh+J,EAAE6wC,KAAKm9lB,mBAAmB,CAACa,qBAAqB1nqB,EAAEm/I,QAAQtmH,EAAEimC,GAAG+3H,QAAQh+J,GAAG,CAAC6uoB,qBAAoB,EAAG7we,QAAQ,KAAK,GAAG,CAAChxK,IAAI,gBAAgB7kB,MAAM,SAAS89D,GAAG,GAAG,OAAO4K,KAAKmtH,QAAQ,MAAM,IAAIt5K,MAAM,6BAA6B,OAAOw7C,MAAMC,QAAQ8F,GAAG3vD,EAAEo4pB,YAAYzomB,GAAG4K,KAAKmtH,QAAQ5zL,KAAK,SAASkM,EAAE0pB,GAAG,IAAIykC,EAAEwB,EAAEjmC,GAAG,OAAOykC,EAAEA,EAAE,GAAG,EAAE,IAAIoM,KAAKmtH,QAAQ5zL,KAAK,SAASkM,EAAE0pB,GAAG,OAAOimC,EAAEjmC,EAAE,IAAI6wC,KAAKmtH,QAAQ5zL,KAAK,SAASkM,GAAG,OAAO2vD,EAAE3vD,EAAE,GAAG,GAAG,CAAC0W,IAAI,kBAAkB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO4K,KAAK29lB,cAAc39lB,KAAK29lB,cAAcl4pB,EAAE2vD,GAAGA,EAAE,KAAK3vD,EAAE,GAAG,CAAC0W,IAAI,gBAAgB7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKpM,EAAEnuD,EAAElM,KAAK,SAASkM,EAAEmuD,GAAG,OAAOzkC,EAAEuuoB,eAAe1rqB,OAAOyT,EAAEmuD,EAAEwB,EAAE,IAAItqB,KAAKk1B,KAAK2rS,iBAAiB1wK,WAAWlkH,EAAE/W,KAAKg1a,SAAS,OAAOh1a,KAAKg1a,UAAU,EAAEj+Z,EAAE,CAAC/W,KAAK2rS,iBAAiBmxT,aAAalpmB,GAAG9oB,KAAK,IAAI8oB,CAAC,GAAG,CAACz3C,IAAI,eAAe2sD,IAAI,SAAS1T,GAAG,IAAI19D,EAAE+9I,QAAQrgF,GAAG,MAAM,IAAI47D,UAAU,sCAAsChxD,KAAK29lB,cAAcl4pB,EAAE04pB,gBAAgB/omB,EAAE,MAAMxB,EAAEwB,EAAE7I,UAAUp9B,GAAG4nD,GAAGnjB,EAAEwB,EAAE2hB,GAAGtxE,CAAC,CAApsF,GAAwsF0pB,EAAEsmH,QAAQz4E,CAAC,EAAE,CAAC,mBAAmB,IAAI,iBAAiB,IAAI,oBAAoB,MAAM,IAAI,CAAC,SAASv3D,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIs8D,EAAEnuD,EAAE,kBAAkB0pB,EAAEivoB,aAAaxqmB,EAAE6hF,QAAQ,IAAI1+D,EAAEtxE,EAAE,oBAAoB0pB,EAAEkvoB,eAAetnlB,EAAE0+D,OAAO,EAAE,CAAC,mBAAmB,IAAI,iBAAiB,MAAM,IAAI,CAAC,SAAShwI,EAAE2vD,EAAEjmC,IAAG,SAAUimC,GAAG,SAASxB,EAAEnuD,GAAG,IAAI,IAAI2vD,KAAK3vD,EAAE0pB,EAAE2gG,eAAe16D,KAAKjmC,EAAEimC,GAAG3vD,EAAE2vD,GAAG,CAAyMp7C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIhB,EAAEmP,EAAE,QAAQ04D,EAAE14D,EAAE,UAAUu3D,EAAjR,SAASv3D,GAAG,GAAGA,GAAGA,EAAEonO,WAAW,OAAOpnO,EAAE,IAAI2vD,EAAE,CAAC,EAAE,GAAG,MAAM3vD,EAAE,IAAI,IAAI0pB,KAAK1pB,EAAEuU,OAAO81G,eAAet0D,KAAK/1D,EAAE0pB,KAAKimC,EAAEjmC,GAAG1pB,EAAE0pB,IAAI,OAAOimC,EAAEqgF,QAAQhwI,EAAE2vD,CAAC,CAAuI2hB,CAAEtxE,EAAE,OAAOmQ,EAAEnQ,EAAE,sBAAsB+/D,EAAxK,SAAS//D,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAA0H/N,CAAE+N,EAAE,yBAAyButD,EAAEvtD,EAAE,wBAAwB0pB,EAAEmvoB,mBAAmBtrmB,EAAEyiF,QAAQ7hF,EAAEnuD,EAAE,uBAAuBmuD,EAAEnuD,EAAE,gBAAgB0pB,EAAEn9B,OAAO,SAASyT,GAAG,OAAO,IAAI+/D,EAAEiwE,QAAQ,IAAI7/H,EAAEinpB,iBAAiBp3pB,GAAG,EAAE0pB,EAAEipJ,MAAM,SAAS3yK,EAAE2vD,GAAG,IAAIxB,EAAEzkC,EAAEn9B,OAAOojE,GAAG2hB,EAAEzgF,EAAEioqB,WAAW,SAAS94pB,EAAE2vD,GAAGxB,EAAEwkH,MAAM3yK,OAAE,EAAO2vD,EAAE,IAAI,OAAO3vD,EAAE8kB,QAAQ,SAAS9kB,EAAE2vD,GAAG,OAAO3vD,EAAEnQ,MAAM,WAAW,OAAOyhF,EAAE3hB,EAAE,GAAG,GAAGnmD,QAAQknC,WAAW7gD,MAAM,WAAW,OAAOs+D,EAAEriE,KAAK,IAAI2S,OAAO,SAASuB,GAAGmuD,EAAEytjB,KAAK,QAAQ57mB,EAAE,IAAImuD,CAAC,EAAEzkC,EAAEqvoB,cAAc,SAAS/4pB,EAAE2vD,EAAExB,GAAG,OAAOzkC,EAAEipJ,MAAMhjH,EAAExB,GAAGwlB,KAAK3zE,EAAE,EAAE0pB,EAAEsvoB,cAAc,SAASh5pB,GAAG,IAAImuD,EAAEuV,UAAUxxE,OAAO,QAAG,IAASwxE,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE4N,EAAE,GAAGr/E,EAAE,IAAIymE,EAAEyjlB,SAAS,CAACxpe,MAAM,SAAS3yK,EAAE2vD,EAAEjmC,GAAG4nD,EAAEh8E,KAAK0K,GAAG0pB,GAAG,IAAI,OAAO,IAAIlgB,SAAS,SAAS3Y,EAAE6nE,GAAGzmE,EAAEwoX,GAAG,QAAQ/hT,GAAG+hT,GAAG,UAAU,WAAW,OAAO5pX,EAAE8+D,EAAE9Y,OAAOy6B,GAAG,IAAI5nD,EAAEipJ,MAAM3yK,EAAEmuD,GAAGwlB,KAAK1hF,EAAE,GAAG,EAAEy3B,EAAEuvoB,cAAc,SAASj5pB,EAAE2vD,GAAG,OAAOjmC,EAAEsvoB,cAAch5pB,EAAE2vD,GAAG9/D,MAAM,SAASmQ,GAAG,OAAOA,EAAE/T,UAAU,GAAG,EAAEy9B,EAAEwvoB,YAAY,SAASl5pB,EAAE2vD,EAAExB,GAAG,IAAImjB,EAAE/Z,EAAEgljB,kBAAkBv8mB,EAAE,CAACs8mB,SAAS,SAAS,OAAO5ylB,EAAEipJ,MAAMhjH,EAAExB,GAAGwlB,KAAKrC,EAAE,CAAE,GAAEvb,KAAKwE,KAAKv6D,EAAE,UAAU4zH,OAAO,EAAE,CAAC,uBAAuB,IAAI,qBAAqB,IAAI,cAAc,IAAIloG,OAAO,IAAIsvlB,GAAG,IAAI4U,OAAO,IAAIupC,KAAK,MAAM,IAAI,CAAC,SAASn5pB,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIs8D,EAAEnuD,EAAE,QAAQsxE,EAAEtxE,EAAE,YAAY/N,EAAE+N,EAAE,eAAe0pB,EAAEn9B,OAAO0F,EAAE1F,OAAOm9B,EAAEipJ,MAAM1gL,EAAE0gL,MAAMjpJ,EAAEqvoB,cAAc9mqB,EAAE8mqB,cAAcrvoB,EAAEsvoB,cAAc/mqB,EAAE+mqB,cAActvoB,EAAEuvoB,cAAchnqB,EAAEgnqB,cAAcvvoB,EAAEwvoB,YAAYjnqB,EAAEinqB,YAAY,IAAIroqB,EAAEmP,EAAE,YAAY0pB,EAAEne,MAAM1a,EAAE0a,MAAMme,EAAE0voB,YAAYvoqB,EAAEuoqB,YAAY1voB,EAAEq7mB,YAAYl0oB,EAAEk0oB,YAAYr7mB,EAAE2voB,UAAUxoqB,EAAEwoqB,UAAU3voB,EAAE4voB,WAAWnrmB,EAAEo0c,UAAUjxb,EAAE8nlB,YAAY,kEAAkE1voB,EAAE6voB,WAAWprmB,EAAEo0c,UAAUjxb,EAAEyzjB,YAAY,kEAAkEr7mB,EAAE8voB,SAASrrmB,EAAEo0c,UAAUjxb,EAAE+nlB,UAAU,6DAA6D,EAAE,CAAC,cAAc,IAAI,WAAW,IAAIF,KAAK,MAAM,IAAI,CAAC,SAASn5pB,EAAE2vD,EAAEjmC,IAAG,SAAUimC,GAAG,SAASxB,EAAEnuD,GAAG,OAAOmuD,EAAE,mBAAmBiiE,QAAQ,iBAAiBA,OAAOkN,SAAS,SAASt9H,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBowH,QAAQpwH,EAAE+mD,cAAcqpE,QAAQpwH,IAAIowH,OAAOtpE,UAAU,gBAAgB9mD,CAAC,GAAGA,EAAE,CAAC,SAASsxE,EAAEtxE,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,SAASl8D,EAAE+N,EAAE2vD,EAAEjmC,GAAG,OAAOz3B,EAAE,oBAAoB2/T,SAASA,QAAQ32P,IAAI22P,QAAQ32P,IAAI,SAASj7D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,SAASnuD,EAAE2vD,GAAG,MAAMp7C,OAAOuyC,UAAUujE,eAAet0D,KAAK/1D,EAAE2vD,IAAI,QAAQ3vD,EAAEu3D,EAAEv3D,MAAM,OAAOA,CAAC,CAAzF,CAA2FA,EAAE2vD,GAAG,GAAGxB,EAAE,CAAC,IAAImjB,EAAE/8D,OAAO85E,yBAAyBlgC,EAAEwB,GAAG,OAAO2hB,EAAErW,IAAIqW,EAAErW,IAAIlF,KAAKrsC,GAAG4nD,EAAEz/E,KAAK,CAAC,GAAGmO,EAAE2vD,EAAEjmC,GAAG1pB,EAAE,CAAC,SAASnP,EAAEmP,EAAE2vD,GAAG,OAAOA,GAAG,WAAWxB,EAAEwB,IAAI,mBAAmBA,EAAE,SAAS3vD,GAAG,QAAG,IAASA,EAAE,MAAM,IAAI0mD,eAAe,6DAA6D,OAAO1mD,CAAC,CAAxH,CAA0HA,GAAG2vD,CAAC,CAA2P,SAAS4H,EAAEv3D,GAAG,OAAOu3D,EAAEhjD,OAAOm4G,eAAen4G,OAAOk3G,eAAe,SAASzrH,GAAG,OAAOA,EAAEgnD,WAAWzyC,OAAOk3G,eAAezrH,EAAE,GAAGA,EAAE,CAAC,SAASmQ,EAAEnQ,EAAE2vD,GAAG,OAAOx/C,EAAEoE,OAAOm4G,gBAAgB,SAAS1sH,EAAE2vD,GAAG,OAAO3vD,EAAEgnD,UAAU2I,EAAE3vD,CAAC,GAAGA,EAAE2vD,EAAE,CAACp7C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIkuE,EAAE//D,EAAE,kBAAkButD,EAAEvtD,EAAE,UAAU+8D,EAAE/8D,EAAE,gBAAgBm3D,EAAEn3D,EAAE,YAAYsuD,EAAE,SAAStuD,IAAI,SAASA,EAAE2vD,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAI47D,UAAU,sDAAsDvrH,EAAE8mD,UAAUvyC,OAAOiN,OAAOmuC,GAAGA,EAAE7I,UAAU,CAACC,YAAY,CAACl1D,MAAMmO,EAAE+qH,UAAS,EAAGD,cAAa,KAAMn7D,GAAGx/C,EAAEnQ,EAAE2vD,EAAE,CAAjO,CAAmOmb,EAAE9qE,GAAG,IAAI0pB,EAAEykC,EAAEZ,EAAIxpB,GAAGra,EAAEohD,EAAE,WAAW,IAAI9qE,EAAE2vD,EAAE4H,EAAE7tC,GAAG,GAAt3B,WAAa,GAAG,oBAAoBkoS,UAAUA,QAAQC,UAAU,OAAM,EAAG,GAAGD,QAAQC,UAAUk6T,KAAK,OAAM,EAAG,GAAG,mBAAmBC,MAAM,OAAM,EAAG,IAAI,OAAO9goB,KAAK47D,UAAU76D,SAAS8pE,KAAK67P,QAAQC,UAAU3mU,KAAK,IAAI,WAAW,MAAK,CAAE,CAAC,MAAM8U,GAAG,OAAM,CAAE,CAAC,CAAgoB04D,GAAI,CAAC,IAAIvK,EAAEoJ,EAAEgD,MAAMxT,YAAY/mD,EAAE4xT,QAAQC,UAAUliQ,EAAE+T,UAAUvV,EAAE,MAAMnuD,EAAE2vD,EAAE1S,MAAMsd,KAAKmJ,WAAW,OAAO7yE,EAAE0pE,KAAKv6D,EAAE,GAAG,SAAS8qE,EAAE9qE,GAAG,IAAI2vD,EAAE,OAAO,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKuQ,IAAInb,EAAE5rB,EAAEgyB,KAAKwE,KAAK,CAACs8lB,WAAW72pB,EAAE62pB,cAAclmkB,MAAM,GAAGhhC,EAAE4/a,SAAS,EAAE5/a,EAAE8pmB,eAAe,EAAE9pmB,EAAE+pmB,gBAAgB,EAAE/pmB,EAAEgqmB,YAAW,EAAGhqmB,EAAEgsjB,cAAc37mB,EAAE2vD,EAAEmsQ,OAAO,IAAI3kQ,EAAEk8P,OAAOrzT,GAAG2vD,EAAEiqmB,kBAAkB,IAAI78lB,EAAE88lB,kBAAkB75pB,GAAG2vD,EAAEmqmB,QAAQ,IAAI/5lB,EAAEuglB,cAActgpB,EAAEs8mB,UAAU3sjB,EAAEoqmB,wBAAwB,IAAIh9lB,EAAEi9lB,wBAAwBrqmB,CAAC,CAAC,OAAOxB,EAAE2c,GAAGvd,EAAE,CAAC,CAAC72C,IAAI,YAAY7kB,MAAM,SAASmO,GAAG,OAAOu6D,KAAKw/lB,wBAAwB9C,aAAaj3pB,EAAEu6D,IAAI,GAAG,CAAC7jD,IAAI,WAAW7kB,MAAM,SAASmO,GAAG,OAAOu6D,KAAKw/lB,wBAAwBE,aAAaj6pB,EAAEu6D,IAAI,GAAG,CAAC7jD,IAAI,OAAO7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE,GAAG,QAAQ3vD,EAAE,OAAOu6D,KAAKo/lB,aAAap/lB,KAAKo/lB,YAAW,EAAG1nqB,EAAEslE,EAAEuT,EAAEhkB,WAAW,OAAOyT,MAAMxE,KAAKwE,KAAK,MAAMA,KAAKg1a,YAAW,EAAG,IAAI,IAAI7ld,EAAEg6C,UAAUxxE,OAAOi8D,EAAE,IAAIvE,MAAMlgC,EAAE,EAAEA,EAAE,EAAE,GAAG4nD,EAAE,EAAEA,EAAE5nD,EAAE4nD,IAAInjB,EAAEmjB,EAAE,GAAG5N,UAAU4N,GAAG,OAAO3hB,EAAE19D,EAAEslE,EAAEuT,EAAEhkB,WAAW,OAAOyT,OAAOxE,KAAK9Y,MAAM0S,EAAE,CAAC4K,KAAKv6D,GAAG62C,OAAOsX,GAAG,GAAG,CAACz3C,IAAI,aAAa7kB,MAAM,SAASmO,EAAE2vD,EAAEjmC,GAAG,GAAG6wC,KAAK2/lB,eAAe,OAAOxwoB,IAAI,IAAI,IAAIykC,EAAEoM,KAAKo2B,MAAMp2B,KAAKu/lB,QAAQnnf,MAAM3yK,GAAGsxE,EAAE/W,KAAKhvD,MAAM4iD,GAAE,GAAI,OAAOoM,KAAK4/lB,YAAY7olB,EAAE5nD,EAAE,CAAC,MAAM1pB,GAAG,OAAOu6D,KAAK4uL,QAAQnpP,EAAE,CAAC,GAAG,CAAC0W,IAAI,SAAS7kB,MAAM,SAASmO,GAAG,GAAGu6D,KAAK2/lB,eAAe,OAAOl6pB,IAAI,IAAI,IAAI2vD,EAAE4K,KAAKo2B,MAAMp2B,KAAKu/lB,QAAQhuqB,MAAM49B,EAAE6wC,KAAKhvD,MAAMokD,GAAE,GAAI,OAAO4K,KAAK4/lB,YAAYzwoB,EAAE1pB,EAAE,CAAC,MAAM2vD,GAAG,OAAO3vD,EAAE2vD,EAAE,CAAC,GAAG,CAACj5C,IAAI,QAAQ7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAI3vD,EAAE,MAAM,GAAG,IAAI0pB,EAAE6wC,KAAKuhQ,OAAOvwT,MAAMvL,EAAE2vD,GAAGxB,EAAEzkC,EAAE0pE,KAAK9hB,EAAE5nD,EAAEv1B,KAAK,OAAOomE,KAAKo2B,MAAMxiC,EAAEmjB,CAAC,GAAG,CAAC56D,IAAI,cAAc7kB,MAAM,SAASmO,EAAE0pB,GAAG,IAAIykC,EAAEoM,KAAK+W,EAAEtxE,EAAE9N,QAAQ,SAASD,EAAEpB,GAAG,IAAI6nE,EAAE,SAAS14D,GAAG,OAAOA,EAAEmuD,EAAEg7L,QAAQnpP,GAAGnP,EAAE,KAAK,EAAEoB,EAAEpB,EAAE,QAAQ8+D,GAAG,WAAW,OAAO19D,EAAEpB,EAAE,EAAE,GAAG,EAAE,GAAGA,GAAGygF,GAAGnjB,EAAE+rmB,eAAe,OAAOxwoB,IAAI,GAAGykC,EAAEurmB,iBAAiB,EAAEvrmB,EAAEismB,eAAe,OAAO1hmB,IAAI,IAAInB,EAAEv3D,EAAEnP,GAAGs9D,EAAEohb,UAAU,EAAEphb,EAAEsrmB,gBAAgB,EAAE,IAAItppB,EAAEg+C,EAAEohb,SAAS,OAAOphb,EAAEksmB,aAAa9imB,GAAG,SAASv3D,EAAE2vD,GAAG,GAAG3vD,EAAE,OAAOmuD,EAAEohb,UAAU,EAAE72a,EAAE14D,GAAG,IAAI2vD,EAAE,OAAO+I,EAAE,IAAItqD,MAAM,8BAA8B,GAAGuhD,EAAEgyE,SAAS,GAAGhyE,EAAEn2D,IAAI,OAAO20D,EAAEmsmB,QAAQ3qmB,EAAEn2D,IAAIk/D,QAAQvK,EAAEytjB,KAAK,eAAejsjB,EAAEn2D,IAAI2W,EAAEw/C,EAAEv3C,QAAQ,OAAOsgD,GAAG,GAAG,CAA1e,CAA4e,EAAE,GAAG,CAAChiD,IAAI,eAAe7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK,IAAIA,KAAKq/lB,kBAAkBxhqB,UAAU4H,GAAG,SAASmuD,EAAEmjB,GAAG,OAAOnjB,EAAEwB,EAAExB,GAAGmjB,EAAEA,EAAEqwD,QAAQrwD,EAAE93E,IAAIkwB,EAAE6woB,eAAe7woB,EAAEqwoB,wBAAwBS,qBAAqBlplB,EAAE93E,IAAIm2D,IAAIjmC,EAAE6ld,UAAU,EAAE5/a,EAAE,KAAK,CAACn2D,IAAI,KAAKmoI,SAAQ,MAAOj4G,EAAE6ld,UAAU,EAAE7ld,EAAE+voB,gBAAgB,EAAE9pmB,EAAE,KAAK,CAACn2D,IAAI,KAAKmoI,SAAQ,KAAMhyE,EAAE,KAAK,CAACgyE,SAAQ,EAAGnoI,IAAIwG,IAAI2vD,EAAE,IAAIvhD,MAAM,yCAAyC,GAAG,CAAC,MAAMpO,GAAG2vD,EAAE3vD,EAAE,CAAC,GAAG,CAAC0W,IAAI,UAAU7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAI4K,KAAKohjB,cAAck7C,WAAWt8lB,KAAKjlE,KAAK0K,GAAGu6D,KAAKjlE,KAAKgW,KAAKE,UAAUxL,IAAI2vD,GAAG,CAAC,MAAM3vD,GAAG2vD,EAAE3vD,EAAE,CAAC,GAAG,CAAC0W,IAAI,iBAAiBukD,IAAI,WAAW,OAAOV,KAAKohjB,cAAc8+C,WAAWlgmB,KAAKg1a,UAAUh1a,KAAKohjB,cAAc7nY,OAAO,GAAG,CAACp9N,IAAI,iBAAiBukD,IAAI,WAAW,OAAOV,KAAKk/lB,eAAel/lB,KAAKohjB,cAAc++C,QAAQ,GAAG,CAAChkpB,IAAI,iBAAiBukD,IAAI,WAAW,OAAOV,KAAKm/lB,iBAAiBn/lB,KAAKohjB,cAAcg/C,SAAS,MAAMrplB,EAAEnjB,EAAErH,UAAUyG,GAAaud,CAAC,CAA/uG,CAAivGvd,EAAE4+jB,WAAWzimB,EAAEsmH,QAAQ1hF,CAAE,GAAEyH,KAAKwE,KAAKv6D,EAAE,UAAUounB,aAAa,EAAE,CAAC,WAAW,IAAI,eAAe,IAAIwB,OAAO,IAAIixB,eAAe,IAAIhnF,OAAO,MAAM,IAAI,CAAC,SAAS75jB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,SAASnuD,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,EAAEuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIy/E,EAAEnjB,EAAEnuD,EAAE,wBAAwB/N,EAAEk8D,EAAEnuD,EAAE,iBAAiB0pB,EAAEkxoB,cAAc,SAAS56pB,EAAE2vD,GAAG,IAAIjmC,EAAE,GAAG,SAAS1pB,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKs8lB,YAAW,EAAGt8lB,KAAKi7H,UAAU,IAAIj7H,KAAKsgmB,aAAY,EAAGtgmB,KAAKy7E,MAAM,IAAIz7E,KAAK6kM,OAAO,KAAK7kM,KAAKugmB,WAAWvgmB,KAAKy7E,MAAMz7E,KAAKp4C,QAAQ,KAAKo4C,KAAKwgmB,kBAAiB,EAAGxgmB,KAAKygmB,OAAM,EAAGzgmB,KAAK0gmB,OAAM,EAAG1gmB,KAAKn+C,MAAK,EAAGm+C,KAAKmtH,QAAQ,KAAKntH,KAAK2gmB,eAAc,EAAG3gmB,KAAK4gmB,sBAAqB,EAAG5gmB,KAAK6gmB,wBAAuB,EAAG7gmB,KAAK8gmB,eAAe,KAAK9gmB,KAAK+hjB,SAAS,OAAO/hjB,KAAKkgmB,WAAU,EAAGlgmB,KAAKu5K,QAAQ,EAAEv5K,KAAKogmB,UAAU,EAAEpgmB,KAAKmgmB,SAAS,EAAEnmpB,OAAOC,OAAO+lD,KAAK5K,GAAG,CAAC,GAAG4K,KAAKi7H,UAAUtjM,OAAO,EAAE,MAAM,IAAIkc,MAAM,+CAA+CmsD,KAAK+gmB,iBAAiBhqlB,EAAE0+D,QAAQz1E,KAAKi7H,WAAWj7H,KAAKugmB,WAAW,OAAOpxoB,EAAE6wC,KAAK6kM,QAAQ11O,EAAE6wC,KAAKy7E,MAAMz7E,KAAKwgmB,kBAAkB9oqB,EAAE+9I,QAAQz1E,KAAKp4C,SAASo4C,KAAKghmB,kBAAkB,IAAIx9lB,OAAO,0BAA0BlnB,OAAO0jB,KAAK+gmB,iBAAiB,MAAM/gmB,KAAKu5K,QAAQ,IAAIv5K,KAAKkgmB,WAAU,EAAG,CAAC,EAAE,CAAC,sBAAsB,IAAI,eAAe,MAAM,IAAI,CAAC,SAASz6pB,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,GAAG,IAAI,IAAI2vD,KAAK3vD,EAAE0pB,EAAE2gG,eAAe16D,KAAKjmC,EAAEimC,GAAG3vD,EAAE2vD,GAAG,CAAyMp7C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIhB,EAAvP,SAASmP,GAAG,GAAGA,GAAGA,EAAEonO,WAAW,OAAOpnO,EAAE,IAAI2vD,EAAE,CAAC,EAAE,GAAG,MAAM3vD,EAAE,IAAI,IAAI0pB,KAAK1pB,EAAEuU,OAAO81G,eAAet0D,KAAK/1D,EAAE0pB,KAAKimC,EAAEjmC,GAAG1pB,EAAE0pB,IAAI,OAAOimC,EAAEqgF,QAAQhwI,EAAE2vD,CAAC,CAA6G2hB,CAAEtxE,EAAE,OAAO04D,EAAE14D,EAAE,UAAUu3D,EAAEv3D,EAAE,mBAAmBmQ,EAAzJ,SAASnQ,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAA2G/N,CAAE+N,EAAE,sBAAsB+/D,EAAE//D,EAAE,qBAAqB0pB,EAAE8xoB,gBAAgBz7lB,EAAEiwE,QAAQ7hF,EAAEnuD,EAAE,YAAYmuD,EAAEnuD,EAAE,oBAAoBmuD,EAAEnuD,EAAE,aAAamuD,EAAEnuD,EAAE,iBAAiB0pB,EAAEne,MAAM,SAASvL,GAAG,OAAO,IAAImQ,EAAE6/H,QAAQ,IAAIz4E,EAAEqjmB,cAAc56pB,GAAG,EAAE0pB,EAAEq7mB,YAAY,SAAS/koB,EAAE2vD,GAAG,OAAO3vD,EAAE2zE,KAAK,IAAIxjE,EAAE6/H,QAAQ,IAAIz4E,EAAEqjmB,cAAcjrmB,IAAI,EAAEjmC,EAAE2voB,UAAU,SAASr5pB,GAAG,IAAI2vD,EAAE+T,UAAUxxE,OAAO,QAAG,IAASwxE,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE,OAAO7yE,EAAEwqnB,iBAAiBr7mB,GAAG2zE,KAAK,IAAIxjE,EAAE6/H,QAAQ,IAAIz4E,EAAEqjmB,cAAcjrmB,IAAI,EAAEjmC,EAAE0voB,YAAY,SAASp5pB,EAAE2vD,GAAG,IAAIjmC,EAAE,IAAIgvC,EAAE+imB,SAAS,OAAO/xoB,EAAEp0B,KAAK0K,GAAG0pB,EAAEp0B,KAAK,MAAMo0B,EAAEiqD,KAAK,IAAIxjE,EAAE6/H,QAAQ,IAAIz4E,EAAEqjmB,cAAcjrmB,IAAI,CAAC,EAAE,CAAC,oBAAoB,IAAI,kBAAkB,IAAI,WAAW,IAAI,eAAe,IAAI,UAAU,IAAIqrjB,GAAG,IAAI4U,OAAO,MAAM,IAAI,CAAC,SAAS5vnB,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAyD55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAE+N,EAAE,aAAanP,EAAxH,SAASmP,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAA0EsxE,CAAEtxE,EAAE,gBAAgB04D,EAAE14D,EAAE,WAAWu3D,EAAE,2CAA2CpnD,EAAE,WAAW,SAASnQ,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKohjB,cAAchsjB,EAAE4K,KAAKmhmB,UAAU,IAAI7qqB,EAAEm/I,QAAQz1E,KAAKohjB,cAAc,CAAC,IAAIhsjB,EAAEjmC,EAAE4nD,EAAE,OAAO3hB,EAAE3vD,EAAEsxE,EAAE,CAAC,CAAC56D,IAAI,YAAY7kB,MAAM,SAASmO,GAAG,OAAOA,GAAG,QAAQA,EAAE+1I,WAAW,GAAG/1I,EAAE0tD,MAAM,GAAG1tD,CAAC,KAAK0pB,EAAE,CAAC,CAAChT,IAAI,QAAQ7kB,MAAM,SAAS89D,EAAEjmC,GAAG,IAAIykC,EAAE,IAAIl8D,EAAE86G,QAAQ,CAAC3Z,KAAKpzF,EAAE27pB,UAAUhsmB,GAAGgsjB,cAAcphjB,KAAKohjB,cAAcigD,YAAYlyoB,IAAI,OAAO6wC,KAAKohjB,cAAco/C,iBAAiBxgmB,KAAKshmB,kBAAkB1tmB,GAAGoM,KAAKuhmB,qBAAqB3tmB,EAAE,GAAG,CAACz3C,IAAI,uBAAuB7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE,GAAGjmC,GAAE,EAAGA,GAAGA,EAAE6wC,KAAKwhmB,SAAS/7pB,EAAE2vD,GAAG,MAAM,CAACyjC,KAAKpzF,EAAEozF,KAAKj/F,KAAKw7D,EAAE,GAAG,CAACj5C,IAAI,oBAAoB7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE4K,KAAKohjB,cAAcjylB,EAAE,GAAGykC,EAAEnuD,EAAEg8pB,mBAAmB,OAAO7tmB,EAAEA,EAAEnuD,EAAEg8pB,mBAAmB,GAAGtjmB,EAAEujmB,MAAMC,eAAe/tmB,EAAEwB,GAAG,CAAC,GAAG,OAAO3vD,EAAEm8pB,kBAAkB,MAAM,CAAC/okB,KAAKpzF,EAAEo8pB,eAAejoqB,KAAKu1B,GAAG,IAAI1pB,EAAEq8pB,kBAAkB,MAAM,CAACjpkB,KAAKpzF,EAAEo8pB,eAAejoqB,KAAKu1B,GAAG1pB,EAAEs8pB,kBAAkB,MAAM,IAAI/hmB,KAAKwhmB,SAAS/7pB,EAAE0pB,GAAG,MAAM,MAAM,CAAC0pE,KAAKpzF,EAAEozF,KAAKj/F,KAAKu1B,EAAE,GAAG,CAAChT,IAAI,WAAW7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAI3vD,EAAEu8pB,kBAAkB,OAAM,EAAG,IAAI7yoB,EAAE6wC,KAAKmhmB,UAAUnwpB,MAAMvL,GAAG,OAAO,OAAO0pB,IAAI6wC,KAAKohjB,cAAck/C,aAAatjmB,EAAE5pD,KAAK+b,EAAE2b,KAAK,MAAMsqB,EAAEr6D,KAAKo0B,IAAG,EAAG,MAAMykC,EAAEwB,EAAE7I,UAAUp9B,GAAG4nD,GAAGnjB,EAAEwB,EAAE2hB,GAAGtxE,CAAC,CAA1tC,GAA8tC0pB,EAAEsmH,QAAQ7/H,CAAC,EAAE,CAAC,cAAc,IAAI,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC,SAASnQ,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIy/E,EAAEtxE,EAAE,YAAY/N,EAAE+N,EAAE,WAAWi8pB,MAAMprqB,EAAEoB,EAAEuqqB,oBAAoB9jmB,EAAEzmE,EAAEwqqB,sBAAsBllmB,EAAEtlE,EAAEyqqB,iBAAiBvspB,EAAE,WAAW,SAASnQ,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKohjB,cAAchsjB,EAAE4K,KAAKoimB,aAAa,IAAIrrlB,EAAEsrlB,aAAajtmB,EAAE,CAAC,IAAIA,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,QAAQ7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE4K,KAAKohjB,cAAcjylB,EAAE1pB,EAAE47pB,YAAYztmB,EAAEnuD,EAAEsxE,EAAE,GAAGr/E,EAAEsoE,KAAKsimB,cAAc1umB,EAAEmjB,GAAGr/E,GAAG,CAAC,GAAGpB,EAAEoB,GAAG,OAAOk8D,EAAE2umB,iBAAiB7qqB,IAAIk8D,EAAEkumB,mBAAmB3jmB,EAAEzmE,EAAE09D,IAAIjmC,EAAE,MAAMykC,EAAEmumB,mBAAmBhrlB,GAAG,IAAI/W,KAAKwimB,sBAAsB5umB,EAAEl8D,EAAEq/E,GAAG,CAAC,IAAI/Z,EAAEgD,KAAKoimB,aAAapxpB,MAAM4iD,GAAG,GAAG,OAAOoJ,EAAE,OAAO,KAAK+Z,EAAEh8E,KAAKiiE,EAAE,CAACtlE,EAAEk8D,EAAEoumB,iBAAiB,CAAC,OAAO7yoB,EAAE,MAAMykC,EAAEmumB,mBAAmBhrlB,EAAE,GAAG,CAAC56D,IAAI,gBAAgB7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAEu8pB,kBAAkB,OAAO,OAAO7yoB,GAAG6tC,EAAE7tC,EAAE6wC,KAAKohjB,gBAAgBhsjB,EAAEr6D,KAAK,IAAI0K,EAAEu8pB,mBAAmB7yoB,CAAC,GAAG,CAAChT,IAAI,wBAAwB7kB,MAAM,SAASmO,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEoM,KAAKohjB,cAAc,GAAGpkjB,EAAE5H,EAAExB,GAAG,CAACnuD,EAAE88pB,iBAAiBntmB,GAAG,IAAI2hB,EAAEtxE,EAAEg8pB,mBAAmB,IAAIh8pB,EAAEq8pB,mBAAmB,OAAO/qlB,GAAGzgF,EAAEygF,GAAG,OAAO5nD,EAAEp0B,KAAK,KAAI,EAAG,GAAG,OAAOg8E,GAAG/Z,EAAE+Z,EAAEnjB,GAAG,OAAOzkC,EAAEp0B,KAAK,KAAI,CAAE,CAAC,OAAM,CAAE,MAAM64D,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAA7/B,GAAigC0pB,EAAEsmH,QAAQ7/H,CAAC,EAAE,CAAC,UAAU,IAAI,WAAW,MAAM,IAAI,CAAC,SAASnQ,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIy/E,EAAEtxE,EAAE,WAAW/N,EAAE,mBAAmBpB,EAAE,WAAW,SAASmP,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAK9hE,OAAO,EAAE8hE,KAAK64B,KAAKzjC,EAAEyjC,KAAK74B,KAAKqta,WAAWrta,KAAK64B,KAAKlhG,OAAOqoE,KAAKohjB,cAAchsjB,EAAEgsjB,cAAcphjB,KAAKqhmB,YAAYjsmB,EAAEismB,YAAYrhmB,KAAK9hE,OAAOk3D,EAAEl3D,QAAQ,CAAC,CAAC,IAAIk3D,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,kBAAkB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK6hmB,eAAehumB,MAAMn8D,GAAG,OAAO+N,GAAGu6D,KAAK9hE,SAASuH,EAAEzO,OAAO,GAAGyO,EAAE,GAAG9N,OAAOqoE,MAAMA,KAAKqhmB,YAAY,MAAMrhmB,KAAK9hE,OAAO8hE,KAAKqta,WAAWrta,KAAK,GAAG,CAAC7jD,IAAI,YAAY7kB,MAAM,SAASmO,GAAG,OAAOu6D,KAAK9hE,OAAOuH,EAAEu6D,IAAI,GAAG,CAAC7jD,IAAI,iBAAiB7kB,MAAM,SAASmO,GAAG,OAAOu6D,KAAK9hE,OAAOuH,EAAEg9pB,YAAYzimB,IAAI,GAAG,CAAC7jD,IAAI,mBAAmB7kB,MAAM,SAASmO,GAAG,OAAOu6D,KAAK9hE,OAAOuH,EAAEi9pB,UAAU,EAAE1imB,IAAI,GAAG,CAAC7jD,IAAI,mBAAmB7kB,MAAM,WAAW,OAAO0oE,KAAK64B,KAAK74B,KAAK6hmB,eAAe7hmB,KAAKqta,WAAWrta,KAAK64B,KAAKlhG,OAAOqoE,KAAK9hE,OAAO,EAAE8hE,IAAI,GAAG,CAAC7jD,IAAI,oBAAoBukD,IAAI,WAAW,OAAOV,KAAKqta,WAAWrta,KAAK9hE,MAAM,GAAG,CAACie,IAAI,oBAAoBukD,IAAI,WAAW,IAAIj7D,EAAEu6D,KAAK6hmB,eAAezsmB,EAAE4K,KAAKohjB,cAAc4/C,kBAAkB,IAAI,IAAIv7pB,EAAE+gL,OAAOpxH,GAAG,OAAO,KAAK,IAAIjmC,EAAE1pB,EAAEouD,MAAMuB,GAAG,GAAG,MAAMjmC,EAAE,OAAO,KAAK,IAAIykC,EAAEzkC,EAAE,GAAGz3B,EAAEsoE,KAAK9hE,QAAQixB,EAAEn4B,OAAO,GAAG,OAAO,IAAI+/E,EAAE2qlB,MAAM,CAACjse,MAAM7hI,EAAE6umB,YAAY/qqB,EAAEgrqB,UAAUhrqB,EAAEk8D,EAAEj8D,OAAO,GAAG,GAAG,CAACwkB,IAAI,qBAAqBukD,IAAI,WAAW,IAAIj7D,EAAEu6D,KAAK9hE,OAAO,OAAO8hE,KAAKqta,YAAY5ne,EAAE,KAAK,IAAIsxE,EAAE2qlB,MAAM,CAACjse,MAAMz1H,KAAK64B,KAAKpzF,GAAGg9pB,YAAYh9pB,EAAEi9pB,UAAUj9pB,GAAG,GAAG,CAAC0W,IAAI,iBAAiBukD,IAAI,WAAW,OAAOV,KAAK64B,KAAK3iG,OAAO8pE,KAAK9hE,OAAO,MAAM01D,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAA/7C,GAAm8C0pB,EAAEqjF,QAAQl8G,CAAC,EAAE,CAAC,UAAU,MAAM,IAAI,CAAC,SAASmP,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIy/E,EAAE,WAAW,SAAStxE,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKy1H,MAAMrgI,EAAEqgI,MAAMz1H,KAAKyimB,YAAYrtmB,EAAEqtmB,YAAYzimB,KAAK0imB,UAAUttmB,EAAEstmB,SAAS,CAAC,IAAIttmB,EAAI2hB,EAAE,OAAO3hB,EAAE3vD,EAAEsxE,EAAE,CAAC,CAAC56D,IAAI,sBAAsB7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE3vD,EAAEgwL,MAAM,MAAM,OAAOrgI,GAAG,OAAOA,GAAG,SAASA,CAAC,GAAG,CAACj5C,IAAI,wBAAwB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO3vD,EAAEgwL,QAAQrgI,EAAE0rmB,cAAc,GAAG,CAAC3kpB,IAAI,iBAAiB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAOA,EAAEormB,oBAAoB/6pB,GAAGA,EAAEgwL,QAAQrgI,EAAExtC,OAAO,GAAG,CAACzL,IAAI,yBAAyB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO3vD,EAAEgwL,QAAQrgI,EAAEmrmB,UAAU,GAAG,CAACpkpB,IAAI,eAAe7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO3vD,EAAEgwL,QAAQrgI,EAAEqmF,KAAK,GAAG,CAACt/H,IAAI,mBAAmB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO3vD,EAAEgwL,QAAQrgI,EAAE6lI,SAAS,IAA+BlkH,GAAGnjB,EAAEwB,EAAE2hB,GAAGtxE,CAAC,CAAlwB,GAAswB0pB,EAAEuyoB,MAAM3qlB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK63B,EAAEsmH,QAAQ,SAAShwI,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAG2vD,EAAEvzC,KAAKm+C,KAAKhuE,OAAO,SAASyT,GAAG,OAAOA,EAAEoc,MAAM,EAAEuzC,EAAEqrmB,MAAMzgmB,KAAKhuE,OAAO,SAASyT,GAAG,OAAOA,EAAEu9H,UAAU,EAAE5tE,EAAEsrmB,MAAM1gmB,KAAKhuE,OAAO,SAASyT,GAAG,OAAOA,EAAEw9H,WAAW,EAAEjjE,KAAKhuE,OAAO,SAASyT,GAAG,OAAOA,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,IAAImjB,EAAE,SAAStxE,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,EAAEuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAEq/E,EAAEtxE,EAAE,4BAA4BnP,EAAEygF,EAAEtxE,EAAE,yBAAyB04D,EAAE14D,EAAE,YAAYu3D,EAAE,WAAW,SAASv3D,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKohjB,cAAchsjB,EAAE4K,KAAK2imB,mBAAmB,IAAIrsqB,EAAEm/I,QAAQrgF,GAAG4K,KAAK4imB,sBAAsB,IAAIlrqB,EAAE+9I,QAAQrgF,EAAE,CAAC,IAAIA,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,QAAQ7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE3vD,EAAEu8pB,kBAAkB,OAAO,OAAO5smB,GAAG+I,EAAEujmB,MAAMmB,aAAaztmB,EAAE4K,KAAKohjB,gBAAgB37mB,EAAEq9pB,eAAe1tmB,GAAG4K,KAAK2imB,mBAAmB3xpB,MAAMvL,IAAIu6D,KAAK4imB,sBAAsB5xpB,MAAMvL,EAAE,MAAMmuD,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAAnf,GAAuf0pB,EAAEsmH,QAAQz4E,CAAC,EAAE,CAAC,WAAW,IAAI,0BAA0B,IAAI,uBAAuB,MAAM,IAAI,CAAC,SAASv3D,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAyD55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAvG,SAAS+N,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAAyDsxE,CAAEtxE,EAAE,sBAAsBnP,EAAEmP,EAAE,YAAYi8pB,MAAMvjmB,EAAE7nE,EAAE6rqB,iBAAiBnlmB,EAAE1mE,EAAE2rqB,oBAAoBrspB,EAAE,WAAW,SAASnQ,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKohjB,cAAchsjB,EAAE4K,KAAK+imB,gBAAgB,IAAIrrqB,EAAE+9I,QAAQrgF,EAAE,CAAC,IAAIA,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,QAAQ7kB,MAAM,SAASmO,GAAG,IAAIA,EAAEq8pB,kBAAkB,OAAO,KAAK,IAAI,IAAI1smB,EAAE4K,KAAKohjB,cAAcjylB,EAAE,GAAGykC,EAAEnuD,EAAEg8pB,mBAAmB7tmB,IAAIuK,EAAEvK,EAAEwB,KAAK4H,EAAEpJ,GAAGA,EAAEnuD,EAAEg8pB,mBAAmBtyoB,EAAEp0B,KAAK64D,EAAE6hI,OAAOhwL,EAAE88pB,iBAAiB3umB,GAAG,OAAOoM,KAAK+imB,gBAAgB/wqB,OAAOm9B,EAAE2b,KAAK,IAAI,MAAM8oB,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAA9e,GAAkf0pB,EAAEsmH,QAAQ7/H,CAAC,EAAE,CAAC,WAAW,IAAI,oBAAoB,MAAM,IAAI,CAAC,SAASnQ,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAyD55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAvG,SAAS+N,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAAyDsxE,CAAEtxE,EAAE,sBAAsBnP,EAAEmP,EAAE,YAAYi8pB,MAAMvjmB,EAAE7nE,EAAE6rqB,iBAAiBnlmB,EAAE1mE,EAAE2rqB,oBAAoBrspB,EAAEtf,EAAE0sqB,uBAAuBx9lB,EAAElvE,EAAEusqB,aAAa7vmB,EAAE,WAAW,SAASvtD,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKohjB,cAAchsjB,EAAE4K,KAAK+imB,gBAAgB,IAAIrrqB,EAAE+9I,QAAQrgF,EAAE,CAAC,IAAIA,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,QAAQ7kB,MAAM,SAASmO,GAAG,IAAIA,EAAEq8pB,kBAAkB,OAAO,KAAK,IAAI1smB,EAAE3vD,EAAEvH,OAAOixB,EAAE6wC,KAAKijmB,wBAAwBx9pB,GAAGmuD,EAAEzkC,EAAE+zoB,kBAAkBnslB,EAAE5nD,EAAEklH,IAAI,IAAIzgF,EAAE,CAAC,GAAGnuD,EAAE09pB,UAAU/tmB,IAAI3vD,EAAE47pB,YAAY,MAAM,IAAIxtpB,MAAM,kCAAkCyoC,OAAO0jB,KAAKohjB,cAAc3le,MAAM,mBAAmBn/F,OAAO72C,EAAEo8pB,eAAet8oB,QAAQ,SAAS,QAAQ,MAAM,OAAO,IAAI,CAAC,OAAOy6C,KAAKojmB,wBAAwB39pB,GAAGsxE,CAAC,GAAG,CAAC56D,IAAI,0BAA0B7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE4K,KAAKohjB,cAAcjylB,GAAE,EAAGykC,GAAE,EAAGmjB,EAAE,GAAGr/E,EAAE+N,EAAEg8pB,oBAAoB7tmB,GAAG,OAAOl8D,EAAEA,EAAE+N,EAAEg8pB,mBAAmB,CAAC,IAAInrqB,EAAEkvE,EAAE9tE,EAAE09D,GAAG,IAAIjmC,GAAG74B,EAAE64B,GAAE,OAAQ,GAAGA,EAAE,GAAGvZ,EAAEle,EAAE09D,GAAG,CAAC3vD,EAAE88pB,iBAAiB7qqB,GAAG,IAAIymE,EAAE14D,EAAEg8pB,mBAAmB,OAAOtjmB,GAAGqH,EAAErH,EAAE/I,IAAI2hB,EAAEh8E,KAAKojE,EAAEs3H,OAAO/9L,EAAEymE,GAAG7nE,EAAEs9D,GAAE,EAAGmjB,EAAEh8E,KAAKrD,EAAE+9L,MAAM,MAAMn/L,EAAEs9D,GAAE,EAAGmjB,EAAEh8E,KAAKrD,EAAE+9L,OAAOhwL,EAAE88pB,iBAAiB7qqB,EAAE,CAAC,MAAM,CAAC28I,IAAIr0E,KAAK+imB,gBAAgB/wqB,OAAO+kF,EAAEjsC,KAAK,KAAKo4nB,kBAAkBtvmB,EAAE,GAAG,CAACz3C,IAAI,0BAA0B7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE4K,KAAKohjB,cAAcjylB,EAAE1pB,EAAEu8pB,kBAAkB,GAAG7yoB,EAAE,CAAC,IAAIykC,EAAEuK,EAAEhvC,EAAEimC,GAAG2hB,EAAE/Z,EAAE7tC,GAAG,IAAIykC,IAAImjB,EAAE,CAAC,IAAIr/E,EAAE+N,EAAEo8pB,eAAe3rqB,OAAO,EAAE,IAAIqvB,QAAQ,UAAU,QAAQ,MAAM,IAAI1R,MAAM,2BAA2ByoC,OAAO8Y,EAAE2rmB,iBAAiB,wBAAwBzknB,OAAOntB,EAAEsmK,MAAM,WAAWn5I,OAAO5kD,GAAG,CAAC+N,EAAEq9pB,eAAe3zoB,EAAE,MAAM1pB,EAAE47pB,aAAa57pB,EAAEm8pB,iBAAiB,MAAMhumB,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAAt7C,GAA07C0pB,EAAEsmH,QAAQziF,CAAC,EAAE,CAAC,WAAW,IAAI,oBAAoB,MAAM,IAAI,CAAC,SAASvtD,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIs8D,EAAEnuD,EAAE,kBAAkB0pB,EAAEkzoB,aAAazumB,EAAE6hF,QAAQ,IAAI1+D,EAAEtxE,EAAE,2BAA2B0pB,EAAEk0oB,sBAAsBtslB,EAAE0+D,QAAQ,IAAI/9I,EAAE+N,EAAE,wBAAwB0pB,EAAEm0oB,mBAAmB5rqB,EAAE+9I,QAAQ,IAAIn/I,EAAEmP,EAAE,qBAAqB0pB,EAAEo0oB,gBAAgBjtqB,EAAEm/I,OAAO,EAAE,CAAC,oBAAoB,IAAI,iBAAiB,IAAI,0BAA0B,IAAI,uBAAuB,MAAM,IAAI,CAAC,SAAShwI,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIs8D,EAAEnuD,EAAE,YAAY0pB,EAAE2pS,OAAOllQ,EAAE6hF,QAAQ,IAAI1+D,EAAEtxE,EAAE,eAAe0pB,EAAEq0oB,UAAUzslB,EAAE0+D,QAAQ,IAAI/9I,EAAE+N,EAAE,aAAa0pB,EAAEqjF,QAAQ96G,EAAE86G,QAAQ,IAAIl8G,EAAEmP,EAAE,WAAW0pB,EAAEuyoB,MAAMprqB,EAAEorqB,MAAM,IAAIvjmB,EAAE14D,EAAE,YAAY0pB,EAAEkzoB,aAAalkmB,EAAEkkmB,aAAalzoB,EAAEk0oB,sBAAsBllmB,EAAEklmB,sBAAsBl0oB,EAAEm0oB,mBAAmBnlmB,EAAEmlmB,kBAAkB,EAAE,CAAC,WAAW,IAAI,cAAc,IAAI,YAAY,IAAI,UAAU,IAAI,WAAW,MAAM,IAAI,CAAC,SAAS79pB,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,IAAImjB,EAAE,SAAStxE,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,EAAEuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAEq/E,EAAEtxE,EAAE,uBAAuBnP,EAAEygF,EAAEtxE,EAAE,sBAAsB04D,EAAE4Y,EAAEtxE,EAAE,gBAAgBu3D,EAAE+Z,EAAEtxE,EAAE,mBAAmBmQ,EAAE,WAAW,SAASnQ,EAAE2vD,IAAI,SAAS3vD,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKmtH,QAAQ,KAAKntH,KAAKyjmB,iBAAgB,EAAGzjmB,KAAK0jmB,mBAAkB,EAAG1jmB,KAAK2jmB,mBAAkB,EAAG3jmB,KAAK4jmB,cAAc,EAAE5jmB,KAAKohjB,cAAchsjB,GAAE,IAAKA,EAAE+3H,QAAQntH,KAAK0jmB,mBAAkB,EAAGr0mB,MAAMC,QAAQ8F,EAAE+3H,SAASntH,KAAK6jmB,WAAWzumB,EAAE+3H,SAAS72L,EAAEm/I,QAAQrgF,EAAE+3H,WAAWntH,KAAK8jmB,iBAAiB1umB,EAAE+3H,QAAQ,CAAC,IAAI/3H,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,YAAY7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO4K,KAAK+jmB,aAAat+pB,GAAG2vD,EAAE,KAAK4K,KAAKgkmB,WAAWv+pB,IAAI2vD,EAAE,KAAK,CAACn2D,IAAI,KAAKmoI,SAAQ,GAAI,GAAG,CAACjrH,IAAI,eAAe7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE4K,KAAKohjB,cAAc,IAAIphjB,KAAK8jmB,kBAAkB1umB,EAAEurmB,gBAAgB3gmB,KAAK2jmB,kBAAkB,CAAC,IAAI3jmB,KAAKyjmB,gBAAgB,MAAM,IAAI5vpB,MAAM,oEAAoE,OAAOmsD,KAAK2jmB,mBAAkB,GAAG,CAAE,CAAC,IAAI3jmB,KAAKyjmB,iBAAiBp0mB,MAAMC,QAAQ7pD,GAAG,CAAC,GAAGu6D,KAAK8jmB,iBAAiB9jmB,KAAK6jmB,WAAW7jmB,KAAK8jmB,iBAAiBr+pB,QAAQ,CAAC,IAAIu6D,KAAK0jmB,kBAAkB,OAAM,EAAG1jmB,KAAK6jmB,WAAWp+pB,EAAE,CAAC,OAAM,CAAE,CAAC,OAAM,CAAE,GAAG,CAAC0W,IAAI,aAAa7kB,MAAM,SAASmO,GAAG,IAAIu6D,KAAKmtH,QAAQ,MAAM,CAACluL,IAAIwG,EAAE2hI,SAAQ,GAAI,IAAIhyE,EAAE4K,KAAKohjB,cAAc,IAAIhsjB,EAAEyrmB,wBAAwBp7pB,EAAE9N,OAAOqoE,KAAK4jmB,cAAc,CAAC,IAAIxumB,EAAEwrmB,qBAAqB,MAAM,IAAI/spB,MAAM,sDAAsDyoC,OAAO0jB,KAAK4jmB,cAAc,kBAAkBtnnB,OAAO72C,EAAE9N,SAAS,MAAM,CAACsH,IAAIwG,EAAE2hI,SAAQ,EAAGvpH,OAAO,oCAAoCy+B,OAAO0jB,KAAK4jmB,cAAc,kBAAkBtnnB,OAAO72C,EAAE9N,QAAQ,CAAC,OAAOy9D,EAAEwrmB,sBAAsBn7pB,EAAE9N,OAAOqoE,KAAK4jmB,cAAc,CAAC3kqB,IAAIwG,EAAE2hI,SAAQ,EAAGvpH,OAAO,oCAAoCy+B,OAAO0jB,KAAK4jmB,cAAc,kBAAkBtnnB,OAAO72C,EAAE9N,SAAS,CAACsH,IAAI+gE,KAAKikmB,WAAWx+pB,GAAG2hI,SAAQ,EAAG,GAAG,CAACjrH,IAAI,aAAa7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE,CAAC,EAAEjmC,EAAE6wC,KAAKmtH,QAAQv5H,EAAEoM,KAAK4jmB,cAAc7slB,EAAE,EAAEA,EAAEnjB,EAAEmjB,GAAG,EAAE,CAAC,IAAIzgF,EAAE64B,EAAE4nD,GAAG,IAAIr/E,EAAE+9I,QAAQn/I,GAAG,CAAC,IAAI6nE,EAAE14D,EAAEsxE,GAAGr/E,EAAE+9I,QAAQt3E,GAAG/I,EAAE9+D,GAAG,GAAG8+D,EAAE9+D,GAAG6nE,CAAC,CAAC,CAAC,OAAO/I,CAAC,GAAG,CAACj5C,IAAI,aAAa7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAEjmC,EAAE1pB,EAAEhQ,QAAQ,SAASgQ,GAAG,QAAQA,CAAC,IAAI,GAAG04D,EAAEs3E,QAAQtmH,GAAGx3B,SAASw3B,EAAEx3B,OAAO,CAAC,IAAIi8D,EAAEoJ,EAAEy4E,QAAQtmH,GAAG4nD,EAAE/8D,OAAOs+B,KAAKsb,GAAGn+D,QAAQ,SAASgQ,GAAG,OAAOmuD,EAAEnuD,GAAG9N,OAAO,CAAC,IAAI,MAAM,IAAIkc,MAAM,2BAA2ByoC,OAAOvrC,KAAKE,UAAU8lE,IAAI,CAAC/W,KAAKmtH,QAAQ1nL,EAAEu6D,KAAKyjmB,iBAAgB,EAAGzjmB,KAAK4jmB,eAAe,QAAQxumB,EAAE4K,KAAKmtH,eAAU,IAAS/3H,OAAE,EAAOA,EAAEz9D,SAAS,CAAC,MAAMi8D,EAAEwB,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAAlvE,GAAsvE0pB,EAAEsmH,QAAQ7/H,CAAC,EAAE,CAAC,iBAAiB,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,cAAc,MAAM,IAAI,CAAC,SAASnQ,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAyD55C,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAII,EAAvG,SAAS+N,GAAG,OAAOA,GAAGA,EAAEonO,WAAWpnO,EAAE,CAACgwI,QAAQhwI,EAAE,CAAyDsxE,CAAEtxE,EAAE,sBAAsBnP,EAAEmP,EAAE,YAAY04D,EAAE,WAAW,SAAS14D,KAAK,SAASA,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAK29lB,cAAc,KAAK39lB,KAAKkkmB,cAAc,IAAI,CAAC,IAAI9umB,EAAEjmC,EAAE4nD,EAAE,OAAO3hB,EAAE3vD,EAAEsxE,EAAE,CAAC,CAAC56D,IAAI,kBAAkB7kB,MAAM,SAASmO,GAAG,OAAOnP,EAAE6tqB,gBAAgB1+pB,GAAG,SAAS2vD,EAAEjmC,GAAG,IAAIykC,EAAE,KAAK,IAAIA,EAAEnuD,EAAE2vD,EAAE,CAAC,MAAM3vD,GAAG,OAAO0pB,EAAE1pB,EAAE,CAAC,OAAO0pB,EAAE,KAAKykC,EAAE,EAAEnuD,CAAC,GAAG,CAAC0W,IAAI,kBAAkB7kB,MAAM,SAASmO,GAAG,OAAOnP,EAAE8tqB,eAAe3+pB,GAAG,SAAS2vD,EAAEjmC,GAAGA,EAAE,KAAK,CAAClwB,IAAIm2D,EAAEgyE,QAAQ3hI,EAAE2vD,IAAI,EAAE,SAASA,EAAEjmC,GAAG1pB,EAAE2vD,GAAG,SAAS3vD,EAAEmuD,EAAEmjB,GAAG,OAAOtxE,EAAE0pB,EAAE1pB,GAAG0pB,EAAE,KAAKykC,EAAE,CAAC30D,IAAIm2D,EAAEgyE,QAAQxzE,EAAE/1C,OAAOk5D,GAAG,CAAC93E,IAAIm2D,EAAEgyE,SAAQ,EAAGvpH,OAAOk5D,GAAG,GAAG,CAAC,KAAK5nD,EAAE,CAAC,CAAChT,IAAI,uBAAuB7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK,OAAOA,KAAK89lB,gBAAgBr4pB,GAAG,SAASA,EAAEmuD,GAAG,OAAOnuD,EAAE2vD,EAAE3vD,GAAGmuD,EAAEzkC,EAAEk1oB,cAAczwmB,GAAG,SAASnuD,EAAE0pB,GAAG,OAAO1pB,EAAE2vD,EAAE3vD,GAAG0pB,IAAIA,EAAEi4G,QAAQhyE,EAAE,KAAK,CAACn2D,IAAI20D,EAAEwzE,SAAQ,EAAGvpH,OAAOsR,EAAEtR,SAASu3C,EAAE,KAAK,CAACn2D,IAAI20D,EAAEwzE,SAAQ,GAAI,IAAIhyE,EAAE,KAAK,CAACn2D,IAAI,KAAKmoI,SAAQ,GAAI,GAAG,GAAG,CAACjrH,IAAI,kBAAkB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO4K,KAAK29lB,cAAc39lB,KAAK29lB,cAAcl4pB,EAAE2vD,GAAGA,EAAE,KAAK3vD,EAAE,GAAG,CAAC0W,IAAI,gBAAgB7kB,MAAM,SAASmO,EAAE2vD,GAAG,OAAO4K,KAAKkkmB,cAAclkmB,KAAKkkmB,cAAcz+pB,EAAE2vD,GAAGA,EAAE,KAAK,CAACn2D,IAAIwG,EAAE2hI,SAAQ,GAAI,GAAG,CAACjrH,IAAI,eAAe2sD,IAAI,SAAS1T,GAAG,IAAI19D,EAAE+9I,QAAQrgF,GAAG,MAAM,IAAI47D,UAAU,sCAAsChxD,KAAK29lB,cAAcl4pB,EAAE04pB,gBAAgB/omB,EAAE,GAAG,CAACj5C,IAAI,eAAe2sD,IAAI,SAAS1T,GAAG,IAAI19D,EAAE+9I,QAAQrgF,GAAG,MAAM,IAAI47D,UAAU,qCAAqChxD,KAAKkkmB,cAAcz+pB,EAAE6+pB,gBAAgBlvmB,EAAE,MAAMxB,EAAEwB,EAAE7I,UAAUp9B,GAAG4nD,GAAGnjB,EAAEwB,EAAE2hB,GAAGtxE,CAAC,CAAz5C,GAA65C0pB,EAAEsmH,QAAQt3E,CAAC,EAAE,CAAC,WAAW,IAAI,oBAAoB,MAAM,IAAI,CAAC,SAAS14D,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIs8D,EAAEnuD,EAAE,6BAA6B0pB,EAAEswoB,wBAAwB7rmB,EAAE6hF,QAAQ,IAAI1+D,EAAEtxE,EAAE,uBAAuB0pB,EAAEmwoB,kBAAkBvolB,EAAE0+D,OAAO,EAAE,CAAC,sBAAsB,IAAI,4BAA4B,MAAM,IAAI,CAAC,SAAShwI,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK63B,EAAEg1oB,gBAAgB,SAAS1+pB,GAAG,OAAO,IAAIA,EAAE9N,MAAM,EAAEw3B,EAAEi1oB,eAAe,SAAS3+pB,GAAG,OAAO,IAAIA,EAAE9N,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,eAAe4zH,OAAOtiD,EAAEtxE,EAAE,UAAUmsnB,UAAU,SAASl6nB,EAAE+N,GAAGsxE,EAAEvb,KAAKwE,MAAMA,KAAKukmB,OAAO3wmB,EAAE0lE,YAAY7zH,GAAGu6D,KAAKwkmB,WAAW/+pB,EAAEu6D,KAAKykmB,aAAa,EAAEzkmB,KAAK0kmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG1kmB,KAAK2kmB,YAAW,CAAE,CAACl/pB,EAAE,WAAFA,CAAc/N,EAAEq/E,GAAGr/E,EAAE60D,UAAU85lB,WAAW,SAAS5gpB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,KAAK,IAAIoM,KAAK4lL,OAAOngP,EAAE2vD,EAAE,CAAC,MAAM3vD,GAAGmuD,EAAEnuD,CAAC,CAAC0pB,EAAEykC,EAAE,EAAEl8D,EAAE60D,UAAU0mkB,OAAO,SAASxtnB,GAAG,IAAI2vD,EAAE,KAAK,IAAI4K,KAAKjlE,KAAKilE,KAAKmxjB,SAAS,CAAC,MAAM1rnB,GAAG2vD,EAAE3vD,CAAC,CAACA,EAAE2vD,EAAE,EAAE19D,EAAE60D,UAAUq5L,OAAO,SAASngP,EAAE2vD,GAAG,GAAG,SAAS3vD,GAAK,IAAImuD,EAAE+mE,SAASl1H,IAAI,iBAAiBA,EAAE,MAAM,IAAIurH,UAAU57D,oCAAkC,CAA1G,CAA4G3vD,GAAUu6D,KAAK2kmB,WAAW,MAAM,IAAI9wpB,MAAM,yBAAyB+/C,EAAE+mE,SAASl1H,KAAKA,EAAEmuD,EAAExuC,KAAK3f,EAAE2vD,IAAI,IAAI,IAAIjmC,EAAE6wC,KAAKukmB,OAAOxtlB,EAAE,EAAE/W,KAAKykmB,aAAah/pB,EAAE9N,OAAOo/E,GAAG/W,KAAKwkmB,YAAY,CAAC,IAAI,IAAI9sqB,EAAEsoE,KAAKykmB,aAAa/sqB,EAAEsoE,KAAKwkmB,YAAYr1oB,EAAEz3B,KAAK+N,EAAEsxE,KAAK/W,KAAKwkgB,UAAUxkgB,KAAKykmB,aAAa,CAAC,CAAC,KAAK1tlB,EAAEtxE,EAAE9N,QAAQw3B,EAAE6wC,KAAKykmB,gBAAgBh/pB,EAAEsxE,KAAK,IAAI,IAAIzgF,EAAE,EAAE6nE,EAAE,EAAE14D,EAAE9N,OAAOwmE,EAAE,IAAI7nE,EAAE0pE,KAAK0kmB,QAAQpuqB,IAAI6nE,GAAGA,EAAE6B,KAAK0kmB,QAAQpuqB,GAAG,WAAW,GAAG,IAAI0pE,KAAK0kmB,QAAQpuqB,IAAI,WAAW6nE,GAAG,OAAO6B,IAAI,EAAEtoE,EAAE60D,UAAUi4gB,QAAQ,WAAW,MAAM,IAAI3wjB,MAAM,6BAA6B,EAAEnc,EAAE60D,UAAU4kkB,OAAO,SAAS1rnB,GAAG,GAAGu6D,KAAK2kmB,WAAW,MAAM,IAAI9wpB,MAAM,yBAAyBmsD,KAAK2kmB,YAAW,EAAG,IAAIvvmB,EAAE4K,KAAK4kmB,eAAU,IAASn/pB,IAAI2vD,EAAEA,EAAE1jE,SAAS+T,IAAIu6D,KAAKukmB,OAAOp6kB,KAAK,GAAGnqB,KAAKykmB,aAAa,EAAE,IAAI,IAAIt1oB,EAAE,EAAEA,EAAE,IAAIA,EAAE6wC,KAAK0kmB,QAAQv1oB,GAAG,EAAE,OAAOimC,CAAC,EAAE19D,EAAE60D,UAAUq4mB,QAAQ,WAAW,MAAM,IAAI/wpB,MAAM,6BAA6B,EAAEuhD,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC2xjB,SAAS,IAAI,cAAc,IAAIgsE,OAAO,MAAM,IAAI,CAAC,SAAS5vnB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEzkC,EAAEykC,EAAEklB,MAAMrzE,EAAE,gBAAgBmuD,EAAEwlM,OAAO3zP,EAAE,iBAAiBmuD,EAAEixmB,IAAIp/pB,EAAE,cAAcmuD,EAAEkxmB,OAAOr/pB,EAAE,iBAAiBmuD,EAAEmxmB,KAAKt/pB,EAAE,eAAemuD,EAAEoxmB,KAAKpxmB,EAAEixmB,IAAIG,KAAKpxmB,EAAEytlB,OAAOztlB,EAAEixmB,IAAIxjB,OAAOztlB,EAAE0tlB,OAAO1tlB,EAAEixmB,IAAIvjB,OAAO1tlB,EAAE2tlB,OAAO3tlB,EAAEixmB,IAAItjB,OAAO3tlB,EAAE4tlB,OAAO5tlB,EAAEixmB,IAAIrjB,OAAO5tlB,EAAE+1lB,UAAU/1lB,EAAEkxmB,OAAOnb,SAAS,EAAE,CAAC,gBAAgB,IAAI,cAAc,IAAI,gBAAgB,IAAI,aAAa,IAAI,eAAe,MAAM,IAAI,CAAC,SAASlkpB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,uBAAuB,SAAS/N,IAAIsoE,KAAKq8N,QAAQ,KAAKr8N,KAAKilmB,aAAa,EAAEjlmB,KAAKw8kB,UAAUx8kB,KAAKxT,YAAYgwlB,UAAUx8kB,KAAKklmB,QAAQllmB,KAAKxT,YAAY04mB,QAAQllmB,KAAK82lB,aAAa92lB,KAAKxT,YAAYsqmB,aAAa92lB,KAAKmlmB,UAAUnlmB,KAAKxT,YAAY24mB,UAAU,EAAEnlmB,KAAKolmB,OAAO,MAAMplmB,KAAKqlmB,QAAQrlmB,KAAKw8kB,UAAU,EAAEx8kB,KAAKslmB,SAAStlmB,KAAKw8kB,UAAU,EAAE,CAACrtnB,EAAEo2oB,UAAU7tqB,EAAEA,EAAE60D,UAAUq5L,OAAO,SAASngP,EAAE2vD,GAAG,GAAG3vD,EAAEmuD,EAAE5B,QAAQvsD,EAAE2vD,GAAG4K,KAAKq8N,QAAQr8N,KAAKq8N,QAAQr8N,KAAKq8N,QAAQ//O,OAAO72C,GAAGu6D,KAAKq8N,QAAQ52R,EAAEu6D,KAAKilmB,cAAcx/pB,EAAE9N,OAAOqoE,KAAKq8N,QAAQ1kS,QAAQqoE,KAAKqlmB,QAAQ,CAAC,IAAIl2oB,GAAG1pB,EAAEu6D,KAAKq8N,SAAS1kS,OAAOqoE,KAAKqlmB,QAAQrlmB,KAAKq8N,QAAQ52R,EAAE0tD,MAAM1tD,EAAE9N,OAAOw3B,EAAE1pB,EAAE9N,QAAQ,IAAIqoE,KAAKq8N,QAAQ1kS,SAASqoE,KAAKq8N,QAAQ,MAAM52R,EAAEmuD,EAAE4xmB,OAAO//pB,EAAE,EAAEA,EAAE9N,OAAOw3B,EAAE6wC,KAAKolmB,QAAQ,IAAI,IAAIrulB,EAAE,EAAEA,EAAEtxE,EAAE9N,OAAOo/E,GAAG/W,KAAKslmB,SAAStlmB,KAAKwkgB,QAAQ/+jB,EAAEsxE,EAAEA,EAAE/W,KAAKslmB,SAAS,CAAC,OAAOtlmB,IAAI,EAAEtoE,EAAE60D,UAAU4kkB,OAAO,SAAS1rnB,GAAG,OAAOu6D,KAAK4lL,OAAO5lL,KAAKuvlB,QAAQx4kB,EAAE,OAAO/W,KAAKq8N,SAASr8N,KAAK4kmB,QAAQn/pB,EAAE,EAAE/N,EAAE60D,UAAUgjmB,KAAK,WAAW,IAAI9ppB,EAAEu6D,KAAKilmB,aAAa7vmB,EAAE4K,KAAKqlmB,QAAQl2oB,EAAEimC,GAAG3vD,EAAEu6D,KAAKmlmB,WAAW/vmB,EAAExB,EAAE,IAAIvE,MAAMlgC,EAAE6wC,KAAKmlmB,WAAWvxmB,EAAE,GAAG,IAAI,IAAI,IAAImjB,EAAE,EAAEA,EAAE5nD,EAAE4nD,IAAInjB,EAAEmjB,GAAG,EAAE,GAAGtxE,IAAI,EAAE,QAAQu6D,KAAKolmB,OAAO,CAAC,IAAI,IAAI1tqB,EAAE,EAAEA,EAAEsoE,KAAKmlmB,UAAUztqB,IAAIk8D,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAKtxE,IAAI,GAAG,IAAImuD,EAAEmjB,KAAKtxE,IAAI,GAAG,IAAImuD,EAAEmjB,KAAKtxE,IAAI,EAAE,IAAImuD,EAAEmjB,KAAK,IAAItxE,CAAC,MAAM,IAAImuD,EAAEmjB,KAAK,IAAItxE,EAAEmuD,EAAEmjB,KAAKtxE,IAAI,EAAE,IAAImuD,EAAEmjB,KAAKtxE,IAAI,GAAG,IAAImuD,EAAEmjB,KAAKtxE,IAAI,GAAG,IAAImuD,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEnjB,EAAEmjB,KAAK,EAAEr/E,EAAE,EAAEA,EAAEsoE,KAAKmlmB,UAAUztqB,IAAIk8D,EAAEmjB,KAAK,EAAE,OAAOnjB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,sBAAsB,MAAM,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,uBAAuB,SAAS/N,EAAE+N,EAAE2vD,EAAEjmC,GAAG,KAAK6wC,gBAAgBtoE,GAAG,OAAO,IAAIA,EAAE+N,EAAE2vD,EAAEjmC,GAAG6wC,KAAKs3D,KAAK7xH,EAAEu6D,KAAKw8kB,UAAU/2oB,EAAE+2oB,UAAU,EAAEx8kB,KAAKklmB,QAAQz/pB,EAAEy/pB,QAAQ,EAAEllmB,KAAKmkG,MAAM,KAAKnkG,KAAKylmB,MAAM,KAAKzlmB,KAAKqpV,MAAMz1V,EAAE5B,QAAQoD,EAAEjmC,GAAG,CAACimC,EAAE8jE,QAAQxhI,EAAEA,EAAE60D,UAAU88V,MAAM,SAAS5jZ,GAAGA,EAAE9N,OAAOqoE,KAAKw8kB,YAAY/2oB,GAAG,IAAIu6D,KAAKs3D,MAAMsuH,OAAOngP,GAAG0rnB,UAAUp6iB,EAAEtxE,EAAE9N,QAAQqoE,KAAKw8kB,WAAW,IAAI,IAAIpnlB,EAAE3vD,EAAE9N,OAAOy9D,EAAE4K,KAAKw8kB,UAAUpnlB,IAAI3vD,EAAE1K,KAAK,GAAG,IAAIq6D,EAAE,EAAEA,EAAE3vD,EAAE9N,OAAOy9D,IAAI3vD,EAAE2vD,IAAI,GAAG,IAAI4K,KAAKmkG,OAAO,IAAInkG,KAAKs3D,MAAMsuH,OAAOngP,GAAG2vD,EAAE,EAAEA,EAAE3vD,EAAE9N,OAAOy9D,IAAI3vD,EAAE2vD,IAAI,IAAI4K,KAAKylmB,OAAO,IAAIzlmB,KAAKs3D,MAAMsuH,OAAOngP,EAAE,EAAE/N,EAAE60D,UAAUq5L,OAAO,SAASngP,EAAE2vD,GAAG,OAAO4K,KAAKmkG,MAAMyhF,OAAOngP,EAAE2vD,GAAG4K,IAAI,EAAEtoE,EAAE60D,UAAU4kkB,OAAO,SAAS1rnB,GAAG,OAAOu6D,KAAKylmB,MAAM7/a,OAAO5lL,KAAKmkG,MAAMgtd,UAAUnxjB,KAAKylmB,MAAMt0C,OAAO1rnB,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,sBAAsB,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,YAAY/N,EAAEk8D,EAAE8xmB,OAAOpvqB,EAAEs9D,EAAE+xmB,MAAMxnmB,EAAEvK,EAAEgymB,QAAQ5omB,EAAEpJ,EAAEiymB,QAAQjwpB,EAAEmhE,EAAEwulB,UAAU,SAAS//lB,IAAI,KAAKxF,gBAAgBwF,GAAG,OAAO,IAAIA,EAAE5vD,EAAE4lD,KAAKwE,MAAMA,KAAKwC,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,YAAYxC,KAAKolmB,OAAO,QAAQ,CAAC,SAASpymB,EAAEvtD,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAOnuD,GAAG,GAAG2vD,EAAEjmC,EAAEykC,EAAEnuD,GAAG,GAAG2vD,EAAEjmC,GAAGimC,EAAExB,EAAEnuD,GAAG,IAAI2vD,GAAGjmC,GAAGykC,EAAEnuD,GAAG,GAAG2vD,EAAExB,EAAEzkC,GAAGykC,EAAEwB,GAAGjmC,GAAGykC,EAAE,CAAC,SAAS4O,EAAE/8D,GAAG,OAAOA,GAAG,GAAG,EAAEA,GAAG,GAAG,WAAWA,GAAG,GAAG,WAAWA,GAAG,GAAG,WAAW,UAAU,CAAC,SAASm3D,EAAEn3D,GAAG,OAAOA,GAAG,GAAG,WAAWA,GAAG,GAAG,WAAWA,GAAG,GAAG,WAAWA,GAAG,GAAG,WAAW,CAAC,CAACmuD,EAAEy1f,SAAS7jf,EAAE5vD,GAAGuZ,EAAEw6nB,UAAUnklB,EAAEA,EAAEg3kB,UAAU,IAAIh3kB,EAAE0/lB,QAAQ,IAAI1/lB,EAAEsxlB,aAAa,IAAItxlB,EAAE2/lB,UAAU,GAAG3/lB,EAAEjZ,UAAUi4gB,QAAQ,SAAS/+jB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE6wC,KAAKwC,EAAE,GAAG5O,EAAEoM,KAAKwC,EAAE,GAAGuU,EAAE/W,KAAKwC,EAAE,GAAG5sD,EAAEoqD,KAAKwC,EAAE,GAAGgD,EAAExF,KAAKwC,EAAE,GAAGtQ,EAAE/iC,EAAE2zC,EAAElP,EAAEqrQ,EAAEloP,EAAEsf,EAAEzgF,EAAEgnL,EAAEp3H,EAAEnvE,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,IAAIkpU,EAAEjpU,EAAEoB,EAAEslE,EAAE7tC,EAAE6jC,EAAE38D,EAAEu9D,EAAEmjB,EAAEnhE,GAAGnQ,EAAEsuD,EAAE19D,GAAG++D,GAAGoN,EAAEnsE,IAAIk6E,EAAEl6E,IAAImvE,GAAGr2C,EAAEq2C,EAAEA,EAAE5vD,EAAEA,EAAEle,EAAEq/E,EAAE,IAAIA,EAAEnjB,EAAEA,EAAE2rQ,EAAEA,EAAEjpU,EAAEoB,EAAEslE,EAAE9K,EAAEc,EAAE,GAAG38D,EAAEysE,EAAEm8P,EAAE5oO,GAAG5wF,EAAE+jC,EAAEnzC,GAAG++D,GAAGwH,EAAEvmE,IAAIE,EAAEF,IAAIumM,GAAG1qI,EAAE0qI,EAAEA,EAAEvmG,EAAEA,EAAE3+F,EAAEunU,EAAE,IAAIA,EAAEn8P,EAAEA,EAAEy8P,CAAC,CAACA,EAAEphQ,EAAE6B,KAAKwC,EAAE,GAAGuU,EAAEsf,GAAGr2B,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG5sD,EAAEgnL,GAAG58H,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGgD,EAAEtT,GAAG8N,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGrzC,EAAE2zC,GAAG9C,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG5O,EAAEqrQ,GAAGj/P,KAAKwC,EAAE,GAAG+8P,CAAC,EAAE/5P,EAAEjZ,UAAUq4mB,QAAQ,SAASn/pB,GAAG,MAAM,QAAQA,EAAEmuD,EAAEkymB,QAAQ9lmB,KAAKwC,EAAE,UAAU5O,EAAEmymB,QAAQ/lmB,KAAKwC,EAAE,SAAS,EAAE,IAAIzO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAIvqB,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI+mC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAGh6E,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,IAAI,UAAU,MAAM,IAAI,CAAC,SAASkP,EAAE2vD,EAAEjmC,GAAGA,EAAE61oB,KAAKv/pB,EAAE,WAAW0pB,EAAEmynB,OAAO77oB,EAAE,aAAa0pB,EAAEkynB,OAAO57oB,EAAE,aAAa0pB,EAAEoynB,OAAO97oB,EAAE,aAAa0pB,EAAEqynB,OAAO/7oB,EAAE,YAAY,EAAE,CAAC,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,YAAYnP,EAAEs9D,EAAE8xmB,OAAOvnmB,EAAEvK,EAAE+xmB,MAAM3omB,EAAEpJ,EAAEoymB,QAAQpwpB,EAAEle,EAAEuuqB,KAAKzgmB,EAAEuR,EAAEwulB,UAAUvymB,EAAE,CAAC,WAAW,WAAW,WAAW,YAAY,SAASwP,IAAI,KAAKxC,gBAAgBwC,GAAG,OAAO,IAAIA,EAAEgD,EAAEhK,KAAKwE,MAAMA,KAAKwC,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,YAAYxC,KAAKtpC,EAAE,IAAI24B,MAAM,GAAG,CAACuE,EAAEy1f,SAAS7mf,EAAEgD,GAAGpQ,EAAE8jE,QAAQ12D,EAAEA,EAAEg6kB,UAAU,IAAIh6kB,EAAE0imB,QAAQ,IAAI1imB,EAAEs0lB,aAAa,GAAGt0lB,EAAE2imB,UAAU,GAAG3imB,EAAEjW,UAAUi4gB,QAAQ,SAAS/+jB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE6wC,KAAKtpC,EAAEk9B,EAAE,EAAEA,EAAE,GAAGA,IAAIzkC,EAAEykC,GAAGnuD,EAAE2vD,EAAExB,GAAG,KAAKA,EAAEzkC,EAAEx3B,OAAOi8D,IAAIzkC,EAAEykC,GAAGt9D,EAAE64B,EAAEykC,EAAE,GAAGzkC,EAAEykC,EAAE,GAAGzkC,EAAEykC,EAAE,IAAIzkC,EAAEykC,EAAE,IAAI,GAAG,IAAImjB,EAAE/W,KAAKwC,EAAE,GAAG9qE,EAAEsoE,KAAKwC,EAAE,GAAGgD,EAAExF,KAAKwC,EAAE,GAAGA,EAAExC,KAAKwC,EAAE,GAAG5F,EAAEoD,KAAKwC,EAAE,GAAG,IAAI5O,EAAE,EAAEA,EAAEzkC,EAAEx3B,OAAOi8D,IAAI,CAAC,IAAIG,KAAKH,EAAE,IAAIpqB,EAAEwzB,EAAE1mE,EAAEygF,EAAE,GAAGnhE,EAAEm+C,EAAEr8D,EAAE8tE,EAAEhD,GAAG5F,EAAEztC,EAAEykC,GAAGZ,EAAEe,IAAI6I,EAAE4F,EAAEA,EAAEgD,EAAEA,EAAElvE,EAAEoB,EAAE,IAAIA,EAAEq/E,EAAEA,EAAEvtC,CAAC,CAACw2B,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGuU,GAAG/W,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG9qE,GAAGsoE,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGgD,GAAGxF,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGA,GAAGxC,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG5F,EAAE,EAAE4F,EAAEjW,UAAUq4mB,QAAQ,SAASn/pB,GAAG,MAAM,QAAQA,EAAEmuD,EAAEkymB,QAAQ9lmB,KAAKwC,EAAE,OAAO5O,EAAEmymB,QAAQ/lmB,KAAKwC,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,IAAI,WAAW,IAAI,WAAW,MAAM,IAAI,CAAC,SAAS/8D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,SAAS,SAAS/N,IAAI,KAAKsoE,gBAAgBtoE,GAAG,OAAO,IAAIA,EAAEq/E,EAAEvb,KAAKwE,MAAMA,KAAKwC,EAAE,CAAC,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,CAAC5O,EAAEy1f,SAAS3xjB,EAAEq/E,GAAG3hB,EAAE8jE,QAAQxhI,EAAEA,EAAE8kpB,UAAU,IAAI9kpB,EAAEwtqB,QAAQ,IAAIxtqB,EAAEo/pB,aAAa,IAAIp/pB,EAAEytqB,UAAU,GAAGztqB,EAAE60D,UAAUq4mB,QAAQ,SAASn/pB,GAAG,MAAM,QAAQA,EAAEmuD,EAAEkymB,QAAQ9lmB,KAAKwC,EAAErP,MAAM,EAAE,GAAG,OAAOS,EAAEmymB,QAAQ/lmB,KAAKwC,EAAErP,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,IAAI,QAAQ,MAAM,IAAI,CAAC,SAAS1tD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,YAAYnP,EAAEmP,EAAE,uBAAuB04D,EAAEvK,EAAE+xmB,MAAM3omB,EAAEpJ,EAAEiymB,QAAQjwpB,EAAEg+C,EAAEoymB,QAAQxgmB,EAAE9tE,EAAEwuqB,KAAKlzmB,EAAEt7D,EAAEyuqB,MAAM3jmB,EAAE9qE,EAAE0uqB,OAAOxpmB,EAAEllE,EAAE2uqB,OAAOtymB,EAAEr8D,EAAE4uqB,OAAO98nB,EAAE9xC,EAAE6uqB,OAAOh2lB,EAAEwG,EAAEwulB,UAAUhvqB,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,SAAS27D,IAAI,KAAK8N,gBAAgB9N,GAAG,OAAO,IAAIA,EAAEqe,EAAE/U,KAAKwE,MAAMA,KAAKwC,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,YAAYxC,KAAK48H,EAAErmM,EAAEypE,KAAKtpC,EAAE,IAAI24B,MAAM,GAAG,CAACuE,EAAEy1f,SAASn3f,EAAEqe,GAAGnb,EAAE8jE,QAAQhnE,EAAEA,EAAEsqlB,UAAU,IAAItqlB,EAAEgzmB,QAAQ,IAAIhzmB,EAAE4kmB,aAAa,IAAI5kmB,EAAEizmB,UAAU,GAAGjzmB,EAAE3F,UAAUi4gB,QAAQ,SAAS/+jB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE6wC,KAAKtpC,EAAEk9B,EAAE,EAAEA,EAAE,GAAGA,IAAIzkC,EAAEykC,GAAGnuD,EAAE2vD,EAAExB,GAAG,KAAKA,EAAEzkC,EAAEx3B,OAAOi8D,IAAIzkC,EAAEykC,GAAGoJ,EAAExzB,EAAEra,EAAEykC,EAAE,IAAIzkC,EAAEykC,EAAE,GAAGG,EAAE5kC,EAAEykC,EAAE,KAAKzkC,EAAEykC,EAAE,KAAK,IAAImjB,EAAE/W,KAAKwC,EAAE,GAAG9qE,EAAEsoE,KAAKwC,EAAE,GAAG+N,EAAEvQ,KAAKwC,EAAE,GAAGjsE,EAAEypE,KAAKwC,EAAE,GAAGtQ,EAAE8N,KAAKwC,EAAE,GAAGM,EAAE9C,KAAKwC,EAAE,GAAGy8P,EAAEj/P,KAAKwC,EAAE,GAAG6zB,EAAEr2B,KAAKwC,EAAE,GAAG,IAAIlsE,EAAE0pE,KAAK48H,EAAEjlM,SAASw3B,EAAEx3B,QAAQi8D,EAAE,EAAEA,EAAEzkC,EAAEx3B,OAAOi8D,IAAI,CAAC,IAAIgpI,EAAEhnL,EAAEygF,EAAEz5B,EAAE1K,GAAGsT,EAAEtT,EAAE4Q,EAAEm8P,GAAGj/P,KAAK48H,EAAEhpI,GAAGzkC,EAAEykC,IAAIv9D,EAAE8nE,EAAEqE,EAAEuU,GAAG/jB,EAAE+jB,EAAEr/E,EAAE64E,IAAI8lB,EAAE4oO,EAAEA,EAAEn8P,EAAEA,EAAE5Q,EAAEA,EAAEiM,EAAE5nE,EAAEqmM,GAAGrmM,EAAEg6E,EAAEA,EAAE74E,EAAEA,EAAEq/E,EAAEA,EAAE5Y,EAAEy+H,EAAEvmM,EAAE,CAAC2pE,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGuU,GAAG/W,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG9qE,GAAGsoE,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG+N,GAAGvQ,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGjsE,GAAGypE,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGtQ,GAAG8N,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGM,GAAG9C,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGy8P,GAAGj/P,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAG6zB,EAAE,EAAEnkC,EAAE3F,UAAUq4mB,QAAQ,SAASn/pB,GAAG,MAAM,QAAQA,EAAEmuD,EAAEkymB,QAAQ9lmB,KAAKwC,EAAE,OAAO5O,EAAEmymB,QAAQ/lmB,KAAKwC,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,sBAAsB,MAAM,IAAI,CAAC,SAAS/8D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,SAAS,SAAS/N,IAAI,KAAKsoE,gBAAgBtoE,GAAG,OAAO,IAAIA,EAAEq/E,EAAEvb,KAAKwE,MAAMA,KAAKwC,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,CAAC5O,EAAEy1f,SAAS3xjB,EAAEq/E,GAAG3hB,EAAE8jE,QAAQxhI,EAAEA,EAAE8kpB,UAAU,KAAK9kpB,EAAEwtqB,QAAQ,IAAIxtqB,EAAEo/pB,aAAa,IAAIp/pB,EAAEytqB,UAAU,IAAIztqB,EAAE60D,UAAUq4mB,QAAQ,SAASn/pB,GAAG,MAAM,QAAQA,EAAEmuD,EAAEkymB,QAAQ9lmB,KAAKwC,EAAErP,MAAM,EAAE,IAAI,OAAOS,EAAEmymB,QAAQ/lmB,KAAKwC,EAAErP,MAAM,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,IAAI,QAAQ,MAAM,IAAI,CAAC,SAAS1tD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,uBAAuBnP,EAAEs9D,EAAE4ymB,UAAUromB,EAAEvK,EAAE6ymB,UAAUzpmB,EAAEpJ,EAAE8ymB,SAAS9wpB,EAAEg+C,EAAE+ymB,SAASnhmB,EAAE5R,EAAEgzmB,MAAM5zmB,EAAEY,EAAEizmB,SAASrkmB,EAAE5O,EAAEkzmB,SAASlqmB,EAAEhJ,EAAEmzmB,WAAWhzmB,EAAEH,EAAEozmB,WAAWx9nB,EAAEoqB,EAAEqzmB,WAAW12lB,EAAE3c,EAAEszmB,WAAW3wqB,EAAEwgF,EAAEwulB,UAAUrzmB,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,YAAY,SAAS4Q,IAAI,KAAK9C,gBAAgB8C,GAAG,OAAO,IAAIA,EAAEvsE,EAAEilE,KAAKwE,MAAMA,KAAKwC,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAWxC,KAAK48H,EAAE1qI,EAAE8N,KAAKtpC,EAAE,IAAI24B,MAAM,IAAI,CAAC,SAAS4vQ,EAAEx5T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,IAAIr/E,EAAE+N,EAAE0pB,GAAG1pB,EAAEsxE,EAAE,OAAOr/E,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAAS2+F,EAAE5wF,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE8+D,EAAExB,GAAGwB,EAAE19D,EAAE,OAAOpB,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASsmM,EAAEn3L,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,IAAIr/E,EAAE+N,EAAE0pB,EAAE1pB,EAAEsxE,EAAE5nD,EAAE4nD,EAAE,OAAOr/E,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASrB,EAAEoP,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE8+D,EAAExB,EAAEwB,EAAE19D,EAAEk8D,EAAEl8D,EAAE,OAAOpB,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASipU,EAAE95T,EAAE2vD,GAAG,IAAIjmC,EAAE74B,EAAEmP,EAAE2vD,EAAE,IAAI9+D,EAAE8+D,EAAE3vD,EAAE,GAAGnP,EAAE8+D,EAAE3vD,EAAE,GAAG,OAAO0pB,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAAS2gP,EAAErqQ,EAAE2vD,GAAG,IAAIjmC,EAAEgvC,EAAE14D,EAAE2vD,EAAE,IAAI+I,EAAE/I,EAAE3vD,EAAE,GAAG04D,EAAE/I,EAAE3vD,EAAE,GAAG,OAAO0pB,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASiwS,EAAE35T,EAAE2vD,GAAG,IAAIjmC,EAAE74B,EAAEmP,EAAE2vD,EAAE,IAAI9+D,EAAEmP,EAAE2vD,EAAE,IAAI9+D,EAAE8+D,EAAE3vD,EAAE,GAAG,OAAO0pB,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAAS2vS,EAAEr5T,EAAE2vD,GAAG,IAAIjmC,EAAEgvC,EAAE14D,EAAE2vD,EAAE,IAAI+I,EAAE14D,EAAE2vD,EAAE,IAAI+I,EAAE/I,EAAE3vD,EAAE,GAAG,OAAO0pB,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASivB,EAAE34C,EAAE2vD,GAAG,IAAIjmC,EAAE74B,EAAEmP,EAAE2vD,EAAE,GAAG9+D,EAAEmP,EAAE2vD,EAAE,GAAG4H,EAAEv3D,EAAE2vD,EAAE,GAAG,OAAOjmC,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASqwS,EAAE/5T,EAAE2vD,GAAG,IAAIjmC,EAAEgvC,EAAE14D,EAAE2vD,EAAE,GAAG+I,EAAE14D,EAAE2vD,EAAE,GAAGx/C,EAAEnQ,EAAE2vD,EAAE,GAAG,OAAOjmC,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAASk1mB,EAAE5+nB,EAAE2vD,GAAG,IAAIjmC,EAAE74B,EAAEmP,EAAE2vD,EAAE,IAAI9+D,EAAE8+D,EAAE3vD,EAAE,IAAIu3D,EAAEv3D,EAAE2vD,EAAE,GAAG,OAAOjmC,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAAC,SAAS85U,EAAExjW,EAAE2vD,GAAG,IAAIjmC,EAAEgvC,EAAE14D,EAAE2vD,EAAE,IAAI+I,EAAE/I,EAAE3vD,EAAE,IAAImQ,EAAEnQ,EAAE2vD,EAAE,GAAG,OAAOjmC,EAAE,IAAIA,GAAG,YAAYA,CAAC,CAACykC,EAAEy1f,SAASvmf,EAAEvsE,GAAG6+D,EAAE8jE,QAAQp2D,EAAEA,EAAE05kB,UAAU,KAAK15kB,EAAEoimB,QAAQ,IAAIpimB,EAAEg0lB,aAAa,IAAIh0lB,EAAEqimB,UAAU,IAAIrimB,EAAEvW,UAAU46mB,cAAc,SAAS1hqB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE6wC,KAAKtpC,EAAEk9B,EAAE,EAAEA,EAAE,GAAGA,IAAIzkC,EAAEykC,GAAGnuD,EAAE2vD,EAAExB,GAAG,KAAKA,EAAEzkC,EAAEx3B,OAAOi8D,GAAG,EAAE,CAAC,IAAImjB,EAAEstjB,EAAEl1mB,EAAEykC,EAAE,GAAGzkC,EAAEykC,EAAE,IAAIl8D,EAAEuxW,EAAE95U,EAAEykC,EAAE,GAAGzkC,EAAEykC,EAAE,IAAIt9D,EAAE64B,EAAEykC,EAAE,IAAIuK,EAAEhvC,EAAEykC,EAAE,IAAIoJ,EAAE5e,EAAEjvB,EAAEykC,EAAE,IAAIzkC,EAAEykC,EAAE,KAAKh+C,EAAE4pT,EAAErwS,EAAEykC,EAAE,IAAIzkC,EAAEykC,EAAE,KAAK4R,EAAEr2C,EAAEykC,EAAE,IAAIZ,EAAE7jC,EAAEykC,EAAE,IAAIzkC,EAAEykC,GAAGgJ,EAAEma,EAAEr/E,EAAEpB,EAAE6nE,EAAEnB,EAAEpnD,EAAE4vD,EAAExS,GAAG7jC,EAAEykC,EAAE,GAAGG,EAAEgjB,EAAEr/E,EAAEpB,EAAE6nE,EAAEnB,EAAEpnD,EAAE4vD,EAAExS,EAAE,CAAC,EAAE8P,EAAEvW,UAAUi4gB,QAAQ,SAAS/+jB,EAAE2vD,GAAG4K,KAAKmnmB,cAAc1hqB,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKtpC,EAAEk9B,EAAEoM,KAAKwC,EAAE,GAAGuU,EAAE/W,KAAKwC,EAAE,GAAGlsE,EAAE0pE,KAAKwC,EAAE,GAAGrE,EAAE6B,KAAKwC,EAAE,GAAGxF,EAAEgD,KAAKwC,EAAE,GAAG5sD,EAAEoqD,KAAKwC,EAAE,GAAG5F,EAAEoD,KAAKwC,EAAE,GAAGzO,EAAEiM,KAAKwC,EAAE,GAAGjsE,EAAEypE,KAAKwC,EAAE,GAAGtQ,EAAE8N,KAAKwC,EAAE,GAAGM,EAAE9C,KAAKwC,EAAE,IAAIpkB,EAAE4hB,KAAKwC,EAAE,IAAIg9P,EAAEx/P,KAAKwC,EAAE,IAAI6hkB,EAAErkkB,KAAKwC,EAAE,IAAIymS,EAAEjpS,KAAKwC,EAAE,IAAI8hkB,EAAEtkkB,KAAKwC,EAAE,IAAI9qE,EAAEsoE,KAAK48H,EAAEjlM,SAASw3B,EAAEx3B,QAAQ,IAAI,IAAIqnU,EAAE,EAAEA,EAAE7vS,EAAEx3B,OAAOqnU,GAAG,EAAE,CAAC,IAAIE,EAAE+pC,EAAEs7R,EAAED,EAAEnlU,EAAEC,EAAE7oU,EAAE27D,GAAGmtQ,EAAEP,EAAEvoU,EAAE27D,GAAG+kQ,EAAEgI,EAAE1oU,EAAE27D,EAAE4Q,EAAE1kB,EAAEohR,GAAGxiG,EAAE3mI,EAAE9/F,EAAE27D,EAAE4Q,EAAE1kB,EAAEohR,EAAE6kU,GAAGr/iB,EAAEhlB,KAAK48H,EAAEoiI,GAAGurU,EAAEvqkB,KAAK48H,EAAEoiI,EAAE,GAAGliG,EAAE3tM,EAAE6vS,GAAG2wD,EAAExgW,EAAE6vS,EAAE,GAAGtoS,EAAE8S,EAAE01R,EAAEqlU,EAAEplU,EAAEE,EAAEpI,EAAEj6F,EAAEh4I,EAAEuljB,EAAEzta,EAAE6yJ,GAAGvrP,EAAE7zD,EAAE2uP,EAAEqlU,EAAEplU,EAAEE,EAAEpI,EAAEj6F,EAAEh4I,EAAEuljB,EAAEzta,EAAE6yJ,GAAGzwD,EAAEK,EAAE3rQ,EAAEmjB,GAAGwtjB,EAAEz0X,EAAEl8M,EAAEmjB,GAAGooP,EAAEviI,EAAEhpI,EAAEmjB,EAAEzgF,EAAE6nE,EAAEnB,GAAGqiQ,EAAEhpU,EAAEu9D,EAAEmjB,EAAEzgF,EAAE6nE,EAAEnB,EAAEpnD,GAAG,IAAIq9W,EAAEjgU,EAAEksQ,EAAEqlU,EAAEplU,EAAEE,GAAGz6T,EAAE49D,EAAE08P,EAAEqlU,EAAEplU,EAAEE,GAAG4pC,EAAEzpC,EAAE8kU,EAAED,EAAE7kU,EAAE18P,EAAEuhkB,EAAEjmlB,EAAE0kB,EAAEvsE,EAAE6nD,EAAE8T,EAAE37D,EAAEy8D,EAAE4J,EAAE7I,EAAEr9B,EAAE0tG,GAAGlyE,EAAEsQ,EAAEzO,EAAEA,EAAEr9B,EAAE0tG,GAAGxnE,EAAEI,EAAEjJ,EAAEn+C,EAAEonD,EAAE1mE,EAAEsf,EAAEuoD,EAAE7nE,EAAEs9D,EAAEuK,EAAE4Y,EAAEnjB,EAAEZ,EAAEt8B,EAAE0tG,EAAE6uP,EAAEruX,GAAGmyE,EAAEvU,EAAE9rC,EAAE0tG,EAAE6uP,EAAEruX,EAAE,CAAC4gE,EAAExF,KAAKwC,EAAE,EAAE5O,EAAEmjB,GAAGvR,EAAExF,KAAKwC,EAAE,EAAElsE,EAAE6nE,GAAGqH,EAAExF,KAAKwC,EAAE,EAAExF,EAAEpnD,GAAG4vD,EAAExF,KAAKwC,EAAE,EAAE5F,EAAE7I,GAAGyR,EAAExF,KAAKwC,EAAE,EAAEjsE,EAAE27D,GAAGsT,EAAExF,KAAKwC,EAAE,GAAGM,EAAE1kB,GAAGonB,EAAExF,KAAKwC,EAAE,GAAGg9P,EAAE6kU,GAAG7+jB,EAAExF,KAAKwC,EAAE,GAAGymS,EAAEq7R,EAAE,EAAExhkB,EAAEvW,UAAUq4mB,QAAQ,SAASn/pB,GAAG,MAAM,QAAQA,EAAEmuD,EAAEkymB,QAAQ9lmB,KAAKwC,EAAE,OAAO5O,EAAEmymB,QAAQ/lmB,KAAKwC,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,IAAI,WAAW,IAAI,sBAAsB,MAAM,IAAI,CAAC,SAAS/8D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAY2hqB,OAAO,SAASrwlB,EAAEtxE,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2vD,GAAG3vD,EAAE0pB,CAAC,CAAC,SAASz3B,EAAE+N,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2vD,EAAE3vD,EAAE0pB,EAAEimC,EAAEjmC,CAAC,CAAC,SAAS74B,EAAEmP,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2vD,EAAEjmC,CAAC,CAACA,EAAE82oB,KAAK,SAASxgqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAO,IAAInuD,EAAEsxE,EAAE3hB,EAAEjmC,EAAEykC,GAAG,IAAInuD,GAAG,IAAIA,EAAEnP,EAAE8+D,EAAEjmC,EAAEykC,GAAG,IAAInuD,EAAE/N,EAAE09D,EAAEjmC,EAAEykC,QAAG,CAAM,EAAEzkC,EAAE+2oB,KAAKnvlB,EAAE5nD,EAAEg3oB,MAAMzuqB,EAAEy3B,EAAEk4oB,IAAI/wqB,EAAE64B,EAAEi3oB,OAAO,SAAS3gqB,GAAG,OAAOmuD,EAAEnuD,EAAE,GAAGmuD,EAAEnuD,EAAE,IAAImuD,EAAEnuD,EAAE,GAAG,EAAE0pB,EAAEk3oB,OAAO,SAAS5gqB,GAAG,OAAOmuD,EAAEnuD,EAAE,GAAGmuD,EAAEnuD,EAAE,IAAImuD,EAAEnuD,EAAE,GAAG,EAAE0pB,EAAEm3oB,OAAO,SAAS7gqB,GAAG,OAAOmuD,EAAEnuD,EAAE,GAAGmuD,EAAEnuD,EAAE,IAAIA,IAAI,CAAC,EAAE0pB,EAAEo3oB,OAAO,SAAS9gqB,GAAG,OAAOmuD,EAAEnuD,EAAE,IAAImuD,EAAEnuD,EAAE,IAAIA,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,uBAAuBsxE,EAAEtxE,EAAE,YAAY,SAAS/N,EAAE+N,EAAE2vD,GAAG,OAAO,QAAQ,MAAM3vD,EAAE+1I,WAAWpmF,OAAQA,EAAE,GAAGA,EAAE,GAAG3vD,EAAE9N,SAAS,QAAQ,MAAM8N,EAAE+1I,WAAWpmF,EAAE,GAAI,CAAC,SAAS9+D,EAAEmP,GAAG,OAAOA,IAAI,GAAGA,IAAI,EAAE,MAAMA,GAAG,EAAE,UAAU,IAAIA,IAAI,MAAM,CAAC,CAAC,SAAS04D,EAAE14D,GAAG,OAAO,IAAIA,EAAE9N,OAAO,IAAI8N,EAAEA,CAAC,CAAC,SAASu3D,EAAEv3D,GAAG,OAAO,IAAIA,EAAE9N,OAAO,IAAI8N,EAAE,IAAIA,EAAE9N,OAAO,KAAK8N,EAAE,IAAIA,EAAE9N,OAAO,MAAM8N,EAAE,IAAIA,EAAE9N,OAAO,OAAO8N,EAAE,IAAIA,EAAE9N,OAAO,QAAQ8N,EAAE,IAAIA,EAAE9N,OAAO,SAAS8N,EAAE,IAAIA,EAAE9N,OAAO,UAAU8N,EAAEA,CAAC,CAAC0pB,EAAEk6hB,SAAStye,EAAE5nD,EAAE6iC,QAAQ,SAASvsD,EAAE2vD,GAAG,GAAG/F,MAAMC,QAAQ7pD,GAAG,OAAOA,EAAE0tD,QAAQ,IAAI1tD,EAAE,MAAM,GAAG,IAAI0pB,EAAE,GAAG,GAAG,iBAAiB1pB,EAAE,GAAG2vD,GAAG,GAAG,QAAQA,EAAE,KAAK3vD,EAAEA,EAAE8f,QAAQ,eAAe,KAAK5tB,OAAO,GAAG,IAAI8N,EAAE,IAAIA,GAAGsxE,EAAE,EAAEA,EAAEtxE,EAAE9N,OAAOo/E,GAAG,EAAE5nD,EAAEp0B,KAAKwZ,SAAS9O,EAAEsxE,GAAGtxE,EAAEsxE,EAAE,GAAG,UAAU,IAAI,IAAInjB,EAAE,EAAEmjB,EAAE,EAAEA,EAAEtxE,EAAE9N,OAAOo/E,IAAI,CAAC,IAAIzgF,EAAEmP,EAAE+1I,WAAWzkE,GAAGzgF,EAAE,IAAI64B,EAAEykC,KAAKt9D,EAAEA,EAAE,MAAM64B,EAAEykC,KAAKt9D,GAAG,EAAE,IAAI64B,EAAEykC,KAAK,GAAGt9D,EAAE,KAAKoB,EAAE+N,EAAEsxE,IAAIzgF,EAAE,QAAQ,KAAKA,IAAI,KAAK,KAAKmP,EAAE+1I,aAAazkE,IAAI5nD,EAAEykC,KAAKt9D,GAAG,GAAG,IAAI64B,EAAEykC,KAAKt9D,GAAG,GAAG,GAAG,IAAI64B,EAAEykC,KAAKt9D,GAAG,EAAE,GAAG,IAAI64B,EAAEykC,KAAK,GAAGt9D,EAAE,MAAM64B,EAAEykC,KAAKt9D,GAAG,GAAG,IAAI64B,EAAEykC,KAAKt9D,GAAG,EAAE,GAAG,IAAI64B,EAAEykC,KAAK,GAAGt9D,EAAE,IAAI,MAAM,IAAIygF,EAAE,EAAEA,EAAEtxE,EAAE9N,OAAOo/E,IAAI5nD,EAAE4nD,GAAG,EAAEtxE,EAAEsxE,GAAG,OAAO5nD,CAAC,EAAEA,EAAE24G,MAAM,SAASriI,GAAG,IAAI,IAAI2vD,EAAE,GAAGjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,OAAOw3B,IAAIimC,GAAG+I,EAAE14D,EAAE0pB,GAAGz9B,SAAS,KAAK,OAAO0jE,CAAC,EAAEjmC,EAAEm4oB,MAAMhxqB,EAAE64B,EAAE22oB,QAAQ,SAASrgqB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,GAAGykC,EAAE,EAAEA,EAAEnuD,EAAE9N,OAAOi8D,IAAI,CAAC,IAAImjB,EAAEtxE,EAAEmuD,GAAG,WAAWwB,IAAI2hB,EAAEzgF,EAAEygF,IAAI5nD,GAAG6tC,EAAE+Z,EAAErlF,SAAS,IAAI,CAAC,OAAOy9B,CAAC,EAAEA,EAAEoqoB,MAAMp7lB,EAAEhvC,EAAEo4oB,MAAMvqmB,EAAE7tC,EAAEq2oB,OAAO,SAAS//pB,EAAE2vD,EAAEjmC,EAAE4nD,GAAG,IAAIr/E,EAAEy3B,EAAEimC,EAAExB,EAAEl8D,EAAE,GAAG,GAAG,IAAI,IAAIpB,EAAE,IAAI+4D,MAAM33D,EAAE,GAAGymE,EAAE,EAAEnB,EAAE5H,EAAE+I,EAAE7nE,EAAEqB,OAAOwmE,IAAInB,GAAG,EAAE,CAAC,IAAIpnD,EAAEA,EAAE,QAAQmhE,EAAEtxE,EAAEu3D,IAAI,GAAGv3D,EAAEu3D,EAAE,IAAI,GAAGv3D,EAAEu3D,EAAE,IAAI,EAAEv3D,EAAEu3D,EAAE,GAAGv3D,EAAEu3D,EAAE,IAAI,GAAGv3D,EAAEu3D,EAAE,IAAI,GAAGv3D,EAAEu3D,EAAE,IAAI,EAAEv3D,EAAEu3D,GAAG1mE,EAAE6nE,GAAGvoD,IAAI,CAAC,CAAC,OAAOtf,CAAC,EAAE64B,EAAE42oB,QAAQ,SAAStgqB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,IAAIkgC,MAAM,EAAE5pD,EAAE9N,QAAQi8D,EAAE,EAAEmjB,EAAE,EAAEnjB,EAAEnuD,EAAE9N,OAAOi8D,IAAImjB,GAAG,EAAE,CAAC,IAAIr/E,EAAE+N,EAAEmuD,GAAG,QAAQwB,GAAGjmC,EAAE4nD,GAAGr/E,IAAI,GAAGy3B,EAAE4nD,EAAE,GAAGr/E,IAAI,GAAG,IAAIy3B,EAAE4nD,EAAE,GAAGr/E,IAAI,EAAE,IAAIy3B,EAAE4nD,EAAE,GAAG,IAAIr/E,IAAIy3B,EAAE4nD,EAAE,GAAGr/E,IAAI,GAAGy3B,EAAE4nD,EAAE,GAAGr/E,IAAI,GAAG,IAAIy3B,EAAE4nD,EAAE,GAAGr/E,IAAI,EAAE,IAAIy3B,EAAE4nD,GAAG,IAAIr/E,EAAE,CAAC,OAAOy3B,CAAC,EAAEA,EAAEi4oB,OAAO,SAAS3hqB,EAAE2vD,GAAG,OAAO3vD,IAAI2vD,EAAE3vD,GAAG,GAAG2vD,CAAC,EAAEjmC,EAAEu2oB,OAAO,SAASjgqB,EAAE2vD,GAAG,OAAO3vD,GAAG2vD,EAAE3vD,IAAI,GAAG2vD,CAAC,EAAEjmC,EAAEw2oB,MAAM,SAASlgqB,EAAE2vD,GAAG,OAAO3vD,EAAE2vD,IAAI,CAAC,EAAEjmC,EAAEy2oB,QAAQ,SAASngqB,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2vD,EAAEjmC,IAAI,CAAC,EAAEA,EAAE02oB,QAAQ,SAASpgqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAOnuD,EAAE2vD,EAAEjmC,EAAEykC,IAAI,CAAC,EAAEzkC,EAAE62oB,QAAQ,SAASvgqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,OAAOtxE,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,IAAI,CAAC,EAAE5nD,EAAEy3oB,MAAM,SAASnhqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,EAAEtxE,EAAE2vD,GAAG19D,EAAEk8D,EAAEnuD,EAAE2vD,EAAE,KAAK,EAAE9+D,GAAGoB,EAAEk8D,EAAE,EAAE,GAAGzkC,EAAE4nD,EAAEtxE,EAAE2vD,GAAG9+D,IAAI,EAAEmP,EAAE2vD,EAAE,GAAG19D,CAAC,EAAEy3B,EAAE03oB,SAAS,SAASphqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAOwB,EAAExB,IAAI,EAAEwB,EAAE,EAAE,GAAG3vD,EAAE0pB,IAAI,CAAC,EAAEA,EAAE23oB,SAAS,SAASrhqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAOwB,EAAExB,IAAI,CAAC,EAAEzkC,EAAE43oB,WAAW,SAASthqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,IAAInB,EAAE,EAAEpnD,EAAEw/C,EAAE,OAAO4H,IAAIpnD,EAAEA,EAAEg+C,IAAI,GAAGwB,EAAE,EAAE,EAAE4H,IAAIpnD,EAAEA,EAAEle,IAAI,GAAGA,EAAE,EAAE,EAAE+N,EAAE0pB,EAAE4nD,EAAEzgF,GAAG0mE,IAAIpnD,EAAEA,EAAEuoD,IAAI,GAAGA,EAAE,EAAE,KAAK,CAAC,EAAEhvC,EAAE63oB,WAAW,SAASvhqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,OAAO/I,EAAExB,EAAEl8D,EAAEymE,IAAI,CAAC,EAAEhvC,EAAE83oB,WAAW,SAASxhqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,EAAEnB,EAAEpnD,GAAG,IAAI4vD,EAAE,EAAExS,EAAEoC,EAAE,OAAOoQ,IAAIxS,EAAEA,EAAEY,IAAI,GAAGwB,EAAE,EAAE,EAAEoQ,IAAIxS,EAAEA,EAAEt7D,IAAI,GAAGA,EAAE,EAAE,EAAE8tE,IAAIxS,EAAEA,EAAEmL,IAAI,GAAGA,EAAE,EAAE,EAAE14D,EAAE0pB,EAAE4nD,EAAEzgF,EAAE0mE,GAAGwI,IAAIxS,EAAEA,EAAEp9C,IAAI,GAAGA,EAAE,EAAE,KAAK,CAAC,EAAEuZ,EAAE+3oB,WAAW,SAASzhqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,EAAEnB,EAAEpnD,GAAG,OAAOw/C,EAAExB,EAAEl8D,EAAEymE,EAAEvoD,IAAI,CAAC,EAAEuZ,EAAEq3oB,UAAU,SAAS/gqB,EAAE2vD,EAAEjmC,GAAG,OAAOimC,GAAG,GAAGjmC,EAAE1pB,IAAI0pB,KAAK,CAAC,EAAEA,EAAEs3oB,UAAU,SAAShhqB,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,GAAG,GAAG0pB,EAAEimC,IAAIjmC,KAAK,CAAC,EAAEA,EAAEu3oB,SAAS,SAASjhqB,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,IAAI0pB,CAAC,EAAEA,EAAEw3oB,SAAS,SAASlhqB,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,GAAG,GAAG0pB,EAAEimC,IAAIjmC,KAAK,CAAC,CAAC,EAAE,CAACk6hB,SAAS,IAAI,sBAAsB,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,6BAA6B/N,EAAE+N,EAAE,uBAAuB,SAASnP,EAAEmP,GAAG,KAAKu6D,gBAAgB1pE,GAAG,OAAO,IAAIA,EAAEmP,GAAGu6D,KAAKqjF,KAAK59I,EAAE49I,KAAKrjF,KAAKwnmB,aAAa/hqB,EAAE+hqB,WAAWxnmB,KAAKynmB,OAAOznmB,KAAKqjF,KAAK6hhB,QAAQllmB,KAAK0nmB,WAAWjiqB,EAAEiiqB,YAAY1nmB,KAAKqjF,KAAKyzgB,aAAa92lB,KAAK2nmB,QAAQ,KAAK3nmB,KAAK4nmB,eAAe,KAAK5nmB,KAAKs/P,EAAE,KAAKt/P,KAAK2vT,EAAE,KAAK,IAAIv6T,EAAE2hB,EAAE/kB,QAAQvsD,EAAEoxpB,QAAQpxpB,EAAEsxpB,YAAY,OAAO5noB,EAAE4nD,EAAE/kB,QAAQvsD,EAAEyzL,MAAMzzL,EAAEoiqB,UAAU,OAAOj0mB,EAAEmjB,EAAE/kB,QAAQvsD,EAAEkxpB,KAAKlxpB,EAAEmxpB,SAAS,OAAOl/pB,EAAE09D,EAAEz9D,QAAQqoE,KAAK0nmB,WAAW,EAAE,mCAAmC1nmB,KAAK0nmB,WAAW,SAAS1nmB,KAAKqpV,MAAMj0V,EAAEjmC,EAAEykC,EAAE,CAACwB,EAAE8jE,QAAQ5iI,EAAEA,EAAEi2D,UAAU88V,MAAM,SAAS5jZ,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE62C,OAAO8Y,GAAG9Y,OAAOntB,GAAG6wC,KAAKs/P,EAAE,IAAIjwQ,MAAM2Q,KAAKynmB,OAAO,GAAGznmB,KAAK2vT,EAAE,IAAItgU,MAAM2Q,KAAKynmB,OAAO,GAAG,IAAI,IAAI1wlB,EAAE,EAAEA,EAAE/W,KAAK2vT,EAAEh4X,OAAOo/E,IAAI/W,KAAKs/P,EAAEvoP,GAAG,EAAE/W,KAAK2vT,EAAE54S,GAAG,EAAE/W,KAAKwkgB,QAAQ5wgB,GAAGoM,KAAK2nmB,QAAQ,EAAE3nmB,KAAK4nmB,eAAe,eAAe,EAAEtxqB,EAAEi2D,UAAUu7mB,MAAM,WAAW,OAAO,IAAIl0mB,EAAEmxmB,KAAK/kmB,KAAKqjF,KAAKrjF,KAAKs/P,EAAE,EAAEhpU,EAAEi2D,UAAUi4gB,QAAQ,SAAS/+jB,GAAG,IAAI2vD,EAAE4K,KAAK8nmB,QAAQlib,OAAO5lL,KAAK2vT,GAAG/pI,OAAO,CAAC,IAAIngP,IAAI2vD,EAAEA,EAAEwwL,OAAOngP,IAAIu6D,KAAKs/P,EAAElqQ,EAAE+7jB,SAASnxjB,KAAK2vT,EAAE3vT,KAAK8nmB,QAAQlib,OAAO5lL,KAAK2vT,GAAGwhQ,SAAS1rnB,IAAIu6D,KAAKs/P,EAAEt/P,KAAK8nmB,QAAQlib,OAAO5lL,KAAK2vT,GAAG/pI,OAAO,CAAC,IAAIA,OAAOngP,GAAG0rnB,SAASnxjB,KAAK2vT,EAAE3vT,KAAK8nmB,QAAQlib,OAAO5lL,KAAK2vT,GAAGwhQ,SAAS,EAAE76nB,EAAEi2D,UAAUw7mB,OAAO,SAAStiqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,iBAAiBwB,IAAIxB,EAAEzkC,EAAEA,EAAEimC,EAAEA,EAAE,MAAM3vD,EAAEsxE,EAAE/kB,QAAQvsD,EAAE2vD,GAAGjmC,EAAE4nD,EAAE/kB,QAAQ7iC,EAAEykC,GAAGl8D,EAAE+N,EAAE9N,QAAQqoE,KAAK0nmB,WAAW,EAAE,mCAAmC1nmB,KAAK0nmB,WAAW,SAAS1nmB,KAAKwkgB,QAAQ/+jB,EAAE62C,OAAOntB,GAAG,KAAK6wC,KAAK2nmB,QAAQ,CAAC,EAAErxqB,EAAEi2D,UAAU2oN,SAAS,SAASzvQ,EAAE2vD,EAAEjmC,EAAEykC,GAAG,GAAGoM,KAAK2nmB,QAAQ3nmB,KAAK4nmB,eAAe,MAAM,IAAI/zpB,MAAM,sBAAsB,iBAAiBuhD,IAAIxB,EAAEzkC,EAAEA,EAAEimC,EAAEA,EAAE,MAAMjmC,IAAIA,EAAE4nD,EAAE/kB,QAAQ7iC,EAAEykC,GAAG,OAAOoM,KAAKwkgB,QAAQr1iB,IAAI,IAAI,IAAIz3B,EAAE,GAAGA,EAAEC,OAAO8N,GAAGu6D,KAAK2vT,EAAE3vT,KAAK8nmB,QAAQlib,OAAO5lL,KAAK2vT,GAAGwhQ,SAASz5nB,EAAEA,EAAE4kD,OAAO0jB,KAAK2vT,GAAG,IAAIr5X,EAAEoB,EAAEy7D,MAAM,EAAE1tD,GAAG,OAAOu6D,KAAKwkgB,QAAQr1iB,GAAG6wC,KAAK2nmB,UAAU5wlB,EAAEg0iB,OAAOz0nB,EAAE8+D,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,sBAAsB,IAAI,4BAA4B,MAAM,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAAGA,EAAE4xlB,KAAK,SAASt7mB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,IAAIr/E,EAAEpB,EAAE6nE,EAAE,EAAE4Y,EAAEnjB,EAAE,EAAEoJ,GAAG,GAAGmB,GAAG,EAAEvoD,EAAEonD,GAAG,EAAEwI,GAAG,EAAExS,EAAE7jC,EAAE4nD,EAAE,EAAE,EAAEvU,EAAErzC,GAAG,EAAE,EAAEytC,EAAEn3D,EAAE2vD,EAAEpC,GAAG,IAAIA,GAAGwP,EAAE9qE,EAAEklE,GAAG,IAAI4I,GAAG,EAAE5I,KAAK4I,EAAEA,GAAGrH,EAAEqH,EAAE,EAAE9tE,EAAE,IAAIA,EAAE+N,EAAE2vD,EAAEpC,GAAGA,GAAGwP,EAAEgD,GAAG,GAAG,IAAIlvE,EAAEoB,GAAG,IAAI8tE,GAAG,EAAE9tE,KAAK8tE,EAAEA,GAAG5R,EAAE4R,EAAE,EAAElvE,EAAE,IAAIA,EAAEmP,EAAE2vD,EAAEpC,GAAGA,GAAGwP,EAAEgD,GAAG,GAAG,GAAG,IAAI9tE,EAAEA,EAAE,EAAEke,MAAM,CAAC,GAAGle,IAAIslE,EAAE,OAAO1mE,EAAEoqU,IAAI,KAAK9jQ,GAAG,EAAE,GAAGtmE,GAAG7F,KAAK0sE,IAAI,EAAEvJ,GAAGl8D,GAAGke,CAAC,CAAC,OAAOgnD,GAAG,EAAE,GAAGtmE,EAAE7F,KAAK0sE,IAAI,EAAEzlE,EAAEk8D,EAAE,EAAEzkC,EAAEipJ,MAAM,SAAS3yK,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE6nE,EAAEnB,EAAEpnD,EAAE,EAAEle,EAAEq/E,EAAE,EAAEvR,GAAG,GAAG5vD,GAAG,EAAEo9C,EAAEwS,GAAG,EAAEhD,EAAE,KAAKuU,EAAEtmF,KAAK0sE,IAAI,GAAG,IAAI1sE,KAAK0sE,IAAI,GAAG,IAAI,EAAEP,EAAEhJ,EAAE,EAAEl8D,EAAE,EAAEq8D,EAAEH,EAAE,GAAG,EAAEpqB,EAAE4rB,EAAE,GAAG,IAAIA,GAAG,EAAEA,EAAE,EAAE,EAAE,EAAE,IAAIA,EAAE3kE,KAAKsoD,IAAIqc,GAAG8E,MAAM9E,IAAIA,IAAI,KAAK+I,EAAEjE,MAAM9E,GAAG,EAAE,EAAE9+D,EAAEkvE,IAAIlvE,EAAE7F,KAAKC,MAAMD,KAAKsB,IAAIqjE,GAAG3kE,KAAKmnqB,KAAKximB,GAAG4H,EAAEvsE,KAAK0sE,IAAI,GAAG7mE,IAAI,IAAIA,IAAI0mE,GAAG,IAAI5H,GAAG9+D,EAAE08D,GAAG,EAAEwP,EAAExF,EAAEwF,EAAE/xE,KAAK0sE,IAAI,EAAE,EAAEnK,IAAIgK,GAAG,IAAI1mE,IAAI0mE,GAAG,GAAG1mE,EAAE08D,GAAGwS,GAAGrH,EAAE,EAAE7nE,EAAEkvE,GAAGlvE,EAAE08D,GAAG,GAAGmL,GAAG/I,EAAE4H,EAAE,GAAGvsE,KAAK0sE,IAAI,EAAE4Z,GAAGzgF,GAAG08D,IAAImL,EAAE/I,EAAE3kE,KAAK0sE,IAAI,EAAEnK,EAAE,GAAGviE,KAAK0sE,IAAI,EAAE4Z,GAAGzgF,EAAE,IAAIygF,GAAG,EAAEtxE,EAAE0pB,EAAEytC,GAAG,IAAIuB,EAAEvB,GAAG7I,EAAEoK,GAAG,IAAI4Y,GAAG,GAAG,IAAIzgF,EAAEA,GAAGygF,EAAE5Y,EAAEvoD,GAAGmhE,EAAEnhE,EAAE,EAAEnQ,EAAE0pB,EAAEytC,GAAG,IAAItmE,EAAEsmE,GAAG7I,EAAEz9D,GAAG,IAAIsf,GAAG,GAAGnQ,EAAE0pB,EAAEytC,EAAE7I,IAAI,IAAIvqB,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS/jC,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAI0pB,EAAEykC,EAAEmjB,EAAEtxE,EAAEg1J,kBAAkBh1J,EAAEuhpB,uBAAuB,GAAGjwkB,EAAE,CAAC,IAAIr/E,EAAE,EAAEpB,EAAE,IAAIygF,EAAEvR,GAAGrH,EAAE14D,EAAE+F,SAAS+tL,eAAe,IAAIjjM,EAAE+jK,QAAQl8F,EAAE,CAAC8olB,eAAc,IAAK93nB,EAAE,WAAWgvC,EAAE/0C,KAAK1xB,IAAIA,EAAE,CAAC,CAAC,MAAM,GAAG+N,EAAEounB,mBAAc,IAASpunB,EAAEupN,eAAe7/L,EAAE,aAAa1pB,GAAG,uBAAuBA,EAAE+F,SAAS+xC,cAAc,UAAU,WAAW,IAAI6X,EAAE3vD,EAAE+F,SAAS+xC,cAAc,UAAU6X,EAAEovU,mBAAmB,WAAWh/T,IAAIpQ,EAAEovU,mBAAmB,KAAKpvU,EAAEurB,WAAW/iC,YAAYwX,GAAGA,EAAE,IAAI,EAAE3vD,EAAE+F,SAASk0E,gBAAgBhiC,YAAY0X,EAAE,EAAE,WAAWlV,WAAWslB,EAAE,EAAE,MAAM,CAAC,IAAIxI,EAAE,IAAIv3D,EAAEupN,eAAehyJ,EAAE6xJ,MAAMy4b,UAAU9hlB,EAAEr2C,EAAE,WAAW6tC,EAAEmyJ,MAAMnB,YAAY,EAAE,CAAC,CAAC,IAAIp4M,EAAE,GAAG,SAAS4vD,IAAI,IAAI//D,EAAE2vD,EAAExB,GAAE,EAAG,IAAI,IAAIzkC,EAAEvZ,EAAEje,OAAOw3B,GAAG,CAAC,IAAIimC,EAAEx/C,EAAEA,EAAE,GAAGnQ,GAAG,IAAIA,EAAE0pB,GAAGimC,EAAE3vD,KAAK0pB,EAAEvZ,EAAEje,MAAM,CAACi8D,GAAE,CAAE,CAACwB,EAAE8jE,QAAQ,SAASzzH,GAAG,IAAImQ,EAAE7a,KAAK0K,IAAImuD,GAAGzkC,GAAG,CAAE,GAAEqsC,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,GAAG,mBAAmBnV,OAAOiN,OAAOmuC,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAGA,IAAI3vD,EAAEqunB,OAAO1+jB,EAAE3vD,EAAE8mD,UAAUvyC,OAAOiN,OAAOmuC,EAAE7I,UAAU,CAACC,YAAY,CAACl1D,MAAMmO,EAAEsuF,YAAW,EAAGy8B,UAAS,EAAGD,cAAa,KAAM,EAAEn7D,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,GAAGA,EAAE,CAAC3vD,EAAEqunB,OAAO1+jB,EAAE,IAAIjmC,EAAE,WAAW,EAAEA,EAAEo9B,UAAU6I,EAAE7I,UAAU9mD,EAAE8mD,UAAU,IAAIp9B,EAAE1pB,EAAE8mD,UAAUC,YAAY/mD,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,GAAG,QAAQA,EAAE+mD,aAAa,mBAAmB/mD,EAAE+mD,YAAYmuE,UAAUl1H,EAAE+mD,YAAYmuE,SAASl1H,EAAE,CAOl+owB2vD,EAAE8jE,QAAQ,SAASzzH,GAAG,OAAO,MAAMA,IAAImuD,EAAEnuD,IAAI,SAASA,GAAG,MAAM,mBAAmBA,EAAEm/oB,aAAa,mBAAmBn/oB,EAAE0tD,OAAOS,EAAEnuD,EAAE0tD,MAAM,EAAE,GAAG,CAA/F,CAAiG1tD,MAAMA,EAAEk+oB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASl+oB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,CAAC,EAAEliE,SAAS0jE,EAAE8jE,QAAQ7pE,MAAMC,SAAS,SAAS7pD,GAAG,MAAM,kBAAkBmuD,EAAE4H,KAAK/1D,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,aAAa/N,EAAE,oEAAoEy3B,EAAE47lB,OAAO,SAAStlnB,GAAG,IAAI,IAAI2vD,EAAEjmC,EAAE4nD,EAAEzgF,EAAE6nE,EAAEnB,EAAEpnD,EAAE4vD,EAAE,GAAGxS,EAAE,EAAEwP,EAAE/8D,EAAE9N,OAAOilE,EAAE4F,EAAEzO,EAAE,WAAWH,EAAEo0mB,UAAUviqB,GAAGutD,EAAEvtD,EAAE9N,QAAQilE,EAAE4F,EAAExP,EAAEe,GAAGqB,EAAE3vD,EAAEutD,KAAK7jC,EAAE6jC,EAAEwP,EAAE/8D,EAAEutD,KAAK,EAAE+jB,EAAE/jB,EAAEwP,EAAE/8D,EAAEutD,KAAK,IAAIoC,EAAE3vD,EAAE+1I,WAAWxoF,KAAK7jC,EAAE6jC,EAAEwP,EAAE/8D,EAAE+1I,WAAWxoF,KAAK,EAAE+jB,EAAE/jB,EAAEwP,EAAE/8D,EAAE+1I,WAAWxoF,KAAK,GAAG18D,EAAE8+D,GAAG,EAAE+I,GAAG,EAAE/I,IAAI,EAAEjmC,GAAG,EAAE6tC,EAAEJ,EAAE,GAAG,GAAGztC,IAAI,EAAE4nD,GAAG,EAAE,GAAGnhE,EAAEgnD,EAAE,EAAE,GAAGma,EAAE,GAAGvR,EAAEzqE,KAAKrD,EAAEk7D,OAAOt8D,GAAGoB,EAAEk7D,OAAOuL,GAAGzmE,EAAEk7D,OAAOoK,GAAGtlE,EAAEk7D,OAAOh9C,IAAI,OAAO4vD,EAAE16B,KAAK,GAAG,EAAE3b,EAAE45lB,OAAO,SAAStjnB,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEt9D,EAAE6nE,EAAEnB,EAAEpnD,EAAE,EAAE4vD,EAAE,EAAE,GAAG,UAAU//D,EAAEvP,OAAO,EAAE,GAAgB,MAAM,IAAI2d,MAAM,mDAAmD,IAAIm/C,EAAEwP,EAAE,GAAG/8D,EAAEA,EAAE8f,QAAQ,sBAAsB,KAAK5tB,OAAO,EAAE,GAAG8N,EAAEmtD,OAAOntD,EAAE9N,OAAO,KAAKD,EAAEk7D,OAAO,KAAK4P,IAAI/8D,EAAEmtD,OAAOntD,EAAE9N,OAAO,KAAKD,EAAEk7D,OAAO,KAAK4P,IAAIA,EAAE,GAAG,EAAE,MAAM,IAAI3uD,MAAM,6CAA6C,IAAIm/C,EAAE+jB,EAAEkxlB,WAAW,IAAIzuiB,WAAW,EAAEh3D,GAAG,IAAInT,MAAM,EAAEmT,GAAG5sD,EAAEnQ,EAAE9N,QAAQy9D,EAAE19D,EAAET,QAAQwO,EAAEmtD,OAAOh9C,OAAO,GAAGtf,EAAEoB,EAAET,QAAQwO,EAAEmtD,OAAOh9C,QAAQ,EAAEuZ,GAAG,GAAG74B,IAAI,GAAG6nE,EAAEzmE,EAAET,QAAQwO,EAAEmtD,OAAOh9C,QAAQ,EAAEg+C,GAAG,EAAEuK,IAAI,GAAGnB,EAAEtlE,EAAET,QAAQwO,EAAEmtD,OAAOh9C,OAAOo9C,EAAEwS,KAAKpQ,EAAE,KAAK+I,IAAInL,EAAEwS,KAAKr2C,GAAG,KAAK6tC,IAAIhK,EAAEwS,KAAK5R,GAAG,OAAOZ,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC,SAASvtD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,cAAcsxE,EAAEtxE,EAAE,uBAAuB/N,EAAE+N,EAAE,4BAA4BnP,EAAEmP,EAAE,uBAAuD,SAAS04D,EAAE14D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG/W,KAAKkomB,eAAeziqB,EAAEu6D,KAAKmomB,iBAAiB/ymB,EAAE4K,KAAKoomB,MAAMj5oB,EAAE6wC,KAAKuqe,YAAY32e,EAAEoM,KAAKqomB,kBAAkBtxlB,CAAC,CAA5Jr/E,EAAE+N,EAAE,4BAAyJ04D,EAAE5R,UAAU,CAAC+7mB,iBAAiB,WAAW,IAAI7iqB,EAAE,IAAIsxE,EAAEnjB,EAAE3kD,QAAQknC,QAAQ6pB,KAAKqomB,oBAAoBjvlB,KAAKpZ,KAAKuqe,YAAYg+H,oBAAoBnvlB,KAAK,IAAI1hF,EAAE,gBAAgB09D,EAAE4K,KAAK,OAAOv6D,EAAEy6W,GAAG,OAAO,WAAW,GAAGlgT,KAAKwomB,WAAWC,cAAcrzmB,EAAE+ymB,iBAAiB,MAAM,IAAIt0pB,MAAM,wCAAwC,IAAIpO,CAAC,EAAEijqB,oBAAoB,WAAW,OAAO,IAAI3xlB,EAAEnjB,EAAE3kD,QAAQknC,QAAQ6pB,KAAKqomB,oBAAoBM,eAAe,iBAAiB3omB,KAAKkomB,gBAAgBS,eAAe,mBAAmB3omB,KAAKmomB,kBAAkBQ,eAAe,QAAQ3omB,KAAKoomB,OAAOO,eAAe,cAAc3omB,KAAKuqe,YAAY,GAAGpse,EAAEyqmB,iBAAiB,SAASnjqB,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2zE,KAAK,IAAI9iF,GAAG8iF,KAAK,IAAI1hF,EAAE,qBAAqB0hF,KAAKhkB,EAAEyzmB,eAAe15oB,IAAIiqD,KAAK,IAAI1hF,EAAE,mBAAmBixqB,eAAe,cAAcvzmB,EAAE,EAAEA,EAAE8jE,QAAQ/6D,CAAC,EAAE,CAAC,aAAa,IAAI,sBAAsB,IAAI,2BAA2B,IAAI,sBAAsB,MAAM,IAAI,CAAC,SAAS14D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,0BAA0B0pB,EAAE25oB,MAAM,CAACC,MAAM,OAAOF,eAAe,SAASpjqB,GAAG,OAAO,IAAImuD,EAAE,oBAAoB,EAAE20mB,iBAAiB,WAAW,OAAO,IAAI30mB,EAAE,sBAAsB,GAAGzkC,EAAE65oB,QAAQvjqB,EAAE,UAAU,EAAE,CAAC,UAAU,IAAI,yBAAyB,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAesxE,EAAE,WAAW,IAAI,IAAItxE,EAAE2vD,EAAE,GAAGjmC,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAAC1pB,EAAE0pB,EAAE,IAAI,IAAIykC,EAAE,EAAEA,EAAE,EAAEA,IAAInuD,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAE2vD,EAAEjmC,GAAG1pB,CAAC,CAAC,OAAO2vD,CAAC,CAA7G,GAAiHA,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,YAAO,IAAS3vD,GAAGA,EAAE9N,OAAO,WAAWi8D,EAAEo0mB,UAAUviqB,GAAG,SAASA,EAAE2vD,EAAEjmC,GAAK,IAAIz3B,EAAEq/E,EAAEzgF,EAAmF,EAA/E64B,EAAE1pB,IAAI,EAAE,IAAI,IAAI04D,EAA+D,EAA3DA,EAAE7nE,EAAE6nE,IAAI14D,EAAEA,IAAI,EAAE/N,EAAE,KAAK+N,EAAE2vD,EAAE+I,KAAK,OAAS14D,CAAC,CAA5F,CAA8F,EAAE2vD,EAAE3vD,EAAEA,EAAE9N,QAAU,SAAS8N,EAAE2vD,EAAEjmC,GAAK,IAAIz3B,EAAEq/E,EAAEzgF,EAA8F,EAA1F64B,EAAE1pB,IAAI,EAAE,IAAI,IAAI04D,EAA0E,EAAtEA,EAAE7nE,EAAE6nE,IAAI14D,EAAEA,IAAI,EAAE/N,EAAE,KAAK+N,EAAE2vD,EAAEomF,WAAWr9E,KAAK,OAAS14D,CAAC,CAAvG,CAAyG,EAAE2vD,EAAE3vD,EAAEA,EAAE9N,QAAU,CAAC,CAAC,EAAE,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS8N,EAAE2vD,EAAEjmC,GAAGA,EAAEo3M,QAAO,EAAGp3M,EAAE8hhB,QAAO,EAAG9hhB,EAAE8tO,KAAI,EAAG9tO,EAAE85oB,eAAc,EAAG95oB,EAAEoV,KAAK,KAAKpV,EAAEo7gB,YAAY,KAAKp7gB,EAAE+5oB,mBAAmB,KAAK/5oB,EAAEvH,QAAQ,KAAKuH,EAAEg6oB,gBAAgB,KAAKh6oB,EAAEi6oB,eAAe,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS3jqB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAOA,EAAE,oBAAoB3kD,QAAQA,QAAQxJ,EAAE,OAAO2vD,EAAE8jE,QAAQ,CAACjqH,QAAQ2kD,EAAE,EAAE,CAACy1mB,IAAI,MAAM,IAAI,CAAC,SAAS5jqB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,oBAAoB4lE,YAAY,oBAAoB8viB,aAAa,oBAAoBC,YAAYxylB,EAAEtxE,EAAE,QAAQ/N,EAAE+N,EAAE,WAAWnP,EAAEmP,EAAE,0BAA0B04D,EAAEvK,EAAE,aAAa,QAAQ,SAASoJ,EAAEv3D,EAAE2vD,GAAG9+D,EAAEklE,KAAKwE,KAAK,eAAev6D,GAAGu6D,KAAKwpmB,MAAM,KAAKxpmB,KAAKypmB,YAAYhkqB,EAAEu6D,KAAK0pmB,aAAat0mB,EAAE4K,KAAKqrM,KAAK,CAAC,CAAC,CAACl8O,EAAE45oB,MAAM,OAAOrxqB,EAAE2xjB,SAASrsf,EAAE1mE,GAAG0mE,EAAEzQ,UAAUo9mB,aAAa,SAASlkqB,GAAGu6D,KAAKqrM,KAAK5lQ,EAAE4lQ,KAAK,OAAOrrM,KAAKwpmB,OAAOxpmB,KAAK4pmB,cAAc5pmB,KAAKwpmB,MAAMzuqB,KAAKrD,EAAE2mnB,YAAYlgjB,EAAE14D,EAAE2jB,OAAM,EAAG,EAAE4zC,EAAEzQ,UAAUo1E,MAAM,WAAWrrI,EAAEi2D,UAAUo1E,MAAMnmE,KAAKwE,MAAM,OAAOA,KAAKwpmB,OAAOxpmB,KAAK4pmB,cAAc5pmB,KAAKwpmB,MAAMzuqB,KAAK,IAAG,EAAG,EAAEiiE,EAAEzQ,UAAUgsK,QAAQ,WAAWjiO,EAAEi2D,UAAUgsK,QAAQ/8J,KAAKwE,MAAMA,KAAKwpmB,MAAM,IAAI,EAAExsmB,EAAEzQ,UAAUq9mB,YAAY,WAAW5pmB,KAAKwpmB,MAAM,IAAIzylB,EAAE/W,KAAKypmB,aAAa,CAACrsmB,KAAI,EAAGwtE,MAAM5qE,KAAK0pmB,aAAa9+hB,QAAQ,IAAI,IAAInlI,EAAEu6D,KAAKA,KAAKwpmB,MAAMK,OAAO,SAASz0mB,GAAG3vD,EAAE1K,KAAK,CAACquB,KAAKgsC,EAAEi2M,KAAK5lQ,EAAE4lQ,MAAM,CAAC,EAAEl8O,EAAE05oB,eAAe,SAASpjqB,GAAG,OAAO,IAAIu3D,EAAE,UAAUv3D,EAAE,EAAE0pB,EAAEo5oB,iBAAiB,WAAW,OAAO,IAAIvrmB,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAyB,IAAI,UAAU,IAAI8smB,KAAK,MAAM,IAAI,CAAC,SAASrkqB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,2BAA2B/N,EAAE+N,EAAE,WAAWnP,EAAEmP,EAAE,YAAY04D,EAAE14D,EAAE,gBAAgBu3D,EAAE,SAASv3D,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAE,GAAG,IAAIzkC,EAAE,EAAEA,EAAEimC,EAAEjmC,IAAIykC,GAAGzrC,OAAO6xK,aAAa,IAAIv0L,GAAGA,KAAK,EAAE,OAAOmuD,CAAC,EAAEh+C,EAAE,SAASnQ,EAAE2vD,EAAEjmC,EAAE4nD,EAAEnhE,EAAE4vD,GAAG,IAAIxS,EAAEwP,EAAE5F,EAAEn3D,EAAEo1hB,KAAK9me,EAAEtuD,EAAE8kiB,YAAY/ggB,EAAEg8B,IAAI9tE,EAAEqyqB,WAAWx5lB,EAAE3c,EAAEyqjB,YAAY,SAAS74iB,EAAE5I,EAAE9kE,OAAOvB,EAAEq9D,EAAEyqjB,YAAY,SAAS3mnB,EAAEqyqB,WAAWntmB,EAAE9kE,OAAOo6D,EAAE0K,EAAEh1C,QAAQk7C,EAAElP,EAAEyqjB,YAAY,SAAS74iB,EAAEtT,IAAI+sQ,EAAErrQ,EAAEyqjB,YAAY,SAAS3mnB,EAAEqyqB,WAAW73mB,IAAImkC,EAAE9/F,EAAEoB,SAASilE,EAAE9kE,KAAKH,OAAOilM,EAAEqiI,EAAEtnU,SAASu6D,EAAEv6D,OAAOtB,EAAE,GAAGkpU,EAAE,GAAGzvD,EAAE,GAAGsvD,EAAExiQ,EAAEqgM,IAAI6hE,EAAEliQ,EAAEr4B,KAAK6Z,EAAE,CAACgqnB,MAAM,EAAEF,eAAe,EAAEC,iBAAiB,GAAG/ymB,IAAIjmC,IAAIivB,EAAEgqnB,MAAM3iqB,EAAE2iqB,MAAMhqnB,EAAE8pnB,eAAeziqB,EAAEyiqB,eAAe9pnB,EAAE+pnB,iBAAiB1iqB,EAAE0iqB,kBAAkB,IAAI3oW,EAAE,EAAEpqQ,IAAIoqQ,GAAG,GAAGh2R,IAAI6sD,IAAIumG,IAAI4iI,GAAG,MAAM,IAAI6kU,EAAIC,EAAEtlU,EAAE,EAAEE,EAAE,EAAEE,IAAIJ,GAAG,IAAI,SAASppT,GAAGspT,EAAE,IAAIF,IAA4BslU,EAAxBD,EAAEznkB,EAAEusmB,gBAAwB9kC,IAAIC,EAAVllU,EAAc,MAAM,QAAQ,MAAMklU,IAAI,MAAMplU,EAAE,GAAGF,GAAG,IAAIpiQ,EAAEwsmB,gBAAgB,IAAIp2mB,EAAE8rQ,EAAEpG,cAAc1lQ,IAAI,EAAEA,GAAG8rQ,EAAEnG,gBAAgB3lQ,IAAI,EAAEA,GAAG8rQ,EAAElG,gBAAgB,EAAEp2P,EAAEs8P,EAAEvG,iBAAiB,KAAK/1P,IAAI,EAAEA,GAAGs8P,EAAEtG,cAAc,EAAEh2P,IAAI,EAAEA,GAAGs8P,EAAErG,aAAapiO,IAAIkpO,EAAEviQ,EAAE,EAAE,GAAGA,EAAE1mE,EAAEi6E,GAAG,GAAGh6E,EAAEF,GAAG,KAAK2mE,EAAEuiQ,EAAE5nU,OAAO,GAAG4nU,GAAG3iI,IAAIkzE,EAAE9yM,EAAE,EAAE,GAAGA,EAAE1mE,EAAEwsE,GAAG,GAAGm8P,EAAE5oU,GAAG,KAAK2mE,EAAE8yM,EAAEn4Q,OAAO,GAAGm4Q,GAAG,IAAIy0X,EAAE,GAAG,OAAOA,GAAG,OAAOA,GAAGvnkB,EAAEwiQ,EAAE,GAAG+kU,GAAGxwkB,EAAEg1mB,MAAMxkC,GAAGvnkB,EAAEhK,EAAE,GAAGuxkB,GAAGvnkB,EAAEwF,EAAE,GAAG+hkB,GAAGvnkB,EAAE5e,EAAEgqnB,MAAM,GAAG7jC,GAAGvnkB,EAAE5e,EAAE8pnB,eAAe,GAAG3jC,GAAGvnkB,EAAE5e,EAAE+pnB,iBAAiB,GAAG5jC,GAAGvnkB,EAAEuT,EAAE54E,OAAO,GAAG4soB,GAAGvnkB,EAAE3mE,EAAEsB,OAAO,GAAG,CAACqyqB,WAAW7rmB,EAAE8rmB,kBAAkB1lC,EAAEh0jB,EAAEl6E,EAAE6zqB,UAAU/rmB,EAAEgsmB,oBAAoBntmB,EAAEkiQ,EAAE,GAAGqlU,EAAEvnkB,EAAE8F,EAAEnrE,OAAO,GAAG,WAAWqlE,EAAEgiQ,EAAE,GAAGhiQ,EAAE+Z,EAAE,GAAGxG,EAAEl6E,EAAEysE,EAAE,EAAE0C,EAAE,SAAS//D,GAAG,OAAO04D,EAAEismB,gBAAgBptmB,EAAEv3D,EAAE2iqB,MAAM,GAAGprmB,EAAEv3D,EAAEyiqB,eAAe,GAAGlrmB,EAAEv3D,EAAE0iqB,iBAAiB,EAAE,EAAE,SAASn1mB,EAAEvtD,EAAE2vD,EAAEjmC,EAAEykC,GAAGmjB,EAAEvb,KAAKwE,KAAK,iBAAiBA,KAAKqqmB,aAAa,EAAErqmB,KAAKsqmB,WAAWl1mB,EAAE4K,KAAKuqmB,YAAYp7oB,EAAE6wC,KAAKwqmB,eAAe52mB,EAAEoM,KAAKyqmB,YAAYhlqB,EAAEu6D,KAAK25Z,YAAW,EAAG35Z,KAAK0qmB,cAAc,GAAG1qmB,KAAK2qmB,WAAW,GAAG3qmB,KAAK4qmB,oBAAoB,EAAE5qmB,KAAK6qmB,aAAa,EAAE7qmB,KAAK8qmB,YAAY,KAAK9qmB,KAAK+qmB,SAAS,EAAE,CAACn3mB,EAAEy1f,SAASr2f,EAAE+jB,GAAG/jB,EAAEzG,UAAUxxD,KAAK,SAAS0K,GAAG,IAAI2vD,EAAE3vD,EAAE4lQ,KAAKj7N,SAAS,EAAEjhB,EAAE6wC,KAAK6qmB,aAAaj3mB,EAAEoM,KAAK+qmB,SAASpzqB,OAAOqoE,KAAK25Z,WAAW35Z,KAAK0qmB,cAAc3vqB,KAAK0K,IAAIu6D,KAAKqqmB,cAAc5kqB,EAAE2jB,KAAKzxB,OAAOo/E,EAAExqB,UAAUxxD,KAAKygE,KAAKwE,KAAK,CAAC52C,KAAK3jB,EAAE2jB,KAAKiiP,KAAK,CAACy/Z,YAAY9qmB,KAAK8qmB,YAAY16nB,QAAQjhB,GAAGimC,EAAE,KAAKjmC,EAAEykC,EAAE,IAAIzkC,EAAE,OAAO,EAAE6jC,EAAEzG,UAAUy+mB,aAAa,SAASvlqB,GAAGu6D,KAAK4qmB,oBAAoB5qmB,KAAKqqmB,aAAarqmB,KAAK8qmB,YAAYrlqB,EAAEo1hB,KAAK/iiB,KAAK,IAAIs9D,EAAE4K,KAAKyqmB,cAAchlqB,EAAEo1hB,KAAK59R,IAAI,GAAG7nM,EAAE,CAAC,IAAIjmC,EAAEvZ,EAAEnQ,EAAE2vD,GAAE,EAAG4K,KAAK4qmB,oBAAoB5qmB,KAAKuqmB,YAAYvqmB,KAAKwqmB,gBAAgBxqmB,KAAKjlE,KAAK,CAACquB,KAAK+F,EAAE66oB,WAAW3+Z,KAAK,CAACj7N,QAAQ,IAAI,MAAM4vB,KAAK25Z,YAAW,CAAE,EAAE3ma,EAAEzG,UAAU0+mB,aAAa,SAASxlqB,GAAGu6D,KAAK25Z,YAAW,EAAG,IAAIvka,EAAE4K,KAAKyqmB,cAAchlqB,EAAEo1hB,KAAK59R,IAAI9tO,EAAEvZ,EAAEnQ,EAAE2vD,GAAE,EAAG4K,KAAK4qmB,oBAAoB5qmB,KAAKuqmB,YAAYvqmB,KAAKwqmB,gBAAgB,GAAGxqmB,KAAK2qmB,WAAW5vqB,KAAKo0B,EAAE+6oB,WAAW90mB,EAAE4K,KAAKjlE,KAAK,CAACquB,KAAKo8C,EAAE//D,GAAG4lQ,KAAK,CAACj7N,QAAQ,YAAY,IAAI4vB,KAAKjlE,KAAK,CAACquB,KAAK+F,EAAE66oB,WAAW3+Z,KAAK,CAACj7N,QAAQ,KAAK4vB,KAAK0qmB,cAAc/yqB,QAAQqoE,KAAKjlE,KAAKilE,KAAK0qmB,cAAcnnmB,SAASvD,KAAK8qmB,YAAY,IAAI,EAAE93mB,EAAEzG,UAAUo1E,MAAM,WAAW,IAAI,IAAIl8H,EAAEu6D,KAAKqqmB,aAAaj1mB,EAAE,EAAEA,EAAE4K,KAAK2qmB,WAAWhzqB,OAAOy9D,IAAI4K,KAAKjlE,KAAK,CAACquB,KAAK42C,KAAK2qmB,WAAWv1mB,GAAGi2M,KAAK,CAACj7N,QAAQ,OAAO,IAAIjhB,EAAE6wC,KAAKqqmB,aAAa5kqB,EAAEsxE,EAAE,SAAStxE,EAAE2vD,EAAEjmC,EAAE4nD,EAAEr/E,GAAG,IAAIpB,EAAEs9D,EAAEyqjB,YAAY,SAAS3mnB,EAAEq/E,IAAI,OAAO5Y,EAAE+smB,sBAAsB,WAAWlumB,EAAEv3D,EAAE,GAAGu3D,EAAEv3D,EAAE,GAAGu3D,EAAE5H,EAAE,GAAG4H,EAAE7tC,EAAE,GAAG6tC,EAAE1mE,EAAEqB,OAAO,GAAGrB,CAAC,CAA5I,CAA8I0pE,KAAK2qmB,WAAWhzqB,OAAOw3B,EAAE1pB,EAAEu6D,KAAKsqmB,WAAWtqmB,KAAKwqmB,gBAAgBxqmB,KAAKjlE,KAAK,CAACquB,KAAK2tD,EAAEs0L,KAAK,CAACj7N,QAAQ,MAAM,EAAE4iB,EAAEzG,UAAU4+mB,kBAAkB,WAAWnrmB,KAAKo8H,SAASp8H,KAAK+qmB,SAASxnmB,QAAQvD,KAAKgrmB,aAAahrmB,KAAKo8H,SAASose,YAAYxomB,KAAKqzjB,SAASrzjB,KAAKo8H,SAAS9xH,QAAQtK,KAAKo8H,SAAS5xH,QAAQ,EAAExX,EAAEzG,UAAU6+mB,iBAAiB,SAAS3lqB,GAAGu6D,KAAK+qmB,SAAShwqB,KAAK0K,GAAG,IAAI2vD,EAAE4K,KAAK,OAAOv6D,EAAEy6W,GAAG,QAAQ,SAASz6W,GAAG2vD,EAAEu0mB,aAAalkqB,EAAE,IAAIA,EAAEy6W,GAAG,OAAO,WAAW9qT,EAAE61mB,aAAa71mB,EAAEgnI,SAASose,YAAYpzmB,EAAE21mB,SAASpzqB,OAAOy9D,EAAE+1mB,oBAAoB/1mB,EAAE7jE,KAAK,IAAIkU,EAAEy6W,GAAG,SAAS,SAASz6W,GAAG2vD,EAAEliE,MAAMuS,EAAE,IAAIu6D,IAAI,EAAEhN,EAAEzG,UAAUie,OAAO,WAAW,QAAQuM,EAAExqB,UAAUie,OAAOhP,KAAKwE,SAASA,KAAKo8H,UAAUp8H,KAAK+qmB,SAASpzqB,QAAQqoE,KAAKmrmB,qBAAoB,GAAInrmB,KAAKo8H,UAAUp8H,KAAK+qmB,SAASpzqB,QAAQqoE,KAAKqrmB,oBAAe,GAAQrrmB,KAAKzuE,OAAM,GAAI,EAAEyhE,EAAEzG,UAAUr5D,MAAM,SAASuS,GAAG,IAAI2vD,EAAE4K,KAAK+qmB,SAAS,IAAIh0lB,EAAExqB,UAAUr5D,MAAMsoE,KAAKwE,KAAKv6D,GAAG,OAAM,EAAG,IAAI,IAAI0pB,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,IAAIimC,EAAEjmC,GAAGj8B,MAAMuS,EAAE,CAAC,MAAMA,GAAG,CAAC,OAAM,CAAE,EAAEutD,EAAEzG,UAAUm6b,KAAK,WAAW3va,EAAExqB,UAAUm6b,KAAKlrb,KAAKwE,MAAM,IAAI,IAAIv6D,EAAEu6D,KAAK+qmB,SAAS31mB,EAAE,EAAEA,EAAE3vD,EAAE9N,OAAOy9D,IAAI3vD,EAAE2vD,GAAGsxb,MAAM,EAAEtxb,EAAE8jE,QAAQlmE,CAAC,EAAE,CAAC,WAAW,IAAI,eAAe,IAAI,0BAA0B,IAAI,UAAU,IAAI,WAAW,MAAM,IAAI,CAAC,SAASvtD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBsxE,EAAEtxE,EAAE,mBAAmB0pB,EAAEm8oB,eAAe,SAAS7lqB,EAAE2vD,EAAEjmC,GAAG,IAAIz3B,EAAE,IAAIq/E,EAAE3hB,EAAEq1mB,YAAYt7oB,EAAEimC,EAAEygU,SAASzgU,EAAEo1mB,gBAAgBl0qB,EAAE,EAAE,IAAImP,EAAE6xB,SAAS,SAAS7xB,EAAE0pB,GAAG74B,IAAI,IAAIygF,EAAE,SAAStxE,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,GAAG2vD,EAAE2hB,EAAEnjB,EAAEzkC,GAAG,IAAI4nD,EAAE,MAAM,IAAIljE,MAAMsb,EAAE,wCAAwC,OAAO4nD,CAAC,CAAxG,CAA0G5nD,EAAErF,QAAQyghB,YAAYn1e,EAAEm1e,aAAapse,EAAEhvC,EAAErF,QAAQo/oB,oBAAoB9zmB,EAAE8zmB,oBAAoB,CAAC,EAAElsmB,EAAE7tC,EAAE8tO,IAAIrnP,EAAEuZ,EAAEoV,KAAKpV,EAAEo8oB,gBAAgBx0lB,EAAE5Y,GAAGwqmB,eAAe,OAAO,CAAC7wqB,KAAK2N,EAAEw3P,IAAIjgM,EAAEz4B,KAAK3uB,EAAEgS,QAAQuH,EAAEvH,SAAS,GAAGuhpB,gBAAgBh6oB,EAAEg6oB,gBAAgBC,eAAej6oB,EAAEi6oB,iBAAiBhwlB,KAAK1hF,EAAE,IAAIA,EAAEmzqB,aAAav0qB,CAAC,CAAC,MAAMmP,GAAG/N,EAAExE,MAAMuS,EAAE,CAAC,OAAO/N,CAAC,CAAC,EAAE,CAAC,kBAAkB,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,SAASykC,IAAI,KAAKoM,gBAAgBpM,GAAG,OAAO,IAAIA,EAAE,GAAGuV,UAAUxxE,OAAO,MAAM,IAAIkc,MAAM,kGAAkGmsD,KAAKm7lB,MAAM,CAAC,EAAEn7lB,KAAKp4C,QAAQ,KAAKo4C,KAAK82C,KAAK,GAAG92C,KAAKggB,MAAM,WAAW,IAAIv6E,EAAE,IAAImuD,EAAE,IAAI,IAAIwB,KAAK4K,KAAK,mBAAmBA,KAAK5K,KAAK3vD,EAAE2vD,GAAG4K,KAAK5K,IAAI,OAAO3vD,CAAC,CAAC,CAACmuD,EAAErH,UAAU9mD,EAAE,YAAYmuD,EAAErH,UAAUgpkB,UAAU9vnB,EAAE,UAAUmuD,EAAE09V,QAAQ7rZ,EAAE,aAAamuD,EAAEK,SAASxuD,EAAE,cAAcmuD,EAAEwR,QAAQ,QAAQxR,EAAE2hkB,UAAU,SAAS9vnB,EAAE2vD,GAAG,OAAO,IAAIxB,GAAG2hkB,UAAU9vnB,EAAE2vD,EAAE,EAAExB,EAAEw1M,SAAS3jQ,EAAE,cAAc2vD,EAAE8jE,QAAQtlE,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,IAAI,SAAS,IAAI,WAAW,IAAI,YAAY,MAAM,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,cAAc/N,EAAE+N,EAAE,UAAUnP,GAAGs9D,EAAEnuD,EAAE,WAAWA,EAAE,iBAAiB04D,EAAE14D,EAAE,uBAAuBu3D,EAAEv3D,EAAE,iBAAiB,SAASmQ,EAAEnQ,GAAG,OAAO,IAAIsxE,EAAE9nE,SAAS,SAASmmD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE+lqB,aAAalD,mBAAmBlvlB,KAAK,IAAIjb,GAAGvK,EAAEssT,GAAG,SAAS,SAASz6W,GAAG0pB,EAAE1pB,EAAE,IAAIy6W,GAAG,OAAO,WAAWtsT,EAAE40mB,WAAWJ,QAAQ3iqB,EAAE+lqB,aAAapD,MAAMj5oB,EAAE,IAAItb,MAAM,mCAAmCuhD,GAAG,IAAIoV,QAAQ,GAAG,CAACpV,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK,OAAO5K,EAAExB,EAAEihU,OAAOz/T,GAAG,CAAC,EAAE,CAACmxK,QAAO,EAAGklc,YAAW,EAAGC,uBAAsB,EAAGzC,eAAc,EAAG0C,eAAej0qB,EAAEk0qB,aAAa5umB,EAAEysK,QAAQzsK,EAAE6umB,SAASpmqB,GAAGsxE,EAAE9nE,QAAQ0mL,OAAO,IAAI9hL,MAAM,yDAAyD+/C,EAAEk4mB,eAAe,sBAAsBrmqB,GAAE,EAAG2vD,EAAEs2mB,sBAAsBt2mB,EAAEmxK,QAAQjxO,MAAM,SAASmQ,GAAG,IAAI0pB,EAAE,IAAI74B,EAAE8+D,GAAG,OAAOjmC,EAAEwkM,KAAKluN,GAAG0pB,CAAC,IAAI75B,MAAM,SAASmQ,GAAG,IAAI0pB,EAAE,CAAC4nD,EAAE9nE,QAAQknC,QAAQ1wC,IAAImuD,EAAEnuD,EAAE01pB,MAAM,GAAG/lmB,EAAEq2mB,WAAW,IAAI,IAAI/zqB,EAAE,EAAEA,EAAEk8D,EAAEj8D,OAAOD,IAAIy3B,EAAEp0B,KAAK6a,EAAEg+C,EAAEl8D,KAAK,OAAOq/E,EAAE9nE,QAAQC,IAAIigB,EAAE,IAAI75B,MAAM,SAASmQ,GAAG,IAAI,IAAImuD,EAAEnuD,EAAE89D,QAAQwT,EAAEnjB,EAAEunmB,MAAMzjqB,EAAE,EAAEA,EAAEq/E,EAAEp/E,OAAOD,IAAI,CAAC,IAAIpB,EAAEygF,EAAEr/E,GAAGy3B,EAAE0rgB,KAAKvkiB,EAAEy1qB,YAAYz1qB,EAAEk1qB,aAAa,CAACv6H,QAAO,EAAGy6H,uBAAsB,EAAGnnoB,KAAKjuC,EAAEiuC,KAAK04N,IAAI3mQ,EAAE2mQ,IAAIr1O,QAAQtxB,EAAE01qB,eAAer0qB,OAAOrB,EAAE01qB,eAAe,KAAK7C,gBAAgB7yqB,EAAE6yqB,gBAAgBC,eAAe9yqB,EAAE8yqB,eAAeH,cAAc7zmB,EAAE6zmB,eAAe,CAAC,OAAOr1mB,EAAE02mB,WAAW3yqB,SAASw3B,EAAEvH,QAAQgsC,EAAE02mB,YAAYn7oB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,IAAI,gBAAgB,IAAI,sBAAsB,IAAI,SAAS,IAAI,UAAU,IAAI,eAAe,MAAM,IAAI,CAAC,SAAS1pB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,2BAA2B,SAAS/N,EAAE+N,EAAE2vD,GAAG2hB,EAAEvb,KAAKwE,KAAK,mCAAmCv6D,GAAGu6D,KAAKismB,gBAAe,EAAGjsmB,KAAKksmB,YAAY92mB,EAAE,CAACxB,EAAEy1f,SAAS3xjB,EAAEq/E,GAAGr/E,EAAE60D,UAAU2/mB,YAAY,SAASzmqB,GAAG,IAAI2vD,EAAE4K,KAAKA,KAAKmsmB,QAAQ1mqB,EAAEA,EAAE6kE,QAAQ7kE,EAAEy6W,GAAG,QAAQ,SAASz6W,GAAG2vD,EAAEr6D,KAAK,CAACquB,KAAK3jB,EAAE4lQ,KAAK,CAACj7N,QAAQ,IAAI,IAAI8vU,GAAG,SAAS,SAASz6W,GAAG2vD,EAAEi+jB,SAASrzjB,KAAKqrmB,eAAe5lqB,EAAE2vD,EAAEliE,MAAMuS,EAAE,IAAIy6W,GAAG,OAAO,WAAW9qT,EAAEi+jB,SAASj+jB,EAAE62mB,gBAAe,EAAG72mB,EAAE7jE,KAAK,GAAG,EAAEmG,EAAE60D,UAAU+d,MAAM,WAAW,QAAQyM,EAAExqB,UAAU+d,MAAM9O,KAAKwE,QAAQA,KAAKmsmB,QAAQ7hmB,SAAQ,EAAG,EAAE5yE,EAAE60D,UAAUie,OAAO,WAAW,QAAQuM,EAAExqB,UAAUie,OAAOhP,KAAKwE,QAAQA,KAAKismB,eAAejsmB,KAAKzuE,MAAMyuE,KAAKmsmB,QAAQ3hmB,UAAS,EAAG,EAAEpV,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC,0BAA0B,IAAI,WAAW,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBy7pB,SAAS,SAASnqlB,EAAEtxE,EAAE2vD,EAAEjmC,GAAGykC,EAAE4H,KAAKwE,KAAK5K,GAAG4K,KAAKosmB,QAAQ3mqB,EAAE,IAAIsxE,EAAE/W,KAAKv6D,EAAEy6W,GAAG,QAAQ,SAASz6W,EAAE2vD,GAAG2hB,EAAEh8E,KAAK0K,IAAIsxE,EAAEq1lB,QAAQ9hmB,QAAQn7C,GAAGA,EAAEimC,EAAE,IAAI8qT,GAAG,SAAS,SAASz6W,GAAGsxE,EAAEsqiB,KAAK,QAAQ57mB,EAAE,IAAIy6W,GAAG,OAAO,WAAWnpS,EAAEh8E,KAAK,KAAK,GAAG,CAAC0K,EAAE,YAAY4jjB,SAAStye,EAAEnjB,GAAGmjB,EAAExqB,UAAU8/mB,MAAM,WAAWrsmB,KAAKosmB,QAAQ5hmB,QAAQ,EAAEpV,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,WAAW,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG2vD,EAAE8jE,QAAQ,CAACuwG,YAAO,IAAShkO,EAAE6mqB,cAAc,SAASl3mB,EAAEjmC,GAAG,GAAG1pB,EAAE2f,MAAM3f,EAAE2f,OAAOo0G,WAAWp0G,KAAK,OAAO3f,EAAE2f,KAAKgwC,EAAEjmC,GAAG,GAAG,iBAAiBimC,EAAE,MAAM,IAAIvhD,MAAM,4CAA4C,OAAO,IAAIpO,EAAE2vD,EAAEjmC,EAAE,EAAEo9oB,YAAY,SAASn3mB,GAAG,GAAG3vD,EAAEq1L,MAAM,OAAOr1L,EAAEq1L,MAAM1lI,GAAG,IAAIjmC,EAAE,IAAI1pB,EAAE2vD,GAAG,OAAOjmC,EAAEg7D,KAAK,GAAGh7D,CAAC,EAAEwrG,SAAS,SAASvlE,GAAG,OAAO3vD,EAAEk1H,SAASvlE,EAAE,EAAEy2mB,SAAS,SAASpmqB,GAAG,OAAOA,GAAG,mBAAmBA,EAAEy6W,IAAI,mBAAmBz6W,EAAE6kE,OAAO,mBAAmB7kE,EAAE+kE,MAAM,EAAG,GAAEhP,KAAKwE,KAAKv6D,EAAE,UAAU4zH,OAAO,EAAE,CAACloG,OAAO,MAAM,IAAI,CAAC,SAAS1rB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,UAAUsxE,EAAEtxE,EAAE,WAAW/N,EAAE+N,EAAE,0BAA0BnP,EAAEmP,EAAE,yBAAyB04D,EAAE14D,EAAE,cAAcu3D,EAAEv3D,EAAE,sBAAsBmQ,EAAEnQ,EAAE,eAAe+/D,EAAE//D,EAAE,cAAcutD,EAAEvtD,EAAE,iBAAiB+8D,EAAE/8D,EAAE,qCAAqCm3D,EAAE,SAASn3D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEt9D,EAAEygF,EAAEixlB,UAAU5ymB,GAAGoQ,EAAEuR,EAAE89S,OAAO1lW,GAAG,CAAC,EAAEgvC,GAAGqH,EAAEjhC,KAAKihC,EAAEjhC,MAAM,IAAI5zC,KAAK,OAAO60E,EAAE+ke,cAAc/ke,EAAE+ke,YAAY/ke,EAAE+ke,YAAYvpe,eAAe,iBAAiBwE,EAAE2jmB,kBAAkB3jmB,EAAE2jmB,gBAAgB50pB,SAASixD,EAAE2jmB,gBAAgB,IAAI3jmB,EAAE2jmB,iBAAiB,MAAM3jmB,EAAE2jmB,kBAAkB3jmB,EAAEy3L,KAAI,GAAIz3L,EAAE4jmB,gBAAgB,GAAG5jmB,EAAE4jmB,iBAAiB5jmB,EAAEy3L,KAAI,GAAIz3L,EAAEy3L,MAAMx3P,EAAE+jC,EAAE/jC,IAAI+/D,EAAEyjmB,gBAAgBr1mB,EAAEG,EAAEtuD,KAAK8qE,EAAE/U,KAAKwE,KAAKpM,GAAE,GAAI,IAA4Nr9D,EAAxNqmE,EAAE,WAAWtmE,IAAG,IAAKkvE,EAAEyre,SAAQ,IAAKzre,EAAE+gK,OAAOp3M,QAAG,IAASA,EAAE8hhB,SAASzre,EAAEyre,QAAQr0e,IAAIxH,aAAa4H,GAAG,IAAI5H,EAAE+ymB,kBAAkB3imB,EAAEy3L,MAAM7nM,GAAG,IAAIA,EAAEz9D,UAAU6tE,EAAE+gK,QAAO,EAAG/gK,EAAEyre,QAAO,EAAG77e,EAAE,GAAGoQ,EAAE+ke,YAAY,QAAQj0iB,EAAE,UAAqBC,EAAE6+D,aAAa4H,GAAG5H,aAAa19D,EAAE09D,EAAEpC,EAAEy2K,QAAQz2K,EAAE64mB,SAASz2mB,GAAG,IAAIoN,EAAE/8D,EAAE2vD,GAAG2hB,EAAE+0lB,eAAermqB,EAAE2vD,EAAEoQ,EAAEyre,OAAOzre,EAAEkmmB,sBAAsBlmmB,EAAE+gK,QAAQ,IAAIr0K,EAAE,IAAIt8C,EAAEnQ,EAAElP,EAAEivE,GAAGxF,KAAKm7lB,MAAM11pB,GAAGysD,CAAC,EAAE6B,EAAE,SAAStuD,GAAG,MAAMA,EAAE0tD,OAAO,KAAK1tD,EAAEA,EAAE41C,UAAU,EAAE51C,EAAE9N,OAAO,IAAI,IAAIy9D,EAAE3vD,EAAE8gE,YAAY,KAAK,OAAOnR,EAAE,EAAE3vD,EAAE41C,UAAU,EAAE+Z,GAAG,EAAE,EAAE5rB,EAAE,SAAS/jC,GAAG,MAAM,MAAMA,EAAE0tD,OAAO,KAAK1tD,GAAG,KAAKA,CAAC,EAAE8qE,EAAE,SAAS9qE,EAAE2vD,GAAG,OAAOA,OAAE,IAASA,EAAEA,EAAE+I,EAAE8qmB,cAAcxjqB,EAAE+jC,EAAE/jC,GAAGu6D,KAAKm7lB,MAAM11pB,IAAIm3D,EAAEpB,KAAKwE,KAAKv6D,EAAE,KAAK,CAACw3P,KAAI,EAAGgsa,cAAc7zmB,IAAI4K,KAAKm7lB,MAAM11pB,EAAE,EAAE,SAASlP,EAAEkP,GAAG,MAAM,oBAAoBuU,OAAOuyC,UAAU76D,SAAS8pE,KAAK/1D,EAAE,CAAC,IAAIysD,EAAE,CAACyhK,KAAK,WAAW,MAAM,IAAI9/M,MAAM,6EAA6E,EAAEyjB,QAAQ,SAAS7xB,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAE,IAAIwB,KAAK4K,KAAKm7lB,MAAMn7lB,KAAKm7lB,MAAMrriB,eAAe16D,KAAKxB,EAAEoM,KAAKm7lB,MAAM/lmB,IAAIjmC,EAAEimC,EAAEjC,MAAM6M,KAAK82C,KAAKn/G,OAAOy9D,EAAEz9D,UAAUy9D,EAAEjC,MAAM,EAAE6M,KAAK82C,KAAKn/G,UAAUqoE,KAAK82C,MAAMrxG,EAAE0pB,EAAEykC,GAAG,EAAEn+D,OAAO,SAASgQ,GAAG,IAAI2vD,EAAE,GAAG,OAAO4K,KAAK1oC,SAAS,SAASnI,EAAEykC,GAAGnuD,EAAE0pB,EAAEykC,IAAIwB,EAAEr6D,KAAK64D,EAAE,IAAIwB,CAAC,EAAEyle,KAAK,SAASp1hB,EAAE2vD,EAAEjmC,GAAG,GAAG,IAAIg6C,UAAUxxE,OAAO,CAAC,GAAGpB,EAAEkP,GAAG,CAAC,IAAImuD,EAAEnuD,EAAE,OAAOu6D,KAAKvqE,QAAQ,SAASgQ,EAAE2vD,GAAG,OAAOA,EAAE6nM,KAAKrpM,EAAExgD,KAAK3N,EAAE,GAAG,CAAC,IAAIsxE,EAAE/W,KAAKm7lB,MAAMn7lB,KAAK82C,KAAKrxG,GAAG,OAAOsxE,IAAIA,EAAEkmL,IAAIlmL,EAAE,IAAI,CAAC,OAAOtxE,EAAEu6D,KAAK82C,KAAKrxG,EAAEm3D,EAAEpB,KAAKwE,KAAKv6D,EAAE2vD,EAAEjmC,GAAG6wC,IAAI,EAAE0ne,OAAO,SAASjiiB,GAAG,IAAIA,EAAE,OAAOu6D,KAAK,GAAGzpE,EAAEkP,GAAG,OAAOu6D,KAAKvqE,QAAQ,SAAS2/D,EAAEjmC,GAAG,OAAOA,EAAE8tO,KAAKx3P,EAAE2N,KAAKgiD,EAAE,IAAI,IAAIA,EAAE4K,KAAK82C,KAAKrxG,EAAE0pB,EAAEohD,EAAE/U,KAAKwE,KAAK5K,GAAGxB,EAAEoM,KAAKggB,QAAQ,OAAOpsB,EAAEkjD,KAAK3nF,EAAEr3B,KAAK87D,CAAC,EAAEgC,OAAO,SAASnwD,GAAGA,EAAEu6D,KAAK82C,KAAKrxG,EAAE,IAAI2vD,EAAE4K,KAAKm7lB,MAAM11pB,GAAG,GAAG2vD,IAAI,MAAM3vD,EAAE0tD,OAAO,KAAK1tD,GAAG,KAAK2vD,EAAE4K,KAAKm7lB,MAAM11pB,IAAI2vD,IAAIA,EAAE6nM,WAAWj9L,KAAKm7lB,MAAM11pB,QAAQ,IAAI,IAAI0pB,EAAE6wC,KAAKvqE,QAAQ,SAAS2/D,EAAEjmC,GAAG,OAAOA,EAAEr3B,KAAKq7D,MAAM,EAAE1tD,EAAE9N,UAAU8N,CAAC,IAAImuD,EAAE,EAAEA,EAAEzkC,EAAEx3B,OAAOi8D,WAAWoM,KAAKm7lB,MAAMhsoB,EAAEykC,GAAG97D,MAAM,OAAOkoE,IAAI,EAAEk1M,SAAS,SAASzvQ,GAAG,MAAM,IAAIoO,MAAM,6EAA6E,EAAE24pB,uBAAuB,SAAS/mqB,GAAG,IAAI2vD,EAAEjmC,EAAE,CAAC,EAAE,IAAI,IAAIA,EAAE4nD,EAAE89S,OAAOpvX,GAAG,CAAC,EAAE,CAACglqB,aAAY,EAAGlgI,YAAY,QAAQ2+H,mBAAmB,KAAKtyqB,KAAK,GAAGi/X,SAAS,MAAMjuW,QAAQ,KAAKyxgB,SAAS,kBAAkBmxI,eAAe52mB,EAAEm2mB,cAAcnzqB,KAAKu4B,EAAEv4B,KAAKJ,cAAc24B,EAAEo7gB,YAAYp7gB,EAAEo7gB,YAAYvpe,cAAc,iBAAiB7xC,EAAEv4B,OAAOu4B,EAAEv4B,KAAK,WAAWu4B,EAAEv4B,KAAK,MAAM,IAAIid,MAAM,6BAA6BkjE,EAAE01lB,aAAat9oB,EAAEv4B,MAAM,WAAWu4B,EAAE0mW,UAAU,YAAY1mW,EAAE0mW,UAAU,UAAU1mW,EAAE0mW,UAAU,UAAU1mW,EAAE0mW,WAAW1mW,EAAE0mW,SAAS,QAAQ,UAAU1mW,EAAE0mW,WAAW1mW,EAAE0mW,SAAS,OAAO,IAAI13T,EAAEhvC,EAAEvH,SAASo4C,KAAKp4C,SAAS,GAAGwtC,EAAEoQ,EAAE8lmB,eAAetrmB,KAAK7wC,EAAEgvC,EAAE,CAAC,MAAM14D,IAAI2vD,EAAE,IAAI19D,EAAE,UAAUxE,MAAMuS,EAAE,CAAC,OAAO,IAAInP,EAAE8+D,EAAEjmC,EAAEv4B,MAAM,SAASu4B,EAAEkqgB,SAAS,EAAEmR,cAAc,SAAS/kiB,EAAE2vD,GAAG,OAAO4K,KAAKwsmB,uBAAuB/mqB,GAAGk0d,WAAWvka,EAAE,EAAEs3mB,mBAAmB,SAASjnqB,EAAE2vD,GAAG,OAAO3vD,EAAEA,GAAG,CAAC,GAAG7O,OAAO6O,EAAE7O,KAAK,cAAcopE,KAAKwsmB,uBAAuB/mqB,GAAGknqB,eAAev3mB,EAAE,GAAGA,EAAE8jE,QAAQhnE,CAAC,EAAE,CAAC,qBAAqB,IAAI,aAAa,IAAI,aAAa,IAAI,oCAAoC,IAAI,gBAAgB,IAAI,yBAAyB,IAAI,wBAAwB,IAAI,SAAS,IAAI,UAAU,IAAI,cAAc,MAAM,IAAI,CAAC,SAASzsD,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQzzH,EAAE,SAAS,EAAE,CAAC4vnB,OAAO,MAAM,IAAI,CAAC,SAAS5vnB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,gBAAgB,SAASsxE,EAAEtxE,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,GAAG,IAAI,IAAI2vD,EAAE,EAAEA,EAAE4K,KAAK52C,KAAKzxB,OAAOy9D,IAAI3vD,EAAE2vD,GAAG,IAAI3vD,EAAE2vD,EAAE,CAAC3vD,EAAE,YAAY4jjB,SAAStye,EAAEnjB,GAAGmjB,EAAExqB,UAAUqgnB,OAAO,SAASnnqB,GAAG,OAAOu6D,KAAK52C,KAAK42C,KAAKy7jB,KAAKh2nB,EAAE,EAAEsxE,EAAExqB,UAAUsgnB,qBAAqB,SAASpnqB,GAAG,IAAI,IAAI2vD,EAAE3vD,EAAE+1I,WAAW,GAAGrsH,EAAE1pB,EAAE+1I,WAAW,GAAG5nF,EAAEnuD,EAAE+1I,WAAW,GAAGzkE,EAAEtxE,EAAE+1I,WAAW,GAAG9jJ,EAAEsoE,KAAKroE,OAAO,EAAED,GAAG,IAAIA,EAAE,GAAGsoE,KAAK52C,KAAK1xB,KAAK09D,GAAG4K,KAAK52C,KAAK1xB,EAAE,KAAKy3B,GAAG6wC,KAAK52C,KAAK1xB,EAAE,KAAKk8D,GAAGoM,KAAK52C,KAAK1xB,EAAE,KAAKq/E,EAAE,OAAOr/E,EAAEsoE,KAAKy7jB,KAAK,OAAO,CAAC,EAAE1kjB,EAAExqB,UAAUugnB,sBAAsB,SAASrnqB,GAAG,IAAI2vD,EAAE3vD,EAAE+1I,WAAW,GAAGrsH,EAAE1pB,EAAE+1I,WAAW,GAAG5nF,EAAEnuD,EAAE+1I,WAAW,GAAGzkE,EAAEtxE,EAAE+1I,WAAW,GAAG9jJ,EAAEsoE,KAAK+smB,SAAS,GAAG,OAAO33mB,IAAI19D,EAAE,IAAIy3B,IAAIz3B,EAAE,IAAIk8D,IAAIl8D,EAAE,IAAIq/E,IAAIr/E,EAAE,EAAE,EAAEq/E,EAAExqB,UAAUwgnB,SAAS,SAAStnqB,GAAG,GAAGu6D,KAAKgtmB,YAAYvnqB,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAI2vD,EAAE4K,KAAK52C,KAAK+pC,MAAM6M,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMgpE,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMyO,GAAG,OAAOu6D,KAAKhpE,OAAOyO,EAAE2vD,CAAC,EAAEA,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,WAAW,IAAI,eAAe,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAY,SAASsxE,EAAEtxE,GAAGu6D,KAAK52C,KAAK3jB,EAAEu6D,KAAKroE,OAAO8N,EAAE9N,OAAOqoE,KAAKhpE,MAAM,EAAEgpE,KAAKy7jB,KAAK,CAAC,CAAC1kjB,EAAExqB,UAAU,CAACygnB,YAAY,SAASvnqB,GAAGu6D,KAAKitmB,WAAWjtmB,KAAKhpE,MAAMyO,EAAE,EAAEwnqB,WAAW,SAASxnqB,GAAG,GAAGu6D,KAAKroE,OAAOqoE,KAAKy7jB,KAAKh2nB,GAAGA,EAAE,EAAE,MAAM,IAAIoO,MAAM,sCAAsCmsD,KAAKroE,OAAO,mBAAmB8N,EAAE,qBAAqB,EAAEynqB,SAAS,SAASznqB,GAAGu6D,KAAKitmB,WAAWxnqB,GAAGu6D,KAAKhpE,MAAMyO,CAAC,EAAE2gZ,KAAK,SAAS3gZ,GAAGu6D,KAAKktmB,SAASltmB,KAAKhpE,MAAMyO,EAAE,EAAEmnqB,OAAO,SAASnnqB,GAAG,EAAE0nqB,QAAQ,SAAS1nqB,GAAG,IAAI2vD,EAAEjmC,EAAE,EAAE,IAAI6wC,KAAKgtmB,YAAYvnqB,GAAG2vD,EAAE4K,KAAKhpE,MAAMyO,EAAE,EAAE2vD,GAAG4K,KAAKhpE,MAAMo+D,IAAIjmC,GAAGA,GAAG,GAAG6wC,KAAK4smB,OAAOx3mB,GAAG,OAAO4K,KAAKhpE,OAAOyO,EAAE0pB,CAAC,EAAEi+oB,WAAW,SAAS3nqB,GAAG,OAAOmuD,EAAEyqjB,YAAY,SAASr+iB,KAAK+smB,SAAStnqB,GAAG,EAAEsnqB,SAAS,SAAStnqB,GAAG,EAAEonqB,qBAAqB,SAASpnqB,GAAG,EAAEqnqB,sBAAsB,SAASrnqB,GAAG,EAAE4nqB,SAAS,WAAW,IAAI5nqB,EAAEu6D,KAAKmtmB,QAAQ,GAAG,OAAO,IAAIx8qB,KAAKA,KAAK04W,IAAI,MAAM5jW,GAAG,GAAG,MAAMA,GAAG,GAAG,IAAI,EAAEA,GAAG,GAAG,GAAGA,GAAG,GAAG,GAAGA,GAAG,EAAE,IAAI,GAAGA,IAAI,GAAG,GAAG2vD,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,WAAW,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,sBAAsB,SAASsxE,EAAEtxE,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,EAAE,CAACA,EAAE,YAAY4jjB,SAAStye,EAAEnjB,GAAGmjB,EAAExqB,UAAUwgnB,SAAS,SAAStnqB,GAAGu6D,KAAKgtmB,YAAYvnqB,GAAG,IAAI2vD,EAAE4K,KAAK52C,KAAK+pC,MAAM6M,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMgpE,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMyO,GAAG,OAAOu6D,KAAKhpE,OAAOyO,EAAE2vD,CAAC,EAAEA,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,WAAW,IAAI,qBAAqB,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,gBAAgB,SAASsxE,EAAEtxE,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,EAAE,CAACA,EAAE,YAAY4jjB,SAAStye,EAAEnjB,GAAGmjB,EAAExqB,UAAUqgnB,OAAO,SAASnnqB,GAAG,OAAOu6D,KAAK52C,KAAKoyH,WAAWx7E,KAAKy7jB,KAAKh2nB,EAAE,EAAEsxE,EAAExqB,UAAUsgnB,qBAAqB,SAASpnqB,GAAG,OAAOu6D,KAAK52C,KAAKm9C,YAAY9gE,GAAGu6D,KAAKy7jB,IAAI,EAAE1kjB,EAAExqB,UAAUugnB,sBAAsB,SAASrnqB,GAAG,OAAOA,IAAIu6D,KAAK+smB,SAAS,EAAE,EAAEh2lB,EAAExqB,UAAUwgnB,SAAS,SAAStnqB,GAAGu6D,KAAKgtmB,YAAYvnqB,GAAG,IAAI2vD,EAAE4K,KAAK52C,KAAK+pC,MAAM6M,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMgpE,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMyO,GAAG,OAAOu6D,KAAKhpE,OAAOyO,EAAE2vD,CAAC,EAAEA,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,WAAW,IAAI,eAAe,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,iBAAiB,SAASsxE,EAAEtxE,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,EAAE,CAACA,EAAE,YAAY4jjB,SAAStye,EAAEnjB,GAAGmjB,EAAExqB,UAAUwgnB,SAAS,SAAStnqB,GAAG,GAAGu6D,KAAKgtmB,YAAYvnqB,GAAG,IAAIA,EAAE,OAAO,IAAI+zH,WAAW,GAAG,IAAIpkE,EAAE4K,KAAK52C,KAAK46nB,SAAShklB,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMgpE,KAAKy7jB,KAAKz7jB,KAAKhpE,MAAMyO,GAAG,OAAOu6D,KAAKhpE,OAAOyO,EAAE2vD,CAAC,EAAEA,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,WAAW,IAAI,gBAAgB,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,cAAc/N,EAAE+N,EAAE,iBAAiBnP,EAAEmP,EAAE,kBAAkB04D,EAAE14D,EAAE,sBAAsBu3D,EAAEv3D,EAAE,sBAAsB2vD,EAAE8jE,QAAQ,SAASzzH,GAAG,IAAI2vD,EAAExB,EAAEo0mB,UAAUviqB,GAAG,OAAOmuD,EAAE64mB,aAAar3mB,GAAG,WAAWA,GAAG2hB,EAAEkxlB,WAAW,eAAe7ymB,EAAE,IAAI+I,EAAE14D,GAAGsxE,EAAEkxlB,WAAW,IAAIjrmB,EAAEpJ,EAAEyqjB,YAAY,aAAa54mB,IAAI,IAAI/N,EAAEk8D,EAAEyqjB,YAAY,QAAQ54mB,IAAI,IAAInP,EAAEmP,EAAE,CAAC,EAAE,CAAC,aAAa,IAAI,WAAW,IAAI,gBAAgB,IAAI,qBAAqB,IAAI,iBAAiB,IAAI,qBAAqB,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAGA,EAAE86oB,kBAAkB,aAAa96oB,EAAEg7oB,oBAAoB,aAAah7oB,EAAE+7oB,sBAAsB,aAAa/7oB,EAAEm+oB,gCAAgC,aAAan+oB,EAAEo+oB,4BAA4B,aAAap+oB,EAAEi7oB,gBAAgB,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS3kqB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBsxE,EAAEtxE,EAAE,YAAY,SAAS/N,EAAE+N,GAAGmuD,EAAE4H,KAAKwE,KAAK,oBAAoBv6D,GAAGu6D,KAAKwtmB,SAAS/nqB,CAAC,CAACsxE,EAAEsye,SAAS3xjB,EAAEk8D,GAAGl8D,EAAE60D,UAAUo9mB,aAAa,SAASlkqB,GAAGu6D,KAAKjlE,KAAK,CAACquB,KAAK2tD,EAAEsniB,YAAYr+iB,KAAKwtmB,SAAS/nqB,EAAE2jB,MAAMiiP,KAAK5lQ,EAAE4lQ,MAAM,EAAEj2M,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC,WAAW,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBsxE,EAAEtxE,EAAE,YAAY,SAAS/N,IAAIk8D,EAAE4H,KAAKwE,KAAK,cAAcA,KAAK2omB,eAAe,QAAQ,EAAE,CAACljqB,EAAE,YAAY4jjB,SAAS3xjB,EAAEk8D,GAAGl8D,EAAE60D,UAAUo9mB,aAAa,SAASlkqB,GAAGu6D,KAAKwomB,WAAWJ,MAAMrxlB,EAAEtxE,EAAE2jB,KAAK42C,KAAKwomB,WAAWJ,OAAO,GAAGpomB,KAAKjlE,KAAK0K,EAAE,EAAE2vD,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC,WAAW,IAAI,WAAW,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,mBAAmB,SAAS/N,EAAE+N,GAAGsxE,EAAEvb,KAAKwE,KAAK,uBAAuBv6D,GAAGu6D,KAAKijM,SAASx9P,EAAEu6D,KAAK2omB,eAAeljqB,EAAE,EAAE,CAACmuD,EAAEy1f,SAAS3xjB,EAAEq/E,GAAGr/E,EAAE60D,UAAUo9mB,aAAa,SAASlkqB,GAAG,GAAGA,EAAE,CAAC,IAAI2vD,EAAE4K,KAAKwomB,WAAWxomB,KAAKijM,WAAW,EAAEjjM,KAAKwomB,WAAWxomB,KAAKijM,UAAU7tM,EAAE3vD,EAAE2jB,KAAKzxB,MAAM,CAACo/E,EAAExqB,UAAUo9mB,aAAanumB,KAAKwE,KAAKv6D,EAAE,EAAE2vD,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC,WAAW,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,mBAAmB,SAAS/N,EAAE+N,GAAGsxE,EAAEvb,KAAKwE,KAAK,cAAc,IAAI5K,EAAE4K,KAAKA,KAAKytmB,aAAY,EAAGztmB,KAAKhpE,MAAM,EAAEgpE,KAAKphD,IAAI,EAAEohD,KAAK52C,KAAK,KAAK42C,KAAKppE,KAAK,GAAGopE,KAAK0tmB,gBAAe,EAAGjoqB,EAAEnQ,MAAM,SAASmQ,GAAG2vD,EAAEq4mB,aAAY,EAAGr4mB,EAAEhsC,KAAK3jB,EAAE2vD,EAAEx2C,IAAInZ,GAAGA,EAAE9N,QAAQ,EAAEy9D,EAAEx+D,KAAKg9D,EAAEo0mB,UAAUviqB,GAAG2vD,EAAEi+jB,UAAUj+jB,EAAEu4mB,gBAAgB,IAAI,SAASloqB,GAAG2vD,EAAEliE,MAAMuS,EAAE,GAAG,CAACmuD,EAAEy1f,SAAS3xjB,EAAEq/E,GAAGr/E,EAAE60D,UAAUgsK,QAAQ,WAAWxhJ,EAAExqB,UAAUgsK,QAAQ/8J,KAAKwE,MAAMA,KAAK52C,KAAK,IAAI,EAAE1xB,EAAE60D,UAAUie,OAAO,WAAW,QAAQuM,EAAExqB,UAAUie,OAAOhP,KAAKwE,SAASA,KAAK0tmB,gBAAgB1tmB,KAAKytmB,cAAcztmB,KAAK0tmB,gBAAe,EAAG95mB,EAAEhG,MAAMoS,KAAK2tmB,eAAe,GAAG3tmB,QAAO,EAAG,EAAEtoE,EAAE60D,UAAUohnB,eAAe,WAAW3tmB,KAAK0tmB,gBAAe,EAAG1tmB,KAAKqzjB,UAAUrzjB,KAAK4tmB,aAAa5tmB,KAAK2E,QAAQ3E,KAAK4tmB,aAAah6mB,EAAEhG,MAAMoS,KAAK2tmB,eAAe,GAAG3tmB,MAAMA,KAAK0tmB,gBAAe,GAAI,EAAEh2qB,EAAE60D,UAAUoY,MAAM,WAAW,GAAG3E,KAAKqzjB,UAAUrzjB,KAAK4tmB,WAAW,OAAM,EAAG,IAAInoqB,EAAE,KAAK2vD,EAAE3kE,KAAK64C,IAAI02B,KAAKphD,IAAIohD,KAAKhpE,MAAM,OAAO,GAAGgpE,KAAKhpE,OAAOgpE,KAAKphD,IAAI,OAAOohD,KAAKzuE,MAAM,OAAOyuE,KAAKppE,MAAM,IAAI,SAAS6O,EAAEu6D,KAAK52C,KAAKiyB,UAAU2kB,KAAKhpE,MAAMo+D,GAAG,MAAM,IAAI,aAAa3vD,EAAEu6D,KAAK52C,KAAK46nB,SAAShklB,KAAKhpE,MAAMo+D,GAAG,MAAM,IAAI,QAAQ,IAAI,aAAa3vD,EAAEu6D,KAAK52C,KAAK+pC,MAAM6M,KAAKhpE,MAAMo+D,GAAG,OAAO4K,KAAKhpE,MAAMo+D,EAAE4K,KAAKjlE,KAAK,CAACquB,KAAK3jB,EAAE4lQ,KAAK,CAACj7N,QAAQ4vB,KAAKphD,IAAIohD,KAAKhpE,MAAMgpE,KAAKphD,IAAI,IAAI,IAAI,EAAEw2C,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC,WAAW,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,GAAGu6D,KAAKloE,KAAK2N,GAAG,UAAUu6D,KAAKwomB,WAAW,CAAC,EAAExomB,KAAKqrmB,eAAe,KAAKrrmB,KAAK6tmB,gBAAgB,CAAC,EAAE7tmB,KAAKqzjB,UAAS,EAAGrzjB,KAAK4tmB,YAAW,EAAG5tmB,KAAK8tmB,UAAS,EAAG9tmB,KAAK0E,WAAW,CAACt7C,KAAK,GAAG73B,IAAI,GAAG2B,MAAM,IAAI8sE,KAAKo8H,SAAS,IAAI,CAACxoI,EAAErH,UAAU,CAACxxD,KAAK,SAAS0K,GAAGu6D,KAAKqhjB,KAAK,OAAO57mB,EAAE,EAAElU,IAAI,WAAW,GAAGyuE,KAAK4tmB,WAAW,OAAM,EAAG5tmB,KAAK2hE,QAAQ,IAAI3hE,KAAKqhjB,KAAK,OAAOrhjB,KAAKu4J,UAAUv4J,KAAK4tmB,YAAW,CAAE,CAAC,MAAMnoqB,GAAGu6D,KAAKqhjB,KAAK,QAAQ57mB,EAAE,CAAC,OAAM,CAAE,EAAEvS,MAAM,SAASuS,GAAG,OAAOu6D,KAAK4tmB,aAAa5tmB,KAAKqzjB,SAASrzjB,KAAKqrmB,eAAe5lqB,GAAGu6D,KAAK4tmB,YAAW,EAAG5tmB,KAAKqhjB,KAAK,QAAQ57mB,GAAGu6D,KAAKo8H,UAAUp8H,KAAKo8H,SAASlpM,MAAMuS,GAAGu6D,KAAKu4J,YAAW,EAAG,EAAE2nJ,GAAG,SAASz6W,EAAE2vD,GAAG,OAAO4K,KAAK0E,WAAWj/D,GAAG1K,KAAKq6D,GAAG4K,IAAI,EAAEu4J,QAAQ,WAAWv4J,KAAKwomB,WAAWxomB,KAAKqrmB,eAAerrmB,KAAK6tmB,gBAAgB,KAAK7tmB,KAAK0E,WAAW,EAAE,EAAE28iB,KAAK,SAAS57mB,EAAE2vD,GAAG,GAAG4K,KAAK0E,WAAWj/D,GAAG,IAAI,IAAI0pB,EAAE,EAAEA,EAAE6wC,KAAK0E,WAAWj/D,GAAG9N,OAAOw3B,IAAI6wC,KAAK0E,WAAWj/D,GAAG0pB,GAAGqsC,KAAKwE,KAAK5K,EAAE,EAAEgkB,KAAK,SAAS3zE,GAAG,OAAOA,EAAE2lqB,iBAAiBprmB,KAAK,EAAEormB,iBAAiB,SAAS3lqB,GAAG,GAAGu6D,KAAK8tmB,SAAS,MAAM,IAAIj6pB,MAAM,eAAemsD,KAAK,4BAA4BA,KAAKwomB,WAAW/iqB,EAAE+iqB,WAAWxomB,KAAK+tmB,kBAAkB/tmB,KAAKo8H,SAAS32L,EAAE,IAAI2vD,EAAE4K,KAAK,OAAOv6D,EAAEy6W,GAAG,QAAQ,SAASz6W,GAAG2vD,EAAEu0mB,aAAalkqB,EAAE,IAAIA,EAAEy6W,GAAG,OAAO,WAAW9qT,EAAE7jE,KAAK,IAAIkU,EAAEy6W,GAAG,SAAS,SAASz6W,GAAG2vD,EAAEliE,MAAMuS,EAAE,IAAIu6D,IAAI,EAAEsK,MAAM,WAAW,OAAOtK,KAAKqzjB,WAAWrzjB,KAAK4tmB,aAAa5tmB,KAAKqzjB,UAAS,EAAGrzjB,KAAKo8H,UAAUp8H,KAAKo8H,SAAS9xH,SAAQ,EAAG,EAAEE,OAAO,WAAW,IAAIxK,KAAKqzjB,UAAUrzjB,KAAK4tmB,WAAW,OAAM,EAAG5tmB,KAAKqzjB,UAAS,EAAG,IAAI5tnB,GAAE,EAAG,OAAOu6D,KAAKqrmB,iBAAiBrrmB,KAAK9sE,MAAM8sE,KAAKqrmB,gBAAgB5lqB,GAAE,GAAIu6D,KAAKo8H,UAAUp8H,KAAKo8H,SAAS5xH,UAAU/kE,CAAC,EAAEk8H,MAAM,WAAW,EAAEgoiB,aAAa,SAASlkqB,GAAGu6D,KAAKjlE,KAAK0K,EAAE,EAAEkjqB,eAAe,SAASljqB,EAAE2vD,GAAG,OAAO4K,KAAK6tmB,gBAAgBpoqB,GAAG2vD,EAAE4K,KAAK+tmB,kBAAkB/tmB,IAAI,EAAE+tmB,gBAAgB,WAAW,IAAI,IAAItoqB,KAAKu6D,KAAK6tmB,gBAAgB7tmB,KAAK6tmB,gBAAgB/9iB,eAAerqH,KAAKu6D,KAAKwomB,WAAW/iqB,GAAGu6D,KAAK6tmB,gBAAgBpoqB,GAAG,EAAEihf,KAAK,WAAW,GAAG1mb,KAAK8tmB,SAAS,MAAM,IAAIj6pB,MAAM,eAAemsD,KAAK,4BAA4BA,KAAK8tmB,UAAS,EAAG9tmB,KAAKo8H,UAAUp8H,KAAKo8H,SAASsqT,MAAM,EAAEh1f,SAAS,WAAW,IAAI+T,EAAE,UAAUu6D,KAAKloE,KAAK,OAAOkoE,KAAKo8H,SAASp8H,KAAKo8H,SAAS,OAAO32L,EAAEA,CAAC,GAAG2vD,EAAE8jE,QAAQtlE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,IAAG,SAAUA,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,mBAAmB/N,EAAE+N,EAAE,mBAAmBnP,EAAEmP,EAAE,aAAa04D,EAAE14D,EAAE,cAAcu3D,EAAEv3D,EAAE,eAAemQ,EAAE,KAAK,GAAGuoD,EAAE6vmB,WAAW,IAAIp4pB,EAAEnQ,EAAE,sCAAsC,CAAC,MAAMA,GAAG,CAA4xB,SAASutD,EAAEvtD,EAAE2vD,EAAEjmC,GAAG,IAAI74B,EAAE8+D,EAAE,OAAOA,GAAG,IAAI,OAAO,IAAI,cAAc9+D,EAAE,aAAa,MAAM,IAAI,SAASA,EAAE,SAAS,IAAI0pE,KAAKiumB,cAAc33qB,EAAE0pE,KAAKkumB,YAAY94mB,EAAE4K,KAAKmumB,UAAUh/oB,EAAEykC,EAAE64mB,aAAan2qB,GAAG0pE,KAAKoumB,QAAQ3oqB,EAAE2zE,KAAK,IAAIrC,EAAEzgF,IAAImP,EAAEihf,MAAM,CAAC,MAAMjhf,GAAGu6D,KAAKoumB,QAAQ,IAAI12qB,EAAE,SAASsoE,KAAKoumB,QAAQl7qB,MAAMuS,EAAE,CAAC,CAACutD,EAAEzG,UAAU,CAACota,WAAW,SAASl0d,GAAG,OAA/lC,SAAWA,EAAE2vD,GAAG,OAAO,IAAI4H,EAAE/tD,SAAS,SAAS8nE,EAAEr/E,GAAG,IAAIymE,EAAE,GAAGnB,EAAEv3D,EAAEwoqB,cAAcr4pB,EAAEnQ,EAAEyoqB,YAAY1omB,EAAE//D,EAAE0oqB,UAAU1oqB,EAAEy6W,GAAG,QAAQ,SAASz6W,EAAE0pB,GAAGgvC,EAAEpjE,KAAK0K,GAAG2vD,GAAGA,EAAEjmC,EAAE,IAAI+wV,GAAG,SAAS,SAASz6W,GAAG04D,EAAE,GAAGzmE,EAAE+N,EAAE,IAAIy6W,GAAG,OAAO,WAAW,IAAI,IAAIz6W,EAAE,SAASA,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,GAAG,IAAI,OAAO,OAAOmuD,EAAEy6mB,QAAQz6mB,EAAEyqjB,YAAY,cAAcjpjB,GAAGjmC,GAAG,IAAI,SAAS,OAAO74B,EAAEy0nB,OAAO31jB,GAAG,QAAQ,OAAOxB,EAAEyqjB,YAAY54mB,EAAE2vD,GAAG,CAA1J,CAA4Jx/C,EAAE,SAASnQ,EAAE2vD,GAAG,IAAIxB,EAAEmjB,EAAE,EAAEr/E,EAAE,KAAKpB,EAAE,EAAE,IAAIs9D,EAAE,EAAEA,EAAEwB,EAAEz9D,OAAOi8D,IAAIt9D,GAAG8+D,EAAExB,GAAGj8D,OAAO,OAAO8N,GAAG,IAAI,SAAS,OAAO2vD,EAAEtqB,KAAK,IAAI,IAAI,QAAQ,OAAOukB,MAAM9C,UAAUjQ,OAAOoG,MAAM,GAAG0S,GAAG,IAAI,aAAa,IAAI19D,EAAE,IAAI8hI,WAAWljI,GAAGs9D,EAAE,EAAEA,EAAEwB,EAAEz9D,OAAOi8D,IAAIl8D,EAAEoxE,IAAI1T,EAAExB,GAAGmjB,GAAGA,GAAG3hB,EAAExB,GAAGj8D,OAAO,OAAOD,EAAE,IAAI,aAAa,OAAOy3B,EAAEmtB,OAAO8Y,GAAG,QAAQ,MAAM,IAAIvhD,MAAM,8BAA8BpO,EAAE,KAAK,CAA3W,CAA6Wu3D,EAAEmB,GAAGqH,GAAGuR,EAAEtxE,EAAE,CAAC,MAAMA,GAAG/N,EAAE+N,EAAE,CAAC04D,EAAE,EAAE,IAAIqM,QAAQ,GAAG,CAA4UhF,CAAExF,KAAKv6D,EAAE,EAAEy6W,GAAG,SAASz6W,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK,MAAM,SAASv6D,EAAEu6D,KAAKoumB,QAAQluT,GAAGz6W,GAAG,SAASA,GAAG2vD,EAAEoG,KAAKrsC,EAAE1pB,EAAE2jB,KAAK3jB,EAAE4lQ,KAAK,IAAIrrM,KAAKoumB,QAAQluT,GAAGz6W,GAAG,WAAWmuD,EAAEhG,MAAMwH,EAAE+T,UAAUh6C,EAAE,IAAI6wC,IAAI,EAAEwK,OAAO,WAAW,OAAO5W,EAAEhG,MAAMoS,KAAKoumB,QAAQ5jmB,OAAO,GAAGxK,KAAKoumB,SAASpumB,IAAI,EAAEsK,MAAM,WAAW,OAAOtK,KAAKoumB,QAAQ9jmB,QAAQtK,IAAI,EAAE2smB,eAAe,SAASlnqB,GAAG,GAAGmuD,EAAE64mB,aAAa,cAAc,eAAezsmB,KAAKkumB,YAAY,MAAM,IAAIr6pB,MAAMmsD,KAAKkumB,YAAY,oCAAoC,OAAO,IAAIt4pB,EAAEoqD,KAAK,CAACs8lB,WAAW,eAAet8lB,KAAKkumB,aAAazoqB,EAAE,GAAG2vD,EAAE8jE,QAAQlmE,CAAE,GAAEwI,KAAKwE,KAAKv6D,EAAE,UAAU4zH,OAAO,EAAE,CAAC,YAAY,IAAI,cAAc,IAAI,sCAAsC,IAAI,aAAa,IAAI,WAAW,IAAI,kBAAkB,IAAI,kBAAkB,IAAIloG,OAAO,MAAM,IAAI,CAAC,SAAS1rB,EAAE2vD,EAAEjmC,IAAG,SAAUimC,GAAG,GAAGjmC,EAAEo3M,QAAO,EAAGp3M,EAAE9E,OAAM,EAAG8E,EAAE7J,QAAO,EAAG6J,EAAEm/oB,YAAY,oBAAoBp/mB,aAAa,oBAAoBsqE,WAAWrqG,EAAEo/oB,gBAAW,IAASn5mB,EAAEjmC,EAAE84oB,WAAW,oBAAoBzuiB,WAAW,oBAAoBtqE,YAAY//B,EAAEyjL,MAAK,MAAO,CAAC,IAAIh/I,EAAE,IAAI1E,YAAY,GAAG,IAAI//B,EAAEyjL,KAAK,IAAI,IAAIvhL,KAAK,CAACuiC,GAAG,CAACh9D,KAAK,oBAAoBiI,IAAI,CAAC,MAAM4G,GAAG,IAAI,IAAIsxE,EAAE,IAAI7qB,KAAKsinB,aAAatinB,KAAKuinB,mBAAmBvinB,KAAKwinB,gBAAgBxinB,KAAKyinB,eAAe53lB,EAAEyjH,OAAO5mI,GAAGzkC,EAAEyjL,KAAK,IAAI77H,EAAE07d,QAAQ,mBAAmB5ziB,IAAI,CAAC,MAAM4G,GAAG0pB,EAAEyjL,MAAK,CAAE,CAAC,CAAC,CAAC,IAAIzjL,EAAE6+oB,aAAavoqB,EAAE,mBAAmBy7pB,QAAQ,CAAC,MAAMz7pB,GAAG0pB,EAAE6+oB,YAAW,CAAE,CAAE,GAAExymB,KAAKwE,KAAKv6D,EAAE,UAAU4zH,OAAO,EAAE,CAACloG,OAAO,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS1rB,EAAE2vD,EAAEjmC,GAAG,IAAI,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,iBAAiBnP,EAAEmP,EAAE,0BAA0B04D,EAAE,IAAI9O,MAAM,KAAK2N,EAAE,EAAEA,EAAE,IAAIA,IAAImB,EAAEnB,GAAGA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAE,EAAkB,SAASpnD,IAAItf,EAAEklE,KAAKwE,KAAK,gBAAgBA,KAAK4umB,SAAS,IAAI,CAAC,SAASppmB,IAAIlvE,EAAEklE,KAAKwE,KAAK,eAAe,CAApH7B,EAAE,KAAKA,EAAE,KAAK,EAAuGhvC,EAAE46oB,WAAW,SAAStkqB,GAAG,OAAOsxE,EAAEw3lB,WAAW72qB,EAAE40qB,cAAc7mqB,EAAE,SAAS,SAASA,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEl8D,EAAEpB,EAAE6nE,EAAE14D,EAAE9N,OAAOqlE,EAAE,EAAE,IAAItlE,EAAE,EAAEA,EAAEymE,EAAEzmE,IAAI,QAAQ,OAAOy3B,EAAE1pB,EAAE+1I,WAAW9jJ,MAAMA,EAAE,EAAEymE,GAAG,QAAQ,OAAOvK,EAAEnuD,EAAE+1I,WAAW9jJ,EAAE,OAAOy3B,EAAE,OAAOA,EAAE,OAAO,KAAKykC,EAAE,OAAOl8D,KAAKslE,GAAG7tC,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAIimC,EAAE2hB,EAAEkxlB,WAAW,IAAIzuiB,WAAWx8D,GAAG,IAAI3N,MAAM2N,GAAG1mE,EAAE,EAAEoB,EAAE,EAAEpB,EAAE0mE,EAAEtlE,IAAI,QAAQ,OAAOy3B,EAAE1pB,EAAE+1I,WAAW9jJ,MAAMA,EAAE,EAAEymE,GAAG,QAAQ,OAAOvK,EAAEnuD,EAAE+1I,WAAW9jJ,EAAE,OAAOy3B,EAAE,OAAOA,EAAE,OAAO,KAAKykC,EAAE,OAAOl8D,KAAKy3B,EAAE,IAAIimC,EAAE9+D,KAAK64B,EAAEA,EAAE,MAAMimC,EAAE9+D,KAAK,IAAI64B,IAAI,EAAEimC,EAAE9+D,KAAK,IAAI,GAAG64B,GAAGA,EAAE,OAAOimC,EAAE9+D,KAAK,IAAI64B,IAAI,GAAGimC,EAAE9+D,KAAK,IAAI64B,IAAI,EAAE,GAAGimC,EAAE9+D,KAAK,IAAI,GAAG64B,IAAIimC,EAAE9+D,KAAK,IAAI64B,IAAI,GAAGimC,EAAE9+D,KAAK,IAAI64B,IAAI,GAAG,GAAGimC,EAAE9+D,KAAK,IAAI64B,IAAI,EAAE,GAAGimC,EAAE9+D,KAAK,IAAI,GAAG64B,GAAG,OAAOimC,CAAC,CAAvlB,CAAylB3vD,EAAE,EAAE0pB,EAAEy8oB,WAAW,SAASnmqB,GAAG,OAAOsxE,EAAEw3lB,WAAW36mB,EAAEyqjB,YAAY,aAAa54mB,GAAG/T,SAAS,SAAS,SAAS+T,GAAG,IAAI2vD,EAAEjmC,EAAE4nD,EAAEr/E,EAAEpB,EAAEmP,EAAE9N,OAAOqlE,EAAE,IAAI3N,MAAM,EAAE/4D,GAAG,IAAI64B,EAAE,EAAEimC,EAAE,EAAEA,EAAE9+D,GAAG,IAAIygF,EAAEtxE,EAAE2vD,MAAM,IAAI4H,EAAE7tC,KAAK4nD,OAAO,IAAIr/E,EAAEymE,EAAE4Y,IAAI,EAAE/Z,EAAE7tC,KAAK,MAAMimC,GAAG19D,EAAE,MAAM,CAAC,IAAIq/E,GAAG,IAAIr/E,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAEA,EAAE,GAAG09D,EAAE9+D,GAAGygF,EAAEA,GAAG,EAAE,GAAGtxE,EAAE2vD,KAAK19D,IAAIA,EAAE,EAAEslE,EAAE7tC,KAAK,MAAM4nD,EAAE,MAAM/Z,EAAE7tC,KAAK4nD,GAAGA,GAAG,MAAM/Z,EAAE7tC,KAAK,MAAM4nD,GAAG,GAAG,KAAK/Z,EAAE7tC,KAAK,MAAM,KAAK4nD,EAAE,CAAC,OAAO/Z,EAAErlE,SAASw3B,IAAI6tC,EAAEgnlB,SAAShnlB,EAAEA,EAAEgnlB,SAAS,EAAE70nB,GAAG6tC,EAAErlE,OAAOw3B,GAAGykC,EAAEi7mB,kBAAkB7xmB,EAAE,CAApX,CAAsXv3D,EAAEmuD,EAAEyqjB,YAAYtniB,EAAEkxlB,WAAW,aAAa,QAAQxiqB,GAAG,EAAEmuD,EAAEy1f,SAASzziB,EAAEtf,GAAGsf,EAAE22C,UAAUo9mB,aAAa,SAASlkqB,GAAG,IAAI2vD,EAAExB,EAAEyqjB,YAAYtniB,EAAEkxlB,WAAW,aAAa,QAAQxiqB,EAAE2jB,MAAM,GAAG42C,KAAK4umB,UAAU5umB,KAAK4umB,SAASj3qB,OAAO,CAAC,GAAGo/E,EAAEkxlB,WAAW,CAAC,IAAIvwqB,EAAE09D,GAAGA,EAAE,IAAIokE,WAAW9hI,EAAEC,OAAOqoE,KAAK4umB,SAASj3qB,SAASmxE,IAAI9I,KAAK4umB,SAAS,GAAGx5mB,EAAE0T,IAAIpxE,EAAEsoE,KAAK4umB,SAASj3qB,OAAO,MAAMy9D,EAAE4K,KAAK4umB,SAAStynB,OAAO8Y,GAAG4K,KAAK4umB,SAAS,IAAI,CAAC,IAAIt4qB,EAAE,SAASmP,EAAE2vD,GAAG,IAAIjmC,EAAE,KAAKimC,EAAEA,GAAG3vD,EAAE9N,QAAQ8N,EAAE9N,SAASy9D,EAAE3vD,EAAE9N,QAAQw3B,EAAEimC,EAAE,EAAEjmC,GAAG,GAAG,MAAM,IAAI1pB,EAAE0pB,KAAKA,IAAI,OAAOA,EAAE,GAAG,IAAIA,EAAEimC,EAAEjmC,EAAEgvC,EAAE14D,EAAE0pB,IAAIimC,EAAEjmC,EAAEimC,CAAC,CAAnI,CAAqIA,GAAG4H,EAAE5H,EAAE9+D,IAAI8+D,EAAEz9D,SAASo/E,EAAEkxlB,YAAYjrmB,EAAE5H,EAAE4ulB,SAAS,EAAE1tpB,GAAG0pE,KAAK4umB,SAASx5mB,EAAE4ulB,SAAS1tpB,EAAE8+D,EAAEz9D,UAAUqlE,EAAE5H,EAAEjC,MAAM,EAAE78D,GAAG0pE,KAAK4umB,SAASx5mB,EAAEjC,MAAM78D,EAAE8+D,EAAEz9D,UAAUqoE,KAAKjlE,KAAK,CAACquB,KAAK+F,EAAEy8oB,WAAW5umB,GAAGquM,KAAK5lQ,EAAE4lQ,MAAM,EAAEz1P,EAAE22C,UAAUo1E,MAAM,WAAW3hE,KAAK4umB,UAAU5umB,KAAK4umB,SAASj3qB,SAASqoE,KAAKjlE,KAAK,CAACquB,KAAK+F,EAAEy8oB,WAAW5rmB,KAAK4umB,UAAUvja,KAAK,CAAC,IAAIrrM,KAAK4umB,SAAS,KAAK,EAAEz/oB,EAAE2/oB,iBAAiBl5pB,EAAEg+C,EAAEy1f,SAAS7jf,EAAElvE,GAAGkvE,EAAEjZ,UAAUo9mB,aAAa,SAASlkqB,GAAGu6D,KAAKjlE,KAAK,CAACquB,KAAK+F,EAAE46oB,WAAWtkqB,EAAE2jB,MAAMiiP,KAAK5lQ,EAAE4lQ,MAAM,EAAEl8O,EAAE4/oB,iBAAiBvpmB,CAAC,EAAE,CAAC,gBAAgB,IAAI,yBAAyB,IAAI,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC,SAAS//D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,aAAasxE,EAAEtxE,EAAE,YAAY/N,EAAE+N,EAAE,iBAAiBnP,EAAEmP,EAAE,sBAAsB04D,EAAE14D,EAAE,cAAc,SAASu3D,EAAEv3D,GAAG,OAAOA,CAAC,CAAC,SAASmQ,EAAEnQ,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,SAASw3B,EAAEimC,EAAEjmC,GAAG,IAAI1pB,EAAE+1I,WAAWrsH,GAAG,OAAOimC,CAAC,CAACjmC,EAAEk/oB,QAAQ,SAAS5oqB,EAAE2vD,GAAGjmC,EAAEs9oB,aAAa,QAAQ,IAAI,OAAO,IAAIp7oB,KAAK,CAAC5rB,GAAG,CAAC7O,KAAKw+D,GAAG,CAAC,MAAMjmC,GAAG,IAAI,IAAIykC,EAAE,IAAI1H,KAAKsinB,aAAatinB,KAAKuinB,mBAAmBvinB,KAAKwinB,gBAAgBxinB,KAAKyinB,eAAe,OAAO/6mB,EAAE4mI,OAAO/0L,GAAGmuD,EAAE6+e,QAAQr9e,EAAE,CAAC,MAAM3vD,GAAG,MAAM,IAAIoO,MAAM,kCAAkC,CAAC,CAAC,EAAE,IAAI2xD,EAAE,CAACwpmB,iBAAiB,SAASvpqB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,GAAGmjB,EAAE,EAAEr/E,EAAE+N,EAAE9N,OAAO,GAAGD,GAAGy3B,EAAE,OAAOhH,OAAO6xK,aAAat3I,MAAM,KAAKj9C,GAAG,KAAKsxE,EAAEr/E,GAAG,UAAU09D,GAAG,eAAeA,EAAExB,EAAE74D,KAAKotB,OAAO6xK,aAAat3I,MAAM,KAAKj9C,EAAE0tD,MAAM4jB,EAAEtmF,KAAK64C,IAAIytC,EAAE5nD,EAAEz3B,MAAMk8D,EAAE74D,KAAKotB,OAAO6xK,aAAat3I,MAAM,KAAKj9C,EAAEu+oB,SAASjtkB,EAAEtmF,KAAK64C,IAAIytC,EAAE5nD,EAAEz3B,MAAMq/E,GAAG5nD,EAAE,OAAOykC,EAAE9oB,KAAK,GAAG,EAAEmkoB,gBAAgB,SAASxpqB,GAAG,IAAI,IAAI2vD,EAAE,GAAGjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,OAAOw3B,IAAIimC,GAAGjtC,OAAO6xK,aAAav0L,EAAE0pB,IAAI,OAAOimC,CAAC,EAAE85mB,eAAe,CAACjH,WAAW,WAAW,IAAI,OAAOr0mB,EAAEq0mB,YAAY,IAAI9/oB,OAAO6xK,aAAat3I,MAAM,KAAK,IAAI82E,WAAW,IAAI7hI,MAAM,CAAC,MAAM8N,GAAG,OAAM,CAAE,CAAC,CAAnH,GAAuH8oqB,WAAW,WAAW,IAAI,OAAO36mB,EAAE26mB,YAAY,IAAIpmpB,OAAO6xK,aAAat3I,MAAM,KAAKhrD,EAAE60qB,YAAY,IAAI50qB,MAAM,CAAC,MAAM8N,GAAG,OAAM,CAAE,CAAC,CAAlH,KAAwH,SAASutD,EAAEvtD,GAAG,IAAI2vD,EAAE,MAAMxB,EAAEzkC,EAAE64oB,UAAUviqB,GAAGsxE,GAAE,EAAG,GAAG,eAAenjB,EAAEmjB,EAAEvR,EAAE0pmB,eAAejH,WAAW,eAAer0mB,IAAImjB,EAAEvR,EAAE0pmB,eAAeX,YAAYx3lB,EAAE,KAAK3hB,EAAE,GAAG,IAAI,OAAOoQ,EAAEwpmB,iBAAiBvpqB,EAAEmuD,EAAEwB,EAAE,CAAC,MAAM3vD,GAAG2vD,EAAE3kE,KAAKC,MAAM0kE,EAAE,EAAE,CAAC,OAAOoQ,EAAEypmB,gBAAgBxpqB,EAAE,CAAC,SAAS+8D,EAAE/8D,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,OAAOw3B,IAAIimC,EAAEjmC,GAAG1pB,EAAE0pB,GAAG,OAAOimC,CAAC,CAACjmC,EAAE0/oB,kBAAkB77mB,EAAE,IAAI4J,EAAE,CAAC,EAAEA,EAAEt3C,OAAO,CAACA,OAAO03C,EAAE3yC,MAAM,SAAS5kB,GAAG,OAAOmQ,EAAEnQ,EAAE,IAAI4pD,MAAM5pD,EAAE9N,QAAQ,EAAE22qB,YAAY,SAAS7oqB,GAAG,OAAOm3D,EAAEt3C,OAAO2ipB,WAAWxiqB,GAAG0rB,MAAM,EAAE82oB,WAAW,SAASxiqB,GAAG,OAAOmQ,EAAEnQ,EAAE,IAAI+zH,WAAW/zH,EAAE9N,QAAQ,EAAE42qB,WAAW,SAAS9oqB,GAAG,OAAOmQ,EAAEnQ,EAAE/N,EAAE60qB,YAAY9mqB,EAAE9N,QAAQ,GAAGilE,EAAEvyC,MAAM,CAAC/E,OAAO0tC,EAAE3oC,MAAM2yC,EAAEsxmB,YAAY,SAAS7oqB,GAAG,OAAO,IAAI+zH,WAAW/zH,GAAG0rB,MAAM,EAAE82oB,WAAW,SAASxiqB,GAAG,OAAO,IAAI+zH,WAAW/zH,EAAE,EAAE8oqB,WAAW,SAAS9oqB,GAAG,OAAO/N,EAAE40qB,cAAc7mqB,EAAE,GAAGm3D,EAAE0xmB,YAAY,CAAChppB,OAAO,SAAS7f,GAAG,OAAOutD,EAAE,IAAIwmE,WAAW/zH,GAAG,EAAE4kB,MAAM,SAAS5kB,GAAG,OAAO+8D,EAAE,IAAIg3D,WAAW/zH,GAAG,IAAI4pD,MAAM5pD,EAAEi0H,YAAY,EAAE40iB,YAAYtxmB,EAAEirmB,WAAW,SAASxiqB,GAAG,OAAO,IAAI+zH,WAAW/zH,EAAE,EAAE8oqB,WAAW,SAAS9oqB,GAAG,OAAO/N,EAAE40qB,cAAc,IAAI9yiB,WAAW/zH,GAAG,GAAGm3D,EAAEqrmB,WAAW,CAAC3ipB,OAAO0tC,EAAE3oC,MAAM,SAAS5kB,GAAG,OAAO+8D,EAAE/8D,EAAE,IAAI4pD,MAAM5pD,EAAE9N,QAAQ,EAAE22qB,YAAY,SAAS7oqB,GAAG,OAAOA,EAAE0rB,MAAM,EAAE82oB,WAAWjrmB,EAAEuxmB,WAAW,SAAS9oqB,GAAG,OAAO/N,EAAE40qB,cAAc7mqB,EAAE,GAAGm3D,EAAE2xmB,WAAW,CAACjppB,OAAO0tC,EAAE3oC,MAAM,SAAS5kB,GAAG,OAAO+8D,EAAE/8D,EAAE,IAAI4pD,MAAM5pD,EAAE9N,QAAQ,EAAE22qB,YAAY,SAAS7oqB,GAAG,OAAOm3D,EAAE2xmB,WAAWtG,WAAWxiqB,GAAG0rB,MAAM,EAAE82oB,WAAW,SAASxiqB,GAAG,OAAO+8D,EAAE/8D,EAAE,IAAI+zH,WAAW/zH,EAAE9N,QAAQ,EAAE42qB,WAAWvxmB,GAAG7tC,EAAEkvlB,YAAY,SAAS54mB,EAAE2vD,GAAG,GAAGA,IAAIA,EAAE,KAAK3vD,EAAE,OAAO2vD,EAAEjmC,EAAEs9oB,aAAahnqB,GAAG,IAAImuD,EAAEzkC,EAAE64oB,UAAU5ymB,GAAG,OAAOwH,EAAEhJ,GAAGnuD,GAAG2vD,EAAE,EAAEjmC,EAAE64oB,UAAU,SAASviqB,GAAG,MAAM,iBAAiBA,EAAE,SAAS,mBAAmBuU,OAAOuyC,UAAU76D,SAAS8pE,KAAK/1D,GAAG,QAAQmuD,EAAE26mB,YAAY72qB,EAAEijI,SAASl1H,GAAG,aAAamuD,EAAEq0mB,YAAYxiqB,aAAa+zH,WAAW,aAAa5lE,EAAE06mB,aAAa7oqB,aAAaypD,YAAY,mBAAc,CAAM,EAAE//B,EAAEs9oB,aAAa,SAAShnqB,GAAG,IAAImuD,EAAEnuD,EAAEjP,eAAe,MAAM,IAAIqd,MAAMpO,EAAE,qCAAqC,EAAE0pB,EAAEggpB,iBAAiB,MAAMhgpB,EAAEigpB,kBAAkB,EAAEjgpB,EAAEkgpB,OAAO,SAAS5pqB,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAE,GAAG,IAAIzkC,EAAE,EAAEA,GAAG1pB,GAAG,IAAI9N,OAAOw3B,IAAIykC,GAAG,QAAQwB,EAAE3vD,EAAE+1I,WAAWrsH,IAAI,GAAG,IAAI,IAAIimC,EAAE1jE,SAAS,IAAIsvE,cAAc,OAAOpN,CAAC,EAAEzkC,EAAEy+B,MAAM,SAASnoD,EAAE2vD,EAAEjmC,GAAG74B,GAAG,WAAWmP,EAAEi9C,MAAMvzB,GAAG,KAAKimC,GAAG,GAAG,GAAG,EAAEjmC,EAAEk6hB,SAAS,SAAS5jjB,EAAE2vD,GAAG,IAAIjmC,EAAE,WAAW,EAAEA,EAAEo9B,UAAU6I,EAAE7I,UAAU9mD,EAAE8mD,UAAU,IAAIp9B,CAAC,EAAEA,EAAE0lW,OAAO,WAAW,IAAIpvX,EAAE2vD,EAAEjmC,EAAE,CAAC,EAAE,IAAI1pB,EAAE,EAAEA,EAAE0jE,UAAUxxE,OAAO8N,IAAI,IAAI2vD,KAAK+T,UAAU1jE,GAAG0jE,UAAU1jE,GAAGqqH,eAAe16D,SAAI,IAASjmC,EAAEimC,KAAKjmC,EAAEimC,GAAG+T,UAAU1jE,GAAG2vD,IAAI,OAAOjmC,CAAC,EAAEA,EAAE28oB,eAAe,SAASrmqB,EAAE2vD,EAAE19D,EAAEpB,EAAE0mE,GAAG,OAAOmB,EAAElvD,QAAQknC,QAAQif,GAAG9/D,MAAM,SAASmQ,GAAG,OAAOmuD,EAAEg/I,OAAOntM,aAAa4rB,OAAO,IAAI,CAAC,gBAAgB,iBAAiBp6B,QAAQ+iB,OAAOuyC,UAAU76D,SAAS8pE,KAAK/1D,MAAM,oBAAoB6pqB,WAAW,IAAInxmB,EAAElvD,SAAS,SAASmmD,EAAEjmC,GAAG,IAAIykC,EAAE,IAAI07mB,WAAW17mB,EAAE4hJ,OAAO,SAAS/vM,GAAG2vD,EAAE3vD,EAAEpO,OAAO9B,OAAO,EAAEq+D,EAAE6hJ,QAAQ,SAAShwM,GAAG0pB,EAAE1pB,EAAEpO,OAAOnE,MAAM,EAAE0gE,EAAE27mB,kBAAkB9pqB,EAAE,IAAIA,CAAC,IAAInQ,MAAM,SAAS8/D,GAAG,IAAIoQ,EAAExS,EAAE7jC,EAAE64oB,UAAU5ymB,GAAG,OAAOpC,GAAG,gBAAgBA,EAAEoC,EAAEjmC,EAAEkvlB,YAAY,aAAajpjB,GAAG,WAAWpC,IAAIgK,EAAE5H,EAAE2hB,EAAEgyiB,OAAO3zjB,GAAG19D,IAAG,IAAKpB,IAAI8+D,EAAEx/C,EAAE4vD,EAAEpQ,EAAExB,EAAEq0mB,WAAW,IAAIzuiB,WAAWh0D,EAAE7tE,QAAQ,IAAI03D,MAAMmW,EAAE7tE,WAAWy9D,GAAG+I,EAAElvD,QAAQ0mL,OAAO,IAAI9hL,MAAM,2BAA2BpO,EAAE,8EAA8E,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,aAAa,IAAI,gBAAgB,IAAI,YAAY,IAAI,qBAAqB,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,sBAAsBsxE,EAAEtxE,EAAE,WAAW/N,EAAE+N,EAAE,eAAenP,EAAEmP,EAAE,cAAc04D,GAAG14D,EAAE,UAAUA,EAAE,cAAc,SAASu3D,EAAEv3D,GAAGu6D,KAAKm7lB,MAAM,GAAGn7lB,KAAKo0d,YAAY3uhB,CAAC,CAACu3D,EAAEzQ,UAAU,CAACijnB,eAAe,SAAS/pqB,GAAG,IAAIu6D,KAAKyvmB,OAAO3C,sBAAsBrnqB,GAAG,CAACu6D,KAAKyvmB,OAAOz4qB,OAAO,EAAE,IAAIo+D,EAAE4K,KAAKyvmB,OAAOrC,WAAW,GAAG,MAAM,IAAIv5pB,MAAM,+CAA+CkjE,EAAEs4lB,OAAOj6mB,GAAG,cAAc2hB,EAAEs4lB,OAAO5pqB,GAAG,IAAI,CAAC,EAAEiqqB,YAAY,SAASjqqB,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKyvmB,OAAOz4qB,MAAMgpE,KAAKyvmB,OAAOvC,SAASznqB,GAAG,IAAImuD,EAAEoM,KAAKyvmB,OAAOrC,WAAW,KAAKh4mB,EAAE,OAAO4K,KAAKyvmB,OAAOvC,SAAS/9oB,GAAGykC,CAAC,EAAE+7mB,sBAAsB,WAAW3vmB,KAAK4vmB,WAAW5vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAK6vmB,wBAAwB7vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAK8vmB,4BAA4B9vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAK+vmB,kBAAkB/vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKgwmB,eAAehwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKiwmB,iBAAiBjwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKkwmB,iBAAiBlwmB,KAAKyvmB,OAAOtC,QAAQ,GAAG,IAAI1nqB,EAAEu6D,KAAKyvmB,OAAO1C,SAAS/smB,KAAKkwmB,kBAAkB96mB,EAAE+I,EAAE8pmB,WAAW,aAAa,QAAQ94oB,EAAE4nD,EAAEsniB,YAAYjpjB,EAAE3vD,GAAGu6D,KAAKsqmB,WAAWtqmB,KAAKo0d,YAAYu3I,eAAex8oB,EAAE,EAAEghpB,2BAA2B,WAAWnwmB,KAAKowmB,sBAAsBpwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKyvmB,OAAOrpR,KAAK,GAAGpmV,KAAK4vmB,WAAW5vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAK6vmB,wBAAwB7vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAK8vmB,4BAA4B9vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAK+vmB,kBAAkB/vmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKgwmB,eAAehwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKiwmB,iBAAiBjwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKqwmB,oBAAoB,CAAC,EAAE,IAAI,IAAI5qqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEoM,KAAKowmB,sBAAsB,GAAG,EAAEx8mB,GAAGnuD,EAAEu6D,KAAKyvmB,OAAOtC,QAAQ,GAAG/3mB,EAAE4K,KAAKyvmB,OAAOtC,QAAQ,GAAGh+oB,EAAE6wC,KAAKyvmB,OAAO1C,SAAS33mB,GAAG4K,KAAKqwmB,oBAAoB5qqB,GAAG,CAAC9L,GAAG8L,EAAE9N,OAAOy9D,EAAE99D,MAAM63B,EAAE,EAAEmhpB,kCAAkC,WAAW,GAAGtwmB,KAAKuwmB,6BAA6BvwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKwwmB,mCAAmCxwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKywmB,WAAWzwmB,KAAKyvmB,OAAOtC,QAAQ,GAAGntmB,KAAKywmB,WAAW,EAAE,MAAM,IAAI58pB,MAAM,sCAAsC,EAAE68pB,eAAe,WAAW,IAAIjrqB,EAAE2vD,EAAE,IAAI3vD,EAAE,EAAEA,EAAEu6D,KAAKm7lB,MAAMxjqB,OAAO8N,IAAI2vD,EAAE4K,KAAKm7lB,MAAM11pB,GAAGu6D,KAAKyvmB,OAAOvC,SAAS93mB,EAAEu7mB,mBAAmB3wmB,KAAKwvmB,eAAe93qB,EAAEuyqB,mBAAmB70mB,EAAEw7mB,cAAc5wmB,KAAKyvmB,QAAQr6mB,EAAEy7mB,aAAaz7mB,EAAE07mB,mBAAmB,EAAEC,eAAe,WAAW,IAAItrqB,EAAE,IAAIu6D,KAAKyvmB,OAAOvC,SAASltmB,KAAKiwmB,kBAAkBjwmB,KAAKyvmB,OAAO3C,sBAAsBp1qB,EAAEyyqB,uBAAuB1kqB,EAAE,IAAInP,EAAE,CAAC06qB,MAAMhxmB,KAAKgxmB,OAAOhxmB,KAAKo0d,cAAc68I,gBAAgBjxmB,KAAKyvmB,QAAQzvmB,KAAKm7lB,MAAMpgqB,KAAK0K,GAAG,GAAGu6D,KAAK+vmB,oBAAoB/vmB,KAAKm7lB,MAAMxjqB,QAAQ,IAAIqoE,KAAK+vmB,mBAAmB,IAAI/vmB,KAAKm7lB,MAAMxjqB,OAAO,MAAM,IAAIkc,MAAM,kCAAkCmsD,KAAK+vmB,kBAAkB,gCAAgC/vmB,KAAKm7lB,MAAMxjqB,OAAO,EAAEu5qB,iBAAiB,WAAW,IAAIzrqB,EAAEu6D,KAAKyvmB,OAAO5C,qBAAqBn1qB,EAAEwzqB,uBAAuB,GAAGzlqB,EAAE,EAAE,MAAMu6D,KAAK0vmB,YAAY,EAAEh4qB,EAAEuyqB,mBAAwK,IAAIp2pB,MAAM,sDAA/J,IAAIA,MAAM,2IAA2MmsD,KAAKyvmB,OAAOvC,SAASznqB,GAAG,IAAI2vD,EAAE3vD,EAAE,GAAGu6D,KAAKwvmB,eAAe93qB,EAAEwzqB,uBAAuBlrmB,KAAK2vmB,wBAAwB3vmB,KAAK4vmB,aAAa74lB,EAAEo4lB,kBAAkBnvmB,KAAK6vmB,0BAA0B94lB,EAAEo4lB,kBAAkBnvmB,KAAK8vmB,8BAA8B/4lB,EAAEo4lB,kBAAkBnvmB,KAAK+vmB,oBAAoBh5lB,EAAEo4lB,kBAAkBnvmB,KAAKgwmB,iBAAiBj5lB,EAAEq4lB,kBAAkBpvmB,KAAKiwmB,mBAAmBl5lB,EAAEq4lB,iBAAiB,CAAC,GAAGpvmB,KAAKgxmB,OAAM,GAAIvrqB,EAAEu6D,KAAKyvmB,OAAO5C,qBAAqBn1qB,EAAE41qB,kCAAkC,EAAE,MAAM,IAAIz5pB,MAAM,wEAAwE,GAAGmsD,KAAKyvmB,OAAOvC,SAASznqB,GAAGu6D,KAAKwvmB,eAAe93qB,EAAE41qB,iCAAiCttmB,KAAKswmB,qCAAqCtwmB,KAAK0vmB,YAAY1vmB,KAAKwwmB,mCAAmC94qB,EAAE61qB,+BAA+BvtmB,KAAKwwmB,mCAAmCxwmB,KAAKyvmB,OAAO5C,qBAAqBn1qB,EAAE61qB,6BAA6BvtmB,KAAKwwmB,mCAAmC,GAAG,MAAM,IAAI38pB,MAAM,gEAAgEmsD,KAAKyvmB,OAAOvC,SAASltmB,KAAKwwmB,oCAAoCxwmB,KAAKwvmB,eAAe93qB,EAAE61qB,6BAA6BvtmB,KAAKmwmB,4BAA4B,CAAC,IAAIhhpB,EAAE6wC,KAAKiwmB,iBAAiBjwmB,KAAKgwmB,eAAehwmB,KAAKgxmB,QAAQ7hpB,GAAG,GAAGA,GAAG,GAAG6wC,KAAKowmB,uBAAuB,IAAIx8mB,EAAEwB,EAAEjmC,EAAE,GAAGykC,EAAE,EAAEoM,KAAK0vmB,YAAYt6mB,EAAE19D,EAAEyyqB,uBAAuBnqmB,KAAKyvmB,OAAOh0C,KAAK7nkB,QAAQ,GAAGA,EAAE,EAAE,MAAM,IAAI//C,MAAM,0BAA0BpjB,KAAKsoD,IAAI6a,GAAG,UAAU,EAAEu9mB,cAAc,SAAS1rqB,GAAGu6D,KAAKyvmB,OAAO77mB,EAAEnuD,EAAE,EAAEkuN,KAAK,SAASluN,GAAGu6D,KAAKmxmB,cAAc1rqB,GAAGu6D,KAAKkxmB,mBAAmBlxmB,KAAK+wmB,iBAAiB/wmB,KAAK0wmB,gBAAgB,GAAGt7mB,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,qBAAqB,IAAI,cAAc,IAAI,YAAY,IAAI,SAAS,IAAI,UAAU,IAAI,aAAa,MAAM,IAAI,CAAC,SAASv3D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,sBAAsBsxE,EAAEtxE,EAAE,WAAW/N,EAAE+N,EAAE,sBAAsBnP,EAAEmP,EAAE,WAAW04D,EAAE14D,EAAE,UAAUu3D,EAAEv3D,EAAE,kBAAkBmQ,EAAEnQ,EAAE,aAAa,SAAS+/D,EAAE//D,EAAE2vD,GAAG4K,KAAKl2C,QAAQrkB,EAAEu6D,KAAKo0d,YAAYh/d,CAAC,CAACoQ,EAAEjZ,UAAU,CAAC6knB,YAAY,WAAW,OAAO,IAAI,EAAEpxmB,KAAKqxmB,QAAQ,EAAEC,QAAQ,WAAW,OAAO,OAAO,KAAKtxmB,KAAKqxmB,QAAQ,EAAET,cAAc,SAASnrqB,GAAG,IAAI2vD,EAAEjmC,EAAE,GAAG1pB,EAAE2gZ,KAAK,IAAIpmV,KAAKuxmB,eAAe9rqB,EAAE0nqB,QAAQ,GAAGh+oB,EAAE1pB,EAAE0nqB,QAAQ,GAAGntmB,KAAKjvC,SAAStrB,EAAEsnqB,SAAS/smB,KAAKuxmB,gBAAgB9rqB,EAAE2gZ,KAAKj3X,IAAI,IAAI6wC,KAAKkomB,iBAAiB,IAAIlomB,KAAKmomB,iBAAiB,MAAM,IAAIt0pB,MAAM,uIAAuI,GAAG,QAAQuhD,EAAE,SAAS3vD,GAAG,IAAI,IAAI2vD,KAAK4H,EAAE,GAAGA,EAAE8yD,eAAe16D,IAAI4H,EAAE5H,GAAG2zmB,QAAQtjqB,EAAE,OAAOu3D,EAAE5H,GAAG,OAAO,IAAI,CAAzF,CAA2F4K,KAAKwxmB,oBAAoB,MAAM,IAAI39pB,MAAM,+BAA+BkjE,EAAEs4lB,OAAOrvmB,KAAKwxmB,mBAAmB,0BAA0Bz6lB,EAAEsniB,YAAY,SAASr+iB,KAAKjvC,UAAU,KAAKivC,KAAKwrmB,aAAa,IAAI9zqB,EAAEsoE,KAAKkomB,eAAelomB,KAAKmomB,iBAAiBnomB,KAAKoomB,MAAMhzmB,EAAE3vD,EAAEsnqB,SAAS/smB,KAAKkomB,gBAAgB,EAAE+I,gBAAgB,SAASxrqB,GAAGu6D,KAAKyxmB,cAAchsqB,EAAE0nqB,QAAQ,GAAG1nqB,EAAE2gZ,KAAK,GAAGpmV,KAAKqxmB,QAAQ5rqB,EAAE0nqB,QAAQ,GAAGntmB,KAAKwxmB,kBAAkB/rqB,EAAE2nqB,WAAW,GAAGptmB,KAAKz7B,KAAK9+B,EAAE4nqB,WAAWrtmB,KAAKoomB,MAAM3iqB,EAAE0nqB,QAAQ,GAAGntmB,KAAKkomB,eAAeziqB,EAAE0nqB,QAAQ,GAAGntmB,KAAKmomB,iBAAiB1iqB,EAAE0nqB,QAAQ,GAAG,IAAI/3mB,EAAE3vD,EAAE0nqB,QAAQ,GAAG,GAAGntmB,KAAK0xmB,kBAAkBjsqB,EAAE0nqB,QAAQ,GAAGntmB,KAAK2xmB,kBAAkBlsqB,EAAE0nqB,QAAQ,GAAGntmB,KAAK4xmB,gBAAgBnsqB,EAAE0nqB,QAAQ,GAAGntmB,KAAK6xmB,uBAAuBpsqB,EAAE0nqB,QAAQ,GAAGntmB,KAAK8xmB,uBAAuBrsqB,EAAE0nqB,QAAQ,GAAGntmB,KAAK2wmB,kBAAkBlrqB,EAAE0nqB,QAAQ,GAAGntmB,KAAKoxmB,cAAc,MAAM,IAAIv9pB,MAAM,mCAAmCpO,EAAE2gZ,KAAKhxV,GAAG4K,KAAK+xmB,gBAAgBtsqB,GAAGu6D,KAAKgymB,qBAAqBvsqB,GAAGu6D,KAAKiymB,YAAYxsqB,EAAEsnqB,SAAS/smB,KAAK2xmB,kBAAkB,EAAEb,kBAAkB,WAAW9wmB,KAAKmpmB,gBAAgB,KAAKnpmB,KAAKopmB,eAAe,KAAK,IAAI3jqB,EAAEu6D,KAAKyxmB,eAAe,EAAEzxmB,KAAKi9L,OAAO,GAAGj9L,KAAK8xmB,wBAAwB,IAAIrsqB,IAAIu6D,KAAKopmB,eAAe,GAAGppmB,KAAK8xmB,wBAAwB,IAAIrsqB,IAAIu6D,KAAKmpmB,gBAAgBnpmB,KAAK8xmB,wBAAwB,GAAG,OAAO9xmB,KAAKi9L,KAAK,MAAMj9L,KAAK+rmB,YAAY54mB,OAAO,KAAK6M,KAAKi9L,KAAI,EAAG,EAAE+0a,qBAAqB,SAASvsqB,GAAG,GAAGu6D,KAAKkymB,YAAY,GAAG,CAAC,IAAI98mB,EAAExB,EAAEoM,KAAKkymB,YAAY,GAAG56qB,OAAO0oE,KAAKmomB,mBAAmBpxlB,EAAEq4lB,mBAAmBpvmB,KAAKmomB,iBAAiB/ymB,EAAE+3mB,QAAQ,IAAIntmB,KAAKkomB,iBAAiBnxlB,EAAEq4lB,mBAAmBpvmB,KAAKkomB,eAAe9ymB,EAAE+3mB,QAAQ,IAAIntmB,KAAK2wmB,oBAAoB55lB,EAAEq4lB,mBAAmBpvmB,KAAK2wmB,kBAAkBv7mB,EAAE+3mB,QAAQ,IAAIntmB,KAAK4xmB,kBAAkB76lB,EAAEq4lB,mBAAmBpvmB,KAAK4xmB,gBAAgBx8mB,EAAE+3mB,QAAQ,GAAG,CAAC,EAAE4E,gBAAgB,SAAStsqB,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEtxE,EAAEzO,MAAMgpE,KAAK0xmB,kBAAkB,IAAI1xmB,KAAKkymB,cAAclymB,KAAKkymB,YAAY,CAAC,GAAGzsqB,EAAEzO,MAAM+/E,GAAG3hB,EAAE3vD,EAAE0nqB,QAAQ,GAAGh+oB,EAAE1pB,EAAE0nqB,QAAQ,GAAGv5mB,EAAEnuD,EAAEsnqB,SAAS59oB,GAAG6wC,KAAKkymB,YAAY98mB,GAAG,CAACz7D,GAAGy7D,EAAEz9D,OAAOw3B,EAAE73B,MAAMs8D,EAAE,EAAEi9mB,WAAW,WAAW,IAAIprqB,EAAEmQ,EAAEqypB,WAAW,aAAa,QAAQ,GAAGjomB,KAAKsxmB,UAAUtxmB,KAAK+rmB,YAAY5tmB,EAAEytmB,WAAW5rmB,KAAKjvC,UAAUivC,KAAKgsmB,eAAe7tmB,EAAEytmB,WAAW5rmB,KAAKiymB,iBAAiB,CAAC,IAAI78mB,EAAE4K,KAAKmymB,4BAA4B,GAAG,OAAO/8mB,EAAE4K,KAAK+rmB,YAAY32mB,MAAM,CAAC,IAAIjmC,EAAE4nD,EAAEsniB,YAAY54mB,EAAEu6D,KAAKjvC,UAAUivC,KAAK+rmB,YAAY/rmB,KAAKo0d,YAAYu3I,eAAex8oB,EAAE,CAAC,IAAIykC,EAAEoM,KAAKoymB,+BAA+B,GAAG,OAAOx+mB,EAAEoM,KAAKgsmB,eAAep4mB,MAAM,CAAC,IAAIl8D,EAAEq/E,EAAEsniB,YAAY54mB,EAAEu6D,KAAKiymB,aAAajymB,KAAKgsmB,eAAehsmB,KAAKo0d,YAAYu3I,eAAej0qB,EAAE,CAAC,CAAC,EAAEy6qB,0BAA0B,WAAW,IAAI1sqB,EAAEu6D,KAAKkymB,YAAY,OAAO,GAAGzsqB,EAAE,CAAC,IAAI2vD,EAAExB,EAAEnuD,EAAEnO,OAAO,OAAO,IAAI89D,EAAE+3mB,QAAQ,IAAI72qB,EAAE0pE,KAAKjvC,YAAYqkC,EAAE+3mB,QAAQ,GAAG,KAAKhvmB,EAAEytmB,WAAWx2mB,EAAE23mB,SAAStnqB,EAAE9N,OAAO,GAAG,CAAC,OAAO,IAAI,EAAEy6qB,6BAA6B,WAAW,IAAI3sqB,EAAEu6D,KAAKkymB,YAAY,OAAO,GAAGzsqB,EAAE,CAAC,IAAI2vD,EAAExB,EAAEnuD,EAAEnO,OAAO,OAAO,IAAI89D,EAAE+3mB,QAAQ,IAAI72qB,EAAE0pE,KAAKiymB,eAAe78mB,EAAE+3mB,QAAQ,GAAG,KAAKhvmB,EAAEytmB,WAAWx2mB,EAAE23mB,SAAStnqB,EAAE9N,OAAO,GAAG,CAAC,OAAO,IAAI,GAAGy9D,EAAE8jE,QAAQ1zD,CAAC,EAAE,CAAC,qBAAqB,IAAI,iBAAiB,IAAI,UAAU,IAAI,qBAAqB,IAAI,YAAY,IAAI,SAAS,IAAI,UAAU,MAAM,IAAI,CAAC,SAAS//D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,yBAAyBsxE,EAAEtxE,EAAE,uBAAuB/N,EAAE+N,EAAE,UAAUnP,EAAEmP,EAAE,sBAAsB04D,EAAE14D,EAAE,0BAA0Bu3D,EAAE,SAASv3D,EAAE2vD,EAAEjmC,GAAG6wC,KAAKloE,KAAK2N,EAAEu6D,KAAKi9L,IAAI9tO,EAAE8tO,IAAIj9L,KAAKz7B,KAAKpV,EAAEoV,KAAKy7B,KAAKp4C,QAAQuH,EAAEvH,QAAQo4C,KAAKmpmB,gBAAgBh6oB,EAAEg6oB,gBAAgBnpmB,KAAKopmB,eAAej6oB,EAAEi6oB,eAAeppmB,KAAKyxJ,MAAMr8J,EAAE4K,KAAKqymB,YAAYljpB,EAAE8hhB,OAAOjxe,KAAKl2C,QAAQ,CAACyghB,YAAYp7gB,EAAEo7gB,YAAY2+H,mBAAmB/5oB,EAAE+5oB,mBAAmB,EAAElsmB,EAAEzQ,UAAU,CAAC+lnB,eAAe,SAAS7sqB,GAAG,IAAI2vD,EAAE,KAAKjmC,EAAE,SAAS,IAAI,IAAI1pB,EAAE,MAAM,IAAIoO,MAAM,6BAA6B,IAAIkjE,EAAE,YAAY5nD,EAAE1pB,EAAEjP,gBAAgB,SAAS24B,EAAE,iBAAiBA,GAAG,SAASA,IAAIA,EAAE,UAAUimC,EAAE4K,KAAKuymB,oBAAoB,IAAIj8qB,GAAG0pE,KAAKqymB,YAAY/7qB,IAAIygF,IAAI3hB,EAAEA,EAAEgkB,KAAK,IAAI1hF,EAAEq3qB,oBAAoBz4qB,GAAGygF,IAAI3hB,EAAEA,EAAEgkB,KAAK,IAAI1hF,EAAEo3qB,kBAAkB,CAAC,MAAMrpqB,IAAI2vD,EAAE,IAAI+I,EAAE,UAAUjrE,MAAMuS,EAAE,CAAC,OAAO,IAAImuD,EAAEwB,EAAEjmC,EAAE,GAAG,EAAE5+B,MAAM,SAASkV,EAAE2vD,GAAG,OAAO4K,KAAKsymB,eAAe7sqB,GAAGk0d,WAAWvka,EAAE,EAAEo9mB,WAAW,SAAS/sqB,EAAE2vD,GAAG,OAAO4K,KAAKsymB,eAAe7sqB,GAAG,cAAcknqB,eAAev3mB,EAAE,EAAEm2mB,gBAAgB,SAAS9lqB,EAAE2vD,GAAG,GAAG4K,KAAKyxJ,iBAAiBn7N,GAAG0pE,KAAKyxJ,MAAM84U,YAAYw+H,QAAQtjqB,EAAEsjqB,MAAM,OAAO/omB,KAAKyxJ,MAAMi3c,sBAAsB,IAAIv5oB,EAAE6wC,KAAKuymB,oBAAoB,OAAOvymB,KAAKqymB,cAAcljpB,EAAEA,EAAEiqD,KAAK,IAAI1hF,EAAEq3qB,mBAAmBz4qB,EAAEsyqB,iBAAiBz5oB,EAAE1pB,EAAE2vD,EAAE,EAAEm9mB,kBAAkB,WAAW,OAAOvymB,KAAKyxJ,iBAAiBn7N,EAAE0pE,KAAKyxJ,MAAM62c,mBAAmBtomB,KAAKyxJ,iBAAiBtzJ,EAAE6B,KAAKyxJ,MAAM,IAAI16I,EAAE/W,KAAKyxJ,MAAM,GAAG,IAAI,IAAI77M,EAAE,CAAC,SAAS,WAAW,eAAe,eAAe,iBAAiB4vD,EAAE,WAAW,MAAM,IAAI3xD,MAAM,6EAA6E,EAAEm/C,EAAE,EAAEA,EAAEp9C,EAAEje,OAAOq7D,IAAIgK,EAAEzQ,UAAU32C,EAAEo9C,IAAIwS,EAAEpQ,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,qBAAqB,IAAI,sBAAsB,IAAI,yBAAyB,IAAI,wBAAwB,IAAI,SAAS,MAAM,IAAI,CAAC,SAASv3D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,aAAa,SAASsxE,IAAI,CAAC,IAAIr/E,EAAE,CAAC,EAAEpB,EAAE,CAAC,YAAY6nE,EAAE,CAAC,aAAanB,EAAE,CAAC,WAAW,SAASpnD,EAAEnQ,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAIurH,UAAU,+BAA+BhxD,KAAK3hE,MAAM2+D,EAAEgD,KAAK82I,MAAM,GAAG92I,KAAKyymB,aAAQ,EAAOhtqB,IAAIsxE,GAAGna,EAAEoD,KAAKv6D,EAAE,CAAC,SAAS+/D,EAAE//D,EAAE2vD,EAAEjmC,GAAG6wC,KAAKypI,QAAQhkM,EAAE,mBAAmB2vD,IAAI4K,KAAK4K,YAAYxV,EAAE4K,KAAK0ymB,cAAc1ymB,KAAK2ymB,oBAAoB,mBAAmBxjpB,IAAI6wC,KAAK4ymB,WAAWzjpB,EAAE6wC,KAAK6ymB,aAAa7ymB,KAAK8ymB,kBAAkB,CAAC,SAAS9/mB,EAAEvtD,EAAE2vD,EAAEjmC,GAAGykC,GAAG,WAAW,IAAIA,EAAE,IAAIA,EAAEwB,EAAEjmC,EAAE,CAAC,MAAMimC,GAAG,OAAO19D,EAAEi+L,OAAOlwL,EAAE2vD,EAAE,CAACxB,IAAInuD,EAAE/N,EAAEi+L,OAAOlwL,EAAE,IAAIurH,UAAU,uCAAuCt5H,EAAEy+C,QAAQ1wC,EAAEmuD,EAAE,GAAG,CAAC,SAAS4O,EAAE/8D,GAAG,IAAI2vD,EAAE3vD,GAAGA,EAAEnQ,KAAK,GAAGmQ,IAAI,WAAW86mB,SAAS96mB,IAAI,mBAAmBA,IAAI,mBAAmB2vD,EAAE,OAAO,WAAWA,EAAE1S,MAAMj9C,EAAE0jE,UAAU,CAAC,CAAC,SAASvM,EAAEn3D,EAAE2vD,GAAG,IAAIjmC,GAAE,EAAG,SAASykC,EAAEwB,GAAGjmC,IAAIA,GAAE,EAAGz3B,EAAEi+L,OAAOlwL,EAAE2vD,GAAG,CAAC,SAAS2hB,EAAE3hB,GAAGjmC,IAAIA,GAAE,EAAGz3B,EAAEy+C,QAAQ1wC,EAAE2vD,GAAG,CAAC,IAAI9+D,EAAEy9D,GAAG,WAAWqB,EAAE2hB,EAAEnjB,EAAE,IAAI,UAAUt9D,EAAEo/L,QAAQ9hI,EAAEt9D,EAAEgB,MAAM,CAAC,SAASy8D,EAAEtuD,EAAE2vD,GAAG,IAAIjmC,EAAE,CAAC,EAAE,IAAIA,EAAE73B,MAAMmO,EAAE2vD,GAAGjmC,EAAEumK,OAAO,SAAS,CAAC,MAAMjwL,GAAG0pB,EAAEumK,OAAO,QAAQvmK,EAAE73B,MAAMmO,CAAC,CAAC,OAAO0pB,CAAC,CAACimC,EAAE8jE,QAAQtjH,EAAEA,EAAE22C,UAAU/8C,QAAQ,SAAS/J,GAAG,GAAG,mBAAmBA,EAAE,OAAOu6D,KAAK,IAAI5K,EAAE4K,KAAKxT,YAAY,OAAOwT,KAAK1qE,MAAM,SAAS65B,GAAG,OAAOimC,EAAEjf,QAAQ1wC,KAAKnQ,MAAM,WAAW,OAAO65B,CAAC,GAAG,IAAI,SAASA,GAAG,OAAOimC,EAAEjf,QAAQ1wC,KAAKnQ,MAAM,WAAW,MAAM65B,CAAC,GAAG,GAAG,EAAEvZ,EAAE22C,UAAUroD,MAAM,SAASuB,GAAG,OAAOu6D,KAAK1qE,KAAK,KAAKmQ,EAAE,EAAEmQ,EAAE22C,UAAUj3D,KAAK,SAASmQ,EAAE2vD,GAAG,GAAG,mBAAmB3vD,GAAGu6D,KAAK3hE,QAAQ8/D,GAAG,mBAAmB/I,GAAG4K,KAAK3hE,QAAQ/H,EAAE,OAAO0pE,KAAK,IAAI7wC,EAAE,IAAI6wC,KAAKxT,YAAYuqB,GAAqF,OAAlF/W,KAAK3hE,QAAQ2+D,EAAEhK,EAAE7jC,EAAE6wC,KAAK3hE,QAAQ8/D,EAAE14D,EAAE2vD,EAAE4K,KAAKyymB,SAASzymB,KAAK82I,MAAM/7M,KAAK,IAAIyqE,EAAEr2C,EAAE1pB,EAAE2vD,IAAWjmC,CAAC,EAAEq2C,EAAEjZ,UAAUmmnB,cAAc,SAASjtqB,GAAG/N,EAAEy+C,QAAQ6pB,KAAKypI,QAAQhkM,EAAE,EAAE+/D,EAAEjZ,UAAUomnB,mBAAmB,SAASltqB,GAAGutD,EAAEgN,KAAKypI,QAAQzpI,KAAK4K,YAAYnlE,EAAE,EAAE+/D,EAAEjZ,UAAUsmnB,aAAa,SAASptqB,GAAG/N,EAAEi+L,OAAO31H,KAAKypI,QAAQhkM,EAAE,EAAE+/D,EAAEjZ,UAAUumnB,kBAAkB,SAASrtqB,GAAGutD,EAAEgN,KAAKypI,QAAQzpI,KAAK4ymB,WAAWntqB,EAAE,EAAE/N,EAAEy+C,QAAQ,SAAS1wC,EAAE2vD,GAAG,IAAIjmC,EAAE4kC,EAAEyO,EAAEpN,GAAG,GAAG,UAAUjmC,EAAEumK,OAAO,OAAOh+L,EAAEi+L,OAAOlwL,EAAE0pB,EAAE73B,OAAO,IAAIs8D,EAAEzkC,EAAE73B,MAAM,GAAGs8D,EAAEgJ,EAAEn3D,EAAEmuD,OAAO,CAACnuD,EAAEpH,MAAM8/D,EAAE14D,EAAEgtqB,QAAQr9mB,EAAE,IAAI,IAAI2hB,GAAG,EAAEzgF,EAAEmP,EAAEqxM,MAAMn/M,SAASo/E,EAAEzgF,GAAGmP,EAAEqxM,MAAM//H,GAAG27lB,cAAct9mB,EAAE,CAAC,OAAO3vD,CAAC,EAAE/N,EAAEi+L,OAAO,SAASlwL,EAAE2vD,GAAG3vD,EAAEpH,MAAM/H,EAAEmP,EAAEgtqB,QAAQr9mB,EAAE,IAAI,IAAIjmC,GAAG,EAAEykC,EAAEnuD,EAAEqxM,MAAMn/M,SAASw3B,EAAEykC,GAAGnuD,EAAEqxM,MAAM3nL,GAAG0jpB,aAAaz9mB,GAAG,OAAO3vD,CAAC,EAAEmQ,EAAEugC,QAAQ,SAAS1wC,GAAG,OAAGA,aAAau6D,KAAYv6D,EAAS/N,EAAEy+C,QAAQ,IAAI6pB,KAAK+W,GAAGtxE,EAAE,EAAEmQ,EAAE+/K,OAAO,SAASlwL,GAAG,IAAI2vD,EAAE,IAAI4K,KAAK+W,GAAG,OAAOr/E,EAAEi+L,OAAOvgI,EAAE3vD,EAAE,EAAEmQ,EAAE1G,IAAI,SAASzJ,GAAG,IAAI2vD,EAAE4K,KAAK,GAAG,mBAAmBhmD,OAAOuyC,UAAU76D,SAAS8pE,KAAK/1D,GAAG,OAAOu6D,KAAK21H,OAAO,IAAI3kE,UAAU,qBAAqB,IAAI7hG,EAAE1pB,EAAE9N,OAAOi8D,GAAE,EAAG,IAAIzkC,EAAE,OAAO6wC,KAAK7pB,QAAQ,IAA8C,IAA1C,IAAI7/C,EAAE,IAAI+4D,MAAMlgC,GAAGgvC,EAAE,EAAEnB,GAAG,EAAEpnD,EAAE,IAAIoqD,KAAK+W,KAAU/Z,EAAE7tC,GAAGq2C,EAAE//D,EAAEu3D,GAAGA,GAAG,OAAOpnD,EAAE,SAAS4vD,EAAE//D,EAAEsxE,GAAG3hB,EAAEjf,QAAQ1wC,GAAGnQ,MAAM,SAASmQ,GAAGnP,EAAEygF,GAAGtxE,IAAI04D,IAAIhvC,GAAGykC,IAAIA,GAAE,EAAGl8D,EAAEy+C,QAAQvgC,EAAEtf,GAAG,IAAI,SAASmP,GAAGmuD,IAAIA,GAAE,EAAGl8D,EAAEi+L,OAAO//K,EAAEnQ,GAAG,GAAG,CAAC,EAAEmQ,EAAE4zL,KAAK,SAAS/jM,GAAc,GAAG,mBAAmBuU,OAAOuyC,UAAU76D,SAAS8pE,KAAK/1D,GAAG,OAAOu6D,KAAK21H,OAAO,IAAI3kE,UAAU,qBAAqB,IAAI7hG,EAAE1pB,EAAE9N,OAAOi8D,GAAE,EAAG,IAAIzkC,EAAE,OAAO6wC,KAAK7pB,QAAQ,IAA2B,IAAvB,IAAgJ6mB,EAA5I1mE,GAAG,EAAE6nE,EAAE,IAAI6B,KAAK+W,KAAUzgF,EAAE64B,GAAG6tC,EAAEv3D,EAAEnP,GAA5M0pE,KAAiN7pB,QAAQ6mB,GAAG1nE,MAAM,SAASmQ,GAAGmuD,IAAIA,GAAE,EAAGl8D,EAAEy+C,QAAQgoB,EAAE14D,GAAG,IAAI,SAASA,GAAGmuD,IAAIA,GAAE,EAAGl8D,EAAEi+L,OAAOx3H,EAAE14D,GAAG,IAAU,OAAO04D,CAAC,CAAC,EAAE,CAAC2qV,UAAU,MAAM,IAAI,CAAC,SAASrjZ,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAI0pB,EAAE,sBAAsBykC,EAAE4P,OAAOr0C,EAAEw4D,QAAQ5Q,EAAE,UAAUwpiB,SAAS96mB,IAAIA,GAAGA,EAAEuU,SAASA,QAAQvU,EAAE/N,EAAE,WAAW,oBAAoBw0D,KAAK,YAAYq0jB,SAASr0jB,QAAQA,MAAMA,KAAKlyC,SAASA,QAAQkyC,KAAK51D,EAAEygF,GAAGr/E,GAAGk+H,SAAS,cAATA,GAA0Bz3D,EAAEnkD,OAAOuyC,UAAU76D,SAASsrE,EAAE1mE,EAAEu/H,OAAOjgH,EAAEonD,EAAEA,EAAEzQ,eAAU,EAAOiZ,EAAE5vD,EAAEA,EAAElkB,cAAS,EAAmP0jE,EAAE8jE,QAAQ,SAASzzH,GAAG,IAAI2vD,EAAE,OAAO3vD,EAAE,OAAO2vD,EAAE3vD,GAAG,GAA7R,SAAWA,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAG,SAASA,GAAG,MAAM,UAAU86mB,SAAS96mB,IAAI,SAASA,GAAG,QAAQA,GAAG,UAAU86mB,SAAS96mB,EAAE,CAA5C,CAA8CA,IAAI,mBAAmB04D,EAAE3C,KAAK/1D,EAAE,CAAvH,CAAyHA,GAAG,OAAO+/D,EAAEA,EAAEhK,KAAK/1D,GAAG,GAAG,IAAI2vD,EAAE3vD,EAAE,GAAG,MAAM,KAAK2vD,GAAG,EAAE3vD,IAAG,IAAK,KAAK2vD,CAAC,CAAqDpC,CAAEoC,KAAKxB,EAAExgD,KAAK3N,GAAGA,EAAE8f,QAAQ4J,EAAE,QAAQ1pB,CAAC,CAAE,GAAE+1D,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAImuD,EAAE,qBAAqBmjB,EAAE,eAAer/E,EAAE,kBAAkBpB,EAAE,eAAe6nE,EAAE,mDAAmDnB,EAAE,QAAQpnD,EAAE,MAAM4vD,EAAE,mGAAmGxS,EAAE,WAAWwP,EAAE,8BAA8B5F,EAAE,mBAAmB7I,EAAE,CAAC,EAAEA,EAAE,yBAAyBA,EAAE,yBAAyBA,EAAE,sBAAsBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,8BAA8BA,EAAE,wBAAwBA,EAAE,yBAAwB,EAAGA,EAAEH,GAAGG,EAAE,kBAAkBA,EAAE,wBAAwBA,EAAE,oBAAoBA,EAAE,qBAAqBA,EAAE,iBAAiBA,EAAE,kBAAkBA,EAAE,qBAAqBA,EAAEgjB,GAAGhjB,EAAE,mBAAmBA,EAAEr8D,GAAGq8D,EAAE,mBAAmBA,EAAEz9D,GAAGy9D,EAAE,mBAAmBA,EAAE,qBAAoB,EAAG,IAAIvqB,EAAE,UAAU+2kB,SAAS96mB,IAAIA,GAAGA,EAAEuU,SAASA,QAAQvU,EAAE8qE,EAAE,WAAW,oBAAoBrkB,KAAK,YAAYq0jB,SAASr0jB,QAAQA,MAAMA,KAAKlyC,SAASA,QAAQkyC,KAAK31D,EAAEizC,GAAG+mC,GAAGqlD,SAAS,cAATA,GAA0B1jE,EAAE,UAAUqujB,SAASpxlB,IAAIA,IAAIA,EAAE6rC,UAAU7rC,EAAE2zC,EAAE5Q,GAAG,UAAUqujB,SAASnrjB,IAAIA,IAAIA,EAAE4F,UAAU5F,EAAE6pQ,EAAEn8P,GAAGA,EAAEo2D,UAAUhnE,GAAG1oB,EAAE6oD,QAAQgE,EAAE,WAAW,IAAI,OAAO4oO,GAAGA,EAAE/jM,QAAQ,OAAO,CAAC,MAAMz1H,GAAG,CAAC,CAArD,GAAyDm3L,EAAEvmG,GAAGA,EAAE+kC,aAAa,SAAS/kI,EAAEoP,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAI,IAAImjB,GAAG,EAAEr/E,EAAE+N,EAAEA,EAAE9N,OAAO,IAAIo/E,EAAEr/E,GAAG,CAAC,IAAIpB,EAAEmP,EAAEsxE,GAAG3hB,EAAExB,EAAEt9D,EAAE64B,EAAE74B,GAAGmP,EAAE,CAAC,OAAOmuD,CAAC,CAAC,SAAS2rQ,EAAE95T,EAAE2vD,GAAG,IAAI,IAAIjmC,GAAG,EAAEykC,EAAEnuD,EAAEA,EAAE9N,OAAO,IAAIw3B,EAAEykC,GAAG,GAAGwB,EAAE3vD,EAAE0pB,GAAGA,EAAE1pB,GAAG,OAAM,EAAG,OAAM,CAAE,CAAC,SAASqqQ,EAAErqQ,GAAG,IAAI2vD,GAAE,EAAG,GAAG,MAAM3vD,GAAG,mBAAmBA,EAAE/T,SAAS,IAAI0jE,KAAK3vD,EAAE,GAAG,CAAC,MAAMA,GAAG,CAAC,OAAO2vD,CAAC,CAAC,SAASgqQ,EAAE35T,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAEkgC,MAAM5pD,EAAE5G,MAAM,OAAO4G,EAAE6xB,SAAS,SAAS7xB,EAAEmuD,GAAGzkC,IAAIimC,GAAG,CAACxB,EAAEnuD,EAAE,IAAI0pB,CAAC,CAAC,SAAS2vS,EAAEr5T,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAEkgC,MAAM5pD,EAAE5G,MAAM,OAAO4G,EAAE6xB,SAAS,SAAS7xB,GAAG0pB,IAAIimC,GAAG3vD,CAAC,IAAI0pB,CAAC,CAAC,IAAIivB,EAAEohR,EAAE6kU,EAAEp7R,EAAE55S,MAAM9C,UAAU+3kB,EAAE1ugB,SAASrpE,UAAUyyQ,EAAEhlT,OAAOuyC,UAAU2yQ,EAAE3oU,EAAE,sBAAsBguoB,GAAGnmlB,EAAE,SAASwc,KAAKskQ,GAAGA,EAAE5mR,MAAM4mR,EAAE5mR,KAAKq+E,UAAU,KAAK,iBAAiBv4E,EAAE,GAAG+gR,EAAEmlU,EAAE5yoB,SAAS2tU,EAAEL,EAAElvM,eAAemnM,EAAE+H,EAAEttU,SAASsrO,EAAEx5J,OAAO,IAAI27P,EAAE3jQ,KAAK6jQ,GAAG95S,QAAQ,sBAAsB,QAAQA,QAAQ,yDAAyD,SAAS,KAAKy/D,EAAEzuF,EAAEs/H,OAAO00gB,EAAEh0oB,EAAEijI,WAAWsjG,EAAEkiG,EAAEzkM,qBAAqBo1P,EAAE1mB,EAAE/xW,OAAOw/B,GAAG8oS,EAAExlT,OAAOs+B,KAAK+rlB,EAAErqnB,OAAO,SAASvU,GAAG,OAAO+5T,EAAE6kU,EAAE5+nB,GAAG,GAAG2+H,EAAEwxgB,GAAGr/oB,EAAE,YAAY08X,EAAE2iR,GAAGr/oB,EAAE,OAAOqO,EAAEgxoB,GAAGr/oB,EAAE,WAAW+oU,EAAEs2U,GAAGr/oB,EAAE,OAAOsoU,EAAE+2U,GAAGr/oB,EAAE,WAAWsxa,EAAE+tO,GAAG57nB,OAAO,UAAU4kT,EAAEw3U,GAAGhygB,GAAGswgB,EAAE0B,GAAGnjR,GAAGl0D,EAAEq3U,GAAGxxoB,GAAG8+T,GAAG0yU,GAAG92U,GAAGgtG,GAAG8pO,GAAGv3U,GAAG5qH,GAAGjvH,EAAEA,EAAEz4B,eAAU,EAAOk/W,GAAGx3N,GAAGA,GAAGh0E,aAAQ,EAAO00gB,GAAG1gc,GAAGA,GAAGviN,cAAS,EAAO,SAASkjpB,GAAGnvoB,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASihlB,GAAGpvoB,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASirW,GAAGp5Z,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASkhlB,GAAGrvoB,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAK+0D,SAAS,IAAI8pS,KAAKzpW,EAAEjmC,GAAG6wC,KAAKrI,IAAIlyD,EAAE2vD,GAAG,CAAC,SAASmkW,GAAG9zZ,GAAGu6D,KAAK+0D,SAAS,IAAI8/gB,GAAGpvoB,EAAE,CAA0N,SAASuvoB,GAAGvvoB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE1pB,EAAE9N,OAAOw3B,KAAK,GAAG4jpB,GAAGttqB,EAAE0pB,GAAG,GAAGimC,GAAG,OAAOjmC,EAAE,OAAO,CAAC,CAAC,SAAS+6Y,GAAGzka,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAOshlB,GAAGzvoB,GAAG,SAASA,EAAEsxE,EAAEr/E,GAAG09D,EAAExB,EAAEnuD,EAAE0pB,EAAE1pB,GAAG/N,EAAE,IAAIk8D,CAAC,CAACghlB,GAAGrolB,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS8yS,EAAEA,EAAE,MAAM,CAAC,CAAC,EAAE+sO,GAAGrolB,UAAUokJ,OAAO,SAASlrM,GAAG,OAAOu6D,KAAK0iD,IAAIj9G,WAAWu6D,KAAK+0D,SAAStvH,EAAE,EAAEmvoB,GAAGrolB,UAAUmU,IAAI,SAASj7D,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,GAAG8yS,EAAE,CAAC,IAAI14Y,EAAEimC,EAAE3vD,GAAG,MAAM,8BAA8B0pB,OAAE,EAAOA,CAAC,CAAC,OAAOkwS,EAAE7jQ,KAAKpG,EAAE3vD,GAAG2vD,EAAE3vD,QAAG,CAAM,EAAEmvoB,GAAGrolB,UAAUm2D,IAAI,SAASj9G,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,OAAO8yS,OAAE,IAASzyW,EAAE3vD,GAAG45T,EAAE7jQ,KAAKpG,EAAE3vD,EAAE,EAAEmvoB,GAAGrolB,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,OAAO4K,KAAK+0D,SAAStvH,GAAGoia,QAAG,IAASzyW,EAAE,4BAA4BA,EAAE4K,IAAI,EAAE60kB,GAAGtolB,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,EAAE,EAAE8/gB,GAAGtolB,UAAUokJ,OAAO,SAASlrM,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAE6lnB,GAAG5/kB,EAAE3vD,GAAG,QAAQ0pB,EAAE,KAAKA,GAAGimC,EAAEz9D,OAAO,EAAEy9D,EAAExS,MAAM+sU,EAAEn0T,KAAKpG,EAAEjmC,EAAE,IAAG,EAAG,EAAE0lnB,GAAGtolB,UAAUmU,IAAI,SAASj7D,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAE6lnB,GAAG5/kB,EAAE3vD,GAAG,OAAO0pB,EAAE,OAAE,EAAOimC,EAAEjmC,GAAG,EAAE,EAAE0lnB,GAAGtolB,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOuvoB,GAAGh1kB,KAAK+0D,SAAStvH,IAAI,CAAC,EAAEovoB,GAAGtolB,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK+0D,SAASnhE,EAAEohlB,GAAG7lnB,EAAE1pB,GAAG,OAAOmuD,EAAE,EAAEzkC,EAAEp0B,KAAK,CAAC0K,EAAE2vD,IAAIjmC,EAAEykC,GAAG,GAAGwB,EAAE4K,IAAI,EAAE6+V,GAAGtyW,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,CAACsuB,KAAK,IAAIuxf,GAAGr7oB,IAAI,IAAI05X,GAAG4hR,IAAIvvnB,OAAO,IAAIsvnB,GAAG,EAAE/1O,GAAGtyW,UAAUokJ,OAAO,SAASlrM,GAAG,OAAOkwoB,GAAG31kB,KAAKv6D,GAAGkrM,OAAOlrM,EAAE,EAAEo5Z,GAAGtyW,UAAUmU,IAAI,SAASj7D,GAAG,OAAOkwoB,GAAG31kB,KAAKv6D,GAAGi7D,IAAIj7D,EAAE,EAAEo5Z,GAAGtyW,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOkwoB,GAAG31kB,KAAKv6D,GAAGi9G,IAAIj9G,EAAE,EAAEo5Z,GAAGtyW,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,OAAOuglB,GAAG31kB,KAAKv6D,GAAGqjE,IAAIrjE,EAAE2vD,GAAG4K,IAAI,EAAE80kB,GAAGvolB,UAAUoL,IAAIm9kB,GAAGvolB,UAAUxxD,KAAK,SAAS0K,GAAG,OAAOu6D,KAAK+0D,SAASjsD,IAAIrjE,EAAE,6BAA6Bu6D,IAAI,EAAE80kB,GAAGvolB,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOu6D,KAAK+0D,SAASrS,IAAIj9G,EAAE,EAAE8zZ,GAAGhtW,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,IAAI8/gB,EAAE,EAAEt7O,GAAGhtW,UAAUokJ,OAAO,SAASlrM,GAAG,OAAOu6D,KAAK+0D,SAAS47E,OAAOlrM,EAAE,EAAE8zZ,GAAGhtW,UAAUmU,IAAI,SAASj7D,GAAG,OAAOu6D,KAAK+0D,SAASr0D,IAAIj7D,EAAE,EAAE8zZ,GAAGhtW,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOu6D,KAAK+0D,SAASrS,IAAIj9G,EAAE,EAAE8zZ,GAAGhtW,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK+0D,SAAS,GAAG5lG,aAAa0lnB,GAAG,CAAC,IAAIjhlB,EAAEzkC,EAAE4lG,SAAS,IAAIk+P,GAAGr/T,EAAEj8D,OAAO,IAAI,OAAOi8D,EAAE74D,KAAK,CAAC0K,EAAE2vD,IAAI4K,KAAK7wC,EAAE6wC,KAAK+0D,SAAS,IAAI8pS,GAAGjrW,EAAE,CAAC,OAAOzkC,EAAE25C,IAAIrjE,EAAE2vD,GAAG4K,IAAI,EAAE,IAAI25V,GAAMu7O,IAAIv7O,GAAG,SAASl0Z,EAAE2vD,GAAG,OAAO3vD,GAAG0voB,GAAG1voB,EAAE2vD,EAAE49mB,GAAG,EAAE,SAASvtqB,EAAE2vD,GAAG,GAAG,MAAM3vD,EAAE,OAAOA,EAAE,IAAIwtqB,GAAGxtqB,GAAG,OAAOk0Z,GAAGl0Z,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE1pB,EAAE9N,OAAOi8D,GAAQ,EAAEmjB,EAAE/8D,OAAOvU,KAAamuD,EAAEzkC,IAAI,IAAKimC,EAAE2hB,EAAEnjB,GAAGA,EAAEmjB,KAAK,OAAOtxE,CAAC,GAAG0voB,GAAsB,SAAS//kB,EAAEjmC,EAAEykC,GAAG,IAAI,IAAImjB,GAAG,EAAEr/E,EAAEsiB,OAAOo7C,GAAG9+D,EAAEs9D,EAAEwB,GAAG+I,EAAE7nE,EAAEqB,OAAOwmE,KAAK,CAAC,IAAInB,EAAE1mE,IAAQygF,GAAG,IAAG,IAAK5nD,EAAEz3B,EAAEslE,GAAGA,EAAEtlE,GAAG,KAAK,CAAC,OAAO09D,CAAC,EAAK,SAAS4jW,GAAGvzZ,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEykC,GAAGwB,EAAE2glB,GAAG3glB,EAAE3vD,GAAG,CAAC2vD,GAAGqglB,GAAGrglB,IAAIz9D,OAAO,MAAM8N,GAAG0pB,EAAEykC,GAAGnuD,EAAEA,EAAE0woB,GAAG/glB,EAAEjmC,OAAO,OAAOA,GAAGA,GAAGykC,EAAEnuD,OAAE,CAAM,CAAC,SAAS4voB,GAAG5voB,EAAE2vD,GAAG,OAAO,MAAM3vD,GAAG2vD,KAAKp7C,OAAOvU,EAAE,CAAC,SAAS6voB,GAAG7voB,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,GAAG,OAAOv3D,IAAI2vD,IAAI,MAAM3vD,GAAG,MAAM2vD,IAAI89mB,GAAGztqB,KAAK0tqB,GAAG/9mB,GAAG3vD,GAAGA,GAAG2vD,GAAGA,EAAE,SAAS3vD,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,EAAEpnD,GAAG,IAAI4vD,EAAE4tmB,GAAG3tqB,GAAGutD,EAAEognB,GAAGh+mB,GAAGoN,EAAE,iBAAiB5F,EAAE,iBAAiB4I,IAAIhD,GAAGA,EAAEqzkB,GAAGpwoB,KAAKmuD,EAAEl8D,EAAE8qE,GAAGxP,IAAI4J,GAAGA,EAAEi5kB,GAAGzglB,KAAKxB,EAAEl8D,EAAEklE,GAAG,IAAI7I,EAAEyO,GAAG9qE,IAAIo4Q,EAAErqQ,GAAG+jC,EAAEozB,GAAGllE,IAAIo4Q,EAAE16M,GAAGmb,EAAE/N,GAAG5F,EAAE,GAAG2T,IAAIxc,EAAE,OAAOn+C,IAAIA,EAAE,IAAI2jZ,IAAI/zV,GAAG6tmB,GAAG5tqB,GAAGiwoB,GAAGjwoB,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,EAAEpnD,GAAG,SAASnQ,EAAE2vD,EAAEjmC,EAAEykC,EAAEl8D,EAAEymE,EAAEnB,GAAG,OAAO7tC,GAAG,IAAI,oBAAoB,GAAG1pB,EAAEi0H,YAAYtkE,EAAEskE,YAAYj0H,EAAEo0H,YAAYzkE,EAAEykE,WAAW,OAAM,EAAGp0H,EAAEA,EAAE0rB,OAAOikC,EAAEA,EAAEjkC,OAAO,IAAI,uBAAuB,QAAQ1rB,EAAEi0H,YAAYtkE,EAAEskE,aAAa9lE,EAAE,IAAI22kB,EAAE9koB,GAAG,IAAI8koB,EAAEn1kB,KAAK,IAAI,mBAAmB,IAAI,gBAAgB,IAAI,kBAAkB,OAAO29mB,IAAIttqB,GAAG2vD,GAAG,IAAI,iBAAiB,OAAO3vD,EAAE3N,MAAMs9D,EAAEt9D,MAAM2N,EAAE9B,SAASyxD,EAAEzxD,QAAQ,IAAI,kBAAkB,IAAI,kBAAkB,OAAO8B,GAAG2vD,EAAE,GAAG,KAAK2hB,EAAE,IAAInhE,EAAEwpT,EAAE,KAAK9oU,EAAE,IAAIkvE,EAAE,EAAErH,EAAE,GAAGvoD,IAAIA,EAAEkpT,GAAGr5T,EAAE5G,MAAMu2D,EAAEv2D,OAAO2mE,EAAE,OAAM,EAAG,IAAIxS,EAAEgK,EAAE0D,IAAIj7D,GAAG,GAAGutD,EAAE,OAAOA,GAAGoC,EAAE+I,GAAG,EAAEnB,EAAE8L,IAAIrjE,EAAE2vD,GAAG,IAAIoN,EAAEkzkB,GAAG9/nB,EAAEnQ,GAAGmQ,EAAEw/C,GAAGxB,EAAEl8D,EAAEymE,EAAEnB,GAAG,OAAOA,EAAE2zI,OAAOlrM,GAAG+8D,EAAE,IAAI,kBAAkB,GAAGipW,GAAG,OAAOA,GAAGjwW,KAAK/1D,IAAIgma,GAAGjwW,KAAKpG,GAAG,OAAM,CAAE,CAAlqB,CAAoqB3vD,EAAE2vD,EAAEoN,EAAErzC,EAAEgvC,EAAEnB,EAAEpnD,GAAG,KAAK,EAAEonD,GAAG,CAAC,IAAIzmE,EAAEw9D,GAAGsrQ,EAAE7jQ,KAAK/1D,EAAE,eAAeysD,EAAE1oB,GAAG61R,EAAE7jQ,KAAKpG,EAAE,eAAe,GAAG7+D,GAAG27D,EAAE,CAAC,IAAI4Q,EAAEvsE,EAAEkP,EAAEnO,QAAQmO,EAAEw5T,EAAE/sQ,EAAEkD,EAAE99D,QAAQ89D,EAAE,OAAOx/C,IAAIA,EAAE,IAAI2jZ,IAAIpqY,EAAE2zC,EAAEm8P,EAAE9gQ,EAAEnB,EAAEpnD,EAAE,CAAC,CAAC,QAAI26D,IAAkB36D,IAAIA,EAAE,IAAI2jZ,IAAI,SAAS9zZ,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE,EAAEygF,EAAE5Y,EAAE60mB,GAAGvtqB,GAAGu3D,EAAEmB,EAAExmE,OAAsB,GAAGqlE,GAAhBg2mB,GAAG59mB,GAAGz9D,SAAiBrB,EAAE,OAAM,EAAW,IAAR,IAAIkvE,EAAExI,EAAOwI,KAAK,CAAC,IAAIxS,EAAEmL,EAAEqH,GAAG,KAAKlvE,EAAE08D,KAAKoC,EAAEiqQ,EAAE7jQ,KAAKpG,EAAEpC,IAAI,OAAM,CAAE,CAAC,IAAIwP,EAAE9qE,EAAEgpE,IAAIj7D,GAAG,GAAG+8D,GAAG9qE,EAAEgpE,IAAItL,GAAG,OAAOoN,GAAGpN,EAAE,IAAIwH,GAAE,EAAGllE,EAAEoxE,IAAIrjE,EAAE2vD,GAAG19D,EAAEoxE,IAAI1T,EAAE3vD,GAAW,IAAR,IAAIsuD,EAAEz9D,IAASkvE,EAAExI,GAAG,CAAQ,IAAIxzB,EAAE/jC,EAAbutD,EAAEmL,EAAEqH,IAAc+K,EAAEnb,EAAEpC,GAAG,GAAGY,EAAE,IAAIr9D,EAAED,EAAEs9D,EAAE2c,EAAE/mC,EAAEwpB,EAAEoC,EAAE3vD,EAAE/N,GAAGk8D,EAAEpqB,EAAE+mC,EAAEvd,EAAEvtD,EAAE2vD,EAAE19D,GAAG,UAAK,IAASnB,EAAEizC,IAAI+mC,GAAGphD,EAAEqa,EAAE+mC,EAAE3c,EAAEmjB,EAAEr/E,GAAGnB,GAAG,CAACqmE,GAAE,EAAG,KAAK,CAAC7I,IAAIA,EAAE,eAAef,EAAE,CAAC,GAAG4J,IAAI7I,EAAE,CAAC,IAAI7B,EAAEzsD,EAAE+mD,YAAYsW,EAAE1N,EAAE5I,YAAY0F,GAAG4Q,KAAK,gBAAgBr9D,MAAM,gBAAgB2vD,IAAI,mBAAmBlD,GAAGA,aAAaA,GAAG,mBAAmB4Q,GAAGA,aAAaA,IAAIlG,GAAE,EAAG,CAAC,OAAOllE,EAAEi5M,OAAOlrM,GAAG/N,EAAEi5M,OAAOv7I,GAAGwH,CAAC,CAAzlB,CAA2lBn3D,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,EAAEpnD,GAAE,CAArrD,CAAurDnQ,EAAE2vD,EAAEkglB,GAAGnmnB,EAAEgvC,EAAEnB,GAAG,CAAu7C,SAASy4kB,GAAGhwoB,GAAG,OAAO2tqB,GAAG3tqB,GAAGA,EAAEywoB,GAAGzwoB,EAAE,CAAC,SAASiwoB,GAAGjwoB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE,EAAEygF,EAAE5Y,EAAE14D,EAAE9N,OAAOqlE,EAAE5H,EAAEz9D,OAAO,GAAGwmE,GAAGnB,KAAK1mE,GAAG0mE,EAAEmB,GAAG,OAAM,EAAG,IAAIvoD,EAAEle,EAAEgpE,IAAIj7D,GAAG,GAAGmQ,GAAGle,EAAEgpE,IAAItL,GAAG,OAAOx/C,GAAGw/C,EAAE,IAAIoQ,GAAG,EAAExS,GAAE,EAAGwP,EAAE,EAAEuU,EAAE,IAAI+9jB,QAAG,EAAO,IAAIp9oB,EAAEoxE,IAAIrjE,EAAE2vD,GAAG19D,EAAEoxE,IAAI1T,EAAE3vD,KAAK+/D,EAAErH,GAAG,CAAC,IAAIvB,EAAEn3D,EAAE+/D,GAAGzR,EAAEqB,EAAEoQ,GAAG,GAAG5R,EAAE,IAAIpqB,EAAElzC,EAAEs9D,EAAEG,EAAE6I,EAAE4I,EAAEpQ,EAAE3vD,EAAE/N,GAAGk8D,EAAEgJ,EAAE7I,EAAEyR,EAAE//D,EAAE2vD,EAAE19D,GAAG,QAAG,IAAS8xC,EAAE,CAAC,GAAGA,EAAE,SAASwpB,GAAE,EAAG,KAAK,CAAC,GAAGwP,GAAG,IAAI+8P,EAAEnqQ,GAAG,SAAS3vD,EAAE2vD,GAAG,IAAIoN,EAAEkgD,IAAIttD,KAAKwH,IAAIn3D,GAAG0pB,EAAEytC,EAAEn3D,EAAEmuD,EAAEmjB,EAAEr/E,IAAI,OAAO8qE,EAAE7K,IAAIvC,EAAE,IAAI,CAACpC,GAAE,EAAG,KAAK,OAAO,GAAG4J,IAAI7I,IAAI5kC,EAAEytC,EAAE7I,EAAEH,EAAEmjB,EAAEr/E,GAAG,CAACs7D,GAAE,EAAG,KAAK,CAAC,CAAC,OAAOt7D,EAAEi5M,OAAOlrM,GAAG/N,EAAEi5M,OAAOv7I,GAAGpC,CAAC,CAAC,SAAS2ilB,GAAGlwoB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEtxE,EAAEsvH,SAAS,OAAO,WAAWnhE,EAAE2sjB,SAASpxlB,EAAEimC,KAAK,UAAUxB,GAAG,UAAUA,GAAG,WAAWA,EAAE,cAAczkC,EAAE,OAAOA,GAAG4nD,EAAE,iBAAiB3hB,EAAE,SAAS,QAAQ2hB,EAAEx9E,GAAG,CAAC,SAASq8oB,GAAGnwoB,EAAE2vD,GAAG,IAAIjmC,EAAE,SAAS1pB,EAAE2vD,GAAG,OAAO,MAAM3vD,OAAE,EAAOA,EAAE2vD,EAAE,CAAxC,CAA0C3vD,EAAE2vD,GAAG,OAA3qE,SAAY3vD,GAAG,SAASytqB,GAAGztqB,IAAI,SAASA,GAAG,QAAQ8+nB,GAAGA,KAAK9+nB,CAAC,CAA7B,CAA+BA,MAAM6tqB,GAAG7tqB,IAAIqqQ,EAAErqQ,GAAGu3N,EAAEx6J,GAAGpvD,KAAKgjoB,GAAG3woB,GAAG,CAAklE8voB,CAAGpmnB,GAAGA,OAAE,CAAM,CAAC,IAAI0mnB,GAAG,SAASpwoB,GAAG,OAAOwxT,EAAEz7P,KAAK/1D,EAAE,EAAE,SAASqwoB,GAAGrwoB,EAAE2vD,GAAG,SAASA,EAAE,MAAMA,EAAE,iBAAiBA,KAAK,iBAAiB3vD,GAAGm3D,EAAExpD,KAAK3N,KAAKA,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE2vD,CAAC,CAAC,SAAS2glB,GAAGtwoB,EAAE2vD,GAAG,GAAGg+mB,GAAG3tqB,GAAG,OAAM,EAAG,IAAI0pB,EAAEoxlB,SAAS96mB,GAAG,QAAQ,UAAU0pB,GAAG,UAAUA,GAAG,WAAWA,GAAG,MAAM1pB,IAAI8tqB,GAAG9tqB,KAAMu3D,EAAE5pD,KAAK3N,KAAK04D,EAAE/qD,KAAK3N,IAAI,MAAM2vD,GAAG3vD,KAAKuU,OAAOo7C,EAAG,CAAC,SAAS4glB,GAAGvwoB,GAAG,OAAOA,GAAGA,IAAIytqB,GAAGztqB,EAAE,CAAC,SAASwwoB,GAAGxwoB,EAAE2vD,GAAG,OAAO,SAASjmC,GAAG,OAAO,MAAMA,GAAIA,EAAE1pB,KAAK2vD,SAAI,IAASA,GAAG3vD,KAAKuU,OAAOmV,GAAI,CAAC,EAAEi1G,GAAG,qBAAqByxgB,GAAG,IAAIzxgB,EAAE,IAAIl1E,YAAY,MAAM+jU,GAAG4iR,GAAG,IAAI5iR,IAAIl8S,GAAGnyE,GAAG,oBAAoBixoB,GAAGjxoB,EAAEuxC,YAAYmpR,GAAGu2U,GAAG,IAAIv2U,IAAIhpU,GAAGuoU,GAAG,oBAAoBg3U,GAAG,IAAIh3U,MAAMg3U,GAAG,SAASpwoB,GAAG,IAAI2vD,EAAE6hQ,EAAEz7P,KAAK/1D,GAAG0pB,EAAEimC,GAAG19D,EAAE+N,EAAE+mD,iBAAY,EAAOoH,EAAEzkC,EAAEinnB,GAAGjnnB,QAAG,EAAO,GAAGykC,EAAE,OAAOA,GAAG,KAAKgrQ,EAAE,MAAM,oBAAoB,KAAK81U,EAAE,OAAO39jB,EAAE,KAAKgoP,EAAE,MAAM,mBAAmB,KAAK2E,GAAG,OAAOptU,EAAE,KAAKg2a,GAAG,MAAM,mBAAmB,OAAOl3W,CAAC,GAAG,IAAI8glB,GAAGs9B,IAAI,SAAS/tqB,GAAG,IAAI2vD,EAAE3vD,EAAE,OAAO2vD,EAAE3vD,GAAG,GAAG,SAASA,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAG8tqB,GAAG9tqB,GAAG,OAAOkvoB,GAAGA,GAAGn5kB,KAAK/1D,GAAG,GAAG,IAAI2vD,EAAE3vD,EAAE,GAAG,MAAM,KAAK2vD,GAAG,EAAE3vD,IAAG,IAAK,KAAK2vD,CAAC,CAArH,CAAuHA,GAAG,IAAIjmC,EAAE,GAAG,OAAOvZ,EAAExC,KAAK3N,IAAI0pB,EAAEp0B,KAAK,IAAI0K,EAAE8f,QAAQigD,GAAG,SAAS//D,EAAE2vD,EAAExB,EAAEmjB,GAAG5nD,EAAEp0B,KAAK64D,EAAEmjB,EAAExxD,QAAQytC,EAAE,MAAMoC,GAAG3vD,EAAE,IAAI0pB,CAAC,IAAI,SAASgnnB,GAAG1woB,GAAG,GAAG,iBAAiBA,GAAG8tqB,GAAG9tqB,GAAG,OAAOA,EAAE,IAAI2vD,EAAE3vD,EAAE,GAAG,MAAM,KAAK2vD,GAAG,EAAE3vD,IAAG,IAAK,KAAK2vD,CAAC,CAAC,SAASghlB,GAAG3woB,GAAG,GAAG,MAAMA,EAAE,CAAC,IAAI,OAAO05T,EAAE3jQ,KAAK/1D,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAIguqB,GAAMC,IAAID,GAAG,SAAShuqB,EAAE2vD,EAAEjmC,GAAGkwS,EAAE7jQ,KAAK/1D,EAAE0pB,GAAG1pB,EAAE0pB,GAAGp0B,KAAKq6D,GAAG3vD,EAAE0pB,GAAG,CAACimC,EAAE,EAAE,SAAS3vD,EAAE2vD,GAAG,IAAiBxB,EAAU,CAAC,EAAE,OAAxBw/mB,GAAG3tqB,GAAGpP,EAAE6za,IAAyBzka,EAAEguqB,GAAv/G,SAAYhuqB,GAAG,MAAM,mBAAmBA,EAAEA,EAAE,MAAMA,EAAEkuqB,GAAG,UAAUpzD,SAAS96mB,GAAG2tqB,GAAG3tqB,GAAG,SAASA,EAAE2vD,GAAG,OAAG2glB,GAAGtwoB,IAAIuwoB,GAAG5glB,GAAU6glB,GAAGE,GAAG1woB,GAAG2vD,GAAU,SAASjmC,GAAG,IAAIykC,EAAE,SAASnuD,EAAE2vD,GAAK,IAAIxB,EAAE,MAAMnuD,OAAE,EAAOuzZ,GAAGvzZ,EAAE2vD,GAAG,YAAO,IAASxB,OAA7D,EAAiEA,CAAC,CAAlE,CAAoEzkC,EAAE1pB,GAAG,YAAO,IAASmuD,GAAGA,IAAIwB,EAAE,SAAS3vD,EAAE2vD,GAAG,OAAO,MAAM3vD,GAAG,SAASA,EAAE2vD,EAAEjmC,GAA6C,IAAtB,IAAIykC,EAAEmjB,GAAG,EAAEr/E,GAA/B09D,EAAE2glB,GAAG3glB,EAAE3vD,GAAG,CAAC2vD,GAAGqglB,GAAGrglB,IAAkBz9D,SAAco/E,EAAEr/E,GAAG,CAAC,IAAIpB,EAAE6/oB,GAAG/glB,EAAE2hB,IAAI,KAAKnjB,EAAE,MAAMnuD,GAAG0pB,EAAE1pB,EAAEnP,IAAI,MAAMmP,EAAEA,EAAEnP,EAAE,CAAC,OAAGs9D,MAAoBl8D,EAAE+N,EAAEA,EAAE9N,OAAO,IAAIi8qB,GAAGl8qB,IAAIo+oB,GAAGx/oB,EAAEoB,KAAK07qB,GAAG3tqB,IAAIouqB,GAAGpuqB,GAAG,CAAjM,CAAmMA,EAAE2vD,EAAEiglB,GAAG,CAAxO,CAA0OlmnB,EAAE1pB,GAAG6voB,GAAGlglB,EAAExB,OAAE,EAAO,EAAE,CAAC,CAA5a,CAA8anuD,EAAE,GAAGA,EAAE,IAAI,SAASA,GAAG,IAAI2vD,EAAE,SAAS3vD,GAA0B,IAAvB,IAAI2vD,EAAE49mB,GAAGvtqB,GAAG0pB,EAAEimC,EAAEz9D,OAAYw3B,KAAK,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAG4nD,EAAEtxE,EAAEmuD,GAAGwB,EAAEjmC,GAAG,CAACykC,EAAEmjB,EAAEi/jB,GAAGj/jB,GAAG,CAAC,OAAO3hB,CAAC,CAAzF,CAA2F3vD,GAAG,OAAG,GAAG2vD,EAAEz9D,QAAQy9D,EAAE,GAAG,GAAU6glB,GAAG7glB,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAW,SAASjmC,GAAG,OAAOA,IAAI1pB,GAAG,SAASA,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,EAAE5nD,EAAEx3B,OAAOD,EAAEq/E,EAAO,GAAG,MAAMtxE,EAAE,OAAO/N,EAAE,IAAI+N,EAAEuU,OAAOvU,GAAGsxE,KAAK,CAAC,IAAI5Y,EAAEhvC,EAAE4nD,GAAG,GAAM5Y,EAAE,GAAGA,EAAE,KAAK14D,EAAE04D,EAAE,MAAMA,EAAE,KAAK14D,GAAG,OAAM,CAAE,CAAC,OAAOsxE,EAAEr/E,GAAG,CAAC,IAAIslE,GAAGmB,EAAEhvC,EAAE4nD,IAAI,GAAGnhE,EAAEnQ,EAAEu3D,GAAGwI,EAAErH,EAAE,GAAG,GAAMA,EAAE,IAAI,QAAG,IAASvoD,KAAKonD,KAAKv3D,GAAG,OAAM,MAAO,CAAC,IAAsB+8D,EAAlBxP,EAAE,IAAIumW,GAA6B,UAAK,IAAS/2V,EAAE8ykB,GAAG9vkB,EAAE5vD,EAAEg+C,EAAE,EAAEZ,GAAGwP,GAAG,OAAM,CAAE,CAAC,CAAC,OAAM,CAAE,CAAxU,CAA0UrzC,EAAE1pB,EAAE2vD,EAAE,CAAC,CAArhB,CAAuhB3vD,GAAGswoB,GAAG3glB,EAAE3vD,IAAI0pB,EAAEgnnB,GAAG/glB,GAAG,SAAS3vD,GAAG,OAAO,MAAMA,OAAE,EAAOA,EAAE0pB,EAAE,GAAG,SAAS1pB,GAAG,OAAO,SAAS2vD,GAAG,OAAO4jW,GAAG5jW,EAAE3vD,EAAE,CAAC,CAA9C,CAAgD2vD,GAAG,IAAIA,EAAEjmC,CAAC,CAAg2E8hL,CAAG77I,GAAGxB,EAAE,GAAG,SAAS4/mB,GAAG/tqB,EAAE2vD,GAAG,GAAG,mBAAmB3vD,GAAG2vD,GAAG,mBAAmBA,EAAE,MAAM,IAAI47D,UAAU,uBAAuB,IAAI7hG,EAAE,SAASA,IAAI,IAAIykC,EAAEuV,UAAU4N,EAAE3hB,EAAEA,EAAE1S,MAAMsd,KAAKpM,GAAGA,EAAE,GAAGl8D,EAAEy3B,EAAE+sC,MAAM,GAAGxkE,EAAEgrH,IAAI3rC,GAAG,OAAOr/E,EAAEgpE,IAAIqW,GAAG,IAAIzgF,EAAEmP,EAAEi9C,MAAMsd,KAAKpM,GAAG,OAAOzkC,EAAE+sC,MAAMxkE,EAAEoxE,IAAIiO,EAAEzgF,GAAGA,CAAC,EAAE,OAAO64B,EAAE+sC,MAAM,IAAIs3mB,GAAGp4hB,OAAOyjR,IAAI1vY,CAAC,CAAC,SAAS4jpB,GAAGttqB,EAAE2vD,GAAG,OAAO3vD,IAAI2vD,GAAG3vD,GAAGA,GAAG2vD,GAAGA,CAAC,CAAC,SAASy+mB,GAAGpuqB,GAAG,OAAO,SAASA,GAAG,OAAO0tqB,GAAG1tqB,IAAIwtqB,GAAGxtqB,EAAE,CAA/B,CAAiCA,IAAI45T,EAAE7jQ,KAAK/1D,EAAE,aAAaq3N,EAAEthK,KAAK/1D,EAAE,WAAWwxT,EAAEz7P,KAAK/1D,IAAImuD,EAAE,CAAC4/mB,GAAGp4hB,MAAMyjR,GAAG,IAAIu0Q,GAAG/jnB,MAAMC,QAAQ,SAAS2jnB,GAAGxtqB,GAAG,OAAO,MAAMA,GAAGmuqB,GAAGnuqB,EAAE9N,UAAU27qB,GAAG7tqB,EAAE,CAAC,SAAS6tqB,GAAG7tqB,GAAG,IAAI2vD,EAAE89mB,GAAGztqB,GAAGwxT,EAAEz7P,KAAK/1D,GAAG,GAAG,MAAM,qBAAqB2vD,GAAG,8BAA8BA,CAAC,CAAC,SAASw+mB,GAAGnuqB,GAAG,MAAM,iBAAiBA,GAAGA,GAAG,GAAGA,EAAE,GAAG,GAAGA,GAAG,gBAAgB,CAAC,SAASytqB,GAAGztqB,GAAG,IAAI2vD,EAAEmrjB,SAAS96mB,GAAG,QAAQA,IAAI,UAAU2vD,GAAG,YAAYA,EAAE,CAAC,SAAS+9mB,GAAG1tqB,GAAG,QAAQA,GAAG,UAAU86mB,SAAS96mB,EAAE,CAAC,SAAS8tqB,GAAG9tqB,GAAG,MAAM,UAAU86mB,SAAS96mB,IAAI0tqB,GAAG1tqB,IAAI,mBAAmBwxT,EAAEz7P,KAAK/1D,EAAE,CAAC,IAAI4tqB,GAAGz2e,EAAE,SAASn3L,GAAG,OAAO,SAAS2vD,GAAG,OAAO3vD,EAAE2vD,EAAE,CAAC,CAA3C,CAA6CwnI,GAAG,SAASn3L,GAAG,OAAO0tqB,GAAG1tqB,IAAImuqB,GAAGnuqB,EAAE9N,WAAWo8D,EAAEkjQ,EAAEz7P,KAAK/1D,GAAG,EAAE,SAASutqB,GAAGvtqB,GAAG,OAAOwtqB,GAAGxtqB,GAAz/R,SAAYA,EAAE2vD,GAAG,IAAIjmC,EAAEikpB,GAAG3tqB,IAAIouqB,GAAGpuqB,GAAG,SAASA,EAAE2vD,GAAG,IAAI,IAAIjmC,GAAG,EAAEykC,EAAEvE,MAAM5pD,KAAK0pB,EAAE1pB,GAAGmuD,EAAEzkC,GAAGimC,EAAEjmC,GAAG,OAAOykC,CAAC,CAA/D,CAAiEnuD,EAAE9N,OAAOwwB,QAAQ,GAAGyrC,EAAEzkC,EAAEx3B,OAAOo/E,IAAInjB,EAAE,IAAI,IAAIl8D,KAAK+N,GAAG2vD,IAAIiqQ,EAAE7jQ,KAAK/1D,EAAE/N,IAAIq/E,IAAI,UAAUr/E,GAAGo+oB,GAAGp+oB,EAAEk8D,KAAKzkC,EAAEp0B,KAAKrD,GAAG,OAAOy3B,CAAC,CAAoyR4lnB,CAAGtvoB,GAA34G,SAAYA,GAAG,GAAG0pB,GAAGimC,EAAE3vD,IAAI2vD,EAAE5I,YAAmD4I,KAArC,mBAAmBjmC,GAAGA,EAAEo9B,WAAWyyQ,GAAQ,OAAOtoS,EAAEjxB,GAAG,IAAI2vD,EAAEjmC,EAAI4nD,EAAE,GAAG,IAAI,IAAIr/E,KAAKsiB,OAAOvU,GAAG45T,EAAE7jQ,KAAK/1D,EAAE/N,IAAI,eAAeA,GAAGq/E,EAAEh8E,KAAKrD,GAAG,OAAOq/E,CAAC,CAAqtGy+jB,CAAG/voB,EAAE,CAAC,SAASkuqB,GAAGluqB,GAAG,OAAOA,CAAC,CAAC2vD,EAAE8jE,QAAQw6iB,EAAG,GAAEl4mB,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE55C,OAAOuyC,UAAU76D,SAAS0jE,EAAE8jE,QAAQ,SAASzzH,GAAG,OAAM,IAAKA,IAAG,IAAKA,GAAG,SAASA,GAAG,QAAQA,GAAG,UAAU86mB,SAAS96mB,EAAE,CAA5C,CAA8CA,IAAI,oBAAoBmuD,EAAE4H,KAAK/1D,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAImuD,EAAE,qBAAqBmjB,EAAE,eAAer/E,EAAE,kBAAkBpB,EAAE,eAAe6nE,EAAE,8BAA8BnB,EAAE,mBAAmBpnD,EAAE,CAAC,EAAEA,EAAE,yBAAyBA,EAAE,yBAAyBA,EAAE,sBAAsBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,8BAA8BA,EAAE,wBAAwBA,EAAE,yBAAwB,EAAGA,EAAEg+C,GAAGh+C,EAAE,kBAAkBA,EAAE,wBAAwBA,EAAE,oBAAoBA,EAAE,qBAAqBA,EAAE,iBAAiBA,EAAE,kBAAkBA,EAAE,qBAAqBA,EAAEmhE,GAAGnhE,EAAE,mBAAmBA,EAAEle,GAAGke,EAAE,mBAAmBA,EAAEtf,GAAGsf,EAAE,mBAAmBA,EAAE,qBAAoB,EAAG,IAAI4vD,EAAE,UAAU+6iB,SAAS96mB,IAAIA,GAAGA,EAAEuU,SAASA,QAAQvU,EAAEutD,EAAE,WAAW,oBAAoB9G,KAAK,YAAYq0jB,SAASr0jB,QAAQA,MAAMA,KAAKlyC,SAASA,QAAQkyC,KAAKsW,EAAEgD,GAAGxS,GAAG4iE,SAAS,cAATA,GAA0Bh5D,EAAE,UAAU2jjB,SAASpxlB,IAAIA,IAAIA,EAAE6rC,UAAU7rC,EAAE4kC,EAAE6I,GAAG,UAAU2jjB,SAASnrjB,IAAIA,IAAIA,EAAE4F,UAAU5F,EAAE5rB,EAAEuqB,GAAGA,EAAEmlE,UAAUt8D,EAAE2T,EAAE/mC,GAAGg8B,EAAE6sB,QAAQ97F,EAAE,WAAW,IAAI,OAAOg6E,GAAGA,EAAE2qD,SAAS3qD,EAAE2qD,QAAQ,OAAO,CAAC,MAAMz1H,GAAG,CAAC,CAAhE,GAAoEysD,EAAE37D,GAAGA,EAAE6kI,aAAa,SAASt4D,EAAEr9D,EAAE2vD,GAAG,IAAI,IAAIjmC,GAAG,EAAEykC,EAAE,MAAMnuD,EAAE,EAAEA,EAAE9N,SAASw3B,EAAEykC,GAAG,GAAGwB,EAAE3vD,EAAE0pB,GAAGA,EAAE1pB,GAAG,OAAM,EAAG,OAAM,CAAE,CAAC,SAASw5T,EAAEx5T,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAEkgC,MAAM5pD,EAAE5G,MAAM,OAAO4G,EAAE6xB,SAAS,SAAS7xB,EAAEmuD,GAAGzkC,IAAIimC,GAAG,CAACxB,EAAEnuD,EAAE,IAAI0pB,CAAC,CAAC,SAASknE,EAAE5wF,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAEkgC,MAAM5pD,EAAE5G,MAAM,OAAO4G,EAAE6xB,SAAS,SAAS7xB,GAAG0pB,IAAIimC,GAAG3vD,CAAC,IAAI0pB,CAAC,CAAC,IAAIytK,EAAEvmM,EAAEkpU,EAAEzvD,EAAEzgN,MAAM9C,UAAU6yQ,EAAExpM,SAASrpE,UAAUuyQ,EAAE9kT,OAAOuyC,UAAUnO,EAAEokB,EAAE,sBAAsBg9P,EAAEJ,EAAE1tU,SAAS2yoB,EAAEvlU,EAAEhvM,eAAem5O,GAAGrsK,EAAE,SAAShiI,KAAKxc,GAAGA,EAAE9F,MAAM8F,EAAE9F,KAAKq+E,UAAU,KAAK,iBAAiBimE,EAAE,GAAG0nc,EAAExlU,EAAEptU,SAASstU,EAAEx7P,OAAO,IAAIg8P,EAAEhkQ,KAAK6okB,GAAG9+mB,QAAQ,sBAAsB,QAAQA,QAAQ,yDAAyD,SAAS,KAAK25S,EAAE11R,EAAEg5B,EAAE62D,YAAO,EAAOkrgB,EAAE/hkB,EAAEqzD,OAAOspM,EAAE38P,EAAEg3D,WAAW6lM,EAAEP,EAAEvkM,qBAAqB08L,EAAEnnD,EAAE54Q,OAAO8lO,EAAEuna,EAAEA,EAAEtugB,iBAAY,EAAOjxC,EAAEhrE,OAAO65E,sBAAsB02iB,EAAErrU,EAAEA,EAAEvkM,cAAS,EAAOmiG,GAAGzmO,EAAE2jB,OAAOs+B,KAAKinR,EAAEvlT,OAAO,SAASvU,GAAG,OAAOpP,EAAEkpU,EAAE95T,GAAG,GAAGkqX,EAAEqpC,GAAGx2V,EAAE,YAAY9rC,EAAEsiY,GAAGx2V,EAAE,OAAO4hE,EAAE40R,GAAGx2V,EAAE,WAAWywT,EAAE+lC,GAAGx2V,EAAE,OAAO59D,EAAEo0Z,GAAGx2V,EAAE,WAAW88P,EAAE05F,GAAGh/Y,OAAO,UAAU6kT,EAAE5tH,GAAG0+K,GAAGk4C,EAAE52N,GAAGv6K,GAAGkoS,EAAE3tH,GAAG7sE,GAAGswgB,EAAEzjc,GAAGgiL,GAAGl0D,EAAE9tH,GAAGrsM,GAAG8+T,GAAG6gU,EAAEA,EAAEh4kB,eAAU,EAAO+/W,GAAG5oG,GAAGA,GAAGzjM,aAAQ,EAAO,SAASg0E,GAAGxuM,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE,MAAM1pB,EAAE,EAAEA,EAAE9N,OAAO,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAAS63W,GAAGhma,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE,MAAM1pB,EAAE,EAAEA,EAAE9N,OAAO,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAAS+glB,GAAGlvoB,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE,MAAM1pB,EAAE,EAAEA,EAAE9N,OAAO,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASghlB,GAAGnvoB,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE,MAAM1pB,EAAE,EAAEA,EAAE9N,OAAO,IAAIqoE,KAAK+0D,SAAS,IAAI4/gB,KAAKv/kB,EAAEjmC,GAAG6wC,KAAKrI,IAAIlyD,EAAE2vD,GAAG,CAAC,SAASy/kB,GAAGpvoB,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,IAAI02S,GAAGhma,GAAGu6D,KAAKnhE,KAAKu2D,EAAEv2D,IAAI,CAAiW,SAASi2oB,GAAGrvoB,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE1pB,EAAE9N,OAAOw3B,KAAK,GAAGqmnB,GAAG/voB,EAAE0pB,GAAG,GAAGimC,GAAG,OAAOjmC,EAAE,OAAO,CAAC,CAAC,SAASoqY,GAAG9zZ,GAAG,OAAO,MAAMA,OAAE,IAASA,EAAE,qBAAqB,gBAAgBu3N,GAAGA,KAAKhjN,OAAOvU,GAAG,SAASA,GAAG,IAAI2vD,EAAEivkB,EAAE7okB,KAAK/1D,EAAEu3N,GAAG7tM,EAAE1pB,EAAEu3N,GAAG,IAAIv3N,EAAEu3N,QAAG,EAAO,IAAIppK,GAAE,CAAE,CAAC,MAAMnuD,GAAG,CAAC,IAAIsxE,EAAEutjB,EAAE9okB,KAAK/1D,GAA6B,OAA1BmuD,IAAIwB,EAAE3vD,EAAEu3N,GAAG7tM,SAAS1pB,EAAEu3N,IAAWjmJ,CAAC,CAA1H,CAA4HtxE,GAAG,SAASA,GAAG,OAAO6+nB,EAAE9okB,KAAK/1D,EAAE,CAA5B,CAA8BA,EAAE,CAAC,SAASsvoB,GAAGtvoB,GAAG,OAAOswoB,GAAGtwoB,IAAI8zZ,GAAG9zZ,IAAImuD,CAAC,CAAC,SAASohlB,GAAGvvoB,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,GAAG,OAAOv3D,IAAI2vD,IAAI,MAAM3vD,GAAG,MAAM2vD,IAAI2glB,GAAGtwoB,KAAKswoB,GAAG3glB,GAAG3vD,GAAGA,GAAG2vD,GAAGA,EAAE,SAAS3vD,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,EAAEpnD,GAAG,IAAI4vD,EAAEkwkB,GAAGjwoB,GAAGutD,EAAE0ilB,GAAGtglB,GAAGoN,EAAEgD,EAAE,iBAAiB8vkB,GAAG7voB,GAAGm3D,EAAE5J,EAAE,iBAAiBsilB,GAAGlglB,GAAGrB,GAAGyO,EAAEA,GAAG5O,EAAEl8D,EAAE8qE,IAAI9qE,EAAE8xC,GAAGozB,EAAEA,GAAGhJ,EAAEl8D,EAAEklE,IAAIllE,EAAE64E,EAAE/N,GAAG5F,EAAE,GAAG2T,GAAGolkB,GAAGlwoB,GAAG,CAAC,IAAIkwoB,GAAGvglB,GAAG,OAAM,EAAGoQ,GAAE,EAAGzR,GAAE,CAAE,CAAC,GAAGwc,IAAIxc,EAAE,OAAOn+C,IAAIA,EAAE,IAAIi/nB,IAAIrvkB,GAAGwwkB,GAAGvwoB,GAAGwvoB,GAAGxvoB,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,EAAEpnD,GAAG,SAASnQ,EAAE2vD,EAAEjmC,EAAEykC,EAAEl8D,EAAEymE,EAAEnB,GAAG,OAAO7tC,GAAG,IAAI,oBAAoB,GAAG1pB,EAAEi0H,YAAYtkE,EAAEskE,YAAYj0H,EAAEo0H,YAAYzkE,EAAEykE,WAAW,OAAM,EAAGp0H,EAAEA,EAAE0rB,OAAOikC,EAAEA,EAAEjkC,OAAO,IAAI,uBAAuB,QAAQ1rB,EAAEi0H,YAAYtkE,EAAEskE,aAAav7D,EAAE,IAAIghQ,EAAE15T,GAAG,IAAI05T,EAAE/pQ,KAAK,IAAI,mBAAmB,IAAI,gBAAgB,IAAI,kBAAkB,OAAOoglB,IAAI/voB,GAAG2vD,GAAG,IAAI,iBAAiB,OAAO3vD,EAAE3N,MAAMs9D,EAAEt9D,MAAM2N,EAAE9B,SAASyxD,EAAEzxD,QAAQ,IAAI,kBAAkB,IAAI,kBAAkB,OAAO8B,GAAG2vD,EAAE,GAAG,KAAK2hB,EAAE,IAAInhE,EAAEqpT,EAAE,KAAK3oU,EAAE,IAAIkvE,EAAE,EAAE5R,EAAE,GAAGh+C,IAAIA,EAAEygF,GAAG5wF,EAAE5G,MAAMu2D,EAAEv2D,OAAO2mE,EAAE,OAAM,EAAG,IAAIxS,EAAEgK,EAAE0D,IAAIj7D,GAAG,GAAGutD,EAAE,OAAOA,GAAGoC,EAAExB,GAAG,EAAEoJ,EAAE8L,IAAIrjE,EAAE2vD,GAAG,IAAIoN,EAAEyykB,GAAGr/nB,EAAEnQ,GAAGmQ,EAAEw/C,GAAGxB,EAAEl8D,EAAEymE,EAAEnB,GAAG,OAAOA,EAAE2zI,OAAOlrM,GAAG+8D,EAAE,IAAI,kBAAkB,GAAG8pW,GAAG,OAAOA,GAAG9wW,KAAK/1D,IAAI6ma,GAAG9wW,KAAKpG,GAAG,OAAM,CAAE,CAAlqB,CAAoqB3vD,EAAE2vD,EAAEoN,EAAErzC,EAAEgvC,EAAEnB,EAAEpnD,GAAG,KAAK,EAAEuZ,GAAG,CAAC,IAAI54B,EAAEw9D,GAAGswkB,EAAE7okB,KAAK/1D,EAAE,eAAeysD,EAAE1oB,GAAG66lB,EAAE7okB,KAAKpG,EAAE,eAAe,GAAG7+D,GAAG27D,EAAE,CAAC,IAAI4Q,EAAEvsE,EAAEkP,EAAEnO,QAAQmO,EAAEm3L,EAAE1qI,EAAEkD,EAAE99D,QAAQ89D,EAAE,OAAOx/C,IAAIA,EAAE,IAAIi/nB,IAAI73kB,EAAE8F,EAAE85H,EAAEztK,EAAEgvC,EAAEvoD,EAAE,CAAC,CAAC,QAAI26D,IAAkB36D,IAAIA,EAAE,IAAIi/nB,IAAI,SAASpvoB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE,EAAE64B,EAAEgvC,EAAE+2kB,GAAGzvoB,GAAGu3D,EAAEmB,EAAExmE,OAAsB,GAAGqlE,GAAhBk4kB,GAAG9/kB,GAAGz9D,SAAiBrB,EAAE,OAAM,EAAW,IAAR,IAAIkvE,EAAExI,EAAOwI,KAAK,CAAC,IAAIxS,EAAEmL,EAAEqH,GAAG,KAAKlvE,EAAE08D,KAAKoC,EAAEivkB,EAAE7okB,KAAKpG,EAAEpC,IAAI,OAAM,CAAE,CAAC,IAAIwP,EAAE9qE,EAAEgpE,IAAIj7D,GAAG,GAAG+8D,GAAG9qE,EAAEgpE,IAAItL,GAAG,OAAOoN,GAAGpN,EAAE,IAAIwH,GAAE,EAAGllE,EAAEoxE,IAAIrjE,EAAE2vD,GAAG19D,EAAEoxE,IAAI1T,EAAE3vD,GAAW,IAAR,IAAIsuD,EAAEz9D,IAASkvE,EAAExI,GAAG,CAAQ,IAAIxzB,EAAE/jC,EAAbutD,EAAEmL,EAAEqH,IAAc+K,EAAEnb,EAAEpC,GAAG,GAAGY,EAAE,IAAIr9D,EAAED,EAAEs9D,EAAE2c,EAAE/mC,EAAEwpB,EAAEoC,EAAE3vD,EAAE/N,GAAGk8D,EAAEpqB,EAAE+mC,EAAEvd,EAAEvtD,EAAE2vD,EAAE19D,GAAG,UAAK,IAASnB,EAAEizC,IAAI+mC,GAAGwG,EAAEvtC,EAAE+mC,EAAEphD,EAAEykC,EAAEl8D,GAAGnB,GAAG,CAACqmE,GAAE,EAAG,KAAK,CAAC7I,IAAIA,EAAE,eAAef,EAAE,CAAC,GAAG4J,IAAI7I,EAAE,CAAC,IAAI7B,EAAEzsD,EAAE+mD,YAAYsW,EAAE1N,EAAE5I,YAAY0F,GAAG4Q,KAAK,gBAAgBr9D,MAAM,gBAAgB2vD,IAAI,mBAAmBlD,GAAGA,aAAaA,GAAG,mBAAmB4Q,GAAGA,aAAaA,IAAIlG,GAAE,EAAG,CAAC,OAAOllE,EAAEi5M,OAAOlrM,GAAG/N,EAAEi5M,OAAOv7I,GAAGwH,CAAC,CAAzlB,CAA2lBn3D,EAAE2vD,EAAEjmC,EAAEgvC,EAAEnB,EAAEpnD,GAAE,CAAnsD,CAAqsDnQ,EAAE2vD,EAAEjmC,EAAEgvC,EAAE62kB,GAAGh4kB,GAAG,CAAsR,SAASi4kB,GAAGxvoB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE,EAAE64B,EAAEgvC,EAAE14D,EAAE9N,OAAOqlE,EAAE5H,EAAEz9D,OAAO,GAAGwmE,GAAGnB,KAAK1mE,GAAG0mE,EAAEmB,GAAG,OAAM,EAAG,IAAIvoD,EAAEle,EAAEgpE,IAAIj7D,GAAG,GAAGmQ,GAAGle,EAAEgpE,IAAItL,GAAG,OAAOx/C,GAAGw/C,EAAE,IAAIoQ,GAAG,EAAExS,GAAE,EAAGwP,EAAE,EAAErzC,EAAE,IAAIylnB,QAAG,EAAO,IAAIl9oB,EAAEoxE,IAAIrjE,EAAE2vD,GAAG19D,EAAEoxE,IAAI1T,EAAE3vD,KAAK+/D,EAAErH,GAAG,CAAC,IAAIvB,EAAEn3D,EAAE+/D,GAAGzR,EAAEqB,EAAEoQ,GAAG,GAAG5R,EAAE,IAAIpqB,EAAElzC,EAAEs9D,EAAEG,EAAE6I,EAAE4I,EAAEpQ,EAAE3vD,EAAE/N,GAAGk8D,EAAEgJ,EAAE7I,EAAEyR,EAAE//D,EAAE2vD,EAAE19D,GAAG,QAAG,IAAS8xC,EAAE,CAAC,GAAGA,EAAE,SAASwpB,GAAE,EAAG,KAAK,CAAC,GAAGwP,GAAG,IAAIM,EAAE1N,GAAG,SAAS3vD,EAAE2vD,GAAG,GAAG9+D,EAAE8+D,GAAGoN,EAAEkgD,IAAIpsH,KAAKsmE,IAAIn3D,GAAGsxE,EAAEna,EAAEn3D,EAAE0pB,EAAEykC,EAAEl8D,IAAI,OAAO8qE,EAAEznE,KAAKq6D,GAAG,IAAI9+D,CAAC,IAAI,CAAC08D,GAAE,EAAG,KAAK,OAAO,GAAG4J,IAAI7I,IAAIgjB,EAAEna,EAAE7I,EAAE5kC,EAAEykC,EAAEl8D,GAAG,CAACs7D,GAAE,EAAG,KAAK,CAAC,CAAC,OAAOt7D,EAAEi5M,OAAOlrM,GAAG/N,EAAEi5M,OAAOv7I,GAAGpC,CAAC,CAAC,SAASkilB,GAAGzvoB,GAAG,OAAO,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEwB,EAAE3vD,GAAG,OAAOiwoB,GAAGjwoB,GAAGmuD,EAAE,SAASnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,GAAG,EAAEykC,EAAEwB,EAAEz9D,OAAOo/E,EAAEtxE,EAAE9N,SAASw3B,EAAEykC,GAAGnuD,EAAEsxE,EAAE5nD,GAAGimC,EAAEjmC,GAAG,OAAO1pB,CAAC,CAA5E,CAA8EmuD,EAAEzkC,EAAE1pB,GAAG,CAA/H,CAAiIA,EAAEwwoB,GAAGZ,GAAG,CAAC,SAASF,GAAG1voB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEtxE,EAAEsvH,SAAS,OAAO,WAAWnhE,EAAE2sjB,SAASpxlB,EAAEimC,KAAK,UAAUxB,GAAG,UAAUA,GAAG,WAAWA,EAAE,cAAczkC,EAAE,OAAOA,GAAG4nD,EAAE,iBAAiB3hB,EAAE,SAAS,QAAQ2hB,EAAEx9E,GAAG,CAAC,SAASy/Z,GAAGvzZ,EAAE2vD,GAAG,IAAIjmC,EAAE,SAAS1pB,EAAE2vD,GAAG,OAAO,MAAM3vD,OAAE,EAAOA,EAAE2vD,EAAE,CAAxC,CAA0C3vD,EAAE2vD,GAAG,OAAjpC,SAAY3vD,GAAG,SAASqwoB,GAAGrwoB,IAAI,SAASA,GAAG,QAAQwjW,GAAGA,KAAKxjW,CAAC,CAA7B,CAA+BA,MAAMmwoB,GAAGnwoB,GAAGu5T,EAAE7gQ,GAAG/qD,KAAK69L,GAAGxrM,GAAG,CAA8jCyka,CAAG/6Y,GAAGA,OAAE,CAAM,CAAC8kL,GAAG1nJ,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAASuqM,EAAEA,EAAE,MAAM,CAAC,EAAEt/P,KAAKnhE,KAAK,CAAC,EAAEo1M,GAAG1nJ,UAAUokJ,OAAO,SAASlrM,GAAG,IAAI2vD,EAAE4K,KAAK0iD,IAAIj9G,WAAWu6D,KAAK+0D,SAAStvH,GAAG,OAAOu6D,KAAKnhE,MAAMu2D,EAAE,EAAE,EAAEA,CAAC,EAAE6+I,GAAG1nJ,UAAUmU,IAAI,SAASj7D,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,GAAGuqM,EAAE,CAAC,IAAInwS,EAAEimC,EAAE3vD,GAAG,MAAM,8BAA8B0pB,OAAE,EAAOA,CAAC,CAAC,OAAOk1mB,EAAE7okB,KAAKpG,EAAE3vD,GAAG2vD,EAAE3vD,QAAG,CAAM,EAAEwuM,GAAG1nJ,UAAUm2D,IAAI,SAASj9G,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,OAAOuqM,OAAE,IAASlqQ,EAAE3vD,GAAG4+nB,EAAE7okB,KAAKpG,EAAE3vD,EAAE,EAAEwuM,GAAG1nJ,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK+0D,SAAS,OAAO/0D,KAAKnhE,MAAMmhE,KAAK0iD,IAAIj9G,GAAG,EAAE,EAAE0pB,EAAE1pB,GAAG65T,QAAG,IAASlqQ,EAAE,4BAA4BA,EAAE4K,IAAI,EAAEyrW,GAAGl/W,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,GAAG/0D,KAAKnhE,KAAK,CAAC,EAAE4sa,GAAGl/W,UAAUokJ,OAAO,SAASlrM,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAE2lnB,GAAG1/kB,EAAE3vD,GAAG,QAAQ0pB,EAAE,KAAKA,GAAGimC,EAAEz9D,OAAO,EAAEy9D,EAAExS,MAAMq0Q,EAAEz7P,KAAKpG,EAAEjmC,EAAE,KAAK6wC,KAAKnhE,MAAK,EAAG,EAAE4sa,GAAGl/W,UAAUmU,IAAI,SAASj7D,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAE2lnB,GAAG1/kB,EAAE3vD,GAAG,OAAO0pB,EAAE,OAAE,EAAOimC,EAAEjmC,GAAG,EAAE,EAAEs8Y,GAAGl/W,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOqvoB,GAAG90kB,KAAK+0D,SAAStvH,IAAI,CAAC,EAAEgma,GAAGl/W,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK+0D,SAASnhE,EAAEkhlB,GAAG3lnB,EAAE1pB,GAAG,OAAOmuD,EAAE,KAAKoM,KAAKnhE,KAAKswB,EAAEp0B,KAAK,CAAC0K,EAAE2vD,KAAKjmC,EAAEykC,GAAG,GAAGwB,EAAE4K,IAAI,EAAE20kB,GAAGpolB,UAAUgjB,MAAM,WAAWvP,KAAKnhE,KAAK,EAAEmhE,KAAK+0D,SAAS,CAACsuB,KAAK,IAAI4wD,GAAG16M,IAAI,IAAIm9B,GAAG+0Y,IAAInmZ,OAAO,IAAI2uL,GAAG,EAAE0gc,GAAGpolB,UAAUokJ,OAAO,SAASlrM,GAAG,IAAI2vD,EAAE+/kB,GAAGn1kB,KAAKv6D,GAAGkrM,OAAOlrM,GAAG,OAAOu6D,KAAKnhE,MAAMu2D,EAAE,EAAE,EAAEA,CAAC,EAAEu/kB,GAAGpolB,UAAUmU,IAAI,SAASj7D,GAAG,OAAO0voB,GAAGn1kB,KAAKv6D,GAAGi7D,IAAIj7D,EAAE,EAAEkvoB,GAAGpolB,UAAUm2D,IAAI,SAASj9G,GAAG,OAAO0voB,GAAGn1kB,KAAKv6D,GAAGi9G,IAAIj9G,EAAE,EAAEkvoB,GAAGpolB,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAEgmnB,GAAGn1kB,KAAKv6D,GAAGmuD,EAAEzkC,EAAEtwB,KAAK,OAAOswB,EAAE25C,IAAIrjE,EAAE2vD,GAAG4K,KAAKnhE,MAAMswB,EAAEtwB,MAAM+0D,EAAE,EAAE,EAAEoM,IAAI,EAAE40kB,GAAGrolB,UAAUoL,IAAIi9kB,GAAGrolB,UAAUxxD,KAAK,SAAS0K,GAAG,OAAOu6D,KAAK+0D,SAASjsD,IAAIrjE,EAAE,6BAA6Bu6D,IAAI,EAAE40kB,GAAGrolB,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOu6D,KAAK+0D,SAASrS,IAAIj9G,EAAE,EAAEovoB,GAAGtolB,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,IAAI02S,GAAGzrW,KAAKnhE,KAAK,CAAC,EAAEg2oB,GAAGtolB,UAAUokJ,OAAO,SAASlrM,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAEimC,EAAEu7I,OAAOlrM,GAAG,OAAOu6D,KAAKnhE,KAAKu2D,EAAEv2D,KAAKswB,CAAC,EAAE0lnB,GAAGtolB,UAAUmU,IAAI,SAASj7D,GAAG,OAAOu6D,KAAK+0D,SAASr0D,IAAIj7D,EAAE,EAAEovoB,GAAGtolB,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOu6D,KAAK+0D,SAASrS,IAAIj9G,EAAE,EAAEovoB,GAAGtolB,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK+0D,SAAS,GAAG5lG,aAAas8Y,GAAG,CAAC,IAAI73W,EAAEzkC,EAAE4lG,SAAS,IAAIr+F,GAAGk9B,EAAEj8D,OAAO,IAAI,OAAOi8D,EAAE74D,KAAK,CAAC0K,EAAE2vD,IAAI4K,KAAKnhE,OAAOswB,EAAEtwB,KAAKmhE,KAAK7wC,EAAE6wC,KAAK+0D,SAAS,IAAI4/gB,GAAG/glB,EAAE,CAAC,OAAOzkC,EAAE25C,IAAIrjE,EAAE2vD,GAAG4K,KAAKnhE,KAAKswB,EAAEtwB,KAAKmhE,IAAI,EAAE,IAAIq1kB,GAAGrwjB,EAAE,SAASv/E,GAAG,OAAO,MAAMA,EAAE,IAAIA,EAAEuU,OAAOvU,GAAG,SAASA,EAAE2vD,GAAG,IAAI,IAAIjmC,GAAG,EAAEykC,EAAE,MAAMnuD,EAAE,EAAEA,EAAE9N,OAAOo/E,EAAE,EAAEr/E,EAAE,KAAKy3B,EAAEykC,GAAG,CAAC,IAAIt9D,EAAEmP,EAAE0pB,GAAGimC,EAAE9+D,KAASoB,EAAEq/E,KAAKzgF,EAAE,CAAC,OAAOoB,CAAC,CAAzG,CAA2GstF,EAAEv/E,IAAI,SAAS2vD,GAAG,OAAOiqQ,EAAE7jQ,KAAK/1D,EAAE2vD,EAAE,IAAI,EAAE,WAAW,MAAM,EAAE,EAAEkglB,GAAG/7O,GAAG,SAASg8O,GAAG9voB,EAAE2vD,GAAG,SAASA,EAAE,MAAMA,EAAE,iBAAiBA,KAAK,iBAAiB3vD,GAAGu3D,EAAE5pD,KAAK3N,KAAKA,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE2vD,CAAC,CAAC,SAAS67I,GAAGxrM,GAAG,GAAG,MAAMA,EAAE,CAAC,IAAI,OAAO+5T,EAAEhkQ,KAAK/1D,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS+voB,GAAG/voB,EAAE2vD,GAAG,OAAO3vD,IAAI2vD,GAAG3vD,GAAGA,GAAG2vD,GAAGA,CAAC,EAAEu6T,GAAG,qBAAqB2lR,GAAG,IAAI3lR,EAAE,IAAIzgU,YAAY,MAAMx4B,GAAG4+mB,GAAG,IAAI5+mB,IAAIqgD,GAAGqtD,GAAG,oBAAoBkxgB,GAAGlxgB,EAAEjuF,YAAY88U,GAAGqiR,GAAG,IAAIriR,IAAI38X,GAAGsO,GAAG,oBAAoB0woB,GAAG,IAAI1woB,MAAM0woB,GAAG,SAAS7voB,GAAG,IAAI2vD,EAAEmkW,GAAG9zZ,GAAG0pB,EAAEimC,GAAG19D,EAAE+N,EAAE+mD,iBAAY,EAAOoH,EAAEzkC,EAAE8hL,GAAG9hL,GAAG,GAAG,GAAGykC,EAAE,OAAOA,GAAG,KAAKirQ,EAAE,MAAM,oBAAoB,KAAKgpG,EAAE,OAAO9wV,EAAE,KAAK6nP,EAAE,MAAM,mBAAmB,KAAK81U,EAAE,OAAOp+oB,EAAE,KAAKyoU,EAAE,MAAM,mBAAmB,OAAO3pQ,CAAC,GAAG,IAAIqglB,GAAGV,GAAG,WAAW,OAAO5rkB,SAAS,CAA3B,IAAgC4rkB,GAAG,SAAStvoB,GAAG,OAAOswoB,GAAGtwoB,IAAI4+nB,EAAE7okB,KAAK/1D,EAAE,YAAY45T,EAAE7jQ,KAAK/1D,EAAE,SAAS,EAAEiwoB,GAAGrmlB,MAAMC,QAAYqmlB,GAAGpL,GAAG,WAAW,OAAM,CAAE,EAAE,SAASqL,GAAGnwoB,GAAG,IAAIqwoB,GAAGrwoB,GAAG,OAAM,EAAG,IAAI2vD,EAAEmkW,GAAG9zZ,GAAG,MAAM,qBAAqB2vD,GAAG,8BAA8BA,GAAG,0BAA0BA,GAAG,kBAAkBA,CAAC,CAAC,SAASyglB,GAAGpwoB,GAAG,MAAM,iBAAiBA,GAAGA,GAAG,GAAGA,EAAE,GAAG,GAAGA,GAAG,gBAAgB,CAAC,SAASqwoB,GAAGrwoB,GAAG,IAAI2vD,EAAEmrjB,SAAS96mB,GAAG,OAAO,MAAMA,IAAI,UAAU2vD,GAAG,YAAYA,EAAE,CAAC,SAAS2glB,GAAGtwoB,GAAG,OAAO,MAAMA,GAAG,UAAU86mB,SAAS96mB,EAAE,CAAC,IAAIuwoB,GAAG9jlB,EAAE,SAASzsD,GAAG,OAAO,SAAS2vD,GAAG,OAAO3vD,EAAE2vD,EAAE,CAAC,CAA3C,CAA6ClD,GAAG,SAASzsD,GAAG,OAAOswoB,GAAGtwoB,IAAIowoB,GAAGpwoB,EAAE9N,WAAWie,EAAE2jZ,GAAG9zZ,GAAG,EAAE,SAASwwoB,GAAGxwoB,GAAG,OAAO,OAAO2vD,EAAE3vD,IAAIowoB,GAAGzglB,EAAEz9D,UAAUi+oB,GAAGxglB,GAAlrO,SAAY3vD,EAAE2vD,GAAG,IAAIjmC,EAAEumnB,GAAGjwoB,GAAGmuD,GAAGzkC,GAAGsmnB,GAAGhwoB,GAAGsxE,GAAG5nD,IAAIykC,GAAG+hlB,GAAGlwoB,GAAG/N,GAAGy3B,IAAIykC,IAAImjB,GAAGi/jB,GAAGvwoB,GAAGnP,EAAE64B,GAAGykC,GAAGmjB,GAAGr/E,EAAEymE,EAAE7nE,EAAE,SAASmP,EAAE2vD,GAAG,IAAI,IAAIjmC,GAAG,EAAEykC,EAAEvE,MAAM5pD,KAAK0pB,EAAE1pB,GAAGmuD,EAAEzkC,GAAGimC,EAAEjmC,GAAG,OAAOykC,CAAC,CAA/D,CAAiEnuD,EAAE9N,OAAOwwB,QAAQ,GAAG60C,EAAEmB,EAAExmE,OAAO,IAAI,IAAIie,KAAKnQ,GAAG2vD,IAAIivkB,EAAE7okB,KAAK/1D,EAAEmQ,IAAItf,IAAI,UAAUsf,GAAGmhE,IAAI,UAAUnhE,GAAG,UAAUA,IAAIle,IAAI,UAAUke,GAAG,cAAcA,GAAG,cAAcA,IAAI2/nB,GAAG3/nB,EAAEonD,KAAKmB,EAAEpjE,KAAK6a,GAAG,OAAOuoD,CAAC,CAAs1N0gW,CAAGp5Z,GAArmJ,SAAYA,GAAG,GAAG0pB,GAAGimC,EAAE3vD,IAAI2vD,EAAE5I,YAAmD4I,KAArC,mBAAmBjmC,GAAGA,EAAEo9B,WAAWuyQ,GAAQ,OAAOhiG,EAAEr3N,GAAG,IAAI2vD,EAAEjmC,EAAI4nD,EAAE,GAAG,IAAI,IAAIr/E,KAAKsiB,OAAOvU,GAAG4+nB,EAAE7okB,KAAK/1D,EAAE/N,IAAI,eAAeA,GAAGq/E,EAAEh8E,KAAKrD,GAAG,OAAOq/E,CAAC,CAA+6I4iV,CAAGl0Z,GAAG,IAAI2vD,CAAC,CAACA,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,OAAO4/kB,GAAGvvoB,EAAE2vD,EAAE,CAAE,GAAEoG,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAI0pB,EAAE,UAAUoxlB,SAAS96mB,IAAIA,GAAGA,EAAEuU,SAASA,QAAQvU,EAAEmuD,EAAE,WAAW,oBAAoB1H,KAAK,YAAYq0jB,SAASr0jB,QAAQA,MAAMA,KAAKlyC,SAASA,QAAQkyC,KAAK6qB,EAAE5nD,GAAGykC,GAAGgiE,SAAS,cAATA,GAA0Bl+H,EAAEsiB,OAAOuyC,UAAUj2D,EAAEoB,EAAEo4H,eAAe3xD,EAAEzmE,EAAEhG,SAASsrE,EAAE+Z,EAAE8+C,OAAOjgH,EAAEonD,EAAEA,EAAEi5D,iBAAY,EAAsQ7gE,EAAE8jE,QAAQ,SAASzzH,GAAG,IAAI,SAASA,GAAG,IAAI2vD,EAAEmrjB,SAAS96mB,GAAG,OAAO,MAAMA,IAAI,UAAU2vD,GAAG,YAAYA,EAAE,CAA1E,CAA4E3vD,GAAG,OAAM,EAAG,IAAI2vD,EAArX,SAAW3vD,GAAG,OAAO,MAAMA,OAAE,IAASA,EAAE,qBAAqB,gBAAgBmQ,GAAGA,KAAKoE,OAAOvU,GAAG,SAASA,GAAG,IAAI2vD,EAAE9+D,EAAEklE,KAAK/1D,EAAEmQ,GAAGuZ,EAAE1pB,EAAEmQ,GAAG,IAAInQ,EAAEmQ,QAAG,EAAO,IAAIg+C,GAAE,CAAE,CAAC,MAAMnuD,GAAG,CAAC,IAAIsxE,EAAE5Y,EAAE3C,KAAK/1D,GAA6B,OAA1BmuD,IAAIwB,EAAE3vD,EAAEmQ,GAAGuZ,SAAS1pB,EAAEmQ,IAAWmhE,CAAC,CAA1H,CAA4HtxE,GAAG,SAASA,GAAG,OAAO04D,EAAE3C,KAAK/1D,EAAE,CAA5B,CAA8BA,EAAE,CAAyH+/D,CAAE//D,GAAG,MAAM,qBAAqB2vD,GAAG,8BAA8BA,GAAG,0BAA0BA,GAAG,kBAAkBA,CAAC,CAAE,GAAEoG,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,SAASzzH,GAAG,OAAO,MAAMA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,SAASzzH,GAAG,YAAO,IAASA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAI0pB,EAAE,8BAA8BykC,EAAE,UAAU2sjB,SAAS96mB,IAAIA,GAAGA,EAAEuU,SAASA,QAAQvU,EAAEsxE,EAAE,WAAW,oBAAoB7qB,KAAK,YAAYq0jB,SAASr0jB,QAAQA,MAAMA,KAAKlyC,SAASA,QAAQkyC,KAAKx0D,EAAEk8D,GAAGmjB,GAAG6+C,SAAS,cAATA,GAA0B,SAASt/H,EAAEmP,EAAE2vD,GAAG,SAAS3vD,IAAEA,EAAE9N,SAAW,SAAS8N,EAAE2vD,GAAK,GAAGA,GAAGA,EAAE,OAAO,SAAS3vD,EAAE2vD,GAAmC,IAA5B,IAAI2hB,EAAEtxE,EAAE9N,OAAOD,GAAEy3B,IAAwBz3B,EAAEq/E,GAAG,GAAG3hB,EAAE3vD,EAAE/N,GAAGA,EAAE+N,GAAG,OAAO/N,EAAE,OAAO,CAAC,CAAhG,CAAkG+N,EAAEu3D,GAA0B,IAArB,IAAIpJ,GAAEzkC,EAAI4nD,EAAEtxE,EAAE9N,SAAci8D,EAAEmjB,GAAG,GAAGtxE,EAAEmuD,KAAKwB,EAAE,OAAOxB,EAAE,OAAO,CAAC,CAAtM,CAAwMnuD,EAAE2vD,IAAM,CAAC,CAAqF,SAAS4H,EAAEv3D,GAAG,OAAOA,GAAGA,CAAC,CAAC,SAASmQ,EAAEnQ,EAAE2vD,GAAG,OAAO3vD,EAAEi9G,IAAIttD,EAAE,CAAC,SAASoQ,EAAE//D,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAEkgC,MAAM5pD,EAAE5G,MAAM,OAAO4G,EAAE6xB,SAAS,SAAS7xB,GAAG0pB,IAAIimC,GAAG3vD,CAAC,IAAI0pB,CAAC,CAAC,IAAI6jC,EAAEwP,EAAEnT,MAAM9C,UAAUqQ,EAAEg5D,SAASrpE,UAAUwH,EAAE/5C,OAAOuyC,UAAU/iB,EAAE9xC,EAAE,sBAAsB64E,GAAGvd,EAAE,SAAS4H,KAAKpxB,GAAGA,EAAE8O,MAAM9O,EAAE8O,KAAKq+E,UAAU,KAAK,iBAAiB3jE,EAAE,GAAGz8D,EAAEqmE,EAAElrE,SAASwgE,EAAE6B,EAAE+7D,eAAehtD,EAAE/O,EAAEriE,SAASutU,EAAEz7P,OAAO,IAAIjtE,EAAEilE,KAAKtJ,GAAG3sC,QAAQ,sBAAsB,QAAQA,QAAQ,yDAAyD,SAAS,KAAK8wE,EAAE7zB,EAAEtrE,OAAO0lM,EAAEoiI,EAAEtnU,EAAE,OAAOrB,EAAE2oU,EAAEtnU,EAAE,OAAO6nU,EAAEP,EAAEhlT,OAAO,UAAU,SAAS81P,EAAErqQ,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASwrQ,EAAE35T,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASkrQ,EAAEr5T,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAKuP,UAAUna,EAAEjmC,GAAG,CAAC,IAAIykC,EAAEnuD,EAAE2vD,GAAG4K,KAAK8I,IAAIlV,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASxV,EAAE34C,GAAG,IAAI2vD,GAAG,EAAEjmC,EAAE1pB,EAAEA,EAAE9N,OAAO,EAAE,IAAIqoE,KAAK+0D,SAAS,IAAI+pM,IAAI1pQ,EAAEjmC,GAAG6wC,KAAKrI,IAAIlyD,EAAE2vD,GAAG,CAAC,SAASoqQ,EAAE/5T,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAEykC,EAAEmjB,EAAEtxE,EAAE9N,OAAOo/E,KAAK,IAAI5nD,EAAE1pB,EAAEsxE,GAAG,OAAOnjB,EAAEwB,IAAIjmC,GAAGA,GAAGykC,GAAGA,EAAE,OAAOmjB,EAAE,OAAO,CAAC,CAAC,SAASstjB,EAAE5+nB,GAAG,SAASy5T,EAAEz5T,KAAK2vD,EAAE3vD,EAAE8qE,GAAGA,KAAKnb,MAAM,SAAS3vD,GAAG,IAAI2vD,EAAE8pQ,EAAEz5T,GAAGq9D,EAAEtH,KAAK/1D,GAAG,GAAG,MAAM,qBAAqB2vD,GAAG,8BAA8BA,CAAC,CAAjG,CAAmG3vD,IAAI,SAASA,GAAG,IAAI2vD,GAAE,EAAG,GAAG,MAAM3vD,GAAG,mBAAmBA,EAAE/T,SAAS,IAAI0jE,KAAK3vD,EAAE,GAAG,CAAC,MAAMA,GAAG,CAAC,OAAO2vD,CAAC,CAAhG,CAAkG3vD,GAAGw5T,EAAE9vS,GAAG/b,KAAK,SAAS3N,GAAG,GAAG,MAAMA,EAAE,CAAC,IAAI,OAAOlP,EAAEilE,KAAK/1D,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,CAAC,CAAC,MAAM,EAAE,CAA1F,CAA4FA,IAAI,IAAI2vD,CAAC,CAAC06M,EAAEvjN,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAASwqM,EAAEA,EAAE,MAAM,CAAC,CAAC,EAAEzvD,EAAEvjN,UAAUokJ,OAAO,SAASlrM,GAAG,OAAOu6D,KAAK0iD,IAAIj9G,WAAWu6D,KAAK+0D,SAAStvH,EAAE,EAAEqqQ,EAAEvjN,UAAUmU,IAAI,SAASj7D,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,GAAGwqM,EAAE,CAAC,IAAIpwS,EAAEimC,EAAE3vD,GAAG,MAAM,8BAA8B0pB,OAAE,EAAOA,CAAC,CAAC,OAAO+iC,EAAEsJ,KAAKpG,EAAE3vD,GAAG2vD,EAAE3vD,QAAG,CAAM,EAAEqqQ,EAAEvjN,UAAUm2D,IAAI,SAASj9G,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS,OAAOwqM,OAAE,IAASnqQ,EAAE3vD,GAAGysD,EAAEsJ,KAAKpG,EAAE3vD,EAAE,EAAEqqQ,EAAEvjN,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,OAAO4K,KAAK+0D,SAAStvH,GAAG85T,QAAG,IAASnqQ,EAAE,4BAA4BA,EAAE4K,IAAI,EAAEo/P,EAAE7yQ,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,EAAE,EAAEqqM,EAAE7yQ,UAAUokJ,OAAO,SAASlrM,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAEqwS,EAAEpqQ,EAAE3vD,GAAG,QAAQ0pB,EAAE,KAAKA,GAAGimC,EAAEz9D,OAAO,EAAEy9D,EAAExS,MAAMyzC,EAAE76B,KAAKpG,EAAEjmC,EAAE,IAAG,EAAG,EAAEiwS,EAAE7yQ,UAAUmU,IAAI,SAASj7D,GAAG,IAAI2vD,EAAE4K,KAAK+0D,SAAS5lG,EAAEqwS,EAAEpqQ,EAAE3vD,GAAG,OAAO0pB,EAAE,OAAE,EAAOimC,EAAEjmC,GAAG,EAAE,EAAEiwS,EAAE7yQ,UAAUm2D,IAAI,SAASj9G,GAAG,OAAO+5T,EAAEx/P,KAAK+0D,SAAStvH,IAAI,CAAC,EAAE25T,EAAE7yQ,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK+0D,SAASnhE,EAAE4rQ,EAAErwS,EAAE1pB,GAAG,OAAOmuD,EAAE,EAAEzkC,EAAEp0B,KAAK,CAAC0K,EAAE2vD,IAAIjmC,EAAEykC,GAAG,GAAGwB,EAAE4K,IAAI,EAAE8+P,EAAEvyQ,UAAUgjB,MAAM,WAAWvP,KAAK+0D,SAAS,CAACsuB,KAAK,IAAIysH,EAAEv2Q,IAAI,IAAIqjM,GAAGwiI,GAAG95S,OAAO,IAAIwqP,EAAE,EAAEgvD,EAAEvyQ,UAAUokJ,OAAO,SAASlrM,GAAG,OAAO6+nB,EAAEtkkB,KAAKv6D,GAAGkrM,OAAOlrM,EAAE,EAAEq5T,EAAEvyQ,UAAUmU,IAAI,SAASj7D,GAAG,OAAO6+nB,EAAEtkkB,KAAKv6D,GAAGi7D,IAAIj7D,EAAE,EAAEq5T,EAAEvyQ,UAAUm2D,IAAI,SAASj9G,GAAG,OAAO6+nB,EAAEtkkB,KAAKv6D,GAAGi9G,IAAIj9G,EAAE,EAAEq5T,EAAEvyQ,UAAUuc,IAAI,SAASrjE,EAAE2vD,GAAG,OAAOkvkB,EAAEtkkB,KAAKv6D,GAAGqjE,IAAIrjE,EAAE2vD,GAAG4K,IAAI,EAAE5hB,EAAEmO,UAAUoL,IAAIvZ,EAAEmO,UAAUxxD,KAAK,SAAS0K,GAAG,OAAOu6D,KAAK+0D,SAASjsD,IAAIrjE,EAAE,6BAA6Bu6D,IAAI,EAAE5hB,EAAEmO,UAAUm2D,IAAI,SAASj9G,GAAG,OAAOu6D,KAAK+0D,SAASrS,IAAIj9G,EAAE,EAAE,IAAIwjW,EAAE5yW,GAAG,EAAEmvE,EAAE,IAAInvE,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,SAASoP,GAAG,OAAO,IAAIpP,EAAEoP,EAAE,EAAE,WAAW,EAAE,SAAS6+nB,EAAE7+nB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEtxE,EAAEsvH,SAAS,OAAO,WAAWnhE,EAAE2sjB,SAASpxlB,EAAEimC,KAAK,UAAUxB,GAAG,UAAUA,GAAG,WAAWA,EAAE,cAAczkC,EAAE,OAAOA,GAAG4nD,EAAE,iBAAiB3hB,EAAE,SAAS,QAAQ2hB,EAAEx9E,GAAG,CAAC,SAASylU,EAAEv5T,EAAE2vD,GAAG,IAAIjmC,EAAE,SAAS1pB,EAAE2vD,GAAG,OAAO,MAAM3vD,OAAE,EAAOA,EAAE2vD,EAAE,CAAxC,CAA0C3vD,EAAE2vD,GAAG,OAAOivkB,EAAEl1mB,GAAGA,OAAE,CAAM,CAAC,SAAS+vS,EAAEz5T,GAAG,IAAI2vD,EAAEmrjB,SAAS96mB,GAAG,QAAQA,IAAI,UAAU2vD,GAAG,YAAYA,EAAE,CAACA,EAAE8jE,QAAQ,SAASzzH,GAAG,OAAOA,GAAGA,EAAE9N,OAAO,SAAS8N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,GAAG,EAAEmjB,EAAEzgF,EAAEoB,EAAE+N,EAAE9N,OAAOqlE,GAAE,EAAGhK,EAAE,GAAGwP,EAAExP,EAAqB,GAAGt7D,GAAG,IAAI,CAAC,IAAIklE,EAASqsS,EAAExjW,GAAG,GAAGm3D,EAAE,OAAO4I,EAAE5I,GAAGI,GAAE,EAAG+Z,EAAEnhE,EAAE4sD,EAAE,IAAIpkB,CAAC,MAAMokB,EAAOxP,EAAEvtD,EAAE,OAAOmuD,EAAEl8D,GAAG,CAAC,IAAIq8D,EAAEtuD,EAAEmuD,GAAGpqB,EAASuqB,EAAE,GAAGA,EAAK,IAAIA,EAAEA,EAAE,EAAEiJ,GAAGxzB,GAAGA,EAAE,CAAC,IAAI,IAAI+mC,EAAE/N,EAAE7qE,OAAO44E,KAAK,GAAG/N,EAAE+N,KAAK/mC,EAAE,SAAS/jC,EAAeutD,EAAEj4D,KAAKg5D,EAAE,MAAMgjB,EAAEvU,EAAEh5B,EAAEra,KAAKqzC,IAAIxP,GAAGwP,EAAEznE,KAAKyuC,GAAGwpB,EAAEj4D,KAAKg5D,GAAG,CAAC,OAAOf,CAAC,CAAhV,CAAkVvtD,GAAG,EAAE,CAAE,GAAE+1D,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,eAAe4zH,OAAO/iI,EAAE,IAAI+4D,MAAM,IAAI,SAAS8O,IAAI4Y,EAAEvb,KAAKwE,KAAK,IAAIA,KAAK+xD,GAAG,WAAW/xD,KAAK6kE,GAAG,WAAW7kE,KAAK+wI,GAAG,WAAW/wI,KAAKgxI,GAAG,SAAS,CAAC,SAASh0I,EAAEv3D,EAAE2vD,GAAG,OAAO3vD,GAAG2vD,EAAE3vD,IAAI,GAAG2vD,CAAC,CAAC,SAASx/C,EAAEnQ,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,GAAG,OAAO0mE,EAAEv3D,GAAG2vD,EAAEjmC,GAAGimC,EAAExB,GAAGmjB,EAAEr/E,EAAE,EAAEpB,GAAG8+D,EAAE,CAAC,CAAC,SAASoQ,EAAE//D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,GAAG,OAAO0mE,EAAEv3D,GAAG2vD,EAAExB,EAAEzkC,GAAGykC,GAAGmjB,EAAEr/E,EAAE,EAAEpB,GAAG8+D,EAAE,CAAC,CAAC,SAASpC,EAAEvtD,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,GAAG,OAAO0mE,EAAEv3D,GAAG2vD,EAAEjmC,EAAEykC,GAAGmjB,EAAEr/E,EAAE,EAAEpB,GAAG8+D,EAAE,CAAC,CAAC,SAASoN,EAAE/8D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,GAAG,OAAO0mE,EAAEv3D,GAAG0pB,GAAGimC,GAAGxB,IAAImjB,EAAEr/E,EAAE,EAAEpB,GAAG8+D,EAAE,CAAC,CAACxB,EAAEuK,EAAE4Y,GAAG5Y,EAAE5R,UAAUi4gB,QAAQ,WAAW,IAAI,IAAI/+jB,EAAEnP,EAAE8+D,EAAE,EAAEA,EAAE,KAAKA,EAAE3vD,EAAE2vD,GAAG4K,KAAKukmB,OAAO7f,YAAY,EAAEtvlB,GAAG,IAAIjmC,EAAE6wC,KAAK+xD,GAAGn+D,EAAEoM,KAAK6kE,GAAG9tD,EAAE/W,KAAK+wI,GAAGr5M,EAAEsoE,KAAKgxI,GAAG7hL,EAAEvZ,EAAEuZ,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAEke,EAAEle,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAEnhE,EAAEmhE,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,UAAU,IAAImuD,EAAEh+C,EAAEg+C,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEvZ,EAAEuZ,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAEke,EAAEle,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAEnhE,EAAEmhE,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,WAAW,IAAImuD,EAAEh+C,EAAEg+C,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEvZ,EAAEuZ,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAEke,EAAEle,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAEnhE,EAAEmhE,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,WAAW,IAAImuD,EAAEh+C,EAAEg+C,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,IAAI,WAAW,IAAI0pB,EAAEvZ,EAAEuZ,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,IAAI,WAAW,GAAG/N,EAAEke,EAAEle,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,IAAI,WAAW,IAAIsxE,EAAEnhE,EAAEmhE,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,WAAW,IAAI0pB,EAAEq2C,EAAEr2C,EAAEykC,EAAEh+C,EAAEg+C,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,IAAI,WAAW,IAAIsxE,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAE8tE,EAAE9tE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,GAAGsxE,EAAEvR,EAAEuR,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,UAAU,IAAImuD,EAAE4R,EAAE5R,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEq2C,EAAEr2C,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAE8tE,EAAE9tE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,IAAI,SAAS,GAAGsxE,EAAEvR,EAAEuR,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,WAAW,IAAImuD,EAAE4R,EAAE5R,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEq2C,EAAEr2C,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,UAAU,GAAG/N,EAAE8tE,EAAE9tE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,IAAI,WAAW,GAAGsxE,EAAEvR,EAAEuR,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,WAAW,IAAImuD,EAAE4R,EAAE5R,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEq2C,EAAEr2C,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,IAAI,WAAW,GAAG/N,EAAE8tE,EAAE9tE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,GAAGsxE,EAAEvR,EAAEuR,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,WAAW,IAAI0pB,EAAE6jC,EAAE7jC,EAAEykC,EAAE4R,EAAE5R,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,IAAI,WAAW,IAAIsxE,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAEs7D,EAAEt7D,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAE/jB,EAAE+jB,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,WAAW,IAAImuD,EAAEZ,EAAEY,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,IAAI,WAAW,IAAI0pB,EAAE6jC,EAAE7jC,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAEs7D,EAAEt7D,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAE/jB,EAAE+jB,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,WAAW,IAAImuD,EAAEZ,EAAEY,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,IAAI,WAAW,IAAI0pB,EAAE6jC,EAAE7jC,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,IAAI,UAAU,GAAG/N,EAAEs7D,EAAEt7D,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAE/jB,EAAE+jB,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,WAAW,IAAImuD,EAAEZ,EAAEY,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,SAAS,IAAI0pB,EAAE6jC,EAAE7jC,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAEs7D,EAAEt7D,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,IAAI,WAAW,IAAIsxE,EAAE/jB,EAAE+jB,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,UAAU,IAAI0pB,EAAEqzC,EAAErzC,EAAEykC,EAAEZ,EAAEY,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAIsxE,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAE8qE,EAAE9qE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAEvU,EAAEuU,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,WAAW,IAAImuD,EAAE4O,EAAE5O,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEqzC,EAAErzC,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,IAAI,WAAW,GAAG/N,EAAE8qE,EAAE9qE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,GAAG,WAAW,IAAIsxE,EAAEvU,EAAEuU,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,IAAI,WAAW,IAAImuD,EAAE4O,EAAE5O,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAI0pB,EAAEqzC,EAAErzC,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAE8qE,EAAE9qE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,IAAI,WAAW,IAAIsxE,EAAEvU,EAAEuU,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,WAAW,IAAImuD,EAAE4O,EAAE5O,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,IAAI,WAAW,IAAI0pB,EAAEqzC,EAAErzC,EAAEykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,GAAG,WAAW,GAAG/N,EAAE8qE,EAAE9qE,EAAEy3B,EAAEykC,EAAEmjB,EAAEtxE,EAAE,IAAI,WAAW,IAAIsxE,EAAEvU,EAAEuU,EAAEr/E,EAAEy3B,EAAEykC,EAAEnuD,EAAE,GAAG,UAAU,IAAImuD,EAAE4O,EAAE5O,EAAEmjB,EAAEr/E,EAAEy3B,EAAE1pB,EAAE,GAAG,WAAW,IAAIu6D,KAAK+xD,GAAG/xD,KAAK+xD,GAAG5iG,EAAE,EAAE6wC,KAAK6kE,GAAG7kE,KAAK6kE,GAAGjxE,EAAE,EAAEoM,KAAK+wI,GAAG/wI,KAAK+wI,GAAGh6H,EAAE,EAAE/W,KAAKgxI,GAAGhxI,KAAKgxI,GAAGt5M,EAAE,CAAC,EAAEymE,EAAE5R,UAAUq4mB,QAAQ,WAAW5kmB,KAAKukmB,OAAOvkmB,KAAKykmB,gBAAgB,IAAIzkmB,KAAKykmB,aAAa,KAAKzkmB,KAAKukmB,OAAOp6kB,KAAK,EAAEnqB,KAAKykmB,aAAa,IAAIzkmB,KAAKwkgB,UAAUxkgB,KAAKykmB,aAAa,GAAGzkmB,KAAKukmB,OAAOp6kB,KAAK,EAAEnqB,KAAKykmB,aAAa,IAAIzkmB,KAAKukmB,OAAOlzC,cAAcrxjB,KAAK0kmB,QAAQ,GAAG,IAAI1kmB,KAAKukmB,OAAOlzC,cAAcrxjB,KAAK0kmB,QAAQ,GAAG,IAAI1kmB,KAAKwkgB,UAAU,IAAI/+jB,EAAE/N,EAAE4hI,YAAY,IAAI,OAAO7zH,EAAE8/oB,aAAavllB,KAAK+xD,GAAG,GAAGtsH,EAAE8/oB,aAAavllB,KAAK6kE,GAAG,GAAGp/H,EAAE8/oB,aAAavllB,KAAK+wI,GAAG,GAAGtrM,EAAE8/oB,aAAavllB,KAAKgxI,GAAG,IAAIvrM,CAAC,EAAE2vD,EAAE8jE,QAAQ/6D,CAAC,EAAE,CAAC,YAAY,IAAIkrf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,SAASsxE,EAAEtxE,EAAE,WAAW,SAAS/N,EAAE+N,GAAGu6D,KAAK47kB,KAAKn2oB,GAAG,IAAIsxE,EAAE8kkB,IAAI,CAACzmlB,EAAE8jE,QAAQxhI,EAAEA,EAAEuvB,OAAO,SAASxhB,GAAG,OAAO,IAAI/N,EAAE+N,EAAE,EAAE/N,EAAE60D,UAAUunnB,WAAW,SAASruqB,GAAG,IAAI2vD,EAAE3vD,EAAEwtoB,YAAY9jnB,EAAE1+B,KAAKu9C,KAAKonB,EAAE,GAAG,GAAG,IAAI2hB,EAAE,IAAInjB,EAAEoM,KAAK47kB,KAAK1mY,SAAS/lP,UAAU4nD,EAAE+6jB,IAAIrsoB,IAAI,GAAG,OAAOsxE,CAAC,EAAEr/E,EAAE60D,UAAUwnnB,WAAW,SAAStuqB,EAAE2vD,GAAG,IAAIjmC,EAAEimC,EAAE2vJ,IAAIt/M,GAAG,OAAOA,EAAEkyD,IAAIqI,KAAK8zmB,WAAW3kpB,GAAG,EAAEz3B,EAAE60D,UAAUn5C,KAAK,SAAS3N,EAAE2vD,EAAEjmC,GAAG,IAAI4nD,EAAEtxE,EAAEwtoB,YAAYv7oB,EAAEk8D,EAAE+nlB,KAAKl2oB,GAAGnP,EAAE,IAAIs9D,EAAE,GAAG4llB,MAAM9hpB,GAAG09D,IAAIA,EAAE3kE,KAAKmuB,IAAI,EAAEm4D,EAAE,GAAG,IAAI,IAAI,IAAI5Y,EAAE14D,EAAEsyoB,KAAK,GAAG/6kB,EAAE,GAAGmB,EAAEo1kB,MAAMv2kB,GAAGA,KAAK,IAAI,IAAIpnD,EAAEnQ,EAAEgyoB,KAAKz6kB,GAAGwI,EAAErH,EAAEq7kB,MAAM9hpB,GAAG09D,EAAE,EAAEA,IAAI,CAAC,IAAIpC,EAAEgN,KAAK+zmB,WAAW,IAAIngnB,EAAE,GAAGuK,GAAGhvC,GAAGA,EAAE6jC,GAAG,IAAIwP,EAAExP,EAAEwmlB,MAAM9hpB,GAAGmjpB,OAAOjloB,GAAG,GAAG,IAAI4sD,EAAEsvkB,IAAIx7oB,IAAI,IAAIksE,EAAEsvkB,IAAItskB,GAAG,CAAC,IAAI,IAAI5I,EAAE,EAAEA,EAAEI,EAAEJ,IAAI,CAAC,GAAG,KAAK4F,EAAEA,EAAE+3kB,UAAUzI,IAAIx7oB,GAAG,OAAM,EAAG,GAAG,IAAIksE,EAAEsvkB,IAAItskB,GAAG,KAAK,CAAC,GAAG5I,IAAII,EAAE,OAAM,CAAE,CAAC,CAAC,OAAM,CAAE,EAAEtlE,EAAE60D,UAAUynnB,WAAW,SAASvuqB,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAEwtoB,YAAYl8jB,EAAEnjB,EAAE+nlB,KAAKl2oB,GAAG/N,EAAE,IAAIk8D,EAAE,GAAG4llB,MAAMzikB,GAAG3hB,IAAIA,EAAE3kE,KAAKmuB,IAAI,EAAEuQ,EAAE,GAAG,IAAI,IAAI,IAAI74B,EAAEmP,EAAEsyoB,KAAK,GAAG55kB,EAAE,GAAG7nE,EAAEi9oB,MAAMp1kB,GAAGA,KAAK,IAAI,IAAInB,EAAEv3D,EAAEgyoB,KAAKt5kB,GAAGvoD,EAAEtf,EAAEkjpB,MAAMzikB,GAAG3hB,EAAE,EAAEA,IAAI,CAAC,IAAIoQ,EAAExF,KAAK+zmB,WAAW,IAAIngnB,EAAE,GAAGt9D,GAAG08D,EAAEvtD,EAAEizoB,IAAIlzkB,GAAG,GAAG,IAAIxS,EAAE4llB,KAAK,GAAG,OAAO5llB,EAAE,IAAIwP,EAAEgD,EAAEg0kB,MAAMzikB,GAAG8jkB,OAAO79kB,GAAG,GAAG,IAAIwF,EAAEsvkB,IAAIp6oB,IAAI,IAAI8qE,EAAEsvkB,IAAIl8nB,GAAG,CAAC,IAAI,IAAIgnD,EAAE,EAAEA,EAAEuB,EAAEvB,IAAI,CAAC,GAAG,KAAK4F,EAAEA,EAAE+3kB,UAAUzI,IAAIp6oB,GAAG,OAAO8qE,EAAEm3kB,UAAU5B,KAAK,GAAGW,IAAIjzoB,GAAG,GAAG,IAAI+8D,EAAEsvkB,IAAIl8nB,GAAG,KAAK,CAAC,GAAGgnD,IAAIuB,EAAE,OAAOqE,EAAEA,EAAE+3kB,UAAUZ,UAAU5B,KAAK,GAAGW,IAAIjzoB,EAAE,CAAC,CAAC,OAAM,CAAE,CAAC,EAAE,CAAC,QAAQ,IAAImspB,QAAQ,MAAM,IAAI,CAAC,SAASnspB,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAI3vD,EAAE,MAAM,IAAIoO,MAAMuhD,GAAG,mBAAmB,CAACA,EAAE8jE,QAAQtlE,EAAEA,EAAEs6kB,MAAM,SAASzooB,EAAE2vD,EAAEjmC,GAAG,GAAG1pB,GAAG2vD,EAAE,MAAM,IAAIvhD,MAAMsb,GAAG,qBAAqB1pB,EAAE,OAAO2vD,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEzkC,EAAE,SAAS4nD,EAAEtxE,GAAG,OAAO,IAAIA,EAAE9N,OAAO,IAAI8N,EAAEA,CAAC,CAAC,SAAS/N,EAAE+N,GAAG,IAAI,IAAI2vD,EAAE,GAAGjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,OAAOw3B,IAAIimC,GAAG2hB,EAAEtxE,EAAE0pB,GAAGz9B,SAAS,KAAK,OAAO0jE,CAAC,CAACxB,EAAE5B,QAAQ,SAASvsD,EAAE2vD,GAAG,GAAG/F,MAAMC,QAAQ7pD,GAAG,OAAOA,EAAE0tD,QAAQ,IAAI1tD,EAAE,MAAM,GAAG,IAAI0pB,EAAE,GAAG,GAAG,iBAAiB1pB,EAAE,CAAC,IAAI,IAAImuD,EAAE,EAAEA,EAAEnuD,EAAE9N,OAAOi8D,IAAIzkC,EAAEykC,GAAG,EAAEnuD,EAAEmuD,GAAG,OAAOzkC,CAAC,CAAC,GAAG,QAAQimC,EAA2D,KAAvD3vD,EAAEA,EAAE8f,QAAQ,eAAe,KAAK5tB,OAAO,GAAG,IAAI8N,EAAE,IAAIA,GAAOmuD,EAAE,EAAEA,EAAEnuD,EAAE9N,OAAOi8D,GAAG,EAAEzkC,EAAEp0B,KAAKwZ,SAAS9O,EAAEmuD,GAAGnuD,EAAEmuD,EAAE,GAAG,UAAU,IAAIA,EAAE,EAAEA,EAAEnuD,EAAE9N,OAAOi8D,IAAI,CAAC,IAAImjB,EAAEtxE,EAAE+1I,WAAW5nF,GAAGl8D,EAAEq/E,GAAG,EAAEzgF,EAAE,IAAIygF,EAAEr/E,EAAEy3B,EAAEp0B,KAAKrD,EAAEpB,GAAG64B,EAAEp0B,KAAKzE,EAAE,CAAC,OAAO64B,CAAC,EAAEykC,EAAE2lmB,MAAMxilB,EAAEnjB,EAAEk0E,MAAMpwI,EAAEk8D,EAAEm3jB,OAAO,SAAStlnB,EAAE2vD,GAAG,MAAM,QAAQA,EAAE19D,EAAE+N,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,CAAC,GAAE,EAAGnuD,EAAE,sBAAsBwU,QAAQ25C,EAAEnuD,EAAE,iBAAiBA,EAAE,iBAAiBA,EAAE,yBAAyB2vD,EAAE8jE,QAAQtlE,CAAC,EAAE,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,qBAAqB,IAAI,uBAAuB,MAAM,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,kBAAkBsxE,EAAEtxE,EAAE,kBAAkB/N,EAAE+N,EAAE,mBAAmBnP,EAAEmP,EAAE,mBAAmB04D,EAAE14D,EAAE,kBAAkBu3D,EAAEhjD,OAAOuyC,UAAU76D,SAAS,SAASkkB,EAAEnQ,GAAG,KAAKu6D,gBAAgBpqD,GAAG,OAAO,IAAIA,EAAEnQ,GAAGu6D,KAAKl2C,QAAQitD,EAAE98D,OAAO,CAAC2wH,OAAO,EAAEsiD,OAAO,EAAE+mf,UAAU,MAAMC,WAAW,GAAGC,SAAS,EAAE53Y,SAAS,EAAEzzR,GAAG,IAAIrD,GAAG,CAAC,GAAG,IAAI2vD,EAAE4K,KAAKl2C,QAAQsrC,EAAEgI,KAAKhI,EAAE8+mB,WAAW,EAAE9+mB,EAAE8+mB,YAAY9+mB,EAAE8+mB,WAAW9+mB,EAAEg/mB,MAAMh/mB,EAAE8+mB,WAAW,GAAG9+mB,EAAE8+mB,WAAW,KAAK9+mB,EAAE8+mB,YAAY,IAAIl0mB,KAAK7f,IAAI,EAAE6f,KAAKklI,IAAI,GAAGllI,KAAKq0mB,OAAM,EAAGr0mB,KAAKs0mB,OAAO,GAAGt0mB,KAAKu0mB,KAAK,IAAIp2mB,EAAE6B,KAAKu0mB,KAAKC,UAAU,EAAE,IAAIrlpB,EAAEykC,EAAE6gnB,aAAaz0mB,KAAKu0mB,KAAKn/mB,EAAEw1E,MAAMx1E,EAAE83H,OAAO93H,EAAE8+mB,WAAW9+mB,EAAE++mB,SAAS/+mB,EAAEmnO,UAAU,GAAG,IAAIptQ,EAAE,MAAM,IAAItb,MAAMvd,EAAE64B,IAAI,GAAGimC,EAAEp8D,QAAQ46D,EAAE8gnB,iBAAiB10mB,KAAKu0mB,KAAKn/mB,EAAEp8D,QAAQo8D,EAAEm2iB,WAAW,CAAC,IAAI/liB,EAAE,GAAGA,EAAE,iBAAiBpQ,EAAEm2iB,WAAW7zmB,EAAEi9qB,WAAWv/mB,EAAEm2iB,YAAY,yBAAyBvuiB,EAAExB,KAAKpG,EAAEm2iB,YAAY,IAAI/xe,WAAWpkE,EAAEm2iB,YAAYn2iB,EAAEm2iB,WAAW,KAAKp8kB,EAAEykC,EAAEghnB,qBAAqB50mB,KAAKu0mB,KAAK/umB,IAAI,MAAM,IAAI3xD,MAAMvd,EAAE64B,IAAI6wC,KAAK60mB,WAAU,CAAE,CAAC,CAAC,SAASrvmB,EAAE//D,EAAE2vD,GAAG,IAAIjmC,EAAE,IAAIvZ,EAAEw/C,GAAG,GAAGjmC,EAAEp0B,KAAK0K,GAAE,GAAI0pB,EAAEgxB,IAAI,MAAMhxB,EAAE+1K,KAAK5uM,EAAE64B,EAAEgxB,KAAK,OAAOhxB,EAAE55B,MAAM,CAACqgB,EAAE22C,UAAUxxD,KAAK,SAAS0K,EAAE2vD,GAAG,IAAIjmC,EAAE74B,EAAE6nE,EAAE6B,KAAKu0mB,KAAK3+pB,EAAEoqD,KAAKl2C,QAAQmqpB,UAAU,GAAGj0mB,KAAKq0mB,MAAM,OAAM,EAAG/9qB,EAAE8+D,MAAMA,EAAEA,GAAE,IAAKA,EAAE,EAAE,EAAE,iBAAiB3vD,EAAE04D,EAAE5xD,MAAM7U,EAAEi9qB,WAAWlvqB,GAAG,yBAAyBu3D,EAAExB,KAAK/1D,GAAG04D,EAAE5xD,MAAM,IAAIitH,WAAW/zH,GAAG04D,EAAE5xD,MAAM9G,EAAE04D,EAAE22mB,QAAQ,EAAE32mB,EAAE42mB,SAAS52mB,EAAE5xD,MAAM5U,OAAO,EAAE,CAAC,GAAG,IAAIwmE,EAAEq2mB,YAAYr2mB,EAAEk5C,OAAO,IAAItgC,EAAEi+lB,KAAKp/pB,GAAGuoD,EAAE82mB,SAAS,EAAE92mB,EAAEq2mB,UAAU5+pB,GAAG,KAAKuZ,EAAEykC,EAAEshnB,QAAQ/2mB,EAAE7nE,KAAK,IAAI64B,EAAE,OAAO6wC,KAAKm1mB,MAAMhmpB,GAAG6wC,KAAKq0mB,OAAM,GAAG,EAAG,IAAIl2mB,EAAEq2mB,YAAY,IAAIr2mB,EAAE42mB,UAAU,IAAIz+qB,GAAG,IAAIA,KAAK,WAAW0pE,KAAKl2C,QAAQhhB,GAAGk3D,KAAK6pmB,OAAOnyqB,EAAE09qB,cAAcr+lB,EAAEs+lB,UAAUl3mB,EAAEk5C,OAAOl5C,EAAE82mB,YAAYj1mB,KAAK6pmB,OAAO9ylB,EAAEs+lB,UAAUl3mB,EAAEk5C,OAAOl5C,EAAE82mB,WAAW,QAAQ92mB,EAAE42mB,SAAS,GAAG,IAAI52mB,EAAEq2mB,YAAY,IAAIrlpB,GAAG,OAAO,IAAI74B,GAAG64B,EAAEykC,EAAE0hnB,WAAWt1mB,KAAKu0mB,MAAMv0mB,KAAKm1mB,MAAMhmpB,GAAG6wC,KAAKq0mB,OAAM,EAAG,IAAIllpB,GAAG,IAAI74B,IAAI0pE,KAAKm1mB,MAAM,GAAGh3mB,EAAEq2mB,UAAU,GAAE,EAAG,EAAE5+pB,EAAE22C,UAAUs9mB,OAAO,SAASpkqB,GAAGu6D,KAAKs0mB,OAAOv5qB,KAAK0K,EAAE,EAAEmQ,EAAE22C,UAAU4onB,MAAM,SAAS1vqB,GAAG,IAAIA,IAAI,WAAWu6D,KAAKl2C,QAAQhhB,GAAGk3D,KAAKzqE,OAAOyqE,KAAKs0mB,OAAOxpoB,KAAK,IAAIk1B,KAAKzqE,OAAOwhF,EAAEw+lB,cAAcv1mB,KAAKs0mB,SAASt0mB,KAAKs0mB,OAAO,GAAGt0mB,KAAK7f,IAAI16C,EAAEu6D,KAAKklI,IAAIllI,KAAKu0mB,KAAKrve,GAAG,EAAE/1K,EAAEqmpB,QAAQ5/pB,EAAEuZ,EAAE+lpB,QAAQ1vmB,EAAEr2C,EAAEsmpB,WAAW,SAAShwqB,EAAE2vD,GAAG,OAAOA,EAAEA,GAAG,CAAC,GAAGgI,KAAI,EAAGoI,EAAE//D,EAAE2vD,EAAE,EAAEjmC,EAAEilpB,KAAK,SAAS3uqB,EAAE2vD,GAAG,OAAOA,EAAEA,GAAG,CAAC,GAAGg/mB,MAAK,EAAG5umB,EAAE//D,EAAE2vD,EAAE,CAAC,EAAE,CAAC,iBAAiB,IAAI,kBAAkB,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,iBAAiB,MAAM,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,kBAAkBsxE,EAAEtxE,EAAE,kBAAkB/N,EAAE+N,EAAE,mBAAmBnP,EAAEmP,EAAE,oBAAoB04D,EAAE14D,EAAE,mBAAmBu3D,EAAEv3D,EAAE,kBAAkBmQ,EAAEnQ,EAAE,mBAAmB+/D,EAAExrD,OAAOuyC,UAAU76D,SAAS,SAASshE,EAAEvtD,GAAG,KAAKu6D,gBAAgBhN,GAAG,OAAO,IAAIA,EAAEvtD,GAAGu6D,KAAKl2C,QAAQitD,EAAE98D,OAAO,CAACg6pB,UAAU,MAAMC,WAAW,EAAEprqB,GAAG,IAAIrD,GAAG,CAAC,GAAG,IAAI2vD,EAAE4K,KAAKl2C,QAAQsrC,EAAEgI,KAAKhI,EAAE8+mB,YAAY,GAAG9+mB,EAAE8+mB,WAAW,KAAK9+mB,EAAE8+mB,YAAY9+mB,EAAE8+mB,WAAW,IAAI9+mB,EAAE8+mB,aAAa9+mB,EAAE8+mB,YAAY,OAAO9+mB,EAAE8+mB,YAAY,GAAG9+mB,EAAE8+mB,WAAW,KAAKzuqB,GAAGA,EAAEyuqB,aAAa9+mB,EAAE8+mB,YAAY,IAAI9+mB,EAAE8+mB,WAAW,IAAI9+mB,EAAE8+mB,WAAW,IAAI,IAAI,GAAG9+mB,EAAE8+mB,cAAc9+mB,EAAE8+mB,YAAY,IAAIl0mB,KAAK7f,IAAI,EAAE6f,KAAKklI,IAAI,GAAGllI,KAAKq0mB,OAAM,EAAGr0mB,KAAKs0mB,OAAO,GAAGt0mB,KAAKu0mB,KAAK,IAAIv3mB,EAAEgD,KAAKu0mB,KAAKC,UAAU,EAAE,IAAIrlpB,EAAEykC,EAAE8hnB,aAAa11mB,KAAKu0mB,KAAKn/mB,EAAE8+mB,YAAY,GAAG/kpB,IAAI74B,EAAEq/qB,KAAK,MAAM,IAAI9hqB,MAAMsqD,EAAEhvC,IAAI,GAAG6wC,KAAKhnE,OAAO,IAAI4c,EAAEg+C,EAAEginB,iBAAiB51mB,KAAKu0mB,KAAKv0mB,KAAKhnE,QAAQo8D,EAAEm2iB,aAAa,iBAAiBn2iB,EAAEm2iB,WAAWn2iB,EAAEm2iB,WAAW7zmB,EAAEi9qB,WAAWv/mB,EAAEm2iB,YAAY,yBAAyB/liB,EAAEhK,KAAKpG,EAAEm2iB,cAAcn2iB,EAAEm2iB,WAAW,IAAI/xe,WAAWpkE,EAAEm2iB,aAAan2iB,EAAEgI,MAAMjuC,EAAEykC,EAAEiinB,qBAAqB71mB,KAAKu0mB,KAAKn/mB,EAAEm2iB,eAAej1mB,EAAEq/qB,MAAM,MAAM,IAAI9hqB,MAAMsqD,EAAEhvC,GAAG,CAAC,SAASqzC,EAAE/8D,EAAE2vD,GAAG,IAAIjmC,EAAE,IAAI6jC,EAAEoC,GAAG,GAAGjmC,EAAEp0B,KAAK0K,GAAE,GAAI0pB,EAAEgxB,IAAI,MAAMhxB,EAAE+1K,KAAK/mI,EAAEhvC,EAAEgxB,KAAK,OAAOhxB,EAAE55B,MAAM,CAACy9D,EAAEzG,UAAUxxD,KAAK,SAAS0K,EAAE2vD,GAAG,IAAIjmC,EAAEgvC,EAAEnB,EAAEpnD,EAAEo9C,EAAEwP,EAAExC,KAAKu0mB,KAAK33mB,EAAEoD,KAAKl2C,QAAQmqpB,UAAUlgnB,EAAEiM,KAAKl2C,QAAQyhlB,WAAW/hkB,GAAE,EAAG,GAAGw2B,KAAKq0mB,MAAM,OAAM,EAAGl2mB,EAAE/I,MAAMA,EAAEA,GAAE,IAAKA,EAAE9+D,EAAEw/qB,SAASx/qB,EAAEy/qB,WAAW,iBAAiBtwqB,EAAE+8D,EAAEj2D,MAAM7U,EAAEs+qB,cAAcvwqB,GAAG,yBAAyB+/D,EAAEhK,KAAK/1D,GAAG+8D,EAAEj2D,MAAM,IAAIitH,WAAW/zH,GAAG+8D,EAAEj2D,MAAM9G,EAAE+8D,EAAEsymB,QAAQ,EAAEtymB,EAAEuymB,SAASvymB,EAAEj2D,MAAM5U,OAAO,EAAE,CAAC,GAAG,IAAI6qE,EAAEgymB,YAAYhymB,EAAE60C,OAAO,IAAItgC,EAAEi+lB,KAAKp4mB,GAAG4F,EAAEyymB,SAAS,EAAEzymB,EAAEgymB,UAAU53mB,IAAIztC,EAAEykC,EAAEqinB,QAAQzzmB,EAAElsE,EAAEy/qB,eAAez/qB,EAAE4/qB,aAAaninB,IAAI5kC,EAAEykC,EAAEiinB,qBAAqB71mB,KAAKu0mB,KAAKxgnB,IAAI5kC,IAAI74B,EAAE6/qB,cAAa,IAAK3soB,IAAIra,EAAE74B,EAAEq/qB,KAAKnsoB,GAAE,GAAIra,IAAI74B,EAAE8/qB,cAAcjnpB,IAAI74B,EAAEq/qB,KAAK,OAAO31mB,KAAKm1mB,MAAMhmpB,GAAG6wC,KAAKq0mB,OAAM,GAAG,EAAG7xmB,EAAEyymB,WAAW,IAAIzymB,EAAEgymB,WAAWrlpB,IAAI74B,EAAE8/qB,eAAe,IAAI5zmB,EAAEuymB,UAAU52mB,IAAI7nE,EAAEw/qB,UAAU33mB,IAAI7nE,EAAE+/qB,gBAAgB,WAAWr2mB,KAAKl2C,QAAQhhB,IAAIk0D,EAAEtlE,EAAE4+qB,WAAW9zmB,EAAE60C,OAAO70C,EAAEyymB,UAAUr/pB,EAAE4sD,EAAEyymB,SAASj4mB,EAAEhK,EAAEt7D,EAAE6+qB,WAAW/zmB,EAAE60C,OAAOr6C,GAAGwF,EAAEyymB,SAASr/pB,EAAE4sD,EAAEgymB,UAAU53mB,EAAEhnD,EAAEA,GAAGmhE,EAAEy/lB,SAASh0mB,EAAE60C,OAAO70C,EAAE60C,OAAOr6C,EAAEpnD,EAAE,GAAGoqD,KAAK6pmB,OAAO72mB,IAAIgN,KAAK6pmB,OAAO9ylB,EAAEs+lB,UAAU7ymB,EAAE60C,OAAO70C,EAAEyymB,aAAa,IAAIzymB,EAAEuymB,UAAU,IAAIvymB,EAAEgymB,YAAYhroB,GAAE,EAAG,QAAQg5B,EAAEuymB,SAAS,GAAG,IAAIvymB,EAAEgymB,YAAYrlpB,IAAI74B,EAAE8/qB,cAAc,OAAOjnpB,IAAI74B,EAAE8/qB,eAAej4mB,EAAE7nE,EAAEw/qB,UAAU33mB,IAAI7nE,EAAEw/qB,UAAU3mpB,EAAEykC,EAAE6inB,WAAWz2mB,KAAKu0mB,MAAMv0mB,KAAKm1mB,MAAMhmpB,GAAG6wC,KAAKq0mB,OAAM,EAAGllpB,IAAI74B,EAAEq/qB,MAAMx3mB,IAAI7nE,EAAE+/qB,eAAer2mB,KAAKm1mB,MAAM7+qB,EAAEq/qB,MAAMnzmB,EAAEgymB,UAAU,GAAE,EAAG,EAAExhnB,EAAEzG,UAAUs9mB,OAAO,SAASpkqB,GAAGu6D,KAAKs0mB,OAAOv5qB,KAAK0K,EAAE,EAAEutD,EAAEzG,UAAU4onB,MAAM,SAAS1vqB,GAAGA,IAAInP,EAAEq/qB,OAAO,WAAW31mB,KAAKl2C,QAAQhhB,GAAGk3D,KAAKzqE,OAAOyqE,KAAKs0mB,OAAOxpoB,KAAK,IAAIk1B,KAAKzqE,OAAOwhF,EAAEw+lB,cAAcv1mB,KAAKs0mB,SAASt0mB,KAAKs0mB,OAAO,GAAGt0mB,KAAK7f,IAAI16C,EAAEu6D,KAAKklI,IAAIllI,KAAKu0mB,KAAKrve,GAAG,EAAE/1K,EAAEunpB,QAAQ1jnB,EAAE7jC,EAAE8mpB,QAAQzzmB,EAAErzC,EAAEwnpB,WAAW,SAASlxqB,EAAE2vD,GAAG,OAAOA,EAAEA,GAAG,CAAC,GAAGgI,KAAI,EAAGoF,EAAE/8D,EAAE2vD,EAAE,EAAEjmC,EAAEynpB,OAAOp0mB,CAAC,EAAE,CAAC,iBAAiB,IAAI,kBAAkB,IAAI,mBAAmB,IAAI,kBAAkB,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,iBAAiB,MAAM,IAAI,CAAC,SAAS/8D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,oBAAoB4lE,YAAY,oBAAoB8viB,aAAa,oBAAoBuN,WAAW,SAAS9/lB,EAAEtxE,EAAE2vD,GAAG,OAAOp7C,OAAOuyC,UAAUujE,eAAet0D,KAAK/1D,EAAE2vD,EAAE,CAACjmC,EAAElV,OAAO,SAASxU,GAAG,IAAI,IAAI2vD,EAAE/F,MAAM9C,UAAU4G,MAAMqI,KAAK2N,UAAU,GAAG/T,EAAEz9D,QAAQ,CAAC,IAAIw3B,EAAEimC,EAAEmO,QAAQ,GAAGp0C,EAAE,CAAC,GAAG,WAAWoxlB,SAASpxlB,GAAG,MAAM,IAAI6hG,UAAU7hG,EAAE,sBAAsB,IAAI,IAAIykC,KAAKzkC,EAAE4nD,EAAE5nD,EAAEykC,KAAKnuD,EAAEmuD,GAAGzkC,EAAEykC,GAAG,CAAC,CAAC,OAAOnuD,CAAC,EAAE0pB,EAAEkmpB,UAAU,SAAS5vqB,EAAE2vD,GAAG,OAAO3vD,EAAE9N,SAASy9D,EAAE3vD,EAAEA,EAAEu+oB,SAASv+oB,EAAEu+oB,SAAS,EAAE5ulB,IAAI3vD,EAAE9N,OAAOy9D,EAAE3vD,EAAE,EAAE,IAAI/N,EAAE,CAAC8+qB,SAAS,SAAS/wqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,GAAG3hB,EAAE4ulB,UAAUv+oB,EAAEu+oB,SAASv+oB,EAAEqjE,IAAI1T,EAAE4ulB,SAAS70nB,EAAEA,EAAEykC,GAAGmjB,QAAQ,IAAI,IAAIr/E,EAAE,EAAEA,EAAEk8D,EAAEl8D,IAAI+N,EAAEsxE,EAAEr/E,GAAG09D,EAAEjmC,EAAEz3B,EAAE,EAAE69qB,cAAc,SAAS9vqB,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE,IAAIs9D,EAAE,EAAEwB,EAAE,EAAEjmC,EAAE1pB,EAAE9N,OAAOy9D,EAAEjmC,EAAEimC,IAAIxB,GAAGnuD,EAAE2vD,GAAGz9D,OAAO,IAAIrB,EAAE,IAAIkjI,WAAW5lE,GAAGmjB,EAAE,EAAE3hB,EAAE,EAAEjmC,EAAE1pB,EAAE9N,OAAOy9D,EAAEjmC,EAAEimC,IAAI19D,EAAE+N,EAAE2vD,GAAG9+D,EAAEwyE,IAAIpxE,EAAEq/E,GAAGA,GAAGr/E,EAAEC,OAAO,OAAOrB,CAAC,GAAGA,EAAE,CAACkgrB,SAAS,SAAS/wqB,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,IAAI,IAAIr/E,EAAE,EAAEA,EAAEk8D,EAAEl8D,IAAI+N,EAAEsxE,EAAEr/E,GAAG09D,EAAEjmC,EAAEz3B,EAAE,EAAE69qB,cAAc,SAAS9vqB,GAAG,MAAM,GAAG62C,OAAOoG,MAAM,GAAGj9C,EAAE,GAAG0pB,EAAE2npB,SAAS,SAASrxqB,GAAGA,GAAG0pB,EAAE6lpB,KAAKx7iB,WAAWrqG,EAAE4npB,MAAMzN,YAAYn6oB,EAAE6npB,MAAMH,WAAW1npB,EAAElV,OAAOkV,EAAEz3B,KAAKy3B,EAAE6lpB,KAAK3lnB,MAAMlgC,EAAE4npB,MAAM1nnB,MAAMlgC,EAAE6npB,MAAM3nnB,MAAMlgC,EAAElV,OAAOkV,EAAE74B,GAAG,EAAE64B,EAAE2npB,SAASljnB,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,GAAE,EAAGr/E,GAAE,EAAG,IAAIywB,OAAO6xK,aAAat3I,MAAM,KAAK,CAAC,GAAG,CAAC,MAAMj9C,GAAGsxE,GAAE,CAAE,CAAC,IAAI5uD,OAAO6xK,aAAat3I,MAAM,KAAK,IAAI82E,WAAW,GAAG,CAAC,MAAM/zH,GAAG/N,GAAE,CAAE,CAAC,IAAI,IAAIpB,EAAE,IAAIs9D,EAAEohnB,KAAK,KAAK72mB,EAAE,EAAEA,EAAE,IAAIA,IAAI7nE,EAAE6nE,GAAGA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAEA,GAAG,IAAI,EAAE,EAAE,SAASnB,EAAEv3D,EAAE2vD,GAAG,GAAGA,EAAE,QAAQ3vD,EAAEu+oB,UAAUtspB,IAAI+N,EAAEu+oB,UAAUjtkB,GAAG,OAAO5uD,OAAO6xK,aAAat3I,MAAM,KAAKkR,EAAEyhnB,UAAU5vqB,EAAE2vD,IAAI,IAAI,IAAIjmC,EAAE,GAAG74B,EAAE,EAAEA,EAAE8+D,EAAE9+D,IAAI64B,GAAGhH,OAAO6xK,aAAav0L,EAAEnP,IAAI,OAAO64B,CAAC,CAAC74B,EAAE,KAAKA,EAAE,KAAK,EAAE64B,EAAEwlpB,WAAW,SAASlvqB,GAAG,IAAI2vD,EAAEjmC,EAAE4nD,EAAEr/E,EAAEpB,EAAE6nE,EAAE14D,EAAE9N,OAAOqlE,EAAE,EAAE,IAAItlE,EAAE,EAAEA,EAAEymE,EAAEzmE,IAAI,QAAQ,OAAOy3B,EAAE1pB,EAAE+1I,WAAW9jJ,MAAMA,EAAE,EAAEymE,GAAG,QAAQ,OAAO4Y,EAAEtxE,EAAE+1I,WAAW9jJ,EAAE,OAAOy3B,EAAE,OAAOA,EAAE,OAAO,KAAK4nD,EAAE,OAAOr/E,KAAKslE,GAAG7tC,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAEA,EAAE,MAAM,EAAE,EAAE,IAAIimC,EAAE,IAAIxB,EAAEohnB,KAAKh4mB,GAAG1mE,EAAE,EAAEoB,EAAE,EAAEpB,EAAE0mE,EAAEtlE,IAAI,QAAQ,OAAOy3B,EAAE1pB,EAAE+1I,WAAW9jJ,MAAMA,EAAE,EAAEymE,GAAG,QAAQ,OAAO4Y,EAAEtxE,EAAE+1I,WAAW9jJ,EAAE,OAAOy3B,EAAE,OAAOA,EAAE,OAAO,KAAK4nD,EAAE,OAAOr/E,KAAKy3B,EAAE,IAAIimC,EAAE9+D,KAAK64B,EAAEA,EAAE,MAAMimC,EAAE9+D,KAAK,IAAI64B,IAAI,EAAEimC,EAAE9+D,KAAK,IAAI,GAAG64B,GAAGA,EAAE,OAAOimC,EAAE9+D,KAAK,IAAI64B,IAAI,GAAGimC,EAAE9+D,KAAK,IAAI64B,IAAI,EAAE,GAAGimC,EAAE9+D,KAAK,IAAI,GAAG64B,IAAIimC,EAAE9+D,KAAK,IAAI64B,IAAI,GAAGimC,EAAE9+D,KAAK,IAAI64B,IAAI,GAAG,GAAGimC,EAAE9+D,KAAK,IAAI64B,IAAI,EAAE,GAAGimC,EAAE9+D,KAAK,IAAI,GAAG64B,GAAG,OAAOimC,CAAC,EAAEjmC,EAAEimpB,cAAc,SAAS3vqB,GAAG,OAAOu3D,EAAEv3D,EAAEA,EAAE9N,OAAO,EAAEw3B,EAAE6mpB,cAAc,SAASvwqB,GAAG,IAAI,IAAI2vD,EAAE,IAAIxB,EAAEohnB,KAAKvvqB,EAAE9N,QAAQw3B,EAAE,EAAE4nD,EAAE3hB,EAAEz9D,OAAOw3B,EAAE4nD,EAAE5nD,IAAIimC,EAAEjmC,GAAG1pB,EAAE+1I,WAAWrsH,GAAG,OAAOimC,CAAC,EAAEjmC,EAAEonpB,WAAW,SAAS9wqB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEymE,EAAE/I,GAAG3vD,EAAE9N,OAAOie,EAAE,IAAIy5C,MAAM,EAAE8O,GAAG,IAAIvK,EAAE,EAAEzkC,EAAE,EAAEA,EAAEgvC,GAAG,IAAI4Y,EAAEtxE,EAAE0pB,MAAM,IAAIvZ,EAAEg+C,KAAKmjB,OAAO,IAAIr/E,EAAEpB,EAAEygF,IAAI,EAAEnhE,EAAEg+C,KAAK,MAAMzkC,GAAGz3B,EAAE,MAAM,CAAC,IAAIq/E,GAAG,IAAIr/E,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAEA,EAAE,GAAGy3B,EAAEgvC,GAAG4Y,EAAEA,GAAG,EAAE,GAAGtxE,EAAE0pB,KAAKz3B,IAAIA,EAAE,EAAEke,EAAEg+C,KAAK,MAAMmjB,EAAE,MAAMnhE,EAAEg+C,KAAKmjB,GAAGA,GAAG,MAAMnhE,EAAEg+C,KAAK,MAAMmjB,GAAG,GAAG,KAAKnhE,EAAEg+C,KAAK,MAAM,KAAKmjB,EAAE,CAAC,OAAO/Z,EAAEpnD,EAAEg+C,EAAE,EAAEzkC,EAAEmnpB,WAAW,SAAS7wqB,EAAE2vD,GAAG,IAAIjmC,EAAE,KAAKimC,EAAEA,GAAG3vD,EAAE9N,QAAQ8N,EAAE9N,SAASy9D,EAAE3vD,EAAE9N,QAAQw3B,EAAEimC,EAAE,EAAEjmC,GAAG,GAAG,MAAM,IAAI1pB,EAAE0pB,KAAKA,IAAI,OAAOA,EAAE,GAAG,IAAIA,EAAEimC,EAAEjmC,EAAE74B,EAAEmP,EAAE0pB,IAAIimC,EAAEjmC,EAAEimC,CAAC,CAAC,EAAE,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAI,IAAImjB,EAAE,MAAMtxE,EAAI/N,EAAE+N,IAAI,GAAG,MAAQnP,EAAE,EAAE,IAAI64B,GAAG,CAACA,GAAG74B,EAAE64B,EAAE,IAAI,IAAIA,EAAE,GAAGz3B,EAAEA,GAAGq/E,EAAEA,EAAE3hB,EAAExB,KAAK,GAAG,UAAUt9D,GAAGygF,GAAG,MAAMr/E,GAAG,KAAK,CAAC,OAAOq/E,EAAEr/E,GAAG,EAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,CAAC68iB,WAAW,EAAEkB,gBAAgB,EAAEZ,aAAa,EAAEa,aAAa,EAAEpB,SAAS,EAAEqB,QAAQ,EAAEC,QAAQ,EAAEzB,KAAK,EAAES,aAAa,EAAEF,YAAY,EAAEmB,SAAS,EAAEC,gBAAgB,EAAEC,cAAc,EAAEpB,aAAa,EAAEqB,iBAAiB,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,uBAAuB,EAAEC,WAAW,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,mBAAmB,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAEC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS3yqB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,WAAW,IAAI,IAAInuD,EAAE2vD,EAAE,GAAGjmC,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAAC1pB,EAAE0pB,EAAE,IAAI,IAAIykC,EAAE,EAAEA,EAAE,EAAEA,IAAInuD,EAAE,EAAEA,EAAE,WAAWA,IAAI,EAAEA,IAAI,EAAE2vD,EAAEjmC,GAAG1pB,CAAC,CAAC,OAAO2vD,CAAC,CAA7G,GAAiHA,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,EAAE4nD,GAAG,IAAIr/E,EAAEk8D,EAAEt9D,EAAEygF,EAAE5nD,EAAE1pB,IAAI,EAAE,IAAI,IAAI04D,EAAE4Y,EAAE5Y,EAAE7nE,EAAE6nE,IAAI14D,EAAEA,IAAI,EAAE/N,EAAE,KAAK+N,EAAE2vD,EAAE+I,KAAK,OAAS14D,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAEtxE,EAAE,mBAAmB/N,EAAE+N,EAAE,WAAWnP,EAAEmP,EAAE,aAAa04D,EAAE14D,EAAE,WAAWu3D,EAAEv3D,EAAE,cAAc,SAASmQ,EAAEnQ,EAAE2vD,GAAG,OAAO3vD,EAAEy/L,IAAIloI,EAAE5H,GAAGA,CAAC,CAAC,SAASoQ,EAAE//D,GAAG,OAAOA,GAAG,IAAIA,EAAE,EAAE,EAAE,EAAE,CAAC,SAASutD,EAAEvtD,GAAG,IAAI,IAAI2vD,EAAE3vD,EAAE9N,SAASy9D,GAAG,GAAG3vD,EAAE2vD,GAAG,CAAC,CAAC,SAASoN,EAAE/8D,GAAG,IAAI2vD,EAAE3vD,EAAEpH,MAAM8wB,EAAEimC,EAAEinO,QAAQltQ,EAAE1pB,EAAE+uqB,YAAYrlpB,EAAE1pB,EAAE+uqB,WAAW,IAAIrlpB,IAAI4nD,EAAEy/lB,SAAS/wqB,EAAE4xG,OAAOjiD,EAAEijnB,YAAYjjnB,EAAEkjnB,YAAYnppB,EAAE1pB,EAAEwvqB,UAAUxvqB,EAAEwvqB,UAAU9lpB,EAAEimC,EAAEkjnB,aAAanppB,EAAE1pB,EAAE8yqB,WAAWpppB,EAAE1pB,EAAE+uqB,WAAWrlpB,EAAEimC,EAAEinO,SAASltQ,EAAE,IAAIimC,EAAEinO,UAAUjnO,EAAEkjnB,YAAY,GAAG,CAAC,SAAS17mB,EAAEn3D,EAAE2vD,GAAG19D,EAAE8grB,gBAAgB/yqB,EAAEA,EAAEgzqB,aAAa,EAAEhzqB,EAAEgzqB,aAAa,EAAEhzqB,EAAEizqB,SAASjzqB,EAAEgzqB,YAAYrjnB,GAAG3vD,EAAEgzqB,YAAYhzqB,EAAEizqB,SAASl2mB,EAAE/8D,EAAE8uqB,KAAK,CAAC,SAASxgnB,EAAEtuD,EAAE2vD,GAAG3vD,EAAE4yqB,YAAY5yqB,EAAE42R,WAAWjnO,CAAC,CAAC,SAAS5rB,EAAE/jC,EAAE2vD,GAAG3vD,EAAE4yqB,YAAY5yqB,EAAE42R,WAAWjnO,IAAI,EAAE,IAAI3vD,EAAE4yqB,YAAY5yqB,EAAE42R,WAAW,IAAIjnO,CAAC,CAAC,SAASmb,EAAE9qE,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEtxE,EAAEkzqB,iBAAiBjhrB,EAAE+N,EAAEizqB,SAASpirB,EAAEmP,EAAEmzqB,YAAYz6mB,EAAE14D,EAAEozqB,WAAW77mB,EAAEv3D,EAAEizqB,SAASjzqB,EAAEqzqB,OAAO,IAAIrzqB,EAAEizqB,UAAUjzqB,EAAEqzqB,OAAO,KAAK,EAAEljqB,EAAEnQ,EAAE9S,OAAO6yE,EAAE//D,EAAEszqB,OAAO/lnB,EAAEvtD,EAAE+gC,KAAKg8B,EAAE/8D,EAAEizqB,SAAS,IAAI97mB,EAAEhnD,EAAEle,EAAEpB,EAAE,GAAGy9D,EAAEn+C,EAAEle,EAAEpB,GAAGmP,EAAEmzqB,aAAanzqB,EAAEuzqB,aAAajimB,IAAI,GAAG5Y,EAAE14D,EAAEwzqB,YAAY96mB,EAAE14D,EAAEwzqB,WAAW,GAAG,GAAGrjqB,GAAGuZ,EAAEimC,GAAG9+D,KAAKy9D,GAAGn+C,EAAEuZ,EAAE74B,EAAE,KAAKsmE,GAAGhnD,EAAEuZ,KAAKvZ,EAAEle,IAAIke,IAAIuZ,KAAKvZ,EAAEle,EAAE,GAAG,CAACA,GAAG,EAAEy3B,IAAI,UAAUvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIvZ,IAAIle,KAAKke,IAAIuZ,IAAIz3B,EAAE8qE,GAAG,GAAG5O,EAAE,KAAK4O,EAAE9qE,GAAGA,EAAE8qE,EAAE,IAAI5O,EAAEt9D,EAAE,CAAC,GAAGmP,EAAEyzqB,YAAY9jnB,EAAE9+D,EAAEs9D,EAAEA,GAAGuK,EAAE,MAAMvB,EAAEhnD,EAAEle,EAAEpB,EAAE,GAAGy9D,EAAEn+C,EAAEle,EAAEpB,EAAE,CAAC,SAAS8+D,EAAEpC,EAAEoC,EAAEoQ,IAAIxI,GAAG,KAAK+Z,GAAG,OAAOzgF,GAAGmP,EAAEwzqB,UAAU3irB,EAAEmP,EAAEwzqB,SAAS,CAAC,SAAS1irB,EAAEkP,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEl8D,EAAEslE,EAAEpnD,EAAE4vD,EAAExS,EAAEwP,EAAE5F,EAAE7I,EAAEtuD,EAAEqzqB,OAAO,EAAE,CAAC,GAAGphrB,EAAE+N,EAAE0zqB,YAAY1zqB,EAAEwzqB,UAAUxzqB,EAAEizqB,SAASjzqB,EAAEizqB,UAAU3knB,GAAGA,EAAE,KAAK,CAACgjB,EAAEy/lB,SAAS/wqB,EAAE9S,OAAO8S,EAAE9S,OAAOohE,EAAEA,EAAE,GAAGtuD,EAAEyzqB,aAAanlnB,EAAEtuD,EAAEizqB,UAAU3knB,EAAEtuD,EAAEgzqB,aAAa1knB,EAAEqB,EAAEjmC,EAAE1pB,EAAE2zqB,UAAU,GAAGxlnB,EAAEnuD,EAAEw3I,OAAO7nF,GAAG3vD,EAAEw3I,KAAK7nF,GAAGxB,GAAGG,EAAEH,EAAEG,EAAE,UAAU5kC,GAAGimC,EAAEjmC,EAAE4kC,EAAE,GAAGH,EAAEnuD,EAAE+gC,OAAO4uB,GAAG3vD,EAAE+gC,KAAK4uB,GAAGxB,GAAGG,EAAEH,EAAEG,EAAE,UAAU5kC,GAAGz3B,GAAGq8D,CAAC,CAAC,GAAG,IAAItuD,EAAE8uqB,KAAKQ,SAAS,MAAM,GAAGn/pB,EAAEnQ,EAAE8uqB,KAAK/umB,EAAE//D,EAAE9S,OAAOqgE,EAAEvtD,EAAEizqB,SAASjzqB,EAAEwzqB,UAAUz2mB,EAAE9qE,EAAEklE,OAAE,GAAQA,EAAEhnD,EAAEm/pB,UAAUvymB,IAAI5F,EAAE4F,GAAGrzC,EAAE,IAAIytC,EAAE,GAAGhnD,EAAEm/pB,UAAUn4mB,EAAEma,EAAEy/lB,SAAShxmB,EAAE5vD,EAAErJ,MAAMqJ,EAAEk/pB,QAAQl4mB,EAAE5J,GAAG,IAAIp9C,EAAEvX,MAAM06E,KAAKnjE,EAAEyjqB,MAAM/irB,EAAEsf,EAAEyjqB,MAAM7zmB,EAAE5I,EAAE5J,GAAG,IAAIp9C,EAAEvX,MAAM06E,OAAOnjE,EAAEyjqB,MAAMl7mB,EAAEvoD,EAAEyjqB,MAAM7zmB,EAAE5I,EAAE5J,IAAIp9C,EAAEk/pB,SAASl4mB,EAAEhnD,EAAE0jqB,UAAU18mB,EAAEA,GAAGn3D,EAAEwzqB,WAAW9ppB,EAAE1pB,EAAEwzqB,UAAUxzqB,EAAE4zL,QAAQ,EAAE,IAAIr8H,EAAEv3D,EAAEizqB,SAASjzqB,EAAE4zL,OAAO5zL,EAAE8zqB,MAAM9zqB,EAAE9S,OAAOqqE,GAAGv3D,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAOqqE,EAAE,IAAIv3D,EAAEg0qB,UAAUh0qB,EAAE4zL,SAAS5zL,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAOqqE,EAAE,EAAE,IAAIv3D,EAAEg0qB,UAAUh0qB,EAAE+gC,KAAKw2B,EAAEv3D,EAAEszqB,QAAQtzqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAOv8mB,EAAEA,IAAIv3D,EAAE4zL,WAAW5zL,EAAEwzqB,UAAUxzqB,EAAE4zL,OAAO,MAAM,OAAO5zL,EAAEwzqB,UAAU,KAAK,IAAIxzqB,EAAE8uqB,KAAKQ,SAAS,CAAC,SAAS7inB,EAAEzsD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAEykC,IAAI,CAAC,GAAGnuD,EAAEwzqB,UAAU,IAAI,CAAC,GAAG1irB,EAAEkP,GAAGA,EAAEwzqB,UAAU,KAAK,IAAI7jnB,EAAE,OAAO,EAAE,GAAG,IAAI3vD,EAAEwzqB,UAAU,KAAK,CAAC,GAAG9ppB,EAAE,EAAE1pB,EAAEwzqB,WAAW,IAAIxzqB,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAO8S,EAAEizqB,SAAS,EAAE,IAAIjzqB,EAAEg0qB,UAAUtqpB,EAAE1pB,EAAE+gC,KAAK/gC,EAAEizqB,SAASjzqB,EAAEszqB,QAAQtzqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEizqB,UAAU,IAAIvppB,GAAG1pB,EAAEizqB,SAASvppB,GAAG1pB,EAAEqzqB,OAAO,MAAMrzqB,EAAEi0qB,aAAanpmB,EAAE9qE,EAAE0pB,IAAI1pB,EAAEi0qB,cAAc,EAAE,GAAG9lnB,EAAEl8D,EAAEiirB,UAAUl0qB,EAAEA,EAAEizqB,SAASjzqB,EAAEyzqB,YAAYzzqB,EAAEi0qB,aAAa,GAAGj0qB,EAAEwzqB,WAAWxzqB,EAAEi0qB,aAAaj0qB,EAAEi0qB,cAAcj0qB,EAAEm0qB,gBAAgBn0qB,EAAEwzqB,WAAW,EAAE,CAACxzqB,EAAEi0qB,eAAe,GAAGj0qB,EAAEizqB,WAAWjzqB,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAO8S,EAAEizqB,SAAS,EAAE,IAAIjzqB,EAAEg0qB,UAAUtqpB,EAAE1pB,EAAE+gC,KAAK/gC,EAAEizqB,SAASjzqB,EAAEszqB,QAAQtzqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEizqB,eAAe,KAAKjzqB,EAAEi0qB,cAAcj0qB,EAAEizqB,UAAU,MAAMjzqB,EAAEizqB,UAAUjzqB,EAAEi0qB,aAAaj0qB,EAAEi0qB,aAAa,EAAEj0qB,EAAE8zqB,MAAM9zqB,EAAE9S,OAAO8S,EAAEizqB,UAAUjzqB,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAO8S,EAAEizqB,SAAS,IAAIjzqB,EAAEg0qB,eAAe7lnB,EAAEl8D,EAAEiirB,UAAUl0qB,EAAE,EAAEA,EAAE9S,OAAO8S,EAAEizqB,WAAWjzqB,EAAEwzqB,YAAYxzqB,EAAEizqB,WAAW,GAAG9knB,IAAIgJ,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,OAAO,CAAC,CAAC,OAAO/uqB,EAAE4zL,OAAO5zL,EAAEizqB,SAAS,EAAEjzqB,EAAEizqB,SAAS,EAAE,IAAItjnB,GAAGwH,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,UAAU,EAAE,GAAG/uqB,EAAEo0qB,WAAWj9mB,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,EAAE,CAAC,CAAC,SAAS1xmB,EAAEr9D,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAEykC,EAAEmjB,IAAI,CAAC,GAAGtxE,EAAEwzqB,UAAU,IAAI,CAAC,GAAG1irB,EAAEkP,GAAGA,EAAEwzqB,UAAU,KAAK,IAAI7jnB,EAAE,OAAO,EAAE,GAAG,IAAI3vD,EAAEwzqB,UAAU,KAAK,CAAC,GAAG9ppB,EAAE,EAAE1pB,EAAEwzqB,WAAW,IAAIxzqB,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAO8S,EAAEizqB,SAAS,EAAE,IAAIjzqB,EAAEg0qB,UAAUtqpB,EAAE1pB,EAAE+gC,KAAK/gC,EAAEizqB,SAASjzqB,EAAEszqB,QAAQtzqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEizqB,UAAUjzqB,EAAEmzqB,YAAYnzqB,EAAEi0qB,aAAaj0qB,EAAEq0qB,WAAWr0qB,EAAEyzqB,YAAYzzqB,EAAEi0qB,aAAa,EAAE,IAAIvqpB,GAAG1pB,EAAEmzqB,YAAYnzqB,EAAEm0qB,gBAAgBn0qB,EAAEizqB,SAASvppB,GAAG1pB,EAAEqzqB,OAAO,MAAMrzqB,EAAEi0qB,aAAanpmB,EAAE9qE,EAAE0pB,GAAG1pB,EAAEi0qB,cAAc,IAAI,IAAIj0qB,EAAE82R,UAAU,IAAI92R,EAAEi0qB,cAAcj0qB,EAAEizqB,SAASjzqB,EAAEyzqB,YAAY,QAAQzzqB,EAAEi0qB,aAAa,IAAIj0qB,EAAEmzqB,aAAa,GAAGnzqB,EAAEi0qB,cAAcj0qB,EAAEmzqB,YAAY,CAAC7hmB,EAAEtxE,EAAEizqB,SAASjzqB,EAAEwzqB,UAAU,EAAErlnB,EAAEl8D,EAAEiirB,UAAUl0qB,EAAEA,EAAEizqB,SAAS,EAAEjzqB,EAAEq0qB,WAAWr0qB,EAAEmzqB,YAAY,GAAGnzqB,EAAEwzqB,WAAWxzqB,EAAEmzqB,YAAY,EAAEnzqB,EAAEmzqB,aAAa,EAAE,KAAKnzqB,EAAEizqB,UAAU3hmB,IAAItxE,EAAE8zqB,OAAO9zqB,EAAE8zqB,OAAO9zqB,EAAE+zqB,WAAW/zqB,EAAE9S,OAAO8S,EAAEizqB,SAAS,EAAE,IAAIjzqB,EAAEg0qB,UAAUtqpB,EAAE1pB,EAAE+gC,KAAK/gC,EAAEizqB,SAASjzqB,EAAEszqB,QAAQtzqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEw3I,KAAKx3I,EAAE8zqB,OAAO9zqB,EAAEizqB,gBAAgB,KAAKjzqB,EAAEmzqB,aAAa,GAAGnzqB,EAAEs0qB,gBAAgB,EAAEt0qB,EAAEi0qB,aAAa,EAAEj0qB,EAAEizqB,WAAW9knB,IAAIgJ,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,OAAO,CAAC,MAAM,GAAG/uqB,EAAEs0qB,iBAAiB,IAAInmnB,EAAEl8D,EAAEiirB,UAAUl0qB,EAAE,EAAEA,EAAE9S,OAAO8S,EAAEizqB,SAAS,MAAM97mB,EAAEn3D,GAAE,GAAIA,EAAEizqB,WAAWjzqB,EAAEwzqB,YAAY,IAAIxzqB,EAAE8uqB,KAAKC,UAAU,OAAO,OAAO/uqB,EAAEs0qB,gBAAgB,EAAEt0qB,EAAEizqB,WAAWjzqB,EAAEwzqB,WAAW,CAAC,OAAOxzqB,EAAEs0qB,kBAAkBnmnB,EAAEl8D,EAAEiirB,UAAUl0qB,EAAE,EAAEA,EAAE9S,OAAO8S,EAAEizqB,SAAS,IAAIjzqB,EAAEs0qB,gBAAgB,GAAGt0qB,EAAE4zL,OAAO5zL,EAAEizqB,SAAS,EAAEjzqB,EAAEizqB,SAAS,EAAE,IAAItjnB,GAAGwH,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,UAAU,EAAE,GAAG/uqB,EAAEo0qB,WAAWj9mB,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,EAAE,CAAC,CAAC,SAASv1W,EAAEx5T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG/W,KAAKg6mB,YAAYv0qB,EAAEu6D,KAAKi6mB,SAAS7knB,EAAE4K,KAAKk6mB,YAAY/qpB,EAAE6wC,KAAKm6mB,UAAUvmnB,EAAEoM,KAAK1N,KAAKykB,CAAC,CAAC,SAASsf,IAAIr2B,KAAKu0mB,KAAK,KAAKv0mB,KAAK01H,OAAO,EAAE11H,KAAKq4mB,YAAY,KAAKr4mB,KAAKo6mB,iBAAiB,EAAEp6mB,KAAKs4mB,YAAY,EAAEt4mB,KAAKq8N,QAAQ,EAAEr8N,KAAK+Y,KAAK,EAAE/Y,KAAKq6mB,OAAO,KAAKr6mB,KAAKs6mB,QAAQ,EAAEt6mB,KAAKktH,OAAO,EAAEltH,KAAKu6mB,YAAY,EAAEv6mB,KAAK84mB,OAAO,EAAE94mB,KAAKw6mB,OAAO,EAAEx6mB,KAAK+4mB,OAAO,EAAE/4mB,KAAKrtE,OAAO,KAAKqtE,KAAKm5mB,YAAY,EAAEn5mB,KAAKx5B,KAAK,KAAKw5B,KAAKi9E,KAAK,KAAKj9E,KAAKu5mB,MAAM,EAAEv5mB,KAAKo5mB,UAAU,EAAEp5mB,KAAKy6mB,UAAU,EAAEz6mB,KAAKy5mB,UAAU,EAAEz5mB,KAAKw5mB,WAAW,EAAEx5mB,KAAKy4mB,YAAY,EAAEz4mB,KAAK05mB,aAAa,EAAE15mB,KAAK85mB,WAAW,EAAE95mB,KAAK+5mB,gBAAgB,EAAE/5mB,KAAK04mB,SAAS,EAAE14mB,KAAKk5mB,YAAY,EAAEl5mB,KAAKi5mB,UAAU,EAAEj5mB,KAAK44mB,YAAY,EAAE54mB,KAAK24mB,iBAAiB,EAAE34mB,KAAK45mB,eAAe,EAAE55mB,KAAK4qE,MAAM,EAAE5qE,KAAKu8N,SAAS,EAAEv8N,KAAKg5mB,WAAW,EAAEh5mB,KAAK64mB,WAAW,EAAE74mB,KAAK06mB,UAAU,IAAI3jmB,EAAEggmB,MAAM,MAAM/2mB,KAAK26mB,UAAU,IAAI5jmB,EAAEggmB,MAAM,KAAK/2mB,KAAK46mB,QAAQ,IAAI7jmB,EAAEggmB,MAAM,IAAI/jnB,EAAEgN,KAAK06mB,WAAW1nnB,EAAEgN,KAAK26mB,WAAW3nnB,EAAEgN,KAAK46mB,SAAS56mB,KAAK66mB,OAAO,KAAK76mB,KAAK86mB,OAAO,KAAK96mB,KAAK+6mB,QAAQ,KAAK/6mB,KAAKg7mB,SAAS,IAAIjkmB,EAAEggmB,MAAM,IAAI/2mB,KAAKi7mB,KAAK,IAAIlkmB,EAAEggmB,MAAM,KAAK/jnB,EAAEgN,KAAKi7mB,MAAMj7mB,KAAKk7mB,SAAS,EAAEl7mB,KAAKm7mB,SAAS,EAAEn7mB,KAAKwpU,MAAM,IAAIzyT,EAAEggmB,MAAM,KAAK/jnB,EAAEgN,KAAKwpU,OAAOxpU,KAAKo7mB,MAAM,EAAEp7mB,KAAKq7mB,YAAY,EAAEr7mB,KAAK65mB,SAAS,EAAE75mB,KAAKs7mB,MAAM,EAAEt7mB,KAAKu7mB,QAAQ,EAAEv7mB,KAAKw7mB,WAAW,EAAEx7mB,KAAKgW,QAAQ,EAAEhW,KAAKq5H,OAAO,EAAEr5H,KAAKy7mB,OAAO,EAAEz7mB,KAAK07mB,SAAS,CAAC,CAAC,SAAS9+e,EAAEn3L,GAAG,IAAI2vD,EAAE,OAAO3vD,GAAGA,EAAEpH,OAAOoH,EAAE6zqB,SAAS7zqB,EAAE8yqB,UAAU,EAAE9yqB,EAAEk2qB,UAAU,GAAGvmnB,EAAE3vD,EAAEpH,OAAOg+R,QAAQ,EAAEjnO,EAAEkjnB,YAAY,EAAEljnB,EAAE2jB,KAAK,IAAI3jB,EAAE2jB,MAAM3jB,EAAE2jB,MAAM3jB,EAAEsgI,OAAOtgI,EAAE2jB,KAAK,GAAG,IAAItzE,EAAE4zqB,MAAM,IAAIjknB,EAAE2jB,KAAK,EAAE,EAAE3jB,EAAEmlnB,WAAW,EAAE7irB,EAAEkkrB,SAASxmnB,GAAG,GAAGx/C,EAAEnQ,GAAG,EAAE,CAAC,SAASpP,EAAEoP,GAAG,IAAI2vD,EAAEjmC,EAAEytK,EAAEn3L,GAAG,OAAO,IAAI0pB,KAAKimC,EAAE3vD,EAAEpH,OAAO86qB,YAAY,EAAE/jnB,EAAE0jnB,OAAO9lnB,EAAEoC,EAAE6nF,MAAM7nF,EAAEwknB,eAAehmnB,EAAEwB,EAAEw1E,OAAOqviB,SAAS7knB,EAAE4jnB,WAAWplnB,EAAEwB,EAAEw1E,OAAOoviB,YAAY5knB,EAAEyjnB,WAAWjlnB,EAAEwB,EAAEw1E,OAAOsviB,YAAY9knB,EAAEujnB,iBAAiB/knB,EAAEwB,EAAEw1E,OAAOuviB,UAAU/knB,EAAEsjnB,SAAS,EAAEtjnB,EAAEqjnB,YAAY,EAAErjnB,EAAE6jnB,UAAU,EAAE7jnB,EAAEikI,OAAO,EAAEjkI,EAAEsknB,aAAatknB,EAAEwjnB,YAAY,EAAExjnB,EAAE2knB,gBAAgB,EAAE3knB,EAAEmknB,MAAM,GAAGpqpB,CAAC,CAAC,SAASowS,EAAE95T,EAAE2vD,EAAEjmC,EAAEykC,EAAEl8D,EAAEpB,GAAG,IAAImP,EAAE,OAAO,EAAE,IAAI04D,EAAE,EAAE,IAAI,IAAI/I,IAAIA,EAAE,GAAGxB,EAAE,GAAGuK,EAAE,EAAEvK,GAAGA,GAAGA,EAAE,KAAKuK,EAAE,EAAEvK,GAAG,IAAIl8D,EAAE,GAAGA,EAAE,GAAG,IAAIy3B,GAAGykC,EAAE,GAAGA,EAAE,IAAIwB,EAAE,GAAGA,EAAE,GAAG9+D,EAAE,GAAGA,EAAE,EAAE,OAAOsf,EAAEnQ,GAAG,GAAG,IAAImuD,IAAIA,EAAE,GAAG,IAAIoJ,EAAE,IAAIq5B,EAAE,OAAO5wF,EAAEpH,MAAM2+D,EAAEA,EAAEu3mB,KAAK9uqB,EAAEu3D,EAAE+b,KAAK5a,EAAEnB,EAAEq9mB,OAAO,KAAKr9mB,EAAEw9mB,OAAO5mnB,EAAEoJ,EAAE87mB,OAAO,GAAG97mB,EAAEw9mB,OAAOx9mB,EAAE+7mB,OAAO/7mB,EAAE87mB,OAAO,EAAE97mB,EAAEy9mB,UAAU/irB,EAAE,EAAEslE,EAAEo8mB,UAAU,GAAGp8mB,EAAEy9mB,UAAUz9mB,EAAEy8mB,UAAUz8mB,EAAEo8mB,UAAU,EAAEp8mB,EAAEw8mB,eAAex8mB,EAAEy9mB,UAAU,EAAE,GAAG,GAAGz9mB,EAAErqE,OAAO,IAAIokF,EAAEi+lB,KAAK,EAAEh4mB,EAAE87mB,QAAQ97mB,EAAEigF,KAAK,IAAIlmE,EAAEggmB,MAAM/5mB,EAAEo8mB,WAAWp8mB,EAAEx2B,KAAK,IAAIuwC,EAAEggmB,MAAM/5mB,EAAE87mB,QAAQ97mB,EAAEq+mB,YAAY,GAAG3jrB,EAAE,EAAEslE,EAAEo9mB,iBAAiB,EAAEp9mB,EAAEq+mB,YAAYr+mB,EAAEq7mB,YAAY,IAAIthmB,EAAEi+lB,KAAKh4mB,EAAEo9mB,kBAAkBp9mB,EAAEs+mB,MAAM,EAAEt+mB,EAAEq+mB,YAAYr+mB,EAAEo+mB,MAAM,EAAEp+mB,EAAEq+mB,YAAYr+mB,EAAE4tE,MAAMx1E,EAAE4H,EAAEu/N,SAASjmS,EAAE0mE,EAAEkwH,OAAO/9J,EAAE94B,EAAEoP,EAAE,CAACmuD,EAAE,CAAC,IAAIqrQ,EAAE,EAAE,EAAE,EAAE,GAAG,SAASx5T,EAAE2vD,GAAG,IAAIjmC,EAAE,MAAM,IAAIA,EAAE1pB,EAAE20qB,iBAAiB,IAAIjrpB,EAAE1pB,EAAE20qB,iBAAiB,KAAK,CAAC,GAAG30qB,EAAEwzqB,WAAW,EAAE,CAAC,GAAG1irB,EAAEkP,GAAG,IAAIA,EAAEwzqB,WAAW,IAAI7jnB,EAAE,OAAO,EAAE,GAAG,IAAI3vD,EAAEwzqB,UAAU,KAAK,CAACxzqB,EAAEizqB,UAAUjzqB,EAAEwzqB,UAAUxzqB,EAAEwzqB,UAAU,EAAE,IAAIrlnB,EAAEnuD,EAAEgzqB,YAAYtppB,EAAE,IAAI,IAAI1pB,EAAEizqB,UAAUjzqB,EAAEizqB,UAAU9knB,KAAKnuD,EAAEwzqB,UAAUxzqB,EAAEizqB,SAAS9knB,EAAEnuD,EAAEizqB,SAAS9knB,EAAEgJ,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,OAAO,EAAE,GAAG/uqB,EAAEizqB,SAASjzqB,EAAEgzqB,aAAahzqB,EAAEqzqB,OAAO,MAAMl8mB,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,OAAO,CAAC,CAAC,OAAO/uqB,EAAE4zL,OAAO,EAAE,IAAIjkI,GAAGwH,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,UAAU,EAAE,IAAI/uqB,EAAEizqB,SAASjzqB,EAAEgzqB,cAAc77mB,EAAEn3D,GAAE,GAAIA,EAAE8uqB,KAAKC,WAAW,EAAE,IAAI,IAAIv1W,EAAE,EAAE,EAAE,EAAE,EAAE/sQ,GAAG,IAAI+sQ,EAAE,EAAE,EAAE,GAAG,EAAE/sQ,GAAG,IAAI+sQ,EAAE,EAAE,EAAE,GAAG,GAAG/sQ,GAAG,IAAI+sQ,EAAE,EAAE,EAAE,GAAG,GAAGn8P,GAAG,IAAIm8P,EAAE,EAAE,GAAG,GAAG,GAAGn8P,GAAG,IAAIm8P,EAAE,EAAE,GAAG,IAAI,IAAIn8P,GAAG,IAAIm8P,EAAE,EAAE,GAAG,IAAI,IAAIn8P,GAAG,IAAIm8P,EAAE,GAAG,IAAI,IAAI,KAAKn8P,GAAG,IAAIm8P,EAAE,GAAG,IAAI,IAAI,KAAKn8P,IAAI3zC,EAAE0spB,YAAY,SAASp2qB,EAAE2vD,GAAG,OAAOmqQ,EAAE95T,EAAE2vD,EAAE,EAAE,GAAG,EAAE,EAAE,EAAEjmC,EAAEslpB,aAAal1W,EAAEpwS,EAAE2spB,aAAazlrB,EAAE84B,EAAE4spB,iBAAiBn/e,EAAEztK,EAAEulpB,iBAAiB,SAASjvqB,EAAE2vD,GAAG,OAAO3vD,GAAGA,EAAEpH,MAAM,IAAIoH,EAAEpH,MAAM06E,MAAM,GAAGtzE,EAAEpH,MAAMg8qB,OAAOjlnB,EAAE,IAAI,CAAC,EAAEjmC,EAAE+lpB,QAAQ,SAASzvqB,EAAE2vD,GAAG,IAAIjmC,EAAE4nD,EAAEzgF,EAAE0mE,EAAE,IAAIv3D,IAAIA,EAAEpH,OAAO+2D,EAAE,GAAGA,EAAE,EAAE,OAAO3vD,EAAEmQ,EAAEnQ,GAAG,IAAI,EAAE,GAAGsxE,EAAEtxE,EAAEpH,OAAOoH,EAAE4xG,SAAS5xG,EAAE8G,OAAO,IAAI9G,EAAEsvqB,UAAU,MAAMh+lB,EAAE2+G,QAAQ,IAAItgI,EAAE,OAAOx/C,EAAEnQ,EAAE,IAAIA,EAAE+uqB,WAAW,GAAG,GAAG,GAAGz9lB,EAAEw9lB,KAAK9uqB,EAAE0pB,EAAE4nD,EAAEwjmB,WAAWxjmB,EAAEwjmB,WAAWnlnB,EAAE,KAAK2hB,EAAE2+G,OAAO,GAAG,IAAI3+G,EAAEgC,KAAKtzE,EAAE4zqB,MAAM,EAAEtlnB,EAAEgjB,EAAE,IAAIhjB,EAAEgjB,EAAE,KAAKhjB,EAAEgjB,EAAE,GAAGA,EAAEsjmB,QAAQtmnB,EAAEgjB,GAAGA,EAAEsjmB,OAAOnkpB,KAAK,EAAE,IAAI6gD,EAAEsjmB,OAAO2B,KAAK,EAAE,IAAIjlmB,EAAEsjmB,OAAOl0pB,MAAM,EAAE,IAAI4wD,EAAEsjmB,OAAOvirB,KAAK,EAAE,IAAIi/E,EAAEsjmB,OAAOzypB,QAAQ,GAAG,IAAImsC,EAAEgjB,EAAE,IAAIA,EAAEsjmB,OAAOjkpB,MAAM29B,EAAEgjB,EAAEA,EAAEsjmB,OAAOjkpB,MAAM,EAAE,KAAK29B,EAAEgjB,EAAEA,EAAEsjmB,OAAOjkpB,MAAM,GAAG,KAAK29B,EAAEgjB,EAAEA,EAAEsjmB,OAAOjkpB,MAAM,GAAG,KAAK29B,EAAEgjB,EAAE,IAAIA,EAAE6zD,MAAM,EAAE7zD,EAAEwlN,UAAU,GAAGxlN,EAAE6zD,MAAM,EAAE,EAAE,GAAG72E,EAAEgjB,EAAE,IAAIA,EAAEsjmB,OAAOr8Q,IAAIjnV,EAAEsjmB,OAAOl0pB,OAAO4wD,EAAEsjmB,OAAOl0pB,MAAMxuB,SAASo8D,EAAEgjB,EAAE,IAAIA,EAAEsjmB,OAAOl0pB,MAAMxuB,QAAQo8D,EAAEgjB,EAAEA,EAAEsjmB,OAAOl0pB,MAAMxuB,QAAQ,EAAE,MAAMo/E,EAAEsjmB,OAAO2B,OAAOv2qB,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ,IAAItlN,EAAEujmB,QAAQ,EAAEvjmB,EAAE2+G,OAAO,KAAK3hI,EAAEgjB,EAAE,GAAGhjB,EAAEgjB,EAAE,GAAGhjB,EAAEgjB,EAAE,GAAGhjB,EAAEgjB,EAAE,GAAGhjB,EAAEgjB,EAAE,GAAGhjB,EAAEgjB,EAAE,IAAIA,EAAE6zD,MAAM,EAAE7zD,EAAEwlN,UAAU,GAAGxlN,EAAE6zD,MAAM,EAAE,EAAE,GAAG72E,EAAEgjB,EAAE,GAAGA,EAAE2+G,OAAO,SAAS,CAAC,IAAInlH,EAAE,GAAGwG,EAAEyjmB,OAAO,GAAG,IAAI,EAAEjqmB,IAAIwG,EAAEwlN,UAAU,GAAGxlN,EAAE6zD,MAAM,EAAE,EAAE7zD,EAAE6zD,MAAM,EAAE,EAAE,IAAI7zD,EAAE6zD,MAAM,EAAE,IAAI,EAAE,IAAI7zD,EAAE2hmB,WAAWnomB,GAAG,IAAIA,GAAG,GAAGA,EAAE,GAAGwG,EAAE2+G,OAAO,IAAIlsJ,EAAEutC,EAAExG,GAAG,IAAIwG,EAAE2hmB,WAAWlvoB,EAAEutC,EAAEtxE,EAAE4zqB,QAAQ,IAAI7voB,EAAEutC,EAAE,MAAMtxE,EAAE4zqB,QAAQ5zqB,EAAE4zqB,MAAM,CAAC,CAAC,GAAG,KAAKtimB,EAAE2+G,OAAO,GAAG3+G,EAAEsjmB,OAAOl0pB,MAAM,CAAC,IAAI7vB,EAAEygF,EAAEslN,QAAQtlN,EAAEujmB,SAAS,MAAMvjmB,EAAEsjmB,OAAOl0pB,MAAMxuB,UAAUo/E,EAAEslN,UAAUtlN,EAAEqjmB,mBAAmBrjmB,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ/lS,IAAImP,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ/lS,EAAEA,IAAIksE,EAAE/8D,GAAGnP,EAAEygF,EAAEslN,QAAQtlN,EAAEslN,UAAUtlN,EAAEqjmB,oBAAoBrmnB,EAAEgjB,EAAE,IAAIA,EAAEsjmB,OAAOl0pB,MAAM4wD,EAAEujmB,UAAUvjmB,EAAEujmB,UAAUvjmB,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ/lS,IAAImP,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ/lS,EAAEA,IAAIygF,EAAEujmB,UAAUvjmB,EAAEsjmB,OAAOl0pB,MAAMxuB,SAASo/E,EAAEujmB,QAAQ,EAAEvjmB,EAAE2+G,OAAO,GAAG,MAAM3+G,EAAE2+G,OAAO,GAAG,GAAG,KAAK3+G,EAAE2+G,OAAO,GAAG3+G,EAAEsjmB,OAAOvirB,KAAK,CAACxB,EAAEygF,EAAEslN,QAAQ,EAAE,CAAC,GAAGtlN,EAAEslN,UAAUtlN,EAAEqjmB,mBAAmBrjmB,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ/lS,IAAImP,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ/lS,EAAEA,IAAIksE,EAAE/8D,GAAGnP,EAAEygF,EAAEslN,QAAQtlN,EAAEslN,UAAUtlN,EAAEqjmB,kBAAkB,CAACp9mB,EAAE,EAAE,KAAK,CAACA,EAAE+Z,EAAEujmB,QAAQvjmB,EAAEsjmB,OAAOvirB,KAAKH,OAAO,IAAIo/E,EAAEsjmB,OAAOvirB,KAAK0jJ,WAAWzkE,EAAEujmB,WAAW,EAAEvmnB,EAAEgjB,EAAE/Z,EAAE,OAAO,IAAIA,GAAG+Z,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ/lS,IAAImP,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ/lS,EAAEA,IAAI,IAAI0mE,IAAI+Z,EAAEujmB,QAAQ,EAAEvjmB,EAAE2+G,OAAO,GAAG,MAAM3+G,EAAE2+G,OAAO,GAAG,GAAG,KAAK3+G,EAAE2+G,OAAO,GAAG3+G,EAAEsjmB,OAAOzypB,QAAQ,CAACtxB,EAAEygF,EAAEslN,QAAQ,EAAE,CAAC,GAAGtlN,EAAEslN,UAAUtlN,EAAEqjmB,mBAAmBrjmB,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ/lS,IAAImP,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ/lS,EAAEA,IAAIksE,EAAE/8D,GAAGnP,EAAEygF,EAAEslN,QAAQtlN,EAAEslN,UAAUtlN,EAAEqjmB,kBAAkB,CAACp9mB,EAAE,EAAE,KAAK,CAACA,EAAE+Z,EAAEujmB,QAAQvjmB,EAAEsjmB,OAAOzypB,QAAQjwB,OAAO,IAAIo/E,EAAEsjmB,OAAOzypB,QAAQ4zH,WAAWzkE,EAAEujmB,WAAW,EAAEvmnB,EAAEgjB,EAAE/Z,EAAE,OAAO,IAAIA,GAAG+Z,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ/lS,IAAImP,EAAE4zqB,MAAMl7mB,EAAE14D,EAAE4zqB,MAAMtimB,EAAEshmB,YAAYthmB,EAAEslN,QAAQ/lS,EAAEA,IAAI,IAAI0mE,IAAI+Z,EAAE2+G,OAAO,IAAI,MAAM3+G,EAAE2+G,OAAO,IAAI,GAAG,MAAM3+G,EAAE2+G,SAAS3+G,EAAEsjmB,OAAO2B,MAAMjlmB,EAAEslN,QAAQ,EAAEtlN,EAAEqjmB,kBAAkB53mB,EAAE/8D,GAAGsxE,EAAEslN,QAAQ,GAAGtlN,EAAEqjmB,mBAAmBrmnB,EAAEgjB,EAAE,IAAItxE,EAAE4zqB,OAAOtlnB,EAAEgjB,EAAEtxE,EAAE4zqB,OAAO,EAAE,KAAK5zqB,EAAE4zqB,MAAM,EAAEtimB,EAAE2+G,OAAO,MAAM3+G,EAAE2+G,OAAO,KAAK,IAAI3+G,EAAEslN,SAAS,GAAG75N,EAAE/8D,GAAG,IAAIA,EAAE+uqB,UAAU,OAAOz9lB,EAAEwjmB,YAAY,EAAE,OAAO,GAAG,IAAI90qB,EAAEsvqB,UAAUvvmB,EAAEpQ,IAAIoQ,EAAEr2C,IAAI,IAAIimC,EAAE,OAAOx/C,EAAEnQ,GAAG,GAAG,GAAG,MAAMsxE,EAAE2+G,QAAQ,IAAIjwL,EAAEsvqB,SAAS,OAAOn/pB,EAAEnQ,GAAG,GAAG,GAAG,IAAIA,EAAEsvqB,UAAU,IAAIh+lB,EAAEkimB,WAAW,IAAI7jnB,GAAG,MAAM2hB,EAAE2+G,OAAO,CAAC,IAAIxjI,EAAE,IAAI6kB,EAAEwlN,SAAS,SAAS92R,EAAE2vD,GAAG,IAAI,IAAIjmC,IAAI,CAAC,GAAG,IAAI1pB,EAAEwzqB,YAAY1irB,EAAEkP,GAAG,IAAIA,EAAEwzqB,WAAW,CAAC,GAAG,IAAI7jnB,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG3vD,EAAEi0qB,aAAa,EAAEvqpB,EAAEz3B,EAAEiirB,UAAUl0qB,EAAE,EAAEA,EAAE9S,OAAO8S,EAAEizqB,WAAWjzqB,EAAEwzqB,YAAYxzqB,EAAEizqB,WAAWvppB,IAAIytC,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,OAAO,CAAC,CAAC,OAAO/uqB,EAAE4zL,OAAO,EAAE,IAAIjkI,GAAGwH,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,UAAU,EAAE,GAAG/uqB,EAAEo0qB,WAAWj9mB,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,EAAE,CAAC,CAA1U,CAA4Uz9lB,EAAE3hB,GAAG,IAAI2hB,EAAEwlN,SAAS,SAAS92R,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAEykC,EAAEmjB,EAAEzgF,EAAE6nE,EAAE14D,EAAE9S,SAAS,CAAC,GAAG8S,EAAEwzqB,WAAW,IAAI,CAAC,GAAG1irB,EAAEkP,GAAGA,EAAEwzqB,WAAW,KAAK,IAAI7jnB,EAAE,OAAO,EAAE,GAAG,IAAI3vD,EAAEwzqB,UAAU,KAAK,CAAC,GAAGxzqB,EAAEi0qB,aAAa,EAAEj0qB,EAAEwzqB,WAAW,GAAGxzqB,EAAEizqB,SAAS,IAAI9knB,EAAEuK,EAAE4Y,EAAEtxE,EAAEizqB,SAAS,MAAMv6mB,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,GAAG,CAACzgF,EAAEmP,EAAEizqB,SAAS,IAAI,UAAU9knB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAInjB,IAAIuK,IAAI4Y,IAAIA,EAAEzgF,GAAGmP,EAAEi0qB,aAAa,KAAKpjrB,EAAEygF,GAAGtxE,EAAEi0qB,aAAaj0qB,EAAEwzqB,YAAYxzqB,EAAEi0qB,aAAaj0qB,EAAEwzqB,UAAU,CAAC,GAAGxzqB,EAAEi0qB,cAAc,GAAGvqpB,EAAEz3B,EAAEiirB,UAAUl0qB,EAAE,EAAEA,EAAEi0qB,aAAa,GAAGj0qB,EAAEwzqB,WAAWxzqB,EAAEi0qB,aAAaj0qB,EAAEizqB,UAAUjzqB,EAAEi0qB,aAAaj0qB,EAAEi0qB,aAAa,IAAIvqpB,EAAEz3B,EAAEiirB,UAAUl0qB,EAAE,EAAEA,EAAE9S,OAAO8S,EAAEizqB,WAAWjzqB,EAAEwzqB,YAAYxzqB,EAAEizqB,YAAYvppB,IAAIytC,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,OAAO,CAAC,CAAC,OAAO/uqB,EAAE4zL,OAAO,EAAE,IAAIjkI,GAAGwH,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,UAAU,EAAE,GAAG/uqB,EAAEo0qB,WAAWj9mB,EAAEn3D,GAAE,GAAI,IAAIA,EAAE8uqB,KAAKC,WAAW,EAAE,CAAC,CAA3xB,CAA6xBz9lB,EAAE3hB,GAAGxB,EAAEmjB,EAAE6zD,OAAOt4E,KAAKykB,EAAE3hB,GAAG,GAAG,IAAIlD,GAAG,IAAIA,IAAI6kB,EAAE2+G,OAAO,KAAK,IAAIxjI,GAAG,IAAIA,EAAE,OAAO,IAAIzsD,EAAE+uqB,YAAYz9lB,EAAEwjmB,YAAY,GAAG,EAAE,GAAG,IAAIronB,IAAI,IAAIkD,EAAE19D,EAAEukrB,UAAUllmB,GAAG,IAAI3hB,IAAI19D,EAAEwkrB,iBAAiBnlmB,EAAE,EAAE,GAAE,GAAI,IAAI3hB,IAAIpC,EAAE+jB,EAAEkmE,MAAM,IAAIlmE,EAAEkimB,YAAYlimB,EAAE2hmB,SAAS,EAAE3hmB,EAAE0hmB,YAAY,EAAE1hmB,EAAEsiH,OAAO,KAAK72H,EAAE/8D,GAAG,IAAIA,EAAE+uqB,WAAW,OAAOz9lB,EAAEwjmB,YAAY,EAAE,CAAC,CAAC,OAAO,IAAInlnB,EAAE,EAAE2hB,EAAEgC,MAAM,EAAE,GAAG,IAAIhC,EAAEgC,MAAMhlB,EAAEgjB,EAAE,IAAItxE,EAAE4zqB,OAAOtlnB,EAAEgjB,EAAEtxE,EAAE4zqB,OAAO,EAAE,KAAKtlnB,EAAEgjB,EAAEtxE,EAAE4zqB,OAAO,GAAG,KAAKtlnB,EAAEgjB,EAAEtxE,EAAE4zqB,OAAO,GAAG,KAAKtlnB,EAAEgjB,EAAE,IAAItxE,EAAE6zqB,UAAUvlnB,EAAEgjB,EAAEtxE,EAAE6zqB,UAAU,EAAE,KAAKvlnB,EAAEgjB,EAAEtxE,EAAE6zqB,UAAU,GAAG,KAAKvlnB,EAAEgjB,EAAEtxE,EAAE6zqB,UAAU,GAAG,OAAO9voB,EAAEutC,EAAEtxE,EAAE4zqB,QAAQ,IAAI7voB,EAAEutC,EAAE,MAAMtxE,EAAE4zqB,QAAQ72mB,EAAE/8D,GAAGsxE,EAAEgC,KAAK,IAAIhC,EAAEgC,MAAMhC,EAAEgC,MAAM,IAAIhC,EAAEslN,QAAQ,EAAE,EAAE,EAAEltQ,EAAEmmpB,WAAW,SAAS7vqB,GAAG,IAAI2vD,EAAE,OAAO3vD,GAAGA,EAAEpH,MAAM,MAAM+2D,EAAE3vD,EAAEpH,MAAMq3L,SAAS,KAAKtgI,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,EAAEx/C,EAAEnQ,GAAG,IAAIA,EAAEpH,MAAM,KAAK,MAAM+2D,EAAEx/C,EAAEnQ,GAAG,GAAG,IAAI,CAAC,EAAE0pB,EAAEylpB,qBAAqB,SAASnvqB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEl8D,EAAEymE,EAAEnB,EAAEpnD,EAAE4vD,EAAEhD,EAAE5F,EAAExH,EAAEz9D,OAAO,IAAI8N,IAAIA,EAAEpH,MAAM,OAAO,EAAE,GAAG,KAAK8/D,GAAGhvC,EAAE1pB,EAAEpH,OAAO06E,OAAO,IAAI5a,GAAG,KAAKhvC,EAAEumK,QAAQvmK,EAAE8ppB,UAAU,OAAO,EAAE,IAAI,IAAI96mB,IAAI14D,EAAE4zqB,MAAM/irB,EAAEmP,EAAE4zqB,MAAMjknB,EAAEwH,EAAE,IAAIztC,EAAE4pD,KAAK,EAAEnc,GAAGztC,EAAE2ppB,SAAS,IAAI36mB,IAAInL,EAAE7jC,EAAE8tH,MAAM9tH,EAAEuppB,SAAS,EAAEvppB,EAAEsppB,YAAY,EAAEtppB,EAAEkqK,OAAO,GAAG72H,EAAE,IAAIuU,EAAEi+lB,KAAK7lpB,EAAE2ppB,QAAQ/hmB,EAAEy/lB,SAASh0mB,EAAEpN,EAAEwH,EAAEztC,EAAE2ppB,OAAO3ppB,EAAE2ppB,OAAO,GAAG1jnB,EAAEoN,EAAE5F,EAAEztC,EAAE2ppB,QAAQ97mB,EAAEv3D,EAAEsvqB,SAASn/pB,EAAEnQ,EAAEqvqB,QAAQtvmB,EAAE//D,EAAE8G,MAAM9G,EAAEsvqB,SAASn4mB,EAAEn3D,EAAEqvqB,QAAQ,EAAErvqB,EAAE8G,MAAM6oD,EAAE7+D,EAAE44B,GAAGA,EAAE8ppB,WAAW,GAAG,CAACrlnB,EAAEzkC,EAAEuppB,SAAShhrB,EAAEy3B,EAAE8ppB,UAAU,EAAE,GAAG9ppB,EAAEoqpB,OAAOpqpB,EAAEoqpB,OAAOpqpB,EAAEqqpB,WAAWrqpB,EAAEx8B,OAAOihE,EAAE,EAAE,IAAIzkC,EAAEsqpB,UAAUtqpB,EAAEqX,KAAKotB,EAAEzkC,EAAE4ppB,QAAQ5ppB,EAAE8tH,KAAK9tH,EAAEoqpB,OAAOpqpB,EAAE8tH,KAAK9tH,EAAEoqpB,OAAO3lnB,EAAEA,YAAYl8D,GAAGy3B,EAAEuppB,SAAS9knB,EAAEzkC,EAAE8ppB,UAAU,EAAE1irB,EAAE44B,EAAE,CAAC,OAAOA,EAAEuppB,UAAUvppB,EAAE8ppB,UAAU9ppB,EAAEsppB,YAAYtppB,EAAEuppB,SAASvppB,EAAEkqK,OAAOlqK,EAAE8ppB,UAAU9ppB,EAAE8ppB,UAAU,EAAE9ppB,EAAEuqpB,aAAavqpB,EAAEyppB,YAAY,EAAEzppB,EAAE4qpB,gBAAgB,EAAEt0qB,EAAEqvqB,QAAQl/pB,EAAEnQ,EAAE8G,MAAMi5D,EAAE//D,EAAEsvqB,SAAS/3mB,EAAE7tC,EAAE4pD,KAAK5a,EAAE,CAAC,EAAEhvC,EAAEgtpB,YAAY,oCAAoC,EAAE,CAAC,kBAAkB,IAAI,YAAY,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,MAAM,IAAI,CAAC,SAAS12qB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,WAAWl5D,KAAK9pC,KAAK,EAAE8pC,KAAK5pC,KAAK,EAAE4pC,KAAKo8mB,OAAO,EAAEp8mB,KAAKg+V,GAAG,EAAEh+V,KAAK75C,MAAM,KAAK65C,KAAKq8mB,UAAU,EAAEr8mB,KAAKloE,KAAK,GAAGkoE,KAAKp4C,QAAQ,GAAGo4C,KAAKg8mB,KAAK,EAAEh8mB,KAAKk3P,MAAK,CAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASzxT,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,EAAEnB,EAAEpnD,EAAE4vD,EAAExS,EAAEwP,EAAE5F,EAAE7I,EAAEvqB,EAAE+mC,EAAEh6E,EAAE27D,EAAE4Q,EAAEm8P,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAEzvD,EAAEsvD,EAAEjwS,EAAE1pB,EAAEpH,MAAMu1D,EAAEnuD,EAAEqvqB,QAAQhla,EAAErqQ,EAAE8G,MAAMwqE,EAAEnjB,GAAGnuD,EAAEsvqB,SAAS,GAAGr9qB,EAAE+N,EAAEwvqB,SAAS71W,EAAE35T,EAAE4xG,OAAO/gH,EAAEoB,GAAG09D,EAAE3vD,EAAE+uqB,WAAWr2mB,EAAEzmE,GAAG+N,EAAE+uqB,UAAU,KAAKx3mB,EAAE7tC,EAAEmtpB,KAAK1mqB,EAAEuZ,EAAEotpB,MAAM/2mB,EAAEr2C,EAAEqtpB,MAAMxpnB,EAAE7jC,EAAEstpB,MAAMj6mB,EAAErzC,EAAEx8B,OAAOiqE,EAAEztC,EAAEutpB,KAAK3onB,EAAE5kC,EAAEwtpB,KAAKnzoB,EAAEra,EAAEytpB,QAAQrsmB,EAAEphD,EAAE0tpB,SAAStmrB,GAAG,GAAG44B,EAAE2tpB,SAAS,EAAE5qnB,GAAG,GAAG/iC,EAAE4tpB,UAAU,EAAEt3qB,EAAE,EAAE,CAACsuD,EAAE,KAAK6I,GAAGkzM,EAAEl8M,MAAMG,EAAEA,GAAG,EAAE6I,GAAGkzM,EAAEl8M,MAAMG,EAAEA,GAAG,GAAG+O,EAAEt5B,EAAEozB,EAAErmE,GAAG6+D,EAAE,OAAO,CAAC,GAAGwH,KAAKqiQ,EAAEn8P,IAAI,GAAG/O,GAAGkrQ,EAAE,KAAKA,EAAEn8P,IAAI,GAAG,KAAKs8P,EAAE1nU,KAAK,MAAMorE,MAAM,CAAC,KAAK,GAAGm8P,GAAG,CAAC,GAAG,IAAI,GAAGA,GAAG,CAACn8P,EAAEt5B,GAAG,MAAMs5B,IAAIlG,GAAG,GAAGqiQ,GAAG,IAAI,SAAS7pQ,CAAC,CAAC,GAAG,GAAG6pQ,EAAE,CAAC9vS,EAAEjC,KAAK,GAAG,MAAMznB,CAAC,CAACA,EAAEy/L,IAAI,8BAA8B/1K,EAAEjC,KAAK,GAAG,MAAMznB,CAAC,CAAC4wF,EAAE,MAAMvzB,GAAGm8P,GAAG,MAAMlrQ,EAAEkrQ,IAAIriQ,GAAGkzM,EAAEl8M,MAAMG,EAAEA,GAAG,GAAGsiC,GAAGz5B,GAAG,GAAGqiQ,GAAG,EAAEriQ,KAAKqiQ,EAAElrQ,GAAGkrQ,GAAGlrQ,EAAE,KAAK6I,GAAGkzM,EAAEl8M,MAAMG,EAAEA,GAAG,EAAE6I,GAAGkzM,EAAEl8M,MAAMG,EAAEA,GAAG,GAAG+O,EAAEyN,EAAE3T,EAAE1K,GAAG/iC,EAAE,OAAO,CAAC,GAAGytC,KAAKqiQ,EAAEn8P,IAAI,GAAG/O,GAAGkrQ,IAAI,IAAIA,EAAEn8P,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,GAAGm8P,GAAG,CAACn8P,EAAEyN,GAAG,MAAMzN,IAAIlG,GAAG,GAAGqiQ,GAAG,IAAI,SAAS9vS,CAAC,CAAC1pB,EAAEy/L,IAAI,wBAAwB/1K,EAAEjC,KAAK,GAAG,MAAMznB,CAAC,CAAC,GAAGm3L,EAAE,MAAM95H,EAAE/O,GAAGkrQ,GAAG,MAAMriQ,GAAGkzM,EAAEl8M,MAAMG,GAAGA,GAAG,GAAGkrQ,IAAIriQ,GAAGkzM,EAAEl8M,MAAMG,EAAEA,GAAG,KAAK6oI,GAAGhgI,GAAG,GAAGqiQ,GAAG,GAAGjiQ,EAAE,CAACv3D,EAAEy/L,IAAI,gCAAgC/1K,EAAEjC,KAAK,GAAG,MAAMznB,CAAC,CAAC,GAAGm3D,KAAKqiQ,EAAElrQ,GAAGkrQ,EAAEriI,GAAGqiI,EAAEvnU,EAAEpB,GAAG,CAAC,IAAI2oU,EAAEriI,EAAEqiI,GAAGz5P,GAAGr2C,EAAE6tpB,KAAK,CAACv3qB,EAAEy/L,IAAI,gCAAgC/1K,EAAEjC,KAAK,GAAG,MAAMznB,CAAC,CAAC,GAAGpP,EAAE,EAAEkpU,EAAE/8P,EAAE,IAAIxP,GAAG,GAAG38D,GAAGuf,EAAEqpT,EAAEA,EAAE5oO,EAAE,CAACA,GAAG4oO,EAAE,GAAGG,EAAE1nU,KAAK8qE,EAAEnsE,aAAa4oU,GAAG5oU,EAAEqB,EAAEklM,EAAE2iI,EAAEH,CAAC,OAAO,GAAGpsQ,EAAEisQ,GAAG,GAAG5oU,GAAGuf,EAAEo9C,EAAEisQ,GAAGA,GAAGjsQ,GAAGqjC,EAAE,CAACA,GAAG4oO,EAAE,GAAGG,EAAE1nU,KAAK8qE,EAAEnsE,aAAa4oU,GAAG,GAAG5oU,EAAE,EAAE28D,EAAEqjC,EAAE,CAACA,GAAG4oO,EAAEjsQ,EAAE,GAAGosQ,EAAE1nU,KAAK8qE,EAAEnsE,aAAa4oU,GAAG5oU,EAAEqB,EAAEklM,EAAE2iI,EAAEH,CAAC,CAAC,OAAO,GAAG/oU,GAAG28D,EAAEisQ,EAAEA,EAAE5oO,EAAE,CAACA,GAAG4oO,EAAE,GAAGG,EAAE1nU,KAAK8qE,EAAEnsE,aAAa4oU,GAAG5oU,EAAEqB,EAAEklM,EAAE2iI,EAAEH,CAAC,CAAC,KAAK/oO,EAAE,GAAG+oO,EAAE1nU,KAAK6nU,EAAElpU,KAAK+oU,EAAE1nU,KAAK6nU,EAAElpU,KAAK+oU,EAAE1nU,KAAK6nU,EAAElpU,KAAKggG,GAAG,EAAEA,IAAI+oO,EAAE1nU,KAAK6nU,EAAElpU,KAAKggG,EAAE,IAAI+oO,EAAE1nU,KAAK6nU,EAAElpU,MAAM,KAAK,CAACA,EAAEqB,EAAEklM,EAAE,GAAGwiI,EAAE1nU,KAAK0nU,EAAE/oU,KAAK+oU,EAAE1nU,KAAK0nU,EAAE/oU,KAAK+oU,EAAE1nU,KAAK0nU,EAAE/oU,KAAKggG,GAAG,QAAQA,EAAE,GAAGA,IAAI+oO,EAAE1nU,KAAK0nU,EAAE/oU,KAAKggG,EAAE,IAAI+oO,EAAE1nU,KAAK0nU,EAAE/oU,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAOu9D,EAAEmjB,GAAGr/E,EAAEymE,GAAGvK,GAAGyiC,EAAEtiC,GAAG,EAAE6I,IAAI,IAAI7I,GAAGsiC,GAAG,IAAI,EAAE5wF,EAAEqvqB,QAAQlhnB,EAAEnuD,EAAEwvqB,SAASv9qB,EAAE+N,EAAEsvqB,SAASnhnB,EAAEmjB,EAAEA,EAAEnjB,EAAE,EAAE,GAAGA,EAAEmjB,GAAGtxE,EAAE+uqB,UAAU98qB,EAAEymE,EAAEA,EAAEzmE,EAAE,IAAI,KAAKA,EAAEymE,GAAGhvC,EAAEutpB,KAAK9/mB,EAAEztC,EAAEwtpB,KAAK5onB,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAStuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,WAAWnP,EAAEmP,EAAE,aAAa04D,EAAE14D,EAAE,cAAc,SAASu3D,EAAEv3D,GAAG,OAAOA,IAAI,GAAG,MAAMA,IAAI,EAAE,SAAS,MAAMA,IAAI,KAAK,IAAIA,IAAI,GAAG,CAAC,SAASmQ,IAAIoqD,KAAK9yC,KAAK,EAAE8yC,KAAK76B,MAAK,EAAG66B,KAAK+Y,KAAK,EAAE/Y,KAAKi9mB,UAAS,EAAGj9mB,KAAKi4P,MAAM,EAAEj4P,KAAKs8mB,KAAK,EAAEt8mB,KAAK8iF,MAAM,EAAE9iF,KAAKxwC,MAAM,EAAEwwC,KAAKi9E,KAAK,KAAKj9E,KAAKk9mB,MAAM,EAAEl9mB,KAAKu8mB,MAAM,EAAEv8mB,KAAKw8mB,MAAM,EAAEx8mB,KAAKy8mB,MAAM,EAAEz8mB,KAAKrtE,OAAO,KAAKqtE,KAAK08mB,KAAK,EAAE18mB,KAAK28mB,KAAK,EAAE38mB,KAAKroE,OAAO,EAAEqoE,KAAKnG,OAAO,EAAEmG,KAAK75C,MAAM,EAAE65C,KAAK48mB,QAAQ,KAAK58mB,KAAK68mB,SAAS,KAAK78mB,KAAK88mB,QAAQ,EAAE98mB,KAAK+8mB,SAAS,EAAE/8mB,KAAKm9mB,MAAM,EAAEn9mB,KAAKo9mB,KAAK,EAAEp9mB,KAAKq9mB,MAAM,EAAEr9mB,KAAKs9mB,KAAK,EAAEt9mB,KAAKxK,KAAK,KAAKwK,KAAKu9mB,KAAK,IAAI3pnB,EAAEmjnB,MAAM,KAAK/2mB,KAAKw9mB,KAAK,IAAI5pnB,EAAEmjnB,MAAM,KAAK/2mB,KAAKy9mB,OAAO,KAAKz9mB,KAAK09mB,QAAQ,KAAK19mB,KAAKg9mB,KAAK,EAAEh9mB,KAAK29mB,KAAK,EAAE39mB,KAAK49mB,IAAI,CAAC,CAAC,SAASp4mB,EAAE//D,GAAG,IAAI2vD,EAAE,OAAO3vD,GAAGA,EAAEpH,OAAO+2D,EAAE3vD,EAAEpH,MAAMoH,EAAE6zqB,SAAS7zqB,EAAE8yqB,UAAUnjnB,EAAE5lC,MAAM,EAAE/pB,EAAEy/L,IAAI,GAAG9vI,EAAE2jB,OAAOtzE,EAAE4zqB,MAAM,EAAEjknB,EAAE2jB,MAAM3jB,EAAEloC,KAAK,EAAEkoC,EAAEjwB,KAAK,EAAEiwB,EAAE6nnB,SAAS,EAAE7nnB,EAAEknnB,KAAK,MAAMlnnB,EAAE6nF,KAAK,KAAK7nF,EAAEsnnB,KAAK,EAAEtnnB,EAAEunnB,KAAK,EAAEvnnB,EAAEwnnB,QAAQxnnB,EAAEqonB,OAAO,IAAI7pnB,EAAEojnB,MAAM,KAAK5hnB,EAAEynnB,SAASznnB,EAAEsonB,QAAQ,IAAI9pnB,EAAEojnB,MAAM,KAAK5hnB,EAAE4nnB,KAAK,EAAE5nnB,EAAEuonB,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS3qnB,EAAEvtD,GAAG,IAAI2vD,EAAE,OAAO3vD,GAAGA,EAAEpH,QAAQ+2D,EAAE3vD,EAAEpH,OAAOk+qB,MAAM,EAAEnnnB,EAAEonnB,MAAM,EAAEpnnB,EAAEqnnB,MAAM,EAAEj3mB,EAAE//D,KAAK,CAAC,CAAC,SAAS+8D,EAAE/8D,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAE,OAAOnuD,GAAGA,EAAEpH,OAAOu1D,EAAEnuD,EAAEpH,MAAM+2D,EAAE,GAAGjmC,EAAE,EAAEimC,GAAGA,IAAIjmC,EAAE,GAAGimC,GAAG,GAAGA,EAAE,KAAKA,GAAG,KAAKA,IAAIA,EAAE,GAAGA,EAAE,KAAK,GAAG,OAAOxB,EAAEjhE,QAAQihE,EAAEspnB,QAAQ9nnB,IAAIxB,EAAEjhE,OAAO,MAAMihE,EAAEmlB,KAAK5pD,EAAEykC,EAAEspnB,MAAM9nnB,EAAEpC,EAAEvtD,MAAM,CAAC,CAAC,SAASm3D,EAAEn3D,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAE,OAAOnuD,GAAGmuD,EAAE,IAAIh+C,EAAEnQ,EAAEpH,MAAMu1D,EAAEA,EAAEjhE,OAAO,KAAK,KAAKw8B,EAAEqzC,EAAE/8D,EAAE2vD,MAAM3vD,EAAEpH,MAAM,MAAM8wB,IAAI,CAAC,CAAC,IAAI4kC,EAAEvqB,EAAE+mC,GAAE,EAAG,SAASh6E,EAAEkP,GAAG,GAAG8qE,EAAE,CAAC,IAAInb,EAAE,IAAIrB,EAAE,IAAIH,EAAEojnB,MAAM,KAAKxtoB,EAAE,IAAIoqB,EAAEojnB,MAAM,IAAI5hnB,EAAE,EAAEA,EAAE,KAAK3vD,EAAE83qB,KAAKnonB,KAAK,EAAE,KAAKA,EAAE,KAAK3vD,EAAE83qB,KAAKnonB,KAAK,EAAE,KAAKA,EAAE,KAAK3vD,EAAE83qB,KAAKnonB,KAAK,EAAE,KAAKA,EAAE,KAAK3vD,EAAE83qB,KAAKnonB,KAAK,EAAE,IAAI+I,EAAE,EAAE14D,EAAE83qB,KAAK,EAAE,IAAIxpnB,EAAE,EAAEtuD,EAAE+3qB,KAAK,CAACb,KAAK,IAAIvnnB,EAAE,EAAEA,EAAE,IAAI3vD,EAAE83qB,KAAKnonB,KAAK,EAAE+I,EAAE,EAAE14D,EAAE83qB,KAAK,EAAE,GAAG/zoB,EAAE,EAAE/jC,EAAE+3qB,KAAK,CAACb,KAAK,IAAIpsmB,GAAE,CAAE,CAAC9qE,EAAEm3qB,QAAQ7onB,EAAEtuD,EAAEq3qB,QAAQ,EAAEr3qB,EAAEo3qB,SAASrzoB,EAAE/jC,EAAEs3qB,SAAS,CAAC,CAAC,SAAS7qnB,EAAEzsD,EAAE2vD,EAAEjmC,EAAE4nD,GAAG,IAAIr/E,EAAEpB,EAAEmP,EAAEpH,MAAM,OAAO,OAAO/H,EAAE3D,SAAS2D,EAAEimrB,MAAM,GAAGjmrB,EAAE4mrB,MAAM5mrB,EAAEmmrB,MAAM,EAAEnmrB,EAAEkmrB,MAAM,EAAElmrB,EAAE3D,OAAO,IAAIihE,EAAEohnB,KAAK1+qB,EAAEimrB,QAAQxlmB,GAAGzgF,EAAEimrB,OAAO3onB,EAAE4inB,SAASlgrB,EAAE3D,OAAOyiE,EAAEjmC,EAAE74B,EAAEimrB,MAAMjmrB,EAAEimrB,MAAM,GAAGjmrB,EAAEmmrB,MAAM,EAAEnmrB,EAAEkmrB,MAAMlmrB,EAAEimrB,SAAS7krB,EAAEpB,EAAEimrB,MAAMjmrB,EAAEmmrB,OAAO1lmB,IAAIr/E,EAAEq/E,GAAGnjB,EAAE4inB,SAASlgrB,EAAE3D,OAAOyiE,EAAEjmC,EAAE4nD,EAAEr/E,EAAEpB,EAAEmmrB,QAAQ1lmB,GAAGr/E,IAAIk8D,EAAE4inB,SAASlgrB,EAAE3D,OAAOyiE,EAAEjmC,EAAE4nD,EAAEA,EAAE,GAAGzgF,EAAEmmrB,MAAM1lmB,EAAEzgF,EAAEkmrB,MAAMlmrB,EAAEimrB,QAAQjmrB,EAAEmmrB,OAAO/krB,EAAEpB,EAAEmmrB,QAAQnmrB,EAAEimrB,QAAQjmrB,EAAEmmrB,MAAM,GAAGnmrB,EAAEkmrB,MAAMlmrB,EAAEimrB,QAAQjmrB,EAAEkmrB,OAAO9krB,KAAK,CAAC,CAACy3B,EAAE0upB,aAAa7qnB,EAAE7jC,EAAE2upB,cAAct7mB,EAAErzC,EAAE4upB,iBAAiBv4mB,EAAEr2C,EAAE6upB,YAAY,SAASv4qB,GAAG,OAAOm3D,EAAEn3D,EAAE,GAAG,EAAE0pB,EAAEumpB,aAAa94mB,EAAEztC,EAAE8mpB,QAAQ,SAASxwqB,EAAE2vD,GAAG,IAAIjmC,EAAEvZ,EAAE4vD,EAAExS,EAAEwP,EAAE5F,EAAE7I,EAAEvqB,EAAE+mC,EAAEzN,EAAEm8P,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAEzvD,EAAEsvD,EAAEN,EAAE1gR,EAAEohR,EAAE6kU,EAAEp7R,EAAEq7R,EAAEtlU,EAAEE,EAAE,EAAEqlU,EAAE,IAAI3wkB,EAAEohnB,KAAK,GAAG71W,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI15T,IAAIA,EAAEpH,QAAQoH,EAAE4xG,SAAS5xG,EAAE8G,OAAO,IAAI9G,EAAEsvqB,SAAS,OAAO,EAAE,MAAM5lpB,EAAE1pB,EAAEpH,OAAO6uB,OAAOiC,EAAEjC,KAAK,IAAIs1C,EAAE/8D,EAAEwvqB,SAASzvmB,EAAE//D,EAAE4xG,OAAOtjD,EAAEtuD,EAAE+uqB,UAAUxhnB,EAAEvtD,EAAEqvqB,QAAQl/pB,EAAEnQ,EAAE8G,MAAMqwD,EAAEn3D,EAAEsvqB,SAASvroB,EAAEra,EAAEutpB,KAAKnsmB,EAAEphD,EAAEwtpB,KAAK75mB,EAAElG,EAAEqiQ,EAAElrQ,EAAEk1S,EAAE,EAAExjW,EAAE,OAAO,OAAO0pB,EAAEjC,MAAM,KAAK,EAAE,GAAG,IAAIiC,EAAE4pD,KAAK,CAAC5pD,EAAEjC,KAAK,GAAG,KAAK,CAAC,KAAKqjD,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG,EAAEphD,EAAE4pD,MAAM,QAAQvvC,EAAE,CAACra,EAAE2zH,MAAM,EAAEyhf,EAAE,GAAG,IAAI/6lB,EAAE+6lB,EAAE,GAAG/6lB,IAAI,EAAE,IAAIra,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMyhf,EAAE,EAAE,GAAG/6lB,EAAE,EAAE+mC,EAAE,EAAEphD,EAAEjC,KAAK,EAAE,KAAK,CAAC,GAAGiC,EAAE8oS,MAAM,EAAE9oS,EAAE8tH,OAAO9tH,EAAE8tH,KAAKi6K,MAAK,KAAM,EAAE/nS,EAAE4pD,UAAU,IAAIvvC,IAAI,IAAIA,GAAG,IAAI,GAAG,CAAC/jC,EAAEy/L,IAAI,yBAAyB/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,GAAGsc,GAAG,CAAC/jC,EAAEy/L,IAAI,6BAA6B/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAGqjD,GAAG,EAAE8zjB,EAAE,GAAG,IAAI76lB,KAAK,IAAI,IAAIra,EAAE+tpB,MAAM/tpB,EAAE+tpB,MAAM74C,OAAO,GAAGA,EAAEl1mB,EAAE+tpB,MAAM,CAACz3qB,EAAEy/L,IAAI,sBAAsB/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAEmtpB,KAAK,GAAGj4C,EAAE5+nB,EAAE4zqB,MAAMlqpB,EAAE2zH,MAAM,EAAE3zH,EAAEjC,KAAK,IAAIsc,EAAE,GAAG,GAAGA,EAAE,EAAE+mC,EAAE,EAAE,MAAM,KAAK,EAAE,KAAKA,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAGphD,EAAE8oS,MAAMzuR,EAAE,IAAI,IAAIra,EAAE8oS,OAAO,CAACxyT,EAAEy/L,IAAI,6BAA6B/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAG,MAAMiC,EAAE8oS,MAAM,CAACxyT,EAAEy/L,IAAI,2BAA2B/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAE8tH,OAAO9tH,EAAE8tH,KAAK/mH,KAAKsT,GAAG,EAAE,GAAG,IAAIra,EAAE8oS,QAAQssU,EAAE,GAAG,IAAI/6lB,EAAE+6lB,EAAE,GAAG/6lB,IAAI,EAAE,IAAIra,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMyhf,EAAE,EAAE,IAAI/6lB,EAAE,EAAE+mC,EAAE,EAAEphD,EAAEjC,KAAK,EAAE,KAAK,EAAE,KAAKqjD,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACphD,EAAE8tH,OAAO9tH,EAAE8tH,KAAK7mH,KAAKoT,GAAG,IAAIra,EAAE8oS,QAAQssU,EAAE,GAAG,IAAI/6lB,EAAE+6lB,EAAE,GAAG/6lB,IAAI,EAAE,IAAI+6lB,EAAE,GAAG/6lB,IAAI,GAAG,IAAI+6lB,EAAE,GAAG/6lB,IAAI,GAAG,IAAIra,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMyhf,EAAE,EAAE,IAAI/6lB,EAAE,EAAE+mC,EAAE,EAAEphD,EAAEjC,KAAK,EAAE,KAAK,EAAE,KAAKqjD,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACphD,EAAE8tH,OAAO9tH,EAAE8tH,KAAKm/hB,OAAO,IAAI5yoB,EAAEra,EAAE8tH,KAAK+gR,GAAGx0X,GAAG,GAAG,IAAIra,EAAE8oS,QAAQssU,EAAE,GAAG,IAAI/6lB,EAAE+6lB,EAAE,GAAG/6lB,IAAI,EAAE,IAAIra,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMyhf,EAAE,EAAE,IAAI/6lB,EAAE,EAAE+mC,EAAE,EAAEphD,EAAEjC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKiC,EAAE8oS,MAAM,CAAC,KAAK1nP,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACphD,EAAEx3B,OAAO6xC,EAAEra,EAAE8tH,OAAO9tH,EAAE8tH,KAAKo/hB,UAAU7yoB,GAAG,IAAIra,EAAE8oS,QAAQssU,EAAE,GAAG,IAAI/6lB,EAAE+6lB,EAAE,GAAG/6lB,IAAI,EAAE,IAAIra,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMyhf,EAAE,EAAE,IAAI/6lB,EAAE,EAAE+mC,EAAE,CAAC,MAAMphD,EAAE8tH,OAAO9tH,EAAE8tH,KAAK92H,MAAM,MAAMgJ,EAAEjC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKiC,EAAE8oS,SAAS5hO,EAAElnE,EAAEx3B,QAAQilE,IAAIy5B,EAAEz5B,GAAGy5B,IAAIlnE,EAAE8tH,OAAOonf,EAAEl1mB,EAAE8tH,KAAKo/hB,UAAUltpB,EAAEx3B,OAAOw3B,EAAE8tH,KAAK92H,QAAQgJ,EAAE8tH,KAAK92H,MAAM,IAAIkpC,MAAMlgC,EAAE8tH,KAAKo/hB,YAAYzonB,EAAE4inB,SAASrnpB,EAAE8tH,KAAK92H,MAAMvQ,EAAEo9C,EAAEqjC,EAAEguiB,IAAI,IAAIl1mB,EAAE8oS,QAAQ9oS,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMltI,EAAEygF,EAAErjC,IAAI4J,GAAGy5B,EAAErjC,GAAGqjC,EAAElnE,EAAEx3B,QAAQ0+F,GAAGlnE,EAAEx3B,QAAQ,MAAM8N,EAAE0pB,EAAEx3B,OAAO,EAAEw3B,EAAEjC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKiC,EAAE8oS,MAAM,CAAC,GAAG,IAAIr7P,EAAE,MAAMn3D,EAAE4wF,EAAE,EAAE,GAAGguiB,EAAEzunB,EAAEo9C,EAAEqjC,KAAKlnE,EAAE8tH,MAAMonf,GAAGl1mB,EAAEx3B,OAAO,QAAQw3B,EAAE8tH,KAAKnlJ,MAAMqwB,OAAO6xK,aAAaqqc,UAAUA,GAAGhuiB,EAAEz5B,GAAG,GAAG,IAAIztC,EAAE8oS,QAAQ9oS,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMltI,EAAEygF,EAAErjC,IAAI4J,GAAGy5B,EAAErjC,GAAGqjC,EAAEguiB,EAAE,MAAM5+nB,CAAC,MAAM0pB,EAAE8tH,OAAO9tH,EAAE8tH,KAAKnlJ,KAAK,MAAMq3B,EAAEx3B,OAAO,EAAEw3B,EAAEjC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAKiC,EAAE8oS,MAAM,CAAC,GAAG,IAAIr7P,EAAE,MAAMn3D,EAAE4wF,EAAE,EAAE,GAAGguiB,EAAEzunB,EAAEo9C,EAAEqjC,KAAKlnE,EAAE8tH,MAAMonf,GAAGl1mB,EAAEx3B,OAAO,QAAQw3B,EAAE8tH,KAAKr1H,SAASO,OAAO6xK,aAAaqqc,UAAUA,GAAGhuiB,EAAEz5B,GAAG,GAAG,IAAIztC,EAAE8oS,QAAQ9oS,EAAE2zH,MAAMprJ,EAAEy3B,EAAE2zH,MAAMltI,EAAEygF,EAAErjC,IAAI4J,GAAGy5B,EAAErjC,GAAGqjC,EAAEguiB,EAAE,MAAM5+nB,CAAC,MAAM0pB,EAAE8tH,OAAO9tH,EAAE8tH,KAAKr1H,QAAQ,MAAMuH,EAAEjC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAIiC,EAAE8oS,MAAM,CAAC,KAAK1nP,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG/mC,KAAK,MAAMra,EAAE2zH,OAAO,CAACr9I,EAAEy/L,IAAI,sBAAsB/1K,EAAEjC,KAAK,GAAG,KAAK,CAACsc,EAAE,EAAE+mC,EAAE,CAAC,CAACphD,EAAE8tH,OAAO9tH,EAAE8tH,KAAK++hB,KAAK7spB,EAAE8oS,OAAO,EAAE,EAAE9oS,EAAE8tH,KAAKi6K,MAAK,GAAIzxT,EAAE4zqB,MAAMlqpB,EAAE2zH,MAAM,EAAE3zH,EAAEjC,KAAK,GAAG,MAAM,KAAK,GAAG,KAAKqjD,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC9qE,EAAE4zqB,MAAMlqpB,EAAE2zH,MAAM9lF,EAAExzB,GAAGA,EAAE,EAAE+mC,EAAE,EAAEphD,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAG,IAAIiC,EAAE8tpB,SAAS,OAAOx3qB,EAAEwvqB,SAASzymB,EAAE/8D,EAAE+uqB,UAAUzgnB,EAAEtuD,EAAEqvqB,QAAQ9hnB,EAAEvtD,EAAEsvqB,SAASn4mB,EAAEztC,EAAEutpB,KAAKlzoB,EAAEra,EAAEwtpB,KAAKpsmB,EAAE,EAAE9qE,EAAE4zqB,MAAMlqpB,EAAE2zH,MAAM,EAAE3zH,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAG,IAAIkoC,GAAG,IAAIA,EAAE,MAAM3vD,EAAE,KAAK,GAAG,GAAG0pB,EAAEgW,KAAK,CAACqE,KAAK,EAAE+mC,EAAEA,GAAG,EAAEA,EAAEphD,EAAEjC,KAAK,GAAG,KAAK,CAAC,KAAKqjD,EAAE,GAAG,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,OAAOphD,EAAEgW,KAAK,EAAEqE,EAAE+mC,GAAG,EAAE,GAAG/mC,KAAK,IAAI,KAAK,EAAEra,EAAEjC,KAAK,GAAG,MAAM,KAAK,EAAE,GAAG32B,EAAE44B,GAAGA,EAAEjC,KAAK,GAAG,IAAIkoC,EAAE,CAAC5rB,KAAK,EAAE+mC,GAAG,EAAE,MAAM9qE,CAAC,CAAC,MAAM,KAAK,EAAE0pB,EAAEjC,KAAK,GAAG,MAAM,KAAK,EAAEznB,EAAEy/L,IAAI,qBAAqB/1K,EAAEjC,KAAK,GAAGsc,KAAK,EAAE+mC,GAAG,EAAE,MAAM,KAAK,GAAG,IAAI/mC,KAAK,EAAE+mC,EAAEA,GAAG,EAAEA,EAAEA,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,IAAI,MAAM/mC,KAAKA,IAAI,GAAG,OAAO,CAAC/jC,EAAEy/L,IAAI,+BAA+B/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAGiC,EAAEx3B,OAAO,MAAM6xC,EAAEA,EAAE,EAAE+mC,EAAE,EAAEphD,EAAEjC,KAAK,GAAG,IAAIkoC,EAAE,MAAM3vD,EAAE,KAAK,GAAG0pB,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAGmpE,EAAElnE,EAAEx3B,OAAO,CAAC,GAAG0+F,EAAEz5B,IAAIy5B,EAAEz5B,GAAGy5B,EAAEtiC,IAAIsiC,EAAEtiC,GAAG,IAAIsiC,EAAE,MAAM5wF,EAAEmuD,EAAE4inB,SAAShxmB,EAAE5vD,EAAEo9C,EAAEqjC,EAAE7zB,GAAG5F,GAAGy5B,EAAErjC,GAAGqjC,EAAEtiC,GAAGsiC,EAAE7zB,GAAG6zB,EAAElnE,EAAEx3B,QAAQ0+F,EAAE,KAAK,CAAClnE,EAAEjC,KAAK,GAAG,MAAM,KAAK,GAAG,KAAKqjD,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAGphD,EAAEiupB,KAAK,KAAK,GAAG5zoB,GAAGA,KAAK,EAAE+mC,GAAG,EAAEphD,EAAEkupB,MAAM,GAAG,GAAG7zoB,GAAGA,KAAK,EAAE+mC,GAAG,EAAEphD,EAAEgupB,MAAM,GAAG,GAAG3zoB,GAAGA,KAAK,EAAE+mC,GAAG,EAAEphD,EAAEiupB,KAAK,KAAKjupB,EAAEkupB,MAAM,GAAG,CAAC53qB,EAAEy/L,IAAI,sCAAsC/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAEmupB,KAAK,EAAEnupB,EAAEjC,KAAK,GAAG,KAAK,GAAG,KAAKiC,EAAEmupB,KAAKnupB,EAAEgupB,OAAO,CAAC,KAAK5smB,EAAE,GAAG,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACphD,EAAEoupB,KAAKp+W,EAAEhwS,EAAEmupB,SAAS,EAAE9zoB,EAAEA,KAAK,EAAE+mC,GAAG,CAAC,CAAC,KAAKphD,EAAEmupB,KAAK,IAAInupB,EAAEoupB,KAAKp+W,EAAEhwS,EAAEmupB,SAAS,EAAE,GAAGnupB,EAAEytpB,QAAQztpB,EAAEsupB,OAAOtupB,EAAE2tpB,QAAQ,EAAEx4C,EAAE,CAACq4C,KAAKxtpB,EAAE2tpB,SAAS7zU,EAAE9qS,EAAE,EAAEhvC,EAAEoupB,KAAK,EAAE,GAAGpupB,EAAEytpB,QAAQ,EAAEztpB,EAAEqupB,KAAKl5C,GAAGn1mB,EAAE2tpB,QAAQx4C,EAAEq4C,KAAK1zU,EAAE,CAACxjW,EAAEy/L,IAAI,2BAA2B/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAEmupB,KAAK,EAAEnupB,EAAEjC,KAAK,GAAG,KAAK,GAAG,KAAKiC,EAAEmupB,KAAKnupB,EAAEiupB,KAAKjupB,EAAEkupB,OAAO,CAAC,KAAKvta,GAAGovD,EAAE/vS,EAAEytpB,QAAQpzoB,GAAG,GAAGra,EAAE2tpB,SAAS,MAAM,GAAG,IAAI19W,EAAE,MAAMF,KAAKK,EAAEL,IAAI,KAAK3uP,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG6uP,EAAE,GAAG51R,KAAK+1R,EAAEhvP,GAAGgvP,EAAEpwS,EAAEoupB,KAAKpupB,EAAEmupB,QAAQl+W,MAAM,CAAC,GAAG,KAAKA,EAAE,CAAC,IAAIJ,EAAEO,EAAE,EAAEhvP,EAAEyuP,GAAG,CAAC,GAAG,IAAIpiQ,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG/mC,KAAK+1R,EAAEhvP,GAAGgvP,EAAE,IAAIpwS,EAAEmupB,KAAK,CAAC73qB,EAAEy/L,IAAI,4BAA4B/1K,EAAEjC,KAAK,GAAG,KAAK,CAACm3mB,EAAEl1mB,EAAEoupB,KAAKpupB,EAAEmupB,KAAK,GAAGjnlB,EAAE,GAAG,EAAE7sD,GAAGA,KAAK,EAAE+mC,GAAG,CAAC,MAAM,GAAG,KAAK6uP,EAAE,CAAC,IAAIJ,EAAEO,EAAE,EAAEhvP,EAAEyuP,GAAG,CAAC,GAAG,IAAIpiQ,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACA,GAAGgvP,EAAE8kU,EAAE,EAAEhuiB,EAAE,GAAG,GAAG7sD,KAAK+1R,IAAI/1R,KAAK,EAAE+mC,GAAG,CAAC,KAAK,CAAC,IAAIyuP,EAAEO,EAAE,EAAEhvP,EAAEyuP,GAAG,CAAC,GAAG,IAAIpiQ,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACA,GAAGgvP,EAAE8kU,EAAE,EAAEhuiB,EAAE,IAAI,KAAK7sD,KAAK+1R,IAAI/1R,KAAK,EAAE+mC,GAAG,CAAC,CAAC,GAAGphD,EAAEmupB,KAAKjnlB,EAAElnE,EAAEiupB,KAAKjupB,EAAEkupB,MAAM,CAAC53qB,EAAEy/L,IAAI,4BAA4B/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,KAAKmpE,KAAKlnE,EAAEoupB,KAAKpupB,EAAEmupB,QAAQj5C,CAAC,CAAC,CAAC,GAAG,KAAKl1mB,EAAEjC,KAAK,MAAM,GAAG,IAAIiC,EAAEoupB,KAAK,KAAK,CAAC93qB,EAAEy/L,IAAI,uCAAuC/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAGiC,EAAE2tpB,QAAQ,EAAEx4C,EAAE,CAACq4C,KAAKxtpB,EAAE2tpB,SAAS7zU,EAAE9qS,EAAE,EAAEhvC,EAAEoupB,KAAK,EAAEpupB,EAAEiupB,KAAKjupB,EAAEytpB,QAAQ,EAAEztpB,EAAEqupB,KAAKl5C,GAAGn1mB,EAAE2tpB,QAAQx4C,EAAEq4C,KAAK1zU,EAAE,CAACxjW,EAAEy/L,IAAI,8BAA8B/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAGiC,EAAE4tpB,SAAS,EAAE5tpB,EAAE0tpB,SAAS1tpB,EAAEuupB,QAAQp5C,EAAE,CAACq4C,KAAKxtpB,EAAE4tpB,UAAU9zU,EAAE9qS,EAAE,EAAEhvC,EAAEoupB,KAAKpupB,EAAEiupB,KAAKjupB,EAAEkupB,MAAMlupB,EAAE0tpB,SAAS,EAAE1tpB,EAAEqupB,KAAKl5C,GAAGn1mB,EAAE4tpB,SAASz4C,EAAEq4C,KAAK1zU,EAAE,CAACxjW,EAAEy/L,IAAI,wBAAwB/1K,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAGiC,EAAEjC,KAAK,GAAG,IAAIkoC,EAAE,MAAM3vD,EAAE,KAAK,GAAG0pB,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAG0vC,GAAG,GAAG7I,GAAG,IAAI,CAACtuD,EAAEwvqB,SAASzymB,EAAE/8D,EAAE+uqB,UAAUzgnB,EAAEtuD,EAAEqvqB,QAAQ9hnB,EAAEvtD,EAAEsvqB,SAASn4mB,EAAEztC,EAAEutpB,KAAKlzoB,EAAEra,EAAEwtpB,KAAKpsmB,EAAEj6E,EAAEmP,EAAEw5T,GAAGz8P,EAAE/8D,EAAEwvqB,SAASzvmB,EAAE//D,EAAE4xG,OAAOtjD,EAAEtuD,EAAE+uqB,UAAUxhnB,EAAEvtD,EAAEqvqB,QAAQl/pB,EAAEnQ,EAAE8G,MAAMqwD,EAAEn3D,EAAEsvqB,SAASvroB,EAAEra,EAAEutpB,KAAKnsmB,EAAEphD,EAAEwtpB,KAAK,KAAKxtpB,EAAEjC,OAAOiC,EAAEwupB,MAAM,GAAG,KAAK,CAAC,IAAIxupB,EAAEwupB,KAAK,EAAE7ta,GAAGovD,EAAE/vS,EAAEytpB,QAAQpzoB,GAAG,GAAGra,EAAE2tpB,SAAS,MAAM,GAAG,IAAI19W,EAAE,MAAMF,KAAKK,EAAEL,IAAI,KAAK3uP,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAGu/L,GAAG,IAAI,IAAIA,GAAG,CAAC,IAAIgvD,EAAES,EAAEnhR,EAAE0xN,EAAE0vD,EAAEJ,EAAEtvD,GAAGovD,EAAE/vS,EAAEytpB,QAAQp9W,IAAIh2R,GAAG,GAAGs1R,EAAE1gR,GAAG,IAAI0gR,OAAO,GAAG,IAAIM,EAAE,MAAMF,IAAIJ,GAAGS,EAAEL,IAAI,KAAK3uP,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC/mC,KAAKs1R,EAAEvuP,GAAGuuP,EAAE3vS,EAAEwupB,MAAM7+W,CAAC,CAAC,GAAGt1R,KAAK+1R,EAAEhvP,GAAGgvP,EAAEpwS,EAAEwupB,MAAMp+W,EAAEpwS,EAAEx3B,OAAOynU,EAAE,IAAItvD,EAAE,CAAC3gP,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG4iP,EAAE,CAAC3gP,EAAEwupB,MAAM,EAAExupB,EAAEjC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG4iP,EAAE,CAACrqQ,EAAEy/L,IAAI,8BAA8B/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAEhJ,MAAM,GAAG2pP,EAAE3gP,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAGiC,EAAEhJ,MAAM,CAAC,IAAI64S,EAAE7vS,EAAEhJ,MAAMoqD,EAAEyuP,GAAG,CAAC,GAAG,IAAIpiQ,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACphD,EAAEx3B,QAAQ6xC,GAAG,GAAGra,EAAEhJ,OAAO,EAAEqjB,KAAKra,EAAEhJ,MAAMoqD,GAAGphD,EAAEhJ,MAAMgJ,EAAEwupB,MAAMxupB,EAAEhJ,KAAK,CAACgJ,EAAEyupB,IAAIzupB,EAAEx3B,OAAOw3B,EAAEjC,KAAK,GAAG,KAAK,GAAG,KAAK4iP,GAAGovD,EAAE/vS,EAAE0tpB,SAASrzoB,GAAG,GAAGra,EAAE4tpB,UAAU,MAAM,GAAG,IAAI39W,EAAE,MAAMF,KAAKK,EAAEL,IAAI,KAAK3uP,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG,IAAI,IAAIu/L,GAAG,CAAC,IAAIgvD,EAAES,EAAEnhR,EAAE0xN,EAAE0vD,EAAEJ,EAAEtvD,GAAGovD,EAAE/vS,EAAE0tpB,SAASr9W,IAAIh2R,GAAG,GAAGs1R,EAAE1gR,GAAG,IAAI0gR,OAAO,GAAG,IAAIM,EAAE,MAAMF,IAAIJ,GAAGS,EAAEL,IAAI,KAAK3uP,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC/mC,KAAKs1R,EAAEvuP,GAAGuuP,EAAE3vS,EAAEwupB,MAAM7+W,CAAC,CAAC,GAAGt1R,KAAK+1R,EAAEhvP,GAAGgvP,EAAEpwS,EAAEwupB,MAAMp+W,EAAE,GAAGzvD,EAAE,CAACrqQ,EAAEy/L,IAAI,wBAAwB/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAE0qC,OAAOulQ,EAAEjwS,EAAEhJ,MAAM,GAAG2pP,EAAE3gP,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAGiC,EAAEhJ,MAAM,CAAC,IAAI64S,EAAE7vS,EAAEhJ,MAAMoqD,EAAEyuP,GAAG,CAAC,GAAG,IAAIpiQ,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAACphD,EAAE0qC,QAAQrwB,GAAG,GAAGra,EAAEhJ,OAAO,EAAEqjB,KAAKra,EAAEhJ,MAAMoqD,GAAGphD,EAAEhJ,MAAMgJ,EAAEwupB,MAAMxupB,EAAEhJ,KAAK,CAAC,GAAGgJ,EAAE0qC,OAAO1qC,EAAEmtpB,KAAK,CAAC72qB,EAAEy/L,IAAI,gCAAgC/1K,EAAEjC,KAAK,GAAG,KAAK,CAACiC,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI6mC,EAAE,MAAMtuD,EAAE,GAAG4wF,EAAE4oO,EAAElrQ,EAAE5kC,EAAE0qC,OAAOw8B,EAAE,CAAC,IAAIA,EAAElnE,EAAE0qC,OAAOw8B,GAAGlnE,EAAEqtpB,OAAOrtpB,EAAE6tpB,KAAK,CAACv3qB,EAAEy/L,IAAI,gCAAgC/1K,EAAEjC,KAAK,GAAG,KAAK,CAACmpE,EAAElnE,EAAEstpB,OAAOpmlB,GAAGlnE,EAAEstpB,MAAM7/e,EAAEztK,EAAEotpB,MAAMlmlB,GAAGumG,EAAEztK,EAAEstpB,MAAMpmlB,EAAEA,EAAElnE,EAAEx3B,SAAS0+F,EAAElnE,EAAEx3B,QAAQtB,EAAE84B,EAAEx8B,MAAM,MAAM0D,EAAEmvE,EAAEo3H,EAAEp6H,EAAErzC,EAAE0qC,OAAOw8B,EAAElnE,EAAEx3B,OAAO0+F,EAAEtiC,IAAIsiC,EAAEtiC,GAAGA,GAAGsiC,EAAElnE,EAAEx3B,QAAQ0+F,EAAE,GAAG7wB,EAAEhD,KAAKnsE,EAAEumM,aAAavmG,GAAG,IAAIlnE,EAAEx3B,SAASw3B,EAAEjC,KAAK,IAAI,MAAM,KAAK,GAAG,GAAG,IAAI6mC,EAAE,MAAMtuD,EAAE+/D,EAAEhD,KAAKrzC,EAAEx3B,OAAOo8D,IAAI5kC,EAAEjC,KAAK,GAAG,MAAM,KAAK,GAAG,GAAGiC,EAAE4pD,KAAK,CAAC,KAAKxI,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG0uP,GAAGlrQ,EAAEtuD,EAAE8yqB,WAAWt5W,EAAE9vS,EAAEK,OAAOyvS,EAAEA,IAAIx5T,EAAE4zqB,MAAMlqpB,EAAE2zH,MAAM3zH,EAAE8oS,MAAMvgU,EAAEy3B,EAAE2zH,MAAMt9E,EAAEy5P,EAAEz8P,EAAEy8P,GAAGloP,EAAE5nD,EAAE2zH,MAAMt9E,EAAEy5P,EAAEz8P,EAAEy8P,IAAIA,EAAElrQ,GAAG5kC,EAAE8oS,MAAMzuR,EAAEwzB,EAAExzB,MAAMra,EAAE2zH,MAAM,CAACr9I,EAAEy/L,IAAI,uBAAuB/1K,EAAEjC,KAAK,GAAG,KAAK,CAACsc,EAAE,EAAE+mC,EAAE,CAAC,CAACphD,EAAEjC,KAAK,GAAG,KAAK,GAAG,GAAGiC,EAAE4pD,MAAM5pD,EAAE8oS,MAAM,CAAC,KAAK1nP,EAAE,IAAI,CAAC,GAAG,IAAI3T,EAAE,MAAMn3D,EAAEm3D,IAAIpzB,GAAG5zB,EAAEo9C,MAAMud,EAAEA,GAAG,CAAC,CAAC,GAAG/mC,KAAK,WAAWra,EAAEK,OAAO,CAAC/pB,EAAEy/L,IAAI,yBAAyB/1K,EAAEjC,KAAK,GAAG,KAAK,CAACsc,EAAE,EAAE+mC,EAAE,CAAC,CAACphD,EAAEjC,KAAK,GAAG,KAAK,GAAG+7U,EAAE,EAAE,MAAMxjW,EAAE,KAAK,GAAGwjW,GAAG,EAAE,MAAMxjW,EAAE,KAAK,GAAG,OAAO,EAAU,QAAQ,OAAO,EAAE,OAAOA,EAAEwvqB,SAASzymB,EAAE/8D,EAAE+uqB,UAAUzgnB,EAAEtuD,EAAEqvqB,QAAQ9hnB,EAAEvtD,EAAEsvqB,SAASn4mB,EAAEztC,EAAEutpB,KAAKlzoB,EAAEra,EAAEwtpB,KAAKpsmB,GAAGphD,EAAEotpB,OAAOt9W,IAAIx5T,EAAE+uqB,WAAWrlpB,EAAEjC,KAAK,KAAKiC,EAAEjC,KAAK,IAAI,IAAIkoC,KAAKlD,EAAEzsD,EAAEA,EAAE4xG,OAAO5xG,EAAEwvqB,SAASh2W,EAAEx5T,EAAE+uqB,YAAYrlpB,EAAEjC,KAAK,IAAI,IAAI41C,GAAGr9D,EAAEsvqB,SAAS91W,GAAGx5T,EAAE+uqB,UAAU/uqB,EAAE6zqB,UAAUx2mB,EAAEr9D,EAAE8yqB,WAAWt5W,EAAE9vS,EAAEK,OAAOyvS,EAAE9vS,EAAE4pD,MAAMkmP,IAAIx5T,EAAE4zqB,MAAMlqpB,EAAE2zH,MAAM3zH,EAAE8oS,MAAMvgU,EAAEy3B,EAAE2zH,MAAMt9E,EAAEy5P,EAAEx5T,EAAEwvqB,SAASh2W,GAAGloP,EAAE5nD,EAAE2zH,MAAMt9E,EAAEy5P,EAAEx5T,EAAEwvqB,SAASh2W,IAAIx5T,EAAEk2qB,UAAUxspB,EAAEwtpB,MAAMxtpB,EAAEgW,KAAK,GAAG,IAAI,KAAKhW,EAAEjC,KAAK,IAAI,IAAI,KAAKiC,EAAEjC,MAAM,KAAKiC,EAAEjC,KAAK,IAAI,IAAI,IAAI41C,GAAG,IAAIm8P,GAAG,IAAI7pQ,IAAI,IAAI6zS,IAAIA,GAAG,GAAGA,EAAE,EAAE95U,EAAEsnpB,WAAW,SAAShxqB,GAAG,IAAIA,IAAIA,EAAEpH,MAAM,OAAO,EAAE,IAAI+2D,EAAE3vD,EAAEpH,MAAM,OAAO+2D,EAAEziE,SAASyiE,EAAEziE,OAAO,MAAM8S,EAAEpH,MAAM,KAAK,CAAC,EAAE8wB,EAAEympB,iBAAiB,SAASnwqB,EAAE2vD,GAAG,IAAIjmC,EAAE,OAAO1pB,GAAGA,EAAEpH,MAAM,IAAI,GAAG8wB,EAAE1pB,EAAEpH,OAAO06E,OAAO,GAAG5pD,EAAE8tH,KAAK7nF,EAAEA,EAAE8hQ,MAAK,EAAG,IAAI,CAAC,EAAE/nS,EAAE0mpB,qBAAqB,SAASpwqB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEwB,EAAEz9D,OAAO,OAAO8N,GAAGA,EAAEpH,MAAM,KAAK8wB,EAAE1pB,EAAEpH,OAAO06E,MAAM,KAAK5pD,EAAEjC,MAAM,EAAE,KAAKiC,EAAEjC,MAAM6pD,EAAE,EAAE3hB,EAAExB,EAAE,KAAKzkC,EAAE2zH,OAAO,EAAE5wF,EAAEzsD,EAAE2vD,EAAExB,EAAEA,IAAIzkC,EAAEjC,KAAK,IAAI,IAAIiC,EAAE8tpB,SAAS,EAAE,IAAI,CAAC,EAAE9tpB,EAAE8upB,YAAY,oCAAoC,EAAE,CAAC,kBAAkB,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,aAAa,MAAM,IAAI,CAAC,SAASx4qB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBsxE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAGr/E,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIpB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,EAAE,GAAG6nE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI/I,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,EAAE6tC,EAAEpnD,EAAE4vD,EAAExS,EAAEwP,GAAG,IAAI5F,EAAE7I,EAAEvqB,EAAE+mC,EAAEh6E,EAAE27D,EAAE4Q,EAAEm8P,EAAE5oO,EAAEumG,EAAEp6H,EAAEm6mB,KAAKtmrB,EAAE,EAAEkpU,EAAE,EAAEzvD,EAAE,EAAEsvD,EAAE,EAAEN,EAAE,EAAE1gR,EAAE,EAAEohR,EAAE,EAAE6kU,EAAE,EAAEp7R,EAAE,EAAEq7R,EAAE,EAAEtlU,EAAE,KAAKE,EAAE,EAAEqlU,EAAE,IAAI3wkB,EAAEmjnB,MAAM,IAAI53W,EAAE,IAAIvrQ,EAAEmjnB,MAAM,IAAI13W,EAAE,KAAKpI,EAAE,EAAE,IAAI5gU,EAAE,EAAEA,GAAG,GAAGA,IAAIkuoB,EAAEluoB,GAAG,EAAE,IAAIkpU,EAAE,EAAEA,EAAEviQ,EAAEuiQ,IAAIglU,EAAEnvkB,EAAEjmC,EAAEowS,MAAM,IAAIT,EAAEliI,EAAEwiI,EAAE,GAAGA,GAAG,GAAG,IAAImlU,EAAEnlU,GAAGA,KAAK,GAAGN,EAAEM,IAAIN,EAAEM,GAAG,IAAIA,EAAE,OAAOxpT,EAAE4vD,KAAK,SAAS5vD,EAAE4vD,KAAK,SAAShD,EAAEm6mB,KAAK,EAAE,EAAE,IAAI7sa,EAAE,EAAEA,EAAEsvD,GAAG,IAAImlU,EAAEz0X,GAAGA,KAAK,IAAIgvD,EAAEhvD,IAAIgvD,EAAEhvD,GAAGu0X,EAAE,EAAEhuoB,EAAE,EAAEA,GAAG,GAAGA,IAAI,GAAGguoB,IAAI,GAAGA,GAAGE,EAAEluoB,IAAI,EAAE,OAAO,EAAE,GAAGguoB,EAAE,IAAI,IAAI5+nB,GAAG,IAAI25T,GAAG,OAAO,EAAE,IAAID,EAAE,GAAG,EAAE9oU,EAAE,EAAEA,EAAE,GAAGA,IAAI8oU,EAAE9oU,EAAE,GAAG8oU,EAAE9oU,GAAGkuoB,EAAEluoB,GAAG,IAAIkpU,EAAE,EAAEA,EAAEviQ,EAAEuiQ,IAAI,IAAInqQ,EAAEjmC,EAAEowS,KAAKvsQ,EAAEmsQ,EAAE/pQ,EAAEjmC,EAAEowS,OAAOA,GAAG,GAAG,IAAI95T,GAAGu5T,EAAEK,EAAErsQ,EAAEd,EAAE,IAAI,IAAIzsD,GAAGu5T,EAAEjoP,EAAEmoP,GAAG,IAAIG,EAAE3nU,EAAEu/T,GAAG,IAAI/kQ,EAAE,MAAM8sQ,EAAE1oU,EAAE+oU,EAAElhQ,EAAEjM,GAAG,GAAGoykB,EAAE,EAAE/kU,EAAE,EAAElpU,EAAEy5Q,EAAEv5Q,EAAEivE,EAAEpnB,EAAE0gR,EAAEU,EAAE,EAAEh2R,GAAG,EAAE+mC,GAAG04R,EAAE,GAAGnqC,GAAG,EAAE,IAAIr5T,GAAGwjW,EAAE,KAAK,IAAIxjW,GAAGwjW,EAAE,IAAI,OAAO,EAAE,OAAO,CAACnmS,EAAEzsE,EAAEmpU,EAAExsQ,EAAEusQ,GAAGrtQ,GAAG+sQ,EAAE,EAAE5oO,EAAErjC,EAAEusQ,IAAIvsQ,EAAEusQ,GAAGrtQ,GAAG+sQ,EAAEI,EAAEpI,EAAEjkQ,EAAEusQ,IAAIlpO,EAAE2oO,EAAEE,EAAElsQ,EAAEusQ,MAAMN,EAAE,GAAG5oO,EAAE,GAAGz5B,EAAE,GAAGvmE,EAAEmpU,EAAE1vD,EAAE/7M,EAAE,GAAG3V,EAAE,GAAGxoC,EAAErf,GAAG+toB,GAAG9kU,IAAIzrQ,GAAG6I,IAAIkG,GAAG,GAAGm8P,GAAG,GAAG5oO,QAAU,IAAItiC,GAAG,IAAI6I,EAAE,GAAGvmE,EAAE,EAAEiuoB,EAAE1nkB,GAAGA,IAAI,EAAE,GAAG,IAAIA,GAAG0nkB,GAAG1nkB,EAAE,EAAE0nkB,GAAG1nkB,GAAG0nkB,EAAE,EAAE/kU,IAAI,KAAKglU,EAAEluoB,GAAG,CAAC,GAAGA,IAAI+oU,EAAE,MAAM/oU,EAAE++D,EAAEjmC,EAAE6jC,EAAEusQ,GAAG,CAAC,GAAGlpU,EAAEyoU,IAAIwlU,EAAE/zjB,KAAK/mC,EAAE,CAAC,IAAI,IAAIg2R,IAAIA,EAAEV,GAAGvoU,GAAGu5Q,EAAEu0X,EAAE,IAAIjmlB,EAAE/nD,EAAEmpU,GAAGphR,EAAEohR,EAAEJ,MAAMilU,GAAGE,EAAEnmlB,EAAEohR,KAAK,IAAIphR,IAAIimlB,IAAI,EAAE,GAAGp7R,GAAG,GAAG7qT,EAAE,IAAI34C,GAAGwjW,EAAE,KAAK,IAAIxjW,GAAGwjW,EAAE,IAAI,OAAO,EAAErzV,EAAE4zB,EAAE86lB,EAAE/zjB,GAAGuuP,GAAG,GAAG1gR,GAAG,GAAG7nD,EAAEivE,CAAG,CAAC,CAAC,OAAO,IAAI8+jB,IAAI1unB,EAAErf,EAAE+toB,GAAGjuoB,EAAEmpU,GAAG,GAAG,IAAI,IAAMh9P,EAAEm6mB,KAAK79W,EAAE,CAAC,CAAC,EAAE,CAAC,kBAAkB,MAAM,IAAI,CAAC,SAASr5T,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,CAAC,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,KAAK,aAAa,KAAK,eAAe,KAAK,aAAa,KAAK,sBAAsB,KAAK,eAAe,KAAK,uBAAuB,EAAE,CAAC,GAAG,IAAI,CAAC,SAASzzH,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmB,SAASsxE,EAAEtxE,GAAG,IAAI,IAAI2vD,EAAE3vD,EAAE9N,SAASy9D,GAAG,GAAG3vD,EAAE2vD,GAAG,CAAC,CAAC,IAAI19D,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGpB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI6nE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGnB,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAIpnD,EAAE,IAAIy5C,MAAM,KAAK0nB,EAAEnhE,GAAG,IAAI4vD,EAAE,IAAInW,MAAM,IAAI0nB,EAAEvR,GAAG,IAAIxS,EAAE,IAAI3D,MAAM,KAAK0nB,EAAE/jB,GAAG,IAAIwP,EAAE,IAAInT,MAAM,KAAK0nB,EAAEvU,GAAG,IAAI5F,EAAE,IAAIvN,MAAM,IAAI0nB,EAAEna,GAAG,IAAI7I,EAAEvqB,EAAE+mC,EAAEh6E,EAAE,IAAI84D,MAAM,IAAI,SAAS6C,EAAEzsD,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG/W,KAAKk+mB,YAAYz4qB,EAAEu6D,KAAKm+mB,WAAW/onB,EAAE4K,KAAKo+mB,WAAWjvpB,EAAE6wC,KAAKq+mB,MAAMzqnB,EAAEoM,KAAKs+mB,WAAWvnmB,EAAE/W,KAAKu+mB,UAAU94qB,GAAGA,EAAE9N,MAAM,CAAC,SAASmrE,EAAEr9D,EAAE2vD,GAAG4K,KAAKw+mB,SAAS/4qB,EAAEu6D,KAAKy+mB,SAAS,EAAEz+mB,KAAK0+mB,UAAUtpnB,CAAC,CAAC,SAAS6pQ,EAAEx5T,GAAG,OAAOA,EAAE,IAAIutD,EAAEvtD,GAAGutD,EAAE,KAAKvtD,IAAI,GAAG,CAAC,SAAS4wF,EAAE5wF,EAAE2vD,GAAG3vD,EAAE4yqB,YAAY5yqB,EAAE42R,WAAW,IAAIjnO,EAAE3vD,EAAE4yqB,YAAY5yqB,EAAE42R,WAAWjnO,IAAI,EAAE,GAAG,CAAC,SAASwnI,EAAEn3L,EAAE2vD,EAAEjmC,GAAG1pB,EAAEi2qB,SAAS,GAAGvspB,GAAG1pB,EAAEg2qB,QAAQrmnB,GAAG3vD,EAAEi2qB,SAAS,MAAMrllB,EAAE5wF,EAAEA,EAAEg2qB,QAAQh2qB,EAAEg2qB,OAAOrmnB,GAAG,GAAG3vD,EAAEi2qB,SAASj2qB,EAAEi2qB,UAAUvspB,EAAE,KAAK1pB,EAAEg2qB,QAAQrmnB,GAAG3vD,EAAEi2qB,SAAS,MAAMj2qB,EAAEi2qB,UAAUvspB,EAAE,CAAC,SAAS94B,EAAEoP,EAAE2vD,EAAEjmC,GAAGytK,EAAEn3L,EAAE0pB,EAAE,EAAEimC,GAAGjmC,EAAE,EAAEimC,EAAE,GAAG,CAAC,SAASmqQ,EAAE95T,EAAE2vD,GAAG,IAAIjmC,EAAE,EAAE,GAAGA,GAAG,EAAE1pB,EAAEA,KAAK,EAAE0pB,IAAI,UAAUimC,EAAE,GAAG,OAAOjmC,IAAI,CAAC,CAAC,SAAS2gP,EAAErqQ,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAEr/E,EAAE,IAAI23D,MAAM,IAAI/4D,EAAE,EAAE,IAAIs9D,EAAE,EAAEA,GAAG,GAAGA,IAAIl8D,EAAEk8D,GAAGt9D,EAAEA,EAAE64B,EAAEykC,EAAE,IAAI,EAAE,IAAImjB,EAAE,EAAEA,GAAG3hB,EAAE2hB,IAAI,CAAC,IAAI5Y,EAAE14D,EAAE,EAAEsxE,EAAE,GAAG,IAAI5Y,IAAI14D,EAAE,EAAEsxE,GAAGwoP,EAAE7nU,EAAEymE,KAAKA,GAAG,CAAC,CAAC,SAASihQ,EAAE35T,GAAG,IAAI2vD,EAAE,IAAIA,EAAE,EAAEA,EAAE,IAAIA,IAAI3vD,EAAEi1qB,UAAU,EAAEtlnB,GAAG,EAAE,IAAIA,EAAE,EAAEA,EAAE,GAAGA,IAAI3vD,EAAEk1qB,UAAU,EAAEvlnB,GAAG,EAAE,IAAIA,EAAE,EAAEA,EAAE,GAAGA,IAAI3vD,EAAEm1qB,QAAQ,EAAExlnB,GAAG,EAAE3vD,EAAEi1qB,UAAU,KAAK,EAAEj1qB,EAAE81qB,QAAQ91qB,EAAE+1qB,WAAW,EAAE/1qB,EAAEo0qB,SAASp0qB,EAAEuwE,QAAQ,CAAC,CAAC,SAAS8oP,EAAEr5T,GAAGA,EAAEi2qB,SAAS,EAAErllB,EAAE5wF,EAAEA,EAAEg2qB,QAAQh2qB,EAAEi2qB,SAAS,IAAIj2qB,EAAE4yqB,YAAY5yqB,EAAE42R,WAAW52R,EAAEg2qB,QAAQh2qB,EAAEg2qB,OAAO,EAAEh2qB,EAAEi2qB,SAAS,CAAC,CAAC,SAASt9nB,EAAE34C,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,EAAE,EAAE3hB,EAAE19D,EAAE,EAAEy3B,EAAE,OAAO1pB,EAAEsxE,GAAGtxE,EAAE/N,IAAI+N,EAAEsxE,KAAKtxE,EAAE/N,IAAIk8D,EAAEwB,IAAIxB,EAAEzkC,EAAE,CAAC,SAASqwS,EAAE/5T,EAAE2vD,EAAEjmC,GAAG,IAAI,IAAIykC,EAAEnuD,EAAEw1qB,KAAK9rpB,GAAG4nD,EAAE5nD,GAAG,EAAE4nD,GAAGtxE,EAAEy1qB,WAAWnkmB,EAAEtxE,EAAEy1qB,UAAU98nB,EAAEgX,EAAE3vD,EAAEw1qB,KAAKlkmB,EAAE,GAAGtxE,EAAEw1qB,KAAKlkmB,GAAGtxE,EAAE+jY,QAAQzyT,KAAK34B,EAAEgX,EAAExB,EAAEnuD,EAAEw1qB,KAAKlkmB,GAAGtxE,EAAE+jY,SAAS/jY,EAAEw1qB,KAAK9rpB,GAAG1pB,EAAEw1qB,KAAKlkmB,GAAG5nD,EAAE4nD,EAAEA,IAAI,EAAEtxE,EAAEw1qB,KAAK9rpB,GAAGykC,CAAC,CAAC,SAASywkB,EAAE5+nB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAE5Y,EAAEnB,EAAEpnD,EAAE,EAAE,GAAG,IAAInQ,EAAEo0qB,SAAS,GAAGjmnB,EAAEnuD,EAAE4yqB,YAAY5yqB,EAAE61qB,MAAM,EAAE1lqB,IAAI,EAAEnQ,EAAE4yqB,YAAY5yqB,EAAE61qB,MAAM,EAAE1lqB,EAAE,GAAGmhE,EAAEtxE,EAAE4yqB,YAAY5yqB,EAAE21qB,MAAMxlqB,GAAGA,IAAI,IAAIg+C,EAAEv9D,EAAEoP,EAAEsxE,EAAE3hB,IAAI/+D,EAAEoP,GAAG04D,EAAEqE,EAAEuU,IAAI,IAAI,EAAE3hB,GAAG,KAAK4H,EAAEtlE,EAAEymE,KAAKy+H,EAAEn3L,EAAEsxE,GAAGna,EAAEuB,GAAGnB,GAAG3mE,EAAEoP,EAAE04D,EAAE8gQ,IAAIrrQ,GAAGzkC,GAAG,KAAK6tC,EAAE1mE,EAAE6nE,KAAKy+H,EAAEn3L,EAAEmuD,GAAGr9D,EAAE4nE,GAAGnB,UAAUpnD,EAAEnQ,EAAEo0qB,UAAUxjrB,EAAEoP,EAAE,IAAI2vD,EAAE,CAAC,SAAS6zS,EAAExjW,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAE09D,EAAEopnB,SAASlorB,EAAE8+D,EAAEspnB,UAAUR,YAAY//mB,EAAE/I,EAAEspnB,UAAUH,UAAUvhnB,EAAE5H,EAAEspnB,UAAUL,MAAMzoqB,GAAG,EAAE,IAAInQ,EAAEy1qB,SAAS,EAAEz1qB,EAAE01qB,SAAS,IAAIhspB,EAAE,EAAEA,EAAE6tC,EAAE7tC,IAAI,IAAIz3B,EAAE,EAAEy3B,IAAI1pB,EAAEw1qB,OAAOx1qB,EAAEy1qB,UAAUtlqB,EAAEuZ,EAAE1pB,EAAE+jY,MAAMr6W,GAAG,GAAGz3B,EAAE,EAAEy3B,EAAE,GAAG,EAAE,KAAK1pB,EAAEy1qB,SAAS,GAAGxjrB,EAAE,GAAGq/E,EAAEtxE,EAAEw1qB,OAAOx1qB,EAAEy1qB,UAAUtlqB,EAAE,IAAIA,EAAE,IAAI,EAAEnQ,EAAE+jY,MAAMzyT,GAAG,EAAEtxE,EAAE81qB,UAAUp9mB,IAAI14D,EAAE+1qB,YAAYllrB,EAAE,EAAEygF,EAAE,IAAI,IAAI3hB,EAAEqpnB,SAAS7oqB,EAAEuZ,EAAE1pB,EAAEy1qB,UAAU,EAAE/rpB,GAAG,EAAEA,IAAIqwS,EAAE/5T,EAAE/N,EAAEy3B,GAAG4nD,EAAE/Z,EAAE,GAAG7tC,EAAE1pB,EAAEw1qB,KAAK,GAAGx1qB,EAAEw1qB,KAAK,GAAGx1qB,EAAEw1qB,KAAKx1qB,EAAEy1qB,YAAY17W,EAAE/5T,EAAE/N,EAAE,GAAGk8D,EAAEnuD,EAAEw1qB,KAAK,GAAGx1qB,EAAEw1qB,OAAOx1qB,EAAE01qB,UAAUhspB,EAAE1pB,EAAEw1qB,OAAOx1qB,EAAE01qB,UAAUvnnB,EAAEl8D,EAAE,EAAEq/E,GAAGr/E,EAAE,EAAEy3B,GAAGz3B,EAAE,EAAEk8D,GAAGnuD,EAAE+jY,MAAMzyT,IAAItxE,EAAE+jY,MAAMr6W,IAAI1pB,EAAE+jY,MAAM51U,GAAGnuD,EAAE+jY,MAAMr6W,GAAG1pB,EAAE+jY,MAAM51U,IAAI,EAAEl8D,EAAE,EAAEy3B,EAAE,GAAGz3B,EAAE,EAAEk8D,EAAE,GAAGmjB,EAAEtxE,EAAEw1qB,KAAK,GAAGlkmB,IAAIyoP,EAAE/5T,EAAE/N,EAAE,SAAS+N,EAAEy1qB,UAAU,GAAGz1qB,EAAEw1qB,OAAOx1qB,EAAE01qB,UAAU11qB,EAAEw1qB,KAAK,GAAG,SAASx1qB,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,EAAEnB,EAAE5H,EAAEopnB,SAAS5oqB,EAAEw/C,EAAEqpnB,SAASj5mB,EAAEpQ,EAAEspnB,UAAUR,YAAYlrnB,EAAEoC,EAAEspnB,UAAUH,UAAU/7mB,EAAEpN,EAAEspnB,UAAUP,WAAWvhnB,EAAExH,EAAEspnB,UAAUN,WAAWrqnB,EAAEqB,EAAEspnB,UAAUJ,WAAW90oB,EAAE,EAAE,IAAI9xC,EAAE,EAAEA,GAAG,GAAGA,IAAI+N,EAAEu1qB,SAAStjrB,GAAG,EAAE,IAAIslE,EAAE,EAAEv3D,EAAEw1qB,KAAKx1qB,EAAE01qB,UAAU,GAAG,EAAEhspB,EAAE1pB,EAAE01qB,SAAS,EAAEhspB,EAAE,IAAIA,KAAKz3B,EAAEslE,EAAE,EAAEA,EAAE,GAAGpJ,EAAEnuD,EAAEw1qB,KAAK9rpB,IAAI,GAAG,GAAG,GAAG4kC,IAAIr8D,EAAEq8D,EAAEvqB,KAAKwzB,EAAE,EAAEpJ,EAAE,GAAGl8D,EAAEk8D,EAAEh+C,IAAInQ,EAAEu1qB,SAAStjrB,KAAKpB,EAAE,EAAEs9D,GAAGgJ,IAAItmE,EAAEksE,EAAE5O,EAAEgJ,IAAIuB,EAAEnB,EAAE,EAAEpJ,GAAGnuD,EAAE81qB,SAASp9mB,GAAGzmE,EAAEpB,GAAG08D,IAAIvtD,EAAE+1qB,YAAYr9mB,GAAGqH,EAAE,EAAE5R,EAAE,GAAGt9D,KAAK,GAAG,IAAIkzC,EAAE,CAAC,EAAE,CAAC,IAAI9xC,EAAEq8D,EAAE,EAAE,IAAItuD,EAAEu1qB,SAAStjrB,IAAIA,IAAI+N,EAAEu1qB,SAAStjrB,KAAK+N,EAAEu1qB,SAAStjrB,EAAE,IAAI,EAAE+N,EAAEu1qB,SAASjnnB,KAAKvqB,GAAG,CAAC,OAAOA,EAAE,GAAG,IAAI9xC,EAAEq8D,EAAE,IAAIr8D,EAAEA,IAAI,IAAIk8D,EAAEnuD,EAAEu1qB,SAAStjrB,GAAG,IAAIk8D,IAAImjB,EAAEtxE,EAAEw1qB,OAAO9rpB,IAAIvZ,IAAIonD,EAAE,EAAE+Z,EAAE,KAAKr/E,IAAI+N,EAAE81qB,UAAU7jrB,EAAEslE,EAAE,EAAE+Z,EAAE,IAAI/Z,EAAE,EAAE+Z,GAAG/Z,EAAE,EAAE+Z,EAAE,GAAGr/E,GAAGk8D,IAAI,CAAC,CAAzqB,CAA2qBnuD,EAAE2vD,GAAG06M,EAAEp4Q,EAAEke,EAAEnQ,EAAEu1qB,SAAS,CAAC,SAAS12C,EAAE7+nB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAEr/E,GAAG,EAAEpB,EAAE8+D,EAAE,GAAG+I,EAAE,EAAEnB,EAAE,EAAEpnD,EAAE,EAAE,IAAI,IAAItf,IAAI0mE,EAAE,IAAIpnD,EAAE,GAAGw/C,EAAE,GAAGjmC,EAAE,GAAG,GAAG,MAAMykC,EAAE,EAAEA,GAAGzkC,EAAEykC,IAAImjB,EAAEzgF,EAAEA,EAAE8+D,EAAE,GAAGxB,EAAE,GAAG,KAAKuK,EAAEnB,GAAG+Z,IAAIzgF,IAAI6nE,EAAEvoD,EAAEnQ,EAAEm1qB,QAAQ,EAAE7jmB,IAAI5Y,EAAE,IAAI4Y,GAAGA,IAAIr/E,GAAG+N,EAAEm1qB,QAAQ,EAAE7jmB,KAAKtxE,EAAEm1qB,QAAQ,OAAOz8mB,GAAG,GAAG14D,EAAEm1qB,QAAQ,MAAMn1qB,EAAEm1qB,QAAQ,MAAMz8mB,EAAE,EAAEzmE,EAAEq/E,EAAE,IAAIzgF,GAAG0mE,EAAE,IAAIpnD,EAAE,GAAGmhE,IAAIzgF,GAAG0mE,EAAE,EAAEpnD,EAAE,IAAIonD,EAAE,EAAEpnD,EAAE,GAAG,CAAC,SAASopT,EAAEv5T,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAEr/E,GAAG,EAAEpB,EAAE8+D,EAAE,GAAG+I,EAAE,EAAEnB,EAAE,EAAEpnD,EAAE,EAAE,IAAI,IAAItf,IAAI0mE,EAAE,IAAIpnD,EAAE,GAAGg+C,EAAE,EAAEA,GAAGzkC,EAAEykC,IAAI,GAAGmjB,EAAEzgF,EAAEA,EAAE8+D,EAAE,GAAGxB,EAAE,GAAG,OAAOuK,EAAEnB,GAAG+Z,IAAIzgF,GAAG,CAAC,GAAG6nE,EAAEvoD,EAAE,GAAGvf,EAAEoP,EAAEsxE,EAAEtxE,EAAEm1qB,eAAe,KAAKz8mB,QAAQ,IAAI4Y,GAAGA,IAAIr/E,IAAIrB,EAAEoP,EAAEsxE,EAAEtxE,EAAEm1qB,SAASz8mB,KAAK9nE,EAAEoP,EAAE,GAAGA,EAAEm1qB,SAASh+e,EAAEn3L,EAAE04D,EAAE,EAAE,IAAIA,GAAG,IAAI9nE,EAAEoP,EAAE,GAAGA,EAAEm1qB,SAASh+e,EAAEn3L,EAAE04D,EAAE,EAAE,KAAK9nE,EAAEoP,EAAE,GAAGA,EAAEm1qB,SAASh+e,EAAEn3L,EAAE04D,EAAE,GAAG,IAAIA,EAAE,EAAEzmE,EAAEq/E,EAAE,IAAIzgF,GAAG0mE,EAAE,IAAIpnD,EAAE,GAAGmhE,IAAIzgF,GAAG0mE,EAAE,EAAEpnD,EAAE,IAAIonD,EAAE,EAAEpnD,EAAE,EAAE,CAAC,CAACmhE,EAAExgF,GAAG,IAAI2oU,GAAE,EAAG,SAASqlU,EAAE9+nB,EAAE2vD,EAAEjmC,EAAE4nD,GAAG6lH,EAAEn3L,EAAE,GAAGsxE,EAAE,EAAE,GAAG,GAAG,SAAStxE,EAAE2vD,EAAEjmC,GAAK2vS,EAAEr5T,GAAO4wF,EAAE5wF,EAAE0pB,GAAGknE,EAAE5wF,GAAG0pB,GAAIykC,EAAE4inB,SAAS/wqB,EAAE4yqB,YAAY5yqB,EAAE9S,OAAOyiE,EAAEjmC,EAAE1pB,EAAE42R,SAAS52R,EAAE42R,SAASltQ,CAAC,CAAxG,CAA0G1pB,EAAE2vD,EAAEjmC,EAAK,CAACA,EAAEyspB,SAAS,SAASn2qB,GAAGy5T,IAAK,WAAW,IAAIz5T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAE/Z,EAAE,IAAI3N,MAAM,IAAI,IAAIlgC,EAAE,EAAEykC,EAAE,EAAEA,EAAE,GAAGA,IAAI,IAAIgJ,EAAEhJ,GAAGzkC,EAAE1pB,EAAE,EAAEA,EAAE,GAAG/N,EAAEk8D,GAAGnuD,IAAI+8D,EAAErzC,KAAKykC,EAAE,IAAI4O,EAAErzC,EAAE,GAAGykC,EAAEmjB,EAAE,EAAEnjB,EAAE,EAAEA,EAAE,GAAGA,IAAI,IAAIr9D,EAAEq9D,GAAGmjB,EAAEtxE,EAAE,EAAEA,EAAE,GAAGnP,EAAEs9D,GAAGnuD,IAAIutD,EAAE+jB,KAAKnjB,EAAE,IAAImjB,IAAI,EAAEnjB,EAAE,GAAGA,IAAI,IAAIr9D,EAAEq9D,GAAGmjB,GAAG,EAAEtxE,EAAE,EAAEA,EAAE,GAAGnP,EAAEs9D,GAAG,EAAEnuD,IAAIutD,EAAE,IAAI+jB,KAAKnjB,EAAE,IAAIwB,EAAE,EAAEA,GAAG,GAAGA,IAAI4H,EAAE5H,GAAG,EAAE,IAAI3vD,EAAE,EAAEA,GAAG,KAAKmQ,EAAE,EAAEnQ,EAAE,GAAG,EAAEA,IAAIu3D,EAAE,KAAK,KAAKv3D,GAAG,KAAKmQ,EAAE,EAAEnQ,EAAE,GAAG,EAAEA,IAAIu3D,EAAE,KAAK,KAAKv3D,GAAG,KAAKmQ,EAAE,EAAEnQ,EAAE,GAAG,EAAEA,IAAIu3D,EAAE,KAAK,KAAKv3D,GAAG,KAAKmQ,EAAE,EAAEnQ,EAAE,GAAG,EAAEA,IAAIu3D,EAAE,KAAK,IAAI8yM,EAAEl6P,EAAE,IAAIonD,GAAGv3D,EAAE,EAAEA,EAAE,GAAGA,IAAI+/D,EAAE,EAAE//D,EAAE,GAAG,EAAE+/D,EAAE,EAAE//D,GAAG85T,EAAE95T,EAAE,GAAGsuD,EAAE,IAAI7B,EAAEt8C,EAAEle,EAAE,IAAI,IAAI,IAAI8xC,EAAE,IAAI0oB,EAAEsT,EAAElvE,EAAE,EAAE,GAAG,IAAIi6E,EAAE,IAAIre,EAAE,IAAI7C,MAAM,GAAG8O,EAAE,EAAE,GAAG,EAAE,CAAlhB,GAAshB+gQ,GAAE,GAAIz5T,EAAEo1qB,OAAO,IAAI/3mB,EAAEr9D,EAAEi1qB,UAAU3mnB,GAAGtuD,EAAEq1qB,OAAO,IAAIh4mB,EAAEr9D,EAAEk1qB,UAAUnxoB,GAAG/jC,EAAEs1qB,QAAQ,IAAIj4mB,EAAEr9D,EAAEm1qB,QAAQrqmB,GAAG9qE,EAAEg2qB,OAAO,EAAEh2qB,EAAEi2qB,SAAS,EAAEt8W,EAAE35T,EAAE,EAAE0pB,EAAE+spB,iBAAiB33C,EAAEp1mB,EAAEqppB,gBAAgB,SAAS/yqB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,EAAEr/E,EAAEpB,EAAE,EAAEmP,EAAEmlI,MAAM,GAAG,IAAInlI,EAAE8uqB,KAAKoH,YAAYl2qB,EAAE8uqB,KAAKoH,UAAU,SAASl2qB,GAAG,IAAI2vD,EAAEjmC,EAAE,WAAW,IAAIimC,EAAE,EAAEA,GAAG,GAAGA,IAAIjmC,KAAK,EAAE,GAAG,EAAEA,GAAG,IAAI1pB,EAAEi1qB,UAAU,EAAEtlnB,GAAG,OAAO,EAAE,GAAG,IAAI3vD,EAAEi1qB,UAAU,KAAK,IAAIj1qB,EAAEi1qB,UAAU,KAAK,IAAIj1qB,EAAEi1qB,UAAU,IAAI,OAAO,EAAE,IAAItlnB,EAAE,GAAGA,EAAE,IAAIA,IAAI,GAAG,IAAI3vD,EAAEi1qB,UAAU,EAAEtlnB,GAAG,OAAO,EAAE,OAAO,CAAC,CAApO,CAAsO3vD,IAAIwjW,EAAExjW,EAAEA,EAAEo1qB,QAAQ5xU,EAAExjW,EAAEA,EAAEq1qB,QAAQxkrB,EAAE,SAASmP,GAAG,IAAI2vD,EAAE,IAAIkvkB,EAAE7+nB,EAAEA,EAAEi1qB,UAAUj1qB,EAAEo1qB,OAAO4D,UAAUn6C,EAAE7+nB,EAAEA,EAAEk1qB,UAAUl1qB,EAAEq1qB,OAAO2D,UAAUx1U,EAAExjW,EAAEA,EAAEs1qB,SAAS3lnB,EAAE,GAAGA,GAAG,GAAG,IAAI3vD,EAAEm1qB,QAAQ,EAAE59mB,EAAE5H,GAAG,GAAGA,KAAK,OAAO3vD,EAAE81qB,SAAS,GAAGnmnB,EAAE,GAAG,EAAE,EAAE,EAAEA,CAAC,CAApL,CAAsL3vD,GAAGsxE,EAAEtxE,EAAE81qB,QAAQ,EAAE,IAAI,GAAG7jrB,EAAE+N,EAAE+1qB,WAAW,EAAE,IAAI,IAAIzkmB,IAAIA,EAAEr/E,IAAIq/E,EAAEr/E,EAAEy3B,EAAE,EAAEA,EAAE,GAAG4nD,IAAI,IAAI3hB,EAAEmvkB,EAAE9+nB,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAInuD,EAAE82R,UAAU7kS,IAAIq/E,GAAG6lH,EAAEn3L,EAAE,GAAGmuD,EAAE,EAAE,GAAG,GAAGywkB,EAAE5+nB,EAAEmQ,EAAE4vD,KAAKo3H,EAAEn3L,EAAE,GAAGmuD,EAAE,EAAE,GAAG,GAAG,SAASnuD,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,EAAE,IAAI6lH,EAAEn3L,EAAE2vD,EAAE,IAAI,GAAGwnI,EAAEn3L,EAAE0pB,EAAE,EAAE,GAAGytK,EAAEn3L,EAAEmuD,EAAE,EAAE,GAAGmjB,EAAE,EAAEA,EAAEnjB,EAAEmjB,IAAI6lH,EAAEn3L,EAAEA,EAAEm1qB,QAAQ,EAAE59mB,EAAE+Z,GAAG,GAAG,GAAGioP,EAAEv5T,EAAEA,EAAEi1qB,UAAUtlnB,EAAE,GAAG4pQ,EAAEv5T,EAAEA,EAAEk1qB,UAAUxrpB,EAAE,EAAE,CAA/I,CAAiJ1pB,EAAEA,EAAEo1qB,OAAO4D,SAAS,EAAEh5qB,EAAEq1qB,OAAO2D,SAAS,EAAEnorB,EAAE,GAAG+toB,EAAE5+nB,EAAEA,EAAEi1qB,UAAUj1qB,EAAEk1qB,YAAYv7W,EAAE35T,GAAGmuD,GAAGkrQ,EAAEr5T,EAAE,EAAE0pB,EAAEwqpB,UAAU,SAASl0qB,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE4yqB,YAAY5yqB,EAAE61qB,MAAM,EAAE71qB,EAAEo0qB,UAAUzknB,IAAI,EAAE,IAAI3vD,EAAE4yqB,YAAY5yqB,EAAE61qB,MAAM,EAAE71qB,EAAEo0qB,SAAS,GAAG,IAAIzknB,EAAE3vD,EAAE4yqB,YAAY5yqB,EAAE21qB,MAAM31qB,EAAEo0qB,UAAU,IAAI1qpB,EAAE1pB,EAAEo0qB,WAAW,IAAIzknB,EAAE3vD,EAAEi1qB,UAAU,EAAEvrpB,MAAM1pB,EAAEuwE,UAAU5gB,IAAI3vD,EAAEi1qB,UAAU,GAAGl4mB,EAAErzC,GAAG,IAAI,MAAM1pB,EAAEk1qB,UAAU,EAAE17W,EAAE7pQ,OAAO3vD,EAAEo0qB,WAAWp0qB,EAAE41qB,YAAY,CAAC,EAAElspB,EAAE8spB,UAAU,SAASx2qB,GAAGm3L,EAAEn3L,EAAE,EAAE,GAAGpP,EAAEoP,EAAE,IAAImQ,GAAG,SAASnQ,GAAG,KAAKA,EAAEi2qB,UAAUrllB,EAAE5wF,EAAEA,EAAEg2qB,QAAQh2qB,EAAEg2qB,OAAO,EAAEh2qB,EAAEi2qB,SAAS,GAAGj2qB,EAAEi2qB,UAAU,IAAIj2qB,EAAE4yqB,YAAY5yqB,EAAE42R,WAAW,IAAI52R,EAAEg2qB,OAAOh2qB,EAAEg2qB,SAAS,EAAEh2qB,EAAEi2qB,UAAU,EAAE,CAAvJ,CAAyJj2qB,EAAE,CAAC,EAAE,CAAC,kBAAkB,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,WAAWl5D,KAAKzzD,MAAM,KAAKyzD,KAAK80mB,QAAQ,EAAE90mB,KAAK+0mB,SAAS,EAAE/0mB,KAAKs5mB,SAAS,EAAEt5mB,KAAKq3C,OAAO,KAAKr3C,KAAKi1mB,SAAS,EAAEj1mB,KAAKw0mB,UAAU,EAAEx0mB,KAAKu4mB,UAAU,EAAEv4mB,KAAKklI,IAAI,GAAGllI,KAAK3hE,MAAM,KAAK2hE,KAAK27mB,UAAU,EAAE37mB,KAAKq5mB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS5zqB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,CAAC,yBAAyB,cAAc,yBAAyB,cAAc,yBAAyB,cAAc,yBAAyB,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,0BAA0B,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,SAASzzH,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAW0pB,EAAEwvpB,YAAYl5qB,EAAE,iBAAiB,IAAIsxE,EAAEnjB,EAAE4sjB,OAAO,iBAAiB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,kBAAkBga,MAAM6pC,KAAK7jD,IAAI,mBAAmBga,MAAM6pC,KAAK7jD,IAAI,UAAUga,MAAM6pC,KAAK7jD,IAAI,UAAUga,MAAM6pC,KAAK7jD,IAAI,aAAaga,MAAM6pC,KAAK7jD,IAAI,aAAaga,MAAM6pC,KAAK7jD,IAAI,eAAega,MAAM,IAAIhH,EAAE0vpB,cAAc9nmB,EAAE,IAAIr/E,EAAEk8D,EAAE4sjB,OAAO,gBAAgB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,kBAAkBga,MAAM,IAAIhH,EAAE2vpB,aAAapnrB,EAAE,IAAIpB,EAAEs9D,EAAE4sjB,OAAO,wBAAwB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,aAAaqtP,IAAIrrM,GAAG6B,KAAK7jD,IAAI,oBAAoB4iqB,SAAS,IAAI5vpB,EAAE6vpB,UAAU1orB,EAAE,IAAI6nE,EAAEvK,EAAE4sjB,OAAO,uBAAuB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,aAAa8iqB,QAAQj/mB,KAAK7jD,IAAI,QAAQ+iqB,QAAQzumB,WAAWzQ,KAAK7jD,IAAI,SAAS8iqB,QAAQxumB,WAAWzQ,KAAK7jD,IAAI,UAAUyiqB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,KAAKga,MAAM6pC,KAAK7jD,IAAI,KAAKga,MAAM6pC,KAAK7jD,IAAI,KAAKga,OAAOs6C,WAAW,IAAIzT,EAAEpJ,EAAE4sjB,OAAO,kBAAkB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,aAAaqtP,IAAIrrM,GAAG6B,KAAK7jD,IAAI,qBAAqBgjqB,SAAS,IAAIhwpB,EAAEiwpB,WAAWpinB,EAAE,IAAIpnD,EAAEg+C,EAAE4sjB,OAAO,2BAA2B,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,aAAayiqB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,MAAM8iqB,QAAQj/mB,KAAK7jD,IAAI,WAAWyiqB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,OAAOyiqB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,MAAM8iqB,QAAQj/mB,KAAK7jD,IAAI,aAAayiqB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,QAAQgjqB,SAASn/mB,KAAK7jD,IAAI,SAASga,QAAQ6pC,KAAK7jD,IAAI,UAAUyiqB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,QAAQ8iqB,QAAQj/mB,KAAK7jD,IAAI,MAAMgjqB,YAAYn/mB,KAAK7jD,IAAI,qBAAqBgjqB,SAAS,IAAIhwpB,EAAEkwpB,oBAAoBzpqB,EAAE,IAAI4vD,EAAE5R,EAAE4sjB,OAAO,iBAAiB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,KAAKga,MAAM6pC,KAAK7jD,IAAI,KAAKga,MAAM6pC,KAAK7jD,IAAI,KAAKga,MAAM6pC,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,YAAYga,MAAM,IAAIhH,EAAEmwpB,cAAc95mB,EAAEr2C,EAAEowpB,SAAS3rnB,EAAE4sjB,OAAO,YAAY,WAAWxgjB,KAAK7pC,KAAK,IAAI,IAAI68B,EAAEY,EAAE4sjB,OAAO,gBAAgB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,WAAWga,MAAM6pC,KAAK7jD,IAAI,cAAcgjqB,SAASn/mB,KAAK7jD,IAAI,cAAcs0D,WAAWu9jB,SAAS,GAAGxkY,IAAIhnM,GAAGxC,KAAK7jD,IAAI,aAAas0D,WAAWu9jB,SAAS,GAAG+wC,SAAS,IAAI5vpB,EAAEqwpB,aAAaxsnB,EAAE,IAAIwP,EAAE5O,EAAE4sjB,OAAO,gBAAgB,WAAWxgjB,KAAK8tkB,OAAO,CAAC2xC,WAAWz/mB,KAAKi/mB,SAAS,IAAI9vpB,EAAE47K,UAAUn3I,EAAE4sjB,OAAO,aAAa,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,KAAKga,MAAM6pC,KAAK7jD,IAAI,KAAKga,MAAM,GAAG,EAAE,CAAC,gBAAgB,IAAI,UAAU,MAAM,IAAI,CAAC,SAAS1wB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,WAAWsxE,EAAEnjB,EAAE4sjB,OAAO,QAAQ,WAAWxgjB,KAAK8tkB,OAAO,CAAC4xC,QAAQ1/mB,KAAK2/mB,UAAUC,YAAY5/mB,KAAK6/mB,WAAW,IAAInorB,EAAEk8D,EAAE4sjB,OAAO,sBAAsB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,QAAQ8iqB,QAAQj/mB,KAAK7jD,IAAI,SAASm1V,MAAM,IAAIh7W,EAAEs9D,EAAE4sjB,OAAO,uBAAuB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,aAAa8iqB,QAAQj/mB,KAAK7jD,IAAI,cAAcs0D,WAAWzQ,KAAK7jD,IAAI,SAAS8iqB,QAAQxumB,WAAW,IAAItS,EAAEvK,EAAE4sjB,OAAO,wBAAwB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,aAAaqtP,IAAIlzQ,GAAG0pE,KAAK7jD,IAAI,oBAAoB4iqB,SAAS,IAAI/hnB,EAAEpJ,EAAE4sjB,OAAO,6BAA6B,WAAWxgjB,KAAK8/mB,MAAMporB,EAAE,IAAIke,EAAEg+C,EAAE4sjB,OAAO,eAAe,WAAWxgjB,KAAK+/mB,MAAM/inB,EAAE,IAAIwI,EAAE5R,EAAE4sjB,OAAO,QAAQ,WAAWxgjB,KAAK8tkB,OAAO,CAACkyC,YAAYhgnB,KAAKwpM,IAAI5zP,IAAI,IAAIo9C,EAAEY,EAAE4sjB,OAAO,YAAY,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,aAAaqtP,IAAIzyL,GAAG/W,KAAK7jD,IAAI,YAAYqtP,IAAIzyL,GAAG,IAAIvU,EAAE5O,EAAE4sjB,OAAO,aAAa,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,UAAU8iqB,QAAQj/mB,KAAK7jD,IAAI,YAAYw7V,OAAO/0Q,KAAI,GAAI5iC,KAAK7jD,IAAI,aAAagjqB,SAAS,IAAIvinB,EAAEhJ,EAAE4sjB,OAAO,kBAAkB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,WAAW6xnB,SAAS,GAAG73mB,MAAMs6C,WAAWzQ,KAAK7jD,IAAI,gBAAgBga,MAAM6pC,KAAK7jD,IAAI,aAAaqtP,IAAIlzQ,GAAG0pE,KAAK7jD,IAAI,UAAUqtP,IAAIhkM,GAAGxF,KAAK7jD,IAAI,YAAYqtP,IAAIx2M,GAAGgN,KAAK7jD,IAAI,WAAWqtP,IAAIhkM,GAAGxF,KAAK7jD,IAAI,wBAAwBqtP,IAAIrrM,GAAG6B,KAAK7jD,IAAI,kBAAkB8xnB,SAAS,GAAG8wC,SAAStumB,WAAWzQ,KAAK7jD,IAAI,mBAAmB8xnB,SAAS,GAAG8wC,SAAStumB,WAAWzQ,KAAK7jD,IAAI,cAAc6xnB,SAAS,GAAG+xC,MAAMv9mB,GAAGiO,WAAW,IAAI1c,EAAEH,EAAE4sjB,OAAO,mBAAmB,WAAWxgjB,KAAK4+mB,MAAMpunB,IAAIwP,KAAK7jD,IAAI,kBAAkBqtP,IAAI5sM,GAAGoD,KAAK7jD,IAAI,sBAAsBqtP,IAAIlzQ,GAAG0pE,KAAK7jD,IAAI,kBAAkB4iqB,SAAS,IAAI3pnB,EAAE8jE,QAAQnlE,CAAC,EAAE,CAAC,UAAU,MAAM,IAAI,CAAC,SAAStuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,2HAA2HmjB,EAAE,8CAA8Cr/E,EAAE,oFAAoFpB,EAAEmP,EAAE,kBAAkB04D,EAAE14D,EAAE,kBAAkBu3D,EAAEv3D,EAAE,eAAe4zH,OAAOjkE,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,IAAIjmC,EAAEvZ,EAAEnQ,EAAE/T,WAAW8zE,EAAE5vD,EAAEi+C,MAAMD,GAAG,GAAG4R,EAAE,CAAC,IAAIxS,EAAE,MAAMwS,EAAE,GAAGhD,EAAExF,EAAE53C,KAAKogD,EAAE,GAAG,OAAO5I,EAAEI,EAAE53C,KAAKogD,EAAE,GAAGjgD,QAAQ,UAAU,IAAI,UAAUwuC,EAAEz9D,EAAE8+D,EAAEoN,EAAErP,MAAM,EAAE,GAAG5+C,SAASixD,EAAE,GAAG,KAAKrpD,IAAIqtB,EAAE,GAAG+mC,EAAEpS,EAAEsglB,iBAAiBzrlB,EAAEe,EAAEyO,GAAGh5B,EAAEzuC,KAAKw1E,EAAEq1K,OAAOhpL,IAAIpzB,EAAEzuC,KAAKw1E,EAAEwtkB,SAAS5unB,EAAE6tC,EAAE1gB,OAAO9S,EAAE,KAAK,CAAC,IAAIjzC,EAAEqf,EAAEi+C,MAAMn8D,GAAGy3B,EAAE,IAAI6tC,EAAEzmE,EAAE,GAAGgvB,QAAQ,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC4wG,IAAIvgH,EAAEi+C,MAAMkjB,GAAG,GAAG3tD,KAAK+F,EAAE,CAAC,EAAE,CAAC,iBAAiB,IAAI8vnB,eAAe,IAAI,cAAc,MAAM,IAAI,CAAC,SAASx5oB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,UAAUsxE,EAAEtxE,EAAE,gBAAgB/N,EAAE+N,EAAE,aAAanP,EAAEmP,EAAE,kBAAkB04D,EAAE14D,EAAE,UAAUu3D,EAAEv3D,EAAE,eAAe4zH,OAAO,SAASzjH,EAAEnQ,GAAG,IAAI2vD,EAAE,WAAWmrjB,SAAS96mB,IAAIu3D,EAAE29D,SAASl1H,KAAK2vD,EAAE3vD,EAAEw6qB,WAAWx6qB,EAAEA,EAAE0W,KAAK,iBAAiB1W,IAAIA,EAAEu3D,EAAE53C,KAAK3f,IAAI,IAAI0pB,EAAEvZ,EAAE4vD,EAAE9tE,EAAE+N,EAAE2vD,GAAGpC,EAAEwS,EAAE2wD,IAAI3zD,EAAEgD,EAAEp8C,KAAK,OAAO4pC,GAAG,IAAI,cAAcp9C,EAAEg+C,EAAE+qnB,YAAY51D,OAAOvmjB,EAAE,OAAO09mB,eAAeC,qBAAqB,IAAI,aAAa,OAAOvqqB,IAAIA,EAAEg+C,EAAEornB,UAAUj2D,OAAOvmjB,EAAE,QAAQrzC,EAAEvZ,EAAEk1L,UAAUA,UAAUhgK,KAAK,MAAM,IAAI,uBAAuB,OAAO8oB,EAAEkrnB,aAAa/1D,OAAOnzmB,EAAEwqqB,iBAAiBh3pB,KAAK,OAAO,IAAI,oBAAoB,OAAOxT,EAAEktoB,kBAAkBltoB,EAAEwqqB,iBAAiB,CAACxprB,KAAK,KAAKwyB,KAAKxT,GAAG,IAAI,oBAAoB,OAAOA,EAAEk1L,UAAU7yK,OAAO8qnB,QAAQnvlB,EAAE2rnB,SAASx2D,OAAOnzmB,EAAEwqqB,iBAAiBh3pB,KAAK,OAAO,CAACxyB,KAAK,MAAMwyB,KAAKxT,EAAEk1L,UAAU7yK,QAAQ,QAAQ,MAAM,IAAIpkB,MAAM,kBAAkBsb,GAAG,MAAM,IAAItb,MAAM,oBAAoBm/C,GAAG,IAAI,wBAAwBwP,EAAE,SAAS/8D,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAEqlM,UAAUi0c,QAAQljP,IAAIwkR,UAAUC,KAAK1snB,EAAEr/C,SAAS9O,EAAEqlM,UAAUi0c,QAAQljP,IAAIwkR,UAAUE,MAAM7urB,WAAW,IAAIgG,EAAEq/E,EAAEtxE,EAAEqlM,UAAUi0c,QAAQc,OAAO2gC,KAAK11oB,KAAK,MAAMl1B,EAAEnQ,EAAEqlM,UAAUi0c,QAAQc,OAAOf,GAAGt5kB,EAAE//D,EAAEq9oB,kBAAkB9vlB,EAAEz+C,SAAS7c,EAAEqzB,MAAM,KAAK,GAAG,IAAI,EAAEy3C,EAAErE,EAAEkslB,WAAWj1lB,EAAEjmC,EAAEykC,EAAEZ,EAAE,QAAQ4J,EAAEtmE,EAAEmopB,iBAAiB/mpB,EAAE8qE,EAAE5sD,GAAGm+C,EAAE,GAAG,OAAOA,EAAEh5D,KAAK6hE,EAAEgpL,OAAOpgL,IAAIzR,EAAEh5D,KAAK6hE,EAAEmhlB,SAAS/glB,EAAE1gB,OAAOyX,EAAE,CAA3X,CAA6XyO,EAAE5O,EAAEyrnB,oBAAoBt2D,OAAOvmjB,EAAE,OAAOpN,GAAG,IAAI,cAAc,OAAOjmC,GAAGvZ,EAAEg+C,EAAEwrnB,WAAWr2D,OAAOvmjB,EAAE,QAAQsoI,UAAUA,UAAUhgK,KAAK,MAAM,IAAI,uBAAuB,OAAO8oB,EAAEirnB,cAAc91D,OAAOnzmB,EAAEktoB,kBAAkB,OAAO,IAAI,oBAAoB,MAAM,CAACR,MAAM1soB,EAAEk1L,UAAUw3c,MAAME,WAAW5ulB,EAAE4rnB,aAAaz2D,OAAOnzmB,EAAEktoB,kBAAkB,OAAON,YAAY,IAAI,oBAAoB,OAAO5soB,EAAEk1L,UAAU7yK,OAAOyqnB,SAAS9ulB,EAAE2rnB,SAASx2D,OAAOnzmB,EAAEktoB,kBAAkB,OAAO,CAAClspB,KAAK,MAAMqhC,OAAOriB,EAAEk1L,UAAU7yK,QAAQ,QAAQ,MAAM,IAAIpkB,MAAM,kBAAkBsb,GAAG,MAAM,IAAItb,MAAM,oBAAoBm/C,GAAG,IAAI,iBAAiB,OAAOY,EAAEkrnB,aAAa/1D,OAAOvmjB,EAAE,OAAO,IAAI,kBAAkB,OAAO5O,EAAEirnB,cAAc91D,OAAOvmjB,EAAE,OAAO,IAAI,kBAAkB,MAAM,CAAC5rE,KAAK,MAAMqhC,OAAO27B,EAAE0rnB,cAAcv2D,OAAOvmjB,EAAE,QAAQ,IAAI,iBAAiB,MAAM,CAAC8/kB,OAAO9/kB,EAAE5O,EAAE4rnB,aAAaz2D,OAAOvmjB,EAAE,QAAQkwJ,WAAWp7N,MAAMkrpB,WAAWhglB,EAAEgglB,YAAY,QAAQ,MAAM,IAAI3uoB,MAAM,oBAAoBm/C,GAAG,CAACoC,EAAE8jE,QAAQtjH,EAAEA,EAAEm1L,UAAUn3I,EAAEm3I,SAAS,EAAE,CAAC,eAAe,IAAI,SAAS,IAAI,YAAY,IAAI,iBAAiB,IAAIq/c,OAAO,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS3kpB,EAAE2vD,EAAEjmC,GAAGA,EAAEi7nB,OAAO3kpB,EAAE,eAAe0pB,EAAEk7nB,WAAW5kpB,EAAE,aAAa,EAAE,CAAC,cAAc,IAAI,aAAa,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,IAAG,SAAUA,EAAEykC,GAAG,IAAImjB,EAAEr/E,EAAE+N,EAAE,kBAAkBnP,EAAEmP,EAAE,sBAAsB04D,EAAE14D,EAAE,UAAUu3D,EAAEv3D,EAAE,eAAe4zH,OAAOzjH,EAAEg+C,EAAE09jB,QAAQ19jB,EAAE09jB,OAAOmvD,OAAOj7mB,EAAE,CAACq/lB,IAAI,QAAQ,QAAQ,QAAQG,KAAK,QAAQ3jB,OAAO,UAAU,UAAU,UAAUE,OAAO,UAAU,UAAU,UAAU,UAAU,UAAUC,OAAO,WAAWxulB,EAAE,GAAG,SAASwP,EAAE/8D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,OAAOnhE,EAAE8qqB,UAAU,MAAMj7qB,EAAE,CAAC3N,KAAK,WAAU,EAAG,CAAC,eAAexC,MAAM,SAASmQ,GAAG,OAAOmQ,EAAE+qqB,WAAW,CAAC7orB,KAAK,SAASworB,KAAKlrnB,EAAEwrnB,WAAWzxpB,EAAEk0H,KAAK,CAACvrJ,KAAKi/E,IAAItxE,EAAEmuD,GAAG,EAAE,IAAIt+D,MAAM,SAASmQ,GAAG,OAAOu3D,EAAE53C,KAAK3f,EAAE,GAAG,CAAC2vD,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEwH,EAAE7I,EAAEvqB,EAAE+mC,GAAG,mBAAmB/mC,IAAI+mC,EAAE/mC,EAAEA,OAAE,GAAQ,IAAIjzC,EAAEivE,GAAGh8B,EAAEA,GAAG,QAAQhzC,eAAe,IAAID,GAAG,mBAAmBq9D,EAAE3kD,QAAQ,OAAOkgB,EAAEkpa,UAAU,WAAW,IAAIlpa,EAAE,IAAIA,EAAEgvC,EAAE14D,EAAE2vD,EAAEwH,EAAE7I,EAAEvqB,EAAE,CAAC,MAAM/jC,GAAG,OAAO8qE,EAAE9qE,EAAE,CAAC8qE,EAAE,KAAKphD,EAAE,IAAI,GAAGz3B,EAAE+N,EAAE2vD,EAAEwH,EAAE7I,GAAG,mBAAmBwc,EAAE,MAAM,IAAI18D,MAAM,kCAAkCmpD,EAAE29D,SAASl1H,KAAKA,EAAEu3D,EAAE53C,KAAK3f,EAAEnP,IAAI0mE,EAAE29D,SAASvlE,KAAKA,EAAE4H,EAAE53C,KAAKgwC,EAAE9+D,IAAI,SAASmP,EAAE2vD,GAAG3vD,EAAEnQ,MAAM,SAASmQ,GAAG0pB,EAAEkpa,UAAU,WAAWjjY,EAAE,KAAK3vD,EAAE,GAAG,IAAI,SAASA,GAAG0pB,EAAEkpa,UAAU,WAAWjjY,EAAE3vD,EAAE,GAAG,GAAG,CAAtH,CAAwH,SAASA,GAAG,GAAGmuD,EAAEy+B,UAAUz+B,EAAEy+B,QAAQy3I,QAAQ,OAAO76N,QAAQknC,SAAQ,GAAI,IAAIvgC,IAAIA,EAAE8qqB,YAAY9qqB,EAAE+qqB,WAAW,OAAO1xqB,QAAQknC,SAAQ,GAAI,QAAG,IAAS6c,EAAEvtD,GAAG,OAAOutD,EAAEvtD,GAAG,IAAI2vD,EAAEoN,EAAEuU,EAAEA,GAAG/Z,EAAE89H,MAAM,GAAG/jH,EAAE,GAAG,IAAItxE,GAAGnQ,MAAM,WAAW,OAAM,CAAE,IAAI4O,OAAO,WAAW,OAAM,CAAE,IAAI,OAAO8uD,EAAEvtD,GAAG2vD,EAAEA,CAAC,CAAjR,CAAmR7+D,GAAGjB,MAAM,SAAS65B,GAAG,OAAOA,EAAEqzC,EAAE/8D,EAAE2vD,EAAEwH,EAAE7I,EAAEx9D,GAAG4nE,EAAE14D,EAAE2vD,EAAEwH,EAAE7I,EAAEvqB,EAAE,IAAI+mC,EAAE,CAAE,GAAE/U,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,qBAAqB,IAAI,iBAAiB,IAAI,SAAS,IAAI03N,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5kN,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAI0pB,EAAYA,EAAV1pB,EAAEqkO,SAAoBv1N,SAAS9O,EAAE2/D,QAAQr6C,MAAM,KAAK,GAAGooC,MAAM,GAAG,KAAK,EAAzD,QAAmE,SAASiC,EAAE8jE,QAAQ/pG,CAAE,GAAEqsC,KAAKwE,KAAKv6D,EAAE,YAAY,EAAE,CAAC4kN,SAAS,MAAM,IAAI,CAAC,SAAS5kN,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,IAAI0pB,EAAE1+B,KAAK0sE,IAAI,EAAE,IAAI,EAAE,SAASvJ,EAAEwB,EAAEjmC,GAAG,GAAG,iBAAiBimC,IAAI3vD,EAAEk1H,SAASvlE,GAAG,MAAM,IAAI47D,UAAU7hG,EAAE,8BAA8B,CAACimC,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAE2hB,EAAEr/E,GAAG,GAAGk8D,EAAEnuD,EAAE,YAAYmuD,EAAEwB,EAAE,QAAQ,iBAAiB2hB,EAAE,MAAM,IAAIi6C,UAAU,2BAA2B,GAAGj6C,EAAE,EAAE,MAAM,IAAIi6C,UAAU,kBAAkB,GAAG,iBAAiBt5H,EAAE,MAAM,IAAIs5H,UAAU,2BAA2B,GAAGt5H,EAAE,GAAGA,EAAEy3B,GAAGz3B,GAAGA,EAAE,MAAM,IAAIs5H,UAAU,iBAAiB,CAAE,GAAEx1D,KAAKwE,KAAK,CAAC26D,SAASl1H,EAAE,6BAA6B,EAAE,CAAC,2BAA2B,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmBsxE,EAAEtxE,EAAE,aAAa/N,EAAE+N,EAAE,UAAUnP,EAAEmP,EAAE,kBAAkB04D,EAAE14D,EAAE,sBAAsBu3D,EAAEv3D,EAAE,eAAe4zH,OAAOzjH,EAAEonD,EAAE89H,MAAM,KAAKt1H,EAAE,CAACq7mB,IAAI,GAAG7b,KAAK,GAAG1jB,OAAO,GAAGD,OAAO,GAAGE,OAAO,GAAGC,OAAO,GAAGs/B,OAAO,GAAGn3B,UAAU,IAAI,SAAS32lB,EAAEvtD,EAAE2vD,EAAEjmC,GAAG,IAAI74B,EAAE,SAASmP,GAAgD,MAAM,WAAWA,GAAG,cAAcA,EAAE,SAASA,GAAG,OAAO,IAAIsxE,GAAG6uK,OAAOngP,GAAG0rnB,QAAQ,EAAE,QAAQ1rnB,EAAEmuD,EAAzI,SAAWwB,GAAG,OAAO19D,EAAE+N,GAAGmgP,OAAOxwL,GAAG+7jB,QAAQ,CAAgG,CAAxJ,CAA0J1rnB,GAAG04D,EAAE,WAAW14D,GAAG,WAAWA,EAAE,IAAI,GAAG2vD,EAAEz9D,OAAOwmE,EAAE/I,EAAE9+D,EAAE8+D,GAAGA,EAAEz9D,OAAOwmE,IAAI/I,EAAE4H,EAAE1gB,OAAO,CAAC8Y,EAAEx/C,GAAGuoD,IAAI,IAAI,IAAInL,EAAEgK,EAAEs8D,YAAYn7D,EAAEqH,EAAE//D,IAAI+8D,EAAExF,EAAEs8D,YAAYn7D,EAAEqH,EAAE//D,IAAIm3D,EAAE,EAAEA,EAAEuB,EAAEvB,IAAI5J,EAAE4J,GAAG,GAAGxH,EAAEwH,GAAG4F,EAAE5F,GAAG,GAAGxH,EAAEwH,GAAG,IAAI7I,EAAEiJ,EAAEs8D,YAAYn7D,EAAEhvC,EAAE,GAAG6jC,EAAEuB,KAAKR,EAAE,EAAE,EAAEoK,GAAG6B,KAAK+gnB,MAAMhtnB,EAAEiM,KAAKghnB,MAAMhunB,EAAEgN,KAAKihnB,KAAKz+mB,EAAExC,KAAKkhnB,IAAIz7qB,EAAEu6D,KAAKmhnB,UAAUhjnB,EAAE6B,KAAKqjF,KAAK/sJ,EAAE0pE,KAAKnhE,KAAK2mE,EAAE//D,EAAE,CAACutD,EAAEzG,UAAUs1Q,IAAI,SAASp8T,EAAE2vD,GAAG,OAAO3vD,EAAE8uD,KAAKa,EAAE4K,KAAKmhnB,WAAWnhnB,KAAKqjF,KAAKjuF,GAAGb,KAAKyL,KAAKihnB,KAAKjhnB,KAAKmhnB,WAAWnhnB,KAAKqjF,KAAKrjF,KAAKihnB,KAAK,EAAE7rnB,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAGzgF,EAAEmP,EAAE2vD,EAAEjmC,EAAEykC,GAAGoJ,EAAE29D,SAASl1H,KAAKA,EAAEu3D,EAAE53C,KAAK3f,EAAE04D,IAAInB,EAAE29D,SAASvlE,KAAKA,EAAE4H,EAAE53C,KAAKgwC,EAAE+I,IAAI,IAAIzmE,EAAE,IAAIs7D,EAAE+jB,EAAEA,GAAG,OAAOtxE,EAAE2vD,EAAEz9D,QAAQie,EAAEonD,EAAEs8D,YAAY1lE,GAAG4O,EAAExF,EAAEs8D,YAAYlkE,EAAEz9D,OAAO,GAAGy9D,EAAEb,KAAKiO,EAAE,EAAE,EAAEpN,EAAEz9D,QAAQ,IAAI,IAAIilE,EAAE,EAAE7I,EAAEyR,EAAEuR,GAAGvtC,EAAE/4C,KAAKu9C,KAAK4lB,EAAEG,GAAGwc,EAAE,EAAEA,GAAG/mC,EAAE+mC,IAAI,CAAC/N,EAAEu6kB,cAAcxskB,EAAEnb,EAAEz9D,QAAQ,IAAI,IAAIpB,EAAEmB,EAAEmqU,IAAIr/P,EAAE9qE,EAAEqprB,OAAO7unB,EAAE37D,EAAEusE,EAAE,EAAEA,EAAE3zC,EAAE2zC,IAAI,CAAC5Q,EAAEx6D,EAAEmqU,IAAI3vQ,EAAEx6D,EAAEsprB,OAAO,IAAI,IAAI/hX,EAAE,EAAEA,EAAElrQ,EAAEkrQ,IAAI1oU,EAAE0oU,IAAI/sQ,EAAE+sQ,EAAE,CAAC1oU,EAAEg+D,KAAK3+C,EAAEgnD,GAAGA,GAAG7I,CAAC,CAAC,OAAOn+C,CAAC,CAAC,EAAE,CAAC,qBAAqB,IAAI,iBAAiB,IAAI,kBAAkB,IAAI+zoB,UAAU,IAAI,cAAc,IAAI,SAAS,MAAM,IAAI,CAAC,SAASlkpB,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,QAAG,IAASA,IAAIA,EAAE2/D,SAAS,IAAI3/D,EAAE2/D,QAAQnuE,QAAQ,QAAQ,IAAIwO,EAAE2/D,QAAQnuE,QAAQ,QAAQ,IAAIwO,EAAE2/D,QAAQnuE,QAAQ,SAASm+D,EAAE8jE,QAAQ,CAACm/T,SAAS,SAASjjY,EAAEjmC,EAAEykC,EAAEmjB,GAAG,GAAG,mBAAmB3hB,EAAE,MAAM,IAAI47D,UAAU,0CAA0C,IAAIt5H,EAAEpB,EAAE6nE,EAAEgL,UAAUxxE,OAAO,OAAOwmE,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO14D,EAAE4yb,SAASjjY,GAAG,KAAK,EAAE,OAAO3vD,EAAE4yb,UAAU,WAAWjjY,EAAEoG,KAAK,KAAKrsC,EAAE,IAAI,KAAK,EAAE,OAAO1pB,EAAE4yb,UAAU,WAAWjjY,EAAEoG,KAAK,KAAKrsC,EAAEykC,EAAE,IAAI,KAAK,EAAE,OAAOnuD,EAAE4yb,UAAU,WAAWjjY,EAAEoG,KAAK,KAAKrsC,EAAEykC,EAAEmjB,EAAE,IAAI,QAAQ,IAAIr/E,EAAE,IAAI23D,MAAM8O,EAAE,GAAG7nE,EAAE,EAAEA,EAAEoB,EAAEC,QAAQD,EAAEpB,KAAK6yE,UAAU7yE,GAAG,OAAOmP,EAAE4yb,UAAU,WAAWjjY,EAAE1S,MAAM,KAAKhrD,EAAE,IAAI,GAAG09D,EAAE8jE,QAAQzzH,CAAE,GAAE+1D,KAAKwE,KAAKv6D,EAAE,YAAY,EAAE,CAAC4kN,SAAS,MAAM,IAAI,CAAC,SAAS5kN,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAEr/E,EAAE09D,EAAE8jE,QAAQ,CAAC,EAAE,SAAS5iI,IAAI,MAAM,IAAIud,MAAM,kCAAkC,CAAC,SAASsqD,IAAI,MAAM,IAAItqD,MAAM,oCAAoC,CAAC,SAASmpD,EAAEv3D,GAAG,GAAGmuD,IAAI1T,WAAW,OAAOA,WAAWz6C,EAAE,GAAG,IAAImuD,IAAIt9D,IAAIs9D,IAAI1T,WAAW,OAAO0T,EAAE1T,WAAWA,WAAWz6C,EAAE,GAAG,IAAI,OAAOmuD,EAAEnuD,EAAE,EAAE,CAAC,MAAM2vD,GAAG,IAAI,OAAOxB,EAAE4H,KAAK,KAAK/1D,EAAE,EAAE,CAAC,MAAM2vD,GAAG,OAAOxB,EAAE4H,KAAKwE,KAAKv6D,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,IAAImuD,EAAE,mBAAmB1T,WAAWA,WAAW5pD,CAAC,CAAC,MAAMmP,GAAGmuD,EAAEt9D,CAAC,CAAC,IAAIygF,EAAE,mBAAmBrR,aAAaA,aAAavH,CAAC,CAAC,MAAM14D,GAAGsxE,EAAE5Y,CAAC,CAAC,CAA3I,GAA+I,IAAIvoD,EAAE4vD,EAAE,GAAGxS,GAAE,EAAGwP,GAAG,EAAE,SAAS5F,IAAI5J,GAAGp9C,IAAIo9C,GAAE,EAAGp9C,EAAEje,OAAO6tE,EAAE5vD,EAAE0mC,OAAOkpB,GAAGhD,GAAG,EAAEgD,EAAE7tE,QAAQo8D,IAAI,CAAC,SAASA,IAAI,IAAIf,EAAE,CAAC,IAAIvtD,EAAEu3D,EAAEJ,GAAG5J,GAAE,EAAG,IAAI,IAAIoC,EAAEoQ,EAAE7tE,OAAOy9D,GAAG,CAAC,IAAIx/C,EAAE4vD,EAAEA,EAAE,KAAKhD,EAAEpN,GAAGx/C,GAAGA,EAAE4sD,GAAGq/P,MAAMr/P,GAAG,EAAEpN,EAAEoQ,EAAE7tE,MAAM,CAACie,EAAE,KAAKo9C,GAAE,EAAG,SAASvtD,GAAG,GAAGsxE,IAAIrR,aAAa,OAAOA,aAAajgE,GAAG,IAAIsxE,IAAI5Y,IAAI4Y,IAAIrR,aAAa,OAAOqR,EAAErR,aAAaA,aAAajgE,GAAG,IAAIsxE,EAAEtxE,EAAE,CAAC,MAAM2vD,GAAG,IAAI,OAAO2hB,EAAEvb,KAAK,KAAK/1D,EAAE,CAAC,MAAM2vD,GAAG,OAAO2hB,EAAEvb,KAAKwE,KAAKv6D,EAAE,CAAC,CAAC,CAAtM,CAAwMA,EAAE,CAAC,CAAC,SAAS+jC,EAAE/jC,EAAE2vD,GAAG4K,KAAKohnB,IAAI37qB,EAAEu6D,KAAK31C,MAAM+qC,CAAC,CAAC,SAASmb,IAAI,CAAC74E,EAAE2gc,SAAS,SAAS5yb,GAAG,IAAI2vD,EAAE,IAAI/F,MAAM8Z,UAAUxxE,OAAO,GAAG,GAAGwxE,UAAUxxE,OAAO,EAAE,IAAI,IAAIw3B,EAAE,EAAEA,EAAEg6C,UAAUxxE,OAAOw3B,IAAIimC,EAAEjmC,EAAE,GAAGg6C,UAAUh6C,GAAGq2C,EAAEzqE,KAAK,IAAIyuC,EAAE/jC,EAAE2vD,IAAI,IAAIoQ,EAAE7tE,QAAQq7D,GAAGgK,EAAEjJ,EAAE,EAAEvqB,EAAE+iB,UAAUs1Q,IAAI,WAAW7hQ,KAAKohnB,IAAI1+nB,MAAM,KAAKsd,KAAK31C,MAAM,EAAE3yB,EAAE+J,MAAM,UAAU/J,EAAEoyO,SAAQ,EAAGpyO,EAAE2prB,IAAI,CAAC,EAAE3prB,EAAE4prB,KAAK,GAAG5prB,EAAE0tE,QAAQ,GAAG1tE,EAAE8vpB,SAAS,CAAC,EAAE9vpB,EAAEwoX,GAAG3vS,EAAE74E,EAAE2/E,YAAY9G,EAAE74E,EAAEsuE,KAAKuK,EAAE74E,EAAE6wX,IAAIh4S,EAAE74E,EAAEogZ,eAAevnU,EAAE74E,EAAEykqB,mBAAmB5rlB,EAAE74E,EAAE2pnB,KAAK9wiB,EAAE74E,EAAEukqB,gBAAgB1rlB,EAAE74E,EAAEwkqB,oBAAoB3rlB,EAAE74E,EAAEg0N,UAAU,SAASjmN,GAAG,MAAM,EAAE,EAAE/N,EAAEwjI,QAAQ,SAASz1H,GAAG,MAAM,IAAIoO,MAAM,mCAAmC,EAAEnc,EAAE6prB,IAAI,WAAW,MAAM,GAAG,EAAE7prB,EAAE8prB,MAAM,SAAS/7qB,GAAG,MAAM,IAAIoO,MAAM,iCAAiC,EAAEnc,EAAE+prB,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASh8qB,EAAE2vD,EAAEjmC,GAAGA,EAAEy7nB,cAAcnlpB,EAAE,mBAAmB0pB,EAAE47nB,eAAetlpB,EAAE,oBAAoB0pB,EAAE07nB,eAAe,SAASplpB,EAAE2vD,GAAG,OAAOjmC,EAAEy7nB,cAAcnlpB,EAAE2vD,GAAE,EAAG,EAAEjmC,EAAE27nB,cAAc,SAASrlpB,EAAE2vD,GAAG,OAAOjmC,EAAE47nB,eAAetlpB,EAAE2vD,GAAE,EAAG,CAAC,EAAE,CAAC,mBAAmB,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,eAAesxE,EAAEtxE,EAAE,eAAe4zH,OAAO,SAAS3hI,EAAE+N,GAAG,IAAI2vD,EAAE2hB,EAAEuiD,YAAY,GAAG,OAAOlkE,EAAE2nlB,cAAct3oB,EAAE,GAAG2vD,CAAC,CAACA,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE74B,EAAEygF,EAAE+jH,MAAM,GAAG38H,EAAE,EAAE7nE,EAAEqB,OAAOy9D,GAAGjmC,EAAEz3B,EAAEymE,KAAK7nE,EAAEygF,EAAEz6B,OAAO,CAAChmD,EAAEs9D,EAAE,QAAQgyL,OAAOngP,GAAGmgP,OAAOz2N,GAAGgimB,WAAW,OAAO76nB,EAAE68D,MAAM,EAAEiC,EAAE,CAAC,EAAE,CAAC,cAAc,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,cAAcsxE,EAAEtxE,EAAE,SAAS/N,EAAE+N,EAAE,SAASnP,EAAEmP,EAAE,SAAS04D,EAAE14D,EAAE,kBAAkBu3D,EAAEv3D,EAAE,eAAemQ,EAAEnQ,EAAE,gBAAgB+/D,EAAE//D,EAAE,eAAe4zH,OAAOjkE,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,GAAG,IAAI6jC,EAAEA,EAAEvtD,EAAExI,QAAQwI,EAAExI,QAAQkyB,EAAE,EAAE,EAAE,IAAIqzC,EAAE5F,EAAEhJ,EAAEnuD,GAAGsuD,EAAE6I,EAAE4jlB,QAAQ9mhB,aAAa,GAAGtkE,EAAEz9D,OAAOo8D,GAAG,IAAIz9D,EAAE8+D,GAAG08kB,IAAIl1kB,EAAE4jlB,UAAU,EAAE,MAAM,IAAI3soB,MAAM,oBAAoB2uD,EAAErzC,EAAEvZ,EAAE,IAAItf,EAAE8+D,GAAGwH,GAAGuB,EAAE/I,EAAEwH,GAAG,IAAIpzB,EAAEg8B,EAAEs1H,MAAM/mI,EAAEyO,EAAE7qE,QAAQ,GAAG6qE,EAAEgD,EAAElpB,OAAO,CAAC9S,EAAEg5B,GAAGzO,GAAG,IAAIf,EAAE,OAAO,SAASvtD,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAE+6oB,QAAQ9mhB,aAAa9lE,EAAEoJ,EAAE,QAAQ4oL,OAAOpgL,EAAEs1H,MAAM,IAAIq2b,SAAS76nB,EAAEs9D,EAAEj8D,OAAO,GAAG,IAAIy9D,EAAE,GAAG,MAAM,IAAIvhD,MAAM,oBAAoB,IAAIsqD,EAAE/I,EAAEjC,MAAM,EAAE78D,EAAE,GAAGsf,EAAEw/C,EAAEjC,MAAM78D,EAAE,GAAG08D,EAAEt7D,EAAEymE,EAAE4Y,EAAEnhE,EAAEtf,IAAIksE,EAAE9qE,EAAEke,EAAEmhE,EAAE/jB,EAAE7jC,EAAE74B,EAAE,IAAI,GAAG,SAASmP,EAAE2vD,GAAG3vD,EAAE+/D,EAAEpgD,KAAK3f,GAAG2vD,EAAEoQ,EAAEpgD,KAAKgwC,GAAG,IAAIjmC,EAAE,EAAEykC,EAAEnuD,EAAE9N,OAAO8N,EAAE9N,SAASy9D,EAAEz9D,SAASw3B,IAAIykC,EAAEnjE,KAAK64C,IAAI7jC,EAAE9N,OAAOy9D,EAAEz9D,SAAkB,IAAT,IAAIo/E,GAAG,IAASA,EAAEnjB,GAAGzkC,GAAG1pB,EAAEsxE,GAAG3hB,EAAE2hB,GAAG,OAAO5nD,CAAC,CAA5J,CAA8JykC,EAAE4O,EAAErP,MAAM,EAAE78D,IAAI,MAAM,IAAIud,MAAM,oBAA4B,IAAR,IAAI+oD,EAAEtmE,EAAO,IAAIksE,EAAE5F,IAAIA,IAAI,GAAG,IAAI4F,EAAE5F,KAAK,MAAM,IAAI/oD,MAAM,oBAAoB,OAAO2uD,EAAErP,MAAMyJ,EAAE,CAArgB,CAAugBA,EAAE4F,GAAG,GAAG,IAAIxP,EAAE,OAAO,SAASvtD,EAAE2vD,EAAEjmC,GAA8B,IAA3B,IAAIykC,EAAEwB,EAAEjC,MAAM,EAAE,GAAG4jB,EAAE,EAAEr/E,EAAE,EAAO,IAAI09D,EAAE2hB,MAAM,GAAGA,GAAG3hB,EAAEz9D,OAAO,CAACD,IAAI,KAAK,CAAC,IAAIpB,EAAE8+D,EAAEjC,MAAM,EAAE4jB,EAAE,GAAwF,IAApF,SAASnjB,EAAEliE,SAAS,SAASy9B,GAAG,SAASykC,EAAEliE,SAAS,QAAQy9B,IAAIz3B,IAAIpB,EAAEqB,OAAO,GAAGD,IAAOA,EAAE,MAAM,IAAImc,MAAM,oBAAoB,OAAOuhD,EAAEjC,MAAM4jB,EAAE,CAA1P,CAA4P,EAAEvU,EAAErzC,GAAG,GAAG,IAAI6jC,EAAE,OAAOwP,EAAE,MAAM,IAAI3uD,MAAM,kBAAkB,CAAC,EAAE,CAAC,QAAQ,IAAI,eAAe,IAAI,QAAQ,IAAI,QAAQ,IAAI,iBAAiB,IAAI,cAAc,IAAI,aAAa,IAAI,cAAc,MAAM,IAAI,CAAC,SAASpO,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,cAAcsxE,EAAEtxE,EAAE,eAAe/N,EAAE+N,EAAE,eAAenP,EAAEmP,EAAE,SAAS04D,EAAE14D,EAAE,SAASu3D,EAAEv3D,EAAE,SAASmQ,EAAEnQ,EAAE,gBAAgB+/D,EAAE//D,EAAE,kBAAkButD,EAAEvtD,EAAE,eAAe4zH,OAAOjkE,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,GAAG,IAAIqzC,EAAEA,EAAE/8D,EAAExI,QAAQwI,EAAExI,QAAQkyB,EAAE,EAAE,EAAE,IAAIytC,EAAE7I,EAAEH,EAAEnuD,GAAG,GAAG,IAAI+8D,EAAE5F,EAAE,SAASn3D,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAE+6oB,QAAQ9mhB,aAAa9lE,EAAEwB,EAAEz9D,OAAOie,EAAEle,EAAE,QAAQkuP,OAAO5yL,EAAE8nI,MAAM,IAAIq2b,SAAS3rjB,EAAE5vD,EAAEje,OAAO6qE,EAAE,EAAEgD,EAAE,GAAG5R,EAAEzkC,EAAEqzC,EAAE,EAAE,MAAM,IAAI3uD,MAAM,oBAAoB,IAAI+oD,EAAE5J,EAAE8nI,MAAM3rK,EAAEykC,EAAE4O,EAAE,GAAGzO,EAAE5kC,EAAEq2C,EAAE,EAAEh8B,EAAEutC,EAAEvR,GAAG+K,EAAEpS,EAAEnL,EAAE1W,OAAO,CAAC1mC,EAAEgnD,EAAE5J,EAAE8nI,MAAM,EAAE,GAAG1lI,GAAGrB,GAAGz9D,EAAEkzC,EAAEuqB,IAAIx9D,EAAE4nE,EAAE30B,EAAElzC,EAAEi6E,EAAE/K,IAAI,OAAO,IAAIxI,EAAEhK,EAAE1W,OAAO,CAAC0W,EAAE8nI,MAAM,GAAGvkM,EAAEg6E,GAAGphD,GAAG,CAAzS,CAA2S4kC,EAAEqB,QAAQ,GAAG,IAAIoN,EAAE5F,EAAE,SAASn3D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEl8D,EAAE09D,EAAEz9D,OAAOrB,EAAEmP,EAAE+6oB,QAAQ9mhB,aAAa,GAAGhiI,EAAEpB,EAAE,GAAG,MAAM,IAAIud,MAAM,oBAAgL,OAA5J+/C,EAAEzkC,EAAE6jC,EAAE8nI,MAAMxkM,EAAEoB,EAAE,EAAE,KAAK,SAAS+N,GAA6C,IAA1C,IAAI2vD,EAAEjmC,EAAE6jC,EAAEsmE,YAAY7zH,GAAGmuD,EAAE,EAAEl8D,EAAEq/E,EAAE,EAAEtxE,GAAGnP,EAAE,EAAOs9D,EAAEnuD,GAAGnP,IAAIoB,EAAEC,SAASD,EAAEq/E,EAAE,EAAEtxE,GAAGnP,EAAE,IAAI8+D,EAAE19D,EAAEpB,QAAQ64B,EAAEykC,KAAKwB,GAAG,OAAOjmC,CAAC,CAA5H,CAA8H74B,EAAEoB,EAAE,GAAU,IAAIslE,EAAEhK,EAAE1W,OAAO,CAAC0W,EAAE5tC,KAAK,CAAC,EAAE+J,EAAE,EAAE,IAAIykC,EAAEZ,EAAE8nI,MAAM,GAAG1lI,GAAG9+D,GAAG,CAAhU,CAAkUy9D,EAAEqB,EAAEjmC,OAAO,CAAC,GAAG,IAAIqzC,EAAE,MAAM,IAAI3uD,MAAM,mBAAmB,IAAI+oD,EAAE,IAAII,EAAE5H,IAAI08kB,IAAI/9kB,EAAEyslB,UAAU,EAAE,MAAM,IAAI3soB,MAAM,4BAA4B,CAAC,OAAOsb,EAAEq2C,EAAE5I,EAAE7I,GAAGn+C,EAAEgnD,EAAE7I,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,eAAe,IAAI,QAAQ,IAAI,QAAQ,IAAI,iBAAiB,IAAI,cAAc,IAAI,aAAa,IAAIitlB,YAAY,IAAI,cAAc,MAAM,IAAI,CAAC,SAASv7oB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,SAASsxE,EAAEtxE,EAAE,eAAe4zH,OAAOjkE,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,OAAO2hB,EAAE3xD,KAAK3f,EAAE+zoB,MAAM5llB,EAAE+nlB,KAAKvmlB,EAAEorlB,UAAU3F,OAAO,IAAIjnlB,EAAEwB,EAAEqrlB,iBAAiB9G,UAAU3nlB,UAAU,CAAC,EAAE,CAAC,QAAQ,IAAI,cAAc,MAAM,IAAI,CAAC,SAASvsD,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE1pB,EAAE9N,OAAOi8D,GAAG,IAAIA,EAAEzkC,GAAG1pB,EAAEmuD,IAAIwB,EAAExB,GAAG,OAAOnuD,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,IAAG,SAAUA,EAAEykC,GAAG,IAAImjB,EAAEtxE,EAAE,eAAe4zH,OAAO3hI,EAAEk8D,EAAE09jB,QAAQ19jB,EAAEsolB,SAASxkpB,GAAGA,EAAEukpB,gBAAgB7mlB,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,GAAG3vD,EAAE,WAAW,MAAM,IAAIwwT,WAAW,mCAAmC,IAAIriQ,EAAEmjB,EAAEuiD,YAAY7zH,GAAG,GAAGA,EAAE,EAAE,GAAGA,EAAE,MAAM,IAAI,IAAInP,EAAE,EAAEA,EAAEmP,EAAEnP,GAAG,MAAMoB,EAAEukpB,gBAAgBrolB,EAAET,MAAM78D,EAAEA,EAAE,aAAaoB,EAAEukpB,gBAAgBrolB,GAAG,MAAG,mBAAmBwB,EAASjmC,EAAEkpa,UAAU,WAAWjjY,EAAE,KAAKxB,EAAE,IAAWA,CAAC,EAAEwB,EAAE8jE,QAAQ,WAAW,MAAM,IAAIrlH,MAAM,iHAAiH,CAAE,GAAE2nD,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC03N,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5kN,EAAE2vD,EAAEjmC,IAAG,SAAUimC,EAAExB,GAAG,SAASmjB,IAAI,MAAM,IAAIljE,MAAM,6GAA6G,CAAC,IAAInc,EAAE+N,EAAE,eAAenP,EAAEmP,EAAE,eAAe04D,EAAEzmE,EAAE2hI,OAAOr8D,EAAEtlE,EAAE2rpB,WAAWztoB,EAAEg+C,EAAE09jB,QAAQ19jB,EAAEsolB,SAAS12kB,EAAE/0E,KAAK0sE,IAAI,EAAE,IAAI,EAAE,SAASnK,EAAEvtD,EAAE2vD,GAAG,GAAG,iBAAiB3vD,GAAGA,GAAGA,EAAE,MAAM,IAAIurH,UAAU,2BAA2B,GAAGvrH,EAAE+/D,GAAG//D,EAAE,EAAE,MAAM,IAAIurH,UAAU,2BAA2B,GAAGvrH,EAAEu3D,GAAGv3D,EAAE2vD,EAAE,MAAM,IAAI6gQ,WAAW,sBAAsB,CAAC,SAASzzP,EAAE/8D,EAAE2vD,EAAEjmC,GAAG,GAAG,iBAAiB1pB,GAAGA,GAAGA,EAAE,MAAM,IAAIurH,UAAU,yBAAyB,GAAGvrH,EAAE+/D,GAAG//D,EAAE,EAAE,MAAM,IAAIurH,UAAU,yBAAyB,GAAGvrH,EAAE2vD,EAAEjmC,GAAG1pB,EAAEu3D,EAAE,MAAM,IAAIi5P,WAAW,mBAAmB,CAAC,SAASr5P,EAAEn3D,EAAE0pB,EAAEykC,EAAEmjB,GAAG,GAAG3hB,EAAE00K,QAAQ,CAAC,IAAIpyO,EAAE+N,EAAE0rB,OAAOgtC,EAAE,IAAIq7D,WAAW9hI,EAAEy3B,EAAEykC,GAAG,OAAOh+C,EAAEqmoB,gBAAgB99kB,GAAG4Y,OAAO3hB,EAAEijY,UAAU,WAAWthX,EAAE,KAAKtxE,EAAE,IAAIA,CAAC,CAAC,IAAIsxE,EAAE,OAAOzgF,EAAEs9D,GAAGW,KAAK9uD,EAAE0pB,GAAG1pB,EAAEnP,EAAEs9D,GAAG,SAASwB,EAAExB,GAAG,GAAGwB,EAAE,OAAO2hB,EAAE3hB,GAAGxB,EAAEW,KAAK9uD,EAAE0pB,GAAG4nD,EAAE,KAAKtxE,EAAE,GAAG,CAACmQ,GAAGA,EAAEqmoB,kBAAkB7mlB,EAAE00K,SAAS36M,EAAE67nB,WAAW,SAASvlpB,EAAE2vD,EAAEjmC,EAAE4nD,GAAG,KAAK5Y,EAAEw8D,SAASl1H,IAAIA,aAAamuD,EAAE4lE,YAAY,MAAM,IAAIxI,UAAU,iDAAiD,GAAG,mBAAmB57D,EAAE2hB,EAAE3hB,EAAEA,EAAE,EAAEjmC,EAAE1pB,EAAE9N,YAAY,GAAG,mBAAmBw3B,EAAE4nD,EAAE5nD,EAAEA,EAAE1pB,EAAE9N,OAAOy9D,OAAO,GAAG,mBAAmB2hB,EAAE,MAAM,IAAIi6C,UAAU,oCAAoC,OAAOh+D,EAAEoC,EAAE3vD,EAAE9N,QAAQ6qE,EAAErzC,EAAEimC,EAAE3vD,EAAE9N,QAAQilE,EAAEn3D,EAAE2vD,EAAEjmC,EAAE4nD,EAAE,EAAE5nD,EAAE87nB,eAAe,SAASxlpB,EAAE2vD,EAAEjmC,GAAqB,QAAlB,IAASimC,IAAIA,EAAE,KAAQ+I,EAAEw8D,SAASl1H,IAAIA,aAAamuD,EAAE4lE,YAAY,MAAM,IAAIxI,UAAU,iDAA0F,OAAzCh+D,EAAEoC,EAAE3vD,EAAE9N,aAAQ,IAASw3B,IAAIA,EAAE1pB,EAAE9N,OAAOy9D,GAAUoN,EAAErzC,EAAEimC,EAAE3vD,EAAE9N,QAAQilE,EAAEn3D,EAAE2vD,EAAEjmC,EAAE,IAAIA,EAAE67nB,WAAWj0kB,EAAE5nD,EAAE87nB,eAAel0kB,EAAG,GAAEvb,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC03N,SAAS,IAAI22b,YAAY,IAAI,cAAc,MAAM,IAAI,CAAC,SAASv7oB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,CAAC,EAAE,SAASmjB,EAAEtxE,EAAE2vD,EAAEjmC,GAAGA,IAAIA,EAAEtb,OAAO,IAAIkjE,EAAE,SAAStxE,GAAG,IAAI0pB,EAAEykC,EAAE,SAASmjB,EAAE5nD,EAAEykC,EAAEmjB,GAAG,OAAOtxE,EAAE+1D,KAAKwE,KAAK,SAASv6D,EAAE0pB,EAAEykC,GAAG,MAAM,iBAAiBwB,EAAEA,EAAEA,EAAE3vD,EAAE0pB,EAAEykC,EAAE,CAAnD,CAAqDzkC,EAAEykC,EAAEmjB,KAAK/W,IAAI,CAAC,OAAOpM,EAAEnuD,GAAG0pB,EAAE4nD,GAAGxqB,UAAUvyC,OAAOiN,OAAO2sC,EAAErH,WAAWp9B,EAAEo9B,UAAUC,YAAYr9B,EAAEA,EAAEs9B,UAAUmH,EAAEmjB,CAAC,CAA3N,CAA6N5nD,GAAG4nD,EAAExqB,UAAUz0D,KAAKq3B,EAAEr3B,KAAKi/E,EAAExqB,UAAUx4C,KAAKtO,EAAEmuD,EAAEnuD,GAAGsxE,CAAC,CAAC,SAASr/E,EAAE+N,EAAE2vD,GAAG,GAAG/F,MAAMC,QAAQ7pD,GAAG,CAAC,IAAI0pB,EAAE1pB,EAAE9N,OAAO,OAAO8N,EAAEA,EAAElM,KAAK,SAASkM,GAAG,OAAO0iB,OAAO1iB,EAAE,IAAI0pB,EAAE,EAAE,UAAUmtB,OAAO8Y,EAAE,KAAK9Y,OAAO72C,EAAE0tD,MAAM,EAAEhkC,EAAE,GAAG2b,KAAK,MAAM,SAASrlC,EAAE0pB,EAAE,GAAG,IAAIA,EAAE,UAAUmtB,OAAO8Y,EAAE,KAAK9Y,OAAO72C,EAAE,GAAG,QAAQ62C,OAAO72C,EAAE,IAAI,MAAM62C,OAAO8Y,EAAE,KAAK9Y,OAAO72C,EAAE,GAAG,CAAC,MAAM,MAAM62C,OAAO8Y,EAAE,KAAK9Y,OAAOn0B,OAAO1iB,GAAG,CAACsxE,EAAE,yBAAyB,SAAStxE,EAAE2vD,GAAG,MAAM,cAAcA,EAAE,4BAA4B3vD,EAAE,GAAG,GAAGurH,WAAWj6C,EAAE,wBAAwB,SAAStxE,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAI5Y,EAAE,GAAG,iBAAiB/I,IAAI2hB,EAAE,OAAO3hB,EAAEl/D,OAAe,EAAK6gF,KAAYA,IAAInjB,EAAE,cAAcwB,EAAEA,EAAE7vC,QAAQ,QAAQ,KAAKquC,EAAE,UAAU,SAASnuD,EAAE2vD,EAAEjmC,GAAG,YAAO,IAASA,GAAGA,EAAE1pB,EAAE9N,UAAUw3B,EAAE1pB,EAAE9N,QAAQ8N,EAAE41C,UAAUlsB,EAAEimC,EAASjmC,KAAKimC,CAAC,CAA1F,CAA4F3vD,EAAE,aAAa04D,EAAE,OAAO7hB,OAAO72C,EAAE,KAAK62C,OAAOsX,EAAE,KAAKtX,OAAO5kD,EAAE09D,EAAE,aAAa,CAAC,IAAI4H,EAAE,SAASv3D,EAAE2vD,EAAEjmC,GAAG,MAAM,iBAAiBA,IAAIA,EAAE,KAAKA,EAAEimC,EAAS3vD,EAAE9N,UAAU,IAAI8N,EAAExO,QAAgB,IAANk4B,EAAE,CAA3F,CAA6F1pB,GAAO,WAAW,WAAW04D,EAAE,QAAQ7hB,OAAO72C,EAAE,MAAM62C,OAAO0gB,EAAE,KAAK1gB,OAAOsX,EAAE,KAAKtX,OAAO5kD,EAAE09D,EAAE,QAAQ,CAAC,OAAO+I,EAAG,mBAAmB7hB,OAAOikkB,SAASpxlB,GAAG,GAAG6hG,WAAWj6C,EAAE,4BAA4B,2BAA2BA,EAAE,8BAA8B,SAAStxE,GAAG,MAAM,OAAOA,EAAE,4BAA4B,IAAIsxE,EAAE,6BAA6B,mBAAmBA,EAAE,wBAAwB,SAAStxE,GAAG,MAAM,eAAeA,EAAE,+BAA+B,IAAIsxE,EAAE,wBAAwB,kCAAkCA,EAAE,yBAAyB,6BAA6BA,EAAE,6BAA6B,mBAAmBA,EAAE,yBAAyB,sCAAsCi6C,WAAWj6C,EAAE,wBAAwB,SAAStxE,GAAG,MAAM,qBAAqBA,CAAC,GAAGurH,WAAWj6C,EAAE,qCAAqC,oCAAoC3hB,EAAE8jE,QAAQo+Y,MAAM1jd,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,IAAG,SAAUA,GAAG,IAAIykC,EAAE55C,OAAOs+B,MAAM,SAAS7yC,GAAG,IAAI2vD,EAAE,GAAG,IAAI,IAAIjmC,KAAK1pB,EAAE2vD,EAAEr6D,KAAKo0B,GAAG,OAAOimC,CAAC,EAAEA,EAAE8jE,QAAQtjH,EAAE,IAAImhE,EAAEtxE,EAAE,sBAAsB/N,EAAE+N,EAAE,sBAAsBA,EAAE,WAAFA,CAAcmQ,EAAEmhE,GAAG,IAAI,IAAIzgF,EAAEs9D,EAAEl8D,EAAE60D,WAAW4R,EAAE,EAAEA,EAAE7nE,EAAEqB,OAAOwmE,IAAI,CAAC,IAAInB,EAAE1mE,EAAE6nE,GAAGvoD,EAAE22C,UAAUyQ,KAAKpnD,EAAE22C,UAAUyQ,GAAGtlE,EAAE60D,UAAUyQ,GAAG,CAAC,SAASpnD,EAAEnQ,GAAG,KAAKu6D,gBAAgBpqD,GAAG,OAAO,IAAIA,EAAEnQ,GAAGsxE,EAAEvb,KAAKwE,KAAKv6D,GAAG/N,EAAE8jE,KAAKwE,KAAKv6D,GAAGu6D,KAAK0hnB,eAAc,EAAGj8qB,KAAI,IAAKA,EAAEk8qB,WAAW3hnB,KAAK2hnB,UAAS,IAAI,IAAKl8qB,EAAE+qH,WAAWxwD,KAAKwwD,UAAS,IAAI,IAAK/qH,EAAEi8qB,gBAAgB1hnB,KAAK0hnB,eAAc,EAAG1hnB,KAAKgG,KAAK,MAAMR,IAAI,CAAC,SAASA,IAAIxF,KAAK4hnB,eAAevN,OAAOllpB,EAAEkpa,SAASrlY,EAAEgN,KAAK,CAAC,SAAShN,EAAEvtD,GAAGA,EAAElU,KAAK,CAACyoB,OAAOo6E,eAAex+E,EAAE22C,UAAU,wBAAwB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,eAAeC,aAAa,IAAI7nqB,OAAOo6E,eAAex+E,EAAE22C,UAAU,iBAAiB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAeE,WAAW,IAAI9nqB,OAAOo6E,eAAex+E,EAAE22C,UAAU,iBAAiB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,eAAejqrB,MAAM,IAAIqiB,OAAOo6E,eAAex+E,EAAE22C,UAAU,YAAY,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,YAAO,IAASV,KAAK+hnB,qBAAgB,IAAS/hnB,KAAK4hnB,gBAAiB5hnB,KAAK+hnB,eAAe1td,WAAWr0J,KAAK4hnB,eAAevtd,SAAU,EAAEvrJ,IAAI,SAASrjE,QAAG,IAASu6D,KAAK+hnB,qBAAgB,IAAS/hnB,KAAK4hnB,iBAAiB5hnB,KAAK+hnB,eAAe1td,UAAU5uN,EAAEu6D,KAAK4hnB,eAAevtd,UAAU5uN,EAAE,GAAI,GAAE+1D,KAAKwE,KAAKv6D,EAAE,YAAY,EAAE,CAAC,qBAAqB,IAAI,qBAAqB,IAAI4kN,SAAS,IAAIg/V,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQniD,EAAE,IAAInjB,EAAEnuD,EAAE,uBAAuB,SAASsxE,EAAEtxE,GAAG,KAAKu6D,gBAAgB+W,GAAG,OAAO,IAAIA,EAAEtxE,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,EAAE,CAACA,EAAE,WAAFA,CAAcsxE,EAAEnjB,GAAGmjB,EAAExqB,UAAU85lB,WAAW,SAAS5gpB,EAAE2vD,EAAEjmC,GAAGA,EAAE,KAAK1pB,EAAE,CAAC,EAAE,CAAC,sBAAsB,IAAI4jjB,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,IAAG,SAAUA,EAAEykC,GAAG,IAAImjB,EAAE3hB,EAAE8jE,QAAQ42I,EAAEA,EAAEkya,cAAcziX,EAAE95T,EAAE,UAAUkwnB,aAAa,IAAyI//mB,EAArIle,EAAE,SAAS+N,EAAE2vD,GAAG,OAAO3vD,EAAEimN,UAAUt2J,GAAGz9D,MAAM,EAAErB,EAAEmP,EAAE,6BAA6B04D,EAAE14D,EAAE,UAAU4zH,OAAOr8D,EAAEpJ,EAAE4lE,YAAY,WAAW,EAAQh0D,EAAE//D,EAAE,QAAQmQ,EAAE4vD,GAAGA,EAAEy8mB,SAASz8mB,EAAEy8mB,SAAS,UAAU,WAAW,EAAE,IAAIjvnB,EAAEwP,EAAE5F,EAAE7I,EAAEtuD,EAAE,kCAAkC+jC,EAAE/jC,EAAE,8BAA8B8qE,EAAE9qE,EAAE,4BAA4By8qB,iBAAiB3rrB,EAAEkP,EAAE,aAAa6xgB,MAAMpld,EAAE37D,EAAE4rrB,qBAAqBr/mB,EAAEvsE,EAAE6rrB,0BAA0BnjX,EAAE1oU,EAAE8rrB,2BAA2BhslB,EAAE9/F,EAAE+rrB,mCAAmC78qB,EAAE,WAAFA,CAAcqqQ,EAAEx5Q,GAAG,IAAIsmM,EAAEpzJ,EAAE+4oB,eAAelsrB,EAAE,CAAC,QAAQ,QAAQ,UAAU,QAAQ,UAAU,SAASkpU,EAAEnqQ,EAAEjmC,EAAEykC,GAAGmjB,EAAEA,GAAGtxE,EAAE,oBAAoB2vD,EAAEA,GAAG,CAAC,EAAE,kBAAkBxB,IAAIA,EAAEzkC,aAAa4nD,GAAG/W,KAAKs8lB,aAAalnmB,EAAEknmB,WAAW1omB,IAAIoM,KAAKs8lB,WAAWt8lB,KAAKs8lB,cAAclnmB,EAAEs8jB,oBAAoB1xjB,KAAK6hnB,cAActxmB,EAAEvQ,KAAK5K,EAAE,wBAAwBxB,GAAGoM,KAAK7uC,OAAO,IAAI4iC,EAAEiM,KAAKroE,OAAO,EAAEqoE,KAAK0yjB,MAAM,KAAK1yjB,KAAKwinB,WAAW,EAAExinB,KAAKyinB,QAAQ,KAAKzinB,KAAKq0mB,OAAM,EAAGr0mB,KAAKo/lB,YAAW,EAAGp/lB,KAAK0inB,SAAQ,EAAG1inB,KAAK2inB,MAAK,EAAG3inB,KAAK4inB,cAAa,EAAG5inB,KAAK6inB,iBAAgB,EAAG7inB,KAAK8inB,mBAAkB,EAAG9inB,KAAK+inB,iBAAgB,EAAG/inB,KAAK0J,QAAO,EAAG1J,KAAKgjnB,WAAU,IAAK5tnB,EAAE4tnB,UAAUhjnB,KAAKijnB,cAAc7tnB,EAAE6tnB,YAAYjjnB,KAAKq0J,WAAU,EAAGr0J,KAAKkjnB,gBAAgB9tnB,EAAE8tnB,iBAAiB,OAAOljnB,KAAKmjnB,WAAW,EAAEnjnB,KAAKojnB,aAAY,EAAGpjnB,KAAKu/lB,QAAQ,KAAKv/lB,KAAK+hjB,SAAS,KAAK3sjB,EAAE2sjB,WAAW/ujB,IAAIA,EAAEvtD,EAAE,mBAAmBsgpB,eAAe/llB,KAAKu/lB,QAAQ,IAAIvsmB,EAAEoC,EAAE2sjB,UAAU/hjB,KAAK+hjB,SAAS3sjB,EAAE2sjB,SAAS,CAAC,SAASjyW,EAAE16M,GAAG,GAAG2hB,EAAEA,GAAGtxE,EAAE,sBAAsBu6D,gBAAgB8vM,GAAG,OAAO,IAAIA,EAAE16M,GAAG,IAAIjmC,EAAE6wC,gBAAgB+W,EAAE/W,KAAK+hnB,eAAe,IAAIxiX,EAAEnqQ,EAAE4K,KAAK7wC,GAAG6wC,KAAK2hnB,UAAS,EAAGvsnB,IAAI,mBAAmBA,EAAE2rjB,OAAO/gjB,KAAKqsmB,MAAMj3mB,EAAE2rjB,MAAM,mBAAmB3rjB,EAAEw5L,UAAU5uL,KAAKqjnB,SAASjunB,EAAEw5L,UAAUt4P,EAAEklE,KAAKwE,KAAK,CAAC,SAASo/P,EAAE35T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAGnhE,EAAE,mBAAmBw/C,GAAG,IAAI19D,EAAEpB,EAAEmP,EAAEs8qB,eAAe,GAAG,OAAO3snB,EAAE9+D,EAAEosrB,SAAQ,EAAG,SAASj9qB,EAAE2vD,GAAG,GAAGx/C,EAAE,eAAcw/C,EAAEi/mB,MAArB,CAAkC,GAAGj/mB,EAAEmqmB,QAAQ,CAAC,IAAIpwoB,EAAEimC,EAAEmqmB,QAAQhuqB,MAAM49B,GAAGA,EAAEx3B,SAASy9D,EAAEjkC,OAAOp2B,KAAKo0B,GAAGimC,EAAEz9D,QAAQy9D,EAAEknmB,WAAW,EAAEntoB,EAAEx3B,OAAO,CAACy9D,EAAEi/mB,OAAM,EAAGj/mB,EAAEutnB,KAAKnjX,EAAE/5T,IAAI2vD,EAAEwtnB,cAAa,EAAGxtnB,EAAEytnB,kBAAkBztnB,EAAEytnB,iBAAgB,EAAGx+C,EAAE5+nB,IAA5L,CAAgM,CAA/O,CAAiPA,EAAEnP,QAAQ,GAAGygF,IAAIr/E,EAAE,SAAS+N,EAAE2vD,GAAG,IAAIjmC,EAA6IykC,EAAE,OAA7IA,EAAEwB,EAAE+I,EAAEw8D,SAAS/mE,IAAIA,aAAaoJ,GAAG,iBAAiB5H,QAAG,IAASA,GAAG3vD,EAAE62pB,aAAantoB,EAAE,IAAI+iC,EAAE,QAAQ,CAAC,SAAS,SAAS,cAAckD,IAAiBjmC,CAAC,CAAzK,CAA2K74B,EAAE8+D,IAAI19D,EAAEklM,EAAEn3L,EAAE/N,QAAQ,GAAGpB,EAAEgmqB,YAAYlnmB,GAAGA,EAAEz9D,OAAO,EAAE,GAAG,iBAAiBy9D,GAAG9+D,EAAEgmqB,YAAYtipB,OAAOk3G,eAAe97D,KAAK+I,EAAE5R,YAAY6I,EAAE,SAAS3vD,GAAG,OAAO04D,EAAE/4C,KAAK3f,EAAE,CAA5B,CAA8B2vD,IAAIxB,EAAEt9D,EAAE8oqB,WAAWxie,EAAEn3L,EAAE,IAAI4wF,GAAGyoO,EAAEr5T,EAAEnP,EAAE8+D,GAAE,QAAS,GAAG9+D,EAAE+9qB,MAAMz3e,EAAEn3L,EAAE,IAAIq9D,OAAO,CAAC,GAAGxsE,EAAE+9N,UAAU,OAAM,EAAG/9N,EAAEosrB,SAAQ,EAAGpsrB,EAAEipqB,UAAUpwoB,GAAGimC,EAAE9+D,EAAEipqB,QAAQnnf,MAAMhjH,GAAG9+D,EAAEgmqB,YAAY,IAAIlnmB,EAAEz9D,OAAOmnU,EAAEr5T,EAAEnP,EAAE8+D,GAAE,GAAI6zS,EAAExjW,EAAEnP,IAAIwoU,EAAEr5T,EAAEnP,EAAE8+D,GAAE,EAAG,MAAMxB,IAAIt9D,EAAEosrB,SAAQ,EAAGz5U,EAAExjW,EAAEnP,IAAI,OAAOA,EAAE+9qB,QAAQ/9qB,EAAEqB,OAAOrB,EAAEurrB,eAAe,IAAIvrrB,EAAEqB,OAAO,CAAC,SAASmnU,EAAEr5T,EAAE2vD,EAAEjmC,EAAEykC,GAAGwB,EAAEqtnB,SAAS,IAAIrtnB,EAAEz9D,SAASy9D,EAAEutnB,MAAMvtnB,EAAE+tnB,WAAW,EAAE19qB,EAAE47mB,KAAK,OAAOlylB,KAAKimC,EAAEz9D,QAAQy9D,EAAEknmB,WAAW,EAAEntoB,EAAEx3B,OAAOi8D,EAAEwB,EAAEjkC,OAAOh6B,QAAQg4B,GAAGimC,EAAEjkC,OAAOp2B,KAAKo0B,GAAGimC,EAAEwtnB,cAAcpjX,EAAE/5T,IAAIwjW,EAAExjW,EAAE2vD,EAAE,CAAwhC,SAAShX,EAAE34C,EAAE2vD,GAAG,OAAO3vD,GAAG,GAAG,IAAI2vD,EAAEz9D,QAAQy9D,EAAEi/mB,MAAM,EAAEj/mB,EAAEknmB,WAAW,EAAE72pB,GAAGA,EAAE2vD,EAAEqtnB,SAASrtnB,EAAEz9D,OAAOy9D,EAAEjkC,OAAO8rH,KAAK7zH,KAAKzxB,OAAOy9D,EAAEz9D,QAAQ8N,EAAE2vD,EAAEysnB,gBAAgBzsnB,EAAEysnB,cAAc,SAASp8qB,GAAG,OAAOA,GAAG,WAAWA,EAAE,YAAYA,IAAIA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,GAAGA,KAAKA,CAAC,CAAvG,CAAyGA,IAAIA,GAAG2vD,EAAEz9D,OAAO8N,EAAE2vD,EAAEi/mB,MAAMj/mB,EAAEz9D,QAAQy9D,EAAEwtnB,cAAa,EAAG,GAAG,CAAC,SAASpjX,EAAE/5T,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAensqB,EAAE,eAAew/C,EAAEwtnB,aAAaxtnB,EAAEytnB,iBAAiBztnB,EAAEwtnB,cAAa,EAAGxtnB,EAAEytnB,kBAAkBjtqB,EAAE,eAAew/C,EAAEqtnB,SAASrtnB,EAAEytnB,iBAAgB,EAAG1zpB,EAAEkpa,SAASgsM,EAAE5+nB,GAAG,CAAC,SAAS4+nB,EAAE5+nB,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAensqB,EAAE,gBAAgBw/C,EAAEi/J,UAAUj/J,EAAEz9D,OAAOy9D,EAAEi/mB,OAAOj/mB,EAAEi/J,YAAYj/J,EAAEz9D,SAASy9D,EAAEi/mB,QAAQ5uqB,EAAE47mB,KAAK,YAAYjsjB,EAAEytnB,iBAAgB,GAAIztnB,EAAEwtnB,cAAcxtnB,EAAEqtnB,UAAUrtnB,EAAEi/mB,OAAOj/mB,EAAEz9D,QAAQy9D,EAAEysnB,cAAc1iX,EAAE15T,EAAE,CAAC,SAASwjW,EAAExjW,EAAE2vD,GAAGA,EAAEgunB,cAAchunB,EAAEgunB,aAAY,EAAGj0pB,EAAEkpa,SAASisM,EAAE7+nB,EAAE2vD,GAAG,CAAC,SAASkvkB,EAAE7+nB,EAAE2vD,GAAG,MAAMA,EAAEstnB,UAAUttnB,EAAEi/mB,QAAQj/mB,EAAEz9D,OAAOy9D,EAAEysnB,eAAezsnB,EAAEqtnB,SAAS,IAAIrtnB,EAAEz9D,SAAS,CAAC,IAAIw3B,EAAEimC,EAAEz9D,OAAO,GAAGie,EAAE,wBAAwBnQ,EAAEs7mB,KAAK,GAAG5xlB,IAAIimC,EAAEz9D,OAAO,KAAK,CAACy9D,EAAEgunB,aAAY,CAAE,CAAC,SAASpkX,EAAEv5T,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAe3snB,EAAE0tnB,kBAAkBr9qB,EAAE42pB,cAAc,YAAY,EAAEjnmB,EAAE2tnB,kBAAkB3tnB,EAAEsU,OAAOtU,EAAEqtnB,SAAQ,EAAGh9qB,EAAE42pB,cAAc,QAAQ,GAAG52pB,EAAE+kE,QAAQ,CAAC,SAAS00P,EAAEz5T,GAAGmQ,EAAE,4BAA4BnQ,EAAEs7mB,KAAK,EAAE,CAAC,SAASwjB,EAAE9+nB,EAAE2vD,GAAGx/C,EAAE,SAASw/C,EAAEstnB,SAASttnB,EAAEstnB,SAASj9qB,EAAEs7mB,KAAK,GAAG3rjB,EAAE2tnB,iBAAgB,EAAGt9qB,EAAE47mB,KAAK,UAAUliT,EAAE15T,GAAG2vD,EAAEqtnB,UAAUrtnB,EAAEstnB,SAASj9qB,EAAEs7mB,KAAK,EAAE,CAAC,SAAS5hT,EAAE15T,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAe,IAAInsqB,EAAE,OAAOw/C,EAAEqtnB,SAASrtnB,EAAEqtnB,SAAS,OAAOh9qB,EAAEs7mB,SAAS,CAAC,SAAS1hT,EAAE55T,EAAE2vD,GAAG,OAAO,IAAIA,EAAEz9D,OAAO,MAAMy9D,EAAEknmB,WAAWntoB,EAAEimC,EAAEjkC,OAAOoyC,SAAS99D,GAAGA,GAAG2vD,EAAEz9D,QAAQw3B,EAAEimC,EAAEmqmB,QAAQnqmB,EAAEjkC,OAAO2Z,KAAK,IAAI,IAAIsqB,EAAEjkC,OAAOx5B,OAAOy9D,EAAEjkC,OAAO8T,QAAQmwB,EAAEjkC,OAAOmrB,OAAO8Y,EAAEz9D,QAAQy9D,EAAEjkC,OAAOo+C,SAASpgD,EAAEimC,EAAEjkC,OAAOmypB,QAAQ79qB,EAAE2vD,EAAEmqmB,SAASpwoB,GAAG,IAAIA,CAAC,CAAC,SAAS8nS,EAAExxT,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAensqB,EAAE,cAAcw/C,EAAEgqmB,YAAYhqmB,EAAEgqmB,aAAahqmB,EAAEi/mB,OAAM,EAAGllpB,EAAEkpa,SAASr7N,EAAE5nK,EAAE3vD,GAAG,CAAC,SAASu3N,EAAEv3N,EAAE2vD,GAAG,GAAGx/C,EAAE,gBAAgBnQ,EAAE25pB,WAAW35pB,EAAE9N,SAAS8N,EAAE25pB,YAAY,IAAI35pB,EAAE9N,SAAS8N,EAAE25pB,YAAW,EAAGhqmB,EAAEusnB,UAAS,EAAGvsnB,EAAEisjB,KAAK,OAAO57mB,EAAEw9qB,aAAa,CAAC,IAAI9zpB,EAAEimC,EAAEwsnB,iBAAiBzypB,GAAGA,EAAE8zpB,aAAa9zpB,EAAEs3B,WAAW2O,EAAEw5L,SAAS,CAAC,CAAC,SAAS5pK,EAAEv/E,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEykC,EAAEnuD,EAAE9N,OAAOw3B,EAAEykC,EAAEzkC,IAAI,GAAG1pB,EAAE0pB,KAAKimC,EAAE,OAAOjmC,EAAE,OAAO,CAAC,CAA5kGnV,OAAOo6E,eAAe07K,EAAEvjN,UAAU,YAAY,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,YAAO,IAASV,KAAK+hnB,gBAAgB/hnB,KAAK+hnB,eAAe1td,SAAS,EAAEvrJ,IAAI,SAASrjE,GAAGu6D,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAe1td,UAAU5uN,EAAE,IAAIqqQ,EAAEvjN,UAAUqiM,QAAQplN,EAAEolN,QAAQkhB,EAAEvjN,UAAUg3nB,WAAW/5oB,EAAEg6oB,UAAU1za,EAAEvjN,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAGA,EAAE3vD,EAAE,EAAEqqQ,EAAEvjN,UAAUxxD,KAAK,SAAS0K,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEoM,KAAK+hnB,eAAe,OAAOnunB,EAAE0omB,WAAWntoB,GAAE,EAAG,iBAAiB1pB,KAAK2vD,EAAEA,GAAGxB,EAAEsvnB,mBAAmBtvnB,EAAEmujB,WAAWt8mB,EAAE04D,EAAE/4C,KAAK3f,EAAE2vD,GAAGA,EAAE,IAAIjmC,GAAE,GAAIiwS,EAAEp/P,KAAKv6D,EAAE2vD,GAAE,EAAGjmC,EAAE,EAAE2gP,EAAEvjN,UAAUp1D,QAAQ,SAASsO,GAAG,OAAO25T,EAAEp/P,KAAKv6D,EAAE,MAAK,GAAG,EAAG,EAAEqqQ,EAAEvjN,UAAU8mkB,SAAS,WAAW,OAAM,IAAKrzjB,KAAK+hnB,eAAeU,OAAO,EAAE3ya,EAAEvjN,UAAU6mkB,YAAY,SAASh+jB,GAAGpC,IAAIA,EAAEvtD,EAAE,mBAAmBsgpB,eAAe,IAAI52nB,EAAE,IAAI6jC,EAAEoC,GAAG4K,KAAK+hnB,eAAexiB,QAAQpwoB,EAAE6wC,KAAK+hnB,eAAehgE,SAAS/hjB,KAAK+hnB,eAAexiB,QAAQx9C,SAAS,IAAI,IAAInujB,EAAEoM,KAAK+hnB,eAAe5wpB,OAAO8rH,KAAKlmE,EAAE,GAAG,OAAOnjB,GAAGmjB,GAAG5nD,EAAEipJ,MAAMxkH,EAAExqC,MAAMwqC,EAAEA,EAAE4B,KAAK,OAAOwK,KAAK+hnB,eAAe5wpB,OAAOo+C,QAAQ,KAAKwH,GAAG/W,KAAK+hnB,eAAe5wpB,OAAOp2B,KAAKg8E,GAAG/W,KAAK+hnB,eAAepqrB,OAAOo/E,EAAEp/E,OAAOqoE,IAAI,EAAwjE8vM,EAAEvjN,UAAUw0jB,KAAK,SAASt7mB,GAAGmQ,EAAE,OAAOnQ,GAAGA,EAAE8O,SAAS9O,EAAE,IAAI,IAAI2vD,EAAE4K,KAAK+hnB,eAAe5ypB,EAAE1pB,EAAE,GAAG,IAAIA,IAAI2vD,EAAEytnB,iBAAgB,GAAI,IAAIp9qB,GAAG2vD,EAAEwtnB,gBAAgB,IAAIxtnB,EAAEysnB,cAAczsnB,EAAEz9D,QAAQy9D,EAAEysnB,cAAczsnB,EAAEz9D,OAAO,IAAIy9D,EAAEi/mB,OAAO,OAAOz+pB,EAAE,qBAAqBw/C,EAAEz9D,OAAOy9D,EAAEi/mB,OAAO,IAAIj/mB,EAAEz9D,QAAQy9D,EAAEi/mB,MAAMp9W,EAAEj3P,MAAMw/P,EAAEx/P,MAAM,KAAK,GAAG,KAAKv6D,EAAE24C,EAAE34C,EAAE2vD,KAAKA,EAAEi/mB,MAAM,OAAO,IAAIj/mB,EAAEz9D,QAAQs/T,EAAEj3P,MAAM,KAAK,IAAIpM,EAAEmjB,EAAE3hB,EAAEwtnB,aAAa,OAAOhtqB,EAAE,gBAAgBmhE,IAAI,IAAI3hB,EAAEz9D,QAAQy9D,EAAEz9D,OAAO8N,EAAE2vD,EAAEysnB,gBAAgBjsqB,EAAE,6BAA6BmhE,GAAE,GAAI3hB,EAAEi/mB,OAAOj/mB,EAAEstnB,QAAQ9sqB,EAAE,mBAAmBmhE,GAAE,GAAIA,IAAInhE,EAAE,WAAWw/C,EAAEstnB,SAAQ,EAAGttnB,EAAEutnB,MAAK,EAAG,IAAIvtnB,EAAEz9D,SAASy9D,EAAEwtnB,cAAa,GAAI5inB,KAAKqsmB,MAAMj3mB,EAAEysnB,eAAezsnB,EAAEutnB,MAAK,EAAGvtnB,EAAEstnB,UAAUj9qB,EAAE24C,EAAEjvB,EAAEimC,KAAK,QAAQxB,EAAEnuD,EAAE,EAAE45T,EAAE55T,EAAE2vD,GAAG,OAAOA,EAAEwtnB,aAAaxtnB,EAAEz9D,QAAQy9D,EAAEysnB,cAAcp8qB,EAAE,IAAI2vD,EAAEz9D,QAAQ8N,EAAE2vD,EAAE+tnB,WAAW,GAAG,IAAI/tnB,EAAEz9D,SAASy9D,EAAEi/mB,QAAQj/mB,EAAEwtnB,cAAa,GAAIzzpB,IAAI1pB,GAAG2vD,EAAEi/mB,OAAOp9W,EAAEj3P,OAAO,OAAOpM,GAAGoM,KAAKqhjB,KAAK,OAAOztjB,GAAGA,CAAC,EAAEk8M,EAAEvjN,UAAU8/mB,MAAM,SAAS5mqB,GAAGm3L,EAAE58H,KAAK,IAAIi/P,EAAE,WAAW,EAAEnvD,EAAEvjN,UAAU6sB,KAAK,SAAS3zE,EAAE2vD,GAAG,IAAIxB,EAAEoM,KAAK+W,EAAE/W,KAAK+hnB,eAAe,OAAOhrmB,EAAEyrmB,YAAY,KAAK,EAAEzrmB,EAAE27iB,MAAMjtnB,EAAE,MAAM,KAAK,EAAEsxE,EAAE27iB,MAAM,CAAC37iB,EAAE27iB,MAAMjtnB,GAAG,MAAM,QAAQsxE,EAAE27iB,MAAM33nB,KAAK0K,GAAGsxE,EAAEyrmB,YAAY,EAAE5sqB,EAAE,wBAAwBmhE,EAAEyrmB,WAAWptnB,GAAG,IAAI9+D,EAAI8+D,IAAG,IAAKA,EAAE7jE,KAAMkU,IAAI0pB,EAAEs0pB,QAAQh+qB,IAAI0pB,EAAEu0pB,OAASnzmB,EAAFvT,EAAkY,SAASA,IAAIpnD,EAAE,SAASnQ,EAAElU,KAAK,CAACwlF,EAAEqolB,WAAWjwoB,EAAEkpa,SAAS/hc,GAAGs9D,EAAEoS,KAAK,MAAM1vE,GAAGmP,EAAEy6W,GAAG,UAA9c,SAAS/hT,EAAE/I,EAAEjmC,GAAGvZ,EAAE,YAAYw/C,IAAIxB,GAAGzkC,IAAG,IAAKA,EAAEw0pB,aAAax0pB,EAAEw0pB,YAAW,EAAG/tqB,EAAE,WAAWnQ,EAAEqyY,eAAe,QAAQ/jV,GAAGtuD,EAAEqyY,eAAe,SAAStuW,GAAG/jC,EAAEqyY,eAAe,QAAQtyU,GAAG//D,EAAEqyY,eAAe,QAAQl7U,GAAGn3D,EAAEqyY,eAAe,SAAS35U,GAAGvK,EAAEkkV,eAAe,MAAM96U,GAAGpJ,EAAEkkV,eAAe,MAAMvnU,GAAG3c,EAAEkkV,eAAe,OAAOt1U,GAAGxP,GAAE,GAAI+jB,EAAEosmB,YAAY19qB,EAAEm8qB,iBAAiBn8qB,EAAEm8qB,eAAegC,WAAWp+mB,IAAI,IAA6F,IAAIA,EAAE,SAAS//D,GAAG,OAAO,WAAW,IAAI2vD,EAAE3vD,EAAEs8qB,eAAensqB,EAAE,cAAcw/C,EAAE+tnB,YAAY/tnB,EAAE+tnB,YAAY/tnB,EAAE+tnB,aAAa,IAAI/tnB,EAAE+tnB,YAAYzrrB,EAAE+N,EAAE,UAAU2vD,EAAEqtnB,SAAQ,EAAGtjX,EAAE15T,GAAG,CAAC,CAAnK,CAAqKmuD,GAAGnuD,EAAEy6W,GAAG,QAAQ16S,GAAG,IAAIxS,GAAE,EAAG,SAASwP,EAAEpN,GAAGx/C,EAAE,UAAU,IAAIuZ,EAAE1pB,EAAE2yK,MAAMhjH,GAAGx/C,EAAE,aAAauZ,IAAG,IAAKA,KAAK,IAAI4nD,EAAEyrmB,YAAYzrmB,EAAE27iB,QAAQjtnB,GAAGsxE,EAAEyrmB,WAAW,IAAI,IAAIx9lB,EAAEjO,EAAE27iB,MAAMjtnB,MAAMutD,IAAIp9C,EAAE,8BAA8BmhE,EAAEosmB,YAAYpsmB,EAAEosmB,cAAcvvnB,EAAE0W,QAAQ,CAAC,SAAS1N,EAAExH,GAAGx/C,EAAE,UAAUw/C,GAAGmb,IAAI9qE,EAAEqyY,eAAe,QAAQl7U,GAAG,IAAIllE,EAAE+N,EAAE,UAAUm3L,EAAEn3L,EAAE2vD,EAAE,CAAC,SAASrB,IAAItuD,EAAEqyY,eAAe,SAAStuW,GAAG+mC,GAAG,CAAC,SAAS/mC,IAAI5zB,EAAE,YAAYnQ,EAAEqyY,eAAe,QAAQ/jV,GAAGwc,GAAG,CAAC,SAASA,IAAI36D,EAAE,UAAUg+C,EAAE0/jB,OAAO7tnB,EAAE,CAAC,OAAOmuD,EAAEssT,GAAG,OAAO19S,GAAG,SAAS/8D,EAAE2vD,EAAEjmC,GAAG,GAAG,mBAAmB1pB,EAAEw2pB,gBAAgB,OAAOx2pB,EAAEw2pB,gBAAgB7mmB,EAAEjmC,GAAG1pB,EAAEo5X,SAASp5X,EAAEo5X,QAAQzpU,GAAG/F,MAAMC,QAAQ7pD,EAAEo5X,QAAQzpU,IAAI3vD,EAAEo5X,QAAQzpU,GAAGj+D,QAAQg4B,GAAG1pB,EAAEo5X,QAAQzpU,GAAG,CAACjmC,EAAE1pB,EAAEo5X,QAAQzpU,IAAI3vD,EAAEy6W,GAAG9qT,EAAEjmC,EAAE,CAAzM,CAA2M1pB,EAAE,QAAQm3D,GAAGn3D,EAAEugE,KAAK,QAAQjS,GAAGtuD,EAAEugE,KAAK,SAASx8B,GAAG/jC,EAAE47mB,KAAK,OAAOztjB,GAAGmjB,EAAE0rmB,UAAU7sqB,EAAE,eAAeg+C,EAAE4W,UAAU/kE,CAAC,EAAEqqQ,EAAEvjN,UAAU+mkB,OAAO,SAAS7tnB,GAAG,IAAI2vD,EAAE4K,KAAK+hnB,eAAe5ypB,EAAE,CAACw0pB,YAAW,GAAI,GAAG,IAAIvunB,EAAEotnB,WAAW,OAAOxinB,KAAK,GAAG,IAAI5K,EAAEotnB,WAAW,OAAO/8qB,GAAGA,IAAI2vD,EAAEs9jB,QAAQjtnB,IAAIA,EAAE2vD,EAAEs9jB,OAAOt9jB,EAAEs9jB,MAAM,KAAKt9jB,EAAEotnB,WAAW,EAAEptnB,EAAEqtnB,SAAQ,EAAGh9qB,GAAGA,EAAE47mB,KAAK,SAASrhjB,KAAK7wC,IAAI6wC,KAAK,IAAIv6D,EAAE,CAAC,IAAImuD,EAAEwB,EAAEs9jB,MAAM37iB,EAAE3hB,EAAEotnB,WAAWptnB,EAAEs9jB,MAAM,KAAKt9jB,EAAEotnB,WAAW,EAAEptnB,EAAEqtnB,SAAQ,EAAG,IAAI,IAAI/qrB,EAAE,EAAEA,EAAEq/E,EAAEr/E,IAAIk8D,EAAEl8D,GAAG2pnB,KAAK,SAASrhjB,KAAK,CAAC2jnB,YAAW,IAAK,OAAO3jnB,IAAI,CAAC,IAAI1pE,EAAE0uF,EAAE5vB,EAAEs9jB,MAAMjtnB,GAAG,OAAO,IAAInP,IAAI8+D,EAAEs9jB,MAAMx7nB,OAAOZ,EAAE,GAAG8+D,EAAEotnB,YAAY,EAAE,IAAIptnB,EAAEotnB,aAAaptnB,EAAEs9jB,MAAMt9jB,EAAEs9jB,MAAM,IAAIjtnB,EAAE47mB,KAAK,SAASrhjB,KAAK7wC,IAAI6wC,IAAI,EAAE8vM,EAAEvjN,UAAU2zT,GAAG,SAASz6W,EAAE2vD,GAAG,IAAIxB,EAAEt9D,EAAEi2D,UAAU2zT,GAAG1kT,KAAKwE,KAAKv6D,EAAE2vD,GAAG2hB,EAAE/W,KAAK+hnB,eAAe,MAAM,SAASt8qB,GAAGsxE,EAAE+rmB,kBAAkB9inB,KAAKq8lB,cAAc,YAAY,GAAE,IAAKtllB,EAAE0rmB,SAASzinB,KAAKwK,UAAU,aAAa/kE,IAAIsxE,EAAEqolB,YAAYrolB,EAAE+rmB,oBAAoB/rmB,EAAE+rmB,kBAAkB/rmB,EAAE6rmB,cAAa,EAAG7rmB,EAAE0rmB,SAAQ,EAAG1rmB,EAAE8rmB,iBAAgB,EAAGjtqB,EAAE,cAAcmhE,EAAEp/E,OAAOo/E,EAAE2rmB,SAAS3rmB,EAAEp/E,OAAO6nU,EAAEx/P,MAAM+W,EAAE2rmB,SAASvzpB,EAAEkpa,SAASn5H,EAAEl/P,QAAQpM,CAAC,EAAEk8M,EAAEvjN,UAAU8qB,YAAYy4L,EAAEvjN,UAAU2zT,GAAGpwG,EAAEvjN,UAAUurV,eAAe,SAASryY,EAAE2vD,GAAG,IAAIxB,EAAEt9D,EAAEi2D,UAAUurV,eAAet8U,KAAKwE,KAAKv6D,EAAE2vD,GAAG,MAAM,aAAa3vD,GAAG0pB,EAAEkpa,SAASr5H,EAAEh/P,MAAMpM,CAAC,EAAEk8M,EAAEvjN,UAAU4vmB,mBAAmB,SAAS12pB,GAAG,IAAI2vD,EAAE9+D,EAAEi2D,UAAU4vmB,mBAAmBz5mB,MAAMsd,KAAKmJ,WAAW,MAAM,aAAa1jE,QAAG,IAASA,GAAG0pB,EAAEkpa,SAASr5H,EAAEh/P,MAAM5K,CAAC,EAAE06M,EAAEvjN,UAAUie,OAAO,WAAW,IAAI/kE,EAAEu6D,KAAK+hnB,eAAe,OAAOt8qB,EAAEg9qB,UAAU7sqB,EAAE,UAAUnQ,EAAEg9qB,SAASh9qB,EAAEq9qB,kBAAkB,SAASr9qB,EAAE2vD,GAAGA,EAAE2tnB,kBAAkB3tnB,EAAE2tnB,iBAAgB,EAAG5zpB,EAAEkpa,SAASksM,EAAE9+nB,EAAE2vD,GAAG,CAAzE,CAA2E4K,KAAKv6D,IAAIA,EAAEikE,QAAO,EAAG1J,IAAI,EAAE8vM,EAAEvjN,UAAU+d,MAAM,WAAW,OAAO10D,EAAE,wBAAwBoqD,KAAK+hnB,eAAeU,UAAS,IAAKzinB,KAAK+hnB,eAAeU,UAAU7sqB,EAAE,SAASoqD,KAAK+hnB,eAAeU,SAAQ,EAAGzinB,KAAKqhjB,KAAK,UAAUrhjB,KAAK+hnB,eAAer4mB,QAAO,EAAG1J,IAAI,EAAE8vM,EAAEvjN,UAAUwsB,KAAK,SAAStzE,GAAG,IAAI2vD,EAAE4K,KAAK7wC,EAAE6wC,KAAK+hnB,eAAenunB,GAAE,EAAG,IAAI,IAAImjB,KAAKtxE,EAAEy6W,GAAG,OAAO,WAAW,GAAGtqW,EAAE,eAAeuZ,EAAEowoB,UAAUpwoB,EAAEklpB,MAAM,CAAC,IAAI5uqB,EAAE0pB,EAAEowoB,QAAQhuqB,MAAMkU,GAAGA,EAAE9N,QAAQy9D,EAAEr6D,KAAK0K,EAAE,CAAC2vD,EAAEr6D,KAAK,KAAK,IAAI0K,EAAEy6W,GAAG,QAAQ,SAASnpS,GAAInhE,EAAE,gBAAgBuZ,EAAEowoB,UAAUxolB,EAAE5nD,EAAEowoB,QAAQnnf,MAAMrhG,IAAI5nD,EAAEmtoB,YAAY,MAAMvllB,IAAK5nD,EAAEmtoB,YAAYvllB,GAAGA,EAAEp/E,UAAUy9D,EAAEr6D,KAAKg8E,KAAKnjB,GAAE,EAAGnuD,EAAE6kE,SAAS,IAAI7kE,OAAE,IAASu6D,KAAK+W,IAAI,mBAAmBtxE,EAAEsxE,KAAK/W,KAAK+W,GAAG,SAAS3hB,GAAG,OAAO,WAAW,OAAO3vD,EAAE2vD,GAAG1S,MAAMj9C,EAAE0jE,UAAU,CAAC,CAA7D,CAA+D4N,IAAI,IAAI,IAAIr/E,EAAE,EAAEA,EAAErB,EAAEsB,OAAOD,IAAI+N,EAAEy6W,GAAG7pX,EAAEqB,GAAGsoE,KAAKqhjB,KAAK5ua,KAAKzyI,KAAK3pE,EAAEqB,KAAK,OAAOsoE,KAAKqsmB,MAAM,SAASj3mB,GAAGx/C,EAAE,gBAAgBw/C,GAAGxB,IAAIA,GAAE,EAAGnuD,EAAE+kE,SAAS,EAAExK,IAAI,EAAE,mBAAmB61D,SAASi6I,EAAEvjN,UAAUspE,OAAOgujB,eAAe,WAAW,YAAO,IAASrhnB,IAAIA,EAAE/8D,EAAE,sCAAsC+8D,EAAExC,KAAK,GAAGhmD,OAAOo6E,eAAe07K,EAAEvjN,UAAU,wBAAwB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK+hnB,eAAeF,aAAa,IAAI7nqB,OAAOo6E,eAAe07K,EAAEvjN,UAAU,iBAAiB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK+hnB,gBAAgB/hnB,KAAK+hnB,eAAe5wpB,MAAM,IAAInX,OAAOo6E,eAAe07K,EAAEvjN,UAAU,kBAAkB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK+hnB,eAAeU,OAAO,EAAE35mB,IAAI,SAASrjE,GAAGu6D,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAeU,QAAQh9qB,EAAE,IAAIqqQ,EAAEg0a,UAAUzkX,EAAErlT,OAAOo6E,eAAe07K,EAAEvjN,UAAU,iBAAiB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK+hnB,eAAepqrB,MAAM,IAAI,mBAAmBk+H,SAASi6I,EAAE1qP,KAAK,SAASgwC,EAAEjmC,GAAG,YAAO,IAASytC,IAAIA,EAAEn3D,EAAE,4BAA4Bm3D,EAAEkzM,EAAE16M,EAAEjmC,EAAE,EAAG,GAAEqsC,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,IAAI,mBAAmB,IAAI,oCAAoC,IAAI,iCAAiC,IAAI,6BAA6B,IAAI,0BAA0B,IAAI,2BAA2B,IAAI,4BAA4B,IAAI03N,SAAS,IAAIl5L,OAAO,IAAI0yF,OAAO,IAAIwlc,SAAS,IAAI,kBAAkB,IAAIu1G,KAAK,MAAM,IAAI,CAAC,SAASn5pB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ1zD,EAAE,IAAI5R,EAAEnuD,EAAE,aAAa6xgB,MAAMvgc,EAAEnjB,EAAEyunB,2BAA2B3qrB,EAAEk8D,EAAEmwnB,sBAAsBztrB,EAAEs9D,EAAEownB,mCAAmC7lnB,EAAEvK,EAAEqwnB,4BAA4BjnnB,EAAEv3D,EAAE,oBAAoB,SAASmQ,EAAEnQ,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKkknB,gBAAgB/0pB,EAAEg1pB,cAAa,EAAG,IAAIvwnB,EAAEzkC,EAAEi1pB,QAAQ,GAAG,OAAOxwnB,EAAE,OAAOoM,KAAKqhjB,KAAK,QAAQ,IAAI3pnB,GAAGy3B,EAAEk1pB,WAAW,KAAKl1pB,EAAEi1pB,QAAQ,KAAK,MAAMhvnB,GAAG4K,KAAKjlE,KAAKq6D,GAAGxB,EAAEnuD,GAAG,IAAIsxE,EAAE/W,KAAK+hnB,eAAehrmB,EAAE2rmB,SAAQ,GAAI3rmB,EAAE6rmB,cAAc7rmB,EAAEp/E,OAAOo/E,EAAE8qmB,gBAAgB7hnB,KAAKqsmB,MAAMt1lB,EAAE8qmB,cAAc,CAAC,SAASr8mB,EAAE//D,GAAG,KAAKu6D,gBAAgBwF,GAAG,OAAO,IAAIA,EAAE//D,GAAGu3D,EAAExB,KAAKwE,KAAKv6D,GAAGu6D,KAAKkknB,gBAAgB,CAACI,eAAe1uqB,EAAE68L,KAAKzyI,MAAMuknB,eAAc,EAAGJ,cAAa,EAAGC,QAAQ,KAAKC,WAAW,KAAKG,cAAc,MAAMxknB,KAAK+hnB,eAAea,cAAa,EAAG5inB,KAAK+hnB,eAAeY,MAAK,EAAGl9qB,IAAI,mBAAmBA,EAAE5H,YAAYmiE,KAAKqmlB,WAAW5gpB,EAAE5H,WAAW,mBAAmB4H,EAAEk8H,QAAQ3hE,KAAKizjB,OAAOxtnB,EAAEk8H,QAAQ3hE,KAAKkgT,GAAG,YAAYltT,EAAE,CAAC,SAASA,IAAI,IAAIvtD,EAAEu6D,KAAK,mBAAmBA,KAAKizjB,QAAQjzjB,KAAK+hnB,eAAe1td,UAAU7xJ,EAAExC,KAAK,KAAK,MAAMA,KAAKizjB,QAAQ,SAAS79jB,EAAEjmC,GAAGqzC,EAAE/8D,EAAE2vD,EAAEjmC,EAAE,GAAG,CAAC,SAASqzC,EAAE/8D,EAAE2vD,EAAEjmC,GAAG,GAAGimC,EAAE,OAAO3vD,EAAE47mB,KAAK,QAAQjsjB,GAAG,GAAG,MAAMjmC,GAAG1pB,EAAE1K,KAAKo0B,GAAG1pB,EAAEm8qB,eAAejqrB,OAAO,MAAM,IAAIwmE,EAAE,GAAG14D,EAAEy+qB,gBAAgBC,aAAa,MAAM,IAAI7trB,EAAE,OAAOmP,EAAE1K,KAAK,KAAK,CAAC0K,EAAE,WAAFA,CAAc+/D,EAAExI,GAAGwI,EAAEjZ,UAAUxxD,KAAK,SAAS0K,EAAE2vD,GAAG,OAAO4K,KAAKkknB,gBAAgBK,eAAc,EAAGvnnB,EAAEzQ,UAAUxxD,KAAKygE,KAAKwE,KAAKv6D,EAAE2vD,EAAE,EAAEoQ,EAAEjZ,UAAU85lB,WAAW,SAAS5gpB,EAAE2vD,EAAEjmC,GAAGA,EAAE,IAAI4nD,EAAE,gBAAgB,EAAEvR,EAAEjZ,UAAUy1lB,OAAO,SAASv8oB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEoM,KAAKkknB,gBAAgB,GAAGtwnB,EAAEwwnB,QAAQj1pB,EAAEykC,EAAEywnB,WAAW5+qB,EAAEmuD,EAAE4wnB,cAAcpvnB,GAAGxB,EAAEuwnB,aAAa,CAAC,IAAIptmB,EAAE/W,KAAK+hnB,gBAAgBnunB,EAAE2wnB,eAAextmB,EAAE6rmB,cAAc7rmB,EAAEp/E,OAAOo/E,EAAE8qmB,gBAAgB7hnB,KAAKqsmB,MAAMt1lB,EAAE8qmB,cAAc,CAAC,EAAEr8mB,EAAEjZ,UAAU8/mB,MAAM,SAAS5mqB,GAAG,IAAI2vD,EAAE4K,KAAKkknB,gBAAgB,OAAO9unB,EAAEivnB,YAAYjvnB,EAAE+unB,aAAa/unB,EAAEmvnB,eAAc,GAAInvnB,EAAE+unB,cAAa,EAAGnknB,KAAKqmlB,WAAWjxlB,EAAEivnB,WAAWjvnB,EAAEovnB,cAAcpvnB,EAAEkvnB,gBAAgB,EAAE9+mB,EAAEjZ,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAG4H,EAAEzQ,UAAU82nB,SAAS7nnB,KAAKwE,KAAKv6D,GAAG,SAASA,GAAG2vD,EAAE3vD,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,mBAAmB,IAAI4jjB,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,IAAG,SAAUA,EAAEykC,GAAG,SAASmjB,EAAEtxE,GAAG,IAAI2vD,EAAE4K,KAAKA,KAAKxK,KAAK,KAAKwK,KAAKm1D,MAAM,KAAKn1D,KAAK48lB,OAAO,YAAY,SAASn3pB,EAAE2vD,GAAK,IAAIxB,EAAEnuD,EAAE0vH,MAAmB,IAAb1vH,EAAE0vH,MAAM,KAAUvhE,GAAG,CAAC,IAAImjB,EAAEnjB,EAAEqL,SAAS7J,EAAEqvnB,YAAY1tmB,OAAnF,GAAwFnjB,EAAEA,EAAE4B,IAAI,CAACJ,EAAEsvnB,mBAAmBlvnB,KAAK/vD,CAAC,CAA5H,CAA8H2vD,EAAE3vD,EAAE,CAAC,CAAC,IAAI/N,EAAE09D,EAAE8jE,QAAQ42I,EAAEA,EAAE60a,cAAcplX,EAAE,IAA6H/5P,EAAzHlvE,EAAE,CAAC0xgB,UAAUvigB,EAAE,mBAAmB04D,EAAE14D,EAAE,6BAA6Bu3D,EAAEv3D,EAAE,UAAU4zH,OAAOzjH,EAAEg+C,EAAE4lE,YAAY,WAAW,EAAQxmE,EAAEvtD,EAAE,8BAA8B+8D,EAAE/8D,EAAE,4BAA4By8qB,iBAAiBtlnB,EAAEn3D,EAAE,aAAa6xgB,MAAMvjd,EAAE6I,EAAEulnB,qBAAqB34oB,EAAEozB,EAAEylnB,2BAA2B9xmB,EAAE3T,EAAEmnnB,sBAAsBxtrB,EAAEqmE,EAAEgonB,uBAAuB1ynB,EAAE0K,EAAEionB,qBAAqB/hnB,EAAElG,EAAEkonB,uBAAuB7lX,EAAEriQ,EAAEmonB,2BAA2B1ulB,EAAEz5B,EAAEoonB,qBAAqBpof,EAAE5pI,EAAEuvnB,eAAe,SAASlsrB,IAAI,CAAC,SAASkpU,EAAEnqQ,EAAExB,EAAEt9D,GAAGoB,EAAEA,GAAG+N,EAAE,oBAAoB2vD,EAAEA,GAAG,CAAC,EAAE,kBAAkB9+D,IAAIA,EAAEs9D,aAAal8D,GAAGsoE,KAAKs8lB,aAAalnmB,EAAEknmB,WAAWhmqB,IAAI0pE,KAAKs8lB,WAAWt8lB,KAAKs8lB,cAAclnmB,EAAE6vnB,oBAAoBjlnB,KAAK6hnB,cAAcr/mB,EAAExC,KAAK5K,EAAE,wBAAwB9+D,GAAG0pE,KAAKklnB,aAAY,EAAGllnB,KAAK4jnB,WAAU,EAAG5jnB,KAAKmlnB,QAAO,EAAGnlnB,KAAKq0mB,OAAM,EAAGr0mB,KAAKvZ,UAAS,EAAGuZ,KAAKq0J,WAAU,EAAG,IAAIl2J,GAAE,IAAK/I,EAAEgwnB,cAAcplnB,KAAKolnB,eAAejnnB,EAAE6B,KAAKkjnB,gBAAgB9tnB,EAAE8tnB,iBAAiB,OAAOljnB,KAAKroE,OAAO,EAAEqoE,KAAKqlnB,SAAQ,EAAGrlnB,KAAKuyjB,OAAO,EAAEvyjB,KAAK2inB,MAAK,EAAG3inB,KAAKslnB,kBAAiB,EAAGtlnB,KAAKulnB,QAAQ,SAAS9/qB,IAAI,SAASA,EAAE2vD,GAAG,IAAIxB,EAAEnuD,EAAEm8qB,eAAe7qmB,EAAEnjB,EAAE+unB,KAAKjrrB,EAAEk8D,EAAEwwnB,QAAQ,GAAG,mBAAmB1srB,EAAE,MAAM,IAAI64E,EAAE,GAAG,SAAS9qE,GAAGA,EAAE4/qB,SAAQ,EAAG5/qB,EAAE2+qB,QAAQ,KAAK3+qB,EAAE9N,QAAQ8N,EAAE+/qB,SAAS//qB,EAAE+/qB,SAAS,CAAC,CAAzE,CAA2E5xnB,GAAGwB,GAAG,SAAS3vD,EAAE2vD,EAAExB,EAAEmjB,EAAEr/E,KAAK09D,EAAEqvnB,UAAU7wnB,GAAGzkC,EAAEkpa,SAAS3gc,EAAEq/E,GAAG5nD,EAAEkpa,SAASpvF,EAAExjW,EAAE2vD,GAAG3vD,EAAEm8qB,eAAe6D,cAAa,EAAG7of,EAAEn3L,EAAEsxE,KAAKr/E,EAAEq/E,GAAGtxE,EAAEm8qB,eAAe6D,cAAa,EAAG7of,EAAEn3L,EAAEsxE,GAAGkyR,EAAExjW,EAAE2vD,GAAG,CAArK,CAAuK3vD,EAAEmuD,EAAEmjB,EAAE3hB,EAAE19D,OAAO,CAAC,IAAIpB,EAAEkpU,EAAE5rQ,IAAInuD,EAAE4uN,UAAU/9N,GAAGs9D,EAAE2+jB,QAAQ3+jB,EAAE0xnB,mBAAmB1xnB,EAAE8xnB,iBAAiBtnoB,EAAE34C,EAAEmuD,GAAGmjB,EAAE5nD,EAAEkpa,SAASv5H,EAAEr5T,EAAEmuD,EAAEt9D,EAAEoB,GAAGonU,EAAEr5T,EAAEmuD,EAAEt9D,EAAEoB,EAAE,CAAC,CAAhe,CAAkek8D,EAAEnuD,EAAE,EAAEu6D,KAAKoknB,QAAQ,KAAKpknB,KAAKwlnB,SAAS,EAAExlnB,KAAK0lnB,gBAAgB,KAAK1lnB,KAAK2lnB,oBAAoB,KAAK3lnB,KAAKyknB,UAAU,EAAEzknB,KAAK4lnB,aAAY,EAAG5lnB,KAAKylnB,cAAa,EAAGzlnB,KAAKgjnB,WAAU,IAAK5tnB,EAAE4tnB,UAAUhjnB,KAAKijnB,cAAc7tnB,EAAE6tnB,YAAYjjnB,KAAK6lnB,qBAAqB,EAAE7lnB,KAAK0knB,mBAAmB,IAAI3tmB,EAAE/W,KAAK,CAAC,SAAS8vM,EAAE16M,GAAG,IAAIjmC,EAAE6wC,gBAAgBtoE,EAAEA,GAAG+N,EAAE,qBAAqB,IAAI0pB,IAAIq2C,EAAEhK,KAAKs0M,EAAE9vM,MAAM,OAAO,IAAI8vM,EAAE16M,GAAG4K,KAAK4hnB,eAAe,IAAIriX,EAAEnqQ,EAAE4K,KAAK7wC,GAAG6wC,KAAKwwD,UAAS,EAAGp7D,IAAI,mBAAmBA,EAAEgjH,QAAQp4G,KAAKgilB,OAAO5slB,EAAEgjH,OAAO,mBAAmBhjH,EAAE0wnB,SAAS9lnB,KAAK+lnB,QAAQ3wnB,EAAE0wnB,QAAQ,mBAAmB1wnB,EAAEw5L,UAAU5uL,KAAKqjnB,SAASjunB,EAAEw5L,SAAS,mBAAmBx5L,EAAE2olB,QAAQ/9kB,KAAK89kB,OAAO1olB,EAAE2olB,QAAQ5/kB,EAAE3C,KAAKwE,KAAK,CAAC,SAASo/P,EAAE35T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,GAAG8+D,EAAEownB,SAAS5xnB,EAAEwB,EAAEgvnB,QAAQ9trB,EAAE8+D,EAAEiwnB,SAAQ,EAAGjwnB,EAAEutnB,MAAK,EAAGvtnB,EAAEi/J,UAAUj/J,EAAEmwnB,QAAQ,IAAIrznB,EAAE,UAAU/iC,EAAE1pB,EAAEsgrB,QAAQhvmB,EAAE3hB,EAAEmwnB,SAAS9/qB,EAAEu8oB,OAAOjrkB,EAAEr/E,EAAE09D,EAAEmwnB,SAASnwnB,EAAEutnB,MAAK,CAAE,CAAC,SAAS7jX,EAAEr5T,EAAE2vD,EAAEjmC,EAAEykC,GAAGzkC,GAAG,SAAS1pB,EAAE2vD,GAAG,IAAIA,EAAEz9D,QAAQy9D,EAAEwunB,YAAYxunB,EAAEwunB,WAAU,EAAGn+qB,EAAE47mB,KAAK,SAAS,CAAzE,CAA2E57mB,EAAE2vD,GAAGA,EAAEqvnB,YAAY7wnB,IAAIq1S,EAAExjW,EAAE2vD,EAAE,CAAC,SAAShX,EAAE34C,EAAE2vD,GAAGA,EAAEkwnB,kBAAiB,EAAG,IAAIn2pB,EAAEimC,EAAEswnB,gBAAgB,GAAGjgrB,EAAEsgrB,SAAS52pB,GAAGA,EAAEqmC,KAAK,CAAC,IAAI5B,EAAEwB,EAAEywnB,qBAAqBnurB,EAAE,IAAI23D,MAAMuE,GAAGt9D,EAAE8+D,EAAEsvnB,mBAAmBpurB,EAAE6+H,MAAMhmG,EAAE,IAAI,IAAIgvC,EAAE,EAAEnB,GAAE,EAAG7tC,GAAGz3B,EAAEymE,GAAGhvC,EAAEA,EAAE62pB,QAAQhpnB,GAAE,GAAI7tC,EAAEA,EAAEqmC,KAAK2I,GAAG,EAAEzmE,EAAEuurB,WAAWjpnB,EAAEoiQ,EAAE35T,EAAE2vD,GAAE,EAAGA,EAAEz9D,OAAOD,EAAE,GAAGpB,EAAEsmqB,QAAQxnmB,EAAEqvnB,YAAYrvnB,EAAEuwnB,oBAAoB,KAAKrvrB,EAAEk/D,MAAMJ,EAAEsvnB,mBAAmBpurB,EAAEk/D,KAAKl/D,EAAEk/D,KAAK,MAAMJ,EAAEsvnB,mBAAmB,IAAI3tmB,EAAE3hB,GAAGA,EAAEywnB,qBAAqB,CAAC,KAAK,CAAC,KAAK12pB,GAAG,CAAC,IAAIvZ,EAAEuZ,EAAE8gD,MAAMzK,EAAEr2C,EAAE4ylB,SAAS/ujB,EAAE7jC,EAAE8vC,SAAS,GAAGmgQ,EAAE35T,EAAE2vD,GAAE,EAAGA,EAAEknmB,WAAW,EAAE1mpB,EAAEje,OAAOie,EAAE4vD,EAAExS,GAAG7jC,EAAEA,EAAEqmC,KAAKJ,EAAEywnB,uBAAuBzwnB,EAAEiwnB,QAAQ,KAAK,CAAC,OAAOl2pB,IAAIimC,EAAEuwnB,oBAAoB,KAAK,CAACvwnB,EAAEswnB,gBAAgBv2pB,EAAEimC,EAAEkwnB,kBAAiB,CAAE,CAAC,SAAS9lX,EAAE/5T,GAAG,OAAOA,EAAE0/qB,QAAQ,IAAI1/qB,EAAE9N,QAAQ,OAAO8N,EAAEigrB,kBAAkBjgrB,EAAEghD,WAAWhhD,EAAE4/qB,OAAO,CAAC,SAAShhD,EAAE5+nB,EAAE2vD,GAAG3vD,EAAEq4oB,QAAQ,SAAS3unB,GAAGimC,EAAEqvnB,YAAYt1pB,GAAGytK,EAAEn3L,EAAE0pB,GAAGimC,EAAEwwnB,aAAY,EAAGngrB,EAAE47mB,KAAK,aAAap4Q,EAAExjW,EAAE2vD,EAAE,GAAG,CAAC,SAAS6zS,EAAExjW,EAAE2vD,GAAG,IAAIxB,EAAE4rQ,EAAEpqQ,GAAG,GAAGxB,IAAI,SAASnuD,EAAE2vD,GAAGA,EAAEwwnB,aAAaxwnB,EAAE8vnB,cAAc,mBAAmBz/qB,EAAEq4oB,QAAQ1olB,EAAEi/J,WAAWj/J,EAAEwwnB,aAAY,EAAGngrB,EAAE47mB,KAAK,eAAejsjB,EAAEqvnB,YAAYrvnB,EAAE8vnB,aAAY,EAAG/1pB,EAAEkpa,SAASgsM,EAAE5+nB,EAAE2vD,IAAI,CAAhL,CAAkL3vD,EAAE2vD,GAAG,IAAIA,EAAEqvnB,YAAYrvnB,EAAE3O,UAAS,EAAGhhD,EAAE47mB,KAAK,UAAUjsjB,EAAE6tnB,cAAc,CAAC,IAAIlsmB,EAAEtxE,EAAEs8qB,iBAAiBhrmB,GAAGA,EAAEksmB,aAAalsmB,EAAEqolB,aAAa35pB,EAAEmpP,SAAS,CAAC,OAAOh7L,CAAC,CAACnuD,EAAE,WAAFA,CAAcqqQ,EAAE3xM,GAAGohQ,EAAEhzQ,UAAUu1nB,UAAU,WAAW,IAAI,IAAIr8qB,EAAEu6D,KAAK0lnB,gBAAgBtwnB,EAAE,GAAG3vD,GAAG2vD,EAAEr6D,KAAK0K,GAAGA,EAAEA,EAAE+vD,KAAK,OAAOJ,CAAC,EAAE,WAAW,IAAIp7C,OAAOo6E,eAAemrO,EAAEhzQ,UAAU,SAAS,CAACmU,IAAIpqE,EAAE0xgB,WAAW,WAAW,OAAOhoc,KAAK8hnB,WAAW,GAAG,6EAA6E,YAAY,CAAC,MAAMr8qB,GAAG,CAAC,CAArN,GAAyN,mBAAmBowH,QAAQA,OAAOqwjB,aAAa,mBAAmBtwjB,SAASrpE,UAAUspE,OAAOqwjB,cAAc1gnB,EAAEowD,SAASrpE,UAAUspE,OAAOqwjB,aAAalsqB,OAAOo6E,eAAe07K,EAAEj6I,OAAOqwjB,YAAY,CAAC5urB,MAAM,SAASmO,GAAG,QAAQ+/D,EAAEhK,KAAKwE,KAAKv6D,IAAIu6D,OAAO8vM,GAAIrqQ,GAAGA,EAAEm8qB,0BAA0BriX,CAAE,KAAK/5P,EAAE,SAAS//D,GAAG,OAAOA,aAAau6D,IAAI,EAAE8vM,EAAEvjN,UAAU6sB,KAAK,WAAWwjH,EAAE58H,KAAK,IAAIzpE,EAAE,EAAEu5Q,EAAEvjN,UAAU6rH,MAAM,SAAS3yK,EAAE2vD,EAAExB,GAAG,IAAImjB,EAAEr/E,EAAEsoE,KAAK4hnB,eAAetrrB,GAAE,EAAG6nE,GAAGzmE,EAAE4kqB,aAAavllB,EAAEtxE,EAAEu3D,EAAE29D,SAAS5jD,IAAIA,aAAanhE,GAAG,OAAOuoD,IAAInB,EAAE29D,SAASl1H,KAAKA,EAAE,SAASA,GAAG,OAAOu3D,EAAE53C,KAAK3f,EAAE,CAA5B,CAA8BA,IAAI,mBAAmB2vD,IAAIxB,EAAEwB,EAAEA,EAAE,MAAM+I,EAAE/I,EAAE,SAASA,IAAIA,EAAE19D,EAAEwrrB,iBAAiB,mBAAmBtvnB,IAAIA,EAAEv9D,GAAGqB,EAAEytrB,OAAO,SAAS1/qB,EAAE2vD,GAAG,IAAIxB,EAAE,IAAIqrQ,EAAEriI,EAAEn3L,EAAEmuD,GAAGzkC,EAAEkpa,SAASjjY,EAAExB,EAAE,CAAhD,CAAkDoM,KAAKpM,IAAIuK,GAAG,SAAS14D,EAAE2vD,EAAExB,EAAEmjB,GAAG,IAAIr/E,EAAE,OAAO,OAAOk8D,EAAEl8D,EAAE,IAAIorE,EAAE,iBAAiBlP,GAAGwB,EAAEknmB,aAAa5kqB,EAAE,IAAIq8D,EAAE,QAAQ,CAAC,SAAS,UAAUH,KAAKl8D,IAAIklM,EAAEn3L,EAAE/N,GAAGy3B,EAAEkpa,SAASthX,EAAEr/E,IAAG,EAAG,CAA1J,CAA4JsoE,KAAKtoE,EAAE+N,EAAEmuD,MAAMl8D,EAAE+srB,YAAYnurB,EAAE,SAASmP,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIy3B,EAAE,CAAC,IAAI74B,EAAE,SAASmP,EAAE2vD,EAAEjmC,GAA2E,OAAxE1pB,EAAE62pB,aAAY,IAAK72pB,EAAE2/qB,eAAe,iBAAiBhwnB,IAAIA,EAAE4H,EAAE53C,KAAKgwC,EAAEjmC,IAAWimC,CAAC,CAAhG,CAAkGA,EAAExB,EAAEmjB,GAAGnjB,IAAIt9D,IAAI64B,GAAE,EAAG4nD,EAAE,SAASnjB,EAAEt9D,EAAE,CAAC,IAAI6nE,EAAE/I,EAAEknmB,WAAW,EAAE1omB,EAAEj8D,OAAOy9D,EAAEz9D,QAAQwmE,EAAE,IAAIvoD,EAAEw/C,EAAEz9D,OAAOy9D,EAAEysnB,cAAkC,GAApBjsqB,IAAIw/C,EAAEwunB,WAAU,GAAOxunB,EAAEiwnB,SAASjwnB,EAAEm9jB,OAAO,CAAC,IAAI/sjB,EAAEpQ,EAAEuwnB,oBAAoBvwnB,EAAEuwnB,oBAAoB,CAAC11mB,MAAMrc,EAAEmujB,SAAShriB,EAAEivmB,MAAM72pB,EAAE8vC,SAASvnE,EAAE89D,KAAK,MAAMgQ,EAAEA,EAAEhQ,KAAKJ,EAAEuwnB,oBAAoBvwnB,EAAEswnB,gBAAgBtwnB,EAAEuwnB,oBAAoBvwnB,EAAEywnB,sBAAsB,CAAC,MAAMzmX,EAAE35T,EAAE2vD,GAAE,EAAG+I,EAAEvK,EAAEmjB,EAAEr/E,GAAG,OAAOke,CAAC,CAAlgB,CAAogBoqD,KAAKtoE,EAAEymE,EAAE14D,EAAE2vD,EAAExB,IAAIt9D,CAAC,EAAEw5Q,EAAEvjN,UAAUymkB,KAAK,WAAWhzjB,KAAK4hnB,eAAervD,QAAQ,EAAEziX,EAAEvjN,UAAU2mkB,OAAO,WAAW,IAAIztnB,EAAEu6D,KAAK4hnB,eAAen8qB,EAAE8snB,SAAS9snB,EAAE8snB,SAAS9snB,EAAE4/qB,SAAS5/qB,EAAE8snB,QAAQ9snB,EAAE6/qB,mBAAmB7/qB,EAAEigrB,iBAAiBtnoB,EAAE4hB,KAAKv6D,GAAG,EAAEqqQ,EAAEvjN,UAAU45nB,mBAAmB,SAAS1grB,GAAG,GAAG,iBAAiBA,IAAIA,EAAEA,EAAEjP,iBAAiB,CAAC,MAAM,OAAO,QAAQ,QAAQ,SAAS,SAAS,OAAO,QAAQ,UAAU,WAAW,OAAOS,SAASwO,EAAE,IAAIjP,gBAAgB,GAAG,MAAM,IAAI6/F,EAAE5wF,GAAG,OAAOu6D,KAAK4hnB,eAAesB,gBAAgBz9qB,EAAEu6D,IAAI,EAAEhmD,OAAOo6E,eAAe07K,EAAEvjN,UAAU,iBAAiB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAeE,WAAW,IAAI9nqB,OAAOo6E,eAAe07K,EAAEvjN,UAAU,wBAAwB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,eAAeC,aAAa,IAAI/xa,EAAEvjN,UAAUy1lB,OAAO,SAASv8oB,EAAE2vD,EAAEjmC,GAAGA,EAAE,IAAIqa,EAAE,YAAY,EAAEsmO,EAAEvjN,UAAUw5nB,QAAQ,KAAKj2a,EAAEvjN,UAAUh7D,IAAI,SAASkU,EAAE2vD,EAAExB,GAAG,IAAImjB,EAAE/W,KAAK4hnB,eAAe,MAAM,mBAAmBn8qB,GAAGmuD,EAAEnuD,EAAEA,EAAE,KAAK2vD,EAAE,MAAM,mBAAmBA,IAAIxB,EAAEwB,EAAEA,EAAE,MAAM,MAAM3vD,GAAGu6D,KAAKo4G,MAAM3yK,EAAE2vD,GAAG2hB,EAAEw7iB,SAASx7iB,EAAEw7iB,OAAO,EAAEvyjB,KAAKkzjB,UAAUn8iB,EAAEoumB,QAAQ,SAAS1/qB,EAAE2vD,EAAExB,GAAGwB,EAAE+vnB,QAAO,EAAGl8U,EAAExjW,EAAE2vD,GAAGxB,IAAIwB,EAAE3O,SAASt3B,EAAEkpa,SAASzkY,GAAGnuD,EAAEugE,KAAK,SAASpS,IAAIwB,EAAEi/mB,OAAM,EAAG5uqB,EAAE+qH,UAAS,CAAE,CAA5G,CAA8GxwD,KAAK+W,EAAEnjB,GAAGoM,IAAI,EAAEhmD,OAAOo6E,eAAe07K,EAAEvjN,UAAU,iBAAiB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,eAAejqrB,MAAM,IAAIqiB,OAAOo6E,eAAe07K,EAAEvjN,UAAU,YAAY,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,YAAO,IAASV,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAevtd,SAAS,EAAEvrJ,IAAI,SAASrjE,GAAGu6D,KAAK4hnB,iBAAiB5hnB,KAAK4hnB,eAAevtd,UAAU5uN,EAAE,IAAIqqQ,EAAEvjN,UAAUqiM,QAAQ57L,EAAE47L,QAAQkhB,EAAEvjN,UAAUg3nB,WAAWvwnB,EAAEwwnB,UAAU1za,EAAEvjN,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAGA,EAAE3vD,EAAE,CAAE,GAAE+1D,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,2BAA2B,IAAI,4BAA4B,IAAI03N,SAAS,IAAIl5L,OAAO,IAAIk4hB,SAAS,IAAI,iBAAiB,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,IAAG,SAAUA,GAAG,IAAIykC,EAAE,SAASmjB,EAAEtxE,EAAE2vD,EAAEjmC,GAAG,OAAOimC,KAAK3vD,EAAEuU,OAAOo6E,eAAe3uF,EAAE2vD,EAAE,CAAC99D,MAAM63B,EAAE4kE,YAAW,EAAGw8B,cAAa,EAAGC,UAAS,IAAK/qH,EAAE2vD,GAAGjmC,EAAE1pB,CAAC,CAAC,IAAI/N,EAAE+N,EAAE,mBAAmBnP,EAAEu/H,OAAO,eAAe13D,EAAE03D,OAAO,cAAc74D,EAAE64D,OAAO,SAASjgH,EAAEigH,OAAO,SAASrwD,EAAEqwD,OAAO,eAAe7iE,EAAE6iE,OAAO,iBAAiBrzD,EAAEqzD,OAAO,UAAU,SAASj5D,EAAEn3D,EAAE2vD,GAAG,MAAM,CAAC99D,MAAMmO,EAAEyxT,KAAK9hQ,EAAE,CAAC,SAASrB,EAAEtuD,GAAG,IAAI2vD,EAAE3vD,EAAEnP,GAAG,GAAG,OAAO8+D,EAAE,CAAC,IAAIjmC,EAAE1pB,EAAE+8D,GAAGu+iB,OAAO,OAAO5xlB,IAAI1pB,EAAE+/D,GAAG,KAAK//D,EAAEnP,GAAG,KAAKmP,EAAE04D,GAAG,KAAK/I,EAAEwH,EAAEztC,GAAE,IAAK,CAAC,CAAC,SAASqa,EAAE/jC,GAAG0pB,EAAEkpa,SAAStkY,EAAEtuD,EAAE,CAAC,IAAI8qE,EAAEv2D,OAAOk3G,gBAAgB,WAAW,IAAI36H,EAAEyjB,OAAOm4G,gBAAgBp7C,EAAEnjB,EAAE,CAAC,UAAIyhkB,GAAS,OAAOr1jB,KAAKwC,EAAE,EAAEhN,KAAK,WAAW,IAAI/vD,EAAEu6D,KAAK5K,EAAE4K,KAAKhD,GAAG,GAAG,OAAO5H,EAAE,OAAOnmD,QAAQ0mL,OAAOvgI,GAAG,GAAG4K,KAAKpqD,GAAG,OAAO3G,QAAQknC,QAAQymB,OAAE,GAAO,IAAK,GAAGoD,KAAKwC,GAAG6xJ,UAAU,OAAO,IAAIplN,SAAS,SAASmmD,EAAExB,GAAGzkC,EAAEkpa,UAAU,WAAW5yb,EAAEu3D,GAAGpJ,EAAEnuD,EAAEu3D,IAAI5H,EAAEwH,OAAE,GAAO,GAAI,GAAG,IAAI,IAAIhJ,EAAEmjB,EAAE/W,KAAKwF,GAAG,GAAGuR,EAAEnjB,EAAE,IAAI3kD,QAAQ,SAASxJ,EAAE2vD,GAAG,OAAO,SAASjmC,EAAEykC,GAAGnuD,EAAEnQ,MAAM,WAAW8/D,EAAEx/C,GAAGuZ,EAAEytC,OAAE,GAAO,IAAKxH,EAAEpC,GAAG7jC,EAAEykC,EAAE,GAAGA,EAAE,CAAC,CAA1F,CAA4FmjB,EAAE/W,WAAW,CAAC,IAAItoE,EAAEsoE,KAAKwC,GAAGu+iB,OAAO,GAAG,OAAOrpnB,EAAE,OAAOuX,QAAQknC,QAAQymB,EAAEllE,GAAE,IAAKk8D,EAAE,IAAI3kD,QAAQ+wD,KAAKhN,GAAG,CAAC,OAAOgN,KAAKwF,GAAG5R,EAAEA,CAAC,GAAGiiE,OAAOgujB,eAAe,WAAW,OAAO7jnB,IAAI,IAAI+W,EAAEnjB,EAAE,UAAU,WAAW,IAAInuD,EAAEu6D,KAAK,OAAO,IAAI/wD,SAAS,SAASmmD,EAAEjmC,GAAG1pB,EAAE+8D,GAAGosL,QAAQ,MAAM,SAASnpP,GAAGA,EAAE0pB,EAAE1pB,GAAG2vD,EAAEwH,OAAE,GAAO,GAAI,GAAG,GAAG,IAAIhJ,GAAG2c,GAAGnb,EAAE8jE,QAAQ,SAASzzH,GAAG,IAAI2vD,EAAEjmC,EAAEnV,OAAOiN,OAAO1wB,GAAGwgF,EAAE3hB,EAAE,CAAC,EAAEoN,EAAE,CAAClrE,MAAMmO,EAAE+qH,UAAS,IAAKz5C,EAAE3hB,EAAE9+D,EAAE,CAACgB,MAAM,KAAKk5H,UAAS,IAAKz5C,EAAE3hB,EAAE+I,EAAE,CAAC7mE,MAAM,KAAKk5H,UAAS,IAAKz5C,EAAE3hB,EAAE4H,EAAE,CAAC1lE,MAAM,KAAKk5H,UAAS,IAAKz5C,EAAE3hB,EAAEx/C,EAAE,CAACte,MAAMmO,EAAEs8qB,eAAe3iB,WAAW5uiB,UAAS,IAAKz5C,EAAE3hB,EAAEpC,EAAE,CAAC17D,MAAM,SAASmO,EAAE2vD,GAAG,IAAIxB,EAAEzkC,EAAEqzC,GAAGu+iB,OAAOntjB,GAAGzkC,EAAEq2C,GAAG,KAAKr2C,EAAE74B,GAAG,KAAK64B,EAAEgvC,GAAG,KAAK14D,EAAEm3D,EAAEhJ,GAAE,MAAOzkC,EAAE74B,GAAGmP,EAAE0pB,EAAEgvC,GAAG/I,EAAE,EAAEo7D,UAAS,IAAKp7D,IAAI,OAAOjmC,EAAEq2C,GAAG,KAAK9tE,EAAE+N,GAAG,SAASA,GAAG,GAAGA,GAAG,+BAA+BA,EAAEsO,KAAK,CAAC,IAAIqhD,EAAEjmC,EAAEgvC,GAAG,OAAO,OAAO/I,IAAIjmC,EAAEq2C,GAAG,KAAKr2C,EAAE74B,GAAG,KAAK64B,EAAEgvC,GAAG,KAAK/I,EAAE3vD,SAAS0pB,EAAE6tC,GAAGv3D,EAAE,CAAC,IAAImuD,EAAEzkC,EAAE74B,GAAG,OAAOs9D,IAAIzkC,EAAEq2C,GAAG,KAAKr2C,EAAE74B,GAAG,KAAK64B,EAAEgvC,GAAG,KAAKvK,EAAEgJ,OAAE,GAAO,KAAMztC,EAAEvZ,IAAG,CAAE,IAAInQ,EAAEy6W,GAAG,WAAW12U,EAAEipK,KAAK,KAAKtjL,IAAIA,CAAC,CAAE,GAAEqsC,KAAKwE,KAAKv6D,EAAE,YAAY,EAAE,CAAC,kBAAkB,IAAI4kN,SAAS,MAAM,IAAI,CAAC,SAAS5kN,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,EAAE2vD,GAAG,IAAIjmC,EAAEnV,OAAOs+B,KAAK7yC,GAAG,GAAGuU,OAAO65E,sBAAsB,CAAC,IAAIjgC,EAAE55C,OAAO65E,sBAAsBpuF,GAAG2vD,IAAIxB,EAAEA,EAAEn+D,QAAQ,SAAS2/D,GAAG,OAAOp7C,OAAO85E,yBAAyBruF,EAAE2vD,GAAG2+B,UAAU,KAAK5kE,EAAEp0B,KAAK2nD,MAAMvzB,EAAEykC,EAAE,CAAC,OAAOzkC,CAAC,CAAC,SAAS4nD,EAAEtxE,EAAE2vD,EAAEjmC,GAAG,OAAOimC,KAAK3vD,EAAEuU,OAAOo6E,eAAe3uF,EAAE2vD,EAAE,CAAC99D,MAAM63B,EAAE4kE,YAAW,EAAGw8B,cAAa,EAAGC,UAAS,IAAK/qH,EAAE2vD,GAAGjmC,EAAE1pB,CAAC,CAAC,SAAS/N,EAAE+N,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAEimC,EAAEz9D,OAAOw3B,IAAI,CAAC,IAAIykC,EAAEwB,EAAEjmC,GAAGykC,EAAEmgC,WAAWngC,EAAEmgC,aAAY,EAAGngC,EAAE28D,cAAa,EAAG,UAAU38D,IAAIA,EAAE48D,UAAS,GAAIx2G,OAAOo6E,eAAe3uF,EAAEmuD,EAAEz3C,IAAIy3C,EAAE,CAAC,CAAC,IAAIt9D,EAAEmP,EAAE,UAAU4zH,OAAOl7D,EAAE14D,EAAE,QAAQ8soB,QAAQv1kB,EAAEmB,GAAGA,EAAEwwF,QAAQ,UAAUv5F,EAAE8jE,QAAQ,WAAW,SAASzzH,KAAK,SAASA,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKi9E,KAAK,KAAKj9E,KAAK8wgB,KAAK,KAAK9wgB,KAAKroE,OAAO,CAAC,CAAC,IAAIy9D,EAAEjmC,EAAI,OAAOimC,EAAE3vD,GAAG0pB,EAAE,CAAC,CAAChT,IAAI,OAAO7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE,CAAChsC,KAAK3jB,EAAE+vD,KAAK,MAAMwK,KAAKroE,OAAO,EAAEqoE,KAAK8wgB,KAAKt7gB,KAAKJ,EAAE4K,KAAKi9E,KAAK7nF,EAAE4K,KAAK8wgB,KAAK17gB,IAAI4K,KAAKroE,MAAM,GAAG,CAACwkB,IAAI,UAAU7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE,CAAChsC,KAAK3jB,EAAE+vD,KAAKwK,KAAKi9E,MAAM,IAAIj9E,KAAKroE,SAASqoE,KAAK8wgB,KAAK17gB,GAAG4K,KAAKi9E,KAAK7nF,IAAI4K,KAAKroE,MAAM,GAAG,CAACwkB,IAAI,QAAQ7kB,MAAM,WAAW,GAAG,IAAI0oE,KAAKroE,OAAO,CAAC,IAAI8N,EAAEu6D,KAAKi9E,KAAK7zH,KAAK,OAAO,IAAI42C,KAAKroE,OAAOqoE,KAAKi9E,KAAKj9E,KAAK8wgB,KAAK,KAAK9wgB,KAAKi9E,KAAKj9E,KAAKi9E,KAAKznF,OAAOwK,KAAKroE,OAAO8N,CAAC,CAAC,GAAG,CAAC0W,IAAI,QAAQ7kB,MAAM,WAAW0oE,KAAKi9E,KAAKj9E,KAAK8wgB,KAAK,KAAK9wgB,KAAKroE,OAAO,CAAC,GAAG,CAACwkB,IAAI,OAAO7kB,MAAM,SAASmO,GAAG,GAAG,IAAIu6D,KAAKroE,OAAO,MAAM,GAAG,IAAI,IAAIy9D,EAAE4K,KAAKi9E,KAAK9tH,EAAE,GAAGimC,EAAEhsC,KAAKgsC,EAAEA,EAAEI,MAAMrmC,GAAG1pB,EAAE2vD,EAAEhsC,KAAK,OAAO+F,CAAC,GAAG,CAAChT,IAAI,SAAS7kB,MAAM,SAASmO,GAAG,GAAG,IAAIu6D,KAAKroE,OAAO,OAAOrB,EAAEwkM,MAAM,GAAG,IAAI,IAAI1lI,EAAEjmC,EAAEykC,EAAEmjB,EAAEzgF,EAAEgjI,YAAY7zH,IAAI,GAAG/N,EAAEsoE,KAAKi9E,KAAK9+E,EAAE,EAAEzmE,GAAG09D,EAAE19D,EAAE0xB,KAAK+F,EAAE4nD,EAAEnjB,EAAEuK,EAAE7nE,EAAEi2D,UAAUgI,KAAKiH,KAAKpG,EAAEjmC,EAAEykC,GAAGuK,GAAGzmE,EAAE0xB,KAAKzxB,OAAOD,EAAEA,EAAE89D,KAAK,OAAOuhB,CAAC,GAAG,CAAC56D,IAAI,UAAU7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAE,OAAO1pB,EAAEu6D,KAAKi9E,KAAK7zH,KAAKzxB,QAAQw3B,EAAE6wC,KAAKi9E,KAAK7zH,KAAK+pC,MAAM,EAAE1tD,GAAGu6D,KAAKi9E,KAAK7zH,KAAK42C,KAAKi9E,KAAK7zH,KAAK+pC,MAAM1tD,IAAI0pB,EAAE1pB,IAAIu6D,KAAKi9E,KAAK7zH,KAAKzxB,OAAOqoE,KAAKuD,QAAQnO,EAAE4K,KAAKomnB,WAAW3grB,GAAGu6D,KAAKqmnB,WAAW5grB,GAAG0pB,CAAC,GAAG,CAAChT,IAAI,QAAQ7kB,MAAM,WAAW,OAAO0oE,KAAKi9E,KAAK7zH,IAAI,GAAG,CAACjN,IAAI,aAAa7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE4K,KAAKi9E,KAAK9tH,EAAE,EAAEykC,EAAEwB,EAAEhsC,KAAK,IAAI3jB,GAAGmuD,EAAEj8D,OAAOy9D,EAAEA,EAAEI,MAAM,CAAC,IAAIuhB,EAAE3hB,EAAEhsC,KAAK1xB,EAAE+N,EAAEsxE,EAAEp/E,OAAOo/E,EAAEp/E,OAAO8N,EAAE,GAAG/N,IAAIq/E,EAAEp/E,OAAOi8D,GAAGmjB,EAAEnjB,GAAGmjB,EAAE5jB,MAAM,EAAE1tD,GAAG,IAAIA,GAAG/N,GAAG,CAACA,IAAIq/E,EAAEp/E,UAAUw3B,EAAEimC,EAAEI,KAAKwK,KAAKi9E,KAAK7nF,EAAEI,KAAKwK,KAAKi9E,KAAKj9E,KAAK8wgB,KAAK,OAAO9wgB,KAAKi9E,KAAK7nF,EAAEA,EAAEhsC,KAAK2tD,EAAE5jB,MAAMz7D,IAAI,KAAK,GAAGy3B,CAAC,CAAC,OAAO6wC,KAAKroE,QAAQw3B,EAAEykC,CAAC,GAAG,CAACz3C,IAAI,aAAa7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE9+D,EAAEgjI,YAAY7zH,GAAG0pB,EAAE6wC,KAAKi9E,KAAKrpF,EAAE,EAAE,IAAIzkC,EAAE/F,KAAKmrC,KAAKa,GAAG3vD,GAAG0pB,EAAE/F,KAAKzxB,OAAOw3B,EAAEA,EAAEqmC,MAAM,CAAC,IAAIuhB,EAAE5nD,EAAE/F,KAAK1xB,EAAE+N,EAAEsxE,EAAEp/E,OAAOo/E,EAAEp/E,OAAO8N,EAAE,GAAGsxE,EAAExiB,KAAKa,EAAEA,EAAEz9D,OAAO8N,EAAE,EAAE/N,GAAG,IAAI+N,GAAG/N,GAAG,CAACA,IAAIq/E,EAAEp/E,UAAUi8D,EAAEzkC,EAAEqmC,KAAKwK,KAAKi9E,KAAK9tH,EAAEqmC,KAAKwK,KAAKi9E,KAAKj9E,KAAK8wgB,KAAK,OAAO9wgB,KAAKi9E,KAAK9tH,EAAEA,EAAE/F,KAAK2tD,EAAE5jB,MAAMz7D,IAAI,KAAK,GAAGk8D,CAAC,CAAC,OAAOoM,KAAKroE,QAAQi8D,EAAEwB,CAAC,GAAG,CAACj5C,IAAI6gD,EAAE1lE,MAAM,SAASmO,EAAE2vD,GAAG,OAAO+I,EAAE6B,KAAK,SAASv6D,GAAG,IAAI,IAAI2vD,EAAE,EAAEA,EAAE+T,UAAUxxE,OAAOy9D,IAAI,CAAC,IAAIjmC,EAAE,MAAMg6C,UAAU/T,GAAG+T,UAAU/T,GAAG,CAAC,EAAEA,EAAE,EAAExB,EAAE55C,OAAOmV,IAAG,GAAImI,SAAS,SAAS89B,GAAG2hB,EAAEtxE,EAAE2vD,EAAEjmC,EAAEimC,GAAG,IAAIp7C,OAAOk6E,0BAA0Bl6E,OAAOm6E,iBAAiB1uF,EAAEuU,OAAOk6E,0BAA0B/kE,IAAIykC,EAAE55C,OAAOmV,IAAImI,SAAS,SAAS89B,GAAGp7C,OAAOo6E,eAAe3uF,EAAE2vD,EAAEp7C,OAAO85E,yBAAyB3kE,EAAEimC,GAAG,GAAG,CAAC,OAAO3vD,CAAC,CAA9V,CAAgW,CAAC,EAAE2vD,EAAE,CAACo0U,MAAM,EAAE88S,eAAc,IAAK,MAAM5urB,EAAE09D,EAAE7I,UAAUp9B,GAAa1pB,CAAC,CAA31E,EAA81E,EAAE,CAAC0rB,OAAO,IAAIytoB,KAAK,MAAM,IAAI,CAAC,SAASn5pB,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,SAAS0pB,EAAE1pB,EAAE2vD,GAAG2hB,EAAEtxE,EAAE2vD,GAAGxB,EAAEnuD,EAAE,CAAC,SAASmuD,EAAEnuD,GAAGA,EAAEm8qB,iBAAiBn8qB,EAAEm8qB,eAAeoB,WAAWv9qB,EAAEs8qB,iBAAiBt8qB,EAAEs8qB,eAAeiB,WAAWv9qB,EAAE47mB,KAAK,QAAQ,CAAC,SAAStqiB,EAAEtxE,EAAE2vD,GAAG3vD,EAAE47mB,KAAK,QAAQjsjB,EAAE,CAACA,EAAE8jE,QAAQ,CAAC01H,QAAQ,SAASx5L,EAAE19D,GAAG,IAAIpB,EAAE0pE,KAAK7B,EAAE6B,KAAK+hnB,gBAAgB/hnB,KAAK+hnB,eAAe1td,UAAUr3J,EAAEgD,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAevtd,UAAU,OAAOl2J,GAAGnB,GAAGtlE,EAAEA,EAAE09D,GAAGA,IAAI4K,KAAK4hnB,eAAe5hnB,KAAK4hnB,eAAe6D,eAAezlnB,KAAK4hnB,eAAe6D,cAAa,EAAGhgrB,EAAE4yb,SAASthX,EAAE/W,KAAK5K,IAAI3vD,EAAE4yb,SAASthX,EAAE/W,KAAK5K,IAAI4K,OAAOA,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAe1td,WAAU,GAAIr0J,KAAK4hnB,iBAAiB5hnB,KAAK4hnB,eAAevtd,WAAU,GAAIr0J,KAAKqjnB,SAASjunB,GAAG,MAAM,SAASA,IAAI19D,GAAG09D,EAAE9+D,EAAEsrrB,eAAetrrB,EAAEsrrB,eAAe6D,aAAahgrB,EAAE4yb,SAASzkY,EAAEt9D,IAAIA,EAAEsrrB,eAAe6D,cAAa,EAAGhgrB,EAAE4yb,SAASlpa,EAAE74B,EAAE8+D,IAAI3vD,EAAE4yb,SAASlpa,EAAE74B,EAAE8+D,GAAG19D,GAAG+N,EAAE4yb,SAASzkY,EAAEt9D,GAAGoB,EAAE09D,IAAI3vD,EAAE4yb,SAASzkY,EAAEt9D,EAAE,IAAI0pE,KAAK,EAAEwjnB,UAAU,WAAWxjnB,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAe1td,WAAU,EAAGr0J,KAAK+hnB,eAAeW,SAAQ,EAAG1inB,KAAK+hnB,eAAe1N,OAAM,EAAGr0mB,KAAK+hnB,eAAe3iB,YAAW,GAAIp/lB,KAAK4hnB,iBAAiB5hnB,KAAK4hnB,eAAevtd,WAAU,EAAGr0J,KAAK4hnB,eAAevN,OAAM,EAAGr0mB,KAAK4hnB,eAAeuD,QAAO,EAAGnlnB,KAAK4hnB,eAAesD,aAAY,EAAGllnB,KAAK4hnB,eAAegE,aAAY,EAAG5lnB,KAAK4hnB,eAAen7nB,UAAS,EAAGuZ,KAAK4hnB,eAAe6D,cAAa,EAAG,EAAElD,eAAe,SAAS98qB,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAEs8qB,eAAenunB,EAAEnuD,EAAEm8qB,eAAezypB,GAAGA,EAAE8zpB,aAAarvnB,GAAGA,EAAEqvnB,YAAYx9qB,EAAEmpP,QAAQx5L,GAAG3vD,EAAE47mB,KAAK,QAAQjsjB,EAAE,EAAG,GAAEoG,KAAKwE,KAAKv6D,EAAE,YAAY,EAAE,CAAC4kN,SAAS,MAAM,IAAI,CAAC,SAAS5kN,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmB6xgB,MAAMivK,2BAA2B,SAASxvmB,IAAI,CAAC3hB,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,EAAEz3B,GAAG,GAAG,mBAAmBy3B,EAAE,OAAO1pB,EAAE2vD,EAAE,KAAKjmC,GAAGA,IAAIA,EAAE,CAAC,GAAGz3B,EAAE,SAAS+N,GAAG,IAAI2vD,GAAE,EAAG,OAAO,WAAW,IAAIA,EAAE,CAACA,GAAE,EAAG,IAAI,IAAIjmC,EAAEg6C,UAAUxxE,OAAOi8D,EAAE,IAAIvE,MAAMlgC,GAAG4nD,EAAE,EAAEA,EAAE5nD,EAAE4nD,IAAInjB,EAAEmjB,GAAG5N,UAAU4N,GAAGtxE,EAAEi9C,MAAMsd,KAAKpM,EAAE,CAAC,CAAC,CAA5I,CAA8Il8D,GAAGq/E,GAAG,IAAIzgF,EAAE64B,EAAEwypB,WAAU,IAAKxypB,EAAEwypB,UAAUvsnB,EAAEusnB,SAASxjnB,EAAEhvC,EAAEqhG,WAAU,IAAKrhG,EAAEqhG,UAAUp7D,EAAEo7D,SAASxzD,EAAE,WAAW5H,EAAEo7D,UAAUhrD,GAAG,EAAE5vD,EAAEw/C,EAAEwsnB,gBAAgBxsnB,EAAEwsnB,eAAen7nB,SAAS+e,EAAE,WAAWrH,GAAE,EAAGvoD,GAAE,EAAGtf,GAAGoB,EAAE8jE,KAAKpG,EAAE,EAAEpC,EAAEoC,EAAE2snB,gBAAgB3snB,EAAE2snB,eAAe3iB,WAAW58lB,EAAE,WAAWlsE,GAAE,EAAG08D,GAAE,EAAGmL,GAAGzmE,EAAE8jE,KAAKpG,EAAE,EAAEwH,EAAE,SAASn3D,GAAG/N,EAAE8jE,KAAKpG,EAAE3vD,EAAE,EAAEsuD,EAAE,WAAW,IAAItuD,EAAE,OAAOnP,IAAI08D,GAAGoC,EAAE2snB,gBAAgB3snB,EAAE2snB,eAAe1N,QAAQ5uqB,EAAE,IAAImuD,GAAGl8D,EAAE8jE,KAAKpG,EAAE3vD,IAAI04D,IAAIvoD,GAAGw/C,EAAEwsnB,gBAAgBxsnB,EAAEwsnB,eAAevN,QAAQ5uqB,EAAE,IAAImuD,GAAGl8D,EAAE8jE,KAAKpG,EAAE3vD,SAAI,CAAM,EAAE+jC,EAAE,WAAW4rB,EAAEoxnB,IAAItmU,GAAG,SAAS16S,EAAE,EAAE,OAAO,SAAS//D,GAAG,OAAOA,EAAEghrB,WAAW,mBAAmBhhrB,EAAE6+X,KAAK,CAA1D,CAA4DlvU,IAA0DA,EAAE8qT,GAAG,WAAW16S,GAAGpQ,EAAE8qT,GAAG,QAAQnsT,GAAGqB,EAAEoxnB,IAAIh9oB,IAAI4rB,EAAE8qT,GAAG,UAAU12U,IAAnH20B,IAAI/I,EAAEwsnB,iBAAiBxsnB,EAAE8qT,GAAG,MAAMljT,GAAG5H,EAAE8qT,GAAG,QAAQljT,IAAqE5H,EAAE8qT,GAAG,MAAM19S,GAAGpN,EAAE8qT,GAAG,SAAS16S,IAAG,IAAKr2C,EAAEj8B,OAAOkiE,EAAE8qT,GAAG,QAAQtjT,GAAGxH,EAAE8qT,GAAG,QAAQnsT,GAAG,WAAWqB,EAAE0iV,eAAe,WAAWtyU,GAAGpQ,EAAE0iV,eAAe,QAAQ/jV,GAAGqB,EAAE0iV,eAAe,UAAUtuW,GAAG4rB,EAAEoxnB,KAAKpxnB,EAAEoxnB,IAAI1uS,eAAe,SAAStyU,GAAGpQ,EAAE0iV,eAAe,MAAM96U,GAAG5H,EAAE0iV,eAAe,QAAQ96U,GAAG5H,EAAE0iV,eAAe,SAAStyU,GAAGpQ,EAAE0iV,eAAe,MAAMt1U,GAAGpN,EAAE0iV,eAAe,QAAQl7U,GAAGxH,EAAE0iV,eAAe,QAAQ/jV,EAAE,CAAC,CAAC,EAAE,CAAC,kBAAkB,MAAM,IAAI,CAAC,SAAStuD,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,WAAW,MAAM,IAAIrlH,MAAM,gDAAgD,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASpO,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAMmjB,EAAEtxE,EAAE,mBAAmB6xgB,MAAM5/gB,EAAEq/E,EAAE2vmB,iBAAiBpwrB,EAAEygF,EAAE8tmB,qBAAqB,SAAS1mnB,EAAE14D,GAAG,GAAGA,EAAE,MAAMA,CAAC,CAAC,SAASu3D,EAAE5H,EAAEjmC,EAAE4nD,EAAEr/E,GAAGA,EAAE,SAAS+N,GAAG,IAAI2vD,GAAE,EAAG,OAAO,WAAWA,IAAIA,GAAE,EAAG3vD,EAAEi9C,WAAM,EAAOymB,WAAW,CAAC,CAA3E,CAA6EzxE,GAAG,IAAIymE,GAAE,EAAG/I,EAAE8qT,GAAG,SAAS,WAAW/hT,GAAE,CAAE,SAAI,IAASvK,IAAIA,EAAEnuD,EAAE,oBAAoBmuD,EAAEwB,EAAE,CAACusnB,SAASxypB,EAAEqhG,SAASz5C,IAAI,SAAStxE,GAAG,GAAGA,EAAE,OAAO/N,EAAE+N,GAAG04D,GAAE,EAAGzmE,GAAG,IAAI,IAAIslE,GAAE,EAAG,OAAO,SAASv3D,GAAG,IAAI04D,IAAInB,EAAE,OAAOA,GAAE,EAAG,SAASv3D,GAAG,OAAOA,EAAEghrB,WAAW,mBAAmBhhrB,EAAE6+X,KAAK,CAA1D,CAA4DlvU,GAAGA,EAAEkvU,QAAQ,mBAAmBlvU,EAAEw5L,QAAQx5L,EAAEw5L,eAAel3P,EAAE+N,GAAG,IAAInP,EAAE,QAAQ,CAAC,CAAC,SAASsf,EAAEnQ,GAAGA,GAAG,CAAC,SAAS+/D,EAAE//D,EAAE2vD,GAAG,OAAO3vD,EAAE2zE,KAAKhkB,EAAE,CAA4EA,EAAE8jE,QAAQ,WAAW,IAAI,IAAIzzH,EAAE0jE,UAAUxxE,OAAOy9D,EAAE,IAAI/F,MAAM5pD,GAAG0pB,EAAE,EAAEA,EAAE1pB,EAAE0pB,IAAIimC,EAAEjmC,GAAGg6C,UAAUh6C,GAAG,IAAIykC,EAAEmjB,EAA9K,SAAWtxE,GAAG,OAAOA,EAAE9N,OAAO,mBAAmB8N,EAAEA,EAAE9N,OAAO,GAAGwmE,EAAE14D,EAAEm9C,MAAMub,CAAC,CAAsGnL,CAAEoC,GAAG,GAAG/F,MAAMC,QAAQ8F,EAAE,MAAMA,EAAEA,EAAE,IAAIA,EAAEz9D,OAAO,EAAE,MAAM,IAAID,EAAE,WAAW,IAAIpB,EAAE8+D,EAAE77D,KAAK,SAASkM,EAAE0pB,GAAG,IAAIz3B,EAAEy3B,EAAEimC,EAAEz9D,OAAO,EAAE,OAAOqlE,EAAEv3D,EAAE/N,EAAEy3B,EAAE,GAAG,SAAS1pB,GAAGmuD,IAAIA,EAAEnuD,GAAGA,GAAGnP,EAAEghC,QAAQ1hB,GAAGle,IAAIpB,EAAEghC,QAAQ1hB,GAAGmhE,EAAEnjB,GAAG,GAAG,IAAI,OAAOwB,EAAE7qC,OAAOi7C,EAAE,CAAC,EAAE,CAAC,kBAAkB,IAAI,kBAAkB,MAAM,IAAI,CAAC,SAAS//D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,mBAAmB6xgB,MAAMqvK,sBAAsBvxnB,EAAE8jE,QAAQ,CAACgpjB,iBAAiB,SAASz8qB,EAAE2vD,EAAEjmC,EAAE4nD,GAAG,IAAIr/E,EAAE,SAAS+N,EAAE2vD,EAAEjmC,GAAG,OAAO,MAAM1pB,EAAEo8qB,cAAcp8qB,EAAEo8qB,cAAczsnB,EAAE3vD,EAAE0pB,GAAG,IAAI,CAAxE,CAA0EimC,EAAE2hB,EAAE5nD,GAAG,GAAG,MAAMz3B,EAAE,CAAC,IAAIk4P,SAASl4P,IAAIjH,KAAKC,MAAMgH,KAAKA,GAAGA,EAAE,EAAE,MAAM,IAAIk8D,EAAEmjB,EAAE5nD,EAAE,gBAAgBz3B,GAAG,OAAOjH,KAAKC,MAAMgH,EAAE,CAAC,OAAO+N,EAAE62pB,WAAW,GAAG,KAAK,EAAE,EAAE,CAAC,kBAAkB,MAAM,IAAI,CAAC,SAAS72pB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQzzH,EAAE,UAAUkwnB,YAAY,EAAE,CAAC9xgB,OAAO,MAAM,IAAI,CAAC,SAASp+G,EAAE2vD,EAAEjmC,IAAIA,EAAEimC,EAAE8jE,QAAQzzH,EAAE,8BAA8BmhrB,OAAOz3pB,EAAEA,EAAE+xoB,SAAS/xoB,EAAEA,EAAEyynB,SAASn8oB,EAAE,6BAA6B0pB,EAAEwjmB,OAAOltnB,EAAE,2BAA2B0pB,EAAEyimB,UAAUnsnB,EAAE,8BAA8B0pB,EAAE03pB,YAAYphrB,EAAE,gCAAgC0pB,EAAEs3B,SAAShhD,EAAE,2CAA2C0pB,EAAE23pB,SAASrhrB,EAAE,qCAAqC,EAAE,CAAC,0BAA0B,IAAI,+BAA+B,IAAI,4BAA4B,IAAI,6BAA6B,IAAI,4BAA4B,IAAI,0CAA0C,IAAI,qCAAqC,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,SAASnuD,GAAG,IAAI2vD,EAAEp7C,OAAOuyC,UAAUp9B,EAAEimC,EAAE06D,eAAel8D,EAAE,mBAAmBiiE,OAAOA,OAAO,CAAC,EAAE9+C,EAAEnjB,EAAEmvE,UAAU,aAAarrI,EAAEk8D,EAAEiwnB,eAAe,kBAAkBvtrB,EAAEs9D,EAAEqiE,aAAa,gBAAgB,SAAS93D,EAAE14D,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,EAAE3hB,GAAGA,EAAE7I,qBAAqBiZ,EAAEpQ,EAAEoQ,EAAE9tE,EAAEsiB,OAAOiN,OAAO8vD,EAAExqB,WAAWj2D,EAAE,IAAIsmM,EAAEhpI,GAAG,IAAI,OAAOl8D,EAAEqvrB,QAAQ,SAASthrB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,iBAAiB,OAAO,SAASmjB,EAAEr/E,GAAG,GAAG,cAAck8D,EAAE,MAAM,IAAI//C,MAAM,gCAAgC,GAAG,cAAc+/C,EAAE,CAAC,GAAG,UAAUmjB,EAAE,MAAMr/E,EAAE,MAAsiF,CAACJ,WAAM,EAAO4/T,MAAK,EAA/iF,CAAC,IAAI/nS,EAAE+9J,OAAOn2G,EAAE5nD,EAAE6qG,IAAItiI,IAAI,CAAC,IAAIpB,EAAE64B,EAAE63pB,SAAS,GAAG1wrB,EAAE,CAAC,IAAI6nE,EAAE2E,EAAExsE,EAAE64B,GAAG,GAAGgvC,EAAE,CAAC,GAAGA,IAAIvoD,EAAE,SAAS,OAAOuoD,CAAC,CAAC,CAAC,GAAG,SAAShvC,EAAE+9J,OAAO/9J,EAAE0xlB,KAAK1xlB,EAAE83pB,MAAM93pB,EAAE6qG,SAAS,GAAG,UAAU7qG,EAAE+9J,OAAO,CAAC,GAAG,mBAAmBt5H,EAAE,MAAMA,EAAE,YAAYzkC,EAAE6qG,IAAI7qG,EAAE+3pB,kBAAkB/3pB,EAAE6qG,IAAI,KAAK,WAAW7qG,EAAE+9J,QAAQ/9J,EAAE6xlB,OAAO,SAAS7xlB,EAAE6qG,KAAKpmE,EAAE,YAAY,IAAI4R,EAAExI,EAAEv3D,EAAE2vD,EAAEjmC,GAAG,GAAG,WAAWq2C,EAAE5uE,KAAK,CAAC,GAAGg9D,EAAEzkC,EAAE+nS,KAAK,YAAY,iBAAiB1xP,EAAEw0D,MAAMpkH,EAAE,SAAS,MAAM,CAACte,MAAMkuE,EAAEw0D,IAAIk9L,KAAK/nS,EAAE+nS,KAAK,CAAC,UAAU1xP,EAAE5uE,OAAOg9D,EAAE,YAAYzkC,EAAE+9J,OAAO,QAAQ/9J,EAAE6qG,IAAIx0D,EAAEw0D,IAAI,CAAC,CAAC,CAAzqB,CAA2qBv0H,EAAE0pB,EAAE74B,GAAGoB,CAAC,CAAC,SAASslE,EAAEv3D,EAAE2vD,EAAEjmC,GAAG,IAAI,MAAM,CAACv4B,KAAK,SAASojI,IAAIv0H,EAAE+1D,KAAKpG,EAAEjmC,GAAG,CAAC,MAAM1pB,GAAG,MAAM,CAAC7O,KAAK,QAAQojI,IAAIv0H,EAAE,CAAC,CAACA,EAAEszE,KAAK5a,EAAE,IAAIvoD,EAAE,CAAC,EAAE,SAAS4vD,IAAI,CAAC,SAASxS,IAAI,CAAC,SAASwP,IAAI,CAAC,IAAI5F,EAAE,CAAC,EAAEA,EAAEma,GAAG,WAAW,OAAO/W,IAAI,EAAE,IAAIjM,EAAE/5C,OAAOk3G,eAAe1nF,EAAEuqB,GAAGA,EAAEA,EAAE19D,EAAE,MAAMmzC,GAAGA,IAAI4rB,GAAGjmC,EAAEqsC,KAAKhyB,EAAEutC,KAAKna,EAAEpzB,GAAG,IAAI+mC,EAAE/N,EAAEjW,UAAUiZ,EAAEjZ,UAAUvyC,OAAOiN,OAAO21C,GAAG,SAASrmE,EAAEkP,GAAG,CAAC,OAAO,QAAQ,UAAU6xB,SAAS,SAAS89B,GAAG3vD,EAAE2vD,GAAG,SAAS3vD,GAAG,OAAOu6D,KAAK+mnB,QAAQ3xnB,EAAE3vD,EAAE,CAAC,GAAG,CAAC,SAASysD,EAAEzsD,EAAE2vD,GAAG,IAAIxB,EAAEoM,KAAK+mnB,QAAQ,SAAShwmB,EAAEr/E,GAAG,SAASpB,IAAI,OAAO,IAAI8+D,GAAG,SAASxB,EAAEt9D,IAAI,SAASs9D,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,IAAIvoD,EAAEonD,EAAEv3D,EAAEsxE,GAAGtxE,EAAE/N,GAAG,GAAG,UAAUke,EAAEhf,KAAK,CAAC,IAAI4uE,EAAE5vD,EAAEokH,IAAIhnE,EAAEwS,EAAEluE,MAAM,OAAO07D,GAAG,WAAWutjB,SAASvtjB,IAAI7jC,EAAEqsC,KAAKxI,EAAE,WAAWoC,EAAEjf,QAAQ6c,EAAEm0nB,SAAS7xrB,MAAM,SAASmQ,GAAGmuD,EAAE,OAAOnuD,EAAEnP,EAAE6nE,EAAE,IAAI,SAAS14D,GAAGmuD,EAAE,QAAQnuD,EAAEnP,EAAE6nE,EAAE,IAAI/I,EAAEjf,QAAQ6c,GAAG19D,MAAM,SAASmQ,GAAG+/D,EAAEluE,MAAMmO,EAAEnP,EAAEkvE,EAAE,IAAI,SAAS//D,GAAG,OAAOmuD,EAAE,QAAQnuD,EAAEnP,EAAE6nE,EAAE,GAAG,CAACA,EAAEvoD,EAAEokH,IAAI,CAAjU,CAAmUjjD,EAAEr/E,EAAEk8D,EAAEt9D,EAAE,GAAG,CAAC,OAAOs9D,EAAEA,EAAEA,EAAEt+D,KAAKgB,EAAEA,GAAGA,GAAG,CAAC,CAAC,SAASwsE,EAAEr9D,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAEs9H,SAAS3tE,EAAE83H,QAAQ,QAAG,IAAS/9J,EAAE,CAAC,GAAGimC,EAAE4xnB,SAAS,KAAK,UAAU5xnB,EAAE83H,OAAO,CAAC,GAAGznL,EAAEs9H,SAAS43D,SAASvlI,EAAE83H,OAAO,SAAS93H,EAAE4kE,SAAI,EAAOl3D,EAAEr9D,EAAE2vD,GAAG,UAAUA,EAAE83H,QAAQ,OAAOt3K,EAAEw/C,EAAE83H,OAAO,QAAQ93H,EAAE4kE,IAAI,IAAIhJ,UAAU,iDAAiD,CAAC,OAAOp7G,CAAC,CAAC,IAAIg+C,EAAEoJ,EAAE7tC,EAAE1pB,EAAEs9H,SAAS3tE,EAAE4kE,KAAK,GAAG,UAAUpmE,EAAEh9D,KAAK,OAAOw+D,EAAE83H,OAAO,QAAQ93H,EAAE4kE,IAAIpmE,EAAEomE,IAAI5kE,EAAE4xnB,SAAS,KAAKpxqB,EAAE,IAAImhE,EAAEnjB,EAAEomE,IAAI,OAAOjjD,EAAEA,EAAEmgP,MAAM9hQ,EAAE3vD,EAAE2hrB,YAAYrwmB,EAAEz/E,MAAM89D,EAAEI,KAAK/vD,EAAE4hrB,QAAQ,WAAWjynB,EAAE83H,SAAS93H,EAAE83H,OAAO,OAAO93H,EAAE4kE,SAAI,GAAQ5kE,EAAE4xnB,SAAS,KAAKpxqB,GAAGmhE,GAAG3hB,EAAE83H,OAAO,QAAQ93H,EAAE4kE,IAAI,IAAIhJ,UAAU,oCAAoC57D,EAAE4xnB,SAAS,KAAKpxqB,EAAE,CAAC,SAASqpT,EAAEx5T,GAAG,IAAI2vD,EAAE,CAACkynB,OAAO7hrB,EAAE,IAAI,KAAKA,IAAI2vD,EAAEmynB,SAAS9hrB,EAAE,IAAI,KAAKA,IAAI2vD,EAAEoynB,WAAW/hrB,EAAE,GAAG2vD,EAAEqynB,SAAShirB,EAAE,IAAIu6D,KAAK0nnB,WAAW3srB,KAAKq6D,EAAE,CAAC,SAASihC,EAAE5wF,GAAG,IAAI2vD,EAAE3vD,EAAEkirB,YAAY,CAAC,EAAEvynB,EAAEx+D,KAAK,gBAAgBw+D,EAAE4kE,IAAIv0H,EAAEkirB,WAAWvynB,CAAC,CAAC,SAASwnI,EAAEn3L,GAAGu6D,KAAK0nnB,WAAW,CAAC,CAACJ,OAAO,SAAS7hrB,EAAE6xB,QAAQ2nS,EAAEj/P,MAAMA,KAAK4wC,OAAM,EAAG,CAAC,SAASv6G,EAAEoP,GAAG,GAAGA,EAAE,CAAC,IAAI2vD,EAAE3vD,EAAEsxE,GAAG,GAAG3hB,EAAE,OAAOA,EAAEoG,KAAK/1D,GAAG,GAAG,mBAAmBA,EAAE+vD,KAAK,OAAO/vD,EAAE,IAAIy0D,MAAMz0D,EAAE9N,QAAQ,CAAC,IAAIi8D,GAAG,EAAEl8D,EAAE,SAAS09D,IAAI,OAAOxB,EAAEnuD,EAAE9N,QAAQ,GAAGw3B,EAAEqsC,KAAK/1D,EAAEmuD,GAAG,OAAOwB,EAAE99D,MAAMmO,EAAEmuD,GAAGwB,EAAE8hQ,MAAK,EAAG9hQ,EAAE,OAAOA,EAAE99D,WAAM,EAAO89D,EAAE8hQ,MAAK,EAAG9hQ,CAAC,EAAE,OAAO19D,EAAE89D,KAAK99D,CAAC,CAAC,CAAC,MAAM,CAAC89D,KAAK+pQ,EAAE,CAAC,SAASA,IAAI,MAAM,CAACjoU,WAAM,EAAO4/T,MAAK,EAAG,CAAC,OAAOlkQ,EAAEzG,UAAUgkB,EAAE/jB,YAAYgW,EAAEA,EAAEhW,YAAYwG,EAAEwP,EAAElsE,GAAG08D,EAAEi6I,YAAY,oBAAoBxnM,EAAEmirB,oBAAoB,SAASnirB,GAAG,IAAI2vD,EAAE,mBAAmB3vD,GAAGA,EAAE+mD,YAAY,QAAQ4I,IAAIA,IAAIpC,GAAG,uBAAuBoC,EAAE63I,aAAa73I,EAAEt9D,MAAM,EAAE2N,EAAE00a,KAAK,SAAS10a,GAAG,OAAOuU,OAAOm4G,eAAen4G,OAAOm4G,eAAe1sH,EAAE+8D,IAAI/8D,EAAEgnD,UAAU+V,EAAElsE,KAAKmP,IAAIA,EAAEnP,GAAG,sBAAsBmP,EAAE8mD,UAAUvyC,OAAOiN,OAAOspD,GAAG9qE,CAAC,EAAEA,EAAEoirB,MAAM,SAASpirB,GAAG,MAAM,CAAC0hrB,QAAQ1hrB,EAAE,EAAElP,EAAE27D,EAAE3F,WAAW2F,EAAE3F,UAAU70D,GAAG,WAAW,OAAOsoE,IAAI,EAAEv6D,EAAEqirB,cAAc51nB,EAAEzsD,EAAElV,MAAM,SAAS6kE,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,QAAG,IAASA,IAAIA,EAAEuX,SAAS,IAAI3Y,EAAE,IAAI47D,EAAEiM,EAAE/I,EAAEjmC,EAAEykC,EAAEmjB,GAAGr/E,GAAG,OAAO+N,EAAEmirB,oBAAoBz4pB,GAAG74B,EAAEA,EAAEk/D,OAAOlgE,MAAM,SAASmQ,GAAG,OAAOA,EAAEyxT,KAAKzxT,EAAEnO,MAAMhB,EAAEk/D,MAAM,GAAG,EAAEj/D,EAAEg6E,GAAGA,EAAEj6E,GAAG,YAAYi6E,EAAEwG,GAAG,WAAW,OAAO/W,IAAI,EAAEuQ,EAAE7+E,SAAS,WAAW,MAAM,oBAAoB,EAAE+T,EAAE6yC,KAAK,SAAS7yC,GAAG,IAAI2vD,EAAE,GAAG,IAAI,IAAIjmC,KAAK1pB,EAAE2vD,EAAEr6D,KAAKo0B,GAAG,OAAOimC,EAAEiV,UAAU,SAASl7C,IAAI,KAAKimC,EAAEz9D,QAAQ,CAAC,IAAIi8D,EAAEwB,EAAExS,MAAM,GAAGgR,KAAKnuD,EAAE,OAAO0pB,EAAE73B,MAAMs8D,EAAEzkC,EAAE+nS,MAAK,EAAG/nS,CAAC,CAAC,OAAOA,EAAE+nS,MAAK,EAAG/nS,CAAC,CAAC,EAAE1pB,EAAE0mC,OAAO91C,EAAEumM,EAAErwI,UAAU,CAACC,YAAYowI,EAAEhsF,MAAM,SAASnrG,GAAG,GAAGu6D,KAAKx5B,KAAK,EAAEw5B,KAAKxK,KAAK,EAAEwK,KAAK6gjB,KAAK7gjB,KAAKinnB,WAAM,EAAOjnnB,KAAKk3P,MAAK,EAAGl3P,KAAKgnnB,SAAS,KAAKhnnB,KAAKktH,OAAO,OAAOltH,KAAKg6D,SAAI,EAAOh6D,KAAK0nnB,WAAWpwpB,QAAQ++D,IAAI5wF,EAAE,IAAI,IAAI2vD,KAAK4K,KAAK,MAAM5K,EAAExC,OAAO,IAAIzjC,EAAEqsC,KAAKwE,KAAK5K,KAAK8E,OAAO9E,EAAEjC,MAAM,MAAM6M,KAAK5K,QAAG,EAAO,EAAE9b,KAAK,WAAW0mB,KAAKk3P,MAAK,EAAG,IAAIzxT,EAAEu6D,KAAK0nnB,WAAW,GAAGC,WAAW,GAAG,UAAUlirB,EAAE7O,KAAK,MAAM6O,EAAEu0H,IAAI,OAAOh6D,KAAK+nnB,IAAI,EAAEb,kBAAkB,SAASzhrB,GAAG,GAAGu6D,KAAKk3P,KAAK,MAAMzxT,EAAE,IAAI2vD,EAAE4K,KAAK,SAASpM,EAAEzkC,EAAEykC,GAAG,OAAOt9D,EAAEM,KAAK,QAAQN,EAAE0jI,IAAIv0H,EAAE2vD,EAAEI,KAAKrmC,EAAEykC,IAAIwB,EAAE83H,OAAO,OAAO93H,EAAE4kE,SAAI,KAAUpmE,CAAC,CAAC,IAAI,IAAImjB,EAAE/W,KAAK0nnB,WAAW/vrB,OAAO,EAAEo/E,GAAG,IAAIA,EAAE,CAAC,IAAIr/E,EAAEsoE,KAAK0nnB,WAAW3wmB,GAAGzgF,EAAEoB,EAAEiwrB,WAAW,GAAG,SAASjwrB,EAAE4vrB,OAAO,OAAO1znB,EAAE,OAAO,GAAGl8D,EAAE4vrB,QAAQtnnB,KAAKx5B,KAAK,CAAC,IAAI23B,EAAEhvC,EAAEqsC,KAAK9jE,EAAE,YAAYslE,EAAE7tC,EAAEqsC,KAAK9jE,EAAE,cAAc,GAAGymE,GAAGnB,EAAE,CAAC,GAAGgD,KAAKx5B,KAAK9uC,EAAE6vrB,SAAS,OAAO3znB,EAAEl8D,EAAE6vrB,UAAS,GAAI,GAAGvnnB,KAAKx5B,KAAK9uC,EAAE8vrB,WAAW,OAAO5znB,EAAEl8D,EAAE8vrB,WAAW,MAAM,GAAGrpnB,GAAG,GAAG6B,KAAKx5B,KAAK9uC,EAAE6vrB,SAAS,OAAO3znB,EAAEl8D,EAAE6vrB,UAAS,OAAQ,CAAC,IAAIvqnB,EAAE,MAAM,IAAInpD,MAAM,0CAA0C,GAAGmsD,KAAKx5B,KAAK9uC,EAAE8vrB,WAAW,OAAO5znB,EAAEl8D,EAAE8vrB,WAAW,CAAC,CAAC,CAAC,EAAExmE,OAAO,SAASv7mB,EAAE2vD,GAAG,IAAI,IAAIxB,EAAEoM,KAAK0nnB,WAAW/vrB,OAAO,EAAEi8D,GAAG,IAAIA,EAAE,CAAC,IAAImjB,EAAE/W,KAAK0nnB,WAAW9znB,GAAG,GAAGmjB,EAAEuwmB,QAAQtnnB,KAAKx5B,MAAMrX,EAAEqsC,KAAKub,EAAE,eAAe/W,KAAKx5B,KAAKuwC,EAAEywmB,WAAW,CAAC,IAAI9vrB,EAAEq/E,EAAE,KAAK,CAAC,CAACr/E,IAAI,UAAU+N,GAAG,aAAaA,IAAI/N,EAAE4vrB,QAAQlynB,GAAGA,GAAG19D,EAAE8vrB,aAAa9vrB,EAAE,MAAM,IAAIpB,EAAEoB,EAAEA,EAAEiwrB,WAAW,CAAC,EAAE,OAAOrxrB,EAAEM,KAAK6O,EAAEnP,EAAE0jI,IAAI5kE,EAAE19D,GAAGsoE,KAAKktH,OAAO,OAAOltH,KAAKxK,KAAK99D,EAAE8vrB,WAAW5xqB,GAAGoqD,KAAKksK,SAAS51O,EAAE,EAAE41O,SAAS,SAASzmO,EAAE2vD,GAAG,GAAG,UAAU3vD,EAAE7O,KAAK,MAAM6O,EAAEu0H,IAAI,MAAM,UAAUv0H,EAAE7O,MAAM,aAAa6O,EAAE7O,KAAKopE,KAAKxK,KAAK/vD,EAAEu0H,IAAI,WAAWv0H,EAAE7O,MAAMopE,KAAK+nnB,KAAK/nnB,KAAKg6D,IAAIv0H,EAAEu0H,IAAIh6D,KAAKktH,OAAO,SAASltH,KAAKxK,KAAK,OAAO,WAAW/vD,EAAE7O,MAAMw+D,IAAI4K,KAAKxK,KAAKJ,GAAGx/C,CAAC,EAAEgnpB,OAAO,SAASn3pB,GAAG,IAAI,IAAI2vD,EAAE4K,KAAK0nnB,WAAW/vrB,OAAO,EAAEy9D,GAAG,IAAIA,EAAE,CAAC,IAAIjmC,EAAE6wC,KAAK0nnB,WAAWtynB,GAAG,GAAGjmC,EAAEq4pB,aAAa/hrB,EAAE,OAAOu6D,KAAKksK,SAAS/8M,EAAEw4pB,WAAWx4pB,EAAEs4pB,UAAUpxlB,EAAElnE,GAAGvZ,CAAC,CAAC,EAAE1R,MAAM,SAASuB,GAAG,IAAI,IAAI2vD,EAAE4K,KAAK0nnB,WAAW/vrB,OAAO,EAAEy9D,GAAG,IAAIA,EAAE,CAAC,IAAIjmC,EAAE6wC,KAAK0nnB,WAAWtynB,GAAG,GAAGjmC,EAAEm4pB,SAAS7hrB,EAAE,CAAC,IAAImuD,EAAEzkC,EAAEw4pB,WAAW,GAAG,UAAU/znB,EAAEh9D,KAAK,CAAC,IAAImgF,EAAEnjB,EAAEomE,IAAI3jC,EAAElnE,EAAE,CAAC,OAAO4nD,CAAC,CAAC,CAAC,MAAM,IAAIljE,MAAM,wBAAwB,EAAEm0qB,cAAc,SAASvirB,EAAE2vD,EAAEjmC,GAAG,OAAO6wC,KAAKgnnB,SAAS,CAACjkjB,SAAS1sI,EAAEoP,GAAG2hrB,WAAWhynB,EAAEiynB,QAAQl4pB,GAAG,SAAS6wC,KAAKktH,SAASltH,KAAKg6D,SAAI,GAAQpkH,CAAC,GAAGnQ,CAAC,CAA5kM,CAA8kM,WAAW86mB,SAASnrjB,GAAGA,EAAE8jE,QAAQ,CAAC,GAAG,IAAI+ujB,mBAAmBr0nB,CAAC,CAAC,MAAMnuD,GAAGmwH,SAAS,IAAI,yBAAbA,CAAuChiE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASnuD,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,UAAU4zH,OAAOtiD,EAAEtxE,EAAE,YAAY/N,EAAE+N,EAAE,aAAanP,EAAE,IAAI+4D,MAAM,IAAI8O,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAInB,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,IAAIpnD,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG4vD,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAIxS,EAAE,CAAC,EAAE,WAAW,WAAW,WAAW,YAAYwP,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,GAAG,SAAS5F,IAAIllE,EAAE8jE,KAAKwE,KAAK,IAAIA,KAAK+xD,GAAG,WAAW/xD,KAAK6kE,GAAG,WAAW7kE,KAAK+wI,GAAG,WAAW/wI,KAAKgxI,GAAG,UAAUhxI,KAAKixI,GAAG,UAAU,CAAC,SAASl9I,EAAEtuD,EAAE2vD,GAAG,OAAO3vD,GAAG2vD,EAAE3vD,IAAI,GAAG2vD,CAAC,CAAC,SAAS5rB,EAAE/jC,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,OAAOpK,EAAEtuD,GAAG2vD,EAAEjmC,EAAEykC,GAAGl8D,EAAEpB,EAAE,EAAE6nE,GAAG4Y,EAAE,CAAC,CAAC,SAASxG,EAAE9qE,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,OAAOpK,EAAEtuD,GAAG2vD,EAAEjmC,GAAGimC,EAAExB,GAAGl8D,EAAEpB,EAAE,EAAE6nE,GAAG4Y,EAAE,CAAC,CAAC,SAASxgF,EAAEkP,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,OAAOpK,EAAEtuD,IAAI2vD,GAAGjmC,GAAGykC,GAAGl8D,EAAEpB,EAAE,EAAE6nE,GAAG4Y,EAAE,CAAC,CAAC,SAAS7kB,EAAEzsD,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,OAAOpK,EAAEtuD,GAAG2vD,EAAExB,EAAEzkC,GAAGykC,GAAGl8D,EAAEpB,EAAE,EAAE6nE,GAAG4Y,EAAE,CAAC,CAAC,SAASjU,EAAEr9D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,EAAE6nE,GAAG,OAAOpK,EAAEtuD,GAAG2vD,GAAGjmC,GAAGykC,IAAIl8D,EAAEpB,EAAE,EAAE6nE,GAAG4Y,EAAE,CAAC,CAACA,EAAEna,EAAEllE,GAAGklE,EAAErQ,UAAUi4gB,QAAQ,WAAW,IAAI,IAAI/+jB,EAAEnP,EAAE8+D,EAAE,EAAEA,EAAE,KAAKA,EAAE3vD,EAAE2vD,GAAG4K,KAAKukmB,OAAO7f,YAAY,EAAEtvlB,GAAG,IAAI,IAAIjmC,EAAE,EAAE6wC,KAAK+xD,GAAGn+D,EAAE,EAAEoM,KAAK6kE,GAAG9tD,EAAE,EAAE/W,KAAK+wI,GAAGr5M,EAAE,EAAEsoE,KAAKgxI,GAAGp0I,EAAE,EAAEoD,KAAKixI,GAAGguH,EAAE,EAAEj/P,KAAK+xD,GAAG17B,EAAE,EAAEr2B,KAAK6kE,GAAG+3D,EAAE,EAAE58H,KAAK+wI,GAAG16M,EAAE,EAAE2pE,KAAKgxI,GAAGuuH,EAAE,EAAEv/P,KAAKixI,GAAG6+D,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,CAAC,IAAIsvD,EAAEN,EAAEhvD,EAAE,IAAIsvD,EAAE51R,EAAEra,EAAEykC,EAAEmjB,EAAEr/E,EAAEklE,EAAEn3D,EAAE04D,EAAE2xM,IAAI98M,EAAE,GAAGp9C,EAAEk6P,IAAIgvD,EAAEh8P,EAAEm8P,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAE95T,EAAEu3D,EAAE8yM,IAAIttM,EAAE,GAAGgD,EAAEsqM,KAAKA,EAAE,IAAIsvD,EAAE7uP,EAAEphD,EAAEykC,EAAEmjB,EAAEr/E,EAAEklE,EAAEn3D,EAAE04D,EAAE2xM,IAAI98M,EAAE,GAAGp9C,EAAEk6P,IAAIgvD,EAAE5sQ,EAAE+sQ,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAE95T,EAAEu3D,EAAE8yM,IAAIttM,EAAE,GAAGgD,EAAEsqM,KAAKA,EAAE,IAAIsvD,EAAE7oU,EAAE44B,EAAEykC,EAAEmjB,EAAEr/E,EAAEklE,EAAEn3D,EAAE04D,EAAE2xM,IAAI98M,EAAE,GAAGp9C,EAAEk6P,IAAIgvD,EAAEvoU,EAAE0oU,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAE95T,EAAEu3D,EAAE8yM,IAAIttM,EAAE,GAAGgD,EAAEsqM,KAAKA,EAAE,IAAIsvD,EAAEltQ,EAAE/iC,EAAEykC,EAAEmjB,EAAEr/E,EAAEklE,EAAEn3D,EAAE04D,EAAE2xM,IAAI98M,EAAE,GAAGp9C,EAAEk6P,IAAIgvD,EAAEvuP,EAAE0uP,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAE95T,EAAEu3D,EAAE8yM,IAAIttM,EAAE,GAAGgD,EAAEsqM,MAAMsvD,EAAEt8P,EAAE3zC,EAAEykC,EAAEmjB,EAAEr/E,EAAEklE,EAAEn3D,EAAE04D,EAAE2xM,IAAI98M,EAAE,GAAGp9C,EAAEk6P,IAAIgvD,EAAEt1R,EAAEy1R,EAAE5oO,EAAEumG,EAAEvmM,EAAEkpU,EAAE95T,EAAEu3D,EAAE8yM,IAAIttM,EAAE,GAAGgD,EAAEsqM,KAAK3gP,EAAEytC,EAAEA,EAAEllE,EAAEA,EAAEq8D,EAAEgjB,EAAE,IAAIA,EAAEnjB,EAAEA,EAAEwrQ,EAAEH,EAAEM,EAAEA,EAAElpU,EAAEA,EAAE09D,EAAE6oI,EAAE,IAAIA,EAAEvmG,EAAEA,EAAEyoO,CAAC,CAAC,IAAI1gR,EAAE4hB,KAAK6kE,GAAG9tD,EAAE1gF,EAAE,EAAE2pE,KAAK6kE,GAAG7kE,KAAK+wI,GAAGr5M,EAAE6nU,EAAE,EAAEv/P,KAAK+wI,GAAG/wI,KAAKgxI,GAAGp0I,EAAEqiQ,EAAE,EAAEj/P,KAAKgxI,GAAGhxI,KAAKixI,GAAG9hL,EAAEknE,EAAE,EAAEr2B,KAAKixI,GAAGjxI,KAAK+xD,GAAGn+D,EAAEgpI,EAAE,EAAE58H,KAAK+xD,GAAG3zE,CAAC,EAAEwe,EAAErQ,UAAUq4mB,QAAQ,WAAW5kmB,KAAKukmB,OAAOvkmB,KAAKykmB,gBAAgB,IAAIzkmB,KAAKykmB,aAAa,KAAKzkmB,KAAKukmB,OAAOp6kB,KAAK,EAAEnqB,KAAKykmB,aAAa,IAAIzkmB,KAAKwkgB,UAAUxkgB,KAAKykmB,aAAa,GAAGzkmB,KAAKukmB,OAAOp6kB,KAAK,EAAEnqB,KAAKykmB,aAAa,IAAIzkmB,KAAKukmB,OAAOlzC,cAAcrxjB,KAAK0kmB,QAAQ,GAAG,IAAI1kmB,KAAKukmB,OAAOlzC,cAAcrxjB,KAAK0kmB,QAAQ,GAAG,IAAI1kmB,KAAKwkgB,UAAU,IAAI/+jB,EAAEmuD,EAAEknI,MAAMlnI,EAAEknI,MAAM,IAAI,IAAIlnI,EAAE,IAAI,OAAOnuD,EAAE8/oB,aAAavllB,KAAK+xD,GAAG,GAAGtsH,EAAE8/oB,aAAavllB,KAAK6kE,GAAG,GAAGp/H,EAAE8/oB,aAAavllB,KAAK+wI,GAAG,GAAGtrM,EAAE8/oB,aAAavllB,KAAKgxI,GAAG,IAAIvrM,EAAE8/oB,aAAavllB,KAAKixI,GAAG,IAAIxrM,CAAC,EAAE2vD,EAAE8jE,QAAQt8D,CAAC,EAAE,CAACzrC,OAAO,IAAI,YAAY,IAAIk4hB,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,UAAUsxE,EAAEnjB,EAAEylE,OAAO,SAAS3hI,EAAE+N,EAAE2vD,GAAG,IAAI,IAAIjmC,KAAK1pB,EAAE2vD,EAAEjmC,GAAG1pB,EAAE0pB,EAAE,CAAC,SAAS74B,EAAEmP,EAAE2vD,EAAEjmC,GAAG,OAAO4nD,EAAEtxE,EAAE2vD,EAAEjmC,EAAE,CAAC4nD,EAAE3xD,MAAM2xD,EAAE+jH,OAAO/jH,EAAEuiD,aAAaviD,EAAE2skB,gBAAgBtulB,EAAE8jE,QAAQtlE,GAAGl8D,EAAEk8D,EAAEzkC,GAAGA,EAAEkqG,OAAO/iI,GAAGoB,EAAEq/E,EAAEzgF,GAAGA,EAAE8uB,KAAK,SAAS3f,EAAE2vD,EAAEjmC,GAAG,GAAG,iBAAiB1pB,EAAE,MAAM,IAAIurH,UAAU,iCAAiC,OAAOj6C,EAAEtxE,EAAE2vD,EAAEjmC,EAAE,EAAE74B,EAAEwkM,MAAM,SAASr1L,EAAE2vD,EAAEjmC,GAAG,GAAG,iBAAiB1pB,EAAE,MAAM,IAAIurH,UAAU,6BAA6B,IAAIp9D,EAAEmjB,EAAEtxE,GAAG,YAAO,IAAS2vD,EAAE,iBAAiBjmC,EAAEykC,EAAEu2B,KAAK/0B,EAAEjmC,GAAGykC,EAAEu2B,KAAK/0B,GAAGxB,EAAEu2B,KAAK,GAAGv2B,CAAC,EAAEt9D,EAAEgjI,YAAY,SAAS7zH,GAAG,GAAG,iBAAiBA,EAAE,MAAM,IAAIurH,UAAU,6BAA6B,OAAOj6C,EAAEtxE,EAAE,EAAEnP,EAAEotpB,gBAAgB,SAASj+oB,GAAG,GAAG,iBAAiBA,EAAE,MAAM,IAAIurH,UAAU,6BAA6B,OAAOp9D,EAAEuvlB,WAAW19oB,EAAE,CAAC,EAAE,CAAC0rB,OAAO,MAAM,IAAI,CAAC,SAAS1rB,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK,IAAIs8D,EAAEnuD,EAAE,wBAAwBsxE,EAAEtxE,EAAE,wBAAwB/N,EAAE+N,EAAE,0BAA0BnP,EAAEs9D,EAAEs0nB,IAAI/pnB,EAAEvK,EAAEu0nB,OAAOnrnB,EAAEpJ,EAAEw0nB,gBAAgBxyqB,EAAEg+C,EAAEy0nB,WAAW7inB,EAAE5R,EAAE00nB,OAAOt1nB,EAAEY,EAAE20nB,QAAQ/lnB,EAAEuU,EAAEoxmB,OAAOvrnB,EAAEllE,EAAE8wrB,kBAAkBz0nB,EAAEr8D,EAAE+wrB,aAAaj/oB,EAAE9xC,EAAEgxrB,WAAWn4mB,EAAE,uCAAuCh6E,EAAE,gCAAgC27D,EAAE,CAACzF,UAAU,KAAK02U,IAAI5yT,EAAEulC,MAAMv/G,GAAGusE,EAAE,CAACrW,UAAU,KAAKk8nB,IAAI,IAAI1vC,GAAG,IAAIp8O,GAAG,IAAI+rR,KAAK,IAAIC,KAAK,KAAK5pX,EAAE,GAAG5oO,EAAE,GAAGumG,EAAE,SAASn3L,GAAG,OAAO,KAAKA,GAAG,KAAKA,CAAC,EAAEpP,EAAE,CAAC,GAAG,IAAIkpU,EAAE,GAAGjjR,OAAOjmD,EAAE,CAAC,GAAG,KAAKy5Q,EAAE,GAAGxzN,OAAOjmD,EAAE,CAAC,GAAG,KAAK+oU,EAAE,CAACH,EAAE5oO,GAAG/5C,OAAO4jkB,oBAAoB16iB,IAAIs5P,EAAE,GAAGxiR,OAAO4jkB,oBAAoB16iB,GAAG,CAAC,GAAG,GAAG,KAAK,SAASpnB,EAAE34C,EAAE2vD,EAAEjmC,GAAG,OAAOimC,GAAG,IAAI,MAAMjmC,IAAIohD,GAAG9qE,EAAE8hY,KAAK,+BAA+BjrV,OAAOi0B,EAAE,MAAM,MAAM,IAAI,QAAQphD,IAAI54B,GAAGkP,EAAE8hY,KAAK,iCAAiCjrV,OAAO/lD,EAAE,MAAM,OAAO44B,GAAG,KAAK54B,EAAEkP,EAAE8hY,KAAK,KAAKnyU,EAAE,2CAA2C9Y,OAAOntB,EAAE,KAAK,qDAAqDmtB,OAAO/lD,EAAE,MAAM,MAAM,KAAKg6E,EAAE,OAAOnb,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG3vD,EAAE8hY,KAAK,2CAA2CjrV,OAAOntB,EAAE,MAAM,MAAM,QAAQ1pB,EAAE8hY,KAAK,wDAAwD,CAAC,IAAI/nE,EAAE,SAAS/5T,GAAG,OAAO+jC,EAAEp2B,KAAK3N,EAAE,EAAE4+nB,EAAE,SAAS5+nB,GAAG,OAAOutD,EAAE5/C,KAAK3N,EAAE,EAAE0pB,EAAE25pB,OAAO,CAAC,UAAU,OAAO,wBAAwB,UAAU,UAAU,eAAe,YAAY,UAAU,WAAW,QAAQ,QAAQ,MAAM,SAAS,IAAI7/U,EAAE,CAAC8/U,QAAQ,iBAAiB7ypB,KAAK,cAAc8ypB,sBAAsB,YAAYC,QAAQ,iBAAiBrhqB,QAAQ,iBAAiBshqB,aAAa,sBAAsBriZ,UAAU,mBAAmBsiZ,QAAQ,iBAAiBC,SAAS,kBAAkBC,MAAM,eAAen2rB,MAAM,eAAe3B,IAAI,aAAaslM,MAAM,gBAAgBytc,EAAE,WAAW,SAAS7+nB,EAAE2vD,GAAG2qjB,iBAAiB//iB,KAAKv6D,GAAGu6D,KAAKqvI,IAAI,MAAMj6I,EAAEA,EAAE,CAAC,EAAE4K,KAAKspnB,cAActpnB,KAAKqvI,IAAIk6e,SAAS,IAAIp6pB,EAAE6wC,KAAKwpnB,WAAWxpnB,KAAKqvI,IAAIv5F,MAAM,GAAG91C,KAAKypnB,eAAc,IAAKzpnB,KAAKqvI,IAAIvyM,SAASkjE,KAAKjvC,SAASivC,KAAKqvI,IAAIt+K,SAAS5B,EAAE,CAAC6wC,KAAK0pnB,eAAe9snB,EAAEoD,KAAK2pnB,UAAU51nB,EAAEiM,KAAK4pnB,OAAOpqX,EAAEx/P,KAAK6pnB,eAAe7pnB,KAAK8pnB,iBAAiB9pnB,KAAK+pnB,WAAW/pnB,KAAKgqnB,aAAahqnB,KAAK+e,GAAG/kE,OAAOC,OAAO,CAACwyC,UAAU,MAAMyF,GAAG,IAAI0B,EAAEoM,KAAKqvI,IAAI46e,qBAAqB,MAAMr2nB,IAAK,SAASnuD,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEykC,EAAE55C,OAAOs+B,KAAK8c,GAAGjmC,EAAEykC,EAAEj8D,OAAOw3B,IAAI,CAAC,IAAI4nD,EAAEnjB,EAAEzkC,GAAGivB,EAAE34C,EAAEsxE,EAAE3hB,EAAE2hB,GAAG,CAAC,CAAlF,CAAoF/W,KAAKpM,GAAG55C,OAAOC,OAAO+lD,KAAK+e,GAAGnrB,GAAG,MAAMoM,KAAK0pnB,eAAe1snB,EAAEgD,KAAK2pnB,UAAU/zqB,EAAEoqD,KAAK4pnB,OAAOvlD,EAAErkkB,KAAK6pnB,eAAe7pnB,KAAKkqnB,oBAAoBlqnB,KAAK+pnB,WAAW/pnB,KAAKmqnB,gBAAgBnqnB,KAAKoqnB,WAAW,CAACpqnB,KAAKqqnB,OAAOrqnB,KAAKsqnB,iBAAiBtqnB,KAAKuqnB,SAASvqnB,KAAKwqnB,cAAcxqnB,KAAKyqnB,KAAKzqnB,KAAK0qnB,WAAW1qnB,KAAK2qnB,aAAa3qnB,KAAK4qnB,iBAAiB5qnB,KAAK6qnB,YAAY7qnB,KAAK8qnB,kBAAkB9qnB,KAAK+qnB,iBAAiB/qnB,KAAKgrnB,OAAOhrnB,KAAKirnB,aAAajrnB,KAAKkrnB,MAAMlrnB,KAAKmrnB,QAAQnrnB,KAAKornB,UAAUprnB,KAAKqrnB,cAAcrrnB,KAAKsrnB,SAAStrnB,KAAKurnB,eAAevrnB,KAAKwrnB,cAAcxrnB,KAAKyrnB,OAAOzrnB,KAAK0rnB,aAAa1rnB,KAAK2rnB,cAAc3rnB,KAAK4rnB,aAAa5rnB,KAAK6rnB,QAAQ7rnB,KAAK8rnB,QAAQ9rnB,KAAK+rnB,UAAU/rnB,KAAKgsnB,kBAAkBhsnB,KAAKisnB,aAAajsnB,KAAKksnB,WAAWlsnB,KAAKmsnB,mBAAmBnsnB,KAAKosnB,cAAcpsnB,KAAKqsnB,kBAAkBrsnB,KAAKssnB,eAAetsnB,KAAKusnB,SAASvsnB,KAAKwsnB,cAAcxsnB,KAAKysnB,QAAQzsnB,KAAK0snB,YAAY1snB,KAAK2snB,oBAAoB3snB,KAAK4snB,aAAa5snB,KAAK6snB,mBAAmB7snB,KAAK8snB,mBAAmB9snB,KAAK+snB,qBAAqB/snB,KAAKgtnB,UAAUhtnB,KAAKitnB,mBAAmBjtnB,KAAKqpV,OAAO,CAAC,OAAO42N,cAAcx6mB,EAAE,CAAC,CAAC0W,IAAI,QAAQ7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKktnB,aAAa,GAAGltnB,KAAK9pC,KAAK,GAAG8pC,KAAKloE,KAAK,GAAGkoE,KAAKmtnB,SAAS,GAAGntnB,KAAKolU,OAAO,GAAGplU,KAAKokE,EAAE,KAAKpkE,KAAK44H,KAAK,GAAG54H,KAAKm2D,IAAI,KAAKn2D,KAAKotnB,MAAM,KAAKptnB,KAAKiQ,MAAM,GAAGjQ,KAAKqtnB,cAAc,EAAErtnB,KAAKtoE,EAAE,EAAEsoE,KAAKstnB,MAAM,EAAEttnB,KAAKutnB,yBAAoB,EAAOvtnB,KAAKwtnB,eAAe,EAAExtnB,KAAKytnB,WAAW,GAAG,IAAIr4nB,EAAE4K,KAAKspnB,YAAYtpnB,KAAK3hE,MAAM+2D,EAAE,GAAG,EAAE4K,KAAK0tnB,uBAAuB1tnB,KAAK2tnB,sBAAsB3tnB,KAAK4tnB,WAAW5tnB,KAAK6tnB,QAAQz4nB,EAAE4K,KAAK8tnB,iBAAiB14nB,EAAE4K,KAAK+tnB,eAAe,CAAC,WAAW/tnB,KAAKgunB,uBAAkB,EAAO,IAAI7+pB,EAAE6wC,KAAKqvI,IAAI4+e,kBAAkB,QAAG,IAAS9+pB,EAAE,CAAC,IAAG,IAAK6wC,KAAKqvI,IAAI6+e,gBAAgB,MAAM,IAAIr6qB,MAAM,wDAAwDsb,EAAE,KAAK,CAAC6wC,KAAKmunB,cAAch/pB,GAAG6wC,KAAKounB,kBAAkB,EAAEpunB,KAAKipnB,SAAQ,EAAGjpnB,KAAKqunB,SAAQ,EAAGrunB,KAAKsunB,QAAQ,CAAClpnB,aAAQ,EAAO28iB,cAAS,EAAOjjZ,gBAAW,GAAQ9+J,KAAK64B,KAAK,EAAE74B,KAAKrqE,OAAO,EAAEqqE,KAAKuunB,SAASv0qB,OAAOiN,OAAO67C,GAAG,QAAQr9D,EAAEu6D,KAAKwunB,oBAAe,IAAS/orB,GAAGA,EAAE+1D,KAAKwE,KAAK,GAAG,CAAC7jD,IAAI,KAAK7kB,MAAM,SAASmO,EAAE2vD,GAAG4K,KAAKipS,EAAExjW,IAAI2vD,CAAC,GAAG,CAACj5C,IAAI,MAAM7kB,MAAM,SAASmO,GAAGu6D,KAAKipS,EAAExjW,SAAI,CAAM,GAAG,CAAC0W,IAAI,YAAY7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAEjmC,EAAE,QAAQimC,EAAE4K,KAAKjvC,gBAAW,IAASqkC,EAAEA,EAAE,GAAG,OAAO4K,KAAKypnB,gBAAgBt6pB,EAAEx3B,OAAO,IAAIw3B,GAAG,KAAKA,GAAG,GAAGmtB,OAAO0jB,KAAK64B,KAAK,KAAKv8C,OAAO0jB,KAAKrqE,SAASw5B,EAAEx3B,OAAO,IAAIw3B,GAAG,MAAM,IAAItb,MAAMsb,EAAE1pB,EAAE,GAAG,CAAC0W,IAAI,OAAO7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE4K,KAAK8zU,UAAUruY,GAAG0pB,EAAE6wC,KAAK0kd,aAAa,QAAG,IAASv1f,EAAE,MAAMimC,EAAE,OAAOjmC,EAAEimC,GAAG4K,IAAI,GAAG,CAAC7jD,IAAI,QAAQ7kB,MAAM,SAASmO,GAAG,GAAGu6D,KAAKw5J,OAAO,OAAOx5J,KAAKunU,KAAK,wDAAwD,IAAInyU,GAAE,EAAG,OAAO3vD,GAAG2vD,GAAE,EAAG3vD,EAAE,IAAI,WAAW86mB,SAAS96mB,KAAKA,EAAEA,EAAE/T,iBAAY,IAASsuE,KAAKutnB,sBAAsB9nrB,EAAE,GAAG62C,OAAO0jB,KAAKutnB,qBAAqBjxoB,OAAO72C,GAAGu6D,KAAKutnB,yBAAoB,GAAQ,IAAIp+pB,EAAE1pB,EAAE9N,OAAOi8D,EAAEnuD,EAAE+1I,WAAWrsH,EAAE,IAAIimC,IAAI,KAAKxB,GAAGA,GAAG,OAAOA,GAAG,SAASoM,KAAKutnB,oBAAoB9nrB,EAAE0pB,EAAE,GAAGA,IAAI1pB,EAAEA,EAAE0tD,MAAM,EAAEhkC,IAAI,IAAI4nD,EAAE/W,KAAKoqnB,WAAW,IAAIpqnB,KAAKiQ,MAAMxqE,EAAEu6D,KAAKtoE,EAAE,EAAEsoE,KAAKtoE,EAAEy3B,GAAG4nD,EAAE/W,KAAK3hE,OAAOm9D,KAAKwE,MAAM,OAAOA,KAAKqtnB,eAAel+pB,EAAEimC,EAAE4K,KAAKzuE,MAAMyuE,IAAI,GAAG,CAAC7jD,IAAI,QAAQ7kB,MAAM,WAAW,OAAO0oE,KAAKo4G,MAAM,KAAK,GAAG,CAACj8J,IAAI,YAAY7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKiQ,MAAM7a,EAAE4K,KAAKtoE,EAAE,GAAGsoE,KAAKstnB,MAAMl4nB,EAAE4K,KAAKtoE,EAAE09D,EAAE,EAAEA,GAAG3vD,EAAE9N,OAAO,OAAO,EAAE,IAAIw3B,EAAE1pB,EAAE+1I,WAAWpmF,GAAG,GAAG4K,KAAKrqE,SAASw5B,EAAE,MAAM,CAAC,GAAGA,GAAG,IAAI,IAAIA,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK,GAAG,OAAO6wC,KAAK64B,OAAO74B,KAAKrqE,OAAO,EAAEqqE,KAAKounB,kBAAkBpunB,KAAKljE,SAAS,GAAG,KAAK,GAAG,OAAO,KAAK2I,EAAE+1I,WAAWpmF,EAAE,KAAK4K,KAAKtoE,EAAE09D,EAAE,GAAG4K,KAAK64B,OAAO74B,KAAKrqE,OAAO,EAAEqqE,KAAKounB,kBAAkBpunB,KAAKljE,UAAU,EAAE,QAAQ,OAAOkjE,KAAKunU,KAAK,yBAAyBp4W,EAAE,CAAC,GAAGA,EAAE,MAAM,OAAOA,GAAG,OAAOA,GAAG,OAAO6wC,KAAKunU,KAAK,yBAAyBp4W,EAAE,IAAIykC,EAAE,MAAM,MAAMzkC,EAAE,QAAQ1pB,EAAE+1I,WAAWpmF,EAAE,GAAG,OAAO,OAAO4K,KAAKtoE,EAAE09D,EAAE,EAAExB,EAAE,SAASoM,KAAKunU,KAAK,yBAAyB3zU,CAAC,GAAG,CAACz3C,IAAI,YAAY7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKiQ,MAAM7a,EAAE4K,KAAKtoE,EAAE,GAAGsoE,KAAKstnB,MAAMl4nB,EAAE4K,KAAKtoE,EAAE09D,EAAE,EAAEA,GAAG3vD,EAAE9N,OAAO,OAAO,EAAE,IAAIw3B,EAAE1pB,EAAE+1I,WAAWpmF,GAAG,GAAG4K,KAAKrqE,SAASw5B,EAAE,MAAM,CAAC,GAAGA,EAAE,IAAIA,EAAE,KAAKA,EAAE,KAAK,OAAOA,GAAG,IAAIA,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK,GAAG,OAAO6wC,KAAK64B,OAAO74B,KAAKrqE,OAAO,EAAEqqE,KAAKounB,kBAAkBpunB,KAAKljE,SAAS,GAAG,KAAK,GAAG,IAAI82D,EAAEnuD,EAAE+1I,WAAWpmF,EAAE,GAAG,KAAKxB,GAAG,MAAMA,IAAIoM,KAAKtoE,EAAE09D,EAAE,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO4K,KAAK64B,OAAO74B,KAAKrqE,OAAO,EAAEqqE,KAAKounB,kBAAkBpunB,KAAKljE,UAAU,EAAE,QAAQ,OAAOkjE,KAAKunU,KAAK,yBAAyBp4W,EAAE,CAAC,GAAGA,EAAE,MAAM,OAAOA,GAAG,OAAOA,GAAG,OAAO6wC,KAAKunU,KAAK,yBAAyBp4W,EAAE,IAAI4nD,EAAE,MAAM,MAAM5nD,EAAE,QAAQ1pB,EAAE+1I,WAAWpmF,EAAE,GAAG,OAAO,OAAO4K,KAAKtoE,EAAE09D,EAAE,EAAE2hB,EAAE,SAAS/W,KAAKunU,KAAK,yBAAyBxwT,CAAC,GAAG,CAAC56D,IAAI,cAAc7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKyunB,UAAU,OAAO,IAAIhprB,EAAE,GAAGA,CAAC,GAAG,CAAC0W,IAAI,QAAQ7kB,MAAM,WAAW0oE,KAAKtoE,EAAEsoE,KAAKstnB,MAAMttnB,KAAKrqE,QAAQ,GAAG,CAACwmB,IAAI,YAAY7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE4K,KAAKtoE,EAAEy3B,EAAE6wC,KAAKiQ,QAAQ,CAAC,IAAIrc,EAAEoM,KAAKyunB,UAAU13mB,GAAG,IAAInjB,EAAEl8D,EAAEq/E,EAAE,GAAGnjB,EAAE,IAAI,IAAIl8D,GAAG+N,EAAE1S,SAAS2E,GAAG,OAAOsoE,KAAK9pC,MAAM/G,EAAEgkC,MAAMiC,EAAE4K,KAAKstnB,OAAO51rB,EAAEq/E,IAAI/W,KAAK9pC,MAAM,GAAGomB,OAAOntB,EAAEgkC,MAAMiC,EAAE4K,KAAKstnB,OAAO,MAAMl4nB,EAAE4K,KAAKtoE,EAAE,CAAC,GAAG,CAACykB,IAAI,gBAAgB7kB,MAAM,SAASmO,GAAG,IAAI,IAAI2vD,EAAE4K,KAAKtoE,EAAEy3B,EAAE6wC,KAAKiQ,QAAQ,CAAC,IAAIrc,EAAEoM,KAAKyunB,UAAU,OAAO76nB,GAAG,KAAK,EAAEoM,KAAK9pC,MAAM,GAAGomB,OAAOntB,EAAEgkC,MAAMiC,EAAE4K,KAAKstnB,OAAO,MAAMl4nB,EAAE4K,KAAKtoE,EAAEk8D,EAAE,GAAG,MAAM,KAAK,EAAE,OAAOoM,KAAK9pC,MAAM/G,EAAEgkC,MAAMiC,IAAG,EAAG,GAAGxB,IAAInuD,EAAE,OAAOu6D,KAAK9pC,MAAM/G,EAAEgkC,MAAMiC,EAAE4K,KAAKstnB,QAAO,CAAE,CAAC,GAAG,CAACnxqB,IAAI,mBAAmB7kB,MAAM,WAAW,IAAI,IAAImO,EAAEu6D,KAAKiQ,MAAM7a,EAAE4K,KAAKtoE,IAAI,CAAC,IAAIy3B,EAAE6wC,KAAKyunB,UAAU,IAAI,IAAIt/pB,EAAE,OAAO6wC,KAAKloE,MAAM2N,EAAE0tD,MAAMiC,IAAI,EAAE,IAAIx/C,EAAEuZ,GAAG,OAAO6wC,KAAKloE,MAAM2N,EAAE0tD,MAAMiC,EAAE4K,KAAKstnB,QAAQ,IAAIn+pB,EAAE,GAAGA,CAAC,CAAC,GAAG,CAAChT,IAAI,aAAa7kB,MAAM,WAAW,OAAO,CAAC,IAAImO,EAAEu6D,KAAK0unB,cAAc,IAAI,IAAIjprB,IAAInP,EAAEmP,GAAG,OAAOA,CAAC,CAAC,GAAG,CAAC0W,IAAI,gBAAgB7kB,MAAM,SAASmO,GAAGu6D,KAAK2unB,kBAAkBlprB,EAAE,QAAQA,GAAGu6D,KAAKmonB,OAAOhqnB,EAAE6B,KAAKyunB,QAAQzunB,KAAK4unB,YAAY5unB,KAAKmonB,OAAO3lnB,EAAExC,KAAKyunB,QAAQzunB,KAAK6unB,UAAU,GAAG,CAAC1yqB,IAAI,SAAS7kB,MAAM,WAAW,QAAQ0oE,KAAKiQ,MAAMurE,WAAW,KAAKx7E,KAAKtoE,IAAIsoE,KAAKrqE,UAAUqqE,KAAK3hE,MAAM,CAAC,GAAG,CAAC8d,IAAI,mBAAmB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKtoE,EAAE09D,EAAE4K,KAAK8unB,aAAa,OAAO9unB,KAAKstnB,QAAQ7nrB,IAAIu6D,KAAK8tnB,iBAAgB,GAAI14nB,GAAG,KAAK,GAAG,GAAG4K,KAAK3hE,MAAM,GAAG,IAAI2hE,KAAK9pC,KAAKv+B,OAAO,MAAM,IAAIkc,MAAM,0BAA0B,MAAM,KAAK,EAAE,MAAM,QAAQmsD,KAAK+unB,QAAQ/unB,KAAK3hE,MAAM,GAAG2hE,KAAK8tnB,iBAAgB,EAAG,GAAG,CAAC3xqB,IAAI,WAAW7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAKgvnB,UAAUzvX,GAAG,OAAOnqQ,GAAG,KAAK,GAAG,QAAQ3vD,EAAEu6D,KAAKivnB,sBAAiB,IAASxprB,GAAGA,EAAE+1D,KAAKwE,KAAKA,KAAK9pC,MAAM8pC,KAAK9pC,KAAK,GAAG8pC,KAAK3hE,MAAM,GAAG2hE,KAAKipnB,SAAQ,EAAG,MAAM,KAAK,EAAE,MAAM,QAAQjpnB,KAAK9pC,MAAM/N,OAAO+mqB,cAAc95nB,GAAG,KAAKA,EAAE4K,KAAK3hE,MAAM,EAAEu+L,EAAExnI,KAAK4K,KAAK3hE,MAAM,EAAE2hE,KAAKokE,EAAEhvE,GAAG,GAAG,CAACj5C,IAAI,gBAAgB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKokE,EAAEpkE,KAAKmvnB,cAAc1prB,KAAKu6D,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAGu6D,KAAKokE,EAAE,KAAKpkE,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,OAAO7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKgvnB,UAAUl/a,IAAI,IAAIrqQ,IAAIu6D,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAG,KAAKA,EAAEu6D,KAAK3hE,MAAM,EAAE,KAAKoH,EAAEu6D,KAAK3hE,MAAM,EAAEu+L,EAAEn3L,KAAKu6D,KAAK3hE,MAAM,EAAE2hE,KAAKokE,EAAE3+H,GAAG,GAAG,CAAC0W,IAAI,aAAa7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKokE,EAAEpkE,KAAKmvnB,cAAc1prB,KAAKu6D,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAGu6D,KAAK3hE,MAAM,EAAE2hE,KAAKokE,EAAE,KAAK,GAAG,CAACjoH,IAAI,eAAe7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc,OAAO1unB,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAGA,GAAG,KAAK,GAAGu6D,KAAK3hE,MAAM,EAAE2hE,KAAKktnB,aAAa,GAAG,MAAM,KAAK72lB,EAAEr2B,KAAK3hE,MAAM,GAAG,MAAM,QAAQ2hE,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,mBAAmB7kB,MAAM,WAAW,IAAImO,EAAE0iB,OAAO+mqB,cAAclvnB,KAAK0unB,eAAet5nB,EAAE4K,KAAKktnB,cAAcznrB,EAAEu6D,KAAK9pC,MAAMzwB,EAAE,MAAM2vD,IAAI4K,KAAK3hE,MAAM,OAAO+2D,EAAE,EAAE,EAAE4K,KAAKktnB,aAAa,GAAG,GAAG,CAAC/wqB,IAAI,cAAc7kB,MAAM,WAAW0oE,KAAKmvnB,cAAc,MAAMnvnB,KAAK9pC,MAAM,IAAI8pC,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,oBAAoB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc1unB,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAGu6D,KAAK3hE,MAAM,KAAKoH,EAAE,GAAG,CAAC,GAAG,CAAC0W,IAAI,mBAAmB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc1unB,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAG,KAAKA,EAAEu6D,KAAK3hE,MAAM,GAAG2hE,KAAKunU,KAAK,sBAAsBvnU,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,SAAS7kB,MAAM,WAAW0oE,KAAKmvnB,cAAc94lB,KAAKr2B,KAAK9pC,MAAM,IAAI8pC,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,eAAe7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc1unB,KAAK9pC,MAAM/N,OAAO+mqB,cAAczprB,GAAG,KAAKA,IAAIu6D,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,QAAQ7kB,MAAM,WAAW,IAAI0oE,KAAK44H,KAAKjhM,OAAOqoE,KAAKovnB,mBAAmBpvnB,KAAKqvnB,uBAAuB,GAAG,CAAClzqB,IAAI,UAAU7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKtoE,EAAE09D,EAAE4K,KAAKiQ,MAAMxqE,EAAE,OAAO,OAAOu6D,KAAKyunB,WAAW,KAAK,EAAEzunB,KAAKolU,QAAQ,GAAG9oV,OAAO8Y,EAAEjC,MAAM1tD,EAAEu6D,KAAKstnB,OAAO,MAAM7nrB,EAAEu6D,KAAKtoE,EAAE,MAAM,KAAK,GAAG,IAAIy3B,EAAE6wC,KAAKolU,OAAOhwU,EAAEjC,MAAM1tD,EAAEu6D,KAAKstnB,OAAO,GAAGttnB,KAAK3hE,MAAM2hE,KAAKgunB,kBAAkB,KAAK7+pB,EAAE,OAAO6wC,KAAKunU,KAAK,2BAA2BvnU,KAAK9pC,MAAM,MAAM8pC,KAAK9pC,MAAM8pC,KAAKsvnB,YAAYngqB,GAAG6wC,KAAKolU,OAAO,GAAG,MAAM3/X,EAAE,KAAK,EAAEu6D,KAAKolU,QAAQhwU,EAAEjC,MAAM1tD,GAAG,MAAMA,EAAE,GAAG,CAAC0W,IAAI,YAAY7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKyunB,UAAU,GAAGzxnB,EAAEv3D,GAAGu6D,KAAK3hE,MAAM,GAAG2hE,KAAK+unB,QAAQ/unB,KAAK8tnB,iBAAgB,OAAQ,OAAOrorB,GAAG,KAAK,GAAGu6D,KAAK3hE,MAAM,GAAG2hE,KAAK8tnB,iBAAgB,EAAG,MAAM,KAAK,GAAG9tnB,KAAK3hE,MAAM,GAAG2hE,KAAKktnB,aAAa,GAAGltnB,KAAK8tnB,iBAAgB,EAAG,MAAM,KAAKz3lB,EAAEr2B,KAAK3hE,MAAM,GAAG,MAAM,QAAQ2hE,KAAKunU,KAAK,oCAAoCvnU,KAAK3hE,MAAM,GAAG2hE,KAAK8tnB,iBAAgB,EAAG,GAAG,CAAC3xqB,IAAI,gBAAgB7kB,MAAM,WAAW,OAAO0oE,KAAKktnB,cAAc/kqB,OAAO+mqB,cAAclvnB,KAAK0unB,eAAe1unB,KAAKktnB,cAAc,IAAI,UAAUltnB,KAAK6tnB,SAAS7tnB,KAAK0tnB,yBAAyB1tnB,KAAKunU,KAAK,mCAAmCvnU,KAAK0tnB,wBAAuB,GAAI1tnB,KAAK4tnB,aAAa5tnB,KAAK2tnB,wBAAwB3tnB,KAAKunU,KAAK,mCAAmCvnU,KAAK2tnB,uBAAsB,GAAI3tnB,KAAK3hE,MAAM,GAAG2hE,KAAKktnB,aAAa,GAAG,MAAM,IAAI,KAAKltnB,KAAK3hE,MAAM,GAAG2hE,KAAKktnB,aAAa,GAAG,MAAM,IAAI,UAAUltnB,KAAK3hE,MAAM,GAAG2hE,KAAKipnB,SAASjpnB,KAAK6tnB,UAAU7tnB,KAAKunU,KAAK,gDAAgDvnU,KAAKktnB,aAAa,GAAG,MAAM,QAAQltnB,KAAKktnB,aAAav1rB,QAAQ,GAAGqoE,KAAKunU,KAAK,qBAAqB,GAAG,CAACprX,IAAI,WAAW7kB,MAAM,WAAW0oE,KAAKmvnB,cAAc,MAAMnvnB,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,iBAAiB7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAK0unB,cAAc,KAAKt5nB,GAAG4K,KAAK3hE,MAAM,GAAG,QAAQoH,EAAEu6D,KAAKuvnB,sBAAiB,IAAS9prB,GAAGA,EAAE+1D,KAAKwE,KAAKA,KAAK9pC,MAAM8pC,KAAK9pC,KAAK,KAAK8pC,KAAK9pC,MAAM,IAAIomB,OAAOn0B,OAAO+mqB,cAAc95nB,IAAI4K,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,gBAAgB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc,KAAKjprB,GAAGu6D,KAAKunU,KAAK,sBAAsBvnU,KAAK9pC,MAAM,KAAKomB,OAAOn0B,OAAO+mqB,cAAczprB,IAAIu6D,KAAK3hE,MAAM,IAAI2hE,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,SAAS7kB,MAAM,WAAW0oE,KAAKmvnB,cAAc,MAAMnvnB,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,eAAe7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc,KAAKjprB,EAAEu6D,KAAK3hE,MAAM,IAAI2hE,KAAK9pC,MAAM,IAAIomB,OAAOn0B,OAAO+mqB,cAAczprB,IAAIu6D,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,gBAAgB7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAK0unB,cAAc,OAAOt5nB,GAAG,KAAK,GAAG,QAAQ3vD,EAAEu6D,KAAKwvnB,oBAAe,IAAS/prB,GAAGA,EAAE+1D,KAAKwE,KAAKA,KAAK9pC,MAAM8pC,KAAK9pC,KAAK,GAAG8pC,KAAK3hE,MAAM,GAAG,MAAM,KAAK,GAAG2hE,KAAK9pC,MAAM,IAAI,MAAM,QAAQ8pC,KAAK9pC,MAAM,KAAKomB,OAAOn0B,OAAO+mqB,cAAc95nB,IAAI4K,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,eAAe7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc1unB,KAAK0pnB,eAAejkrB,IAAIu6D,KAAKmtnB,UAAUhlqB,OAAO+mqB,cAAczprB,GAAGu6D,KAAK3hE,MAAM,IAAIoH,IAAI4wF,GAAG//F,EAAEmP,IAAIu6D,KAAKunU,KAAK,4CAA4CvnU,KAAK3hE,MAAMoH,IAAI4wF,EAAE,GAAG,KAAKr2B,KAAKunU,KAAK,wDAAwDvnU,KAAKmtnB,UAAUhlqB,OAAO+mqB,cAAczprB,GAAGu6D,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,UAAU7kB,MAAM,WAAW,IAAI,IAAImO,EAAEu6D,KAAKiQ,MAAM7a,EAAE4K,KAAKtoE,IAAI,CAAC,IAAIy3B,EAAE6wC,KAAK0unB,cAAc,IAAI,IAAIv/pB,EAAE,YAAY6wC,KAAKmtnB,UAAU1nrB,EAAE0tD,MAAMiC,IAAI,IAAI4K,KAAK2pnB,UAAUx6pB,GAAG,CAAC6wC,KAAKmtnB,UAAU1nrB,EAAE0tD,MAAMiC,EAAE4K,KAAKstnB,OAAO,IAAI15nB,EAAEzkC,IAAIknE,EAAEziC,GAAGt9D,EAAE64B,GAAG,QAAQ6wC,KAAKmtnB,UAAUntnB,KAAK8tnB,iBAAiB9tnB,KAAKunU,KAAK,4DAA4DvnU,KAAK3hE,MAAMu1D,EAAE,GAAG,IAAIoM,KAAK3hE,MAAMu1D,EAAE,GAAG,IAAIoM,KAAKunU,KAAK,wDAAwDvnU,KAAKmtnB,UAAUhlqB,OAAO+mqB,cAAc//pB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAChT,IAAI,UAAU7kB,MAAM,WAAW,GAAG,IAAI0oE,KAAK9pC,KAAKv+B,OAAO,CAAC,IAAI8N,EAAEu6D,KAAK0unB,cAAcjprB,IAAI4wF,EAAEr2B,KAAK3hE,MAAM,GAAG/H,EAAEmP,KAAKu6D,KAAK9pC,KAAK/N,OAAO+mqB,cAAczprB,GAAG,MAAMu6D,KAAKmvnB,cAAc94lB,KAAKr2B,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,YAAY7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAK0unB,cAAc,GAAG,KAAKt5nB,EAAE,CAAC,IAAIjmC,EAAE6wC,KAAKmtnB,SAAS,QAAQh+pB,EAAE34B,eAAewpE,KAAKunU,KAAK,iEAAiE,QAAQ9hY,EAAEu6D,KAAKyvnB,iBAAY,IAAShqrB,GAAGA,EAAE+1D,KAAKwE,KAAK,CAAC3oE,OAAO83B,EAAEpiB,KAAKizD,KAAK9pC,OAAO8pC,KAAKmtnB,SAASntnB,KAAK9pC,KAAK,GAAG8pC,KAAK3hE,MAAM,EAAE,MAAM+2D,IAAIihC,EAAEr2B,KAAK9pC,MAAM,KAAK8pC,KAAK9pC,MAAM,IAAIomB,OAAOn0B,OAAO+mqB,cAAc95nB,IAAI4K,KAAK3hE,MAAM,IAAI2hE,KAAK8tnB,iBAAgB,CAAE,GAAG,CAAC3xqB,IAAI,oBAAoB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK8unB,aAAarprB,IAAI4wF,GAAG,IAAI5wF,IAAIu6D,KAAK3hE,MAAM,GAAG2hE,KAAKloE,KAAKqwB,OAAO+mqB,cAAczprB,IAAIu6D,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,eAAe7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKgvnB,UAAU5vX,GAAG,GAAG35T,IAAI4wF,EAAE,OAAOr2B,KAAK3hE,MAAM,GAAG2hE,KAAKloE,MAAMkoE,KAAK9pC,KAAK8pC,KAAK9pC,KAAK,QAAQ8pC,KAAKunU,KAAK,kCAAkC,GAAGjxY,EAAEmP,IAAIA,IAAIw5T,EAAE,CAAC,GAAGj/P,KAAKloE,MAAMkoE,KAAK9pC,KAAK8pC,KAAK9pC,KAAK,IAAI8pC,KAAK+tnB,eAAeh7rB,SAASitE,KAAKloE,MAAM,OAAOkoE,KAAKloE,KAAKH,QAAQ,KAAK,EAAEqoE,KAAKunU,KAAK,6CAA6C,MAAM,KAAK,EAAEvnU,KAAKunU,KAAK,qBAAqBjrV,OAAO0jB,KAAK+tnB,eAAe,GAAG,MAAM,MAAM,QAAQ/tnB,KAAKunU,KAAK,mBAAmBjrV,OAAO0jB,KAAK+tnB,eAAejjpB,KAAK,QAAQk1B,KAAK3hE,MAAMoH,IAAIw5T,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC9iT,IAAI,aAAa7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc,GAAGjprB,IAAI4wF,EAAE,OAAOr2B,KAAK3hE,MAAM,QAAQ2hE,KAAKunU,KAAK,kCAAkCjxY,EAAEmP,KAAKA,IAAIw5T,GAAGj/P,KAAKunU,KAAK,mBAAmBvnU,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,qBAAqB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc,GAAGjprB,IAAI4wF,EAAE,OAAOr2B,KAAK3hE,MAAM,QAAQ2hE,KAAKunU,KAAK,kCAAkCjxY,EAAEmP,KAAKm3L,EAAEn3L,GAAGu6D,KAAKokE,EAAE3+H,GAAGu6D,KAAKunU,KAAK,yBAAyBvnU,KAAKokE,EAAE,IAAIpkE,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,gBAAgB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKgvnB,UAAU,CAAChvnB,KAAKokE,EAAE/tC,IAAI,GAAG5wF,IAAI4wF,EAAE,OAAOr2B,KAAK3hE,MAAM,GAAG2hE,KAAK9pC,KAAK,QAAQ8pC,KAAKunU,KAAK,kCAAkC,IAAI,IAAI9hY,EAAE,CAAC,IAAI2vD,EAAE4K,KAAK9pC,KAAK,OAAO8pC,KAAK9pC,KAAK,GAAG8pC,KAAKloE,MAAM,IAAI,UAAUkoE,KAAK+tnB,eAAe,CAAC,WAAW,cAAc,IAAI5+pB,EAAEimC,EAAE4K,KAAKsunB,QAAQlpnB,QAAQj2C,EAAE,cAAc/b,KAAK+b,GAAG6wC,KAAKqvI,IAAI6+e,iBAAiBlunB,KAAKmunB,cAAch/pB,GAAG6wC,KAAKunU,KAAK,6CAA6C,MAAM,IAAI,WAAW,4BAA4Bn0X,KAAKgiD,IAAI4K,KAAKunU,KAAK,6DAA6DvnU,KAAK+tnB,eAAe,CAAC,cAAc/tnB,KAAKsunB,QAAQvsE,SAAS3sjB,EAAE,MAAM,IAAI,aAAa,QAAQA,GAAG,OAAOA,GAAG4K,KAAKunU,KAAK,8CAA8CvnU,KAAK+tnB,eAAe,GAAG/tnB,KAAKsunB,QAAQxvd,WAAW1pK,EAAE4K,KAAKloE,KAAK,GAAGkoE,KAAK3hE,MAAM,EAAE,CAAC,GAAG,CAAC8d,IAAI,oBAAoB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAcjprB,IAAI4wF,GAAG//F,EAAEmP,KAAKu6D,KAAKunU,KAAK,wBAAwBvnU,KAAK+unB,SAAS/unB,KAAK3hE,MAAM,IAAI2hE,KAAK3hE,MAAM,EAAE,GAAG,CAAC8d,IAAI,iBAAiB7kB,MAAM,WAAW,IAAImO,EAAE,KAAKu6D,KAAK0unB,eAAe,QAAQ1unB,KAAKmtnB,SAASntnB,KAAKunU,KAAK,wDAAwD,YAAYvnU,KAAKloE,MAAMkoE,KAAK+tnB,eAAeh7rB,SAAS,YAAYitE,KAAKunU,KAAK,2CAA2C,QAAQ9hY,EAAEu6D,KAAK0vnB,sBAAiB,IAASjqrB,GAAGA,EAAE+1D,KAAKwE,KAAKA,KAAKsunB,SAAStunB,KAAKloE,KAAK,GAAGkoE,KAAKmtnB,SAASntnB,KAAK9pC,KAAK,GAAG8pC,KAAK3hE,MAAM,IAAI2hE,KAAKunU,KAAK,+DAA+DvnU,KAAK8tnB,iBAAgB,CAAE,GAAG,CAAC3xqB,IAAI,WAAW7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAK2vnB,mBAAmB,IAAI,IAAIv6nB,EAAE,CAAC,IAAIjmC,EAAE6wC,KAAKm2D,IAAI,CAACr+H,KAAKkoE,KAAKloE,KAAK+oO,WAAW7mN,OAAOiN,OAAO,OAAO,OAAO+4C,KAAKloE,KAAK,GAAGkoE,KAAKwpnB,WAAWxpnB,KAAKotnB,MAAMj+pB,EAAE4vD,GAAG/kE,OAAOiN,OAAO,OAAO,QAAQxhB,EAAEu6D,KAAK4vnB,2BAAsB,IAASnqrB,GAAGA,EAAE+1D,KAAKwE,KAAK7wC,GAAG6wC,KAAK6tnB,SAAQ,GAAI7tnB,KAAKspnB,aAAatpnB,KAAK4tnB,YAAY5tnB,KAAKunU,KAAK,wCAAwCnyU,GAAG,KAAK,GAAG4K,KAAK6vnB,UAAU,MAAM,KAAK,GAAG7vnB,KAAK3hE,MAAM,GAAG,MAAM,QAAQ/H,EAAE8+D,IAAI4K,KAAKunU,KAAK,qCAAqCvnU,KAAK3hE,MAAM,GAAG,CAAC,GAAG,CAAC8d,IAAI,gBAAgB7kB,MAAM,WAAW,KAAK0oE,KAAKyunB,UAAUzunB,KAAK8vnB,sBAAsB9vnB,KAAKunU,KAAK,mDAAmDvnU,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,UAAU7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK8unB,cAAc,IAAIrprB,IAAIu3D,EAAEv3D,IAAIu6D,KAAK+unB,QAAQ/unB,KAAK3hE,MAAM,IAAI,KAAKoH,EAAEu6D,KAAK6vnB,UAAU,KAAKpqrB,EAAEu6D,KAAK3hE,MAAM,GAAG2hE,KAAKunU,KAAK,2CAA2C,GAAG,CAACprX,IAAI,cAAc7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK2vnB,mBAAmBlqrB,IAAIw5T,EAAEj/P,KAAK3hE,MAAM,GAAG/H,EAAEmP,GAAGu6D,KAAK3hE,MAAM,GAAG,KAAKoH,GAAGu6D,KAAKunU,KAAK,4BAA4BvnU,KAAK+pnB,WAAW/pnB,KAAKloE,KAAKkoE,KAAKloE,MAAMkoE,KAAKloE,KAAKkoE,KAAK9pC,KAAK,GAAG8pC,KAAK6vnB,YAAY,IAAIpqrB,GAAGu6D,KAAKunU,KAAK,0CAA0C,GAAG,CAACprX,IAAI,sBAAsB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK8unB,aAAa,OAAOrprB,GAAG,KAAK,EAAE,OAAO,KAAKw5T,EAAEj/P,KAAK3hE,MAAM,GAAG,MAAM,QAAQ2hE,KAAKunU,KAAK,4BAA4BvnU,KAAK9pC,KAAK,GAAG8pC,KAAKloE,KAAK,GAAG,KAAK2N,EAAEu6D,KAAK6vnB,UAAU7ynB,EAAEv3D,IAAIu6D,KAAK+unB,QAAQ/unB,KAAK3hE,MAAM,KAAK2hE,KAAKunU,KAAK,2CAA2CvnU,KAAK3hE,MAAM,IAAI,GAAG,CAAC8d,IAAI,eAAe7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAc9xf,EAAEn3L,IAAIu6D,KAAKokE,EAAE3+H,EAAEu6D,KAAK3hE,MAAM,IAAI/H,EAAEmP,KAAKu6D,KAAKunU,KAAK,6BAA6BvnU,KAAK3hE,MAAM,GAAG2hE,KAAK+unB,QAAQ,GAAG,CAAC5yqB,IAAI,qBAAqB7kB,MAAM,WAAW,IAAI,IAAImO,EAAEu6D,KAAKokE,EAAEhvE,EAAE4K,KAAKiQ,MAAM9gD,EAAE6wC,KAAKtoE,IAAI,OAAOsoE,KAAKyunB,WAAW,KAAKhprB,EAAE,OAAOu6D,KAAK+pnB,WAAW/pnB,KAAKloE,KAAKkoE,KAAK9pC,KAAKk/B,EAAEjC,MAAMhkC,EAAE6wC,KAAKstnB,QAAQttnB,KAAKloE,KAAKkoE,KAAK9pC,KAAK,GAAG8pC,KAAKokE,EAAE,UAAUpkE,KAAK3hE,MAAM,IAAI,KAAK,GAAG,OAAO2hE,KAAK9pC,MAAMk/B,EAAEjC,MAAMhkC,EAAE6wC,KAAKstnB,OAAOttnB,KAAK3hE,MAAM,QAAQ2hE,KAAKgunB,kBAAkB,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,EAAEhunB,KAAK9pC,MAAM,GAAGomB,OAAO8Y,EAAEjC,MAAMhkC,EAAE6wC,KAAKstnB,OAAO,KAAKn+pB,EAAE6wC,KAAKtoE,EAAE,MAAM,KAAK,GAAG,OAAOsoE,KAAK9pC,MAAMk/B,EAAEjC,MAAMhkC,EAAE6wC,KAAKstnB,YAAYttnB,KAAKunU,KAAK,yBAAyB,KAAK,EAAE,YAAYvnU,KAAK9pC,MAAMk/B,EAAEjC,MAAMhkC,IAAI,GAAG,CAAChT,IAAI,qBAAqB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK0unB,cAAcp4rB,EAAEmP,GAAGu6D,KAAK3hE,MAAM,GAAG,KAAKoH,EAAEu6D,KAAK6vnB,UAAU,KAAKpqrB,EAAEu6D,KAAK3hE,MAAM,GAAG2+D,EAAEv3D,IAAIu6D,KAAKunU,KAAK,qCAAqCvnU,KAAK+unB,QAAQ/unB,KAAK3hE,MAAM,IAAI2hE,KAAKunU,KAAK,0CAA0C,GAAG,CAACprX,IAAI,uBAAuB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKgvnB,UAAUlwX,GAAG,OAAOr5T,GAAG,KAAK,GAAGu6D,KAAK3hE,MAAM,GAAG2hE,KAAKgunB,kBAAkB,GAAG,MAAM,KAAK,GAAGhunB,KAAKunU,KAAK,yBAAyB,MAAM,KAAK,EAAE,MAAM,QAAQvnU,KAAK9pC,KAAKnjC,SAAS,QAAQitE,KAAKunU,KAAK,gDAAgDvnU,KAAK+pnB,WAAW/pnB,KAAKloE,KAAKkoE,KAAK9pC,MAAM8pC,KAAKloE,KAAKkoE,KAAK9pC,KAAK,GAAG,KAAKzwB,EAAEu6D,KAAK6vnB,UAAU7vnB,KAAK3hE,MAAM,GAAG,GAAG,CAAC8d,IAAI,YAAY7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK2vnB,mBAAmB,KAAKlqrB,EAAEu6D,KAAK+vnB,WAAWz5rB,EAAEmP,GAAGu6D,KAAK3hE,MAAM,IAAI,IAAIoH,GAAGu6D,KAAKunU,KAAK,uCAAuC,GAAG,CAACprX,IAAI,oBAAoB7kB,MAAM,WAAW,OAAO0oE,KAAK8unB,cAAc,KAAK,GAAG9unB,KAAK+vnB,WAAW,MAAM,KAAK,EAAE,MAAM,QAAQ/vnB,KAAKunU,KAAK,wCAAwC,GAAG,CAACprX,IAAI,mBAAmB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKtoE,EAAE09D,EAAE4K,KAAKwtnB,eAAer+pB,EAAE6wC,KAAKiQ,MAAMrc,EAAEoM,KAAKgwnB,YAAYvqrB,EAAE,OAAO,OAAOu6D,KAAKyunB,WAAW,KAAK,GAAG,GAAGzunB,KAAK3hE,MAAM,QAAG,IAASu1D,EAAE,CAAC,IAAImjB,EAAE/W,KAAK9pC,KAAKx+B,EAAEy3B,EAAEgkC,MAAM1tD,EAAEu6D,KAAKstnB,OAAO,IAAIv2mB,EAAEp/E,QAAQi8D,EAAEmjB,EAAEr/E,GAAGsoE,KAAK9pC,KAAK,IAAI,IAAIx+B,EAAEC,QAAQi8D,EAAEl8D,EAAE,CAAC09D,EAAE,EAAE,MAAM3vD,EAAE,KAAK,GAAGu6D,KAAK3hE,MAAM,GAAG2hE,KAAKgunB,kBAAkB,QAAG,IAASp6nB,IAAIoM,KAAK9pC,MAAM/G,EAAEgkC,MAAM1tD,EAAEu6D,KAAKstnB,QAAQl4nB,EAAE,EAAE,MAAM3vD,EAAE,KAAK,GAAG,OAAO2vD,GAAG,KAAK,EAAEA,EAAE,EAAE,MAAM,KAAK,EAAEA,EAAE,EAAE,MAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,IAAIvhD,MAAM,oBAAoB,MAAM,KAAK,GAAG,IAAIuhD,GAAG4K,KAAKunU,KAAK,gDAAgDnyU,EAAE,EAAE,MAAM,KAAK,OAAE,IAASxB,IAAIoM,KAAK9pC,MAAM,GAAGomB,OAAOntB,EAAEgkC,MAAM1tD,EAAEu6D,KAAKstnB,OAAO,OAAO7nrB,EAAEu6D,KAAKtoE,EAAE09D,EAAE,EAAE,MAAM,KAAK,OAAE,IAASxB,IAAIoM,KAAK9pC,MAAM/G,EAAEgkC,MAAM1tD,IAAI,MAAMA,EAAE,QAAQ2vD,EAAE,EAAE4K,KAAKwtnB,eAAep4nB,CAAC,GAAG,CAACj5C,IAAI,wBAAwB7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAKtoE,EAAE09D,EAAE4K,KAAKiQ,MAAM9gD,EAAE6wC,KAAKgwnB,YAAYp8nB,GAAE,EAAGnuD,EAAE,OAAO,CAAC,IAAIsxE,EAAE/W,KAAKyunB,UAAU,OAAO13mB,GAAG,KAAK,GAAG,GAAG/W,KAAK3hE,MAAM,QAAG,IAAS8wB,EAAE,CAAC,IAAIz3B,EAAEsoE,KAAK9pC,KAAKioC,EAAE/I,EAAEjC,MAAM1tD,EAAEu6D,KAAKstnB,OAAO,IAAI51rB,EAAEC,QAAQw3B,EAAEz3B,EAAEymE,GAAG6B,KAAK9pC,KAAK,IAAI,IAAIioC,EAAExmE,QAAQw3B,EAAEgvC,EAAE,CAAC,MAAM14D,EAAE,KAAK,GAAGu6D,KAAK3hE,MAAM,GAAG2hE,KAAKgunB,kBAAkB,QAAG,IAAS7+pB,IAAI6wC,KAAK9pC,MAAMk/B,EAAEjC,MAAM1tD,EAAEu6D,KAAKstnB,QAAQ15nB,GAAE,EAAG,MAAMnuD,EAAE,KAAK,OAAE,IAAS0pB,IAAI6wC,KAAK9pC,MAAM,GAAGomB,OAAO8Y,EAAEjC,MAAM1tD,EAAEu6D,KAAKstnB,OAAO,OAAO7nrB,EAAEu6D,KAAKtoE,EAAE,MAAM,KAAK,OAAE,IAASy3B,IAAI6wC,KAAK9pC,MAAMk/B,EAAEjC,MAAM1tD,IAAI,MAAMA,EAAE,QAAQnP,EAAEygF,KAAKnjB,GAAE,GAAI,CAACA,IAAIoM,KAAK6tnB,SAAS7tnB,KAAK0tnB,yBAAyB1tnB,KAAKunU,KAAK,mCAAmCvnU,KAAK0tnB,wBAAuB,GAAI1tnB,KAAK4tnB,aAAa5tnB,KAAK2tnB,wBAAwB3tnB,KAAKunU,KAAK,mCAAmCvnU,KAAK2tnB,uBAAsB,GAAI,GAAG,CAACxxqB,IAAI,eAAe7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEoM,KAAKiwnB,MAAMxqrB,GAAGsxE,EAAEnjB,EAAEypI,OAAO3lM,EAAEk8D,EAAEg7lB,MAAMt4pB,EAAE,CAACwB,KAAK2N,EAAE43L,OAAOtmH,EAAE63kB,MAAMl3pB,EAAEJ,MAAM89D,GAAG,GAAG4K,KAAKytnB,WAAW1yrB,KAAKzE,GAAG,QAAQ64B,EAAE6wC,KAAKkwnB,wBAAmB,IAAS/gqB,GAAGA,EAAEqsC,KAAKwE,KAAK1pE,GAAG,UAAUygF,EAAE,CAAC,IAAI5Y,EAAE/I,EAAEvzC,OAAO,QAAQm+C,KAAK2unB,mBAAmB,KAAKxwnB,GAAG6B,KAAKunU,KAAK,iDAAiDvnU,KAAKotnB,MAAM11rB,GAAGymE,EAAE/f,EAAE4hB,KAAKtoE,EAAEymE,EAAE,MAAM,GAAG,UAAU14D,EAAE,CAAC,IAAIu3D,EAAE5H,EAAEvzC,OAAOm+C,KAAKotnB,MAAM,IAAIpwnB,EAAE5e,EAAE4hB,KAAK,GAAGhD,EAAE,CAAC,GAAG,CAAC7gD,IAAI,kBAAkB7kB,MAAM,SAASmO,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAE,CAAC97D,KAAK2N,EAAEnO,MAAM89D,GAAG4K,KAAKytnB,WAAW1yrB,KAAK64D,GAAG,QAAQzkC,EAAE6wC,KAAKkwnB,wBAAmB,IAAS/gqB,GAAGA,EAAEqsC,KAAKwE,KAAKpM,EAAE,GAAG,CAACz3C,IAAI,MAAM7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAK6tnB,SAAS7tnB,KAAKunU,KAAK,yCAAyC,IAAI,IAAIp4W,EAAE6wC,KAAK44H,KAAKzpK,EAAEx3B,OAAO,GAAG,CAAC,IAAIi8D,EAAEzkC,EAAEyzB,MAAMod,KAAKunU,KAAK,iBAAiBjrV,OAAOsX,EAAE97D,MAAM,CAAC,IAAIkoE,KAAK3hE,OAAO,KAAK2hE,KAAK3hE,OAAO2hE,KAAKunU,KAAK,mBAAmB,IAAIxwT,EAAE/W,KAAK9pC,KAAK,OAAO,IAAI6gD,EAAEp/E,SAAS,QAAQ8N,EAAEu6D,KAAKgwnB,mBAAc,IAASvqrB,GAAGA,EAAE+1D,KAAKwE,KAAK+W,GAAG/W,KAAK9pC,KAAK,IAAI8pC,KAAKqunB,SAAQ,EAAG,QAAQj5nB,EAAE4K,KAAKmwnB,kBAAa,IAAS/6nB,GAAGA,EAAEoG,KAAKwE,MAAMA,KAAKqpV,QAAQrpV,IAAI,GAAG,CAAC7jD,IAAI,UAAU7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAEjmC,EAAEykC,EAAEoM,KAAKotnB,MAAM3nrB,GAAG,QAAG,IAASmuD,EAAE,OAAOA,EAAE,IAAI,IAAImjB,EAAE/W,KAAK44H,KAAKlhM,EAAEq/E,EAAEp/E,OAAO,EAAED,GAAG,EAAEA,IAAI,QAAG,KAAUk8D,EAAEmjB,EAAEr/E,GAAGqnF,GAAGt5E,IAAI,OAAOmuD,EAAE,YAAO,KAAUA,EAAEoM,KAAK+e,GAAGt5E,IAAImuD,EAAE,QAAQzkC,GAAGimC,EAAE4K,KAAKqvI,KAAK+gf,qBAAgB,IAASjhqB,OAAE,EAAOA,EAAEqsC,KAAKpG,EAAE3vD,EAAE,GAAG,CAAC0W,IAAI,QAAQ7kB,MAAM,SAASmO,GAAG,IAAI2vD,EAAE3vD,EAAExO,QAAQ,KAAK,IAAI,IAAIm+D,EAAE,MAAM,CAACioI,OAAO,GAAGuxd,MAAMnppB,GAAG,IAAI0pB,EAAE1pB,EAAE0tD,MAAMiC,EAAE,GAAGxB,EAAEnuD,EAAE0tD,MAAM,EAAEiC,GAAG,OAAO,KAAKxB,GAAG,KAAKzkC,GAAGA,EAAEp8B,SAAS,OAAOitE,KAAKunU,KAAK,mBAAmBjrV,OAAO72C,EAAE,MAAM,CAAC43L,OAAOzpI,EAAEg7lB,MAAMz/nB,EAAE,GAAG,CAAChT,IAAI,mBAAmB7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAKytnB,WAAWt+pB,EAAE6wC,KAAKm2D,IAAIviE,EAAEoM,KAAKiwnB,MAAM9gqB,EAAEr3B,MAAMi/E,EAAEnjB,EAAEypI,OAAO3lM,EAAEk8D,EAAEg7lB,MAAMz/nB,EAAEkuK,OAAOtmH,EAAE5nD,EAAEy/nB,MAAMl3pB,EAAE,IAAIpB,EAAE64B,EAAEysmB,IAAI,QAAQn2nB,EAAEu6D,KAAK7pB,QAAQ4gC,UAAK,IAAStxE,EAAEA,EAAE,GAAG,GAAG,KAAKsxE,IAAI,UAAUA,GAAG/W,KAAKunU,KAAK,wCAAwC,KAAKjxY,IAAI0pE,KAAKunU,KAAK,6BAA6BjrV,OAAOvrC,KAAKE,UAAU8lE,GAAG,MAAM5nD,EAAEysmB,IAAI7kjB,IAAI,IAAI3hB,EAAEz9D,OAAO,CAAC,IAAIwmE,EAAEnB,EAAE7tC,EAAE0xM,WAAWjrN,EAAE,IAAIiiF,IAAIryB,EAAEq6iB,4BAA4BzqjB,GAAG,IAAI,IAAIoQ,EAAErH,MAAMA,EAAEqH,EAAE5R,KAAKsjQ,MAAM,CAAC,IAAIlkQ,EAAEmL,EAAE7mE,MAAMkrE,EAAExP,EAAEl7D,KAAK8kE,EAAE5J,EAAEqqI,OAAOtpI,EAAEf,EAAE47lB,MAAMplnB,OAAE,EAAO+mC,OAAE,EAAO,KAAK3T,GAAGpzB,EAAE,UAAUg5B,EAAEjsE,EAAE,GAAGg6E,EAAE/N,SAAI,KAAUh5B,EAAEw2B,KAAK7pB,QAAQymB,MAAMoD,KAAKunU,KAAK,6BAA6BjrV,OAAOvrC,KAAKE,UAAU2rD,GAAG,MAAMpzB,EAAEozB,GAAG2T,EAAE,IAAIj0B,OAAO9S,EAAE,KAAK8S,OAAOyX,IAAIn+C,EAAE8sG,IAAInyC,IAAIvQ,KAAKunU,KAAK,wBAAwBjrV,OAAOi0B,EAAE,MAAM36D,EAAE+hD,IAAI4Y,GAAGvd,EAAE4okB,IAAIpylB,EAAEwzB,EAAEwF,GAAGxP,CAAC,CAAC,CAAC,MAAMvtD,GAAG+/D,EAAE//D,EAAEA,EAAE,CAAC,QAAQ+/D,EAAEA,GAAG,CAACxF,KAAKytnB,WAAW,EAAE,CAAC,GAAG,CAACtxqB,IAAI,sBAAsB7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAE4K,KAAKytnB,WAAWt+pB,EAAE6wC,KAAKm2D,IAAI0qG,WAAWjtK,EAAEisjB,4BAA4BzqjB,GAAG,IAAI,IAAIxB,EAAEuK,MAAM14D,EAAEmuD,EAAEA,KAAKsjQ,MAAM,CAAC,IAAIngP,EAAEtxE,EAAEnO,MAAMI,EAAEq/E,EAAEj/E,KAAKxB,EAAEygF,EAAEz/E,WAAM,IAAS63B,EAAEz3B,IAAIsoE,KAAKunU,KAAK,wBAAwBjrV,OAAO5kD,EAAE,MAAMy3B,EAAEz3B,GAAGpB,CAAC,CAAC,CAAC,MAAMmP,GAAGmuD,EAAEnuD,EAAEA,EAAE,CAAC,QAAQmuD,EAAE4R,GAAG,CAACxF,KAAKytnB,WAAW,EAAE,GAAG,CAACtxqB,IAAI,UAAU7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK6pnB,iBAAiB,IAAIz0nB,EAAE4K,KAAK44H,KAAKzpK,EAAE6wC,KAAKm2D,IAAIhnG,EAAEkhqB,eAAc,EAAG,QAAQ5qrB,EAAEu6D,KAAKswnB,sBAAiB,IAAS7qrB,GAAGA,EAAE+1D,KAAKwE,KAAK7wC,GAAGimC,EAAEr6D,KAAKo0B,GAAG6wC,KAAK3hE,MAAM,GAAG2hE,KAAKloE,KAAK,EAAE,GAAG,CAACqkB,IAAI,qBAAqB7kB,MAAM,WAAW,IAAImO,EAAE2vD,EAAEjmC,EAAE6wC,KAAK6pnB,iBAAiB,IAAIj2nB,EAAEoM,KAAK44H,KAAK7hH,EAAE/W,KAAKm2D,IAAIp/C,EAAEs5mB,eAAc,EAAG,QAAQ5qrB,EAAEu6D,KAAKswnB,sBAAiB,IAAS7qrB,GAAGA,EAAE+1D,KAAKwE,KAAK+W,GAAG,QAAQ3hB,EAAE4K,KAAKuwnB,uBAAkB,IAASn7nB,GAAGA,EAAEoG,KAAKwE,KAAK+W,GAAG,QAAQ/W,KAAKm2D,IAAI,QAAQhnG,EAAEykC,EAAEA,EAAEj8D,OAAO,UAAK,IAASw3B,EAAEA,EAAE,QAAQ6wC,KAAK4tnB,YAAW,GAAI5tnB,KAAK3hE,MAAM,GAAG2hE,KAAKloE,KAAK,EAAE,GAAG,CAACqkB,IAAI,WAAW7kB,MAAM,WAAW,IAAImO,EAAEu6D,KAAK44H,KAAKxjI,EAAE4K,KAAKloE,KAAK,GAAGkoE,KAAK3hE,MAAM,GAAG2hE,KAAKloE,KAAK,GAAG,KAAKs9D,EAAE,OAAO4K,KAAKunU,KAAK,+BAA+BvnU,KAAK9pC,MAAM,OAAO,IAAI,IAAI/G,EAAE6wC,KAAKuwnB,gBAAgB38nB,EAAEnuD,EAAE9N,OAAOi8D,KAAK,GAAG,CAAC,IAAImjB,EAAE/W,KAAKm2D,IAAI1wH,EAAEm9C,MAAM,GAAGod,KAAKotnB,MAAMr2mB,EAAEgI,GAAG,MAAM5vD,GAAGA,EAAE4nD,GAAGA,EAAEj/E,OAAOs9D,EAAE,MAAM4K,KAAKunU,KAAK,wBAAwB,CAAC,IAAI3zU,EAAEoM,KAAK4tnB,YAAW,EAAGh6nB,EAAE,IAAIoM,KAAKunU,KAAK,0BAA0BjrV,OAAO8Y,EAAE,MAAM4K,KAAK9pC,MAAM,KAAKomB,OAAO8Y,EAAE,KAAK,GAAG,CAACj5C,IAAI,cAAc7kB,MAAM,SAASmO,GAAG,GAAG,MAAMA,EAAE,GAAG,CAAC,IAAI2vD,EAAE4K,KAAKuunB,SAAS9orB,GAAG,YAAO,IAAS2vD,EAAEA,GAAG4K,KAAKunU,KAAKvnU,KAAK4pnB,OAAOnkrB,GAAG,oBAAoB,wCAAwC,IAAI62C,OAAO72C,EAAE,KAAK,CAAC,IAAI0pB,EAAEuxS,IAAI,MAAM,MAAMj7T,EAAE,IAAI,iBAAiB2N,KAAK3N,GAAG0pB,EAAE5a,SAAS9O,EAAE0tD,MAAM,GAAG,IAAI,YAAY//C,KAAK3N,KAAK0pB,EAAE5a,SAAS9O,EAAE0tD,MAAM,GAAG,KAAK6M,KAAKmonB,OAAOh5pB,GAAGhH,OAAO+mqB,cAAc//pB,IAAI6wC,KAAKunU,KAAK,+BAA+B,IAAIjrV,OAAO72C,EAAE,KAAK,GAAG,CAAC0W,IAAI,SAASukD,IAAI,WAAW,OAAOV,KAAKqunB,OAAO,GAAG,CAAClyqB,IAAI,WAAWukD,IAAI,WAAW,OAAOV,KAAKqtnB,cAAcrtnB,KAAKtoE,CAAC,GAAG,CAACykB,IAAI,cAAcukD,IAAI,WAAW,OAAOV,KAAKljE,SAASkjE,KAAKounB,iBAAiB,KAAK3orB,CAAC,CAAjvuB,GAAqvuB0pB,EAAEoimB,YAAY+S,CAAC,EAAE,CAAC,uBAAuB,IAAI,uBAAuB,IAAI,yBAAyB,MAAM,IAAI,CAAC,SAAS7+nB,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG2vD,EAAE8jE,QAAQ,mBAAmBzzH,EAAEA,EAAE,WAAW,IAAIA,EAAE,GAAG0tD,MAAMzQ,MAAMymB,WAAW1jE,EAAEvO,OAAO,EAAE,EAAE,GAAGgpD,WAAWwC,MAAM,KAAKj9C,EAAE,CAAE,GAAE+1D,KAAKwE,KAAKv6D,EAAE,UAAUounB,aAAa,EAAE,CAACv0D,OAAO,MAAM,IAAI,CAAC,SAAS75jB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,eAAe4zH,OAAO,SAAStiD,EAAEtxE,EAAE2vD,GAAG4K,KAAKukmB,OAAO3wmB,EAAEknI,MAAMr1L,GAAGu6D,KAAKwwnB,WAAWp7nB,EAAE4K,KAAKwkmB,WAAW/+pB,EAAEu6D,KAAKqZ,KAAK,CAAC,CAACtC,EAAExqB,UAAUq5L,OAAO,SAASngP,EAAE2vD,GAAG,iBAAiB3vD,IAAI2vD,EAAEA,GAAG,OAAO3vD,EAAEmuD,EAAExuC,KAAK3f,EAAE2vD,IAAI,IAAI,IAAIjmC,EAAE6wC,KAAKukmB,OAAOxtlB,EAAE/W,KAAKwkmB,WAAW9sqB,EAAE+N,EAAE9N,OAAOrB,EAAE0pE,KAAKqZ,KAAKlb,EAAE,EAAEA,EAAEzmE,GAAG,CAAC,IAAI,IAAIslE,EAAE1mE,EAAEygF,EAAEnhE,EAAEnlB,KAAK64C,IAAI5xC,EAAEymE,EAAE4Y,EAAE/Z,GAAGwI,EAAE,EAAEA,EAAE5vD,EAAE4vD,IAAIr2C,EAAE6tC,EAAEwI,GAAG//D,EAAE04D,EAAEqH,GAAGrH,GAAGvoD,GAAGtf,GAAGsf,GAAGmhE,GAAG,GAAG/W,KAAKwkgB,QAAQr1iB,EAAE,CAAC,OAAO6wC,KAAKqZ,MAAM3hF,EAAEsoE,IAAI,EAAE+W,EAAExqB,UAAU4kkB,OAAO,SAAS1rnB,GAAG,IAAI2vD,EAAE4K,KAAKqZ,KAAKrZ,KAAKwkmB,WAAWxkmB,KAAKukmB,OAAOnvmB,GAAG,IAAI4K,KAAKukmB,OAAOp6kB,KAAK,EAAE/0B,EAAE,GAAGA,GAAG4K,KAAKwwnB,aAAaxwnB,KAAKwkgB,QAAQxkgB,KAAKukmB,QAAQvkmB,KAAKukmB,OAAOp6kB,KAAK,IAAI,IAAIh7D,EAAE,EAAE6wC,KAAKqZ,KAAK,GAAGlqD,GAAG,WAAW6wC,KAAKukmB,OAAOxnB,cAAc5tnB,EAAE6wC,KAAKwkmB,WAAW,OAAO,CAAC,IAAI5wmB,GAAG,WAAWzkC,KAAK,EAAE4nD,GAAG5nD,EAAEykC,GAAG,WAAWoM,KAAKukmB,OAAOxnB,cAAchmkB,EAAE/W,KAAKwkmB,WAAW,GAAGxkmB,KAAKukmB,OAAOxnB,cAAcnplB,EAAEoM,KAAKwkmB,WAAW,EAAE,CAACxkmB,KAAKwkgB,QAAQxkgB,KAAKukmB,QAAQ,IAAI7sqB,EAAEsoE,KAAKixjB,QAAQ,OAAOxrnB,EAAE/N,EAAEhG,SAAS+T,GAAG/N,CAAC,EAAEq/E,EAAExqB,UAAUi4gB,QAAQ,WAAW,MAAM,IAAI3wjB,MAAM,0CAA0C,EAAEuhD,EAAE8jE,QAAQniD,CAAC,EAAE,CAAC,cAAc,MAAM,IAAI,CAAC,SAAStxE,EAAE2vD,EAAEjmC,IAAIA,EAAEimC,EAAE8jE,QAAQ,SAASzzH,GAAGA,EAAEA,EAAEjP,cAAc,IAAI4+D,EAAEjmC,EAAE1pB,GAAG,IAAI2vD,EAAE,MAAM,IAAIvhD,MAAMpO,EAAE,+CAA+C,OAAO,IAAI2vD,CAAC,GAAGyvmB,IAAIp/pB,EAAE,SAAS0pB,EAAE61oB,KAAKv/pB,EAAE,UAAU0pB,EAAEmynB,OAAO77oB,EAAE,YAAY0pB,EAAEkynB,OAAO57oB,EAAE,YAAY0pB,EAAEoynB,OAAO97oB,EAAE,YAAY0pB,EAAEqynB,OAAO/7oB,EAAE,WAAW,EAAE,CAAC,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,UAAU/N,EAAE+N,EAAE,eAAe4zH,OAAO/iI,EAAE,CAAC,WAAW,YAAY,YAAY,WAAW6nE,EAAE,IAAI9O,MAAM,IAAI,SAAS2N,IAAIgD,KAAKD,OAAOC,KAAKywnB,GAAGtynB,EAAE4Y,EAAEvb,KAAKwE,KAAK,GAAG,GAAG,CAAC,SAASpqD,EAAEnQ,GAAG,OAAOA,GAAG,GAAGA,IAAI,CAAC,CAAC,SAAS+/D,EAAE//D,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAO,IAAInuD,EAAE2vD,EAAEjmC,GAAGimC,EAAExB,EAAE,IAAInuD,EAAE2vD,EAAEjmC,EAAEimC,EAAExB,EAAEzkC,EAAEykC,EAAEwB,EAAEjmC,EAAEykC,CAAC,CAACA,EAAEoJ,EAAE+Z,GAAG/Z,EAAEzQ,UAAUwT,KAAK,WAAW,OAAOC,KAAK+xD,GAAG,WAAW/xD,KAAK6kE,GAAG,WAAW7kE,KAAK+wI,GAAG,WAAW/wI,KAAKgxI,GAAG,UAAUhxI,KAAKixI,GAAG,WAAWjxI,IAAI,EAAEhD,EAAEzQ,UAAUi4gB,QAAQ,SAAS/+jB,GAAG,IAAI,IAAI2vD,EAAEjmC,EAAE6wC,KAAKywnB,GAAG78nB,EAAE,EAAEoM,KAAK+xD,GAAGh7C,EAAE,EAAE/W,KAAK6kE,GAAGntI,EAAE,EAAEsoE,KAAK+wI,GAAG5yI,EAAE,EAAE6B,KAAKgxI,GAAGh0I,EAAE,EAAEgD,KAAKixI,GAAGj+I,EAAE,EAAEA,EAAE,KAAKA,EAAE7jC,EAAE6jC,GAAGvtD,EAAEk/oB,YAAY,EAAE3xlB,GAAG,KAAKA,EAAE,KAAKA,EAAE7jC,EAAE6jC,GAAG7jC,EAAE6jC,EAAE,GAAG7jC,EAAE6jC,EAAE,GAAG7jC,EAAE6jC,EAAE,IAAI7jC,EAAE6jC,EAAE,IAAI,IAAI,IAAIwP,EAAE,EAAEA,EAAE,KAAKA,EAAE,CAAC,IAAI5F,KAAK4F,EAAE,IAAIzO,EAAE,IAAIqB,EAAExB,IAAI,EAAEwB,IAAI,IAAIoQ,EAAE5I,EAAEma,EAAEr/E,EAAEymE,GAAGnB,EAAE7tC,EAAEqzC,GAAGlsE,EAAEsmE,GAAGI,EAAEmB,EAAEA,EAAEzmE,EAAEA,EAAEke,EAAEmhE,GAAGA,EAAEnjB,EAAEA,EAAEG,CAAC,CAACiM,KAAK+xD,GAAGn+D,EAAEoM,KAAK+xD,GAAG,EAAE/xD,KAAK6kE,GAAG9tD,EAAE/W,KAAK6kE,GAAG,EAAE7kE,KAAK+wI,GAAGr5M,EAAEsoE,KAAK+wI,GAAG,EAAE/wI,KAAKgxI,GAAG7yI,EAAE6B,KAAKgxI,GAAG,EAAEhxI,KAAKixI,GAAGj0I,EAAEgD,KAAKixI,GAAG,CAAC,EAAEj0I,EAAEzQ,UAAU0kkB,MAAM,WAAW,IAAIxrnB,EAAE/N,EAAE4hI,YAAY,IAAI,OAAO7zH,EAAE+/oB,aAAa,EAAExllB,KAAK+xD,GAAG,GAAGtsH,EAAE+/oB,aAAa,EAAExllB,KAAK6kE,GAAG,GAAGp/H,EAAE+/oB,aAAa,EAAExllB,KAAK+wI,GAAG,GAAGtrM,EAAE+/oB,aAAa,EAAExllB,KAAKgxI,GAAG,IAAIvrM,EAAE+/oB,aAAa,EAAExllB,KAAKixI,GAAG,IAAIxrM,CAAC,EAAE2vD,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,SAAS,IAAIqsf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,UAAU/N,EAAE+N,EAAE,eAAe4zH,OAAO/iI,EAAE,CAAC,WAAW,YAAY,YAAY,WAAW6nE,EAAE,IAAI9O,MAAM,IAAI,SAAS2N,IAAIgD,KAAKD,OAAOC,KAAKywnB,GAAGtynB,EAAE4Y,EAAEvb,KAAKwE,KAAK,GAAG,GAAG,CAAC,SAASpqD,EAAEnQ,GAAG,OAAOA,GAAG,EAAEA,IAAI,EAAE,CAAC,SAAS+/D,EAAE//D,GAAG,OAAOA,GAAG,GAAGA,IAAI,CAAC,CAAC,SAASutD,EAAEvtD,EAAE2vD,EAAEjmC,EAAEykC,GAAG,OAAO,IAAInuD,EAAE2vD,EAAEjmC,GAAGimC,EAAExB,EAAE,IAAInuD,EAAE2vD,EAAEjmC,EAAEimC,EAAExB,EAAEzkC,EAAEykC,EAAEwB,EAAEjmC,EAAEykC,CAAC,CAACA,EAAEoJ,EAAE+Z,GAAG/Z,EAAEzQ,UAAUwT,KAAK,WAAW,OAAOC,KAAK+xD,GAAG,WAAW/xD,KAAK6kE,GAAG,WAAW7kE,KAAK+wI,GAAG,WAAW/wI,KAAKgxI,GAAG,UAAUhxI,KAAKixI,GAAG,WAAWjxI,IAAI,EAAEhD,EAAEzQ,UAAUi4gB,QAAQ,SAAS/+jB,GAAG,IAAI,IAAI2vD,EAAEjmC,EAAE6wC,KAAKywnB,GAAG78nB,EAAE,EAAEoM,KAAK+xD,GAAGh7C,EAAE,EAAE/W,KAAK6kE,GAAGntI,EAAE,EAAEsoE,KAAK+wI,GAAG5yI,EAAE,EAAE6B,KAAKgxI,GAAGh0I,EAAE,EAAEgD,KAAKixI,GAAGzuI,EAAE,EAAEA,EAAE,KAAKA,EAAErzC,EAAEqzC,GAAG/8D,EAAEk/oB,YAAY,EAAEnilB,GAAG,KAAKA,EAAE,KAAKA,EAAErzC,EAAEqzC,IAAIpN,EAAEjmC,EAAEqzC,EAAE,GAAGrzC,EAAEqzC,EAAE,GAAGrzC,EAAEqzC,EAAE,IAAIrzC,EAAEqzC,EAAE,MAAM,EAAEpN,IAAI,GAAG,IAAI,IAAIwH,EAAE,EAAEA,EAAE,KAAKA,EAAE,CAAC,IAAI7I,KAAK6I,EAAE,IAAIpzB,EAAE5zB,EAAEg+C,GAAGZ,EAAEe,EAAEgjB,EAAEr/E,EAAEymE,GAAGnB,EAAE7tC,EAAEytC,GAAGtmE,EAAEy9D,GAAG,EAAEiJ,EAAEmB,EAAEA,EAAEzmE,EAAEA,EAAE8tE,EAAEuR,GAAGA,EAAEnjB,EAAEA,EAAEpqB,CAAC,CAACw2B,KAAK+xD,GAAGn+D,EAAEoM,KAAK+xD,GAAG,EAAE/xD,KAAK6kE,GAAG9tD,EAAE/W,KAAK6kE,GAAG,EAAE7kE,KAAK+wI,GAAGr5M,EAAEsoE,KAAK+wI,GAAG,EAAE/wI,KAAKgxI,GAAG7yI,EAAE6B,KAAKgxI,GAAG,EAAEhxI,KAAKixI,GAAGj0I,EAAEgD,KAAKixI,GAAG,CAAC,EAAEj0I,EAAEzQ,UAAU0kkB,MAAM,WAAW,IAAIxrnB,EAAE/N,EAAE4hI,YAAY,IAAI,OAAO7zH,EAAE+/oB,aAAa,EAAExllB,KAAK+xD,GAAG,GAAGtsH,EAAE+/oB,aAAa,EAAExllB,KAAK6kE,GAAG,GAAGp/H,EAAE+/oB,aAAa,EAAExllB,KAAK+wI,GAAG,GAAGtrM,EAAE+/oB,aAAa,EAAExllB,KAAKgxI,GAAG,IAAIvrM,EAAE+/oB,aAAa,EAAExllB,KAAKixI,GAAG,IAAIxrM,CAAC,EAAE2vD,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,SAAS,IAAIqsf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,YAAY/N,EAAE+N,EAAE,UAAUnP,EAAEmP,EAAE,eAAe4zH,OAAOl7D,EAAE,IAAI9O,MAAM,IAAI,SAAS2N,IAAIgD,KAAKD,OAAOC,KAAKywnB,GAAGtynB,EAAEzmE,EAAE8jE,KAAKwE,KAAK,GAAG,GAAG,CAACpM,EAAEoJ,EAAE+Z,GAAG/Z,EAAEzQ,UAAUwT,KAAK,WAAW,OAAOC,KAAK+xD,GAAG,WAAW/xD,KAAK6kE,GAAG,UAAU7kE,KAAK+wI,GAAG,UAAU/wI,KAAKgxI,GAAG,WAAWhxI,KAAKixI,GAAG,WAAWjxI,KAAKkxI,GAAG,WAAWlxI,KAAK4kE,GAAG,WAAW5kE,KAAK40D,GAAG,WAAW50D,IAAI,EAAEhD,EAAEzQ,UAAU0kkB,MAAM,WAAW,IAAIxrnB,EAAEnP,EAAEgjI,YAAY,IAAI,OAAO7zH,EAAE+/oB,aAAaxllB,KAAK+xD,GAAG,GAAGtsH,EAAE+/oB,aAAaxllB,KAAK6kE,GAAG,GAAGp/H,EAAE+/oB,aAAaxllB,KAAK+wI,GAAG,GAAGtrM,EAAE+/oB,aAAaxllB,KAAKgxI,GAAG,IAAIvrM,EAAE+/oB,aAAaxllB,KAAKixI,GAAG,IAAIxrM,EAAE+/oB,aAAaxllB,KAAKkxI,GAAG,IAAIzrM,EAAE+/oB,aAAaxllB,KAAK4kE,GAAG,IAAIn/H,CAAC,EAAE2vD,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,SAAS,IAAI,WAAW,IAAIqsf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,UAAU/N,EAAE+N,EAAE,eAAe4zH,OAAO/iI,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY6nE,EAAE,IAAI9O,MAAM,IAAI,SAAS2N,IAAIgD,KAAKD,OAAOC,KAAKywnB,GAAGtynB,EAAE4Y,EAAEvb,KAAKwE,KAAK,GAAG,GAAG,CAAC,SAASpqD,EAAEnQ,EAAE2vD,EAAEjmC,GAAG,OAAOA,EAAE1pB,GAAG2vD,EAAEjmC,EAAE,CAAC,SAASq2C,EAAE//D,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2vD,EAAEjmC,GAAG1pB,EAAE2vD,EAAE,CAAC,SAASpC,EAAEvtD,GAAG,OAAOA,IAAI,EAAEA,GAAG,KAAKA,IAAI,GAAGA,GAAG,KAAKA,IAAI,GAAGA,GAAG,GAAG,CAAC,SAAS+8D,EAAE/8D,GAAG,OAAOA,IAAI,EAAEA,GAAG,KAAKA,IAAI,GAAGA,GAAG,KAAKA,IAAI,GAAGA,GAAG,EAAE,CAAC,SAASm3D,EAAEn3D,GAAG,OAAOA,IAAI,EAAEA,GAAG,KAAKA,IAAI,GAAGA,GAAG,IAAIA,IAAI,CAAC,CAACmuD,EAAEoJ,EAAE+Z,GAAG/Z,EAAEzQ,UAAUwT,KAAK,WAAW,OAAOC,KAAK+xD,GAAG,WAAW/xD,KAAK6kE,GAAG,WAAW7kE,KAAK+wI,GAAG,WAAW/wI,KAAKgxI,GAAG,WAAWhxI,KAAKixI,GAAG,WAAWjxI,KAAKkxI,GAAG,WAAWlxI,KAAK4kE,GAAG,UAAU5kE,KAAK40D,GAAG,WAAW50D,IAAI,EAAEhD,EAAEzQ,UAAUi4gB,QAAQ,SAAS/+jB,GAAG,IAAI,IAAI2vD,EAAEjmC,EAAE6wC,KAAKywnB,GAAG78nB,EAAE,EAAEoM,KAAK+xD,GAAGh7C,EAAE,EAAE/W,KAAK6kE,GAAGntI,EAAE,EAAEsoE,KAAK+wI,GAAG5yI,EAAE,EAAE6B,KAAKgxI,GAAGh0I,EAAE,EAAEgD,KAAKixI,GAAGl9I,EAAE,EAAEiM,KAAKkxI,GAAG1nK,EAAE,EAAEw2B,KAAK4kE,GAAGr0D,EAAE,EAAEvQ,KAAK40D,GAAGr+H,EAAE,EAAEA,EAAE,KAAKA,EAAE44B,EAAE54B,GAAGkP,EAAEk/oB,YAAY,EAAEpupB,GAAG,KAAKA,EAAE,KAAKA,EAAE44B,EAAE54B,GAAG,KAAK6+D,EAAEjmC,EAAE54B,EAAE,MAAM,GAAG6+D,GAAG,KAAKA,IAAI,GAAGA,GAAG,IAAIA,IAAI,IAAIjmC,EAAE54B,EAAE,GAAGqmE,EAAEztC,EAAE54B,EAAE,KAAK44B,EAAE54B,EAAE,IAAI,IAAI,IAAI27D,EAAE,EAAEA,EAAE,KAAKA,EAAE,CAAC,IAAI4Q,EAAEyN,EAAE/N,EAAExF,GAAGpnD,EAAEonD,EAAEjJ,EAAEvqB,GAAGlzC,EAAE47D,GAAG/iC,EAAE+iC,GAAG,EAAE+sQ,EAAEjsQ,EAAEY,GAAG4R,EAAE5R,EAAEmjB,EAAEr/E,GAAG,EAAE64E,EAAE/mC,EAAEA,EAAEuqB,EAAEA,EAAEiJ,EAAEA,EAAEmB,EAAE2E,EAAE,EAAE3E,EAAEzmE,EAAEA,EAAEq/E,EAAEA,EAAEnjB,EAAEA,EAAEkP,EAAEm8P,EAAE,CAAC,CAACj/P,KAAK+xD,GAAGn+D,EAAEoM,KAAK+xD,GAAG,EAAE/xD,KAAK6kE,GAAG9tD,EAAE/W,KAAK6kE,GAAG,EAAE7kE,KAAK+wI,GAAGr5M,EAAEsoE,KAAK+wI,GAAG,EAAE/wI,KAAKgxI,GAAG7yI,EAAE6B,KAAKgxI,GAAG,EAAEhxI,KAAKixI,GAAGj0I,EAAEgD,KAAKixI,GAAG,EAAEjxI,KAAKkxI,GAAGn9I,EAAEiM,KAAKkxI,GAAG,EAAElxI,KAAK4kE,GAAGp7F,EAAEw2B,KAAK4kE,GAAG,EAAE5kE,KAAK40D,GAAGrkD,EAAEvQ,KAAK40D,GAAG,CAAC,EAAE53D,EAAEzQ,UAAU0kkB,MAAM,WAAW,IAAIxrnB,EAAE/N,EAAE4hI,YAAY,IAAI,OAAO7zH,EAAE+/oB,aAAaxllB,KAAK+xD,GAAG,GAAGtsH,EAAE+/oB,aAAaxllB,KAAK6kE,GAAG,GAAGp/H,EAAE+/oB,aAAaxllB,KAAK+wI,GAAG,GAAGtrM,EAAE+/oB,aAAaxllB,KAAKgxI,GAAG,IAAIvrM,EAAE+/oB,aAAaxllB,KAAKixI,GAAG,IAAIxrM,EAAE+/oB,aAAaxllB,KAAKkxI,GAAG,IAAIzrM,EAAE+/oB,aAAaxllB,KAAK4kE,GAAG,IAAIn/H,EAAE+/oB,aAAaxllB,KAAK40D,GAAG,IAAInvH,CAAC,EAAE2vD,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,SAAS,IAAIqsf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,YAAY/N,EAAE+N,EAAE,UAAUnP,EAAEmP,EAAE,eAAe4zH,OAAOl7D,EAAE,IAAI9O,MAAM,KAAK,SAAS2N,IAAIgD,KAAKD,OAAOC,KAAKywnB,GAAGtynB,EAAEzmE,EAAE8jE,KAAKwE,KAAK,IAAI,IAAI,CAACpM,EAAEoJ,EAAE+Z,GAAG/Z,EAAEzQ,UAAUwT,KAAK,WAAW,OAAOC,KAAK0wnB,IAAI,WAAW1wnB,KAAK2wnB,IAAI,WAAW3wnB,KAAK4wnB,IAAI,WAAW5wnB,KAAK6wnB,IAAI,UAAU7wnB,KAAK8wnB,IAAI,WAAW9wnB,KAAK+wnB,IAAI,WAAW/wnB,KAAKgxnB,IAAI,WAAWhxnB,KAAKixnB,IAAI,WAAWjxnB,KAAKkxnB,IAAI,WAAWlxnB,KAAKmxnB,IAAI,UAAUnxnB,KAAKoxnB,IAAI,UAAUpxnB,KAAKqxnB,IAAI,WAAWrxnB,KAAKsxnB,IAAI,WAAWtxnB,KAAKuxnB,IAAI,WAAWvxnB,KAAKwxnB,IAAI,WAAWxxnB,KAAKyxnB,IAAI,WAAWzxnB,IAAI,EAAEhD,EAAEzQ,UAAU0kkB,MAAM,WAAW,IAAIxrnB,EAAEnP,EAAEgjI,YAAY,IAAI,SAASlkE,EAAEA,EAAEjmC,EAAEykC,GAAGnuD,EAAE+/oB,aAAapwlB,EAAExB,GAAGnuD,EAAE+/oB,aAAar2nB,EAAEykC,EAAE,EAAE,CAAC,OAAOwB,EAAE4K,KAAK0wnB,IAAI1wnB,KAAKkxnB,IAAI,GAAG97nB,EAAE4K,KAAK2wnB,IAAI3wnB,KAAKmxnB,IAAI,GAAG/7nB,EAAE4K,KAAK4wnB,IAAI5wnB,KAAKoxnB,IAAI,IAAIh8nB,EAAE4K,KAAK6wnB,IAAI7wnB,KAAKqxnB,IAAI,IAAIj8nB,EAAE4K,KAAK8wnB,IAAI9wnB,KAAKsxnB,IAAI,IAAIl8nB,EAAE4K,KAAK+wnB,IAAI/wnB,KAAKuxnB,IAAI,IAAI9rrB,CAAC,EAAE2vD,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,SAAS,IAAI,WAAW,IAAIqsf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,YAAYsxE,EAAEtxE,EAAE,UAAU/N,EAAE+N,EAAE,eAAe4zH,OAAO/iI,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,YAAY6nE,EAAE,IAAI9O,MAAM,KAAK,SAAS2N,IAAIgD,KAAKD,OAAOC,KAAKywnB,GAAGtynB,EAAE4Y,EAAEvb,KAAKwE,KAAK,IAAI,IAAI,CAAC,SAASpqD,EAAEnQ,EAAE2vD,EAAEjmC,GAAG,OAAOA,EAAE1pB,GAAG2vD,EAAEjmC,EAAE,CAAC,SAASq2C,EAAE//D,EAAE2vD,EAAEjmC,GAAG,OAAO1pB,EAAE2vD,EAAEjmC,GAAG1pB,EAAE2vD,EAAE,CAAC,SAASpC,EAAEvtD,EAAE2vD,GAAG,OAAO3vD,IAAI,GAAG2vD,GAAG,IAAIA,IAAI,EAAE3vD,GAAG,KAAK2vD,IAAI,EAAE3vD,GAAG,GAAG,CAAC,SAAS+8D,EAAE/8D,EAAE2vD,GAAG,OAAO3vD,IAAI,GAAG2vD,GAAG,KAAK3vD,IAAI,GAAG2vD,GAAG,KAAKA,IAAI,EAAE3vD,GAAG,GAAG,CAAC,SAASm3D,EAAEn3D,EAAE2vD,GAAG,OAAO3vD,IAAI,EAAE2vD,GAAG,KAAK3vD,IAAI,EAAE2vD,GAAG,IAAI3vD,IAAI,CAAC,CAAC,SAASsuD,EAAEtuD,EAAE2vD,GAAG,OAAO3vD,IAAI,EAAE2vD,GAAG,KAAK3vD,IAAI,EAAE2vD,GAAG,KAAK3vD,IAAI,EAAE2vD,GAAG,GAAG,CAAC,SAAS5rB,EAAE/jC,EAAE2vD,GAAG,OAAO3vD,IAAI,GAAG2vD,GAAG,KAAKA,IAAI,GAAG3vD,GAAG,GAAGA,IAAI,CAAC,CAAC,SAAS8qE,EAAE9qE,EAAE2vD,GAAG,OAAO3vD,IAAI,GAAG2vD,GAAG,KAAKA,IAAI,GAAG3vD,GAAG,IAAIA,IAAI,EAAE2vD,GAAG,GAAG,CAAC,SAAS7+D,EAAEkP,EAAE2vD,GAAG,OAAO3vD,IAAI,EAAE2vD,IAAI,EAAE,EAAE,CAAC,CAACxB,EAAEoJ,EAAE+Z,GAAG/Z,EAAEzQ,UAAUwT,KAAK,WAAW,OAAOC,KAAK0wnB,IAAI,WAAW1wnB,KAAK2wnB,IAAI,WAAW3wnB,KAAK4wnB,IAAI,WAAW5wnB,KAAK6wnB,IAAI,WAAW7wnB,KAAK8wnB,IAAI,WAAW9wnB,KAAK+wnB,IAAI,WAAW/wnB,KAAKgxnB,IAAI,UAAUhxnB,KAAKixnB,IAAI,WAAWjxnB,KAAKkxnB,IAAI,WAAWlxnB,KAAKmxnB,IAAI,WAAWnxnB,KAAKoxnB,IAAI,WAAWpxnB,KAAKqxnB,IAAI,WAAWrxnB,KAAKsxnB,IAAI,WAAWtxnB,KAAKuxnB,IAAI,UAAUvxnB,KAAKwxnB,IAAI,WAAWxxnB,KAAKyxnB,IAAI,UAAUzxnB,IAAI,EAAEhD,EAAEzQ,UAAUi4gB,QAAQ,SAAS/+jB,GAAG,IAAI,IAAI2vD,EAAE4K,KAAKywnB,GAAGthqB,EAAE,EAAE6wC,KAAK0wnB,IAAI98nB,EAAE,EAAEoM,KAAK2wnB,IAAI55mB,EAAE,EAAE/W,KAAK4wnB,IAAIl5rB,EAAE,EAAEsoE,KAAK6wnB,IAAI1ynB,EAAE,EAAE6B,KAAK8wnB,IAAI9znB,EAAE,EAAEgD,KAAK+wnB,IAAI7+nB,EAAE,EAAE8N,KAAKgxnB,IAAIlunB,EAAE,EAAE9C,KAAKixnB,IAAIhyX,EAAE,EAAEj/P,KAAKkxnB,IAAI76lB,EAAE,EAAEr2B,KAAKmxnB,IAAIv0f,EAAE,EAAE58H,KAAKoxnB,IAAI/6rB,EAAE,EAAE2pE,KAAKqxnB,IAAI9xX,EAAE,EAAEv/P,KAAKsxnB,IAAIxhb,EAAE,EAAE9vM,KAAKuxnB,IAAInyX,EAAE,EAAEp/P,KAAKwxnB,IAAI1yX,EAAE,EAAE9+P,KAAKyxnB,IAAIrzoB,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAEgX,EAAEhX,GAAG34C,EAAEk/oB,YAAY,EAAEvmmB,GAAGgX,EAAEhX,EAAE,GAAG34C,EAAEk/oB,YAAY,EAAEvmmB,EAAE,GAAG,KAAKA,EAAE,IAAIA,GAAG,EAAE,CAAC,IAAIohR,EAAEpqQ,EAAEhX,EAAE,IAAIimlB,EAAEjvkB,EAAEhX,EAAE,GAAG,GAAG6qT,EAAErsS,EAAE4iQ,EAAE6kU,GAAGC,EAAEvwkB,EAAEswkB,EAAE7kU,GAAGR,EAAEx1R,EAAEg2R,EAAEpqQ,EAAEhX,EAAE,GAAGimlB,EAAEjvkB,EAAEhX,EAAE,EAAE,IAAI8gR,EAAE3uP,EAAE8zjB,EAAE7kU,GAAG+kU,EAAEnvkB,EAAEhX,EAAE,IAAI+gR,EAAE/pQ,EAAEhX,EAAE,GAAG,GAAGihR,EAAEjqQ,EAAEhX,EAAE,IAAI64Q,EAAE7hQ,EAAEhX,EAAE,GAAG,GAAG4+K,EAAEsna,EAAEnlU,EAAE,EAAEn6O,EAAEikR,EAAEs7R,EAAEhuoB,EAAEymO,EAAEsna,GAAG,EAAEt/iB,GAAGA,EAAEA,EAAEg6O,EAAEzoU,EAAEymO,EAAEA,EAAEkiG,EAAE,EAAEA,GAAG,GAAGG,EAAE9oU,EAAEymO,EAAEA,EAAEi6F,EAAE,EAAEA,GAAG,EAAE7hQ,EAAEhX,GAAG4mC,EAAE5vB,EAAEhX,EAAE,GAAG4+K,CAAC,CAAC,IAAI,IAAIuta,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,CAACvljB,EAAE5vB,EAAEm1kB,GAAGvta,EAAE5nK,EAAEm1kB,EAAE,GAAG,IAAIzta,EAAEt3J,EAAEr2C,EAAEykC,EAAEmjB,GAAG44S,EAAEnqT,EAAEy5P,EAAE5oO,EAAEumG,GAAGlmK,EAAEs8B,EAAE7jC,EAAE8vS,GAAG76L,EAAEpxE,EAAEisQ,EAAE9vS,GAAG8jW,EAAEzwT,EAAErE,EAAEohQ,GAAG36T,EAAE49D,EAAE+8P,EAAEphQ,GAAGmhQ,EAAEhpU,EAAEi0oB,GAAG1rU,EAAEvoU,EAAEi0oB,EAAE,GAAG1iO,EAAEjyZ,EAAEuoD,EAAEnB,EAAE9K,GAAG0sQ,EAAEhpT,EAAE2pT,EAAEzvD,EAAEsvD,GAAGs1U,EAAE51U,EAAEl6T,EAAE,EAAEm6T,EAAEj8P,EAAEmwT,EAAE18X,EAAEm+oB,EAAE51U,GAAG,EAAEC,GAAGA,GAAGA,EAAEA,EAAE8oG,EAAEtxa,EAAEm+oB,EAAEA,EAAE91U,EAAE,EAAEA,GAAG,GAAGU,EAAE/oU,EAAEm+oB,EAAEA,EAAE71U,EAAE,EAAEA,GAAG,GAAG75O,EAAEzuF,EAAEm+oB,EAAEA,EAAE13a,EAAE,EAAEA,GAAG,EAAE,IAAI0mG,GAAGt/L,EAAEurP,EAAE,EAAE28C,GAAG51Y,EAAEomM,EAAEvmO,EAAEmtU,GAAGt/L,GAAG,EAAEthE,EAAE5Q,EAAE4sQ,EAAEM,EAAEltQ,EAAE8K,EAAEoiQ,EAAEtvD,EAAE9yM,EAAEmB,EAAE2xM,EAAEyvD,EAAEphQ,EAAEzmE,EAAEqnU,EAAExoU,EAAEgpU,EAAElpU,EAAEq+oB,EAAE,EAAEr+oB,GAAG,EAAEqB,EAAEq/E,EAAE1gF,EAAEumM,EAAE7lH,EAAEnjB,EAAEgpI,EAAEvmG,EAAEziC,EAAEzkC,EAAEknE,EAAE4oO,EAAE9vS,EAAE4vS,EAAEutG,GAAG/1a,EAAE0oU,EAAEy1U,EAAEhxU,GAAG,EAAEgxU,GAAG,CAAC,CAAC10kB,KAAKkxnB,IAAIlxnB,KAAKkxnB,IAAIjyX,EAAE,EAAEj/P,KAAKmxnB,IAAInxnB,KAAKmxnB,IAAI96lB,EAAE,EAAEr2B,KAAKoxnB,IAAIpxnB,KAAKoxnB,IAAIx0f,EAAE,EAAE58H,KAAKqxnB,IAAIrxnB,KAAKqxnB,IAAIh7rB,EAAE,EAAE2pE,KAAKsxnB,IAAItxnB,KAAKsxnB,IAAI/xX,EAAE,EAAEv/P,KAAKuxnB,IAAIvxnB,KAAKuxnB,IAAIzhb,EAAE,EAAE9vM,KAAKwxnB,IAAIxxnB,KAAKwxnB,IAAIpyX,EAAE,EAAEp/P,KAAKyxnB,IAAIzxnB,KAAKyxnB,IAAI3yX,EAAE,EAAE9+P,KAAK0wnB,IAAI1wnB,KAAK0wnB,IAAIvhqB,EAAE54B,EAAEypE,KAAKkxnB,IAAIjyX,GAAG,EAAEj/P,KAAK2wnB,IAAI3wnB,KAAK2wnB,IAAI/8nB,EAAEr9D,EAAEypE,KAAKmxnB,IAAI96lB,GAAG,EAAEr2B,KAAK4wnB,IAAI5wnB,KAAK4wnB,IAAI75mB,EAAExgF,EAAEypE,KAAKoxnB,IAAIx0f,GAAG,EAAE58H,KAAK6wnB,IAAI7wnB,KAAK6wnB,IAAIn5rB,EAAEnB,EAAEypE,KAAKqxnB,IAAIh7rB,GAAG,EAAE2pE,KAAK8wnB,IAAI9wnB,KAAK8wnB,IAAI3ynB,EAAE5nE,EAAEypE,KAAKsxnB,IAAI/xX,GAAG,EAAEv/P,KAAK+wnB,IAAI/wnB,KAAK+wnB,IAAI/znB,EAAEzmE,EAAEypE,KAAKuxnB,IAAIzhb,GAAG,EAAE9vM,KAAKgxnB,IAAIhxnB,KAAKgxnB,IAAI9+nB,EAAE37D,EAAEypE,KAAKwxnB,IAAIpyX,GAAG,EAAEp/P,KAAKixnB,IAAIjxnB,KAAKixnB,IAAInunB,EAAEvsE,EAAEypE,KAAKyxnB,IAAI3yX,GAAG,CAAC,EAAE9hQ,EAAEzQ,UAAU0kkB,MAAM,WAAW,IAAIxrnB,EAAE/N,EAAE4hI,YAAY,IAAI,SAASlkE,EAAEA,EAAEjmC,EAAEykC,GAAGnuD,EAAE+/oB,aAAapwlB,EAAExB,GAAGnuD,EAAE+/oB,aAAar2nB,EAAEykC,EAAE,EAAE,CAAC,OAAOwB,EAAE4K,KAAK0wnB,IAAI1wnB,KAAKkxnB,IAAI,GAAG97nB,EAAE4K,KAAK2wnB,IAAI3wnB,KAAKmxnB,IAAI,GAAG/7nB,EAAE4K,KAAK4wnB,IAAI5wnB,KAAKoxnB,IAAI,IAAIh8nB,EAAE4K,KAAK6wnB,IAAI7wnB,KAAKqxnB,IAAI,IAAIj8nB,EAAE4K,KAAK8wnB,IAAI9wnB,KAAKsxnB,IAAI,IAAIl8nB,EAAE4K,KAAK+wnB,IAAI/wnB,KAAKuxnB,IAAI,IAAIn8nB,EAAE4K,KAAKgxnB,IAAIhxnB,KAAKwxnB,IAAI,IAAIp8nB,EAAE4K,KAAKixnB,IAAIjxnB,KAAKyxnB,IAAI,IAAIhsrB,CAAC,EAAE2vD,EAAE8jE,QAAQl8D,CAAC,EAAE,CAAC,SAAS,IAAIqsf,SAAS,IAAI,cAAc,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQniD,EAAE,IAAInjB,EAAEnuD,EAAE,UAAUkwnB,aAAa,SAAS5+iB,IAAInjB,EAAE4H,KAAKwE,KAAK,CAACv6D,EAAE,WAAFA,CAAcsxE,EAAEnjB,GAAGmjB,EAAEmqlB,SAASz7pB,EAAE,+BAA+BsxE,EAAE6qkB,SAASn8oB,EAAE,+BAA+BsxE,EAAE47iB,OAAOltnB,EAAE,6BAA6BsxE,EAAE66iB,UAAUnsnB,EAAE,gCAAgCsxE,EAAE8vmB,YAAYphrB,EAAE,kCAAkCsxE,EAAE6vmB,OAAO7vmB,EAAEA,EAAExqB,UAAU6sB,KAAK,SAAS3zE,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAK,SAAS+W,EAAE3hB,GAAG3vD,EAAE+qH,WAAU,IAAK/qH,EAAE2yK,MAAMhjH,IAAIjmC,EAAEm7C,OAAOn7C,EAAEm7C,OAAO,CAAC,SAAS5yE,IAAIy3B,EAAEwypB,UAAUxypB,EAAEq7C,QAAQr7C,EAAEq7C,QAAQ,CAACr7C,EAAE+wV,GAAG,OAAOnpS,GAAGtxE,EAAEy6W,GAAG,QAAQxoX,GAAG+N,EAAEisrB,UAAUt8nB,IAAG,IAAKA,EAAE7jE,MAAM49B,EAAE+wV,GAAG,MAAM/hT,GAAGhvC,EAAE+wV,GAAG,QAAQljT,IAAI,IAAI1mE,GAAE,EAAG,SAAS6nE,IAAI7nE,IAAIA,GAAE,EAAGmP,EAAElU,MAAM,CAAC,SAASyrE,IAAI1mE,IAAIA,GAAE,EAAG,mBAAmBmP,EAAEmpP,SAASnpP,EAAEmpP,UAAU,CAAC,SAASh5O,EAAEnQ,GAAG,GAAG+/D,IAAI,IAAI5R,EAAEyomB,cAAcr8lB,KAAK,SAAS,MAAMv6D,CAAC,CAAC,SAAS+/D,IAAIr2C,EAAE2oX,eAAe,OAAO/gU,GAAGtxE,EAAEqyY,eAAe,QAAQpgZ,GAAGy3B,EAAE2oX,eAAe,MAAM35U,GAAGhvC,EAAE2oX,eAAe,QAAQ96U,GAAG7tC,EAAE2oX,eAAe,QAAQliY,GAAGnQ,EAAEqyY,eAAe,QAAQliY,GAAGuZ,EAAE2oX,eAAe,MAAMtyU,GAAGr2C,EAAE2oX,eAAe,QAAQtyU,GAAG//D,EAAEqyY,eAAe,QAAQtyU,EAAE,CAAC,OAAOr2C,EAAE+wV,GAAG,QAAQtqW,GAAGnQ,EAAEy6W,GAAG,QAAQtqW,GAAGuZ,EAAE+wV,GAAG,MAAM16S,GAAGr2C,EAAE+wV,GAAG,QAAQ16S,GAAG//D,EAAEy6W,GAAG,QAAQ16S,GAAG//D,EAAE47mB,KAAK,OAAOlylB,GAAG1pB,CAAC,CAAC,EAAE,CAACo+G,OAAO,IAAIwlc,SAAS,IAAI,4BAA4B,IAAI,iCAAiC,IAAI,8BAA8B,IAAI,+BAA+B,IAAI,8BAA8B,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQzzH,EAAE,0BAA0B,EAAE,CAAC,0BAA0B,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,wBAAwBsxE,EAAE/8D,OAAOs+B,MAAM,SAAS7yC,GAAG,IAAI2vD,EAAE,GAAG,IAAI,IAAIjmC,KAAK1pB,EAAE2vD,EAAEr6D,KAAKo0B,GAAG,OAAOimC,CAAC,EAAEA,EAAE8jE,QAAQlmE,EAAE,IAAIt7D,EAAE+N,EAAE,gBAAgB/N,EAAE2xjB,SAAS5jjB,EAAE,YAAY,IAAInP,EAAEmP,EAAE,sBAAsB04D,EAAE14D,EAAE,sBAAsB/N,EAAE2xjB,SAASr2f,EAAE18D,GAAG,IAAI,IAAI0mE,EAAE+Z,EAAE5Y,EAAE5R,WAAW32C,EAAE,EAAEA,EAAEonD,EAAErlE,OAAOie,IAAI,CAAC,IAAI4vD,EAAExI,EAAEpnD,GAAGo9C,EAAEzG,UAAUiZ,KAAKxS,EAAEzG,UAAUiZ,GAAGrH,EAAE5R,UAAUiZ,GAAG,CAAC,SAASxS,EAAEvtD,GAAG,KAAKu6D,gBAAgBhN,GAAG,OAAO,IAAIA,EAAEvtD,GAAGnP,EAAEklE,KAAKwE,KAAKv6D,GAAG04D,EAAE3C,KAAKwE,KAAKv6D,GAAGA,IAAG,IAAKA,EAAEk8qB,WAAW3hnB,KAAK2hnB,UAAS,GAAIl8qB,IAAG,IAAKA,EAAE+qH,WAAWxwD,KAAKwwD,UAAS,GAAIxwD,KAAK0hnB,eAAc,EAAGj8qB,IAAG,IAAKA,EAAEi8qB,gBAAgB1hnB,KAAK0hnB,eAAc,GAAI1hnB,KAAKgG,KAAK,MAAMxD,EAAE,CAAC,SAASA,IAAIxC,KAAK0hnB,eAAe1hnB,KAAK4hnB,eAAevN,OAAOzgnB,EAAEykY,SAASz7X,EAAEoD,KAAK,CAAC,SAASpD,EAAEn3D,GAAGA,EAAElU,KAAK,CAACyoB,OAAOo6E,eAAephC,EAAEzG,UAAU,wBAAwB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,eAAeC,aAAa,IAAI7nqB,OAAOo6E,eAAephC,EAAEzG,UAAU,YAAY,CAACmU,IAAI,WAAW,YAAO,IAASV,KAAK+hnB,qBAAgB,IAAS/hnB,KAAK4hnB,gBAAiB5hnB,KAAK+hnB,eAAe1td,WAAWr0J,KAAK4hnB,eAAevtd,SAAU,EAAEvrJ,IAAI,SAASrjE,QAAG,IAASu6D,KAAK+hnB,qBAAgB,IAAS/hnB,KAAK4hnB,iBAAiB5hnB,KAAK+hnB,eAAe1td,UAAU5uN,EAAEu6D,KAAK4hnB,eAAevtd,UAAU5uN,EAAE,IAAIutD,EAAEzG,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAG4K,KAAKjlE,KAAK,MAAMilE,KAAKzuE,MAAMqiE,EAAEykY,SAASjjY,EAAE3vD,EAAE,CAAC,EAAE,CAAC,qBAAqB,IAAI,qBAAqB,IAAI,eAAe,IAAI4jjB,SAAS,IAAI,uBAAuB,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQxhI,EAAE,IAAIk8D,EAAEnuD,EAAE,uBAAuBsxE,EAAEtxE,EAAE,gBAAgB,SAAS/N,EAAE+N,GAAG,KAAKu6D,gBAAgBtoE,GAAG,OAAO,IAAIA,EAAE+N,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,EAAE,CAACsxE,EAAEsye,SAAS5jjB,EAAE,YAAYsxE,EAAEsye,SAAS3xjB,EAAEk8D,GAAGl8D,EAAE60D,UAAU85lB,WAAW,SAAS5gpB,EAAE2vD,EAAEjmC,GAAGA,EAAE,KAAK1pB,EAAE,CAAC,EAAE,CAAC,sBAAsB,IAAI,eAAe,IAAI4jjB,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,IAAG,SAAUA,EAAEykC,GAAG,IAAImjB,EAAEtxE,EAAE,wBAAwB2vD,EAAE8jE,QAAQp2D,EAAE,IAAIprE,EAAEpB,EAAEmP,EAAE,WAAWq9D,EAAEk/mB,cAAc9vnB,EAAEzsD,EAAE,UAAUkwnB,aAAa,IAAIx3jB,EAAE,SAAS14D,EAAE2vD,GAAG,OAAO3vD,EAAEimN,UAAUt2J,GAAGz9D,MAAM,EAAEqlE,EAAEv3D,EAAE,6BAA6BmQ,EAAEnQ,EAAE,eAAe4zH,OAAO7zD,EAAE5R,EAAE4lE,YAAY,WAAW,EAAMxmE,EAAEvtD,EAAE,gBAAgButD,EAAEq2f,SAAS5jjB,EAAE,YAAY,IAAI+8D,EAAE/8D,EAAE,QAAQm3D,OAAE,EAAOA,EAAE4F,GAAGA,EAAEy/mB,SAASz/mB,EAAEy/mB,SAAS,UAAU,WAAW,EAAE,IAAIlunB,EAAEvqB,EAAE/jC,EAAE,iCAAiC8qE,EAAE9qE,EAAE,8BAA8ButD,EAAEq2f,SAASvmf,EAAE9F,GAAG,IAAIzmE,EAAE,CAAC,QAAQ,QAAQ,UAAU,QAAQ,UAAU,SAAS27D,EAAEkD,EAAEjmC,GAAGimC,EAAEA,GAAG,CAAC,EAAE,IAAIxB,EAAEzkC,aAAaz3B,EAAEA,GAAG+N,EAAE,qBAAqBu6D,KAAKs8lB,aAAalnmB,EAAEknmB,WAAW1omB,IAAIoM,KAAKs8lB,WAAWt8lB,KAAKs8lB,cAAclnmB,EAAEs8jB,oBAAoB,IAAI36iB,EAAE3hB,EAAEysnB,cAAcvrrB,EAAE8+D,EAAEu8nB,sBAAsBxznB,EAAE6B,KAAKs8lB,WAAW,GAAG,MAAMt8lB,KAAK6hnB,cAAc9qmB,GAAG,IAAIA,EAAEA,EAAEnjB,IAAIt9D,GAAG,IAAIA,GAAGA,EAAE6nE,EAAE6B,KAAK6hnB,cAAcpxrB,KAAKC,MAAMsvE,KAAK6hnB,eAAe7hnB,KAAK7uC,OAAO,IAAIqY,EAAEw2B,KAAKroE,OAAO,EAAEqoE,KAAK0yjB,MAAM,KAAK1yjB,KAAKwinB,WAAW,EAAExinB,KAAKyinB,QAAQ,KAAKzinB,KAAKq0mB,OAAM,EAAGr0mB,KAAKo/lB,YAAW,EAAGp/lB,KAAK0inB,SAAQ,EAAG1inB,KAAK2inB,MAAK,EAAG3inB,KAAK4inB,cAAa,EAAG5inB,KAAK6inB,iBAAgB,EAAG7inB,KAAK8inB,mBAAkB,EAAG9inB,KAAK+inB,iBAAgB,EAAG/inB,KAAKq0J,WAAU,EAAGr0J,KAAKkjnB,gBAAgB9tnB,EAAE8tnB,iBAAiB,OAAOljnB,KAAKmjnB,WAAW,EAAEnjnB,KAAKojnB,aAAY,EAAGpjnB,KAAKu/lB,QAAQ,KAAKv/lB,KAAK+hjB,SAAS,KAAK3sjB,EAAE2sjB,WAAWhujB,IAAIA,EAAEtuD,EAAE,mBAAmBsgpB,eAAe/llB,KAAKu/lB,QAAQ,IAAIxrmB,EAAEqB,EAAE2sjB,UAAU/hjB,KAAK+hjB,SAAS3sjB,EAAE2sjB,SAAS,CAAC,SAASj/iB,EAAE1N,GAAG,GAAG19D,EAAEA,GAAG+N,EAAE,sBAAsBu6D,gBAAgB8C,GAAG,OAAO,IAAIA,EAAE1N,GAAG4K,KAAK+hnB,eAAe,IAAI7vnB,EAAEkD,EAAE4K,MAAMA,KAAK2hnB,UAAS,EAAGvsnB,IAAI,mBAAmBA,EAAE2rjB,OAAO/gjB,KAAKqsmB,MAAMj3mB,EAAE2rjB,MAAM,mBAAmB3rjB,EAAEw5L,UAAU5uL,KAAKqjnB,SAASjunB,EAAEw5L,UAAU5xL,EAAExB,KAAKwE,KAAK,CAAC,SAASi/P,EAAEx5T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,IAAIr/E,EAAEpB,EAAEmP,EAAEs8qB,eAAkzB,OAAnyB,OAAO3snB,GAAG9+D,EAAEosrB,SAAQ,EAAG,SAASj9qB,EAAE2vD,GAAG,IAAGA,EAAEi/mB,MAAL,CAAkB,GAAGj/mB,EAAEmqmB,QAAQ,CAAC,IAAIpwoB,EAAEimC,EAAEmqmB,QAAQhuqB,MAAM49B,GAAGA,EAAEx3B,SAASy9D,EAAEjkC,OAAOp2B,KAAKo0B,GAAGimC,EAAEz9D,QAAQy9D,EAAEknmB,WAAW,EAAEntoB,EAAEx3B,OAAO,CAACy9D,EAAEi/mB,OAAM,EAAGh+qB,EAAEoP,EAApH,CAAsH,CAArJ,CAAuJA,EAAEnP,KAAKygF,IAAIr/E,EAAE,SAAS+N,EAAE2vD,GAAG,IAAIjmC,EAA4IykC,EAAE,OAA5IA,EAAEwB,EAAEx/C,EAAE+kH,SAAS/mE,IAAIA,aAAa4R,GAAG,iBAAiBpQ,QAAG,IAASA,GAAG3vD,EAAE62pB,aAAantoB,EAAE,IAAI6hG,UAAU,oCAAiD7hG,CAAC,CAAxK,CAA0K74B,EAAE8+D,IAAI19D,EAAE+N,EAAE47mB,KAAK,QAAQ3pnB,GAAGpB,EAAEgmqB,YAAYlnmB,GAAGA,EAAEz9D,OAAO,GAAG,iBAAiBy9D,GAAG9+D,EAAEgmqB,YAAYtipB,OAAOk3G,eAAe97D,KAAKx/C,EAAE22C,YAAY6I,EAAE,SAAS3vD,GAAG,OAAOmQ,EAAEwP,KAAK3f,EAAE,CAA5B,CAA8B2vD,IAAIxB,EAAEt9D,EAAE8oqB,WAAW35pB,EAAE47mB,KAAK,QAAQ,IAAIxtmB,MAAM,qCAAqCwiF,EAAE5wF,EAAEnP,EAAE8+D,GAAE,GAAI9+D,EAAE+9qB,MAAM5uqB,EAAE47mB,KAAK,QAAQ,IAAIxtmB,MAAM,6BAA6Bvd,EAAEosrB,SAAQ,EAAGpsrB,EAAEipqB,UAAUpwoB,GAAGimC,EAAE9+D,EAAEipqB,QAAQnnf,MAAMhjH,GAAG9+D,EAAEgmqB,YAAY,IAAIlnmB,EAAEz9D,OAAO0+F,EAAE5wF,EAAEnP,EAAE8+D,GAAE,GAAI06M,EAAErqQ,EAAEnP,IAAI+/F,EAAE5wF,EAAEnP,EAAE8+D,GAAE,KAAMxB,IAAIt9D,EAAEosrB,SAAQ,IAAY,SAASj9qB,GAAG,OAAOA,EAAE4uqB,QAAQ5uqB,EAAEm9qB,cAAcn9qB,EAAE9N,OAAO8N,EAAEo8qB,eAAe,IAAIp8qB,EAAE9N,OAAO,CAApF,CAAsFrB,EAAE,CAAC,SAAS+/F,EAAE5wF,EAAE2vD,EAAEjmC,EAAEykC,GAAGwB,EAAEqtnB,SAAS,IAAIrtnB,EAAEz9D,SAASy9D,EAAEutnB,MAAMl9qB,EAAE47mB,KAAK,OAAOlylB,GAAG1pB,EAAEs7mB,KAAK,KAAK3rjB,EAAEz9D,QAAQy9D,EAAEknmB,WAAW,EAAEntoB,EAAEx3B,OAAOi8D,EAAEwB,EAAEjkC,OAAOh6B,QAAQg4B,GAAGimC,EAAEjkC,OAAOp2B,KAAKo0B,GAAGimC,EAAEwtnB,cAAcvsrB,EAAEoP,IAAIqqQ,EAAErqQ,EAAE2vD,EAAE,CAAwyB,SAASwnI,EAAEn3L,EAAE2vD,GAAG,OAAO3vD,GAAG,GAAG,IAAI2vD,EAAEz9D,QAAQy9D,EAAEi/mB,MAAM,EAAEj/mB,EAAEknmB,WAAW,EAAE72pB,GAAGA,EAAE2vD,EAAEqtnB,SAASrtnB,EAAEz9D,OAAOy9D,EAAEjkC,OAAO8rH,KAAK7zH,KAAKzxB,OAAOy9D,EAAEz9D,QAAQ8N,EAAE2vD,EAAEysnB,gBAAgBzsnB,EAAEysnB,cAAc,SAASp8qB,GAAG,OAAOA,GAAG,QAAQA,EAAE,SAASA,IAAIA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,EAAEA,GAAGA,IAAI,GAAGA,KAAKA,CAAC,CAAjG,CAAmGA,IAAIA,GAAG2vD,EAAEz9D,OAAO8N,EAAE2vD,EAAEi/mB,MAAMj/mB,EAAEz9D,QAAQy9D,EAAEwtnB,cAAa,EAAG,GAAG,CAAC,SAASvsrB,EAAEoP,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAe3snB,EAAEwtnB,cAAa,EAAGxtnB,EAAEytnB,kBAAkBjmnB,EAAE,eAAexH,EAAEqtnB,SAASrtnB,EAAEytnB,iBAAgB,EAAGztnB,EAAEutnB,KAAK5rmB,EAAEshX,SAAS94H,EAAE95T,GAAG85T,EAAE95T,GAAG,CAAC,SAAS85T,EAAE95T,GAAGm3D,EAAE,iBAAiBn3D,EAAE47mB,KAAK,YAAY7hT,EAAE/5T,EAAE,CAAC,SAASqqQ,EAAErqQ,EAAE2vD,GAAGA,EAAEgunB,cAAchunB,EAAEgunB,aAAY,EAAGrsmB,EAAEshX,SAASj5H,EAAE35T,EAAE2vD,GAAG,CAAC,SAASgqQ,EAAE35T,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAEimC,EAAEz9D,QAAQy9D,EAAEstnB,UAAUttnB,EAAEqtnB,UAAUrtnB,EAAEi/mB,OAAOj/mB,EAAEz9D,OAAOy9D,EAAEysnB,gBAAgBjlnB,EAAE,wBAAwBn3D,EAAEs7mB,KAAK,GAAG5xlB,IAAIimC,EAAEz9D,SAASw3B,EAAEimC,EAAEz9D,OAAOy9D,EAAEgunB,aAAY,CAAE,CAAC,SAAStkX,EAAEr5T,GAAGm3D,EAAE,4BAA4Bn3D,EAAEs7mB,KAAK,EAAE,CAAC,SAAS3ikB,EAAE34C,EAAE2vD,GAAGA,EAAEstnB,UAAU9lnB,EAAE,iBAAiBn3D,EAAEs7mB,KAAK,IAAI3rjB,EAAE2tnB,iBAAgB,EAAG3tnB,EAAE+tnB,WAAW,EAAE19qB,EAAE47mB,KAAK,UAAU7hT,EAAE/5T,GAAG2vD,EAAEqtnB,UAAUrtnB,EAAEstnB,SAASj9qB,EAAEs7mB,KAAK,EAAE,CAAC,SAASvhT,EAAE/5T,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAe,IAAInlnB,EAAE,OAAOxH,EAAEqtnB,SAASrtnB,EAAEqtnB,SAAS,OAAOh9qB,EAAEs7mB,SAAS,CAAC,SAASsjB,EAAE5+nB,EAAE2vD,GAAG,OAAO,IAAIA,EAAEz9D,OAAO,MAAMy9D,EAAEknmB,WAAWntoB,EAAEimC,EAAEjkC,OAAOoyC,SAAS99D,GAAGA,GAAG2vD,EAAEz9D,QAAQw3B,EAAEimC,EAAEmqmB,QAAQnqmB,EAAEjkC,OAAO2Z,KAAK,IAAI,IAAIsqB,EAAEjkC,OAAOx5B,OAAOy9D,EAAEjkC,OAAO8rH,KAAK7zH,KAAKgsC,EAAEjkC,OAAOmrB,OAAO8Y,EAAEz9D,QAAQy9D,EAAEjkC,OAAOo+C,SAASpgD,EAAE,SAAS1pB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAA2rB,OAAzrBnuD,EAAE2vD,EAAE6nF,KAAK7zH,KAAKzxB,QAAQi8D,EAAEwB,EAAE6nF,KAAK7zH,KAAK+pC,MAAM,EAAE1tD,GAAG2vD,EAAE6nF,KAAK7zH,KAAKgsC,EAAE6nF,KAAK7zH,KAAK+pC,MAAM1tD,IAAImuD,EAAEnuD,IAAI2vD,EAAE6nF,KAAK7zH,KAAKzxB,OAAOy9D,EAAEmO,QAAQp0C,EAAE,SAAS1pB,EAAE2vD,GAAG,IAAIjmC,EAAEimC,EAAE6nF,KAAKrpF,EAAE,EAAEmjB,EAAE5nD,EAAE/F,KAAiB,IAAZ3jB,GAAGsxE,EAAEp/E,OAAYw3B,EAAEA,EAAEqmC,MAAM,CAAC,IAAI99D,EAAEy3B,EAAE/F,KAAK9yB,EAAEmP,EAAE/N,EAAEC,OAAOD,EAAEC,OAAO8N,EAAE,GAAGnP,IAAIoB,EAAEC,OAAOo/E,GAAGr/E,EAAEq/E,GAAGr/E,EAAEy7D,MAAM,EAAE1tD,GAAG,KAAKA,GAAGnP,GAAG,CAACA,IAAIoB,EAAEC,UAAUi8D,EAAEzkC,EAAEqmC,KAAKJ,EAAE6nF,KAAK9tH,EAAEqmC,KAAKJ,EAAE6nF,KAAK7nF,EAAE07gB,KAAK,OAAO17gB,EAAE6nF,KAAK9tH,EAAEA,EAAE/F,KAAK1xB,EAAEy7D,MAAM78D,IAAI,KAAK,GAAGs9D,CAAC,CAAC,OAAOwB,EAAEz9D,QAAQi8D,EAAEmjB,CAAC,CAAhR,CAAkRtxE,EAAE2vD,GAAG,SAAS3vD,EAAE2vD,GAAG,IAAIjmC,EAAEvZ,EAAE0jH,YAAY7zH,GAAGmuD,EAAEwB,EAAE6nF,KAAKlmE,EAAE,EAAkC,IAAhCnjB,EAAExqC,KAAKmrC,KAAKplC,GAAG1pB,GAAGmuD,EAAExqC,KAAKzxB,OAAYi8D,EAAEA,EAAE4B,MAAM,CAAC,IAAI99D,EAAEk8D,EAAExqC,KAAK9yB,EAAEmP,EAAE/N,EAAEC,OAAOD,EAAEC,OAAO8N,EAAE,GAAG/N,EAAE68D,KAAKplC,EAAEA,EAAEx3B,OAAO8N,EAAE,EAAEnP,GAAG,KAAKmP,GAAGnP,GAAG,CAACA,IAAIoB,EAAEC,UAAUo/E,EAAEnjB,EAAE4B,KAAKJ,EAAE6nF,KAAKrpF,EAAE4B,KAAKJ,EAAE6nF,KAAK7nF,EAAE07gB,KAAK,OAAO17gB,EAAE6nF,KAAKrpF,EAAEA,EAAExqC,KAAK1xB,EAAEy7D,MAAM78D,IAAI,KAAK,GAAGygF,CAAC,CAAC,OAAO3hB,EAAEz9D,QAAQo/E,EAAE5nD,CAAC,CAArS,CAAuS1pB,EAAE2vD,GAAUxB,CAAC,CAAvtB,CAAytBnuD,EAAE2vD,EAAEjkC,OAAOikC,EAAEmqmB,SAASpwoB,GAAG,IAAIA,CAAC,CAAC,SAAS85U,EAAExjW,GAAG,IAAI2vD,EAAE3vD,EAAEs8qB,eAAe,GAAG3snB,EAAEz9D,OAAO,EAAE,MAAM,IAAIkc,MAAM,8CAA8CuhD,EAAEgqmB,aAAahqmB,EAAEi/mB,OAAM,EAAGt9lB,EAAEshX,SAASisM,EAAElvkB,EAAE3vD,GAAG,CAAC,SAAS6+nB,EAAE7+nB,EAAE2vD,GAAG3vD,EAAE25pB,YAAY,IAAI35pB,EAAE9N,SAAS8N,EAAE25pB,YAAW,EAAGhqmB,EAAEusnB,UAAS,EAAGvsnB,EAAEisjB,KAAK,OAAO,CAAC,SAASriT,EAAEv5T,EAAE2vD,GAAG,IAAI,IAAIjmC,EAAE,EAAEykC,EAAEnuD,EAAE9N,OAAOw3B,EAAEykC,EAAEzkC,IAAI,GAAG1pB,EAAE0pB,KAAKimC,EAAE,OAAOjmC,EAAE,OAAO,CAAC,CAA9lGnV,OAAOo6E,eAAetxB,EAAEvW,UAAU,YAAY,CAACmU,IAAI,WAAW,YAAO,IAASV,KAAK+hnB,gBAAgB/hnB,KAAK+hnB,eAAe1td,SAAS,EAAEvrJ,IAAI,SAASrjE,GAAGu6D,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAe1td,UAAU5uN,EAAE,IAAIq9D,EAAEvW,UAAUqiM,QAAQr+K,EAAEq+K,QAAQ9rL,EAAEvW,UAAUg3nB,WAAWhzmB,EAAEizmB,UAAU1gnB,EAAEvW,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAG4K,KAAKjlE,KAAK,MAAMq6D,EAAE3vD,EAAE,EAAEq9D,EAAEvW,UAAUxxD,KAAK,SAAS0K,EAAE2vD,GAAG,IAAIjmC,EAAEykC,EAAEoM,KAAK+hnB,eAAe,OAAOnunB,EAAE0omB,WAAWntoB,GAAE,EAAG,iBAAiB1pB,KAAK2vD,EAAEA,GAAGxB,EAAEsvnB,mBAAmBtvnB,EAAEmujB,WAAWt8mB,EAAEmQ,EAAEwP,KAAK3f,EAAE2vD,GAAGA,EAAE,IAAIjmC,GAAE,GAAI8vS,EAAEj/P,KAAKv6D,EAAE2vD,GAAE,EAAGjmC,EAAE,EAAE2zC,EAAEvW,UAAUp1D,QAAQ,SAASsO,GAAG,OAAOw5T,EAAEj/P,KAAKv6D,EAAE,MAAK,GAAG,EAAG,EAAEq9D,EAAEvW,UAAU8mkB,SAAS,WAAW,OAAM,IAAKrzjB,KAAK+hnB,eAAeU,OAAO,EAAE3/mB,EAAEvW,UAAU6mkB,YAAY,SAASh+jB,GAAG,OAAOrB,IAAIA,EAAEtuD,EAAE,mBAAmBsgpB,eAAe/llB,KAAK+hnB,eAAexiB,QAAQ,IAAIxrmB,EAAEqB,GAAG4K,KAAK+hnB,eAAehgE,SAAS3sjB,EAAE4K,IAAI,EAA0zE8C,EAAEvW,UAAUw0jB,KAAK,SAASt7mB,GAAGm3D,EAAE,OAAOn3D,GAAGA,EAAE8O,SAAS9O,EAAE,IAAI,IAAI2vD,EAAE4K,KAAK+hnB,eAAe5ypB,EAAE1pB,EAAE,GAAG,IAAIA,IAAI2vD,EAAEytnB,iBAAgB,GAAI,IAAIp9qB,GAAG2vD,EAAEwtnB,eAAextnB,EAAEz9D,QAAQy9D,EAAEysnB,eAAezsnB,EAAEi/mB,OAAO,OAAOz3mB,EAAE,qBAAqBxH,EAAEz9D,OAAOy9D,EAAEi/mB,OAAO,IAAIj/mB,EAAEz9D,QAAQy9D,EAAEi/mB,MAAMprU,EAAEjpS,MAAM3pE,EAAE2pE,MAAM,KAAK,GAAG,KAAKv6D,EAAEm3L,EAAEn3L,EAAE2vD,KAAKA,EAAEi/mB,MAAM,OAAO,IAAIj/mB,EAAEz9D,QAAQsxW,EAAEjpS,MAAM,KAAK,IAAIpM,EAAEmjB,EAAE3hB,EAAEwtnB,aAAa,OAAOhmnB,EAAE,gBAAgBma,IAAI,IAAI3hB,EAAEz9D,QAAQy9D,EAAEz9D,OAAO8N,EAAE2vD,EAAEysnB,gBAAgBjlnB,EAAE,6BAA6Bma,GAAE,GAAI3hB,EAAEi/mB,OAAOj/mB,EAAEstnB,QAAQ9lnB,EAAE,mBAAmBma,GAAE,GAAIA,IAAIna,EAAE,WAAWxH,EAAEstnB,SAAQ,EAAGttnB,EAAEutnB,MAAK,EAAG,IAAIvtnB,EAAEz9D,SAASy9D,EAAEwtnB,cAAa,GAAI5inB,KAAKqsmB,MAAMj3mB,EAAEysnB,eAAezsnB,EAAEutnB,MAAK,EAAGvtnB,EAAEstnB,UAAUj9qB,EAAEm3L,EAAEztK,EAAEimC,KAAK,QAAQxB,EAAEnuD,EAAE,EAAE4+nB,EAAE5+nB,EAAE2vD,GAAG,OAAOA,EAAEwtnB,cAAa,EAAGn9qB,EAAE,GAAG2vD,EAAEz9D,QAAQ8N,EAAE,IAAI2vD,EAAEz9D,SAASy9D,EAAEi/mB,QAAQj/mB,EAAEwtnB,cAAa,GAAIzzpB,IAAI1pB,GAAG2vD,EAAEi/mB,OAAOprU,EAAEjpS,OAAO,OAAOpM,GAAGoM,KAAKqhjB,KAAK,OAAOztjB,GAAGA,CAAC,EAAEkP,EAAEvW,UAAU8/mB,MAAM,SAAS5mqB,GAAGu6D,KAAKqhjB,KAAK,QAAQ,IAAIxtmB,MAAM,8BAA8B,EAAEivD,EAAEvW,UAAU6sB,KAAK,SAAS3zE,EAAE2vD,GAAG,IAAIxB,EAAEoM,KAAKtoE,EAAEsoE,KAAK+hnB,eAAe,OAAOrqrB,EAAE8qrB,YAAY,KAAK,EAAE9qrB,EAAEg7nB,MAAMjtnB,EAAE,MAAM,KAAK,EAAE/N,EAAEg7nB,MAAM,CAACh7nB,EAAEg7nB,MAAMjtnB,GAAG,MAAM,QAAQ/N,EAAEg7nB,MAAM33nB,KAAK0K,GAAG/N,EAAE8qrB,YAAY,EAAE5lnB,EAAE,wBAAwBllE,EAAE8qrB,WAAWptnB,GAAG,IAAI4H,EAAI5H,IAAG,IAAKA,EAAE7jE,KAAMkU,IAAI0pB,EAAEs0pB,QAAQh+qB,IAAI0pB,EAAEu0pB,OAAS5gnB,EAAF0C,EAAkY,SAASA,IAAI5I,EAAE,SAASn3D,EAAElU,KAAK,CAACmG,EAAE0nqB,WAAWrolB,EAAEshX,SAASr7X,GAAGpJ,EAAEoS,KAAK,MAAMhJ,GAAGv3D,EAAEy6W,GAAG,UAA9c,SAAStqW,EAAEw/C,EAAEjmC,GAAGytC,EAAE,YAAYxH,IAAIxB,GAAGzkC,IAAG,IAAKA,EAAEw0pB,aAAax0pB,EAAEw0pB,YAAW,EAAG/mnB,EAAE,WAAWn3D,EAAEqyY,eAAe,QAAQvhZ,GAAGkP,EAAEqyY,eAAe,SAAS5lV,GAAGzsD,EAAEqyY,eAAe,QAAQ9kV,GAAGvtD,EAAEqyY,eAAe,QAAQvnU,GAAG9qE,EAAEqyY,eAAe,SAASliY,GAAGg+C,EAAEkkV,eAAe,MAAMtyU,GAAG5R,EAAEkkV,eAAe,MAAMh1U,GAAGlP,EAAEkkV,eAAe,OAAOtuW,GAAGg5B,GAAE,GAAI9qE,EAAEyrrB,YAAY19qB,EAAEm8qB,iBAAiBn8qB,EAAEm8qB,eAAegC,WAAW5wnB,IAAI,IAA6F,IAAIA,EAAE,SAASvtD,GAAG,OAAO,WAAW,IAAI2vD,EAAE3vD,EAAEs8qB,eAAenlnB,EAAE,cAAcxH,EAAE+tnB,YAAY/tnB,EAAE+tnB,YAAY/tnB,EAAE+tnB,aAAa,IAAI/tnB,EAAE+tnB,YAAYhlnB,EAAE14D,EAAE,UAAU2vD,EAAEqtnB,SAAQ,EAAGjjX,EAAE/5T,GAAG,CAAC,CAAnK,CAAqKmuD,GAAGnuD,EAAEy6W,GAAG,QAAQltT,GAAG,IAAIwP,GAAE,EAAOzO,GAAE,EAAG,SAASvqB,EAAE4rB,GAAGwH,EAAE,UAAU7I,GAAE,GAAG,IAAKtuD,EAAE2yK,MAAMhjH,IAAIrB,KAAK,IAAIr8D,EAAE8qrB,YAAY9qrB,EAAEg7nB,QAAQjtnB,GAAG/N,EAAE8qrB,WAAW,IAAI,IAAIxjX,EAAEtnU,EAAEg7nB,MAAMjtnB,MAAM+8D,IAAI5F,EAAE,8BAA8BhJ,EAAEmunB,eAAeoB,YAAYvvnB,EAAEmunB,eAAeoB,aAAapvnB,GAAE,GAAIH,EAAE0W,QAAQ,CAAC,SAASiG,EAAEnb,GAAGwH,EAAE,UAAUxH,GAAG0N,IAAIr9D,EAAEqyY,eAAe,QAAQvnU,GAAG,IAAIpS,EAAE14D,EAAE,UAAUA,EAAE47mB,KAAK,QAAQjsjB,EAAE,CAAC,SAAS7+D,IAAIkP,EAAEqyY,eAAe,SAAS5lV,GAAG4Q,GAAG,CAAC,SAAS5Q,IAAI0K,EAAE,YAAYn3D,EAAEqyY,eAAe,QAAQvhZ,GAAGusE,GAAG,CAAC,SAASA,IAAIlG,EAAE,UAAUhJ,EAAE0/jB,OAAO7tnB,EAAE,CAAC,OAAOmuD,EAAEssT,GAAG,OAAO12U,GAAG,SAAS/jC,EAAE2vD,EAAEjmC,GAAG,GAAG,mBAAmB1pB,EAAEw2pB,gBAAgB,OAAOx2pB,EAAEw2pB,gBAAgB7mmB,EAAEjmC,GAAG1pB,EAAEo5X,SAASp5X,EAAEo5X,QAAQzpU,GAAG9+D,EAAEmP,EAAEo5X,QAAQzpU,IAAI3vD,EAAEo5X,QAAQzpU,GAAGj+D,QAAQg4B,GAAG1pB,EAAEo5X,QAAQzpU,GAAG,CAACjmC,EAAE1pB,EAAEo5X,QAAQzpU,IAAI3vD,EAAEy6W,GAAG9qT,EAAEjmC,EAAE,CAA7L,CAA+L1pB,EAAE,QAAQ8qE,GAAG9qE,EAAEugE,KAAK,QAAQzvE,GAAGkP,EAAEugE,KAAK,SAAS9T,GAAGzsD,EAAE47mB,KAAK,OAAOztjB,GAAGl8D,EAAE+qrB,UAAU7lnB,EAAE,eAAehJ,EAAE4W,UAAU/kE,CAAC,EAAEq9D,EAAEvW,UAAU+mkB,OAAO,SAAS7tnB,GAAG,IAAI2vD,EAAE4K,KAAK+hnB,eAAe5ypB,EAAE,CAACw0pB,YAAW,GAAI,GAAG,IAAIvunB,EAAEotnB,WAAW,OAAOxinB,KAAK,GAAG,IAAI5K,EAAEotnB,WAAW,OAAO/8qB,GAAGA,IAAI2vD,EAAEs9jB,QAAQjtnB,IAAIA,EAAE2vD,EAAEs9jB,OAAOt9jB,EAAEs9jB,MAAM,KAAKt9jB,EAAEotnB,WAAW,EAAEptnB,EAAEqtnB,SAAQ,EAAGh9qB,GAAGA,EAAE47mB,KAAK,SAASrhjB,KAAK7wC,IAAI6wC,KAAK,IAAIv6D,EAAE,CAAC,IAAImuD,EAAEwB,EAAEs9jB,MAAM37iB,EAAE3hB,EAAEotnB,WAAWptnB,EAAEs9jB,MAAM,KAAKt9jB,EAAEotnB,WAAW,EAAEptnB,EAAEqtnB,SAAQ,EAAG,IAAI,IAAI/qrB,EAAE,EAAEA,EAAEq/E,EAAEr/E,IAAIk8D,EAAEl8D,GAAG2pnB,KAAK,SAASrhjB,KAAK7wC,GAAG,OAAO6wC,IAAI,CAAC,IAAI1pE,EAAE0oU,EAAE5pQ,EAAEs9jB,MAAMjtnB,GAAG,OAAO,IAAInP,IAAI8+D,EAAEs9jB,MAAMx7nB,OAAOZ,EAAE,GAAG8+D,EAAEotnB,YAAY,EAAE,IAAIptnB,EAAEotnB,aAAaptnB,EAAEs9jB,MAAMt9jB,EAAEs9jB,MAAM,IAAIjtnB,EAAE47mB,KAAK,SAASrhjB,KAAK7wC,IAAI6wC,IAAI,EAAE8C,EAAEvW,UAAU2zT,GAAG,SAASz6W,EAAE2vD,GAAG,IAAIjmC,EAAE6tC,EAAEzQ,UAAU2zT,GAAG1kT,KAAKwE,KAAKv6D,EAAE2vD,GAAG,GAAG,SAAS3vD,GAAE,IAAKu6D,KAAK+hnB,eAAeU,SAASzinB,KAAKwK,cAAc,GAAG,aAAa/kE,EAAE,CAAC,IAAImuD,EAAEoM,KAAK+hnB,eAAenunB,EAAEwrmB,YAAYxrmB,EAAEkvnB,oBAAoBlvnB,EAAEkvnB,kBAAkBlvnB,EAAEgvnB,cAAa,EAAGhvnB,EAAEivnB,iBAAgB,EAAGjvnB,EAAE8unB,QAAQ9unB,EAAEj8D,QAAQtB,EAAE2pE,MAAM+W,EAAEshX,SAASv5H,EAAE9+P,MAAM,CAAC,OAAO7wC,CAAC,EAAE2zC,EAAEvW,UAAU8qB,YAAYvU,EAAEvW,UAAU2zT,GAAGp9S,EAAEvW,UAAUie,OAAO,WAAW,IAAI/kE,EAAEu6D,KAAK+hnB,eAAe,OAAOt8qB,EAAEg9qB,UAAU7lnB,EAAE,UAAUn3D,EAAEg9qB,SAAQ,EAAG,SAASh9qB,EAAE2vD,GAAGA,EAAE2tnB,kBAAkB3tnB,EAAE2tnB,iBAAgB,EAAGhsmB,EAAEshX,SAASj6Y,EAAE34C,EAAE2vD,GAAG,CAAzE,CAA2E4K,KAAKv6D,IAAIu6D,IAAI,EAAE8C,EAAEvW,UAAU+d,MAAM,WAAW,OAAO1N,EAAE,wBAAwBoD,KAAK+hnB,eAAeU,UAAS,IAAKzinB,KAAK+hnB,eAAeU,UAAU7lnB,EAAE,SAASoD,KAAK+hnB,eAAeU,SAAQ,EAAGzinB,KAAKqhjB,KAAK,UAAUrhjB,IAAI,EAAE8C,EAAEvW,UAAUwsB,KAAK,SAAStzE,GAAG,IAAI2vD,EAAE4K,KAAK7wC,EAAE6wC,KAAK+hnB,eAAenunB,GAAE,EAAG,IAAI,IAAImjB,KAAKtxE,EAAEy6W,GAAG,OAAO,WAAW,GAAGtjT,EAAE,eAAeztC,EAAEowoB,UAAUpwoB,EAAEklpB,MAAM,CAAC,IAAI5uqB,EAAE0pB,EAAEowoB,QAAQhuqB,MAAMkU,GAAGA,EAAE9N,QAAQy9D,EAAEr6D,KAAK0K,EAAE,CAAC2vD,EAAEr6D,KAAK,KAAK,IAAI0K,EAAEy6W,GAAG,QAAQ,SAASnpS,GAAIna,EAAE,gBAAgBztC,EAAEowoB,UAAUxolB,EAAE5nD,EAAEowoB,QAAQnnf,MAAMrhG,IAAI5nD,EAAEmtoB,YAAY,MAAMvllB,IAAK5nD,EAAEmtoB,YAAYvllB,GAAGA,EAAEp/E,UAAUy9D,EAAEr6D,KAAKg8E,KAAKnjB,GAAE,EAAGnuD,EAAE6kE,SAAS,IAAI7kE,OAAE,IAASu6D,KAAK+W,IAAI,mBAAmBtxE,EAAEsxE,KAAK/W,KAAK+W,GAAG,SAAS3hB,GAAG,OAAO,WAAW,OAAO3vD,EAAE2vD,GAAG1S,MAAMj9C,EAAE0jE,UAAU,CAAC,CAA7D,CAA+D4N,IAAI,IAAI,IAAIr/E,EAAE,EAAEA,EAAEnB,EAAEoB,OAAOD,IAAI+N,EAAEy6W,GAAG3pX,EAAEmB,GAAGsoE,KAAKqhjB,KAAK5ua,KAAKzyI,KAAKzpE,EAAEmB,KAAK,OAAOsoE,KAAKqsmB,MAAM,SAASj3mB,GAAGwH,EAAE,gBAAgBxH,GAAGxB,IAAIA,GAAE,EAAGnuD,EAAE+kE,SAAS,EAAExK,IAAI,EAAEhmD,OAAOo6E,eAAetxB,EAAEvW,UAAU,wBAAwB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK+hnB,eAAeF,aAAa,IAAI/+mB,EAAEghnB,UAAUz/C,CAAE,GAAE7okB,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,mBAAmB,IAAI,gCAAgC,IAAI,6BAA6B,IAAI,4BAA4B,IAAI03N,SAAS,IAAI,eAAe,IAAIxmG,OAAO,IAAIwlc,SAAS,IAAIuoI,QAAQ,IAAI,uBAAuB,IAAI,cAAc,IAAI,kBAAkB,IAAIhzB,KAAK,MAAM,IAAI,CAAC,SAASn5pB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ5iI,EAAE,IAAIs9D,EAAEnuD,EAAE,oBAAoBsxE,EAAEtxE,EAAE,gBAAgB,SAAS/N,EAAE+N,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKkknB,gBAAgB/0pB,EAAEg1pB,cAAa,EAAG,IAAIvwnB,EAAEzkC,EAAEi1pB,QAAQ,IAAIxwnB,EAAE,OAAOoM,KAAKqhjB,KAAK,QAAQ,IAAIxtmB,MAAM,yCAAyCsb,EAAEk1pB,WAAW,KAAKl1pB,EAAEi1pB,QAAQ,KAAK,MAAMhvnB,GAAG4K,KAAKjlE,KAAKq6D,GAAGxB,EAAEnuD,GAAG,IAAIsxE,EAAE/W,KAAK+hnB,eAAehrmB,EAAE2rmB,SAAQ,GAAI3rmB,EAAE6rmB,cAAc7rmB,EAAEp/E,OAAOo/E,EAAE8qmB,gBAAgB7hnB,KAAKqsmB,MAAMt1lB,EAAE8qmB,cAAc,CAAC,SAASvrrB,EAAEmP,GAAG,KAAKu6D,gBAAgB1pE,GAAG,OAAO,IAAIA,EAAEmP,GAAGmuD,EAAE4H,KAAKwE,KAAKv6D,GAAGu6D,KAAKkknB,gBAAgB,CAACI,eAAe5srB,EAAE+6M,KAAKzyI,MAAMuknB,eAAc,EAAGJ,cAAa,EAAGC,QAAQ,KAAKC,WAAW,KAAKG,cAAc,MAAMxknB,KAAK+hnB,eAAea,cAAa,EAAG5inB,KAAK+hnB,eAAeY,MAAK,EAAGl9qB,IAAI,mBAAmBA,EAAE5H,YAAYmiE,KAAKqmlB,WAAW5gpB,EAAE5H,WAAW,mBAAmB4H,EAAEk8H,QAAQ3hE,KAAKizjB,OAAOxtnB,EAAEk8H,QAAQ3hE,KAAKkgT,GAAG,YAAY/hT,EAAE,CAAC,SAASA,IAAI,IAAI14D,EAAEu6D,KAAK,mBAAmBA,KAAKizjB,OAAOjzjB,KAAKizjB,QAAQ,SAAS79jB,EAAEjmC,GAAG6tC,EAAEv3D,EAAE2vD,EAAEjmC,EAAE,IAAI6tC,EAAEgD,KAAK,KAAK,KAAK,CAAC,SAAShD,EAAEv3D,EAAE2vD,EAAEjmC,GAAG,GAAGimC,EAAE,OAAO3vD,EAAE47mB,KAAK,QAAQjsjB,GAAG,GAAG,MAAMjmC,GAAG1pB,EAAE1K,KAAKo0B,GAAG1pB,EAAEm8qB,eAAejqrB,OAAO,MAAM,IAAIkc,MAAM,8CAA8C,GAAGpO,EAAEy+qB,gBAAgBC,aAAa,MAAM,IAAItwqB,MAAM,kDAAkD,OAAOpO,EAAE1K,KAAK,KAAK,CAACg8E,EAAEsye,SAAS5jjB,EAAE,YAAYsxE,EAAEsye,SAAS/yjB,EAAEs9D,GAAGt9D,EAAEi2D,UAAUxxD,KAAK,SAAS0K,EAAE2vD,GAAG,OAAO4K,KAAKkknB,gBAAgBK,eAAc,EAAG3wnB,EAAErH,UAAUxxD,KAAKygE,KAAKwE,KAAKv6D,EAAE2vD,EAAE,EAAE9+D,EAAEi2D,UAAU85lB,WAAW,SAAS5gpB,EAAE2vD,EAAEjmC,GAAG,MAAM,IAAItb,MAAM,kCAAkC,EAAEvd,EAAEi2D,UAAUy1lB,OAAO,SAASv8oB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEoM,KAAKkknB,gBAAgB,GAAGtwnB,EAAEwwnB,QAAQj1pB,EAAEykC,EAAEywnB,WAAW5+qB,EAAEmuD,EAAE4wnB,cAAcpvnB,GAAGxB,EAAEuwnB,aAAa,CAAC,IAAIptmB,EAAE/W,KAAK+hnB,gBAAgBnunB,EAAE2wnB,eAAextmB,EAAE6rmB,cAAc7rmB,EAAEp/E,OAAOo/E,EAAE8qmB,gBAAgB7hnB,KAAKqsmB,MAAMt1lB,EAAE8qmB,cAAc,CAAC,EAAEvrrB,EAAEi2D,UAAU8/mB,MAAM,SAAS5mqB,GAAG,IAAI2vD,EAAE4K,KAAKkknB,gBAAgB,OAAO9unB,EAAEivnB,YAAYjvnB,EAAEgvnB,UAAUhvnB,EAAE+unB,cAAc/unB,EAAE+unB,cAAa,EAAGnknB,KAAKqmlB,WAAWjxlB,EAAEivnB,WAAWjvnB,EAAEovnB,cAAcpvnB,EAAEkvnB,iBAAiBlvnB,EAAEmvnB,eAAc,CAAE,EAAEjurB,EAAEi2D,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKpM,EAAErH,UAAU82nB,SAAS7nnB,KAAKwE,KAAKv6D,GAAG,SAASA,GAAG2vD,EAAE3vD,GAAG0pB,EAAEkylB,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC,mBAAmB,IAAI,eAAe,IAAIh4D,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,IAAG,SAAUA,EAAEykC,EAAEmjB,GAAG,IAAIr/E,EAAE+N,EAAE,wBAAwB,SAASnP,EAAEmP,GAAG,IAAI2vD,EAAE4K,KAAKA,KAAKxK,KAAK,KAAKwK,KAAKm1D,MAAM,KAAKn1D,KAAK48lB,OAAO,YAAY,SAASn3pB,EAAE2vD,GAAK,IAAIxB,EAAEnuD,EAAE0vH,MAAmB,IAAb1vH,EAAE0vH,MAAM,KAAUvhE,GAAG,CAAC,IAAImjB,EAAEnjB,EAAEqL,SAAS7J,EAAEqvnB,YAAY1tmB,OAAnF,GAAwFnjB,EAAEA,EAAE4B,IAAI,CAACJ,EAAEsvnB,mBAAmBtvnB,EAAEsvnB,mBAAmBlvnB,KAAK/vD,EAAE2vD,EAAEsvnB,mBAAmBj/qB,CAAC,CAAxK,CAA0K2vD,EAAE3vD,EAAE,CAAC,CAAC2vD,EAAE8jE,QAAQhnE,EAAE,IAAIiM,EAAEnB,GAAG7tC,EAAE26M,SAAS,CAAC,QAAQ,SAAS7yO,QAAQk4B,EAAEi2C,QAAQjS,MAAM,EAAE,KAAK,EAAE4jB,EAAEr/E,EAAE2gc,SAASnmY,EAAEyynB,cAAcpurB,EAAE,IAAIqf,EAAEnQ,EAAE,gBAAgBmQ,EAAEyziB,SAAS5jjB,EAAE,YAAY,IAAkIsuD,EAA9HyR,EAAE,CAACwic,UAAUvigB,EAAE,mBAAmButD,EAAEvtD,EAAE,6BAA6B+8D,EAAE/8D,EAAE,eAAe4zH,OAAOz8D,EAAEhJ,EAAE4lE,YAAY,WAAW,EAAQhwF,EAAE/jC,EAAE,8BAA8B,SAAS8qE,IAAI,CAAC,SAASh6E,EAAE6+D,EAAEjmC,GAAGgvC,EAAEA,GAAG14D,EAAE,oBAAoB2vD,EAAEA,GAAG,CAAC,EAAE,IAAIxB,EAAEzkC,aAAagvC,EAAE6B,KAAKs8lB,aAAalnmB,EAAEknmB,WAAW1omB,IAAIoM,KAAKs8lB,WAAWt8lB,KAAKs8lB,cAAclnmB,EAAE6vnB,oBAAoB,IAAIlumB,EAAE3hB,EAAEysnB,cAAcjsqB,EAAEw/C,EAAEy8nB,sBAAsBrsnB,EAAExF,KAAKs8lB,WAAW,GAAG,MAAMt8lB,KAAK6hnB,cAAc9qmB,GAAG,IAAIA,EAAEA,EAAEnjB,IAAIh+C,GAAG,IAAIA,GAAGA,EAAE4vD,EAAExF,KAAK6hnB,cAAcpxrB,KAAKC,MAAMsvE,KAAK6hnB,eAAe7hnB,KAAKklnB,aAAY,EAAGllnB,KAAK4jnB,WAAU,EAAG5jnB,KAAKmlnB,QAAO,EAAGnlnB,KAAKq0mB,OAAM,EAAGr0mB,KAAKvZ,UAAS,EAAGuZ,KAAKq0J,WAAU,EAAG,IAAIrhK,GAAE,IAAKoC,EAAEgwnB,cAAcplnB,KAAKolnB,eAAepynB,EAAEgN,KAAKkjnB,gBAAgB9tnB,EAAE8tnB,iBAAiB,OAAOljnB,KAAKroE,OAAO,EAAEqoE,KAAKqlnB,SAAQ,EAAGrlnB,KAAKuyjB,OAAO,EAAEvyjB,KAAK2inB,MAAK,EAAG3inB,KAAKslnB,kBAAiB,EAAGtlnB,KAAKulnB,QAAQ,SAAS9/qB,IAAI,SAASA,EAAE2vD,GAAG,IAAIjmC,EAAE1pB,EAAEm8qB,eAAehunB,EAAEzkC,EAAEwzpB,KAAK5rmB,EAAE5nD,EAAEi1pB,QAAQ,GAAG,SAAS3+qB,GAAGA,EAAE4/qB,SAAQ,EAAG5/qB,EAAE2+qB,QAAQ,KAAK3+qB,EAAE9N,QAAQ8N,EAAE+/qB,SAAS//qB,EAAE+/qB,SAAS,CAAC,CAAzE,CAA2Er2pB,GAAGimC,GAAG,SAAS3vD,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,KAAK3hB,EAAEqvnB,UAAUt1pB,GAAGz3B,EAAE2gc,SAASthX,EAAEnjB,GAAGl8D,EAAE2gc,SAAS94H,EAAE95T,EAAE2vD,GAAG3vD,EAAEm8qB,eAAe6D,cAAa,EAAGhgrB,EAAE47mB,KAAK,QAAQztjB,KAAKmjB,EAAEnjB,GAAGnuD,EAAEm8qB,eAAe6D,cAAa,EAAGhgrB,EAAE47mB,KAAK,QAAQztjB,GAAG2rQ,EAAE95T,EAAE2vD,GAAG,CAA3L,CAA6L3vD,EAAE0pB,EAAEykC,EAAEwB,EAAE2hB,OAAO,CAAC,IAAIzgF,EAAEsmM,EAAEztK,GAAG74B,GAAG64B,EAAEojmB,QAAQpjmB,EAAEm2pB,mBAAmBn2pB,EAAEu2pB,iBAAiBrvlB,EAAE5wF,EAAE0pB,GAAGykC,EAAEoJ,EAAEiiQ,EAAEx5T,EAAE0pB,EAAE74B,EAAEygF,GAAGkoP,EAAEx5T,EAAE0pB,EAAE74B,EAAEygF,EAAE,CAAC,CAA5b,CAA8b5nD,EAAE1pB,EAAE,EAAEu6D,KAAKoknB,QAAQ,KAAKpknB,KAAKwlnB,SAAS,EAAExlnB,KAAK0lnB,gBAAgB,KAAK1lnB,KAAK2lnB,oBAAoB,KAAK3lnB,KAAKyknB,UAAU,EAAEzknB,KAAK4lnB,aAAY,EAAG5lnB,KAAKylnB,cAAa,EAAGzlnB,KAAK6lnB,qBAAqB,EAAE7lnB,KAAK0knB,mBAAmB,IAAIpurB,EAAE0pE,KAAK,CAAC,SAAS9N,EAAEkD,GAAG,GAAG+I,EAAEA,GAAG14D,EAAE,sBAAsBsuD,EAAEyH,KAAKtJ,EAAE8N,OAAOA,gBAAgB7B,GAAG,OAAO,IAAIjM,EAAEkD,GAAG4K,KAAK4hnB,eAAe,IAAIrrrB,EAAE6+D,EAAE4K,MAAMA,KAAKwwD,UAAS,EAAGp7D,IAAI,mBAAmBA,EAAEgjH,QAAQp4G,KAAKgilB,OAAO5slB,EAAEgjH,OAAO,mBAAmBhjH,EAAE0wnB,SAAS9lnB,KAAK+lnB,QAAQ3wnB,EAAE0wnB,QAAQ,mBAAmB1wnB,EAAEw5L,UAAU5uL,KAAKqjnB,SAASjunB,EAAEw5L,SAAS,mBAAmBx5L,EAAE2olB,QAAQ/9kB,KAAK89kB,OAAO1olB,EAAE2olB,QAAQ/qlB,EAAEwI,KAAKwE,KAAK,CAAC,SAAS8C,EAAEr9D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,EAAEpB,GAAG8+D,EAAEownB,SAAS5xnB,EAAEwB,EAAEgvnB,QAAQ9trB,EAAE8+D,EAAEiwnB,SAAQ,EAAGjwnB,EAAEutnB,MAAK,EAAGxzpB,EAAE1pB,EAAEsgrB,QAAQhvmB,EAAE3hB,EAAEmwnB,SAAS9/qB,EAAEu8oB,OAAOjrkB,EAAEr/E,EAAE09D,EAAEmwnB,SAASnwnB,EAAEutnB,MAAK,CAAE,CAAC,SAAS1jX,EAAEx5T,EAAE2vD,EAAEjmC,EAAEykC,GAAGzkC,GAAG,SAAS1pB,EAAE2vD,GAAG,IAAIA,EAAEz9D,QAAQy9D,EAAEwunB,YAAYxunB,EAAEwunB,WAAU,EAAGn+qB,EAAE47mB,KAAK,SAAS,CAAzE,CAA2E57mB,EAAE2vD,GAAGA,EAAEqvnB,YAAY7wnB,IAAI2rQ,EAAE95T,EAAE2vD,EAAE,CAAC,SAASihC,EAAE5wF,EAAE2vD,GAAGA,EAAEkwnB,kBAAiB,EAAG,IAAIn2pB,EAAEimC,EAAEswnB,gBAAgB,GAAGjgrB,EAAEsgrB,SAAS52pB,GAAGA,EAAEqmC,KAAK,CAAC,IAAI5B,EAAEwB,EAAEywnB,qBAAqB9umB,EAAE,IAAI1nB,MAAMuE,GAAGl8D,EAAE09D,EAAEsvnB,mBAAmBhtrB,EAAEy9H,MAAMhmG,EAAE,IAAI,IAAIgvC,EAAE,EAAEnB,GAAE,EAAG7tC,GAAG4nD,EAAE5Y,GAAGhvC,EAAEA,EAAE62pB,QAAQhpnB,GAAE,GAAI7tC,EAAEA,EAAEqmC,KAAK2I,GAAG,EAAE4Y,EAAEkvmB,WAAWjpnB,EAAE8F,EAAEr9D,EAAE2vD,GAAE,EAAGA,EAAEz9D,OAAOo/E,EAAE,GAAGr/E,EAAEklqB,QAAQxnmB,EAAEqvnB,YAAYrvnB,EAAEuwnB,oBAAoB,KAAKjurB,EAAE89D,MAAMJ,EAAEsvnB,mBAAmBhtrB,EAAE89D,KAAK99D,EAAE89D,KAAK,MAAMJ,EAAEsvnB,mBAAmB,IAAIpurB,EAAE8+D,GAAGA,EAAEywnB,qBAAqB,CAAC,KAAK,CAAC,KAAK12pB,GAAG,CAAC,IAAIvZ,EAAEuZ,EAAE8gD,MAAMzK,EAAEr2C,EAAE4ylB,SAAS/ujB,EAAE7jC,EAAE8vC,SAAS,GAAG6D,EAAEr9D,EAAE2vD,GAAE,EAAGA,EAAEknmB,WAAW,EAAE1mpB,EAAEje,OAAOie,EAAE4vD,EAAExS,GAAG7jC,EAAEA,EAAEqmC,KAAKJ,EAAEywnB,uBAAuBzwnB,EAAEiwnB,QAAQ,KAAK,CAAC,OAAOl2pB,IAAIimC,EAAEuwnB,oBAAoB,KAAK,CAACvwnB,EAAEswnB,gBAAgBv2pB,EAAEimC,EAAEkwnB,kBAAiB,CAAE,CAAC,SAAS1of,EAAEn3L,GAAG,OAAOA,EAAE0/qB,QAAQ,IAAI1/qB,EAAE9N,QAAQ,OAAO8N,EAAEigrB,kBAAkBjgrB,EAAEghD,WAAWhhD,EAAE4/qB,OAAO,CAAC,SAAShvrB,EAAEoP,EAAE2vD,GAAG3vD,EAAEq4oB,QAAQ,SAAS3unB,GAAGimC,EAAEqvnB,YAAYt1pB,GAAG1pB,EAAE47mB,KAAK,QAAQlylB,GAAGimC,EAAEwwnB,aAAY,EAAGngrB,EAAE47mB,KAAK,aAAa9hT,EAAE95T,EAAE2vD,EAAE,GAAG,CAAC,SAASmqQ,EAAE95T,EAAE2vD,GAAG,IAAIjmC,EAAEytK,EAAExnI,GAAG,OAAOjmC,IAAK,SAAS1pB,EAAE2vD,GAAGA,EAAEwwnB,aAAaxwnB,EAAE8vnB,cAAc,mBAAmBz/qB,EAAEq4oB,QAAQ1olB,EAAEqvnB,YAAYrvnB,EAAE8vnB,aAAY,EAAGxtrB,EAAE2gc,SAAShic,EAAEoP,EAAE2vD,KAAKA,EAAEwwnB,aAAY,EAAGngrB,EAAE47mB,KAAK,cAAc,CAAnK,CAAqK57mB,EAAE2vD,GAAG,IAAIA,EAAEqvnB,YAAYrvnB,EAAE3O,UAAS,EAAGhhD,EAAE47mB,KAAK,YAAYlylB,CAAC,CAACvZ,EAAEyziB,SAASn3f,EAAEc,GAAGz8D,EAAEg2D,UAAUu1nB,UAAU,WAAW,IAAI,IAAIr8qB,EAAEu6D,KAAK0lnB,gBAAgBtwnB,EAAE,GAAG3vD,GAAG2vD,EAAEr6D,KAAK0K,GAAGA,EAAEA,EAAE+vD,KAAK,OAAOJ,CAAC,EAAE,WAAW,IAAIp7C,OAAOo6E,eAAe79F,EAAEg2D,UAAU,SAAS,CAACmU,IAAI8E,EAAEwic,WAAW,WAAW,OAAOhoc,KAAK8hnB,WAAW,GAAG,6EAA6E,YAAY,CAAC,MAAMr8qB,GAAG,CAAC,CAArN,GAAyN,mBAAmBowH,QAAQA,OAAOqwjB,aAAa,mBAAmBtwjB,SAASrpE,UAAUspE,OAAOqwjB,cAAcnynB,EAAE6hE,SAASrpE,UAAUspE,OAAOqwjB,aAAalsqB,OAAOo6E,eAAeliC,EAAE2jE,OAAOqwjB,YAAY,CAAC5urB,MAAM,SAASmO,GAAG,QAAQsuD,EAAEyH,KAAKwE,KAAKv6D,IAAIu6D,OAAO9N,GAAIzsD,GAAGA,EAAEm8qB,0BAA0BrrrB,CAAE,KAAKw9D,EAAE,SAAStuD,GAAG,OAAOA,aAAau6D,IAAI,EAAE9N,EAAE3F,UAAU6sB,KAAK,WAAWpZ,KAAKqhjB,KAAK,QAAQ,IAAIxtmB,MAAM,6BAA6B,EAAEq+C,EAAE3F,UAAU6rH,MAAM,SAAS3yK,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAE/W,KAAK4hnB,eAAetrrB,GAAE,EAAG6nE,GAAG4Y,EAAEullB,aAAa1omB,EAAEnuD,EAAE+8D,EAAEm4D,SAAS/mE,IAAIA,aAAagJ,GAAG,OAAOuB,IAAIqE,EAAEm4D,SAASl1H,KAAKA,EAAE,SAASA,GAAG,OAAO+8D,EAAEp9C,KAAK3f,EAAE,CAA5B,CAA8BA,IAAI,mBAAmB2vD,IAAIjmC,EAAEimC,EAAEA,EAAE,MAAM+I,EAAE/I,EAAE,SAASA,IAAIA,EAAE2hB,EAAEmsmB,iBAAiB,mBAAmB/zpB,IAAIA,EAAEohD,GAAGwG,EAAEs9lB,MAAM,SAAS5uqB,EAAE2vD,GAAG,IAAIjmC,EAAE,IAAItb,MAAM,mBAAmBpO,EAAE47mB,KAAK,QAAQlylB,GAAGz3B,EAAE2gc,SAASjjY,EAAEjmC,EAAE,CAAlF,CAAoF6wC,KAAK7wC,IAAIgvC,GAAG,SAAS14D,EAAE2vD,EAAEjmC,EAAEykC,GAAG,IAAImjB,GAAE,EAAGzgF,GAAE,EAAG,OAAO,OAAO64B,EAAE74B,EAAE,IAAI06H,UAAU,uCAAuC,iBAAiB7hG,QAAG,IAASA,GAAGimC,EAAEknmB,aAAahmqB,EAAE,IAAI06H,UAAU,oCAAoC16H,IAAImP,EAAE47mB,KAAK,QAAQ/qnB,GAAGoB,EAAE2gc,SAASzkY,EAAEt9D,GAAGygF,GAAE,GAAIA,CAAC,CAAvP,CAAyP/W,KAAK+W,EAAEtxE,EAAE0pB,MAAM4nD,EAAE0tmB,YAAYnurB,EAAE,SAASmP,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIy3B,EAAE,CAAC,IAAI74B,EAAE,SAASmP,EAAE2vD,EAAEjmC,GAA2E,OAAxE1pB,EAAE62pB,aAAY,IAAK72pB,EAAE2/qB,eAAe,iBAAiBhwnB,IAAIA,EAAEoN,EAAEp9C,KAAKgwC,EAAEjmC,IAAWimC,CAAC,CAAhG,CAAkGA,EAAExB,EAAEmjB,GAAGnjB,IAAIt9D,IAAI64B,GAAE,EAAG4nD,EAAE,SAASnjB,EAAEt9D,EAAE,CAAC,IAAI6nE,EAAE/I,EAAEknmB,WAAW,EAAE1omB,EAAEj8D,OAAOy9D,EAAEz9D,QAAQwmE,EAAE,IAAInB,EAAE5H,EAAEz9D,OAAOy9D,EAAEysnB,cAAkC,GAApB7knB,IAAI5H,EAAEwunB,WAAU,GAAOxunB,EAAEiwnB,SAASjwnB,EAAEm9jB,OAAO,CAAC,IAAI38mB,EAAEw/C,EAAEuwnB,oBAAoBvwnB,EAAEuwnB,oBAAoB,CAAC11mB,MAAMrc,EAAEmujB,SAAShriB,EAAEivmB,MAAM72pB,EAAE8vC,SAASvnE,EAAE89D,KAAK,MAAM5/C,EAAEA,EAAE4/C,KAAKJ,EAAEuwnB,oBAAoBvwnB,EAAEswnB,gBAAgBtwnB,EAAEuwnB,oBAAoBvwnB,EAAEywnB,sBAAsB,CAAC,MAAM/inB,EAAEr9D,EAAE2vD,GAAE,EAAG+I,EAAEvK,EAAEmjB,EAAEr/E,GAAG,OAAOslE,CAAC,CAAlgB,CAAogBgD,KAAK+W,EAAE5Y,EAAE14D,EAAE2vD,EAAEjmC,IAAI74B,CAAC,EAAE47D,EAAE3F,UAAUymkB,KAAK,WAAWhzjB,KAAK4hnB,eAAervD,QAAQ,EAAErgkB,EAAE3F,UAAU2mkB,OAAO,WAAW,IAAIztnB,EAAEu6D,KAAK4hnB,eAAen8qB,EAAE8snB,SAAS9snB,EAAE8snB,SAAS9snB,EAAE4/qB,SAAS5/qB,EAAE8snB,QAAQ9snB,EAAEghD,UAAUhhD,EAAE6/qB,mBAAmB7/qB,EAAEigrB,iBAAiBrvlB,EAAEr2B,KAAKv6D,GAAG,EAAEysD,EAAE3F,UAAU45nB,mBAAmB,SAAS1grB,GAAG,GAAG,iBAAiBA,IAAIA,EAAEA,EAAEjP,iBAAiB,CAAC,MAAM,OAAO,QAAQ,QAAQ,SAAS,SAAS,OAAO,QAAQ,UAAU,WAAW,OAAOS,SAASwO,EAAE,IAAIjP,gBAAgB,GAAG,MAAM,IAAIw6H,UAAU,qBAAqBvrH,GAAG,OAAOu6D,KAAK4hnB,eAAesB,gBAAgBz9qB,EAAEu6D,IAAI,EAAEhmD,OAAOo6E,eAAeliC,EAAE3F,UAAU,wBAAwB,CAACwnC,YAAW,EAAGrzB,IAAI,WAAW,OAAOV,KAAK4hnB,eAAeC,aAAa,IAAI3vnB,EAAE3F,UAAUy1lB,OAAO,SAASv8oB,EAAE2vD,EAAEjmC,GAAGA,EAAE,IAAItb,MAAM,+BAA+B,EAAEq+C,EAAE3F,UAAUw5nB,QAAQ,KAAK7znB,EAAE3F,UAAUh7D,IAAI,SAASkU,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEoM,KAAK4hnB,eAAe,mBAAmBn8qB,GAAG0pB,EAAE1pB,EAAEA,EAAE,KAAK2vD,EAAE,MAAM,mBAAmBA,IAAIjmC,EAAEimC,EAAEA,EAAE,MAAM,MAAM3vD,GAAGu6D,KAAKo4G,MAAM3yK,EAAE2vD,GAAGxB,EAAE2+jB,SAAS3+jB,EAAE2+jB,OAAO,EAAEvyjB,KAAKkzjB,UAAUt/jB,EAAEuxnB,QAAQvxnB,EAAEnN,UAAU,SAAShhD,EAAE2vD,EAAEjmC,GAAGimC,EAAE+vnB,QAAO,EAAG5lX,EAAE95T,EAAE2vD,GAAGjmC,IAAIimC,EAAE3O,SAAS/uD,EAAE2gc,SAASlpa,GAAG1pB,EAAEugE,KAAK,SAAS72C,IAAIimC,EAAEi/mB,OAAM,EAAG5uqB,EAAE+qH,UAAS,CAAE,CAA5G,CAA8GxwD,KAAKpM,EAAEzkC,EAAE,EAAEnV,OAAOo6E,eAAeliC,EAAE3F,UAAU,YAAY,CAACmU,IAAI,WAAW,YAAO,IAASV,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAevtd,SAAS,EAAEvrJ,IAAI,SAASrjE,GAAGu6D,KAAK4hnB,iBAAiB5hnB,KAAK4hnB,eAAevtd,UAAU5uN,EAAE,IAAIysD,EAAE3F,UAAUqiM,QAAQplN,EAAEolN,QAAQ18L,EAAE3F,UAAUg3nB,WAAW/5oB,EAAEg6oB,UAAUtxnB,EAAE3F,UAAU82nB,SAAS,SAAS59qB,EAAE2vD,GAAG4K,KAAKzuE,MAAM6jE,EAAE3vD,EAAE,CAAE,GAAE+1D,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE8S,EAAE,UAAUounB,aAAa,EAAE,CAAC,mBAAmB,IAAI,6BAA6B,IAAI,4BAA4B,IAAIxpa,SAAS,IAAI,eAAe,IAAIg/V,SAAS,IAAI,uBAAuB,IAAI,cAAc,IAAIiW,OAAO,IAAI,iBAAiB,MAAM,IAAI,CAAC,SAAS75jB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,eAAe4zH,OAAOtiD,EAAEtxE,EAAE,QAAQ2vD,EAAE8jE,QAAQ,WAAW,SAASzzH,KAAK,SAASA,EAAE2vD,GAAG,KAAK3vD,aAAa2vD,GAAG,MAAM,IAAI47D,UAAU,oCAAoC,CAA3F,CAA6FhxD,KAAKv6D,GAAGu6D,KAAKi9E,KAAK,KAAKj9E,KAAK8wgB,KAAK,KAAK9wgB,KAAKroE,OAAO,CAAC,CAAC,OAAO8N,EAAE8mD,UAAUxxD,KAAK,SAAS0K,GAAG,IAAI2vD,EAAE,CAAChsC,KAAK3jB,EAAE+vD,KAAK,MAAMwK,KAAKroE,OAAO,EAAEqoE,KAAK8wgB,KAAKt7gB,KAAKJ,EAAE4K,KAAKi9E,KAAK7nF,EAAE4K,KAAK8wgB,KAAK17gB,IAAI4K,KAAKroE,MAAM,EAAE8N,EAAE8mD,UAAUp1D,QAAQ,SAASsO,GAAG,IAAI2vD,EAAE,CAAChsC,KAAK3jB,EAAE+vD,KAAKwK,KAAKi9E,MAAM,IAAIj9E,KAAKroE,SAASqoE,KAAK8wgB,KAAK17gB,GAAG4K,KAAKi9E,KAAK7nF,IAAI4K,KAAKroE,MAAM,EAAE8N,EAAE8mD,UAAUgX,MAAM,WAAW,GAAG,IAAIvD,KAAKroE,OAAO,CAAC,IAAI8N,EAAEu6D,KAAKi9E,KAAK7zH,KAAK,OAAO,IAAI42C,KAAKroE,OAAOqoE,KAAKi9E,KAAKj9E,KAAK8wgB,KAAK,KAAK9wgB,KAAKi9E,KAAKj9E,KAAKi9E,KAAKznF,OAAOwK,KAAKroE,OAAO8N,CAAC,CAAC,EAAEA,EAAE8mD,UAAUgjB,MAAM,WAAWvP,KAAKi9E,KAAKj9E,KAAK8wgB,KAAK,KAAK9wgB,KAAKroE,OAAO,CAAC,EAAE8N,EAAE8mD,UAAUzhB,KAAK,SAASrlC,GAAG,GAAG,IAAIu6D,KAAKroE,OAAO,MAAM,GAAG,IAAI,IAAIy9D,EAAE4K,KAAKi9E,KAAK9tH,EAAE,GAAGimC,EAAEhsC,KAAKgsC,EAAEA,EAAEI,MAAMrmC,GAAG1pB,EAAE2vD,EAAEhsC,KAAK,OAAO+F,CAAC,EAAE1pB,EAAE8mD,UAAUjQ,OAAO,SAAS72C,GAAG,GAAG,IAAIu6D,KAAKroE,OAAO,OAAOi8D,EAAEknI,MAAM,GAAG,GAAG,IAAI96H,KAAKroE,OAAO,OAAOqoE,KAAKi9E,KAAK7zH,KAAK,IAAI,IAAM+F,EAAE4nD,EAAEr/E,EAAEk8D,EAAE0lE,YAAY7zH,IAAI,GAAGnP,EAAE0pE,KAAKi9E,KAAK9+E,EAAE,EAAE7nE,GAAY64B,EAAEz3B,EAAEq/E,EAAE5Y,EAAb7nE,EAAE8yB,KAAemrC,KAAKplC,EAAE4nD,GAAG5Y,GAAG7nE,EAAE8yB,KAAKzxB,OAAOrB,EAAEA,EAAEk/D,KAAK,OAAO99D,CAAC,EAAE+N,CAAC,CAA3+B,GAA++BsxE,GAAGA,EAAEw7jB,SAASx7jB,EAAEw7jB,QAAQ5jf,SAASv5F,EAAE8jE,QAAQ3sE,UAAUwqB,EAAEw7jB,QAAQ5jf,QAAQ,WAAW,IAAIlpJ,EAAEsxE,EAAEw7jB,QAAQ,CAAC56oB,OAAOqoE,KAAKroE,SAAS,OAAOqoE,KAAKxT,YAAY10D,KAAK,IAAI2N,CAAC,EAAE,EAAE,CAAC,cAAc,IAAIm5pB,KAAK,MAAM,IAAI,CAAC,SAASn5pB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,wBAAwB,SAASsxE,EAAEtxE,EAAE2vD,GAAG3vD,EAAE47mB,KAAK,QAAQjsjB,EAAE,CAACA,EAAE8jE,QAAQ,CAAC01H,QAAQ,SAASnpP,EAAE2vD,GAAG,IAAIjmC,EAAE6wC,KAAKtoE,EAAEsoE,KAAK+hnB,gBAAgB/hnB,KAAK+hnB,eAAe1td,UAAU/9N,EAAE0pE,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAevtd,UAAU,OAAO38N,GAAGpB,GAAG8+D,EAAEA,EAAE3vD,IAAIA,GAAGu6D,KAAK4hnB,gBAAgB5hnB,KAAK4hnB,eAAe6D,cAAc7xnB,EAAEykY,SAASthX,EAAE/W,KAAKv6D,GAAGu6D,OAAOA,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAe1td,WAAU,GAAIr0J,KAAK4hnB,iBAAiB5hnB,KAAK4hnB,eAAevtd,WAAU,GAAIr0J,KAAKqjnB,SAAS59qB,GAAG,MAAM,SAASA,IAAI2vD,GAAG3vD,GAAGmuD,EAAEykY,SAASthX,EAAE5nD,EAAE1pB,GAAG0pB,EAAEyypB,iBAAiBzypB,EAAEyypB,eAAe6D,cAAa,IAAKrwnB,GAAGA,EAAE3vD,EAAE,IAAIu6D,KAAK,EAAEwjnB,UAAU,WAAWxjnB,KAAK+hnB,iBAAiB/hnB,KAAK+hnB,eAAe1td,WAAU,EAAGr0J,KAAK+hnB,eAAeW,SAAQ,EAAG1inB,KAAK+hnB,eAAe1N,OAAM,EAAGr0mB,KAAK+hnB,eAAe3iB,YAAW,GAAIp/lB,KAAK4hnB,iBAAiB5hnB,KAAK4hnB,eAAevtd,WAAU,EAAGr0J,KAAK4hnB,eAAevN,OAAM,EAAGr0mB,KAAK4hnB,eAAeuD,QAAO,EAAGnlnB,KAAK4hnB,eAAen7nB,UAAS,EAAGuZ,KAAK4hnB,eAAe6D,cAAa,EAAG,EAAE,EAAE,CAAC,uBAAuB,MAAM,IAAI,CAAC,SAAShgrB,EAAE2vD,EAAEjmC,GAAGg6C,UAAU,GAAG,KAAK,GAAGzmB,MAAMvzB,EAAEg6C,UAAU,EAAE,CAAC65kB,IAAI,IAAIn/hB,OAAO,MAAM,IAAI,CAAC,SAASp+G,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQzzH,EAAE,cAAcohrB,WAAW,EAAE,CAAC,aAAa,MAAM,IAAI,CAAC,SAASphrB,EAAE2vD,EAAEjmC,IAAIA,EAAEimC,EAAE8jE,QAAQzzH,EAAE,8BAA8BmhrB,OAAOz3pB,EAAEA,EAAE+xoB,SAAS/xoB,EAAEA,EAAEyynB,SAASn8oB,EAAE,6BAA6B0pB,EAAEwjmB,OAAOltnB,EAAE,2BAA2B0pB,EAAEyimB,UAAUnsnB,EAAE,8BAA8B0pB,EAAE03pB,YAAYphrB,EAAE,+BAA+B,EAAE,CAAC,0BAA0B,IAAI,+BAA+B,IAAI,4BAA4B,IAAI,6BAA6B,IAAI,4BAA4B,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQzzH,EAAE,cAAcmsnB,SAAS,EAAE,CAAC,aAAa,MAAM,IAAI,CAAC,SAASnsnB,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQzzH,EAAE,4BAA4B,EAAE,CAAC,4BAA4B,MAAM,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,eAAe4zH,OAAOtiD,EAAEnjB,EAAEqvlB,YAAY,SAASx9oB,GAAG,QAAQA,EAAE,GAAGA,IAAIA,EAAEjP,eAAe,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,IAAI,MAAM,OAAM,EAAG,QAAQ,OAAM,EAAG,EAAE,SAASkB,EAAE+N,GAAG,IAAI2vD,EAAE,OAAO4K,KAAK+hjB,SAAS,SAASt8mB,GAAG,IAAI2vD,EAAE,SAAS3vD,GAAG,IAAIA,EAAE,MAAM,OAAO,IAAI,IAAI2vD,IAAI,OAAO3vD,GAAG,IAAI,OAAO,IAAI,QAAQ,MAAM,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,IAAI,WAAW,MAAM,UAAU,IAAI,SAAS,IAAI,SAAS,MAAM,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,OAAOA,EAAE,QAAQ,GAAG2vD,EAAE,OAAO3vD,GAAG,GAAGA,GAAGjP,cAAc4+D,GAAE,EAAG,CAAlS,CAAoS3vD,GAAG,GAAG,iBAAiB2vD,IAAIxB,EAAEqvlB,aAAalskB,IAAIA,EAAEtxE,IAAI,MAAM,IAAIoO,MAAM,qBAAqBpO,GAAG,OAAO2vD,GAAG3vD,CAAC,CAA7Z,CAA+ZA,GAAGu6D,KAAK+hjB,UAAU,IAAI,UAAU/hjB,KAAK9pC,KAAK8mC,EAAEgD,KAAKzuE,IAAIqkB,EAAEw/C,EAAE,EAAE,MAAM,IAAI,OAAO4K,KAAK8xnB,SAAS3znB,EAAE/I,EAAE,EAAE,MAAM,IAAI,SAAS4K,KAAK9pC,KAAKsvC,EAAExF,KAAKzuE,IAAIyhE,EAAEoC,EAAE,EAAE,MAAM,QAAQ,OAAO4K,KAAKo4G,MAAM51G,OAAOxC,KAAKzuE,IAAIqrE,GAAGoD,KAAK+xnB,SAAS,EAAE/xnB,KAAKgynB,UAAU,EAAEhynB,KAAKiynB,SAASr+nB,EAAE0lE,YAAYlkE,EAAE,CAAC,SAAS9+D,EAAEmP,GAAG,OAAOA,GAAG,IAAI,EAAEA,GAAG,GAAG,EAAE,EAAEA,GAAG,GAAG,GAAG,EAAEA,GAAG,GAAG,GAAG,EAAEA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,SAAS04D,EAAE14D,GAAG,IAAI2vD,EAAE4K,KAAKgynB,UAAUhynB,KAAK+xnB,SAAS5iqB,EAAE,SAAS1pB,EAAE2vD,GAAK,GAAG,MAAM,IAAIA,EAAE,IAAI,OAAO3vD,EAAEssrB,SAAS,EAAE,SAAS,GAAGtsrB,EAAEssrB,SAAS,GAAG38nB,EAAEz9D,OAAO,EAAE,CAAC,GAAG,MAAM,IAAIy9D,EAAE,IAAI,OAAO3vD,EAAEssrB,SAAS,EAAE,SAAS,GAAGtsrB,EAAEssrB,SAAS,GAAG38nB,EAAEz9D,OAAO,GAAG,MAAM,IAAIy9D,EAAE,IAAI,OAAO3vD,EAAEssrB,SAAS,EAAE,QAAQ,CAAC,CAAvN,CAAyN/xnB,KAAKv6D,GAAG,YAAO,IAAS0pB,EAAEA,EAAE6wC,KAAK+xnB,UAAUtsrB,EAAE9N,QAAQ8N,EAAE8uD,KAAKyL,KAAKiynB,SAAS78nB,EAAE,EAAE4K,KAAK+xnB,UAAU/xnB,KAAKiynB,SAASvgsB,SAASsuE,KAAK+hjB,SAAS,EAAE/hjB,KAAKgynB,aAAavsrB,EAAE8uD,KAAKyL,KAAKiynB,SAAS78nB,EAAE,EAAE3vD,EAAE9N,aAAaqoE,KAAK+xnB,UAAUtsrB,EAAE9N,QAAQ,CAAC,SAASqlE,EAAEv3D,EAAE2vD,GAAG,IAAI3vD,EAAE9N,OAAOy9D,GAAG,GAAG,EAAE,CAAC,IAAIjmC,EAAE1pB,EAAE/T,SAAS,UAAU0jE,GAAG,GAAGjmC,EAAE,CAAC,IAAIykC,EAAEzkC,EAAEqsH,WAAWrsH,EAAEx3B,OAAO,GAAG,GAAGi8D,GAAG,OAAOA,GAAG,MAAM,OAAOoM,KAAK+xnB,SAAS,EAAE/xnB,KAAKgynB,UAAU,EAAEhynB,KAAKiynB,SAAS,GAAGxsrB,EAAEA,EAAE9N,OAAO,GAAGqoE,KAAKiynB,SAAS,GAAGxsrB,EAAEA,EAAE9N,OAAO,GAAGw3B,EAAEgkC,MAAM,GAAG,EAAE,CAAC,OAAOhkC,CAAC,CAAC,OAAO6wC,KAAK+xnB,SAAS,EAAE/xnB,KAAKgynB,UAAU,EAAEhynB,KAAKiynB,SAAS,GAAGxsrB,EAAEA,EAAE9N,OAAO,GAAG8N,EAAE/T,SAAS,UAAU0jE,EAAE3vD,EAAE9N,OAAO,EAAE,CAAC,SAASie,EAAEnQ,GAAG,IAAI2vD,EAAE3vD,GAAGA,EAAE9N,OAAOqoE,KAAKo4G,MAAM3yK,GAAG,GAAG,GAAGu6D,KAAK+xnB,SAAS,CAAC,IAAI5iqB,EAAE6wC,KAAKgynB,UAAUhynB,KAAK+xnB,SAAS,OAAO38nB,EAAE4K,KAAKiynB,SAASvgsB,SAAS,UAAU,EAAEy9B,EAAE,CAAC,OAAOimC,CAAC,CAAC,SAASoQ,EAAE//D,EAAE2vD,GAAG,IAAIjmC,GAAG1pB,EAAE9N,OAAOy9D,GAAG,EAAE,OAAO,IAAIjmC,EAAE1pB,EAAE/T,SAAS,SAAS0jE,IAAI4K,KAAK+xnB,SAAS,EAAE5iqB,EAAE6wC,KAAKgynB,UAAU,EAAE,IAAI7iqB,EAAE6wC,KAAKiynB,SAAS,GAAGxsrB,EAAEA,EAAE9N,OAAO,IAAIqoE,KAAKiynB,SAAS,GAAGxsrB,EAAEA,EAAE9N,OAAO,GAAGqoE,KAAKiynB,SAAS,GAAGxsrB,EAAEA,EAAE9N,OAAO,IAAI8N,EAAE/T,SAAS,SAAS0jE,EAAE3vD,EAAE9N,OAAOw3B,GAAG,CAAC,SAAS6jC,EAAEvtD,GAAG,IAAI2vD,EAAE3vD,GAAGA,EAAE9N,OAAOqoE,KAAKo4G,MAAM3yK,GAAG,GAAG,OAAOu6D,KAAK+xnB,SAAS38nB,EAAE4K,KAAKiynB,SAASvgsB,SAAS,SAAS,EAAE,EAAEsuE,KAAK+xnB,UAAU38nB,CAAC,CAAC,SAASoN,EAAE/8D,GAAG,OAAOA,EAAE/T,SAASsuE,KAAK+hjB,SAAS,CAAC,SAASnljB,EAAEn3D,GAAG,OAAOA,GAAGA,EAAE9N,OAAOqoE,KAAKo4G,MAAM3yK,GAAG,EAAE,CAAC0pB,EAAE42nB,cAAcrupB,EAAEA,EAAE60D,UAAU6rH,MAAM,SAAS3yK,GAAG,GAAG,IAAIA,EAAE9N,OAAO,MAAM,GAAG,IAAIy9D,EAAEjmC,EAAE,GAAG6wC,KAAK+xnB,SAAS,CAAC,QAAG,KAAU38nB,EAAE4K,KAAK8xnB,SAASrsrB,IAAI,MAAM,GAAG0pB,EAAE6wC,KAAK+xnB,SAAS/xnB,KAAK+xnB,SAAS,CAAC,MAAM5iqB,EAAE,EAAE,OAAOA,EAAE1pB,EAAE9N,OAAOy9D,EAAEA,EAAE4K,KAAK9pC,KAAKzwB,EAAE0pB,GAAG6wC,KAAK9pC,KAAKzwB,EAAE0pB,GAAGimC,GAAG,EAAE,EAAE19D,EAAE60D,UAAUh7D,IAAI,SAASkU,GAAG,IAAI2vD,EAAE3vD,GAAGA,EAAE9N,OAAOqoE,KAAKo4G,MAAM3yK,GAAG,GAAG,OAAOu6D,KAAK+xnB,SAAS38nB,EAAE,SAASA,CAAC,EAAE19D,EAAE60D,UAAUr2B,KAAK,SAASzwB,EAAE2vD,GAAG,IAAIjmC,EAAE,SAAS1pB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEwB,EAAEz9D,OAAO,EAAE,GAAGi8D,EAAEzkC,EAAE,OAAO,EAAE,IAAI4nD,EAAEzgF,EAAE8+D,EAAExB,IAAI,OAAGmjB,GAAG,GAASA,EAAE,IAAItxE,EAAEssrB,SAASh7mB,EAAE,GAAGA,KAAOnjB,EAAEzkC,IAAI,IAAI4nD,EAAS,GAAMA,EAAEzgF,EAAE8+D,EAAExB,MAAM,GAASmjB,EAAE,IAAItxE,EAAEssrB,SAASh7mB,EAAE,GAAGA,KAAOnjB,EAAEzkC,IAAI,IAAI4nD,EAAS,GAAMA,EAAEzgF,EAAE8+D,EAAExB,MAAM,GAASmjB,EAAE,IAAI,IAAIA,EAAEA,EAAE,EAAEtxE,EAAEssrB,SAASh7mB,EAAE,GAAGA,GAAS,CAAC,CAA9Q,CAAgR/W,KAAKv6D,EAAE2vD,GAAG,IAAI4K,KAAK+xnB,SAAS,OAAOtsrB,EAAE/T,SAAS,OAAO0jE,GAAG4K,KAAKgynB,UAAU7iqB,EAAE,IAAIykC,EAAEnuD,EAAE9N,QAAQw3B,EAAE6wC,KAAK+xnB,UAAU,OAAOtsrB,EAAE8uD,KAAKyL,KAAKiynB,SAAS,EAAEr+nB,GAAGnuD,EAAE/T,SAAS,OAAO0jE,EAAExB,EAAE,EAAEl8D,EAAE60D,UAAUuloB,SAAS,SAASrsrB,GAAG,GAAGu6D,KAAK+xnB,UAAUtsrB,EAAE9N,OAAO,OAAO8N,EAAE8uD,KAAKyL,KAAKiynB,SAASjynB,KAAKgynB,UAAUhynB,KAAK+xnB,SAAS,EAAE/xnB,KAAK+xnB,UAAU/xnB,KAAKiynB,SAASvgsB,SAASsuE,KAAK+hjB,SAAS,EAAE/hjB,KAAKgynB,WAAWvsrB,EAAE8uD,KAAKyL,KAAKiynB,SAASjynB,KAAKgynB,UAAUhynB,KAAK+xnB,SAAS,EAAEtsrB,EAAE9N,QAAQqoE,KAAK+xnB,UAAUtsrB,EAAE9N,MAAM,CAAC,EAAE,CAAC,cAAc,MAAM,IAAI,CAAC,SAAS8N,EAAE2vD,EAAEjmC,IAAG,SAAUimC,EAAExB,GAAG,IAAImjB,EAAEtxE,EAAE,sBAAsB4yb,SAAS3gc,EAAEk+H,SAASrpE,UAAU7J,MAAMpsD,EAAE+4D,MAAM9C,UAAU4G,MAAMgL,EAAE,CAAC,EAAEnB,EAAE,EAAE,SAASpnD,EAAEnQ,EAAE2vD,GAAG4K,KAAK6D,IAAIp+D,EAAEu6D,KAAKkynB,SAAS98nB,CAAC,CAACjmC,EAAE+wB,WAAW,WAAW,OAAO,IAAItqC,EAAEle,EAAE8jE,KAAKtb,WAAWvtD,OAAOw2E,WAAWzD,aAAa,EAAEv2C,EAAE9+B,YAAY,WAAW,OAAO,IAAIulB,EAAEle,EAAE8jE,KAAKnrE,YAAYsC,OAAOw2E,WAAW74E,cAAc,EAAE6+B,EAAEu2C,aAAav2C,EAAE7+B,cAAc,SAASmV,GAAGA,EAAEuhE,OAAO,EAAEpxD,EAAE22C,UAAU4loB,MAAMv8qB,EAAE22C,UAAUngD,IAAI,WAAW,EAAEwJ,EAAE22C,UAAUya,MAAM,WAAWhH,KAAKkynB,SAAS12nB,KAAK7oE,OAAOqtE,KAAK6D,IAAI,EAAE10C,EAAE0jE,OAAO,SAASptF,EAAE2vD,GAAGsQ,aAAajgE,EAAE2srB,gBAAgB3srB,EAAE4srB,aAAaj9nB,CAAC,EAAEjmC,EAAEy7L,SAAS,SAASnlN,GAAGigE,aAAajgE,EAAE2srB,gBAAgB3srB,EAAE4srB,cAAc,CAAC,EAAEljqB,EAAEmjqB,aAAanjqB,EAAEqQ,OAAO,SAAS/5B,GAAGigE,aAAajgE,EAAE2srB,gBAAgB,IAAIh9nB,EAAE3vD,EAAE4srB,aAAaj9nB,GAAG,IAAI3vD,EAAE2srB,eAAelyoB,YAAY,WAAWz6C,EAAE8srB,YAAY9srB,EAAE8srB,YAAY,GAAGn9nB,GAAG,EAAEjmC,EAAE0kmB,aAAa,mBAAmBz+jB,EAAEA,EAAE,SAAS3vD,GAAG,IAAI2vD,EAAE4H,IAAIpJ,IAAIuV,UAAUxxE,OAAO,IAAIrB,EAAEklE,KAAK2N,UAAU,GAAG,OAAOhL,EAAE/I,IAAG,EAAG2hB,GAAG,WAAW5Y,EAAE/I,KAAKxB,EAAEnuD,EAAEi9C,MAAM,KAAKkR,GAAGnuD,EAAE+1D,KAAK,MAAMrsC,EAAEi4nB,eAAehylB,GAAG,IAAIA,CAAC,EAAEjmC,EAAEi4nB,eAAe,mBAAmBxzlB,EAAEA,EAAE,SAASnuD,UAAU04D,EAAE14D,EAAE,CAAE,GAAE+1D,KAAKwE,KAAKv6D,EAAE,UAAUounB,aAAapunB,EAAE,UAAU2hpB,eAAe,EAAE,CAAC,qBAAqB,IAAI9nF,OAAO,MAAM,IAAI,CAAC,SAAS75jB,EAAE2vD,EAAEjmC,IAAG,SAAU1pB,GAAG,SAAS0pB,EAAEimC,GAAG,IAAI,IAAI3vD,EAAE8lN,aAAa,OAAM,CAAE,CAAC,MAAM9lN,GAAG,OAAM,CAAE,CAAC,IAAI0pB,EAAE1pB,EAAE8lN,aAAan2J,GAAG,OAAO,MAAMjmC,GAAG,SAAShH,OAAOgH,GAAG34B,aAAa,CAAC4+D,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,GAAGjmC,EAAE,iBAAiB,OAAO1pB,EAAE,IAAImuD,GAAE,EAAG,OAAO,WAAW,IAAIA,EAAE,CAAC,GAAGzkC,EAAE,oBAAoB,MAAM,IAAItb,MAAMuhD,GAAGjmC,EAAE,oBAAoBr9B,QAAQ+5nB,MAAMz2jB,GAAGtjE,QAAQs+D,KAAKgF,GAAGxB,GAAE,CAAE,CAAC,OAAOnuD,EAAEi9C,MAAMsd,KAAKmJ,UAAU,CAAC,CAAE,GAAE3N,KAAKwE,KAAK,oBAAoBy1D,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS8S,EAAE2vD,EAAEjmC,GAAG,mBAAmBnV,OAAOiN,OAAOmuC,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG3vD,EAAEqunB,OAAO1+jB,EAAE3vD,EAAE8mD,UAAUvyC,OAAOiN,OAAOmuC,EAAE7I,UAAU,CAACC,YAAY,CAACl1D,MAAMmO,EAAEsuF,YAAW,EAAGy8B,UAAS,EAAGD,cAAa,IAAK,EAAEn7D,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG3vD,EAAEqunB,OAAO1+jB,EAAE,IAAIjmC,EAAE,WAAW,EAAEA,EAAEo9B,UAAU6I,EAAE7I,UAAU9mD,EAAE8mD,UAAU,IAAIp9B,EAAE1pB,EAAE8mD,UAAUC,YAAY/mD,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAGimC,EAAE8jE,QAAQ,SAASzzH,GAAG,OAAOA,GAAG,WAAW86mB,SAAS96mB,IAAI,mBAAmBA,EAAE8uD,MAAM,mBAAmB9uD,EAAE0kF,MAAM,mBAAmB1kF,EAAE+noB,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS/noB,EAAE2vD,EAAEjmC,IAAG,SAAUimC,EAAExB,GAAG,IAAImjB,EAAE,WAAW5nD,EAAEn9B,OAAO,SAASyT,GAAG,IAAIlP,EAAEkP,GAAG,CAAC,IAAI,IAAI2vD,EAAE,GAAGjmC,EAAE,EAAEA,EAAEg6C,UAAUxxE,OAAOw3B,IAAIimC,EAAEr6D,KAAKojE,EAAEgL,UAAUh6C,KAAK,OAAOimC,EAAEtqB,KAAK,IAAI,CAAC3b,EAAE,EAAE,IAAI,IAAIykC,EAAEuV,UAAUzxE,EAAEk8D,EAAEj8D,OAAOrB,EAAE6xB,OAAO1iB,GAAG8f,QAAQwxD,GAAG,SAAStxE,GAAG,GAAG,OAAOA,EAAE,MAAM,IAAI,GAAG0pB,GAAGz3B,EAAE,OAAO+N,EAAE,OAAOA,GAAG,IAAI,KAAK,OAAO0iB,OAAOyrC,EAAEzkC,MAAM,IAAI,KAAK,OAAO6zC,OAAOpP,EAAEzkC,MAAM,IAAI,KAAK,IAAI,OAAOpe,KAAKE,UAAU2iD,EAAEzkC,KAAK,CAAC,MAAM1pB,GAAG,MAAM,YAAY,CAAC,QAAQ,OAAOA,EAAE,IAAIu3D,EAAEpJ,EAAEzkC,GAAGA,EAAEz3B,EAAEslE,EAAEpJ,IAAIzkC,GAAGqa,EAAEwzB,KAAKiiQ,EAAEjiQ,GAAG1mE,GAAG,IAAI0mE,EAAE1mE,GAAG,IAAI6nE,EAAEnB,GAAG,OAAO1mE,CAAC,EAAE64B,EAAE64e,UAAU,SAASvigB,EAAEsxE,GAAG,GAAG7kB,EAAE0B,EAAEy+B,SAAS,OAAO,WAAW,OAAOljE,EAAE64e,UAAUvigB,EAAEsxE,GAAGr0B,MAAMsd,KAAKmJ,UAAU,EAAE,IAAG,IAAK/T,EAAEo9nB,cAAc,OAAO/srB,EAAE,IAAI/N,GAAE,EAAG,OAAO,WAAW,IAAIA,EAAE,CAAC,GAAG09D,EAAEq9nB,iBAAiB,MAAM,IAAI5+qB,MAAMkjE,GAAG3hB,EAAEs9nB,iBAAiB5gsB,QAAQ+5nB,MAAM90iB,GAAGjlF,QAAQoB,MAAM6jF,GAAGr/E,GAAE,CAAE,CAAC,OAAO+N,EAAEi9C,MAAMsd,KAAKmJ,UAAU,CAAC,EAAE,IAAIzxE,EAAEpB,EAAE,CAAC,EAAE,SAAS6nE,EAAE14D,EAAE2vD,GAAG,IAAIxB,EAAE,CAACgjF,KAAK,GAAG+7iB,QAAQ/8qB,GAAG,OAAOuzD,UAAUxxE,QAAQ,IAAIi8D,EAAE41U,MAAMrgU,UAAU,IAAIA,UAAUxxE,QAAQ,IAAIi8D,EAAE0P,OAAO6F,UAAU,IAAIpV,EAAEqB,GAAGxB,EAAEg/nB,WAAWx9nB,EAAEA,GAAGjmC,EAAEm6b,QAAQ11Z,EAAEwB,GAAGlD,EAAE0B,EAAEg/nB,cAAch/nB,EAAEg/nB,YAAW,GAAI1goB,EAAE0B,EAAE41U,SAAS51U,EAAE41U,MAAM,GAAGt3U,EAAE0B,EAAE0P,UAAU1P,EAAE0P,QAAO,GAAIpR,EAAE0B,EAAE0ynB,iBAAiB1ynB,EAAE0ynB,eAAc,GAAI1ynB,EAAE0P,SAAS1P,EAAE++nB,QAAQ31nB,GAAGwI,EAAE5R,EAAEnuD,EAAEmuD,EAAE41U,MAAM,CAAC,SAASxsU,EAAEv3D,EAAE2vD,GAAG,IAAIjmC,EAAEgvC,EAAEmqB,OAAOlzB,GAAG,OAAOjmC,EAAE,QAAQgvC,EAAEmF,OAAOn0C,GAAG,GAAG,IAAI1pB,EAAE,QAAQ04D,EAAEmF,OAAOn0C,GAAG,GAAG,IAAI1pB,CAAC,CAAC,SAASmQ,EAAEnQ,EAAE2vD,GAAG,OAAO3vD,CAAC,CAAC,SAAS+/D,EAAE//D,EAAE2vD,EAAExB,GAAG,GAAGnuD,EAAE6grB,eAAelxnB,GAAG/+D,EAAE++D,EAAEm9kB,UAAUn9kB,EAAEm9kB,UAAUpjnB,EAAEojnB,WAAWn9kB,EAAE5I,aAAa4I,EAAE5I,YAAYD,YAAY6I,GAAG,CAAC,IAAI2hB,EAAE3hB,EAAEm9kB,QAAQ3+kB,EAAEnuD,GAAG,OAAOlP,EAAEwgF,KAAKA,EAAEvR,EAAE//D,EAAEsxE,EAAEnjB,IAAImjB,CAAC,CAAC,IAAIr/E,EAAE,SAAS+N,EAAE2vD,GAAG,GAAGlD,EAAEkD,GAAG,OAAO3vD,EAAEktrB,QAAQ,YAAY,aAAa,GAAGp8rB,EAAE6+D,GAAG,CAAC,IAAIjmC,EAAE,IAAIpe,KAAKE,UAAUmkD,GAAG7vC,QAAQ,SAAS,IAAIA,QAAQ,KAAK,OAAOA,QAAQ,OAAO,KAAK,IAAI,OAAO9f,EAAEktrB,QAAQxjqB,EAAE,SAAS,CAAC,OAAGohD,EAAEnb,GAAU3vD,EAAEktrB,QAAQ,GAAGv9nB,EAAE,UAAarB,EAAEqB,GAAU3vD,EAAEktrB,QAAQ,GAAGv9nB,EAAE,WAAc5rB,EAAE4rB,GAAU3vD,EAAEktrB,QAAQ,OAAO,aAAhC,CAAuC,CAA3T,CAA6TltrB,EAAE2vD,GAAG,GAAG19D,EAAE,OAAOA,EAAE,IAAIpB,EAAE0jB,OAAOs+B,KAAK8c,GAAG+I,EAAE,SAAS14D,GAAG,IAAI2vD,EAAE,CAAC,EAAE,OAAO3vD,EAAE6xB,SAAS,SAAS7xB,EAAE0pB,GAAGimC,EAAE3vD,IAAG,CAAE,IAAI2vD,CAAC,CAAjE,CAAmE9+D,GAAG,GAAGmP,EAAEmtrB,aAAat8rB,EAAE0jB,OAAOyxW,oBAAoBr2T,IAAIwnI,EAAExnI,KAAK9+D,EAAEW,QAAQ,YAAY,GAAGX,EAAEW,QAAQ,gBAAgB,GAAG,OAAO+7D,EAAEoC,GAAG,GAAG,IAAI9+D,EAAEqB,OAAO,CAAC,GAAGtB,EAAE++D,GAAG,CAAC,IAAI4H,EAAE5H,EAAEt9D,KAAK,KAAKs9D,EAAEt9D,KAAK,GAAG,OAAO2N,EAAEktrB,QAAQ,YAAY31nB,EAAE,IAAI,UAAU,CAAC,GAAG8F,EAAE1N,GAAG,OAAO3vD,EAAEktrB,QAAQnvnB,OAAOjX,UAAU76D,SAAS8pE,KAAKpG,GAAG,UAAU,GAAGihC,EAAEjhC,GAAG,OAAO3vD,EAAEktrB,QAAQhisB,KAAK47D,UAAU76D,SAAS8pE,KAAKpG,GAAG,QAAQ,GAAGwnI,EAAExnI,GAAG,OAAOpC,EAAEoC,EAAE,CAAC,IAAIx/C,EAAEqpT,EAAE,GAAGM,GAAE,EAAGzvD,EAAE,CAAC,IAAI,KAAmF,OAA7ElzM,EAAExH,KAAKmqQ,GAAE,EAAGzvD,EAAE,CAAC,IAAI,MAAMz5Q,EAAE++D,KAAM6pQ,EAAE,cAAc7pQ,EAAEt9D,KAAK,KAAKs9D,EAAEt9D,KAAK,IAAI,KAAYgrE,EAAE1N,KAAK6pQ,EAAE,IAAIz7P,OAAOjX,UAAU76D,SAAS8pE,KAAKpG,IAAIihC,EAAEjhC,KAAK6pQ,EAAE,IAAItuU,KAAK47D,UAAUo+I,YAAYnvI,KAAKpG,IAAIwnI,EAAExnI,KAAK6pQ,EAAE,IAAIjsQ,EAAEoC,IAAI,IAAI9+D,EAAEqB,QAAQ4nU,GAAG,GAAGnqQ,EAAEz9D,OAAOi8D,EAAE,EAAEkP,EAAE1N,GAAG3vD,EAAEktrB,QAAQnvnB,OAAOjX,UAAU76D,SAAS8pE,KAAKpG,GAAG,UAAU3vD,EAAEktrB,QAAQ,WAAW,YAAYltrB,EAAEmxI,KAAK77I,KAAKq6D,GAAGx/C,EAAE2pT,EAAE,SAAS95T,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAG,IAAI,IAAIr/E,EAAE,GAAGpB,EAAE,EAAE6nE,EAAE/I,EAAEz9D,OAAOrB,EAAE6nE,IAAI7nE,EAAE8nD,EAAEgX,EAAEjtC,OAAO7xB,IAAIoB,EAAEqD,KAAKynE,EAAE/8D,EAAE2vD,EAAEjmC,EAAEykC,EAAEzrC,OAAO7xB,IAAG,IAAKoB,EAAEqD,KAAK,IAAI,OAAOg8E,EAAEz/C,SAAS,SAASy/C,GAAGA,EAAEljB,MAAM,UAAUn8D,EAAEqD,KAAKynE,EAAE/8D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,GAAE,GAAI,IAAIr/E,CAAC,CAA9L,CAAgM+N,EAAE2vD,EAAExB,EAAEuK,EAAE7nE,GAAGA,EAAEiD,KAAK,SAAS41B,GAAG,OAAOqzC,EAAE/8D,EAAE2vD,EAAExB,EAAEuK,EAAEhvC,EAAEowS,EAAE,IAAI95T,EAAEmxI,KAAKh0F,MAAM,SAASn9C,EAAE2vD,EAAEjmC,GAAG,OAAG1pB,EAAE8kB,QAAQ,SAAS9kB,EAAE2vD,GAAG,OAAOA,EAAEn+D,QAAQ,MAAYwO,EAAE2vD,EAAE7vC,QAAQ,kBAAkB,IAAI5tB,OAAO,CAAC,GAAG,GAAG,GAAUw3B,EAAE,IAAI,KAAKimC,EAAE,GAAGA,EAAE,OAAO,IAAI3vD,EAAEqlC,KAAK,SAAS,IAAI3b,EAAE,GAAUA,EAAE,GAAGimC,EAAE,IAAI3vD,EAAEqlC,KAAK,MAAM,IAAI3b,EAAE,EAAE,CAA/N,CAAiOvZ,EAAEqpT,EAAEnvD,IAAIA,EAAE,GAAGmvD,EAAEnvD,EAAE,EAAE,CAAC,SAAS98M,EAAEvtD,GAAG,MAAM,IAAIoO,MAAM04C,UAAU76D,SAAS8pE,KAAK/1D,GAAG,GAAG,CAAC,SAAS+8D,EAAE/8D,EAAE2vD,EAAEjmC,EAAEykC,EAAEmjB,EAAEr/E,GAAG,IAAIpB,EAAE6nE,EAAEnB,EAAE,IAAIA,EAAEhjD,OAAO85E,yBAAyB1+B,EAAE2hB,IAAI,CAACz/E,MAAM89D,EAAE2hB,KAAKrW,IAAIvC,EAAEnB,EAAE8L,IAAIrjE,EAAEktrB,QAAQ,kBAAkB,WAAWltrB,EAAEktrB,QAAQ,WAAW,WAAW31nB,EAAE8L,MAAM3K,EAAE14D,EAAEktrB,QAAQ,WAAW,YAAYv0oB,EAAEwV,EAAEmjB,KAAKzgF,EAAE,IAAIygF,EAAE,KAAK5Y,IAAI14D,EAAEmxI,KAAK3/I,QAAQ+lE,EAAE1lE,OAAO,GAAG6mE,EAAE30B,EAAEra,GAAGq2C,EAAE//D,EAAEu3D,EAAE1lE,MAAM,MAAMkuE,EAAE//D,EAAEu3D,EAAE1lE,MAAM63B,EAAE,IAAIl4B,QAAQ,OAAO,IAAIknE,EAAEzmE,EAAEymE,EAAEpzC,MAAM,MAAMxxB,KAAK,SAASkM,GAAG,MAAM,KAAKA,CAAC,IAAIqlC,KAAK,MAAM50C,OAAO,GAAG,KAAKioE,EAAEpzC,MAAM,MAAMxxB,KAAK,SAASkM,GAAG,MAAM,MAAMA,CAAC,IAAIqlC,KAAK,OAAOqzB,EAAE14D,EAAEktrB,QAAQ,aAAa,YAAYzgoB,EAAE57D,GAAG,CAAC,GAAGoB,GAAGq/E,EAAEljB,MAAM,SAAS,OAAOsK,GAAG7nE,EAAEya,KAAKE,UAAU,GAAG8lE,IAAIljB,MAAM,iCAAiCv9D,EAAEA,EAAEJ,OAAO,EAAEI,EAAEqB,OAAO,GAAGrB,EAAEmP,EAAEktrB,QAAQr8rB,EAAE,UAAUA,EAAEA,EAAEivB,QAAQ,KAAK,OAAOA,QAAQ,OAAO,KAAKA,QAAQ,WAAW,KAAKjvB,EAAEmP,EAAEktrB,QAAQr8rB,EAAE,UAAU,CAAC,OAAOA,EAAE,KAAK6nE,CAAC,CAAC,SAASvB,EAAEn3D,GAAG,OAAO4pD,MAAMC,QAAQ7pD,EAAE,CAAC,SAASsuD,EAAEtuD,GAAG,MAAM,kBAAkBA,CAAC,CAAC,SAAS+jC,EAAE/jC,GAAG,OAAO,OAAOA,CAAC,CAAC,SAAS8qE,EAAE9qE,GAAG,MAAM,iBAAiBA,CAAC,CAAC,SAASlP,EAAEkP,GAAG,MAAM,iBAAiBA,CAAC,CAAC,SAASysD,EAAEzsD,GAAG,YAAO,IAASA,CAAC,CAAC,SAASq9D,EAAEr9D,GAAG,OAAOw5T,EAAEx5T,IAAI,oBAAoB85T,EAAE95T,EAAE,CAAC,SAASw5T,EAAEx5T,GAAG,MAAM,WAAW86mB,SAAS96mB,IAAI,OAAOA,CAAC,CAAC,SAAS4wF,EAAE5wF,GAAG,OAAOw5T,EAAEx5T,IAAI,kBAAkB85T,EAAE95T,EAAE,CAAC,SAASm3L,EAAEn3L,GAAG,OAAOw5T,EAAEx5T,KAAK,mBAAmB85T,EAAE95T,IAAIA,aAAaoO,MAAM,CAAC,SAASxd,EAAEoP,GAAG,MAAM,mBAAmBA,CAAC,CAAC,SAAS85T,EAAE95T,GAAG,OAAOuU,OAAOuyC,UAAU76D,SAAS8pE,KAAK/1D,EAAE,CAAC,SAASqqQ,EAAErqQ,GAAG,OAAOA,EAAE,GAAG,IAAIA,EAAE/T,SAAS,IAAI+T,EAAE/T,SAAS,GAAG,CAACy9B,EAAE8ypB,SAAS,SAASx8qB,GAAG,GAAGysD,EAAEx6D,KAAKA,EAAE09D,EAAEisnB,IAAIwR,YAAY,IAAIptrB,EAAEA,EAAEu7D,eAAe1qE,EAAEmP,GAAG,GAAG,IAAI+9D,OAAO,MAAM/9D,EAAE,MAAM,KAAK2N,KAAK1b,GAAG,CAAC,IAAIk8D,EAAEwB,EAAEgvJ,IAAI9tN,EAAEmP,GAAG,WAAW,IAAI2vD,EAAEjmC,EAAEn9B,OAAO0wD,MAAMvzB,EAAEg6C,WAAWr3E,QAAQoB,MAAM,YAAYuS,EAAEmuD,EAAEwB,EAAE,CAAC,MAAM9+D,EAAEmP,GAAG,WAAW,EAAE,OAAOnP,EAAEmP,EAAE,EAAE0pB,EAAEojnB,QAAQp0kB,EAAEA,EAAEmF,OAAO,CAACo9d,KAAK,CAAC,EAAE,IAAIC,OAAO,CAAC,EAAE,IAAI5jT,UAAU,CAAC,EAAE,IAAI+1c,QAAQ,CAAC,EAAE,IAAIlxnB,MAAM,CAAC,GAAG,IAAI1nB,KAAK,CAAC,GAAG,IAAIqnB,MAAM,CAAC,GAAG,IAAIG,KAAK,CAAC,GAAG,IAAIW,KAAK,CAAC,GAAG,IAAIH,MAAM,CAAC,GAAG,IAAIguE,QAAQ,CAAC,GAAG,IAAI/tE,IAAI,CAAC,GAAG,IAAIL,OAAO,CAAC,GAAG,KAAK3D,EAAEmqB,OAAO,CAACs7T,QAAQ,OAAOluZ,OAAO,SAAS8tiB,QAAQ,SAASzyiB,UAAU,OAAOgisB,KAAK,OAAOztqB,OAAO,QAAQif,KAAK,UAAUizX,OAAO,OAAOroY,EAAEmgC,QAAQsN,EAAEztC,EAAE4tX,UAAUhpV,EAAE5kC,EAAE24nB,OAAOt+mB,EAAEra,EAAE44nB,kBAAkB,SAAStipB,GAAG,OAAO,MAAMA,CAAC,EAAE0pB,EAAEyre,SAASrqb,EAAEphD,EAAE0qD,SAAStjF,EAAE44B,EAAE6wG,SAAS,SAASv6H,GAAG,MAAM,WAAW86mB,SAAS96mB,EAAE,EAAE0pB,EAAEgvH,YAAYjsF,EAAE/iC,EAAE64nB,SAASlllB,EAAE3zC,EAAEonG,SAAS0oM,EAAE9vS,EAAE6+U,OAAO33Q,EAAElnE,EAAEq/mB,QAAQ5xc,EAAEztK,EAAE8nG,WAAW5gI,EAAE84B,EAAE+wmB,YAAY,SAASz6nB,GAAG,OAAO,OAAOA,GAAG,kBAAkBA,GAAG,iBAAiBA,GAAG,iBAAiBA,GAAG,WAAW86mB,SAAS96mB,SAAI,IAASA,CAAC,EAAE0pB,EAAEwrG,SAASl1H,EAAE,sBAAsB,IAAI25T,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAqJ,SAAShhR,EAAE34C,EAAE2vD,GAAG,OAAOp7C,OAAOuyC,UAAUujE,eAAet0D,KAAK/1D,EAAE2vD,EAAE,CAACjmC,EAAEp9B,IAAI,WAAWD,QAAQC,IAAI,UAA5O,WAAa,IAAI0T,EAAE,IAAI9U,KAAKykE,EAAE,CAAC06M,EAAErqQ,EAAEuwC,YAAY85N,EAAErqQ,EAAEshD,cAAc+oN,EAAErqQ,EAAE8iH,eAAez9E,KAAK,KAAK,MAAM,CAACrlC,EAAEod,UAAUu8S,EAAE35T,EAAEqhD,YAAYsO,GAAGtqB,KAAK,IAAI,CAAyGg0R,GAAI3vS,EAAEn9B,OAAO0wD,MAAMvzB,EAAEg6C,WAAW,EAAEh6C,EAAEk6hB,SAAS5jjB,EAAE,YAAY0pB,EAAEm6b,QAAQ,SAAS7jd,EAAE2vD,GAAG,IAAIA,IAAI6pQ,EAAE7pQ,GAAG,OAAO3vD,EAAE,IAAI,IAAI0pB,EAAEnV,OAAOs+B,KAAK8c,GAAGxB,EAAEzkC,EAAEx3B,OAAOi8D,KAAKnuD,EAAE0pB,EAAEykC,IAAIwB,EAAEjmC,EAAEykC,IAAI,OAAOnuD,CAAC,CAAE,GAAE+1D,KAAKwE,KAAKv6D,EAAE,YAAY,oBAAoBgwH,oBAAAA,EAAOA,oBAAAA,EAAO,oBAAoBvpE,KAAKA,KAAK,oBAAoBv5D,OAAOA,OAAO,CAAC,EAAE,EAAE,CAAC,qBAAqB,IAAI03N,SAAS,IAAIg/V,SAAS,MAAM,IAAI,CAAC,SAAS5jjB,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,QAAQsxE,EAAEtxE,EAAE,QAAQ/N,EAAEq/E,EAAEr/E,EAAE2jnB,GAAGznjB,EAAEl8D,EAAEyloB,GAAGpmjB,EAAE3hB,EAAE8jE,QAAQxhI,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,MAAM,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,IAAI,IAAIykC,EAAE,GAAGmjB,EAAE,EAAEA,EAAE,MAAMA,EAAEnjB,EAAEmjB,IAAIA,EAAE,KAAKrlF,SAAS,IAAIwE,OAAO,GAAGk/D,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,GAAG,IAAIjmC,EAAEimC,GAAG,EAAE2hB,EAAEnjB,EAAE,MAAM,CAACmjB,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM,IAAI4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM,IAAI4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM,IAAI4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM,IAAI4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,MAAM4nD,EAAEtxE,EAAE0pB,OAAO2b,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASrlC,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAE,oBAAoB09jB,QAAQA,OAAO2qB,iBAAiB3qB,OAAO2qB,gBAAgBxpc,KAAK6+a,SAAS,oBAAoB4qB,UAAU,mBAAmBvppB,OAAOuppB,SAASD,iBAAiBC,SAASD,gBAAgBxpc,KAAKypc,UAAU,GAAGtolB,EAAE,CAAC,IAAImjB,EAAE,IAAIyiD,WAAW,IAAIpkE,EAAE8jE,QAAQ,WAAW,OAAOtlE,EAAEmjB,GAAGA,CAAC,CAAC,KAAK,CAAC,IAAIr/E,EAAE,IAAI23D,MAAM,IAAI+F,EAAE8jE,QAAQ,WAAW,IAAI,IAAIzzH,EAAE2vD,EAAE,EAAEA,EAAE,GAAGA,IAAI,IAAI,EAAEA,KAAK3vD,EAAE,WAAWhV,KAAKorE,UAAUnkE,EAAE09D,GAAG3vD,MAAM,EAAE2vD,IAAI,GAAG,IAAI,OAAO19D,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS+N,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEmjB,EAAEr/E,EAAE+N,EAAE,aAAanP,EAAEmP,EAAE,qBAAqB04D,EAAE,EAAEnB,EAAE,EAAE5H,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,GAAG,IAAIvZ,EAAEw/C,GAAGjmC,GAAG,EAAEq2C,EAAEpQ,GAAG,GAAGpC,GAAGvtD,EAAEA,GAAG,CAAC,GAAGuvF,MAAMphC,EAAE4O,OAAE,IAAS/8D,EAAEutrB,SAASvtrB,EAAEutrB,SAASj8mB,EAAE,GAAG,MAAM/jB,GAAG,MAAMwP,EAAE,CAAC,IAAI5F,EAAEllE,IAAI,MAAMs7D,IAAIA,EAAEY,EAAE,CAAC,EAAEgJ,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAK,MAAM4F,IAAIA,EAAEuU,EAAE,OAAOna,EAAE,IAAI,EAAEA,EAAE,IAAI,CAAC,IAAI7I,OAAE,IAAStuD,EAAEwtrB,MAAMxtrB,EAAEwtrB,OAAO,IAAItisB,MAAMoqD,UAAUvR,OAAE,IAAS/jC,EAAEytrB,MAAMztrB,EAAEytrB,MAAMl2nB,EAAE,EAAEuT,EAAExc,EAAEoK,GAAG30B,EAAEwzB,GAAG,IAAI,GAAGuT,EAAE,QAAG,IAAS9qE,EAAEutrB,WAAWxwnB,EAAEA,EAAE,EAAE,QAAQ+N,EAAE,GAAGxc,EAAEoK,SAAI,IAAS14D,EAAEytrB,QAAQ1ppB,EAAE,GAAGA,GAAG,IAAI,MAAM,IAAI31B,MAAM,mDAAmDsqD,EAAEpK,EAAEiJ,EAAExzB,EAAEutC,EAAEvU,EAAE,IAAIjsE,GAAG,KAAK,WAAWw9D,GAAG,cAAcvqB,GAAG,WAAWg8B,EAAE5vD,KAAKrf,IAAI,GAAG,IAAIivE,EAAE5vD,KAAKrf,IAAI,GAAG,IAAIivE,EAAE5vD,KAAKrf,IAAI,EAAE,IAAIivE,EAAE5vD,KAAK,IAAIrf,EAAE,IAAI27D,EAAE6B,EAAE,WAAW,IAAI,UAAUyR,EAAE5vD,KAAKs8C,IAAI,EAAE,IAAIsT,EAAE5vD,KAAK,IAAIs8C,EAAEsT,EAAE5vD,KAAKs8C,IAAI,GAAG,GAAG,GAAGsT,EAAE5vD,KAAKs8C,IAAI,GAAG,IAAIsT,EAAE5vD,KAAK4sD,IAAI,EAAE,IAAIgD,EAAE5vD,KAAK,IAAI4sD,EAAE,IAAI,IAAIM,EAAE,EAAEA,EAAE,IAAIA,EAAE0C,EAAE5vD,EAAEktD,GAAG9P,EAAE8P,GAAG,OAAO1N,GAAG9+D,EAAEkvE,EAAE,CAAC,EAAE,CAAC,oBAAoB,IAAI,YAAY,MAAM,IAAI,CAAC,SAAS//D,EAAE2vD,EAAEjmC,GAAG,IAAIykC,EAAEnuD,EAAE,aAAasxE,EAAEtxE,EAAE,qBAAqB2vD,EAAE8jE,QAAQ,SAASzzH,EAAE2vD,EAAEjmC,GAAG,IAAIz3B,EAAE09D,GAAGjmC,GAAG,EAAE,iBAAiB1pB,IAAI2vD,EAAE,WAAW3vD,EAAE,IAAI4pD,MAAM,IAAI,KAAK5pD,EAAE,MAAM,IAAInP,GAAGmP,EAAEA,GAAG,CAAC,GAAGo2D,SAASp2D,EAAEskpB,KAAKn2lB,KAAK,GAAGt9D,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI8+D,EAAE,IAAI,IAAI+I,EAAE,EAAEA,EAAE,KAAKA,EAAE/I,EAAE19D,EAAEymE,GAAG7nE,EAAE6nE,GAAG,OAAO/I,GAAG2hB,EAAEzgF,EAAE,CAAC,EAAE,CAAC,oBAAoB,IAAI,YAAY,MAAM,IAAI,CAAC,SAAS2kI,QAAQ7B,OAAOF,SAAS,IAAIjiI,QAAQ,SAASwO,EAAE2vD,GAAG,GAAG3vD,EAAExO,QAAQ,OAAOwO,EAAExO,QAAQm+D,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,OAAOw3B,IAAI,GAAG1pB,EAAE0pB,KAAKimC,EAAE,OAAOjmC,EAAE,OAAO,CAAC,EAAEgkqB,YAAY,SAAS1trB,GAAG,GAAGuU,OAAOs+B,KAAK,OAAOt+B,OAAOs+B,KAAK7yC,GAAG,IAAI2vD,EAAE,GAAG,IAAI,IAAIjmC,KAAK1pB,EAAE2vD,EAAEr6D,KAAKo0B,GAAG,OAAOimC,CAAC,EAAE99B,QAAQ,SAAS7xB,EAAE2vD,GAAG,GAAG3vD,EAAE6xB,QAAQ,OAAO7xB,EAAE6xB,QAAQ89B,GAAG,IAAI,IAAIjmC,EAAE,EAAEA,EAAE1pB,EAAE9N,OAAOw3B,IAAIimC,EAAE3vD,EAAE0pB,GAAGA,EAAE1pB,EAAE,EAAE2trB,WAAW,WAAW,IAAI,OAAOp5qB,OAAOo6E,eAAe,CAAC,EAAE,IAAI,CAAC,GAAG,SAAS3uF,EAAE2vD,EAAEjmC,GAAGnV,OAAOo6E,eAAe3uF,EAAE2vD,EAAE,CAACo7D,UAAS,EAAGz8B,YAAW,EAAGw8B,cAAa,EAAGj5H,MAAM63B,GAAG,CAAC,CAAC,MAAM1pB,GAAG,OAAO,SAASA,EAAE2vD,EAAEjmC,GAAG1pB,EAAE2vD,GAAGjmC,CAAC,CAAC,CAAC,CAA/L,GAAmMirD,QAAQ,CAAC,QAAQ,UAAU,OAAO,QAAQ,YAAY,WAAW,WAAW,OAAO,OAAO,MAAM,SAAS,SAAS,aAAa,iBAAiB,SAAS,SAAS,cAAc,YAAY,WAAW,YAAY,qBAAqB,YAAY,qBAAqB,SAAS,OAAO,WAAW,QAAQ,aAAa,WAAW,YAAY,YAAY,SAAS7D,UAAU,CAACA,QAAQhqB,UAAU,CAAC,EAAE,IAAI8moB,OAAOn6jB,QAAQm6jB,OAAO,SAAS5trB,GAAG,KAAKu6D,gBAAgBqznB,QAAQ,OAAO,IAAIA,OAAO5trB,GAAGu6D,KAAKjsD,KAAKtO,CAAC,EAAE4trB,OAAO9moB,UAAU+moB,aAAa,SAAS7trB,GAAG,KAAKA,aAAa8wE,SAAS,MAAM,IAAIy6C,UAAU,+BAA+B,IAAI57D,EAAE5pD,SAAS+xC,cAAc,UAAU6X,EAAEt2D,QAAQs2D,EAAEt2D,MAAM,CAAC,GAAGs2D,EAAEt2D,MAAMrG,QAAQ,OAAO+S,SAASuB,KAAK2wC,YAAY0X,GAAG,IAAIjmC,EAAEimC,EAAEmhf,cAAc3if,EAAEzkC,EAAEokqB,KAAKx8mB,EAAE5nD,EAAEqkqB,YAAY5/nB,GAAGmjB,IAAIA,EAAEvb,KAAKrsC,EAAE,QAAQykC,EAAEzkC,EAAEokqB,MAAMj8pB,QAAQ67pB,YAAY1trB,IAAI,SAAS2vD,GAAGjmC,EAAEimC,GAAG3vD,EAAE2vD,EAAE,IAAI99B,QAAQ8iD,SAAS,SAAShlB,GAAG3vD,EAAE2vD,KAAKjmC,EAAEimC,GAAG3vD,EAAE2vD,GAAG,IAAI,IAAI19D,EAAEy7rB,YAAYhkqB,GAAG74B,EAAEs9D,EAAE4H,KAAKrsC,EAAE6wC,KAAKjsD,MAAM,OAAOujB,QAAQ67pB,YAAYhkqB,IAAI,SAASimC,IAAIA,KAAK3vD,IAAI,IAAIxO,QAAQS,EAAE09D,MAAM3vD,EAAE2vD,GAAGjmC,EAAEimC,GAAG,IAAI99B,QAAQ8iD,SAAS,SAAShlB,GAAGA,KAAK3vD,GAAG2trB,WAAW3trB,EAAE2vD,EAAEjmC,EAAEimC,GAAG,IAAI5pD,SAASuB,KAAK6wC,YAAYwX,GAAG9+D,CAAC,EAAE+8rB,OAAO9moB,UAAUyglB,iBAAiB,WAAW,OAAOumD,KAAKvznB,KAAKjsD,KAAK,EAAEs/qB,OAAO9moB,UAAUknoB,gBAAgB,SAAShurB,GAAG,IAAI2vD,EAAEi+nB,OAAOK,cAAcjurB,GAAG0pB,EAAE6wC,KAAKsznB,aAAal+nB,GAAG,OAAO3vD,GAAG6xB,QAAQ67pB,YAAY/9nB,IAAI,SAASjmC,GAAG1pB,EAAE0pB,GAAGimC,EAAEjmC,EAAE,IAAIA,CAAC,EAAEmI,QAAQ67pB,YAAYE,OAAO9moB,YAAY,SAAS9mD,GAAGyzH,QAAQzzH,GAAG4trB,OAAO5trB,GAAG,SAAS2vD,GAAG,IAAIjmC,EAAEkkqB,OAAOj+nB,GAAG,OAAOjmC,EAAE1pB,GAAGi9C,MAAMvzB,EAAE,GAAGgkC,MAAMqI,KAAK2N,UAAU,GAAG,CAAC,IAAI+vD,QAAQy6jB,UAAU,SAASlurB,GAAG,OAAOA,aAAa8wE,OAAO,EAAE2iD,QAAQ+oQ,aAAa,SAASx8X,GAAG,OAAOyzH,QAAQm6jB,OAAO5trB,EAAE,EAAEyzH,QAAQw6jB,cAAcL,OAAOK,cAAc,SAASjurB,GAAG,IAAI2vD,EAAE,IAAImhB,QAAQ,MAAM,WAAWgqiB,SAAS96mB,IAAI6xB,QAAQ67pB,YAAY1trB,IAAI,SAAS0pB,GAAGimC,EAAEjmC,GAAG1pB,EAAE0pB,EAAE,IAAIimC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS3vD,EAAE2vD,EAAEjmC,GAQ1l3Q,SAASykC,EAAEnuD,GAAG,OAAOA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAIA,GAAG,KAAK,KAAKA,GAAG,KAAKA,GAAG,OAAOA,GAAG,OAAOA,GAAGA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,MAAM,CAA79BuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK63B,EAAEykqB,KAAK,uDAAuDzkqB,EAAEowS,EAAE,UAAUpwS,EAAE0kqB,gBAAgB,wKAAwK1kqB,EAAE2kqB,UAAU,IAAI3kqB,EAAE0kqB,gBAAgB,qCAAqC1kqB,EAAE4kqB,QAAQ,IAAIvwnB,OAAO,KAAKr0C,EAAEykqB,KAAK,KAAK,KAAKzkqB,EAAE6kqB,KAAK,IAAIxwnB,OAAO,KAAKr0C,EAAEowS,EAAE,MAAM,KAAKpwS,EAAE8kqB,mBAAmB,IAAIzwnB,OAAO,KAAKr0C,EAAE0kqB,gBAAgB,KAAK,KAAK1kqB,EAAE+kqB,aAAa,IAAI1wnB,OAAO,KAAKr0C,EAAE2kqB,UAAU,KAAK,KAAK3kqB,EAAEo5pB,QAAQ,IAAI/knB,OAAO,KAAKr0C,EAAE0kqB,gBAAgB,KAAK1kqB,EAAE2kqB,UAAU,MAAM,KAAK3kqB,EAAEglqB,WAAW,IAAI3wnB,OAAO,KAAKr0C,EAAE2kqB,UAAU,MAAM,KAAkS3kqB,EAAEm5pB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAGn5pB,EAAEg5pB,OAAO,SAAS1irB,GAAG,OAAOA,GAAG,IAAIA,GAAG,OAAO,KAAKA,GAAG,KAAKA,GAAG,IAAIA,GAAGA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAO,EAAE0pB,EAAE+4pB,IAAI,SAASzirB,GAAG,OAAO,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,IAAIA,CAAC,EAAE0pB,EAAEi5pB,gBAAgBx0nB,EAAEzkC,EAAEk5pB,WAAW,SAAS5irB,GAAG,OAAOmuD,EAAEnuD,IAAIA,GAAG,IAAIA,GAAG,IAAI,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAGA,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAQ1f,SAASykC,EAAEnuD,GAAG,OAAOA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAIA,GAAG,KAAK,KAAKA,GAAG,KAAKA,GAAG,OAAOA,GAAG,OAAOA,GAAGA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,MAAM,CAAtlCuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK63B,EAAEykqB,KAAK,oDAAoDzkqB,EAAEilqB,gBAAgB,yCAAyCjlqB,EAAEowS,EAAE,UAAUpwS,EAAE0kqB,gBAAgB,wKAAwK1kqB,EAAE2kqB,UAAU,IAAI3kqB,EAAE0kqB,gBAAgB,qCAAqC1kqB,EAAE4kqB,QAAQ,IAAIvwnB,OAAO,KAAKr0C,EAAEykqB,KAAK,KAAK,KAAKzkqB,EAAEklqB,mBAAmB,IAAI7wnB,OAAO,KAAKr0C,EAAEilqB,gBAAgB,KAAK,KAAKjlqB,EAAE6kqB,KAAK,IAAIxwnB,OAAO,KAAKr0C,EAAEowS,EAAE,MAAM,KAAKpwS,EAAE8kqB,mBAAmB,IAAIzwnB,OAAO,KAAKr0C,EAAE0kqB,gBAAgB,KAAK,KAAK1kqB,EAAE+kqB,aAAa,IAAI1wnB,OAAO,KAAKr0C,EAAE2kqB,UAAU,KAAK,KAAK3kqB,EAAEo5pB,QAAQ,IAAI/knB,OAAO,KAAKr0C,EAAE0kqB,gBAAgB,KAAK1kqB,EAAE2kqB,UAAU,MAAM,KAAK3kqB,EAAEglqB,WAAW,IAAI3wnB,OAAO,KAAKr0C,EAAE2kqB,UAAU,MAAM,KAAkS3kqB,EAAEm5pB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAGn5pB,EAAEg5pB,OAAO,SAAS1irB,GAAG,OAAOA,GAAG,GAAGA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAO,EAAE0pB,EAAEmlqB,iBAAiB,SAAS7urB,GAAG,OAAOA,GAAG,GAAGA,GAAG,GAAG,KAAKA,GAAG,KAAKA,GAAGA,GAAG,IAAIA,GAAG,IAAIA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,GAAG,EAAE0pB,EAAEolqB,uBAAuB,SAAS9urB,GAAG,OAAO,IAAIA,GAAG,KAAKA,GAAG,KAAKA,GAAGA,EAAE,IAAIA,EAAE,KAAK,MAAMA,GAAGA,EAAE,KAAKA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAO,EAAE0pB,EAAE+4pB,IAAI,SAASzirB,GAAG,OAAO,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,IAAIA,CAAC,EAAE0pB,EAAEi5pB,gBAAgBx0nB,EAAEzkC,EAAEk5pB,WAAW,SAAS5irB,GAAG,OAAOmuD,EAAEnuD,IAAIA,GAAG,IAAIA,GAAG,IAAI,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAGA,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAASA,EAAE2vD,EAAEjmC,GAAG,SAASykC,EAAEnuD,GAAG,OAAOA,GAAG,IAAIA,GAAG,IAAI,KAAKA,GAAGA,GAAG,IAAIA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAG,MAAM,CAQ96DuU,OAAOo6E,eAAejlE,EAAE,aAAa,CAAC73B,OAAM,IAAK63B,EAAEqlqB,mBAAmB,wKAAwKrlqB,EAAEslqB,aAAa,IAAItlqB,EAAEqlqB,mBAAmB,qCAAqCrlqB,EAAEulqB,sBAAsB,IAAIlxnB,OAAO,KAAKr0C,EAAEqlqB,mBAAmB,KAAK,KAAKrlqB,EAAEwlqB,gBAAgB,IAAInxnB,OAAO,KAAKr0C,EAAEslqB,aAAa,KAAK,KAAKtlqB,EAAEu5pB,WAAW,IAAIllnB,OAAO,KAAKr0C,EAAEqlqB,mBAAmB,KAAKrlqB,EAAEslqB,aAAa,MAAM,KAAKtlqB,EAAEq5pB,kBAAkB50nB,EAAEzkC,EAAEs5pB,aAAa,SAAShjrB,GAAG,OAAOmuD,EAAEnuD,IAAI,KAAKA,GAAG,KAAKA,GAAGA,GAAG,IAAIA,GAAG,IAAI,MAAMA,GAAGA,GAAG,KAAKA,GAAG,KAAKA,GAAG,MAAMA,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IA/Bo7D,CA+B/6D,GAAG,EA/BklD,WAAoD86mB,SAASrnf,SAAsCE,OAAOF,QAAQzzH,KAAkD+6mB,6BAAO,QAAI,uDAAF,kCAAE,0LCAx6E,IAAI30Q,EAAY5wO,EAAQ,MAEpB25jB,EAAQ3tqB,EAAOpT,OAcnB,SAASoT,EAAO4tqB,GAGd,OAFAC,EAAe7nf,YAAc4nf,EAAa5nf,aAAe4nf,EAAa/8rB,KAE/Dg9rB,EAEP,SAASA,EAAe9isB,GAKtB,OAJIA,IACFA,EAAS65W,EAAUnpT,MAAM,KAAMymB,YAG1B,IAAI0rnB,EAAa7isB,EAC1B,CACF,CAxBAonI,EAAOF,QAAU07jB,EAEjBA,EAAMrB,KAAOtsqB,EAAO8tqB,WACpBH,EAAM57mB,MAAQ/xD,EAAOgvS,YACrB2+X,EAAMp4f,UAAYv1K,EAAOklC,gBACzByooB,EAAMI,OAAS/tqB,EAAOguqB,aACtBL,EAAMh+rB,KAAOqwB,EAAO+pG,WACpB4jkB,EAAMh5D,IAAM30mB,EAAOiuqB,UAEnBN,EAAM3tqB,OAASA,kGCGf,SAAS1wB,EAAKD,EAAMC,GAAM,MACJ,oBAATA,EAAsBA,EAAO,CAAE4+rB,SAAS,GAC1B,iBAAT5+rB,IACdzE,QAAQs+D,KAAK,sDACb75D,EAAO,CAAE4+rB,SAAU5+rB,IAKjBA,EAAK4+rB,SAAW,6EAA6E/hrB,KAAK9c,EAAKM,MAClG,IAAIy6B,KAAK,CAAC,SAA6B/6B,GAAO,CAAEM,KAAMN,EAAKM,OAE7DN,CACR,CAED,SAASsf,EAAUtf,EAAKC,EAAMqf,GAC5B,IAAIgnD,EAAM,IAAImlU,eACdnlU,EAAIv4D,KAAK,MAAO/N,GAChBsmE,EAAI8nU,aAAe,OACnB9nU,EAAI44I,OAAS,WACX1yI,EAAOlG,EAAIp5D,SAAUjN,EAAMqf,EAC5B,EACDgnD,EAAI64I,QAAU,WACZ3jN,QAAQoB,MAAM,0BACf,EACD0pE,EAAI4kK,MACL,CAED,SAAS5kK,EAAatmE,GACpB,IAAIC,EAAM,IAAIwrY,eAEdxrY,EAAI8N,KAAK,OAAQ/N,GAAjB,GACA,IACEC,EAAIirO,MACL,CAAC,MAAOlrO,GAAK,CACd,OAAqB,KAAdC,EAAIm/L,QAA+B,KAAdn/L,EAAIm/L,MACjC,CAGD,SAASjwL,EAAOnP,GACd,IACEA,EAAK4oO,cAAc,IAAIu8T,WAAW,SACnC,CAAC,MAAO7lhB,GACP,IAAIrf,EAAMiV,SAASwzN,YAAY,eAC/BzoO,EAAI0oO,eAAe,SAAnB,KAAwCtsO,OAAQ,EAAG,EAAG,EAAG,GACnC,IADtB,WACsD,EAAG,MACzD2D,EAAK4oO,cAAc3oO,EACpB,CACF,KAtDGivE,EAA4B,iBAAX7yE,QAAuBA,OAAOA,SAAWA,OAC1DA,OAAyB,iBAATu5D,MAAqBA,KAAKA,OAASA,KACnDA,KAAyB,iBAAXupE,EAAAA,GAAuBA,EAAAA,EAAOA,SAAWA,EAAAA,EACvDA,EAAAA,OADO,EAyDPn/H,EAAiBkvE,EAAQroD,WAAa,YAAY/J,KAAK+J,UAAUq2L,YAAc,cAAcpgM,KAAK+J,UAAUq2L,aAAe,SAASpgM,KAAK+J,UAAUq2L,WAEnJ1wI,EAAS0C,EAAQp0C,SAEA,iBAAXz+B,QAAuBA,SAAW6yE,EACtC,WAAiC,EAGlC,aAAc4vnB,kBAAkB7ooB,YAAcj2D,EAC/C,SAAiBC,EAAMusE,EAAMN,GAAM,IAC/B9qE,EAAM8tE,EAAQ+2J,KAAO/2J,EAAQs2d,UAC7B19e,EAAI5yC,SAAS+xC,cAAc,KAC/BulB,EAAOA,GAAQvsE,EAAKuB,MAAQ,WAE5BsmD,EAAEZ,SAAWslB,EACb1kB,EAAEwsC,IAAM,WAKY,iBAATr0F,GAET6nD,EAAEX,KAAOlnD,EACL6nD,EAAE+jC,SAAWvvF,SAASuvF,OAKxB18E,EAAM24C,GAJNwe,EAAYxe,EAAEX,MACV7nC,EAASrf,EAAMusE,EAAMN,GACrB/8D,EAAM24C,EAAGA,EAAE/mD,OAAS,YAM1B+mD,EAAEX,KAAO/lD,EAAIykiB,gBAAgB5liB,GAC7B2pD,YAAW,WAAcxoD,EAAI2kiB,gBAAgBj+e,EAAEX,KAAO,GAAE,KACxDyC,YAAW,WAAcz6C,EAAM24C,EAAI,GAAE,GAExC,EAGC,qBAAsBjhC,UACtB,SAAiBqoD,EAAM1C,EAAMN,GAG7B,GAFAM,EAAOA,GAAQ0C,EAAK1tE,MAAQ,WAER,iBAAT0tE,EAUTroD,UAAUy+gB,iBAAiBrliB,EAAIivE,EAAMhD,GAAOM,QAT5C,GAAIlG,EAAY4I,GACd5vD,EAAS4vD,EAAM1C,EAAMN,OAChB,CACL,IAAI9qE,EAAI8T,SAAS+xC,cAAc,KAC/B7lD,EAAE+lD,KAAO+nB,EACT9tE,EAAEL,OAAS,SACX6oD,YAAW,WAAcz6C,EAAM/N,EAAI,GACpC,CAIJ,EAGC,SAAiBnB,EAAMqmE,EAAMn3D,EAAMq9D,GASnC,IANAA,EAAQA,GAASz+D,KAAK,GAAI,aAExBy+D,EAAMt3D,SAAS/J,MACfqhE,EAAMt3D,SAASuB,KAAKowM,UAAY,kBAGd,iBAAT5mN,EAAmB,OAAOqf,EAASrf,EAAMqmE,EAAMn3D,GAThB,IAWtC+8D,EAAsB,6BAAdjsE,EAAKK,KACbc,EAAW,eAAe0b,KAAKoyD,EAAQ+4H,cAAgB/4H,EAAQ6vnB,OAC/Dj3oB,EAAc,eAAehrC,KAAK+J,UAAUq2L,WAEhD,IAAKp1J,GAAgBokB,GAAS9qE,GAAapB,IAAyC,oBAAfg5qB,WAA4B,CAE/F,IAAI1ye,EAAS,IAAI0ye,WACjB1ye,EAAO04f,UAAY,WACjB,IAAIh/rB,EAAMsmM,EAAOrnM,OACjBe,EAAM8nD,EAAc9nD,EAAMA,EAAIivB,QAAQ,eAAgB,yBAClDu9C,EAAOA,EAAMlwE,SAAS6qD,KAAOnnD,EAC5B1D,SAAW0D,EAChBwsE,EAAQ,IACT,EACD85H,EAAO24f,cAAch/rB,EACtB,KAAM,KACDy8D,EAAMwS,EAAQ+2J,KAAO/2J,EAAQs2d,UAC7Bvrd,EAAMvd,EAAImpe,gBAAgB5liB,GAC1BusE,EAAOA,EAAMlwE,SAAW29E,EACvB39E,SAAS6qD,KAAO8yB,EACrBzN,EAAQ,KACR5iB,YAAW,WAAc8S,EAAIqpe,gBAAgB9rd,EAAM,GAAE,IACtD,CACF,GAGH/K,EAAQp0C,OAAS0xC,EAAO1xC,OAAS0xC,EAG/Bs2D,EAAOF,QAAUp2D,8CC9JjB,WAGA,IAAIuwT,EA4BJ,SAASrhY,EAAOwjsB,GAsBd,IArBA,IAKI5/qB,EAEAokH,EACAqrU,EAEAxia,EAVA4ypB,EAAW,EACXj+mB,EAAO,GAAGrkB,MAAMqI,KAAK2N,WACrBzxE,EAAI,EACJk8D,EAAI4hoB,EAAI79rB,OACRpC,EAAS,GAETmgsB,GAAU,EAGVC,GAAc,EAEdC,EAAU,WAAa,OAAOp+mB,EAAKi+mB,IAAa,EAChDI,EAAc,WAEZ,IADA,IAAIpne,EAAS,GACN,KAAKr7M,KAAKoirB,EAAI99rB,KACnB+2N,GAAU+me,EAAI99rB,KACdke,EAAI4/qB,EAAI99rB,GAEV,OAAO+2N,EAAO92N,OAAS,EAAI4c,SAASk6M,GAAU,IAChD,EAEG/2N,EAAIk8D,IAAKl8D,EAEd,GADAke,EAAI4/qB,EAAI99rB,GACJg+rB,EAeF,OAdAA,GAAU,EACD,KAAL9/qB,GACF+/qB,GAAc,EACd//qB,EAAI4/qB,IAAM99rB,IAEE,KAALke,GAA0B,KAAd4/qB,EAAI99rB,EAAI,IAC3Bi+rB,GAAc,EAEd//qB,EAAI4/qB,EADJ99rB,GAAK,IAILi+rB,GAAc,EAEhB9ypB,EAAYgzpB,IACJjgrB,GACR,IAAK,IACHrgB,GAAUgf,SAASqhrB,IAAW,IAAIlksB,SAAS,GAC3C,MACF,IAAK,IAGD6D,GADiB,kBADnBykI,EAAM47jB,MACyB57jB,aAAe7xG,OAClC6xG,EAEA7xG,OAAO6xK,aAAazlL,SAASylH,EAAK,KAC9C,MACF,IAAK,IACHzkI,GAAUgf,SAASqhrB,IAAW,IAC9B,MACF,IAAK,IACHvwP,EAAMl9a,OAAOD,WAAW0tqB,KAAWnqqB,QAAQoX,GAAa,IACxDttC,GAAUogsB,EAActwP,EAAMA,EAAI9/a,QAAQ,KAAM,IAChD,MACF,IAAK,IACHhwB,GAAUwb,KAAKE,UAAU2krB,KACzB,MACF,IAAK,IACHrgsB,GAAU,IAAMgf,SAASqhrB,IAAW,IAAIlksB,SAAS,GACjD,MACF,IAAK,IACH6D,GAAUqgsB,IACV,MACF,IAAK,IACHrgsB,GAAU,KAAOgf,SAASqhrB,IAAW,IAAIlksB,SAAS,IAClD,MACF,IAAK,IACH6D,GAAU,KAAOgf,SAASqhrB,IAAW,IAAIlksB,SAAS,IAAIsvE,cACtD,MACF,QACEzrE,GAAUqgB,MAGG,MAANA,EACT8/qB,GAAU,EAEVngsB,GAAUqgB,EAGd,OAAOrgB,CACT,EA3GE89X,EAAYj6P,EAAOF,QAAUlnI,GASrBA,OAASA,EACnBqhY,EAAUyiU,SAUV,SAAkBN,EAAKO,GACrB,OAAO/jsB,EAAO0wD,MAAM,KAAM,CAAC8yoB,GAAKl5oB,OAAOy5oB,GACzC,EAVuB,qBAAZjksB,SAAkD,oBAAhBA,QAAQC,MACnDshY,EAAU2iU,OAGZ,WACElksB,QAAQC,IAAIC,EAAO0wD,MAAM,KAAMymB,WACjC,EA2FD,CApHC,cCXF,SAAS8snB,EAAWzloB,GAuBhB,OAtBIA,aAAeiyD,IACfjyD,EAAI+e,MAAQ/e,EAAImgJ,OAASngJ,EAAIsY,IAAM,WAC/B,MAAM,IAAIj1D,MAAM,mBACpB,EACO28C,aAAeqnC,MACtBrnC,EAAImH,IAAMnH,EAAI+e,MAAQ/e,EAAImgJ,OAAS,WAC/B,MAAM,IAAI98L,MAAM,mBACpB,GAIJmG,OAAOgjM,OAAOxsJ,GAEdx2C,OAAOyxW,oBAAoBj7T,GAAKl5B,SAAQ,SAAUx/B,GAC9C,IAAIipE,EAAOvQ,EAAI14D,GAGI,iBAARipE,GAAqB/mD,OAAOk8qB,SAASn1nB,IAC5Ck1nB,EAAWl1nB,EAEnB,IAEOvQ,CACX,CAEA,IAAI2loB,EAAgBF,EAChBjtV,EAAWitV,EACfE,EAAc1gjB,QAAUuzN,EAGxB,MAAM5gK,EAIJ57I,WAAAA,CAAYt/B,QAEQn8B,IAAdm8B,EAAK9D,OAAoB8D,EAAK9D,KAAO,CAAC,GAE1C42C,KAAK52C,KAAO8D,EAAK9D,KACjB42C,KAAKo2nB,gBAAiB,CACxB,CAEAC,WAAAA,GACEr2nB,KAAKo2nB,gBAAiB,CACxB,EAOF,SAASE,EAAWh/rB,GAClB,OAAOA,EACJiuB,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACnB,CAUA,SAASsvC,EAAQw4I,GAEf,MAAM93M,EAASykB,OAAOiN,OAAO,MAE7B,IAAK,MAAM9K,KAAOkxL,EAChB93M,EAAO4mB,GAAOkxL,EAASlxL,GACxB,QAAAk9D,EAAAlQ,UAAAxxE,OAN2BotT,EAAO,IAAA11P,MAAAgqB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAPwrO,EAAOxrO,EAAA,GAAApQ,UAAAoQ,GAYnC,OALAwrO,EAAQztR,SAAQ,SAASk5B,GACvB,IAAK,MAAMr0C,KAAOq0C,EAChBj7D,EAAO4mB,GAAOq0C,EAAIr0C,EAEtB,IACyB5mB,CAC3B,CAcA,MAMMghsB,EAAqBvhmB,KAChBA,EAAK00H,KAIhB,MAAM8se,EAOJhqoB,WAAAA,CAAYiqoB,EAAW3sqB,GACrBk2C,KAAK7uC,OAAS,GACd6uC,KAAK02nB,YAAc5sqB,EAAQ4sqB,YAC3BD,EAAUE,KAAK32nB,KACjB,CAMAsmkB,OAAAA,CAAQpwmB,GACN8pC,KAAK7uC,QAAUmlqB,EAAWpgqB,EAC5B,CAMA8+lB,QAAAA,CAAShgiB,GACP,IAAKuhmB,EAAkBvhmB,GAAO,OAE9B,IAAIj8F,EAAYi8F,EAAK00H,KAChB10H,EAAK4hmB,cACR79rB,EAAY,GAAGinE,KAAK02nB,cAAc39rB,KAEpCinE,KAAK62nB,KAAK99rB,EACZ,CAMAk8nB,SAAAA,CAAUjgiB,GACHuhmB,EAAkBvhmB,KAEvBh1B,KAAK7uC,QArDU,UAsDjB,CAKA75B,KAAAA,GACE,OAAO0oE,KAAK7uC,MACd,CAQA0lqB,IAAAA,CAAK99rB,GACHinE,KAAK7uC,QAAU,gBAAgBp4B,KACjC,EAOF,MAAM+9rB,EACJtqoB,WAAAA,GAEEwT,KAAKigO,SAAW,CAAE/nS,SAAU,IAC5B8nE,KAAK68D,MAAQ,CAAC78D,KAAKigO,SACrB,CAEA,OAAIriS,GACF,OAAOoiE,KAAK68D,MAAM78D,KAAK68D,MAAMllI,OAAS,EACxC,CAEA,QAAIm/G,GAAS,OAAO92C,KAAKigO,QAAU,CAGnCtoO,GAAAA,CAAIq9B,GACFh1B,KAAKpiE,IAAI1F,SAAS6C,KAAKi6F,EACzB,CAGAggiB,QAAAA,CAAStra,GAEP,MAAM10H,EAAO,CAAE00H,OAAMxxN,SAAU,IAC/B8nE,KAAKrI,IAAIq9B,GACTh1B,KAAK68D,MAAM9hI,KAAKi6F,EAClB,CAEAigiB,SAAAA,GACE,GAAIj1jB,KAAK68D,MAAMllI,OAAS,EACtB,OAAOqoE,KAAK68D,MAAMj6E,KAItB,CAEAm0oB,aAAAA,GACE,KAAO/2nB,KAAKi1jB,cACd,CAEA3ob,MAAAA,GACE,OAAOv7L,KAAKE,UAAU+uD,KAAKigO,SAAU,KAAM,EAC7C,CAMA02Z,IAAAA,CAAKK,GAEH,OAAOh3nB,KAAKxT,YAAYyqoB,MAAMD,EAASh3nB,KAAKigO,SAG9C,CAMA,YAAOg3Z,CAAMD,EAAShimB,GAQpB,MAPoB,kBAATA,EACTgimB,EAAQ1wD,QAAQtxiB,GACPA,EAAK98F,WACd8+rB,EAAQhiE,SAAShgiB,GACjBA,EAAK98F,SAASo/B,SAAS09B,GAAUgL,KAAKi3nB,MAAMD,EAAShioB,KACrDgioB,EAAQ/hE,UAAUjgiB,IAEbgimB,CACT,CAKA,gBAAOE,CAAUlimB,GACK,kBAATA,GACNA,EAAK98F,WAEN88F,EAAK98F,SAASgwS,OAAMxsO,GAAoB,kBAAPA,IAGnCs5B,EAAK98F,SAAW,CAAC88F,EAAK98F,SAAS4yC,KAAK,KAEpCkqD,EAAK98F,SAASo/B,SAAS09B,IACrB8hoB,EAAUI,UAAUlioB,EAAM,IAGhC,EAuBF,MAAMmioB,UAAyBL,EAI7BtqoB,WAAAA,CAAY1iC,GACVosK,QACAl2H,KAAKl2C,QAAUA,CACjB,CAMAstqB,UAAAA,CAAWlhqB,EAAMwzL,GACF,KAATxzL,IAEJ8pC,KAAKg1jB,SAAStra,GACd1pJ,KAAKsmkB,QAAQpwmB,GACb8pC,KAAKi1jB,YACP,CAKAqR,OAAAA,CAAQpwmB,GACO,KAATA,GAEJ8pC,KAAKrI,IAAIzhC,EACX,CAMAmhqB,cAAAA,CAAen3S,EAASpoZ,GAEtB,MAAMk9F,EAAOkrT,EAAQppS,KACrB9hB,EAAK00H,KAAO5xN,EACZk9F,EAAK4hmB,aAAc,EACnB52nB,KAAKrI,IAAIq9B,EACX,CAEAsimB,MAAAA,GAEE,OADiB,IAAId,EAAax2nB,KAAMA,KAAKl2C,SAC7BxyB,OAClB,CAEA2qhB,QAAAA,GACE,OAAO,CACT,EAeF,SAASt6b,EAAOssH,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGtsH,OAHM,IAIlB,CAgDA,MAAM4vmB,EAAa,iDA4CnB,MACMC,EAAW,eACXC,EAAsB,gBACtBC,EAAY,oBACZC,EAAc,yEACdC,EAAmB,eA4BnBC,EAAmB,CACvBx9f,MAAO,eAAgBy9f,UAAW,GAE9BC,EAAmB,CACvBh/rB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLymsB,QAAS,MACTzsrB,SAAU,CAACssrB,IAEPI,EAAoB,CACxBl/rB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLymsB,QAAS,MACTzsrB,SAAU,CAACssrB,IAEPK,EAAqB,CACzB79f,MAAO,8IAUHoB,EAAU,SAASpB,EAAO9oM,GAC9B,MAAM27B,EAAO2nC,EACX,CACE97D,UAAW,UACXshM,QACA9oM,MACAga,SAAU,IANgC49D,UAAAxxE,OAAA,QAAA5G,IAAAo4E,UAAA,GAAAA,UAAA,GAAG,CAAC,GAgBlD,OANAj8C,EAAK3hB,SAASxQ,KAAKm9rB,GACnBhrqB,EAAK3hB,SAASxQ,KAAK,CACjBhC,UAAW,SACXshM,MAAO,6CACPy9f,UAAW,IAEN5qqB,CACT,EACMirqB,EAAsB18f,EAAQ,KAAM,KACpC28f,EAAuB38f,EAAQ,OAAQ,QACvC48f,EAAoB58f,EAAQ,IAAK,KACjC68f,EAAc,CAClBv/rB,UAAW,SACXshM,MAAOq9f,EACPI,UAAW,GAEPS,EAAgB,CACpBx/rB,UAAW,SACXshM,MAAOs9f,EACPG,UAAW,GAEPU,EAAqB,CACzBz/rB,UAAW,SACXshM,MAAOu9f,EACPE,UAAW,GAEPW,EAAkB,CACtB1/rB,UAAW,SACXshM,MAAOq9f,oGASPI,UAAW,GAEPY,EAAc,CAOlBr+f,MAAO,kBACP9uL,SAAU,CAAC,CACTxS,UAAW,SACXshM,MAAO,KACP9oM,IAAK,aACLymsB,QAAS,KACTzsrB,SAAU,CACRssrB,EACA,CACEx9f,MAAO,KACP9oM,IAAK,KACLumsB,UAAW,EACXvsrB,SAAU,CAACssrB,QAKbc,EAAa,CACjB5/rB,UAAW,QACXshM,MAAOm9f,EACPM,UAAW,GAEPc,EAAwB,CAC5B7/rB,UAAW,QACXshM,MAAOo9f,EACPK,UAAW,GAEPe,EAAe,CAEnBx+f,MAAO,UAAYo9f,EACnBK,UAAW,GAoBb,IAAIgB,EAAqB9+qB,OAAOgjM,OAAO,CACnCvwJ,UAAW,KACXssoB,iBAzKqB,OA0KrBvB,SAAUA,EACVC,oBAAqBA,EACrBC,UAAWA,EACXC,YAAaA,EACbC,iBAAkBA,EAClBoB,eAzKmB,+IA0KnBC,QArKY,WAAe,IAAd91jB,EAAIh6D,UAAAxxE,OAAA,QAAA5G,IAAAo4E,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvB,MAAM+vnB,EAAe,YAQrB,OAPI/1jB,EAAK8ta,SACP9ta,EAAKk3D,MApGT,WAAyB,QAAA9iH,EAAApO,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAkoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAtO,UAAAsO,GAErB,OADeD,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,GAEjD,CAiGiBwR,CACX48oB,EACA,OACA/1jB,EAAK8ta,OACL,SAEGp8e,EAAQ,CACb97D,UAAW,OACXshM,MAAO6+f,EACP3nsB,IAAK,IACLumsB,UAAW,EAEX,WAAYqB,CAAC5onB,EAAG6onB,KACE,IAAZ7onB,EAAEv5E,OAAaoisB,EAAK/C,aAAa,GAEtClzjB,EACL,EAmJI00jB,iBAAkBA,EAClBE,iBAAkBA,EAClBE,kBAAmBA,EACnBC,mBAAoBA,EACpBz8f,QAASA,EACT08f,oBAAqBA,EACrBC,qBAAsBA,EACtBC,kBAAmBA,EACnBC,YAAaA,EACbC,cAAeA,EACfC,mBAAoBA,EACpBC,gBAAiBA,EACjBC,YAAaA,EACbC,WAAYA,EACZC,sBAAuBA,EACvBC,aAAcA,EACdQ,kBApCsB,SAASnsqB,GACjC,OAAOlT,OAAOC,OAAOiT,EACnB,CAEE,WAAYisqB,CAAC5onB,EAAG6onB,KAAWA,EAAKhwqB,KAAKkwqB,YAAc/onB,EAAE,EAAE,EAEvD,SAAUgpnB,CAAChpnB,EAAG6onB,KAAeA,EAAKhwqB,KAAKkwqB,cAAgB/onB,EAAE,IAAI6onB,EAAK/C,aAAa,GAErF,IAuDA,SAASmD,EAAsB3loB,EAAOrwD,GAErB,MADAqwD,EAAMtnD,MAAMsnD,EAAM78D,MAAQ,IAEvCwM,EAAS6yrB,aAEb,CAOA,SAASoD,EAAcvsqB,EAAMynC,GACtBA,GACAznC,EAAKusqB,gBAOVvsqB,EAAKmtK,MAAQ,OAASntK,EAAKusqB,cAAc1uqB,MAAM,KAAK+f,KAAK,KAAO,sBAChE5d,EAAKwsqB,cAAgBF,EACrBtsqB,EAAKu/lB,SAAWv/lB,EAAKu/lB,UAAYv/lB,EAAKusqB,qBAC/BvsqB,EAAKusqB,mBAKW1osB,IAAnBm8B,EAAK4qqB,YAAyB5qqB,EAAK4qqB,UAAY,GACrD,CAMA,SAAS6B,EAAezsqB,EAAM0sqB,GACvBvqoB,MAAMC,QAAQpiC,EAAK8qqB,WAExB9qqB,EAAK8qqB,QA7UP,WAAyB,QAAAtyf,EAAAv8H,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAq2I,GAAAJ,EAAA,EAAAA,EAAAI,EAAAJ,IAAJ9tH,EAAI8tH,GAAAn8H,UAAAm8H,GAErB,MADe,IAAM9tH,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,KAAO,GAE9D,CA0UiB+upB,IAAU3sqB,EAAK8qqB,SAChC,CAMA,SAAS8B,EAAa5sqB,EAAM0sqB,GAC1B,GAAK1sqB,EAAK2mC,MAAV,CACA,GAAI3mC,EAAKmtK,OAASntK,EAAK37B,IAAK,MAAM,IAAIsiB,MAAM,4CAE5CqZ,EAAKmtK,MAAQntK,EAAK2mC,aACX3mC,EAAK2mC,KAJW,CAKzB,CAMA,SAASkmoB,EAAiB7sqB,EAAM0sqB,QAEP7osB,IAAnBm8B,EAAK4qqB,YAAyB5qqB,EAAK4qqB,UAAY,EACrD,CAGA,MAAMkC,EAAkB,CACtB,KACA,MACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,OACA,SAWF,SAASC,EAAgBC,EAAaC,GAAwD,IAAvCphsB,EAASowE,UAAAxxE,OAAA,QAAA5G,IAAAo4E,UAAA,GAAAA,UAAA,GAR9B,UAUhC,MAAMixnB,EAAmB,CAAC,EAiB1B,MAb2B,kBAAhBF,EACTG,EAAYthsB,EAAWmhsB,EAAYnvqB,MAAM,MAChCskC,MAAMC,QAAQ4qoB,GACvBG,EAAYthsB,EAAWmhsB,GAEvBlgrB,OAAOs+B,KAAK4hpB,GAAa5iqB,SAAQ,SAASv+B,GAExCihB,OAAOC,OACLmgrB,EACAH,EAAgBC,EAAYnhsB,GAAYohsB,EAAiBphsB,GAE7D,IAEKqhsB,EAYP,SAASC,EAAYthsB,EAAWuhsB,GAC1BH,IACFG,EAAcA,EAAY/gsB,KAAIlD,GAAKA,EAAEG,iBAEvC8jsB,EAAYhjqB,SAAQ,SAASijqB,GAC3B,MAAM7xT,EAAO6xT,EAAQxvqB,MAAM,KAC3BqvqB,EAAiB1xT,EAAK,IAAM,CAAC3vY,EAAWyhsB,EAAgB9xT,EAAK,GAAIA,EAAK,IACxE,GACF,CACF,CAUA,SAAS8xT,EAAgBD,EAASE,GAGhC,OAAIA,EACKz3nB,OAAOy3nB,GAUlB,SAAuBF,GACrB,OAAOP,EAAgBjnsB,SAASwnsB,EAAQ/jsB,cAC1C,CATSkksB,CAAcH,GAAW,EAAI,CACtC,CAqBA,SAASI,EAAgBrhmB,EAAQj3F,GAAe,IAAb,QAAEg2E,GAASh2E,EAO5C,SAASu4rB,EAAOtjsB,EAAOm+H,GACrB,OAAO,IAAIjyD,OACTmkB,EAAOrwF,GACP,KAAOgiG,EAASuhmB,iBAAmB,IAAM,KAAOplkB,EAAS,IAAM,IAEnE,CAeA,MAAMqlkB,EACJtuoB,WAAAA,GACEwT,KAAK+6nB,aAAe,CAAC,EAErB/6nB,KAAKg7nB,QAAU,GACfh7nB,KAAKi7nB,QAAU,EACfj7nB,KAAKljE,SAAW,CAClB,CAGAqpQ,OAAAA,CAAQlyD,EAAI9wE,GACVA,EAAKrmI,SAAWkjE,KAAKljE,WAErBkjE,KAAK+6nB,aAAa/6nB,KAAKi7nB,SAAW93jB,EAClCnjE,KAAKg7nB,QAAQjgsB,KAAK,CAACooI,EAAM8wE,IACzBj0I,KAAKi7nB,SA5eX,SAA0Bhnf,GACxB,OAAQ,IAAIzwI,OAAOywI,EAAGviN,WAAa,KAAMkpE,KAAK,IAAIjjE,OAAS,CAC7D,CA0esBujsB,CAAiBjnf,GAAM,CACzC,CAEAnY,OAAAA,GAC8B,IAAxB97H,KAAKg7nB,QAAQrjsB,SAGfqoE,KAAKpF,KAAO,IAAM,MAEpB,MAAMugoB,EAAcn7nB,KAAKg7nB,QAAQzhsB,KAAImiE,GAAMA,EAAG,KAC9CsE,KAAKo7nB,UAAYR,EArdvB,SAAcS,GAA0B,IAAjBnklB,EAAS/tC,UAAAxxE,OAAA,QAAA5G,IAAAo4E,UAAA,GAAAA,UAAA,GAAG,IAC7BmynB,EAAc,EAElB,OAAOD,EAAQ9hsB,KAAKsnT,IAClBy6Y,GAAe,EACf,MAAMzhoB,EAASyhoB,EACf,IAAIrnf,EAAKtsH,EAAOk5N,GACZn2K,EAAM,GAEV,KAAOupE,EAAGt8M,OAAS,GAAG,CACpB,MAAMk8D,EAAQ0joB,EAAW38nB,KAAKq5I,GAC9B,IAAKpgJ,EAAO,CACV62E,GAAOupE,EACP,KACF,CACAvpE,GAAOupE,EAAG54J,UAAU,EAAGwY,EAAM78D,OAC7Bi9M,EAAKA,EAAG54J,UAAUwY,EAAM78D,MAAQ68D,EAAM,GAAGl8D,QACrB,OAAhBk8D,EAAM,GAAG,IAAeA,EAAM,GAEhC62E,GAAO,KAAOviH,OAAO66C,OAAOnP,EAAM,IAAMgG,IAExC6wE,GAAO72E,EAAM,GACI,MAAbA,EAAM,IACRynoB,IAGN,CACA,OAAO5wjB,CAAG,IACTnxI,KAAI06M,GAAM,IAAIA,OAAOnpK,KAAKosE,EAC/B,CAwb8BpsE,CAAKqwpB,IAAc,GAC3Cn7nB,KAAK4D,UAAY,CACnB,CAGAhJ,IAAAA,CAAKuD,GACH6B,KAAKo7nB,UAAUx3nB,UAAY5D,KAAK4D,UAChC,MAAM/P,EAAQmM,KAAKo7nB,UAAUxgoB,KAAKuD,GAClC,IAAKtK,EAAS,OAAO,KAGrB,MAAMn8D,EAAIm8D,EAAM34D,WAAU,CAACwgE,EAAIhkE,IAAMA,EAAI,QAAY3G,IAAP2qE,IAExC8+E,EAAYx6E,KAAK+6nB,aAAarjsB,GAKpC,OAFAm8D,EAAM38D,OAAO,EAAGQ,GAETsiB,OAAOC,OAAO45C,EAAO2mF,EAC9B,EAkCF,MAAM+gjB,EACJ/uoB,WAAAA,GAEEwT,KAAK+7H,MAAQ,GAEb/7H,KAAKw7nB,aAAe,GACpBx7nB,KAAKvyC,MAAQ,EAEbuyC,KAAK4D,UAAY,EACjB5D,KAAKy7nB,WAAa,CACpB,CAGAC,UAAAA,CAAW1ksB,GACT,GAAIgpE,KAAKw7nB,aAAaxksB,GAAQ,OAAOgpE,KAAKw7nB,aAAaxksB,GAEvD,MAAMyvW,EAAU,IAAIq0V,EAIpB,OAHA96nB,KAAK+7H,MAAM5oI,MAAMn8D,GAAOsgC,SAAQ5H,IAAA,IAAEukL,EAAI9wE,GAAKzzG,EAAA,OAAK+2U,EAAQtgG,QAAQlyD,EAAI9wE,EAAK,IACzEsjO,EAAQ3qK,UACR97H,KAAKw7nB,aAAaxksB,GAASyvW,EACpBA,CACT,CAEAk1V,0BAAAA,GACE,OAA2B,IAApB37nB,KAAKy7nB,UACd,CAEAG,WAAAA,GACE57nB,KAAKy7nB,WAAa,CACpB,CAGAt1b,OAAAA,CAAQlyD,EAAI9wE,GACVnjE,KAAK+7H,MAAMhhM,KAAK,CAACk5M,EAAI9wE,IACH,UAAdA,EAAKvsI,MAAkBopE,KAAKvyC,OAClC,CAGAmtC,IAAAA,CAAKuD,GACH,MAAMoS,EAAIvQ,KAAK07nB,WAAW17nB,KAAKy7nB,YAC/BlrnB,EAAE3M,UAAY5D,KAAK4D,UACnB,IAAIruE,EAASg7E,EAAE3V,KAAKuD,GAiCpB,GAAI6B,KAAK27nB,6BACP,GAAIpmsB,GAAUA,EAAOyB,QAAUgpE,KAAK4D,eAAkB,CACpD,MAAMlB,EAAK1C,KAAK07nB,WAAW,GAC3Bh5nB,EAAGkB,UAAY5D,KAAK4D,UAAY,EAChCruE,EAASmtE,EAAG9H,KAAKuD,EACnB,CAWF,OARI5oE,IACFyqE,KAAKy7nB,YAAclmsB,EAAOuH,SAAW,EACjCkjE,KAAKy7nB,aAAez7nB,KAAKvyC,OAE3BuyC,KAAK47nB,eAIFrmsB,CACT,EA4IF,GAHK+jG,EAASuimB,qBAAoBvimB,EAASuimB,mBAAqB,IAG5DvimB,EAAS/tF,UAAY+tF,EAAS/tF,SAASxY,SAAS,QAClD,MAAM,IAAI8gB,MAAM,6FAMlB,OAFAylF,EAASwimB,iBAAmBjnoB,EAAQykC,EAASwimB,kBAAoB,CAAC,GAjFlE,SAASC,EAAY7uqB,EAAMynC,GACzB,MAAMqnoB,EAAmC9uqB,EACzC,GAAIA,EAAK+uqB,WAAY,OAAOD,EAE5B,CAGElC,GACAxiqB,SAAQuxlB,GAAOA,EAAI37lB,EAAMynC,KAE3B2kC,EAASuimB,mBAAmBvkqB,SAAQuxlB,GAAOA,EAAI37lB,EAAMynC,KAGrDznC,EAAKwsqB,cAAgB,KAErB,CACED,EAGAE,EAEAI,GACAziqB,SAAQuxlB,GAAOA,EAAI37lB,EAAMynC,KAE3BznC,EAAK+uqB,YAAa,EAElB,IAAIC,EAAiB,KAWrB,GAV6B,kBAAlBhvqB,EAAKu/lB,WACdyvE,EAAiBhvqB,EAAKu/lB,SAAS0vE,gBACxBjvqB,EAAKu/lB,SAAS0vE,UAGnBjvqB,EAAKu/lB,WACPv/lB,EAAKu/lB,SAAWwtE,EAAgB/sqB,EAAKu/lB,SAAUnzhB,EAASuhmB,mBAItD3tqB,EAAKkvqB,SAAWF,EAClB,MAAM,IAAIrorB,MAAM,kGAgClB,OA3BAqorB,EAAiBA,GAAkBhvqB,EAAKkvqB,SAAW,MACnDJ,EAAMK,iBAAmBzB,EAAOsB,GAAgB,GAE5CvnoB,IACGznC,EAAKmtK,QAAOntK,EAAKmtK,MAAQ,SAC9B2hgB,EAAMM,QAAU1B,EAAO1tqB,EAAKmtK,OACxBntK,EAAKqvqB,iBAAgBrvqB,EAAK37B,IAAM27B,EAAKmtK,OACpCntK,EAAK37B,KAAQ27B,EAAKsvqB,iBAAgBtvqB,EAAK37B,IAAM,SAC9C27B,EAAK37B,MAAKyqsB,EAAMS,MAAQ7B,EAAO1tqB,EAAK37B,MACxCyqsB,EAAMU,cAAgB/0mB,EAAOz6D,EAAK37B,MAAQ,GACtC27B,EAAKsvqB,gBAAkB7noB,EAAO+noB,gBAChCV,EAAMU,gBAAkBxvqB,EAAK37B,IAAM,IAAM,IAAMojE,EAAO+noB,gBAGtDxvqB,EAAK8qqB,UAASgE,EAAMW,UAAY/B,EAAuC1tqB,EAAK8qqB,UAC3E9qqB,EAAK3hB,WAAU2hB,EAAK3hB,SAAW,IAEpC2hB,EAAK3hB,SAAW,GAAG+wC,UAAUpvB,EAAK3hB,SAAShS,KAAI,SAASqc,GACtD,OAoDN,SAA2BsX,GACrBA,EAAKs5H,WAAat5H,EAAK0vqB,iBACzB1vqB,EAAK0vqB,eAAiB1vqB,EAAKs5H,SAASjtJ,KAAI,SAASiH,GAC/C,OAAOq0D,EAAQ3nC,EAAM,CAAEs5H,SAAU,MAAQhmJ,EAC3C,KAMF,GAAI0sB,EAAK0vqB,eACP,OAAO1vqB,EAAK0vqB,eAOd,GAAIC,EAAmB3vqB,GACrB,OAAO2nC,EAAQ3nC,EAAM,CAAE4vqB,OAAQ5vqB,EAAK4vqB,OAASjooB,EAAQ3nC,EAAK4vqB,QAAU,OAGtE,GAAI9irB,OAAOk8qB,SAAShpqB,GAClB,OAAO2nC,EAAQ3nC,GAIjB,OAAOA,CACT,CAhFa6vqB,CAAwB,SAANnnrB,EAAesX,EAAOtX,EACjD,KACAsX,EAAK3hB,SAAS+rB,SAAQ,SAAS1hB,GAAKmmrB,EAA+BnmrB,EAAIomrB,EAAQ,IAE3E9uqB,EAAK4vqB,QACPf,EAAY7uqB,EAAK4vqB,OAAQnooB,GAG3BqnoB,EAAMv1V,QA3HR,SAAwBv5U,GACtB,MAAMs3S,EAAK,IAAI+2X,EAWf,OATAruqB,EAAK3hB,SAAS+rB,SAAQ0lqB,GAAQx4X,EAAGr+D,QAAQ62b,EAAK3igB,MAAO,CAAEf,KAAM0jgB,EAAMpmsB,KAAM,YAErEs2B,EAAKwvqB,eACPl4X,EAAGr+D,QAAQj5O,EAAKwvqB,cAAe,CAAE9lsB,KAAM,QAErCs2B,EAAK8qqB,SACPxzX,EAAGr+D,QAAQj5O,EAAK8qqB,QAAS,CAAEphsB,KAAM,YAG5B4tU,CACT,CA8GkBy4X,CAAejB,GACxBA,CACT,CAYOD,CAA+BzimB,EACxC,CAaA,SAASujmB,EAAmB3vqB,GAC1B,QAAKA,IAEEA,EAAKsvqB,gBAAkBK,EAAmB3vqB,EAAK4vqB,QACxD,CAkDA,SAASI,EAAerimB,GACtB,MAAMi4B,EAAY,CAChB/iI,MAAO,CAAC,WAAY,OAAQ,cAC5Bq5B,KAAM,WACJ,MAAO,CACL+zqB,iBAAkB,GAClBC,iBAAiB,EAErB,EACA7rb,SAAU,CACRx4Q,SAAAA,GACE,OAAIinE,KAAKo9nB,gBAAwB,GAE1B,QAAUp9nB,KAAKm9nB,gBACxB,EACAE,WAAAA,GAEE,IAAKr9nB,KAAKs9nB,aAAezimB,EAAK0imB,YAAYv9nB,KAAKs5B,UAG7C,OAFAxnG,QAAQs+D,KAAK,iBAAiB4P,KAAKs5B,+CACnCt5B,KAAKo9nB,iBAAkB,EAChB9G,EAAWt2nB,KAAKjsD,MAGzB,IAAIxe,EAAS,CAAC,EAQd,OAPIyqE,KAAKs9nB,YACP/nsB,EAASslG,EAAK5B,cAAcj5B,KAAKjsD,MACjCisD,KAAKm9nB,iBAAmB5nsB,EAAO+jG,WAE/B/jG,EAASslG,EAAKO,UAAUp7B,KAAKs5B,SAAUt5B,KAAKjsD,KAAMisD,KAAKw9nB,gBACvDx9nB,KAAKm9nB,iBAAmBn9nB,KAAKs5B,UAExB/jG,EAAO+B,KAChB,EACAgmsB,UAAAA,GACE,OAAQt9nB,KAAKs5B,WAtCahiG,EAsCwB0oE,KAAKy9nB,WArCtDrmlB,QAAQ9/G,GAAmB,KAAVA,IAD1B,IAAkCA,CAuC5B,EACAkmsB,eAAcA,KACL,GAKXnqoB,MAAAA,CAAO9V,GACL,OAAOA,EAAc,MAAO,CAAC,EAAG,CAC9BA,EAAc,OAAQ,CACpBxS,MAAOi1B,KAAKjnE,UACZ2ksB,SAAU,CAAErlhB,UAAWr4G,KAAKq9nB,gBAGlC,GAUF,MAAO,CAAEvqkB,YAAW6qkB,UANF,CAChB5jnB,OAAAA,CAAQ6jnB,GACNA,EAAI78rB,UAAU,cAAe+xH,EAC/B,GAIJ,CAKA,MAAM+qkB,EAAkB,CACtB,yBAA0BjuqB,IAA0B,IAAzB,GAAE8rC,EAAE,OAAEnmE,EAAM,KAAE2gC,GAAMtG,EAC7C,MAAMkuqB,EAAiBtrB,EAAW92mB,GAClC,IAAKoioB,EAAenmsB,OAAQ,OAE5B,MAAMomsB,EAAavyrB,SAAS+xC,cAAc,OAC1CwgpB,EAAW1lhB,UAAY9iL,EAAO+B,MAC9B/B,EAAO+B,MA2DX,SAAsB+1M,EAAUgwf,EAAa/lsB,GAC3C,IAAI0msB,EAAY,EACZzosB,EAAS,GACb,MAAM0osB,EAAY,GAElB,SAASC,IACP,OAAK7wf,EAAS11M,QAAW0lsB,EAAY1lsB,OAGjC01M,EAAS,GAAGxzI,SAAWwjoB,EAAY,GAAGxjoB,OAChCwzI,EAAS,GAAGxzI,OAASwjoB,EAAY,GAAGxjoB,OAAUwzI,EAAWgwf,EAkBnC,UAAzBA,EAAY,GAAGxmsB,MAAoBw2M,EAAWgwf,EArB5Chwf,EAAS11M,OAAS01M,EAAWgwf,CAsBxC,CAKA,SAASh5rB,EAAK2wF,GAEZ,SAASmpmB,EAAgBl+T,GACvB,MAAO,IAAMA,EAAKtrJ,SAAW,KAAO2hd,EAAWr2T,EAAK3oY,OAAS,GAC/D,CAEA/B,GAAU,IAAM4gI,EAAInhC,GAAQ,GAAGz7F,IAAIiiE,KAAKw5B,EAAK6rI,WAAYs9d,GAAiBrzpB,KAAK,IAAM,GACvF,CAKA,SAASk8B,EAAMguB,GACbz/F,GAAU,KAAO4gI,EAAInhC,GAAQ,GAC/B,CAKA,SAAS3hC,EAAOx8D,IACG,UAAhBA,EAAMA,MAAoBwN,EAAO2iE,GAAOnwE,EAAMm+F,KACjD,CAEA,KAAOq4G,EAAS11M,QAAU0lsB,EAAY1lsB,QAAQ,CAC5C,IAAI09nB,EAAS6oE,IAGb,GAFA3osB,GAAU+gsB,EAAWh/rB,EAAM+jD,UAAU2ipB,EAAW3oE,EAAO,GAAGx7jB,SAC1DmkoB,EAAY3oE,EAAO,GAAGx7jB,OAClBw7jB,IAAWhob,EAAU,CAOvB4wf,EAAU5znB,UAAU/yC,QAAQ0vC,GAC5B,GACE3T,EAAOgikB,EAAOn+nB,OAAO,EAAG,GAAG,IAC3Bm+nB,EAAS6oE,UACF7oE,IAAWhob,GAAYgob,EAAO19nB,QAAU09nB,EAAO,GAAGx7jB,SAAWmkoB,GACtEC,EAAU5znB,UAAU/yC,QAAQjzB,EAC9B,KAC0B,UAApBgxnB,EAAO,GAAGx+nB,MACZonsB,EAAUljsB,KAAKs6nB,EAAO,GAAGrgiB,MAEzBipmB,EAAUr7oB,MAEZyQ,EAAOgikB,EAAOn+nB,OAAO,EAAG,GAAG,GAE/B,CACA,OAAO3B,EAAS+gsB,EAAWh/rB,EAAMpB,OAAO8nsB,GAC1C,CA/ImBI,CAAaN,EAAgBtrB,EAAWurB,GAAa7nqB,EAAK,GAgB7E,SAASigG,EAAInhC,GACX,OAAOA,EAAK2/I,SAASn+O,aACvB,CAKA,SAASg8qB,EAAWx9kB,GAElB,MAAMz/F,EAAS,GA0Bf,OAzBA,SAAU8osB,EAAYrpmB,EAAMn7B,GAC1B,IAAK,IAAI7E,EAAQggC,EAAK8+D,WAAY9+F,EAAOA,EAAQA,EAAMuuB,YAC9B,IAAnBvuB,EAAMgG,SACRnB,GAAU7E,EAAM21M,UAAUhzQ,OACE,IAAnBq9D,EAAMgG,WACfzlE,EAAOwF,KAAK,CACVlE,MAAO,QACPgjE,OAAQA,EACRm7B,KAAMhgC,IAER6E,EAASwkoB,EAAYrpoB,EAAO6E,GAIvBs8D,EAAInhE,GAAOnB,MAAM,oBACpBt+D,EAAOwF,KAAK,CACVlE,MAAO,OACPgjE,OAAQA,EACRm7B,KAAMhgC,KAKd,OAAO6E,CACR,CAxBD,CAwBGm7B,EAAM,GACFz/F,CACT,CAuGA,MAAM+osB,EAAmB,CAAC,EAKpBprsB,EAASyQ,IACb7R,QAAQoB,MAAMyQ,EAAQ,EAOlBysD,EAAO,SAACzsD,GAAqB,QAAAmiM,EAAA38H,UAAAxxE,OAAT6/E,EAAI,IAAAnoB,MAAAy2I,EAAA,EAAAA,EAAA,KAAAH,EAAA,EAAAA,EAAAG,EAAAH,IAAJnuH,EAAImuH,EAAA,GAAAx8H,UAAAw8H,GAC5B7zM,QAAQC,IAAI,SAAS4R,OAAc6zE,EACrC,EAMMkjlB,EAAaA,CAACt1lB,EAASzhE,KACvB26rB,EAAiB,GAAGl5nB,KAAWzhE,OAEnC7R,QAAQC,IAAI,oBAAoBqzE,MAAYzhE,KAC5C26rB,EAAiB,GAAGl5nB,KAAWzhE,MAAa,EAAI,EAQ5C46rB,EAAWjI,EACXkI,GAAY3poB,EACZ4poB,GAAW5okB,OAAO,WAs/BxB,IAAIz6B,GAh/BS,SAASP,GAGpB,MAAMo/G,EAAYjgM,OAAOiN,OAAO,MAE1B45C,EAAU7mD,OAAOiN,OAAO,MAExBoxD,EAAU,GAIhB,IAAIqmnB,GAAY,EAChB,MAAMC,EAAc,yBACdC,EAAqB,sFAErBC,EAAqB,CAAEC,mBAAmB,EAAMhnsB,KAAM,aAAcyT,SAAU,IAKpF,IAAIue,EAAU,CACZi1qB,cAAe,qBACfC,iBAAkB,8BAClBtI,YAAa,QACbuI,WAAY,KACZC,OAAO,EACPjlf,UAAW,KAGXklf,UAAWhI,GASb,SAASiI,EAAmBC,GAC1B,OAAOv1qB,EAAQi1qB,cAAc3rrB,KAAKisrB,EACpC,CAgDA,SAASjkmB,EAAUkkmB,EAAoBC,EAAe/B,EAAgBxwK,GACpE,IAAIj5gB,EAAO,GACPsrrB,EAAe,GACU,kBAAlBE,GACTxrrB,EAAOurrB,EACP9B,EAAiB+B,EAAc/B,eAC/B6B,EAAeE,EAAcjmmB,SAG7B0zb,OAAej8hB,IAGf2pqB,EAAW,SAAU,uDACrBA,EAAW,SAAU,yGACrB2kC,EAAeC,EACfvrrB,EAAOwrrB,GAIT,MAAMpgoB,EAAU,CACdprD,OACAulF,SAAU+lmB,GAIZ9rU,EAAK,mBAAoBp0T,GAIzB,MAAM5pE,EAAS4pE,EAAQ5pE,OACnB4pE,EAAQ5pE,OACRiqsB,EAAWrgoB,EAAQm6B,SAAUn6B,EAAQprD,KAAMyprB,EAAgBxwK,GAM/D,OAJAz3hB,EAAOwe,KAAOorD,EAAQprD,KAEtBw/W,EAAK,kBAAmBh+X,GAEjBA,CACT,CAWA,SAASiqsB,EAAWH,EAAcI,EAAiBjC,EAAgBxwK,GAOjE,SAAS0yK,EAAYxyqB,EAAM2mC,GACzB,MAAM8roB,EAAYrmmB,EAASuhmB,iBAAmBhnoB,EAAM,GAAGr9D,cAAgBq9D,EAAM,GAC7E,OAAO75C,OAAOuyC,UAAUujE,eAAet0D,KAAKtuC,EAAKu/lB,SAAUkzE,IAAczyqB,EAAKu/lB,SAASkzE,EACzF,CAkEA,SAASC,IACgB,MAAnBhisB,EAAIiisB,YA3BV,WACE,GAAmB,KAAfC,EAAmB,OAEvB,IAAIvqsB,EAAS,KAEb,GAA+B,kBAApBqI,EAAIiisB,YAA0B,CACvC,IAAK5lf,EAAUr8M,EAAIiisB,aAEjB,YADA3/S,EAAQomP,QAAQw5D,GAGlBvqsB,EAASiqsB,EAAW5hsB,EAAIiisB,YAAaC,GAAY,EAAMC,EAAcnisB,EAAIiisB,cACzEE,EAAcnisB,EAAIiisB,aAA4CtqsB,EAAOqI,GACvE,MACErI,EAAS0jG,EAAc6mmB,EAAYlisB,EAAIiisB,YAAYlosB,OAASiG,EAAIiisB,YAAc,MAO5EjisB,EAAIk6rB,UAAY,IAClBA,GAAavisB,EAAOuisB,WAEtB53S,EAAQm3S,eAAe9hsB,EAAO2qZ,QAAS3qZ,EAAO+jG,SAChD,CAII0mmB,GAlEJ,WACE,IAAKpisB,EAAI6unB,SAEP,YADAvsO,EAAQomP,QAAQw5D,GAIlB,IAAIl8nB,EAAY,EAChBhmE,EAAIy+rB,iBAAiBz4nB,UAAY,EACjC,IAAI/P,EAAQj2D,EAAIy+rB,iBAAiBzhoB,KAAKkloB,GAClCn/L,EAAM,GAEV,KAAO9sc,GAAO,CACZ8sc,GAAOm/L,EAAWzkpB,UAAUuoB,EAAW/P,EAAM78D,OAC7C,MAAMoyB,EAAOs2qB,EAAY9hsB,EAAKi2D,GAC9B,GAAIzqC,EAAM,CACR,MAAOsgM,EAAMu2e,GAAoB72qB,EAKjC,GAJA82X,EAAQomP,QAAQ3lI,GAChBA,EAAM,GAENm3L,GAAamI,EACTv2e,EAAK7hB,WAAW,KAGlB84T,GAAO9sc,EAAM,OACR,CACL,MAAM4vX,EAAWnqV,EAASwimB,iBAAiBpye,IAASA,EACpDw2L,EAAQk3S,WAAWvjoB,EAAM,GAAI4vX,EAC/B,CACF,MACEk9E,GAAO9sc,EAAM,GAEf+P,EAAYhmE,EAAIy+rB,iBAAiBz4nB,UACjC/P,EAAQj2D,EAAIy+rB,iBAAiBzhoB,KAAKkloB,EACpC,CACAn/L,GAAOm/L,EAAW5psB,OAAO0tE,GACzBs8U,EAAQomP,QAAQ3lI,EAClB,CAgCIu/L,GAEFJ,EAAa,EACf,CAKA,SAASK,EAAajzqB,GAKpB,OAJIA,EAAKn0B,WACPmnZ,EAAQ80O,SAAS17hB,EAASwimB,iBAAiB5uqB,EAAKn0B,YAAcm0B,EAAKn0B,WAErE6E,EAAMoc,OAAOiN,OAAOiG,EAAM,CAAEynC,OAAQ,CAAEr9D,MAAOsG,KACtCA,CACT,CAQA,SAASwisB,EAAUlzqB,EAAM2mC,EAAOwsoB,GAC9B,IAAIhzc,EAh1CV,SAAoBp5C,EAAIqsf,GACtB,MAAMzsoB,EAAQogJ,GAAMA,EAAGr5I,KAAK0loB,GAC5B,OAAOzsoB,GAAyB,IAAhBA,EAAM78D,KACxB,CA60CoB6wM,CAAW36K,EAAKuvqB,MAAO4D,GAErC,GAAIhzc,EAAS,CACX,GAAIngO,EAAK,UAAW,CAClB,MAAMksqB,EAAO,IAAIhxf,EAASl7K,GAC1BA,EAAK,UAAU2mC,EAAOuloB,GAClBA,EAAKhD,iBAAgB/oc,GAAU,EACrC,CAEA,GAAIA,EAAS,CACX,KAAOngO,EAAKqzqB,YAAcrzqB,EAAKynC,QAC7BznC,EAAOA,EAAKynC,OAEd,OAAOznC,CACT,CACF,CAGA,GAAIA,EAAKsvqB,eACP,OAAO4D,EAAUlzqB,EAAKynC,OAAQd,EAAOwsoB,EAEzC,CAOA,SAASG,EAASF,GAChB,OAA+B,IAA3B1isB,EAAI6oW,QAAQg1V,YAGdqE,GAAcQ,EAAO,GACd,IAIPG,GAA2B,EACpB,EAEX,CAQA,SAASC,EAAa7soB,GACpB,MAAMysoB,EAASzsoB,EAAM,GACf8soB,EAAU9soB,EAAMylI,KAEhB8/f,EAAO,IAAIhxf,EAASu4f,GAEpBC,EAAkB,CAACD,EAAQjH,cAAeiH,EAAQ,aACxD,IAAK,MAAM5niB,KAAM6niB,EACf,GAAK7niB,IACLA,EAAGllG,EAAOuloB,GACNA,EAAKhD,gBAAgB,OAAOoK,EAASF,GAuB3C,OApBIK,GAAWA,EAAQpE,iBACrBoE,EAAQlE,MA97CP,IAAIj5nB,OA87CkB88nB,EA97CL/6qB,QAAQ,wBAAyB,QAAS,MAi8C1Do7qB,EAAQv6S,KACV05S,GAAcQ,GAEVK,EAAQE,eACVf,GAAcQ,GAEhBV,IACKe,EAAQG,aAAgBH,EAAQE,eACnCf,EAAaQ,IAGjBH,EAAaQ,GAKNA,EAAQG,YAAc,EAAIR,EAAO3osB,MAC1C,CAOA,SAASopsB,EAAWltoB,GAClB,MAAMysoB,EAASzsoB,EAAM,GACfwsoB,EAAqBZ,EAAgBvpsB,OAAO29D,EAAM78D,OAElDgqsB,EAAUZ,EAAUxisB,EAAKi2D,EAAOwsoB,GACtC,IAAKW,EAAW,OAAOvC,GAEvB,MAAMt8mB,EAASvkF,EACXukF,EAAOikU,KACT05S,GAAcQ,GAERn+mB,EAAO8+mB,WAAa9+mB,EAAO++mB,aAC/BpB,GAAcQ,GAEhBV,IACIz9mB,EAAO++mB,aACTpB,EAAaQ,IAGjB,GACM1isB,EAAI7E,WACNmnZ,EAAQ+0O,YAELr3nB,EAAIwoZ,MAASxoZ,EAAIiisB,cACpB/H,GAAal6rB,EAAIk6rB,WAEnBl6rB,EAAMA,EAAI+2D,aACH/2D,IAAQojsB,EAAQrsoB,QAOzB,OANIqsoB,EAAQlE,SACNkE,EAAQzE,iBACVyE,EAAQlE,OAAOL,MAAQuE,EAAQvE,OAEjC0D,EAAaa,EAAQlE,SAEhB36mB,EAAO8+mB,UAAY,EAAIX,EAAO3osB,MACvC,CAaA,IAAIwpsB,EAAY,CAAC,EAQjB,SAASC,EAAcC,EAAiBxtoB,GACtC,MAAMysoB,EAASzsoB,GAASA,EAAM,GAK9B,GAFAisoB,GAAcuB,EAEA,MAAVf,EAEF,OADAV,IACO,EAOT,GAAuB,UAAnBuB,EAAUvqsB,MAAmC,QAAfi9D,EAAMj9D,MAAkBuqsB,EAAUnqsB,QAAU68D,EAAM78D,OAAoB,KAAXspsB,EAAe,CAG1G,GADAR,GAAcL,EAAgBtsoB,MAAMU,EAAM78D,MAAO68D,EAAM78D,MAAQ,IAC1D0nsB,EAAW,CAEd,MAAMv+oB,EAAM,IAAItsC,MAAM,uBAGtB,MAFAssC,EAAIk/oB,aAAeA,EACnBl/oB,EAAImhpB,QAAUH,EAAU7ngB,KAClBn5I,CACR,CACA,OAAO,CACT,CAGA,GAFAghpB,EAAYttoB,EAEO,UAAfA,EAAMj9D,KACR,OAAO8psB,EAAa7soB,GACf,GAAmB,YAAfA,EAAMj9D,OAAuB4msB,EAAgB,CAGtD,MAAMr9oB,EAAM,IAAItsC,MAAM,mBAAqBysrB,EAAS,gBAAkB1isB,EAAI7E,WAAa,aAAe,KAEtG,MADAonD,EAAIjzB,KAAOtvB,EACLuiD,CACR,CAAO,GAAmB,QAAf0T,EAAMj9D,KAAgB,CAC/B,MAAMonsB,EAAY+C,EAAWltoB,GAC7B,GAAImqoB,IAAcS,GAChB,OAAOT,CAEX,CAKA,GAAmB,YAAfnqoB,EAAMj9D,MAAiC,KAAX0psB,EAE9B,OAAO,EAOT,GAAI1f,EAAa,KAAUA,EAA2B,EAAd/snB,EAAM78D,MAAW,CAEvD,MADY,IAAI6c,MAAM,4DAExB,CAeA,OADAisrB,GAAcQ,EACPA,EAAO3osB,MAChB,CAEA,MAAM2hG,EAAWikmB,EAAY8B,GAC7B,IAAK/lmB,EAEH,MADApmG,EAAM0rsB,EAAmBr5qB,QAAQ,KAAM85qB,IACjC,IAAIxrrB,MAAM,sBAAwBwrrB,EAAe,KAGzD,MAAM78qB,EAAKm4qB,EAAgBrhmB,EAAU,CAAEjhB,YACvC,IAAI9iF,EAAS,GAETqI,EAAMovhB,GAAgBxqgB,EAE1B,MAAMu9qB,EAAgB,CAAC,EACjB7/S,EAAU,IAAIp2X,EAAQq1qB,UAAUr1qB,IA5GtC,WACE,MAAMohF,EAAO,GACb,IAAK,IAAIhgG,EAAUtN,EAAKsN,IAAYouF,EAAUpuF,EAAUA,EAAQypD,OAC1DzpD,EAAQnS,WACVmyG,EAAK/zG,QAAQ+T,EAAQnS,WAGzBmyG,EAAK5zE,SAAQ7iB,GAAQyrY,EAAQ80O,SAASvgnB,IACxC,CAqGA8srB,GACA,IAAIzB,EAAa,GACbhI,EAAY,EACZ9gsB,EAAQ,EACR4prB,EAAa,EACb6f,GAA2B,EAE/B,IAGE,IAFA7isB,EAAI6oW,QAAQm1V,gBAEH,CACPhb,IACI6f,EAGFA,GAA2B,EAE3B7isB,EAAI6oW,QAAQm1V,cAEdh+rB,EAAI6oW,QAAQ7iS,UAAY5sE,EAExB,MAAM68D,EAAQj2D,EAAI6oW,QAAQ7rS,KAAK6koB,GAG/B,IAAK5roB,EAAO,MAEZ,MACM2toB,EAAiBJ,EADH3B,EAAgBpkpB,UAAUrkD,EAAO68D,EAAM78D,OACT68D,GAClD78D,EAAQ68D,EAAM78D,MAAQwqsB,CACxB,CAMA,OALAJ,EAAc3B,EAAgBvpsB,OAAOc,IACrCkpZ,EAAQ62S,gBACR72S,EAAQ+hI,WACR1shB,EAAS2qZ,EAAQo3S,SAEV,CAGLQ,UAAWrnsB,KAAKC,MAAMonsB,GACtBxgsB,MAAO/B,EACP+jG,SAAU+lmB,EACVrH,SAAS,EACT93S,QAASA,EACTtiZ,IAAKA,EAET,CAAE,MAAOuiD,GACP,GAAIA,EAAIx8C,SAAWw8C,EAAIx8C,QAAQ5Q,SAAS,WACtC,MAAO,CACLilsB,SAAS,EACTyJ,UAAW,CACTv8f,IAAK/kJ,EAAIx8C,QACTw7D,QAASsgoB,EAAgBtsoB,MAAMn8D,EAAQ,IAAKA,EAAQ,KACpDk2B,KAAMizB,EAAIjzB,MAEZw0qB,MAAOnssB,EACPuisB,UAAW,EACXxgsB,MAAOinsB,EAASkB,GAChBv/S,QAASA,GAEN,GAAIw+S,EACT,MAAO,CACL1G,SAAS,EACTF,UAAW,EACXxgsB,MAAOinsB,EAASkB,GAChBv/S,QAASA,EACT5mT,SAAU+lmB,EACVzhsB,IAAKA,EACL+jsB,YAAaxhpB,GAGf,MAAMA,CAEV,CACF,CAmCA,SAAS84C,EAAcllF,EAAM6trB,GAC3BA,EAAiBA,GAAkB93qB,EAAQmwL,WAAajgM,OAAOs+B,KAAK2hK,GACpE,MAAM4nf,EA5BR,SAAiC9trB,GAC/B,MAAMxe,EAAS,CACbuisB,UAAW,EACX53S,QAAS,IAAIp2X,EAAQq1qB,UAAUr1qB,GAC/BxyB,MAAOinsB,EAASxqrB,GAChBikrB,SAAS,EACTp6rB,IAAKihsB,GAGP,OADAtpsB,EAAO2qZ,QAAQomP,QAAQvynB,GAChBxe,CACT,CAkBoBussB,CAAwB/trB,GAEpC1E,EAAUuyrB,EAAenssB,OAAO8nsB,GAAa9nsB,OAAOsssB,GAAexosB,KAAIzB,GAC3E0nsB,EAAW1nsB,EAAMic,GAAM,KAEzB1E,EAAQlY,QAAQ0qsB,GAEhB,MAAMjhZ,EAASvxS,EAAQrZ,MAAK,CAACM,EAAGC,KAE9B,GAAID,EAAEwhsB,YAAcvhsB,EAAEuhsB,UAAW,OAAOvhsB,EAAEuhsB,UAAYxhsB,EAAEwhsB,UAIxD,GAAIxhsB,EAAEgjG,UAAY/iG,EAAE+iG,SAAU,CAC5B,GAAIikmB,EAAYjnsB,EAAEgjG,UAAU0omB,aAAezrsB,EAAE+iG,SAC3C,OAAO,EACF,GAAIikmB,EAAYhnsB,EAAE+iG,UAAU0omB,aAAe1rsB,EAAEgjG,SAClD,OAAQ,CAEZ,CAMA,OAAO,CAAC,KAGH2omB,EAAMC,GAActhZ,EAGrBrrT,EAAS0ssB,EAGf,OAFA1ssB,EAAO4ssB,YAAcD,EAEd3ssB,CACT,CAyCA,MAAM6ssB,EAAW,CACf,0BAA2B31pB,IAAY,IAAX,GAAEivB,GAAIjvB,EAC5B3iB,EAAQo1qB,QACVxjoB,EAAG28G,UAAY38G,EAAG28G,UAAU9yJ,QAAQ,MAAO,IAAIA,QAAQ,aAAc,MACvE,EAEF,yBAA0BmnB,IAAgB,IAAf,OAAEn3C,GAAQm3C,EAC/B5iB,EAAQo1qB,QACV3psB,EAAO+B,MAAQ/B,EAAO+B,MAAMiuB,QAAQ,MAAO,QAC7C,GAIE88qB,EAAiB,mBAEjBC,EAAmB,CACvB,yBAA0B11pB,IAAgB,IAAf,OAAEr3C,GAAQq3C,EAC/B9iB,EAAQm1qB,aACV1psB,EAAO+B,MAAQ/B,EAAO+B,MAAMiuB,QAAQ88qB,GAAiB9xnB,GACnDA,EAAEhrD,QAAQ,MAAOuE,EAAQm1qB,cAE7B,GAUJ,SAASsD,EAAiBh6pB,GAExB,IAAIysD,EAAO,KACX,MAAMsE,EA1oBR,SAAuBkpmB,GACrB,IAAI/usB,EAAU+usB,EAAMzpsB,UAAY,IAEhCtF,GAAW+usB,EAAM7hnB,WAAa6hnB,EAAM7hnB,WAAW5nF,UAAY,GAG3D,MAAM86D,EAAQ/pC,EAAQk1qB,iBAAiBpkoB,KAAKnnE,GAC5C,GAAIogE,EAAO,CACT,MAAMylC,EAAWikmB,EAAY1poB,EAAM,IAKnC,OAJKylC,IACHlpC,EAAKwuoB,EAAmBr5qB,QAAQ,KAAMsuC,EAAM,KAC5CzD,EAAK,oDAAqDoyoB,IAErDlpmB,EAAWzlC,EAAM,GAAK,cAC/B,CAEA,OAAOpgE,EACJs3B,MAAM,OACN30B,MAAMqssB,GAAWrD,EAAmBqD,IAAWlF,EAAYkF,IAChE,CAunBmBC,CAAcn6pB,GAE/B,GAAI62pB,EAAmB9lmB,GAAW,OAGlCi6R,EAAK,0BACH,CAAE73T,GAAInzB,EAAS+wD,SAAUA,IAE3BtE,EAAOzsD,EACP,MAAMrS,EAAO8+D,EAAKz6D,YACZhlC,EAAS+jG,EAAW8B,EAAUllE,EAAM,CAAEojE,WAAUkkmB,gBAAgB,IAAUvkmB,EAAc/iE,GAG9Fq9V,EAAK,yBAA0B,CAAE73T,GAAInzB,EAAShzC,SAAQ2gC,SAEtDqS,EAAQ8vI,UAAY9iL,EAAO+B,MAzD7B,SAAyBixC,EAASo6pB,EAAaC,GAC7C,MAAMtpmB,EAAWqpmB,EAAc9hoB,EAAQ8hoB,GAAeC,EAEtDr6pB,EAAQ60K,UAAUzlJ,IAAI,QAClB2hC,GAAU/wD,EAAQ60K,UAAUzlJ,IAAI2hC,EACtC,CAqDEupmB,CAAgBt6pB,EAAS+wD,EAAU/jG,EAAO+jG,UAC1C/wD,EAAQhzC,OAAS,CACf+jG,SAAU/jG,EAAO+jG,SAEjB26G,GAAI1+M,EAAOuisB,UACXgL,UAAWvtsB,EAAOuisB,WAEhBvisB,EAAO4ssB,cACT55pB,EAAQ45pB,YAAc,CACpB7omB,SAAU/jG,EAAO4ssB,YAAY7omB,SAE7B26G,GAAI1+M,EAAO4ssB,YAAYrK,UACvBgL,UAAWvtsB,EAAO4ssB,YAAYrK,WAGpC,CAqBA,MAAMiL,EAAmBA,KACvB,GAAIA,EAAiBl6c,OAAQ,OAC7Bk6c,EAAiBl6c,QAAS,EAE1B6xa,EAAW,SAAU,kEAENlvpB,SAASiwD,iBAAiB,YAClCnkC,QAAQirqB,EAAiB,EAUlC,IAAIS,GAAiB,EAKrB,SAASC,IAEP,GAA4B,YAAxBz3rB,SAAS6xM,WAEX,YADA2lf,GAAiB,GAIJx3rB,SAASiwD,iBAAiB,YAClCnkC,QAAQirqB,EACjB,CAuFA,SAAShF,EAAYzlsB,GAEnB,OADAA,GAAQA,GAAQ,IAAItB,cACbyjN,EAAUniN,IAASmiN,EAAUp5I,EAAQ/oE,GAC9C,CAOA,SAASorsB,EAAgBC,EAASt2pB,GAAoB,IAAlB,aAAEwypB,GAAcxypB,EACzB,kBAAds2pB,IACTA,EAAY,CAACA,IAEfA,EAAU7rqB,SAAQ2we,IAAWpnc,EAAQonc,EAAMzxgB,eAAiB6osB,CAAY,GAC1E,CAMA,SAAS0C,EAAcjqsB,GACrB,MAAMsrsB,EAAO7F,EAAYzlsB,GACzB,OAAOsrsB,IAASA,EAAKtE,iBACvB,CAsCA,SAASvrU,EAAK18X,EAAO2gF,GACnB,MAAMuhF,EAAKliK,EACXwhF,EAAQ/gD,SAAQ,SAAS45C,GACnBA,EAAO6nF,IACT7nF,EAAO6nF,GAAIvhF,EAEf,GACF,CApJsB,qBAAX7kF,QAA0BA,OAAO8Y,kBAC1C9Y,OAAO8Y,iBAAiB,oBAP1B,WAEMu3rB,GAAgBC,GACtB,IAIoD,GA8KpDjprB,OAAOC,OAAO4gF,EAAM,CAClBO,YACAnC,gBACAgqmB,eACAI,UAvBF,SAA4BrpkB,GAI1B,OAHA0giB,EAAW,SAAU,+CACrBA,EAAW,SAAU,sEAzTJ/3nB,EA2TAq3F,EA1TXlwG,EAAQm1qB,YAAcn1qB,EAAQo1qB,MAI7Bv8pB,EAAKpd,QAAQo5qB,GAAa9qoB,GACjB,OAAVA,EACK/pC,EAAQo1qB,MAAQ,OAASrroB,EACvB/pC,EAAQm1qB,WACVproB,EAAMtuC,QAAQ,MAAOuE,EAAQm1qB,YAE/BproB,IATAlxB,EAFX,IAAmBA,CA4TnB,EAmBE4/pB,mBAEAe,eAfF,SAAiC5noB,GAI/B,OAHAg/lB,EAAW,SAAU,oDACrBA,EAAW,SAAU,oCAEd6nC,EAAiB7moB,EAC1B,EAWEjqD,UA5OF,SAAmB03c,GACbA,EAAY+1O,QACdxkC,EAAW,SAAU,6CACrBA,EAAW,SAAU,uEAEvB5woB,EAAU00qB,GAAU10qB,EAASq/b,EAC/B,EAuOE45O,mBACAQ,uBApNF,WACE7oC,EAAW,SAAU,wEACrBsoC,GAAiB,CACnB,EAkNEQ,iBAhLF,SAA0BnE,EAAcoE,GACtC,IAAIL,EAAO,KACX,IACEA,EAAOK,EAAmB5omB,EAC5B,CAAE,MAAO6omB,GAGP,GAFAxwsB,EAAM,wDAAwDqyB,QAAQ,KAAM85qB,KAEvEX,EAAa,MAAMgF,EAAkBxwsB,EAAMwwsB,GAKhDN,EAAOvE,CACT,CAEKuE,EAAKtrsB,OAAMsrsB,EAAKtrsB,KAAOunsB,GAC5Bplf,EAAUolf,GAAgB+D,EAC1BA,EAAKO,cAAgBF,EAAmBhxf,KAAK,KAAM53G,GAE/CuomB,EAAKvioB,SACPqioB,EAAgBE,EAAKvioB,QAAS,CAAEw+nB,gBAEpC,EA2JEuE,mBApJF,SAA4BvE,UACnBplf,EAAUolf,GACjB,IAAK,MAAMp3L,KAASjuf,OAAOs+B,KAAKuoB,GAC1BA,EAAQonc,KAAWo3L,UACdx+nB,EAAQonc,EAGrB,EA8IE/sa,cAzIF,WACE,OAAOlhF,OAAOs+B,KAAK2hK,EACrB,EAwIEsjf,cACA2F,kBACAW,gBA/HF,SAAyB/rsB,GACvB4iqB,EAAW,SAAU,oDACrBA,EAAW,SAAU,oEAErB,MAAM0oC,EAAO7F,EAAYzlsB,GACzB,GAAIsrsB,EAAQ,OAAOA,EAGnB,MADY,IAAIvvrB,MAAM,iDAAmD0R,QAAQ,KAAMztB,GAEzF,EAuHEiqsB,gBACAltoB,QAAS2poB,GACT5zN,UA/DF,SAAmB15Z,IArBnB,SAA0BA,GAEpBA,EAAO,2BAA6BA,EAAO,6BAC7CA,EAAO,2BAA8B9nD,IACnC8nD,EAAO,yBACLl3D,OAAOC,OAAO,CAAEuorB,MAAOp5qB,EAAKsyC,IAAMtyC,GACnC,GAGD8nD,EAAO,0BAA4BA,EAAO,4BAC5CA,EAAO,0BAA6B9nD,IAClC8nD,EAAO,wBACLl3D,OAAOC,OAAO,CAAEuorB,MAAOp5qB,EAAKsyC,IAAMtyC,GACnC,EAGP,CAME06qB,CAAiB5ynB,GACjBmH,EAAQt9E,KAAKm2E,EACf,EA8DE6ynB,UAAW7G,EAAerimB,GAAM8imB,YAGlC9imB,EAAKmpmB,UAAY,WAAatF,GAAY,CAAO,EACjD7jmB,EAAKopmB,SAAW,WAAavF,GAAY,CAAM,EAC/C7jmB,EAAKqpmB,cA/uCO,SAivCZ,IAAK,MAAM/nrB,KAAO28qB,EAEU,kBAAfA,EAAM38qB,IAEfg6qB,EAAc2C,EAAM38qB,IAWxB,OANAnC,OAAOC,OAAO4gF,EAAMi+lB,GAGpBj+lB,EAAK+vY,UAAUw3N,GACfvnmB,EAAK+vY,UAAUizN,GACfhjmB,EAAK+vY,UAAU03N,GACRznmB,CACT,CAGgBspmB,CAAK,CAAC,GAEtB/qkB,EAAOF,QAAU99B,cC58DjBg+B,EAAOF,QAjgBP,SAAar+B,GAGX,IAAI48lB,EAAsB,qGAYtB2M,EAAUC,ilCA6YVC,EAAU,8IAGVC,EAAU1pmB,EAAKhmC,QAAQgmC,EAAKy9lB,aAG5BkM,EAAU,CACZzrsB,UAAW,SACXshM,MAAO,QAAS9oM,IAAK,MACrBga,SAAU,CAAC,CAAC8uL,MAAO,QAIjBoqgB,EAAO,CACTpqgB,MAAO,IAAK9oM,IAAK,IAAKsvsB,cAAc,EAAMK,YAAY,EACtD31rB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,sCAMTqqgB,EAAW7pmB,EAAKhmC,QAAQgmC,EAAKs9lB,qBAsDjC,MAAO,CACLrgsB,KAAM,gBACN+isB,kBAAkB,EAClBpuE,SAAU,CACR0vE,SAAU1E,EACV8C,QAAS6J,EACTO,SArWJC,+xyDAsWI75pB,MA7JJ85pB,mvxEA8JIjusB,KA1FJkusB,0vqBA2FIC,QAAST,GAEX/4rB,SAAU,CA9DD,CACTxS,UAAW,OAEXshM,MAAO,MAAO9oM,IAAK,IACnBk7nB,SAAU,CACR0vE,SAAU1E,EACV,eAAgB2M,EAjaFY,4yDAmahBz5rB,SAAU,CACRm5rB,IAWW,CACb3rsB,UAAW,WACXytJ,SAAU,CACR,CAAC6zC,MAAO,oGAAqB9oM,IAAK,MAAOk7nB,SAAU,qGACnD,CAACpyb,MAAO,gKAA+Boyb,SAAU,kKAEnDlhnB,SAAU,CACR,CACE8uL,MAAO,MAAO9oM,IAAK,MAAOgvsB,YAAa,EACvCh1rB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAOo9f,EAAqBlmsB,IAAK,IAAK2vsB,YAAY,EAAM1E,gBAAgB,EACxE/vE,SAAU,CACR0vE,SAAU1E,EACV8C,QAAS,2BACTwK,QAAST,GAEX/4rB,SAAU,CACRg5rB,EACAC,EACAC,IAGJC,IAGJ7pmB,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAACt+f,MAAOo9f,MAkBtCiN,EAnDS,CACX3rsB,UAAW,SACXshM,MAAO,IAAK9oM,IAAK,MAAO2vsB,YAAY,GAmDlCqD,EACAC,EACAC,GAGN,aClfA,SAASnopB,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OAZjBssH,EAYwB59M,GAVpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAY0B,IAAEnpK,KAAK,GAEjD,CA+EAsuF,EAAOF,QArEP,SAAcr+B,GACZ,MAAMmgmB,EAAU,CACdiK,gBAAiB,yBACjBC,gBAAiB,oBAsBbC,EAActqmB,EAAK4gG,QAAQ,IAAK,KAsBhC2pgB,EAAsB,CAC1BrssB,UAAW,YACXshM,MAAO/9I,EAAO0+oB,EAAQiK,gBAAiB,aAGzC,MAAO,CACLntsB,KAAM,6BACNkgsB,QAASgD,EAAQkK,gBACjBz4E,SAjDe,CACf,QACA,MACA,OACA,KACA,OACA,MACA,QACA,SACA,SACA,OACA,KACA,OACA,QACA,KACA,QACA,OAkCAlhnB,SAAU,CACR65rB,EACAD,EA/BuB,CACzBpssB,UAAW,SACXshM,MAAO,sCAGmB,CAC1BthM,UAAW,SACXshM,MAAO,sCAGuB,CAC9BthM,UAAW,SACXshM,MAAO,+CAG4B,CACnCthM,UAAW,SACXshM,MAAO,SAmBLx/F,EAAKo9lB,kBACLp9lB,EAAKy9lB,aAGX,aC3FA,SAAS3wmB,EAAOssH,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGtsH,OAHM,IAIlB,CAMA,SAASrrC,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,GAEjD,CASA,SAAS+upB,IAAgB,QAAAtinB,EAAApO,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAkoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAtO,UAAAsO,GAErB,MADe,IAAMD,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,KAAO,GAE9D,CA2FAsuF,EAAOF,QAhFP,SAAmBmskB,GAEjB,MAAMC,EAAa,CACjB,MACA,OACA,OACA,MACA,SACA,UACA,UACA,QACA,SAEF,MAAO,CACLxtsB,KAAM,oBACNyT,SAAU,CAER,CACExS,UAAW,SACXshM,MAAO,mDACPy9f,UAAW,GAGb,CACE/+rB,UAAW,SACXshM,MAAO,UACPy9f,UAAW,GAGb,CACE/+rB,UAAW,SACXshM,MAAO/9I,EAAO,IAAKu9oB,KAAUyL,IAC7B/zsB,IAAK,IACLk7nB,SAAU64E,EACVtN,QAAS,KACTF,UAAW,EACXvsrB,SAAU,CACR,CACE8uL,MAAO,kBACPy9f,UAAW,KAKjB,CACE/+rB,UAAW,SAIXshM,MAAO,oBACP29f,QAAS,KACTF,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLymsB,QAAS,KACTF,UAAW,GAGb,CACE/+rB,UAAW,SACXshM,MAAO,sBACP9oM,IAAK,IACLymsB,QAAS,KACTF,UAAW,GAGb,CACE/+rB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLymsB,QAAS,KACTF,UAAW,IAInB,aCxGA,SAASx7oB,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OAZjBssH,EAYwB59M,GAVpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAY0B,IAAEnpK,KAAK,GAEjD,CAyFAsuF,EAAOF,QA/EP,SAAsBr+B,GACpB,MAGM0qmB,EAAoB,CACxBxssB,UAAW,WACXshM,MAAO,SACP9oM,IANe,2BAOfumsB,UAAW,IAGb,MAAO,CACLhgsB,KAAM,eACN+oE,QAAS,CAAE,MACX4rjB,SAAU,CACR8tE,QAAS,mUAKTwK,QAAS,6BAEXx5rB,SAAU,CACRsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAK09lB,cACL,CACEx/rB,UAAW,QACX0gsB,cAAe,UACflosB,IAAK,KACLga,SAAU,CAAEsvF,EAAK89lB,aAEnB,CACE5/rB,UAAW,QACX0gsB,cAAe,kBACflosB,IAAK,KACL2vsB,YAAY,EACZ31rB,SAAU,CACR,CAAEkurB,cAAe,sBACjB5+lB,EAAK89lB,aAGT,CACE5/rB,UAAW,OACX0gsB,cAAe,iBACflosB,IAAK,IACLk7nB,SAAU,CAAE,eAAgB,mBAE9B,CACE1znB,UAAW,WACX0gsB,cAAe,WACflosB,IAAK,OACL2vsB,YAAY,EACZlJ,QAAS,KACTzsrB,SAAU,CACRsvF,EAAK89lB,WACL,CACE5/rB,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLga,SAAU,CACRsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLmN,IAGJ,CAAElrgB,MAAO/9I,EAAO,OApEU,qCAuE9Bu+C,EAAKg+lB,cAEPb,QAAS,IAEb,aCmFA5+jB,EAAOF,QA7KP,SAAar+B,GAKX,MAAM2qmB,EAAa,cACbC,EAAc,YAAcD,EAO5B9N,EAAY,QAFO8N,sBAAqFC,EAAc,MAE9E,KANnBD,EAAa,OAASA,EAAtBA,MAAgDC,EAAc,MAMhB,IAGnEC,EAAW,4BAGXC,EAAY,gBAGZjB,EAAW7pmB,EAAK4gG,QAAQ,KAAM,KAK9BmqgB,EAAY,CAIhBvrgB,MAAO,YACP9oM,IAAK,sBAGLymsB,QAAS2N,EACTp6rB,SAAU,CACR,CAGEkurB,cAAe,0BACf8G,YAAY,GAEd,CAEExnsB,UAAW,UACX0gsB,cAAe,wEAEjB,CACE1gsB,UAAW,OACXshM,MAAOqrgB,EACPnF,YAAY,EACZzI,UAAW,KAKjB,MAAO,CACLhgsB,KAAM,MACN+isB,kBAAkB,EAClBpuE,SAAU,CACR8tE,QACU,4bAOVwK,QACU,cAEZx5rB,SAAU,CACRm5rB,EAEA,CACE3rsB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLga,SAAU,CAAC,CACT8uL,MAAO,KACPy9f,UAAW,KAIf,CAEE/+rB,UAAW,SACXshM,MAAO,OAET,CAEEthM,UAAW,SACXshM,MAAOq9f,EACPI,UAAW,GAEb,CAEE/+rB,UAAW,SACXshM,MAAO,IAAMqrgB,GAEf,CAEE3ssB,UAAW,QACXshM,MAAO,8DACP9oM,IAAK,SACLk7nB,SAAU,eACVo0E,cAAc,EACdK,YAAY,EACZlJ,QAAS2N,GAEX,CAGEtrgB,MAAO,yDACP9oM,IAAK,sCACLk7nB,SAAU,uDAGVq0E,aAAa,EACbv1rB,SACQ,CACEm5rB,EACA,CAEE3rsB,UAAW,QACXshM,MAAO,4CACP9oM,IAAK,eACLsvsB,cAAc,EACdK,YAAY,EACZlJ,QAAS2N,GAIXC,EACA,CAEE7ssB,UAAW,OACXshM,MAAO,gBACP9oM,IAAK,aACLk7nB,SAAU,SACVo0E,cAAc,EACdK,YAAY,EAEZX,YAAY,EACZvI,QAAS2N,KAKvB,CAGE5ssB,UAAW,OACXshM,MAAO,oBACP9oM,IAAK,OACLk7nB,SAAU,OACVo0E,cAAc,EACd7I,QAAS2N,GAIXC,GASN,YCrEAxskB,EAAOF,QAlHP,SAAqBr+B,GACnB,IAAIgrmB,EAAkB,CACpB9ssB,UAAW,WACXshM,MAAO,2HAGLyrgB,EAAmB,CACrB/ssB,UAAW,SACXshM,MAAO,kBAGL0rgB,EAAc,CAChBhtsB,UAAW,UACXshM,MAAO,IAAK9oM,IAAK,IACjBga,SAAU,CAAEs6rB,EAAiBC,IAM/B,OAHAD,EAAgBt6rB,SAAW,CAAEw6rB,GAC7BD,EAAiBv6rB,SAAW,CAAEw6rB,GAEvB,CACLjusB,KAAM,cACN+oE,QAAS,CAAC,OAEV4rjB,SACE,2SAMFurE,QAAS,uDAETzsrB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,IAAM9oM,IAAK,IAClBymsB,QAAS,MACTzsrB,SAAU,CAAEsvF,EAAKg9lB,kBACjBC,UAAW,GAIb,CACE/+rB,UAAW,SACXshM,MAAO,MAAO9oM,IAAK,OAGrB,CACEwH,UAAW,SACXshM,MAAO,IAAK9oM,IAAK,IACjBymsB,QAAS,MACTzsrB,SAAU,CAAEsvF,EAAKg9lB,kBACjBC,UAAW,GAGbj9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBAEL,CACEr/rB,UAAW,SACXshM,MAAO,WAAY9oM,IAAK,OAG1B,CACEkosB,cAAe,sBAAuBlosB,IAAK,KAC3CymsB,QAAS,UACTzsrB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,mBAKb,CACEo/f,cAAe,QAASlosB,IAAK,KAC7BymsB,QAAS,UACTzsrB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,gBACP9uL,SAAU,CACR,CACE8uL,MAAO,WACP9uL,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,uBASrBwrgB,EACAC,EAEA,CACE/ssB,UAAW,UACXshM,MAAO,wBAGT,CACEthM,UAAW,SACX++rB,UAAW,EACXz9f,MAAO,uFAIf,aChCAjhE,EAAOF,QA7EP,SAAgBr+B,GACd,MAQMmrmB,EAAa,CACjBjtsB,UAAW,SACXshM,MAAO,iDAMT,MAAO,CACLviM,KAAM,gBACN+oE,QAAS,CAAE,cACXg6nB,kBAAkB,EAClBtvrB,SAAU,CACRsvF,EAAKw9lB,kBACL,CACEt/rB,UAAW,UACXshM,MAAO,OACP9oM,IAAK,IACLga,SAAU,CACRy6rB,EAfY,CAClBjtsB,UAAW,SACXshM,MAAO,YAiBDx/F,EAAKhmC,QAAQgmC,EAAKo9lB,kBAAmB,CAAEH,UAAW,MAGtD,CACE/+rB,UAAW,YACXshM,MAAO,MACPy9f,UAAW,EAGXrrE,SAAU,CACRw5E,SACE,8JAIJnJ,OAAQ,CACNvrsB,IAAK,IACLumsB,UAAW,EACXrrE,SAAU,CAAEs4E,QAAS,yBACrBx5rB,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,OACP9oM,IAAK,OAEP,CACEwH,UAAW,WACXshM,MAAO,UACP9oM,IAAK,KACLga,SAAU,CACR,OA7DK,CACjBxS,UAAW,SACXshM,MAAO,aA+DC2rgB,EA7DK,CACbjtsB,UAAW,SACXshM,MAAO,OA6DCx/F,EAAKo9lB,sBAKbD,QAAS,KAEb,aC7EA,SAASrwmB,EAAOssH,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGtsH,OAHM,IAIlB,CAMA,SAASrrC,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,GAEjD,CASA,SAAS+upB,IAAgB,QAAAtinB,EAAApO,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAkoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAtO,UAAAsO,GAErB,MADe,IAAMD,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,KAAO,GAE9D,CAyJAsuF,EAAOF,QA9IP,SAAqBr+B,GACnB,MAAM65Z,EAAS75Z,EAAKhmC,QAClBgmC,EAAKo9lB,kBAAmB,CACtBD,QAAS,OAEPkO,EAAS,CACbntsB,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLga,SAAU,CACR,OACAsvF,EAAK09lB,cACL7jM,IAGEyxM,EAAiBtrmB,EAAK4gG,QAAQ,KAAM,KAWpCipgB,EAAW,CACfyB,EAXqBtrmB,EAAK4gG,QAC1B,OACA,OACA,CACElwL,SAAU,CACR,OACA46rB,KAOJtrmB,EAAKw9lB,mBA6CP,MAAO,CACLvgsB,KAAM,cACN+oE,QAAS,CAAE,aACX4rjB,SAAU,CACR8tE,QACE,0iBAUFwK,QACE,mEACFJ,SACE,sUAQJp5rB,SAAU,CACRmpf,EACA75Z,EAAK09lB,cACL,CACEx/rB,UAAW,WACXshM,MAAO/9I,EACL,KACAu9oB,EAzDN,iBACA,gBACA,WACA,sBACA,eACA,UACA,0BACA,gBACA,eACA,kBACA,sBACA,gBACA,aACA,mBACA,cACA,cACA,0BACA,uBACA,2BACA,mBACA,oFACA,0BAqCM,OAGJ,CACE9gsB,UAAW,WACXshM,MAAO,gBAET,CACEthM,UAAW,UACXshM,MACE,gEAEJ,CACEthM,UAAW,UACXshM,MAAO/9I,EACL,KACAu9oB,EA3FN,aACA,aACA,aACA,SACA,eACA,kEACA,kCACA,8BACA,eACA,uBACA,oBACA,oBACA,qBACA,eA+EM,OAGJ,CACEJ,cAAe,KACfzB,QAAS,WACTzsrB,SAAU,CACRsvF,EAAK+9lB,sBACLsN,OAGDxB,GAEL1M,QAAS,kBAEb,aCtBA5+jB,EAAOF,QA3JP,SAAgBr+B,GACd,MAAM28lB,EAAW,yBACX4O,EAAW,CACf7L,QACE,0DACFwK,QACE,sHACFJ,SACE,wiCAgBE0B,EAAS,CACbttsB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,mBAET,CACEA,MAAO,oBAET,CACEA,MAAOx/F,EAAK88lB,cAGhBG,UAAW,GAEPwO,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,SACP9oM,IAAK,MACLk7nB,SAAU25E,EACV76rB,SAAU,IAENg7rB,EAAkB,CACtBxtsB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLga,SAAU,CACRsvF,EAAKg9lB,iBACLyO,IAGJA,EAAM/6rB,SAAW,CACfsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLsO,EACAF,EACAxrmB,EAAK69lB,aAEP,MAAM8N,EAAkBF,EAAM/6rB,SAAS+wC,OAAO,CAC5Cu+C,EAAKu9lB,qBACLv9lB,EAAKs9lB,sBAGP,MAAO,CACLrgsB,KAAM,gBACN20nB,SAAU25E,EACV76rB,SAAU,CACRsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLsO,EACA1rmB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBAvDM,CACbr/rB,UAAW,SACXshM,MAAO,4GAuDLgsgB,EACA,CACEhsgB,MAAO,UACPy9f,UAAW,EACXvsrB,SAAU,CAAC,CACT8uL,MAAOm9f,EAAW,QAClBsJ,aAAa,EACbhJ,UAAW,EACXvsrB,SAAU,CAAC,CACTxS,UAAW,OACXshM,MAAOm9f,EACPM,UAAW,OAIjB,CACEz9f,MAAO,IAAMx/F,EAAKm+lB,eAAiB,uBACnCvsE,SAAU,SACVlhnB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAK69lB,YACL,CACE3/rB,UAAW,WACXshM,MAAO,cAAgBm9f,EAAW,UAClCsJ,aAAa,EACbvvsB,IAAK,SACLga,SAAU,CAAC,CACTxS,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAOm9f,GAET,CACEn9f,MAAO,WAET,CACEA,MAAO,KACP9oM,IAAK,KACLsvsB,cAAc,EACdK,YAAY,EACZz0E,SAAU25E,EACV76rB,SAAUi7rB,QAMpB1O,UAAW,GAEb,CACE/+rB,UAAW,WACX0gsB,cAAe,WACflosB,IAAK,KACL2vsB,YAAY,EACZ31rB,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAC5Bt+f,MAAOm9f,IAET,CACEz+rB,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLsvsB,cAAc,EACdK,YAAY,EACZ31rB,SAAUi7rB,IAGdxO,QAAS,QAEX,CACE39f,MAAO,WAGX29f,QAAS,SAEb,aCtIA,SAASvnnB,EAASwjI,GAChB,OAAO33J,EAAO,IAAK23J,EAAI,KACzB,CAMA,SAAS33J,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OA5BjBssH,EA4BwB59M,GA1BpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CA4B0B,IAAEnpK,KAAK,GAEjD,CAwhBAsuF,EAAOF,QAxGP,SAAiBr+B,GACf,MAAM4rmB,EAEF,2BAFEA,EAIF,yeAJEA,EAgBF,szFAhBEA,EAgFF,qNAOEC,EA/fR,SAAmB7rmB,GAIjB,MAAMs9lB,EAAsBt9lB,EAAK4gG,QAAQ,KAAM,IAAK,CAClDlwL,SAAU,CACR,CACE8uL,MAAO,WAIPssgB,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACvBF,EAAmB,IACnBl2nB,EAASm2nB,GACT,gBAAkBn2nB,EAJS,YAK7B,IACMq2nB,EAAsB,CAC1B/tsB,UAAW,UACXshM,MAAO,sBAMHmqgB,EAAU,CACdzrsB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,cACP9oM,IAAK,IACLymsB,QAAS,MACTzsrB,SAAU,CAAEsvF,EAAKg9lB,mBAEnB,CACEx9f,MAAO,sEACP9oM,IAAK,IACLymsB,QAAS,KAEXn9lB,EAAKw+lB,kBAAkB,CACrBh/f,MAAO,mCACP9oM,IAAK,0BAKLgzsB,EAAU,CACdxrsB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXy9f,UAAW,GAGPiP,EAAe,CACnBhusB,UAAW,OACXshM,MAAO,eACP9oM,IAAK,IACLk7nB,SAAU,CACR,eACE,0FAGJlhnB,SAAU,CACR,CACE8uL,MAAO,OACPy9f,UAAW,GAEbj9lB,EAAKhmC,QAAQ2voB,EAAS,CACpBzrsB,UAAW,gBAEb,CACEA,UAAW,cACXshM,MAAO,SAET89f,EACAt9lB,EAAKu9lB,uBAIHO,EAAa,CACjB5/rB,UAAW,QACXshM,MAAO5pH,EAASm2nB,GAAgB/rmB,EAAK28lB,SACrCM,UAAW,GAGPkP,EAAiBv2nB,EAASm2nB,GAAgB/rmB,EAAK28lB,SAAW,UAsH1DyP,EAAe,CACnB1M,QAAS,y0BAYToK,SAAU,4BACVuC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAnC,QAAS,2BAGLoC,EAAoB,CACxBpusB,UAAW,oBACX++rB,UAAW,EACXrrE,SAAUw6E,EACV5sgB,MAAO/9I,EACL,KACA,eACA,SACA,UACA,YACAu+C,EAAK28lB,UA9QQvjf,EA+QH,QA9QP33J,EAAO,MAAO23J,EAAI,QAD3B,IAAmBA,EAkRjB,MAAMmzf,EAAsB,CAC1BD,EACAJ,EACAD,EACA3O,EACAt9lB,EAAKu9lB,qBACLmM,EACAC,GAII6C,EAAqB,CAIzB7gjB,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,KAEP,CACE8oM,MAAO,KACP9oM,IAAK,MAEP,CACEkosB,cAAe,wBACflosB,IAAK,MAGTk7nB,SAAUw6E,EACV17rB,SAAU67rB,EAAoB9qpB,OAAO,CACnC,CACE+9I,MAAO,KACP9oM,IAAK,KACLk7nB,SAAUw6E,EACV17rB,SAAU67rB,EAAoB9qpB,OAAO,CAAE,SACvCw7oB,UAAW,KAGfA,UAAW,GAGPwP,EAAuB,CAC3BvusB,UAAW,WACXshM,MAAO,IAAMwsgB,EAAmB,eAAiBG,EACjDlG,aAAa,EACbvvsB,IAAK,QACL2vsB,YAAY,EACZz0E,SAAUw6E,EACVjP,QAAS,iBACTzsrB,SAAU,CACR,CACE8uL,MAAOssgB,EACPl6E,SAAUw6E,EACVnP,UAAW,GAEb,CACEz9f,MAAO2sgB,EACPlG,aAAa,EACbv1rB,SAAU,CAAEotrB,GACZb,UAAW,GAIb,CACEz9f,MAAO,KACPy9f,UAAW,GAGb,CACEz9f,MAAO,IACPmigB,gBAAgB,EAChBjxrB,SA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,CACE6zC,MAAO,cACP9oM,IAAK,MACLumsB,UAAW,IAEb,CACEz9f,MAAO,cACP9oM,IAAK,MACLumsB,UAAW,IAEb,CACEz9f,MAAO,YACP9oM,IAAK,IACLumsB,UAAW,IAEb,CACEz9f,MAAO,YACP9oM,IAAK,IACLumsB,UAAW,IAEb,CACEz9f,MAAO,UACP9oM,IAAK,KAEP,CACE8oM,MAAO,UACP9oM,IAAK,KAEPspG,EAAKk9lB,iBACLl9lB,EAAKo9lB,oBAWLp9lB,EAAK69lB,YACL79lB,EAAKw9lB,kBACLx9lB,EAAKy9lB,aAGX,aC4GAl/jB,EAAOF,QAzKP,SAAgBr+B,GAyId,MAAO,CACL/iG,KAAM,MACN+oE,QAAS,CAAC,OACV4rjB,SATe,CACf8tE,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,SAKAoK,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,OAoHAI,QAjHuB,CACvB,UACA,QACA,OACA,SAoHAx5rB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAK09lB,cACL,CACEx/rB,UAAW,OACXshM,MAAO,IACP9oM,IAAK,KAEP,CACEwH,UAAW,QACX0gsB,cAAe,kBACflosB,IAAK,KACL2vsB,YAAY,EACZlJ,QAAS,IACTzsrB,SAAU,CACR,CACEkurB,cAAe,sBAEjB5+lB,EAAK+9lB,yBAKf,aC5JA,SAASt8oB,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OAZjBssH,EAYwB59M,GAVpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAY0B,IAAEnpK,KAAK,GAEjD,CAiJAsuF,EAAOF,QAtIP,SAAcr+B,GACZ,MAAMktmB,EAAM,CAAC,EACPC,EAAa,CACjB3tgB,MAAO,OACP9oM,IAAI,KACJga,SAAU,CACR,OACA,CACE8uL,MAAO,KACP9uL,SAAU,CAAEw8rB,MAIlB/trB,OAAOC,OAAO8trB,EAAI,CAChBhvsB,UAAW,WACXytJ,SAAU,CACR,CAAC6zC,MAAO/9I,EAAO,qBAGb,wBACF0rpB,KAIJ,MAAM1B,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,OAAQ9oM,IAAK,KACpBga,SAAU,CAACsvF,EAAKg9lB,mBAEZoQ,EAAW,CACf5tgB,MAAO,iBACPyigB,OAAQ,CACNvxrB,SAAU,CACRsvF,EAAKw+lB,kBAAkB,CACrBh/f,MAAO,QACP9oM,IAAK,QACLwH,UAAW,cAKbmvsB,EAAe,CACnBnvsB,UAAW,SACXshM,MAAO,IAAK9oM,IAAK,IACjBga,SAAU,CACRsvF,EAAKg9lB,iBACLkQ,EACAzB,IAGJA,EAAM/6rB,SAASxQ,KAAKmtsB,GACpB,MASMC,EAAa,CACjB9tgB,MAAO,SACP9oM,IAAK,OACLga,SAAU,CACR,CAAE8uL,MAAO,gBAAiBthM,UAAW,UACrC8hG,EAAKy9lB,YACLyP,IAcEK,EAAgBvtmB,EAAKo+lB,QAAQ,CACjChoJ,OAAQ,IAZa,CACrB,OACA,OACA,MACA,KACA,MACA,MACA,OACA,OACA,QAG2BnmgB,KAAK,QAChCgtpB,UAAW,KAEPuQ,EAAW,CACftvsB,UAAW,WACXshM,MAAO,4BACPymgB,aAAa,EACbv1rB,SAAU,CAACsvF,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAACt+f,MAAO,gBACjDy9f,UAAW,GAGb,MAAO,CACLhgsB,KAAM,OACN+oE,QAAS,CAAC,KAAM,OAChB4rjB,SAAU,CACR0vE,SAAU,gBACV5B,QACE,+DACFwK,QACE,aACFJ,SAGE,6uBAeJp5rB,SAAU,CACR68rB,EACAvtmB,EAAKo+lB,UACLoP,EACAF,EACAttmB,EAAKw9lB,kBACL4P,EACAC,EA3EkB,CACpBnvsB,UAAW,GACXshM,MAAO,OAGW,CAClBthM,UAAW,SACXshM,MAAO,IAAK9oM,IAAK,KAuEfw2sB,GAGN,aCtGA3ukB,EAAOF,QAxDP,SAAer+B,GACb,MAAO,CACL/iG,KAAM,QACN+isB,kBAAkB,EAClB7C,QAAS,KAETvrE,SAAU,CACR0vE,SAAU,4BACV5B,QACE,s8BAaJhvrB,SAAU,CACRsvF,EAAKo9lB,kBACLp9lB,EAAK4gG,QAAQ,MAAO,IAAK,CACvBq8f,UAAW,KAEbj9lB,EAAK4gG,QAAQ,IAAM,IAAK,CACtBq8f,UAAW,IAEb,CAEE/+rB,UAAW,SACXshM,MAAO,WACPy9f,UAAW,IAEb,CAEE/+rB,UAAW,SACXshM,MAAO,sCACPy9f,UAAW,GAEb,CAEE/+rB,UAAW,SACXshM,MAAO,2BAET,CAEEthM,UAAW,SACXshM,MAAO,sBAIf,aCzBAjhE,EAAOF,QA9BP,SAAar+B,GACX,MAAO,CACL/iG,KAAM,wBACNyT,SAAU,CAER,CACExS,UAAW,YACXshM,MAAO,IACP9oM,IAAK,KAGP,CACE8oM,MAAO,MACP9oM,IAAK,IACLga,SAAU,CACR,CACE8uL,MAAO,IACP9oM,IAAK,KAGPspG,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAKk9lB,iBACLl9lB,EAAKo9lB,qBAKf,aCUA7+jB,EAAOF,QAtCP,SAAmBr+B,GACjB,MAAMypmB,EAAU,CACdvrsB,UAAW,UACXshM,MAAO,OACPy9f,UAAW,GAEb,MAAO,CACLhgsB,KAAM,YACN+oE,QAAS,CAAC,MACVt1D,SAAU,CACRsvF,EAAK4gG,QACH,6BACA,4BACA,CACEwlgB,WAAW,EACXnJ,UAAW,IAGf,CACE/+rB,UAAW,QACXshM,MAAO,WACPy9f,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAO,SACPy9f,UAAW,GAEb,CAEEz9f,MAAO,cACP9uL,SAAU,CAAC+4rB,IAEbA,GAGN,aCfA,SAAS7znB,EAASwjI,GAChB,OAAO33J,EAAO,IAAK23J,EAAI,KACzB,CAMA,SAAS33J,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OA5BjBssH,EA4BwB59M,GA1BpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CA4B0B,IAAEnpK,KAAK,GAEjD,CA6cAsuF,EAAOF,QA9BP,SAAer+B,GACb,MAAMuomB,EAvaR,SAAmBvomB,GAIjB,MAAMs9lB,EAAsBt9lB,EAAK4gG,QAAQ,KAAM,IAAK,CAClDlwL,SAAU,CACR,CACE8uL,MAAO,WAIPssgB,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACvBF,EAAmB,IACnBl2nB,EAASm2nB,GACT,gBAAkBn2nB,EAJS,YAK7B,IACMq2nB,EAAsB,CAC1B/tsB,UAAW,UACXshM,MAAO,sBAMHmqgB,EAAU,CACdzrsB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,cACP9oM,IAAK,IACLymsB,QAAS,MACTzsrB,SAAU,CAAEsvF,EAAKg9lB,mBAEnB,CACEx9f,MAAO,sEACP9oM,IAAK,IACLymsB,QAAS,KAEXn9lB,EAAKw+lB,kBAAkB,CACrBh/f,MAAO,mCACP9oM,IAAK,0BAKLgzsB,EAAU,CACdxrsB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXy9f,UAAW,GAGPiP,EAAe,CACnBhusB,UAAW,OACXshM,MAAO,eACP9oM,IAAK,IACLk7nB,SAAU,CACR,eACE,0FAGJlhnB,SAAU,CACR,CACE8uL,MAAO,OACPy9f,UAAW,GAEbj9lB,EAAKhmC,QAAQ2voB,EAAS,CACpBzrsB,UAAW,gBAEb,CACEA,UAAW,cACXshM,MAAO,SAET89f,EACAt9lB,EAAKu9lB,uBAIHO,EAAa,CACjB5/rB,UAAW,QACXshM,MAAO5pH,EAASm2nB,GAAgB/rmB,EAAK28lB,SACrCM,UAAW,GAGPkP,EAAiBv2nB,EAASm2nB,GAAgB/rmB,EAAK28lB,SAAW,UAsH1DyP,EAAe,CACnB1M,QAAS,y0BAYToK,SAAU,4BACVuC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAnC,QAAS,2BAGLoC,EAAoB,CACxBpusB,UAAW,oBACX++rB,UAAW,EACXrrE,SAAUw6E,EACV5sgB,MAAO/9I,EACL,KACA,eACA,SACA,UACA,YACAu+C,EAAK28lB,UA9QQvjf,EA+QH,QA9QP33J,EAAO,MAAO23J,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9lB,aAGX,aC7DA,MAAM8N,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIiD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGhtpB,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAmQF88E,EAAOF,QA7MP,SAAsBr+B,GACpB,MAgCM0umB,EAAa,CACjBhP,QAAS6L,EAAS9ppB,OAvBI,CACtB,OACA,SACA,QACA,OACA,KACA,OACA,MACA,KACA,KACA,OACA,QAY0C7mD,QAHzBy1G,EAPQ,CACzB,MACA,QACA,MACA,WACA,UAGCqxT,IAAQrxT,EAAKn4G,SAASwpa,KAGvBwoS,QAASsE,EAAS/spB,OA9BI,CACtB,MACA,KACA,KACA,QA2BAqopB,SAAU2E,EAAUhtpB,OAnCG,CACvB,MACA,WA4BiB4uD,MAOnB,MAAMs+lB,EAAc,2BACdlD,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,MACP9oM,IAAK,KACLk7nB,SAAU88E,GAENb,EAAc,CAClB7tmB,EAAK29lB,mBACL39lB,EAAKhmC,QAAQgmC,EAAK09lB,cAAe,CAC/BuE,OAAQ,CACNvrsB,IAAK,WACLumsB,UAAW,KAGf,CACE/+rB,UAAW,SACXytJ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XshM,MAAO5pH,EAASm2nB,GAAgB/rmB,EAAK28lB,SACrCM,UAAW,GAGPkP,EAAiBv2nB,EAASm2nB,GAAgB/rmB,EAAK28lB,SAAW,UAsH1DyP,EAAe,CACnB1M,QAAS,y0BAYToK,SAAU,4BACVuC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAnC,QAAS,2BAGLoC,EAAoB,CACxBpusB,UAAW,oBACX++rB,UAAW,EACXrrE,SAAUw6E,EACV5sgB,MAAO/9I,EACL,KACA,eACA,SACA,UACA,YACAu+C,EAAK28lB,UA9QQvjf,EA+QH,QA9QP33J,EAAO,MAAO23J,EAAI,QAD3B,IAAmBA,EAkRjB,MAAMmzf,EAAsB,CAC1BD,EACAJ,EACAD,EACA3O,EACAt9lB,EAAKu9lB,qBACLmM,EACAC,GAII6C,EAAqB,CAIzB7gjB,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,KAEP,CACE8oM,MAAO,KACP9oM,IAAK,MAEP,CACEkosB,cAAe,wBACflosB,IAAK,MAGTk7nB,SAAUw6E,EACV17rB,SAAU67rB,EAAoB9qpB,OAAO,CACnC,CACE+9I,MAAO,KACP9oM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KAGhBzI,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAOx/F,EAAK48lB,oBAAsB,YAClCK,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAO,IACP9uL,SAAU,CACRmpf,EACA,CACEr6T,MAAOwvgB,IAGX/R,UAAW,GAEb,CACE/+rB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,gBAAkBuvgB,GAE3B,CACEvvgB,MAAO,iBAAmBuvgB,GAE5B,CACEvvgB,MAAO,uBAAyBuvgB,GAElC,CACEvvgB,MAAO,yFAET,CACEA,MAAO,sBAAwBuvgB,IAGnC9R,UAAW,IAMf,OAHAwO,EAAM/6rB,SAAW6+rB,EACjBJ,EAAUz+rB,SAAW6+rB,EAAyBj3oB,MAAM,GAE7C,CACLr7D,KAAM,UACN+oE,QAAS,CAAE,MACX4rjB,SAAUs9E,EACVx+rB,SAAU6+rB,EAEd,aCqHAhxkB,EAAOF,QA/aP,SAAgBr+B,GACd,MA2IMurmB,EAAW,CACf7L,QA/FsB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,SAwCyBj+oB,OAtCC,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,UAKAqopB,SA7IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,UA0HAI,QAvGuB,CACvB,UACA,QACA,OACA,SAqGIpM,EAAa99lB,EAAKhmC,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AAU25E,EACV76rB,SAAU,CAER,CACEkurB,cArXiB,CACzB,SACA,UACA,YACA,SACA,WACA,YACA,WACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,WAsW0C3upB,KAAK,KACvCgtpB,UAAW,GAEb,CACEz9f,MAAOx/F,EAAK28lB,SAAW,qBACvBsJ,aAAa,EACbv1rB,SAAU,CACRsvF,EAAK89lB,WACLgS,GAEF7S,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLsvsB,cAAc,EACdK,YAAY,EACZz0E,SAAU25E,EACVtO,UAAW,EACXvsrB,SAAU,CACRmpf,EACA6vM,EACA1pmB,EAAKu9lB,uBAGTv9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,uBAGTyS,GAGN,aClZAzxkB,EAAOF,QA1BP,SAAar+B,GACX,MAAO,CACL/iG,KAAM,MACN+isB,kBAAkB,EAClBpuE,SAAU,CACR0vE,SAAU,yBACV5B,QAAS,+KAIXhvrB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,IACP9oM,IAAK,KAEP,CACEwH,UAAW,YACXshM,MAAO,WACP9oM,IAAK,IACL2vsB,YAAY,IAIpB,aClCA,MAuBM4J,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA7goB,UAsBF,SAAS4umB,EAAUhle,GACjB,OAOF,WAAyB,QAAA56H,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,GApB3B,SAAgB49M,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGtsH,OAHM,IAIlB,CAeiCA,CAAOtxF,KAAIy0C,KAAK,GAEjD,CAVSwR,CAAO,MAAO23J,EAAI,IAC3B,CA6JA76E,EAAOF,QA3IP,SAAar+B,GACX,MAAMswmB,EArdOtwmB,KACN,CACLuwmB,UAAW,CACTrysB,UAAW,OACXshM,MAAO,cAETgxgB,SAAU,CACRtysB,UAAW,SACXshM,MAAO,oCAETixgB,wBAAyB,CACvBvysB,UAAW,gBACXshM,MAAO,KACP9oM,IAAK,KACLymsB,QAAS,IACTzsrB,SAAU,CACRsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,sBAocGa,CAAMj+lB,GAWd2pmB,EAAU,CACd3pmB,EAAKk9lB,iBACLl9lB,EAAKo9lB,mBAGP,MAAO,CACLngsB,KAAM,MACN+isB,kBAAkB,EAClB7C,QAAS,UACTvrE,SAAU,CACR8+E,iBAAkB,WAEpBzP,iBAAkB,CAGhByP,iBAAkB,gBAEpBhgsB,SAAU,CACRsvF,EAAKu9lB,qBAxBa,CACpB/9f,MA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ACExS,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLga,SAAU,CACRsvF,EAAKg9lB,iBACL,CACE9+rB,UAAW,QACXshM,MAAO,SACP9oM,IAAK,OAEP,CACEwH,UAAW,QACXshM,MAAO,MACP9oM,IAAK,UAIXspG,EAAKo9lB,kBACLp9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAK09lB,cACL,CACEx/rB,UAAW,OACXshM,MAAO,KACP9oM,IAAK,KAEP,CACEwH,UAAW,OACXshM,MAAO,IACP9oM,IAAK,IACLk7nB,SAAU,CACR,eAAgB,6BAGpB,CACE1znB,UAAW,OACXshM,MAAO,UACP9oM,IAAK,uBACLsvsB,cAAc,EACdK,YAAY,EACZpJ,UAAW,GAEb,CACE/+rB,UAAW,OACXshM,MAAO,UACP9oM,IAAK,MACLsvsB,cAAc,EACdK,YAAY,GAEd,CACEnosB,UAAW,OACXshM,MAAO,QACP9oM,IAAK,MACLsvsB,cAAc,EACdK,YAAY,GAEd,CACEnosB,UAAW,QACX0gsB,cAAe,OACflosB,IAAK,MACLga,SAAU,CAACsvF,EAAK89lB,aAElB,CACE5/rB,UAAW,QACX0gsB,cAAe,WACflosB,IAAK,SACLga,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,MACP9oM,IAAK,MACLsvsB,cAAc,EACdK,YAAY,GAEd,CACEnosB,UAAW,OACXshM,MAAO,SACP9oM,IAAK,MACLsvsB,cAAc,EACdK,YAAY,GAEd,CACEnosB,UAAW,OACXshM,MAAO,OACP9oM,IAAK,MACLsvsB,cAAc,EACdK,YAAY,GAEdrmmB,EAAK89lB,YAEPlsE,SAAU,CACR8tE,QAAS,qBAGb,CACExhsB,UAAW,QACXshM,MAAO,yBACP9oM,IAAK,SACL2vsB,YAAY,EACZz0E,SAAU,kBACVlhnB,SAAU,CACR,CACExS,UAAW,UACXshM,MAAO,4BACPoyb,SAAU,qBACVlhnB,SAAU,CACR,CACExS,UAAW,OACXshM,MAAOx/F,EAAK28lB,SACZM,UAAW,KAIjBj9lB,EAAK89lB,aAGT,CACE5/rB,UAAW,WACX0g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B,EAAKo9lB,kBACLoO,EACAxrmB,EAAKu9lB,uBAGTv9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,uBAGTiO,EACAmL,GAGN,aClLA,MAAMha,EAAW,2BACX4O,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIiD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGhtpB,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAgEF,SAAS28nB,EAAUhle,GACjB,OAAO33J,EAAO,MAAO23J,EAAI,IAC3B,CAMA,SAAS33J,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OApBjBssH,EAoBwB59M,GAlBpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAoB0B,IAAEnpK,KAAK,GAEjD,CA+aAsuF,EAAOF,QAraP,SAAoBr+B,GAQlB,MAMM42mB,EAAaja,EACbka,EACG,KADHA,EAEC,MAED3uK,EAAU,CACd1oW,MAAO,sBACP9oM,IAAK,4BAKLog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CZ31rB,SAAU0lsB,EACVxkF,SAAU48E,GAENZ,EAAS,CACbpugB,MAAO,KACP9oM,IAAK,KACLga,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,IACP9oM,IAAK,IACLga,SAAU,CAACsvF,EAAKg9lB,kBAChBG,QAAS,OAEXn9lB,EAAKhmC,QAAQw9oB,EAAiB,CAC5Bh4gB,MAAO,OAET/9I,OAAO81pB,GACTpa,QAAS,OAEL4Y,EAAQ,CACZv2gB,MAAO,MACP9oM,IAAK,MACLga,SAAU,CAACsvF,EAAKhmC,QAAQw9oB,IACxBra,QAAS,OAMX,OAJAiZ,EAAMl2sB,KAAK0tsB,EAAQmI,GACnBwB,EAAiB96qB,SAAQ,SAASgiK,GAChC23gB,EAAMl2sB,KAAKu+L,EACb,IACO,CACLxhM,KAAM,OACNyT,SAAU0lsB,EACVxkF,SAAU48E,EACVrR,QAAS,MAEb,aCXA5+jB,EAAOF,QAzBP,SAAmBr+B,GACjB,MAAO,CACL/iG,KAAM,aACNyT,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,UACPy9f,UAAW,GACXgF,OAAQ,CAGNvrsB,IAAK,cACLsusB,YAAa,SAOjBh/nB,QAAS,CAAC,eAIhB,aCgXAu4D,EAAOF,QAvZP,SAAer+B,GAOb,IAAIy3mB,EAAmB,uDAoTnBlM,EAAW,CACbjK,SAAUmW,EACV/X,QA1SiB,CACjB,aACA,QACA,QACA,QACA,QACA,QACA,WACA,KACA,OACA,SACA,MACA,SACA,QACA,UACA,MACA,WACA,SACA,KACA,SACA,KACA,MACA,MACA,QACA,QACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,SA2QAwK,QAzPiB,CACjB,OACA,SACA,aACA,aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,SACA,UAmNAJ,SAjMkB,CAClB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,YAWE4N,EAAU,CACZ9lF,SAAU25E,EAAUpO,QAAS,OAsB3Bwa,EAAgB,CAClBz5sB,UAAW,QACXshM,MAAO,OAAQ9oM,IAAK,KACpBk7nB,SAAU25E,GAGRqM,EAAwB,CAC1B15sB,UAAW,WACXshM,MAAO,MAAQi4gB,GAIb59M,EAAS,CACX37f,UAAW,SACXwS,SAAU,CAACsvF,EAAKg9lB,iBAAkB2a,EAAeC,GACjDjsjB,SAAU,CACR,CAAE6zC,MAAO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,CACL/iG,KAAM,OACNyT,SAAU,CACR,CACExS,UAAW,YACXshM,MAAO,MACP9oM,IAAK,KACL2vsB,YAAY,EACZpE,OAAQ,CACNvrsB,IAAK,IACLumsB,UAAW,GAEbA,UAAW,IAEb,CACE/+rB,UAAW,YACXshM,MAAO,OACP9oM,IAAK,KACL2vsB,YAAY,EACZpE,OAAQ,CACNvrsB,IAAK,IACLumsB,UAAW,IAGf,CACE/+rB,UAAW,UACXshM,MAAO,KACP9oM,IAAK,KAEPspG,EAAKw9lB,mBAGX,aCSAj/jB,EAAOF,QA1CP,SAAcr+B,GACZ,MAAO,CACL/iG,KAAM,OACNyT,SAAU,CACR,CACExS,UAAW,WACXshM,MAAO,qBACP9oM,IAAK,MACLuvsB,aAAa,EACbI,YAAY,EACZ31rB,SAAU,CACR,CACExS,UAAW,UACXshM,MAAO,MAET,CACEthM,UAAW,QACXshM,MAAO,0BAET,CACEthM,UAAW,SACXshM,MAAO,MACP9oM,IAAK,MACLgvsB,YAAY,EACZh1rB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,IACP9oM,IAAK,KAEP,CACEwH,UAAW,WACXshM,MAAO,+BAQvB,aC9CA,MAuBMywgB,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA7goB,UAGIyqoB,EAAmB9J,EAAe1upB,OAAO2upB,GA4O/C7xkB,EAAOF,QAjOP,SAAcr+B,GACZ,MAAMswmB,EAzbOtwmB,KACN,CACLuwmB,UAAW,CACTrysB,UAAW,OACXshM,MAAO,cAETgxgB,SAAU,CACRtysB,UAAW,SACXshM,MAAO,oCAETixgB,wBAAyB,CACvBvysB,UAAW,gBACXshM,MAAO,KACP9oM,IAAK,KACLymsB,QAAS,IACTzsrB,SAAU,CACRsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,sBAwaGa,CAAMj+lB,GACdk6mB,EAAqBD,EAGrBtd,EAAW,UACXwd,EAAkB,IAAMxd,EAAW,QAAUA,EAAW,OAIxDyd,EAAQ,GAAUC,EAAc,GAEhCC,EAAc,SAASv/rB,GAC3B,MAAO,CAEL7c,UAAW,SACXshM,MAAO,KAAOzkL,EAAI,MAAQA,EAE9B,EAEMw/rB,EAAa,SAASt9sB,EAAMuiM,EAAOy9f,GACvC,MAAO,CACL/+rB,UAAWjB,EACXuiM,MAAOA,EACPy9f,UAAWA,EAEf,EAEMud,EAAc,CAClBlZ,SAAU,UACV5B,QA1BmB,kBA2BnB1zZ,UAAWkka,EAAejgqB,KAAK,MAG3BwqqB,EAAc,CAElBj7gB,MAAO,MACP9oM,IAAK,MACLga,SAAU2psB,EACVzoF,SAAU4oF,EACVvd,UAAW,GAIbod,EAAYn6sB,KACV8/F,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACL+c,EAAY,KACZA,EA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AO,iCAET,CACEA,MAAO,uBAIPi8gB,EAASz7mB,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAC3Ct+f,MAAO,6BAET,MAAO,CACLviM,KAAM,WACN+isB,kBAAkB,EAClBpuE,SAAU,CACR8tE,QACE,4/BAYFwK,QACE,gfAMFJ,SACE,o4KAqDJp5rB,SAAU,CACRu8rB,EACA,CACE/usB,UAAW,UACXshM,MAAO,kBAET,CACEthM,UAAW,WACX0gsB,cAAe,WACflosB,IAAK,IACLga,SAAU,CACRu8rB,EACAwO,EACAz7mB,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAK29lB,mBACL39lB,EAAK09lB,cACL8d,IAGJ,CACEt9sB,UAAW,WACXshM,MAAO,aACP9oM,IAAK,IACLk7nB,SAAU,MACVlhnB,SAAU,CACR+qsB,EACAD,GAEFve,UAAW,GAEb,CACE2B,cAAe,aACflosB,IAAK,IACLga,SAAU,CACRu8rB,EACAwO,EACAz7mB,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAK29lB,mBACL39lB,EAAK09lB,cACL8d,IAGJ,CACEt9sB,UAAW,OACXytJ,SAAU,CACR,CACE6zC,MAAO,wBACPy9f,UAAW,IAEb,CACEz9f,MAAO,QAET,CACEA,MAAO,UAIbx/F,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAK29lB,mBACL39lB,EAAK09lB,cACL8d,GACA/5pB,OAAOgspB,GACTtQ,QAAS,mBAEb,aC1LA,MAAMoO,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIiD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGhtpB,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAqRF88E,EAAOF,QA/NP,SAAoBr+B,GAClB,MA4CM0umB,EAAa,CACjBhP,QAAS6L,EAAS9ppB,OAhCQ,CAC1B,OACA,SACA,QACA,OACA,KACA,KACA,OACA,MACA,KACA,KACA,OACA,MACA,KACA,OACA,YACA,OACA,KACA,MACA,cACA,OACA,OACA,SACA,OACA,MACA,YACA,YACA,UACA,SACA,cAIAyopB,QAASsE,EAAS/spB,OA1CQ,CAC1B,MACA,KACA,KACA,MACA,KACA,OACA,SAoCAqopB,SAAU2E,EAAUhtpB,OA/CO,CAC3B,MACA,WA+CIktpB,EAAc,8CACdC,EAAQ5umB,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAC1Ct+f,MAAOmvgB,IAEHlD,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,MACP9oM,IAAK,KACLk7nB,SAAU88E,GAENgN,EAAe,CACnBx9sB,UAAW,QACXshM,MAAO,cACP9oM,IAAK,oCACLk7nB,SAAU88E,GAENb,EAAc,CAClB7tmB,EAAK29lB,mBACL,CACEz/rB,UAAW,SACXshM,MAAO,0GACPy9f,UAAW,EACXgF,OAAQ,CACNvrsB,IAAK,WACLumsB,UAAW,IAGf,CACE/+rB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,MACP9oM,IAAK,MACLga,SAAU,CAACsvF,EAAKg9lB,mBAElB,CACEx9f,MAAO,IACP9oM,IAAK,IACLga,SAAU,CAACsvF,EAAKg9lB,mBAElB,CACEx9f,MAAO,MACP9oM,IAAK,MACLga,SAAU,CACRsvF,EAAKg9lB,iBACLyO,EACAiQ,IAGJ,CAC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MAAO,mCACP9oM,IAAK,OACL2vsB,YAAY,GAkKV+V,EACAC,EAnBe,CACjBn+sB,UAAW,QACXshM,MAAO,SACP9uL,SAAU4rsB,EACV5ltB,IAAK,KA5LM,CACXwH,UAAW,OACXytJ,SAAU,CAER,CACE6zC,MAAO,iCAET,CACEA,MAAO,iCAGT,CACEA,MAAO,MACP9oM,IAAK,aAEP,CACE8oM,MAAO,MACP9oM,IAAK,aAEP,CACE8oM,MAAO,SAET,CACEA,MAAO,kBAGP9uL,SAAU,CACR,CACE8uL,MAAO,cACP9oM,IAAK,WAGTumsB,UAAW,KApCO,CACtBz9f,MAAO,cACP9oM,IAAK,KAiNHyltB,EArKmB,CACrB38gB,MAAO,eACPymgB,aAAa,EACbv1rB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLsvsB,cAAc,EACdK,YAAY,GAEd,CACEnosB,UAAW,OACXshM,MAAO,OACP9oM,IAAK,IACLsvsB,cAAc,MA0JtB,aC/PA,MAAMuW,EAAiB,CACrB,cACA,eACA,QACA,eACA,eACA,qBACA,QACA,MACA,SACA,aACA,WACA,sBACA,8BACA,uBACA,kBACA,mBACA,kBACA,oBACA,oBACA,eACA,iBACA,sBACA,iBACA,aACA,WACA,eACA,cACA,aACA,gBACA,uBACA,WACA,SACA,uBACA,6BACA,aACA,mBACA,yBACA,cACA,gBACA,gBACA,WACA,QACA,mBACA,WACA,iBACA,gBACA,kBACA,oBACA,gBACA,uBACA,2BACA,6BACA,kBACA,cACA,wBACA,kBACA,QACA,wBACA,mBACA,eACA,cACA,kBACA,qBACA,SACA,cACA,aACA,SACA,cACA,aACA,oBACA,kBACA,6BACA,sBACA,4BACA,uBACA,iBACA,qBACA,aACA,iBACA,YACA,kBACA,iBACA,MACA,oBACA,8BACA,kCACA,oBACA,wBACA,eACA,kBACA,kBACA,mBACA,4BACA,oBACA,yBACA,yBACA,qBACA,UACA,WACA,kBACA,iBACA,eACA,iBACA,uBACA,mBACA,wBACA,eACA,iBACA,eACA,oBACA,gBACA,WACA,cACA,cACA,gBACA,mBACA,iBACA,iBACA,MACA,sBACA,SACA,gBACA,eACA,YACA,cACA,cACA,eACA,UACA,uBACA,4BACA,qBACA,uBACA,gBACA,uBACA,mBACA,mBACA,qBACA,WACA,cACA,qBACA,mBACA,WACA,aACA,mBACA,iBACA,kBACA,kBACA,UACA,aACA,UACA,mBACA,kBACA,0BACA,YACA,eACA,uBACA,gBACA,uBACA,WACA,WACA,YACA,UACA,QACA,kBACA,cACA,aACA,qBACA,kBACA,WACA,SACA,cACA,cACA,WACA,QACA,aACA,SACA,UACA,SACA,UACA,SACA,UACA,eACA,cACA,YACA,SACA,UACA,SACA,qBACA,UACA,SACA,UACA,OACA,MACA,SACA,SACA,iBACA,eACA,0BACA,cACA,SACA,gBACA,YACA,QACA,kBACA,aACA,cACA,eACA,YACA,WACA,YACA,SACA,gBACA,eACA,aACA,SACA,QACA,aACA,WACA,aACA,cACA,MACA,YACA,aACA,aACA,SACA,aACA,cACA,WACA,qBACA,cACA,mBACA,SACA,cACA,cACA,oBACA,iBACA,eACA,oBACA,sBACA,WACA,cACA,mBACA,aACA,wBACA,kBACA,uBACA,oBACA,yBACA,sBACA,iBACA,sBACA,0BACA,oBACA,wBACA,kBACA,gBACA,eACA,yBACA,oBACA,OACA,kBACA,YACA,yBACA,WACA,QACA,iBACA,aACA,QACA,eACA,gBACA,wBACA,gBACA,eACA,yBACA,sBACA,kBACA,gBACA,uBACA,YACA,aACA,cACA,cACA,gBACA,gBACA,YACA,sBACA,iBACA,gBACA,mBACA,cACA,iBACA,iBACA,YACA,aACA,cACA,yBACA,eACA,gBACA,oBACA,iBACA,oBACA,eACA,WACA,WACA,iBACA,aACA,kBACA,YACA,YACA,SACA,cACA,eACA,gBACA,cACA,eACA,kBACA,mBACA,8BACA,aACA,YACA,cACA,eACA,mBACA,cACA,YACA,YACA,sBACA,+BACA,eACA,iBACA,uBACA,aACA,eACA,yBACA,WACA,sBACA,aACA,qBACA,uBACA,aACA,qBACA,kBACA,eACA,YACA,YACA,qBACA,2BACA,uBACA,oBACA,mBACA,sBACA,gBACA,aACA,oBACA,cACA,aACA,cACA,mBACA,iBACA,iBACA,OACA,WACA,YACA,aACA,YACA,kBACA,OACA,oBACA,OACA,aACA,uBACA,0BACA,YACA,mBACA,WACA,OACA,OACA,iBACA,iBACA,kCACA,WACA,aACA,eACA,mBACA,sBACA,YACA,2BACA,UACA,YACA,aACA,qBACA,iBACA,aACA,aACA,WACA,WACA,mBACA,YACA,sBACA,0BACA,YACA,oBACA,uBACA,uBACA,6BACA,uBACA,6BACA,UACA,uBACA,OACA,SACA,QACA,oBACA,iCACA,eACA,QACA,QACA,QACA,sBACA,qBACA,+BACA,gCACA,aACA,wBACA,6BACA,mBACA,iBACA,oBACA,UACA,UACA,cACA,UACA,UACA,cACA,OACA,2BACA,mBACA,mCACA,wBACA,kBACA,UACA,wBACA,oBACA,cACA,mBACA,0BACA,iBACA,wBACA,iBACA,kBACA,WACA,oBACA,iBACA,eACA,eACA,aACA,iBACA,kBACA,cACA,YACA,WACA,WACA,uBACA,kBACA,uBACA,4BACA,kBACA,yBACA,qBACA,+BACA,SACA,WACA,SACA,YACA,SACA,QACA,SACA,eACA,gBACA,SACA,mBACA,sBACA,QACA,uBACA,wBACA,iBACA,QACA,YACA,oBACA,gBACA,QACA,QACA,wBACA,iBACA,sBACA,0BACA,iBACA,gBACA,sBACA,gBACA,sBACA,wBACA,4BACA,4BACA,8BACA,WACA,cACA,gBACA,oBACA,OACA,OACA,WACA,eACA,OACA,OACA,YACA,WACA,QACA,YACA,QACA,6BACA,iBACA,0BACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBACA,WACA,iBACA,eACA,mBACA,mBACA,0BACA,SACA,qBACA,6BACA,2BACA,eACA,qBACA,sBACA,gBACA,iBACA,iBACA,SACA,MACA,mBACA,UACA,gBACA,QACA,QACA,UACA,qBACA,WACA,QACA,aACA,YACA,YACA,YACA,cACA,mBACA,WACA,kBACA,MACA,gBACA,SACA,qBACA,mBACA,QACA,aACA,qBACA,uBACA,QACA,oBACA,wBACA,kBACA,eACA,eACA,oBACA,2BACA,kBACA,yBACA,kBACA,iBACA,sBACA,6BACA,cACA,gBACA,cACA,cACA,eACA,cACA,eACA,iBACA,yBACA,SACA,YACA,YACA,mBACA,aACA,iBACA,aACA,kBACA,mBACA,cACA,iBACA,gBACA,kBACA,aACA,iBACA,eACA,cACA,yBACA,OACA,YACA,kBACA,aACA,oBACA,YACA,eACA,IACA,cACA,gBACA,mBACA,kBACA,eACA,eACA,UACA,gBACA,eACA,aACA,mBACA,SACA,eACA,mBACA,iBACA,sBACA,yBACA,gBACA,iCACA,2BACA,aACA,kBACA,MACA,UACA,uBACA,aACA,eACA,iBACA,uBACA,oBACA,mBACA,eACA,QACA,gBACA,WACA,aACA,UACA,gBACA,QACA,0BACA,WACA,gBACA,qBACA,eACA,cACA,MACA,YACA,iBACA,aACA,UACA,kBACA,OACA,oBACA,eACA,kBACA,qBACA,kBACA,eACA,cACA,cACA,wBACA,oBACA,0BACA,sBACA,aACA,0BACA,yBACA,yBACA,mBACA,YACA,iBACA,wBACA,kBACA,mBACA,YACA,gBACA,eACA,oBACA,0BACA,SACA,YACA,sBACA,mBACA,uBACA,iBACA,oBACA,cACA,aACA,WACA,YACA,aACA,QACA,WACA,YACA,WACA,oBACA,uBACA,YACA,SACA,cACA,YACA,iBACA,gBACA,kCACA,cACA,mBACA,gBACA,QACA,qBACA,gBACA,cACA,sBACA,iBACA,uBACA,gBACA,kBACA,mBACA,sBACA,gBACA,yBACA,0BACA,cACA,qBACA,mBACA,YACA,kBACA,oBACA,yBACA,yBACA,2BACA,gBACA,qBACA,iBACA,aACA,iBACA,mBACA,2BACA,uBACA,gBACA,cACA,cACA,eACA,aACA,wBACA,wBACA,oBACA,aACA,aACA,QACA,aACA,WACA,WACA,cACA,cACA,qBACA,eACA,qBACA,kBACA,mBACA,wBACA,gBACA,eACA,wBACA,OACA,mBACA,qBACA,sBACA,SACA,YACA,YACA,cACA,aACA,eACA,gBACA,cACA,iBACA,uCACA,uCACA,iCACA,uCACA,oCACA,eACA,WACA,qBACA,wBACA,yBACA,+BACA,WACA,cACA,QACA,WACA,kBACA,eACA,mBACA,mBACA,gBACA,YACA,OACA,oBACA,WACA,gBACA,aACA,kBACA,YACA,QACA,aACA,2BACA,QACA,SACA,eACA,sBACA,UACA,kBACA,eACA,oBACA,mBACA,YACA,eACA,mBACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,mBACA,gBACA,WACA,cACA,mBACA,cACA,yBACA,6BACA,wBACA,eACA,qBACA,eACA,WACA,uBACA,YACA,aACA,cACA,cACA,eACA,cACA,kBACA,+BACA,uBACA,iBACA,YACA,SACA,oBACA,cACA,oBACA,oBACA,kBACA,mBACA,iBACA,UACA,QACA,YACA,eACA,eACA,eACA,gBACA,YACA,oBACA,cACA,gBACA,gBACA,uBACA,WACA,cACA,cACA,mBACA,SACA,gBACA,eACA,aACA,wBACA,gBACA,cACA,iBACA,wBACA,cACA,aACA,aACA,mBACA,SACA,mBACA,oBACA,aACA,cACA,eACA,iBACA,eACA,sBACA,mBACA,YACA,2BACA,YACA,kBACA,aACA,cACA,yBACA,qBACA,kBACA,uBACA,cACA,kBACA,qBACA,oBACA,UACA,WACA,uBACA,mBACA,kBACA,aACA,0BACA,gBACA,iBACA,mBACA,wBACA,UACA,qBACA,YACA,gBACA,kBACA,qBACA,kBACA,cACA,gBACA,oBACA,oBACA,oBACA,wBACA,2BACA,UACA,cACA,gBACA,aACA,cACA,kBACA,qBACA,8BACA,yBACA,yBACA,WACA,iBACA,mBACA,qBACA,YACA,wBACA,cACA,OACA,UACA,kBACA,kBACA,sBACA,oBACA,eACA,gBACA,YACA,kBACA,uBACA,qBACA,oBACA,YACA,qBACA,cACA,UACA,sBACA,2BACA,kBACA,0BACA,8BACA,qBACA,qBACA,iCACA,+BACA,eACA,cACA,iBACA,uBACA,WACA,gBACA,qBACA,gBACA,oBACA,kBACA,YACA,qBACA,oBACA,iBACA,iBACA,YACA,aACA,cACA,cACA,kBACA,eACA,eACA,sBACA,0BACA,gBACA,iBACA,sBACA,oBACA,cACA,UACA,cACA,WACA,oBACA,eACA,WACA,oBACA,qBACA,mBACA,0BACA,iBACA,uBACA,wBACA,6BACA,gBACA,kBACA,kBACA,gBACA,eACA,cACA,gBACA,WACA,iBACA,mBACA,eACA,qBACA,uBACA,UACA,gBACA,mBACA,0BACA,yBACA,wBACA,4BACA,qBACA,qBACA,wBACA,4BACA,oBACA,uBACA,mBACA,iBACA,kBACA,mBACA,oBACA,cACA,cACA,oBACA,kBACA,wBACA,sBACA,4BACA,iBACA,iBACA,oBACA,mBACA,WACA,iBACA,iBACA,iBACA,iBACA,UACA,wBACA,6BACA,mBACA,wBACA,sBACA,yBACA,sBACA,0BACA,WACA,YACA,qBACA,WACA,cACA,gBACA,WACA,UACA,kBACA,eACA,kBACA,cACA,sBACA,sBACA,kBACA,MACA,OACA,eACA,iBACA,eACA,cACA,MACA,OACA,QACA,gBACA,kBACA,qBACA,aACA,oBACA,kCACA,mBACA,kBACA,oBACA,eACA,0BACA,aACA,cACA,SACA,WACA,aACA,8BACA,qBACA,qBACA,0BACA,WACA,cACA,qBACA,gBACA,eACA,gBACA,wBACA,gBACA,sBACA,wBACA,eACA,kBACA,iBACA,aACA,gCACA,iCACA,iBACA,sBACA,gBACA,sBACA,yBACA,sBACA,oBACA,oBACA,kBACA,aACA,eACA,oBACA,+BACA,+BACA,kBACA,QACA,wBACA,gBACA,iBACA,kBACA,cACA,MACA,OACA,eACA,OACA,WACA,SACA,SACA,YACA,WACA,6BACA,MACA,SACA,OACA,mBACA,aACA,kBACA,cACA,eACA,0BACA,uBACA,qBACA,eACA,QACA,eACA,sBACA,cACA,OACA,aACA,uBACA,SACA,cACA,aACA,WACA,cACA,2BACA,IACA,oBACA,UACA,6BACA,gBACA,SACA,SACA,UACA,kBACA,qBACA,oBACA,UACA,aACA,gBACA,WACA,gBACA,kBACA,mBACA,YACA,eACA,UACA,sBACA,gBACA,iBACA,OACA,aACA,QACA,iBACA,iBACA,YACA,aACA,eACA,gBACA,eACA,WACA,kBACA,eACA,mBACA,aACA,cACA,gBACA,cACA,WACA,YACA,gBACA,aACA,kBACA,YACA,cACA,oBACA,oBACA,UACA,WACA,qBACA,gBACA,YACA,YACA,UACA,qBACA,UACA,WACA,WACA,gBACA,mBACA,QACA,WACA,eACA,UACA,cACA,sBACA,iBACA,YACA,qBACA,YACA,UACA,cACA,cACA,qBACA,UACA,mBACA,mBACA,kBACA,gBACA,eACA,0BACA,4BACA,kBACA,iBACA,wBACA,wBACA,cACA,wBACA,oBACA,4BACA,oBACA,yBACA,wBACA,0BACA,yBACA,oBACA,mBACA,yBACA,sBACA,4BACA,kBACA,iBACA,0BACA,wBACA,eACA,0BACA,wBACA,8BACA,oBACA,sBACA,eACA,gBACA,QACA,iBACA,0BACA,2BACA,yBACA,aACA,SACA,mBACA,0BACA,sBACA,6BACA,eACA,eACA,mBACA,MACA,eACA,UACA,YACA,SACA,kBACA,yBACA,cACA,gBACA,wBACA,iBACA,kBACA,mBACA,qBACA,aACA,gBACA,eACA,uBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,oBACA,YACA,qBACA,oBACA,aACA,mBACA,aACA,cACA,kBACA,mBACA,cACA,gBACA,qBACA,SACA,WACA,QACA,iBACA,aACA,mBACA,aACA,uBACA,eACA,yBACA,MACA,cACA,kBACA,gBACA,4BACA,eACA,aACA,cACA,aACA,mBACA,mBACA,iBACA,uBACA,UACA,gBACA,cACA,oBACA,mBACA,yBACA,WACA,wBACA,iBACA,kBACA,SACA,eACA,cACA,cACA,iBACA,eACA,eACA,gBACA,UACA,gBACA,oBACA,mBACA,kBACA,kBACA,kBACA,qBACA,iBACA,uBACA,cACA,gBACA,mBACA,yBACA,uBACA,mBACA,aACA,oBACA,iBACA,aACA,SACA,gBACA,gBACA,WACA,0BACA,4BACA,kBACA,2BACA,qBACA,aACA,YACA,aACA,eACA,gBACA,gBACA,iBACA,mBACA,YACA,YACA,YACA,gBACA,aACA,iBACA,gBACA,qBACA,qBACA,oBACA,wBACA,eACA,aACA,kBACA,qBACA,kBACA,4BACA,oBACA,qBACA,0BACA,mBACA,gBACA,4BACA,oBACA,gBACA,2BACA,2BACA,wBACA,wBACA,mBACA,mBACA,eACA,iBACA,gBACA,uBACA,gBACA,qBACA,8BACA,oBACA,sBACA,iCACA,2BACA,qBACA,mBACA,eACA,YACA,cACA,OACA,UACA,aACA,cACA,WACA,YACA,8BACA,UACA,kBACA,mBACA,0BACA,cACA,kBACA,gBACA,eACA,uBACA,gBACA,mBACA,cACA,iBACA,sBACA,mBACA,iBACA,oBACA,aACA,cACA,sBACA,wBACA,oBACA,qBACA,sBACA,mCACA,yBACA,YACA,MACA,aACA,SACA,WACA,WACA,cACA,YACA,WACA,eACA,aACA,UACA,YACA,KACA,cACA,oBACA,+BACA,mCACA,qBACA,mBACA,yBACA,eACA,gCACA,iBACA,gBACA,MACA,YACA,WACA,WACA,eACA,SACA,sBACA,wBACA,kBACA,kBACA,uBACA,gBACA,sBACA,2BACA,uBACA,mBACA,iBACA,gBACA,oBACA,oBACA,iBACA,OACA,YACA,eACA,mBACA,sBACA,oBACA,iBACA,oBACA,qBACA,kBACA,qBACA,aACA,UACA,eACA,aACA,cACA,YACA,iBACA,kBACA,OACA,eACA,SACA,cACA,KACA,wBACA,iBACA,mBACA,UACA,WACA,iBACA,WACA,UACA,aACA,oBACA,2BACA,qBACA,eACA,kBACA,gBACA,mBACA,0BACA,sBACA,sBACA,cACA,mBACA,mBACA,iBACA,kBACA,iBACA,oBACA,2BACA,IACA,kBACA,iBACA,yBACA,OACA,eACA,cACA,UACA,4BACA,eACA,cACA,YACA,mBACA,eACA,WACA,YACA,aACA,kBACA,cACA,aACA,aACA,WACA,YACA,eACA,eACA,aACA,iBACA,WACA,cACA,QACA,wBACA,YACA,oBACA,YACA,kBACA,mBACA,WACA,gBACA,aACA,qBACA,WACA,qBACA,uBACA,eACA,oBACA,cACA,cACA,wBACA,eACA,UACA,cACA,mBACA,cACA,YACA,mBACA,YACA,YACA,cACA,mBACA,YACA,sBACA,YACA,cACA,gBACA,aACA,6BACA,gBACA,qBACA,YACA,eACA,kBACA,iBACA,kBACA,YACA,wBACA,wBACA,QACA,cACA,cACA,2BACA,UACA,SACA,UACA,kBACA,cACA,MACA,SACA,kBACA,+BACA,cACA,YACA,YACA,cACA,aACA,oBACA,kBACA,QACA,wBACA,kBACA,SACA,cACA,kBACA,eACA,iBACA,cACA,iBACA,aACA,iBACA,mBACA,iBACA,sBACA,iBACA,cACA,eACA,iBACA,mBACA,cACA,UACA,gBACA,cACA,SACA,iBACA,QACA,eACA,YACA,aACA,UACA,YACA,cACA,yBACA,aACA,MACA,OACA,OACA,UACA,UACA,qBACA,UACA,WACA,kBACA,YACA,cACA,uBACA,eACA,sBACA,wBACA,mBACA,iBACA,qBACA,oBACA,cACA,sBACA,SACA,aACA,iBACA,cACA,WACA,cACA,WACA,YACA,iBACA,wBACA,gBACA,iBACA,6BACA,iBACA,qBACA,wBACA,iBACA,oBACA,qBACA,mBACA,kBACA,YACA,iBACA,QACA,YACA,iBACA,eACA,kBACA,cACA,cACA,sBACA,eACA,qBACA,cACA,SACA,gBACA,gBACA,6BACA,cACA,aACA,kBACA,SACA,OACA,aACA,gBACA,MACA,SACA,YACA,oBACA,iBACA,kBACA,cACA,eACA,gBACA,uBACA,eACA,gBACA,iBACA,WACA,mBACA,0BACA,oBACA,gCACA,2BACA,+BACA,mBACA,eACA,SACA,yBACA,kBACA,aACA,eACA,eACA,aACA,iBACA,kBACA,mBACA,iBACA,YACA,sBACA,cACA,YACA,wBACA,gBACA,aACA,iBACA,eACA,gCACA,mBACA,mBACA,uBACA,qBACA,iBACA,kBACA,wBACA,mBACA,sBACA,0BACA,qBACA,wBACA,qBACA,wBACA,wBACA,gBACA,UACA,iBACA,eACA,uBACA,2BACA,YACA,WACA,YACA,iBACA,iBACA,SACA,iBACA,YACA,aACA,kBACA,oCACA,iBACA,gBACA,aACA,mBACA,uBACA,cACA,kBACA,OACA,UACA,gBACA,sBACA,WACA,QACA,gBACA,gBACA,kBACA,iBACA,oBACA,mBACA,2BACA,eACA,iBACA,mBACA,qBACA,eACA,8BACA,oBACA,iBACA,sBACA,eACA,6BACA,kBACA,YACA,aACA,0BACA,YACA,iBACA,cACA,YACA,OACA,eACA,gBACA,cACA,WACA,cACA,gBACA,aACA,cACA,WACA,kBACA,WACA,gBACA,yBACA,eACA,gBACA,eACA,YACA,iBACA,gBACA,eACA,YACA,WACA,gBACA,iBACA,eACA,oBACA,WACA,cACA,iBACA,wBACA,UACA,eACA,mBACA,sBACA,cACA,gBACA,gBACA,sBACA,qBACA,OACA,gBACA,aACA,aACA,eACA,aACA,eACA,cACA,gBACA,YACA,cACA,mBACA,6BACA,gBACA,gBACA,cACA,2BACA,sBACA,oBACA,yBACA,YACA,WACA,UACA,cACA,wBACA,yBACA,kBACA,2BACA,yBACA,uBACA,uBACA,qBACA,uBACA,sBACA,yBACA,gBACA,yBACA,2BACA,eACA,wBACA,YACA,cACA,YACA,YACA,cACA,uBACA,WACA,oBACA,cACA,iBACA,kBACA,eACA,kBACA,cACA,sBACA,iBACA,eACA,2BACA,WACA,YACA,kBACA,kBACA,wBACA,aACA,WACA,uBACA,eACA,mBACA,mBACA,mBACA,6BACA,oBACA,gBACA,sBACA,kBACA,gBACA,6BACA,OACA,gBACA,0BACA,mBACA,kBACA,QACA,YACA,+BACA,gBACA,mBACA,mBACA,wBACA,mCACA,kBACA,sBACA,MACA,SACA,oBACA,cACA,aACA,aACA,iBACA,iBACA,OACA,UACA,YACA,eACA,gBACA,WACA,QACA,iBACA,yBACA,OACA,WACA,WACA,eACA,kBACA,OACA,YACA,aACA,WACA,WACA,cACA,qBACA,iBACA,iBACA,WACA,YACA,oBACA,eACA,iBACA,aACA,MACA,SACA,sBACA,SACA,cACA,aACA,wBACA,eACA,UACA,iBACA,cACA,eACA,qBACA,aACA,WACA,YACA,cACA,gBACA,cACA,UACA,kBACA,UACA,qBACA,wBACA,mBACA,sBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,oBACA,2BACA,gBACA,wBACA,mBACA,sBACA,mBACA,oBACA,kCACA,iCACA,iBACA,cACA,qBACA,eACA,QACA,WACA,kBACA,SACA,aACA,aACA,YACA,eACA,YACA,aACA,aACA,kBACA,qBACA,sBACA,QACA,qBACA,gCACA,WACA,WACA,WACA,WACA,SACA,kBACA,iBACA,mBACA,oBACA,uBACA,wBACA,WACA,aACA,UACA,aACA,iBACA,mBACA,uBACA,mBACA,2BACA,eACA,QACA,4BACA,uBACA,kBACA,iBACA,mBACA,yBACA,oBACA,gBACA,uBACA,qBACA,kBACA,iBACA,mBACA,OACA,WACA,iBACA,WACA,eACA,iCACA,cACA,aACA,eACA,WACA,kBACA,wBACA,iCACA,+BACA,8BACA,iBACA,iBACA,wBACA,iBACA,gBACA,gBACA,0BACA,cACA,cACA,eACA,cACA,mBACA,aACA,cACA,QACA,oBACA,mBACA,aACA,eACA,sBACA,SACA,WACA,2BACA,iBACA,4BACA,iBACA,kBACA,cACA,eACA,aACA,iBACA,mBACA,iBACA,uCACA,uCACA,oCACA,iBACA,MACA,cACA,UACA,4BACA,4BACA,qBACA,gBACA,2BACA,qBACA,2BACA,mBACA,sBACA,8BACA,wBACA,uBACA,mCACA,uBACA,qBACA,uBACA,yBACA,sBACA,UACA,kCACA,aACA,eACA,cACA,UACA,eACA,gBACA,iBACA,YACA,kBACA,iBACA,YACA,YACA,iBACA,iBACA,kBACA,mBACA,kBACA,kBACA,iBACA,cACA,eACA,UACA,kBACA,cACA,kBACA,mBACA,cACA,cACA,sBACA,6BACA,eACA,oBACA,kBACA,eACA,sBACA,kBACA,sBACA,gBACA,WACA,gBACA,wBACA,eACA,cACA,WACA,YACA,YACA,cACA,cACA,uBACA,uBACA,YACA,qBACA,iCACA,wBACA,gBACA,sBACA,wBACA,iBACA,0BACA,+BACA,sCACA,6BACA,oCACA,WACA,aACA,UACA,cACA,iBACA,iBACA,gBACA,oBACA,WACA,kBACA,qBACA,gBACA,cACA,YACA,qBACA,gBACA,aACA,0BACA,aACA,YACA,eACA,gBACA,eACA,mBACA,2BACA,aACA,eACA,iBACA,oBACA,MACA,2BACA,aACA,iBACA,cACA,+BACA,gCACA,iBACA,gCACA,WACA,8BACA,oBACA,gBACA,OACA,cACA,cACA,8BACA,eACA,sBACA,0BACA,OACA,OACA,WACA,iBACA,4BACA,eACA,eACA,eACA,QACA,UACA,qBACA,yBACA,cACA,kBACA,YACA,eACA,gBACA,kBACA,qBACA,gBACA,sBACA,mBACA,iBACA,iBACA,sBACA,WACA,WACA,aACA,gBACA,uBACA,gBACA,mBACA,cACA,qBACA,gBACA,iBACA,kBACA,uBACA,8BACA,qBACA,4BACA,mBACA,eACA,eACA,kBACA,gBACA,qBACA,4BACA,mBACA,0BACA,mBACA,yBACA,cACA,kBACA,gBACA,oBACA,cACA,sBACA,iBACA,YACA,cACA,aACA,4BACA,SACA,cACA,mBACA,YACA,aACA,aACA,OACA,YACA,UACA,eACA,mBACA,mBACA,mBACA,iBACA,cACA,oBACA,cACA,eACA,QACA,gBACA,OACA,eACA,UACA,mBACA,oBACA,kBACA,eACA,kBACA,mBACA,iBACA,kBACA,uBACA,qBACA,0BACA,YACA,mBACA,YACA,YACA,iBACA,gBACA,kBACA,UACA,mBACA,uBACA,uBACA,gBACA,gBACA,qBACA,kBACA,YACA,2BACA,cACA,aACA,uBACA,yBACA,kBACA,uBACA,wBACA,8BACA,oBACA,eACA,eACA,qBACA,cACA,iBACA,WACA,yBACA,YACA,YACA,kBACA,oBACA,kBACA,gBACA,mBACA,uBACA,WACA,WACA,eACA,kBACA,oBACA,aACA,sBACA,cACA,eACA,qBACA,iBACA,OACA,eACA,eACA,YACA,iBACA,OACA,cACA,kBACA,mBACA,wBACA,cACA,aACA,cACA,QACA,kBACA,cACA,iBACA,cACA,WACA,oBACA,sBACA,sBACA,OACA,uBACA,WACA,mBACA,0BACA,UACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,uBACA,aACA,gBACA,uBACA,cACA,sBACA,gBACA,cACA,iBACA,iBACA,gBACA,iBACA,oBACA,eACA,gBACA,gBACA,YACA,cACA,wBACA,gBACA,qBACA,kCACA,uBACA,mBACA,iBACA,qBACA,YACA,aACA,iBACA,OACA,UACA,kBACA,eACA,YACA,WACA,cACA,WACA,kBACA,gBACA,WACA,aACA,iBACA,kBACA,2BACA,aACA,aACA,+BACA,mBACA,WACA,oBACA,eACA,cACA,kBACA,eACA,MACA,kBACA,eACA,YACA,kBACA,cACA,yBACA,iBACA,+BACA,iBACA,oBACA,+BACA,oBACA,+BACA,oBACA,+BACA,6BACA,oBACA,+BACA,kBACA,YACA,kBACA,4BACA,aACA,cACA,qBACA,8BACA,qBACA,IACA,WACA,UACA,iBACA,YACA,cACA,WACA,iBACA,KACA,aACA,mBACA,oBACA,mBACA,mBACA,KACA,QACA,UACA,oBACA,gBACA,kBACA,WACA,cACA,aACA,aACA,oBACA,mBACA,gBACA,yBACA,qBACA,aACA,kBACA,eACA,uBACA,aACA,gBACA,YACA,eACA,kBACA,eACA,iBACA,gBACA,gBACA,oBACA,eACA,iBACA,2BACA,YACA,YACA,kBACA,gBACA,kBACA,kBACA,qBACA,gBACA,cACA,uBACA,oBACA,iBACA,kBACA,gBACA,cACA,oBACA,2BACA,uBACA,6BACA,gBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,cACA,aACA,eACA,cACA,eACA,oBACA,YACA,gBACA,cACA,WACA,eACA,iBACA,mBACA,iCACA,gBACA,uBACA,eACA,oBACA,SACA,kBACA,eACA,eACA,cACA,cACA,kBACA,eACA,cACA,eACA,sBACA,cACA,YACA,YACA,kBACA,iBACA,uBACA,eACA,gBACA,YACA,sBACA,YACA,YACA,aACA,sBACA,gBACA,iBACA,UACA,SACA,yBACA,kBACA,gBACA,eACA,wBACA,KACA,aACA,WACA,iBACA,gBACA,kBACA,uBACA,uBACA,qBACA,qBACA,uBACA,wBACA,mBACA,qBACA,yBACA,cACA,oBACA,uBACA,sBACA,qBACA,YACA,oBACA,SACA,2BACA,oBACA,mBACA,sBACA,8BACA,kBACA,2BACA,wBACA,gBACA,yBACA,uBACA,UACA,uBACA,aACA,WACA,aACA,iBACA,iBACA,iBACA,eACA,eACA,gBACA,WACA,QACA,kBACA,kBACA,cACA,kBACA,sBACA,YACA,eACA,8BACA,2BACA,iBACA,qBACA,+BACA,4BACA,wBACA,sBACA,aACA,iBACA,2BACA,0BACA,cACA,QACA,eACA,kBACA,UACA,QACA,eACA,mBACA,wBACA,aACA,gBACA,uBACA,YACA,gBACA,kBACA,gBACA,cACA,gBACA,cACA,cACA,oBACA,uBACA,SACA,oBACA,uBACA,mBACA,gBACA,QACA,aACA,oBACA,WACA,kBACA,WACA,UACA,iBACA,6BACA,WACA,UACA,gBACA,kBACA,gBACA,cACA,cACA,oBACA,WACA,iBACA,WACA,gBACA,WACA,YACA,cACA,0BACA,aACA,eACA,kCACA,wBACA,0BACA,gBACA,qBACA,sBACA,yBACA,iBACA,oBACA,2BACA,yBACA,cACA,oBACA,qBACA,YACA,oBACA,yBACA,gBACA,eACA,WACA,uBACA,kBACA,uBACA,kBACA,iBACA,gBACA,OACA,UACA,yBACA,aACA,+BACA,oCACA,2BACA,uBACA,aACA,cACA,iBACA,6BACA,kCACA,6BACA,0BACA,kBACA,mBACA,2BACA,0BACA,8BACA,sBACA,yBACA,mBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,0BACA,yBACA,qBACA,eACA,wBACA,gBACA,0BACA,qBACA,0BACA,2BACA,0BACA,sBACA,mCACA,oBACA,YACA,uBACA,iBACA,YACA,yBACA,aACA,oBACA,mBACA,cACA,SACA,OACA,kBACA,UACA,iBACA,sBACA,WACA,YACA,aACA,uBACA,kBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,eACA,aACA,eACA,eACA,eACA,eACA,oBACA,sBACA,OACA,aACA,SACA,cACA,iBACA,wBACA,WACA,sBACA,2BACA,aACA,oBACA,yBACA,eACA,iBACA,IACA,YACA,qBACA,eACA,kBACA,eACA,6BACA,WACA,iBACA,kBACA,gBACA,2BACA,uBACA,sBACA,YACA,YACA,YACA,YACA,aACA,iBACA,gBACA,iBACA,4BACA,eACA,UACA,MACA,MACA,uBACA,gBACA,UACA,cACA,aACA,WACA,kBACA,SACA,aACA,mBACA,OACA,YACA,UACA,YACA,UACA,WACA,cACA,kBACA,WACA,cACA,iBACA,kBACA,kBACA,gBACA,kBACA,WACA,aACA,YACA,wBACA,iBACA,8BACA,mBACA,kBACA,aACA,0BACA,WACA,iBACA,6BACA,yBACA,WACA,QACA,UACA,gBACA,mBACA,eACA,aACA,kBACA,YACA,WACA,mBACA,WACA,aACA,gBACA,qBACA,WACA,mBACA,eACA,mBACA,kBACA,sBACA,mBACA,YACA,kBACA,0BACA,QACA,SACA,OACA,WACA,oBACA,cACA,gBACA,SACA,gBACA,mBACA,oBACA,oBACA,WACA,MACA,aACA,YACA,YACA,oBACA,sBACA,eACA,0BACA,eACA,2BACA,OACA,YACA,eACA,sBACA,oBACA,iBACA,oBACA,iBACA,kBACA,UACA,eACA,gBACA,eACA,kBACA,oBACA,mBACA,kBACA,eACA,kBACA,aACA,gBACA,mBACA,WACA,iBACA,cACA,eACA,gBACA,gBACA,mBACA,YACA,YACA,eACA,SACA,cACA,WACA,OACA,YACA,mBACA,gBACA,gBACA,cACA,WACA,iBACA,WACA,YACA,kBACA,eACA,eACA,UACA,QACA,aACA,mBACA,mBACA,gBACA,kBACA,kBACA,uBACA,6BACA,sBACA,wBACA,cACA,gBACA,YACA,oBACA,0BACA,YACA,aACA,YACA,UACA,YACA,aACA,WACA,gBACA,eACA,cACA,YACA,cACA,WACA,eACA,cACA,aACA,QACA,oBACA,0BACA,sBACA,OACA,YACA,mBACA,eACA,+BACA,4BACA,sBACA,gCACA,cACA,iBACA,uBACA,qBACA,oBACA,mBACA,cACA,sBACA,UACA,iBACA,YACA,uBACA,iBACA,8BACA,kBACA,YACA,YACA,aACA,wBACA,8BACA,+BACA,aACA,cACA,cACA,gBACA,eACA,YACA,cACA,iBACA,aACA,YACA,YACA,eACA,WACA,gBACA,aACA,WACA,aACA,WACA,cACA,eACA,eACA,qBACA,WACA,eACA,aACA,QACA,cACA,YACA,gBACA,kBACA,OACA,WACA,cACA,kBACA,oBACA,eACA,gBACA,oBACA,iBACA,kBACA,oBACA,SACA,aACA,+BACA,oBACA,kCACA,eACA,oBACA,iBACA,cACA,aACA,gBACA,0BACA,uBACA,WACA,WACA,aACA,kBACA,gBACA,QACA,yBACA,yBACA,wBACA,eACA,wBACA,iBACA,oBACA,wBACA,iBACA,mBACA,iBACA,UACA,gBACA,wBACA,aACA,6BACA,sBACA,oBACA,cACA,eACA,kCACA,cACA,cACA,YACA,gBACA,0BACA,eACA,UACA,oBACA,aACA,oBACA,mBACA,cACA,iBACA,wBACA,gBACA,SACA,MACA,QACA,OACA,aACA,WACA,uBACA,gBACA,cACA,uBACA,kBACA,gBACA,gBACA,gBACA,0BACA,aACA,6BACA,wBACA,UACA,cACA,wBACA,YACA,UACA,wBACA,iCACA,2BACA,oCACA,eACA,yBACA,WACA,YACA,gBACA,qBACA,iBACA,2BACA,SACA,WACA,iBACA,UACA,eACA,aACA,iBACA,kBACA,qBACA,yBACA,gBACA,mBACA,eACA,yBACA,mBACA,qBACA,SACA,uBACA,kBACA,eACA,WACA,gBACA,eACA,YACA,cACA,iBACA,mBACA,2BACA,UACA,gBACA,UACA,wBACA,cACA,aACA,WACA,uBACA,uBACA,aACA,oBACA,uBACA,eACA,YACA,wBACA,WACA,YACA,iBACA,YACA,6BACA,4BACA,yBACA,wBACA,8BACA,uBACA,oBACA,iBACA,oBACA,aACA,cACA,yBACA,kBACA,mBACA,SACA,MACA,SACA,QACA,aACA,YACA,YACA,8BACA,UACA,qBACA,qBACA,qBACA,uBACA,0BACA,UACA,wBACA,kBACA,kBACA,SACA,WACA,2BACA,sBACA,WACA,yBACA,yBACA,gCACA,gBACA,kBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,aACA,aACA,WACA,YACA,aACA,iBACA,YACA,2BACA,aACA,cACA,6BACA,UACA,aACA,sBACA,MACA,UACA,iBACA,mBACA,UACA,YACA,cACA,qBACA,qBACA,yBACA,cACA,YACA,YACA,WACA,WACA,gBACA,WACA,gBACA,oBACA,qBACA,gBACA,YACA,eACA,wBACA,kBACA,WACA,cACA,oBACA,WACA,sBACA,aACA,qBACA,OACA,wBACA,aACA,4BACA,yBACA,gBACA,aACA,oBACA,qBACA,YACA,kBACA,uBACA,SACA,kBACA,eACA,kBACA,SACA,UACA,gBACA,sBACA,iBACA,kBACA,UACA,kBACA,oBACA,mBACA,cACA,aACA,OACA,iBACA,iBACA,gBACA,WACA,WACA,aACA,mBACA,YACA,WACA,QACA,mBACA,kBACA,wBACA,yBACA,OACA,mBACA,gBACA,oBACA,gBACA,gBACA,iBACA,kBACA,kBACA,YACA,wBACA,gBACA,wBACA,kBACA,gBACA,iBACA,kBACA,YACA,yBACA,aACA,cACA,cACA,YACA,UACA,gBACA,cACA,cACA,gBACA,iBACA,gBACA,WACA,mBACA,iBACA,kBACA,mBACA,SACA,gBACA,oBACA,eACA,WACA,MACA,mBACA,UACA,YACA,cACA,YACA,YACA,oBACA,yBACA,WACA,uBACA,kBACA,wBACA,WACA,SACA,kBACA,SACA,eACA,UACA,wBACA,QACA,YACA,WACA,UACA,kBACA,oBACA,mBACA,WACA,gBACA,eACA,sBACA,iBACA,qBACA,cACA,iBACA,aACA,qBACA,YACA,sBACA,MACA,QACA,OACA,UACA,iBACA,gBACA,SACA,UACA,YACA,WACA,oBACA,sBACA,gBACA,iBACA,kBACA,eACA,iBACA,mBACA,YACA,oBACA,gBACA,SACA,YACA,gBACA,iBACA,2BACA,kBACA,SACA,UACA,eACA,gBACA,gBACA,YACA,eACA,gBACA,wBACA,4BACA,0BACA,2BACA,qBACA,yBACA,yBACA,gBACA,OACA,eACA,kBACA,kBACA,qBACA,eACA,YACA,mBACA,gBACA,YACA,gBACA,YACA,eACA,oBACA,cACA,iBACA,cACA,qBACA,qBACA,mBACA,oBACA,cACA,0BACA,0BACA,sBACA,eACA,gBACA,iBACA,yCACA,kCACA,4BACA,IACA,uBACA,QACA,QACA,eACA,sBACA,OACA,UACA,UACA,cACA,kBACA,sBACA,SACA,gBACA,gBACA,UACA,eACA,UACA,kBACA,mBACA,uBACA,YACA,aACA,mCACA,mCACA,4BACA,QACA,WACA,+BACA,0BACA,mBACA,kCACA,oBACA,gBACA,8BACA,mBACA,oBACA,OACA,uBACA,iBACA,oBACA,YACA,WACA,YACA,gBACA,YACA,2BACA,WACA,aACA,YACA,UACA,aACA,oBACA,aACA,aACA,kBACA,iBACA,WACA,iBACA,gBACA,YACA,wBACA,UACA,iBACA,uBACA,kBACA,WACA,kBACA,2BACA,UACA,kBACA,aACA,YACA,aACA,iBACA,iBACA,iBACA,UACA,WACA,wBACA,uBACA,yBACA,+BACA,qBACA,eACA,gBACA,gBACA,gBACA,gBACA,oBACA,eACA,OACA,WACA,WACA,YACA,wBACA,WACA,aACA,YACA,mBACA,cACA,kBACA,aACA,YACA,YACA,YACA,YACA,mBACA,iBACA,6BACA,kCACA,+BACA,iCACA,yBACA,eACA,iCACA,OACA,WACA,oBACA,2BACA,sBACA,cACA,sBACA,uBACA,mBACA,cACA,sBACA,uBACA,mBACA,MACA,WACA,OACA,SACA,qBACA,iBACA,qBACA,YACA,aACA,qCACA,gBACA,kBACA,eACA,MACA,eACA,YACA,uBACA,WACA,gBACA,mBACA,gBACA,0BACA,iBACA,6BACA,kBACA,iBACA,oBACA,4BACA,mBACA,uBACA,mBACA,eACA,2BACA,cACA,qCACA,gCACA,iBACA,sBACA,0BACA,iBACA,iBACA,eACA,2BACA,eACA,gBACA,cACA,0BACA,eACA,8BACA,YACA,eACA,iBACA,oBACA,uCACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,aACA,kBACA,sBACA,oBACA,iBACA,uBACA,kBACA,UACA,kBACA,eACA,uBACA,kBACA,qBACA,uBACA,UACA,eACA,mBACA,iBACA,cACA,oBACA,eACA,0BACA,oBACA,cACA,mBACA,wBACA,mBACA,oBACA,mBACA,sBACA,wBACA,kBACA,uBACA,oBACA,yBACA,YACA,iBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,WACA,gBACA,oBACA,gBACA,iBACA,MACA,eACA,eACA,WACA,kBACA,SACA,SACA,OACA,YACA,uBACA,qBACA,OACA,cACA,YACA,YACA,SACA,gBACA,kBACA,eACA,yBACA,0BACA,8BACA,2BACA,iCACA,uBACA,0BACA,uBACA,aACA,eACA,iBACA,cACA,mBACA,gBACA,cACA,UACA,kBACA,cACA,eACA,YACA,uBACA,iBACA,gBACA,eACA,gBACA,mBACA,kBACA,WACA,gBACA,UACA,mBACA,cACA,IACA,uBACA,sBACA,0BACA,mBACA,YACA,aACA,OACA,MACA,SACA,UACA,KACA,cACA,OACA,cACA,UACA,kBACA,yBACA,OACA,aACA,SACA,YACA,mBACA,aACA,8BACA,UACA,WACA,qBACA,gBACA,YACA,UACA,kBACA,kBACA,kBACA,WACA,kBACA,0BACA,UACA,UACA,gBACA,iBACA,cACA,iBACA,wBACA,KACA,SACA,QACA,oBACA,WACA,WACA,aACA,gBACA,YACA,2BACA,2BACA,gBACA,oBACA,MACA,QACA,eACA,kBACA,sBACA,8BACA,2BACA,aACA,iBACA,iBACA,2BACA,mBACA,iBACA,kBACA,eACA,OACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,oBACA,aACA,gBACA,uBACA,YACA,aACA,kBACA,QACA,YACA,UACA,gBACA,aACA,oBACA,qBACA,sBACA,wBACA,wBACA,gBACA,eACA,aACA,mBACA,oBACA,gBACA,sBACA,eACA,eACA,gBACA,aACA,mBACA,qBACA,cACA,uBACA,mBACA,kBACA,eACA,aACA,UACA,eACA,cACA,kBACA,UACA,WACA,iBACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,aACA,qBACA,YACA,YACA,aACA,iBACA,kBACA,wBACA,cACA,cACA,kBACA,cACA,cACA,OACA,UACA,iBACA,QACA,WACA,kBACA,UACA,eACA,kBACA,yBACA,aACA,qBACA,kBACA,mBACA,gBACA,kBACA,aACA,iBACA,mBACA,kBACA,cACA,cACA,gBACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,YACA,qBACA,+BACA,qBACA,qBACA,oBACA,yBACA,iBACA,mBACA,sBACA,mBACA,YACA,aACA,gBACA,kBACA,aACA,eACA,aACA,iBACA,qBACA,6BACA,WACA,OACA,eACA,6BACA,WACA,0BACA,eACA,YACA,uBACA,cACA,cACA,YACA,eACA,iBACA,eACA,qBACA,iBACA,eACA,QACA,2BACA,0BACA,cACA,OACA,YACA,aACA,UACA,iBACA,kBACA,cACA,cACA,cACA,QACA,aACA,MACA,aACA,aACA,uBACA,yBACA,sBACA,cACA,gBACA,iBACA,kBACA,YACA,4BACA,wBACA,cACA,mBACA,YACA,cACA,mBACA,0BACA,oBACA,iBACA,kBACA,oBACA,qBACA,mBACA,oBACA,kBACA,mBACA,iBACA,iBACA,mBACA,mBACA,qBACA,qBACA,eACA,qBACA,UACA,oBACA,gBACA,wBACA,sBACA,kBACA,mBACA,oBACA,kBACA,aACA,mBACA,gBACA,eACA,aACA,qBACA,KACA,OACA,UACA,sBACA,iBACA,UACA,YACA,kBACA,WACA,aACA,cACA,kBACA,WACA,OACA,iBACA,WACA,mBACA,aACA,sBACA,SACA,cACA,qBACA,QACA,cACA,cACA,eACA,qBACA,iBACA,oBACA,aACA,YACA,OACA,YACA,OACA,SACA,cACA,eACA,aACA,YACA,aACA,aACA,cACA,cACA,aACA,YACA,oBACA,2BACA,mBACA,aACA,YACA,YACA,YACA,OACA,YACA,aACA,YACA,WACA,QACA,aACA,oBACA,WACA,kBACA,mBACA,cACA,YACA,4BACA,sBACA,iBACA,gBACA,YACA,kBACA,iBACA,YACA,aACA,kBACA,0BACA,YACA,UACA,eACA,sBACA,kBACA,eACA,aACA,oBACA,qBACA,uBACA,mBACA,uBACA,eACA,aACA,kBACA,wBACA,iBACA,0BACA,kBACA,UACA,wBACA,iBACA,gBACA,gBACA,gBACA,cACA,qBACA,8BACA,mBACA,sBACA,cACA,eACA,YACA,eACA,sBACA,YACA,cACA,WACA,gBACA,WACA,0BACA,mBACA,oBACA,gBACA,8BACA,gBACA,UACA,aACA,QACA,oBACA,cACA,WACA,eACA,aACA,uBACA,wBACA,2BACA,aACA,iBACA,WACA,gBACA,qBACA,gBACA,YACA,gBACA,eACA,UACA,iBACA,oBACA,uBACA,wBACA,8BACA,iBACA,kBACA,SACA,eACA,UACA,eACA,YACA,qBACA,gBACA,uBACA,WACA,eACA,eACA,yBACA,qBACA,QACA,UACA,aACA,UACA,cACA,SACA,SACA,aACA,uBACA,gBACA,oBACA,sBACA,iBACA,QACA,kBACA,cACA,YACA,iBACA,kBACA,oBACA,6BACA,2BACA,aACA,sBACA,iBACA,iBACA,QACA,WACA,kBACA,qBACA,2BACA,qBACA,yBACA,aACA,yBACA,eACA,cACA,0BACA,kBACA,gBACA,uBACA,iBACA,oBACA,mBACA,qBACA,YACA,mBACA,qBACA,gBACA,8BACA,oBACA,qBACA,gBACA,oBACA,UACA,sBACA,aACA,oBACA,uBACA,8BACA,aACA,SACA,aACA,cACA,aACA,WACA,eACA,gBACA,aACA,eACA,UACA,YACA,cACA,UACA,gBACA,4BACA,YACA,cACA,aACA,uBACA,SACA,MACA,YACA,UACA,aACA,oBACA,YACA,aACA,SACA,qBACA,eACA,cACA,aACA,kBACA,uBACA,wBACA,WACA,eACA,WACA,gBACA,uBACA,eACA,oBACA,YACA,eACA,mBACA,gCACA,6BACA,6BACA,mCACA,WACA,oBACA,YACA,mBACA,QACA,yBACA,kBACA,kBACA,QACA,OACA,WACA,oBACA,sBACA,sBACA,aACA,oBACA,cACA,iBACA,iBACA,wBACA,QACA,iBACA,eACA,gBACA,oBACA,gBACA,OACA,SACA,eACA,cACA,gBACA,eACA,iBACA,oBACA,cACA,cACA,iBACA,gBACA,oBACA,cACA,gBACA,mBACA,cACA,aACA,eACA,aACA,gBACA,gBACA,oBACA,aACA,QACA,cACA,qBACA,YACA,YACA,mBACA,SACA,WACA,cACA,qBACA,cACA,YACA,mBACA,YACA,aACA,WACA,oBACA,cACA,YACA,SACA,WACA,WACA,UACA,YACA,uBACA,KACA,OACA,gBACA,WACA,WACA,gBACA,aACA,OACA,UACA,wBACA,aACA,eACA,QACA,WACA,OACA,oBACA,mBACA,uBACA,SACA,cACA,mBACA,YACA,eACA,sBACA,iBACA,mBACA,8BACA,mBACA,kBACA,sBACA,MACA,SACA,SACA,qBACA,mBACA,uBACA,SACA,mBACA,sBACA,UACA,cACA,SACA,iBACA,iBACA,sBACA,eACA,iBACA,mBACA,kBACA,iBACA,iBACA,yBACA,2BACA,cACA,qBACA,iBACA,cACA,qBACA,gBACA,eACA,uBACA,eACA,gBACA,wBACA,aACA,eACA,gBACA,UACA,eACA,aACA,4BACA,cACA,eACA,4BACA,oBACA,iBACA,oBACA,iBACA,OACA,aACA,WACA,YACA,YACA,qBACA,gBACA,UACA,cACA,0BACA,cACA,aACA,6BACA,gBACA,yBACA,aACA,YACA,mBACA,SACA,qBACA,yBACA,oBACA,mBACA,wBACA,2BACA,UACA,mBACA,0BACA,2BACA,iBACA,sBACA,cACA,oBACA,kBACA,aACA,YACA,mBACA,iBACA,aACA,aACA,WACA,eACA,iBACA,iBACA,mBACA,UACA,aACA,kBACA,oBACA,cACA,cACA,oBACA,kBACA,iBACA,6BACA,aACA,0BACA,mBACA,UACA,qBACA,iBACA,mBACA,qBACA,eACA,UACA,cACA,UACA,kBACA,eACA,mBACA,iBACA,mBACA,iBACA,iBACA,2BACA,iBACA,qBACA,qBACA,iBACA,kBACA,eACA,OACA,kBACA,aACA,YACA,eACA,SACA,oBACA,yBACA,wBACA,eACA,wBACA,mBACA,UACA,iBACA,mCACA,iBACA,qBACA,eACA,cACA,gBACA,uBACA,iBACA,mBACA,WACA,eACA,mBACA,cACA,WACA,qBACA,iBACA,YACA,SACA,QACA,aACA,gBACA,sBACA,mBACA,2BACA,qBACA,kBACA,qBACA,WACA,gBACA,iBACA,gBACA,mBACA,qBACA,oBACA,mBACA,gBACA,mBACA,cACA,iBACA,4BACA,0BACA,8BACA,qBACA,qBACA,eACA,OACA,kBACA,gBACA,gBACA,iBACA,eACA,aACA,QACA,UACA,SACA,cACA,aACA,cACA,iBACA,cACA,qBACA,iBACA,oBACA,QACA,eACA,iBACA,MACA,gBACA,iBACA,SACA,aACA,WACA,eACA,YACA,YACA,cACA,SACA,cACA,eACA,kBACA,OACA,gBACA,cACA,WACA,WACA,aACA,MACA,aACA,mBACA,aACA,oBACA,iBACA,0BACA,QACA,WACA,qBACA,qBACA,cACA,uBACA,mBACA,aACA,iBACA,gBACA,eACA,cACA,gBACA,sBACA,0BACA,eACA,WACA,OACA,WACA,iBACA,iBACA,kBACA,sBACA,eACA,QACA,SACA,iBACA,sBACA,cACA,eACA,cACA,kBACA,mBACA,gBACA,mBACA,OACA,gBACA,uBACA,2BACA,+BACA,sBACA,iBACA,qBACA,iBACA,8BACA,WACA,gBACA,WACA,gBACA,kBACA,yBACA,uBACA,aACA,cACA,gBACA,cACA,wBACA,aACA,mBACA,iBACA,mBACA,oBACA,gBACA,oBACA,qBACA,MACA,OACA,mBACA,8BACA,kBACA,cACA,gBACA,eACA,gBACA,2BACA,4BACA,aACA,SACA,aACA,mBACA,gBACA,mBACA,cACA,YACA,mBACA,gBACA,0BACA,4BACA,2BACA,sBACA,uBACA,yBACA,oBACA,8BACA,gBACA,uBACA,oBACA,qBACA,YACA,gBACA,iBACA,uBACA,yBACA,kCACA,2BACA,WACA,cACA,WACA,oBACA,yBACA,gBACA,gBACA,eACA,mBACA,eACA,eACA,oBACA,oBACA,mBACA,kBACA,4BACA,kBACA,oBACA,uBACA,gBACA,SACA,oBACA,aACA,iBACA,iBACA,oBACA,iBACA,gBACA,iBACA,kBACA,gBACA,gBACA,cACA,MACA,cACA,kBACA,gBACA,WACA,wBACA,oBACA,aACA,aACA,eACA,iBACA,wBACA,cACA,wBACA,wBACA,aACA,mBACA,iBACA,eACA,cACA,8BACA,sBACA,oBACA,oBACA,4BACA,oBACA,iBACA,mBACA,SACA,YACA,YACA,mBACA,UACA,WACA,WACA,UACA,UACA,iBACA,kBACA,QACA,cACA,UACA,iBACA,oBACA,cACA,mBACA,8BACA,wBACA,QACA,iBACA,WACA,gBACA,uBACA,iBACA,kBACA,mBACA,uBACA,eACA,OACA,kBACA,qBACA,iBACA,kBACA,gBACA,eACA,qBACA,iBACA,eACA,eACA,oBACA,yBACA,kBACA,0BACA,iBACA,0BACA,gBACA,mBACA,wBACA,uBACA,mBACA,iBACA,wBACA,eACA,cACA,kBACA,kBACA,iBACA,OACA,YACA,iBACA,uBACA,oBACA,cACA,WACA,kBACA,cACA,eACA,iBACA,oBACA,UACA,WACA,MACA,OACA,2BACA,mBACA,sBACA,oBACA,6BACA,oBACA,oBACA,iBACA,OACA,eACA,cACA,aACA,WACA,oBACA,sBACA,WACA,yBACA,YACA,OACA,qBACA,qBACA,oBACA,oBACA,SACA,WACA,cACA,qBACA,YACA,mBACA,YACA,OACA,eACA,QACA,cACA,UACA,qBACA,wBACA,0BACA,yBACA,kBACA,oBACA,2BACA,eACA,UACA,iBACA,kBACA,SACA,gBACA,eACA,iBACA,eACA,aACA,oBACA,eACA,UACA,gBACA,iBACA,eACA,2BACA,eACA,yBACA,aACA,YACA,eACA,QACA,cACA,eACA,OACA,SACA,WACA,oBACA,QACA,mBACA,YACA,cACA,aACA,MACA,QACA,iBACA,YACA,SACA,WACA,OACA,kBACA,wBACA,gBACA,eACA,eACA,oBACA,cACA,cACA,qBACA,gBACA,cACA,2BACA,gBACA,6BACA,QACA,gBACA,kBACA,mBACA,cACA,cACA,kBACA,mBACA,cACA,mBACA,cACA,cACA,oBACA,kBACA,mBACA,qBACA,yBACA,uBACA,2BACA,kBACA,4BACA,SACA,YACA,eACA,mBACA,mBACA,oBACA,oBACA,qBACA,kBACA,kBACA,iBACA,uBACA,0BACA,eACA,oBACA,eACA,oBACA,yBACA,eACA,oBACA,eACA,oBACA,SACA,sBACA,eACA,eACA,cACA,gBACA,QACA,UACA,eACA,OACA,UACA,iBACA,SACA,2BACA,cACA,qBACA,gBACA,yBACA,WACA,eACA,oBACA,iBACA,sBACA,cACA,aACA,cACA,mBACA,wBACA,qBACA,QACA,aACA,gBACA,sBACA,kBACA,eACA,eACA,yBACA,oBACA,0BACA,eACA,cACA,eACA,oBACA,sBACA,OACA,kBACA,WACA,YACA,wBACA,uBACA,mBACA,cACA,gBACA,eACA,qBACA,eACA,kBACA,kBACA,qBACA,uBACA,gBACA,kBACA,wBACA,sBACA,+BACA,yBACA,mCACA,6BACA,aACA,mBACA,cACA,0BACA,iBACA,iBACA,aACA,aACA,uBACA,oBACA,oBACA,kBACA,sBACA,sBACA,6BACA,oBACA,gBACA,aACA,eACA,iBACA,UACA,cACA,cACA,SACA,cACA,kBACA,cACA,kBACA,cACA,eACA,aACA,cACA,mBACA,gBACA,aACA,eACA,cACA,eACA,aACA,eACA,eACA,gBACA,iBACA,aACA,kBACA,iBACA,UACA,eACA,gBACA,oBACA,oBACA,gBACA,eACA,mBACA,oBACA,iBACA,cACA,gBACA,aACA,iBACA,oBACA,iBACA,aACA,aACA,eACA,oBACA,aACA,uBACA,kBACA,uBACA,sBACA,UACA,UACA,OACA,uBACA,QACA,WACA,qBACA,YACA,mBACA,YACA,aACA,kBACA,mBACA,0BACA,aACA,aACA,iBACA,YACA,eACA,WACA,WACA,UACA,mCACA,0BACA,gBACA,YACA,eACA,sBACA,cACA,eACA,SACA,cACA,cACA,cACA,YACA,iBACA,UACA,gBACA,UACA,UACA,qBACA,iBACA,oBACA,2BACA,mBACA,iBACA,WACA,eACA,gBACA,YACA,WACA,gBACA,qBACA,gBACA,UACA,WACA,MACA,iBACA,iBACA,SACA,cACA,UACA,SACA,cACA,aACA,gBACA,YACA,cACA,iBACA,wBACA,WACA,gBACA,YACA,OACA,WACA,oBACA,cACA,eACA,cACA,kBACA,uBACA,mBACA,gBACA,mBACA,gBACA,qBACA,iBACA,eACA,SACA,SACA,aACA,gBACA,YACA,iBACA,eACA,mBACA,sBACA,qBACA,aACA,mBACA,wBACA,iCACA,mCACA,yBACA,4BACA,sBACA,WACA,SACA,aACA,oBACA,eACA,eACA,UACA,0BACA,mBACA,uBACA,sBACA,uBACA,8BACA,oBACA,kBACA,YACA,iBACA,oBACA,wBACA,gBACA,cACA,gBACA,sBACA,uBACA,gCACA,kBACA,+BACA,yBACA,eACA,sBACA,iCACA,4BACA,aACA,gBACA,oBACA,kBACA,0BACA,oBACA,+BACA,qBACA,yBACA,sBACA,8BACA,qBACA,wBACA,oBACA,oBACA,8BACA,4BACA,mCACA,mCACA,aACA,aACA,MACA,aACA,QACA,kBACA,aACA,kBACA,YACA,gBACA,eACA,YACA,eACA,yBACA,uBACA,sBACA,cACA,UACA,aACA,oBACA,SACA,aACA,gBACA,eACA,SACA,gBACA,WACA,WACA,OACA,WACA,cACA,gBACA,WACA,eACA,iBACA,YACA,QACA,MACA,OACA,eACA,kBACA,eACA,cACA,YACA,cACA,aACA,aACA,aACA,QACA,cACA,WACA,aACA,mBACA,gBACA,iBACA,cACA,qBACA,mBACA,qBACA,aACA,iBACA,mBACA,eACA,uBACA,sBACA,mBACA,eACA,eACA,qBACA,YACA,oBACA,iBACA,mBACA,eACA,gBACA,UACA,aACA,eACA,iBACA,kBACA,cACA,SACA,aACA,mBACA,mBACA,cACA,iBACA,wBACA,UACA,UACA,OACA,YACA,mBACA,gBACA,WACA,kBACA,UACA,YACA,WACA,oBACA,eACA,WACA,cACA,WACA,WACA,oBACA,WACA,aACA,gBACA,eACA,gBACA,aACA,mBACA,gBACA,aACA,gBACA,YACA,kBACA,UACA,4BACA,2BACA,YACA,YACA,oBACA,mBACA,QACA,YACA,OACA,WACA,WACA,kBACA,SACA,iBACA,eACA,YACA,UACA,QACA,YACA,YACA,WACA,QACA,aACA,WACA,QACA,aACA,iBACA,aACA,kBACA,iBACA,gBACA,aACA,WACA,eACA,aACA,cACA,gBACA,QACA,UACA,aACA,sBACA,qBACA,mBACA,0BACA,gBACA,sBACA,kBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,WACA,YACA,4BACA,sBACA,WACA,kBACA,iBACA,SACA,OACA,gBACA,aACA,UACA,kBACA,UACA,wBACA,SACA,QACA,sBACA,WACA,iBACA,eACA,aACA,WACA,SACA,cACA,UACA,aACA,aACA,oBACA,mBACA,yBACA,aACA,YACA,cACA,WACA,gBACA,SACA,UACA,aACA,oBACA,eACA,eACA,cACA,MACA,kBACA,qBACA,kBACA,aACA,UACA,yBACA,WACA,QACA,cACA,aACA,uBACA,aACA,gBACA,sBACA,8BACA,cACA,KACA,QACA,aACA,cACA,gBACA,aACA,cACA,eACA,gBACA,aACA,WACA,UACA,gBACA,aACA,YACA,iBACA,mBACA,yBACA,eACA,kBACA,8BACA,sBACA,mBACA,gCACA,2BACA,+BACA,4BACA,4BACA,yBACA,yBACA,yBACA,yBACA,wBACA,wBACA,4BACA,wBACA,sBACA,yBACA,0BACA,uBACA,0BACA,mBACA,qBACA,oBACA,sBACA,qBACA,mBACA,yBACA,2BACA,YACA,qBACA,uBACA,gBACA,cACA,mBACA,YACA,iBACA,gBACA,mBACA,uBACA,iBACA,qBACA,eACA,aACA,WACA,YACA,aACA,WACA,aACA,WACA,iBACA,oBACA,sBACA,eACA,yBACA,kBACA,OACA,aACA,aACA,iBACA,UACA,aACA,YACA,cACA,kBACA,oBACA,OACA,QACA,wBACA,sBACA,kCACA,+BACA,QACA,OACA,qBACA,4BACA,UACA,iBACA,sBACA,6BACA,UACA,0BACA,cACA,aACA,SACA,aACA,gBACA,kBACA,aACA,QACA,gBACA,SACA,aACA,0BACA,YACA,WACA,YACA,aACA,kBACA,qBACA,4BACA,cACA,iBACA,wBACA,sBACA,iBACA,kBACA,mBACA,cACA,uBACA,UACA,YACA,cACA,sBACA,2BACA,oBACA,yBACA,YACA,QACA,qBACA,YACA,SACA,iBACA,UACA,cACA,iBACA,UACA,eACA,eACA,WACA,aACA,eACA,aACA,kBACA,kBACA,oBACA,iBACA,WACA,YACA,8BACA,UACA,mBACA,QACA,cACA,qBACA,KACA,UACA,aACA,mBACA,SACA,uBACA,kCACA,iBACA,oBACA,oBACA,cACA,gBACA,aACA,iBACA,kBACA,qBACA,yBACA,WACA,QACA,eACA,QACA,aACA,OACA,WACA,MACA,WACA,YACA,gBACA,cACA,oBACA,YACA,aACA,YACA,WACA,uBACA,WACA,iBACA,iBACA,UACA,kBACA,UACA,sBACA,aACA,YACA,mBACA,qBACA,QACA,gBACA,kBACA,QACA,uBACA,mBACA,gBACA,QACA,WACA,kBACA,kBACA,YACA,6BACA,SACA,SACA,aACA,YACA,WACA,0BACA,4BACA,4BACA,eACA,cACA,eACA,oBACA,sBACA,6BACA,oBACA,kBACA,gBACA,qBACA,aACA,kBACA,gBACA,aACA,eACA,eACA,UACA,cACA,UACA,cACA,gBACA,cACA,cACA,MACA,WACA,UACA,mCACA,mBACA,oBACA,mBACA,yBACA,sBACA,uBACA,6BACA,kBACA,wBACA,UACA,uBACA,gBACA,YACA,iBACA,eACA,kBACA,qBACA,iBACA,wBACA,oBACA,8BACA,yBACA,cACA,eACA,wBACA,eACA,eACA,uBACA,qBACA,oBACA,iBACA,cACA,0BACA,iBACA,eACA,mBACA,aACA,gBACA,qBACA,kBACA,UACA,0BACA,gBACA,cACA,sBACA,aACA,cACA,2BACA,eACA,uBACA,WACA,cACA,eACA,gBACA,oBACA,iBACA,gBACA,QACA,gBACA,qBACA,iBACA,gBACA,aACA,YACA,SACA,YACA,cACA,eACA,kBACA,cACA,YACA,YACA,aACA,aACA,YACA,4BACA,WACA,iBACA,YACA,aACA,eACA,mBACA,UACA,cACA,iBACA,oBACA,cACA,SACA,uBACA,cACA,UACA,uBACA,WACA,YACA,qBACA,sCACA,yBACA,wBACA,kBACA,sBACA,oBACA,iCACA,mBACA,4BACA,mBACA,kBACA,oBACA,oBACA,aACA,aACA,eACA,mBACA,mBACA,4BACA,iCACA,wBACA,mBACA,cACA,sBACA,iBACA,mBACA,SACA,aACA,WACA,iBACA,YACA,mBACA,cACA,kBACA,QACA,YACA,sBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,yBACA,0BACA,0BACA,0BACA,yBACA,yBACA,wBACA,eACA,oBACA,mBACA,kBACA,yBACA,0BACA,eACA,iBACA,UACA,cACA,aACA,YACA,QACA,QACA,QACA,oBACA,aACA,aACA,sBACA,aACA,aACA,eACA,gBACA,UACA,+BACA,eACA,iBACA,gBACA,kBACA,SACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,iBACA,cACA,sBACA,gBACA,gBACA,gBACA,yBACA,iBACA,aACA,mBACA,cACA,iBACA,cACA,gBACA,iBACA,iBACA,qBACA,4BACA,OACA,eACA,mBACA,uBACA,qBACA,sBACA,OACA,eACA,gBACA,YACA,YACA,aACA,WACA,iBACA,gBACA,oBACA,WACA,kBACA,aACA,wBACA,iBACA,eACA,WACA,kBACA,mBACA,aACA,QACA,YACA,cACA,YACA,aACA,YACA,cACA,OACA,MACA,WACA,SACA,YACA,oBACA,WACA,gBACA,WACA,iBACA,OACA,WACA,cACA,mBACA,aACA,aACA,QACA,aACA,WACA,qBACA,iBACA,4BACA,mBACA,oBACA,iCACA,iBACA,kBACA,eACA,oBACA,iBACA,iBACA,qBACA,sBACA,iBACA,wBACA,cACA,eACA,kBACA,YACA,gBACA,sBACA,YACA,eACA,qBACA,sBACA,oBACA,aACA,kBACA,mBACA,yBACA,mBACA,uBACA,yBACA,sBACA,sBACA,mBACA,eACA,iBACA,gBACA,sBACA,mCACA,eACA,qBACA,iBACA,qBACA,WACA,eACA,wBACA,WACA,eACA,gBACA,eACA,eACA,qBACA,kBACA,oBACA,2BACA,4BACA,eACA,mBACA,wBACA,oBACA,kBACA,2BACA,eACA,qBACA,gCACA,WACA,mBACA,uBACA,qBACA,QACA,yBACA,sBACA,gBACA,UACA,uBACA,yBACA,yBACA,iBACA,2BACA,uBACA,UACA,uBACA,gBACA,cACA,YACA,mBACA,kBACA,eACA,mBACA,sBACA,wBACA,qBACA,iBACA,iBACA,mBACA,eACA,eACA,aACA,wBACA,mBACA,iBACA,kBACA,iBACA,wBACA,oBACA,kBACA,0BACA,SACA,iBACA,sBACA,aACA,oBACA,yBACA,wBACA,oBACA,kBACA,eACA,YACA,YACA,mBACA,eACA,yBACA,aACA,oBACA,iBACA,uBACA,eACA,QACA,UACA,iBACA,eACA,aACA,mBACA,oBACA,iBACA,kBACA,kBACA,aACA,eACA,oBACA,eACA,qBACA,uBACA,0BACA,oBACA,aACA,qBACA,gBACA,iBACA,iBACA,eACA,mBACA,YACA,oBACA,aACA,sBACA,gBACA,eACA,gBACA,oBACA,qBACA,kBACA,cACA,aACA,8BACA,aACA,WACA,eACA,OACA,mBACA,UACA,eACA,mBACA,uBACA,YACA,cACA,mBACA,gBACA,gBACA,QACA,qBACA,mBACA,eACA,wBACA,mBACA,mBACA,iBACA,aACA,QACA,OACA,wBACA,qBACA,YACA,WACA,cACA,gBACA,uBACA,aACA,kBACA,iBACA,sBACA,eACA,eACA,eACA,kBACA,2BACA,sBACA,iBACA,oBACA,sBACA,wBACA,iBACA,iBACA,qBACA,qBACA,kCACA,2BACA,YACA,aACA,iBACA,mBACA,mBACA,gBACA,wBACA,cACA,qBACA,oBACA,oBACA,2BACA,0BACA,yBACA,iBACA,UACA,2BACA,yBACA,YACA,gBACA,eACA,kBACA,oBACA,gBACA,sBACA,mBACA,gBACA,aACA,Y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09lB,eAGX,aC7CA,SAAS5wmB,EAAOssH,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGtsH,OAHM,IAIlB,CAMA,SAASrrC,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,GAEjD,CASA,SAAS+upB,IAAgB,QAAAtinB,EAAApO,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAkoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAtO,UAAAsO,GAErB,MADe,IAAMD,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,KAAO,GAE9D,CA+dAsuF,EAAOF,QArdP,SAAcr+B,GACZ,MA0OM29mB,EAAkB,uBAClBC,EAAgB,CACpBtc,SAAU,SACV5B,QA7Oe,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,OAOkBzvpB,KAAK,MAEnBw7pB,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,UACP9oM,IAAK,MACLk7nB,SAAUgsF,GAENxK,EAAS,CACb5zgB,MAAO,OACP9oM,IAAK,MAGDw2sB,EAAM,CACVvhjB,SAAU,CACR,CACE6zC,MAAO,QAET,CACEA,MAAO/9I,EACL,iDAGA,0BAGJ,CACE+9I,MAAO,gBACPy9f,UAAW,KAIX4gB,EAAkB,CACtB79mB,EAAKg9lB,iBACLyO,EACAyB,GAEI4Q,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,KAOIC,EAAmB,SAACv7gB,EAAQh5L,GAAwB,IAAlB2iE,EAAKmC,UAAAxxE,OAAA,QAAA5G,IAAAo4E,UAAA,GAAAA,UAAA,GAAG,MAC9C,MAAM29f,EAAoB,QAAV9/f,EACZA,EACA1qB,EAAO0qB,EAAO3iE,GAClB,OAAOi4C,EACLA,EAAO,MAAO+gJ,EAAQ,KACtBh5L,EACA,oBACAyikB,EACA,oBACA9/f,EACAwxoB,EAEJ,EAMMK,EAAYA,CAACx7gB,EAAQh5L,EAAM2iE,IACxB1qB,EACLA,EAAO,MAAO+gJ,EAAQ,KACtBh5L,EACA,oBACA2iE,EA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CExS,UAAW,UACXytJ,SAAU,CACR,CACE6zC,MAAO,qBAET,CACEA,MAAO,2CAET,CACEA,MAAO,2CAET,CACEA,MAAO,gDAET,CACEA,MAAO,qCAET,CACEA,MAAO,4BAET,CACEA,MAAO,uBAET,CACEA,MAAO,8BAET,CACEA,MAAO,0CAET,CACEA,MAAO,gCAET,CACEA,MAAO,sCAET,CACEA,MAAO,iFAET,CACEA,MAAO,uBAET,CACEA,MAAO,uBAET,CACEA,MAAO,+BAET,CACEA,MAAO,qBAET,CACEA,MAAO,uBAET,CACEA,MAAO,8DAET,CACEA,MAAO,6BAET,CACEA,MAAO,gDAET,CACEA,MAAO,oCAET,CACEA,MAAO,qCAET,CACEA,MAAO,wCAET,CACEA,MAAO,6BAET,CACEA,MAAO,wBAET,CACEA,MAAO,wCAET,CACEA,MAAO,2BAET,CACEA,MAAO,4BAET,CACEA,MAAO,mCAET,CACEA,MAAO,+BAET,CACEA,MAAO,8BAET,CACEA,MAAO,yCAET,CACEA,MAAO,qCAET,CACEA,MAAO,uCAET,CACEA,MAAO,0CAET,CACEA,MAAO,wBAET,CACEA,MAAO,oBAET,CACEA,MAAO,6BAET,CACEA,MAAO,mCAET,CACEA,MAAO,sCAET,CACEA,MAAO,uGAET,CACEA,MAAO,sEAKb,CACEA,MAAO,kCAIT,CACEA,MAAO,iBACPoyb,SAAU,WAGZ,CACEpyb,MAAO,qDAIT,CACEA,MAAO,6MAGT,CAEEA,MAAO,sCACPy9f,UAAW,IAGb,CACEz9f,MAAO,iBACP9oM,IAAK,WACL0vsB,WAAW,EACXx0E,SAAU,CAER71nB,KAAM,2KAMV,CACEyjM,MAAO,mCACPoyb,SAAU,CAER8tE,QAAS,SAIb,CACElggB,MAAO,sDACPoyb,SAAU,CAER8tE,QAAS,qBAMb,CACEd,cAAe,oCACflosB,IAAKspG,EAAK88lB,YACVsJ,WAAW,EACXx0E,SAAU,wCAGZ,CACE1znB,UAAW,OACXshM,MAAO,oCAGT,CACEthM,UAAW,OACXshM,MAAO,2FAGT,CACEA,MAAO,kGACPoyb,SAAU,CACR8tE,QAAS,UACT3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AAPA,EAAwBA,EAE5BA,EAAGtsH,OAHM,IAIlB,CAeiCA,CAAOtxF,KAAIy0C,KAAK,GAEjD,CAVSwR,CAAO,MAAO23J,EAAI,IAC3B,CAuaA76E,EAAOF,QArZP,SAAgBr+B,GACd,MAuIMurmB,EAAW,CACfjK,SAAU,sBACV5B,QAzIqB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,SA0GAoK,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,OAmCAI,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,QA2BAnusB,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,UAWIgktB,EAAS,CACb7htB,UAAW,OACXshM,MAAO,kBAGHisgB,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,KACP9oM,IAAK,KACLk7nB,SAAU25E,EACVpO,QAAS,KAGL6iB,EAAkB,CACtBxghB,MAAO,OACPy9f,UAAW,GAGPpjM,EAAS,CACb37f,UAAW,SACXwS,SAAU,CAAEsvF,EAAKg9lB,kBACjBrxiB,SAAU,CACR,CACE6zC,MAAO,yCACP9oM,IAAK,MACLga,SAAU,CACRsvF,EAAKg9lB,iBACL+iB,GAEF9iB,UAAW,IAEb,CACEz9f,MAAO,yCACP9oM,IAAK,MACLga,SAAU,CACRsvF,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,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,OA1BGpitB,KAAI,SAASs7E,GACZ,OAAOA,EACJ9pD,MAAM,IACNxxB,KAAI,SAASowV,GACZ,MAAO,KAAOA,CAChB,IACC7+S,KAAK,GACV,IACCA,KAAK,KAmBL,oBACC8wqB,EAAqB,OAASD,EAAc,OAE5CvV,EAAW,CACf7L,QACE,iTAIFoK,SACE,+FACFI,QACE,cAGE8W,EAAY,2HAKZvjB,EAAc,CAClBv/rB,UAAW,SACX++rB,UAAW,EACXtxiB,SAAU,CACR,CACE6zC,MAAOwhhB,GAET,CACExhhB,MAAO,OAASwhhB,EAAY,SAK5BC,EAAgB,CACpB/itB,UAAW,WACX++rB,UAAW,EACXz9f,MAAOshhB,GAEHI,EAAsB,CAC1B,CACEhjtB,UAAW,aACX++rB,UAAW,EACXz9f,MAAOkhhB,GAETO,EACAxjB,GAGI0jB,EAAyB,CAC7BnhnB,EAAKo9lB,kBACL6jB,EACA,CACE/itB,UAAW,SACXshM,MAAO,MAAQmhhB,EACf1a,aAAa,EACbvvsB,IAAK,IACLga,SAAU,CACR,CACExS,UAAW,aACXshM,MAAOmhhB,EACP1jB,UAAW,MAMbmkB,EAAkB,CACtB,CACEljtB,UAAW,SACXshM,MAAO,MAAQmhhB,EACf1a,aAAa,EACbvvsB,IAAK,IACLumsB,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,aACXshM,MAAOmhhB,EACP1jB,UAAW,MAuBbokB,EAAsB,CAC1BnjtB,UAAW,WACX++rB,UAAW,EACXrrE,SAAU25E,EACV5/iB,SAAU,CACR,CACE6zC,MAAO,qBAAuBkhhB,EAAW,UACzChqtB,IAAK,SACLuvsB,aAAa,EACbhJ,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAOkhhB,GAET,CACElhhB,MAAOqhhB,GAET,CACErhhB,MAAO,eAMjB,CACEA,MAAO,8BACP9oM,IAAK,QACLuvsB,aAAa,EACbhJ,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,SACX++rB,UAAW,EACXtxiB,SAAU,CArDA,CAClB6zC,MAAOkhhB,EACPhqtB,IAAK,cACLumsB,UAAW,EACXvsrB,SAAU,CACRuwsB,EACA,CACE/itB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,UACLuvsB,aAAa,EACbhJ,UAAW,EACXvsrB,SAAU0wsB,SA6CZ,CACE5hhB,MAAO,YAAckhhB,EAAW,eAItCS,EAAuBjhtB,KAAKmhtB,GAE5B,MAAMC,EAAmB,CACvBpjtB,UAAW,cACXshM,MAAOmhhB,EAAkB,MACzBjqtB,IAAK,MACLymsB,QAAS,MACTvrE,SAAU25E,EACV76rB,SAAU,CACRsvF,EAAKo9lB,kBACL6jB,EACA,CACE/itB,UAAW,SACXshM,MAAO,MAAQkhhB,KAKfa,EAA2B,CAC/BrjtB,UAAW,gBACXshM,MAAO,MACPymgB,aAAa,EACbr0E,SAAU25E,EACV70sB,IAAK,KACLumsB,UAAW,EACXvsrB,SAAU,CACR4wsB,EACAL,EACA,CACEhkB,UAAW,EACX/+rB,UAAW,cACXshM,MAAOmhhB,KAKPa,EAAqB,CACzBtjtB,UAAW,gBACX0znB,SAAU25E,EACVtF,aAAa,EACbt6iB,SAAU,CACR,CACE6zC,MAAO,OAASmhhB,EAAkB,QAAUD,GAE9C,CACElhhB,MAAO,OAASmhhB,EAAkB,WAClCjqtB,IAAK,MACLuvsB,aAAa,EACbv1rB,SAAU,CACR2wsB,EACA,CACE7hhB,MAAO,MACP9oM,IAAK,MACL60Z,MAAM,IAER9pW,OAAO0/pB,IAEX,CACE3hhB,MAAO,OAASmhhB,EAAkB,WAClCjqtB,IAAK,OAGTga,SAAUywsB,GAKZ,OAFAC,EAAgBlhtB,KAAKshtB,GAEd,CACLvktB,KAAM,WACN+oE,QAAS,CAAE,MACX4rjB,SAAU25E,EACVpO,QAAS,sBACTzsrB,SAAU,CACRsvF,EAAK4gG,QAAQ,OAAQ,OAAQ,CAC3Bu8f,QAAS,gBAEX,CACEj/rB,UAAW,YACXshM,MAAO,qBACP29f,QAAS,MACTF,UAAW,GAEbj9lB,EAAKo9lB,kBACL,CACEl/rB,UAAW,UACXshM,MAAO,SACPy9f,UAAW,GAEb,CACE/+rB,UAAW,UACXshM,MAAO,SACP9oM,IAAK,SACLumsB,UAAW,EACXvsrB,SAAUwwsB,GAEZ,CACEhjtB,UAAW,UACXshM,MAAO,MACP9oM,IAAK,MACLumsB,UAAW,EACXvsrB,SAAUwwsB,GAEZI,EACA,CACEpjtB,UAAW,WACXshM,MAAOuhhB,EACP5jB,QAAS,SACTF,UAAW,GAEbQ,EACAz9lB,EAAKs9lB,oBACLikB,EACAF,EACA,CACEnjtB,UAAW,aACXshM,MAAO,gBAAkBkhhB,EAAW,OAASC,EAAkB,eAC/DjqtB,IAAK,KACLuvsB,aAAa,EACbr0E,SAAU25E,EACVtO,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,SACX++rB,UAAW,EACXz9f,MAAOmhhB,GAET,CACEnhhB,MAAO,KACP9oM,IAAK,KACL60Z,MAAM,IAER9pW,OAAO0/pB,IAEXK,GAGN,aC1RAjjlB,EAAOF,QA5BP,SAAar+B,GACX,MAAO,CACL/iG,KAAM,gBACN20nB,SACE,klCAcFurE,QAAS,KACTzsrB,SAAU,CACRsvF,EAAKw9lB,kBACLx9lB,EAAK09lB,cACL19lB,EAAKk9lB,iBACLl9lB,EAAKo9lB,mBAGX,aC+CA7+jB,EAAOF,QAzEP,SAAkBr+B,GAChB,MAAMyhnB,EAAa,wBAEbC,EAAW,CACfxjtB,UAAW,YACXshM,MAAO,cACP9oM,IAAK,OACL2vsB,YAAY,EACZpE,OAAQ,CACNvrsB,IAAK,IACLumsB,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,WACXshM,MAAO,iBAET,CACEthM,UAAW,UACXshM,MAAO,mBAMf,MAAO,CACLviM,KAAM,WACN+oE,QAAS,CACP,QACA,aAEFg6nB,kBAAkB,EAClBpuE,SAAU,SACVlhnB,SAAU,CAER,CACE8uL,MAAO,UAAYiihB,EACnB/qtB,IAAK,KACLk7nB,SAAU,QACVlhnB,SAAU,CACRgxsB,EACA1hnB,EAAKw9lB,oBAKT,CACEh+f,MAAO,oBAAsBiihB,EAC7B/qtB,IAAK,KACLk7nB,SAAU,+DACVurE,QAAS,KACTzsrB,SAAU,CACR,OACAgxsB,EACA1hnB,EAAKw9lB,oBAKT,CACEh+f,MAAO,IAAMiihB,EACb/qtB,IAAK,KACLga,SAAU,CACRgxsB,EACA1hnB,EAAKw9lB,oBAKTx9lB,EAAKw9lB,mBAGX,YC4FAj/jB,EAAOF,QA9JP,SAAkBr+B,GAChB,MAAM2hnB,EAAa,mEAQbnT,EAAW,qCAIXtB,EAAM,CACVhvsB,UAAW,WACXytJ,SAAU,CACR,CACE6zC,MAAO,sBAET,CACEA,MAAO,iBAKP6tgB,EAAe,CACnBnvsB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLga,SAAU,CACRsvF,EAAKg9lB,iBACLkQ,EACA,CACEhvsB,UAAW,WACXshM,MAAO,OACP9oM,IAAK,KACLga,SAAU,CAAEsvF,EAAKg9lB,qBAKjB2hB,EAAc,CAClBzgtB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,KAGP,MAAO,CACLuG,KAAM,2BACN+oE,QAAS,CACP,YAEFg6nB,kBAAkB,EAClBpuE,SAAU,CACR0vE,SAAU,WACV4I,QAASsE,EACT9O,QAASiiB,EAAa,KAAOA,EAAWzxrB,MAAM,KAAK+f,KAAK,MAAQ,KApD5C,mKAoDmE/f,MAAM,KAAK+f,KAAK,OAEzGv/B,SAAU,CACR,CACEi7I,SAAU,CACR,CACE6zC,MAAO,OACP9oM,IAAK,QAEP,CACE8oM,MAAO,OACP9oM,IAAK,KAEP,CACE8oM,MAAO,MACP9oM,IAAK,MAGTymsB,QAAS,KAEXn9lB,EAAK4gG,QAAQ,KAAM,KACnBysgB,EACAsR,EACAzR,EAEA,CAEE1tgB,MAAO,0BACPy9f,UAAW,EACXgJ,aAAa,EACbv1rB,SAAU,CACR,CACExS,UAAW,YACXshM,MAAO,SAET,CACEA,MAAO,IACPmigB,gBAAgB,EAChB1E,UAAW,EACXvsrB,SAAU,CACR28rB,EACAsR,EACAzR,EACA,CACEhvsB,UAAW,UACXshM,MAAO,OAASgvgB,EAASt+qB,MAAM,KAAK+f,KAAK,KAAO,QAElD,CAEEuvJ,MAAO,6BAsBjB,CAEEthM,UAAW,SACXshM,MAAO,kBAET,CACEA,MAAO,OA9HW,wFA8HctvK,MAAM,KAAK+f,KAAK,KAAO,iBACvDg2pB,aAAa,EACbv1rB,SAAU,CACR,CACExS,UAAW,eACXshM,MAAO,SAIb,CACEthM,UAAW,WACXytJ,SAAU,CACR,CACE6zC,MAAO,oBAvID,26BAuI+BtvK,MAAM,KAAK+f,KAAK,KAAO,YAE9D,CACEuvJ,MAAO,OACPy9f,UAAW,MAMvB,aCzHA1+jB,EAAOF,QAxCP,SAAar+B,GACX,MAAO,CACL/iG,KAAM,gBACN20nB,SAAU,CACR8tE,QACE,2FACFoK,SACE,2iBAQJ3M,QAAS,KACTzsrB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAKo9lB,kBACLp9lB,EAAKk9lB,iBACLl9lB,EAAK09lB,cACL,CACEx/rB,UAAW,OACXshM,MAAO,IACP9oM,IAAK,KAEP,CACEwH,UAAW,QACX0gsB,cAAe,2CACflosB,IAAK,OAEP,CACEkosB,cAAe,gCACflosB,IAAK,QAIb,aClBA,SAAS+qD,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OApBjBssH,EAoBwB59M,GAlBpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAoB0B,IAAEnpK,KAAK,GAEjD,CAmWAsuF,EAAOF,QAxVP,SAAcr+B,GACZ,MAAM4hnB,EAAiB,qFACjBC,EAAgB,CACpBniB,QACE,uPAIFoK,SAAU,cACVI,QACE,kBAEE4X,EAAY,CAChB5jtB,UAAW,SACXshM,MAAO,cAEHuihB,EAAa,CACjBvihB,MAAO,KACP9oM,IAAK,KAED+2sB,EAAgB,CACpBztmB,EAAK4gG,QACH,IACA,IACA,CACElwL,SAAU,CAAEoxsB,KAGhB9hnB,EAAK4gG,QACH,UACA,QACA,CACElwL,SAAU,CAAEoxsB,GACZ7kB,UAAW,KAGfj9lB,EAAK4gG,QAAQ,WAAY,SAErB6qgB,EAAQ,CACZvtsB,UAAW,QACXshM,MAAO,MACP9oM,IAAK,KACLk7nB,SAAUiwF,GAENhoN,EAAS,CACb37f,UAAW,SACXwS,SAAU,CACRsvF,EAAKg9lB,iBACLyO,GAEF9/iB,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,KAEP,CACE8oM,MAAO,IACP9oM,IAAK,KAEP,CACE8oM,MAAO,IACP9oM,IAAK,KAEP,CACE8oM,MAAO,cACP9oM,IAAK,MAEP,CACE8oM,MAAO,cACP9oM,IAAK,MAEP,CACE8oM,MAAO,cACP9oM,IAAK,MAEP,CACE8oM,MAAO,aACP9oM,IAAK,KAEP,CACE8oM,MAAO,cACP9oM,IAAK,MAEP,CACE8oM,MAAO,aACP9oM,IAAK,KAEP,CACE8oM,MAAO,aACP9oM,IAAK,KAEP,CACE8oM,MAAO,cACP9oM,IAAK,MAIP,CACE8oM,MAAO,mBAET,CACEA,MAAO,6BAET,CACEA,MAAO,mCAET,CACEA,MAAO,2DAET,CACEA,MAAO,2BAET,CACEA,MAAO,aAET,CACEA,MAAO,wCACPymgB,aAAa,EACbv1rB,SAAU,CACR,CACE8uL,MAAO,aAETx/F,EAAKw+lB,kBAAkB,CACrBh/f,MAAO,QACP9oM,IAAK,QACLga,SAAU,CACRsvF,EAAKg9lB,iBACLyO,SAYN73e,EAAS,kBACT43e,EAAS,CACbttsB,UAAW,SACX++rB,UAAW,EACXtxiB,SAAU,CAER,CACE6zC,MAAO,8BAAuBo0B,kBAAuBA,eAKvD,CACEp0B,MAAO,kCAET,CACEA,MAAO,kCAET,CACEA,MAAO,kCAET,CACEA,MAAO,8CAIT,CACEA,MAAO,2BAKP6rgB,EAAS,CACbntsB,UAAW,SACXshM,MAAO,MACP9oM,IAAK,MACLgvsB,YAAY,EACZ9zE,SAAUiwF,GAGNG,EAAwB,CAC5BnoN,EACA,CACE37f,UAAW,QACX0gsB,cAAe,eACflosB,IAAK,MACLymsB,QAAS,IACTzsrB,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAC5Bt+f,MAAO,mCAET,CACEA,MAAO,QACP9uL,SAAU,CACR,CACE8uL,MAAO,IAAMx/F,EAAK28lB,SAAW,OAAS38lB,EAAK28lB,SAG3CM,UAAW,MAIjBx7oB,OAAOgspB,IAEX,CACEvvsB,UAAW,WAIXshM,MAAO/9I,EAAO,UAtOD23J,EAsOqBwogB,EAAiB,gBArOhDngqB,EAAO,MAAO23J,EAAI,OAsOrB6jf,UAAW,EACXrrE,SAAU,MACVl7nB,IAAK,MACLga,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAC5Bt+f,MAAOoihB,IAETvW,GACA5ppB,OAAOgspB,IAEX,CAEEjugB,MAAOx/F,EAAK28lB,SAAW,MAEzB,CACEz+rB,UAAW,SACXshM,MAAOx/F,EAAK48lB,oBAAsB,YAClCK,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAO,WACP9uL,SAAU,CACRmpf,EACA,CACEr6T,MAAOoihB,IAGX3kB,UAAW,GAEbuO,EACA,CAGEttsB,UAAW,WACXshM,MAAO,8DAET,CACEthM,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLumsB,UAAW,EACXrrE,SAAUiwF,GAEZ,CACErihB,MAAO,IAAMx/F,EAAKm+lB,eAAiB,eACnCvsE,SAAU,SACVlhnB,SAAU,CACR,CACExS,UAAW,SACXwS,SAAU,CACRsvF,EAAKg9lB,iBACLyO,GAEFtO,QAAS,KACTxxiB,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,WAEP,CACE8oM,MAAO,OACP9oM,IAAK,YAEP,CACE8oM,MAAO,QACP9oM,IAAK,aAEP,CACE8oM,MAAO,MACP9oM,IAAK,WAEP,CACE8oM,MAAO,QACP9oM,IAAK,gBAIX+qD,OAAOsgqB,EAAYtU,GACrBxQ,UAAW,IAEbx7oB,OAAOsgqB,EAAYtU,GAxTvB,IAAmBr0f,EA0TjBqyf,EAAM/6rB,SAAWsxsB,EACjB3W,EAAO36rB,SAAWsxsB,EAIlB,MAKMC,EAAc,CAClB,CACEzihB,MAAO,SACPyigB,OAAQ,CACNvrsB,IAAK,IACLga,SAAUsxsB,IAGd,CACE9jtB,UAAW,OACXshM,MAAO,8FACPyigB,OAAQ,CACNvrsB,IAAK,IACLga,SAAUsxsB,KAOhB,OAFAvU,EAAcnxsB,QAAQyltB,GAEf,CACL9ktB,KAAM,OACN+oE,QAAS,CACP,KACA,UACA,UACA,OACA,OAEF4rjB,SAAUiwF,EACV1kB,QAAS,OACTzsrB,SAAU,CACRsvF,EAAKo+lB,QAAQ,CACXhoJ,OAAQ,UAGT30f,OAAOwgqB,GACPxgqB,OAAOgspB,GACPhspB,OAAOugqB,GAEd,aCnTAzjlB,EAAOF,QArEP,SAAuBr+B,GACrB,MAAO,CACL/iG,KAAM,wBACN20nB,SAAU,CACR8tE,QACE,y/FAmCFoK,SACE,ocAMJp5rB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAKk9lB,iBACLl9lB,EAAKo9lB,kBACLp9lB,EAAK09lB,cACL,CACEx/rB,UAAW,UACXytJ,SAAU,CACR,CACE6zC,MAAO,QACPy9f,UAAW,GAEb,CACEz9f,MAAO,mBAMnB,WCsEAjhE,EAAOF,QAzIP,SAAcr+B,GACZ,MAAMkinB,EAAa,wCAMbC,EAEJ,upBAkBF,MAAO,CACLlltB,KAAM,OACN+oE,QAAS,CAAE,MACX4rjB,SAAU,CACR0vE,SAAUthmB,EAAK28lB,SAAW,KAC1B+C,QA7BF,2RA+BEwK,QACE,8BACFJ,SACEqY,GAEJhlB,QAAS,KACTzsrB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAK4gG,QAAQ,OAAQ,OAAQ,CAC3BlwL,SAAU,CAAE,UAEdsvF,EAAKhmC,QAAQgmC,EAAKo9lB,kBAAmB,CACnC59f,MAAO,MACP29f,QAAS,OAEX,CACEj/rB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,0BAET,CACEA,MAAO,qCAIb,CACEthM,UAAW,SACXshM,MAAO,2BAET,CACEthM,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,gBAAkB0ihB,GAE3B,CACE1ihB,MAAO,iBAAmB0ihB,GAE5B,CACE1ihB,MAAO,uBAAyB0ihB,GAElC,CACE1ihB,MAAO,kDACA0ihB,IAGXjlB,UAAW,GAEb,CACE/+rB,UAAW,WACX0gsB,cAAe,KACflosB,IAAK,UACL2vsB,YAAY,EACZ31rB,SAAU,CAAEsvF,EAAK+9lB,wBAEnB,CACE7/rB,UAAW,OACXshM,MAAO,SACP9oM,IAAK,MACLga,SAAU,CACR,CACExS,UAAW,cACXshM,MAAO,IACP9oM,IAAK,OAIX,CACEwH,UAAW,QACX0gsB,cAAe,OACflosB,IAAK,IACLga,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK+9lB,sBAAuB,CACvC2H,YAAY,KAGhBvI,QAAS,OAEX,CACEj/rB,UAAW,QACX0gsB,cAAe,0BACflosB,IAAK,KACLga,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK+9lB,sBAAuB,CACvC2H,YAAY,KAGhBvI,QAAS,YAEX,CACE39f,MAAOx/F,EAAK28lB,SAAW,KACvB/qE,SAAU,CACRk4E,SAAUqY,IAGd,CACE3ihB,MAAO,OAIf,aCXAjhE,EAAOF,QA9HP,SAAar+B,GAyEX,MAAO,CACL/iG,KAAM,MACN+isB,kBAAkB,EAClBpuE,SAAU,CACRs4E,QACE,kGAEF15b,KA7EF,yrBAgFA9/P,SAAU,CACR,CAEExS,UAAW,UACXshM,MAAO,0CAET,CAEEthM,UAAW,WACXshM,MAAO,+BAET,CAEEthM,UAAW,WACXshM,MAAO,yBACP9oM,IAAK,aAEP,CACEwH,UAAW,WACXshM,MAAO,gZAET,CAEEthM,UAAW,OACXshM,MAAO,2BAET,CACEthM,UAAW,OACXshM,MAAO,y2DAET,CACEthM,UAAW,SACXytJ,SAAU,CACR3rD,EAAKk9lB,iBACLl9lB,EAAKo9lB,oBAGTp9lB,EAAK4gG,QAAQ,MAAO,KACpB5gG,EAAKu9lB,sBAGX,aCSAh/jB,EAAOF,QAnIP,SAAer+B,GACb,MAMMyrmB,EAAQ,CACZvtsB,UAAW,QACXytJ,SAAU,CACR,CACE6zC,MAAO,oBAET,CACEA,MAAO,OACP9oM,IAAK,QAKLmjgB,EAAS,CACb37f,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,MACP9oM,IAAK,OAEP,CACE8oM,MAAO,IACP9oM,IAAK,IACLymsB,QAAS,MACTzsrB,SAAU,CAAEsvF,EAAKg9lB,mBAEnB,CACEx9f,MAAO,UACP9oM,IAAK,IACLymsB,QAAS,MACTzsrB,SAAU,CACRsvF,EAAKg9lB,iBACLyO,IAGJ,CACEvtsB,UAAW,SACXshM,MAAO,YACP9oM,IAAK,MACLga,SAAU,CAAE+6rB,GACZxO,UAAW,MAWXmlB,EAAO,CACXlktB,UAAW,OACXshM,MAAO,wBACPy9f,UAAW,GAGPjgsB,EAAO,CACXkB,UAAW,QACXshM,MAAO,iFACPy9f,UAAW,GAGP0U,EAAQ,CACZzzsB,UAAW,QACX0gsB,cAAe,0BACflosB,IAAK,aACL2vsB,YAAY,EACZ31rB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACL,CACEqB,cAAe,eACf3B,UAAW,IAEb,CACEz9f,MAAO,KACP9oM,IAAK,KACLsvsB,cAAc,EACdK,YAAY,EACZpJ,UAAW,EACXvsrB,SAAU,CAAE0xsB,IAEd,CACElktB,UAAW,SACXshM,MAAO,KACP9oM,IAAK,KACLsvsB,cAAc,EACdK,YAAY,EACZpJ,UAAW,EACXvsrB,SAAU,CAAE0xsB,IAEdpltB,IAIEo2sB,EAAS,CACbl1sB,UAAW,WACX0gsB,cAAe,MACflosB,IAAK,cACL2vsB,YAAY,EACZ31rB,SAAU,CAAE1T,IAGd,MAAO,CACLC,KAAM,QACN20nB,SAAU,CACRs4E,QAAS,kBACTxK,QAAS,yPAEXhvrB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACL1jM,EAnEW,CACb37f,UAAW,SACXshM,MAAO,uBAmEL4ihB,EACAhP,EACAzB,EACA3xmB,EAAK09lB,cA5HU,CACjBx/rB,UAAW,OACXshM,MAAO,eA8HX,aCqEAjhE,EAAOF,QAnMP,SAAgBr+B,GACd,MAAMqinB,EAAkB,wCAClBC,EAA0B,0BAE1B/W,EAAW,CACfjK,SAAU+gB,EACV,eACE,ooEAmCE5Y,EAAU,CACdvrsB,UAAW,UACXshM,MAAO,eAAiB6ihB,EAAkB,YAGtC7W,EAAS,CACbttsB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO8ihB,EACPrlB,UAAW,GAEb,CACEz9f,MApD2B8ihB,EAA0B,SAAWA,EAA0B,IAqD1FrlB,UAAW,GAEb,CACEz9f,MAAO,sBAET,CACEA,MAAO,sBAET,CACEA,MAAO,8BAKPq6T,EAAS75Z,EAAKo9lB,kBAEdqQ,EAAgB,CACpBztmB,EAAK4gG,QACH,IACA,IACA,CACEq8f,UAAW,IAGfj9lB,EAAK4gG,QAAQ,OAAQ,SAGjBw6gB,EAAQ,CACZ57gB,MAAO6ihB,EACPplB,UAAW,GAGPslB,EAAe,CACnBrktB,UAAW,SACXshM,MAAO,IAAO6ihB,GAGVhU,EAAO,CACX1M,gBAAgB,EAChB1E,UAAW,GAGPulB,EAAc,CAClB72jB,SAAU,CACR,CACE6zC,MAAO,KAET,CACEA,MAAO,MAGX9uL,SAAU,CACR,CACE8uL,MAAO,MACP9oM,IAAK,MACLga,SAAU,CACR,OACA+4rB,EACA5vM,EACA2xM,EACA4P,EACAmH,MAMFvltB,EAAO,CACXkB,UAAW,OACX++rB,UAAW,EACXz9f,MAAO6ihB,EACPzwF,SAAU25E,GA0BN1llB,EAAO,CACX8lC,SAAU,CACR,CACE6zC,MAAO,MACP9oM,IAAK,OAEP,CACE8oM,MAAO,MACP9oM,IAAK,QAGTga,SAAU,CAlCG,CACb8uL,MAAO,SACPmigB,gBAAgB,EAChBsE,aAAa,EACbv1rB,SAAU,CACR1T,EACA,CACE0osB,YAAY,EACZ/5iB,SAAU,CACR,CACE6zC,MAAO,KACP9oM,IAAK,MAEP,CACE8oM,MAAO,KACP9oM,IAAK,OAGTga,SAAU,CAAE0qsB,MAkBdp+sB,EACAqxsB,IAcJ,OAVAA,EAAK39rB,SAAW,CACd+4rB,EACA+B,EACA3xM,EACAuhN,EACAmH,EACAC,EACA38lB,GACApkE,OAAOgspB,GAEF,CACLxwsB,KAAM,SACNkgsB,QAAS,KACTzsrB,SAAU,CACRsvF,EAAKo+lB,UACLoN,EACA3xM,EACA0oN,EACAC,EACA38lB,GACApkE,OAAOgspB,GAEb,aCpIAlvkB,EAAOF,QA/DP,SAAgBr+B,GACd,MAAMyinB,EAAkB,CACtBzinB,EAAK09lB,cACL,CACEx/rB,UAAW,SACXshM,MAAO,OACP9oM,IAAK,OACLga,SAAU,CAAEsvF,EAAKg9lB,iBACf,CACEx9f,MAAO,SAKf,MAAO,CACLviM,KAAM,SACN+oE,QAAS,CAAE,OACX4rjB,SAAU,CACR0vE,SAAU,QACV5B,QAAS,wIAETwK,QACE,6CACFJ,SACC,4bAOH3M,QAAS,uBACTzsrB,SAAU,CACR,CACExS,UAAW,WACX0gsB,cAAe,WACflosB,IAAK,IACLga,SAAU,CACRsvF,EAAK+9lB,sBACL,CACE7/rB,UAAW,SACXshM,MAAO,MACP9oM,IAAK,SAMX,CACE8oM,MAAO,gCACPy9f,UAAW,GAEb,CACEz9f,MAAO,MACP9oM,IAAK,aACLumsB,UAAW,EACXvsrB,SAAU+xsB,GAEZzinB,EAAK4gG,QAAQ,KAAM,MACnBn/I,OAAOghqB,GAEb,YCtEA,MAuBMxS,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA7goB,UAsHF+uD,EAAOF,QA3GP,SAAcr+B,GACZ,MAAMswmB,EAtbOtwmB,KACN,CACLuwmB,UAAW,CACTrysB,UAAW,OACXshM,MAAO,cAETgxgB,SAAU,CACRtysB,UAAW,SACXshM,MAAO,oCAETixgB,wBAAyB,CACvBvysB,UAAW,gBACXshM,MAAO,KACP9oM,IAAK,KACLymsB,QAAS,IACTzsrB,SAAU,CACRsvF,EAAKk9lB,iBACLl9lB,EAAKo9lB,sBAqaGa,CAAMj+lB,GACd0inB,EAAoBtS,EACpBuS,EAAmBxS,EAEnBH,EAAgB,WAGhB/C,EAAW,CACf/usB,UAAW,WACXshM,MAAO,mCAGT,MAAO,CACLviM,KAAM,OACN+isB,kBAAkB,EAClB7C,QAAS,SACTzsrB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACL,CACEr/rB,UAAW,cACXshM,MAAO,kBACPy9f,UAAW,GAEb,CACE/+rB,UAAW,iBACXshM,MAAO,oBACPy9f,UAAW,GAEbqT,EAAMG,wBACN,CACEvysB,UAAW,eACXshM,MAAO,OAASywgB,EAAKhgqB,KAAK,KAAO,OAEjCgtpB,UAAW,GAEb,CACE/+rB,UAAW,kBACXshM,MAAO,KAAOmjhB,EAAiB1yqB,KAAK,KAAO,KAE7C,CACE/xC,UAAW,kBACXshM,MAAO,MAAQkjhB,EAAkBzyqB,KAAK,KAAO,KAE/Cg9pB,EACA,CACEztgB,MAAO,KACP9oM,IAAK,KACLga,SAAU,CAAEsvF,EAAK49lB,kBAEnB,CACE1/rB,UAAW,YACXshM,MAAO,OAAS6wgB,EAAWpgqB,KAAK,KAAO,QAEzC,CACEuvJ,MAAO,8oCAET,CACEA,MAAO,IACP9oM,IAAK,IACLga,SAAU,CACRu8rB,EACAqD,EAAME,SACNxwmB,EAAK49lB,gBACL59lB,EAAKo9lB,kBACLp9lB,EAAKk9lB,iBACLoT,EAAMC,YAMV,CACE/wgB,MAAO,oBACP+hgB,QAASyO,EACTp+E,SAAU,oBAEZ,CACEpyb,MAAO,IACP9oM,IAAK,OACLuvsB,aAAa,EACbr0E,SAAU,CACR0vE,SAAU,UACV5B,QA9Ea,kBA+Eb1zZ,UAAWkka,EAAejgqB,KAAK,MAEjCv/B,SAAU,CACR,CACE8uL,MAAOwwgB,EACP9xsB,UAAW,WAEb,CACEshM,MAAO,eACPthM,UAAW,aAEb+usB,EACAjtmB,EAAKo9lB,kBACLp9lB,EAAKk9lB,iBACLoT,EAAME,SACNxwmB,EAAK49lB,mBAKf,YCjgBAr/jB,EAAOF,QApBP,SAAer+B,GACb,MAAO,CACL/iG,KAAM,gBACN+oE,QAAS,CAAE,WACXt1D,SAAU,CACR,CACExS,UAAW,OAIXshM,MAAO,iCACPyigB,OAAQ,CACNvrsB,IAAK,gBACLsusB,YAAa,UAKvB,aC2GAzmkB,EAAOF,QA/HP,SAAer+B,GACb,MAAM4inB,EAAuB,CAC3B,MACA,MACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,SACA,MACA,MACA,OACA,MACA,QACA,OACA,OAkCF,MAAO,CACL3ltB,KAAM,QACNyT,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLumsB,UAAW,GAEbj9lB,EAAK4gG,QACH,IACA,IACA,CACEq8f,UAAW,IAGf,CACE/+rB,UAAW,UACXytJ,SAAU,CACR,CACE6zC,MAAO,6BAET,CACEA,MAAO,oBACPy9f,UAAW,GAEb,CACEz9f,MAAO,oBACPy9f,UAAW,GAEb,CACEz9f,MAAO,OA5CM,CACrB,YACA,cACA,WACA,QACA,YACA,SACA,UACA,YACA,SACA,SACA,UAiCuCvvJ,KAAK,KAAO,OAIjD,CACE/xC,UAAW,WACXytJ,SAAU,CACR,CACE6zC,MAAO,OAASojhB,EAAqB3yqB,KAAK,KAAO,QAEnD,CACEuvJ,MAAO,OAASojhB,EAAqB3yqB,KAAK,KAAO,2BACjDgtpB,UAA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AAOtxF,KAAIy0C,KAAK,GAEjD,CASA,SAAS+upB,IAAgB,QAAAtinB,EAAApO,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAkoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAtO,UAAAsO,GAErB,MADe,IAAMD,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,KAAO,GAE9D,CAupBAsuF,EAAOF,QA/oBP,SAAar+B,GACX,MAAMk+mB,EAAel+mB,EAAK4gG,QAAQ,KAAM,KAmBlC4tgB,EAAW,CACf,OACA,QAGA,WAUI4H,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,aAmYI0M,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,gBAwBIC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,iBAGIzF,EAAYwF,EAEZvX,EAAW,CArff,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,YACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,OAzXA,MACA,MACA,YACA,OACA,QACA,QACA,OACA,QA0f0D3wsB,QAAQ8ksB,IAC1DojB,EAAmB5qtB,SAASwnsB,KAchCmT,EAAgB,CACpBrzgB,MAAO/9I,EAAO,KAAMu9oB,KAAUse,GAAY,SAC1C1rF,SAAU,CACRk4E,SAAUwT,IAmBd,MAAO,CACLrgtB,KAAM,MACN+isB,kBAAkB,EAElB7C,QAAS,WACTvrE,SAAU,CACR0vE,SAAU,YACV5B,QArBJ,SAAyBrvlB,GAA+B,IAAzB,WAAC2ymB,EAAU,KAAEr+U,GAAKr2T,UAAAxxE,OAAA,QAAA5G,IAAAo4E,UAAA,GAAAA,UAAA,GAAG,CAAC,EACnD,MAAM20oB,EAAYt+U,EAElB,OADAq+U,EAAaA,GAAc,GACpB3ymB,EAAK3xG,KAAKkb,GACXA,EAAKo/C,MAAM,WAAagqpB,EAAW9qtB,SAAS0hB,GACvCA,EACEqpsB,EAAUrpsB,GACZ,GAAGA,MAEHA,GAGb,CAUMspsB,CAAgB3X,EAAU,CAAE5mU,KAAOnpY,GAAMA,EAAEsB,OAAS,IACtDotsB,QAASsE,EACTzysB,KAAMq6sB,EACNtM,SAzF4B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,mBA4EAp5rB,SAAU,CACR,CACE8uL,MAAOw/f,KAAU+jB,GACjBnxF,SAAU,CACR0vE,SAAU,UACV5B,QAAS6L,EAAS9ppB,OAAOshqB,GACzB7Y,QAASsE,EACTzysB,KAAMq6sB,IAGV,CACEl4sB,UAAW,OACXshM,MAAOw/f,EApmBX,mBACA,eACA,gBACA,qBAmmBE6T,EA5Da,CACf30sB,UAAW,WACXshM,MAAO,cAvkBM,CACbthM,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,IACLga,SAAU,CACR,CAAC8uL,MAAO,UAKU,CACxBA,MAAO,IACP9oM,IAAK,IACLga,SAAU,CAAE,CAAE8uL,MAAO,QAsnBnBx/F,EAAK09lB,cACL19lB,EAAKu9lB,qBACL2gB,EA7Da,CACfhgtB,UAAW,WACXshM,MAAO,gDACPy9f,UAAW,IA8Df,aClgBA1+jB,EAAOF,QApKP,SAAkBr+B,GAChB,IAAIk+mB,EAAel+mB,EAAK4gG,QAAQ,KAAM,KACtC,MAAO,CACL3jM,KAAM,aACN+oE,QAAS,CAAC,QAAS,UACnBi+nB,mBAAmB,EACnBjE,kBAAkB,EAClB7C,QAAS,UACTzsrB,SAAU,CACR,CACEkurB,cACE,gYAKFlosB,IAAK,IAAKirsB,gBAAgB,EAC1B/vE,SAAU,CACR0vE,SAAU,UACV5B,QACE,uyVA8GFwK,QACE,0BACFJ,SACE,0NAGJp5rB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,IAAM9oM,IAAK,IAClBga,SAAU,CAAC,CAAC8uL,MAAO,QAErB,CACEthM,UAAW,SACXshM,MAAO,IAAK9oM,IAAK,IACjBga,SAAU,CAAC,CAAC8uL,MAAO,QAErB,CACEthM,UAAW,SACXshM,MAAO,IAAK9oM,IAAK,KAEnBspG,EAAK09lB,cACL19lB,EAAKu9lB,qBACL2gB,EACAl+mB,EAAKw9lB,oBAGTx9lB,EAAKu9lB,qBACL2gB,EACAl+mB,EAAKw9lB,mBAGX,aC+WAj/jB,EAAOF,QA3hBP,SAAcr+B,GA8cZ,MAAO,CACL/iG,KAAM,OACN+oE,QAAS,CAAE,aACX4rjB,SAAU,CACR0vE,SAAUthmB,EAAK28lB,SACf/1rB,MAjdW,CACb,YACA,QACA,OACA,aACA,aACA,cACA,aA2cE84rB,QAzce,CACjB,MACA,KACA,KACA,OACA,QACA,QACA,WACA,UAicsBj+oB,OAtbN,CAChB,MACA,OACA,SACA,UACA,mBACA,UACA,cACA,aACA,SACA,0BACA,yBACA,iBACA,gBACA,SAwawCA,OA/bhB,CACxB,QACA,SACA,wBACA,mBACA,wBACA,uBACA,mBAybEqopB,SAvac,CAChB,MACA,aACA,MACA,OACA,QACA,iBACA,eACA,aACA,aACA,OACA,QACA,OACA,QACA,QACA,gBACA,kBACA,iBACA,uBACA,sBACA,iBACA,gBACA,oBACA,qBACA,oBACA,sBACA,qBACA,qBACA,oBACA,WACA,aACA,YACA,YACA,WACA,kBACA,eACA,2BACA,iBACA,gBACA,sBACA,gBACA,eACA,QACA,yBACA,wBACA,mBACA,kBACA,aACA,eACA,cACA,cACA,aACA,OACA,OACA,iBACA,mBACA,kBACA,kBACA,iBACA,qBACA,SACA,MACA,OACA,sBACA,mBACA,MACA,OACA,eACA,YACA,gBACA,gBACA,gBACA,0BACA,sBACA,iBACA,cACA,cACA,qBACA,oBACA,WACA,UACA,OACA,iBACA,gBACA,WACA,cACA,WACA,yBACA,2BACA,0BACA,0BACA,yBACA,IACA,kBACA,mBACA,MACA,OACA,MACA,OACA,qBACA,uBACA,sBACA,sBACA,qBACA,QACA,kBACA,oBACA,mBACA,mBACA,kBACA,OACA,oBACA,OACA,QACA,MACA,OACA,OACA,OACA,cACA,gBACA,eACA,eACA,cACA,YACA,cACA,aACA,aACA,UACA,UACA,YACA,wBACA,SACA,aACA,eACA,cACA,cACA,aACA,OACA,sBACA,qBACA,QACA,WACA,WACA,gBACA,oBACA,qBACA,MACA,UACA,qBACA,uBACA,sBACA,sBACA,qBACA,cACA,gBACA,kBACA,iBACA,iBACA,gBACA,YACA,WACA,aACA,mBACA,kBACA,UACA,cACA,SACA,SACA,QACA,UACA,SACA,yBACA,wBACA,gBACA,eACA,UACA,YACA,MACA,QACA,QACA,YACA,kBACA,QACA,YACA,OACA,kBACA,eACA,wBACA,gBACA,UACA,uBACA,cACA,cACA,eACA,iBACA,gBACA,gBACA,eACA,QACA,gBACA,kBACA,iBACA,iBACA,gBACA,oBACA,aACA,MACA,mBACA,uBACA,oBACA,wBACA,OACA,MACA,6BACA,8BACA,yBACA,gBACA,6BACA,4BACA,oBACA,yBACA,mBACA,uBACA,sBACA,mBACA,kBACA,eACA,oCACA,qBACA,uBACA,sBACA,0BACA,yBACA,sBACA,qBACA,mBACA,qBACA,oBACA,oBACA,mBACA,oBACA,aACA,eACA,cACA,cACA,aACA,eACA,eACA,wBACA,uBACA,UACA,aACA,eACA,cACA,cACA,aACA,oBACA,sBACA,qBACA,qBACA,oBACA,KACA,cACA,gBACA,eACA,mBACA,kBACA,eACA,cACA,oBACA,MACA,QACA,OACA,OACA,OACA,YACA,iBACA,gBACA,OACA,eACA,iBACA,gBACA,gBACA,eACA,SACA,YACA,aACA,iBACA,aACA,mBACA,QACA,MACA,OACA,mBACA,gBACA,4BACA,8BACA,6BACA,6BACA,4BACA,KACA,UACA,MACA,kBACA,OACA,OACA,kBACA,oBACA,mBACA,mBACA,kBACA,UACA,WACA,YACA,mBACA,oBACA,OACA,QACA,SACA,mBACA,OACA,gBACA,kBACA,iBACA,iBACA,gBACA,UACA,UACA,MACA,OACA,MACA,OACA,SACA,aACA,SACA,cACA,cACA,YACA,gBACA,YACA,QACA,sBACA,kBACA,WACA,QACA,cACA,gBACA,eACA,eACA,cACA,WACA,iBACA,gBACA,cACA,gBACA,eACA,eACA,cACA,cACA,eACA,gBAiEAp5rB,SAAU,CACRsvF,EAAKs9lB,oBACLt9lB,EAAK4gG,QACH,IACA,IACA,CACEq8f,UAAW,EACXrrE,SAAU,CACR,eAAgB,aAItB5xhB,EAAK4gG,QACH,OACA,OACA,CACEq8f,UAAW,EAEXvsrB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,sBAKf,CAEEA,MAAO,gBACPoyb,SAAU,SAEZ,CAGEpyb,MAAO,mBACPoyb,SAAU,SAEZ,CACE1znB,UAAW,UACXshM,MAAO,iBACPy9f,UAAW,IAEb,CACEz9f,MAAO,SAAWx/F,EAAK28lB,SAAW,WAClC/qE,SA3GgB,CACpB,YACA,kBACA,OACA,gBACA,WACA,iBACA,cACA,oBACA,SACA,aACA,YACA,qBACA,iBACA,cACA,UACA,QACA,mBACA,SACA,iBACA,iBACA,YACA,cACA,WACA,oBACA,WACA,YACA,WACA,oBACA,eACA,wBACA,oBACA,kBACA,cACA,eACA,iBACA,qBACA,SACA,mBACA,SACA,gBACA,UACA,cACA,WACA,wBACA,cACA,YACA,UACA,YACA,UACA,SACA,YA0DE,CACE1znB,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,oCAET,CACEA,MAAO,6BAGXy9f,UAAW,GAEb,CACE/+rB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,IACLumsB,UAAW,IAInB,aCteA1+jB,EAAOF,QA9CP,SAAer+B,GACb,MAAO,CACL/iG,KAAM,QACN+oE,QAAS,CACP,KACA,OAEFg6nB,kBAAkB,EAClBpuE,SAAU,4/cACVlhnB,SAAU,CACR,CACExS,UAAW,SACXshM,MAAO,mBAET,CACEthM,UAAW,WACXshM,MAAO,yBAET,CACEthM,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,kBAET,CACEA,MAAO,iBAKb,CACEthM,UAAW,WACXytJ,SAAU,CACR,CACE6zC,MAAO,q5CAKbx/F,EAAK4gG,QAAQ,iBAAiB,GAC9B5gG,EAAKs9lB,oBACLt9lB,EAAKu9lB,sBAGX,aCQAh/jB,EAAOF,QA1DP,SAAgBr+B,GAiBd,MAAO,CACL/iG,KAAM,eACN+oE,QAAS,CACP,MACA,OACA,OAEFg6nB,kBAAkB,EAClBpuE,SAvBsB,CACtB0vE,SAFsB,oBAGtB5B,QAAS,sBAsBThvrB,SAAU,CApBS,CACnBxS,UAAW,OACXshM,MAAO,gBACPy9f,UAAW,IAEQ,CACnB/+rB,UAAW,OACXshM,MAAO,oBACPy9f,UAAW,IAeTj9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACLv9lB,EAAK4gG,QAAQ,WAAY,QACzB5gG,EAAK09lB,cACL19lB,EAAKhmC,QAAQgmC,EAAKk9lB,iBAAkB,CAClCC,QAAS,OAEXn9lB,EAAKhmC,QAAQgmC,EAAKo9lB,kBAAmB,CACnCD,QAAS,OAEX,CACEj/rB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,KAEP,CACEwH,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,OACLymsB,QAAS,UAMrB,aC/DA,MAuBM8S,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wB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AnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,GAEjD,CASA,SAAS+upB,IAAgB,QAAAtinB,EAAApO,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAkoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAtO,UAAAsO,GAErB,MADe,IAAMD,EAAKj+E,KAAKlD,GAAMsxF,EAAOtxF,KAAIy0C,KAAK,KAAO,GAE9D,CAEA,MAAMmzqB,EAAiB1jB,GAAWj+oB,EAChC,KACAi+oB,EACA,MAAMnnrB,KAAKmnrB,GAAW,KAAO,MAIzB2jB,EAAc,CAClB,WACA,QACA3ktB,IAAI0ktB,GAGAE,EAAsB,CAC1B,OACA,QACA5ktB,IAAI0ktB,GAGAG,EAAe,CACnB,MACA,QAII3xF,EAAW,CAIf,iBACA,QACA,QACA,OACA,MACA,KACA,QACA,OACA,QACA,QACA,WACA,cACA,UACA,QACA,SACA,SACA,KACA,UACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,OACA,MACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,WAOI4xF,EAAW,CACf,QACA,MACA,QAIIC,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,SAKIC,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,YAIIC,EAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,OAIIC,EAAe5kB,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAII6kB,EAAoB7kB,EACxB4kB,EACA,kBACA,kBACA,kBACA,kBACA,mBAMI9rpB,EAAWrW,EAAOmiqB,EAAcC,EAAmB,KAGnDC,EAAiB9kB,EACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,gCASI+kB,EAAsB/kB,EAC1B8kB,EACA,KACA,0DAIItjhB,EAAa/+I,EAAOqiqB,EAAgBC,EAAqB,KAGzDC,EAAiBviqB,EAAO,QAASsiqB,EAAqB,KAItDE,EAAoB,CACxB,cACAxiqB,EAAO,eAAgBu9oB,EAAO,QAAS,QAAS,KAAM,MACtD,oBACA,kBACA,sBACA,WACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACAv9oB,EAAO,SAAU++I,EAAY,MAC7B,OACA,cACA,kBACA,iCACA,WACA,oBACA,UACA,oBAII0jhB,EAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA,SAmgBF3llB,EAAOF,QAtfP,SAAer+B,GACb,MAAMmknB,EAAa,CACjBnrpB,MAAO,MACPikoB,UAAW,GAGPmnB,EAAgBpknB,EAAK4gG,QACzB,OACA,OACA,CACElwL,SAAU,CAAE,UAGVm5rB,EAAW,CACf7pmB,EAAKs9lB,oBACL8mB,GAKIC,EAAc,CAClBnmtB,UAAW,UACXshM,MAAO/9I,EAAO,KAAM28nB,EAAU4gB,KAAUqkB,KAAgBC,KACxD5stB,IAAKsosB,KAAUqkB,KAAgBC,GAC/Btd,cAAc,GAEVse,EAAgB,CAEpBtrpB,MAAOvX,EAAO,KAAMu9oB,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C,EACAlB,GAEFhnB,QAAS,CACP,KACA,MAMEmoB,EAAiB,CACrBpntB,UAAW,WACX86D,MAAO,qCACP44jB,SAAU,CACR8tE,QAAS,6BACT4B,SAAU,YAEZ5wrB,SAAU,CACR00sB,EACAC,EACAlB,GAEFhnB,QAAS,QAGLooB,EAAuB,CAC3B3mB,cAAe,WACflosB,IAAKspG,EAAKk+lB,iBACVxtrB,SAAU,CACR,CACExS,UAAW,QACX86D,MAAOlB,EACP4toB,YAAY,EACZzI,UAAW,KAMXuoB,EAAkB,CACtB5mB,cAAe,kBACflosB,IAAKspG,EAAKk+lB,iBACVxtrB,SAAU,CACR,CACExS,UAAW,QACX86D,MAAOgrpB,EACP/mB,UAAW,GAEb,CACEz9f,MAAO,IACP9oM,IAAK,IACLumsB,UAAW,EACXyI,YAAY,EACZ9zE,SAAU,IACL6xF,KACAD,GAEL9ysB,SAAU,CAAE0xsB,MAMlB,IAAK,MAAMz8sB,KAAWk0f,EAAOluW,SAAU,CACrC,MAAM47C,EAAgB5hM,EAAQ+K,SAASnV,MAAK82B,GAAuB,aAAfA,EAAK3R,QAEzD6mL,EAAcqqb,SAAW25E,EACzB,MAAMka,EAAW,IACZjB,KACA/V,KACAiW,EACHlZ,EACA3xM,KACGorN,GAEL19gB,EAAc72L,SAAW,IACpB+0sB,EACH,CACEjmhB,MAAO,KACP9oM,IAAK,KACLga,SAAU,CACR,UACG+0sB,IAIX,CAEA,MAAO,CACLxotB,KAAM,QACN20nB,SAAU25E,EACV76rB,SAAU,IACLm5rB,EACH2D,EACA8X,EACA,CACEpntB,UAAW,QACX0gsB,cAAe,uCACflosB,IAAK,MACL2vsB,YAAY,EACZz0E,SAAU25E,EACV76rB,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAC5Bt+f,MAAO,6CAENglhB,IAGPe,EACAC,EACA,CACE5mB,cAAe,SACflosB,IAAK,IACLga,SAAU,IAAKm5rB,GACf5M,UAAW,MAEVunB,KACA/V,KACAiW,EACHlZ,EACA3xM,KACGorN,KACA5U,EACH+R,EACAtP,GAGN,aCnzBAv0kB,EAAOF,QA7CP,SAAsBr+B,GAkCpB,MAAO,CACL/iG,KAAM,gBACNyT,SAAU,CAnCI,CACdxS,UAAW,UACXshM,MAAO,WACP9oM,IAAK,KACLga,SAAU,CAAE,CACV8uL,MAAO,KACP9oM,IAAK,KACLga,SAAU,CAAE,OACV,CACE8uL,MAAO,UAGby9f,UAAW,IAGI,CACf/+rB,UAAW,UACXshM,MAAO,kCACP9oM,IAAK,KACL2vsB,YAAY,GAGG,CACfnosB,UAAW,WACXshM,MAAO,kBACP9oM,IAAK,KAGiB,CACtBwH,UAAW,SACXshM,MAAO,QAYX,aCKAjhE,EAAOF,QA9CP,SAAar+B,GACX,MAAO,CACL/iG,KAAM,yBACN+isB,kBAAkB,EAClBtvrB,SAAU,CACRsvF,EAAKw9lB,kBAEL,CACEt/rB,UAAW,OACXytJ,SAAU,CACR,CACE6zC,MAAO,wBAET,CACEA,MAAO,qBAKb,CACEA,MAAO,OACP9oM,IAAK,aACLsusB,YAAa,OACb/H,UAAW,GAGb,CACE/+rB,UAAW,SACXshM,MAAO,YAGT,CACEthM,UAAW,SACXytJ,SAAU,CACR,CACE6zC,MAAO,OAET,CACEA,MAAO,cAMnB,YCxBA,SAAS/9I,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OApBjBssH,EAoBwB59M,GAlBpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAoB0B,IAAEnpK,KAAK,GAEjD,CAmFAsuF,EAAOF,QA1EP,SAAar+B,GACX,MAAM0lnB,EAAY,yBAEZla,EAAS,CACbttsB,UAAW,SACXytJ,SAAU,CAAC3rD,EAAK29lB,mBAAoB39lB,EAAK09lB,gBAG3C,MAAO,CACLzgsB,KAAM,MACN+oE,QAAS,CAAC,MACV4rjB,SAAU,+6BAYVlhnB,SAAU,CACRsvF,EAAK4gG,QAAQ,YAAa,KAC1B5gG,EAAK4gG,QAAQ,YAAa,KAC1B,CACEg+f,cAAe,OACflosB,IAAK,QACL2vsB,YAAY,EACZ31rB,SAAU,CACR,CACExS,UAAW,QACXshM,MAAO,kDACP9oM,IAAK,eACLirsB,gBAAgB,EAChB0E,YAAY,KAIlB,CACEnosB,UAAW,WACXytJ,SAAU,CACR,CACE6zC,MAAO/9I,EACL,MAjEI23J,EAkEK,KAjEd33J,EAAO,IAAK23J,EAAI,OAkEXssgB,EACA,MACAA,EACA,OAGJ,CACElmhB,MAAO,2CACP9oM,IAAK,MACLga,SAAU,CACR86rB,MAKR,CACEttsB,UAAW,SACXwS,SAAU,CAACsvF,EAAKg9lB,kBAChBrxiB,SAAU,CACR3rD,EAAKhmC,QAAQgmC,EAAKo9lB,kBAAmB,CAACD,QAAS,SAGnDqO,IAzFN,IAAkBpyf,CA4FlB,aC9DA76E,EAAOF,QA1CP,SAAgBr+B,GACd,MAAMwxmB,EAAiB,6CACvB,MAAO,CACLv0sB,KAAM,SACN20nB,SAAU,CACR8tE,QACE,mGACFoK,SACE0H,EACFtH,QACE,cAEJx5rB,SAAU,CACRsvF,EAAKo9lB,kBACLp9lB,EAAKy9lB,YACLz9lB,EAAKs9lB,oBACLt9lB,EAAKu9lB,qBACL,CACEr/rB,UAAW,QACX0gsB,cAAe,gCACflosB,IAAK,KACLymsB,QAAS,KACTzsrB,SAAU,CACRsvF,EAAKhmC,QAAQgmC,EAAK89lB,WAAY,CAE5BmE,OAAQ,CACNN,gBAAgB,EAChB0E,YAAY,OAKpB,CACE7mgB,MAAO,yBACP9oM,IAAK,IACLk7nB,SAAU4/E,EACV9gsB,SAAU,CAAE,UAIpB,aC8CA6tH,EAAOF,QAxFP,SAAYr+B,GACV,MAAM2lnB,EAAO,CACXzntB,UAAW,SACXshM,MAAO,cACPy9f,UAAW,GAEP2oB,EAAU,CACd1ntB,UAAW,SACXshM,MAAO,YAyBT,MAAO,CACLviM,KAAM,KACN20nB,SAAU,CACR8tE,QACE,2XAMFwK,QACE,8DAEJx5rB,SAAU,CApCG,CACbxS,UAAW,WACXshM,MAAO,2HAEP9oM,IAAK,MACLga,SAAU,CACR,OACAi1sB,EACAC,IAGS,CACX1ntB,UAAW,WACXshM,MAAO,6CACP9oM,IAAK,MACLga,SAAU,CACR,OACAi1sB,EACA3lnB,EAAKo9lB,kBACLwoB,IAoBA,CACE1ntB,UAAW,UACXshM,MAAO,8BAET,CAEEthM,UAAW,UACXshM,MAAO,iCAET,CAGEthM,UAAW,UACXshM,MAAO,yDAET,CAEEthM,UAAW,SACXshM,MAAO,6DACPy9f,UAAW,GAEbj9lB,EAAK4gG,QAAQ,KAAM,QACnB5gG,EAAK4gG,QAAQ,IAAK,QAClB5gG,EAAK4gG,QAAQ,QAAS,KACtB5gG,EAAKo9lB,kBACL,CACEl/rB,UAAW,SACXshM,MAAO,IACP9oM,IAAK,KAEPspG,EAAK09lB,cACL,CACEx/rB,UAAW,WACXshM,MAAO,qBAIf,YChBAjhE,EAAOF,QAnEP,SAAcr+B,GACZ,IAKI6lnB,EAAiB,2GAGjBvI,EAAY,CACd1e,cAAeinB,EACfj0F,SAAU,CAAC30nB,KAAM4otB,GACjB5oB,UAAW,EACXvsrB,SAAU,CAZC,CACXxS,UAAW,SACXshM,MAAO,MAAO9oM,IAAK,SAejBk7sB,EAAS,CACXpygB,MAAO,iBACPoyb,SACE,4SAIFlhnB,SAAU,CACR4ssB,IAIArN,EAAO,iIAKX,OAFAA,EAAOA,EAAO,IAAMA,EAAK//qB,MAAM,KAAKxxB,KAAI,SAAS67D,GAAG,MAAO,MAAQA,CAAC,IAAGtqB,KAAK,KAErE,CACLhzC,KAAM,OACN+oE,QAAS,CAAC,YACVg6nB,kBAAkB,EAClBgF,YAAa,MACbt0rB,SAAU,CACRsvF,EAAK4gG,QAAQ,MAAO,OACpB,CACE1iM,UAAW,eACXshM,MAAO,MAAO9oM,IAAK,MACnBga,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,MACPoyb,SAAUq+E,EACVhO,OAAQ,CACNN,gBAAgB,EAChBjxrB,SAAU,CAACkhsB,EAAQ0L,GACnBrgB,UAAW,MAKnB,CACE/+rB,UAAW,oBACXshM,MAAO,OAAQ9oM,IAAK,OACpBga,SAAU,CAAC,OAAQkhsB,EAAQ0L,KAInC,aC1EA,MAAM3gB,EAAW,2BACX4O,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIiD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGhtpB,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAgEF,SAAS28nB,EAAUhle,GACjB,OAAO33J,EAAO,MAAO23J,EAAI,IAC3B,CAMA,SAAS33J,IAAgB,QAAA+8B,EAAAlQ,UAAAxxE,OAAN6/E,EAAI,IAAAnoB,MAAAgqB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ/B,EAAI+B,GAAApQ,UAAAoQ,GAErB,OADe/B,EAAKj+E,KAAKlD,IAAMsxF,OApBjBssH,EAoBwB59M,GAlBpB,kBAAP49M,EAAwBA,EAE5BA,EAAGtsH,OAHM,KADlB,IAAgBssH,CAoB0B,IAAEnpK,KAAK,GAEjD,CA4gBAsuF,EAAOF,QAnFP,SAAoBr+B,GAClB,MAAM42mB,EAAaja,EAoCb+R,EAAa,CACjBpN,SAAU3E,EACV+C,QAAS6L,EAAS9ppB,OAfS,CAC3B,OACA,YACA,UACA,YACA,SACA,UACA,YACA,aACA,UACA,WACA,aAKAyopB,QAASsE,EACT1E,SAAU2E,EAAUhtpB,OA3BR,CACZ,MACA,OACA,SACA,UACA,SACA,SACA,QACA,UAqBIqkqB,EAAY,CAChB5ntB,UAAW,O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AEPiptB,EAAgB,CACpBxlB,gBAAgB,EAChBxE,QAAS,IACTF,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,OACXshM,MAhCe,mBAiCfy9f,UAAW,GAEb,CACEz9f,MAAO,OACPy9f,UAAW,EACXvsrB,SAAU,CACR,CACExS,UAAW,SACXwnsB,YAAY,EACZ/5iB,SAAU,CACR,CACE6zC,MAAO,IACP9oM,IAAK,IACLga,SAAU,CAAEo2sB,IAEd,CACEtnhB,MAAO,IACP9oM,IAAK,IACLga,SAAU,CAAEo2sB,IAEd,CACEtnhB,MAAO,sBAQrB,MAAO,CACLviM,KAAM,YACN+oE,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,OAEFg6nB,kBAAkB,EAClBtvrB,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,UACP9oM,IAAK,IACLumsB,UAAW,GACXvsrB,SAAU,CACRq2sB,EACAG,EACAD,EACAD,EACA,CACExnhB,MAAO,KACP9oM,IAAK,KACLga,SAAU,CACR,CACExS,UAAW,OACXshM,MAAO,UACP9oM,IAAK,IACLga,SAAU,CACRq2sB,EACAC,EACAE,EACAD,QAOZjnnB,EAAK4gG,QACH,OACA,MACA,CACEq8f,UAAW,KAGf,CACEz9f,MAAO,cACP9oM,IAAK,QACLumsB,UAAW,IAEb6pB,EACA,CACE5otB,UAAW,OACXshM,MAAO,SACP9oM,IAAK,MACLumsB,UAAW,IAEb,CACE/+rB,UAAW,MAOXshM,MAAO,iBACP9oM,IAAK,IACLk7nB,SAAU,CACR30nB,KAAM,SAERyT,SAAU,CAAEy2sB,GACZllB,OAAQ,CACNvrsB,IAAK,YACL0vsB,WAAW,EACXpB,YAAa,CACX,MACA,SAIN,CACE9msB,UAAW,MAEXshM,MAAO,kBACP9oM,IAAK,IACLk7nB,SAAU,CACR30nB,KAAM,UAERyT,SAAU,CAAEy2sB,GACZllB,OAAQ,CACNvrsB,IAAK,aACL0vsB,WAAW,EACXpB,YAAa,CACX,aACA,aACA,SAKN,CACE9msB,UAAW,MACXshM,MAAO,WAGT,CACEthM,UAAW,M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AAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpD7krB,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIF0jsB,GAAyB,CAC3B7e,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpD7krB,OAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIF2jsB,GAA2B,CAC7B9e,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5D7krB,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIF4jsB,GAAwB,SAC1Bz4uB,EACAgyC,EACA1qB,EACAoxtB,EACAh4iB,EACAkhN,GAEA,OAAI5hZ,EAAQgyC,GAAOhyC,EAAQsnB,EAChBqxtB,GAAkB34uB,EAAO0gM,EAAUkhN,EAA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CzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAO,YACxB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,YACD,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,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EAGM,OAAd1uP,GAAsB36D,EAAY,OACpCktD,EAAWltD,KAAgB26D,GAAa,EAAKg0jB,EAMzC3unB,GAAa4sD,EAAY,GAAKxF,EAAgB,OAC9CA,EACFwF,EAAaA,GAAa,EAAK,IAInC+N,EAAYre,CAAA,MA9EVt8C,EAAYuoD,EAAW,EAEvBqE,GAAa,IADbxF,EAAgBtlE,EAAgB,IACG,EAGnC64E,EAAY,YA4EZ3T,IAAOhJ,GACTt9D,GAAQvE,IAAI,8CAGPo9B,CAAA,CCz1BT,SAASiouB,GAAYhisB,GAAA,IAMf3vD,EACA0pB,EACAykC,EACAl8D,EAeApB,EAvBAygF,EAAStmF,KAAKC,MACdytE,EAAS,IAAI9O,MAAM,IACnBz5C,EAAU,IAAIy5C,MAAM,IACpB2N,EAAU,IAAI3N,MAAM,IACpBmT,EAAW,IAAInT,MAAM,IAMrB2D,EAAU,IAAI3D,MAAM,OACpBmW,EAAW,IAAInW,MAAM,OACrBuN,EAAkB,IAAIvN,MAAM,IAC5B0E,EAAK,IAAI1E,MAAM,IACfyT,EAAU,GACVyN,EAAU,EACVre,EAAU,EAEV37D,EAAM,IAAI84D,MAAM,IAChB7lB,EAAM,IAAI6lB,MAAM,IAChB4vQ,EAAM,IAAI5vQ,MAAM,IAChBk1kB,EAAM,IAAIl1kB,MAAM,KAChB2tK,EAAgB,IAAI3tK,MAAM,MAG1Bi1kB,EAAS,CACX,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGEjuoB,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEkpU,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DlpO,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEE4yQ,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGErsK,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEsiI,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/DjI,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEotU,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cAuKOjmlB,EAAkBgX,EAAS3vD,GAAA,QAC9B0pB,EAAY,EACZykC,EAAe,EACfl8D,EAAK,IAAI23D,MACJ/4D,EAAI,EAAGA,GAAK,GAAIA,IAAK,KACvB,IAAIygF,EAAI,EAAGA,GAAK3hB,EAAQ9+D,GAAIygF,IAC/Br/E,EAAG+N,EAAUmuD,IAAiB,GAC9Bl8D,EAAG+N,EAAUmuD,IAAe,GAAKzkC,EACjCz3B,EAAG+N,EAAUmuD,IAAe,GAAKt9D,EACjCs9D,IACAzkC,IAEFA,GAAa,SAERz3B,CAAA,UA2DAo4Q,EA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7D,GAAA,QA5CQ,IA8CN4Q,GACFgtM,EAAU/4L,GAEL5nD,CAAA,UA8HAi1G,EAAWhvE,GAClBA,EAAU3kE,KAAK64C,IAAI74C,KAAKmuB,IAAIw2C,EAAS,GAAI,KAErC9+D,GAAkB8+D,IAAA,SA1qBCA,GAAA,QACnB3vD,EAAM,CACR,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGO0pB,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBykC,EAAImjB,GAAQtxE,EAAI0pB,GAAKimC,EAAK,IAAM,KACpCxB,EAAInjE,KAAK64C,IAAI74C,KAAKmuB,IAAIg1C,EAAG,GAAI,KAC7BuK,EAAOmmkB,EAAOn1mB,IAAMykC,CAAA,SAElBl8D,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEOpB,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB08D,EAAI+jB,GAAQr/E,EAAKpB,GAAK8+D,EAAK,IAAM,KACrCpC,EAAIviE,KAAK64C,IAAI74C,KAAKmuB,IAAIo0C,EAAG,GAAI,KAC7Bp9C,EAAQ0unB,EAAOhuoB,IAAM08D,CAAA,SAEnBw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B,CAAA,KAIjB8rsB,GAAK,GACPlQ,GAAK,CACH,EACA,EACA,EACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,UAEFmQ,GAAK,GACLwU,GAAK,GACLC,GAAK,EACLC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJ/2c,EAAE,aAAc,iBAChB1pQ,EAAKkvtB,WAAa,kBACT,YAETlvtB,EAAKmvtB,WAAa,SAASnvtB,GAAA,OAClBA,CAAA,EAETA,EAAKovtB,WAAa,SAASpvtB,EAAG3vD,EAAG0pB,GAAA,OACxB1pB,EAAE0pB,EAAI,IAEfimC,EAAKqvtB,WAAa,SAASrvtB,EAAG3vD,EAAG0pB,GAAA,OACxB1pB,EAAE0pB,EAAI,IAEfimC,EAAKsvtB,WAAa,SAAStvtB,EAAG3vD,EAAG0pB,GAAA,OACxB1pB,EAAE0pB,EAAI,IAEfimC,EAAKuvtB,WAAa,SAASvvtB,EAAG3vD,EAAG0pB,GAAA,OACxBo7mB,EAAGA,EAAGn1kB,EAAG3vD,EAAE0pB,EAAI,IAAK1pB,EAAE0pB,EAAI,KAEnCimC,EAAKwvtB,WAAa,SAASxvtB,EAAG3vD,EAAG0pB,GAAA,OACxBo7mB,EAAGn1kB,EAAG3vD,EAAE0pB,EAAI,KAErBimC,EAAKyvtB,WAAa,SAASzvtB,EAAG3vD,EAAG0pB,GAAA,OACxBo7mB,EAAGn1kB,EAAG3vD,EAAE0pB,EAAI,KAErBimC,EAAK0vtB,WAAa,SAAS1vtB,EAAG3vD,EAAG0pB,GAAA,OACxBo7mB,EAAG9koB,EAAE0pB,EAAI,GAAI1pB,EAAE0pB,EAAI,KAE5BimC,EAAK2vtB,WAAa,SAAS3vtB,EAAG3vD,EAAG0pB,GAAA,OACxBo7mB,EAAG9koB,EAAE0pB,EAAI,GAAI1pB,EAAE0pB,EAAI,KAE5BimC,EAAK4vtB,YAAc,SAAS5vtB,EAAG3vD,EAAG0pB,GAAA,OACzBo7mB,EAAGA,EAAGn1kB,EAAG3vD,EAAE0pB,EAAI,IAAKo7mB,EAAG9koB,EAAE0pB,EAAI,GAAI1pB,EAAE0pB,EAAI,MAEhDimC,EAAK6vtB,YAAc,SAAS7vtB,EAAG3vD,EAAG0pB,GAAA,IAC5BykC,EAAInuD,EAAE0pB,EAAI,UAEP,GACLuH,EAAIk9B,GAAK,GAAM,IAAMwB,GAAK,GAAM,KAFlC3vD,EAAIA,EAAE0pB,EAAI,KAEmC,GAAM,KAC/CuH,EAAIk9B,GAAK,GAAM,IAAMwB,GAAK,GAAM,IAAM3vD,GAAK,GAAM,KACjDixB,EAAIk9B,GAAK,EAAK,IAAMwB,GAAK,EAAK,IAAM3vD,GAAK,EAAK,KAC9CixB,EAAO,IAAJk9B,EAAa,IAAJwB,EAAa,IAAJ3vD,GACrBmuD,EACAwB,CAAA,EAENA,EAAK8vtB,YAAc,SAAS9vtB,EAAG3vD,EAAG0pB,GAAA,IAC5BykC,EAAInuD,EAAE0pB,EAAI,UAGV61D,GAAK5vB,GAAK,GAAM,MAASxB,GAAK,GAAM,OAFxCnuD,EAAIA,EAAE0pB,EAAI,KAE4C,GAAM,OAAS,GAChE61D,GAAK5vB,GAAK,GAAM,MAASxB,GAAK,GAAM,MAASnuD,GAAK,GAAM,OACvD,GACDu/E,GAAK5vB,GAAK,EAAK,MAASxB,GAAK,EAAK,MAASnuD,GAAK,EAAK,OAAS,EAC/Du/E,GAAQ,IAAJ5vB,IAAgB,IAAJxB,IAAgB,IAAJnuD,OAC9B,GAGJ2vD,EAAK+vtB,YAAc,SAAS/vtB,EAAG3vD,EAAG0pB,GAAA,IAC5BykC,EAAInuD,EAAE0pB,EAAI,UAGV2tM,GAFJ1nK,EAAIm1kB,EAAGn1kB,EAAG3vD,EAAE0pB,EAAI,MAEH,GAAM,IAAMykC,GAAK,GAAM,MAAQ,GACvCkpK,EAAI1nK,GAAK,GAAM,IAAMxB,GAAK,GAAM,MAAQ,GACxCkpK,EAAI1nK,GAAK,EAAK,IAAMxB,GAAK,EAAK,MAAQ,EACvCkpK,EAAc,IAAV1nK,EAA0B,IAAVxB,MACtB,OAGAqmtB,GAAK7ktB,EAAKgwtB,cACdhwtB,EAAKiwtB,cAAgB11Z,EACrB7wD,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,aAAc,iBAChBA,EAAE,cAAe,kBACjBA,EAAE,cAAe,kBACjBA,EAAE,cAAe,kBACjBA,EAAE,cAAe,sBACbo7c,GAAK9ktB,EAAKkwtB,cACd1gxB,EACE,6BACA,UACA,OACA,SAASwwD,GAAA,OACCA,GAAK,EAAK,OAEpB,SAASA,GAAA,OACAA,CAAA,IAGXxwD,EACE,sCACA,WACA,MACA,SAASwwD,GAAA,OACAA,CAAA,IAET,SAASA,GAAA,OACCA,GAAK,EAAK,WAOpB4ktB,GAJEK,GAAKjltB,EAAKmwtB,2BACZ7J,GAAKtmtB,EAAKowtB,QACVxK,GAAK5ltB,EAAKqwtB,oCACV7J,GAAKxmtB,EAAKswtB,SAEVvL,GAAM/ktB,EAAKuwtB,kBAAoB,GACjCxL,GAAGxixB,OAAS,IACXy9D,EAAKwwtB,eAAiB,IAAIjuxB,OAAS,IACnCy9D,EAAKywtB,oBAAsB,IAAIluxB,OAAS,IACxCy9D,EAAK0wtB,iBAAmB,IAAInuxB,OAAS,OAClCyixB,GACFvslB,GACA6uW,GACA7yH,GACAzL,GACA3J,GA+3BAutJ,GAIA9hM,GACAisD,GACA81W,GACAC,GACAC,GACAxlX,GACAv6R,GACAigpB,GACAC,GACAC,GACAllX,GACAmlX,GACAr5W,GACAs5W,GACAC,GACAC,GACAC,GAIAxK,GACAuC,GACAxC,GACAnhd,GAz5BA8qd,GAAKxrxB,EAAE,KACPq0a,GAAKr0a,EAAE,MACPyrxB,GAAKzrxB,EAAE,KACP0rxB,GAAK1rxB,EAAE,KACPurxB,GAAK,EACLoB,GAAKt4W,GACLk7V,GAAKkc,GACLiB,GAAIhB,GACJkB,GAAIpB,GACJrH,GAAK,EACLnC,GAAK,EACLoC,GAAK,EACLnC,GAAK,EACLN,GAAK,EACLO,GAAK,EACLoC,GAAK,EACLxE,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACL2F,GAAK,CAAC,EAAG,EAAG,GACZD,GAAK,CAAC,EAAG,EAAG,IACZF,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BI,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClBH,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEzC,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFuC,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFvvW,GAAK,EACL+0W,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFF,GAAK,KACL99c,GAAK,CACH,CAAC,IAAK,IAAK,IAAK,GAChB,CAAC,IAAK,IAAK,IAAK,IAAK,GACrB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE1Dk+c,GAAK,CAAC,EAAG,EAAG,EAAG,EAA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AAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD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D,EAAO/+D,EAAS++D,EAAM3vD,EAAmB0pB,QAdzC+iC,EAAO57D,EAjXC,EADA,EAmXR8+D,EAAO/+D,EAAS++D,EAAM3vD,EAAmB0pB,GAAA,OAuDpCimC,CAAA,OAcJq4tB,eAAevwf,WAAa,SAAS9nO,GACpCA,IACF19D,EAAc09D,EAAQ04tB,cACtB/2sB,EAAe3hB,EAAQ24tB,eACvBz3xB,EAAW8+D,EAAQ44tB,WACnB7vtB,EAAY/I,EAAQ64tB,YACpBr4wB,EAAuBw/C,EAAQ84tB,oBAAA,OAI9BT,eAAevwf,WAAW9nO,GACxB4K,KAAKyttB,cAAA,MAGVhoxB,EA5jFmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA8jBE0pB,EAAa,IAAIimC,EAAMq4tB,eAAe,CAAEK,eAAA,IAoC5C14tB,EAAM+isB,IAAIt0oB,OAAO9oH,KAAK,CAAC,kBAlCE,SAASq6D,GAAA,IAC5B3vD,EAAO2vD,EAAKl/B,KAGZ09B,GAFIwB,EAAK/+D,EACL++D,EAAK5rB,EACC4rB,EAAKtrC,S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,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,G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xpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCyxpB,WAAWzxpB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,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AAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,IAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,SAKtB4+2B,EAAaS,eAAiB5tN,WAAWzxpB,KAAK,CAC1C,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC3G,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAC5G,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAC7G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAC1G,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,IAC3G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KACzG,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IACzG,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAC1G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KACzG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KACzG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAC1G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAC5G,KAA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zCgB,IUyCkB,EAAM,EAEnCzw1B,KAAK+r1B,gBAAgBn24B,GAC1B664B,EV5CgB,IU4CkB,KAGlCA,EV/CgB,IU+CkB,KAGlCzw1B,KAAKix1B,cAAcr74B,GACnB664B,EVlDgB,IUkDkB,EAGlCA,EVrDgB,KUwDhBC,GAAkB,EAAG,CAIrB,GAHA30E,EAAO5xvB,KAAK6vB,EAAM,GAClB+huB,EAAO5xvB,KAAKwm0B,EAAe,GAC3B3w1B,KAAK4w1B,aAAaH,EAAYE,EAAezzE,EAAQvzT,UAAW3va,GAC5D22yB,EVjEU,GUkEV3w1B,KAAK12B,IAAIqn3B,EV7DG,GU6DgCA,EVjEpC,GUiEmEA,EVhElE,GUgEkGA,EV/DnG,GU+DkIA,EV9D9H,IU+DZ,OVnEU,EUqEd,GAAIA,EVhEY,GUgEwBA,EVrE1B,IUsEVA,EVjEY,GUiEwB,EAChC3w1B,KAAK12B,IAAIqn3B,EVtEL,GUsEoCA,EVrEnC,GUqEmEA,EVpEpE,GUoEmGA,EVnE/F,IUoEZ,OVnEY,EUqEhB,GAAIA,EVtEY,GUsEwB,EACpC3w1B,KAAK12B,IAAIqn3B,EVtEG,GUsEgCA,EV1EpC,GU0EmEA,EVzElE,GUyEkGA,EVxEnG,GUwEkIA,EV3EhI,IU4EV,OVxEY,EU0EhB,GAAIA,EV5ES,GU4EwB,EACjC3w1B,KAAK12B,IAAIqn3B,EV1EG,GU0EgCA,EV9EpC,GU8EmEA,EV3E/D,GU2EkGA,EV5EtG,GU4EqIA,EV/EnI,IUgFV,OV9ES,EUgFb,GAAIA,EV/EQ,GU+EwB,EAChC3w1B,KAAK12B,IAAIqn3B,EV9EG,GU8EgCA,EVlFpC,GUkFmEA,EV/E/D,GU+EkGA,EVjFrG,GUiFqIA,EVnFpI,IUoFV,OVjFQ,EUmFZ,GAAIA,EVrFQ,GUqFwB,EAChC3w1B,KAAK12B,IAAIqn3B,EVvFC,GUuFgCA,EVlF9B,GUkFiEA,EVnFjE,GUmFoGA,EVrFvG,IUqFwI,CACjJ,GAAIA,EVvFI,GUuF4BA,EVrF5B,GUsFJ,OVxFI,EU0FR,GAAIA,EV1FI,KU0F8BA,EVxF9B,GUwF6D,CAEjE,IADA,IAAI581B,EAAIo81B,EAAWO,EAAiB,EAC7B38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","sources":["Components/Pages/PerformMeasurement/DataList.svg","Components/Pages/PerformMeasurement/barcodeScanner.svg","Components/Pages/PerformMeasurement/camera.svg","Components/Pages/PerformMeasurement/squares.svg","Images/Pie.svg","Images/camera.svg","AuthObserver.js","Components/Pages/AccountOverview/AccountOverview.jsx","Components/Pages/AccountOverview/Components/EditListsButton.jsx","Components/Pages/AccountOverview/Components/AccountList.jsx","Components/Pages/AccountOverview/Components/CreateAccountCategoryDialog.jsx","Components/Pages/AccountOverview/Components/CreateAccountDialog.jsx","Components/Pages/BookDemo/BookDemoPage.jsx","Components/Pages/CompanyManagment/CompanyCrudDialog.jsx","Components/Pages/CompanyManagment/CompanySettings.jsx","Components/Pages/CompanyManagment/UserCrudDialog.jsx","Components/Pages/CompanyManagment/UserEditDialog.jsx","Components/Pages/Configuration/ConfigurationPage.jsx","Components/Pages/CreateExternalApi/CreateExternalApi.jsx","Components/Pages/CreateList/Components/TableCreateList.jsx","Components/Pages/CreateList/CreateList.jsx","Components/Pages/CreateProject/CreatePage.jsx","Components/Pages/DataManagement/Components/MeasurementsTable.jsx","Components/Pages/DataManagement/Components/ProjectButton.jsx","Components/Pages/DataManagement/DataManagementPage.jsx","Components/Pages/DuplicateProject/Components/DropdownCopmanyAdd.jsx","Components/Pages/DuplicateProject/DuplicatePage.jsx","Components/Pages/ExternalApiListOverview/Components/EditExternalApisButton.jsx","Components/Pages/ExternalApiListOverview/Components/TableExternalApi.jsx","Components/Pages/ExternalApiListOverview/ExternalApiOverview.jsx","Components/Pages/GeneralLedgerAccount/GeneralLedgerAccountPage.jsx","Components/Pages/Graphs/Components/FinancialChart.jsx","Components/Pages/Graphs/Components/FinancialSummaryTable.jsx","Components/Pages/Graphs/Components/GraphTabs.jsx","Components/Pages/Graphs/Components/ProfitLossDevExDataTable.jsx","Components/Pages/Graphs/Components/ProfitLossReport.jsx","Components/Pages/Graphs/Components/YamazumiChart.jsx","Components/Pages/Graphs/GraphDetailPage.jsx","Components/Pages/Graphs/GraphsOverviewPage.jsx","Components/Pages/Graphs/ModifyGraphPage.jsx","Components/Pages/Graphs/ViewGraphPage.jsx","../node_modules/gsap/gsap-core.js","../node_modules/gsap/CSSPlugin.js","../node_modules/gsap/index.js","Components/Pages/Landing/Components/CanvasAnimation.jsx","Components/Pages/Landing/LandingPage.jsx","Components/Pages/Login/LoginPage.jsx","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/default-highlight.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/default-style.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/languages/hljs/supported-languages.js","Components/Pages/ModifyExternalApi/Components/HowToUseAPIDialog.jsx","Components/Pages/ModifyExternalApi/Components/ModifyExternalApiList.jsx","Components/Pages/ModifyExternalApi/ModifyExternalApi.jsx","Components/Pages/ModifyList/Components/TableModifyList.jsx","Components/Pages/ModifyList/ModifyList.jsx","Components/Pages/ModifyProject/Components/ChangeHistoricalPriceDialog.jsx","Components/Pages/ModifyProject/ModifyPage.jsx","Components/Pages/Navigation/NavigationPage.jsx","Components/Pages/PerformMeasurement/Camera.jsx","Components/Pages/PerformMeasurement/counterStyle.svg","Components/Pages/PerformMeasurement/Counters.jsx","Components/Pages/PerformMeasurement/DataList.jsx","Components/Pages/PerformMeasurement/Freetext.svg","Components/Pages/PerformMeasurement/FreeText.jsx","Components/Pages/PerformMeasurement/MeasurementBlocks.jsx","Components/Pages/PerformMeasurement/PerformMeasurementPage.jsx","Components/Pages/PerformMeasurement/Scanner.jsx","../node_modules/@mui/icons-material/esm/RestartAlt.js","../node_modules/@mui/icons-material/esm/Pause.js","../node_modules/@mui/icons-material/esm/PlayArrow.js","../node_modules/@mui/material/node_modules/@mui/system/esm/Stack/createStack.js","../node_modules/@mui/material/Stack/Stack.js","Components/Pages/PerformMeasurement/timerStyle.svg","Components/Pages/PerformMeasurement/Stopwatch.jsx","Components/Pages/PrivacyPolicy/PrivacyPolicyPage.jsx","Components/Pages/ProjectListOverview/Components/EditListsButton.jsx","Components/Pages/ProjectListOverview/Components/TableList.jsx","Components/Pages/ProjectListOverview/ListOverview.jsx","Components/Pages/ProjectOverview/Components/EditButton.jsx","Components/Pages/ProjectOverview/Components/TableManage.jsx","Components/Pages/ProjectOverview/ManagePage.jsx","Components/Pages/ProjectReportOverview/Components/ProjectTable.jsx","Components/Pages/ProjectReportOverview/ProjectReportOverview.jsx","Components/Pages/ProjectReport/Components/EventChart.jsx","Components/Pages/ProjectReport/Components/FinancialChart.jsx","Components/Pages/ProjectReport/Components/PriceTable.jsx","Components/Pages/ProjectReport/Components/TableHighLow.jsx","Components/Pages/ProjectReport/ProjectReport.jsx","Components/Pages/Results/Components/DevExDataTable.jsx","Components/Pages/Results/Components/ProjectButton.jsx","Components/Pages/Results/Components/TimeLineChart.jsx","Components/Pages/Results/Components/TimeRangeChart.jsx","Components/Pages/Results/ResultsPage.jsx","Components/Pages/SelectMenu/SelectMenuPage.jsx","Components/Pages/User/UserSettings/userSettings.jsx","../node_modules/lucide-react/src/icons/arrow-up.ts","Components/Shared/Buttons/BackToTopButton.jsx","Components/Shared/Buttons/BoolToggle.jsx","Components/Shared/Buttons/ButtonNormalDelete.jsx","Components/Shared/Buttons/ButtonNormalText.jsx","../node_modules/react-color/es/helpers/checkboard.js","../node_modules/react-color/es/components/common/Checkboard.js","../node_modules/react-color/es/components/common/Alpha.js","../node_modules/react-color/es/helpers/alpha.js","../node_modules/react-color/es/components/common/EditableInput.js","../node_modules/react-color/es/helpers/hue.js","../node_modules/react-color/es/components/common/Hue.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/merge.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/react-color/es/components/common/Raised.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/react-color/es/helpers/saturation.js","../node_modules/react-color/es/components/common/Saturation.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/tinycolor2/esm/tinycolor.js","../node_modules/react-color/es/helpers/color.js","../node_modules/react-color/es/components/common/ColorWrap.js","../node_modules/react-color/es/helpers/interaction.js","../node_modules/react-color/es/components/common/Swatch.js","../node_modules/react-color/es/components/alpha/AlphaPointer.js","../node_modules/react-color/es/components/alpha/Alpha.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/react-color/es/components/block/BlockSwatches.js","../node_modules/react-color/es/components/block/Block.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/react-color/es/components/circle/CircleSwatch.js","../node_modules/react-color/es/components/circle/Circle.js","../node_modules/lodash-es/isUndefined.js","../node_modules/react-color/es/components/chrome/ChromeFields.js","../node_modules/react-color/es/components/chrome/ChromePointer.js","../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../node_modules/react-color/es/components/chrome/Chrome.js","../node_modules/react-color/es/components/compact/CompactColor.js","../node_modules/react-color/es/components/compact/CompactFields.js","../node_modules/react-color/es/components/compact/Compact.js","../node_modules/react-color/es/components/github/GithubSwatch.js","../node_modules/react-color/es/components/github/Github.js","../node_modules/react-color/es/components/hue/HuePointer.js","../node_modules/react-color/es/components/hue/Hue.js","../node_modules/react-color/es/components/material/Material.js","../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/es/components/photoshop/Photoshop.js","../node_modules/react-color/es/components/sketch/SketchFields.js","../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../node_modules/react-color/es/components/sketch/Sketch.js","../node_modules/react-color/es/components/slider/SliderSwatch.js","../node_modules/react-color/es/components/slider/SliderSwatches.js","../node_modules/react-color/es/components/slider/SliderPointer.js","../node_modules/react-color/es/components/slider/Slider.js","../node_modules/react-color/es/components/swatches/SwatchesColor.js","../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../node_modules/react-color/es/components/swatches/Swatches.js","../node_modules/react-color/es/components/twitter/Twitter.js","../node_modules/react-color/es/components/google/GooglePointerCircle.js","../node_modules/react-color/es/components/google/GooglePointer.js","../node_modules/react-color/es/components/google/GoogleFields.js","../node_modules/react-color/es/components/google/Google.js","Components/Shared/ColorPicker.jsx","Components/Shared/CopyQrLink.jsx","../node_modules/lucide-react/src/icons/euro.ts","../node_modules/lucide-react/src/icons/copy.ts","Components/Shared/CustomizedMenus.jsx","../node_modules/@mui/x-date-pickers/DatePicker/datePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","../node_modules/@mui/x-date-pickers/DatePicker/shared.js","../node_modules/@mui/x-date-pickers/DateField/DateField.js","../node_modules/@mui/x-date-pickers/DateField/useDateField.js","../node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","../node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePicker.js","../node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-GB/index.js","Components/Shared/DateSelection/DatePicker.jsx","Components/Shared/DateSelection/DatePickerText.jsx","../node_modules/lucide-react/src/icons/calendar-search.ts","Components/Shared/DateSelection/DateRangePicker.jsx","Components/Shared/DateSelection/DateRangeSlider.jsx","Components/Shared/DateSelection/DateSelectionFuture.jsx","../node_modules/@mui/x-date-pickers/validation/validateTime.js","../node_modules/@mui/x-date-pickers/validation/validateDateTime.js","../node_modules/@mui/x-date-pickers/DateTimeField/DateTimeField.js","../node_modules/@mui/x-date-pickers/DateTimeField/useDateTimeField.js","../node_modules/@mui/material/Tab/tabClasses.js","../node_modules/@mui/material/Tab/Tab.js","../node_modules/@mui/material/internal/animate.js","../node_modules/@mui/material/Tabs/ScrollbarSize.js","../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../node_modules/@mui/material/Tabs/tabsClasses.js","../node_modules/@mui/material/Tabs/Tabs.js","../node_modules/@mui/x-date-pickers/DateTimePicker/dateTimePickerTabsClasses.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerTabs.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarTextClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarText.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarButton.js","../node_modules/@mui/x-date-pickers/DateTimePicker/dateTimePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerToolbar.js","../node_modules/@mui/x-date-pickers/DateTimePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/utils/date-time-utils.js","../node_modules/@mui/x-date-pickers/TimeClock/timeClockClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/shared.js","../node_modules/@mui/x-date-pickers/TimeClock/clockPointerClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/ClockPointer.js","../node_modules/@mui/x-date-pickers/TimeClock/clockClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/Clock.js","../node_modules/@mui/x-date-pickers/TimeClock/clockNumberClasses.js","../node_modules/@mui/x-date-pickers/TimeClock/ClockNumber.js","../node_modules/@mui/x-date-pickers/TimeClock/ClockNumbers.js","../node_modules/@mui/x-date-pickers/internals/hooks/useClockReferenceDate.js","../node_modules/@mui/x-date-pickers/TimeClock/TimeClock.js","../node_modules/@mui/x-date-pickers/DigitalClock/digitalClockClasses.js","../node_modules/@mui/x-date-pickers/DigitalClock/DigitalClock.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js","../node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClock.js","../node_modules/@mui/x-date-pickers/timeViewRenderers/timeViewRenderers.js","../node_modules/@mui/x-date-pickers/DesktopDateTimePicker/DesktopDateTimePickerLayout.js","../node_modules/@mui/x-date-pickers/DesktopDateTimePicker/DesktopDateTimePicker.js","../node_modules/@mui/x-date-pickers/MobileDateTimePicker/MobileDateTimePicker.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePicker.js","Components/Shared/DateSelection/DateTimePicker.jsx","Components/Shared/DateSelection/ProfitLossDateRangePicker.jsx","Components/Shared/DescriptionItem.jsx","Components/Shared/DescriptionTitle.jsx","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","../node_modules/@material-ui/core/esm/Dialog/Dialog.js","Components/Shared/Dialogs/BaseDialog.jsx","../node_modules/@material-ui/core/esm/DialogActions/DialogActions.js","../node_modules/@material-ui/core/esm/DialogContent/DialogContent.js","../node_modules/@material-ui/core/esm/Typography/Typography.js","../node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js","Components/Shared/Buttons/ButtonAction.jsx","Components/Shared/Buttons/ButtonClose.jsx","Components/Shared/Dialogs/MessageDialog.jsx","Components/Shared/Dialogs/ShareDialog.jsx","Components/Shared/Dropdowns/AccountCategoryDropdown.jsx","Components/Shared/Dropdowns/DropdownAccounts.jsx","Components/Shared/Dropdowns/DropdownCompanies.jsx","Components/Shared/Dropdowns/DropdownCopmany.jsx","Components/Shared/Dropdowns/DropdownResources.jsx","Components/Shared/Dropdowns/DropdownType.jsx","Components/Shared/Dropdowns/DropdownValueTypes.jsx","../node_modules/@mui/icons-material/esm/AddLink.js","../node_modules/@mui/icons-material/esm/Link.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","../node_modules/lucide-react/src/icons/house.ts","../node_modules/lucide-react/src/icons/list-checks.ts","../node_modules/lucide-react/src/icons/history.ts","../node_modules/lucide-react/src/icons/chart-column-stacked.ts","../node_modules/lucide-react/src/icons/database.ts","../node_modules/lucide-react/src/icons/cog.ts","../node_modules/lucide-react/src/icons/list-plus.ts","../node_modules/lucide-react/src/icons/hand-coins.ts","../node_modules/lucide-react/src/icons/user-cog.ts","../node_modules/lucide-react/src/icons/users.ts","../node_modules/lucide-react/src/icons/log-out.ts","Components/Shared/Menu.jsx","Components/Shared/PrivateRoute.jsx","Components/Shared/QrButton.jsx","Components/Shared/Tables/FilterListRow.jsx","Components/Shared/Tables/FilterProjectRow.jsx","Components/Shared/Tables/TableDragResources.jsx","Components/Shared/TextField.jsx","Components/Shared/TextWithReadMore.jsx","Components/Shared/TitlePage.jsx","Components/Shared/UseQuery.jsx","Config/constants.js","Reducers/ActiveFilters/ActiveFiltersActionTypes.js","Reducers/ExternalAPiCopy/ExternalAPiCopyActionTypes.js","Reducers/ListCopy/ListCopyActionTypes.js","Reducers/Login/LoginActionTypes.js","Reducers/ProjectCopy/ProjectCopyActionTypes.js","Reducers/ProjectCopy/ProjectCopyAction.js","Reducers/Login/LoginActions.js","Reducers/ActiveFilters/ActiveFiltersAction.js","Reducers/ListCopy/ListCopyAction.js","Reducers/ExternalAPiCopy/ExternalApiCopyAction.js","Reducers/authActions.js","Reducers/ProjectCopy/ProjectCopy.js","Reducers/Login/Login.js","Reducers/ListCopy/ListCopy.js","Reducers/ExternalAPiCopy/ExternalApiCopy.js","Reducers/ActiveFilters/ActiveFilters.js","Reducers/index.js","Services/data/data.service.js","Utils/API/apiHelper.js","Utils/API/handle-reponse.js","Utils/dateHelper.js","app.js","index.js","reportWebVitals.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@firebase/auth/node_modules/tslib/tslib.es6.mjs","../node_modules/@firebase/auth/src/model/enum_maps.ts","../node_modules/@firebase/auth/src/core/errors.ts","../node_modules/@firebase/auth/src/core/util/log.ts","../node_modules/@firebase/auth/src/core/util/assert.ts","../node_modules/@firebase/auth/src/core/util/location.ts","../node_modules/@firebase/auth/src/core/util/delay.ts","../node_modules/@firebase/auth/src/core/util/navigator.ts","../node_modules/@firebase/auth/src/core/util/emulator.ts","../node_modules/@firebase/auth/src/core/util/fetch_provider.ts","../node_modules/@firebase/auth/src/api/errors.ts","../node_modules/@firebase/auth/src/api/index.ts","../node_modules/@firebase/auth/src/core/util/time.ts","../node_modules/@firebase/auth/src/core/user/id_token_result.ts","../node_modules/@firebase/auth/src/core/user/invalidation.ts","../node_modules/@firebase/auth/src/core/user/proactive_refresh.ts","../node_modules/@firebase/auth/src/core/user/user_metadata.ts","../node_modules/@firebase/auth/src/core/user/reload.ts","../node_modules/@firebase/auth/src/api/account_management/account.ts","../node_modules/@firebase/auth/src/core/user/token_manager.ts","../node_modules/@firebase/auth/src/api/authentication/token.ts","../node_modules/@firebase/auth/src/core/user/user_impl.ts","../node_modules/@firebase/auth/src/core/util/instantiator.ts","../node_modules/@firebase/auth/src/core/persistence/in_memory.ts","../node_modules/@firebase/auth/src/core/persistence/persistence_user_manager.ts","../node_modules/@firebase/auth/src/core/util/browser.ts","../node_modules/@firebase/auth/src/core/util/version.ts","../node_modules/@firebase/auth/src/api/authentication/recaptcha.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha.ts","../node_modules/@firebase/auth/src/platform_browser/load_js.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.ts","../node_modules/@firebase/auth/src/core/auth/middleware.ts","../node_modules/@firebase/auth/src/core/auth/auth_impl.ts","../node_modules/@firebase/auth/src/core/auth/emulator.ts","../node_modules/@firebase/auth/src/core/credentials/auth_credential.ts","../node_modules/@firebase/auth/src/api/account_management/email_and_password.ts","../node_modules/@firebase/auth/src/api/authentication/email_and_password.ts","../node_modules/@firebase/auth/src/core/credentials/email.ts","../node_modules/@firebase/auth/src/api/authentication/email_link.ts","../node_modules/@firebase/auth/src/api/authentication/idp.ts","../node_modules/@firebase/auth/src/core/credentials/oauth.ts","../node_modules/@firebase/auth/src/api/authentication/sms.ts","../node_modules/@firebase/auth/src/core/credentials/phone.ts","../node_modules/@firebase/auth/src/core/action_code_url.ts","../node_modules/@firebase/auth/src/core/providers/email.ts","../node_modules/@firebase/auth/src/core/providers/federated.ts","../node_modules/@firebase/auth/src/core/providers/oauth.ts","../node_modules/@firebase/auth/src/core/providers/facebook.ts","../node_modules/@firebase/auth/src/core/providers/google.ts","../node_modules/@firebase/auth/src/core/providers/github.ts","../node_modules/@firebase/auth/src/core/credentials/saml.ts","../node_modules/@firebase/auth/src/core/providers/saml.ts","../node_modules/@firebase/auth/src/core/providers/twitter.ts","../node_modules/@firebase/auth/src/api/authentication/sign_up.ts","../node_modules/@firebase/auth/src/core/user/user_credential_impl.ts","../node_modules/@firebase/auth/src/core/strategies/anonymous.ts","../node_modules/@firebase/auth/src/mfa/mfa_error.ts","../node_modules/@firebase/auth/src/core/util/providers.ts","../node_modules/@firebase/auth/src/core/user/link_unlink.ts","../node_modules/@firebase/auth/src/core/user/reauthenticate.ts","../node_modules/@firebase/auth/src/core/strategies/credential.ts","../node_modules/@firebase/auth/src/core/strategies/custom_token.ts","../node_modules/@firebase/auth/src/api/authentication/custom_token.ts","../node_modules/@firebase/auth/src/mfa/mfa_info.ts","../node_modules/@firebase/auth/src/core/strategies/action_code_settings.ts","../node_modules/@firebase/auth/src/core/strategies/email_and_password.ts","../node_modules/@firebase/auth/src/core/strategies/email_link.ts","../node_modules/@firebase/auth/src/core/strategies/email.ts","../node_modules/@firebase/auth/src/api/authentication/create_auth_uri.ts","../node_modules/@firebase/auth/src/core/user/account_info.ts","../node_modules/@firebase/auth/src/api/account_management/profile.ts","../node_modules/@firebase/auth/src/core/user/additional_user_info.ts","../node_modules/@firebase/auth/src/core/index.ts","../node_modules/@firebase/auth/src/mfa/mfa_session.ts","../node_modules/@firebase/auth/src/mfa/mfa_resolver.ts","../node_modules/@firebase/auth/src/mfa/mfa_user.ts","../node_modules/@firebase/auth/src/api/account_management/mfa.ts","../node_modules/@firebase/auth/src/core/persistence/index.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/browser.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/local_storage.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/session_storage.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/receiver.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/promise.ts","../node_modules/@firebase/auth/src/core/util/event_id.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/sender.ts","../node_modules/@firebase/auth/src/platform_browser/auth_window.ts","../node_modules/@firebase/auth/src/platform_browser/util/worker.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/indexed_db.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_mock.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_loader.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_verifier.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/phone.ts","../node_modules/@firebase/auth/src/api/authentication/mfa.ts","../node_modules/@firebase/auth/src/platform_browser/providers/phone.ts","../node_modules/@firebase/auth/src/core/util/resolver.ts","../node_modules/@firebase/auth/src/core/strategies/idp.ts","../node_modules/@firebase/auth/src/core/strategies/abstract_popup_redirect_operation.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/popup.ts","../node_modules/@firebase/auth/src/core/strategies/redirect.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/redirect.ts","../node_modules/@firebase/auth/src/core/auth/auth_event_manager.ts","../node_modules/@firebase/auth/src/api/project_config/get_project_config.ts","../node_modules/@firebase/auth/src/core/util/validate_origin.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/gapi.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/iframe.ts","../node_modules/@firebase/auth/src/platform_browser/util/popup.ts","../node_modules/@firebase/auth/src/core/util/handler.ts","../node_modules/@firebase/auth/src/platform_browser/popup_redirect.ts","../node_modules/@firebase/auth/src/mfa/mfa_assertion.ts","../node_modules/@firebase/auth/src/platform_browser/mfa/assertions/phone.ts","../node_modules/@firebase/auth/src/mfa/assertions/totp.ts","../node_modules/@firebase/auth/src/core/auth/firebase_internal.ts","../node_modules/@firebase/auth/src/platform_browser/index.ts","../node_modules/@firebase/auth/src/core/auth/initialize.ts","../node_modules/@firebase/auth/src/core/auth/register.ts","../node_modules/@firebase/util/src/constants.ts","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/deepCopy.ts","../node_modules/@firebase/util/src/defaults.ts","../node_modules/@firebase/util/src/global.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/query.ts","../node_modules/@firebase/util/src/subscribe.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@icons/material/CheckIcon.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/core/esm/Modal/ModalManager.js","../node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","../node_modules/@material-ui/core/esm/Modal/Modal.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/FormControl/formControlState.js","../node_modules/@material-ui/core/esm/FormControl/FormControlContext.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js","../node_modules/@material-ui/core/esm/InputBase/utils.js","../node_modules/@material-ui/core/esm/InputBase/InputBase.js","../node_modules/@material-ui/core/esm/Input/Input.js","../node_modules/@material-ui/core/esm/FilledInput/FilledInput.js","../node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js","../node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js","../node_modules/@material-ui/core/esm/FormControl/useFormControl.js","../node_modules/@material-ui/core/esm/FormLabel/FormLabel.js","../node_modules/@material-ui/core/esm/InputLabel/InputLabel.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/FormControl/FormControl.js","../node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js","../node_modules/@material-ui/core/esm/Popover/Popover.js","../node_modules/@material-ui/core/esm/List/ListContext.js","../node_modules/@material-ui/core/esm/List/List.js","../node_modules/@material-ui/core/esm/MenuList/MenuList.js","../node_modules/@material-ui/core/esm/Menu/Menu.js","../node_modules/@material-ui/core/esm/Select/SelectInput.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js","../node_modules/@material-ui/core/esm/Select/Select.js","../node_modules/@material-ui/core/esm/TextField/TextField.js","../node_modules/popper.js/src/utils/isBrowser.js","../node_modules/popper.js/src/utils/debounce.js","../node_modules/popper.js/src/utils/isFunction.js","../node_modules/popper.js/src/utils/getStyleComputedProperty.js","../node_modules/popper.js/src/utils/getParentNode.js","../node_modules/popper.js/src/utils/getScrollParent.js","../node_modules/popper.js/src/utils/getReferenceNode.js","../node_modules/popper.js/src/utils/isIE.js","../node_modules/popper.js/src/utils/getOffsetParent.js","../node_modules/popper.js/src/utils/getRoot.js","../node_modules/popper.js/src/utils/findCommonOffsetParent.js","../node_modules/popper.js/src/utils/isOffsetContainer.js","../node_modules/popper.js/src/utils/getScroll.js","../node_modules/popper.js/src/utils/getBordersSize.js","../node_modules/popper.js/src/utils/getWindowSizes.js","../node_modules/popper.js/src/utils/getClientRect.js","../node_modules/popper.js/src/utils/getBoundingClientRect.js","../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","../node_modules/popper.js/src/utils/includeScroll.js","../node_modules/popper.js/src/utils/isFixed.js","../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","../node_modules/popper.js/src/utils/getBoundaries.js","../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../node_modules/popper.js/src/utils/computeAutoPlacement.js","../node_modules/popper.js/src/utils/getReferenceOffsets.js","../node_modules/popper.js/src/utils/getOuterSizes.js","../node_modules/popper.js/src/utils/getOppositePlacement.js","../node_modules/popper.js/src/utils/getPopperOffsets.js","../node_modules/popper.js/src/utils/find.js","../node_modules/popper.js/src/utils/runModifiers.js","../node_modules/popper.js/src/utils/findIndex.js","../node_modules/popper.js/src/methods/update.js","../node_modules/popper.js/src/utils/isModifierEnabled.js","../node_modules/popper.js/src/utils/getSupportedPropertyName.js","../node_modules/popper.js/src/methods/destroy.js","../node_modules/popper.js/src/utils/getWindow.js","../node_modules/popper.js/src/utils/setupEventListeners.js","../node_modules/popper.js/src/methods/enableEventListeners.js","../node_modules/popper.js/src/methods/disableEventListeners.js","../node_modules/popper.js/src/utils/removeEventListeners.js","../node_modules/popper.js/src/utils/isNumeric.js","../node_modules/popper.js/src/utils/setStyles.js","../node_modules/popper.js/src/modifiers/computeStyle.js","../node_modules/popper.js/src/utils/isModifierRequired.js","../node_modules/popper.js/src/methods/placements.js","../node_modules/popper.js/src/utils/clockwise.js","../node_modules/popper.js/src/modifiers/flip.js","../node_modules/popper.js/src/modifiers/offset.js","../node_modules/popper.js/src/modifiers/index.js","../node_modules/popper.js/src/modifiers/shift.js","../node_modules/popper.js/src/modifiers/preventOverflow.js","../node_modules/popper.js/src/modifiers/keepTogether.js","../node_modules/popper.js/src/modifiers/arrow.js","../node_modules/popper.js/src/utils/getOppositeVariation.js","../node_modules/popper.js/src/modifiers/inner.js","../node_modules/popper.js/src/modifiers/hide.js","../node_modules/popper.js/src/utils/getRoundedOffsets.js","../node_modules/popper.js/src/modifiers/applyStyle.js","../node_modules/popper.js/src/utils/setAttributes.js","../node_modules/popper.js/src/methods/defaults.js","../node_modules/popper.js/src/index.js","../node_modules/@material-ui/core/esm/Popper/Popper.js","../node_modules/@material-ui/core/esm/Tooltip/Tooltip.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.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/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/@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/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/makeStyles.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@material-ui/core/esm/utils/getScrollbarSize.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/setRef.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/useIsFocusVisible.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/is-in-browser/dist/module.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.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/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/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/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/icons-material/esm/Cameraswitch.js","../node_modules/@mui/icons-material/esm/Circle.js","../node_modules/@mui/icons-material/esm/Close.js","../node_modules/@mui/icons-material/esm/Photo.js","../node_modules/@mui/icons-material/esm/PhotoCamera.js","../node_modules/@mui/icons-material/esm/QrCodeScanner.js","../node_modules/@mui/icons-material/esm/ReportProblem.js","../node_modules/@mui/icons-material/esm/Send.js","../node_modules/@mui/icons-material/esm/TableRows.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Autocomplete/autocompleteClasses.js","../node_modules/@mui/material/Autocomplete/Autocomplete.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Box/boxClasses.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createBox/createBox.js","../node_modules/@mui/material/useLazyRipple/useLazyRipple.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/internal/svg-icons/Cancel.js","../node_modules/@mui/material/Chip/chipClasses.js","../node_modules/@mui/material/Chip/Chip.js","../node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/material/node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/Fab/fabClasses.js","../node_modules/@mui/material/Fab/Fab.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/material/node_modules/@mui/system/esm/Grid/traverseBreakpoints.js","../node_modules/@mui/material/node_modules/@mui/system/esm/Grid/gridGenerator.js","../node_modules/@mui/material/node_modules/@mui/system/esm/Grid/createGrid.js","../node_modules/@mui/material/Grid2/Grid2.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@mui/material/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/LinearProgress/linearProgressClasses.js","../node_modules/@mui/material/LinearProgress/LinearProgress.js","../node_modules/@mui/material/ListItemIcon/ListItemIcon.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/ListItemText.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/@mui/material/Modal/ModalManager.js","../node_modules/@mui/material/Modal/useModal.js","../node_modules/@mui/material/Modal/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/Pagination/paginationClasses.js","../node_modules/@mui/material/PaginationItem/paginationItemClasses.js","../node_modules/@mui/material/internal/svg-icons/NavigateBefore.js","../node_modules/@mui/material/internal/svg-icons/NavigateNext.js","../node_modules/@mui/material/PaginationItem/PaginationItem.js","../node_modules/@mui/material/Pagination/Pagination.js","../node_modules/@mui/material/usePagination/usePagination.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@mui/material/Popper/popperClasses.js","../node_modules/@mui/material/Popper/BasePopper.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/material/Portal/Portal.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/Snackbar/useSnackbar.js","../node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js","../node_modules/@mui/material/SnackbarContent/SnackbarContent.js","../node_modules/@mui/material/Snackbar/snackbarClasses.js","../node_modules/@mui/material/Snackbar/Snackbar.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/@mui/material/TableBody/tableBodyClasses.js","../node_modules/@mui/material/TableBody/TableBody.js","../node_modules/@mui/material/TableCell/tableCellClasses.js","../node_modules/@mui/material/TableCell/TableCell.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableFooter/tableFooterClasses.js","../node_modules/@mui/material/TableFooter/TableFooter.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.js","../node_modules/@mui/material/TablePagination/TablePaginationActions.js","../node_modules/@mui/material/TablePagination/tablePaginationClasses.js","../node_modules/@mui/material/TablePagination/TablePagination.js","../node_modules/@mui/material/TableRow/tableRowClasses.js","../node_modules/@mui/material/TableRow/TableRow.js","../node_modules/@mui/material/Table/tableClasses.js","../node_modules/@mui/material/Table/Table.js","../node_modules/@mui/material/Table/TableContext.js","../node_modules/@mui/material/Table/Tablelvl2Context.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/getValidReactChildren/getValidReactChildren.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupButtonContext.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.js","../node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js","../node_modules/@mui/material/ToggleButton/ToggleButton.js","../node_modules/@mui/material/ToggleButton/toggleButtonClasses.js","../node_modules/@mui/material/Toolbar/toolbarClasses.js","../node_modules/@mui/material/Toolbar/Toolbar.js","../node_modules/@mui/material/Tooltip/tooltipClasses.js","../node_modules/@mui/material/Tooltip/Tooltip.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/internal/svg-icons/FirstPage.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/internal/svg-icons/LastPage.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/material/node_modules/@mui/styled-engine/index.js","../node_modules/@mui/material/node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/material/node_modules/@mui/system/esm/breakpoints/breakpoints.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/material/node_modules/@mui/system/esm/colorManipulator/colorManipulator.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createStyled/createStyled.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createBreakpoints/createBreakpoints.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssContainerQueries/cssContainerQueries.js","../node_modules/@mui/material/node_modules/@mui/system/esm/merge/merge.js","../node_modules/@mui/material/node_modules/@mui/system/esm/preprocessStyles.js","../node_modules/@mui/material/node_modules/@mui/system/esm/spacing/spacing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/memoize/memoize.js","../node_modules/@mui/material/node_modules/@mui/system/esm/compose/compose.js","../node_modules/@mui/material/node_modules/@mui/system/esm/borders/borders.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssGrid/cssGrid.js","../node_modules/@mui/material/node_modules/@mui/system/esm/palette/palette.js","../node_modules/@mui/material/node_modules/@mui/system/esm/sizing/sizing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/material/node_modules/@mui/system/esm/style/style.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styled/styled.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeWithoutDefault/useThemeWithoutDefault.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useTheme/useTheme.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/isFocusVisible/isFocusVisible.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/material/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@mui/material/node_modules/react-is/index.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssVars/createGetCssVar.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssVars/prepareTypographyVars.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssVars/cssVarsParser.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssVars/prepareCssVars.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/stringifyTheme.js","../node_modules/@mui/material/styles/createThemeNoVars.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/createColorScheme.js","../node_modules/@mui/material/styles/shouldSkipGeneratingVar.js","../node_modules/@mui/material/styles/excludeVariablesFromRoot.js","../node_modules/@mui/material/styles/createGetSelector.js","../node_modules/@mui/material/styles/createThemeWithVars.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssVars/getColorSchemeSelector.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/usePreviousProps/usePreviousProps.js","../node_modules/@mui/material/useAutocomplete/useAutocomplete.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createSimplePaletteValueFilter.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/utils/isHostComponent.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/material/node_modules/@mui/system/esm/memoTheme.js","../node_modules/@mui/material/utils/memoTheme.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/useSlot.js","../node_modules/@mui/material/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/zero-styled/index.js","../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/refType/refType.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfWeekYear/index.js","../node_modules/date-fns/esm/getWeekYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/startOfHour/index.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/@mui/x-date-pickers/AdapterDateFnsBase/AdapterDateFnsBase.js","../node_modules/@mui/x-date-pickers/AdapterDateFns/AdapterDateFns.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameHour/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addSeconds/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getMilliseconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/setDate/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setMilliseconds/index.js","../node_modules/date-fns/esm/getWeek/index.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/x-date-pickers/PickersLayout/PickersLayout.js","../node_modules/@mui/x-date-pickers/PickersLayout/pickersLayoutClasses.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/x-date-pickers/PickersShortcuts/PickersShortcuts.js","../node_modules/@mui/x-date-pickers/PickersLayout/usePickerLayout.js","../node_modules/@mui/x-date-pickers/PickersTextField/pickersTextFieldClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInputBase/pickersInputBaseClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersOutlinedInput/Outline.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/visuallyHidden/visuallyHidden.js","../node_modules/@mui/x-date-pickers/PickersSectionList/pickersSectionListClasses.js","../node_modules/@mui/x-date-pickers/PickersSectionList/PickersSectionList.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInputBase/PickersInputBase.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersFilledInput/pickersFilledInputClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersFilledInput/PickersFilledInput.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInput/pickersInputClasses.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersInput/PickersInput.js","../node_modules/@mui/x-date-pickers/PickersTextField/PickersTextField.js","../node_modules/@mui/x-date-pickers/DateCalendar/useIsDateDisabled.js","../node_modules/@mui/x-date-pickers/DateCalendar/useCalendarState.js","../node_modules/@mui/x-date-pickers/DateCalendar/pickersFadeTransitionGroupClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/PickersFadeTransitionGroup.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@mui/x-date-pickers/DateCalendar/pickersSlideTransitionClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/DateCalendar/dayCalendarClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/DayCalendar.js","../node_modules/@mui/x-date-pickers/MonthCalendar/pickersMonthClasses.js","../node_modules/@mui/x-date-pickers/MonthCalendar/PickersMonth.js","../node_modules/@mui/x-date-pickers/MonthCalendar/monthCalendarClasses.js","../node_modules/@mui/x-date-pickers/MonthCalendar/MonthCalendar.js","../node_modules/@mui/x-date-pickers/YearCalendar/pickersYearClasses.js","../node_modules/@mui/x-date-pickers/YearCalendar/PickersYear.js","../node_modules/@mui/x-date-pickers/YearCalendar/yearCalendarClasses.js","../node_modules/@mui/x-date-pickers/YearCalendar/YearCalendar.js","../node_modules/@mui/x-date-pickers/PickersCalendarHeader/pickersCalendarHeaderClasses.js","../node_modules/@mui/x-date-pickers/PickersCalendarHeader/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/DateCalendar/dateCalendarClasses.js","../node_modules/@mui/x-date-pickers/DateCalendar/DateCalendar.js","../node_modules/@mui/x-date-pickers/dateViewRenderers/dateViewRenderers.js","../node_modules/@mui/x-date-pickers/hooks/useClearableField.js","../node_modules/@mui/x-date-pickers/hooks/usePickersTranslations.js","../node_modules/@mui/x-date-pickers/hooks/useSplitFieldProps.js","../node_modules/@mui/x-date-pickers/icons/index.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/internals/components/PickersProvider.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarClasses.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/internals/hooks/defaultizedFieldProps.js","../node_modules/@mui/x-date-pickers/internals/hooks/useDefaultReduceAnimations.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/x-date-pickers/internals/components/pickersPopperClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/internals/hooks/useDesktopPicker/useDesktopPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/buildSectionsFromFormat.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldState.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldCharacterEditing.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldV7TextField.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldV6TextField.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.js","../node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.utils.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMobilePicker/useMobilePicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerValue.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerViews.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerLayoutProps.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerOwnerState.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/internals/hooks/useValueWithTimezone.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/internals/utils/getDefaultReferenceDate.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/internals/utils/valueManagers.js","../node_modules/@mui/x-date-pickers/internals/utils/views.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/validation/extractValidationProps.js","../node_modules/@mui/x-date-pickers/validation/useValidation.js","../node_modules/@mui/x-date-pickers/validation/validateDate.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/clsx/dist/clsx.m.js","../node_modules/date-fns/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/add/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInYears/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/intervalToDuration/index.js","../node_modules/date-fns/esm/differenceInHours/index.js","../node_modules/date-fns/esm/differenceInMinutes/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/devextreme-react/chart.js","../node_modules/devextreme-react/core/component-base.js","../node_modules/devextreme-react/core/component.js","../node_modules/devextreme-react/core/config.js","../node_modules/devextreme-react/core/configuration/comparer.js","../node_modules/devextreme-react/core/configuration/react/element.js","../node_modules/devextreme-react/core/configuration/react/templates.js","../node_modules/devextreme-react/core/configuration/react/tree.js","../node_modules/devextreme-react/core/configuration/tree.js","../node_modules/devextreme-react/core/configuration/utils.js","../node_modules/devextreme-react/core/dx-template.js","../node_modules/devextreme-react/core/extension-component.js","../node_modules/devextreme-react/core/helpers.js","../node_modules/devextreme-react/core/nested-option.js","../node_modules/devextreme-react/core/options-manager.js","../node_modules/devextreme-react/core/template-wrapper.js","../node_modules/devextreme-react/core/template.js","../node_modules/devextreme-react/core/templates-manager.js","../node_modules/devextreme-react/core/templates-renderer.js","../node_modules/devextreme-react/core/templates-store.js","../node_modules/devextreme-react/core/widget-config.js","../node_modules/devextreme-react/pie-chart.js","../node_modules/devextreme-react/range-selector.js","../node_modules/devextreme/esm/animation/frame.js","../node_modules/devextreme/esm/color.js","../node_modules/devextreme/esm/core/class.js","../node_modules/devextreme/esm/core/component_registrator_callbacks.js","../node_modules/devextreme/esm/core/component_registrator.js","../node_modules/devextreme/esm/core/config.js","../node_modules/devextreme/esm/core/utils/storage.js","../node_modules/devextreme/esm/core/devices.js","../node_modules/devextreme/esm/core/dom_adapter.js","../node_modules/devextreme/esm/core/element_data.js","../node_modules/devextreme/esm/core/errors.js","../node_modules/devextreme/esm/core/events_strategy.js","../node_modules/devextreme/esm/core/guid.js","../node_modules/devextreme/esm/core/memorized_callbacks.js","../node_modules/devextreme/esm/core/polyfills/promise.js","../node_modules/devextreme/esm/core/polyfills/weak_map.js","../node_modules/devextreme/esm/core/renderer_base.js","../node_modules/devextreme/esm/core/renderer.js","../node_modules/devextreme/esm/core/http_request.js","../node_modules/devextreme/esm/core/utils/ajax.js","../node_modules/devextreme/esm/core/utils/array.js","../node_modules/devextreme/esm/core/utils/browser.js","../node_modules/devextreme/esm/core/utils/call_once.js","../node_modules/devextreme/esm/core/utils/callbacks.js","../node_modules/devextreme/esm/core/utils/common.js","../node_modules/devextreme/esm/core/utils/console.js","../node_modules/devextreme/esm/core/utils/data.js","../node_modules/devextreme/esm/core/utils/date.js","../node_modules/devextreme/esm/core/utils/deferred.js","../node_modules/devextreme/esm/core/utils/dependency_injector.js","../node_modules/devextreme/esm/core/utils/dom.js","../node_modules/devextreme/esm/core/utils/error.js","../node_modules/devextreme/esm/core/utils/extend.js","../node_modules/devextreme/esm/core/utils/html_parser.js","../node_modules/devextreme/esm/core/utils/inflector.js","../node_modules/devextreme/esm/core/utils/iterator.js","../node_modules/devextreme/esm/core/utils/math.js","../node_modules/devextreme/esm/core/utils/object.js","../node_modules/devextreme/esm/core/utils/public_component.js","../node_modules/devextreme/esm/core/utils/ready_callbacks.js","../node_modules/devextreme/esm/core/utils/resize_callbacks.js","../node_modules/devextreme/esm/core/utils/size.js","../node_modules/devextreme/esm/core/utils/string.js","../node_modules/devextreme/esm/core/utils/style.js","../node_modules/devextreme/esm/core/utils/support.js","../node_modules/devextreme/esm/core/utils/svg.js","../node_modules/devextreme/esm/core/utils/type.js","../node_modules/devextreme/esm/core/utils/variable_wrapper.js","../node_modules/devextreme/esm/core/utils/view_port.js","../node_modules/devextreme/esm/core/utils/window.js","../node_modules/devextreme/esm/core/version.js","../node_modules/devextreme/esm/events/core/emitter.js","../node_modules/devextreme/esm/events/core/emitter_registrator.js","../node_modules/devextreme/esm/events/core/event_registrator.js","../node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","../node_modules/devextreme/esm/events/core/hook_touch_props.js","../node_modules/devextreme/esm/events/core/events_engine.js","../node_modules/devextreme/esm/events/core/wheel.js","../node_modules/devextreme/esm/events/gesture/emitter.gesture.js","../node_modules/devextreme/esm/events/drag.js","../node_modules/devextreme/esm/events/index.js","../node_modules/devextreme/esm/events/pointer/base.js","../node_modules/devextreme/esm/events/pointer/touch.js","../node_modules/devextreme/esm/events/pointer/observer.js","../node_modules/devextreme/esm/events/pointer/mouse.js","../node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","../node_modules/devextreme/esm/events/pointer.js","../node_modules/devextreme/esm/events/remove.js","../node_modules/devextreme/esm/events/utils/add_namespace.js","../node_modules/devextreme/esm/ui/widget/selectors.js","../node_modules/devextreme/esm/events/utils/index.js","../node_modules/devextreme/esm/format_helper.js","../node_modules/devextreme/esm/localization/cldr-data/parent_locales.js","../node_modules/devextreme/esm/localization/parentLocale.js","../node_modules/devextreme/esm/localization/core.js","../node_modules/devextreme/esm/localization/currency.js","../node_modules/devextreme/esm/localization/ldml/date.parser.js","../node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","../node_modules/devextreme/esm/localization/intl/date.js","../node_modules/devextreme/esm/localization/date.js","../node_modules/devextreme/esm/localization/default_date_names.js","../node_modules/devextreme/esm/localization/ldml/date.format.js","../node_modules/devextreme/esm/localization/ldml/date.formatter.js","../node_modules/devextreme/esm/localization/utils.js","../node_modules/devextreme/esm/localization/ldml/number.js","../node_modules/devextreme/esm/localization/open_xml_currency_format.js","../node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","../node_modules/devextreme/esm/localization/intl/number.js","../node_modules/devextreme/esm/localization/number.js","../node_modules/devextreme/esm/ui/widget/ui.errors.js","../node_modules/devextreme/esm/viz/axes/axes_constants.js","../node_modules/devextreme/esm/viz/axes/tick.js","../node_modules/devextreme/esm/viz/axes/datetime_breaks.js","../node_modules/devextreme/esm/viz/axes/xy_axes.js","../node_modules/devextreme/esm/viz/axes/axes_utils.js","../node_modules/devextreme/esm/viz/axes/polar_axes.js","../node_modules/devextreme/esm/viz/axes/base_axis.js","../node_modules/devextreme/esm/viz/axes/strip.js","../node_modules/devextreme/esm/viz/axes/constant_line.js","../node_modules/devextreme/esm/viz/axes/smart_formatter.js","../node_modules/devextreme/esm/viz/axes/tick_generator.js","../node_modules/devextreme/esm/viz/chart_components/multi_axes_synchronizer.js","../node_modules/devextreme/esm/viz/chart_components/advanced_chart.js","../node_modules/devextreme/esm/viz/chart_components/scroll_bar.js","../node_modules/devextreme/esm/viz/chart_components/crosshair.js","../node_modules/devextreme/esm/viz/chart_components/shutter_zoom.js","../node_modules/devextreme/esm/events/transform.js","../node_modules/devextreme/esm/viz/chart_components/zoom_and_pan.js","../node_modules/devextreme/esm/viz/chart.js","../node_modules/devextreme/esm/viz/utils.js","../node_modules/devextreme/esm/viz/components/legend.js","../node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","../node_modules/devextreme/esm/core/utils/version.js","../node_modules/devextreme/esm/events/click.js","../node_modules/devextreme/esm/viz/chart_components/tracker.js","../node_modules/devextreme/esm/viz/chart_components/base_chart.js","../node_modules/devextreme/esm/viz/chart_components/layout_manager.js","../node_modules/devextreme/esm/viz/components/chart_theme_manager.js","../node_modules/devextreme/esm/viz/components/consts.js","../node_modules/devextreme/esm/viz/components/data_validator.js","../node_modules/devextreme/esm/core/utils/date_serialization.js","../node_modules/devextreme/esm/viz/components/parse_utils.js","../node_modules/devextreme/esm/viz/core/annotations.js","../node_modules/devextreme/esm/viz/palette.js","../node_modules/devextreme/esm/viz/core/base_theme_manager.js","../node_modules/devextreme/esm/core/options/utils.js","../node_modules/devextreme/esm/core/options/option_manager.js","../node_modules/devextreme/esm/core/utils/comparator.js","../node_modules/devextreme/esm/core/options/index.js","../node_modules/devextreme/esm/core/action.js","../node_modules/devextreme/esm/core/postponed_operations.js","../node_modules/devextreme/esm/core/component.js","../node_modules/devextreme/esm/events/visibility_change.js","../node_modules/devextreme/esm/core/templates/template_base.js","../node_modules/devextreme/esm/core/templates/function_template.js","../node_modules/devextreme/esm/core/templates/empty_template.js","../node_modules/devextreme/esm/core/templates/child_default_template.js","../node_modules/devextreme/esm/core/templates/template_engine_registry.js","../node_modules/devextreme/esm/core/templates/template_engines.js","../node_modules/devextreme/esm/core/templates/template.js","../node_modules/devextreme/esm/core/utils/template_manager.js","../node_modules/devextreme/esm/core/template_manager.js","../node_modules/devextreme/esm/core/element.js","../node_modules/devextreme/esm/events/core/keyboard_processor.js","../node_modules/devextreme/esm/events/short.js","../node_modules/devextreme/esm/core/dom_component.js","../node_modules/devextreme/esm/viz/core/helpers.js","../node_modules/devextreme/esm/viz/core/errors_warnings.js","../node_modules/devextreme/esm/viz/core/layout.js","../node_modules/devextreme/esm/viz/core/base_widget.utils.js","../node_modules/devextreme/esm/viz/core/base_widget.js","../node_modules/devextreme/esm/data/utils.js","../node_modules/devextreme/esm/data/errors.js","../node_modules/devextreme/esm/data/array_utils.js","../node_modules/devextreme/esm/data/array_query.js","../node_modules/devextreme/esm/data/store_helper.js","../node_modules/devextreme/esm/data/abstract_store.js","../node_modules/devextreme/esm/data/custom_store.js","../node_modules/devextreme/esm/core/utils/queue.js","../node_modules/devextreme/esm/data/query_adapters.js","../node_modules/devextreme/esm/data/remote_query.js","../node_modules/devextreme/esm/data/query_implementation.js","../node_modules/devextreme/esm/data/query.js","../node_modules/devextreme/esm/data/array_store.js","../node_modules/devextreme/esm/data/data_source/utils.js","../node_modules/devextreme/esm/data/data_source/operation_manager.js","../node_modules/devextreme/esm/data/data_source/data_source.js","../node_modules/devextreme/esm/data_helper.js","../node_modules/devextreme/esm/viz/core/data_source.js","../node_modules/devextreme/esm/exporter/file_saver.js","../node_modules/devextreme/esm/localization/language_codes.js","../node_modules/devextreme/esm/exporter/excel_format_converter.js","../node_modules/devextreme/esm/exporter/excel/excel.tag_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.cell_alignment_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.color_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.pattern_fill_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.fill_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.font_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.cell_format_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.number_format_helper.js","../node_modules/devextreme/esm/exporter/excel/excel.file.js","../node_modules/devextreme/esm/exporter/excel_creator.js","../node_modules/devextreme/esm/exporter/image_creator.js","../node_modules/devextreme/esm/exporter/svg_creator.js","../node_modules/devextreme/esm/exporter/pdf_creator.js","../node_modules/devextreme/esm/exporter.js","../node_modules/devextreme/esm/localization/message.js","../node_modules/devextreme/esm/localization/default_messages.js","../node_modules/devextreme/esm/events/hover.js","../node_modules/devextreme/esm/viz/core/export.js","../node_modules/devextreme/esm/viz/core/layout_element.js","../node_modules/devextreme/esm/viz/core/loading_indicator.js","../node_modules/devextreme/esm/viz/core/plaque.js","../node_modules/devextreme/esm/viz/core/renderers/animation.js","../node_modules/devextreme/esm/viz/core/renderers/renderer.js","../node_modules/devextreme/esm/viz/core/series_family.js","../node_modules/devextreme/esm/viz/core/title.js","../node_modules/devextreme/esm/viz/core/tooltip.js","../node_modules/devextreme/esm/viz/core/utils.js","../node_modules/devextreme/esm/viz/translators/translator1d.js","../node_modules/devextreme/esm/viz/pie_chart.js","../node_modules/devextreme/esm/viz/range_selector/common.js","../node_modules/devextreme/esm/viz/range_selector/slider_marker.js","../node_modules/devextreme/esm/viz/range_selector/slider.js","../node_modules/devextreme/esm/viz/range_selector/sliders_controller.js","../node_modules/devextreme/esm/viz/range_selector/tracker.js","../node_modules/devextreme/esm/viz/range_selector/range_view.js","../node_modules/devextreme/esm/viz/range_selector/series_data_source.js","../node_modules/devextreme/esm/viz/range_selector/range_selector.js","../node_modules/devextreme/esm/viz/range_selector.js","../node_modules/devextreme/esm/viz/series/points/label.js","../node_modules/devextreme/esm/viz/series/points/symbol_point.js","../node_modules/devextreme/esm/viz/series/points/bar_point.js","../node_modules/devextreme/esm/viz/series/points/bubble_point.js","../node_modules/devextreme/esm/viz/series/points/pie_point.js","../node_modules/devextreme/esm/viz/series/points/range_symbol_point.js","../node_modules/devextreme/esm/viz/series/points/range_bar_point.js","../node_modules/devextreme/esm/viz/series/points/candlestick_point.js","../node_modules/devextreme/esm/viz/series/points/stock_point.js","../node_modules/devextreme/esm/viz/series/points/polar_point.js","../node_modules/devextreme/esm/viz/series/points/base_point.js","../node_modules/devextreme/esm/viz/series/scatter_series.js","../node_modules/devextreme/esm/viz/series/line_series.js","../node_modules/devextreme/esm/viz/series/area_series.js","../node_modules/devextreme/esm/viz/series/bar_series.js","../node_modules/devextreme/esm/viz/series/range_series.js","../node_modules/devextreme/esm/viz/series/bubble_series.js","../node_modules/devextreme/esm/viz/series/pie_series.js","../node_modules/devextreme/esm/viz/series/financial_series.js","../node_modules/devextreme/esm/viz/series/stacked_series.js","../node_modules/devextreme/esm/viz/series/base_series.js","../node_modules/devextreme/esm/viz/series/helpers/range_data_calculator.js","../node_modules/devextreme/esm/ui/themes.js","../node_modules/devextreme/esm/ui/themes_callback.js","../node_modules/devextreme/esm/viz/core/themes/generic.light.js","../node_modules/devextreme/esm/viz/core/themes/generic.carmine.js","../node_modules/devextreme/esm/viz/core/themes/generic.dark.js","../node_modules/devextreme/esm/viz/core/themes/generic.contrast.js","../node_modules/devextreme/esm/viz/core/themes/generic.darkmoon.js","../node_modules/devextreme/esm/viz/core/themes/generic.darkviolet.js","../node_modules/devextreme/esm/viz/core/themes/generic.greenmist.js","../node_modules/devextreme/esm/viz/core/themes/generic.softblue.js","../node_modules/devextreme/esm/viz/core/themes/material.js","../node_modules/devextreme/esm/viz/themes.js","../node_modules/devextreme/esm/viz/translators/range.js","../node_modules/devextreme/esm/viz/translators/category_translator.js","../node_modules/devextreme/esm/viz/translators/interval_translator.js","../node_modules/devextreme/esm/viz/translators/datetime_translator.js","../node_modules/devextreme/esm/viz/translators/logarithmic_translator.js","../node_modules/devextreme/esm/viz/translators/translator2d.js","../node_modules/exceljs/dist/exceljs.min.js","../node_modules/fault/index.js","../node_modules/file-saver/src/FileSaver.js","../node_modules/format/format.js","../node_modules/highlight.js/lib/core.js","../node_modules/highlight.js/lib/languages/1c.js","../node_modules/highlight.js/lib/languages/abnf.js","../node_modules/highlight.js/lib/languages/accesslog.js","../node_modules/highlight.js/lib/languages/actionscript.js","../node_modules/highlight.js/lib/languages/ada.js","../node_modules/highlight.js/lib/languages/angelscript.js","../node_modules/highlight.js/lib/languages/apache.js","../node_modules/highlight.js/lib/languages/applescript.js","../node_modules/highlight.js/lib/languages/arcade.js","../node_modules/highlight.js/lib/languages/arduino.js","../node_modules/highlight.js/lib/languages/armasm.js","../node_modules/highlight.js/lib/languages/asciidoc.js","../node_modules/highlight.js/lib/languages/aspectj.js","../node_modules/highlight.js/lib/languages/autohotkey.js","../node_modules/highlight.js/lib/languages/autoit.js","../node_modules/highlight.js/lib/languages/avrasm.js","../node_modules/highlight.js/lib/languages/awk.js","../node_modules/highlight.js/lib/languages/axapta.js","../node_modules/highlight.js/lib/languages/bash.js","../node_modules/highlight.js/lib/languages/basic.js","../node_modules/highlight.js/lib/languages/bnf.js","../node_modules/highlight.js/lib/languages/brainfuck.js","../node_modules/highlight.js/lib/languages/c-like.js","../node_modules/highlight.js/lib/languages/c.js","../node_modules/highlight.js/lib/languages/cal.js","../node_modules/highlight.js/lib/languages/capnproto.js","../node_modules/highlight.js/lib/languages/ceylon.js","../node_modules/highlight.js/lib/languages/clean.js","../node_modules/highlight.js/lib/languages/clojure-repl.js","../node_modules/highlight.js/lib/languages/clojure.js","../node_modules/highlight.js/lib/languages/cmake.js","../node_modules/highlight.js/lib/languages/coffeescript.js","../node_modules/highlight.js/lib/languages/coq.js","../node_modules/highlight.js/lib/languages/cos.js","../node_modules/highlight.js/lib/languages/cpp.js","../node_modules/highlight.js/lib/languages/crmsh.js","../node_modules/highlight.js/lib/languages/crystal.js","../node_modules/highlight.js/lib/languages/csharp.js","../node_modules/highlight.js/lib/languages/csp.js","../node_modules/highlight.js/lib/languages/css.js","../node_modules/highlight.js/lib/languages/d.js","../node_modules/highlight.js/lib/languages/dart.js","../node_modules/highlight.js/lib/languages/delphi.js","../node_modules/highlight.js/lib/languages/diff.js","../node_modules/highlight.js/lib/languages/django.js","../node_modules/highlight.js/lib/languages/dns.js","../node_modules/highlight.js/lib/languages/dockerfile.js","../node_modules/highlight.js/lib/languages/dos.js","../node_modules/highlight.js/lib/languages/dsconfig.js","../node_modules/highlight.js/lib/languages/dts.js","../node_modules/highlight.js/lib/languages/dust.js","../node_modules/highlight.js/lib/languages/ebnf.js","../node_modules/highlight.js/lib/languages/elixir.js","../node_modules/highlight.js/lib/languages/elm.js","../node_modules/highlight.js/lib/languages/erb.js","../node_modules/highlight.js/lib/languages/erlang-repl.js","../node_modules/highlight.js/lib/languages/erlang.js","../node_modules/highlight.js/lib/languages/excel.js","../node_modules/highlight.js/lib/languages/fix.js","../node_modules/highlight.js/lib/languages/flix.js","../node_modules/highlight.js/lib/languages/fortran.js","../node_modules/highlight.js/lib/languages/fsharp.js","../node_modules/highlight.js/lib/languages/gams.js","../node_modules/highlight.js/lib/languages/gauss.js","../node_modules/highlight.js/lib/languages/gcode.js","../node_modules/highlight.js/lib/languages/gherkin.js","../node_modules/highlight.js/lib/languages/glsl.js","../node_modules/highlight.js/lib/languages/gml.js","../node_modules/highlight.js/lib/languages/go.js","../node_modules/highlight.js/lib/languages/golo.js","../node_modules/highlight.js/lib/languages/gradle.js","../node_modules/highlight.js/lib/languages/groovy.js","../node_modules/highlight.js/lib/languages/haml.js","../node_modules/highlight.js/lib/languages/handlebars.js","../node_modules/highlight.js/lib/languages/haskell.js","../node_modules/highlight.js/lib/languages/haxe.js","../node_modules/highlight.js/lib/languages/hsp.js","../node_modules/highlight.js/lib/languages/htmlbars.js","../node_modules/highlight.js/lib/languages/http.js","../node_modules/highlight.js/lib/languages/hy.js","../node_modules/highlight.js/lib/languages/inform7.js","../node_modules/highlight.js/lib/languages/ini.js","../node_modules/highlight.js/lib/languages/irpf90.js","../node_modules/highlight.js/lib/languages/isbl.js","../node_modules/highlight.js/lib/languages/java.js","../node_modules/highlight.js/lib/languages/javascript.js","../node_modules/highlight.js/lib/languages/jboss-cli.js","../node_modules/highlight.js/lib/languages/json.js","../node_modules/highlight.js/lib/languages/julia-repl.js","../node_modules/highlight.js/lib/languages/julia.js","../node_modules/highlight.js/lib/languages/kotlin.js","../node_modules/highlight.js/lib/languages/lasso.js","../node_modules/highlight.js/lib/languages/latex.js","../node_modules/highlight.js/lib/languages/ldif.js","../node_modules/highlight.js/lib/languages/leaf.js","../node_modules/highlight.js/lib/languages/less.js","../node_modules/highlight.js/lib/languages/lisp.js","../node_modules/highlight.js/lib/languages/livecodeserver.js","../node_modules/highlight.js/lib/languages/livescript.js","../node_modules/highlight.js/lib/languages/llvm.js","../node_modules/highlight.js/lib/languages/lsl.js","../node_modules/highlight.js/lib/languages/lua.js","../node_modules/highlight.js/lib/languages/makefile.js","../node_modules/highlight.js/lib/languages/markdown.js","../node_modules/highlight.js/lib/languages/mathematica.js","../node_modules/highlight.js/lib/languages/matlab.js","../node_modules/highlight.js/lib/languages/maxima.js","../node_modules/highlight.js/lib/languages/mel.js","../node_modules/highlight.js/lib/languages/mercury.js","../node_modules/highlight.js/lib/languages/mipsasm.js","../node_modules/highlight.js/lib/languages/mizar.js","../node_modules/highlight.js/lib/languages/mojolicious.js","../node_modules/highlight.js/lib/languages/monkey.js","../node_modules/highlight.js/lib/languages/moonscript.js","../node_modules/highlight.js/lib/languages/n1ql.js","../node_modules/highlight.js/lib/languages/nginx.js","../node_modules/highlight.js/lib/languages/nim.js","../node_modules/highlight.js/lib/languages/nix.js","../node_modules/highlight.js/lib/languages/node-repl.js","../node_modules/highlight.js/lib/languages/nsis.js","../node_modules/highlight.js/lib/languages/objectivec.js","../node_modules/highlight.js/lib/languages/ocaml.js","../node_modules/highlight.js/lib/languages/openscad.js","../node_modules/highlight.js/lib/languages/oxygene.js","../node_modules/highlight.js/lib/languages/parser3.js","../node_modules/highlight.js/lib/languages/perl.js","../node_modules/highlight.js/lib/languages/pf.js","../node_modules/highlight.js/lib/languages/pgsql.js","../node_modules/highlight.js/lib/languages/php-template.js","../node_modules/highlight.js/lib/languages/php.js","../node_modules/highlight.js/lib/languages/plaintext.js","../node_modules/highlight.js/lib/languages/pony.js","../node_modules/highlight.js/lib/languages/powershell.js","../node_modules/highlight.js/lib/languages/processing.js","../node_modules/highlight.js/lib/languages/profile.js","../node_modules/highlight.js/lib/languages/prolog.js","../node_modules/highlight.js/lib/languages/properties.js","../node_modules/highlight.js/lib/languages/protobuf.js","../node_modules/highlight.js/lib/languages/puppet.js","../node_modules/highlight.js/lib/languages/purebasic.js","../node_modules/highlight.js/lib/languages/python-repl.js","../node_modules/highlight.js/lib/languages/python.js","../node_modules/highlight.js/lib/languages/q.js","../node_modules/highlight.js/lib/languages/qml.js","../node_modules/highlight.js/lib/languages/r.js","../node_modules/highlight.js/lib/languages/reasonml.js","../node_modules/highlight.js/lib/languages/rib.js","../node_modules/highlight.js/lib/languages/roboconf.js","../node_modules/highlight.js/lib/languages/routeros.js","../node_modules/highlight.js/lib/languages/rsl.js","../node_modules/highlight.js/lib/languages/ruby.js","../node_modules/highlight.js/lib/languages/ruleslanguage.js","../node_modules/highlight.js/lib/languages/rust.js","../node_modules/highlight.js/lib/languages/sas.js","../node_modules/highlight.js/lib/languages/scala.js","../node_modules/highlight.js/lib/languages/scheme.js","../node_modules/highlight.js/lib/languages/scilab.js","../node_modules/highlight.js/lib/languages/scss.js","../node_modules/highlight.js/lib/languages/shell.js","../node_modules/highlight.js/lib/languages/smali.js","../node_modules/highlight.js/lib/languages/smalltalk.js","../node_modules/highlight.js/lib/languages/sml.js","../node_modules/highlight.js/lib/languages/sqf.js","../node_modules/highlight.js/lib/languages/sql.js","../node_modules/highlight.js/lib/languages/sql_more.js","../node_modules/highlight.js/lib/languages/stan.js","../node_modules/highlight.js/lib/languages/stata.js","../node_modules/highlight.js/lib/languages/step21.js","../node_modules/highlight.js/lib/languages/stylus.js","../node_modules/highlight.js/lib/languages/subunit.js","../node_modules/highlight.js/lib/languages/swift.js","../node_modules/highlight.js/lib/languages/taggerscript.js","../node_modules/highlight.js/lib/languages/tap.js","../node_modules/highlight.js/lib/languages/tcl.js","../node_modules/highlight.js/lib/languages/thrift.js","../node_modules/highlight.js/lib/languages/tp.js","../node_modules/highlight.js/lib/languages/twig.js","../node_modules/highlight.js/lib/languages/typescript.js","../node_modules/highlight.js/lib/languages/vala.js","../node_modules/highlight.js/lib/languages/vbnet.js","../node_modules/highlight.js/lib/languages/vbscript-html.js","../node_modules/highlight.js/lib/languages/vbscript.js","../node_modules/highlight.js/lib/languages/verilog.js","../node_modules/highlight.js/lib/languages/vhdl.js","../node_modules/highlight.js/lib/languages/vim.js","../node_modules/highlight.js/lib/languages/x86asm.js","../node_modules/highlight.js/lib/languages/xl.js","../node_modules/highlight.js/lib/languages/xml.js","../node_modules/highlight.js/lib/languages/xquery.js","../node_modules/highlight.js/lib/languages/yaml.js","../node_modules/highlight.js/lib/languages/zephir.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","../node_modules/jszip/dist/jszip.min.js","../node_modules/lighten-darken-color/component/colorshade.js","../node_modules/lighten-darken-color/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/eq.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/map.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/lowlight/index.js","../node_modules/lowlight/lib/core.js","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/arrow-down-a-z.ts","../node_modules/lucide-react/src/icons/arrow-left.ts","../node_modules/lucide-react/src/icons/arrow-right.ts","../node_modules/lucide-react/src/icons/badge-check.ts","../node_modules/lucide-react/src/icons/badge-minus.ts","../node_modules/lucide-react/src/icons/braces.ts","../node_modules/lucide-react/src/icons/calendar-clock.ts","../node_modules/lucide-react/src/icons/calendar-plus.ts","../node_modules/lucide-react/src/icons/camera.ts","../node_modules/lucide-react/src/icons/chart-no-axes-column.ts","../node_modules/lucide-react/src/icons/check.ts","../node_modules/lucide-react/src/icons/chevron-down.ts","../node_modules/lucide-react/src/icons/chevron-first.ts","../node_modules/lucide-react/src/icons/chevron-last.ts","../node_modules/lucide-react/src/icons/chevron-left.ts","../node_modules/lucide-react/src/icons/chevron-right.ts","../node_modules/lucide-react/src/icons/chevron-up.ts","../node_modules/lucide-react/src/icons/circle-alert.ts","../node_modules/lucide-react/src/icons/circle-check.ts","../node_modules/lucide-react/src/icons/circle-help.ts","../node_modules/lucide-react/src/icons/circle-off.ts","../node_modules/lucide-react/src/icons/circle.ts","../node_modules/lucide-react/src/icons/clipboard-copy.ts","../node_modules/lucide-react/src/icons/corner-down-right.ts","../node_modules/lucide-react/src/icons/diamond-plus.ts","../node_modules/lucide-react/src/icons/ellipsis-vertical.ts","../node_modules/lucide-react/src/icons/eye-off.ts","../node_modules/lucide-react/src/icons/eye.ts","../node_modules/lucide-react/src/icons/factory.ts","../node_modules/lucide-react/src/icons/grip-vertical.ts","../node_modules/lucide-react/src/icons/image.ts","../node_modules/lucide-react/src/icons/info.ts","../node_modules/lucide-react/src/icons/key.ts","../node_modules/lucide-react/src/icons/layout-grid.ts","../node_modules/lucide-react/src/icons/link.ts","../node_modules/lucide-react/src/icons/list.ts","../node_modules/lucide-react/src/icons/lock.ts","../node_modules/lucide-react/src/icons/map-pin.ts","../node_modules/lucide-react/src/icons/menu.ts","../node_modules/lucide-react/src/icons/minus.ts","../node_modules/lucide-react/src/icons/pencil.ts","../node_modules/lucide-react/src/icons/plus.ts","../node_modules/lucide-react/src/icons/printer.ts","../node_modules/lucide-react/src/icons/qr-code.ts","../node_modules/lucide-react/src/icons/receipt-euro.ts","../node_modules/lucide-react/src/icons/refresh-ccw.ts","../node_modules/lucide-react/src/icons/rotate-ccw.ts","../node_modules/lucide-react/src/icons/save.ts","../node_modules/lucide-react/src/icons/scan-barcode.ts","../node_modules/lucide-react/src/icons/search.ts","../node_modules/lucide-react/src/icons/send.ts","../node_modules/lucide-react/src/icons/share.ts","../node_modules/lucide-react/src/icons/switch-camera.ts","../node_modules/lucide-react/src/icons/text-cursor-input.ts","../node_modules/lucide-react/src/icons/timer.ts","../node_modules/lucide-react/src/icons/trash-2.ts","../node_modules/lucide-react/src/icons/triangle-alert.ts","../node_modules/lucide-react/src/icons/x.ts","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qr.js/lib/8BitByte.js","../node_modules/qr.js/lib/BitBuffer.js","../node_modules/qr.js/lib/ErrorCorrectLevel.js","../node_modules/qr.js/lib/Polynomial.js","../node_modules/qr.js/lib/QRCode.js","../node_modules/qr.js/lib/RSBlock.js","../node_modules/qr.js/lib/math.js","../node_modules/qr.js/lib/mode.js","../node_modules/qr.js/lib/util.js","../node_modules/qrcode.react/lib/index.js","../node_modules/use-memo-one/dist/use-memo-one.esm.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/css-box-model/dist/css-box-model.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/raf-schd/dist/raf-schd.esm.js","../node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js","../node_modules/react-calendly/dist/index.es.js","../node_modules/goober/dist/goober.modern.js","../node_modules/react-cssfx-loading/src/BarWave.tsx","../node_modules/react-cssfx-loading/src/BouncingBalls.tsx","../node_modules/react-cssfx-loading/src/CircularProgress.tsx","../node_modules/react-cssfx-loading/src/Coin.tsx","../node_modules/react-cssfx-loading/src/FadingBalls.tsx","../node_modules/react-cssfx-loading/src/FadingDots.tsx","../node_modules/react-cssfx-loading/src/FillingBottle.tsx","../node_modules/react-cssfx-loading/src/FlippingSquare.tsx","../node_modules/react-cssfx-loading/src/Hypnosis.tsx","../node_modules/react-cssfx-loading/src/Messaging.tsx","../node_modules/react-cssfx-loading/src/Ring.tsx","../node_modules/react-cssfx-loading/src/Spin.tsx","../node_modules/react-cssfx-loading/src/SpinStretch.tsx","../node_modules/react-cssfx-loading/src/TwinSpin.tsx","../node_modules/react-csv/index.js","../node_modules/react-csv/lib/components/Download.js","../node_modules/react-csv/lib/components/Link.js","../node_modules/react-csv/lib/core.js","../node_modules/react-csv/lib/index.js","../node_modules/react-csv/lib/metaProps.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha.js","../node_modules/react-async-script/lib/esm/async-script-loader.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","../node_modules/react-google-recaptcha/lib/esm/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/ts-custom-error/dist/src/utils.js","../node_modules/ts-custom-error/dist/src/custom-error.js","../node_modules/@zxing/library/esm/core/Exception.js","../node_modules/@zxing/library/esm/core/ArgumentException.js","../node_modules/@zxing/library/esm/core/IllegalArgumentException.js","../node_modules/@zxing/library/esm/core/BinaryBitmap.js","../node_modules/@zxing/library/esm/core/ChecksumException.js","../node_modules/@zxing/library/esm/core/Binarizer.js","../node_modules/@zxing/library/esm/core/util/System.js","../node_modules/@zxing/library/esm/core/IndexOutOfBoundsException.js","../node_modules/@zxing/library/esm/core/ArrayIndexOutOfBoundsException.js","../node_modules/@zxing/library/esm/core/util/Arrays.js","../node_modules/@zxing/library/esm/core/util/Integer.js","../node_modules/@zxing/library/esm/core/common/BitArray.js","../node_modules/@zxing/library/esm/core/DecodeHintType.js","../node_modules/@zxing/library/esm/core/FormatException.js","../node_modules/@zxing/library/esm/core/common/CharacterSetECI.js","../node_modules/@zxing/library/esm/core/UnsupportedOperationException.js","../node_modules/@zxing/library/esm/core/util/StringEncoding.js","../node_modules/@zxing/library/esm/core/common/StringUtils.js","../node_modules/@zxing/library/esm/core/util/StringBuilder.js","../node_modules/@zxing/library/esm/core/common/BitMatrix.js","../node_modules/@zxing/library/esm/core/NotFoundException.js","../node_modules/@zxing/library/esm/core/common/GlobalHistogramBinarizer.js","../node_modules/@zxing/library/esm/core/common/HybridBinarizer.js","../node_modules/@zxing/library/esm/core/LuminanceSource.js","../node_modules/@zxing/library/esm/core/InvertedLuminanceSource.js","../node_modules/@zxing/library/esm/browser/HTMLCanvasElementLuminanceSource.js","../node_modules/@zxing/library/esm/browser/VideoInputDevice.js","../node_modules/@zxing/library/esm/browser/BrowserCodeReader.js","../node_modules/@zxing/library/esm/core/Result.js","../node_modules/@zxing/library/esm/core/BarcodeFormat.js","../node_modules/@zxing/library/esm/core/ResultMetadataType.js","../node_modules/@zxing/library/esm/core/common/DecoderResult.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/AbstractGenericGF.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/GenericGFPoly.js","../node_modules/@zxing/library/esm/core/ArithmeticException.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/GenericGF.js","../node_modules/@zxing/library/esm/core/ReedSolomonException.js","../node_modules/@zxing/library/esm/core/IllegalStateException.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/ReedSolomonDecoder.js","../node_modules/@zxing/library/esm/core/aztec/decoder/Decoder.js","../node_modules/@zxing/library/esm/core/common/detector/MathUtils.js","../node_modules/@zxing/library/esm/core/util/Float.js","../node_modules/@zxing/library/esm/core/ResultPoint.js","../node_modules/@zxing/library/esm/core/common/DetectorResult.js","../node_modules/@zxing/library/esm/core/aztec/AztecDetectorResult.js","../node_modules/@zxing/library/esm/core/common/detector/WhiteRectangleDetector.js","../node_modules/@zxing/library/esm/core/common/GridSampler.js","../node_modules/@zxing/library/esm/core/common/PerspectiveTransform.js","../node_modules/@zxing/library/esm/core/common/DefaultGridSampler.js","../node_modules/@zxing/library/esm/core/common/GridSamplerInstance.js","../node_modules/@zxing/library/esm/core/aztec/detector/Detector.js","../node_modules/@zxing/library/esm/core/aztec/AztecReader.js","../node_modules/@zxing/library/esm/browser/BrowserAztecCodeReader.js","../node_modules/@zxing/library/esm/core/oned/OneDReader.js","../node_modules/@zxing/library/esm/core/oned/Code128Reader.js","../node_modules/@zxing/library/esm/core/oned/Code39Reader.js","../node_modules/@zxing/library/esm/core/oned/Code93Reader.js","../node_modules/@zxing/library/esm/core/oned/ITFReader.js","../node_modules/@zxing/library/esm/core/oned/AbstractUPCEANReader.js","../node_modules/@zxing/library/esm/core/oned/UPCEANExtension5Support.js","../node_modules/@zxing/library/esm/core/oned/UPCEANExtension2Support.js","../node_modules/@zxing/library/esm/core/oned/UPCEANExtensionSupport.js","../node_modules/@zxing/library/esm/core/oned/UPCEANReader.js","../node_modules/@zxing/library/esm/core/oned/EAN13Reader.js","../node_modules/@zxing/library/esm/core/oned/EAN8Reader.js","../node_modules/@zxing/library/esm/core/oned/UPCAReader.js","../node_modules/@zxing/library/esm/core/oned/UPCEReader.js","../node_modules/@zxing/library/esm/core/oned/MultiFormatUPCEANReader.js","../node_modules/@zxing/library/esm/core/oned/CodaBarReader.js","../node_modules/@zxing/library/esm/core/oned/rss/AbstractRSSReader.js","../node_modules/@zxing/library/esm/core/oned/rss/DataCharacter.js","../node_modules/@zxing/library/esm/core/oned/rss/FinderPattern.js","../node_modules/@zxing/library/esm/core/oned/rss/RSSUtils.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/BitArrayBuilder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/BlockParsedResult.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedObject.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedChar.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedInformation.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedNumeric.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/FieldParser.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/GeneralAppIdDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AbstractExpandedDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01decoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01AndOtherAIs.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AnyAIDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01weightDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI013x0xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI013103decoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01320xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01392xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01393xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI013x0x1xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/ExpandedPair.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/ExpandedRow.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/RSSExpandedReader.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AbstractExpandedDecoderComplement.js","../node_modules/@zxing/library/esm/core/oned/rss/Pair.js","../node_modules/@zxing/library/esm/core/oned/rss/RSS14Reader.js","../node_modules/@zxing/library/esm/core/oned/MultiFormatOneDReader.js","../node_modules/@zxing/library/esm/browser/BrowserBarcodeReader.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/Version.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/BitMatrixParser.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/DataBlock.js","../node_modules/@zxing/library/esm/core/common/BitSource.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/DecodedBitStreamParser.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/Decoder.js","../node_modules/@zxing/library/esm/core/datamatrix/detector/Detector.js","../node_modules/@zxing/library/esm/core/datamatrix/DataMatrixReader.js","../node_modules/@zxing/library/esm/browser/BrowserDatamatrixCodeReader.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/ErrorCorrectionLevel.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/FormatInformation.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/ECBlocks.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/ECB.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/Version.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/DataMask.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/BitMatrixParser.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/DataBlock.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/Mode.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/DecodedBitStreamParser.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/QRCodeDecoderMetaData.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/Decoder.js","../node_modules/@zxing/library/esm/core/qrcode/detector/AlignmentPattern.js","../node_modules/@zxing/library/esm/core/qrcode/detector/AlignmentPatternFinder.js","../node_modules/@zxing/library/esm/core/qrcode/detector/FinderPattern.js","../node_modules/@zxing/library/esm/core/qrcode/detector/FinderPatternInfo.js","../node_modules/@zxing/library/esm/core/qrcode/detector/FinderPatternFinder.js","../node_modules/@zxing/library/esm/core/qrcode/detector/Detector.js","../node_modules/@zxing/library/esm/core/qrcode/QRCodeReader.js","../node_modules/@zxing/library/esm/core/pdf417/PDF417Common.js","../node_modules/@zxing/library/esm/core/pdf417/detector/PDF417DetectorResult.js","../node_modules/@zxing/library/esm/core/pdf417/detector/Detector.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ModulusPoly.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ModulusBase.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ModulusGF.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ErrorCorrection.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/BoundingBox.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/BarcodeMetadata.js","../node_modules/@zxing/library/esm/core/util/Formatter.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DetectionResultColumn.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/BarcodeValue.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DetectionResultRowIndicatorColumn.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DetectionResult.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/Codeword.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/PDF417CodewordDecoder.js","../node_modules/@zxing/library/esm/core/pdf417/PDF417ResultMetadata.js","../node_modules/@zxing/library/esm/core/util/Long.js","../node_modules/@zxing/library/esm/core/NullPointerException.js","../node_modules/@zxing/library/esm/core/util/OutputStream.js","../node_modules/@zxing/library/esm/core/OutOfMemoryError.js","../node_modules/@zxing/library/esm/core/util/ByteArrayOutputStream.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DecodedBitStreamParser.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/PDF417ScanningDecoder.js","../node_modules/@zxing/library/esm/core/pdf417/PDF417Reader.js","../node_modules/@zxing/library/esm/core/ReaderException.js","../node_modules/@zxing/library/esm/core/MultiFormatReader.js","../node_modules/@zxing/library/esm/browser/BrowserMultiFormatReader.js","../node_modules/@zxing/library/esm/core/EncodeHintType.js","../node_modules/@zxing/library/esm/browser/BrowserPDF417Reader.js","../node_modules/@zxing/library/esm/browser/BrowserQRCodeReader.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/ReedSolomonEncoder.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/MaskUtil.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/ByteMatrix.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/QRCode.js","../node_modules/@zxing/library/esm/core/WriterException.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/MatrixUtil.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/BlockPair.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/Encoder.js","../node_modules/@zxing/library/esm/browser/BrowserQRCodeSvgWriter.js","../node_modules/@zxing/library/esm/core/qrcode/QRCodeWriter.js","../node_modules/@zxing/library/esm/core/MultiFormatWriter.js","../node_modules/@zxing/library/esm/core/PlanarYUVLuminanceSource.js","../node_modules/@zxing/library/esm/core/RGBLuminanceSource.js","../node_modules/@zxing/library/esm/core/util/Charset.js","../node_modules/@zxing/library/esm/core/util/StandardCharsets.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/DefaultPlacement.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/constants.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/ErrorCorrection.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/ASCIIEncoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/Base256Encoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/C40Encoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/EdifactEncoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/SymbolInfo.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/EncoderContext.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/X12Encoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/TextEncoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/HighLevelEncoder.js","../node_modules/@zxing/library/esm/core/common/ECIEncoderSet.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/MinimalEncoder.js","../node_modules/@zxing/library/esm/core/common/MinimalECIInput.js","../node_modules/@zxing/library/esm/core/datamatrix/DataMatrixWriter.js","../node_modules/@zxing/library/esm/core/aztec/encoder/AztecCode.js","../node_modules/@zxing/library/esm/core/util/Collections.js","../node_modules/@zxing/library/esm/core/aztec/encoder/Token.js","../node_modules/@zxing/library/esm/core/aztec/encoder/SimpleToken.js","../node_modules/@zxing/library/esm/core/aztec/encoder/BinaryShiftToken.js","../node_modules/@zxing/library/esm/core/aztec/encoder/TokenHelpers.js","../node_modules/@zxing/library/esm/core/aztec/encoder/EncoderConstants.js","../node_modules/@zxing/library/esm/core/aztec/encoder/LatchTable.js","../node_modules/@zxing/library/esm/core/aztec/encoder/ShiftTable.js","../node_modules/@zxing/library/esm/core/aztec/encoder/State.js","../node_modules/@zxing/library/esm/core/aztec/encoder/CharMap.js","../node_modules/@zxing/library/esm/core/aztec/encoder/HighLevelEncoder.js","../node_modules/@zxing/library/esm/core/aztec/encoder/Encoder.js","../node_modules/@zxing/library/esm/core/aztec/AztecWriter.js","../node_modules/react-qr-barcode-scanner/dist/BarcodeScannerComponent.js","../node_modules/react-qr-barcode-scanner/dist/index.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-toastify/src/utils/propValidator.ts","../node_modules/react-toastify/src/utils/constant.ts","../node_modules/react-toastify/src/utils/cssTransition.tsx","../node_modules/react-toastify/src/utils/collapseToast.ts","../node_modules/react-toastify/src/core/eventManager.ts","../node_modules/react-toastify/src/hooks/useToastContainer.ts","../node_modules/react-toastify/src/hooks/useToast.ts","../node_modules/react-toastify/src/components/CloseButton.tsx","../node_modules/react-toastify/src/components/ProgressBar.tsx","../node_modules/react-toastify/src/components/Icons.tsx","../node_modules/react-toastify/src/components/Toast.tsx","../node_modules/react-toastify/src/components/Transitions.tsx","../node_modules/react-toastify/src/components/ToastContainer.tsx","../node_modules/react-toastify/src/core/toast.tsx","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../Webcam/webpack/universalModuleDefinition","../Webcam/webpack/bootstrap","../Webcam/src/react-webcam.tsx","../Webcam/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/reactcss/lib/index.js","../node_modules/reactcss/lib/loop.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/redux-devtools-extension/index.js","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","../node_modules/redux-persist/es/integration/react.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../external module \"https:/cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenLite.min.js\"","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.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/@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/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@devexpress/dx-core/src/utils.ts","../node_modules/@devexpress/dx-core/src/plugin-host.ts","../node_modules/@devexpress/dx-core/src/event-emitter.ts","../node_modules/@devexpress/dx-core/src/shallow-equal.ts","../node_modules/@devexpress/dx-core/src/memoize.ts","../node_modules/@devexpress/dx-core/src/easings.ts","../node_modules/@devexpress/dx-core/src/messages-formatter.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-grouping/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grid-core/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/sorting-state/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/sorting-state/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/utils/merge-sort.ts","../node_modules/@devexpress/dx-grid-core/src/utils/hierarchical-data.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-sorting/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/filtering-state/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/filtering-state/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/filtering-state/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-filtering/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grouping-state/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grouping-state/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grouping-state/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-grouping/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-grouping/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grouping-panel/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/paging-state/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-paging/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-paging/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/paging-panel/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/utils/common-reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/selection-state/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-selection/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/editing-state/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-reordering/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-reordering/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-reordering/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-resizing/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-resizing/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-resizing/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-edit-column/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-edit-row/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-header-row/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-edit-column/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-edit-column/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-edit-row/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-edit-row/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-inline-cell-editing/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-filter-row/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-filter-row/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-filter-row/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-group-row/constants.ts","../node_modules/@devexpress/dx-grid-core/src/utils/virtual-table.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-group-row/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-group-row/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-header-row/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-header-row/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-band-header/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-band-header/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/virtual-table-state/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/virtual-table-state/utils.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-band-header/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-row-detail/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-row-detail/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-row-detail/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-selection/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-selection/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-selection/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/utils/column-extension.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-visibility/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-column-visibility/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/column-chooser/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/column-chooser/reducers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-tree-column/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/custom-tree-data/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/data-type-provider/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-fixed-columns/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-fixed-columns/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-fixed-columns/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/integrated-summary/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-summary-row/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-summary-row/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-summary-row/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/summary-state/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-keyboard-navigation/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/table-keyboard-navigation/computeds.ts","../node_modules/@devexpress/dx-grid-core/src/utils/column-geometries.ts","../node_modules/@devexpress/dx-grid-core/src/utils/table.ts","../node_modules/@devexpress/dx-grid-core/src/utils/group-panel.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/virtual-table/utils.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/virtual-table/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/virtual-table/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grid-exporter/constants.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grid-exporter/helpers.ts","../node_modules/@devexpress/dx-grid-core/src/plugins/grid-exporter/computeds.ts","../node_modules/@devexpress/dx-react-core/src/plugin-based/contexts.ts","../node_modules/@devexpress/dx-react-core/src/plugin-based/plugin-indexer.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/constants.ts","../node_modules/@devexpress/dx-react-core/src/utils/with-props-from-context.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/plugin.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/template-placeholder.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/plugin-host.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/helpers.ts","../node_modules/@devexpress/dx-react-core/src/plugin-based/action.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/getter.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/template.tsx","../node_modules/@devexpress/dx-react-core/src/plugin-based/template-connector.tsx","../node_modules/@devexpress/dx-react-core/src/draggable/gesture-cover.ts","../node_modules/@devexpress/dx-react-core/src/draggable/shared-events.ts","../node_modules/@devexpress/dx-react-core/src/draggable/touch-strategy.ts","../node_modules/@devexpress/dx-react-core/src/draggable/selection-utils.ts","../node_modules/@devexpress/dx-react-core/src/draggable/mouse-strategy.ts","../node_modules/@devexpress/dx-react-core/src/ref-holder.tsx","../node_modules/@devexpress/dx-react-core/src/draggable.tsx","../node_modules/@devexpress/dx-react-core/src/drag-drop/context.ts","../node_modules/@devexpress/dx-react-core/src/drag-drop/provider.tsx","../node_modules/@devexpress/dx-react-core/src/drag-drop/source.tsx","../node_modules/@devexpress/dx-react-core/src/drag-drop/target.tsx","../node_modules/@devexpress/dx-react-core/src/sizer.tsx","../node_modules/@devexpress/dx-react-core/src/utils/state-helper.ts","../node_modules/@devexpress/dx-react-core/src/utils/with-components.tsx","../node_modules/@devexpress/dx-react-core/src/utils/ref-type.ts","../node_modules/@devexpress/dx-react-grid/src/plugins/internal/table-group-row-columns.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/internal/grid-core-getters.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/internal/table-columns-getter.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/internal/visible-table-columns.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/internal/ordered-table-columns.tsx","../node_modules/@devexpress/dx-react-grid/src/components/summary/constants.ts","../node_modules/@devexpress/dx-react-grid-export/src/plugins/grid-exporter-core.tsx","../node_modules/@devexpress/dx-react-grid-export/src/plugins/helpers.ts","../node_modules/@devexpress/dx-react-grid-export/src/plugins/grid-exporter.tsx","../node_modules/@mui/material/internal/svg-icons/ArrowDownward.js","../node_modules/@mui/material/TableSortLabel/tableSortLabelClasses.js","../node_modules/@mui/material/TableSortLabel/TableSortLabel.js","../node_modules/@mui/icons-material/esm/VisibilityOff.js","../node_modules/@mui/icons-material/esm/ChevronLeft.js","../node_modules/@mui/icons-material/esm/ChevronRight.js","../node_modules/@mui/icons-material/esm/ExpandMore.js","../node_modules/@mui/icons-material/esm/ExpandLess.js","../node_modules/@mui/icons-material/esm/Search.js","../node_modules/@mui/icons-material/esm/List.js","../node_modules/@mui/icons-material/esm/Save.js","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/layout.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/grid.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/column-chooser/overlay.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/column-chooser/item.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/utils/with-patched-props.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/column-chooser.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/column-chooser/container.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/drag-drop.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/drag-drop-provider.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/paging-panel/page-size-selector.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/constants.js","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/paging-panel/pager.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/paging-panel.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/group-panel-container.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/group-panel-item.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/group-panel-empty-message.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/grouping-panel.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-detail-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-row-detail.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/content.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/utils.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/container.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/indent-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/inline-summary.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-group-cell/summary-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-summary-item.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-group-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-select-all-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-select-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/utils/get-selection-color.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-select-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-selection.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-parts.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-layout.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-stub-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-no-data-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-container.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-stub-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-skeleton-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/virtual-table-layout.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/virtual-table.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-filter-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/filter-row/editor.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/filter-row/filter-selector.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/filter-row/filter-selector/toggle-button.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-filter-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-header-cell/resizing-control.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-header-cell/cell-layout.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-header-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-header-cell/sort-label.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-header-cell/title.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-header-cell/content.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-header-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-band-header/cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-band-header/banded-header-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-band-header/invisible-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-band-header/row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-band-header.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-edit-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-edit-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-edit-command-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-edit-column.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/empty-message.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-reordering-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-column-visibility.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-invisible-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-column-reordering.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-column-resizing.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/toolbar/toolbar.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/toolbar.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/toolbar/flexible-space.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-tree-checkbox.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-tree-indent.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-tree-content.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-tree-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-tree-column.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/search-panel.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-fixed-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-listener-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-fixed-columns.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-summary-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-inline-cell-editing.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/export-panel/menu.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/export-panel/menu-item.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/export-panel.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-focus-cell.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/templates/table-focus-row.jsx","../node_modules/@devexpress/dx-react-grid-material-ui/src/plugins/table-keyboard-navigation.jsx","../node_modules/@devexpress/dx-react-grid/src/plugins/grid-core.tsx","../node_modules/@devexpress/dx-react-grid/src/grid.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/column-chooser.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/filtering-state.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/integrated-filtering.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/paging-state.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/integrated-paging.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/grouping-state.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/integrated-grouping.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/selection-state.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/integrated-selection.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/sorting-state.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/integrated-sorting.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/drag-drop-provider.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-column-reordering.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-selection.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-row-detail.tsx","../node_modules/@devexpress/dx-react-grid/src/components/summary/table-summary-content.tsx","../node_modules/@devexpress/dx-react-grid/src/components/summary/group-summaries.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-group-row.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-header-row.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-band-header.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-filter-row.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-edit-row.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-edit-column.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-column-resizing.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/paging-panel.tsx","../node_modules/@devexpress/dx-react-grid/src/components/group-panel-layout/item-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/components/group-panel-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/grouping-panel.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/data-type-provider.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-column-visibility.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/toolbar.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-tree-column.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/search-panel.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-fixed-columns.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/summary-state.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/integrated-summary.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-summary-row.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-inline-cell-editing.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/export-panel.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/table-keyboard-navigation.tsx","../node_modules/@devexpress/dx-react-grid/src/utils/helpers.ts","../node_modules/@devexpress/dx-react-grid/src/components/table-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/virtual-row-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/virtual-table-layout-block.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/column-group.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/virtual-table-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/row-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/rows-block-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/components/table-layout/static-table-layout.tsx","../node_modules/@devexpress/dx-react-grid/src/plugins/virtual-table/virtual-table.tsx","../node_modules/@devexpress/dx-react-grid/src/utils/with-keyboard-navigation.tsx","../node_modules/@devexpress/dx-react-grid/src/components/summary/inline-summary-item.tsx","../node_modules/@firebase/app-compat/src/firebaseApp.ts","../node_modules/@firebase/app-compat/src/errors.ts","../node_modules/@firebase/app-compat/src/firebaseNamespace.ts","../node_modules/@firebase/app-compat/src/firebaseNamespaceCore.ts","../node_modules/@firebase/app-compat/src/logger.ts","../node_modules/@firebase/app-compat/src/index.ts","../node_modules/@firebase/app-compat/src/registerCoreComponents.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/@mui/material/node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/x-date-pickers/node_modules/clsx/dist/clsx.mjs","../node_modules/firebase/app/index.ts","../node_modules/firebase/compat/app/index.ts","../node_modules/@firebase/auth/src/platform_cordova/plugins.ts","../node_modules/@firebase/auth/src/platform_cordova/popup_redirect/utils.ts","../node_modules/@firebase/auth/src/platform_cordova/popup_redirect/events.ts","../node_modules/@firebase/auth/src/platform_cordova/popup_redirect/popup_redirect.ts","../node_modules/@firebase/auth-compat/src/platform.ts","../node_modules/@firebase/auth-compat/src/persistence.ts","../node_modules/@firebase/auth-compat/src/popup_redirect.ts","../node_modules/@firebase/auth-compat/src/wrap.ts","../node_modules/@firebase/auth-compat/src/user_credential.ts","../node_modules/@firebase/auth-compat/src/user.ts","../node_modules/@firebase/auth-compat/src/auth.ts","../node_modules/@firebase/auth/internal/index.ts","../node_modules/@firebase/auth-compat/src/phone_auth_provider.ts","../node_modules/@firebase/auth-compat/src/recaptcha_verifier.ts","../node_modules/@firebase/auth-compat/index.ts","../node_modules/jwt-decode/build/esm/index.js","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../webpack/bootstrap","../webpack/runtime/async module","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDataList(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 60 60\",\n style: {\n enableBackground: \"new 0 0 60 60\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0.5v59h60v-59H0z M58,57.5H2v-55h56V57.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26,14.5h22c0.552,0,1-0.447,1-1s-0.448-1-1-1H26c-0.552,0-1,0.447-1,1S25.448,14.5,26,14.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26,30.5h22c0.552,0,1-0.447,1-1s-0.448-1-1-1H26c-0.552,0-1,0.447-1,1S25.448,30.5,26,30.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26,46.5h22c0.552,0,1-0.447,1-1s-0.448-1-1-1H26c-0.552,0-1,0.447-1,1S25.448,46.5,26,46.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,13.5c0.256,0,0.512-0.098,0.707-0.293L15,10.914V13.5v5c0,0.553,0.448,1,1,1s1-0.447,1-1v-5v-5 c0-0.13-0.027-0.26-0.077-0.382c-0.101-0.245-0.296-0.44-0.541-0.541c-0.244-0.101-0.52-0.101-0.764,0 c-0.123,0.051-0.233,0.124-0.326,0.217l-3.999,3.999c-0.391,0.391-0.391,1.023,0,1.414C11.488,13.402,11.744,13.5,12,13.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5,27.5c0,0.553,0.448,1,1,1s1-0.447,1-1c0-1.103,0.897-2,2.034-2c0.828,0.014,1.194,0.628,1.313,0.892 c0.214,0.476,0.263,1.194-0.242,1.783l-4.542,5.299c-0.312,0.362-0.384,0.877-0.185,1.312s0.637,0.715,1.115,0.715H18 c0.552,0,1-0.447,1-1s-0.448-1-1-1h-3.326l3.449-4.024c0.932-1.087,1.142-2.584,0.547-3.905c-0.565-1.255-1.754-2.048-3.17-2.07 C13.294,23.5,11.5,25.294,11.5,27.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15,39.5h-2c-0.552,0-1,0.447-1,1s0.448,1,1,1h2c0.827,0,1.5,0.673,1.5,1.5s-0.673,1.5-1.5,1.5h-2c-0.552,0-1,0.447-1,1 s0.448,1,1,1h2c0.827,0,1.5,0.673,1.5,1.5s-0.673,1.5-1.5,1.5h-2c-0.552,0-1,0.447-1,1s0.448,1,1,1h2c1.93,0,3.5-1.57,3.5-3.5 c0-0.979-0.403-1.864-1.053-2.5c0.649-0.636,1.053-1.521,1.053-2.5C18.5,41.07,16.93,39.5,15,39.5z\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDataList);\nexport default __webpack_public_path__ + \"static/media/DataList.1b480f64027ae0e4536f04af6e9e3cc0.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16, _g17, _g18, _g19;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBarcodeScanner(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\n enableBackground: \"new 0 0 512 512\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.905,102.63C134.963,77.406,59.887,96.486,24.977,122.743C9.523,134.366,0.657,148.207,0,162.133 c0,19.823,16.521,39.057,40.354,48.154C16.572,283.631,3.934,390.972,0,469.333C0,493.261,26.24,512,59.733,512h85.333 c4.71,0,8.533-3.814,8.533-8.533v-34.133c0-4.719-3.823-8.533-8.533-8.533c-18.586,0-33.758-18.671-34.125-41.788l25.404-118.554 c0.589-2.748-0.213-5.615-2.142-7.654c-0.802-0.845-1.365-1.783-2.065-2.671H153.6c2.799,0,5.419-1.374,7.014-3.678 c1.596-2.304,1.954-5.231,0.981-7.851c-3.661-9.771-0.265-37.905,17.084-60.262l5.239,2.62c1.826,0.896,3.9,1.143,5.888,0.64 l34.133-8.533c3.251-0.811,5.726-3.448,6.323-6.75l17.067-93.867C248.141,107.998,245.325,103.68,240.905,102.63z M35.234,136.388 c21.026-15.812,58.573-28.621,110.549-28.621c10.598,0,21.914,0.657,33.69,1.809c-0.077,0.461-0.273,0.87-0.273,1.357 c0,23.125-31.266,42.667-68.267,42.667H19.695C22.639,147.823,27.947,141.867,35.234,136.388z M94.054,416.341 c-0.128,0.589-0.188,1.195-0.188,1.792c0,29.542,18.483,54.153,42.667,58.897v17.903h-76.8c-23.125,0-42.667-11.725-42.675-25.173 c0.29-5.692,0.631-11.571,1.016-17.544c13.705-0.29,26.863-6.443,37.137-17.476c16.213-17.417,23.876-44.74,21.589-76.663 c-0.555-14.14,4.344-27.332,13.79-37.154c7.561-7.868,17.664-12.902,26.829-13.576L94.054,416.341z M143.369,273.067h-18.645 c-1.647-10.513,0.708-21.47,4.736-30.216c6.912-14.985,18.534-25.284,31.147-28.442 C147.337,234.539,142.327,257.246,143.369,273.067z M171.102,196.275c-23.066-1.289-45.551,14.302-57.131,39.433 c-8.823,19.14-9.037,38.955-1.425,55.014c-12.262,1.843-24.67,8.38-34.261,18.355c-12.689,13.201-19.277,30.831-18.526,49.929 c1.963,27.426-4.087,50.185-17.041,64.094c-6.682,7.177-14.942,11.213-23.441,11.844c5.692-74.931,18.449-165.615,39.979-227.337 c0.785-2.253,0.597-4.727-0.529-6.835c-1.126-2.099-3.081-3.644-5.393-4.233c-16.64-4.301-29.833-14.746-34.415-25.873h92.015 c27.793,0,52.343,11.025,62.848,26.317C172.919,196.642,172.032,196.326,171.102,196.275z M214.451,197.862l-19.627,4.907 c-4.275-17.365-18.765-31.974-39.322-40.636c24.363-10.257,40.363-28.834,40.695-50.526c10.59,1.493,21.453,3.311,32.87,5.82 L214.451,197.862z\"\n })))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M452.267,0c-4.71,0-8.533,3.814-8.533,8.533s3.823,8.533,8.533,8.533c17.818,0,42.667,55.194,42.667,145.067 S470.084,307.2,452.267,307.2c-4.71,0-8.533,3.814-8.533,8.533s3.823,8.533,8.533,8.533c38.801,0,59.733-83.533,59.733-162.133 S491.068,0,452.267,0z\"\n })))), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M384,34.133c-4.71,0-8.533,3.814-8.533,8.533S379.29,51.2,384,51.2c20.181,0,42.667,45.559,42.667,110.933 S404.181,273.067,384,273.067c-4.71,0-8.533,3.814-8.533,8.533c0,4.719,3.823,8.533,8.533,8.533 c34.057,0,59.733-55.023,59.733-128S418.057,34.133,384,34.133z\"\n })))), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M315.733,68.267c-4.71,0-8.533,3.814-8.533,8.533s3.823,8.533,8.533,8.533c23.125,0,42.667,35.166,42.667,76.8 c0,41.634-19.541,76.8-42.667,76.8c-4.71,0-8.533,3.814-8.533,8.533s3.823,8.533,8.533,8.533 c33.493,0,59.733-41.233,59.733-93.867S349.227,68.267,315.733,68.267z\"\n })))), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)), _g17 || (_g17 = /*#__PURE__*/React.createElement(\"g\", null)), _g18 || (_g18 = /*#__PURE__*/React.createElement(\"g\", null)), _g19 || (_g19 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarcodeScanner);\nexport default __webpack_public_path__ + \"static/media/barcodeScanner.f4fbb7badeaab64acb786c1fc9571d8c.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCamera(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 60 60\",\n style: {\n enableBackground: \"new 0 0 60 60\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.201,15.5h-8.524l-4-10H17.323l-4,10H12v-5H6v5H4.799C2.152,15.5,0,17.652,0,20.299v29.368 C0,52.332,2.168,54.5,4.833,54.5h50.334c2.665,0,4.833-2.168,4.833-4.833V20.299C60,17.652,57.848,15.5,55.201,15.5z M8,12.5h2v3H8 V12.5z M58,49.667c0,1.563-1.271,2.833-2.833,2.833H4.833C3.271,52.5,2,51.229,2,49.667V20.299C2,18.756,3.256,17.5,4.799,17.5H6h6 h2.677l4-10h22.646l4,10h9.878c1.543,0,2.799,1.256,2.799,2.799V49.667z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30,14.5c-9.925,0-18,8.075-18,18s8.075,18,18,18s18-8.075,18-18S39.925,14.5,30,14.5z M30,48.5c-8.822,0-16-7.178-16-16 s7.178-16,16-16s16,7.178,16,16S38.822,48.5,30,48.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30,20.5c-6.617,0-12,5.383-12,12s5.383,12,12,12s12-5.383,12-12S36.617,20.5,30,20.5z M30,42.5c-5.514,0-10-4.486-10-10 s4.486-10,10-10s10,4.486,10,10S35.514,42.5,30,42.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52,19.5c-2.206,0-4,1.794-4,4s1.794,4,4,4s4-1.794,4-4S54.206,19.5,52,19.5z M52,25.5c-1.103,0-2-0.897-2-2s0.897-2,2-2 s2,0.897,2,2S53.103,25.5,52,25.5z\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCamera);\nexport default __webpack_public_path__ + \"static/media/camera.aed164bc884a21a96efcec60b486c654.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSquares(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"15.000000pt\",\n height: \"15.000000pt\",\n viewBox: \"0 0 355.000000 356.000000\",\n preserveAspectRatio: \"xMidYMid meet\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.000000,356.000000) scale(0.100000,-0.100000)\",\n fill: \"rgba(0, 0, 0, 0.54)\",\n stroke: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50 2735 l0 -765 765 0 765 0 0 765 0 765 -765 0 -765 0 0 -765z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1980 2735 l0 -765 765 0 765 0 0 765 0 765 -765 0 -765 0 0 -765z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50 805 l0 -765 765 0 765 0 0 765 0 765 -765 0 -765 0 0 -765z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1980 805 l0 -765 765 0 765 0 0 765 0 765 -765 0 -765 0 0 -765z\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSquares);\nexport default __webpack_public_path__ + \"static/media/squares.e54c3eae8ca0a753f0ec55725fc28c0e.svg\";\nexport { ForwardRef as ReactComponent };","var _metadata, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPie(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 1000 1000\",\n enableBackground: \"new 0 0 1000 1000\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _metadata || (_metadata = /*#__PURE__*/React.createElement(\"metadata\", null, \" Svg Vector Icons : http://www.onlinewebfonts.com/icon \")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.000000,512.000000) scale(0.100000,-0.100000)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5129,5051.1l-48.7-46.7V2637V269.7L5129,223c27.3-29.2,70.1-48.7,103.2-48.7c79.8,0,3734,2739.2,3753.5,2815.1c7.8,27.3,3.9,70.1-7.8,93.4c-37,81.8-309.6,391.3-537.3,611.3c-790.4,759.3-1804.7,1242.1-2893,1376.4C5218.6,5111.5,5185.5,5109.5,5129,5051.1z M5722.8,4727.9C6532.7,4591.6,7290,4249,7942.2,3723.4c247.3-198.6,689.2-650.2,660-675.5c-3.9-3.9-728.1-547.1-1608.1-1207L5391.9,641.5v2063.6v2063.6h46.7C5463.9,4768.8,5592.4,4751.3,5722.8,4727.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4340.6,4533.2c-1072.7-107.1-2090.9-591.8-2861.8-1360.8c-381.6-379.6-652.2-761.2-897.5-1255.7C230.8,1206.1,79,509.1,102.3-283.2c21.4-724.2,169.4-1323.8,482.8-1956.6c467.2-942.3,1195.4-1670.4,2129.8-2131.8c477-235.6,903.3-369.9,1421.2-449.7c323.2-48.7,1018.2-50.6,1329.7,0c455.6,70.1,897.5,200.5,1298.5,381.6c366,165.5,443.9,231.7,414.7,346.5c-5.8,17.5-572.4,903.3-1259.6,1968.2L4671.6-187.8v2318.7v2320.6l-42.8,38.9C4566.4,4546.9,4531.4,4550.8,4340.6,4533.2z M4360.1,1971.2V-283.2l1216.7-1884.5c669.7-1037.7,1216.8-1892.3,1216.8-1900.1c0-9.7-58.4-42.8-130.4-75.9c-1491.3-683.3-3204.5-500.3-4512.7,482.8c-776.8,584-1366.7,1469.9-1606.1,2408.2c-83.7,336.8-116.8,574.3-130.4,950c-17.5,496.4,35,916.9,169.4,1384.2c371.8,1277.1,1353,2355.7,2597.1,2850.2c334.9,132.4,782.6,245.3,1156.4,290.1C4354.2,4223.7,4360.1,3762.3,4360.1,1971.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7163.5,1157.4C6141.4,392.3,5284.8-256,5261.4-283.2c-25.3-29.2-44.8-70.1-44.8-95.4c0-50.6,2369.3-3736,2447.2-3804.1c75.9-68.1,140.2-44.8,354.3,128.5C9011-3252.1,9661.3-2107.4,9861.8-808.8c50.6,323.2,50.6,1109.7,2,1421.2c-97.3,613.3-253.1,1103.9-514,1612c-136.3,266.7-185,325.1-264.8,325.1C9032.4,2549.4,8699.5,2306.1,7163.5,1157.4z M9118.1,1990.7c459.4-922.8,597.7-2075.3,369.9-3099.4c-208.3-930.6-681.4-1779.4-1353-2425.7c-101.2-97.3-220-204.4-264.8-239.5l-79.8-62.3L6698.2-2144.4C6098.6-1213.8,5604.1-442.9,5602.1-431.2c-3.9,17.5,3395.3,2587.3,3424.5,2591.2C9030.5,2160.1,9069.4,2084.1,9118.1,1990.7z\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPie);\nexport default __webpack_public_path__ + \"static/media/Pie.41cda26a27e89cd8ceded966437f17f7.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCamera(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"35px\",\n height: \"35px\",\n viewBox: \"0 0 60 60\",\n style: {\n enableBackground: \"new 0 0 60 60\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.201,15.5h-8.524l-4-10H17.323l-4,10H12v-5H6v5H4.799C2.152,15.5,0,17.652,0,20.299v29.368 C0,52.332,2.168,54.5,4.833,54.5h50.334c2.665,0,4.833-2.168,4.833-4.833V20.299C60,17.652,57.848,15.5,55.201,15.5z M8,12.5h2v3H8 V12.5z M58,49.667c0,1.563-1.271,2.833-2.833,2.833H4.833C3.271,52.5,2,51.229,2,49.667V20.299C2,18.756,3.256,17.5,4.799,17.5H6h6 h2.677l4-10h22.646l4,10h9.878c1.543,0,2.799,1.256,2.799,2.799V49.667z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30,14.5c-9.925,0-18,8.075-18,18s8.075,18,18,18s18-8.075,18-18S39.925,14.5,30,14.5z M30,48.5c-8.822,0-16-7.178-16-16 s7.178-16,16-16s16,7.178,16,16S38.822,48.5,30,48.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30,20.5c-6.617,0-12,5.383-12,12s5.383,12,12,12s12-5.383,12-12S36.617,20.5,30,20.5z M30,42.5c-5.514,0-10-4.486-10-10 s4.486-10,10-10s10,4.486,10,10S35.514,42.5,30,42.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52,19.5c-2.206,0-4,1.794-4,4s1.794,4,4,4s4-1.794,4-4S54.206,19.5,52,19.5z M52,25.5c-1.103,0-2-0.897-2-2s0.897-2,2-2 s2,0.897,2,2S53.103,25.5,52,25.5z\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCamera);\nexport default __webpack_public_path__ + \"static/media/camera.0b5040aa3b70dd70fd7991fb9a600161.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from 'react';\r\nimport firebase from 'firebase/compat/app';\r\nimport 'firebase/compat/auth';\r\nimport { useDispatch } from 'react-redux';\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { format, intervalToDuration } from 'date-fns';\r\nimport { logoutUser } from './Reducers/authActions'; // Import your logoutUser action\r\nimport { store } from './index'; // Import store (redux)\r\n\r\n\r\nconst AuthObserver = (props) => {\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n checkTokenExpiration();\r\n\r\n // Set up an interval to periodically check and refresh the token (e.g., every 5 minutes)\r\n const tokenCheckInterval = setInterval(() => {\r\n checkTokenExpiration();\r\n }, 5 * 60 * 1000); // every 5 minutes\r\n\r\n // Clear the interval when the component is unmounted\r\n\r\n return () => clearInterval(tokenCheckInterval);\r\n\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const checkTokenExpiration = async () => {\r\n const currentTimestamp = Math.floor(Date.now() / 1000);\r\n var userToken = props.Login.userToken;\r\n if (props.Login !== null && props.Login !== undefined) {\r\n const tokenExpiration = jwtDecode(userToken).exp;\r\n var diff = (tokenExpiration - currentTimestamp) * 1000;\r\n const duration = intervalToDuration({ start: 0, end: diff });\r\n const hours = duration !== null && duration !== undefined && duration.hours !== null && duration.hours !== undefined ? duration.hours.toString().padStart(2, '0') : \"0\";\r\n const minutes = duration !== null && duration !== undefined && duration.hours !== null && duration.minutes !== undefined ? duration.minutes.toString().padStart(2, '0') : \"0\";\r\n const seconds = duration !== null && duration !== undefined && duration.hours !== null && duration.seconds !== undefined ? duration.seconds.toString().padStart(2, '0') : \"0\";\r\n var formattedDuration = hours + ':' + minutes + ':' + seconds;\r\n\r\n console.log(format(new Date(), 'HH:mm:ss'), ' --> tokenExpiration ', tokenExpiration, ' - currentTimestamp ', currentTimestamp, '(Token expires in: ' + formattedDuration + ' )');\r\n\r\n //Check if the token expires in 6 minutes --> If so refresh\r\n if (!userToken || tokenExpiration < currentTimestamp + 360) {\r\n await dispatch(refreshToken());\r\n }\r\n }\r\n\r\n };\r\n\r\n\r\n const refreshToken = () => async (dispatch, getState) => {\r\n try {\r\n const user = firebase.auth().currentUser;\r\n\r\n if (user) {\r\n const newToken = await user.getIdToken(/* forceRefresh */ true);\r\n props.actions.setUserToken(newToken);\r\n return newToken;\r\n } else {\r\n // Handle the case when the user is not authenticated\r\n if (!window.location.pathname.toLocaleLowerCase().includes('login') && !window.location.pathname.toLocaleLowerCase().includes('/measure')) {\r\n // User is signed out\r\n // logout();\r\n store.dispatch(logoutUser());\r\n\r\n } return null;\r\n }\r\n } catch (error) {\r\n console.error('Error refreshing token:', error);\r\n // Handle the error, maybe logout the user\r\n if (!window.location.pathname.toLocaleLowerCase().includes('login') && !window.location.pathname.toLocaleLowerCase().includes('/measure')) {\r\n // User is signed out\r\n // logout();\r\n store.dispatch(logoutUser());\r\n\r\n }\r\n return null;\r\n }\r\n };\r\n\r\n return (\r\n \r\n {/* {console.log('FireBase-User Logged In: ', firebase.auth().currentUser !== null && firebase.auth().currentUser !== undefined)} */}\r\n \r\n );\r\n};\r\n\r\nexport default AuthObserver;","import React, { useState, useEffect } from \"react\";\r\nimport TitlePage from \"../../Shared/TitlePage\";\r\nimport { dataService } from \"../../../Services/data/data.service\";\r\nimport { Box, } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataListTypes, crudTypes } from '../../../Config/constants';\r\nimport { Plus, Search } from 'lucide-react';\r\n\r\nimport { useNavigate } from 'react-router-dom';\r\n// Components\r\nimport CreateAccountCategoryDialog from \"./Components/CreateAccountCategoryDialog\";\r\nimport CreateAccountDialog from \"./Components/CreateAccountDialog\";\r\nimport AccountList from \"./Components/AccountList\";\r\n\r\nfunction AccountOverviewPage(props) {\r\n const [firstLoad, setFirstLoad] = useState(0);\r\n const classes = useStyles();\r\n const [filters, setFilters] = useState([]);\r\n const [filterOn, setFilterOn] = useState(false);\r\n\r\n const [selectedFilter, setSelectedFilter] = useState(1);\r\n\r\n // General\r\n const [allAccounts, setAllAccounts] = useState([]);\r\n const [allAccountCategories, setAllAccountCategories] = useState([]);\r\n const [accountCategoryList, setAccountCategoryList] = useState([]);\r\n const [accountCategoriesCompanies, setAccountCategoriesCompanies] = useState([]);\r\n\r\n // CRUD\r\n const [createAccountCategoryDialogOpen, setCreateAccountCategoryDialogOpen] = useState(false);\r\n const [createAccountDialogOpen, setCreateAccountDialogOpen] = useState(false);\r\n const [createAccountCompanyId, setCreateAccountCompanyId] = useState(null); // When opening the account via a specific company header, the company should already be set to save clicks.\r\n\r\n const [accountCategoryToEdit, setAccountCategoryToEdit] = useState(null);\r\n const [accountToEdit, setAccountToEdit] = useState(null);\r\n\r\n useEffect(() => {\r\n dataService.getAllUserCompanyAccounts(props.Login.userid, 0, 0).then(result => {\r\n setAllAccounts(result);\r\n });\r\n dataService.getAllUserCompanyAccountCategories(props.Login.userid, 0, 0).then(result => {\r\n setAccountCategoriesCompanies(result);\r\n setAllAccountCategories(result);\r\n });\r\n }, [props.Login.userid])\r\n\r\n if (firstLoad === 0) {\r\n setFirstLoad(1);\r\n }\r\n\r\n const filter = [\r\n { number: 1, column: \"name\", sortOrder: \"ASC\" },\r\n { number: 2, column: \"name\", sortOrder: \"DESC\" },\r\n ]\r\n\r\n const dynamicSorting = (property) => {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n let asc = false;\r\n /* SC: Filter now works both ways (ASC, DESC) */\r\n if (filter.find(x => x.number === selectedFilter).column === property) {\r\n if (filter.find(x => x.number === selectedFilter).sortOrder === 'ASC') {\r\n asc = false;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n }\r\n if (asc === true) {\r\n return function (a, b) {\r\n //ASC A-Z\r\n var result = (a[property].toLowerCase() > b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n } else {\r\n return function (a, b) {\r\n //DESC Z-A\r\n var result = (a[property].toLowerCase() < b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n }\r\n }\r\n\r\n const handleSorting = (sortType) => {\r\n let tempMeasurementRows = [...accountCategoryList]\r\n setAccountCategoryList(tempMeasurementRows.sort(dynamicSorting(sortType)));\r\n }\r\n\r\n const toggleFilter = () => {\r\n if (filterOn) {\r\n setFilters([]);\r\n }\r\n setFilterOn(!filterOn);\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n setFilters(tempFilters);\r\n filterList(tempFilters);\r\n }\r\n\r\n const filterList = (thisFilters) => {\r\n let varFilteredlist = [...allAccountCategories];\r\n var i;\r\n for (i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case dataListTypes.NAME:\r\n varFilteredlist = varFilteredlist.filter(x => x.name.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n default:\r\n varFilteredlist = varFilteredlist.filter(x => x.name.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n }\r\n }\r\n setAccountCategoryList(varFilteredlist)\r\n }\r\n\r\n const getFilterValue = (type) => {\r\n\r\n let filter = filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n const openCreateAccountCategoryDialog = () => {\r\n setCreateAccountCategoryDialogOpen(true);\r\n }\r\n\r\n const closeCreateAccountCategoryDialog = () => {\r\n setCreateAccountCategoryDialogOpen(false);\r\n setAccountCategoryToEdit(null);\r\n }\r\n\r\n const openCreateAccountDialog = (companyId) => {\r\n setCreateAccountCompanyId(companyId);\r\n setCreateAccountDialogOpen(true);\r\n }\r\n\r\n const closeCreateAccountDialog = () => {\r\n setCreateAccountDialogOpen(false);\r\n setCreateAccountCompanyId(null);\r\n setAccountToEdit(null);\r\n }\r\n\r\n const handleAccountCategoryCrudSuccess = (accountCategory, crudType) => {\r\n const companyId = accountCategory.companyId;\r\n\r\n // Locate the company with the matching id\r\n const targetCompany = allAccounts.find(\r\n (company) => company.id === companyId\r\n );\r\n\r\n if (!targetCompany) {\r\n console.error(`Company with ID ${companyId} not found.`);\r\n return;\r\n }\r\n\r\n // Initialize the accountCategories array if not present\r\n if (!targetCompany.accountCategories) {\r\n targetCompany.accountCategories = [];\r\n }\r\n\r\n let tempAllAccountCategories = [...allAccountCategories];\r\n let companyAccountCategories = tempAllAccountCategories.find(x => x.id === companyId)?.accountCategories || [];\r\n\r\n // Switch statement to handle different CRUD types\r\n switch (crudType) {\r\n case crudTypes.CREATE:\r\n accountCategory.accounts = [];\r\n targetCompany.accountCategories.push(accountCategory);\r\n companyAccountCategories.push(accountCategory);\r\n break;\r\n\r\n case crudTypes.UPDATE:\r\n const indexToUpdate = targetCompany.accountCategories.findIndex((ft) => ft.id === accountCategory.id);\r\n if (indexToUpdate !== -1) {\r\n targetCompany.accountCategories[indexToUpdate] = accountCategory;\r\n const companyIndex = companyAccountCategories.findIndex(ft => ft.id === accountCategory.id);\r\n if (companyIndex !== -1) {\r\n companyAccountCategories[companyIndex] = accountCategory;\r\n }\r\n } else {\r\n console.error(`Account category with ID ${accountCategory.id} not found for update.`);\r\n }\r\n break;\r\n\r\n case crudTypes.DELETE:\r\n targetCompany.accountCategories = targetCompany.accountCategories.filter((ft) => ft.id !== accountCategory.id);\r\n companyAccountCategories = companyAccountCategories.filter(ft => ft.id !== accountCategory.id);\r\n break;\r\n\r\n default:\r\n console.error(`Unsupported CRUD operation: ${crudType}`);\r\n return;\r\n }\r\n\r\n // Sort alphabetically by name\r\n targetCompany.accountCategories.sort((a, b) => a.name.localeCompare(b.name));\r\n companyAccountCategories.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n setAllAccountCategories(tempAllAccountCategories);\r\n };\r\n\r\n\r\n const handleAccountCrudSuccess = (accounts, crudType) => {\r\n const accountCategoryId = accounts.accountCategoryId;\r\n const companyId = accounts.companyId;\r\n\r\n let tempAllAccountCategories = [...allAccountCategories];\r\n const targetCompany = allAccounts.find(\r\n (company) => company.id === companyId\r\n );\r\n\r\n // Is the category new?\r\n if (accounts.isNewAccountCategory) {\r\n if (!targetCompany) {\r\n console.error(`Company with ID ${companyId} not found.`);\r\n return;\r\n }\r\n\r\n if (!targetCompany.accountCategories) {\r\n targetCompany.accountCategories = [];\r\n }\r\n\r\n let newAccountCategory = {\r\n id: accountCategoryId,\r\n name: accounts.accountCategoryName,\r\n isRevenue: accounts.accountCategoryIsRevenue,\r\n isActive: true,\r\n companyId: companyId,\r\n accounts: []\r\n };\r\n\r\n tempAllAccountCategories.find(x => x.id === companyId).accountCategories.push(newAccountCategory);\r\n targetCompany.accountCategories.push(newAccountCategory);\r\n }\r\n\r\n if (!targetCompany) {\r\n console.error(`Company with ID ${companyId} not found.`);\r\n return;\r\n }\r\n\r\n const accountCategory = targetCompany.accountCategories.find(\r\n (accountCategory) => accountCategory.id === accountCategoryId\r\n );\r\n\r\n if (!accountCategory) {\r\n console.error(`Account category with ID ${accountCategoryId} not found.`);\r\n return;\r\n }\r\n\r\n if (!accountCategory.accounts) {\r\n accountCategory.accounts = [];\r\n }\r\n\r\n // Switch statement to handle different CRUD types\r\n switch (crudType) {\r\n case crudTypes.CREATE:\r\n accountCategory.accounts.push(accounts.accounts[0]);\r\n break;\r\n\r\n case crudTypes.UPDATE:\r\n const originalAccountCategory = allAccounts\r\n .map((company) => company.accountCategories)\r\n .flat()\r\n .find((ac) => ac.accounts && ac.accounts.some((a) => a.id === accounts.accounts[0].id));\r\n\r\n if (originalAccountCategory) {\r\n originalAccountCategory.accounts = originalAccountCategory.accounts.filter(\r\n (a) => a.id !== accounts.accounts[0].id\r\n );\r\n }\r\n\r\n if (!accountCategory.accounts) {\r\n accountCategory.accounts = [];\r\n }\r\n accountCategory.accounts.push(accounts.accounts[0]);\r\n break;\r\n\r\n case crudTypes.DELETE:\r\n accountCategory.accounts = accountCategory.accounts.filter(\r\n (a) => a.id !== accounts.accounts[0].id\r\n );\r\n break;\r\n\r\n default:\r\n console.error(`Unsupported CRUD operation: ${crudType}`);\r\n return;\r\n }\r\n\r\n // Sort accounts alphabetically by name\r\n accountCategory.accounts.sort((a, b) => a.name.localeCompare(b.name));\r\n targetCompany.accountCategories.sort((a, b) => a.name.localeCompare(b.name));\r\n tempAllAccountCategories.find(x => x.id === companyId).accountCategories.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n setAllAccountCategories(tempAllAccountCategories);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n

Accounts

\r\n
\r\n \r\n \r\n
\r\n
\r\n {/*
\r\n
\r\n
\r\n updateFilters(dataListTypes.NAME, e)} />\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
*/}\r\n
\r\n {allAccounts.length > 0 &&\r\n allAccounts.map(company => (\r\n \r\n ))\r\n }\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n )\r\n}\r\n\r\nexport default AccountOverviewPage;\r\n\r\nconst useStyles = makeStyles({\r\n tablesContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"32px\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"fit-content\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n searchContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n search__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '8px',\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n});","import React from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { Pencil} from 'lucide-react';\r\n\r\nimport * as Actions from '../../../../Reducers/actions'\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nfunction EditListsButton(props) {\r\n const navigate = useNavigate();\r\n\r\n return (\r\n
\r\n navigate(`/modifydropdown/${props.uniqueId}`)} size='large' style={{ borderRadius: 0 }}>\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n lists: state.lists,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(EditListsButton);","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport EditListsButton from './EditListsButton';\r\nimport { Paper, Typography, TableRow, TableHead, TableContainer, TableBody, Table, IconButton, Collapse, Box, Tooltip } from '@mui/material';\r\nimport { BadgeMinus, BadgeCheck, Pencil, ArrowDownAZ, ChevronDown, ChevronUp, PlusIcon } from 'lucide-react';\r\nimport FilterListRow from '../../../Shared/Tables/FilterListRow';\r\n\r\nfunction Row(props) {\r\n const classes = useStyles();\r\n const row = props.row;\r\n\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const formatIsRevenue = (isRevenue) => {\r\n if (isRevenue) {\r\n return

Revenue

;\r\n } else {\r\n return

Expense

;\r\n }\r\n };\r\n\r\n const toggleDropdown = () => {\r\n setIsExpanded(!isExpanded);\r\n };\r\n\r\n return (\r\n <>\r\n {/* Main Row */}\r\n \r\n \r\n {row.name}\r\n \r\n \r\n {formatIsRevenue(row.isRevenue)}\r\n \r\n \r\n
\r\n

{row.accounts.length > 0 ? row.accounts.length + \" account(s)\" : \"No accounts\"}

\r\n \r\n {isExpanded ? : }\r\n \r\n
\r\n \r\n \r\n {row.isActive ? : }\r\n \r\n \r\n props.setAccountCategoryToEdit(row)} size=\"large\" style={{ borderRadius: 0 }}>\r\n \r\n \r\n \r\n \r\n {/* Dropdown Rows */}\r\n {isExpanded && row.accounts && row.accounts.map((account, idx) => (\r\n \r\n \r\n {account.name}\r\n \r\n \r\n {account.isActive ? : }\r\n \r\n \r\n {\r\n const accountWithCompanyId = { ...account, companyId: row.companyId };\r\n props.setAccountToEdit(accountWithCompanyId);\r\n }}\r\n size=\"large\"\r\n style={{ borderRadius: 0 }}\r\n >\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nexport default function AccountList(props) {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.companyName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.filterOn && }\r\n {props.rows.map((row, index) => (\r\n \r\n ))}\r\n {props.rows.length === 0 &&\r\n \r\n \r\n }\r\n \r\n
\r\n \r\n
\r\n \r\n props.handleSorting('name')}>\r\n \r\n \r\n \r\n Name\r\n
\r\n
\r\n
\r\n \r\n
\r\n Revenue/Expense\r\n
\r\n
\r\n
\r\n \r\n
\r\n Accounts\r\n
\r\n
\r\n
\r\n \r\n
\r\n Active\r\n
\r\n
\r\n
\r\n Actions\r\n
No financial types available
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n companyHeader: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: \"center\",\r\n\r\n padding: \"16px\",\r\n\r\n borderRadius: '8px 8px 0px 0px',\r\n\r\n backgroundColor: '#C3996B',\r\n color: 'white',\r\n },\r\n\r\n projectTitle: {\r\n },\r\n\r\n iconButton: {\r\n height: \"32px\",\r\n width: \"32px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"0C0E29\",\r\n backgroundColor: \"#F8F8F8\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#EDEDED\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n tableHead: {\r\n height: '42px',\r\n textAlign: \"left\",\r\n },\r\n\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n padding: \"0px 16px\",\r\n justifyContent: 'flex-start',\r\n alignItems: 'center'\r\n },\r\n\r\n headStyle: {\r\n backgroundColor: \"#e0dce4\",\r\n },\r\n\r\n tableBodyRow: {\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n\r\n tableRow: {\r\n borderBottom: '2px solid #e0dce4',\r\n },\r\n\r\n tableData: {\r\n padding: \"8px 16px\",\r\n textAlign: \"left\",\r\n },\r\n\r\n accountsCell: {\r\n width: \"200px\",\r\n\r\n display: 'flex',\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n\r\n paddingLeft: \"16px\",\r\n },\r\n\r\n accountsCell__count: {\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n },\r\n\r\n actionButtons: {\r\n padding: '0px !important',\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n\r\n footer: {\r\n display: 'flex',\r\n },\r\n\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n\r\n chip__green: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n borderRadius: \"12px\",\r\n\r\n backgroundColor: \"#E2F8E0\",\r\n color: \"#3AB037\"\r\n },\r\n\r\n chip__red: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n borderRadius: \"12px\",\r\n\r\n backgroundColor: \"#FBE5E5\",\r\n color: \"#D84949\"\r\n },\r\n}));\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { toast } from 'react-toastify';\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Select, MenuItem, TextField, Button } from '@mui/material';\r\nimport { getAuth } from \"firebase/auth\";\r\nimport { X, Check } from 'lucide-react';\r\nimport { crudTypes } from '../../../../Config/constants';\r\n\r\nexport default function CreateAccountCategoryDialog({ dialogOpen, closeDialog, accountCategoryToEdit, companies, ...props }) {\r\n const classes = useStyles();\r\n const auth = getAuth();\r\n\r\n const [generalError, setGeneralError] = useState(null);\r\n\r\n const [name, setName] = useState(null);\r\n const [nameError, setNameError] = useState(null);\r\n\r\n const [selectedCompanyId, setSelectedCompanyId] = useState(null);\r\n const [selectedCompanyError, setSelectedCompanyError] = useState(null);\r\n\r\n const [isRevenue, setIsRevenue] = useState(true);\r\n\r\n useEffect(() => {\r\n if (companies.length === 1) {\r\n setSelectedCompanyId(companies[0].id);\r\n }\r\n }, [companies])\r\n\r\n useEffect(() => {\r\n if (accountCategoryToEdit) {\r\n setName(accountCategoryToEdit.name);\r\n setSelectedCompanyId(accountCategoryToEdit.companyId);\r\n setIsRevenue(accountCategoryToEdit.isRevenue);\r\n }\r\n }, [accountCategoryToEdit])\r\n\r\n const changeName = (e) => {\r\n setName(e.target.value);\r\n if (e.target.value.length < 1) {\r\n setName(null);\r\n }\r\n }\r\n\r\n const validateFields = () => {\r\n var validationGood = true;\r\n if (!selectedCompanyId) {\r\n validationGood = false;\r\n setSelectedCompanyError(\"Please select a company\")\r\n }\r\n if (name === \"\" || name === null || name === undefined) {\r\n validationGood = false;\r\n setNameError(\"Name is required!\");\r\n } else if (name.length > 50) {\r\n setNameError(\"Name can't be over 50 characters\")\r\n }\r\n\r\n return validationGood;\r\n }\r\n\r\n const handleSubmitAccountCategory = () => {\r\n resetErrors();\r\n if (validateFields()) {\r\n\r\n // Check if currently editing or creating a user\r\n if (accountCategoryToEdit) {\r\n var accountCategoryObject = {\r\n id: accountCategoryToEdit.id,\r\n name: name,\r\n companyId: selectedCompanyId,\r\n isRevenue: isRevenue,\r\n updatedByUserId: props.userId,\r\n };\r\n // Update user\r\n dataService.updateAccountCategory(accountCategoryObject).then(response => {\r\n if (response.success) {\r\n toast.success(response.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n response.accountCategory.accounts = accountCategoryToEdit.accounts;\r\n response.accountCategory.isActive = true;\r\n props.onSuccess(response.accountCategory, crudTypes.UPDATE);\r\n handleCloseDialog();\r\n } else {\r\n setGeneralError(response.message);\r\n }\r\n })\r\n } else {\r\n var accountCategoryObject = {\r\n name: name,\r\n companyId: selectedCompanyId,\r\n isRevenue: isRevenue,\r\n insertedByUserId: props.userId,\r\n };\r\n // Create new user\r\n dataService.createAccountCategory(accountCategoryObject).then(response => {\r\n if (response.success) {\r\n toast.success(response.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n accountCategoryObject.id = response.accountCategoryId\r\n accountCategoryObject.isActive = true\r\n props.onSuccess(accountCategoryObject, crudTypes.CREATE);\r\n handleCloseDialog();\r\n } else {\r\n setGeneralError(response.message);\r\n }\r\n }).catch((error) => {\r\n console.log(error)\r\n });\r\n }\r\n }\r\n }\r\n\r\n const resetErrors = () => {\r\n setSelectedCompanyError(null);\r\n setNameError(null);\r\n setGeneralError(null);\r\n };\r\n\r\n const handleCloseDialog = () => {\r\n setSelectedCompanyId(null);\r\n setName(null);\r\n setIsRevenue(true);\r\n\r\n resetErrors();\r\n\r\n closeDialog();\r\n }\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n {accountCategoryToEdit ? \"Edit\" : \"Create\"} account category\r\n \r\n \r\n
\r\n \r\n
\r\n {generalError &&\r\n
\r\n

{generalError}

\r\n
\r\n }\r\n
\r\n {companies.length > 1 &&\r\n
\r\n
\r\n \r\n

{selectedCompanyError}

\r\n
\r\n\r\n setSelectedCompanyId(e.target.value)}\r\n displayEmpty\r\n error={selectedCompanyError}\r\n style={{ width: \"100%\" }}\r\n className={classes.textField}\r\n disabled={accountCategoryToEdit}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {companies.length < 1 &&\r\n \r\n You are not part of a company\r\n \r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {companies.map((company, index) => (\r\n \r\n {company.name}\r\n \r\n ))}\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n

{nameError}

\r\n
\r\n changeName(event)}\r\n value={name}\r\n fullWidth={true}\r\n error={nameError !== null}\r\n inputProps={{ maxLength: 50 }}\r\n >\r\n \r\n
\r\n
\r\n \r\n
\r\n
setIsRevenue(true)}>\r\n
\r\n \r\n
\r\n

Revenue

\r\n
\r\n
setIsRevenue(false)}>\r\n
\r\n \r\n
\r\n

Expense

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {/* {accountCategoryToEdit &&\r\n \r\n } */}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '400px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n errorContainer: {\r\n width: \"100%\",\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n marginBottom: \"16px\",\r\n padding: \"12px\",\r\n },\r\n\r\n errorMessage: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\"\r\n },\r\n\r\n form: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n inputContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n inputError: {\r\n fontSize: \"14px\",\r\n color: \"#D84949\",\r\n\r\n margin: \"0\",\r\n },\r\n\r\n textField: {\r\n height: \"40px\",\r\n },\r\n\r\n radioButtonContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n gap: \"8px\",\r\n },\r\n\r\n radioButton: {\r\n width: \"fit-content\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n padding: \"8px\",\r\n\r\n borderRadius: \"4px\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#EDEDED\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n radio: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n boxSizing: \"border-box\",\r\n\r\n borderRadius: \"50%\",\r\n border: \"1px solid #0C0E29\",\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n radioIcon: {\r\n color: \"#F8F8F8\",\r\n },\r\n\r\n radioButton__label: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n margin: \"0\",\r\n },\r\n\r\n saveButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n verticalAlign: 'center',\r\n border: \"1px solid #D84949\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"white\",\r\n border: \"1px solid #C73B3B\",\r\n cursor: \"pointer\",\r\n }\r\n }\r\n}));\r\n","import React, { useState, useEffect } from 'react';\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { toast } from 'react-toastify';\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Select, MenuItem, TextField, Button } from '@mui/material';\r\nimport { getAuth } from \"firebase/auth\";\r\nimport { X, Check } from 'lucide-react';\r\nimport { crudTypes } from '../../../../Config/constants';\r\nimport AccountCategoryDropdown from '../../../Shared/Dropdowns/AccountCategoryDropdown';\r\n\r\nexport default function CreateAccountDialog({ dialogOpen, closeDialog, accountToEdit, companies, createAccountCompanyId, accountCategories, ...props }) {\r\n const classes = useStyles();\r\n const auth = getAuth();\r\n\r\n const [generalError, setGeneralError] = useState(null);\r\n\r\n const [name, setName] = useState(null);\r\n const [nameError, setNameError] = useState(null);\r\n\r\n const [selectedCompanyId, setSelectedCompanyId] = useState(null);\r\n const [selectedCompanyError, setSelectedCompanyError] = useState(null);\r\n\r\n const [selectedAccountCategoryId, setSelectedAccountCategoryId] = useState(null);\r\n const [selectedAccountCategoryError, setSelectedAccountCategoryError] = useState(null);\r\n\r\n // new account category\r\n const [creatingNewAccountCategory, setCreatingNewAccountCategory] = useState(false);\r\n const [newAccountCategoryName, setNewAccountCategoryName] = useState(\"\");\r\n const [newAccountCategoryIsRevenue, setNewAccountCategoryIsRevenue] = useState(true);\r\n\r\n useEffect(() => {\r\n if (companies.length === 1) {\r\n setSelectedCompanyId(companies[0].id);\r\n }\r\n }, [companies])\r\n\r\n useEffect(() => {\r\n if (createAccountCompanyId) {\r\n setSelectedCompanyId(createAccountCompanyId);\r\n }\r\n }, [createAccountCompanyId])\r\n\r\n useEffect(() => {\r\n if (accountToEdit) {\r\n setName(accountToEdit.name);\r\n setSelectedCompanyId(accountToEdit.companyId);\r\n setSelectedAccountCategoryId(accountToEdit.accountCategoryId);\r\n }\r\n }, [accountToEdit])\r\n\r\n const changeName = (e) => {\r\n setName(e.target.value);\r\n if (e.target.value.length < 1) {\r\n setName(null);\r\n }\r\n }\r\n\r\n const validateFields = () => {\r\n var validationGood = true;\r\n if (!selectedCompanyId) {\r\n validationGood = false;\r\n setSelectedCompanyError(\"Please select a company\")\r\n }\r\n if (name === \"\" || name === null || name === undefined) {\r\n validationGood = false;\r\n setNameError(\"Name is required!\");\r\n } else if (name.length > 50) {\r\n setNameError(\"Name can't be over 50 characters\")\r\n }\r\n return validationGood;\r\n }\r\n\r\n const handleSubmitAccount = () => {\r\n resetErrors();\r\n if (validateFields()) {\r\n\r\n // Check if currently editing or creating a user\r\n if (accountToEdit) {\r\n var accountObject = {\r\n id: accountToEdit.id,\r\n name: name,\r\n accountCategoryId: selectedAccountCategoryId,\r\n accountCategoryName: creatingNewAccountCategory ? newAccountCategoryName : accountCategories.find(company => company.id === selectedCompanyId).accountCategories.find(category => category.id === selectedAccountCategoryId).name,\r\n accountCategoryIsRevenue: creatingNewAccountCategory ? newAccountCategoryIsRevenue : accountCategories.find(company => company.id === selectedCompanyId).accountCategories.find(category => category.id === selectedAccountCategoryId).isRevenue,\r\n companyId: selectedCompanyId,\r\n isNewAccountCategory: creatingNewAccountCategory,\r\n updatedByUserId: props.userId,\r\n };\r\n // Update user\r\n dataService.updateAccount(accountObject).then(response => {\r\n if (response.success) {\r\n toast.success(response.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n response.account.isActive = true;\r\n accountObject.accountCategoryId = response.accountCategoryId;\r\n accountObject.accounts = [response.account];\r\n props.onSuccess(accountObject, crudTypes.UPDATE);\r\n handleCloseDialog();\r\n } else {\r\n setGeneralError(response.message);\r\n }\r\n })\r\n } else {\r\n let newAccounts = {\r\n accountCategoryId: selectedAccountCategoryId,\r\n accountCategoryName: creatingNewAccountCategory ? newAccountCategoryName : accountCategories.find(company => company.id === selectedCompanyId).accountCategories.find(category => category.id === selectedAccountCategoryId).name,\r\n accountCategoryIsRevenue: creatingNewAccountCategory ? newAccountCategoryIsRevenue : accountCategories.find(company => company.id === selectedCompanyId).accountCategories.find(category => category.id === selectedAccountCategoryId).isRevenue,\r\n accounts: [\r\n {\r\n name: name,\r\n }\r\n ],\r\n companyId: selectedCompanyId,\r\n isNewAccountCategory: creatingNewAccountCategory,\r\n insertedByUserId: props.userId,\r\n };\r\n\r\n dataService.createAccounts(newAccounts).then(response => {\r\n if (response.success) {\r\n toast.success(response.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n newAccounts.accountCategoryId = response.accountCategoryId;\r\n newAccounts.accounts[0].id = response.accountId;\r\n newAccounts.accounts[0].isActive = true;\r\n newAccounts.accounts[0].accountCategoryId = response.accountCategoryId;\r\n props.onSuccess(newAccounts, crudTypes.CREATE);\r\n handleCloseDialog();\r\n } else {\r\n setGeneralError(response.message);\r\n }\r\n }).catch((error) => {\r\n console.log(error)\r\n });\r\n\r\n // var accountObject = {\r\n // name: name,\r\n // accountCategoryId: selectedAccountCategoryId,\r\n // insertedByUserId: props.userId,\r\n // };\r\n // // Create new user\r\n // dataService.createAccount(accountObject).then(response => {\r\n // if (response.success) {\r\n // toast.success(response.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n // accountObject.id = response.accountId\r\n // accountObject.isActive = true\r\n // props.onSuccess(accountObject, crudTypes.CREATE);\r\n // handleCloseDialog();\r\n // } else {\r\n // setGeneralError(response.message);\r\n // }\r\n // }).catch((error) => {\r\n // console.log(error)\r\n // });\r\n }\r\n }\r\n }\r\n\r\n const resetErrors = () => {\r\n setSelectedCompanyError(null);\r\n setNameError(null);\r\n setGeneralError(null);\r\n };\r\n\r\n const handleCloseDialog = () => {\r\n setSelectedCompanyId(null);\r\n setSelectedAccountCategoryId(null);\r\n setName(null);\r\n\r\n setNewAccountCategoryName(\"\");\r\n setNewAccountCategoryIsRevenue(true);\r\n setCreatingNewAccountCategory(false);\r\n\r\n resetErrors();\r\n\r\n closeDialog();\r\n }\r\n\r\n const handleCreateNewAccountCategory = (accountCategory) => {\r\n setNewAccountCategoryName(accountCategory.name);\r\n setNewAccountCategoryIsRevenue(accountCategory.isRevenue);\r\n setCreatingNewAccountCategory(true);\r\n };\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n {accountToEdit ? \"Edit\" : \"Create\"} account\r\n \r\n \r\n
\r\n \r\n
\r\n {generalError &&\r\n
\r\n

{generalError}

\r\n
\r\n }\r\n
\r\n {companies.length > 1 &&\r\n
\r\n
\r\n \r\n

{selectedCompanyError}

\r\n
\r\n\r\n setSelectedCompanyId(e.target.value)}\r\n displayEmpty\r\n error={selectedCompanyError}\r\n style={{ width: \"100%\" }}\r\n className={classes.textField}\r\n disabled={accountToEdit}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {companies.length < 1 &&\r\n \r\n You are not part of a company\r\n \r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {companies.map((company, index) => (\r\n \r\n {company.name}\r\n \r\n ))}\r\n \r\n
\r\n }\r\n {/* List all accountCategories with companyId equal to selectedCompany */}\r\n {accountCategories.length > 0 &&\r\n
\r\n
\r\n \r\n

{selectedCompanyError}

\r\n
\r\n company.id === selectedCompanyId).accountCategories : []}\r\n selectedAccountCategoryId={selectedAccountCategoryId}\r\n setSelectedAccountCategoryId={setSelectedAccountCategoryId}\r\n handleCreateNewAccountCategory={handleCreateNewAccountCategory}\r\n />\r\n
\r\n }\r\n
\r\n
\r\n \r\n

{nameError}

\r\n
\r\n changeName(event)}\r\n value={name}\r\n fullWidth={true}\r\n error={nameError !== null}\r\n inputProps={{ maxLength: 50 }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {/* {accountToEdit &&\r\n \r\n } */}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '400px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n errorContainer: {\r\n width: \"100%\",\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n marginBottom: \"16px\",\r\n padding: \"12px\",\r\n },\r\n\r\n errorMessage: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\"\r\n },\r\n\r\n form: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n inputContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n inputError: {\r\n fontSize: \"14px\",\r\n color: \"#D84949\",\r\n\r\n margin: \"0\",\r\n },\r\n\r\n textField: {\r\n height: \"40px\",\r\n },\r\n\r\n radioButtonContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n gap: \"8px\",\r\n },\r\n\r\n radioButton: {\r\n width: \"fit-content\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n padding: \"8px\",\r\n\r\n borderRadius: \"4px\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#EDEDED\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n radio: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n boxSizing: \"border-box\",\r\n\r\n borderRadius: \"50%\",\r\n border: \"1px solid #0C0E29\",\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n radioIcon: {\r\n color: \"#F8F8F8\",\r\n },\r\n\r\n radioButton__label: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n margin: \"0\",\r\n },\r\n\r\n saveButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n alignSelf: \"end\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n verticalAlign: 'center',\r\n border: \"1px solid #D84949\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"white\",\r\n border: \"1px solid #C73B3B\",\r\n cursor: \"pointer\",\r\n }\r\n }\r\n}));\r\n","import { makeStyles } from '@material-ui/core';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport DividerImage from '../../../Images/line2.png';\r\nimport { toast } from 'react-toastify';\r\nimport { Link } from 'react-router-dom';\r\nimport { InlineWidget } from 'react-calendly';\r\n\r\n// Styling\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport './Assets/styles/bookdemo-styles.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\n// JS\r\nimport \"https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenLite.min.js\";\r\n// import \"https://assets.calendly.com/assets/external/widget.js\";\r\n\r\n// Images\r\nimport img_logo from './Assets/images/logo.png';\r\n\r\nfunction BookDemoPage(props) {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const [firstName, setFirstName] = useState(null);\r\n const [lastName, setLastName] = useState(null);\r\n const [email, setEmail] = useState(null);\r\n\r\n // useEffect(() => {\r\n // // Load Calendly script dynamically\r\n // const script = document.createElement(\"script\");\r\n // script.src = \"https://assets.calendly.com/assets/external/widget.js\";\r\n // script.async = true;\r\n // document.body.appendChild(script);\r\n\r\n // return () => {\r\n // // Cleanup script if needed\r\n // document.body.removeChild(script);\r\n // };\r\n // }, [])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n Login\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

© 2025 Taplr . All rights reserved. Taplr is a product by Flagstone BV, Stedestraat 51, 8530 Harelbeke - Belgium. Privacy Policy

\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n header: {\r\n backgroundColor: '#231F20',\r\n paddingTop: \"65px\",\r\n\r\n [theme.breakpoints.down('lg')]: {\r\n paddingTop: '20px',\r\n },\r\n },\r\n\r\n container: {\r\n maxWidth: \"1560px\",\r\n\r\n margin: \"0 auto\",\r\n padding: \"0 15px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n row: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n [theme.breakpoints.down('md')]: {\r\n marginBottom: \"30px\",\r\n },\r\n },\r\n\r\n col5: {\r\n flex: \"0 0 41.666%\",\r\n maxWidth: \"41.666%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n col6: {\r\n flex: \"0 0 50%\",\r\n maxWidth: \"50%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n col7: {\r\n flex: \"0 0 58.333%\",\r\n maxWidth: \"58.333%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n logo: {\r\n // image inside\r\n '& img': {\r\n [theme.breakpoints.down('md')]: {\r\n width: \"130px\",\r\n },\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: '118px',\r\n },\r\n },\r\n },\r\n\r\n banner: {\r\n padding: \"30px 0 110px\",\r\n backgroundColor: \"#231F20\",\r\n boxSizing: \"border-box\",\r\n\r\n [theme.breakpoints.down('lg')]: {\r\n padding: \"30px 0 70px\",\r\n },\r\n\r\n [theme.breakpoints.down('md')]: {\r\n padding: \"0px 0 70px\",\r\n marginTop: \"-1px\",\r\n },\r\n },\r\n}));\r\nexport default BookDemoPage;","import React, { useState, useEffect, useRef } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, TextField, Box, ToggleButtonGroup, ToggleButton, InputAdornment, Button } from '@mui/material';\r\nimport { getAuth } from \"firebase/auth\";\r\nimport { X, ChevronDown } from 'lucide-react';\r\n\r\nexport default function CompanyCrudDialog({ dialogOpen, closeDialog, ...props }) {\r\n const classes = useStyles();\r\n const auth = getAuth();\r\n\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n\r\n const [generalError, setGeneralError] = useState(null);\r\n\r\n const [companyName, setCompanyName] = useState(null);\r\n const [companyNameError, setCompanyNameError] = useState(null);\r\n\r\n const [currency, setCurrency] = useState(null);\r\n const [currencyError, setCurrencyError] = useState(null);\r\n\r\n // Dropdown\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 }); // Position of the dropdown, relative to the dropdown button\r\n const openDropdownButtonRef = useRef(null);\r\n const dropdownRef = useRef(null);\r\n\r\n // fetch all currencies\r\n useEffect(() => {\r\n dataService.getAllCurrencies().then(response => {\r\n if (response) {\r\n setAllCurrencies(response);\r\n setCurrency(response[1]); // set default currency to euro\r\n } else {\r\n setGeneralError(\"Failed to fetch currencies\");\r\n }\r\n }).catch((error) => {\r\n console.log(error)\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (openDropdown && openDropdownButtonRef.current) {\r\n // Calculate the position of the dropdown relative to the viewport\r\n const rect = openDropdownButtonRef.current.getBoundingClientRect();\r\n setDropdownPosition({\r\n top: rect.bottom + 4, // Position dropdown below the trigger\r\n left: rect.left, // Align to the left of the trigger\r\n });\r\n }\r\n }, [openDropdown])\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target) && openDropdown) {\r\n // check if target is not the button\r\n if (!openDropdownButtonRef.current.contains(event.target)) {\r\n setOpenDropdown(false);\r\n };\r\n };\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [openDropdown]);\r\n\r\n const changeCompanyName = (e) => {\r\n setCompanyName(e.target.value);\r\n if (e.target.value.length > 0) {\r\n setCompanyNameError(null);\r\n }\r\n }\r\n\r\n const handleCurrencySelection = (currency) => {\r\n setCurrency(currency);\r\n setOpenDropdown(false);\r\n };\r\n\r\n const checkFields = () => {\r\n var disabled = false;\r\n if (companyName === \"\" || companyName === null || companyName === undefined) {\r\n disabled = true;\r\n }\r\n return disabled;\r\n }\r\n\r\n const validateFields = () => {\r\n var validationGood = true;\r\n if (companyName === \"\" || companyName === null || companyName === undefined) {\r\n validationGood = false;\r\n setCompanyNameError(\"First name is required!\");\r\n };\r\n\r\n if (currency === null || currency === undefined) {\r\n validationGood = false;\r\n setCurrencyError(\"Currency is required!\");\r\n };\r\n\r\n return validationGood;\r\n }\r\n\r\n const handleSaveCompany = () => {\r\n if (validateFields()) {\r\n var companyObject = {\r\n name: companyName,\r\n currencyId: currency.id,\r\n insertedByUserId: props.userId,\r\n }\r\n\r\n dataService.createCompany(companyObject).then(response => {\r\n if (response.success) {\r\n window.location.reload();\r\n } else {\r\n setGeneralError(response.message);\r\n }\r\n }).catch((error) => {\r\n console.log(error)\r\n });\r\n\r\n }\r\n }\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n Create company\r\n \r\n \r\n
\r\n \r\n
\r\n

Fill out the details below to create your new company

\r\n {generalError &&\r\n
\r\n

{generalError}

\r\n
\r\n }\r\n
\r\n
\r\n \r\n changeCompanyName(event)}\r\n value={companyName}\r\n fullWidth={true}\r\n error={companyNameError !== null}\r\n helperText={companyNameError}\r\n >\r\n \r\n
\r\n
\r\n
\r\n \r\n

{currencyError}

\r\n
\r\n
\r\n \r\n {ReactDOM.createPortal(\r\n
\r\n {allCurrencies.map((currency) => (\r\n \r\n ))}\r\n
,\r\n document.body\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '500px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n lineHeight: '100% !important',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n opacity: \"0.8\",\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n toggleFilter: {\r\n width: \"100%\",\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(50% - 1px)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n errorContainer: {\r\n width: \"100%\",\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n marginBottom: \"8px\",\r\n padding: \"12px\",\r\n },\r\n\r\n errorMessage: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\"\r\n },\r\n\r\n form: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n inputContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n // Dropdown\r\n container: {\r\n position: \"relative\",\r\n },\r\n\r\n dropdown__inputContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n border: \"1px solid\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n\r\n padding: \"0px\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #0C0E29\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n padding: \"0 14px\",\r\n paddingRight: \"32px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n textAlign: \"left\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input__icon: {\r\n position: \"absolute\",\r\n right: \"10px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdownContainer: {\r\n width: 'fit-content',\r\n maxHeight: '200px',\r\n overflowY: 'auto',\r\n position: 'absolute',\r\n // top: 'calc(100% + 4px)',\r\n // left: '0',\r\n zIndex: '1400',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"4px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#989898\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#7C7C7C\",\r\n },\r\n },\r\n\r\n dropdown__collapseButton: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n gap: \"8px\",\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n // no text wrapping\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n collapseButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n saveButton: {\r\n border: \"1px solid #C3996B !important\",\r\n background: \"#C3996B !important\",\r\n display: 'flex',\r\n color: 'white !important',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n cancelButton: {\r\n border: \"1px solid #C3996B !important\",\r\n background: 'white',\r\n display: 'flex',\r\n color: '#C3996B !important',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n disabled: {\r\n backgroundColor: \"#DCDCDC\",\r\n color: \"#989898\",\r\n cursor: \"not-allowed\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#DCDCDC\",\r\n color: \"#989898\",\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n}));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport TitlePage from \"../../Shared/TitlePage\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { TableContainer, Table, Typography, Box, IconButton, TableHead, TableBody, TableRow, TableCell } from '@mui/material';\r\nimport { Plus, Pencil, BadgeCheck, BadgeMinus } from 'lucide-react';\r\nimport UserCrudDialog from \"./UserCrudDialog\";\r\nimport CompanyCrudDialog from \"./CompanyCrudDialog\";\r\n\r\nimport { Roles } from '../../../Config/constants';\r\nimport UserEditDialog from \"./UserEditDialog\";\r\nimport { Spin } from \"react-cssfx-loading\";\r\n\r\n\r\ntoast.configure();\r\n\r\nexport default function CompanySettingsPage(props) {\r\n const classes = useStyles();\r\n const [userCompanies, setUserCompanies] = useState(null);\r\n const [roles, setRoles] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [crudDialogOpen, setCrudDialogOpen] = useState(false);\r\n const [companyCrudDialogOpen, setCompanyCrudDialogOpen] = useState(false);\r\n\r\n const [editDialogOpen, setEditDialogOpen] = useState(false);\r\n const [companyId, setCompanyId] = useState(null);\r\n const [userToEdit, setUserToEdit] = useState(null);\r\n\r\n useEffect(() => {\r\n //Promise is used so functions will happen together.\r\n //When all are finished --> setLoading false\r\n console.log(\"props.Login.userid\", props.Login.userid);\r\n Promise.all([\r\n dataService.getAllRoles(),\r\n dataService.getUserAndCompanyData(props.Login.userid),\r\n ]).then((results) => {\r\n var roleResults = results[0];\r\n var companyUserResults = results[1];\r\n if (roleResults) {\r\n setRoles(roleResults);\r\n }\r\n\r\n console.log(\"companyUserResults\", companyUserResults);\r\n if (companyUserResults) {\r\n setUserCompanies(companyUserResults);\r\n }\r\n }).catch(error => {\r\n toast.error(`A problem occured while fetching data!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error);\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n }, [props.Login.userid]);\r\n\r\n const handleCreateCompany = () => {\r\n setCompanyCrudDialogOpen(true);\r\n setCompanyId(null);\r\n }\r\n const closeCompanyCrudDialog = () => {\r\n setCompanyCrudDialogOpen(false);\r\n\r\n }\r\n\r\n const handleCreateUser = (intCompanyId) => {\r\n setCrudDialogOpen(true);\r\n setCompanyId(intCompanyId)\r\n }\r\n\r\n const closeCrudDialog = () => {\r\n setCrudDialogOpen(false);\r\n\r\n }\r\n const closeEditDialog = () => {\r\n setEditDialogOpen(false);\r\n\r\n }\r\n const nothing = (intUserLimit) => {\r\n toast.error(`Can't create another user, you have reached the limit of ${intUserLimit} active users!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n }\r\n\r\n const handleEditUser = (intCompanyId, intUserId) => {\r\n try {\r\n var arrCompanies = JSON.parse(JSON.stringify(userCompanies));\r\n var objCompany = arrCompanies.find(x => x.id === intCompanyId);\r\n var objUser = objCompany.users.find(x => x.id === intUserId);\r\n setUserToEdit(objUser);\r\n setCompanyId(intCompanyId);\r\n setEditDialogOpen(true);\r\n } catch (error) {\r\n console.log('error ', error)\r\n toast.error(`Something went wrong!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n }\r\n\r\n return (\r\n \r\n {loading &&\r\n
\r\n }\r\n \r\n \r\n
\r\n

Manage companies

\r\n \r\n
\r\n \r\n
\r\n {userCompanies !== null &&\r\n \r\n {userCompanies.map((company, companyIndex) => {\r\n return \r\n \r\n \r\n {company.name}\r\n \r\n
\r\n
\r\n

{company.currencyName}

\r\n

{company.currencySymbol}

\r\n
\r\n User limit: {company.users.filter(x => x.enabled).length}/{company.userLimit}\r\n
\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n #\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Name\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Email\r\n
\r\n
\r\n
\r\n {/* \r\n \r\n
\r\n Roles\r\n
\r\n
\r\n
*/}\r\n \r\n \r\n
\r\n Active\r\n
\r\n
\r\n
\r\n \r\n x.enabled).length >= company.userLimit} onClick={() => company.users.filter(x => x.enabled).length >= company.userLimit ? nothing(company.userLimit) : handleCreateUser(company.id)}>\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {([...company.users].sort((a, b) => a.firstname.localeCompare(b.firstname))).map((row, rowIndex) => (\r\n \r\n {rowIndex + 1}\r\n {row.firstname} {row.name}\r\n {row.emailAddress}\r\n {/* {row.roleIds.map((x, roleIndex) => {\r\n return {(roleIndex !== 0 ? \", \" : \"\") + roles.find(role => x === role.id).name}\r\n })} */}\r\n {row.enabled ? : }\r\n handleEditUser(company.id, row.id)} style={{ borderRadius: 0 }}>\r\n\r\n \r\n ))}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n })}\r\n
\r\n }\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n {companyCrudDialogOpen &&\r\n x.id !== Roles.ADMIN)} companyId={companyId} userId={props.Login.userid}>\r\n }\r\n\r\n {crudDialogOpen &&\r\n x.id !== Roles.ADMIN)} companyId={companyId} userId={props.Login.userid}>\r\n }\r\n {editDialogOpen &&\r\n x.id !== Roles.ADMIN)} companyId={companyId} userToEdit={userToEdit} userId={props.Login.userid} userCompanies={userCompanies}>\r\n }\r\n\r\n
\r\n )\r\n}\r\n\r\nconst useStyles = makeStyles({\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: 'space-between',\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n zIndex: '999',\r\n position: 'fixed',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n companyHeader: {\r\n width: '100%',\r\n backgroundColor: '#C3996B',\r\n color: 'white',\r\n borderTopLeftRadius: '8px',\r\n borderTopRightRadius: '8px',\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n },\r\n\r\n companyHeader__end: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"16px\",\r\n },\r\n\r\n chip: {\r\n display: 'flex',\r\n gap: '4px',\r\n alignItems: 'center',\r\n\r\n color: \"#7C7C7C\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n\r\n backgroundColor: \"#EDEDED\",\r\n\r\n borderRadius: \"12px\",\r\n padding: \"4px 12px\",\r\n },\r\n\r\n projectTitle: {\r\n padding: '15px'\r\n },\r\n\r\n tableHead: {\r\n height: '42px',\r\n borderRight: '2px solid #e6ecf0',\r\n padding: \"0px !important\",\r\n },\r\n\r\n tableCell: {\r\n paddingTop: \"0px !important\",\r\n paddingBottom: \"0px !important\",\r\n\r\n },\r\n paper: {\r\n width: '100%',\r\n background: 'white'\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n paddingLeft: '10px',\r\n // justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n titleSearchCenter: {\r\n position: 'relative',\r\n display: 'flex',\r\n // paddingLeft: '10px',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n headStyle: {\r\n backgroundColor: \"#e0dce4\",\r\n },\r\n tableBodyRow: {\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n actionButtons: {\r\n padding: '0px !important',\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }\r\n\r\n\r\n});","import React, { useState } from 'react';\r\nimport { RoleNames } from '../../../Config/constants';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Typography, IconButton, TextField, Box, ToggleButtonGroup, ToggleButton, InputAdornment, Button } from '@mui/material';\r\nimport { getAuth, createUserWithEmailAndPassword, sendPasswordResetEmail } from \"firebase/auth\";\r\nimport { X, Lock, Eye, EyeOff } from 'lucide-react';\r\n\r\nexport default function UserCrudDialog({ dialogOpen, closeDialog, ...props }) {\r\n const classes = useStyles();\r\n const auth = getAuth();\r\n\r\n const [isExistingUser, setIsExistingUser] = useState(false);\r\n const [generalError, setGeneralError] = useState(null);\r\n\r\n const [firstName, setFirstName] = useState(null);\r\n const [firstNameError, setFirstNameError] = useState(null);\r\n\r\n const [surName, setSurName] = useState(null);\r\n const [surNameError, setSurNameError] = useState(null);\r\n\r\n const [email, setEmail] = useState(null);\r\n const [emailError, setEmailError] = useState(null);\r\n\r\n const [roles, setRoles] = useState([3]);\r\n const [rolesError, setRolesError] = useState(null);\r\n\r\n const [password, setPassword] = useState(null);\r\n const [passwordError, setPasswordError] = useState(null);\r\n\r\n const [confirmPassword, setConfirmPassword] = useState(null);\r\n\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [showConfirmPassword, setShowConfirmPassword] = useState(false);\r\n\r\n\r\n const changeFirstName = (e) => {\r\n setFirstName(e.target.value);\r\n if (e.target.value.length > 0) {\r\n setFirstNameError(null);\r\n }\r\n }\r\n\r\n const changeSurName = (e) => {\r\n setSurName(e.target.value);\r\n if (e.target.value.length > 0) {\r\n setSurNameError(null);\r\n }\r\n }\r\n\r\n const changeEmail = (e) => {\r\n setEmail(e.target.value);\r\n if (e.target.value.length > 0 && validateEmail(e.target.value)) {\r\n setEmailError(null);\r\n }\r\n }\r\n\r\n const changeRole = (e) => {\r\n var intValue = parseInt(e.target.value);\r\n var arrRoles = JSON.parse(JSON.stringify(roles));\r\n if (arrRoles.includes(intValue)) {\r\n //Remove the roleId from the roleArray\r\n arrRoles = arrRoles.filter(item => item !== intValue);\r\n\r\n } else {\r\n //Add role to the roleArray\r\n setRolesError(null);\r\n arrRoles.push(intValue);\r\n }\r\n setRoles(arrRoles);\r\n }\r\n\r\n const changePassword = (e) => {\r\n setPassword(e.target.value);\r\n }\r\n\r\n const handleClickShowPassword = () => setShowPassword(!showPassword);\r\n const handleMouseDownPassword = () => setShowPassword(!showPassword);\r\n\r\n const changeConfirmPassword = (e) => {\r\n setConfirmPassword(e.target.value);\r\n }\r\n\r\n const handleClickShowConfirmPassword = () => setShowConfirmPassword(!showConfirmPassword);\r\n const handleMouseDownConfirmPassword = () => setShowConfirmPassword(!showConfirmPassword);\r\n\r\n const checkFields = () => {\r\n var disabled = false;\r\n if (firstName === \"\" || firstName === null || firstName === undefined) {\r\n if (!isExistingUser) {\r\n disabled = true;\r\n }\r\n }\r\n if (surName === \"\" || surName === null || surName === undefined) {\r\n if (!isExistingUser) {\r\n disabled = true;\r\n }\r\n }\r\n if (email === \"\" || email === null || email === undefined || !validateEmail(email)) {\r\n disabled = true;\r\n }\r\n return disabled;\r\n }\r\n\r\n const validateEmail = (strEmail) => {// eslint-disable-next-line\r\n const regex = /^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/;\r\n return regex.test(strEmail);\r\n }\r\n\r\n const validateFields = () => {\r\n var validationGood = true;\r\n if (!isExistingUser) {\r\n if (firstName === \"\" || firstName === null || firstName === undefined) {\r\n validationGood = false;\r\n setFirstNameError(\"First name is required!\");\r\n }\r\n if (surName === \"\" || surName === null || surName === undefined) {\r\n validationGood = false;\r\n setSurNameError(\"Surname is required!\");\r\n }\r\n }\r\n if (email === \"\" || email === null || email === undefined) {\r\n validationGood = false;\r\n setEmailError(\"Email is required!\");\r\n } else {\r\n if (!validateEmail(email)) {\r\n validationGood = false;\r\n setEmailError(\"Please enter a valid email address.\");\r\n }\r\n }\r\n\r\n if (roles === null || roles === null || roles.length === 0) {\r\n validationGood = false;\r\n setRolesError(\"Select at least one role!\");\r\n }\r\n // if (!isExistingUser) {\r\n // if (password === \"\" || password === null || password === undefined) {\r\n // validationGood = false;\r\n // } else {\r\n // if (password.length < 8) {\r\n // setPasswordError(\"Password must be at least 8 characters\");\r\n // }\r\n // }\r\n // if (confirmPassword === \"\" || confirmPassword === null || confirmPassword === undefined) {\r\n // validationGood = false;\r\n // }\r\n // if ((confirmPassword !== \"\" && confirmPassword !== null && confirmPassword !== undefined) && (password !== \"\" && password !== null && password !== undefined)) {\r\n // if (confirmPassword !== password) {\r\n // validationGood = false;\r\n // setPasswordError(\"The two passwords must match!\");\r\n // }\r\n // }\r\n // }\r\n\r\n return validationGood;\r\n }\r\n\r\n const handleSaveUser = async () => {\r\n try {\r\n if (!validateFields()) return;\r\n\r\n if (isExistingUser) {\r\n // Updating an existing user\r\n const userObject = {\r\n email: email,\r\n roles: roles,\r\n companyId: props.companyId,\r\n insertedByUserId: props.userId,\r\n };\r\n\r\n try {\r\n const response = await dataService.addUser(userObject);\r\n if (response.success) {\r\n window.location.reload();\r\n } else {\r\n setGeneralError(response.message);\r\n }\r\n } catch (error) {\r\n console.error(\"Error updating user:\", error);\r\n }\r\n\r\n } else {\r\n // Creating a new user\r\n const userObject = {\r\n name: surName,\r\n firstName: firstName,\r\n email: email,\r\n fireBaseId: '',\r\n roles: roles,\r\n insertedByUserId: props.userId,\r\n companyId: props.companyId\r\n };\r\n\r\n try {\r\n // Step 1: Create user in Firebase\r\n const userCredential = await createUserWithEmailAndPassword(auth, email, \"gX7!vZr@4pQ#dLm9\");\r\n userObject.fireBaseId = userCredential.user.uid;\r\n\r\n // Step 2: Create user in local database\r\n const response = await dataService.createUser(userObject);\r\n if (!response) {\r\n throw new Error(\"Failed to create user in local database.\");\r\n }\r\n\r\n // Step 3: Send password reset email\r\n await sendPasswordResetEmail(auth, email);\r\n console.log(\"Password reset email sent to new user.\");\r\n\r\n window.location.reload();\r\n\r\n } catch (error) {\r\n console.error(\"Error creating user:\", error);\r\n\r\n if (error.code === \"auth/email-already-in-use\") {\r\n // Try adding an existing user to another company\r\n try {\r\n const response = await dataService.createUser(userObject);\r\n if (response) {\r\n window.location.reload();\r\n } else {\r\n setGeneralError(\"Failed to associate existing email with new company.\");\r\n }\r\n } catch (dbError) {\r\n console.error(\"Database error:\", dbError);\r\n setGeneralError(\"An unexpected error occurred.\");\r\n }\r\n } else if (error.code === \"auth/invalid-email\") {\r\n setEmailError(\"Please enter a valid email address.\");\r\n } else {\r\n setEmailError(\"An unexpected error occurred. Please try again.\");\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\"Unexpected error in handleSaveUser:\", error);\r\n setGeneralError(\"An unexpected error occurred. Please try again.\");\r\n }\r\n };\r\n\r\n const handleToggleSelection = (state) => {\r\n setGeneralError(null);\r\n setIsExistingUser(state);\r\n }\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n Add user\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {generalError &&\r\n
\r\n

{generalError}

\r\n
\r\n }\r\n
\r\n {!isExistingUser &&\r\n
\r\n
\r\n \r\n changeFirstName(event)}\r\n value={firstName}\r\n fullWidth={true}\r\n error={firstNameError !== null}\r\n helperText={firstNameError}\r\n >\r\n \r\n
\r\n
\r\n Last name *\r\n changeSurName(event)}\r\n value={surName}\r\n fullWidth={true}\r\n error={surNameError !== null}\r\n helperText={surNameError}\r\n >\r\n \r\n
\r\n
\r\n }\r\n
\r\n Email *\r\n changeEmail(event)}\r\n value={email}\r\n fullWidth={true}\r\n >\r\n \r\n
\r\n\r\n
\r\n Rolls *\r\n changeRole(event)} value={roles}>\r\n {props.roles.map((role, roleIndex) => {\r\n return {RoleNames.find(x => x.id === role.id).name}\r\n })}\r\n \r\n {rolesError !== null &&

{rolesError}

}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '500px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n toggleFilter: {\r\n width: \"100%\",\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(50% - 1px)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n errorContainer: {\r\n width: \"100%\",\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n marginBottom: \"8px\",\r\n padding: \"12px\",\r\n },\r\n\r\n errorMessage: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\"\r\n },\r\n\r\n form: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n inputContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n saveButton: {\r\n border: \"1px solid #C3996B !important\",\r\n background: \"#C3996B !important\",\r\n display: 'flex',\r\n color: 'white !important',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n\r\n cancelButton: {\r\n border: \"1px solid #C3996B !important\",\r\n background: 'white',\r\n display: 'flex',\r\n color: '#C3996B !important',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n \"&:disabled\": {\r\n backgroundColor: \"#DCDCDC\",\r\n color: \"#989898\",\r\n cursor: \"not-allowed\",\r\n },\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n}));\r\n","import React, { useState, useEffect } from 'react';\r\nimport { RoleNames } from '../../../Config/constants';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Typography, IconButton, TextField, Box, ToggleButtonGroup, ToggleButton, Button } from '@mui/material';\r\nimport { getAuth, sendPasswordResetEmail } from \"firebase/auth\";\r\nimport { X } from 'lucide-react';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport default function UserEditDialog({ dialogOpen, closeDialog, ...props }) {\r\n const classes = useStyles();\r\n\r\n const [firstName, setFirstName] = useState(null);\r\n const [firstNameError, setFirstNameError] = useState(null);\r\n\r\n const [surName, setSurName] = useState(null);\r\n const [surNameError, setSurNameError] = useState(null);\r\n\r\n const [email, setEmail] = useState(null);\r\n const [emailError, setEmailError] = useState(null);\r\n\r\n const [roles, setRoles] = useState([]);\r\n const [rolesError, setRolesError] = useState(null);\r\n\r\n const [passwordResetClicked, setPasswordResetClicked] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n if (props.userToEdit !== undefined && props.userToEdit !== null) {\r\n var objUserToEdit = JSON.parse(JSON.stringify(props.userToEdit));\r\n setEmail(objUserToEdit.emailAddress);\r\n setFirstName(objUserToEdit.firstname);\r\n setSurName(objUserToEdit.name);\r\n setRoles(objUserToEdit.roleIds);\r\n }\r\n\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n\r\n const changeFirstName = (e) => {\r\n setFirstName(e.target.value);\r\n if (e.target.value.length > 0) {\r\n setFirstNameError(null);\r\n }\r\n }\r\n\r\n const changeSurName = (e) => {\r\n setSurName(e.target.value);\r\n if (e.target.value.length > 0) {\r\n setSurNameError(null);\r\n }\r\n }\r\n\r\n const changeEmail = (e) => {\r\n setEmail(e.target.value);\r\n if (e.target.value.length > 0 && validateEmail(e.target.value)) {\r\n setEmailError(null);\r\n }\r\n }\r\n\r\n const changeRole = (e) => {\r\n var intValue = parseInt(e.target.value);\r\n var arrRoles = JSON.parse(JSON.stringify(roles));\r\n if (arrRoles.includes(intValue)) {\r\n //Remove the roleId from the roleArray\r\n arrRoles = arrRoles.filter(item => item !== intValue);\r\n\r\n } else {\r\n //Add role to the roleArray\r\n setRolesError(null);\r\n arrRoles.push(intValue);\r\n }\r\n setRoles(arrRoles);\r\n }\r\n\r\n\r\n const checkFields = () => {\r\n var disabled = false;\r\n if (firstName === \"\" || firstName === null || firstName === undefined) {\r\n disabled = true;\r\n }\r\n if (surName === \"\" || surName === null || surName === undefined) {\r\n disabled = true;\r\n }\r\n if (email === \"\" || email === null || email === undefined) {\r\n disabled = true;\r\n }\r\n\r\n return disabled;\r\n }\r\n\r\n const validateEmail = (strEmail) => {// eslint-disable-next-line\r\n const regex = /^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/;\r\n return regex.test(strEmail);\r\n }\r\n\r\n const validateFields = () => {\r\n var validationGood = true;\r\n if (firstName === \"\" || firstName === null || firstName === undefined) {\r\n validationGood = false;\r\n setFirstNameError(\"First name is required!\");\r\n }\r\n if (surName === \"\" || surName === null || surName === undefined) {\r\n validationGood = false;\r\n setSurNameError(\"Surname is required!\");\r\n }\r\n if (email === \"\" || email === null || email === undefined) {\r\n validationGood = false;\r\n setEmailError(\"Email is required!\");\r\n } else {\r\n if (!validateEmail(email)) {\r\n validationGood = false;\r\n setEmailError(\"Please enter a valid email address.\");\r\n }\r\n }\r\n\r\n if (roles === null || roles === null || roles.length === 0) {\r\n validationGood = false;\r\n setRolesError(\"Select at least one role!\");\r\n }\r\n\r\n\r\n\r\n return validationGood;\r\n }\r\n\r\n const handleDeactivateUser = () => {\r\n if (!props.userToEdit.enabled && props.userCompanies.find(c => c.id === props.companyId).users.filter(x => x.enabled).length >= props.userCompanies.find(c => c.id === props.companyId).userLimit) {\r\n toast.error(`Can't activate user, the userlimit has been exceeded!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n } else {\r\n var userObject = {\r\n enabled: !props.userToEdit.enabled,\r\n userId: props.userToEdit.id,\r\n updateByUserId: props.userId,\r\n companyId: props.companyId\r\n };\r\n\r\n dataService.changeUserActive(userObject).then(response => {\r\n window.location.reload();\r\n }).catch(error => {\r\n console.log('Error: ', error)\r\n toast.error(`Something went wrong!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n const handleSaveUser = () => {\r\n if (validateFields()) {\r\n var userObject = {\r\n name: surName,\r\n firstName: firstName,\r\n email: email,\r\n fireBaseId: '',\r\n roles: roles,\r\n insertedByUserId: props.userId,\r\n companyId: props.companyId\r\n };\r\n\r\n dataService.updateUser(userObject).then(response => {\r\n if (response.success) {\r\n toast.success(response.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n window.location.reload();\r\n } else {\r\n toast.error(`Something went wrong!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n }).catch((error) => {\r\n console.log('Error: ', error)\r\n toast.error(`Something went wrong!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n const sendNewPasswordMail = () => {\r\n const auth = getAuth();\r\n sendPasswordResetEmail(auth, email)\r\n .then(() => {\r\n setPasswordResetClicked(true);\r\n toast.success(`The reset-password mail was send to ${email}! (Check your spam if you don't find it)`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }).catch((error) => {\r\n const errorCode = error.code;\r\n const errorMessage = error.message;\r\n console.log(`ERROR ${errorCode}: ${errorMessage} `)\r\n toast.error(`Something went wrong!`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n });\r\n }\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n Edit user\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n First name *\r\n changeFirstName(event)}\r\n value={firstName}\r\n fullWidth={true}\r\n error={firstNameError !== null}\r\n helperText={firstNameError}\r\n >\r\n \r\n
\r\n
\r\n Last name *\r\n changeSurName(event)}\r\n value={surName}\r\n fullWidth={true}\r\n error={surNameError !== null}\r\n helperText={surNameError}\r\n >\r\n \r\n
\r\n
\r\n Email *\r\n changeEmail(event)}\r\n value={email}\r\n fullWidth={true}\r\n >\r\n \r\n
\r\n
\r\n Rolls *\r\n changeRole(event)} value={roles}>\r\n {props.roles.map((role, roleIndex) => {\r\n return {RoleNames.find(x => x.id === role.id).name}\r\n })}\r\n \r\n {rolesError !== null &&

{rolesError}

}\r\n
\r\n\r\n
\r\n Want to reset your password?\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '500px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n toggleFilter: {\r\n width: \"100%\",\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(50% - 1px)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n errorContainer: {\r\n width: \"100%\",\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n marginBottom: \"8px\",\r\n padding: \"12px\",\r\n },\r\n\r\n errorMessage: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\"\r\n },\r\n\r\n form: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n inputContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n saveButton: {\r\n border: \"1px solid #C3996B !important\", background: \"#C3996B !important\", display: 'flex', color: 'white !important', justifyContent: 'center', alignItems: 'center',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n deactivateButton: {\r\n marginRight: '10px !important', background: '#d32f2f !important', border: '1px solid #d32f2f !important', color: 'white !important',\r\n display: 'flex', justifyContent: 'center', alignItems: 'center',\r\n \"&:hover\": {\r\n background: \"white !important\",\r\n color: '#d32f2f !important',\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n activateButton: {\r\n marginRight: '10px !important', background: '#55a34e !important', border: '1px solid #55a34e !important', color: 'white !important',\r\n display: 'flex', justifyContent: 'center', alignItems: 'center',\r\n \"&:hover\": {\r\n background: \"white !important\",\r\n color: '#55a34e !important',\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n cancelButton: {\r\n border: \"1px solid #C3996B !important\", background: 'white', display: 'flex', color: '#C3996B !important', justifyContent: 'center', alignItems: 'center',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n }\r\n\r\n}));\r\n","import React, { useEffect } from 'react';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { Link } from 'react-router-dom';\r\nimport { Button } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nfunction ConfigurationPage(props) {\r\n\r\n const classes = useStyles();\r\n useEffect(() => {\r\n }, []);\r\n\r\n\r\n return (\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n Create a new dropdown.\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* \r\n */} Manage existing dropdowns. (Edit, delete,...)\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {/* \r\n */} Create a new API.\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {/* \r\n */} Manage existing APIs. (Edit or delete.)\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Manage existing financial types. (Edit or delete.)\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ConfigurationPage;\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxSizing: \"border-box\",\r\n borderRadius: \"8px\",\r\n [theme.breakpoints.up('lg')]: {\r\n maxWidth: \"50%\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n maxWidth: \"60%\",\r\n },\r\n\r\n [theme.breakpoints.down('md')]: {\r\n maxWidth: \"90%\",\r\n\r\n },\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginTop: \"125px\"\r\n },\r\n\r\n\r\n titleTextStyle: {\r\n display: \"flex\",\r\n marginLeft: \"20px\",\r\n },\r\n boxStyle: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n paddingTop: \"18px\",\r\n paddingBottom: \"18px\",\r\n marginBottom: '25px',\r\n paddingLeft: '30px',\r\n paddingRight: '30px',\r\n\r\n },\r\n menuItem: {\r\n color: '#1D3557',\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1rem',\r\n width: '50% !important',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: '100% !important',\r\n fontSize: '1.2rem',\r\n },\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n\r\n iconStyle: {\r\n verticalAlign: \"-8px\",\r\n marginRight: \"4px\"\r\n },\r\n link: {\r\n [theme.breakpoints.down('sm')]: {\r\n marginLeft: '5%',\r\n width: '50% !important',\r\n minWidth: '50% !important',\r\n },\r\n },\r\n linkButton: {\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100% !important',\r\n minWidth: '100% !important',\r\n minHeight: \"46.8px\",\r\n height: \"90%\",\r\n padding: \"10px\",\r\n fontSize: \"1rem\",\r\n },\r\n\r\n [theme.breakpoints.up('lg')]: {\r\n width: '250px',\r\n minWidth: \"250px\",\r\n height: \"40px\",\r\n fontSize: \"1.2rem\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n width: '200px',\r\n minWidth: \"200px\",\r\n fontSize: \"1.2rem\",\r\n },\r\n\r\n background: \"#C3996B !important\",\r\n display: 'flex !important',\r\n justifyContent: 'center !important',\r\n alignItems: 'center !important',\r\n },\r\n\r\n}));","import React, { useEffect, useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { TextField, Select, MenuItem, Snackbar, Box } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Save, ClipboardCopy, ChevronLeft } from 'lucide-react';\r\n\r\nimport * as apiHelper from '../../../Utils/API/apiHelper';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { externalApiTypes } from '../../../Config/constants';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\n// Components\r\nimport TableList from '../ModifyExternalApi/Components/ModifyExternalApiList';\r\nimport DescriptionItem from '../../Shared/DescriptionItem';\r\nimport HowToUseAPIDialog from '../ModifyExternalApi/Components/HowToUseAPIDialog';\r\n\r\nfunction CreateExternalApiPage(props) {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const GetUserId = props.Login.userid;\r\n const [connectionName, setConnectionName] = useState(\"\");\r\n const [connectionDesc, setConnectionDesc] = useState(\"\");\r\n const [apiKey, setApiKey] = useState(\"\");\r\n const [errorConnectionName, setErrorConnectionName] = useState(false);\r\n const [errorApiKey, setErrorApiKey] = useState(false);\r\n const [htConnectionName, setHtConnectionName] = useState(\"\");\r\n const [htApiKey, setHtApiKey] = useState(\"\");\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n const [apiBodyItems, setApiBodyItems] = useState([]);\r\n const [apiExampleLink, setApiExampleLink] = useState(\"\");\r\n const [apiExamplePoints, setApiExamplePoints] = useState(\"\");\r\n const [openToast, setOpenToast] = useState(false);\r\n\r\n const [allExternalApiTypes, setAllExternalApiTypes] = useState([]);\r\n const [allUserCompanies, setAllUserCompanies] = useState([]);\r\n\r\n const [company, setCompany] = useState(null);\r\n const [helperTextCompany] = useState(\"\");\r\n const [errorCompany] = useState(\"\");\r\n\r\n const [externalApiType, setExternalApiType] = useState(null);\r\n const [helperTextExternalApiType, setHelperTextExternalApiType] = useState(\"\");\r\n const [errorExternalApiType, setErrorExternalApiType] = useState(\"\");\r\n\r\n const [howToOpen, setHowToOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then(results => {\r\n setAllUserCompanies(results);\r\n });\r\n\r\n dataService.getAllExternalApiTypes().then(results => {\r\n setAllExternalApiTypes(results);\r\n setExternalApiType(results[0]);\r\n });\r\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (externalApiType) {\r\n if (externalApiType.id === externalApiTypes.STOPWATCH) {\r\n setStopwatchRows();\r\n } else if (externalApiType.id === externalApiTypes.DATA) {\r\n setDataRows();\r\n // clearApiRows();\r\n }\r\n }\r\n\r\n }, [externalApiType])\r\n\r\n const setConnectionNameState = (event) => {\r\n setConnectionName(event.target.value);\r\n }\r\n\r\n const setConnectionDescState = (event) => {\r\n setConnectionDesc(event.target.value);\r\n }\r\n\r\n const setApiKeyState = (event) => {\r\n setApiKey(event.target.value);\r\n }\r\n\r\n const setStopwatchRows = () => {\r\n let tempStopwatchItems = [\r\n {\r\n Id: 1,\r\n itemName: 'stopwatchReference',\r\n itemDescription: 'Reference to stop a earlier started stopwatch',\r\n },\r\n {\r\n Id: 2,\r\n itemName: 'startTime',\r\n itemDescription: 'The time the stopwatch starts',\r\n },\r\n {\r\n Id: 3,\r\n itemName: 'stopTime',\r\n itemDescription: \"The time the stopwatch stops\",\r\n },\r\n {\r\n Id: 4,\r\n itemName: 'keyValue',\r\n itemDescription: \"Optional key value (can be used to link an api measurement to an order)\"\r\n }\r\n ];\r\n\r\n setApiBodyItems(tempStopwatchItems);\r\n var ExampleApiValuesMapped = tempStopwatchItems.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n };\r\n\r\n const setDataRows = () => {\r\n let tempDataItems = [\r\n {\r\n Id: 1,\r\n itemName: 'keyValue',\r\n itemDescription: 'Optional key value (can be used to link an api measurement to an order)',\r\n }\r\n ];\r\n\r\n setApiBodyItems(tempDataItems);\r\n var ExampleApiValuesMapped = tempDataItems.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n };\r\n\r\n const setRows = (event) => {\r\n setApiBodyItems(event);\r\n var ExampleApiValuesMapped = event.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n }\r\n\r\n const clearApiRows = () => {\r\n setApiBodyItems([]);\r\n setApiExamplePoints(\"\");\r\n }\r\n\r\n const validate = () => {\r\n var validationOK = true\r\n if (connectionName === \"\") {\r\n validationOK = false\r\n setHtConnectionName(\"Please enter a connection name\")\r\n setErrorConnectionName(true)\r\n }\r\n else {\r\n setHtConnectionName(\"\")\r\n setErrorConnectionName(false)\r\n }\r\n if (apiKey === \"\") {\r\n validationOK = false\r\n setHtApiKey(\"Please generate an API key\")\r\n setErrorApiKey(true)\r\n } else {\r\n setErrorApiKey(false)\r\n setHtApiKey(\"\")\r\n }\r\n\r\n if (!externalApiType || externalApiType === \"\") {\r\n validationOK = false;\r\n setHelperTextExternalApiType(\"Please select an API type\")\r\n setErrorExternalApiType(true);\r\n } else {\r\n setHelperTextExternalApiType(\"\");\r\n setErrorExternalApiType(false);\r\n }\r\n\r\n if (apiBodyItems.length === 0 || apiBodyItems[0].itemName === \"\") {\r\n validationOK = false\r\n setEmptyDetails(true)\r\n }\r\n else {\r\n setEmptyDetails(false)\r\n }\r\n\r\n return validationOK\r\n }\r\n\r\n const sendToApi = () => {\r\n setApiExampleLink(apiHelper.ComposeUri(apiHelper.EXTERNALAPI) + apiKey)\r\n var ExampleApiValuesMapped = apiBodyItems.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n if (validate()) {\r\n var items = JSON.stringify(apiBodyItems.map(item => ({ Name: item.itemName, Description: item.itemDescription })))\r\n dataService.createNewApi(connectionName, connectionDesc, externalApiType.id, company.id, apiKey, items, GetUserId).then(results => {\r\n navigate(`/modifyapi/${results.uniqueId}`)\r\n })\r\n }\r\n }\r\n\r\n const generateApiKey = () => {\r\n let key = uuidv4()\r\n setApiKey(key)\r\n setApiExampleLink(apiHelper.ComposeUri(apiHelper.EXTERNALAPI) + key)\r\n }\r\n\r\n const handleOpenToast = () => {\r\n setOpenToast(true);\r\n };\r\n\r\n const handleCloseToast = (reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenToast(false);\r\n };\r\n\r\n const handleCopyLink = () => {\r\n handleOpenToast();\r\n navigator.clipboard.writeText(apiExampleLink);\r\n };\r\n\r\n const handleCopyFormat = () => {\r\n handleOpenToast();\r\n navigator.clipboard.writeText(apiExamplePoints);\r\n };\r\n\r\n // const action = (\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // );\r\n\r\n // const buttonStyle = {\r\n // backgroundColor: \"#C3996B\",\r\n // color: \"white\",\r\n // width: \"220px\",\r\n // marginRight: \"5px\",\r\n // height: \"55px\",\r\n // fontSize: \"15px\"\r\n // }\r\n\r\n const handleTutorialDialog = () => {\r\n setHowToOpen(true);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n

Create a new API

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {htConnectionName === \"\" ?\r\n \r\n :\r\n \r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n {helperTextCompany === \"\" ?\r\n \r\n :\r\n \r\n }\r\n
\r\n setCompany(e.target.value)}\r\n displayEmpty\r\n error={errorCompany}\r\n helperText={helperTextCompany}\r\n style={{ width: \"100%\" }}\r\n renderValue={company !== \"\" ? undefined : () => \"Company\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allUserCompanies.length < 1 &&\r\n \r\n You are not part of a company\r\n \r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allUserCompanies.map((company, index) => (\r\n \r\n {company.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n {helperTextExternalApiType === \"\" ?\r\n \r\n :\r\n \r\n }\r\n
\r\n setExternalApiType(e.target.value)}\r\n displayEmpty\r\n error={errorExternalApiType}\r\n helperText={helperTextExternalApiType}\r\n style={{ width: \"100%\" }}\r\n renderValue={externalApiType !== \"\" ? undefined : () => \"API-type\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allExternalApiTypes.length < 1 &&\r\n \r\n There are no types to choose from\r\n \r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allExternalApiTypes.map((apiType, index) => (\r\n \r\n {apiType.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Description of your API

\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n {emptyDetails === true ? (\r\n
\r\n \r\n \r\n

Please create at least one data point.

\r\n
\r\n ) : (\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n {/* */}\r\n \r\n\r\n {apiExampleLink === \"\" || apiExampleLink === null || apiExampleLink === undefined ?\r\n // \r\n\r\n \r\n :\r\n \r\n\r\n // \r\n }\r\n\r\n {/* */}\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {apiExamplePoints === \"\" || apiExamplePoints === null || apiExamplePoints === undefined ?\r\n // \r\n\r\n \r\n :\r\n \r\n\r\n // \r\n }\r\n
\r\n\r\n\r\n {/* */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n setHowToOpen(false)} apiTypeId={externalApiType && externalApiType.id} apiUrl={apiExampleLink} apiBodyItems={apiBodyItems} />\r\n
\r\n )\r\n}\r\n\r\nexport default CreateExternalApiPage;\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxSizing: \"border-box\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n maxWidth: \"100%\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n buttonContainer: {\r\n marginTop: '25px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'end'\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n disabledIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#DCDCDC\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n formContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n },\r\n\r\n formColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n projectOption: {\r\n minWidth: \"240px\",\r\n maxWidth: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n margin: \"0\",\r\n },\r\n\r\n labelContainer__helperText: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n margin: \"0\",\r\n },\r\n\r\n listDescriptionStyle: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n position: 'relative',\r\n },\r\n\r\n description__textarea: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n padding: \"8px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #BDBDBD\",\r\n borderRadius: \"4px\",\r\n resize: \"none\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n height: \"120px\",\r\n },\r\n },\r\n\r\n generateApiKeyContainer: {\r\n display: \"flex\",\r\n gap: \"8px\",\r\n flexDirection: \"row\",\r\n alignItems: 'center',\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\"\r\n },\r\n },\r\n\r\n generateAPIbutton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n whiteSpace: \"nowrap\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n copyAPIbutton: {\r\n background: \"#C3996B !important\",\r\n color: 'white', height: '56px', borderBottomLeftRadius: '0px !important', borderTopLeftRadius: '0px !important',\r\n border: '1px solid #C3996B !important',\r\n transition: '0.3s',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.75) !important\",\r\n },\r\n \"&:disabled\": {\r\n background: 'rgba(0, 0, 0, 0.12) !important',\r\n color: 'rgba(0, 0, 0, 0.26) !important',\r\n border: 'rgba(0, 0, 0, 0.26) 1px solid!important'\r\n }\r\n },\r\n\r\n ApiContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'center',\r\n\r\n border: \"1px solid #989898\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n ApiFormatContainer: {\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'flex-end',\r\n\r\n border: \"1px solid #989898\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n ApiFormatContainer__buttonContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tertiaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n whiteSpace: \"nowrap\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41)\",\r\n backgroundColor: \"#EDEDED\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n apiTextField: {\r\n height: \"40px\",\r\n width: \"100%\",\r\n\r\n fontSize: \"16px\",\r\n\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n },\r\n\r\n generateApiKeyButton: {\r\n backgroundColor: \"#C3996B\",\r\n color: \"white\",\r\n width: \"220px\",\r\n borderRadius: \"4px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n cursor: \"pointer\",\r\n marginRight: \"5px\",\r\n height: \"55px\",\r\n fontSize: \"15px\"\r\n },\r\n}));","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { Plus, Trash2, Pencil, Save } from 'lucide-react';\r\n\r\nimport { TableContainer, Tooltip, TableRow, IconButton, TextField, Table, Fab, Select, InputLabel, FormControl, Paper } from '@mui/material';\r\nimport './TableStyle.css';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nfunction TableList(props) {\r\n const classes = useStyles();\r\n var today = new Date();\r\n const [saveHelper, setSaveHelper] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n // eslint-disable-next-line \r\n }, [props.Login.userid])\r\n\r\n const setItemName = (event, id) => {\r\n let tempArray = [...props.rows]\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).itemName = event.target.value\r\n } else {\r\n tempArray.find(x => x.edit === true).itemName = event.target.value;\r\n }\r\n props.setRows(tempArray)\r\n }\r\n\r\n const setItemDescription = (event, id) => {\r\n let tempArray = [...props.rows]\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).itemDescription = event.target.value\r\n } else {\r\n tempArray.find(x => x.edit === true).itemDescription = event.target.value;\r\n }\r\n props.setRows(tempArray)\r\n }\r\n\r\n const GenerateId = () => {\r\n let tempArray = [...props.rows];\r\n const ids = tempArray.map(object => {\r\n return object.Id;\r\n });\r\n\r\n const max = Math.max(...ids);\r\n\r\n if (tempArray.length === 0) {\r\n return 1;\r\n }\r\n else {\r\n let index = max;\r\n index++;\r\n return index;\r\n }\r\n }\r\n\r\n const editListItem = (id) => {\r\n let tempArray = [...props.rows]\r\n tempArray.find(x => x.Id === id).edit = true\r\n props.setRows(tempArray)\r\n }\r\n\r\n const saveListItem = (id) => {\r\n let tempArray = [...props.rows]\r\n if (tempArray.find(x => x.Id === id).itemName !== \"\" && tempArray.find(x => x.Id === id).itemName !== null) {\r\n tempArray.find(x => x.Id === id).edit = false\r\n props.setRows(tempArray)\r\n setSaveHelper(false)\r\n }\r\n else {\r\n setSaveHelper(true)\r\n }\r\n }\r\n\r\n const deleteListItem = (id) => {\r\n let tempArray = [...props.rows]\r\n let index = tempArray.indexOf(tempArray.find(x => x.Id === id))\r\n tempArray.splice(index, 1)\r\n props.setRows(tempArray)\r\n }\r\n\r\n const addRow = () => {\r\n let Rowid = { Id: GenerateId(), itemDescription: \"\", edit: true, itemName: \"\", UserId: props.Login.userid, InsertedOn: today }\r\n let PrevId = GenerateId() - 1;\r\n var tempArray = [...props.rows]\r\n if (tempArray.find(x => x.itemName === \"\") === undefined) {\r\n if (tempArray.length !== 0) {\r\n if (tempArray.find(x => x.Id === PrevId).itemName !== \"\") {\r\n tempArray.find(x => x.Id === PrevId).edit = false\r\n setSaveHelper(false)\r\n tempArray.push(Rowid)\r\n props.setRows(tempArray)\r\n }\r\n else {\r\n tempArray.push(Rowid)\r\n props.setRows(tempArray)\r\n }\r\n }\r\n else {\r\n tempArray.push(Rowid)\r\n props.setRows(tempArray)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.rows.map(x =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
#NameDescriptionActions
\r\n
\r\n {x.Id}\r\n
\r\n
\r\n {x.edit ?// eslint-disable-next-line\r\n 0 ? x.itemName : ''} onChange={(event) => setItemName(event, x.Id)} /> :\r\n \r\n }\r\n \r\n {x.edit ?// eslint-disable-next-line\r\n 0 ? x.itemDescription : ''} onChange={(event) => setItemDescription(event, x.Id)} /> :\r\n \r\n }\r\n \r\n {x.edit ?\r\n // \r\n saveListItem(x.Id)} className={classes.editButton} size=\"large\">\r\n \r\n \r\n // \r\n :\r\n // \r\n editListItem(x.Id)} className={classes.editButton} size=\"large\">\r\n \r\n \r\n // \r\n }\r\n {/* \r\n deleteListItem(x.Id)}>\r\n \r\n \r\n */}\r\n \r\n deleteListItem(x.Id)} className={classes.functionButton} color='error' size=\"large\">\r\n \r\n \r\n \r\n -\r\n \r\n \r\n Name\r\n (null\r\n )} disabled />\r\n \r\n \r\n \r\n Description\r\n (null\r\n )} disabled />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TableList;\r\n\r\nconst useStyles = makeStyles({\r\n tableContent: {\r\n paddingTop: \"15px\",\r\n },\r\n tableRow: {\r\n height: '60px',\r\n },\r\n tableHead: {\r\n backgroundColor: \"#e0dce4\",\r\n marginBottom: \"15px\",\r\n },\r\n addRow: {\r\n opacity: \"0.3\"\r\n },\r\n tableTd: {\r\n padding: \"5px\",\r\n },\r\n descriptionField: {\r\n width: \"100%\",\r\n },\r\n\r\n editButton: {\r\n fontSize: '2rem !important',\r\n color: '#0B4097 !important',\r\n },\r\n\r\n functionButton: {\r\n fontSize: '2rem !important',\r\n },\r\n indexTd: {\r\n borderRight: '2px solid rgb(224, 224, 224)',\r\n width: '25px',\r\n background: 'rgba(0, 0, 0, 0.54)',\r\n color: 'white',\r\n zIndex: '2',\r\n },\r\n emptydrag: {\r\n padding: '17px !important',\r\n border: '0'\r\n },\r\n listOrder: {\r\n paddingLeft: '5px',\r\n paddingRight: '5px',\r\n },\r\n dragTd: {\r\n border: '0',\r\n width: '24px',\r\n },\r\n dragIcon: {\r\n float: 'left',\r\n },\r\n});","import React, { useEffect, useState } from 'react';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Select, MenuItem, Grid2, Box } from '@mui/material';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Save, ChevronLeft } from 'lucide-react';\r\nimport TableList from './Components/TableCreateList';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nfunction CreateListPage(props) {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const [listName, setListName] = useState(\"\");\r\n const [listCompany, setListCompany] = useState(null);\r\n const [allUserCompanies, setAllUserCompanies] = useState([]);\r\n const [listDescription, setListDescription] = useState(\"\");\r\n\r\n const [helperTextListName, setHelperTextListName] = useState(null);\r\n const [helperTextListCompany, setHelperTextListCompany] = useState(null);\r\n const [helperTextListDescription, setHelperTextListDescription] = useState(null);\r\n\r\n const [errorListName, setErrorListName] = useState(false);\r\n const [errorListCompany, setErrorListCompany] = useState(false);\r\n\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n const [listItems, setListItems] = useState([]);\r\n var today = new Date();\r\n\r\n useEffect(() => {\r\n }, [props.Login.userid]);\r\n\r\n const setList = (event) => {\r\n setListName(event.target.value);\r\n }\r\n\r\n const setDescription = (event) => {\r\n setListDescription(event.target.value);\r\n }\r\n\r\n useEffect(() => {\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then(results => {\r\n setAllUserCompanies(results);\r\n })\r\n }, [props.Login.userid])\r\n\r\n const validate = () => {\r\n let errors = 0;\r\n\r\n // Name\r\n if (listName.trim() === \"\" || !listName) {\r\n errors++;\r\n setHelperTextListName(\"Please enter a dropdown name.\")\r\n setErrorListName(true)\r\n } else if (listName.trim().length > 50) {\r\n errors++;\r\n setHelperTextListName(\"Name can not be longer than 50 characters\")\r\n setErrorListName(true)\r\n } else {\r\n setHelperTextListName(\"\")\r\n setErrorListName(false)\r\n }\r\n\r\n // Description\r\n if (listDescription.trim().length > 1000) {\r\n errors++;\r\n setHelperTextListDescription(\"Description can not be longer than 1000 characters\")\r\n } else {\r\n setHelperTextListDescription(\"\");\r\n }\r\n\r\n // Company\r\n if (!listCompany) {\r\n errors++;\r\n setHelperTextListCompany(\"Please select a company\")\r\n setErrorListCompany(true);\r\n } else {\r\n setHelperTextListCompany(\"\")\r\n setErrorListCompany(false);\r\n }\r\n\r\n\r\n if (errors > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n const sendToApi = () => {\r\n if (validate()) {\r\n setEmptyDetails(false)\r\n if (listItems.length === 0 || listItems[0].itemName === \"\") {\r\n setEmptyDetails(true)\r\n }\r\n else if (listItems[listItems.findIndex(x => x.itemName === \"\")]) {\r\n let DataListItemsToRemove = [...listItems];\r\n let RemoveObjectId = DataListItemsToRemove[DataListItemsToRemove.findIndex(x => x.itemName === \"\")].Id;\r\n DataListItemsToRemove.splice(RemoveObjectId - 1, 1);\r\n let userid = props.Login.userid\r\n let DataListItems = DataListItemsToRemove.map(x => ({ Id: x.Id, Name: x.itemName, Description: x.itemDescription, InsertedOn: x.InsertedOn, InsertedByUserId: x.userid }));\r\n dataService.createNewDataList(listName, listCompany.id, listDescription, today, userid, DataListItems).then(results => {\r\n navigate(`/modifydropdown/${results.uniqueId}`);\r\n })\r\n\r\n }\r\n else {\r\n // API CALL HERE\r\n let userid = props.Login.userid\r\n let DataListItems = listItems.map(x => ({ Id: x.Id, Name: x.itemName, Description: x.itemDescription, InsertedOn: x.InsertedOn, InsertedByUserId: x.userid }));\r\n dataService.createNewDataList(listName, listCompany.id, listDescription, today, userid, DataListItems).then(results => {\r\n navigate(`/modifydropdown/${results.uniqueId}`);\r\n })\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n

Create a new dropdown

\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {!helperTextListName ?\r\n

Name of your dropdown

\r\n :\r\n

{helperTextListName}

\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {!helperTextListCompany ?\r\n

Select a company

\r\n :\r\n

{helperTextListCompany}

\r\n }\r\n
\r\n
\r\n setListCompany(e.target.value)}\r\n displayEmpty\r\n error={errorListCompany}\r\n style={{ width: \"100%\" }}\r\n renderValue={listCompany !== \"\" ? undefined : () => \"Company\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allUserCompanies.length < 1 &&\r\n \r\n You are not part of a company\r\n \r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allUserCompanies.map((company, index) => (\r\n \r\n {company.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!helperTextListDescription ?\r\n

Description of your dropdown

\r\n :\r\n

{helperTextListDescription}

\r\n }\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n {emptyDetails === true ?\r\n
\r\n \r\n \r\n \r\n

Please create at least one item.

\r\n
\r\n :\r\n
\r\n \r\n \r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CreateListPage;\r\nconst useStyles = makeStyles((theme) => ({\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n linkButton: {\r\n color: 'white !important',\r\n background: \"#C3996B !important\",\r\n border: \"1px solid #C3996B !important\",\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n transition: '0.3s',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n },\r\n\r\n buttonContainer: {\r\n marginTop: '15px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n float: 'right'\r\n\r\n },\r\n\r\n description__textarea: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n padding: \"8px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #BDBDBD\",\r\n borderRadius: \"4px\",\r\n resize: \"none\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n height: \"120px\",\r\n },\r\n },\r\n\r\n projectOption: {\r\n minWidth: \"240px\",\r\n maxWidth: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n projectSelectionContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n backgroundColor: \"white\",\r\n boxSizing: \"border-box\",\r\n borderRadius: \"8px\",\r\n marginBottom: \"16px\",\r\n padding: \"16px\",\r\n },\r\n\r\n projectOption__labelContainer: {\r\n display: \"flex\",\r\n gap: \"8px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n margin: \"0px\",\r\n },\r\n\r\n labelContainer__helperText: {\r\n fontSize: \"15px\",\r\n color: \"red\"\r\n },\r\n\r\n listDescriptionStyle: {\r\n width: '100%',\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n formContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n },\r\n\r\n formColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n}));","import React, { useEffect, useState, useRef } from 'react';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport DateSelectionFuture from \"../../Shared/DateSelection/DateSelectionFuture\";\r\nimport DescriptionItem from '../../Shared/DescriptionItem';\r\nimport DropdownResources from '../../Shared/Dropdowns/DropdownResources';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Grid2, Divider, Box, Tooltip } from '@mui/material';\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport TableDragResources from '../../Shared/Tables/TableDragResources';\r\nimport { Save, ChevronLeft, CircleHelp } from 'lucide-react';\r\n\r\nfunction CreatePage(props) {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n var today = new Date();\r\n var nextMonth = new Date();\r\n nextMonth.setDate(nextMonth.getDate() + 30);\r\n const [FromDate, setFromDate] = useState(today);\r\n const [ToDate, setToDate] = useState(nextMonth);\r\n const [ResourceName, setResourceName] = useState(\"\");\r\n const [selectedResource, setSelectedResource] = useState(\"\");\r\n\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n const [activeCurrency, setActiveCurrency] = useState({ symbol: '€' });\r\n\r\n const [CompanyName, setCompanyName] = useState(\"\");\r\n const [CompanyId, setCompanyId] = useState(null);\r\n const [ProjectName, setProjectName] = useState(\"\");\r\n const [companies, setCompanies] = useState([]);\r\n const [resources, setResources] = useState([]);\r\n const [projectrows, setProjectRows] = useState([]);\r\n const GetUserId = props.Login.userid;\r\n const [types, setTypes] = useState([]);\r\n const [helperTextProjectName, setHelperTextProjectName] = useState(null);\r\n const [helperTextResourceDescription, setHelperTextResourceDescription] = useState(null);\r\n const [errorProjectName, setErrorProjectName] = useState(false);\r\n const [errorResourceDescription, setErrorResourceDescription] = useState(false);\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n\r\n // TableDragResources\r\n const tableDragResourcesRef = useRef();\r\n\r\n useEffect(() => {\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then(results => {\r\n setCompanies(results);\r\n })\r\n dataService.getResources(GetUserId).then(results => {\r\n setResources(results);\r\n });\r\n dataService.getTypes().then(results => {\r\n setTypes(results.sort((a, b) => a.description.localeCompare(b.description)));\r\n });\r\n dataService.getAllCurrencies().then(results => {\r\n setAllCurrencies(results);\r\n });\r\n }, [GetUserId, props.Login.userid]);\r\n\r\n useEffect(() => {\r\n if (projectrows.length > 0) {\r\n setEmptyDetails(false);\r\n }\r\n }, [projectrows]);\r\n\r\n const setProject = (event) => {\r\n setProjectName(event.target.value);\r\n }\r\n\r\n const setTheFromDate = (event) => {\r\n if (event !== FromDate) {\r\n setFromDate(event);\r\n }\r\n }\r\n\r\n const setTheToDate = (event) => {\r\n if (event !== ToDate) {\r\n setToDate(event);\r\n }\r\n }\r\n\r\n const setDates = (fromDate, toDate) => {\r\n setToDate(toDate);\r\n setFromDate(fromDate);\r\n }\r\n\r\n // const setNewCompanyFunction = (event) => {\r\n // dataService.saveCompany(event.inputValue, props.Login.userid).then(results => {\r\n // let newCompany = { id: results.id, name: results.name };\r\n // let tempCompanies = [...companies];\r\n // tempCompanies.push(newCompany);\r\n // setCompanies(tempCompanies);\r\n // setCompanyId(results.id);\r\n // setCompanyName(results.name);\r\n // })\r\n // }\r\n\r\n const setCompany = (event) => {\r\n // for every item in projectrows, set accountId to null - accounts are linked to company so they are not transferable \r\n if (projectrows.length > 0) {\r\n let tempProjectRows = projectrows.map(row => ({\r\n ...row,\r\n edit: true,\r\n accountId: null\r\n }));\r\n\r\n setProjectRows(tempProjectRows);\r\n }\r\n\r\n\r\n if (event.target.value) {\r\n if (companies.some(x => x.name === event.target.value)) {\r\n let tempCompany = companies.find(x => x.name === event.target.value);\r\n // set activeCurrency\r\n let tempCurrency = allCurrencies.find(x => x.id === tempCompany.currencyId);\r\n setActiveCurrency(tempCurrency);\r\n setCompanyId(tempCompany.id);\r\n setCompanyName(event.target.value);\r\n }\r\n } else {\r\n setCompanyId(null);\r\n setCompanyName(\"\");\r\n }\r\n }\r\n\r\n const setResource = (event, extra) => {\r\n if (event !== null && event.value !== undefined && resources.some(x => x.id === event.value)) {\r\n var selectedResourceElement = resources.find(x => x.id === event.value);\r\n setResourceName(selectedResourceElement.name);\r\n setSelectedResource(selectedResourceElement);\r\n\r\n } else if (event !== null && event !== undefined && event.target !== undefined && event.target !== null && event.target.value !== undefined) {\r\n setResourceName(event.target.value);\r\n setSelectedResource(null);\r\n } else {\r\n setSelectedResource(null);\r\n setResourceName(\"\");\r\n }\r\n }\r\n\r\n const save = (newProjectrows) => {\r\n setProjectRows(newProjectrows);\r\n }\r\n\r\n const validateRows = async () => {\r\n if (tableDragResourcesRef.current) {\r\n try {\r\n const valid = await tableDragResourcesRef.current.validateAllRows();\r\n return valid;\r\n } catch (error) {\r\n return false; // Or handle as needed\r\n }\r\n }\r\n };\r\n\r\n const sendToApi = async () => {\r\n if (ProjectName === \"\" || ResourceName === \"\" || CompanyId === \"\" || CompanyName === \"\" || FromDate === \"\" || ToDate === \"\" || ResourceName === null || FromDate === null || ToDate === null || !(await validateRows())) {\r\n if (ProjectName === \"\") {\r\n setHelperTextProjectName(\"Please enter a project name.\");\r\n setErrorProjectName(true);\r\n }\r\n else {\r\n setHelperTextProjectName(null)\r\n setErrorProjectName(false)\r\n }\r\n if (ResourceName === \"\" || ResourceName === null) {\r\n setHelperTextResourceDescription(\"Please select or enter a registration point.\");\r\n setErrorResourceDescription(true);\r\n }\r\n else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n }\r\n }\r\n else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n setEmptyDetails(false);\r\n if (projectrows.length === 0) {\r\n setEmptyDetails(true);\r\n }\r\n else {\r\n let tempProjectDetailRows = projectrows.map(row => ({\r\n ...row,\r\n edit: false\r\n }));\r\n setProjectRows(tempProjectDetailRows);\r\n let i = 1;\r\n let projectQr;\r\n let projectDetails = projectrows.map(x => ({ description: x.description, typeId: x.type, type: x.type, sequence: i++, color: x.color, dataListId: x.dataListId, accountId: x.accountId, HasComment: x.comment, IsParent: x.isParent, IsApiParent: false, externalApiId: x.externalApiId, price: (x.price === \"\" || x.price === undefined || x.price === null ? 0 : parseFloat(String(x.price).replace(',', '.'))), isProfit: x.isProfit, valueTypeId: x.valueTypeId }));\r\n var resourceId = 0;\r\n if (selectedResource !== null && selectedResource !== undefined) {\r\n\r\n resourceId = selectedResource.id;\r\n }\r\n dataService.createNewProject(props.Login.userid, ProjectName, ResourceName, resourceId, CompanyId, CompanyName, FromDate, ToDate, projectDetails).then(result => {\r\n if (result.success === true) {\r\n toast.success('Project was saved successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n let tempFromDate = FromDate;\r\n let tempToDate = ToDate;\r\n props.actions.fromDateAction(tempFromDate);\r\n props.actions.toDateAction(tempToDate);\r\n projectQr = result.createmodel.qrCode;\r\n var navigateTo = `/modifyproject/${projectQr}`;\r\n navigate(navigateTo, { state: { from: '/create' } });\r\n }).catch((error) => {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n const renderBackButton = () => {\r\n var navigateText = \"Back to project management\";\r\n var navigateLink = \"/projectreportoverview\";\r\n if (location.state?.from !== undefined && location.state?.from !== null && location.state?.from !== \"manage\") {\r\n var string = location.state?.from;\r\n if (string.toLowerCase().includes('/taplr.app/')) {\r\n string = string.replace('/taplr.app/', '');\r\n }\r\n\r\n switch (true) {\r\n case string.toLowerCase().includes('projectreportoverview'):\r\n navigateText = \"Back to project overview\";\r\n navigateLink = \"/\" + string;\r\n break;\r\n case string === '/':\r\n navigateText = \"Back to homepage\";\r\n navigateLink = \"/\";\r\n break;\r\n case string.toLowerCase().includes('results'):\r\n navigateText = \"Back to results\";\r\n navigateLink = \"/\" + string;\r\n break;\r\n default:\r\n navigateText = \"Back to project management\";\r\n navigateLink = \"/\" + string;\r\n break;\r\n }\r\n }\r\n\r\n return \r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {renderBackButton()}\r\n\r\n

Create your project

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n {/* dropdown to select a company from companies and set it */}\r\n \r\n\r\n {/* */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {!CompanyId &&\r\n
\r\n
\r\n

Please select a company to continue creating the project

\r\n
\r\n
\r\n }\r\n \r\n \r\n \r\n \r\n {emptyDetails &&\r\n

Please create at least one item.

\r\n }\r\n
\r\n
\r\n\r\n \r\n {/* */}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CreatePage;\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxSizing: \"border-box\",\r\n position: 'relative',\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n maxWidth: \"100%\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n qrButton: {\r\n backgroundColor: \"#C3996B\"\r\n },\r\n buttonContainer: {\r\n marginTop: '15px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n float: 'right'\r\n },\r\n dropdown: {\r\n width: \"100%\",\r\n height: \"56px\",\r\n borderRadius: \"5px\",\r\n border: \"1px solid #d3d3d3d\",\r\n padding: \"0.5rem\",\r\n\r\n fontSize: \"16px\",\r\n },\r\n\r\n projectOptions: {\r\n display: 'flex',\r\n gap: \"16px\",\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap'\r\n },\r\n marginBottom: '16px'\r\n },\r\n\r\n projectOption: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n [theme.breakpoints.up('sm')]: {\r\n width: \"33%\",\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n },\r\n },\r\n\r\n projectOption__labelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\"\r\n },\r\n\r\n labelContainer__help: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n display: \"block\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n transition: \"color ease-in 0.2s\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41, 1)\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n projectOptionsContainer: {\r\n position: \"relative\",\r\n },\r\n\r\n notAccessibleContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(255, 255, 255, 0.6)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n notAccessibleCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n notAccessibleCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n notAccessibleCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n}));","import React, { useState, useRef, useCallback, useEffect } from \"react\";\r\nimport { FilteringState, GroupingState, IntegratedGrouping, IntegratedPaging, IntegratedSorting, IntegratedFiltering, PagingState, SortingState, DataTypeProvider, SummaryState, IntegratedSummary, IntegratedSelection, SelectionState, } from \"@devexpress/dx-react-grid\";\r\nimport { ExportPanel, Grid, DragDropProvider, GroupingPanel, PagingPanel, TableFilterRow, TableGroupRow, TableSummaryRow, TableHeaderRow, Toolbar, TableSelection, VirtualTable, } from \"@devexpress/dx-react-grid-material-ui\";\r\nimport { IconButton, Tooltip, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from '@mui/material';\r\nimport { GridExporter } from '@devexpress/dx-react-grid-export';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ProjectButton from './ProjectButton';\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport saveAs from \"file-saver\";\r\nimport { BadgeCheck, BadgeMinus, Trash2 } from 'lucide-react';\r\n\r\nimport { measurementsTableColumnExtensions, resultGroupingColumnExtensions, filteringStateColumnExtensions, resultColumns, controlTypes } from \"../../../../Config/constants\"\r\nimport { getCurrentDateTimeString, formatDate, formatToTimeString } from \"../../../../Utils/dateHelper\"\r\n\r\nexport default function MeasurementsTable(props) {\r\n const [grouping, setGrouping] = useState([]);\r\n const [data, setData] = useState([]);\r\n const [imageDialogOpen, setImageDialogOpen] = useState(false);\r\n const [image, setImage] = useState(\"\");\r\n const [description, setDescription] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(props.data))) {\r\n setData(props.data);\r\n }\r\n }, [props.data])\r\n\r\n const classes = useStyles();\r\n\r\n //Export excel\r\n const onSave = (workbook) => {\r\n var fileName = \"registrations_\" + getCurrentDateTimeString() + \".xlsx\";\r\n workbook.xlsx.writeBuffer().then((buffer) => {\r\n saveAs(\r\n new Blob([buffer], { type: \"application/octet-stream\" }),\r\n fileName\r\n );\r\n });\r\n\r\n\r\n };\r\n\r\n const exporterRef = useRef(null);\r\n const startExport = useCallback((options) => {\r\n exporterRef.current.exportGrid(options);\r\n }, [exporterRef]);\r\n\r\n\r\n const tableMessages = {\r\n sum: \"Sum\",\r\n contains: \"Contains\",\r\n noData: \"No measurements available\"\r\n\r\n };\r\n\r\n\r\n const startTimeFormatter = (row) => (\r\n \r\n {row.value !== null && row.value !== \"\" ?
{formatDate(row.value).split(\" \")[0]}
{formatDate(row.value).split(\" \")[1]}
: \"\"}\r\n
\r\n );\r\n\r\n const finishedFormatter = (row) => (\r\n \r\n {row.value ?\r\n \r\n :\r\n \r\n }\r\n \r\n );\r\n\r\n const valueTypeFormatter = (row) => {\r\n switch (row.value) {\r\n case \"Value added\":\r\n return
Value added
;\r\n case \"No value added\":\r\n return
No value added
;\r\n case \"Waste\":\r\n return
Waste
;\r\n default:\r\n return
Unknown
;\r\n }\r\n }\r\n\r\n const valueFormatter = (row) => {\r\n if (row.row !== undefined) {\r\n if (row.column.name === \"commentText\" && row.row !== undefined && row.row.commentImage !== \"\" && row.row.commentImage !== null && row.row.commentImage !== undefined) {\r\n return
\r\n {(row.value !== null && row.value !== undefined && row.value !== \"\") && {row.value}}\r\n handleDialogOpen(row.row.imageId, row.row.description, row.row.commentImage)}>\r\n \"\"\r\n\r\n \r\n
\r\n }\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n if (row.column.name === \"measurementValue\" && row.row.typeId === controlTypes.STOPWATCH && row.row.integerValue) {\r\n const totalSeconds = row.row.integerValue;\r\n\r\n // Calculate hours, minutes, and seconds\r\n const hours = Math.floor(totalSeconds / 3600);\r\n const minutes = Math.floor((totalSeconds % 3600) / 60);\r\n const seconds = totalSeconds % 60;\r\n\r\n // Format each part to ensure two digits\r\n const formattedTime = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\r\n return formattedTime;\r\n } else {\r\n return \"-\";\r\n }\r\n } else if (row.row.typeId === controlTypes.CAMERA) {\r\n return handleDialogOpen(row.row.imageId, row.row.description)}>\r\n \"\"\r\n\r\n \r\n } else {\r\n return row.value;\r\n }\r\n } else {\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n return \"-\";\r\n } else {\r\n return row.value;\r\n }\r\n }\r\n }\r\n\r\n const priceFormatter = (row) => {\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n return \"-\";\r\n } else {\r\n const formatPrice = (price) => {\r\n return price\r\n .toFixed(2) // Ensure two decimal places\r\n .replace('.', ',') // Replace decimal point with comma\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' '); // Add space as thousands separator\r\n };\r\n\r\n return (\r\n

\r\n €{formatPrice(row.value)}\r\n

\r\n );\r\n }\r\n };\r\n\r\n const handleDeleteRecord = (measurementId) => {\r\n props.handleDeleteMeasurement(measurementId);\r\n };\r\n\r\n\r\n const actionFormatter = (row) => {\r\n return (\r\n <>\r\n x.projectId === row.row.projectId)} />\r\n \r\n handleDeleteRecord(row.row.id)}>\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const handleDialogOpen = (imageId, description, commentImage) => {\r\n if (imageId !== null && imageId !== undefined && imageId !== 0) {\r\n dataService.GetImageById(imageId).then(response => {\r\n setImage(response.image);\r\n setDescription(description);\r\n setImageDialogOpen(true);\r\n }).catch((error) => {\r\n console.log('Error: ', error);\r\n toast.error(`Something went wrong`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n })\r\n } else if (commentImage !== \"\" && commentImage !== undefined && commentImage !== null) {\r\n setImage(commentImage);\r\n setDescription(description);\r\n setImageDialogOpen(true);\r\n } else {\r\n toast.error(`Something went wrong`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n }\r\n\r\n }\r\n\r\n const CustomGroupRowContent = ({ row, column, children }) => {\r\n var filterData = JSON.parse(JSON.stringify(data));\r\n const summary = row.value;\r\n var count = 0;\r\n var counterMessage = \"\";\r\n var timerMessage = \"\";\r\n const key = grouping.findIndex(item => item.columnName === row.groupedBy);\r\n var arrCompoundKey = row.compoundKey.split('|');\r\n var groupBySubLevel = [];\r\n if (key > 0) {\r\n //sub level\r\n grouping.map((x, index) => {\r\n groupBySubLevel = groupByColumnName(filterData, x.columnName);\r\n filterData = groupBySubLevel[arrCompoundKey[index]];\r\n })\r\n }\r\n\r\n const groupedRows = filterData.filter(r => r[row.groupedBy] === row.value);\r\n if (groupedRows !== undefined) {\r\n count = groupedRows.length;\r\n var counterRows = groupedRows.filter(x => x.typeId === controlTypes.COUNTER);\r\n var timerRows = groupedRows.filter(x => x.typeId === controlTypes.STOPWATCH);\r\n if (counterRows.length > 0) {\r\n var groupedByDetail = groupByColumnName(counterRows, \"detailId\")\r\n var total = 0;\r\n\r\n Object.entries(groupedByDetail).map(([key, value]) => {\r\n var grouped = groupByColumnName(value, \"measurementSessionId\")\r\n Object.entries(grouped).map(([key, value]) => {\r\n total = total + value[0].measurementValue;\r\n });\r\n });\r\n counterMessage = total; // Use the formatted message\r\n }\r\n\r\n if (timerRows.length > 0) {\r\n var total = 0;\r\n timerRows.map(x => { total = total + x.integerValue; })\r\n timerMessage = formatToTimeString(total);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {/* {children} */}\r\n
\r\n
\r\n {children !== null ? children : summary}\r\n\r\n
\r\n \r\n {/* {counterMessage !== \"\" && ( */}\r\n <> Counter total: {counterMessage ? counterMessage : \"-\"}\r\n {/* )} */}\r\n \r\n {/* {counterMessage !== \"\" && timerMessage !== \"\" && ` - `} */}\r\n \r\n\r\n {/* {timerMessage !== \"\" && timerMessage !== undefined && ( */}\r\n <> Total time: {timerMessage ? timerMessage : '-'}\r\n {/* )} */}\r\n\r\n \r\n\r\n \r\n Count: {count}\r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n };\r\n\r\n\r\n\r\n const groupByColumnName = (array, columnName) => {\r\n //Function to group all measurments by the given columnName\r\n return array.reduce((result, item) => {\r\n const key = item[columnName]; // Dynamically get the key value\r\n if (!result[key]) {\r\n result[key] = []; // Initialize the group if it doesn't exist\r\n }\r\n result[key].push(item); // Add the current item to the group\r\n return result;\r\n }, {});\r\n };\r\n\r\n\r\n const handleDialogClose = () => {\r\n setImageDialogOpen(false);\r\n }\r\n\r\n const formatlessSummaryTypes = ['customTotal'];\r\n const messages = {\r\n customTotal: 'Price higher than $6000',\r\n count: 'count'\r\n\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n\r\n {/* DataTypeProviders are used to format the data, like dates or the valuetype (we show these as a pill) */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n row.id} />\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n {imageDialogOpen &&\r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n \"\"\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n valueStyle: {\r\n whiteSpace: 'wrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: 'block',\r\n maxWidth: '250px'\r\n },\r\n closeButton: {\r\n gap: \"8px\",\r\n backgroundColor: '#0B4097 !important',\r\n border: \"1px solid #0B4097 !important\",\r\n color: 'white !important',\r\n \"&:hover\": {\r\n background: \"white !important\",\r\n color: '#0B4097 !important',\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n tableHeadRow: {\r\n\r\n },\r\n tableHead: {\r\n height: '42px',\r\n borderRight: '2px solid #e6ecf0',\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n imageStyle: {\r\n marginTop: '15px',\r\n height: '100px',\r\n width: '100px'\r\n },\r\n\r\n chip__grey: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#EDEDED\",\r\n color: \"#7C7C7C\"\r\n },\r\n chip__green: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#E2F8E0\",\r\n color: \"#3AB037\"\r\n },\r\n chip__orange: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#FEF1D6\",\r\n color: \"#E76F0F\"\r\n },\r\n\r\n chip__red: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#FBE5E5\",\r\n color: \"#D84949\"\r\n },\r\n\r\n eventPrice: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n textAlign: \"right\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n padding: \"16px\",\r\n margin: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n textAlign: \"center\",\r\n margin: \"0px\",\r\n },\r\n}));","import React from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport * as Actions from '../../../../Reducers/actions'\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Tooltip, IconButton } from '@mui/material';\r\n\r\nimport { Info } from 'lucide-react';\r\n\r\nimport { dataService } from \"../../../../Services/data/data.service\";\r\n\r\n\r\nfunction ProjectButton(props) {\r\n const navigate = useNavigate();\r\n\r\n const SaveAndRedirect = () => {\r\n\r\n navigate(`/modifyproject/${props.data.qrCode}`);\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n projects: state.projects,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(ProjectButton);","import React, { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useNavigate } from 'react-router-dom';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Fab, IconButton, Divider, Typography, Box, Grid2, Dialog, DialogActions, DialogTitle, DialogContent, DialogContentText, Button, ToggleButton, ToggleButtonGroup } from '@mui/material';\r\nimport { ArrowUp, CalendarClock, Trash2, Pencil, Plus, Search, Factory, X } from 'lucide-react';\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport { GraphFilterTypes, resultColumns, valueTypeCodes, externalApiTypes, controlTypes } from '../../../Config/constants';\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport DropdownCompanies from '../../Shared/Dropdowns/DropdownCompanies';\r\nimport MeasurementsTable from './Components/MeasurementsTable';\r\n\r\n\r\nfunction DataManagementPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [graphList, setGraphList] = useState([]);\r\n const [originalGraphList, setOriginalGraphList] = useState([]); // List of all graphs\r\n const [allGraphConfigurations, setAllGraphConfigurations] = useState([]);\r\n const initialProjectList = useRef([]);\r\n const firstLoad = useRef(false);\r\n const [loadAmount, setLoadAmount] = useState(21);\r\n const [deleteGraphId, setDeleteGraphId] = useState(null);\r\n\r\n // Measurements\r\n const [allMeasurements, setAllMeasurements] = useState([]);\r\n const [measurementRows, setMeasurementRows] = useState([]);\r\n\r\n // Measurements table\r\n const [selection, setSelection] = useState([]);\r\n const [measurementIdSelection, setMeasurementIdSelection] = useState([]);\r\n\r\n // Filtering\r\n const [allCompanies, setAllCompanies] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState(null);\r\n\r\n // Delete\r\n const [measurementsToDelete, setMeasurementsToDelete] = useState([]);\r\n const [deleteMeasurementsDialogOpen, setDeleteMeasurementsDialogOpen] = useState(false);\r\n\r\n const [filters, setFilters] = useState([]);\r\n const [filteringDateRange, setFilteringDateRange] = useState(false);\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n\r\n const currentDate = new Date();\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n // Fetch all userCompanies\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then((companies) => {\r\n setAllCompanies(companies);\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n });\r\n\r\n dataService.getAllMeasurementsByUserId(props.Login.userid).then((measurements) => {\r\n setAllMeasurements(measurements);\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n let tempMeasurementRows = [];\r\n if (allMeasurements.length > 0) {\r\n tempMeasurementRows = allMeasurements.map(measurement => ({\r\n accountId: measurement.accountId,\r\n accountName: measurement.accountName,\r\n accountCategoryId: measurement.accountCategoryId,\r\n accountCategoryName: measurement.accountCategoryName,\r\n checked: false,\r\n projectId: measurement.projectId,\r\n toDate: measurement.toDate,\r\n fromDate: measurement.fromDate,\r\n color: measurement.color,\r\n id: measurement.id,\r\n typeId: measurement.typeId,\r\n valueTypeId: measurement.valueTypeId,\r\n companyId: measurement.companyId,\r\n qrCode: measurement.qrCode,\r\n companyName: measurement.companyName,\r\n detailId: measurement.projectDetailId,\r\n projectName: measurement.projectName,\r\n resourceName: measurement.resourceName,\r\n description: measurement.description,\r\n startTime: measurement.startTime,\r\n stopTime: measurement.stopValue,\r\n insertedOn: new Date(measurement.insertedOn),\r\n updatedOn: measurement.stopTime,\r\n measurementSessionId: measurement.measurementSessionId,\r\n measurementValue: getMeasurementValue(measurement.typeId, measurement.externalApiTypeId, measurement.textValue, measurement.integerValue, measurement.dateValue, measurement.dataListValue, measurement.imageLink, measurement.externalApiValues),\r\n integerValue: measurement.integerValue,\r\n running: measurement.running,\r\n thumbnail: measurement.thumbnail,\r\n imageId: measurement.imageId,\r\n commentText: getCommentText(measurement.typeId, measurement.externalApiTypeId, measurement.textValue, measurement.commentText),\r\n commentImage: measurement.commentImage,\r\n commentId: measurement.commentId,\r\n valueType: getValueType(measurement.valueTypeId),\r\n keyValue: measurement.keyValue,\r\n eventPrice: getEventPrice(measurement),\r\n externalApiTypeId: measurement.externalApiTypeId,\r\n }));\r\n\r\n setMeasurementRows(tempMeasurementRows);\r\n\r\n let indexes = tempMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n }\r\n }, [allMeasurements]);\r\n\r\n const getMeasurementValue = (typeId, externalApiTypeId, text, int, time, dataListValue, imageLink, externalApiValue) => {\r\n switch (typeId) {\r\n case 1: return int;\r\n case 2:\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n case 3: return text;\r\n case 4: return dataListValue;\r\n case 5: return text;\r\n case 6: return imageLink;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return text;\r\n }\r\n return text;\r\n default: return ''\r\n // eslint-disable-next-line \r\n }\r\n };\r\n\r\n const getCommentText = (typeId, externalApiTypeId, text, commentText) => {\r\n switch (typeId) {\r\n case 1: return commentText;\r\n case 2: return commentText;\r\n case 3: return commentText;\r\n case 4: return commentText;\r\n case 5: return commentText;\r\n case 6: return commentText;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n return text;\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return commentText;\r\n }\r\n return commentText;\r\n default: return ''\r\n // eslint-disable-next-line\r\n }\r\n };\r\n\r\n const getValueType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA:\r\n return 'Value added';\r\n case valueTypeCodes.NVA:\r\n return 'No value added';\r\n case valueTypeCodes.W:\r\n return 'Waste';\r\n default:\r\n return 'Unknown'\r\n }\r\n };\r\n\r\n const getEventPrice = (measurement) => {\r\n if (measurement.price === null || measurement.price === undefined || measurement.price == 0) {\r\n return 0;\r\n } else {\r\n if (measurement.typeId === controlTypes.STOPWATCH || (measurement.typeId === controlTypes.EXTERNALAPI && measurement.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n if (measurement.startValue && measurement.stopValue) {\r\n const startTime = new Date(measurement.startValue);\r\n const stopTime = new Date(measurement.stopValue);\r\n const durationInSeconds = (stopTime - startTime) / 1000; // Convert to seconds\r\n return parseFloat((measurement.price / 3600) * durationInSeconds.toFixed(2));\r\n } else {\r\n return 0;\r\n }\r\n } else {\r\n return measurement.price;\r\n }\r\n }\r\n };\r\n\r\n const onSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(measurementRows));\r\n const selectedIds = e.map(index => tempRows[index].id);\r\n setSelection(e)\r\n }\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setFilteringDateRange(true);\r\n } else {\r\n setFilteringDateRange(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n filterGraphs(filters);\r\n }, [filteringDateRange, startDate, endDate])\r\n\r\n const handleSetStartDate = (event) => {\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n setDateRange(null, null)\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n\r\n setFilters(tempFilters);\r\n filterGraphs(tempFilters);\r\n }\r\n\r\n const filterGraphs = (thisFilters) => {\r\n let varFilteredGraphs = [...originalGraphList];\r\n if (filteringDateRange) {\r\n varFilteredGraphs = varFilteredGraphs.filter(x => new Date(x.updatedOn || x.insertedOn) > new Date(startDate) && new Date(x.updatedOn || x.insertedOn) < new Date(endDate))\r\n }\r\n\r\n for (let i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case GraphFilterTypes.GENERAL:\r\n varFilteredGraphs = varFilteredGraphs.filter(x =>\r\n x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()) ||\r\n x.name.toLowerCase().includes(filter.filterValue.toLowerCase())\r\n );\r\n break;\r\n default:\r\n varFilteredGraphs = varFilteredGraphs.filter(x => x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n }\r\n }\r\n setGraphList(varFilteredGraphs);\r\n }\r\n\r\n const handleDeleteMeasurement = (measurementId) => {\r\n setMeasurementsToDelete([...measurementsToDelete, measurementId]);\r\n setDeleteMeasurementsDialogOpen(true);\r\n };\r\n\r\n const handleBatchDelete = () => {\r\n // find the id's of the measurements in selection and add them to the delete list\r\n let tempMeasurementsToDelete = [...measurementsToDelete];\r\n selection.forEach(index => {\r\n tempMeasurementsToDelete.push(measurementRows[index].id);\r\n });\r\n\r\n setMeasurementsToDelete(tempMeasurementsToDelete);\r\n setDeleteMeasurementsDialogOpen(true);\r\n }\r\n\r\n const deleteSelectedMeasurements = () => {\r\n dataService.setMeasurementsInactiveByIdList(measurementsToDelete).then((result) => {\r\n toast.success(`The measurements were removed`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n let tempMeasurementRows = [...measurementRows];\r\n let tempSelection = [...selection];\r\n measurementsToDelete.forEach(measurementId => {\r\n let index = tempMeasurementRows.findIndex(x => x.id === measurementId);\r\n if (index > -1) {\r\n tempMeasurementRows.splice(index, 1);\r\n let selectionIndex = tempSelection.findIndex(x => x === index);\r\n if (selectionIndex > -1) {\r\n tempSelection.splice(selectionIndex, 1);\r\n }\r\n }\r\n });\r\n setMeasurementRows(tempMeasurementRows);\r\n setSelection([]);\r\n setMeasurementsToDelete([]);\r\n handleCloseDeleteMeasurementsDialog();\r\n }).catch((error) => {\r\n console.log(error);\r\n toast.error(`A problem occured while deleting the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n });\r\n }\r\n\r\n const handleCloseDeleteMeasurementsDialog = () => {\r\n setDeleteMeasurementsDialogOpen(false);\r\n setMeasurementsToDelete([]);\r\n };\r\n\r\n return (\r\n \r\n {loading &&\r\n
\r\n }\r\n \r\n \r\n
\r\n

Datamanagement

\r\n {/* {selection.length > 0 && */}\r\n \r\n {/* } */}\r\n
\r\n {/*
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
*/}\r\n
\r\n \r\n
\r\n
\r\n {(deleteMeasurementsDialogOpen) &&\r\n handleCloseDeleteMeasurementsDialog()}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n
\r\n \r\n Delete measurement{measurementsToDelete.length > 1 ? \"s\" : \"\"}\r\n \r\n \r\n
\r\n \r\n
\r\n

Are you sure you want to delete {measurementsToDelete.length} measurement{measurementsToDelete.length > 1 ? \"s\" : \"\"}?

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default DataManagementPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxSizing: \"border-box\",\r\n\r\n borderRadius: \"8px\",\r\n maxWidth: \"90%\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginTop: \"148px\",\r\n marginBottom: \"24px\",\r\n },\r\n deleteButton: {\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n border: \"1px solid #D84949 !important\",\r\n borderRadius: \"4px\",\r\n fontSize: \"16px\",\r\n color: \"#D84949 !important\",\r\n backgroundColor: \"transparent\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n transition: \"all 0.2s ease-in-out\",\r\n \"&:hover\": {\r\n border: \"1px solid #D84949\",\r\n backgroundColor: \"#D84949\",\r\n color: \"white !important\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n position: 'fixed',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n searchContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n search__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '8px',\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tableManagementContainer__deleteButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#D84949\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n userSelect: \"none\",\r\n opacity: \"1\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n // [theme.breakpoints.down('sm')]: {\r\n // height: \"40px\",\r\n // paddingLeft: \"8px\",\r\n // },\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n \"&:disabled\": {\r\n opacity: \"0\",\r\n visibility: \"hidden\",\r\n cursor: \"default\",\r\n },\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n measurementsTableContainer: {\r\n height: \"900px\",\r\n backgroundColor: \"white\",\r\n padding: \"16px\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '320px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n lineHeight: '100% !important',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 8px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"8px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#FDF3F3\",\r\n backgroundColor: \"#D84949\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"FDF3F3\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n}));","import React from 'react';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';\r\n\r\nfunction DropdownCompanyAdd(props) {\r\n\r\n const dropdownList = props.companies.map(x => { return { label: x.name, value: x.id } })\r\n const filter = createFilterOptions();\r\n\r\n return (\r\n {\r\n const filtered = filter(options, params);\r\n const { inputValue } = params;\r\n // Suggest the creation of a new value\r\n const isExisting = options.some((option) => inputValue === option.label);\r\n if (inputValue !== '' && !isExisting) {\r\n filtered.push({\r\n inputValue,\r\n label: `Add \"${inputValue}\"`,\r\n });\r\n }\r\n return filtered;\r\n }}\r\n freeSolo\r\n value = {props.value}\r\n options={dropdownList.sort((a, b) => a.label.localeCompare(b.label))}\r\n getOptionLabel={(option) => {\r\n // Value selected with enter, right from the input\r\n if (typeof option === 'string') {\r\n return option;\r\n }\r\n // Add \"xxx\" option created dynamically\r\n if (option.inputValue) {\r\n return option.inputValue;\r\n }\r\n // Regular option\r\n return option.label;\r\n }}\r\n inputValue={props.value? props.value:\"\"}\r\n onInputChange={(e) => props.action(e)}\r\n renderOption={(props, option) =>
  • {option.label}
  • }\r\n onChange={(event, newValue) => {\r\n if (typeof newValue === 'string') {\r\n props.action(newValue)\r\n props.action2(newValue)\r\n } else if (newValue && newValue.inputValue) {\r\n props.action2(newValue)\r\n props.action(newValue)\r\n } else {\r\n props.action(event)\r\n }\r\n\r\n }} renderInput={(params) => props.action(event)} />}\r\n />\r\n );\r\n}\r\n\r\nexport default DropdownCompanyAdd","import React, { useEffect, useState, useRef } from 'react';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport DateSelectionFuture from \"../../Shared/DateSelection/DateSelectionFuture\";\r\nimport TableDragResources from '../../Shared/Tables/TableDragResources';\r\nimport DescriptionItem from '../../Shared/DescriptionItem';\r\nimport DropdownCompanyAdd from './Components/DropdownCopmanyAdd';\r\nimport DropdownResources from '../../Shared/Dropdowns/DropdownResources';\r\nimport ButtonNormalText from '../../Shared/Buttons/ButtonNormalText';\r\nimport ButtonSave from '../../Shared/Buttons/ButtonSave';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Grid2, Divider, DialogTitle, DialogContentText, DialogContent, DialogActions, Dialog, Box, Typography, Tooltip } from '@mui/material';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Save, CircleHelp } from 'lucide-react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { toast } from 'react-toastify';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Spin } from \"react-cssfx-loading\";\r\n\r\nfunction DuplicatePage(props) {\r\n const classes = useStyles();\r\n const { projectQr } = useParams();\r\n\r\n const [FromDate, setFromDate] = useState(new Date());\r\n const [ToDate, setToDate] = useState(new Date());\r\n const [ResourceName, setResourceName] = useState(\"\");\r\n const [CompanyName, setCompanyName] = useState(\"\");\r\n const [CompanyId, setCompanyId] = useState(null);\r\n const [ProjectName, setProjectName] = useState(\"\");\r\n const [companies, setCompanies] = useState([]);\r\n const [resources, setResources] = useState([]);\r\n const [types, setTypes] = useState([]);\r\n const [selectedResource, setSelectedResource] = useState(\"\");\r\n\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n const [activeCurrency, setActiveCurrency] = useState({ symbol: '€' });\r\n\r\n // TableDragResources\r\n const tableDragResourcesRef = useRef();\r\n\r\n const [projectRows, setProjectRows] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [defopen, setDefOpen] = useState(false);\r\n const navigate = useNavigate();\r\n const GetUserId = props.Login.userid;\r\n const [helperTextProjectName, setHelperTextProjectName] = useState(null);\r\n const [helperTextCompany, setHelperTextCompany] = useState(null);\r\n const [helperTextResourceDescription, setHelperTextResourceDescription] = useState(null);\r\n const [errorProjectName, setErrorProjectName] = useState(false);\r\n const [errorCompany, setErrorCompany] = useState(false);\r\n const [errorResourceDescription, setErrorResourceDescription] = useState(false);\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n if (allCurrencies.length > 0 && CompanyId !== null) {\r\n let selectedCompany = companies.find(x => x.id === CompanyId);\r\n let currency = allCurrencies.find(x => x.id === selectedCompany.currencyId);\r\n if (currency !== undefined) {\r\n setActiveCurrency(currency);\r\n }\r\n };\r\n }, [CompanyId, allCurrencies])\r\n\r\n useEffect(() => {\r\n var project;\r\n let tempProjectDetailRows = [];\r\n Promise.all([\r\n dataService.getAllCompaniesByUserId(props.Login.userid),\r\n dataService.getResources(props.Login.userid),\r\n dataService.getTypes(),\r\n dataService.getProjectByQr(projectQr),\r\n dataService.getProjectDetailsByQr(projectQr),\r\n dataService.getAllCurrencies()\r\n ]).then((results) => {\r\n //Set result-variables\r\n var companyResults = results[0];\r\n var resourcesResults = results[1];\r\n var typeResults = results[2];\r\n var projectResults = results[3];\r\n var projectDetailsResults = results[4];\r\n let allCurrencies = results[5];\r\n setCompanies(companyResults);\r\n setResources(resourcesResults);\r\n setAllCurrencies(allCurrencies);\r\n\r\n if (typeResults !== null) {\r\n setTypes(typeResults.sort((a, b) => a.description.localeCompare(b.description)));\r\n }\r\n\r\n if (projectResults !== null) {\r\n project = projectResults;\r\n } else {\r\n project = null;\r\n }\r\n if (projectDetailsResults !== null) {\r\n\r\n if (projectDetailsResults.some(x => x.id)) {\r\n tempProjectDetailRows = projectDetailsResults.map(x => ({\r\n comment: x.hasComment,\r\n isParent: x.isParent,\r\n color: x.color,\r\n typeId: x.typeId,\r\n type: x.typeId,\r\n description: x.description,\r\n Id: x.id,\r\n edit: false,\r\n accountId: x.accountId,\r\n sequence: x.sequence,\r\n dataListId: x.dataListId,\r\n externalApiId: x.externalApiId,\r\n price: x.price,\r\n isProfit: x.isProfit,\r\n costProfit: (x.isProfit ? '+' : '-'),\r\n valueTypeId: x.valueTypeId\r\n }));\r\n }\r\n }\r\n\r\n }).catch((error) => {\r\n toast.error('Something went wrong while fetching the data.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n if (project !== null) {\r\n setProjectName(project.projectName);\r\n setCompanyName(project.companyName);\r\n setCompanyId(project.companyId);\r\n setResourceName(project.resourceDescription);\r\n\r\n let fDate = \"\";\r\n if (project.timeRangeBegin !== null) {\r\n fDate = new Date(project.timeRangeBegin);\r\n }\r\n else {\r\n fDate = new Date();\r\n }\r\n fDate.setHours(12, 0, 0, 0);\r\n setFromDate(fDate);\r\n let tDate = \"\";\r\n if (project.timeRangeEnd !== null) {\r\n tDate = new Date(project.timeRangeEnd);\r\n }\r\n else {\r\n tDate = new Date();\r\n }\r\n tDate.setHours(12, 0, 0, 0);\r\n setToDate(tDate);\r\n }\r\n if (tempProjectDetailRows !== undefined && tempProjectDetailRows !== null) {\r\n tempProjectDetailRows = tempProjectDetailRows.sort((a, b) => a.sequence - b.sequence);\r\n }\r\n setProjectRows(tempProjectDetailRows);\r\n setLoading(false);\r\n\r\n })\r\n\r\n }, [GetUserId, projectQr, props.Login.userid])\r\n\r\n const setProject = (event) => {\r\n setProjectName(event.target.value);\r\n }\r\n\r\n const setTheFromDate = (event) => {\r\n setFromDate(event);\r\n }\r\n\r\n const setTheToDate = (event) => {\r\n setToDate(event);\r\n }\r\n\r\n const handleDialogClose = () => {\r\n setOpen(false);\r\n }\r\n\r\n const handleDialogCloseDef = () => {\r\n setDefOpen(false);\r\n }\r\n\r\n const setNewCompanyFunction = (event) => {\r\n dataService.saveCompany(event.inputValue, GetUserId).then(results => {\r\n let newCompany = { id: results.id, name: results.name };\r\n let tempCompanies = [...companies];\r\n tempCompanies.push(newCompany);\r\n setCompanies(tempCompanies);\r\n setCompanyId(results.id);\r\n setCompanyName(results.name);\r\n })\r\n }\r\n\r\n const setCompany = (event) => {\r\n if (projectRows.length > 0) {\r\n let tempProjectDetailRows = projectRows.map(row => ({\r\n ...row,\r\n edit: true,\r\n accountId: null\r\n }));\r\n\r\n setProjectRows(tempProjectDetailRows);\r\n }\r\n if (event.inputValue) {\r\n if (companies.some(x => x.name === event.inputValue)) {\r\n setCompanyId(companies.find(x => x.name === event.inputValue).id);\r\n setCompanyName(event.inputValue);\r\n }\r\n }\r\n else {\r\n if (event.target.textContent) {\r\n if (companies.some(x => x.name === event.target.textContent)) {\r\n setCompanyId(companies.find(x => x.name === event.target.textContent).id);\r\n setCompanyName(event.target.textContent);\r\n }\r\n }\r\n else {\r\n\r\n if (companies.some(x => x.name === event.target.value)) {\r\n setCompanyId(companies.find(x => x.name === event.target.value).id);\r\n }\r\n setCompanyName(event.target.value);\r\n }\r\n }\r\n\r\n }\r\n\r\n const setResource = (event, extra) => {\r\n if (event !== null && event.value !== undefined && resources.some(x => x.id === event.value)) {\r\n var selectedResourceElement = resources.find(x => x.id === event.value);\r\n setResourceName(selectedResourceElement.name);\r\n setSelectedResource(selectedResourceElement);\r\n\r\n } else if (event !== null && event !== undefined && event.target !== undefined && event.target !== null && event.target.value !== undefined) {\r\n setResourceName(event.target.value);\r\n setSelectedResource(null);\r\n } else {\r\n setSelectedResource(null);\r\n setResourceName(\"\");\r\n }\r\n }\r\n\r\n const validateRows = async () => {\r\n if (tableDragResourcesRef.current) {\r\n try {\r\n const valid = await tableDragResourcesRef.current.validateAllRows();\r\n return valid;\r\n } catch (error) {\r\n return false; // Or handle as needed\r\n }\r\n }\r\n };\r\n\r\n const sendToApi = async () => {\r\n if (ProjectName === \"\" || ResourceName === \"\" || CompanyId === \"\" || CompanyName === \"\" || FromDate === \"\" || ToDate === \"\" || ResourceName === null || FromDate === null || ToDate === null || !(await validateRows())) {\r\n if (ProjectName === \"\") {\r\n setHelperTextProjectName(\"Please enter a project name.\");\r\n setErrorProjectName(true);\r\n }\r\n else {\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n }\r\n if (ResourceName === \"\" || ResourceName === null || ResourceName === undefined) {\r\n setHelperTextResourceDescription(\"Please select or enter a registration point.\");\r\n setErrorResourceDescription(true);\r\n }\r\n else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n }\r\n if (CompanyId === \"\" || CompanyId === null || CompanyName === \"\" || CompanyName === null || CompanyName === undefined) {\r\n setHelperTextCompany(\"Please Select or Create a Company.\");\r\n setErrorCompany(true);\r\n }\r\n else {\r\n setHelperTextCompany(null);\r\n setErrorCompany(false);\r\n }\r\n }\r\n else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n setHelperTextCompany(null);\r\n setErrorCompany(false);\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n setEmptyDetails(false);\r\n if (projectRows.length === 0) {\r\n setEmptyDetails(true);\r\n }\r\n else {\r\n let tempProjectDetailRows = projectRows.map(row => ({\r\n ...row,\r\n edit: false\r\n }));\r\n setProjectRows(tempProjectDetailRows);\r\n let i = 1;\r\n let projectDetails = projectRows.map(x => ({ description: x.description, typeId: x.type, type: x.type, sequence: i++, color: x.color, dataListId: x.dataListId, accountId: x.accountId, HasComment: x.comment, IsParent: x.isParent, externalApiId: x.externalApiId, price: (x.price === \"\" || x.price === undefined || x.price === null ? 0 : parseFloat(String(x.price).replace(',', '.'))), isProfit: x.isProfit, valueTypeId: x.valueTypeId })).sort((a, b) => b.sequence + a.sequence);\r\n var resourceId = 0;\r\n if (selectedResource !== null && selectedResource !== undefined) {\r\n resourceId = selectedResource.id;\r\n }\r\n dataService.createNewProject(GetUserId, ProjectName, ResourceName, resourceId, CompanyId, CompanyName, FromDate, ToDate, projectDetails).then(result => {\r\n if (result.success === true) {\r\n toast.success('Project was saved successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n navigate(`/modifyproject/${result.createmodel.qrCode}`);\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n const setDates = (fromDate, toDate) => {\r\n setTheToDate(toDate);\r\n setTheFromDate(fromDate);\r\n }\r\n\r\n const save = (newProjectRows) => {\r\n setProjectRows(newProjectRows);\r\n }\r\n return (\r\n \r\n {loading &&\r\n
    \r\n }\r\n \r\n \r\n \r\n

    Duplicate project

    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {!CompanyId &&\r\n
    \r\n
    \r\n

    Please select a company to continue creating the project

    \r\n
    \r\n
    \r\n }\r\n \r\n \r\n \r\n \r\n {emptyDetails &&\r\n

    Please create at least one item.

    \r\n }\r\n
    \r\n {/* {emptyDetails ?\r\n
    \r\n \r\n \r\n \r\n

    Please create at least one item.

    \r\n
    \r\n :\r\n
    \r\n \r\n \r\n \r\n
    \r\n } */}\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {open &&\r\n \r\n \r\n {\"Error\"}\r\n \r\n \r\n \r\n Some fields are empty.\r\n \r\n \r\n \r\n Close\r\n \r\n \r\n }\r\n\r\n\r\n {defopen &&\r\n \r\n \r\n {\"Error\"}\r\n \r\n \r\n \r\n Please make at least one Description item.\r\n \r\n \r\n \r\n Close\r\n \r\n \r\n }\r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default DuplicatePage;\r\nconst useStyles = makeStyles((theme) => ({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n position: 'fixed',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n container: {\r\n boxSizing: \"border-box\",\r\n position: 'relative',\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n maxWidth: \"100%\",\r\n },\r\n buttonContainer: {\r\n marginTop: '15px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n float: 'right'\r\n\r\n },\r\n projectOptions: {\r\n display: 'flex',\r\n gap: \"16px\",\r\n\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap',\r\n width: '100%'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap',\r\n width: '100%'\r\n }\r\n },\r\n projectOption: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n\r\n [theme.breakpoints.up('md')]: {\r\n width: \"100%\",\r\n marginRight: '25px',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n },\r\n },\r\n\r\n projectOption__labelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\"\r\n },\r\n\r\n labelContainer__help: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n display: \"block\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n transition: \"color ease-in 0.2s\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41, 1)\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n projectOptionsContainer: {\r\n position: \"relative\",\r\n },\r\n\r\n notAccessibleContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(255, 255, 255, 0.6)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n notAccessibleCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n notAccessibleCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n notAccessibleCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n}));","import React from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { IconButton } from '@mui/material';\r\nimport { Pencil } from 'lucide-react';\r\n\r\nimport * as Actions from '../../../../Reducers/actions'\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nfunction EditExternalApiButton(props) {\r\n const navigate = useNavigate();\r\n\r\n return (\r\n
    \r\n navigate(`/modifyapi/${props.uniqueId}`)} size='large' style={{ borderRadius: 0 }}>\r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n lists: state.lists,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(EditExternalApiButton);","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { TextField, Paper, Typography, TableRow, TableHead, TableContainer, TableBody, Button, Table, IconButton, Collapse, Box, Snackbar, Tooltip } from '@mui/material';\r\nimport EditExternalApisButton from './EditExternalApisButton';\r\nimport DescriptionItem from '../../../Shared/DescriptionItem';\r\nimport { Timer, Braces, ClipboardCopy, ChevronDown, ChevronUp, ArrowDownAZ, CircleHelp } from 'lucide-react';\r\nimport { externalApiTypes } from '../../../../Config/constants';\r\nimport FilterListRow from '../../../Shared/Tables/FilterListRow';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nfunction Row(props) {\r\n const classes = useStyles();\r\n const row = props.row;\r\n const [open, setOpen] = useState(false);\r\n const [apiExamplePoints, setApiExamplePoints] = useState(\"\");\r\n const [openToast, setOpenToast] = useState(false);\r\n const handleCopyFormat = () => {\r\n handleOpenToast();\r\n navigator.clipboard.writeText(apiExamplePoints);\r\n };\r\n\r\n const handleOpenToast = () => {\r\n setOpenToast(true);\r\n };\r\n\r\n const handleCloseToast = (reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenToast(false);\r\n };\r\n\r\n const getApiTypeIcon = (externalApiTypeId) => {\r\n switch (externalApiTypeId) {\r\n case externalApiTypes.DATA:\r\n return (
    \r\n \r\n

    Data

    \r\n
    );\r\n case externalApiTypes.STOPWATCH:\r\n return (
    \r\n \r\n

    Stopwatch

    \r\n
    );\r\n default:\r\n return ;\r\n }\r\n }\r\n\r\n\r\n\r\n const handleOpen = () => {\r\n var apiFormat = JSON.parse(row.apiFormat);\r\n var ExampleApiValuesMapped = apiFormat.map(item => ({ [item.Name]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n setOpen(!open);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {open ? : }\r\n \r\n \r\n \r\n {row.name}\r\n \r\n \r\n {getApiTypeIcon(row.externalApiTypeId)}\r\n \r\n \r\n {row.description}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {row.name}\r\n \r\n \r\n
    \r\n \r\n {apiExamplePoints !== \"\" ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default function TableExternalApi(props) {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.filterOn && }\r\n {props.rows.map((row, index) => (\r\n \r\n ))}\r\n {props.rows.length === 0 &&\r\n \r\n \r\n }\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n props.handleSorting('name')}>\r\n \r\n \r\n \r\n API Name\r\n {/* \r\n props.toggleFilter()}>\r\n \r\n \r\n */}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n API Type\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n API Description\r\n
    \r\n
    \r\n
    \r\n Actions\r\n
    No connection available
    \r\n
    \r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tableHead: {\r\n height: '42px',\r\n textAlign: \"left\",\r\n },\r\n\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n padding: \"0px 16px\",\r\n justifyContent: 'flex-start',\r\n alignItems: 'center'\r\n },\r\n\r\n headStyle: {\r\n backgroundColor: \"#e0dce4\",\r\n },\r\n\r\n tableBodyRow: {\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n\r\n tableRow: {\r\n borderBottom: '2px solid #e0dce4',\r\n },\r\n\r\n tableData: {\r\n padding: \"8px 16px\",\r\n textAlign: \"left\",\r\n },\r\n\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n\r\n ApiContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'flex-end',\r\n },\r\n\r\n icon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n strokeWidth: \"1.4px\",\r\n color: \"#0C0E29\",\r\n }\r\n}));\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport TitlePage from \"../../Shared/TitlePage\";\r\nimport { dataService } from \"../../../Services/data/data.service\";\r\nimport { Grid2, Box } from \"@mui/material\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ExternalApiTypes } from '../../../Config/constants';\r\nimport { Plus, Search } from 'lucide-react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport TableExternalApi from \"./Components/TableExternalApi\";\r\n\r\nfunction ExternalApiOverviewPage(props) {\r\n const navigate = useNavigate();\r\n const [firstLoad, setFirstLoad] = useState(0);\r\n const GetUserId = props.Login.userid;\r\n const classes = useStyles();\r\n const [filters, setFilters] = useState([]);\r\n const [filterOn, setFilterOn] = useState(false);\r\n const [externalApis, setExternalApis] = useState([]);\r\n const [originalExternalApis, setOriginalExternalApis] = useState([]);\r\n const [selectedFilter, setSelectedFilter] = useState(1);\r\n\r\n useEffect(() => {\r\n dataService.getApis(GetUserId).then(result => {\r\n setExternalApis(result)\r\n setOriginalExternalApis(result);\r\n });\r\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n if (firstLoad === 0) {\r\n setFirstLoad(1);\r\n }\r\n\r\n const filter = [\r\n { number: 1, column: \"name\", sortOrder: \"ASC\" },\r\n { number: 2, column: \"name\", sortOrder: \"DESC\" },\r\n\r\n ]\r\n\r\n const dynamicSorting = (property) => {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n let asc = false;\r\n /* SC: Filter now works both ways (ASC, DESC) */\r\n if (filter.find(x => x.number === selectedFilter).column === property) {\r\n if (filter.find(x => x.number === selectedFilter).sortOrder === 'ASC') {\r\n asc = false;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n }\r\n if (asc === true) {\r\n return function (a, b) {\r\n //ASC A-Z\r\n var result = (a[property].toLowerCase() > b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n } else {\r\n return function (a, b) {\r\n //DESC Z-A\r\n var result = (a[property].toLowerCase() < b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n }\r\n }\r\n\r\n const handleSorting = (sortType) => {\r\n let tempMeasurementRows = [...externalApis]\r\n setExternalApis(tempMeasurementRows.sort(dynamicSorting(sortType)));\r\n }\r\n\r\n const toggleFilter = () => {\r\n if (filterOn) {\r\n setFilters([]);\r\n }\r\n setFilterOn(!filterOn);\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n setFilters(tempFilters);\r\n filterApi(tempFilters);\r\n }\r\n\r\n const filterApi = (thisFilters) => {\r\n let varFilteredApi = [...originalExternalApis]\r\n var i;\r\n for (i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case ExternalApiTypes.NAME:\r\n varFilteredApi = varFilteredApi.filter(x => x.name.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n default:\r\n break;\r\n\r\n }\r\n }\r\n setExternalApis(varFilteredApi);\r\n }\r\n\r\n const getFilterValue = (type) => {\r\n\r\n let filter = filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n const navigateTo = (destination) => {\r\n navigate(destination, { state: { from: '/externalapioverview' } });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n

    Manage your API's

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n updateFilters(ExternalApiTypes.NAME, e)} />\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ExternalApiOverviewPage;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n boxSizing: \"border-box\",\r\n maxWidth: \"100%\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n searchContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n search__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '8px',\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n});","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { parseNewDateToDDMMYYYWithoutSeconds } from '../../../Utils/dateHelper';\r\nimport { valueTypeCodes, controlTypes, ProjectFilterTypes, resultColumns } from '../../../Config/constants';\r\n\r\n// Packages\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport html2canvas from 'html2canvas';\r\n\r\n// Components\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport DevExDataTable from \"../Results/Components/DevExDataTable\";\r\nimport BoolToggle from '../../Shared/Buttons/BoolToggle';\r\nimport { Box, Tooltip } from '@mui/material';\r\n\r\n// Assets\r\nimport { Share, CalendarClock, ChevronLeft, Plus, Minus, Timer, ScanBarcode, Image, TextCursorInput, LinkIcon, List, DiamondPlus, ChevronDown, X, Download, ArrowRight } from 'lucide-react';\r\n\r\nfunction GeneralLedgerAccountPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n // General\r\n const [loading, setLoading] = useState(false);\r\n const [graphProjects, setGraphProjects] = useState([]);\r\n const [allFilters, setAllFilters] = useState();\r\n const [allCompanies, setAllCompanies] = useState([]);\r\n\r\n // Report\r\n const [reportData, setReportData] = useState(null);\r\n const generalLedgerRef = useRef(null);\r\n\r\n // Account Detail\r\n const [accountDetailMeasurementRows, setAccountDetailMeasurementRows] = useState([]);\r\n const [selectedAccountId, setSelectedAccountId] = useState(null);\r\n const [selectedAccountLinkedDetails, setSelectedAccountLinkedDetails] = useState([]);\r\n\r\n // Datagrid properties\r\n const [measurementRows, setMeasurementRows] = useState([]);\r\n const [originalMeasurementRows, setOriginalMeasurementRows] = useState([]); // All measurementrows for current GraphDetail - should not be overwritten\r\n const [types, setTypes] = useState([]);\r\n\r\n // Company selection\r\n const [selectedCompanyId, setSelectedCompanyId] = useState(null);\r\n const [isCompanyDropdownOpen, setIsCompanyDropdownOpen] = useState(false);\r\n const [filteredCompanies, setFilteredCompanies] = useState(allCompanies);\r\n const companyDropdownRef = useRef(null);\r\n\r\n\r\n // Filtering\r\n const [dateFiltering, setDateFiltering] = useState(false);\r\n const [timeRangeDates, setTimeRangeDates] = useState({ fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) });\r\n const [selectedProjects, setSelectedProjects] = useState([]);\r\n const [graphConfigurationName, setGraphConfigurationName] = useState(\"\");\r\n const [selectedProject, setSelectedProject] = useState([]);\r\n const [graphData, setGraphData] = useState([]);\r\n const [labelVisible, setLabelVisible] = useState(true);\r\n\r\n // Date range filters\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n\r\n //DevExData\r\n const [selection, setSelection] = useState([]);\r\n\r\n useEffect(() => {\r\n // set timeRangeDates to the first and last day of the current month when the component mounts (with first day being midnight and last day being 23:59:59)\r\n const currentDate = new Date();\r\n const firstDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\r\n const lastDay = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0, 23, 59, 59);\r\n setTimeRangeDates({ fromDate: firstDay, startDate: firstDay, toDate: lastDay, endDate: lastDay });\r\n }, [])\r\n\r\n useEffect(() => {\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then(results => {\r\n setAllCompanies(results);\r\n setFilteredCompanies(results);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n const adjustToUTC = (date) => {\r\n // Adjust the local Brussels time to UTC by removing the timezone offset\r\n const utcDate = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\r\n return utcDate.toISOString(); // Convert to ISO format\r\n };\r\n\r\n const fromDate = adjustToUTC(timeRangeDates.fromDate); // Convert to UTC\r\n const toDate = adjustToUTC(timeRangeDates.toDate); // Convert to UTC\r\n\r\n if (selectedCompanyId) {\r\n dataService.getReportByCompanyIdAndDateRange(selectedCompanyId, fromDate, toDate).then(results => {\r\n setReportData(results);\r\n }).catch((error) => {\r\n console.log('Error ', error);\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n });\r\n }\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n const isValidDate = (date) => date instanceof Date && !isNaN(date);\r\n const isAfter2000 = (date) => date > new Date('2000-01-01');\r\n\r\n if (\r\n selectedCompanyId &&\r\n isValidDate(timeRangeDates.fromDate) &&\r\n isValidDate(timeRangeDates.toDate) &&\r\n isAfter2000(timeRangeDates.fromDate) &&\r\n isAfter2000(timeRangeDates.toDate)\r\n ) {\r\n getCompanyReportData(selectedCompanyId);\r\n }\r\n }, [timeRangeDates]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n\r\n useEffect(() => {\r\n dataService.getTypes().then(results => {\r\n setTypes(results.sort((a, b) => a.description.localeCompare(b.description)));\r\n });\r\n }, [props])\r\n\r\n useEffect(() => {\r\n const isValidDate = (date) => date instanceof Date && !isNaN(date);\r\n const isAfter2000 = (date) => date > new Date('2000-01-01');\r\n\r\n if (isValidDate(timeRangeDates.fromDate) &&\r\n isValidDate(timeRangeDates.toDate) &&\r\n isAfter2000(timeRangeDates.fromDate) &&\r\n isAfter2000(timeRangeDates.toDate)\r\n ) {\r\n onFiltersChange();\r\n }\r\n }, [timeRangeDates]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n\r\n const handleCompanyInputChange = (e) => {\r\n const input = e.target.value;\r\n setFilteredCompanies(\r\n allCompanies.filter(company =>\r\n company.name.toLowerCase().includes(input.toLowerCase())\r\n )\r\n );\r\n setIsCompanyDropdownOpen(true); // Open dropdown on typing\r\n };\r\n\r\n const handleCompanySelect = (company) => {\r\n setSelectedCompanyId(company.id); // Set selected company name\r\n setIsCompanyDropdownOpen(false); // Close dropdown\r\n getCompanyReportData(company.id);\r\n };\r\n\r\n const toggleCompanyDropdown = () => {\r\n setIsCompanyDropdownOpen(prev => !prev);\r\n };\r\n\r\n const handleClickOutsideCompanySelection = (event) => {\r\n if (companyDropdownRef.current && !companyDropdownRef.current.contains(event.target)) {\r\n setIsCompanyDropdownOpen(false); // Close dropdown when clicking outside\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutsideCompanySelection);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutsideCompanySelection);\r\n };\r\n }, []);\r\n\r\n const clearCompanySelection = () => {\r\n setSelectedCompanyId(null);\r\n setFilteredCompanies(allCompanies);\r\n setMeasurementRows([]);\r\n setIsCompanyDropdownOpen(true);\r\n };\r\n\r\n const getCompanyReportData = (companyId) => {\r\n setSelectedAccountId(null);\r\n const adjustToUTC = (date) => {\r\n // Adjust the local Brussels time to UTC by removing the timezone offset\r\n const utcDate = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\r\n return utcDate.toISOString(); // Convert to ISO format\r\n };\r\n\r\n const fromDate = adjustToUTC(timeRangeDates.fromDate); // Convert to UTC\r\n const toDate = adjustToUTC(timeRangeDates.toDate); // Convert to UTC\r\n\r\n dataService.getReportByCompanyIdAndDateRange(companyId, fromDate, toDate).then(results => {\r\n setReportData(results);\r\n dataService.getMeasurementsByCompanyIdAndDateRange(companyId, fromDate, toDate).then(measurements => {\r\n let tempMeasurementRows = measurements.flat()\r\n tempMeasurementRows = (tempMeasurementRows.map(\r\n y => ({\r\n checked: true,\r\n accountId: y.accountId,\r\n companyId: y.companyId,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n valueType: getValueType(y.valueTypeId),\r\n valueTypeId: y.valueTypeId,\r\n qrCode: y.qrCode,\r\n projectName: y.projectName,\r\n price: y.price,\r\n resourceName: y.resourceName,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopValue,\r\n insertedOn: y.startTime,\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: y.commentText,\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n keyValue: y.keyValue,\r\n eventPrice: getEventPrice(y),\r\n })\r\n ))\r\n\r\n setMeasurementRows(tempMeasurementRows);\r\n setOriginalMeasurementRows(measurements);\r\n }).catch((error) => {\r\n console.log('Error ', error);\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n });\r\n }).catch((error) => {\r\n console.log('Error ', error);\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n });\r\n };\r\n\r\n const getValueType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA:\r\n return 'Value added';\r\n case valueTypeCodes.NVA:\r\n return 'No value added';\r\n case valueTypeCodes.W:\r\n return 'Waste';\r\n default:\r\n return 'Unknown'\r\n }\r\n }\r\n\r\n const getMeasurementValue = (typeId, text, int, time, dataListValue, imageLink, externalApiValue) => {\r\n switch (typeId) {\r\n case 1: return int;\r\n case 2:\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n case 3: return text;\r\n case 4: return dataListValue;\r\n case 5: return text;\r\n case 6: return imageLink;\r\n case 7: return externalApiValue;\r\n default: return ''\r\n // eslint-disable-next-line \r\n }\r\n }\r\n\r\n const getEventPrice = (measurement) => {\r\n if (measurement.price === null || measurement.price === undefined || measurement.price == 0) {\r\n return 0;\r\n } else {\r\n if (measurement.typeId === controlTypes.STOPWATCH) {\r\n const startTime = new Date(measurement.startTime);\r\n const stopTime = new Date(measurement.stopTime);\r\n const durationInSeconds = (stopTime - startTime) / 1000; // Convert to seconds\r\n return parseFloat((measurement.price / 3600) * durationInSeconds.toFixed(2));\r\n } else {\r\n return measurement.price;\r\n }\r\n }\r\n };\r\n\r\n const roundToSecond = (date) => {\r\n return new Date(Math.round(date.getTime() / 1000) * 1000); // Round to nearest second\r\n };\r\n\r\n // Convert seconds to hh:mm:ss\r\n function convertHMS(value) {\r\n const sec = parseInt(value, 10); // convert value to number if it's string\r\n let hours = Math.floor(sec / 3600); // get hours\r\n let minutes = Math.floor((sec - (hours * 3600)) / 60); // get minutes\r\n let seconds = sec - (hours * 3600) - (minutes * 60); // get seconds\r\n // add 0 if value < 10; Example: 2 => 02\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds; // Return is HH : MM : SS\r\n }\r\n\r\n const getLatestStartTimeElement = (data) => {\r\n //We check the latest measurement -> this is how we will decide from where to start the 'last 24h'\r\n if (data !== null && data.length > 0) {\r\n return data.reduce((latest, current) => {\r\n const latestTime = new Date(latest.startTime);\r\n const currentTime = new Date(current.startTime);\r\n\r\n // Check if current startTime is later than the latest\r\n return currentTime > latestTime ? current : latest;\r\n });\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n setTimeRangeDates({ fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) });\r\n } else {\r\n resetDateRangeFilter()\r\n }\r\n }\r\n\r\n const handleSetStartDate = (event) => {\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n // Set timeRange to 24 hours before last measurement\r\n let element = getLatestStartTimeElement(originalMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n let tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n setStartDate(new Date(from));\r\n setEndDate(new Date(to));\r\n setTimeRangeDates(tempTimeRangeDates);\r\n }\r\n }\r\n\r\n //DevEx functions\r\n const onSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(measurementRows));\r\n const selectedIds = e.map(index => tempRows[index].id);\r\n setSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n }\r\n\r\n const onFiltersChange = (filters) => {\r\n let currentFilters;\r\n\r\n if (filters) {\r\n currentFilters = filters;\r\n setAllFilters(filters);\r\n } else {\r\n currentFilters = allFilters;\r\n }\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n varFilteredResults = varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime >= timeRangeDates.fromDate && startTime <= timeRangeDates.toDate; // Check range\r\n });\r\n\r\n varFilteredResults.forEach((x) => (x.checked = true)); // Reset checked state\r\n\r\n // Uncheck all rows that have a date outside of date indicated in dateRangeSlider\r\n varFilteredResults.filter(row => {\r\n const startTime = new Date(row.insertedOn); // Convert to Date\r\n return startTime >= timeRangeDates.endDate || startTime <= timeRangeDates.startDate; // Check range\r\n }).forEach((x) => (x.checked = false));\r\n\r\n currentFilters && currentFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"companyName\":\r\n varFilteredResults\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n varFilteredResults\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (varFilteredResults.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n varFilteredResults.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (varFilteredResults.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n varFilteredResults.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n varFilteredResults.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n\r\n // GENERAL\r\n setMeasurementRows(varFilteredResults);\r\n const indexes = varFilteredResults\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setSelection(indexes);\r\n\r\n let tempGraphProjects = [...graphProjects]; // Clone the projects array\r\n let fromDate = timeRangeDates.fromDate;\r\n let toDate = timeRangeDates.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) < toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n };\r\n\r\n const limitString = (str, limit) => {\r\n if (str.length > limit) {\r\n return str.substring(0, limit) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n const formatPrice = (price) => {\r\n if (price === null || price === undefined || price === \"\") {\r\n return \"0,00\";\r\n } else {\r\n return price\r\n .toFixed(2) // Ensure two decimal places\r\n .replace('.', ',') // Replace decimal point with comma\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' '); // Add space as thousands separator\r\n }\r\n };\r\n\r\n\r\n const handleDownloadReport = async () => {\r\n let element = generalLedgerRef.current;\r\n let fileName = 'generalLedgerAccount.jpg';\r\n const canvas = await html2canvas(element);\r\n\r\n const data = canvas.toDataURL('image/jpg');\r\n const link = document.createElement('a');\r\n\r\n if (typeof link.download === 'string') {\r\n link.href = data;\r\n link.download = fileName;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n window.open(data);\r\n }\r\n };\r\n\r\n const getEmptyStateTitle = () => {\r\n if (selectedCompanyId === null) {\r\n return \"Select a company\";\r\n } else if (reportData === null) {\r\n return \"No data available\";\r\n }\r\n }\r\n const getEmptyStateSubtitle = () => {\r\n if (selectedCompanyId === null) {\r\n return \"Please select a company to view the report\";\r\n } else if (reportData === null) {\r\n return \"No data available for the selected date range\";\r\n }\r\n }\r\n\r\n const showAccountDetail = (accountId) => {\r\n setSelectedAccountId(accountId)\r\n\r\n let accountLinkedDetails = [];\r\n let tempAccountDetailMeasurementRows = measurementRows.filter(measurement => measurement.accountId === accountId);\r\n\r\n if (tempAccountDetailMeasurementRows.length > 0) {\r\n tempAccountDetailMeasurementRows.forEach(measurement => {\r\n let detail = accountLinkedDetails.find(detail => detail.name === measurement.description);\r\n if (detail) {\r\n detail.totalPrice += measurement.eventPrice;\r\n } else {\r\n accountLinkedDetails.push({ name: measurement.description, totalPrice: measurement.eventPrice });\r\n }\r\n });\r\n }\r\n\r\n // order by name\r\n accountLinkedDetails.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n setSelectedAccountLinkedDetails(accountLinkedDetails);\r\n setAccountDetailMeasurementRows(tempAccountDetailMeasurementRows);\r\n };\r\n\r\n const getSelectedAccountName = () => {\r\n if (selectedAccountId) {\r\n let costAccount = reportData.costAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n let revenueAccount = reportData.revenueAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n return (costAccount?.name || revenueAccount?.name);\r\n } else {\r\n return \"All\";\r\n }\r\n };\r\n\r\n const getSelectedAccountTotalPrice = () => {\r\n if (selectedAccountId) {\r\n let costAccount = reportData.costAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n let revenueAccount = reportData.revenueAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n return revenueAccount?.total\r\n ? `+${revenueAccount.total.toFixed(2)}`\r\n : (costAccount?.total || 0).toFixed(2);\r\n } else {\r\n return reportData.totalProfit;\r\n }\r\n };\r\n\r\n const isSelectedAccountRevenue = () => {\r\n if (selectedAccountId) {\r\n let revenueAccount = reportData.revenueAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n return revenueAccount !== undefined;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const getTimeRangeProgressPercentage = () => {\r\n let tempStartTime = new Date(timeRangeDates.fromDate).getTime(); // Convert to timestamp\r\n let tempStopTime = new Date(timeRangeDates.toDate).getTime(); // Convert to timestamp\r\n let currentTime = Date.now(); // Current timestamp\r\n\r\n if (currentTime < tempStartTime) {\r\n // Before the time range starts\r\n return 0;\r\n }\r\n if (currentTime > tempStopTime) {\r\n // After the time range ends\r\n return 100;\r\n }\r\n\r\n // Calculate total duration and elapsed time\r\n let totalDuration = tempStopTime - tempStartTime;\r\n let elapsedTime = currentTime - tempStartTime;\r\n\r\n // Calculate percentage\r\n let percentage = (elapsedTime / totalDuration) * 100;\r\n\r\n // Round to 2 decimal places\r\n return parseFloat(percentage.toFixed(2));\r\n };\r\n\r\n const getAccountDetailPercentage = (price) => {\r\n // Get the total account price\r\n let totalAccountPrice = getSelectedAccountTotalPrice();\r\n\r\n // Ensure the totalAccountPrice is not zero to avoid division by zero\r\n if (totalAccountPrice === 0) {\r\n throw new Error(\"Total account price is zero, cannot calculate percentage.\");\r\n }\r\n\r\n // Calculate the percentage\r\n let percentage = (price / totalAccountPrice) * 100;\r\n\r\n // Round to 2 decimal places and ensure absolute value\r\n percentage = Math.abs(Math.round(percentage * 100) / 100);\r\n\r\n return percentage;\r\n };\r\n\r\n return (\r\n \r\n \r\n {loading &&\r\n
    \r\n\r\n }\r\n \r\n\r\n \r\n
    \r\n

    General Ledger Account

    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n updateFilters(GraphFilterTypes.GENERAL, e)} />\r\n \r\n
    */}\r\n
    \r\n company.id === selectedCompanyId).name : \"\"}\r\n onChange={handleCompanyInputChange}\r\n onClick={toggleCompanyDropdown} // Open dropdown on click\r\n />\r\n {!selectedCompanyId ? (\r\n \r\n ) : (\r\n clearCompanySelection(e)}\r\n className={classes.clearInputButton}\r\n style={{\r\n width: \"24px\",\r\n height: \"24px\",\r\n }}\r\n >\r\n \r\n \r\n // setSelectedCompanyId(null)} />\r\n )}\r\n {isCompanyDropdownOpen && (\r\n
    \r\n {filteredCompanies.map(company => (\r\n handleCompanySelect(company)}\r\n >\r\n {company.name}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n
    \r\n \r\n {/*
    \r\n setSelectedCompanyId(e.target.value)} />\r\n \r\n
    */}\r\n
    \r\n
    \r\n {selectedCompanyId !== null && reportData !== null && (\r\n \r\n \r\n Download report\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n {reportData === null || selectedCompanyId === null ? (\r\n
    \r\n
    \r\n

    {getEmptyStateTitle()}

    \r\n

    {getEmptyStateSubtitle()}

    \r\n
    \r\n
    \r\n ) : (\r\n\r\n
    \r\n
    \r\n
    \r\n

    P&L statement for {reportData.companyName}

    \r\n
    \r\n

    {parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)} {parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    Revenue

    \r\n {reportData.revenueAccountCategoryResults.map(category => (\r\n
    \r\n
    \r\n

    {category.name}

    \r\n

    {\"+\" + formatPrice(category.total)} EUR

    \r\n
    \r\n
    \r\n {category.accountResults.map(account => (\r\n showAccountDetail(account.id)}\r\n className={`${classes.account} ${selectedAccountId === account.id ? classes.account__highlighted : ''}`}\r\n key={account.id}\r\n >\r\n

    {account.name}

    \r\n

    {\"+\" + formatPrice(account.total)} EUR

    \r\n \r\n ))}\r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n

    Cost of Goods Sold (COGS)

    \r\n {reportData.costAccountCategoryResults.map(category => (\r\n
    \r\n
    \r\n

    {category.name}

    \r\n

    {category.total == 0 ? \"-\" : \"\"}{formatPrice(category.total)} EUR

    \r\n
    \r\n\r\n
    \r\n {category.accountResults.map(account => (\r\n showAccountDetail(account.id)}\r\n className={`${classes.account} ${selectedAccountId === account.id ? classes.account__highlighted : ''}`}\r\n key={account.id}\r\n >\r\n

    {account.name}

    \r\n

    {(account.total == 0 ? \"-\" : \"\") + formatPrice(account.total)} EUR

    \r\n \r\n ))}\r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n

    Gross Profit (Total Revenue - Total COGS)

    \r\n

    {(reportData.totalProfit > 0 ? \"+\" : \"\") + formatPrice(reportData.totalProfit)} EUR

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {getSelectedAccountName()}

    \r\n \r\n
    \r\n
    \r\n
    \r\n {selectedAccountLinkedDetails.map(detail => (\r\n \r\n
    \r\n

    {limitString(detail.name, 30)}

    \r\n

    {(isSelectedAccountRevenue() ? \"+\" : \"-\") + formatPrice(detail.totalPrice)} EUR

    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n

    Total

    \r\n

    {getSelectedAccountTotalPrice()} EUR

    \r\n
    \r\n
    \r\n
    \r\n

    You can see all measurements for the selected account below.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {measurementRows.length > 0 &&\r\n
    \r\n
    \r\n

    {getSelectedAccountName()} measurements

    \r\n {selectedAccountId &&\r\n \r\n }\r\n
    \r\n measurement.accountId === selectedAccountId) : measurementRows} columns={resultColumns} onSelectionChange={onSelectionChange} selection={selection} handleFiltersChange={onFiltersChange}>\r\n
    \r\n }\r\n
    \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default GeneralLedgerAccountPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n zIndex: '999',\r\n position: 'fixed',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n container: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n borderRadius: \"8px\",\r\n marginBottom: '24px',\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n },\r\n\r\n header__titleRow: {\r\n width: \"100%\",\r\n minHeight: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n }\r\n },\r\n\r\n header: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"8px\",\r\n\r\n backgroundColor: \"#C3996B\",\r\n color: 'white',\r\n\r\n borderTopRightRadius: '8px',\r\n borderTopLeftRadius: '8px',\r\n\r\n padding: \"16px\",\r\n },\r\n\r\n header__titleDetailRow: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n header__projectTitle: {\r\n color: \"white\",\r\n },\r\n\r\n header__description: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n },\r\n\r\n header__detailContainer: {\r\n display: \"flex\",\r\n gap: \"24px\",\r\n },\r\n\r\n header__detail: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n header__detailIcon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n header__detailText: {\r\n margin: \"0px\",\r\n },\r\n\r\n header__published: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n },\r\n\r\n statusIndicator: {\r\n width: \"8px\",\r\n height: \"8px\",\r\n borderRadius: \"50%\",\r\n display: \"inline-block\",\r\n },\r\n\r\n // Style for published indicator (green)\r\n published: {\r\n backgroundColor: \"#5CC958\",\r\n },\r\n\r\n // Style for not published indicator (red)\r\n notPublished: {\r\n backgroundColor: \"#D84949\",\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n dropdownContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n dropdown__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n clearInputButton: {\r\n width: \"24px\",\r\n height: \"24px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"absolute\",\r\n top: \"50%\",\r\n right: \"4px\",\r\n transform: \"translateY(-50%)\",\r\n\r\n borderRadius: \"2px\",\r\n border: \"none\",\r\n\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n\r\n padding: \"0\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n color: \"#D84949\",\r\n backgroundColor: \"#EDEDED\",\r\n }\r\n },\r\n\r\n dropdown__clearInputIcon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n display: \"block\",\r\n\r\n strokeWidth: \"1.4px\",\r\n color: \"inherit\",\r\n },\r\n\r\n dropdown__inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n right: '8px',\r\n },\r\n\r\n dropdown__menu: {\r\n width: '100%',\r\n maxHeight: '200px',\r\n overflowY: 'auto',\r\n position: 'absolute',\r\n top: 'calc(100% + 4px)',\r\n left: '0',\r\n zIndex: '999',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"8px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#C3996B\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#C3996B\",\r\n },\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n noGraphContainer: {\r\n width: \"400px\",\r\n\r\n margin: \"auto\",\r\n marginTop: \"125px\",\r\n padding: \"16px\",\r\n\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n noGraphContainer__text: {\r\n fontColor: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n margin: \"0\",\r\n textAlign: \"center\",\r\n },\r\n\r\n reportContainer: {\r\n width: \"100%\",\r\n minHeight: \"400px\",\r\n\r\n position: \"relative\",\r\n zIndex: \"500\",\r\n\r\n\r\n borderRadius: \"8px\",\r\n marginBottom: \"16px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n reportContainer__horizontalContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n },\r\n\r\n removeGap: {\r\n transition: \"gap 0.2s ease-in-out\",\r\n gap: \"0px\",\r\n },\r\n\r\n reportContainer__report: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n borderRadius: \"8px\",\r\n border: \"1px solid #EDEDED\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n report__header: {\r\n width: \"fit-content\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n\r\n padding: \"8px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n report__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"24px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n report__timeRangeContainer: {\r\n width: \"fit-content\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n report__timeRangeIndicatorContainer: {\r\n width: \"100%\",\r\n height: \"8px\",\r\n\r\n backgroundColor: \"#EDEDED\",\r\n\r\n borderRadius: \"4px\",\r\n },\r\n\r\n report__timeRangeIndicator: {\r\n height: \"8px\",\r\n\r\n backgroundColor: \"#5CC958\",\r\n\r\n borderRadius: \"4px\",\r\n\r\n \":hover\": {\r\n backgroundColor: \"red\",\r\n top: \"12px\",\r\n },\r\n },\r\n\r\n report__subtitle: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n opacity: \"0.6\",\r\n },\r\n\r\n report__subdivision: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n accountCategory: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n accountCategory__header: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n accountCategory__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"100%\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n accountCategory__total: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"100%\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n accountCategory__accounts: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n account: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n opacity: \"0.6\",\r\n\r\n padding: \"8px\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F4F4F4\",\r\n\r\n width: \"calc(100%)\",\r\n\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n account__highlighted: {\r\n backgroundColor: \"#C3996B\",\r\n color: \"white !important\",\r\n opacity: \"1\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n },\r\n },\r\n\r\n account__title: {\r\n margin: \"0px\",\r\n },\r\n\r\n chip__green: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Lato, sans-serif\",\r\n lineHeight: \"100%\",\r\n\r\n borderRadius: \"12px\",\r\n\r\n backgroundColor: \"#E2F8E0\",\r\n color: \"#3AB037\",\r\n\r\n marginLeft: \"8px\",\r\n },\r\n\r\n chip__red: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Lato, sans-serif\",\r\n lineHeight: \"100%\",\r\n\r\n borderRadius: \"12px\",\r\n\r\n backgroundColor: \"#FBE5E5\",\r\n color: \"#D84949\",\r\n\r\n marginLeft: \"8px\",\r\n },\r\n\r\n report__total: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n borderTop: \"1px solid #EDEDED\",\r\n paddingTop: \"16px\",\r\n\r\n margin: \"0px 8px 8px 8px\",\r\n },\r\n\r\n total__title: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n total__breakdown: {\r\n fontSize: \"14px\",\r\n opacity: \"0.8\",\r\n },\r\n\r\n total__price: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n reportContainer__accountDetail: {\r\n overflow: \"hidden\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n border: \"none\",\r\n transition: \"width 0.2s ease-in-out, opacity 0.2s ease-in-out, padding 0.2s ease-in-out\",\r\n width: \"0px\", // Initial state: hidden\r\n opacity: 0,\r\n padding: \"16px 0\",\r\n },\r\n\r\n active: {\r\n width: \"560px\", // Expand to fit content\r\n opacity: 1, // Fully visible\r\n padding: \"16px\", // Restore padding\r\n border: \"1px solid #EDEDED\",\r\n },\r\n\r\n accountDetail__header: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n gap: \"8px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n accountDetail__title: {\r\n // no wrapping\r\n whiteSpace: \"nowrap\",\r\n },\r\n\r\n accountDetail__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n accountDetail__content: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n gap: \"16px\",\r\n },\r\n\r\n accountDetail__details: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n accountDetail__detail: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n },\r\n\r\n accountDetail__detailTitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n },\r\n\r\n accountDetail__detailPrice: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n accountDetail__total: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n\r\n borderTop: \"1px solid #EDEDED\",\r\n paddingTop: \"8px\",\r\n },\r\n\r\n accountDetail__disclaimer: {\r\n width: \"100%\",\r\n\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n accountDetail__disclaimerText: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n devExDataTableContainer: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n marginTop: \"16px\",\r\n },\r\n\r\n devExDataTable__header: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n gap: \"16px\",\r\n },\r\n\r\n devExDataTable__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"24px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n devExDataTable__secondaryButton: {\r\n height: \"32px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n emptyStateContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(255, 255, 255, 0.6)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n // Filter on graph ---------------------------------------------------------------------------------------\r\n\r\n\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n\r\n gap: \"16px\",\r\n },\r\n\r\n switchContainer__label: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n gap: \"8px !important\",\r\n margin: \"0px !important\",\r\n\r\n userSelect: \"none\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n}));","import React, { useEffect, useState } from 'react';\r\nimport {\r\n Chart,\r\n Title,\r\n CommonSeriesSettings,\r\n Series,\r\n ArgumentAxis,\r\n ValueAxis,\r\n Format,\r\n Label,\r\n Tooltip,\r\n Export,\r\n Crosshair,\r\n TickInterval,\r\n ZoomAndPan,\r\n Legend\r\n} from 'devextreme-react/chart';\r\n\r\nexport default function FinancialChart(props) {\r\n const [visualStartTime, setVisualStartTime] = useState(() => {\r\n const yesterday = new Date();\r\n yesterday.setDate(yesterday.getDate() - 1); // Subtract 1 day\r\n return yesterday;\r\n });\r\n const [visualEndTime, setVisualEndTime] = useState(new Date());\r\n const [currency, setCurrency] = useState({ symbol: '€' });\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency])\r\n\r\n useEffect(() => {\r\n if (props.from && props.to) {\r\n setVisualStartTime(new Date(props.from.replace(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/, '$2/$1/$3')));\r\n setVisualEndTime(new Date(props.to.replace(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/, '$2/$1/$3')));\r\n }\r\n }, [props.from, props.to])\r\n\r\n function customizeAnnotation(pointinfo) {\r\n let color = pointinfo.data.color;\r\n return {\r\n color: color\r\n }\r\n }\r\n\r\n function customizeTooltip(pointinfo) {\r\n let seriesName = pointinfo.seriesName;\r\n let htmlText = '';\r\n htmlText += '' + seriesName + '
    ';\r\n // if(seriesName === 'Total'){\r\n let imgUrl = '';\r\n if (pointinfo.point.data !== null) {\r\n if (pointinfo.point.data.isProfit) {\r\n imgUrl = process.env.PUBLIC_URL + \"/images/greenarrow.png\";\r\n } else {\r\n imgUrl = process.env.PUBLIC_URL + \"/images/arrowdown.png\";\r\n }\r\n let valueTextConverted = pointinfo.valueText.replace(',', '');\r\n let priceConverted = pointinfo.point.data.price;\r\n htmlText += '\"Taplr ' + currency.symbol + parseFloat(valueTextConverted).toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '
    '\r\n if (seriesName === 'Total') {\r\n htmlText += '' + (pointinfo.point.data.originalMeasurement) + ''\r\n }\r\n htmlText += '' + (pointinfo.point.data.thismeasurement !== undefined ? pointinfo.point.data.thismeasurement : '') + ' (' + (pointinfo.point.data.isProfit ? ' + ' : ' - ') + currency.symbol + priceConverted.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ')';\r\n }\r\n return {\r\n html: htmlText,\r\n };\r\n }\r\n function legendClickHandler(e) {\r\n const series = e.target;\r\n if (series.isVisible()) {\r\n series.hide();\r\n } else {\r\n series.show();\r\n }\r\n }\r\n function customizePoint(e) {\r\n let color = e.data.color;\r\n\r\n return {\r\n color: color,\r\n size: 6,\r\n }\r\n\r\n\r\n }\r\n function customizeSeriesPoint(e) {\r\n return {\r\n visible: false\r\n }\r\n\r\n }\r\n\r\n function customizeCrosshairLabel(e) {\r\n if (typeof e.value === 'number') {\r\n return currency.symbol + e.point.originalValue.toFixed(2).replace('.', ',');\r\n } else {\r\n return (new Date(e.point.data.date)).toTimeString().split(' ')[0];\r\n }\r\n\r\n }\r\n\r\n function customizeYAxisText(e) {\r\n return currency.symbol + e.value.toFixed(2).replace('.', ',');\r\n }\r\n\r\n return (\r\n
    \r\n {props.financialChartData !== null && props.projectDetailNames.length > 0 ?\r\n x.isVisible)} onLegendClick={legendClickHandler} customizePoint={customizePoint} customizeAnnotation={customizeAnnotation}>\r\n \r\n \r\n \r\n \r\n <CommonSeriesSettings argumentField=\"date\" type=\"line\" />\r\n <Format type=\"fixedPoint\" precision={2} />\r\n {props.projectDetailNames.map(x =>\r\n <Series valueField={x.id + '_' + x.name + '_price'} name={x.registrationPoint ? (x.name + \" - \" + x.registrationPoint) : x.name} color={x.color} customizePoint={customizeSeriesPoint} key={x.name}>\r\n {/* <Label visible={true} >\r\n <Connector visible={true} />\r\n </Label> */}\r\n </Series>\r\n )}\r\n <ArgumentAxis\r\n visualRange={{\r\n startValue: visualStartTime.toISOString(),\r\n endValue: visualEndTime.toISOString()\r\n }}\r\n argumentType=\"datetime\"\r\n />\r\n {/* <ValueAxis\r\n visualRange={{\r\n startValue: visualStartTime.toISOString(),\r\n endValue: visualEndTime.toISOString()\r\n }}\r\n position=\"right\"\r\n >\r\n <TickInterval hours={1}></TickInterval>\r\n </ValueAxis> */}\r\n <ValueAxis\r\n name=\"amount\"\r\n position=\"right\"\r\n // tickInterval={1}\r\n showZero={true}\r\n >\r\n <Label customizeText={customizeYAxisText} />\r\n </ValueAxis>\r\n <Export enabled={true} />\r\n\r\n <ZoomAndPan\r\n panKey=\"shift\"\r\n argumentAxis=\"both\"\r\n valueAxis=\"none\"\r\n allowMouseWheel={true}\r\n dragToZoom=\"true\"\r\n />\r\n <Crosshair\r\n enabled={true}>\r\n <Label visible={true} customizeText={customizeCrosshairLabel} />\r\n </Crosshair>\r\n {/* <Legend verticalAlignment=\"bottom\" horizontalAlignment=\"center\" /> */}\r\n </Chart>\r\n : ''}\r\n\r\n </div>\r\n );\r\n\r\n}\r\n","import * as React from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport { Paper, TableRow, TableHead, TableCell, TableBody, Table } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { parseNewDateToDDMMYYYnoTime } from \"../../../../Utils/dateHelper\";\r\nimport { Plus, Minus } from 'lucide-react';\r\nimport { controlTypes, externalApiTypes } from '../../../../Config/constants';\r\n\r\nexport default function FinancialSummaryTable(props) {\r\n const classes = useStyles();\r\n const [currency, setCurrency] = useState({ symbol: '€', name: 'Euro' });\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency])\r\n\r\n const isStopwatch = (measurement) => {\r\n let measurementControlTypeId = measurement.type;\r\n let measurementExternalApiTypeId = measurement.externalApiTypeId;\r\n\r\n if (measurementControlTypeId === controlTypes.STOPWATCH || (measurementControlTypeId === controlTypes.EXTERNALAPI && measurementExternalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n return true;\r\n } else {\r\n return false;\r\n };\r\n };\r\n\r\n return (\r\n <div className={classes.summaryContainer} component={Paper}>\r\n <Table aria-label=\"simple table\">\r\n <TableHead>\r\n <TableRow>\r\n <TableCell>Event</TableCell>\r\n <TableCell align=\"left\">Registration point</TableCell>\r\n <TableCell align=\"right\">First occurence</TableCell>\r\n <TableCell align=\"right\">Last occurence</TableCell>\r\n <TableCell align=\"right\">Amount</TableCell>\r\n <TableCell align=\"right\">Price per hour/event</TableCell>\r\n <TableCell align=\"right\">Total price</TableCell>\r\n\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {props.priceData.length === 0 ?\r\n <tr>\r\n <td colSpan=\"9\" style={{ paddingTop: '24px', paddingBottom: '24px' }}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no data to display.</p>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n : <React.Fragment></React.Fragment>}\r\n {props.priceData\r\n .sort((a, b) => a.detailDescription.localeCompare(b.detailDescription))\r\n .map((measurement, index) => (\r\n <TableRow key={`measurmentRow_${index}_${measurement.id}`} sx={{ '&:last-child td, &:last-child th': { border: 0 } }}>\r\n <TableCell component=\"th\" scope=\"row\">{measurement.detailDescription}</TableCell>\r\n <TableCell align='left'>{measurement.resourceName}</TableCell>\r\n <TableCell align=\"right\">{measurement.first !== null ? parseNewDateToDDMMYYYnoTime(new Date(measurement.first)) : '-'}</TableCell>\r\n <TableCell align=\"right\">{measurement.last !== null ? parseNewDateToDDMMYYYnoTime(new Date(measurement.last)) : '-'}</TableCell>\r\n <TableCell align=\"right\">{!isStopwatch(measurement) ? measurement.amount : measurement.minuteamount}</TableCell>\r\n <TableCell align=\"right\">{currency.symbol + (measurement.price).toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</TableCell>\r\n <TableCell style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }} align=\"right\">\r\n {currency.symbol + measurement.totalPrice.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}\r\n {measurement.isProfit ? <Plus style={{ color: 'rgb(40, 167, 69)' }} /> : <Minus style={{ color: 'rgb(220, 53, 69)' }} />}\r\n </TableCell>\r\n </TableRow>\r\n ))\r\n }\r\n\r\n <TableRow>\r\n <TableCell colSpan={6} style={{ fontWeight: \"bold\" }}><span style={{ float: 'right' }}>Total</span></TableCell>\r\n <TableCell style={{ fontWeight: \"bold\" }} align=\"right\">{currency.symbol + props.totalPrice.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</TableCell>\r\n </TableRow>\r\n </TableBody>\r\n </Table>\r\n </div>\r\n );\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n summaryContainer: {\r\n overflowX: \"scroll\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n margin: \"auto\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n}))\r\n","import * as React from 'react';\r\nimport { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { graphTypes } from '../../../../Config/constants';\r\nimport { ChevronDown } from 'lucide-react';\r\nimport zIndex from '@material-ui/core/styles/zIndex';\r\n\r\nexport default function GraphTabs(props) {\r\n const classes = useStyles();\r\n const dropdownRef = useRef(null);\r\n const dropdownButtonRef = useRef(null);\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n\r\n\r\n const handleToggle = () => {\r\n setDropdownOpen((prev) => !prev);\r\n };\r\n\r\n const handleClickOutside = (event) => {\r\n if ((dropdownRef.current && !dropdownRef.current.contains(event.target)) && (dropdownButtonRef.current && !dropdownButtonRef.current.contains(event.target))) {\r\n setDropdownOpen(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, []);\r\n\r\n const handleDropdownSelection = (graphType) => {\r\n props.handleGraphTypeSelection(graphType);\r\n setDropdownOpen(false);\r\n }\r\n\r\n return (\r\n <>\r\n <div className={classes.toggleFilter}>\r\n <button onClick={() => props.handleGraphTypeSelection(graphTypes.YAMAZUMI)} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>Yamazumi</p>\r\n </button>\r\n <button onClick={() => props.handleGraphTypeSelection(graphTypes.TIMELINE)} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>Timeline</p>\r\n </button>\r\n <button onClick={() => props.handleGraphTypeSelection(graphTypes.FINANCIAL)} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>Financial</p>\r\n </button>\r\n <button onClick={() => props.handleGraphTypeSelection(graphTypes.PROFITLOSS)} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>Profit & Loss</p>\r\n </button>\r\n <div style={{ transform: props.selectedGraphType === graphTypes.YAMAZUMI ? \"translateX(0px)\" : props.selectedGraphType === graphTypes.TIMELINE ? \"translateX(calc(100% - 1px))\" : props.selectedGraphType === graphTypes.FINANCIAL ? \"translateX(calc(200% - 2px))\" : \"translateX(calc(300% - 3px))\" }} className={classes.toggleSelected} />\r\n </div>\r\n\r\n <div className={classes.tabDropdown}>\r\n <button ref={dropdownButtonRef} className={classes.tabDropdown__button} onClick={() => handleToggle()}>\r\n {props.selectedGraphType === graphTypes.YAMAZUMI ? \"Yamazumi\" : props.selectedGraphType === graphTypes.TIMELINE ? \"Timeline\" : props.selectedGraphType === graphTypes.FINANCIAL ? \"Financial\" : \"Profit & Loss\"}\r\n <ChevronDown className={classes.button__icon} style={{ transform: dropdownOpen ? \"rotate(180deg)\" : \"rotate(0deg)\" }} />\r\n </button>\r\n {dropdownOpen && (\r\n <div ref={dropdownRef} className={classes.tabDropdown__dropdownContainer}>\r\n <button onClick={() => handleDropdownSelection(graphTypes.YAMAZUMI)} className={classes.tabDropdown__optionButton}>\r\n <p className={classes.tabDropdown__label} style={{ color: props.selectedGraphType === graphTypes.YAMAZUMI ? \"#C3996B\" : \"#0C0E29\" }}>Yamazumi</p>\r\n </button>\r\n <button onClick={() => handleDropdownSelection(graphTypes.TIMELINE)} className={classes.tabDropdown__optionButton}>\r\n <p className={classes.tabDropdown__label} style={{ color: props.selectedGraphType === graphTypes.TIMELINE ? \"#C3996B\" : \"#0C0E29\" }}>Timeline</p>\r\n </button>\r\n <button onClick={() => handleDropdownSelection(graphTypes.FINANCIAL)} className={classes.tabDropdown__optionButton}>\r\n <p className={classes.tabDropdown__label} style={{ color: props.selectedGraphType === graphTypes.FINANCIAL ? \"#C3996B\" : \"#0C0E29\" }}>Financial</p>\r\n </button>\r\n <button onClick={() => handleDropdownSelection(graphTypes.PROFITLOSS)} className={classes.tabDropdown__optionButton}>\r\n <p className={classes.tabDropdown__label} style={{ color: props.selectedGraphType === graphTypes.PROFITLOSS ? \"#C3996B\" : \"#0C0E29\" }}>Profit & Loss</p>\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n );\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n toggleFilter: {\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"absolute\",\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n // don't show on mobile\r\n display: \"none\",\r\n }\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n width: \"128px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"96px\",\r\n }\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(100% / 4)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n tabDropdown: {\r\n position: \"relative\",\r\n display: \"none\",\r\n [theme.breakpoints.down('sm')]: {\r\n display: \"block\",\r\n }\r\n },\r\n\r\n tabDropdown__button: {\r\n height: \"36px\",\r\n minWidth: \"200px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"6px\",\r\n\r\n padding: \"8px\",\r\n paddingLeft: \"12px\",\r\n backgroundColor: \"#FFFFFF\",\r\n borderRadius: \"4px\",\r\n border: \"1px solid #EDEDED\",\r\n\r\n color: \"#0C0E29\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\"\r\n }\r\n },\r\n\r\n button__icon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n color: \"#0C0E29\",\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n tabDropdown__dropdownContainer: {\r\n position: \"absolute\",\r\n top: \"calc(100% + 6px)\",\r\n left: \"0\",\r\n width: \"fit-content\",\r\n backgroundColor: \"#FFFFFF\",\r\n borderRadius: \"6px\",\r\n border: \"none\",\r\n zIndex: \"999\",\r\n\r\n padding: \"4px\",\r\n\r\n boxShadow: \"2px 4px 12px 0px rgba(175, 175, 175, 0.4)\",\r\n },\r\n\r\n tabDropdown__optionButton: {\r\n height: \"36px\",\r\n width: \"100%\",\r\n padding: \"8px 12px\",\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"6px\",\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n backgroundColor: \"#F8F8F8\"\r\n },\r\n },\r\n\r\n tabDropdown__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"#0C0E29\",\r\n margin: \"0\",\r\n }\r\n}))\r\n","import React, { useState, useRef, useCallback, useEffect } from \"react\";\r\nimport { FilteringState, GroupingState, IntegratedGrouping, IntegratedPaging, IntegratedSorting, IntegratedFiltering, PagingState, SortingState, DataTypeProvider, SummaryState, IntegratedSummary, IntegratedSelection, SelectionState, } from \"@devexpress/dx-react-grid\";\r\nimport { ExportPanel, Grid, DragDropProvider, GroupingPanel, PagingPanel, TableFilterRow, TableGroupRow, TableSummaryRow, TableHeaderRow, Toolbar, TableSelection, VirtualTable, } from \"@devexpress/dx-react-grid-material-ui\";\r\nimport { IconButton, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from '@mui/material';\r\nimport { GridExporter } from '@devexpress/dx-react-grid-export';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ProjectButton from \"../../Results/Components/ProjectButton\";\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport saveAs from \"file-saver\";\r\nimport { BadgeCheck, BadgeMinus } from 'lucide-react';\r\n\r\nimport { resultTableColumnExtensions, resultGroupingColumnExtensions, filteringStateColumnExtensions, resultColumns, controlTypes, externalApiTypes } from \"../../../../Config/constants\"\r\nimport { getCurrentDateTimeString, formatDate, formatToTimeString } from \"../../../../Utils/dateHelper\"\r\n\r\nexport default function ProfitLossDevExDataTable(props) {\r\n const [grouping, setGrouping] = useState([]);\r\n const [data, setData] = useState([]);\r\n const [imageDialogOpen, setImageDialogOpen] = useState(false);\r\n const [image, setImage] = useState(\"\");\r\n const [description, setDescription] = useState(\"\");\r\n const [currency, setCurrency] = useState({ symbol: '€', name: 'Euro' });\r\n\r\n useEffect(() => {\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(props.data))) {\r\n setData(props.data);\r\n }\r\n }, [props.data])\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency])\r\n\r\n const classes = useStyles();\r\n\r\n //Export excel\r\n const onSave = (workbook) => {\r\n var fileName = \"registrations_\" + getCurrentDateTimeString() + \".xlsx\";\r\n workbook.xlsx.writeBuffer().then((buffer) => {\r\n saveAs(\r\n new Blob([buffer], { type: \"application/octet-stream\" }),\r\n fileName\r\n );\r\n });\r\n\r\n\r\n };\r\n\r\n const exporterRef = useRef(null);\r\n const startExport = useCallback((options) => {\r\n exporterRef.current.exportGrid(options);\r\n }, [exporterRef]);\r\n\r\n\r\n const tableMessages = {\r\n sum: \"Sum\",\r\n contains: \"Contains\",\r\n noData: \"No measurements available\"\r\n\r\n };\r\n\r\n\r\n const startTimeFormatter = (row) => (\r\n <React.Fragment>\r\n {row.value !== null && row.value !== \"\" ? <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}><div style={{ lineHeight: '1' }}>{formatDate(row.value).split(\" \")[0]}</div><div style={{ lineHeight: '1' }}>{formatDate(row.value).split(\" \")[1]}</div></div> : \"\"}\r\n </React.Fragment>\r\n );\r\n\r\n const finishedFormatter = (row) => (\r\n <React.Fragment>\r\n {row.value ?\r\n <BadgeMinus style={{ color: 'red' }}></BadgeMinus>\r\n :\r\n <BadgeCheck style={{ color: 'green' }}></BadgeCheck>\r\n }\r\n </React.Fragment>\r\n );\r\n\r\n const valueTypeFormatter = (row) => {\r\n switch (row.value) {\r\n case \"Value added\":\r\n return <div className={classes.chip__green}>Value added</div>;\r\n case \"No value added\":\r\n return <div className={classes.chip__orange}>No value added</div>;\r\n case \"Waste\":\r\n return <div className={classes.chip__red}>Waste</div>;\r\n default:\r\n return <div className={classes.chip__grey}>Unknown</div>;\r\n }\r\n }\r\n\r\n const valueFormatter = (row) => {\r\n if (row.row !== undefined) {\r\n if (row.column.name === \"commentText\" && row.row !== undefined && row.row.commentImage !== \"\" && row.row.commentImage !== null && row.row.commentImage !== undefined) {\r\n return <div style={{ display: 'flex', flexDirection: 'column' }}>\r\n {(row.value !== null && row.value !== undefined && row.value !== \"\") && <span>{row.value}</span>}\r\n <IconButton style={{ borderRadius: \"25px\" }} onClick={() => handleDialogOpen(row.row.imageId, row.row.description, row.row.commentImage)}>\r\n <img alt=\"\"\r\n style={{ maxWidth: '100%', }}\r\n src={\"data:image/png;base64,\" + row.row.commentImage}></img>\r\n </IconButton>\r\n </div>\r\n }\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n if (row.column.name === \"measurementValue\" && row.row.typeId === controlTypes.STOPWATCH && row.row.integerValue) {\r\n const totalSeconds = row.row.integerValue;\r\n\r\n // Calculate hours, minutes, and seconds\r\n const hours = Math.floor(totalSeconds / 3600);\r\n const minutes = Math.floor((totalSeconds % 3600) / 60);\r\n const seconds = totalSeconds % 60;\r\n\r\n // Format each part to ensure two digits\r\n const formattedTime = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\r\n return formattedTime;\r\n } else {\r\n return \"-\";\r\n }\r\n } else if (row.row.typeId === controlTypes.CAMERA) {\r\n return <IconButton style={{ borderRadius: \"25px\" }} onClick={() => handleDialogOpen(row.row.imageId, row.row.description)}>\r\n <img alt=\"\"\r\n style={{ maxWidth: '100%', }}\r\n src={\"data:image/png;base64,\" + row.row.thumbnail}></img>\r\n </IconButton>\r\n } else {\r\n return row.value;\r\n }\r\n } else {\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n return \"-\";\r\n } else {\r\n return row.value;\r\n }\r\n }\r\n }\r\n\r\n const priceFormatter = (row) => {\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n return \"-\";\r\n } else {\r\n const formatPrice = (price) => {\r\n return price\r\n .toFixed(2) // Ensure two decimal places\r\n .replace('.', ',') // Replace decimal point with comma\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' '); // Add space as thousands separator\r\n };\r\n\r\n return (\r\n <p className={classes.eventPrice}>\r\n {currency.symbol}{formatPrice(row.value)}\r\n </p>\r\n );\r\n }\r\n };\r\n\r\n\r\n const actionFormatter = (row) => {\r\n return <ProjectButton data={row.row} details={data.filter(x => x.projectId === row.row.projectId)}> </ProjectButton>\r\n }\r\n\r\n const handleDialogOpen = (imageId, description, commentImage) => {\r\n if (imageId !== null && imageId !== undefined && imageId !== 0) {\r\n dataService.GetImageById(imageId).then(response => {\r\n setImage(response.image);\r\n setDescription(description);\r\n setImageDialogOpen(true);\r\n }).catch((error) => {\r\n console.log('Error: ', error);\r\n toast.error(`Something went wrong`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n })\r\n } else if (commentImage !== \"\" && commentImage !== undefined && commentImage !== null) {\r\n setImage(commentImage);\r\n setDescription(description);\r\n setImageDialogOpen(true);\r\n } else {\r\n toast.error(`Something went wrong`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n }\r\n\r\n }\r\n\r\n const CustomGroupRowContent = ({ row, column, children }) => {\r\n var filterData = JSON.parse(JSON.stringify(data));\r\n const summary = row.value;\r\n var count = 0;\r\n var counterMessage = \"\";\r\n var timerMessage = \"\";\r\n var timeElapsed = 0;\r\n var totalPrice = 0;\r\n const key = grouping.findIndex(item => item.columnName === row.groupedBy);\r\n var arrCompoundKey = row.compoundKey.split('|');\r\n var groupBySubLevel = [];\r\n if (key > 0) {\r\n //sub level\r\n grouping.map((x, index) => {\r\n groupBySubLevel = groupByColumnName(filterData, x.columnName);\r\n filterData = groupBySubLevel[arrCompoundKey[index]];\r\n })\r\n }\r\n\r\n let groupedRows = filterData.filter(r => r[row.groupedBy] === row.value);\r\n groupedRows = groupedRows.filter(x => x.checked === true);\r\n if (groupedRows !== undefined) {\r\n count = groupedRows.length;\r\n totalPrice = groupedRows.reduce((acc, item) => acc + item.eventPrice, 0);\r\n var counterRows = groupedRows.filter(x => x.typeId === controlTypes.COUNTER);\r\n var timerRows = groupedRows.filter(x => x.typeId === controlTypes.STOPWATCH || x.typeId === controlTypes.EXTERNALAPI && x.externalApiTypeId === externalApiTypes.STOPWATCH);\r\n if (counterRows.length > 0) {\r\n var groupedByDetail = groupByColumnName(counterRows, \"detailId\")\r\n var total = 0;\r\n\r\n Object.entries(groupedByDetail).map(([key, value]) => {\r\n var grouped = groupByColumnName(value, \"measurementSessionId\")\r\n Object.entries(grouped).map(([key, value]) => {\r\n total = total + value[0].measurementValue;\r\n });\r\n });\r\n counterMessage = total; // Use the formatted message\r\n }\r\n\r\n if (timerRows.length > 0) {\r\n var total = 0;\r\n timerRows.map(x => { total = total + x.integerValue; })\r\n timerMessage = formatToTimeString(total);\r\n }\r\n\r\n // calculate the difference in seconds between the first measurement starttime and last measurement (endtime if stopwatch, starttime if else)\r\n if (groupedRows.length > 0) {\r\n // get row with earliest starttime\r\n const earliestStartTime = groupedRows.reduce((prev, current) => (prev.startTime < current.startTime) ? prev : current);\r\n // get row with latest stoptime\r\n const latestStopTime = groupedRows.reduce((prev, current) => (prev.stopTime > current.stopTime) ? prev : current);\r\n // get row with latest starttime\r\n const latestStartTime = groupedRows.reduce((prev, current) => (prev.startTime > current.startTime) ? prev : current);\r\n\r\n // check if latest stoptime is later than latest starttime, use the latest one. then use it to calculate the difference between earliestStartTime and latest time\r\n const latestTime = latestStopTime.stopTime > latestStartTime.startTime ? latestStopTime.stopTime : latestStartTime.startTime;\r\n\r\n timeElapsed = (new Date(latestTime) - new Date(earliestStartTime.startTime)) / 1000;\r\n timeElapsed = formatToTimeString(timeElapsed);\r\n }\r\n }\r\n\r\n return (\r\n <TableGroupRow.Content row={row} column={column} sx={{ width: '100%', display: 'flex', flexDirection: 'row' }}>\r\n {/* {children} */}\r\n <div style={{ width: '100%', display: 'flex', justifyContent: 'space-between', paddingLeft: '5px' }}>\r\n <div style={{ width: '25%' }}>\r\n {children !== null ? children : summary}\r\n\r\n </div>\r\n <span style={{ width: '8%' }}>\r\n {/* {counterMessage !== \"\" && ( */}\r\n <> <b>Counter total:</b> {counterMessage ? counterMessage : \"-\"}</>\r\n {/* )} */}\r\n </span>\r\n {/* {counterMessage !== \"\" && timerMessage !== \"\" && ` - `} */}\r\n <span style={{ width: '25%' }}>\r\n\r\n {/* {timerMessage !== \"\" && timerMessage !== undefined && ( */}\r\n <> <b>Total time:</b> {timerMessage ? timerMessage : '-'}</>\r\n {/* )} */}\r\n </span>\r\n <span style={{ width: '26%' }}>\r\n <> <b>Time elapsed:</b> {timeElapsed ? timeElapsed : \"-\"} </>\r\n </span>\r\n <span style={{ width: '8%' }}>\r\n <b>Total price:</b>\r\n <p className={classes.totalPrice__price}>{currency.symbol}{totalPrice.toFixed(2).replace('.', ',').replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ')}</p>\r\n </span>\r\n <span style={{ width: '8%', display: 'flex', justifyContent: 'flex-end' }}>\r\n <b>Count:</b> <span style={{ width: '30px', display: 'flex', justifyContent: 'flex-end' }}>{count}</span>\r\n </span>\r\n\r\n </div>\r\n\r\n </TableGroupRow.Content>\r\n );\r\n };\r\n\r\n\r\n\r\n const groupByColumnName = (array, columnName) => {\r\n //Function to group all measurments by the given columnName\r\n return array.reduce((result, item) => {\r\n const key = item[columnName]; // Dynamically get the key value\r\n if (!result[key]) {\r\n result[key] = []; // Initialize the group if it doesn't exist\r\n }\r\n result[key].push(item); // Add the current item to the group\r\n return result;\r\n }, {});\r\n };\r\n\r\n\r\n const handleDialogClose = () => {\r\n setImageDialogOpen(false);\r\n }\r\n\r\n const formatlessSummaryTypes = ['customTotal'];\r\n const messages = {\r\n customTotal: 'Price higher than $6000',\r\n count: 'count'\r\n\r\n };\r\n\r\n return (\r\n <React.Fragment >\r\n <div id='taplrDevExTable'>\r\n <Grid rows={data} columns={props.columns}>\r\n <DragDropProvider />\r\n\r\n {/* DataTypeProviders are used to format the data, like dates or the valuetype (we show these as a pill) */}\r\n <DataTypeProvider formatterComponent={startTimeFormatter} for={[\"startTime\"]} />\r\n <DataTypeProvider formatterComponent={finishedFormatter} for={[\"running\"]} />\r\n <DataTypeProvider formatterComponent={valueFormatter} for={[\"measurementValue\", \"keyValue\", \"commentText\"]} />\r\n <DataTypeProvider formatterComponent={valueTypeFormatter} for={[\"valueType\"]} />\r\n <DataTypeProvider formatterComponent={priceFormatter} for={[\"eventPrice\"]} />\r\n <DataTypeProvider formatterComponent={actionFormatter} for={[\"\"]} />\r\n\r\n <FilteringState columnExtensions={filteringStateColumnExtensions} onFiltersChange={props.handleFiltersChange} />\r\n <SortingState columnExtensions={resultTableColumnExtensions} />\r\n <GroupingState grouping={grouping} onGroupingChange={setGrouping} columnExtensions={resultGroupingColumnExtensions} showGroupingControls />\r\n <SummaryState />\r\n <PagingState defaultPageSize={100} />\r\n <SelectionState selection={props.selection} onSelectionChange={props.onSelectionChange} mode=\"multiple\" deferred={true} />\r\n\r\n <IntegratedFiltering />\r\n <IntegratedGrouping />\r\n <IntegratedSummary messages={messages} />\r\n <IntegratedSorting />\r\n <IntegratedPaging />\r\n <IntegratedSelection getRowId={row => row.id} />\r\n\r\n <VirtualTable columnExtensions={resultTableColumnExtensions} messages={tableMessages} />\r\n <TableFilterRow showFilterSelector={false} />\r\n <TableHeaderRow showSortingControls columnExtensions={resultTableColumnExtensions} />\r\n <TableSelection showSelectAll enabled={true} rowSelectionEnabled={true} />\r\n <TableGroupRow contentComponent={CustomGroupRowContent} showColumnsWhenGrouped />\r\n\r\n <TableSummaryRow formatlessSummaryTypes={formatlessSummaryTypes}\r\n />\r\n\r\n <Toolbar />\r\n <GroupingPanel showSortingControls={true} showGroupingControls></GroupingPanel>\r\n\r\n <PagingPanel\r\n pageSizes={100}\r\n messages={{\r\n showAll: \"Show all\",\r\n rowsPerPage: \"Rows per page\",\r\n info: \"{from} of {to} ({count} elements)\",\r\n }}\r\n />\r\n <ExportPanel startExport={startExport} />\r\n </Grid>\r\n <GridExporter\r\n ref={exporterRef}\r\n rows={data}\r\n columns={resultColumns}\r\n grouping={grouping}\r\n // groupSummaryItems={groupSummaryItems}\r\n selection={props.selection}\r\n onSave={onSave} // Ensure onSave is properly passed\r\n\r\n />\r\n\r\n </div>\r\n {imageDialogOpen &&\r\n <Dialog open={imageDialogOpen} onClose={handleDialogClose}>\r\n <DialogTitle>\r\n {description}\r\n </DialogTitle>\r\n <DialogContent>\r\n <DialogContentText>\r\n <img alt=\"\"\r\n style={{ maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }}\r\n src={\"data:image/png;base64,\" + image}></img>\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions sx={{ padding: '0px 24px 10px 0px' }}>\r\n <Button autoFocus content=\"Close\" className={classes.closeButton} onClick={handleDialogClose}>Close</Button>\r\n </DialogActions>\r\n </Dialog>\r\n }\r\n\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n valueStyle: {\r\n whiteSpace: 'wrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: 'block',\r\n maxWidth: '250px'\r\n }, closeButton: {\r\n gap: \"8px\",\r\n backgroundColor: '#0B4097 !important',\r\n border: \"1px solid #0B4097 !important\",\r\n color: 'white !important',\r\n \"&:hover\": {\r\n background: \"white !important\",\r\n color: '#0B4097 !important',\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n tableHeadRow: {\r\n\r\n },\r\n tableHead: {\r\n height: '42px',\r\n borderRight: '2px solid #e6ecf0',\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n imageStyle: {\r\n marginTop: '15px',\r\n height: '100px',\r\n width: '100px'\r\n },\r\n\r\n chip__grey: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#EDEDED\",\r\n color: \"#7C7C7C\"\r\n },\r\n chip__green: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#E2F8E0\",\r\n color: \"#3AB037\"\r\n },\r\n chip__orange: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#FEF1D6\",\r\n color: \"#E76F0F\"\r\n },\r\n\r\n chip__red: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#FBE5E5\",\r\n color: \"#D84949\"\r\n },\r\n\r\n eventPrice: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n textAlign: \"right\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n padding: \"16px\",\r\n margin: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n textAlign: \"center\",\r\n margin: \"0px\",\r\n },\r\n\r\n // Group row\r\n totalPrice__price: {\r\n width: \"80px\",\r\n\r\n display: \"inline-block\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n textAlign: \"right\",\r\n },\r\n}));\r\n\r\n\r\n\r\n","import React, { useEffect, useState, useRef, forwardRef, useImperativeHandle } from \"react\";\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { parseNewDateToDDMMYYYWithoutSeconds } from \"../../../../Utils/dateHelper\";\r\nimport { dataService } from \"../../../../Services/data/data.service\";\r\nimport ProfitLossDateRangePicker from '../../../Shared/DateSelection/ProfitLossDateRangePicker';\r\n\r\n\r\n// Packages\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport { Divider, Tooltip, IconButton } from '@mui/material';\r\n\r\n// Assets\r\nimport { ArrowRight, CalendarPlus, CornerDownRight, Plus, Minus, X } from 'lucide-react';\r\nimport zIndex from \"@material-ui/core/styles/zIndex\";\r\n\r\n\r\nconst ProfitLossReport = forwardRef((props, ref) => {\r\n const classes = useStyles();\r\n\r\n const [reportData, setReportData] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const generalLedgerRef = useRef(null);\r\n // Account Detail\r\n const [accountDetailMeasurementRows, setAccountDetailMeasurementRows] = useState([]);\r\n const [selectedAccountId, setSelectedAccountId] = useState(null);\r\n const [selectedAccountLinkedDetails, setSelectedAccountLinkedDetails] = useState([]);\r\n\r\n const [currency, setCurrency] = useState({ symbol: \"€\" });\r\n\r\n // compareDates\r\n const [compareDates, setCompareDates] = useState(null);\r\n\r\n useEffect(() => {\r\n if (props.profitLossDates) {\r\n let tempCompareDates = props.profitLossDates\r\n // order by sequence\r\n if (tempCompareDates.length > 0) {\r\n tempCompareDates.sort((a, b) => a.sequence - b.sequence);\r\n }\r\n setCompareDates(tempCompareDates);\r\n }\r\n }, [props.profitLossDates])\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency])\r\n\r\n useEffect(() => {\r\n if (props.profitLossReportData) {\r\n if (JSON.parse(JSON.stringify(props.profitLossReportData)) !== JSON.parse(JSON.stringify(reportData))) {\r\n setReportData(props.profitLossReportData);\r\n setLoading(false);\r\n }\r\n }\r\n }, [props.profitLossReportData, props.emptyState]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n // Function to generate custom filename\r\n const generateFileName = () => {\r\n const formattedDate = getFormattedDate();\r\n const chartTitle = \"ProfitLossReport\"; // You can customize this or make it dynamic\r\n if (props.graphConfigurationName !== \"\" && props.graphConfigurationName !== undefined && props.graphConfigurationName !== null) {\r\n return `${chartTitle}_${props.graphConfigurationName}_${formattedDate}`;\r\n } else {\r\n return `${chartTitle}_${formattedDate}`;\r\n }\r\n };\r\n\r\n const handleDownloadReport = async () => {\r\n const element = generalLedgerRef.current;\r\n\r\n if (!element) {\r\n console.error('Element not found');\r\n return;\r\n }\r\n\r\n try {\r\n const canvas = await html2canvas(element, { scale: 2 }); // Higher scale for better quality\r\n const imgData = canvas.toDataURL('image/png');\r\n\r\n const pdf = new jsPDF('p', 'mm', 'a4'); // Portrait, millimeters, A4 size\r\n const pageWidth = pdf.internal.pageSize.getWidth();\r\n const pageHeight = pdf.internal.pageSize.getHeight();\r\n\r\n const imgWidth = Math.min(canvas.width / 4, pageWidth); // Scale to fit A4 width\r\n const imgHeight = (imgWidth / canvas.width) * canvas.height;\r\n\r\n let y = 10; // Start position on the PDF\r\n if (imgHeight > pageHeight - 10) {\r\n pdf.addImage(imgData, 'PNG', 10, y, imgWidth, pageHeight - 20);\r\n pdf.addPage();\r\n } else {\r\n pdf.addImage(imgData, 'PNG', 10, y, imgWidth, imgHeight);\r\n }\r\n\r\n const fileName = 'generalLedgerAccount.pdf';\r\n pdf.save(fileName);\r\n } catch (error) {\r\n console.error('Error generating PDF:', error);\r\n }\r\n };\r\n\r\n // Expose the download report function to the parent component\r\n useImperativeHandle(ref, () => ({\r\n downloadReport: handleDownloadReport,\r\n }));\r\n\r\n const formatPrice = (price) => {\r\n if (price === null || price === undefined || price === \"\") {\r\n return \"0,00\";\r\n } else {\r\n return price\r\n .toFixed(2) // Ensure two decimal places\r\n .replace('.', ',') // Replace decimal point with comma\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' '); // Add space as thousands separator\r\n }\r\n };\r\n\r\n const getFormattedDate = () => {\r\n const date = new Date();\r\n const options = { year: 'numeric', month: '2-digit', day: '2-digit' };\r\n // Get date in MM-DD-YYYY format\r\n return date.toLocaleDateString(undefined, options).replace(/\\//g, '-');\r\n };\r\n\r\n const getEmptyStateTitle = () => {\r\n if (reportData === null) {\r\n return \"No data available\";\r\n }\r\n }\r\n const getEmptyStateSubtitle = () => {\r\n if (reportData === null) {\r\n return \"No data available for the selected date range\";\r\n }\r\n }\r\n\r\n\r\n const showAccountDetail = (accountId) => {\r\n setSelectedAccountId(accountId)\r\n\r\n let accountLinkedDetails = [];\r\n let tempAccountDetailMeasurementRows = props.data.filter(measurement => measurement.accountId === accountId);\r\n\r\n if (tempAccountDetailMeasurementRows.length > 0) {\r\n tempAccountDetailMeasurementRows.forEach(measurement => {\r\n let detail = accountLinkedDetails.find(detail => detail.name === measurement.description);\r\n if (detail) {\r\n detail.totalPrice += measurement.eventPrice;\r\n } else {\r\n accountLinkedDetails.push({ name: measurement.description, totalPrice: measurement.eventPrice });\r\n }\r\n });\r\n }\r\n\r\n // order by name\r\n accountLinkedDetails.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n setSelectedAccountLinkedDetails(accountLinkedDetails);\r\n setAccountDetailMeasurementRows(tempAccountDetailMeasurementRows);\r\n };\r\n\r\n const getSelectedAccountName = () => {\r\n if (selectedAccountId) {\r\n let costAccount = reportData.costAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n let revenueAccount = reportData.revenueAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n return (costAccount?.name || revenueAccount?.name);\r\n } else {\r\n return \"All\";\r\n }\r\n };\r\n\r\n const isSelectedAccountRevenue = () => {\r\n if (selectedAccountId) {\r\n let revenueAccount = reportData.revenueAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n return revenueAccount !== undefined;\r\n } else {\r\n return false;\r\n }\r\n };\r\n const getAccountDetailPercentage = (price) => {\r\n // Get the total account price\r\n let totalAccountPrice = getSelectedAccountTotalPrice();\r\n\r\n // Ensure the totalAccountPrice is not zero to avoid division by zero\r\n if (totalAccountPrice === 0) {\r\n throw new Error(\"Total account price is zero, cannot calculate percentage.\");\r\n }\r\n\r\n // Calculate the percentage\r\n let percentage = (price / totalAccountPrice) * 100;\r\n\r\n // Round to 2 decimal places and ensure absolute value\r\n percentage = Math.abs(Math.round(percentage * 100) / 100);\r\n\r\n return percentage;\r\n };\r\n const limitString = (str, limit) => {\r\n if (str.length > limit) {\r\n return str.substring(0, limit) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n const getSelectedAccountTotalPrice = () => {\r\n if (selectedAccountId) {\r\n let costAccount = reportData.costAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n let revenueAccount = reportData.revenueAccountCategoryResults\r\n ?.flatMap((category) => category.accountResults) // Flatten all accountResults arrays into one\r\n .find((result) => result.id === selectedAccountId); // Find the desired account\r\n\r\n return revenueAccount?.total\r\n ? `+${revenueAccount.total.toFixed(2)}`\r\n : (costAccount?.total || 0).toFixed(2);\r\n } else {\r\n return reportData.totalProfit;\r\n }\r\n };\r\n const setDateRange = (index, startDate, endDate, sequence) => {\r\n props.setCompareDateRange(index, startDate, endDate, sequence);\r\n }\r\n const resetDateRangeFilter = () => {\r\n }\r\n const handleSetStartDate = (event) => {\r\n }\r\n const handleSetEndDate = (event) => {\r\n }\r\n\r\n const handleAddComparePeriod = () => {\r\n props.comparePeriod();\r\n\r\n };\r\n\r\n return (\r\n <div className={classes.reportContainer}>\r\n {reportData.length == 0 ? (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>{getEmptyStateTitle()}</p>\r\n <p className={classes.emptyStateCard__subtitle}>{getEmptyStateSubtitle()}</p>\r\n </div>\r\n </div>\r\n ) : (\r\n <div ref={generalLedgerRef}>\r\n <div className={classes.reportContainer__report}>\r\n <div className={classes.report__buttonContainer}>\r\n <button className={classes.addCalenderColumn} onClick={() => props.comparePeriod()} disabled={props.compareLimit <= Object.entries(compareDates).length}><CalendarPlus className={classes.addCalenderColumn__icon} /></button>\r\n <button className={classes.removeCompareDates} onClick={() => props.resetComparePeriod()} disabled={Object.entries(compareDates).length < 2}><X className={classes.removeCompareDates__icon} /></button>\r\n </div>\r\n {/* <IconButton className={classes.addCalenderColumn} onClick={() => props.comparePeriod()} disabled={props.compareLimit <= Object.entries(props.profitLossDates).length}><CalendarPlus color=\"#ffffff\"></CalendarPlus></IconButton> */}\r\n <div className={classes.report__header}>\r\n <h2 className={classes.report__title}>P&L statement for {reportData.companies.join(', ')}</h2>\r\n {/* <div className={classes.report__timeRangeContainer}>\r\n {(props.to && props.from) &&\r\n <p className={classes.report__subtitle}>{props.from} to {props.to}</p>\r\n }\r\n\r\n\r\n\r\n </div> */}\r\n </div>\r\n <div class={classes.revenueCostBlock}>\r\n <table class=\"no-stripes\" style={{ width: '100% !important', borderSpacing: '0px ' }}>\r\n <thead className={classes.highLow__headerContainer}>\r\n <th >\r\n <span className={classes.highLow__detailHeader}>\r\n <p className={classes.highLow__detailTitle}>{'Revenue'}</p>\r\n <Plus style={{ color: 'rgb(40, 167, 69)', paddingRight: '10px' }} />\r\n </span>\r\n </th>\r\n {Object.entries(compareDates).map(([key, date], totalIndex) => (\r\n <th style={{ width: '250px', textAlign: 'right' }} align=\"right\">\r\n <ProfitLossDateRangePicker size=\"small\" index={totalIndex} setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} sequence={date.sequence} startDate={date.fromDate} endDate={date.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate}></ProfitLossDateRangePicker>\r\n </th>\r\n ))}\r\n\r\n </thead>\r\n <tbody className={classes.profitLossBalance}>\r\n {reportData.revenueAccountCategoryResults.map((category, index) => (\r\n <>\r\n <tr className={classes.accountCategory} key={category.accountCategoryId}>\r\n <td className={classes.accountCategoryCell}><h4 className={classes.accountCategory__title}><span className={classes.accountCategory__index}>{index + 1}.</span>{category.name}:</h4></td>\r\n {Object.entries(category.total).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell}><p className={classes.account__price} key={`categorytotalIndex_${totalIndex}`}>{currency.symbol}{formatPrice(total)}</p></td>\r\n ))}\r\n </tr>\r\n {category.accountResults.map(account => (\r\n <tr\r\n // onClick={() => showAccountDetail(account.id)} \r\n className={`${classes.account} ${selectedAccountId === account.id ? classes.account__highlighted : ''}`}>\r\n <td className={classes.accountCategoryCell}>\r\n <span className={classes.subdivision}>\r\n <CornerDownRight className={`${classes.cornerDownRight} ${selectedAccountId === account.id ? classes.cornerWhiteDownRight : ''}`}></CornerDownRight>\r\n <p className={classes.account__title}>{account.name}:</p>\r\n </span>\r\n </td>\r\n {Object.entries(account.total).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell}>\r\n <span style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-end', gap: \"8px\" }}>\r\n {props.percentageVisible && (\r\n (() => {\r\n const percentage = Object.values(account.percentage)[totalIndex - 1];\r\n console.log(percentage);\r\n if (percentage === undefined) return null;\r\n\r\n const color = percentage !== 0 ? (percentage < 0 ? \"red\" : \"green\") : \"\";\r\n const formattedPercentage = percentage !== 0 ? `${percentage > 0 ? \"+\" : \"\"}${percentage.toFixed(2)}%` : \"=\";\r\n\r\n return <span style={{ color }} className={classes.account__percentage_sm}>{formattedPercentage}</span>;\r\n })()\r\n )}\r\n\r\n\r\n <p className={classes.account__price_sm} key={`totalIndex_${totalIndex}`}>{currency.symbol}{formatPrice(total)}</p>\r\n </span>\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n ))}\r\n <tr className={classes.accountCategoryTotal}>\r\n <td className={classes.accountCategoryCell}>\r\n <p className={classes.total__title}>TOTAL REVENUES:</p>\r\n </td>\r\n {Object.entries(reportData.revenueTotal).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell}>{currency.symbol}{formatPrice(total)}</td>\r\n ))}\r\n </tr>\r\n </tbody>\r\n <thead className={classes.highLow__headerContainer}>\r\n <th >\r\n <span className={classes.highLow__detailHeader}>\r\n <p className={classes.highLow__detailTitle}>{'Cost of Goods Sold (COGS)'}</p>\r\n <Minus style={{ color: 'rgb(220, 53, 69)', paddingRight: '10px' }} />\r\n </span>\r\n\r\n </th>\r\n {Object.entries(compareDates).map(([key, date], totalIndex) => (\r\n <th align=\"right\">\r\n {/* <span className={classes.report__subtitle}><span>{parseNewDateToDDMMYYYWithoutSeconds(date.fromDate)} </span> <span>{parseNewDateToDDMMYYYWithoutSeconds(date.toDate)}</span></span> */}\r\n </th>\r\n ))}\r\n </thead>\r\n <tbody className={classes.profitLossBalance}>\r\n {[...reportData.costAccountCategoryResults]\r\n .sort((a, b) => a.name.localeCompare(b.name))\r\n .map((category, index) => (\r\n <>\r\n <tr className={classes.accountCategory} key={category.accountCategoryId}>\r\n <td className={classes.accountCategoryCell}>\r\n <h4 className={classes.accountCategory__title}>\r\n <span className={classes.accountCategory__index}>{index + 1}.</span>\r\n {category.name}:\r\n </h4>\r\n </td>\r\n {Object.entries(category.total).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell} key={`categorytotalIndex_${totalIndex}`}>\r\n <p className={classes.account__price}>{currency.symbol}{formatPrice(total)}</p>\r\n </td>\r\n ))}\r\n </tr>\r\n {[...category.accountResults]\r\n .sort((a, b) => a.name.localeCompare(b.name))\r\n .map(account => (\r\n <tr\r\n className={`${classes.account} ${selectedAccountId === account.id ? classes.account__highlighted : ''}`}\r\n key={account.id}\r\n >\r\n <td className={classes.accountCategoryCell}>\r\n <span className={classes.subdivision}>\r\n <CornerDownRight\r\n className={`${classes.cornerDownRight} ${selectedAccountId === account.id ? classes.cornerWhiteDownRight : ''}`} />\r\n <p className={classes.account__title}>{account.name}:</p>\r\n </span>\r\n </td>\r\n {Object.entries(account.total).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell} key={`totalIndex_${totalIndex}`}>\r\n <span style={{ display: 'flex', flexDirection: 'row', justifyContent: 'flex-end', gap: \"8px\" }}>\r\n {props.percentageVisible && (() => {\r\n const percentage = Object.values(account.percentage)[totalIndex - 1];\r\n if (percentage === undefined) return null;\r\n\r\n const color = percentage !== 0 ? (percentage < 0 ? \"green\" : \"red\") : \"\";\r\n const formattedPercentage = percentage !== 0 ? `${percentage > 0 ? \"+\" : \"\"}${percentage.toFixed(2)}%` : \"=\";\r\n\r\n return <span style={{ color }} className={classes.account__percentage_sm}>{formattedPercentage}</span>;\r\n })()}\r\n <p className={classes.account__price_sm}>{currency.symbol}{formatPrice(total)}</p>\r\n </span>\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n ))}\r\n <tr className={classes.accountCategoryTotal}>\r\n <td className={classes.accountCategoryCell}>\r\n <p className={classes.total__title}>Total COGS:</p>\r\n </td>\r\n {Object.entries(reportData.costTotal).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell} key={`costTotal_${totalIndex}`}>\r\n {currency.symbol}{formatPrice(total)}\r\n </td>\r\n ))}\r\n </tr>\r\n <tr className={classes.report__total}>\r\n <td className={classes.accountCategoryCell}>\r\n <span className={classes.total__title}>Gross Profit:</span>\r\n </td>\r\n {Object.entries(reportData.totalProfit).map(([key, total], totalIndex) => (\r\n <td align=\"right\" className={classes.accountCategoryCell} key={`totalGrossProfit${totalIndex}`}>\r\n <span className={classes.total__title}>{currency.symbol}{formatPrice(total)}</span>\r\n </td>\r\n ))}\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n {/* <div class={classes.revenueCostBlock}>\r\n <table style={{ width: '100% !important', borderSpacing: '0px ' }}>\r\n \r\n </table>\r\n\r\n\r\n </div> */}\r\n\r\n </div>\r\n\r\n\r\n {/* <div className={`${classes.reportContainer__accountDetail} ${selectedAccountId ? classes.active : \"\"}`} style={{ width: props.boolCompareDate && selectedAccountId ? '33% !important' : '50% !important' }} >\r\n <div className={classes.accountDetail__header}>\r\n <h2 className={classes.accountDetail__title}>{getSelectedAccountName()}</h2>\r\n <button onClick={() => setSelectedAccountId(null)} className={classes.accountDetail__closeButton}>\r\n <X size={19} />\r\n </button>\r\n </div>\r\n <div className={classes.accountDetail__content}>\r\n <div className={classes.accountDetail__details}>\r\n {selectedAccountLinkedDetails.map(detail => (\r\n <Tooltip title={getAccountDetailPercentage(detail.totalPrice) + \"%\"} placement=\"right\" arrow>\r\n <div className={classes.accountDetail__detail} key={detail.name}>\r\n <p className={classes.accountDetail__detailTitle}>{limitString(detail.name, 30)}</p>\r\n <p className={classes.accountDetail__detailPrice}>{(isSelectedAccountRevenue() ? \"+\" : \"-\") + formatPrice(detail.totalPrice)} EUR</p>\r\n </div>\r\n </Tooltip>\r\n ))}\r\n <div className={classes.accountDetail__total}>\r\n <p className={classes.accountDetail__totalTitle}>Total</p>\r\n <p className={classes.accountDetail__totalPrice}>{getSelectedAccountTotalPrice()} EUR</p>\r\n </div>\r\n </div>\r\n <div className={classes.accountDetail__disclaimer}>\r\n <p className={classes.accountDetail__disclaimerText}>You can see all measurements for the selected account below.</p>\r\n </div>\r\n </div>\r\n </div> */}\r\n </div>\r\n\r\n )}\r\n </div>\r\n )\r\n});\r\n\r\nexport default ProfitLossReport;\r\n\r\nconst useStyles = makeStyles(() => ({\r\n reportContainer: {\r\n // if content is too wide, hide behind horizontal scroll\r\n overflowX: \"auto\",\r\n\r\n },\r\n\r\n reportContainer__report: {\r\n width: \"fit-content\",\r\n boxSizing: \"border-box\",\r\n position: 'relative',\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n borderRadius: \"8px\",\r\n border: \"1px solid #EDEDED\",\r\n\r\n padding: \"25px\",\r\n \":hover\": {\r\n backgroundColor: \"red\",\r\n },\r\n },\r\n highLow__headerContainer: {\r\n width: '100%',\r\n\r\n alignItems: 'center',\r\n\r\n backgroundColor: '#ede6df',\r\n },\r\n\r\n highLow__detailHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n\r\n padding: \"10px\",\r\n },\r\n accountDetail__disclaimer: {\r\n width: \"100%\",\r\n\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"8px\",\r\n }, reportContainer__accountDetail: {\r\n overflow: \"hidden\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n border: \"none\",\r\n transition: \"width 0.2s ease-in-out, opacity 0.2s ease-in-out, padding 0.2s ease-in-out\",\r\n width: \"0px\", // Initial state: hidden\r\n opacity: 0,\r\n padding: \"16px 0\",\r\n },\r\n\r\n active: {\r\n width: \"560px\", // Expand to fit content\r\n opacity: 1, // Fully visible\r\n padding: \"16px\", // Restore padding\r\n border: \"1px solid #EDEDED\",\r\n },\r\n\r\n accountDetail__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n }, accountDetail__header: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n gap: \"8px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n accountDetail__content: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n gap: \"16px\",\r\n },\r\n accountDetail__details: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n }, accountDetail__detail: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n },\r\n\r\n accountDetail__disclaimerText: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n accountDetail__total: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n\r\n borderTop: \"1px solid #EDEDED\",\r\n paddingTop: \"8px\",\r\n },\r\n highLow__detailTitle: {\r\n margin: \"0\",\r\n },\r\n reportCard: {\r\n border: \"1px solid #EDEDED\",\r\n \":hover\": {\r\n backgroundColor: \"red\",\r\n },\r\n\r\n },\r\n\r\n report__buttonContainer: {\r\n height: \"fit-content\",\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n position: \"absolute\",\r\n right: \"-12px\",\r\n top: \"50%\",\r\n transform: \"translateY(-24px)\",\r\n },\r\n\r\n addCalenderColumn: {\r\n height: \"48px\",\r\n width: \"24px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"0px\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F4F4F4\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n \"&:disabled\": {\r\n backgroundColor: \"white\",\r\n cursor: \"not-allowed\",\r\n },\r\n },\r\n\r\n addCalenderColumn__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n removeCompareDates: {\r\n height: \"24px\",\r\n width: \"24px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n color: \"#D84949\",\r\n\r\n padding: \"0px\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#D84949\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n \"&:disabled\": {\r\n backgroundColor: \"white\",\r\n color: \"#D84949\",\r\n cursor: \"not-allowed\",\r\n\r\n transform: \"translateY(-32px)\",\r\n zIndex: \"-10\",\r\n },\r\n },\r\n\r\n removeCompareDates__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n color: \"inherit\",\r\n },\r\n\r\n report__header: {\r\n\r\n width: \"fit-content\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n report__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"24px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n report__timeRangeContainer: {\r\n width: \"fit-content\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n report__timeRangeIndicatorContainer: {\r\n width: \"100%\",\r\n height: \"8px\",\r\n\r\n backgroundColor: \"#EDEDED\",\r\n\r\n borderRadius: \"4px\",\r\n },\r\n\r\n report__timeRangeIndicator: {\r\n height: \"8px\",\r\n\r\n backgroundColor: \"#5CC958\",\r\n\r\n borderRadius: \"4px\",\r\n\r\n \":hover\": {\r\n backgroundColor: \"red\",\r\n top: \"12px\",\r\n },\r\n },\r\n\r\n report__subtitle: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: 'column',\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n opacity: \"0.6\",\r\n },\r\n\r\n report__subdivision: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n accountCategoryTotal: {\r\n width: \"100%\",\r\n borderTop: \"1px solid grey\",\r\n backgroundColor: \"transparent !important\",\r\n\r\n },\r\n\r\n accountCategory: {\r\n width: \"100%\",\r\n backgroundColor: \"transparent !important\",\r\n\r\n },\r\n accountCategoryCell: {\r\n border: \"0px !important\",\r\n color: 'inherit',\r\n paddingRight: '4px',\r\n },\r\n\r\n accountCategory__header: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n padding: '0px 4px',\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n justifyContent: 'space-between',\r\n gap: \"8px\",\r\n },\r\n\r\n accountCategory__index: {\r\n width: \"16px\",\r\n\r\n display: \"inline-block\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"100%\",\r\n margin: \"0px\",\r\n marginRight: \"8px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n\r\n accountCategory__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"100%\",\r\n margin: \"0px\",\r\n minWidth: '244px',\r\n color: \"#0C0E29\",\r\n },\r\n\r\n accountCategory__total: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"100%\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n account_listItem: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n width: '100%',\r\n\r\n },\r\n cornerDownRight: {\r\n width: '20px',\r\n height: '20px',\r\n color: '#C3996B',\r\n\r\n },\r\n cornerWhiteDownRight: {\r\n color: 'white !important'\r\n },\r\n accountCategory__accounts: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n // paddingLeft: \"24px\",\r\n },\r\n account__text: {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n fontSize: '15px'\r\n },\r\n account: {\r\n\r\n height: \"fit-content\",\r\n boxSizing: \"border-box\",\r\n\r\n\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n backgroundColor: \"transparent !important\",\r\n color: \"#0C0E29\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n opacity: \"0.6\",\r\n\r\n padding: \"4px 4px\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F4F4F4\",\r\n // cursor: \"pointer\",\r\n },\r\n },\r\n subdivision: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n paddingLeft: '24px',\r\n\r\n },\r\n account__highlighted: {\r\n backgroundColor: \"#C3996B !important\",\r\n color: \"white !important\",\r\n opacity: \"1\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n },\r\n },\r\n\r\n account__title: {\r\n margin: \"0px\",\r\n fontSize: '14px',\r\n\r\n },\r\n\r\n account__price: {\r\n margin: \"0px\",\r\n // paddingRight: '10px',\r\n },\r\n account__price_sm: {\r\n margin: \"0px\",\r\n width: \"112px\",\r\n fontSize: '14px',\r\n },\r\n\r\n account__percentage_sm: {\r\n margin: \"0px\",\r\n fontSize: '14px',\r\n },\r\n\r\n profitLossBalance: {\r\n paddingTop: '5px',\r\n // display: 'flex',\r\n // flexDirection: 'column',\r\n width: '100%',\r\n borderBottom: '1px solid rgb(237, 237, 237)'\r\n },\r\n\r\n revenueCostBlock: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n marginBottom: '16px',\r\n },\r\n vertical__chip__green: {\r\n width: \"fit-content\",\r\n textOrientation: 'upright',\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n writingMode: \"vertical-lr\",\r\n padding: \"0px 12px\",\r\n margin: \"0px\",\r\n\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Lato, sans-serif\",\r\n lineHeight: \"100%\",\r\n color: \"#3AB037\",\r\n\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#E2F8E0\",\r\n },\r\n\r\n\r\n chip__green: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n\r\n padding: \"0px 12px\",\r\n margin: \"0px\",\r\n\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Lato, sans-serif\",\r\n lineHeight: \"100%\",\r\n color: \"#3AB037\",\r\n\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#E2F8E0\",\r\n },\r\n\r\n chip__red: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Lato, sans-serif\",\r\n lineHeight: \"100%\",\r\n\r\n borderRadius: \"12px\",\r\n\r\n backgroundColor: \"#FBE5E5\",\r\n color: \"#D84949\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n report__total: {\r\n width: '100%',\r\n height: '50px',\r\n\r\n background: '#C3996B',\r\n color: 'white !important',\r\n },\r\n compare__total: {\r\n display: 'flex', flexDirection: 'row'\r\n },\r\n\r\n total__title: {\r\n\r\n borderRight: '0px !important',\r\n gap: \"8px\",\r\n padding: '4px',\r\n margin: \"0px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"600\",\r\n color: \"inherit\",\r\n },\r\n\r\n total__breakdown: {\r\n fontSize: \"14px\",\r\n opacity: \"0.8\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n total__price: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n },\r\n}));\r\n","import React, { useEffect, useState, createRef } from \"react\";\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { Chart, Title, CommonSeriesSettings, Legend, Series, Tooltip, ValueAxis, Export, Label, Font, Connector } from 'devextreme-react/chart';\r\nimport { dataService } from \"../../../../Services/data/data.service\";\r\n\r\nexport default function YamazumiChart(props) {\r\n const classes = useStyles();\r\n\r\n const [valueTypes, setValueTypes] = useState([]);\r\n const [dataSource, setDataSource] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [emptyStateDataSource] = useState([\r\n {\r\n \"state\": \"Station 1\",\r\n \"VA\": 2,\r\n \"type\": 1,\r\n \"typeName\": \"VA\",\r\n \"title\": \"timer 1\",\r\n \"color\": \"#faead9\",\r\n \"measurements\": 3\r\n },\r\n {\r\n \"state\": \"Station 1\",\r\n \"W\": 0.5,\r\n \"type\": 3,\r\n \"typeName\": \"W\",\r\n \"title\": \"timer 2\",\r\n \"color\": \"#c34141\",\r\n \"measurements\": 1\r\n },\r\n {\r\n \"state\": \"Station 1\",\r\n \"NVA\": 1,\r\n \"type\": 2,\r\n \"typeName\": \"NVA\",\r\n \"title\": \"timer 3\",\r\n \"color\": \"#25b513\",\r\n \"measurements\": 1\r\n },\r\n {\r\n \"state\": \"Station 2\",\r\n \"VA\": 1.6,\r\n \"type\": 1,\r\n \"typeName\": \"VA\",\r\n \"title\": \"Value added 1\",\r\n \"color\": \"#9aff48\",\r\n \"measurements\": 3\r\n },\r\n {\r\n \"state\": \"Station 2\",\r\n \"NVA\": 0.6,\r\n \"type\": 2,\r\n \"typeName\": \"NVA\",\r\n \"title\": \"Non value added 1\",\r\n \"color\": \"#fccc72\",\r\n \"measurements\": 7\r\n },\r\n {\r\n \"state\": \"Station 2\",\r\n \"W\": 0.2,\r\n \"type\": 3,\r\n \"typeName\": \"W\",\r\n \"title\": \"Waste 1\",\r\n \"color\": \"#ff6868\",\r\n \"measurements\": 5\r\n },\r\n ])\r\n\r\n useEffect(() => {\r\n dataService.getValueTypes(props.Login.userid).then(result => {\r\n if (result) {\r\n var val = result.sort((a, b) => a.name.localeCompare(b.name));\r\n setValueTypes(val);\r\n };\r\n })\r\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (props.emptyState) {\r\n setDataSource(emptyStateDataSource)\r\n } else if (JSON.parse(JSON.stringify(props.dataSource)) !== JSON.parse(JSON.stringify(dataSource))) {\r\n setDataSource(props.dataSource);\r\n setLoading(false);\r\n }\r\n }, [props.dataSource, props.emptyState]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n // Format the time (decimal) to a readable string\r\n function formatTime(decimalTime) {\r\n // Convert decimal time to total seconds\r\n const totalSeconds = decimalTime * 3600;\r\n\r\n // Calculate hours, minutes, and seconds\r\n const hours = Math.floor(totalSeconds / 3600);\r\n const minutes = Math.floor((totalSeconds % 3600) / 60);\r\n const seconds = Math.ceil(totalSeconds % 60);\r\n\r\n // Format as HH:MM:SS\r\n const formattedTime =\r\n `${hours.toString().padStart(2, '0')}:` +\r\n `${minutes.toString().padStart(2, '0')}:` +\r\n `${seconds.toString().padStart(2, '0')}`;\r\n\r\n return formattedTime;\r\n }\r\n\r\n function customizeTooltip(pointInfo) {\r\n let time = formatTime(pointInfo.value);\r\n let percent = pointInfo.percentText;\r\n\r\n let type = pointInfo.seriesName;\r\n let title = pointInfo.point.data.title;\r\n let counter = pointInfo.point.data.measurements;\r\n\r\n let text = '<div>';\r\n text += '<div><b>Title: </b> ' + title + '</div>';\r\n text += '<div><b>Time: </b> ' + time + '</div>';\r\n text += '<div><b>Percentage: </b>' + percent + '</div>';\r\n text += '<div><b>Type: </b>' + type + '</div>';\r\n text += '<div><b>Amount of measurements: </b>' + counter + '</div></div>';\r\n\r\n\r\n return { html: text };\r\n }\r\n // Function to generate custom filename\r\n const generateFileName = () => {\r\n const formattedDate = getFormattedDate();\r\n const chartTitle = \"Yamazumi\"; // You can customize this or make it dynamic\r\n if (props.graphConfigurationName !== \"\" && props.graphConfigurationName !== undefined && props.graphConfigurationName !== null) {\r\n return `${chartTitle}_${props.graphConfigurationName}_${formattedDate}`;\r\n } else {\r\n return `${chartTitle}_${formattedDate}`;\r\n }\r\n };\r\n\r\n const getFormattedDate = () => {\r\n const date = new Date();\r\n const options = { year: 'numeric', month: '2-digit', day: '2-digit' };\r\n // Get date in MM-DD-YYYY format\r\n return date.toLocaleDateString(undefined, options).replace(/\\//g, '-');\r\n };\r\n\r\n\r\n const chartRef = createRef();\r\n\r\n function onPointClick({ target: point }) {\r\n if (point.isSelected()) {\r\n point.clearSelection();\r\n } else {\r\n point.select();\r\n }\r\n }\r\n\r\n function onLegendClick({ target: series }) {\r\n if (series.isVisible()) {\r\n series.hide();\r\n } else {\r\n series.show();\r\n }\r\n }\r\n\r\n function customizeText(info) {\r\n if (info !== null && info !== undefined && info.value !== null && info.value !== undefined && info.value > 0) {\r\n let time = formatTime(info.value);\r\n return time\r\n }\r\n\r\n }\r\n\r\n return (\r\n <div className={classes.chartBox}>\r\n {(dataSource !== null && dataSource.length > 0 && !loading) &&\r\n <Chart\r\n id=\"chart\"\r\n title=\"Yamazumi\"\r\n key={`chart`} // Force re-render\r\n className={classes.chart}\r\n\r\n onPointClick={onPointClick}\r\n onLegendClick={onLegendClick}\r\n ref={chartRef}\r\n dataSource={dataSource}\r\n >\r\n <CommonSeriesSettings\r\n argumentField=\"state\"\r\n type=\"stackedbar\"\r\n barWidth={96}\r\n border={{\r\n visible: true, // Enable border\r\n width: 0.3, // Width of the border\r\n color: 'white', // Color of the border (adjust as needed)\r\n dashStyle: \"solid\"\r\n }}\r\n\r\n />\r\n {(valueTypes !== null && valueTypes !== undefined) && valueTypes.map(type => {\r\n\r\n const filteredData = dataSource.filter(item => item !== undefined && item.type !== undefined && item.type !== null).filter(item => item.type === type.id);\r\n if (filteredData.length > 0) {\r\n return <Series\r\n key={`${type.code}-${type.name}`}\r\n valueField={type.code}\r\n argumentField=\"state\"\r\n name={type.name}\r\n color={type.colorCode}\r\n dataSource={filteredData}\r\n tagField=\"typeName\"\r\n >\r\n <Label\r\n visible={props.labelVisible}\r\n position=\"inside\"\r\n horizontalOffset={96} // Optional fine-tuning\r\n verticalOffset={0} // Optional fine-tuning\r\n customizeText={customizeText}\r\n overlappingBehavior={\"Hide\"}\r\n >\r\n <Font size={10} />\r\n <Connector visible={true} width={0.5} />\r\n </Label>\r\n </Series>\r\n }\r\n return null;\r\n })}\r\n <ValueAxis position=\"left\">\r\n <Title text=\"Hours\" />\r\n </ValueAxis>\r\n <Legend\r\n verticalAlignment=\"bottom\"\r\n horizontalAlignment=\"center\"\r\n itemTextPosition=\"top\"\r\n />\r\n <Export enabled={true} fileName={generateFileName()} // Set your custom filename here\r\n />\r\n <Tooltip\r\n enabled={true}\r\n location=\"edge\"\r\n customizeTooltip={customizeTooltip}\r\n />\r\n </Chart>\r\n\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n chart: {\r\n width: \"100%\",\r\n display: 'flex',\r\n justifyContent: 'center',\r\n boxSizing: \"border-box\",\r\n\r\n },\r\n chartBox: {\r\n padding: '10px',\r\n }\r\n}));\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { parseDateToDDMMYYTime, parseNewDateToDDMMYYYnoTime, parseNewDateToDDMMYYYWithoutSeconds } from '../../../Utils/dateHelper';\r\nimport { valueTypeCodes, controlTypes, ProjectFilterTypes, resultColumns, profitLossResultColumns, graphTypes, externalApiTypes, timeLineVisualisationTypes, registrationPointColors } from '../../../Config/constants';\r\n\r\n// Packages\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport html2canvas from 'html2canvas';\r\nimport { styled } from '@mui/material/styles';\r\n\r\n// Components\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport DateRangeSlider from '../../Shared/DateSelection/DateRangeSlider';\r\nimport DevExDataTable from \"../Results/Components/DevExDataTable\";\r\nimport ProfitLossDevExDataTable from \"./Components/ProfitLossDevExDataTable\";\r\nimport BoolToggle from '../../Shared/Buttons/BoolToggle';\r\nimport YamazumiChart from './Components/YamazumiChart';\r\nimport TimeLineChart from '../Results/Components/TimeLineChart'\r\nimport FinancialChart from './Components/FinancialChart';\r\nimport { Box, FormControlLabel, Switch, Button, Divider, Tooltip } from '@mui/material';\r\nimport FinancialSummaryTable from './Components/FinancialSummaryTable';\r\nimport EventChart from '../ProjectReport/Components/EventChart';\r\nimport TableHighLow from '../ProjectReport/Components/TableHighLow';\r\nimport ProfitLossReport from './Components/ProfitLossReport';\r\nimport GraphTabs from './Components/GraphTabs';\r\nimport TextWithReadMore from '../../Shared/TextWithReadMore';\r\n\r\n// Assets\r\nimport { Share, CalendarClock, ChevronLeft, Plus, Minus, Timer, ScanBarcode, Image, TextCursorInput, LinkIcon, List, DiamondPlus, MapPin } from 'lucide-react';\r\n\r\nfunction GraphDetailPage(props) {\r\n const { graphId } = useParams();\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n // General\r\n const [loading, setLoading] = useState(true);\r\n const [selectedGraphType, setSelectedGraphType] = useState(1);\r\n const [graphProjects, setGraphProjects] = useState([]);\r\n const [allFilters, setAllFilters] = useState();\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n const [activeCurrency, setActiveCurrency] = useState(null);\r\n\r\n // Datagrid properties\r\n const [originalMeasurementRows, setOriginalMeasurementRows] = useState([]); // All measurementrows for current GraphDetail - should not be overwritten once set\r\n const [types, setTypes] = useState([]);\r\n\r\n // Sharing graph\r\n const [sharingDialogOpen, setSharingDialogOpen] = useState(false);\r\n const sharingDialogRef = useRef(null);\r\n const sharingButtonRef = useRef(null);\r\n const [graphIsPublished, setGraphIsPublished] = useState(false); // Is this graph published?\r\n const [copiedToClipboard, setCopiedToClipboard] = useState(false); // Confirmation that link is succesfully copied to clipboard\r\n\r\n // Filtering\r\n const [dateFiltering, setDateFiltering] = useState(false);\r\n const [timeRangeDates, setTimeRangeDates] = useState({ fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) });\r\n const [noGraphFound, setNoGraphFound] = useState(false);\r\n const [graphConfigurationObject, setGraphConfigurationObject] = useState(null);\r\n const [selectedProjects, setSelectedProjects] = useState([]);\r\n const [graphConfigurationName, setGraphConfigurationName] = useState(\"\");\r\n const [selectedProject, setSelectedProject] = useState([]);\r\n const [graphData, setGraphData] = useState([]);\r\n const [graphConfigurationId, setGraphConfigurationId] = useState(null);\r\n const [graphConfigurationUniqueId, setGraphConfigurationUniqueId] = useState(null);\r\n const [labelVisible, setLabelVisible] = useState(true);\r\n const [percentageVisible, setPercentageVisible] = useState(false);\r\n\r\n\r\n // Timeline chart\r\n const [chartRows, setChartRows] = useState([]);\r\n const [graphDetails, setGraphDetails] = useState([]);\r\n const [showLinearTimeline, setShowLinearTimeline] = useState(false);\r\n\r\n // Financial chart\r\n const summaryRef = React.createRef();\r\n const highLowRef = React.createRef();\r\n const [financialChartData, setFinancialChartData] = useState([]);\r\n const [projectDetailNames, setDetailsNames] = useState({});\r\n const [totalPrice, setTotalPrice] = useState(0); // for summary\r\n const [priceData, setPriceData] = useState([]);\r\n const [highLowGraphProjects, setHighLowGraphProjects] = useState([]);\r\n\r\n // Profit/Loss report\r\n const profitLossReportComponentRef = useRef(null);\r\n const [profitLossReportData, setProfitLossReportData] = useState([]);\r\n const [allAccountCategories, setAllAccountCategories] = useState([]);\r\n const [allAccounts, setAllAccounts] = useState([]);\r\n const [profitLossDates, setProfitLossDates] = useState(null);\r\n\r\n const [boolCompareDate, setBoolCompareDate] = useState(false);\r\n const [compareLimit, setCompareLimit] = useState(5);\r\n\r\n\r\n\r\n // Date range filters\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n\r\n //DevExData\r\n const [selection, setSelection] = useState([]);\r\n const [profitLossSelection, setProfitLossSelection] = useState([]);\r\n\r\n // Tab-specific filtering\r\n const [dataFilters, setDataFilters] = useState([]);\r\n const [financialFilters, setFinancialFilters] = useState([]);\r\n\r\n const [dataMeasurementRows, setDataMeasurementRows] = useState([]);\r\n const [financialMeasurementRows, setFinancialMeasurementRows] = useState([]);\r\n\r\n useEffect(() => {\r\n if (graphId !== null && graphId !== \"\") {\r\n getGraphData(graphId);\r\n }\r\n }, [graphId]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n // Get all currencies\r\n dataService.getAllCurrencies().then(results => {\r\n setAllCurrencies(results);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n // set active currency\r\n if (selectedProjects.length > 0 && allCurrencies.length > 0) {\r\n let currency = allCurrencies.find(x => x.id === selectedProjects[0].currencyId);\r\n setActiveCurrency(currency);\r\n };\r\n\r\n }, [selectedProjects, allCurrencies])\r\n\r\n useEffect(() => {\r\n dataService.getTypes().then(results => {\r\n setTypes(results.sort((a, b) => a.description.localeCompare(b.description)));\r\n });\r\n }, [props]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const roundToSecond = (date) => {\r\n // return new Date(Math.round(date.getTime() / 1000) * 1000); // Round to nearest second\r\n\r\n // remove milliseconds\r\n return new Date(date.setMilliseconds(0));\r\n };\r\n\r\n // Convert seconds to hh:mm:ss\r\n function convertHMS(value) {\r\n const sec = parseInt(value, 10); // convert value to number if it's string\r\n let hours = Math.floor(sec / 3600); // get hours\r\n let minutes = Math.floor((sec - (hours * 3600)) / 60); // get minutes\r\n let seconds = sec - (hours * 3600) - (minutes * 60); // get seconds\r\n // add 0 if value < 10; Example: 2 => 02\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds; // Return is HH : MM : SS\r\n }\r\n\r\n const getEventPrice = (measurement) => {\r\n if (measurement.price === null || measurement.price === undefined || measurement.price == 0) {\r\n return 0;\r\n } else {\r\n if (measurement.typeId === controlTypes.STOPWATCH || (measurement.typeId === controlTypes.EXTERNALAPI && measurement.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n if (measurement.startValue && measurement.stopValue) {\r\n const startTime = new Date(measurement.startValue);\r\n const stopTime = new Date(measurement.stopValue);\r\n const durationInSeconds = (stopTime - startTime) / 1000; // Convert to seconds\r\n return parseFloat((measurement.price / 3600) * durationInSeconds.toFixed(2));\r\n } else {\r\n return 0;\r\n }\r\n } else {\r\n return measurement.price;\r\n }\r\n }\r\n };\r\n\r\n const handleGraphTypeSelection = (type) => {\r\n setSelectedGraphType(type);\r\n }\r\n\r\n // Setting properties for current graphConfiguration\r\n const getGraphData = (graphId) => {\r\n var graphdataResults = [];\r\n let tempGraphData = [];\r\n let tempMeasurementRows = [];\r\n let tempProfitLossMeasurementRows = [];\r\n var projectMeasurements = [];\r\n let tempTimeRangeDates = {};\r\n let graphDetails = [];\r\n\r\n let tempDataMeasurementRows = [];\r\n let tempFinancialMeasurementRows = [];\r\n\r\n let tempSelectedProjects = JSON.parse(JSON.stringify(selectedProject));\r\n\r\n dataService.getGraphConfigurationByUniqueId(graphId).then(results => {\r\n setGraphConfigurationName(results.name);\r\n setGraphConfigurationId(results.id);\r\n setGraphConfigurationUniqueId(results.uniqueId);\r\n setGraphConfigurationObject(results);\r\n setGraphIsPublished(results.isPublic);\r\n // handleGraphConfiguration(JSON.parse(results.metaData));\r\n\r\n graphdataResults = results;\r\n if (graphdataResults !== null && graphdataResults !== undefined) {\r\n setGraphProjects(graphdataResults.projects)\r\n graphdataResults.projects.forEach((project, index) => {\r\n // tempSelectedProjects.push(project)\r\n project.details.forEach(detail => {\r\n detail.resourceName = project.resourceDescription;\r\n graphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n detail.measurements.forEach(measurement => {\r\n measurement.registrationPointColor = registrationPointColors[index];\r\n });\r\n\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n setGraphDetails(graphDetails);\r\n })\r\n\r\n projectMeasurements = projectMeasurements.flat();\r\n let tempProjectMeasurementRows;\r\n\r\n tempProjectMeasurementRows = (projectMeasurements.map(\r\n y => ({\r\n accountId: y.accountId,\r\n accountName: y.accountName,\r\n accountCategoryId: y.accountCategoryId,\r\n accountCategoryName: y.accountCategoryName,\r\n checked: true,\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n valueTypeId: y.valueTypeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceName: y.resourceName,\r\n registrationPointColor: y.registrationPointColor,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopValue,\r\n insertedOn: new Date(y.insertedOn),\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n valueType: getValueType(y.valueTypeId),\r\n keyValue: y.keyValue,\r\n eventPrice: getEventPrice(y),\r\n externalApiTypeId: y.externalApiTypeId,\r\n })));\r\n tempDataMeasurementRows.push(...tempProjectMeasurementRows.flat());\r\n\r\n tempFinancialMeasurementRows = tempDataMeasurementRows.filter(row => row.eventPrice > 0);\r\n\r\n // Setting timerangedates\r\n let graphConfigurationMetaData = JSON.parse(results.metaData);\r\n if (graphConfigurationMetaData.dateRange !== null && graphConfigurationMetaData.dateRange !== undefined) {\r\n let dateRange = JSON.parse(results.metaData).dateRange;\r\n tempTimeRangeDates = { fromDate: new Date(dateRange.fromDate), startDate: new Date(dateRange.fromDate), toDate: new Date(dateRange.toDate), endDate: new Date(dateRange.toDate) };\r\n } else {\r\n let element = getLatestStartTimeElement(tempDataMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n } else {\r\n tempTimeRangeDates = timeRangeDates;\r\n }\r\n }\r\n\r\n graphdataResults.projects.forEach(project => {\r\n tempSelectedProjects.push(project)\r\n tempGraphData.push(parseProjectData(project, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate));\r\n project.details.forEach(detail => {\r\n // graphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n // setGraphDetails(graphDetails);\r\n })\r\n\r\n // Setting the states for measurements and graph data\r\n const selectionPromise = new Promise(resolve => {\r\n const indexes = tempDataMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n const profitLossIndexes = tempFinancialMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n setProfitLossSelection(profitLossIndexes);\r\n resolve();\r\n });\r\n\r\n\r\n // Filter the array\r\n const measurementsBetweenDate = tempDataMeasurementRows.filter(item => {\r\n const insertedDate = new Date(item.insertedOn);\r\n return roundToSecond(insertedDate) > tempTimeRangeDates.fromDate && roundToSecond(insertedDate) <= tempTimeRangeDates.toDate;\r\n });\r\n\r\n\r\n const measurementRowsPromise = new Promise(resolve => {\r\n setDataMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n setFinancialMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)).filter(row => row.eventPrice > 0));\r\n resolve();\r\n });\r\n\r\n const originalMeasurementRowsPromise = new Promise(resolve => {\r\n setOriginalMeasurementRows([...tempDataMeasurementRows].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n resolve();\r\n });\r\n\r\n // Data for yamazumi view\r\n const graphDataPromise = new Promise(resolve => {\r\n setGraphData(parseMeasurementRows(measurementsBetweenDate).flat());\r\n resolve();\r\n });\r\n\r\n // Data for timeline view\r\n const chartRowsPromise = new Promise(resolve => {\r\n let data = chartData(measurementsBetweenDate.flat());\r\n\r\n setChartRows(data);\r\n resolve();\r\n })\r\n\r\n // Data for financial view\r\n const financialDataPromise = new Promise(resolve => {\r\n constructPriceData(graphdataResults.projects, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate)\r\n\r\n let financialChartMeasurements = measurementsBetweenDate.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(tempTimeRangeDates.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(tempTimeRangeDates.toDate))\r\n\r\n let data = constructFinancialData(graphDetails, financialChartMeasurements)\r\n let detailNames = constructDetailCollection(graphDetails);\r\n setDetailsNames(detailNames);\r\n setFinancialChartData(data);\r\n\r\n // setting data for highlow table\r\n let tempGraphProjects = [...graphdataResults.projects]; // Clone the projects array\r\n let fromDate = tempTimeRangeDates.fromDate;\r\n let toDate = tempTimeRangeDates.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) <= toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(tempGraphProjects);\r\n\r\n resolve();\r\n })\r\n\r\n var dateranges = { 0: tempTimeRangeDates };\r\n // Data for profit loss report\r\n const profitLossReportDataPromise = new Promise(resolve => {\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(tempProjectMeasurementRows, dateranges).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n resolve();\r\n })\r\n\r\n const timeRangeDatesPromise = new Promise(resolve => {\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n // add sequence to tempTimeRangeDates \r\n let tempProfitLossDates = tempTimeRangeDates;\r\n tempProfitLossDates.sequence = 1;\r\n setProfitLossDates({ 0: tempProfitLossDates })\r\n resolve();\r\n });\r\n\r\n const selectedProjectsPromise = new Promise(resolve => {\r\n setSelectedProjects(tempSelectedProjects);\r\n resolve();\r\n });\r\n\r\n // Wait for all state updates to complete before setting loading to false\r\n Promise.all([\r\n selectionPromise,\r\n measurementRowsPromise,\r\n originalMeasurementRowsPromise,\r\n graphDataPromise,\r\n chartRowsPromise,\r\n financialDataPromise,\r\n profitLossReportDataPromise,\r\n timeRangeDatesPromise,\r\n selectedProjectsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n }\r\n }).catch((error) => {\r\n console.log('Error ', error)\r\n setNoGraphFound(true);\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }).finally(() => {\r\n // setLoading(false); \r\n })\r\n }\r\n\r\n const navigateToModify = () => {\r\n navigate('/modifygraph/' + graphConfigurationUniqueId);\r\n }\r\n\r\n const handlePublishGraph = (publish) => {\r\n setGraphIsPublished(publish)\r\n dataService.publishGraphConfiguration(graphConfigurationId, publish).then(result => {\r\n if (result.success) {\r\n if (publish) {\r\n toast.success(\"The graph is now available to view for people with the link\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.success(\"The graph is no longer publically available to view\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n } else {\r\n setGraphIsPublished(!publish);\r\n }\r\n }).catch(() => {\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n setGraphIsPublished(!publish);\r\n })\r\n }\r\n\r\n // Close dialog on outside click, but ignore button clicks\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (\r\n sharingDialogRef.current && !sharingDialogRef.current.contains(event.target) &&\r\n sharingButtonRef.current && !sharingButtonRef.current.contains(event.target)\r\n ) {\r\n setSharingDialogOpen(false);\r\n }\r\n }\r\n\r\n if (sharingDialogOpen) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [sharingDialogOpen]);\r\n\r\n // Copies link to view graph to clipboard\r\n const copyLinkToClipboard = () => {\r\n // Get the current URL\r\n const currentUrl = window.location.href;\r\n\r\n // Replace '/graph/' with '/viewgraph/'\r\n const viewLink = currentUrl.replace('/graph/', '/viewgraph/');\r\n\r\n // Copy the modified link to the clipboard\r\n navigator.clipboard.writeText(viewLink)\r\n .then(() => {\r\n setCopiedToClipboard(true);\r\n\r\n // Set copiedToClipboard back to false after 2 seconds\r\n setTimeout(() => {\r\n setCopiedToClipboard(false);\r\n }, 2000);\r\n })\r\n .catch((err) => {\r\n console.error('Failed to copy link: ', err);\r\n });\r\n };\r\n\r\n const getValueType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA:\r\n return 'Value added';\r\n case valueTypeCodes.NVA:\r\n return 'No value added';\r\n case valueTypeCodes.W:\r\n return 'Waste';\r\n default:\r\n return 'Unknown'\r\n }\r\n }\r\n\r\n const getMeasurementValue = (typeId, externalApiTypeId, text, int, time, dataListValue, imageLink, externalApiValue) => {\r\n switch (typeId) {\r\n case 1: return int;\r\n case 2:\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n case 3: return text;\r\n case 4: return dataListValue;\r\n case 5: return text;\r\n case 6: return imageLink;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return text;\r\n }\r\n return text;\r\n default: return ''\r\n // eslint-disable-next-line \r\n }\r\n }\r\n\r\n const getCommentText = (typeId, externalApiTypeId, text, commentText) => {\r\n switch (typeId) {\r\n case 1: return commentText;\r\n case 2: return commentText;\r\n case 3: return commentText;\r\n case 4: return commentText;\r\n case 5: return commentText;\r\n case 6: return commentText;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n return text;\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return commentText;\r\n }\r\n return commentText;\r\n default: return ''\r\n // eslint-disable-next-line\r\n }\r\n }\r\n\r\n const getLatestStartTimeElement = (data) => {\r\n //We check the latest measurement -> this is how we will decide from where to start the 'last 24h'\r\n if (data !== null && data.length > 0) {\r\n return data.reduce((latest, current) => {\r\n const latestTime = new Date(latest.startTime);\r\n const currentTime = new Date(current.startTime);\r\n\r\n // Check if current startTime is later than the latest\r\n return currentTime > latestTime ? current : latest;\r\n });\r\n } else {\r\n return null;\r\n }\r\n\r\n };\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n setTimeRangeDates({ fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) });\r\n let tempProfitLossDates = { 0: { sequence: 1, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) } }\r\n setProfitLossDates(tempProfitLossDates)\r\n\r\n // new daterange\r\n let newDateRange = { sequence: 1, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) };\r\n\r\n onFiltersChange(null, newDateRange, tempProfitLossDates);\r\n } else {\r\n resetDateRangeFilter()\r\n }\r\n }\r\n\r\n // Update Timerange for data\r\n const updateDataRange = (data, changeDay) => {\r\n let tempStartDate = new Date(data[0]);\r\n let tempEndDate = new Date(data[1]);\r\n let duplicateDateRange = JSON.parse(JSON.stringify(timeRangeDates));\r\n\r\n var objNewTimeRangeDate;\r\n\r\n if (changeDay) {\r\n // if it was a 'changeDay' action we start again with a 24h range\r\n objNewTimeRangeDate = { startDate: new Date(tempStartDate), fromDate: new Date(tempStartDate), toDate: new Date(tempEndDate), endDate: new Date(tempEndDate) };\r\n } else {\r\n // if slider was changed\r\n objNewTimeRangeDate = { startDate: new Date(tempStartDate), fromDate: new Date(duplicateDateRange.fromDate), toDate: new Date(duplicateDateRange.toDate), endDate: new Date(tempEndDate), };\r\n }\r\n\r\n if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(timeRangeDates)) {\r\n setTimeRangeDates(objNewTimeRangeDate);\r\n let tempProfitLossDates = objNewTimeRangeDate;\r\n tempProfitLossDates.sequence = 1;\r\n setProfitLossDates({ 0: tempProfitLossDates });\r\n\r\n onFiltersChange(null, objNewTimeRangeDate, { 0: tempProfitLossDates });\r\n }\r\n }\r\n\r\n const setCompareDateRange = (index, startDate, endDate, sequence) => {\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n var tempProfitLossDates = { ...profitLossDates };\r\n tempProfitLossDates[index] = { sequence: sequence, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) };\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(varFilteredResults.filter(x => x.checked), tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setProfitLossDates(tempProfitLossDates);\r\n });\r\n } else {\r\n resetCompareDateRangeFilter()\r\n }\r\n }\r\n\r\n const handleSetStartDate = (event) => {\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n\r\n\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n // Set timeRange to 24 hours before last measurement\r\n let element = getLatestStartTimeElement(originalMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n let tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n let tempProfitLossDates = { 0: tempTimeRangeDates };\r\n setStartDate(new Date(from));\r\n setEndDate(new Date(to));\r\n setTimeRangeDates(tempTimeRangeDates);\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // new date\r\n let newDateRange = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n\r\n onFiltersChange(null, newDateRange, tempProfitLossDates);\r\n }\r\n\r\n setPercentageVisible(false);\r\n }\r\n\r\n const resetCompareDateRangeFilter = () => {\r\n\r\n }\r\n\r\n const getColorForType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA: return '#4caf50'; // Green for Value Added\r\n case valueTypeCodes.NVA: return '#ff9800'; // Orange for Non Value Added\r\n case valueTypeCodes.W: return '#f44336'; // Red for Waste\r\n default: return '#9e9e9e'; // Gray for Unknown\r\n }\r\n };\r\n\r\n const formatProfitLossReportData = async (measurements, dateranges) => {\r\n let accounts = [];\r\n let accountCategories = [];\r\n let tempProfitLossReportData = {\r\n companies: [],\r\n revenueAccountCategoryResults: [],\r\n costAccountCategoryResults: [],\r\n totalProfit: {},\r\n revenueTotal: {}, // Added for overall revenue totals\r\n costTotal: {}, // Added for overall cost totals\r\n percentageTotalProfit: {}\r\n };\r\n\r\n // Fetch accounts and categories if not already loaded\r\n if (!allAccounts.length && !allAccountCategories.length) {\r\n try {\r\n const [fetchedAccounts] = await Promise.all([\r\n dataService.getAllUserCompanyAccounts(props.Login.userid, 0, 0),\r\n ]);\r\n\r\n let tempAccounts = [];\r\n let tempAccountCategories = [];\r\n\r\n fetchedAccounts.forEach(company => {\r\n company.accountCategories.forEach(category => {\r\n let tempCategory = {\r\n id: category.id,\r\n name: category.name,\r\n isRevenue: category.isRevenue,\r\n isActive: category.isActive,\r\n companyId: category.companyId,\r\n };\r\n tempAccountCategories.push(tempCategory);\r\n\r\n category.accounts.forEach(account => {\r\n tempAccounts.push(account);\r\n });\r\n });\r\n });\r\n\r\n setAllAccounts(tempAccounts);\r\n setAllAccountCategories(tempAccountCategories);\r\n\r\n accounts = tempAccounts;\r\n accountCategories = tempAccountCategories;\r\n } catch (error) {\r\n console.error(\"Error fetching account data:\", error);\r\n return tempProfitLossReportData;\r\n }\r\n } else {\r\n accounts = allAccounts;\r\n accountCategories = allAccountCategories;\r\n }\r\n\r\n // sort dateranges by sequence\r\n let orderedDateRanges = Object.keys(dateranges).map(key => dateranges[key]).sort((a, b) => a.sequence - b.sequence);\r\n\r\n // Initialize date range totals and process measurements\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n const { fromDate, toDate } = orderedDateRanges[rangeIndex];\r\n const from = new Date(fromDate);\r\n const to = new Date(toDate);\r\n\r\n // Initialize date range totals if not already initialized\r\n if (!tempProfitLossReportData.totalProfit[rangeIndex]) {\r\n tempProfitLossReportData.totalProfit[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.revenueTotal[rangeIndex]) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.costTotal[rangeIndex]) {\r\n tempProfitLossReportData.costTotal[rangeIndex] = 0;\r\n }\r\n\r\n // Filter measurements within the current date range\r\n const measurementsInDateRange = measurements.filter(measurement => {\r\n const insertedDate = roundToSecond(new Date(measurement.insertedOn));\r\n return insertedDate > from && insertedDate <= to;\r\n });\r\n\r\n // Process each measurement within the current date range\r\n measurementsInDateRange.filter(x => x.accountCategoryId !== null).forEach(measurement => {\r\n let measurementAccount = accounts.find(acc => acc.id === measurement.accountId);\r\n let measurementAccountCategory = accountCategories.find(\r\n category => category.id === measurementAccount.accountCategoryId\r\n );\r\n\r\n if (!measurementAccount || !measurementAccountCategory) return;\r\n\r\n let measurementCompanyName = measurement.companyName;\r\n\r\n // Add company if not already present\r\n if (!tempProfitLossReportData.companies.includes(measurementCompanyName)) {\r\n tempProfitLossReportData.companies.push(measurementCompanyName);\r\n tempProfitLossReportData.companies.sort((a, b) => a.localeCompare(b));\r\n }\r\n\r\n const isRevenue = measurementAccountCategory.isRevenue;\r\n const categoryList = isRevenue\r\n ? tempProfitLossReportData.revenueAccountCategoryResults\r\n : tempProfitLossReportData.costAccountCategoryResults;\r\n\r\n let category = categoryList.find(cat => cat.id === measurementAccountCategory.id);\r\n\r\n // Add category if not already present\r\n if (!category) {\r\n category = {\r\n id: measurementAccountCategory.id,\r\n name: measurementAccountCategory.name,\r\n isRevenue: isRevenue,\r\n accountResults: [],\r\n total: {}, // Dynamically calculated totals for each date range\r\n percentage: {}\r\n };\r\n categoryList.push(category);\r\n }\r\n\r\n let account = category.accountResults.find(acc => acc.id === measurementAccount.id);\r\n\r\n // Add account if not already present\r\n if (!account) {\r\n account = {\r\n id: measurementAccount.id,\r\n name: measurementAccount.name,\r\n isActive: measurementAccount.isActive,\r\n total: {},\r\n percentage: {}\r\n };\r\n category.accountResults.push(account);\r\n }\r\n\r\n // Update totals\r\n account.total[rangeIndex] = (account.total[rangeIndex] || 0) + measurement.eventPrice;\r\n category.total[rangeIndex] = (category.total[rangeIndex] || 0) + measurement.eventPrice;\r\n\r\n if (isRevenue) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] += measurement.eventPrice;\r\n } else {\r\n tempProfitLossReportData.costTotal[rangeIndex] += measurement.eventPrice;\r\n }\r\n\r\n tempProfitLossReportData.totalProfit[rangeIndex] =\r\n (tempProfitLossReportData.totalProfit[rangeIndex] || 0) +\r\n (isRevenue ? measurement.eventPrice : -measurement.eventPrice);\r\n });\r\n\r\n // Ensure totals for each category and account have all date ranges\r\n tempProfitLossReportData.revenueAccountCategoryResults.forEach(category => {\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!category.total[rangeIndex]) {\r\n category.total[rangeIndex] = 0; // Set missing total to 0\r\n }\r\n category.accountResults.forEach(account => {\r\n if (!account.total[rangeIndex]) {\r\n account.total[rangeIndex] = 0; // Set missing account total to 0\r\n }\r\n });\r\n });\r\n });\r\n\r\n tempProfitLossReportData.costAccountCategoryResults.forEach(category => {\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!category.total[rangeIndex]) {\r\n category.total[rangeIndex] = 0; // Set missing total to 0\r\n }\r\n category.accountResults.forEach(account => {\r\n if (!account.total[rangeIndex]) {\r\n account.total[rangeIndex] = 0; // Set missing account total to 0\r\n }\r\n });\r\n });\r\n });\r\n\r\n // Ensure overall totals for revenue and cost have all date ranges\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!tempProfitLossReportData.revenueTotal[rangeIndex]) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.costTotal[rangeIndex]) {\r\n tempProfitLossReportData.costTotal[rangeIndex] = 0;\r\n }\r\n });\r\n });\r\n\r\n // Add percentage calculations for each category and account\r\n const calculatePercentage = (prev, curr) => {\r\n if (prev === 0 && curr === 0) return 0; // No change\r\n if (prev === 0) return 100; // From 0 to any value\r\n return ((curr - prev) / Math.abs(prev)) * 100;\r\n };\r\n\r\n // Calculate percentages for each category\r\n [tempProfitLossReportData.revenueAccountCategoryResults, tempProfitLossReportData.costAccountCategoryResults].forEach(categoryList => {\r\n categoryList.forEach(category => {\r\n Object.keys(category.total).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n category.percentage[rangeIndex] = calculatePercentage(\r\n category.total[prevIndex] || 0,\r\n category.total[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n\r\n category.accountResults.forEach(account => {\r\n Object.keys(account.total).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n account.percentage[rangeIndex] = calculatePercentage(\r\n account.total[prevIndex] || 0,\r\n account.total[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n });\r\n });\r\n });\r\n\r\n // Calculate percentages for totalProfit\r\n tempProfitLossReportData.percentageTotalProfit = {};\r\n Object.keys(tempProfitLossReportData.totalProfit).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n tempProfitLossReportData.percentageTotalProfit[rangeIndex] = calculatePercentage(\r\n tempProfitLossReportData.totalProfit[prevIndex] || 0,\r\n tempProfitLossReportData.totalProfit[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n\r\n return tempProfitLossReportData;\r\n };\r\n\r\n\r\n const parseProjectData = (project, fromDate, toDate) => {\r\n let from;\r\n let to;\r\n\r\n // Convert fromDate and toDate to Date objects if they are provided\r\n if (fromDate && toDate) {\r\n from = new Date(fromDate);\r\n to = new Date(toDate);\r\n }\r\n\r\n if (project) {\r\n const projectName = project.projectName;\r\n var projectValues = [];\r\n let dataSource = {};\r\n\r\n project.details.forEach(detail => {\r\n if ((detail.controlTypeId === controlTypes.STOPWATCH || detail.controlTypeId === controlTypes.EXTERNALAPI && detail.externalApiTypeId === externalApiTypes.STOPWATCH) && detail.isActive) {\r\n let totalDuration = 0;\r\n var measurementCounter = 0;\r\n\r\n detail.measurements.forEach(measurement => {\r\n if (measurement.stopValue !== null && measurement.stopValue !== undefined) {\r\n const start = roundToSecond(new Date(measurement.startTime));\r\n const stop = roundToSecond(new Date(measurement.stopValue));\r\n\r\n // Check if the start is within the date range if fromDate and toDate are provided\r\n if (start > from && start <= to) {\r\n // Calculate duration in hours\r\n const duration = (stop - start) / 3600000; // 3600000 ms = 1 hour\r\n totalDuration += duration;\r\n measurementCounter += 1;\r\n }\r\n }\r\n });\r\n\r\n dataSource[detail.description] = totalDuration;\r\n\r\n projectValues.push({\r\n projectId: project.id,\r\n state: projectName + \" - \" + project.resourceDescription,\r\n [detail.valueTypeId === valueTypeCodes.VA ? \"VA\" : detail.valueTypeId === valueTypeCodes.NVA ? \"NVA\" : detail.valueTypeId === valueTypeCodes.W ? \"W\" : \"UNKNOWN\"]: totalDuration, // Dynamic key\r\n type: detail.valueTypeId,\r\n typeName: (detail.valueTypeId === valueTypeCodes.VA) ? \"VA\" : (detail.valueTypeId === valueTypeCodes.NVA) ? 'NVA' : (detail.valueTypeId === valueTypeCodes.W) ? \"W\" : \"UNKNOWN\",\r\n title: detail.description,\r\n color: getColorForType(detail.valueTypeId),\r\n measurements: measurementCounter\r\n });\r\n }\r\n });\r\n\r\n return projectValues;\r\n }\r\n };\r\n\r\n const parseMeasurementRows = (measurementRows) => {\r\n // Initialize an object to hold the parsed data for each project\r\n let projectData = {};\r\n // Loop through each measurement row in the array\r\n measurementRows.forEach(row => {\r\n // Only process rows where \"checked\" is true\r\n if (!row.checked || row.stopTime === null) return;\r\n\r\n if (row.typeId === controlTypes.STOPWATCH || (row.typeId === controlTypes.EXTERNALAPI && row.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n const projectId = row.projectId;\r\n const detailId = row.detailId;\r\n const startTime = new Date(row.startTime);\r\n const stopTime = new Date(row.stopTime);\r\n const duration = (stopTime - startTime) / 3600000; // Calculate duration in hours\r\n\r\n // Initialize data for this project if not already done\r\n if (!projectData[projectId]) {\r\n projectData[projectId] = {\r\n state: row.projectName + \" - \" + row.resourceName,\r\n values: {}\r\n };\r\n }\r\n\r\n // Check if this detailId has already been processed for this project\r\n if (!projectData[projectId].values[detailId]) {\r\n projectData[projectId].values[detailId] = {\r\n typeId: row.valueTypeId,\r\n title: row.description,\r\n color: row.color,\r\n typeName: (row.valueTypeId === valueTypeCodes.VA) ? \"VA\" : (row.valueTypeId === valueTypeCodes.NVA) ? \"NVA\" : (row.valueTypeId === valueTypeCodes.W) ? \"W\" : \"UNKNOWN\",\r\n totalDuration: 0,\r\n measurementCounter: 0\r\n };\r\n }\r\n\r\n if (duration > 0) {\r\n // Update the total duration and measurement counter for this detail\r\n projectData[projectId].values[detailId].totalDuration += duration;\r\n projectData[projectId].values[detailId].measurementCounter += 1;\r\n }\r\n }\r\n });\r\n\r\n // Transform the data into the required output format\r\n const parsedOutput = [];\r\n Object.values(projectData).forEach(project => {\r\n Object.values(project.values).forEach(detail => {\r\n parsedOutput.push({\r\n state: project.state,\r\n [detail.typeName]: detail.totalDuration, // Dynamic key based on typeName\r\n type: detail.typeId,\r\n typeName: detail.typeName,\r\n title: detail.title,\r\n color: detail.color,\r\n measurements: detail.measurementCounter\r\n });\r\n });\r\n });\r\n\r\n return parsedOutput;\r\n };\r\n\r\n const getEmptyStateTitle = () => {\r\n if (selectedProjects.length === 0) {\r\n return \"No projects selected\";\r\n } else {\r\n return \"No measurements\";\r\n }\r\n };\r\n\r\n const getEmptyStateSubtitle = () => {\r\n if (selectedProjects.length === 0) {\r\n return \"Select at least 1 project to display data in the Yamazumi graph.\";\r\n } else {\r\n return \"There are no measurements to display\";\r\n }\r\n };\r\n\r\n const FlagstoneSwitch = styled((props) => (\r\n <Switch focusVisibleClassName=\".Mui-focusVisible\" disableRipple {...props} />\r\n ))(({ theme }) => ({\r\n width: 38,\r\n height: 20,\r\n padding: 0,\r\n '& .MuiSwitch-switchBase': {\r\n padding: 0,\r\n margin: 1,\r\n transitionDuration: '300ms',\r\n '&.Mui-checked': {\r\n transform: 'translateX(18px)',\r\n color: \"#5CC958\",\r\n '& + .MuiSwitch-track': {\r\n backgroundColor: '#E2F8E0',\r\n opacity: 1,\r\n border: 0,\r\n ...theme.applyStyles('dark', {\r\n backgroundColor: '#2ECA45',\r\n }),\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.5,\r\n },\r\n },\r\n '&.Mui-focusVisible .MuiSwitch-thumb': {\r\n color: \"#5CC958\",\r\n },\r\n '&.Mui-disabled .MuiSwitch-thumb': {\r\n color: theme.palette.grey[100],\r\n ...theme.applyStyles('dark', {\r\n color: theme.palette.grey[600],\r\n }),\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.7,\r\n ...theme.applyStyles('dark', {\r\n opacity: 0.3,\r\n }),\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n boxSizing: 'border-box',\r\n width: 18,\r\n height: 18,\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: 20 / 2,\r\n backgroundColor: '#E9E9EA',\r\n opacity: 1,\r\n transition: theme.transitions.create(['background-color'], {\r\n duration: 500,\r\n }),\r\n ...theme.applyStyles('dark', {\r\n backgroundColor: '#39393D',\r\n }),\r\n },\r\n }));\r\n\r\n\r\n //DevEx functions\r\n const onSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(dataMeasurementRows));\r\n\r\n const selectedIds = e.map(index => tempRows[index] !== undefined ? tempRows[index].id : null);\r\n setSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n var data = chartData(updatedArray.filter(x => x.checked));\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n setChartRows(data);\r\n }\r\n\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(updatedArray.filter(x => x.checked), profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n setGraphData(parseMeasurementRows(updatedArray.filter(x => x.checked)));\r\n\r\n // Financial\r\n let financialChartMeasurements = updatedArray.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => x.checked)\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n }\r\n\r\n const onProfitLossSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(financialMeasurementRows));\r\n\r\n const selectedIds = e.map(index => tempRows[index] !== undefined ? tempRows[index].id : null);\r\n\r\n setProfitLossSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(updatedArray.filter(x => x.checked), profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n }\r\n\r\n const onFiltersChange = (filters, dateRange, profitLossDateRanges) => {\r\n let currentFilters;\r\n let currentDateRange;\r\n let currentProfitLossDates;\r\n\r\n let currentDataFilters;\r\n let currentFinancialFilters;\r\n\r\n let filteredDataMeasurements;\r\n let filteredFinancialMeasurements;\r\n\r\n if (filters) {\r\n if (selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.TIMELINE) {\r\n currentDataFilters = filters;\r\n setDataFilters(filters);\r\n currentFinancialFilters = financialFilters;\r\n } else if (selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS) {\r\n currentFinancialFilters = filters;\r\n setFinancialFilters(filters);\r\n currentDataFilters = dataFilters;\r\n }\r\n currentFilters = filters;\r\n setAllFilters(filters);\r\n } else {\r\n currentDataFilters = dataFilters;\r\n currentFinancialFilters = financialFilters;\r\n currentFilters = allFilters;\r\n }\r\n\r\n if (dateRange) {\r\n currentDateRange = dateRange;\r\n } else {\r\n currentDateRange = timeRangeDates;\r\n }\r\n\r\n if (profitLossDateRanges) {\r\n currentProfitLossDates = profitLossDateRanges;\r\n setProfitLossDates(profitLossDateRanges);\r\n } else {\r\n currentProfitLossDates = profitLossDates;\r\n }\r\n\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n varFilteredResults = varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > currentDateRange.fromDate && startTime <= currentDateRange.toDate; // Check range\r\n });\r\n\r\n varFilteredResults.forEach((x) => (x.checked = true)); // Reset checked state\r\n\r\n // Uncheck all rows that have a date outside of date indicated in dateRangeSlider\r\n varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > currentDateRange.endDate || startTime <= currentDateRange.startDate; // Check range\r\n }).forEach((x) => (x.checked = false));\r\n\r\n filteredDataMeasurements = varFilteredResults\r\n .filter(x => x.checked)\r\n .map(x => ({ ...x })); // Creates new object copies\r\n\r\n filteredFinancialMeasurements = varFilteredResults\r\n .filter(x => x.checked && x.eventPrice > 0)\r\n .map(x => ({ ...x })); // Creates new object copies\r\n\r\n // FILTERS\r\n // if (selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.TIMELINE) {\r\n currentDataFilters && currentDataFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"accountName\":\r\n filteredDataMeasurements\r\n .filter((x) => x.accountName && !x.accountName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"accountCategoryName\":\r\n filteredDataMeasurements\r\n .filter((x) => x.accountCategoryName && !x.accountCategoryName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"companyName\":\r\n filteredDataMeasurements\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n filteredDataMeasurements\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (filteredDataMeasurements.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredDataMeasurements.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (filteredDataMeasurements.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredDataMeasurements.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n filteredDataMeasurements.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n default:\r\n ;\r\n }\r\n });\r\n // }\r\n\r\n\r\n // if (selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS) {\r\n currentFinancialFilters && currentFinancialFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"accountName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => x.accountName && !x.accountName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"accountCategoryName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => x.accountCategoryName && !x.accountCategoryName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"companyName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (filteredFinancialMeasurements.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredFinancialMeasurements.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (filteredFinancialMeasurements.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredFinancialMeasurements.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n filteredFinancialMeasurements.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n // }\r\n\r\n // GENERAL\r\n // set MeasurementRows to varFilteredResults sorted new to old\r\n // let newToOldMeasurementRows = [...varFilteredResults].sort((a, b) =>\r\n // new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n // );\r\n\r\n let dateSortedDataMeasurements = [...filteredDataMeasurements].sort((a, b) =>\r\n new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n );\r\n\r\n let dateSortedFinancialMeasurements = [...filteredFinancialMeasurements].sort((a, b) =>\r\n new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n );\r\n\r\n setDataMeasurementRows(dateSortedDataMeasurements);\r\n setFinancialMeasurementRows(dateSortedFinancialMeasurements);\r\n\r\n const indexes = dateSortedDataMeasurements\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setSelection(indexes);\r\n\r\n const profitLossIndexes = dateSortedFinancialMeasurements\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setProfitLossSelection(profitLossIndexes);\r\n\r\n // YAMAZUMI\r\n setGraphData(parseMeasurementRows(dateSortedDataMeasurements.filter(x => x.checked)));\r\n\r\n // PROFIT & LOSS\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(dateSortedFinancialMeasurements.filter(x => x.checked), currentProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n // TIMELINE\r\n var data = chartData(dateSortedDataMeasurements.filter(x => x.checked).flat());\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n setChartRows(data);\r\n }\r\n\r\n // FINANCIAL\r\n let financialChartMeasurements = filteredFinancialMeasurements.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => x.checked).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(currentDateRange.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(currentDateRange.toDate))\r\n\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n\r\n let tempGraphProjects = [...graphProjects]; // Clone the projects array\r\n let fromDate = currentDateRange.fromDate;\r\n let toDate = currentDateRange.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) <= toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(tempGraphProjects);\r\n };\r\n\r\n const dateFilterFinancialData = () => {\r\n constructPriceData(graphProjects, timeRangeDates.fromDate, timeRangeDates.toDate)\r\n // let financialChartMeasurements = originalMeasurementRows.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => new Date(x.insertedOn) >= new Date(timeRangeDates.fromDate) && new Date(x.insertedOn) <= new Date(timeRangeDates.toDate))\r\n\r\n let financialChartMeasurements = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)); // Clone original rows\r\n\r\n financialChartMeasurements = financialChartMeasurements.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > timeRangeDates.startDate && startTime <= timeRangeDates.endDate; // Check range\r\n });\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n }\r\n\r\n const limitString = (str, limit) => {\r\n if (str.length > limit) {\r\n return str.substring(0, limit) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n // Detail names for financial view\r\n const constructDetailCollection = (details) => {\r\n let temporaryCollection = [];\r\n for (let i = 0; i < details.length; i++) {\r\n let thisProjectDetail = details[i];\r\n if (thisProjectDetail.price > 0) {\r\n temporaryCollection.push({ id: thisProjectDetail.id, name: thisProjectDetail.description, registrationPoint: thisProjectDetail.resourceName, color: thisProjectDetail.color });\r\n }\r\n }\r\n //Empty array for all details, also add a total to display in the graph\r\n temporaryCollection.push({ id: -1, name: 'Total', color: '#c7c9c8' });\r\n\r\n return temporaryCollection;\r\n }\r\n\r\n // Data for financial view\r\n const constructFinancialData = (projectDetails, chartDataCollection) => {\r\n let tempTotalData = [];\r\n let total = 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n let count = 0;\r\n\r\n //First we loop through all measurements to calculate the TOTAL LINE\r\n chartDataCollection.forEach((thisMeasurement) => {\r\n let isStopwatch = false;\r\n let thisDetail = projectDetails.find(x => x.id === thisMeasurement.detailId);\r\n if (thisDetail !== undefined && thisDetail.price > 0) {\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId === 2)) {\r\n isStopwatch = true;\r\n }\r\n\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startTime);\r\n let stopDate = new Date(thisMeasurement.stopTime);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisDetail.price / 3600) * dif);\r\n\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (count === 0) {\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: startTime, price: 0, profitAdded: 0, isVisible: true, '-1_Total_price': 0, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, '-1_Total_price': total, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n count++;\r\n }\r\n });\r\n\r\n let tempDetailData = [];\r\n\r\n //Loop through the details and their measurements to get each unique detail line\r\n projectDetails.filter(x => x.price > 0).forEach(thisDetail => {\r\n let isStopwatch = false;\r\n let detailCount = 0;\r\n\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId === 2)) {\r\n //Stopwatch\r\n isStopwatch = true;\r\n }\r\n let thisMeasurements = chartDataCollection.filter(x => x.detailId === thisDetail.id);\r\n\r\n let total = 0;\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n\r\n if (thisMeasurements.length > 0) {\r\n let variablename = thisDetail.id + '_' + thisDetail.description + '_price';\r\n thisMeasurements.forEach(thisMeasurement => {\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startTime);\r\n let stopDate = new Date(thisMeasurement.stopTime);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisDetail.price / 3600) * dif);\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (detailCount === 0) {\r\n tempMeasurementData = { detailCount: 0, id: thisMeasurement.id, measurement: thisDetail.description, date: startTime, price: 0, profitAdded: 0, isVisible: true, [variablename]: 0, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: thisDetail.description, date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, [variablename]: total, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n detailCount++;\r\n });\r\n }\r\n\r\n\r\n });\r\n let combinedData = tempTotalData.concat(tempDetailData);\r\n return combinedData;\r\n }\r\n\r\n // TIMELINE\r\n const chartData = (data) => {\r\n let tempdata = [];\r\n let tempObj = {};\r\n\r\n data.forEach((x => {\r\n let startDate = new Date(x.startTime);\r\n let tempEndDate = new Date(x.startTime);\r\n let insertedOn = new Date(x.startTime);\r\n let updatedOn = new Date(x.startTime);\r\n\r\n if (x.typeId === controlTypes.STOPWATCH || x.typeId === controlTypes.EXTERNALAPI && x.externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (x.updatedOn !== undefined) {\r\n updatedOn = x.updatedOn;\r\n }\r\n if (x.stopTime !== null && x.stopTime.length > 0) {\r\n tempEndDate = new Date(x.stopTime);\r\n\r\n }\r\n if (x.insertedOn !== undefined) {\r\n insertedOn = x.insertedOn;\r\n }\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Stopwatch', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.dateValue, key: x.keyValue, counter: null, insertedOn: insertedOn, updatedOn: updatedOn, description: limitString(x.description, 15), color: x.registrationPointColor, chartType: 'rangeBar', argumentField: 'description', detailId: x.detailId, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.COUNTER) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Counter', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.integerValue, key: x.keyValue, counter: x.measurementValue, counterDescription: limitString(x.description, 15), color: x.registrationPointColor, chartType: 'scatter', argumentField: \"counterDescription\", linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.FREETEXT) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Free text', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.textValue, key: x.keyValue, counter: null, freetextDescription: limitString(x.description, 15), color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.DATALIST) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.CAMERA) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Image', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, image: x.imageId, thumbnail: x.thumbnail, cameraDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.SCANNER) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.EXTERNALAPI) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'External API', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, value: x.externalApiValues, externalApiDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n }\r\n\r\n tempdata.push(tempObj);\r\n }));\r\n tempdata = tempdata.filter(x => x.checked);\r\n return tempdata;\r\n }\r\n\r\n // FINANCIAL - LOGIC\r\n const handleDownloadImage = async (toDownload) => {\r\n let element;\r\n let fileName;\r\n if (toDownload === 'HighLow') {\r\n element = highLowRef.current;\r\n fileName = 'HighLow.jpg';\r\n } else {\r\n element = summaryRef.current;\r\n fileName = 'Summary.jpg';\r\n }\r\n const canvas = await html2canvas(element);\r\n\r\n const data = canvas.toDataURL('image/jpg');\r\n const link = document.createElement('a');\r\n\r\n if (typeof link.download === 'string') {\r\n link.href = data;\r\n link.download = fileName;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n window.open(data);\r\n }\r\n };\r\n\r\n // Data to display in financialSummaryTable\r\n const constructPriceData = (projects, thisFromDate, thisToDate) => {\r\n let aggregatedPriceData = [];\r\n let total = 0;\r\n\r\n projects.forEach(project => {\r\n let projectDetails = project.details;\r\n\r\n for (let i = 0; i < projectDetails.length; i++) {\r\n let thisDetail = projectDetails[i];\r\n let filteredMeasurements = thisDetail.measurements.filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(thisFromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(thisToDate));\r\n\r\n // for each measurement, set filteredMeasurement.externalApiTypeId = thisDetail.externalApiTypeId\r\n filteredMeasurements.forEach(measurement => {\r\n measurement.controlTypeId = thisDetail.controlTypeId;\r\n measurement.externalApiTypeId = thisDetail.externalApiTypeId;\r\n });\r\n\r\n if (filteredMeasurements.length > 0) {\r\n let detailType = filteredMeasurements[0].typeId;\r\n let totalTime = 0;\r\n let tempTotal = 0;\r\n\r\n if (detailType === 2 || (detailType === 7 && filteredMeasurements[0].externalApiTypeId === 2)) {\r\n for (let j = 0; j < filteredMeasurements.length; j++) {\r\n let startDate = new Date(filteredMeasurements[j].startValue);\r\n let stopDate = new Date(filteredMeasurements[j].stopValue);\r\n let dif = stopDate > startDate ? (stopDate.getTime() - startDate.getTime()) / 1000 : 0;\r\n totalTime += dif;\r\n }\r\n tempTotal = (thisDetail.price / 3600) * totalTime;\r\n } else {\r\n tempTotal = (filteredMeasurements.length * (thisDetail.price !== null ? thisDetail.price : 0));\r\n }\r\n\r\n let lowestDate = filteredMeasurements.reduce((minDate, measurement) => {\r\n let insertedOn = new Date(measurement.insertedOn);\r\n return insertedOn < minDate ? insertedOn : minDate;\r\n }, new Date(filteredMeasurements[0].insertedOn));\r\n\r\n let highestDate = filteredMeasurements.reduce((maxDate, measurement) => {\r\n let insertedOn = new Date(measurement.insertedOn);\r\n return insertedOn > maxDate ? insertedOn : maxDate;\r\n }, new Date(filteredMeasurements[0].insertedOn));\r\n\r\n aggregatedPriceData.push({\r\n projectId: project.id,\r\n projectName: project.projectName,\r\n resourceName: filteredMeasurements[0].resourceName,\r\n price: thisDetail.price !== null ? thisDetail.price : 0,\r\n totalPrice: tempTotal,\r\n isProfit: thisDetail.isProfit !== null ? thisDetail.isProfit : true,\r\n detailDescription: thisDetail.description,\r\n first: lowestDate,\r\n last: highestDate,\r\n amount: (!isStopwatch(filteredMeasurements[0]) ? filteredMeasurements.length : totalTime),\r\n color: thisDetail.color,\r\n type: detailType,\r\n externalApiTypeId: filteredMeasurements[0].externalApiTypeId,\r\n minuteamount: (!isStopwatch(filteredMeasurements[0]) ? null : convertHMS(totalTime)),\r\n });\r\n\r\n if (thisDetail.isProfit) {\r\n total += tempTotal;\r\n } else {\r\n total -= tempTotal;\r\n }\r\n }\r\n }\r\n });\r\n\r\n aggregatedPriceData = aggregatedPriceData.filter(x => x.price > 0);\r\n\r\n setTotalPrice(total);\r\n setPriceData(aggregatedPriceData);\r\n }\r\n\r\n const getControlTypeIcon = (typeId) => {\r\n let icon;\r\n switch (typeId) {\r\n case controlTypes.COUNTER:\r\n icon = <DiamondPlus className={classes.icon} />;\r\n break;\r\n case controlTypes.STOPWATCH:\r\n icon = <Timer className={classes.icon} />;\r\n break;\r\n case controlTypes.FREETEXT:\r\n icon = <TextCursorInput className={classes.icon} />;\r\n break;\r\n case controlTypes.DATALIST:\r\n icon = <List className={classes.icon} />;\r\n break;\r\n case controlTypes.SCANNER:\r\n icon = <ScanBarcode className={classes.icon} />;\r\n break;\r\n case controlTypes.CAMERA:\r\n icon = <Image className={classes.icon} />;\r\n break;\r\n case controlTypes.EXTERNALAPI:\r\n icon = <LinkIcon className={classes.icon} />;\r\n break;\r\n default:\r\n // code block\r\n }\r\n return icon;\r\n }\r\n\r\n const exportProfitLossReport = () => {\r\n if (profitLossReportComponentRef.current) {\r\n profitLossReportComponentRef.current.downloadReport(); // Call the function\r\n }\r\n };\r\n\r\n const comparePeriod = () => {\r\n const index = Object.keys(profitLossDates).length;\r\n\r\n if (index === 1) {\r\n setPercentageVisible(true);\r\n }\r\n\r\n if (compareLimit >= index) {\r\n var tempProfitLossDates = { ...profitLossDates };\r\n\r\n const [lastKey, lastValue] = Object.entries(tempProfitLossDates).at(0);\r\n\r\n var existingEndDate = lastValue.endDate;\r\n var existingStartDate = lastValue.startDate;\r\n\r\n const differenceInMs = existingEndDate - existingStartDate;\r\n const differenceInDays = differenceInMs / (1000 * 60 * 60 * 24);\r\n\r\n var newEndDate = new Date(lastValue.startDate.getTime() - 1000);\r\n var newStartDate = new Date(lastValue.startDate - differenceInMs);\r\n\r\n // for each tempProfitLossDate, set sequence to current sequence + 1\r\n tempProfitLossDates = Object.values(tempProfitLossDates).map(x => {\r\n return { ...x, sequence: x.sequence + 1 };\r\n });\r\n\r\n tempProfitLossDates[index] = { fromDate: new Date(newStartDate), startDate: new Date(newStartDate), toDate: new Date(newEndDate), endDate: new Date(newEndDate), sequence: 1 };\r\n\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // get earliest fromDate and startDate from profitLossDates, and latest toDate and endDate then set to timeRangeDates\r\n let earliestFromDate = new Date(Math.min.apply(null, Object.values(tempProfitLossDates).map(x => x.fromDate)));\r\n let latestToDate = new Date(Math.max.apply(null, Object.values(tempProfitLossDates).map(x => x.toDate)));\r\n\r\n let tempTimeRangeDates = { fromDate: earliestFromDate, toDate: latestToDate, startDate: earliestFromDate, endDate: latestToDate }\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(originalMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setBoolCompareDate(true);\r\n });\r\n\r\n onFiltersChange(financialFilters, tempTimeRangeDates, tempProfitLossDates);\r\n } else {\r\n toast.error(\"The limit of 5 has been reached\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }\r\n };\r\n\r\n const resetComparePeriod = () => {\r\n // remove all dates except the last one and change its sequence to 1\r\n let tempProfitLossDates = { ...profitLossDates };\r\n let lastKey = Object.keys(tempProfitLossDates).pop();\r\n let lastValue = tempProfitLossDates[lastKey];\r\n tempProfitLossDates = { [lastKey]: lastValue };\r\n\r\n // for each tempProfitLossDate, set sequence to 1\r\n tempProfitLossDates = Object.values(tempProfitLossDates).map(x => {\r\n return { ...x, sequence: 1 };\r\n });\r\n\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // get earliest fromDate and startDate from profitLossDates, and latest toDate and endDate then set to timeRangeDates\r\n let earliestFromDate = new Date(Math.min.apply(null, Object.values(tempProfitLossDates).map(x => x.fromDate)));\r\n let latestToDate = new Date(Math.max.apply(null, Object.values(tempProfitLossDates).map(x => x.toDate)));\r\n\r\n let tempTimeRangeDates = { fromDate: earliestFromDate, toDate: latestToDate, startDate: earliestFromDate, endDate: latestToDate }\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(originalMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setBoolCompareDate(false);\r\n });\r\n\r\n onFiltersChange(financialFilters, tempTimeRangeDates, tempProfitLossDates);\r\n setPercentageVisible(false);\r\n };\r\n\r\n const isStopwatch = (measurement) => {\r\n let measurementControlTypeId = measurement.controlTypeId || measurement.type;\r\n let measurementExternalApiTypeId = measurement.externalApiTypeId;\r\n\r\n if (measurementControlTypeId === controlTypes.STOPWATCH || (measurementControlTypeId === controlTypes.EXTERNALAPI && measurementExternalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n return true;\r\n } else {\r\n return false;\r\n };\r\n };\r\n\r\n const isFinancialView = () => {\r\n return selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS;\r\n };\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Graph\" backbutton={true} {...props} />\r\n {loading ?\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n\r\n :\r\n <React.Fragment>\r\n {noGraphFound ?\r\n <Box className={classes.noGraphContainer}>\r\n <p className={classes.noGraphContainer__text}>Unfortunately there is no graph available to view on this link. Make sure you have the correct URL.</p>\r\n </Box>\r\n :\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n }} >\r\n\r\n <Box className={classes.container}>\r\n <div className={classes.header__titleRow}>\r\n <button className={classes.backButton} onClick={() => navigate('/graphs')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to graph overview\r\n </button>\r\n <h1 className={classes.header__title}>Graph detail</h1>\r\n <GraphTabs selectedGraphType={selectedGraphType} handleGraphTypeSelection={handleGraphTypeSelection} />\r\n\r\n <div className={classes.buttonContainer}>\r\n <div className={classes.sharingContainer}>\r\n <button className={classes.secondaryIconButton} onClick={() => setSharingDialogOpen(!sharingDialogOpen)} ref={sharingButtonRef}>\r\n <Share className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Sharing\r\n </button>\r\n {sharingDialogOpen && (\r\n <div className={classes.sharingDialog} ref={sharingDialogRef}>\r\n <p className={classes.sharingDialog__disclaimer}>By publishing a chart, people with the link will be able to <span className={classes.disclaimer__highlight}>view the chart</span> as it is configured here. People who can view the chart are <span className={classes.disclaimer__highlight}>not able to edit.</span></p>\r\n <div className={classes.sharingDialog__buttonContainer}>\r\n <div className={classes.sharingDialog__switchContainer}>\r\n <FormControlLabel\r\n className={classes.switchContainer__label}\r\n control={<FlagstoneSwitch checked={graphIsPublished} onChange={(e) => handlePublishGraph(e.target.checked)} />}\r\n label=\"Published\"\r\n />\r\n </div>\r\n {/* <button className={classes.sharingDialog__primaryButton} onClick={() => copyLinkToClipboard()}>Copy link</button> */}\r\n <button\r\n className={`${classes.sharingDialog__primaryButton}`}\r\n onClick={copyLinkToClipboard}\r\n >\r\n {copiedToClipboard ? <p className={classes.copiedText}>Copied!</p> : ''}\r\n <p className={`${copiedToClipboard ? classes.copied : ''}`}> Copy link</p>\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n <button className={classes.primaryButton} onClick={() => navigateToModify()}>Edit graph</button>\r\n </div>\r\n </div>\r\n {graphConfigurationObject !== null &&\r\n <div className={classes.header}>\r\n <div className={classes.header__titleDetailRow}>\r\n <h2 className={classes.header__projectTitle}>{graphConfigurationObject.name}</h2>\r\n <div className={classes.header__detailContainer}>\r\n <div className={classes.header__detail}>\r\n <CalendarClock className={classes.header__detailIcon} />\r\n <p className={classes.header__detailText}>{graphConfigurationObject.updatedOn !== null ? parseDateToDDMMYYTime(graphConfigurationObject.updatedOn) : parseDateToDDMMYYTime(graphConfigurationObject.insertedOn)}</p>\r\n </div>\r\n <div className={classes.header__published}>\r\n <div\r\n className={`${classes.statusIndicator} ${graphIsPublished ? classes.published : classes.notPublished}`}\r\n />\r\n {graphIsPublished ? \"Published\" : \"Not published\"}\r\n </div>\r\n </div>\r\n </div>\r\n {graphConfigurationObject.description &&\r\n <TextWithReadMore dialogTitle={\"Description\"} text={graphConfigurationObject.description} />\r\n }\r\n </div>\r\n }\r\n <Box className={classes.chartContainer}>\r\n {(selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.PROFITLOSS) &&\r\n <div className={classes.chartContainer__buttonContainer}>\r\n <div className={classes.buttonContainer__start}>\r\n <DateRangePicker size=\"large\" setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} startDate={timeRangeDates.fromDate} endDate={timeRangeDates.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n\r\n {/* {(selectedGraphType === graphTypes.PROFITLOSS && boolCompareDate) &&\r\n <DateRangePicker size=\"large\" setDateRange={setCompareDateRange} index={1} resetDateRangeFilter={resetCompareDateRangeFilter} startDate={profitLossDates[1].fromDate} endDate={profitLossDates[1].endDate} handleSetStartDate={handleSetCompareStartDate} handleSetEndDate={handleSetCompareEndDate} />\r\n } */}\r\n {selectedGraphType === graphTypes.PROFITLOSS && <BoolToggle size=\"large\" label=\"Display percentages\" disabled={Object.keys(profitLossDates).length <= 1} setBoolValue={setPercentageVisible} boolValue={percentageVisible} />}\r\n\r\n {selectedGraphType === graphTypes.YAMAZUMI && <BoolToggle size=\"large\" label=\"Display labels\" disabled={false} setBoolValue={setLabelVisible} boolValue={labelVisible} />}\r\n </div>\r\n {selectedGraphType === graphTypes.PROFITLOSS &&\r\n <div className={classes.buttonContainer__end}>\r\n\r\n <button onClick={exportProfitLossReport} className={classes.secondaryButton}>Export PDF</button>\r\n </div>}\r\n\r\n </div>\r\n }\r\n {(selectedGraphType === graphTypes.TIMELINE || selectedGraphType === graphTypes.FINANCIAL) &&\r\n <div className={classes.timeRangePickerContainer}>\r\n <div className={classes.filterBlock}>\r\n <DateRangePicker size=\"large\" setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} startDate={timeRangeDates.fromDate} endDate={timeRangeDates.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n {selectedGraphType === graphTypes.TIMELINE && <BoolToggle disabled={false} size=\"large\" label=\"Display linear\" setBoolValue={setShowLinearTimeline} boolValue={showLinearTimeline} />}\r\n <DateRangeSlider updateDataRange={updateDataRange} timeRangeDates={timeRangeDates}></DateRangeSlider>\r\n </div>\r\n </div>\r\n }\r\n <div className={classes.yamazumiContainer}>\r\n {selectedGraphType === graphTypes.YAMAZUMI && (\r\n <>\r\n {(selectedProjects.length === 0 || graphData.length === 0 || dataMeasurementRows.length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>{getEmptyStateTitle()}</p>\r\n <p className={classes.emptyStateCard__subtitle}>{getEmptyStateSubtitle()}</p>\r\n </div>\r\n </div>\r\n )}\r\n <YamazumiChart\r\n {...props}\r\n dataSource={graphData}\r\n labelVisible={labelVisible}\r\n graphConfigurationName={graphConfigurationName}\r\n emptyState={graphData.length === 0}\r\n />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.TIMELINE && (\r\n <>\r\n {(chartRows.filter(x => roundToSecond(new Date(x.startDate)) > new Date(timeRangeDates.fromDate) && roundToSecond(new Date(x.startDate)) <= new Date(timeRangeDates.toDate)).length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No measurements</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no measurements to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <TimeLineChart\r\n data={chartRows}\r\n visualisationType={showLinearTimeline ? timeLineVisualisationTypes.LINEAREVENTS : timeLineVisualisationTypes.SPLIT}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.FINANCIAL && (\r\n <>\r\n {(financialChartData.length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no financial data to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <FinancialChart\r\n financialChartData={financialChartData}\r\n projectDetailNames={projectDetailNames}\r\n currency={activeCurrency}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)} />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.PROFITLOSS && (\r\n <>\r\n {(profitLossReportData === undefined || profitLossReportData.length === 0 || profitLossReportData === null) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no financial data to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <ProfitLossReport\r\n ref={profitLossReportComponentRef}\r\n data={financialMeasurementRows}\r\n profitLossReportData={profitLossReportData}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n boolCompareDate={boolCompareDate}\r\n comparePeriod={comparePeriod}\r\n resetComparePeriod={resetComparePeriod}\r\n percentageVisible={percentageVisible}\r\n compareLimit={compareLimit}\r\n setCompareDateRange={setCompareDateRange}\r\n profitLossDates={profitLossDates}\r\n currency={activeCurrency}\r\n />\r\n </>\r\n )}\r\n </div>\r\n <div style={{ visibility: isFinancialView() ? \"hidden\" : \"visible\", height: isFinancialView() ? \"0px\" : \"auto\" }}>\r\n <DevExDataTable data={dataMeasurementRows} columns={resultColumns} onSelectionChange={onSelectionChange} selection={selection} handleFiltersChange={onFiltersChange} />\r\n </div>\r\n\r\n <div style={{ visibility: isFinancialView() ? \"visible\" : \"hidden\", height: isFinancialView() ? \"auto\" : \"0px\" }}>\r\n <ProfitLossDevExDataTable data={financialMeasurementRows} columns={profitLossResultColumns} currency={activeCurrency} onSelectionChange={onProfitLossSelectionChange} selection={profitLossSelection} currentFilters={financialFilters} handleFiltersChange={onFiltersChange} />\r\n </div>\r\n\r\n {/* {(selectedGraphType !== graphTypes.PROFITLOSS && selectedGraphType !== graphTypes.FINANCIAL) && <DevExDataTable data={dataMeasurementRows} columns={resultColumns} onSelectionChange={onSelectionChange} selection={selection} handleFiltersChange={onFiltersChange} />}\r\n {(selectedGraphType === graphTypes.PROFITLOSS || selectedGraphType === graphTypes.FINANCIAL) && <ProfitLossDevExDataTable data={financialMeasurementRows} columns={profitLossResultColumns} currency={activeCurrency} onSelectionChange={onProfitLossSelectionChange} selection={profitLossSelection} handleFiltersChange={onFiltersChange} />} */}\r\n </Box>\r\n {selectedGraphType === graphTypes.FINANCIAL &&\r\n <div className={classes.financialDetailInformationContainer}>\r\n <div className={classes.highLowContainer} ref={highLowRef}>\r\n <div className={classes.filterTitle}>\r\n <span>High/Low</span>\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B' }} onClick={() => handleDownloadImage('HighLow')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </div>\r\n\r\n {loading ?\r\n <Box className={classes.loadingBalls}>\r\n <Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin>\r\n </Box>\r\n :\r\n highLowGraphProjects.length > 0 ?\r\n highLowGraphProjects.map((project, projectIndex) => (\r\n <Box key={`GraphProject_${projectIndex}`} className={classes.highLow__projectContainer}>\r\n {/* Project subtitle */}\r\n {/* <div className={classes.highLow__subtitleContainer}>\r\n <MapPin className={classes.subtitleContainer__icon} />\r\n <h3 className={classes.subtitleContainer__projectSubtitle}>{project.resourceDescription}</h3>\r\n\r\n </div> */}\r\n\r\n {/* Details of each project */}\r\n {project.details.map((detail, index) => {\r\n if (detail.measurements.length > 0 && detail.price > 0) {\r\n return (\r\n <div\r\n key={`TableHighLow_${detail.id}_${index}`}\r\n className={classes.highLow__detail}\r\n >\r\n <div className={classes.highLow__headerContainer}>\r\n <div className={classes.highLow__detailHeader}>\r\n {getControlTypeIcon(detail.controlTypeId)}\r\n <p className={classes.highLow__detailTitle}>{detail.description}</p>\r\n </div>\r\n <div className={classes.headerContainer__detailInformation}>\r\n <div className={classes.detailInformation__registrationPoint}>\r\n <Tooltip title={detail.measurements[0].resourceName} placement=\"top\">\r\n <MapPin className={classes.registrationPoint__icon} />\r\n </Tooltip>\r\n {/* <p className={classes.registrationPoint__name}>{detail.measurements[0].resourceName}</p> */}\r\n </div>\r\n {detail.isProfit ? (\r\n <Plus style={{ color: 'rgb(40, 167, 69)', paddingRight: '10px' }} />\r\n ) : (\r\n <Minus style={{ color: 'rgb(220, 53, 69)', paddingRight: '10px' }} />\r\n )}\r\n </div>\r\n </div>\r\n <Divider />\r\n <TableHighLow\r\n {...props}\r\n detail={detail}\r\n projectName={project.projectName}\r\n location={project.resourceDescription}\r\n projectQr={project.qrCode}\r\n currency={activeCurrency}\r\n />\r\n </div>\r\n );\r\n } else {\r\n return <React.Fragment key={`EmptyDetail_${index}`}></React.Fragment>;\r\n }\r\n })}\r\n </Box>\r\n ))\r\n :\r\n <React.Fragment></React.Fragment>\r\n }\r\n\r\n {(dataMeasurementRows.length === 0 && !loading) && <Box style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', height: '100%', justifyContent: 'center' }}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no events for this project yet.</p>\r\n </div>\r\n </Box>}\r\n </div>\r\n <div className={classes.financialDetailInformationContainer__right}>\r\n <div className={classes.pieChartsContainer}>\r\n <div className={classes.pieStyle}>\r\n {(!priceData || priceData.filter(x => !isStopwatch(x)).length === 0) &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no event measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n <EventChart data={priceData.filter(x => !isStopwatch(x) && x.price > 0)} title={\"Event overview\"} />\r\n </div>\r\n <div className={classes.pieStyle}>\r\n {priceData.filter(x => isStopwatch(x)).length === 0 &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No stopwatches</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no stopwatch measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n <EventChart data={priceData.filter(x => isStopwatch(x))} title={\"Time overview\"} />\r\n </div>\r\n </div>\r\n <div className={classes.financialSummaryContainer} ref={summaryRef}>\r\n <div className={classes.calculateBoxStyle}>\r\n <div className={classes.filterTitle} variant=\"contained\" content=\"Options\" >\r\n <span>Summary</span>\r\n <div >\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B', marginRight: '10px' }} onClick={() => handleDownloadImage('Summary')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <FinancialSummaryTable totalPrice={totalPrice} priceData={priceData} currency={activeCurrency} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </Box>\r\n </Box>\r\n }\r\n </React.Fragment>\r\n }\r\n </React.Fragment >\r\n )\r\n}\r\n\r\nexport default GraphDetailPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n zIndex: '999',\r\n position: 'fixed',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n fullHeader: {\r\n backgroundColor: '#C3996B',\r\n color: 'white',\r\n borderTopLeftRadius: '8px',\r\n borderTopRightRadius: '8px',\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n\r\n },\r\n\r\n extraInfo: {\r\n display: 'flex',\r\n justifyContent: 'end'\r\n },\r\n\r\n header: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"8px\",\r\n\r\n backgroundColor: \"#C3996B\",\r\n color: 'white',\r\n\r\n borderTopRightRadius: '8px',\r\n borderTopLeftRadius: '8px',\r\n\r\n padding: \"16px\",\r\n },\r\n\r\n header__titleRow: {\r\n width: \"100%\",\r\n minHeight: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n }\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n\r\n header__titleDetailRow: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n flexWrap: \"wrap\",\r\n gap: \"8px\",\r\n },\r\n\r\n header__projectTitle: {\r\n color: \"white\",\r\n },\r\n\r\n header__description: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n\r\n // on mobile, max height of 160px and ellipsis\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n display: \"-webkit-box\",\r\n WebkitLineClamp: \"5\",\r\n WebkitBoxOrient: \"vertical\",\r\n },\r\n\r\n header__detailContainer: {\r\n display: \"flex\",\r\n gap: \"24px\",\r\n },\r\n\r\n header__detail: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n header__detailIcon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n header__detailText: {\r\n margin: \"0px\",\r\n },\r\n\r\n header__published: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n },\r\n\r\n statusIndicator: {\r\n width: \"8px\",\r\n height: \"8px\",\r\n borderRadius: \"50%\",\r\n display: \"inline-block\",\r\n },\r\n\r\n // Style for published indicator (green)\r\n published: {\r\n backgroundColor: \"#5CC958\",\r\n },\r\n\r\n // Style for not published indicator (red)\r\n notPublished: {\r\n backgroundColor: \"#D84949\",\r\n },\r\n\r\n noGraphContainer: {\r\n width: \"400px\",\r\n\r\n margin: \"auto\",\r\n marginTop: \"125px\",\r\n padding: \"16px\",\r\n\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n noGraphContainer__text: {\r\n fontColor: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n margin: \"0\",\r\n textAlign: \"center\",\r\n },\r\n\r\n container: {\r\n boxSizing: \"border-box\",\r\n maxWidth: \"100%\",\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n borderRadius: \"8px\",\r\n marginBottom: '24px',\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n },\r\n\r\n graphInformationContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n marginBottom: \"24px\",\r\n },\r\n\r\n chartContainer: {\r\n width: \"100%\",\r\n\r\n position: \"relative\",\r\n zIndex: \"500\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"0px 0px 8px 8px\",\r\n padding: \"24px\",\r\n marginBottom: \"16px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n yamazumiContainer: {\r\n position: \"relative\",\r\n minHeight: \"400px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n emptyStateContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(237, 237, 237, 0.48)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n chartContainer__buttonContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n buttonContainer__start: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n },\r\n buttonContainer__end: {\r\n display: 'flex',\r\n gap: \"8px\"\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n // Filter on graph ---------------------------------------------------------------------------------------\r\n\r\n filterButton: {\r\n backgroundColor: \"#C3996B !important\"\r\n },\r\n\r\n timeRangePickerContainer: {\r\n marginBottom: \"8px\",\r\n },\r\n\r\n filterBlock: {\r\n width: \"100%\",\r\n\r\n display: 'flex',\r\n alignItems: \"center\",\r\n\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap',\r\n justifyContent: 'flex-start',\r\n gap: \"8px\"\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-evenly',\r\n }\r\n },\r\n\r\n filterItem: {\r\n [theme.breakpoints.down('sm')]: {\r\n marginBottom: '16px',\r\n width: '100%',\r\n textAlign: 'center',\r\n justifyContent: 'center',\r\n }\r\n },\r\n\r\n clearFiltersButton: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n\r\n padding: \"8px\",\r\n\r\n border: \"none\",\r\n backgroundColor: \"transparent\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41, 1)\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n\r\n gap: \"16px\",\r\n },\r\n\r\n sharingContainer: {\r\n position: \"relative\",\r\n zIndex: \"600\",\r\n },\r\n\r\n secondaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"1px solid #a77d4f\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #a77d4f\",\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"2px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n sharingDialog: {\r\n width: \"320px\",\r\n height: \"fit-content\",\r\n position: \"absolute\",\r\n zIndex: \"998\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n gap: \"24px\",\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n top: \"48px\",\r\n right: \"0px\",\r\n\r\n padding: \"16px\",\r\n },\r\n\r\n sharingDialog__disclaimer: {\r\n textAlign: \"center\",\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\"\r\n },\r\n\r\n disclaimer__highlight: {\r\n color: \"#F69127\",\r\n },\r\n\r\n sharingDialog__buttonContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n },\r\n\r\n sharingDialog__switchContainer: {\r\n width: 'fit-content',\r\n height: \"40px\",\r\n\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n },\r\n\r\n switchContainer__label: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n gap: \"8px !important\",\r\n margin: \"0px !important\",\r\n\r\n userSelect: \"none\",\r\n },\r\n\r\n sharingDialog__primaryButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"relative\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n copied: {\r\n opacity: 0,\r\n },\r\n\r\n copiedText: {\r\n opacity: 1,\r\n color: \"white\",\r\n position: \"absolute\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n verticalAlign: 'center',\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n // FINANCIAL - STYLING\r\n financialDetailInformationContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n\r\n highLowContainer: {\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexBasis: \"0\",\r\n flexGrow: \"1\",\r\n\r\n background: \"white\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n highLow__projectContainer: {\r\n\r\n },\r\n\r\n highLow__subtitleContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n subtitleContainer__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n subtitleContainer__projectSubtitle: {\r\n fontSize: \"18px\",\r\n margin: \"16px 0px 8px 0px\",\r\n },\r\n\r\n highLow__detail: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n highLow__headerContainer: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n flexDirection: 'row',\r\n backgroundColor: '#ede6df',\r\n },\r\n\r\n highLow__detailHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n\r\n padding: \"10px\",\r\n },\r\n\r\n highLow__detailTitle: {\r\n margin: \"0\",\r\n\r\n whiteSpace: \"nowrap\",\r\n },\r\n\r\n headerContainer__detailInformation: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"16px\",\r\n },\r\n\r\n detailInformation__registrationPoint: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n // overflow ...\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n\r\n fontSize: \"14px\",\r\n },\r\n\r\n registrationPoint__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n financialDetailInformationContainer__right: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexBasis: \"0\",\r\n flexGrow: \"2\",\r\n gap: \"16px\",\r\n },\r\n\r\n pieChartsContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n overflow: 'hidden',\r\n\r\n borderRadius: \"8px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n\r\n pieStyle: {\r\n width: \"50%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%'\r\n },\r\n },\r\n\r\n financialSummaryContainer: {\r\n overflow: 'hidden',\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"16px\",\r\n gap: \"10px\",\r\n },\r\n\r\n filterTitle: {\r\n backgroundColor: \"#C3996B !important\",\r\n color: 'white',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n padding: '10px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n },\r\n\r\n icon: {\r\n color: \"#0C0E29\",\r\n display: \"block\",\r\n\r\n height: \"24px\",\r\n width: \"24px\",\r\n\r\n strokeWidth: \"1.8px\",\r\n }\r\n}));","import React, { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useNavigate } from 'react-router-dom';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Fab, IconButton, Divider, Typography, Box, Grid2, Dialog, DialogActions, DialogTitle, DialogContent, DialogContentText, Button, ToggleButton, ToggleButtonGroup } from '@mui/material';\r\nimport { ArrowUp, CalendarClock, Trash2, Pencil, Plus, Search, Factory, X } from 'lucide-react';\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport { ProjectFilter, GraphFilterTypes } from '../../../Config/constants';\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport BackToTopButton from '../../Shared/Buttons/BackToTopButton';\r\n\r\n\r\nfunction GraphsOverviewPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [graphList, setGraphList] = useState([]);\r\n const [originalGraphList, setOriginalGraphList] = useState([]); // List of all graphs\r\n const [allGraphConfigurations, setAllGraphConfigurations] = useState([]);\r\n const initialProjectList = useRef([]);\r\n const firstLoad = useRef(false);\r\n const [loadAmount, setLoadAmount] = useState(21);\r\n const [deleteGraphId, setDeleteGraphId] = useState(null);\r\n const [visibleProjectFilter, setVisibleProjectFilter] = useState(ProjectFilter.ALLPROJECTS);\r\n\r\n // General\r\n\r\n // Filtering\r\n const [filters, setFilters] = useState(props.activeFilters.graphOverviewFilters);\r\n const [filteringDateRange, setFilteringDateRange] = useState(false);\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n\r\n const currentDate = new Date();\r\n const [loading, setLoading] = useState(true);\r\n const [delopen, setDelOpen] = useState(false);\r\n\r\n const loadMore = () => {\r\n // if (window.innerHeight + document.documentElement.scrollTop === document.scrollingElement.scrollHeight) {\r\n // let TempLoadAmount = loadAmount + 9;\r\n // if (firstLoad.current) {\r\n // dataService.getAllUserCompanyProjects(props.Login.userid, loadAmount + 9, 9).then(results => {\r\n // setGraphList(sortProjectsOnFinished(initialProjectList.current.concat(results)));\r\n // setOriginalGraphList(sortProjectsOnFinished(initialProjectList.current.concat(results)));\r\n // });\r\n // firstLoad.current = false;\r\n // }\r\n // else {\r\n // dataService.getAllUserCompanyProjects(props.Login.userid, loadAmount + 9, 9).then(results => {\r\n // if (results.length > 0) {\r\n // setGraphList(sortProjectsOnFinished(originalGraphList.concat(results)));\r\n // setOriginalGraphList(sortProjectsOnFinished(originalGraphList.concat(results)));\r\n // }\r\n // });\r\n // }\r\n // setLoadAmount(TempLoadAmount);\r\n // window.removeEventListener('scroll', loadMore);\r\n // }\r\n }\r\n\r\n const reload = () => {\r\n Promise.all([\r\n dataService.getAllUserCompanyProjects(props.Login.userid, 0, loadAmount),\r\n dataService.getAllGraphConfigurationsByCompanyIdList(props.Login.userid),\r\n ]).then((results) => {\r\n var userCompanyProjectResults = results[0];\r\n var graphConfigurationsByCompanyIds = results[1];\r\n\r\n if (userCompanyProjectResults !== null && userCompanyProjectResults !== undefined) {\r\n setGraphList(sortProjectsOnFinished(userCompanyProjectResults));\r\n setOriginalGraphList(sortProjectsOnFinished(userCompanyProjectResults));\r\n window.addEventListener('scroll', loadMore);\r\n initialProjectList.current = userCompanyProjectResults;\r\n firstLoad.current = true;\r\n }\r\n\r\n if (graphConfigurationsByCompanyIds !== null && graphConfigurationsByCompanyIds !== undefined) {\r\n // Sort results by the most recent date in either updatedOn or insertedOn\r\n const sortedResults = graphConfigurationsByCompanyIds.sort((a, b) => {\r\n // Get the date to compare for each object (updatedOn if available, otherwise insertedOn)\r\n const dateA = new Date(a.updatedOn || a.insertedOn);\r\n const dateB = new Date(b.updatedOn || b.insertedOn);\r\n\r\n // Sort in descending order (most recent first)\r\n return dateB - dateA;\r\n });\r\n setGraphList(sortedResults);\r\n setOriginalGraphList(sortedResults);\r\n }\r\n\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n setLoading(false);\r\n\r\n });\r\n\r\n }\r\n\r\n useEffect(() => {\r\n Promise.all([\r\n dataService.getAllUserCompanyProjects(props.Login.userid, 0, loadAmount),\r\n dataService.getAllUserCompanyGraphConfigurations(props.Login.userid),\r\n ]).then((results) => {\r\n var userCompanyProjectResults = results[0];\r\n var graphConfigurationsByCompanyIds = results[1];\r\n\r\n if (userCompanyProjectResults !== null && userCompanyProjectResults !== undefined) {\r\n setGraphList(sortProjectsOnFinished(userCompanyProjectResults));\r\n setOriginalGraphList(sortProjectsOnFinished(userCompanyProjectResults));\r\n window.addEventListener('scroll', loadMore);\r\n initialProjectList.current = userCompanyProjectResults;\r\n firstLoad.current = true;\r\n }\r\n\r\n if (graphConfigurationsByCompanyIds !== null && graphConfigurationsByCompanyIds !== undefined) {\r\n // Sort results by the most recent date in either updatedOn or insertedOn\r\n const sortedResults = graphConfigurationsByCompanyIds.sort((a, b) => {\r\n // Get the date to compare for each object (updatedOn if available, otherwise insertedOn)\r\n const dateA = new Date(a.updatedOn || a.insertedOn);\r\n const dateB = new Date(b.updatedOn || b.insertedOn);\r\n\r\n // Sort in descending order (most recent first)\r\n return dateB - dateA;\r\n });\r\n\r\n // setGraphList(sortedResults);\r\n filterGraphs(filters, sortedResults);\r\n setOriginalGraphList(sortedResults);\r\n }\r\n\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n\r\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n window.addEventListener('scroll', loadMore);\r\n }, [loadAmount]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const getPercentage = (fromDate, toDate) => {\r\n let fromDateDate = new Date(fromDate);\r\n let toDateDate = new Date(toDate);\r\n let difference = currentDate.getTime() - fromDateDate.getTime();\r\n let percentage = (difference / (toDateDate.getTime() - fromDateDate.getTime())) * 100;\r\n return percentage;\r\n }\r\n\r\n const handleDialogOpenDel = (id) => {\r\n setDeleteGraphId(id);\r\n setDelOpen(true);\r\n }\r\n\r\n const deleteGraph = (graphId) => {\r\n dataService.deleteGraphConfiguration(graphId, props.Login.userid).then((result) => {\r\n toast.success(`The graph was removed`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n setDeleteGraphId(null);\r\n setDelOpen(false);\r\n }).catch((error) => {\r\n toast.error(`A problem occured while changing the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('error', error)\r\n }).finally(() => {\r\n // remove deleted graph from originalgraphlist && graphlist\r\n let tempGraphList = [...graphList];\r\n let tempOriginalGraphList = [...originalGraphList];\r\n let index = tempGraphList.findIndex(x => x.id === graphId);\r\n let indexOriginal = tempOriginalGraphList.findIndex(x => x.id === graphId);\r\n tempGraphList.splice(index, 1);\r\n tempOriginalGraphList.splice(indexOriginal, 1);\r\n setGraphList(tempGraphList);\r\n setOriginalGraphList(tempOriginalGraphList);\r\n })\r\n }\r\n const handleDialogCloseDel = () => {\r\n setDeleteGraphId(null);\r\n setDelOpen(false);\r\n }\r\n\r\n const handleNewGraph = () => {\r\n navigateToGraphEdit();\r\n }\r\n\r\n const navigateToGraphEdit = (graphId) => {\r\n if (graphId) {\r\n navigate('/modifygraph/' + graphId);\r\n } else {\r\n navigate('/modifygraph/new');\r\n };\r\n }\r\n\r\n const navigateToGraphDetail = (graphId) => {\r\n if (graphId) {\r\n navigate('/graph/' + graphId);\r\n }\r\n }\r\n\r\n const sortProjectsOnFinished = (projects) => {\r\n var results = projects.map(project => {\r\n let percentage = getPercentage(Date.parse(project.timeRangeBegin), Date.parse(project.timeRangeEnd))\r\n if (percentage < 100) {\r\n project.finished = false\r\n }\r\n else {\r\n project.finished = true\r\n }\r\n\r\n return project\r\n })\r\n\r\n results = results.sort((a, b) => (a.finished - b.finished))\r\n return results\r\n }\r\n\r\n const formatCardDate = (date) => {\r\n const now = new Date();\r\n const inputDate = new Date(date);\r\n\r\n // Calculate the difference in years between the current date and the input date\r\n const yearDiff = now.getFullYear() - inputDate.getFullYear();\r\n\r\n // Check if the date is within the last year\r\n const isYoungerThanOneYear = yearDiff < 1 || (yearDiff === 1 && now.getMonth() >= inputDate.getMonth() && now.getDate() >= inputDate.getDate());\r\n\r\n // Format the date\r\n if (isYoungerThanOneYear) {\r\n const day = String(inputDate.getDate()).padStart(2, '0');\r\n const month = String(inputDate.getMonth() + 1).padStart(2, '0'); // Months are 0-based\r\n const hours = String(inputDate.getHours()).padStart(2, '0');\r\n const minutes = String(inputDate.getMinutes()).padStart(2, '0');\r\n\r\n return `${day}/${month} ${hours}:${minutes}`;\r\n } else {\r\n const day = String(inputDate.getDate()).padStart(2, '0');\r\n const month = String(inputDate.getMonth() + 1).padStart(2, '0');\r\n const year = inputDate.getFullYear();\r\n\r\n return `${day}/${month}/${year}`;\r\n }\r\n };\r\n\r\n const changeVisibleProjects = (value) => {\r\n setVisibleProjectFilter(value);\r\n }\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setFilteringDateRange(true);\r\n } else {\r\n setFilteringDateRange(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n filterGraphs(filters);\r\n }, [filteringDateRange, startDate, endDate])\r\n\r\n const handleSetStartDate = (event) => {\r\n\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n setDateRange(null, null)\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n\r\n props.actions.setGraphOverviewFiltersAction(tempFilters);\r\n\r\n setFilters(tempFilters);\r\n filterGraphs(tempFilters);\r\n }\r\n\r\n const filterGraphs = (thisFilters, graphList) => {\r\n let varFilteredGraphs = graphList ? [...graphList] : [...originalGraphList];\r\n if (filteringDateRange) {\r\n varFilteredGraphs = varFilteredGraphs.filter(x => new Date(x.updatedOn || x.insertedOn) > new Date(startDate) && new Date(x.updatedOn || x.insertedOn) < new Date(endDate))\r\n }\r\n\r\n for (let i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case GraphFilterTypes.GENERAL:\r\n varFilteredGraphs = varFilteredGraphs.filter(x =>\r\n x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()) ||\r\n x.name.toLowerCase().includes(filter.filterValue.toLowerCase())\r\n );\r\n break;\r\n default:\r\n varFilteredGraphs = varFilteredGraphs.filter(x => x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n }\r\n }\r\n setGraphList(varFilteredGraphs);\r\n }\r\n\r\n const getFilterValue = (type) => {\r\n\r\n let filter = filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n {loading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n }\r\n <TitlePage Text=\"Graphs overview\" backbutton={true} {...props} />\r\n <Box className={classes.container}>\r\n <div className={classes.header} sx={{ paddingBottom: '16px', display: 'flex', flexDirection: 'row', justifyContent: 'space-between', width: '100%' }}>\r\n <h1>Graph overview</h1>\r\n </div>\r\n <div className={classes.tableManagementContainer}>\r\n <div className={classes.tableManagementContainer__start}>\r\n <div className={classes.searchContainer}>\r\n <input placeholder=\"Search for graphs\" className={classes.search__input} type=\"text\" value={getFilterValue(GraphFilterTypes.GENERAL)} onChange={(e) => updateFilters(GraphFilterTypes.GENERAL, e)} />\r\n <Search size={16} className={classes.inputIcon} />\r\n </div>\r\n\r\n <DateRangePicker setDateRange={setDateRange} startDate={startDate} endDate={endDate} resetDateRangeFilter={resetDateRangeFilter} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n\r\n <div className={classes.toggleFilter}>\r\n <button onClick={() => changeVisibleProjects(ProjectFilter.ALLPROJECTS)} style={{ width: \"144px\" }} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>Company graphs</p>\r\n </button>\r\n <button onClick={() => changeVisibleProjects(ProjectFilter.MYPROJECTS)} style={{ width: \"144px\" }} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>My graphs</p>\r\n </button>\r\n <div style={{ transform: visibleProjectFilter === ProjectFilter.ALLPROJECTS ? \"translateX(0px)\" : \"translateX(144px)\" }} className={classes.toggleSelected} />\r\n </div>\r\n </div>\r\n <div className={classes.tableManagementContainer__end}>\r\n {/* <div className={classes.toggleFilter}>\r\n <button onClick={() => handleTableView(TableView.LIST)} style={{ width: \"64px\" }} className={classes.toggleFilter__optionButton}>\r\n <List className={classes.toggleFilter__icon} />\r\n <p className={classes.toggleFilter__label}>List</p>\r\n </button>\r\n <button onClick={() => handleTableView(TableView.GRID)} style={{ width: \"64px\" }} className={classes.toggleFilter__optionButton}>\r\n <LayoutGrid className={classes.toggleFilter__icon} />\r\n <p className={classes.toggleFilter__label}>Grid</p>\r\n </button>\r\n <div style={{ transform: tableViewMode === TableView.LIST ? \"translateX(0px)\" : \"translateX(64px)\" }} className={classes.toggleSelected} />\r\n </div> */}\r\n\r\n <button className={classes.tableManagementContainer__primaryIconButton} onClick={() => handleNewGraph()}>\r\n <Plus className={classes.iconButton__icon} />\r\n Create graph\r\n </button>\r\n </div>\r\n </div>\r\n <Grid2 container spacing={2}>\r\n {graphList.filter(project => visibleProjectFilter === ProjectFilter.MYPROJECTS ? (project.insertedByUserId === props.Login.userid || project.updatedByUserId === props.Login.userid) : project.isActive).length === 0 &&\r\n <Grid2 size={{ xs: 12, md: 6, lg: 4, xl: 3 }} className={classes.card} sx={{ background: 'rgb(195, 153, 107, 0.15)' }} onClick={() => handleNewGraph()} key={'createNewGraphBlock'}>\r\n <Box sx={{ border: \"2px dashed #C3996B\", height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>\r\n <Plus size=\"35\" style={{ color: \"#C3996B\", fontSize: \"30px\" }}></Plus>\r\n <Typography variant='h6' color='#C3996B'>Create a graph</Typography>\r\n </Box>\r\n </Grid2>\r\n }\r\n {/* <div className={classes.cardGrid}> */}\r\n {graphList.filter(project => visibleProjectFilter === ProjectFilter.MYPROJECTS ? (project.insertedByUserId === props.Login.userid || project.updatedByUserId === props.Login.userid) : project.isActive).map(graphConfiguration => (\r\n <Grid2 size={{ xs: 12, md: 6, lg: 4, xl: 3 }} className={classes.card} onClick={() => navigateToGraphDetail(graphConfiguration.uniqueId)} key={graphConfiguration.id}>\r\n <div className={classes.card__header}>\r\n <Tooltip title={graphConfiguration.name} placement=\"top\" disableInteractive>\r\n <h2 className={classes.cardTitle}>\r\n {graphConfiguration.name}\r\n </h2>\r\n </Tooltip>\r\n\r\n <div className={classes.buttonContainer}>\r\n <IconButton\r\n onClick={(event) => {\r\n event.stopPropagation(); // Prevent card's onClick from triggering\r\n handleDialogOpenDel(graphConfiguration.id);\r\n }}\r\n size='small'\r\n style={{ height: \"42px\", width: \"42px\", borderRadius: \"4px\", opacity: \"1\" }}\r\n >\r\n <Trash2 className={classes.buttonContainer__icon} />\r\n </IconButton>\r\n <IconButton\r\n onClick={(event) => {\r\n event.stopPropagation(); // Prevent card's onClick from triggering\r\n navigateToGraphEdit(graphConfiguration.uniqueId);\r\n }}\r\n size='small'\r\n style={{ height: \"42px\", width: \"42px\", borderRadius: \"4px\", opacity: \"1\" }}\r\n >\r\n <Pencil className={classes.buttonContainer__icon} />\r\n </IconButton>\r\n </div>\r\n </div>\r\n\r\n <Divider></Divider>\r\n <div className={classes.card__body}>\r\n <p className={classes.card__description}>\r\n {graphConfiguration.description}\r\n </p>\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.card__footer}>\r\n <div className={classes.card__details}>\r\n <div className={classes.card__date}>\r\n <CalendarClock className={classes.detail__icon} />\r\n {\r\n graphConfiguration.updatedOn === null || graphConfiguration.insertedOn > graphConfiguration.updatedOn ?\r\n formatCardDate(graphConfiguration.insertedOn) :\r\n formatCardDate(graphConfiguration.updatedOn)\r\n }\r\n </div>\r\n <div className={classes.card__company} style={{ lineHeight: '0px' }}>\r\n <Factory className={classes.detail__icon} />\r\n {graphConfiguration.companyName}\r\n </div>\r\n </div>\r\n <Tooltip title={graphConfiguration.isPublic ? \"Published\" : \"Not published\"} placement=\"top\" arrow>\r\n <div\r\n className={`${classes.statusIndicator} ${graphConfiguration.isPublic ? classes.published : classes.notPublished}`}\r\n />\r\n </Tooltip>\r\n </div>\r\n\r\n </Grid2>\r\n ))}\r\n\r\n </Grid2>\r\n\r\n <BackToTopButton />\r\n </Box>\r\n {(delopen && originalGraphList.some(x => x.id === deleteGraphId)) &&\r\n <Dialog\r\n className={classes.dialog}\r\n open={delopen}\r\n onClose={handleDialogCloseDel}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n <div className={classes.dialog__head}>\r\n <DialogTitle className={classes.dialog__title} id=\"draggable-dialog-title\">\r\n Delete graph\r\n </DialogTitle>\r\n <button onClick={() => handleDialogCloseDel()} className={classes.dialog__closeButton}>\r\n <X size={19} />\r\n </button>\r\n </div>\r\n <DialogContent className={classes.dialog__contentContainer}>\r\n <div className={classes.dialog__content}>\r\n <p className={classes.dialog__subtitle}>Are you sure you want to delete {originalGraphList.find(x => x.id === deleteGraphId).name}?</p>\r\n </div>\r\n </DialogContent>\r\n <DialogActions sx={{ display: 'flex', justifyContent: 'space-between', paddingLeft: '16px', paddingRight: '16px', paddingBottom: \"16px\" }}>\r\n <button className={classes.secondaryButton} onClick={handleDialogCloseDel}>Cancel</button>\r\n <button className={classes.deleteButton} onClick={() => deleteGraph(deleteGraphId)}>\r\n <Trash2 className={classes.iconButton__icon} />\r\n {\"Delete\"}\r\n </button>\r\n </DialogActions>\r\n </Dialog>\r\n }\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default GraphsOverviewPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxSizing: \"border-box\",\r\n\r\n borderRadius: \"8px\",\r\n maxWidth: \"90%\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginTop: \"148px\",\r\n marginBottom: \"24px\",\r\n },\r\n deleteButton: {\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n border: \"1px solid #D84949 !important\",\r\n borderRadius: \"4px\",\r\n fontSize: \"16px\",\r\n color: \"#D84949 !important\",\r\n backgroundColor: \"transparent\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n transition: \"all 0.2s ease-in-out\",\r\n \"&:hover\": {\r\n border: \"1px solid #D84949\",\r\n backgroundColor: \"#D84949\",\r\n color: \"white !important\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n position: 'fixed',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n headerButtonContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n searchContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n search__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '8px',\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n toggleFilter: {\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n },\r\n\r\n toggleFilter__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n display: \"block\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(50% - 1px)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n // [theme.breakpoints.down('sm')]: {\r\n // height: \"40px\",\r\n // paddingLeft: \"8px\",\r\n // },\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n linkButton: {\r\n color: 'white !important',\r\n background: \"#C3996B !important\",\r\n border: \"1px solid #C3996B !important\",\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n transition: '0.3s',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n },\r\n cardGrid: {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(1, 1fr)', // Default to 1 column on small screens\r\n gap: '16px', // Space between grid items\r\n borderRadius: \"8px\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginBottom: \"24px\",\r\n\r\n // Increase to 2 columns on medium screens\r\n [theme.breakpoints.up('md')]: {\r\n backgroundColor: \"green\",\r\n gridTemplateColumns: 'repeat(2, 1fr)',\r\n },\r\n\r\n // Max 3 columns on large screens\r\n [theme.breakpoints.up('lg')]: {\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n },\r\n },\r\n\r\n card: {\r\n display: \"flex\",\r\n flexDirection: \"column\", // Keep items stacked within each box\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"16px\",\r\n gap: \"8px\",\r\n\r\n width: '100%',\r\n height: \"190px\",\r\n\r\n transition: \"scale 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n scale: \"1.02\",\r\n }\r\n },\r\n\r\n card__create: {\r\n display: \"flex\",\r\n flexDirection: \"column\", // Keep items stacked within each box\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"16px\",\r\n gap: \"8px\",\r\n\r\n width: '100%',\r\n height: \"190px\",\r\n\r\n transition: \"scale 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n scale: \"1.02\",\r\n }\r\n },\r\n\r\n card__header: {\r\n width: '100%',\r\n maxHeight: '25%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n },\r\n\r\n cardTitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"24px\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"normal\",\r\n margin: \"0\",\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: 'block',\r\n whiteSpace: 'nowrap'\r\n },\r\n\r\n card__body: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n gap: \"16px\",\r\n },\r\n\r\n card__description: {\r\n margin: \"0\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n display: \"-webkit-box\",\r\n WebkitLineClamp: 3, // Number of lines to display before ellipsis\r\n WebkitBoxOrient: \"vertical\",\r\n lineHeight: \"1.5em\", // Adjust based on desired spacing\r\n maxHeight: \"4.5em\", // Should match lineHeight * WebkitLineClamp\r\n },\r\n\r\n card__footer: {\r\n width: \"100%\",\r\n // fontWeight: \"400\",\r\n display: \"flex\",\r\n alignItems: \"flex-end\",\r\n justifyContent: \"space-between\",\r\n },\r\n\r\n card__details: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"16px\",\r\n },\r\n\r\n card__date: {\r\n width: 'fit-content',\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n },\r\n\r\n detail__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n card__company: {\r\n width: 'fit-content',\r\n justifyContent: 'center',\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n },\r\n\r\n statusIndicator: {\r\n width: \"8px\",\r\n height: \"8px\",\r\n borderRadius: \"50%\",\r\n display: \"inline-block\",\r\n },\r\n\r\n // Style for published indicator (green)\r\n published: {\r\n backgroundColor: \"#5CC958\",\r\n },\r\n\r\n // Style for not published indicator (red)\r\n notPublished: {\r\n backgroundColor: \"#D84949\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n buttonContainer: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n flexDirection: 'row',\r\n },\r\n\r\n buttonContainer__icon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n strokeWidth: \"1.4px\",\r\n color: \"#0C0E29\"\r\n },\r\n\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '320px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n lineHeight: '100% !important',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 8px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"8px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#FDF3F3\",\r\n backgroundColor: \"#D84949\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"FDF3F3\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n}));","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { parseDateToDDMMYYTime, parseNewDateToDDMMYYYnoTime, parseNewDateToDDMMYYYWithoutSeconds } from '../../../Utils/dateHelper';\r\nimport { valueTypeCodes, controlTypes, externalApiTypes, ProjectFilterTypes, resultColumns, profitLossResultColumns, graphTypes, timeLineVisualisationTypes, registrationPointColors } from '../../../Config/constants';\r\n\r\n// Packages\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport html2canvas from 'html2canvas';\r\nimport { styled } from '@mui/material/styles';\r\n\r\n// Components\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport DateRangeSlider from '../../Shared/DateSelection/DateRangeSlider';\r\nimport DevExDataTable from \"../Results/Components/DevExDataTable\";\r\nimport ProfitLossDevExDataTable from \"./Components/ProfitLossDevExDataTable\";\r\nimport BoolToggle from '../../Shared/Buttons/BoolToggle';\r\nimport YamazumiChart from './Components/YamazumiChart';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport TimeLineChart from '../Results/Components/TimeLineChart'\r\nimport FinancialChart from './Components/FinancialChart';\r\nimport { Select, MenuItem, Box, FormControlLabel, Tooltip, Switch, Button, Divider } from '@mui/material';\r\nimport FinancialSummaryTable from './Components/FinancialSummaryTable';\r\nimport EventChart from '../ProjectReport/Components/EventChart';\r\nimport TableHighLow from '../ProjectReport/Components/TableHighLow';\r\nimport ProfitLossReport from './Components/ProfitLossReport';\r\nimport GraphTabs from './Components/GraphTabs';\r\n\r\n\r\n// Assets\r\nimport { Share, MapPin, X, ChevronLeft, Plus, Minus, Timer, ScanBarcode, Image, TextCursorInput, LinkIcon, List, DiamondPlus } from 'lucide-react';\r\n\r\nexport default function ModifyGraphPage(props) {\r\n const { graphId } = useParams();\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const loadAmount = 0;\r\n\r\n // General\r\n const [create, setCreate] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [selectedGraphType, setSelectedGraphType] = useState(1);\r\n const [graphProjects, setGraphProjects] = useState([]);\r\n const [allFilters, setAllFilters] = useState();\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n const [activeCurrency, setActiveCurrency] = useState(null);\r\n\r\n // Datagrid properties\r\n const [originalMeasurementRows, setOriginalMeasurementRows] = useState([]); // All measurementrows for current GraphDetail - should not be overwritten\r\n const [types, setTypes] = useState([]);\r\n\r\n // Sharing graph\r\n const [sharingDialogOpen, setSharingDialogOpen] = useState(false);\r\n const sharingDialogRef = useRef(null);\r\n const sharingButtonRef = useRef(null);\r\n const [graphIsPublished, setGraphIsPublished] = useState(false); // Is this graph published?\r\n const [copiedToClipboard, setCopiedToClipboard] = useState(false); // Confirmation that link is succesfully copied to clipboard\r\n\r\n // Filtering\r\n const [dateFiltering, setDateFiltering] = useState(false);\r\n const [timeRangeDates, setTimeRangeDates] = useState({ fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) });\r\n const [noGraphFound, setNoGraphFound] = useState(false);\r\n const [graphConfigurationObject, setGraphConfigurationObject] = useState(null);\r\n const [selectedProjects, setSelectedProjects] = useState([]);\r\n const [graphConfigurationName, setGraphConfigurationName] = useState(\"\");\r\n const [selectedProject, setSelectedProject] = useState([]);\r\n const [graphData, setGraphData] = useState([]);\r\n const [graphConfigurationId, setGraphConfigurationId] = useState(null);\r\n const [graphConfigurationUniqueId, setGraphConfigurationUniqueId] = useState(null);\r\n const [labelVisible, setLabelVisible] = useState(true);\r\n\r\n // Timeline chart\r\n const [chartRows, setChartRows] = useState([]);\r\n const [graphDetails, setGraphDetails] = useState([]);\r\n const [showLinearTimeline, setShowLinearTimeline] = useState(false);\r\n\r\n // Financial chart\r\n const summaryRef = React.createRef();\r\n const highLowRef = React.createRef();\r\n const [financialChartData, setFinancialChartData] = useState([]);\r\n const [projectDetailNames, setDetailsNames] = useState({});\r\n const [totalPrice, setTotalPrice] = useState(0); // for summary\r\n const [priceData, setPriceData] = useState([]);\r\n const [highLowGraphProjects, setHighLowGraphProjects] = useState([]);\r\n\r\n // Profit/Loss report\r\n const profitLossReportComponentRef = useRef(null);\r\n const [profitLossReportData, setProfitLossReportData] = useState([]);\r\n const [allAccountCategories, setAllAccountCategories] = useState([]);\r\n const [allAccounts, setAllAccounts] = useState([]);\r\n const [profitLossDates, setProfitLossDates] = useState({ 0: { sequence: 1, fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) } });\r\n\r\n const [boolCompareDate, setBoolCompareDate] = useState(false);\r\n const [compareLimit, setCompareLimit] = useState(5);\r\n const [percentageVisible, setPercentageVisible] = useState(false);\r\n\r\n // Date range filters\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n\r\n //DevExData\r\n const [selection, setSelection] = useState([]);\r\n const [profitLossSelection, setProfitLossSelection] = useState([]);\r\n\r\n // Tab-specific filtering\r\n const [dataFilters, setDataFilters] = useState([]);\r\n const [financialFilters, setFinancialFilters] = useState([]);\r\n\r\n const [dataMeasurementRows, setDataMeasurementRows] = useState([]);\r\n const [financialMeasurementRows, setFinancialMeasurementRows] = useState([]);\r\n\r\n // Possible remove\r\n const [filters, setFilters] = useState([]);\r\n\r\n // Filtering\r\n const [openSearch, setOpenSearch] = useState(false);\r\n const [graphConfigurationData, setGraphConfigurationData] = useState({\r\n \"dateRange\": {\r\n \"fromDate\": new Date(Date.now() - 86400000),\r\n \"toDate\": new Date(Date.now())\r\n },\r\n \"projects\": []\r\n });\r\n const [allUserCompanies, setAllUserCompanies] = useState([]);\r\n const [allProjects, setAllProjects] = useState([]);\r\n const [graphConfigurationDescription, setGraphConfigurationDescription] = useState(\"\");\r\n\r\n // Form validation\r\n const [graphConfigurationNameError, setGraphConfigurationNameError] = useState(\"\");\r\n const [selectedProjectsError, setSelectedProjectsError] = useState(\"\");\r\n const [graphConfigurationCompanyId, setGraphConfigurationCompanyId] = useState(null);\r\n const [graphConfigurationCompanyIdError, setGraphConfigurationCompanyIdError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (graphId !== null && graphId !== \"\" && graphId !== \"new\") {\r\n getGraphData(graphId);\r\n setCreate(false);\r\n } else if (graphId === \"new\") {\r\n setLoading(false);\r\n setCreate(true);\r\n }\r\n }, [graphId]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n console.log(timeRangeDates);\r\n // set graphConfigurationData.dateRange to timeRangeDates but only to and from\r\n let tempGraphConfigurationData = JSON.parse(JSON.stringify(graphConfigurationData));\r\n console.log(tempGraphConfigurationData);\r\n tempGraphConfigurationData.dateRange = {\r\n fromDate: timeRangeDates.fromDate,\r\n toDate: timeRangeDates.toDate\r\n };\r\n setGraphConfigurationData(tempGraphConfigurationData);\r\n }, [timeRangeDates]);\r\n\r\n useEffect(() => {\r\n console.log(graphConfigurationData);\r\n }, [graphConfigurationData]);\r\n\r\n useEffect(() => {\r\n var typeResults;\r\n var companyResults;\r\n var projectResults;\r\n Promise.all([\r\n dataService.getTypes(),\r\n dataService.getAllCompaniesByUserId(props.Login.userid),\r\n dataService.getAllUserCompanyProjects(props.Login.userid, 0, loadAmount),\r\n ]).then((results) => {\r\n typeResults = results[0];\r\n companyResults = results[1];\r\n projectResults = results[2];\r\n\r\n }).catch((error) => {\r\n\r\n }).finally(() => {\r\n if (typeResults !== null && typeResults !== undefined && typeResults.length > 0) {\r\n setTypes(typeResults.sort((a, b) => a.description.localeCompare(b.description)));\r\n }\r\n\r\n // Getting all companies the user is a member of\r\n if (companyResults !== null && companyResults !== undefined && companyResults.length > 0) {\r\n if (companyResults.length === 1) {\r\n setGraphConfigurationCompanyId(companyResults[0].id)\r\n }\r\n companyResults = companyResults.sort((a, b) => a.name.localeCompare(b.name));\r\n setAllUserCompanies(companyResults);\r\n }\r\n\r\n // Getting all project\r\n if (projectResults !== null && projectResults !== undefined && projectResults.length > 0) {\r\n if (companyResults !== null) {\r\n var newObject = JSON.parse(JSON.stringify(companyResults));\r\n newObject.forEach(cr => {\r\n cr.projects = projectResults.filter(x => x.companyId === cr.id).sort((a, b) => a.projectName.localeCompare(b.projectName));\r\n });\r\n setAllProjects(newObject);\r\n } else {\r\n setAllProjects(projectResults);\r\n }\r\n }\r\n\r\n });\r\n }, [props])\r\n\r\n useEffect(() => {\r\n // GetAllCurrencies\r\n dataService.getAllCurrencies().then(results => {\r\n setAllCurrencies(results);\r\n }).catch(() => {\r\n setAllCurrencies([]);\r\n });\r\n }, [])\r\n\r\n // useEffect(() => {\r\n // onFiltersChange();\r\n // }, [originalMeasurementRows])\r\n\r\n const roundToSecond = (date) => {\r\n // remove milliseconds\r\n return new Date(date.setMilliseconds(0));\r\n };\r\n\r\n // Convert seconds to hh:mm:ss\r\n function convertHMS(value) {\r\n const sec = parseInt(value, 10); // convert value to number if it's string\r\n let hours = Math.floor(sec / 3600); // get hours\r\n let minutes = Math.floor((sec - (hours * 3600)) / 60); // get minutes\r\n let seconds = sec - (hours * 3600) - (minutes * 60); // get seconds\r\n // add 0 if value < 10; Example: 2 => 02\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds; // Return is HH : MM : SS\r\n }\r\n\r\n const getEventPrice = (measurement) => {\r\n if (measurement.price === null || measurement.price === undefined || measurement.price == 0) {\r\n return 0;\r\n } else {\r\n if (measurement.typeId === controlTypes.STOPWATCH || (measurement.typeId === controlTypes.EXTERNALAPI && measurement.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n if (measurement.startValue && measurement.stopValue) {\r\n const startTime = new Date(measurement.startValue);\r\n const stopTime = new Date(measurement.stopValue);\r\n const durationInSeconds = (stopTime - startTime) / 1000; // Convert to seconds\r\n return parseFloat((measurement.price / 3600) * durationInSeconds.toFixed(2));\r\n } else {\r\n return 0;\r\n }\r\n } else {\r\n return measurement.price;\r\n }\r\n }\r\n };\r\n\r\n const handleGraphTypeSelection = (type) => {\r\n setSelectedGraphType(type);\r\n }\r\n\r\n // Setting properties for current graphConfiguration\r\n const getGraphData = (graphId) => {\r\n var graphdataResults = [];\r\n let tempGraphData = [];\r\n let tempMeasurementRows = [];\r\n let tempProfitLossMeasurementRows = [];\r\n var projectMeasurements = [];\r\n let tempTimeRangeDates = {};\r\n let graphDetails = [];\r\n\r\n let tempDataMeasurementRows = [];\r\n let tempFinancialMeasurementRows = [];\r\n\r\n let tempSelectedProjects = JSON.parse(JSON.stringify(selectedProject));\r\n\r\n dataService.getGraphConfigurationByUniqueId(graphId).then(results => {\r\n setGraphConfigurationName(results.name);\r\n setGraphConfigurationId(results.id);\r\n setGraphConfigurationObject(results);\r\n setGraphConfigurationUniqueId(results.uniqueId);\r\n\r\n setGraphConfigurationDescription(results.description);\r\n setGraphConfigurationCompanyId(results.companyId);\r\n setGraphConfigurationData(JSON.parse(results.metaData));\r\n setGraphIsPublished(results.isPublic);\r\n // handleGraphConfiguration(JSON.parse(results.metaData));\r\n\r\n graphdataResults = results;\r\n if (graphdataResults !== null && graphdataResults !== undefined) {\r\n setGraphProjects(graphdataResults.projects)\r\n graphdataResults.projects.forEach((project, index) => {\r\n tempSelectedProjects.push(project)\r\n // tempGraphData.push(parseProjectData(project).flat());\r\n project.details.forEach(detail => {\r\n detail.resourceName = project.resourceDescription;\r\n graphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n detail.measurements.forEach(measurement => {\r\n measurement.registrationPointColor = registrationPointColors[index];\r\n });\r\n\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n setGraphDetails(graphDetails);\r\n })\r\n\r\n projectMeasurements = projectMeasurements.flat();\r\n let tempProjectMeasurementRows;\r\n tempProjectMeasurementRows = (projectMeasurements.map(\r\n y => ({\r\n accountId: y.accountId,\r\n accountName: y.accountName,\r\n accountCategoryId: y.accountCategoryId,\r\n accountCategoryName: y.accountCategoryName,\r\n checked: true,\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n valueTypeId: y.valueTypeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceName: y.resourceName,\r\n registrationPointColor: y.registrationPointColor,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopValue,\r\n insertedOn: new Date(y.insertedOn),\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n valueType: getValueType(y.valueTypeId),\r\n keyValue: y.keyValue,\r\n eventPrice: getEventPrice(y),\r\n externalApiTypeId: y.externalApiTypeId,\r\n })));\r\n tempDataMeasurementRows.push(...tempProjectMeasurementRows.flat());\r\n\r\n tempFinancialMeasurementRows = tempDataMeasurementRows.filter(row => row.eventPrice > 0);\r\n\r\n // Setting timerangedates\r\n let graphConfigurationMetaData = JSON.parse(results.metaData);\r\n if (graphConfigurationMetaData.dateRange !== null && graphConfigurationMetaData.dateRange !== undefined) {\r\n let dateRange = JSON.parse(results.metaData).dateRange;\r\n tempTimeRangeDates = { fromDate: new Date(dateRange.fromDate), startDate: new Date(dateRange.fromDate), toDate: new Date(dateRange.toDate), endDate: new Date(dateRange.toDate) };\r\n } else {\r\n let element = getLatestStartTimeElement(tempDataMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n } else {\r\n tempTimeRangeDates = timeRangeDates;\r\n }\r\n }\r\n\r\n // let element = getLatestStartTimeElement(projectMeasurements);\r\n // let from = timeRangeDates.fromDate;\r\n // let to = timeRangeDates.toDate;\r\n // tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n\r\n // if (element !== null && element !== undefined) {\r\n // to = new Date(element.startTime);\r\n // from = new Date(element.startTime);\r\n // from.setHours(from.getHours() - 24);\r\n // const formattedDate = from.toString();\r\n // from = formattedDate;\r\n // tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n // }\r\n\r\n graphdataResults.projects.forEach(project => {\r\n // tempSelectedProjects.push(project)\r\n tempGraphData.push(parseProjectData(project, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate));\r\n project.details.forEach(detail => {\r\n // graphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n // setGraphDetails(graphDetails);\r\n })\r\n\r\n // Filter the array\r\n const measurementsBetweenDate = tempDataMeasurementRows.filter(item => {\r\n const insertedDate = roundToSecond(new Date(item.insertedOn));\r\n return insertedDate > tempTimeRangeDates.fromDate && insertedDate <= tempTimeRangeDates.toDate;\r\n });\r\n\r\n // Setting the states for measurements and graph data\r\n const selectionPromise = new Promise(resolve => {\r\n const indexes = tempDataMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n const profitLossIndexes = tempFinancialMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n setProfitLossSelection(profitLossIndexes);\r\n resolve();\r\n });\r\n\r\n const measurementRowsPromise = new Promise(resolve => {\r\n setDataMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n setFinancialMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)).filter(row => row.eventPrice > 0));\r\n resolve();\r\n });\r\n\r\n const originalMeasurementRowsPromise = new Promise(resolve => {\r\n setOriginalMeasurementRows([...tempDataMeasurementRows].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n resolve();\r\n });\r\n\r\n // Data for yamazumi\r\n const graphDataPromise = new Promise(resolve => {\r\n setGraphData(tempGraphData.flat());\r\n resolve();\r\n });\r\n\r\n // Data for timeline view\r\n const chartRowsPromise = new Promise(resolve => {\r\n let data = chartData(measurementsBetweenDate.flat());\r\n setChartRows(data);\r\n resolve();\r\n })\r\n\r\n // Data for financial view\r\n const financialDataPromise = new Promise(resolve => {\r\n constructPriceData(graphdataResults.projects, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate)\r\n\r\n let financialChartMeasurements = measurementsBetweenDate.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(tempTimeRangeDates.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(tempTimeRangeDates.toDate))\r\n\r\n let data = constructFinancialData(graphDetails, financialChartMeasurements)\r\n let detailNames = constructDetailCollection(graphDetails);\r\n\r\n setDetailsNames(detailNames);\r\n setFinancialChartData(data);\r\n\r\n // setting data for highlow table\r\n let tempGraphProjects = [...graphdataResults.projects]; // Clone the projects array\r\n let fromDate = tempTimeRangeDates.fromDate;\r\n let toDate = tempTimeRangeDates.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) <= toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(tempGraphProjects);\r\n\r\n resolve();\r\n })\r\n\r\n var dateranges = { 0: tempTimeRangeDates };\r\n // Data for profit loss report\r\n const profitLossReportDataPromise = new Promise(resolve => {\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(tempProjectMeasurementRows, dateranges).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n resolve();\r\n })\r\n\r\n const timeRangeDatesPromise = new Promise(resolve => {\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n\r\n // add sequence to tempTimeRangeDates \r\n let tempProfitLossDates = tempTimeRangeDates;\r\n tempProfitLossDates.sequence = 1;\r\n setProfitLossDates({ 0: tempProfitLossDates })\r\n resolve();\r\n });\r\n\r\n const selectedProjectsPromise = new Promise(resolve => {\r\n setSelectedProjects(tempSelectedProjects);\r\n resolve();\r\n });\r\n\r\n // Wait for all state updates to complete before setting loading to false\r\n Promise.all([\r\n selectionPromise,\r\n measurementRowsPromise,\r\n originalMeasurementRowsPromise,\r\n graphDataPromise,\r\n chartRowsPromise,\r\n financialDataPromise,\r\n profitLossReportDataPromise,\r\n timeRangeDatesPromise,\r\n selectedProjectsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n }\r\n }).catch(() => {\r\n setNoGraphFound(true);\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }).finally(() => {\r\n // setLoading(false); \r\n })\r\n }\r\n\r\n const setName = (event) => {\r\n setGraphConfigurationName(event.target.value);\r\n }\r\n\r\n const setDescription = (event) => {\r\n setGraphConfigurationDescription(event.target.value);\r\n }\r\n\r\n const getValueType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA:\r\n return 'Value added';\r\n case valueTypeCodes.NVA:\r\n return 'No value added';\r\n case valueTypeCodes.W:\r\n return 'Waste';\r\n default:\r\n return 'Unknown'\r\n }\r\n }\r\n\r\n const getMeasurementValue = (typeId, externalApiTypeId, text, int, time, dataListValue, imageLink, externalApiValue) => {\r\n switch (typeId) {\r\n case 1: return int;\r\n case 2:\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n case 3: return text;\r\n case 4: return dataListValue;\r\n case 5: return text;\r\n case 6: return imageLink;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return text;\r\n }\r\n return text;\r\n default: return ''\r\n // eslint-disable-next-line \r\n }\r\n };\r\n\r\n const getCommentText = (typeId, externalApiTypeId, text, commentText) => {\r\n switch (typeId) {\r\n case 1: return commentText;\r\n case 2: return commentText;\r\n case 3: return commentText;\r\n case 4: return commentText;\r\n case 5: return commentText;\r\n case 6: return commentText;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n return text;\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return commentText;\r\n }\r\n return commentText;\r\n default: return ''\r\n // eslint-disable-next-line\r\n }\r\n }\r\n\r\n const getLatestStartTimeElement = (data) => {\r\n //We check the latest measurement -> this is how we will decide from where to start the 'last 24h'\r\n if (data !== null && data.length > 0) {\r\n return data.reduce((latest, current) => {\r\n const latestTime = new Date(latest.startTime);\r\n const currentTime = new Date(current.startTime);\r\n\r\n // Check if current startTime is later than the latest\r\n return currentTime > latestTime ? current : latest;\r\n });\r\n } else {\r\n return null;\r\n }\r\n\r\n };\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n setTimeRangeDates({ fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) });\r\n let tempProfitLossDates = { 0: { sequence: 1, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) } }\r\n setProfitLossDates(tempProfitLossDates)\r\n // new daterange\r\n let newDateRange = { sequence: 1, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) };\r\n\r\n onFiltersChange(null, newDateRange, tempProfitLossDates);\r\n } else {\r\n resetDateRangeFilter()\r\n }\r\n }\r\n\r\n const handleSetStartDate = (event) => {\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n // Set timeRange to 24 hours before last measurement\r\n let element = getLatestStartTimeElement(originalMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n let tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n let tempProfitLossDates = { 0: tempTimeRangeDates };\r\n setStartDate(new Date(from));\r\n setEndDate(new Date(to));\r\n setTimeRangeDates(tempTimeRangeDates);\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // new date\r\n let newDateRange = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n\r\n onFiltersChange(null, newDateRange, tempProfitLossDates);\r\n }\r\n\r\n setPercentageVisible(false);\r\n }\r\n\r\n // Update Timerange for data\r\n const updateDataRange = (data, changeDay) => {\r\n let tempStartDate = new Date(data[0]);\r\n let tempEndDate = new Date(data[1]);\r\n let duplicateDateRange = JSON.parse(JSON.stringify(timeRangeDates));\r\n\r\n var objNewTimeRangeDate;\r\n\r\n if (changeDay) {\r\n // if it was a 'changeDay' action we start again with a 24h range\r\n objNewTimeRangeDate = { startDate: new Date(tempStartDate), fromDate: new Date(tempStartDate), toDate: new Date(tempEndDate), endDate: new Date(tempEndDate) };\r\n } else {\r\n // if slider was changed\r\n objNewTimeRangeDate = { startDate: new Date(tempStartDate), fromDate: new Date(duplicateDateRange.fromDate), toDate: new Date(duplicateDateRange.toDate), endDate: new Date(tempEndDate), };\r\n }\r\n\r\n if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(timeRangeDates)) {\r\n setTimeRangeDates(objNewTimeRangeDate);\r\n let tempProfitLossDates = objNewTimeRangeDate;\r\n tempProfitLossDates.sequence = 1;\r\n setProfitLossDates({ 0: tempProfitLossDates });\r\n\r\n onFiltersChange(null, objNewTimeRangeDate, { 0: tempProfitLossDates });\r\n }\r\n }\r\n\r\n const getColorForType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA: return '#4caf50'; // Green for Value Added\r\n case valueTypeCodes.NVA: return '#ff9800'; // Orange for Non Value Added\r\n case valueTypeCodes.W: return '#f44336'; // Red for Waste\r\n default: return '#9e9e9e'; // Gray for Unknown\r\n }\r\n };\r\n\r\n const handleProjectSelection = (project) => {\r\n var graphdataResults = [];\r\n let tempGraphData = graphData;\r\n let tempMeasurementRows = JSON.parse(JSON.stringify(originalMeasurementRows));\r\n var projectMeasurements = [];\r\n let tempTimeRangeDates = timeRangeDates;\r\n let tempProfitLossDates = profitLossDates;\r\n let tempGraphDetails = graphDetails;\r\n let tempGraphProjects = graphProjects;\r\n\r\n let tempDataMeasurementRows;\r\n let tempFinancialMeasurementRows;\r\n\r\n if (!selectedProjects.some(x => x.id === project.id)) {\r\n let tempGraphConfigurationData = JSON.parse(JSON.stringify(graphConfigurationData));\r\n let currentProjectData = {\r\n projectId: project.id,\r\n sequence: tempGraphConfigurationData.projects.length + 1\r\n }\r\n tempGraphConfigurationData.projects.unshift(currentProjectData);\r\n let tempSelectedProjects = [];\r\n if (selectedProjects !== null && selectedProjects !== undefined) {\r\n tempSelectedProjects = JSON.parse(JSON.stringify(selectedProjects));\r\n }\r\n tempSelectedProjects.unshift(project);\r\n setSelectedProjects(tempSelectedProjects);\r\n setSelectedProject(project);\r\n\r\n if (tempSelectedProjects.length === 1) {\r\n // find currency in allCurrencies and setActiveCurrency to that currency\r\n let currency = allCurrencies.find(x => x.id === tempSelectedProjects[0].currencyId);\r\n setActiveCurrency(currency);\r\n }\r\n\r\n //Fetch the project in the same way that is fetched on for the graphconfiguration.\r\n dataService.getAllProjectGraphMeasurementsById(project.id).then(results => {\r\n if (results) {\r\n //First we set the graph details\r\n tempGraphProjects.unshift(results);\r\n setGraphProjects(tempGraphProjects);\r\n project.details.forEach(detail => {\r\n detail.resourceName = project.resourceDescription;\r\n tempGraphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n // get index of the new project in the array\r\n let index = tempGraphProjects.findIndex(x => x.id === project.id);\r\n detail.measurements.forEach(measurement => {\r\n measurement.registrationPointColor = registrationPointColors[index];\r\n measurement.resourceName = project.resourceDescription;\r\n });\r\n\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n setGraphDetails(tempGraphDetails);\r\n\r\n projectMeasurements = projectMeasurements.flat();\r\n\r\n let tempProjectMeasurementRows = [];\r\n results.details.map(detail => {\r\n detail.measurements.map(y => (tempProjectMeasurementRows.push({\r\n accountId: y.accountId,\r\n accountName: y.accountName,\r\n accountCategoryId: y.accountCategoryId,\r\n accountCategoryName: y.accountCategoryName,\r\n checked: true,\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceName: y.resourceName,\r\n registrationPointColor: y.registrationPointColor,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopValue,\r\n insertedOn: new Date(y.startTime),\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n valueTypeId: y.valueTypeId,\r\n valueType: getValueType(y.valueTypeId),\r\n keyValue: y.keyValue,\r\n eventPrice: getEventPrice(y),\r\n externalApiTypeId: y.externalApiTypeId,\r\n })));\r\n });\r\n tempProjectMeasurementRows = tempMeasurementRows.unshift(...tempProjectMeasurementRows.flat());\r\n // setMeasurementRows([...tempMeasurementRows].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n // setOriginalMeasurementRows([...tempMeasurementRows].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n\r\n if (selectedProjects.length === 0) {\r\n // Setting timerangedates\r\n let element = getLatestStartTimeElement(tempMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n tempProfitLossDates = { 0: { sequence: 1, fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to } };\r\n setTimeRangeDates(tempTimeRangeDates);\r\n setProfitLossDates({ 0: tempTimeRangeDates });\r\n }\r\n }\r\n\r\n tempDataMeasurementRows = [...tempMeasurementRows];\r\n tempFinancialMeasurementRows = [...tempMeasurementRows].filter(row => row.eventPrice > 0);\r\n\r\n let measurementsBetweenDate = tempMeasurementRows.filter(item => {\r\n const insertedDate = roundToSecond(new Date(item.insertedOn));\r\n return insertedDate > tempTimeRangeDates.fromDate && insertedDate <= tempTimeRangeDates.toDate;\r\n });\r\n\r\n // Setting the states for measurements and graph data\r\n const selectionPromise = new Promise(resolve => {\r\n // const indexes = tempMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n\r\n\r\n\r\n let profitLossMeasurementsBetweenDate = measurementsBetweenDate.filter(row => row.eventPrice > 0);\r\n\r\n\r\n const indexes = measurementsBetweenDate.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n\r\n // ProfitLossSelection\r\n const profitLossIndexes = profitLossMeasurementsBetweenDate.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setProfitLossSelection(profitLossIndexes);\r\n resolve();\r\n });\r\n\r\n const measurementRowsPromise = new Promise(resolve => {\r\n setDataMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n setFinancialMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)).filter(row => row.eventPrice > 0));\r\n resolve();\r\n });\r\n\r\n const originalMeasurementRowsPromise = new Promise(resolve => {\r\n setOriginalMeasurementRows([...tempDataMeasurementRows].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n resolve();\r\n });\r\n\r\n // Data for yamazumi\r\n const graphDataPromise = new Promise(resolve => {\r\n setGraphData(parseMeasurementRows(measurementsBetweenDate));\r\n resolve();\r\n });\r\n\r\n // Data for timeline view\r\n const chartRowsPromise = new Promise(resolve => {\r\n let data = chartData(measurementsBetweenDate.flat());\r\n setChartRows(data);\r\n resolve();\r\n })\r\n\r\n // Data for financial view\r\n const financialDataPromise = new Promise(resolve => {\r\n constructPriceData(tempGraphProjects, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate)\r\n\r\n let financialChartMeasurements = tempMeasurementRows.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(tempTimeRangeDates.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(tempTimeRangeDates.toDate))\r\n let data = constructFinancialData(tempGraphDetails, financialChartMeasurements)\r\n let detailNames = constructDetailCollection(tempGraphDetails);\r\n setDetailsNames(detailNames);\r\n setFinancialChartData(data);\r\n\r\n let fromDate = tempTimeRangeDates.fromDate;\r\n let toDate = tempTimeRangeDates.toDate;\r\n\r\n let temp2GraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements\r\n .filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) < toDate\r\n )\r\n .map(measurement => ({\r\n ...measurement,\r\n typeId: detail.controlTypeId // Set typeId to controlTypeId\r\n }))\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(temp2GraphProjects);\r\n resolve();\r\n })\r\n\r\n // Data for profit loss report\r\n const profitLossReportDataPromise = new Promise(resolve => {\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(tempMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n resolve();\r\n })\r\n\r\n const timeRangeDatesPromise = new Promise(resolve => {\r\n setTimeRangeDates(tempTimeRangeDates);\r\n setProfitLossDates(tempProfitLossDates)\r\n resolve();\r\n });\r\n\r\n const selectedProjectsPromise = new Promise(resolve => {\r\n setSelectedProjects(tempSelectedProjects);\r\n resolve();\r\n });\r\n\r\n // Wait for all state updates to complete before setting loading to false\r\n Promise.all([\r\n selectionPromise,\r\n measurementRowsPromise,\r\n graphDataPromise,\r\n originalMeasurementRowsPromise,\r\n chartRowsPromise,\r\n financialDataPromise,\r\n profitLossReportDataPromise,\r\n timeRangeDatesPromise,\r\n selectedProjectsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n\r\n }\r\n })\r\n\r\n setGraphConfigurationData(tempGraphConfigurationData);\r\n }\r\n }\r\n\r\n const removeSelectedProject = (projectId) => {\r\n let tempSelectedProjects = JSON.parse(JSON.stringify(selectedProjects));\r\n let tempGraphData = JSON.parse(JSON.stringify(graphData));\r\n let tempGraphConfigurationData = JSON.parse(JSON.stringify(graphConfigurationData));\r\n let tempOriginalMeasurementRows = JSON.parse(JSON.stringify(originalMeasurementRows));\r\n let tempFinancialChartData = JSON.parse(JSON.stringify(financialChartData));\r\n let tempPriceData = JSON.parse(JSON.stringify(priceData));\r\n let tempChartRows = JSON.parse(JSON.stringify(chartRows));\r\n let tempHighLowGraphProjects = JSON.parse(JSON.stringify(highLowGraphProjects));\r\n\r\n let tempDataMeasurementRows = JSON.parse(JSON.stringify(dataMeasurementRows));\r\n let tempFinancialMeasurementRows = JSON.parse(JSON.stringify(financialMeasurementRows));\r\n\r\n let tempGraphProjects = JSON.parse(JSON.stringify(graphProjects));\r\n\r\n tempGraphProjects = tempGraphProjects.filter(x => x.id !== projectId);\r\n\r\n // Filter out the project with the matching projectId from selectedProjects\r\n tempSelectedProjects = tempSelectedProjects.filter(x => x.id !== projectId);\r\n\r\n // Filter out the measurements from originalMeasurementRows\r\n tempOriginalMeasurementRows = tempOriginalMeasurementRows.filter(measurement => measurement.projectId !== projectId);\r\n\r\n // Filter out Data Measurements\r\n tempDataMeasurementRows = tempDataMeasurementRows.filter(measurement => measurement.projectId !== projectId);\r\n const indexes = tempDataMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n\r\n // Filter out Financial Measurements\r\n tempFinancialMeasurementRows = tempFinancialMeasurementRows.filter(measurement => measurement.projectId !== projectId);\r\n const profitLossIndexes = tempFinancialMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setProfitLossSelection(profitLossIndexes);\r\n\r\n // // Filter out the measurements\r\n // tempMeasurementRows = tempMeasurementRows.filter(measurement => measurement.projectId !== projectId);\r\n // const indexes = tempMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n // setSelection(indexes);\r\n // Filter out profit/loss measurements\r\n // tempProfitLossMeasurementRows = tempProfitLossMeasurementRows.filter(measurement => measurement.projectId !== projectId);\r\n // const profitLossIndexes = tempProfitLossMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n // setProfitLossSelection(profitLossIndexes);\r\n\r\n // Filter out the entries in graphConfigurationData\r\n tempGraphConfigurationData.projects = tempGraphConfigurationData.projects.filter(data => data.projectId !== projectId)\r\n\r\n // Filter out priceData\r\n tempPriceData = tempPriceData.filter(data => data.projectId !== projectId);\r\n\r\n // Filter out financialData\r\n tempFinancialChartData = tempFinancialChartData.filter(data => data.projectId !== projectId);\r\n\r\n // Filter out chartRows\r\n tempChartRows = tempChartRows.filter(data => data.projectId !== projectId);\r\n\r\n // Set ProfitLossReportData\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(tempOriginalMeasurementRows, profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n // Filter out highLowProjects\r\n tempHighLowGraphProjects = tempHighLowGraphProjects.filter(project => project.id !== projectId);\r\n\r\n var graphDetails = [];\r\n tempSelectedProjects.map(project => {\r\n project.details.map(detail => {\r\n graphDetails.push(detail);\r\n })\r\n });\r\n\r\n if (tempSelectedProjects.length === 0) {\r\n setActiveCurrency(null);\r\n };\r\n\r\n let detailNames = constructDetailCollection(graphDetails);\r\n setGraphDetails(graphDetails);\r\n setDetailsNames(detailNames);\r\n setGraphData(parseMeasurementRows(tempDataMeasurementRows).flat()); // Update graph data (Yamazumi)\r\n setSelectedProjects(tempSelectedProjects)\r\n setGraphConfigurationData(tempGraphConfigurationData)\r\n setPriceData(tempPriceData);\r\n setFinancialChartData(tempFinancialChartData);\r\n setChartRows(tempChartRows);\r\n setGraphProjects(tempGraphProjects)\r\n setHighLowGraphProjects(tempHighLowGraphProjects);\r\n setOriginalMeasurementRows(tempOriginalMeasurementRows);\r\n setDataMeasurementRows(tempDataMeasurementRows);\r\n setFinancialMeasurementRows(tempFinancialMeasurementRows);\r\n\r\n // onFiltersChange()\r\n }\r\n\r\n const formatProfitLossReportData = async (measurements, dateranges) => {\r\n let accounts = [];\r\n let accountCategories = [];\r\n let tempProfitLossReportData = {\r\n companies: [],\r\n revenueAccountCategoryResults: [],\r\n costAccountCategoryResults: [],\r\n totalProfit: {},\r\n revenueTotal: {}, // Added for overall revenue totals\r\n costTotal: {}, // Added for overall cost totals\r\n percentageTotalProfit: {}\r\n };\r\n\r\n // Fetch accounts and categories if not already loaded\r\n if (!allAccounts.length && !allAccountCategories.length) {\r\n try {\r\n const [fetchedAccounts] = await Promise.all([\r\n dataService.getAllUserCompanyAccounts(props.Login.userid, 0, 0),\r\n ]);\r\n\r\n let tempAccounts = [];\r\n let tempAccountCategories = [];\r\n\r\n fetchedAccounts.forEach(company => {\r\n company.accountCategories.forEach(category => {\r\n let tempCategory = {\r\n id: category.id,\r\n name: category.name,\r\n isRevenue: category.isRevenue,\r\n isActive: category.isActive,\r\n companyId: category.companyId,\r\n };\r\n tempAccountCategories.push(tempCategory);\r\n\r\n category.accounts.forEach(account => {\r\n tempAccounts.push(account);\r\n });\r\n });\r\n });\r\n\r\n setAllAccounts(tempAccounts);\r\n setAllAccountCategories(tempAccountCategories);\r\n\r\n accounts = tempAccounts;\r\n accountCategories = tempAccountCategories;\r\n } catch (error) {\r\n console.error(\"Error fetching account data:\", error);\r\n return tempProfitLossReportData;\r\n }\r\n } else {\r\n accounts = allAccounts;\r\n accountCategories = allAccountCategories;\r\n }\r\n\r\n // sort dateranges by sequence\r\n let orderedDateRanges = Object.keys(dateranges).map(key => dateranges[key]).sort((a, b) => a.sequence - b.sequence);\r\n\r\n // Initialize date range totals and process measurements\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n const { fromDate, toDate } = orderedDateRanges[rangeIndex];\r\n const from = new Date(fromDate);\r\n const to = new Date(toDate);\r\n\r\n // Initialize date range totals if not already initialized\r\n if (!tempProfitLossReportData.totalProfit[rangeIndex]) {\r\n tempProfitLossReportData.totalProfit[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.revenueTotal[rangeIndex]) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.costTotal[rangeIndex]) {\r\n tempProfitLossReportData.costTotal[rangeIndex] = 0;\r\n }\r\n\r\n // Filter measurements within the current date range\r\n const measurementsInDateRange = measurements.filter(measurement => {\r\n const insertedDate = roundToSecond(new Date(measurement.insertedOn));\r\n return insertedDate > from && insertedDate <= to;\r\n });\r\n\r\n // Process each measurement within the current date range\r\n measurementsInDateRange.filter(x => x.accountCategoryId !== null).forEach(measurement => {\r\n let measurementAccount = accounts.find(acc => acc.id === measurement.accountId);\r\n let measurementAccountCategory = accountCategories.find(\r\n category => category.id === measurementAccount.accountCategoryId\r\n );\r\n\r\n if (!measurementAccount || !measurementAccountCategory) return;\r\n\r\n let measurementCompanyName = measurement.companyName;\r\n\r\n // Add company if not already present\r\n if (!tempProfitLossReportData.companies.includes(measurementCompanyName)) {\r\n tempProfitLossReportData.companies.push(measurementCompanyName);\r\n tempProfitLossReportData.companies.sort((a, b) => a.localeCompare(b));\r\n }\r\n\r\n const isRevenue = measurementAccountCategory.isRevenue;\r\n const categoryList = isRevenue\r\n ? tempProfitLossReportData.revenueAccountCategoryResults\r\n : tempProfitLossReportData.costAccountCategoryResults;\r\n\r\n let category = categoryList.find(cat => cat.id === measurementAccountCategory.id);\r\n\r\n // Add category if not already present\r\n if (!category) {\r\n category = {\r\n id: measurementAccountCategory.id,\r\n name: measurementAccountCategory.name,\r\n isRevenue: isRevenue,\r\n accountResults: [],\r\n total: {}, // Dynamically calculated totals for each date range\r\n percentage: {}\r\n };\r\n categoryList.push(category);\r\n }\r\n\r\n let account = category.accountResults.find(acc => acc.id === measurementAccount.id);\r\n\r\n // Add account if not already present\r\n if (!account) {\r\n account = {\r\n id: measurementAccount.id,\r\n name: measurementAccount.name,\r\n isActive: measurementAccount.isActive,\r\n total: {},\r\n percentage: {}\r\n };\r\n category.accountResults.push(account);\r\n }\r\n\r\n // Update totals\r\n account.total[rangeIndex] = (account.total[rangeIndex] || 0) + measurement.eventPrice;\r\n category.total[rangeIndex] = (category.total[rangeIndex] || 0) + measurement.eventPrice;\r\n\r\n if (isRevenue) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] += measurement.eventPrice;\r\n } else {\r\n tempProfitLossReportData.costTotal[rangeIndex] += measurement.eventPrice;\r\n }\r\n\r\n tempProfitLossReportData.totalProfit[rangeIndex] =\r\n (tempProfitLossReportData.totalProfit[rangeIndex] || 0) +\r\n (isRevenue ? measurement.eventPrice : -measurement.eventPrice);\r\n });\r\n\r\n // Ensure totals for each category and account have all date ranges\r\n tempProfitLossReportData.revenueAccountCategoryResults.forEach(category => {\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!category.total[rangeIndex]) {\r\n category.total[rangeIndex] = 0; // Set missing total to 0\r\n }\r\n category.accountResults.forEach(account => {\r\n if (!account.total[rangeIndex]) {\r\n account.total[rangeIndex] = 0; // Set missing account total to 0\r\n }\r\n });\r\n });\r\n });\r\n\r\n tempProfitLossReportData.costAccountCategoryResults.forEach(category => {\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!category.total[rangeIndex]) {\r\n category.total[rangeIndex] = 0; // Set missing total to 0\r\n }\r\n category.accountResults.forEach(account => {\r\n if (!account.total[rangeIndex]) {\r\n account.total[rangeIndex] = 0; // Set missing account total to 0\r\n }\r\n });\r\n });\r\n });\r\n\r\n // Ensure overall totals for revenue and cost have all date ranges\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!tempProfitLossReportData.revenueTotal[rangeIndex]) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.costTotal[rangeIndex]) {\r\n tempProfitLossReportData.costTotal[rangeIndex] = 0;\r\n }\r\n });\r\n });\r\n\r\n // Add percentage calculations for each category and account\r\n const calculatePercentage = (prev, curr) => {\r\n if (prev === 0 && curr === 0) return 0; // No change\r\n if (prev === 0) return 100; // From 0 to any value\r\n return ((curr - prev) / Math.abs(prev)) * 100;\r\n };\r\n\r\n // Calculate percentages for each category\r\n [tempProfitLossReportData.revenueAccountCategoryResults, tempProfitLossReportData.costAccountCategoryResults].forEach(categoryList => {\r\n categoryList.forEach(category => {\r\n Object.keys(category.total).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n category.percentage[rangeIndex] = calculatePercentage(\r\n category.total[prevIndex] || 0,\r\n category.total[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n\r\n category.accountResults.forEach(account => {\r\n Object.keys(account.total).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n account.percentage[rangeIndex] = calculatePercentage(\r\n account.total[prevIndex] || 0,\r\n account.total[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n });\r\n });\r\n });\r\n\r\n // Calculate percentages for totalProfit\r\n tempProfitLossReportData.percentageTotalProfit = {};\r\n Object.keys(tempProfitLossReportData.totalProfit).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n tempProfitLossReportData.percentageTotalProfit[rangeIndex] = calculatePercentage(\r\n tempProfitLossReportData.totalProfit[prevIndex] || 0,\r\n tempProfitLossReportData.totalProfit[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n\r\n return tempProfitLossReportData;\r\n };\r\n\r\n const parseProjectData = (project, fromDate, toDate) => {\r\n let from;\r\n let to;\r\n\r\n // Convert fromDate and toDate to Date objects if they are provided\r\n if (fromDate && toDate) {\r\n from = new Date(fromDate);\r\n to = new Date(toDate);\r\n }\r\n\r\n if (project) {\r\n const projectName = project.projectName;\r\n var projectValues = [];\r\n let dataSource = {};\r\n\r\n project.details.forEach(detail => {\r\n if ((detail.controlTypeId === controlTypes.STOPWATCH || detail.controlTypeId === controlTypes.EXTERNALAPI && detail.externalApiTypeId === externalApiTypes.STOPWATCH) && detail.isActive) {\r\n let totalDuration = 0;\r\n var measurementCounter = 0;\r\n\r\n detail.measurements.forEach(measurement => {\r\n if (measurement.stopValue !== null && measurement.stopValue !== undefined) {\r\n const start = roundToSecond(new Date(measurement.startTime));\r\n const stop = roundToSecond(new Date(measurement.stopValue));\r\n\r\n // Check if the start is within the date range if fromDate and toDate are provided\r\n if (start > from && start <= to) {\r\n // Calculate duration in hours\r\n const duration = (stop - start) / 3600000; // 3600000 ms = 1 hour\r\n totalDuration += duration;\r\n measurementCounter += 1;\r\n }\r\n }\r\n });\r\n\r\n dataSource[detail.description] = totalDuration;\r\n\r\n projectValues.push({\r\n projectId: project.id,\r\n state: projectName + \" - \" + project.resourceDescription,\r\n [detail.valueTypeId === valueTypeCodes.VA ? \"VA\" : detail.valueTypeId === valueTypeCodes.NVA ? \"NVA\" : detail.valueTypeId === valueTypeCodes.W ? \"W\" : \"UNKNOWN\"]: totalDuration, // Dynamic key\r\n type: detail.valueTypeId,\r\n typeName: (detail.valueTypeId === valueTypeCodes.VA) ? \"VA\" : (detail.valueTypeId === valueTypeCodes.NVA) ? 'NVA' : (detail.valueTypeId === valueTypeCodes.W) ? \"W\" : \"UNKNOWN\",\r\n title: detail.description,\r\n color: getColorForType(detail.valueTypeId),\r\n measurements: measurementCounter\r\n });\r\n }\r\n });\r\n\r\n return projectValues;\r\n }\r\n };\r\n\r\n const parseMeasurementRows = (measurementRows) => {\r\n // Initialize an object to hold the parsed data for each project\r\n let projectData = {};\r\n // Loop through each measurement row in the array\r\n measurementRows.forEach(row => {\r\n // Only process rows where \"checked\" is true\r\n if (!row.checked || row.stopTime === null) return;\r\n\r\n if (row.typeId === controlTypes.STOPWATCH || (row.typeId === controlTypes.EXTERNALAPI && row.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n const projectId = row.projectId;\r\n const detailId = row.detailId;\r\n const startTime = new Date(row.startTime);\r\n const stopTime = new Date(row.stopTime);\r\n const duration = (stopTime - startTime) / 3600000; // Calculate duration in hours\r\n\r\n // Initialize data for this project if not already done\r\n if (!projectData[projectId]) {\r\n projectData[projectId] = {\r\n state: row.projectName + \" - \" + row.resourceName,\r\n values: {}\r\n };\r\n }\r\n\r\n // Check if this detailId has already been processed for this project\r\n if (!projectData[projectId].values[detailId]) {\r\n projectData[projectId].values[detailId] = {\r\n typeId: row.valueTypeId,\r\n title: row.description,\r\n color: row.color,\r\n typeName: (row.valueTypeId === valueTypeCodes.VA) ? \"VA\" : (row.valueTypeId === valueTypeCodes.NVA) ? \"NVA\" : (row.valueTypeId === valueTypeCodes.W) ? \"W\" : \"UNKNOWN\",\r\n totalDuration: 0,\r\n measurementCounter: 0\r\n };\r\n }\r\n\r\n if (duration > 0) {\r\n // Update the total duration and measurement counter for this detail\r\n projectData[projectId].values[detailId].totalDuration += duration;\r\n projectData[projectId].values[detailId].measurementCounter += 1;\r\n }\r\n }\r\n });\r\n\r\n // Transform the data into the required output format\r\n const parsedOutput = [];\r\n Object.values(projectData).forEach(project => {\r\n Object.values(project.values).forEach(detail => {\r\n parsedOutput.push({\r\n state: project.state,\r\n [detail.typeName]: detail.totalDuration, // Dynamic key based on typeName\r\n type: detail.typeId,\r\n typeName: detail.typeName,\r\n title: detail.title,\r\n color: detail.color,\r\n measurements: detail.measurementCounter\r\n });\r\n });\r\n });\r\n\r\n return parsedOutput;\r\n };\r\n\r\n const getEmptyStateTitle = () => {\r\n if (selectedProjects.length === 0) {\r\n return \"No projects selected\";\r\n } else {\r\n return \"No measurements\";\r\n }\r\n };\r\n\r\n const getEmptyStateSubtitle = () => {\r\n if (selectedProjects.length === 0) {\r\n return \"Select at least 1 project to display data in the Yamazumi graph.\";\r\n } else {\r\n return \"There are no measurements to display\";\r\n }\r\n };\r\n\r\n const FlagstoneSwitch = styled((props) => (\r\n <Switch focusVisibleClassName=\".Mui-focusVisible\" disableRipple {...props} />\r\n ))(({ theme }) => ({\r\n width: 38,\r\n height: 20,\r\n padding: 0,\r\n '& .MuiSwitch-switchBase': {\r\n padding: 0,\r\n margin: 1,\r\n transitionDuration: '300ms',\r\n '&.Mui-checked': {\r\n transform: 'translateX(18px)',\r\n color: \"#5CC958\",\r\n '& + .MuiSwitch-track': {\r\n backgroundColor: '#E2F8E0',\r\n opacity: 1,\r\n border: 0,\r\n ...theme.applyStyles('dark', {\r\n backgroundColor: '#2ECA45',\r\n }),\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.5,\r\n },\r\n },\r\n '&.Mui-focusVisible .MuiSwitch-thumb': {\r\n color: \"#5CC958\",\r\n },\r\n '&.Mui-disabled .MuiSwitch-thumb': {\r\n color: theme.palette.grey[100],\r\n ...theme.applyStyles('dark', {\r\n color: theme.palette.grey[600],\r\n }),\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.7,\r\n ...theme.applyStyles('dark', {\r\n opacity: 0.3,\r\n }),\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n boxSizing: 'border-box',\r\n width: 18,\r\n height: 18,\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: 20 / 2,\r\n backgroundColor: '#E9E9EA',\r\n opacity: 1,\r\n transition: theme.transitions.create(['background-color'], {\r\n duration: 500,\r\n }),\r\n ...theme.applyStyles('dark', {\r\n backgroundColor: '#39393D',\r\n }),\r\n },\r\n }));\r\n\r\n const resetErrors = () => {\r\n setGraphConfigurationNameError(\"\");\r\n setSelectedProjectsError(\"\");\r\n }\r\n\r\n const validateForm = () => {\r\n resetErrors();\r\n let errors = 0;\r\n\r\n // Name\r\n if (graphConfigurationName.trim() === \"\") {\r\n errors++;\r\n setGraphConfigurationNameError(\"Enter a name for the graph\")\r\n } else if (graphConfigurationName.trim().length < 3) {\r\n errors++;\r\n setGraphConfigurationNameError(\"Name should be at least 3 characters\")\r\n }\r\n\r\n // Selected company\r\n if (!graphConfigurationCompanyId) {\r\n errors++;\r\n setGraphConfigurationCompanyIdError(\"Select a company\")\r\n }\r\n\r\n // Selected projects\r\n if (selectedProjects.length === 0) {\r\n errors++;\r\n setSelectedProjectsError(\"Select at least 1 project to display in the graph\")\r\n }\r\n\r\n if (errors > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n const saveGraphConfiguration = () => {\r\n if (validateForm()) {\r\n if (create) {\r\n dataService.createNewGraphConfiguration(graphConfigurationCompanyId, graphConfigurationName, graphConfigurationDescription, JSON.stringify(graphConfigurationData), false, props.Login.userid).then(result => {\r\n navigate('/graph/' + result.createmodel.uniqueId);\r\n });\r\n } else {\r\n dataService.updateGraphConfiguration(graphConfigurationId, graphConfigurationCompanyId, graphConfigurationName, graphConfigurationDescription, JSON.stringify(graphConfigurationData), graphIsPublished, props.Login.userid).then(result => {\r\n toast.success(\"The graph configuration was updated successfully\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n });\r\n }\r\n }\r\n }\r\n\r\n const handlePublishGraph = (publish) => {\r\n setGraphIsPublished(publish)\r\n dataService.publishGraphConfiguration(graphConfigurationId, publish).then(result => {\r\n if (result.success) {\r\n if (publish) {\r\n toast.success(\"The graph is now available to view for people with the link\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.success(\"The graph is no longer publically available to view\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n } else {\r\n setGraphIsPublished(!publish);\r\n }\r\n // setGraphIsPublished(publish);\r\n }).catch(() => {\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n setGraphIsPublished(!publish);\r\n })\r\n\r\n }\r\n\r\n const copyLinkToClipboard = () => {\r\n // Get the current URL\r\n const currentUrl = window.location.href;\r\n\r\n // Replace '/graph/' with '/viewgraph/'\r\n const viewLink = currentUrl.replace('/modifygraph/', '/viewgraph/');\r\n\r\n // Copy the modified link to the clipboard\r\n navigator.clipboard.writeText(viewLink)\r\n .then(() => {\r\n setCopiedToClipboard(true);\r\n\r\n // Set copiedToClipboard back to false after 2 seconds\r\n setTimeout(() => {\r\n setCopiedToClipboard(false);\r\n }, 2000);\r\n })\r\n .catch((err) => {\r\n console.error('Failed to copy link: ', err);\r\n });\r\n };\r\n\r\n // Close dialog on outside click, but ignore button clicks\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (\r\n sharingDialogRef.current && !sharingDialogRef.current.contains(event.target) &&\r\n sharingButtonRef.current && !sharingButtonRef.current.contains(event.target)\r\n ) {\r\n setSharingDialogOpen(false);\r\n }\r\n }\r\n\r\n if (sharingDialogOpen) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [sharingDialogOpen]);\r\n\r\n //DevEx functions\r\n const onSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(dataMeasurementRows));\r\n\r\n const selectedIds = e.map(index => tempRows[index] !== undefined ? tempRows[index].id : null);\r\n setSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n var data = chartData(updatedArray.filter(x => x.checked));\r\n\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n setChartRows(data);\r\n };\r\n\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(updatedArray.filter(x => x.checked), profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n setGraphData(parseMeasurementRows(updatedArray.filter(x => x.checked)));\r\n\r\n // Financial\r\n let financialChartMeasurements = updatedArray.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => x.checked)\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n }\r\n\r\n const onProfitLossSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(financialMeasurementRows));\r\n\r\n const selectedIds = e.map(index => tempRows[index] !== undefined ? tempRows[index].id : null);\r\n setProfitLossSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(updatedArray.filter(x => x.checked), profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n }\r\n\r\n const onFiltersChange = (filters, dateRange, profitLossDateRanges) => {\r\n let currentFilters;\r\n let currentDateRange;\r\n let currentProfitLossDates;\r\n\r\n let currentDataFilters;\r\n let currentFinancialFilters;\r\n\r\n let filteredDataMeasurements;\r\n let filteredFinancialMeasurements;\r\n\r\n if (filters) {\r\n if (selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.TIMELINE) {\r\n currentDataFilters = filters;\r\n setDataFilters(filters);\r\n currentFinancialFilters = financialFilters;\r\n } else if (selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS) {\r\n currentFinancialFilters = filters;\r\n setFinancialFilters(filters);\r\n currentDataFilters = dataFilters;\r\n }\r\n currentFilters = filters;\r\n setAllFilters(filters);\r\n } else {\r\n currentDataFilters = dataFilters;\r\n currentFinancialFilters = financialFilters;\r\n currentFilters = allFilters;\r\n }\r\n\r\n if (dateRange) {\r\n currentDateRange = dateRange;\r\n } else {\r\n currentDateRange = timeRangeDates;\r\n }\r\n\r\n if (profitLossDateRanges) {\r\n currentProfitLossDates = profitLossDateRanges;\r\n setProfitLossDates(profitLossDateRanges);\r\n } else {\r\n currentProfitLossDates = profitLossDates;\r\n }\r\n\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n varFilteredResults = varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > currentDateRange.fromDate && startTime <= currentDateRange.toDate; // Check range\r\n });\r\n\r\n varFilteredResults.forEach((x) => (x.checked = true)); // Reset checked state\r\n\r\n // Uncheck all rows that have a date outside of date indicated in dateRangeSlider\r\n varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > currentDateRange.endDate || startTime <= currentDateRange.startDate; // Check range\r\n }).forEach((x) => (x.checked = false));\r\n\r\n filteredDataMeasurements = varFilteredResults\r\n .filter(x => x.checked)\r\n .map(x => ({ ...x })); // Creates new object copies\r\n\r\n filteredFinancialMeasurements = varFilteredResults\r\n .filter(x => x.checked && x.eventPrice > 0)\r\n .map(x => ({ ...x })); // Creates new object copies\r\n\r\n currentDataFilters && currentDataFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"accountName\":\r\n filteredDataMeasurements\r\n .filter((x) => x.accountName && !x.accountName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"accountCategoryName\":\r\n filteredDataMeasurements\r\n .filter((x) => x.accountCategoryName && !x.accountCategoryName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"companyName\":\r\n filteredDataMeasurements\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n filteredDataMeasurements\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (filteredDataMeasurements.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredDataMeasurements.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (filteredDataMeasurements.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredDataMeasurements.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n filteredDataMeasurements.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n\r\n currentFinancialFilters && currentFinancialFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"accountName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => x.accountName && !x.accountName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"accountCategoryName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => x.accountCategoryName && !x.accountCategoryName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"companyName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (filteredFinancialMeasurements.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredFinancialMeasurements.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (filteredFinancialMeasurements.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredFinancialMeasurements.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n filteredFinancialMeasurements.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n\r\n // GENERAL\r\n\r\n let dateSortedDataMeasurements = [...filteredDataMeasurements].sort((a, b) =>\r\n new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n );\r\n\r\n let dateSortedFinancialMeasurements = [...filteredFinancialMeasurements].sort((a, b) =>\r\n new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n );\r\n\r\n setDataMeasurementRows(dateSortedDataMeasurements);\r\n setFinancialMeasurementRows(dateSortedFinancialMeasurements);\r\n\r\n const indexes = dateSortedDataMeasurements\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setSelection(indexes);\r\n\r\n const profitLossIndexes = dateSortedFinancialMeasurements\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setProfitLossSelection(profitLossIndexes);\r\n\r\n // YAMAZUMI\r\n setGraphData(parseMeasurementRows(dateSortedDataMeasurements.filter(x => x.checked)));\r\n\r\n // PROFIT & LOSS\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(dateSortedFinancialMeasurements.filter(x => x.checked), currentProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n // TIMELINE\r\n var data = chartData(dateSortedDataMeasurements.filter(x => x.checked).flat());\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n setChartRows(data);\r\n }\r\n\r\n // FINANCIAL\r\n let financialChartMeasurements = filteredFinancialMeasurements.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => x.checked).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(currentDateRange.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(currentDateRange.toDate))\r\n\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n\r\n // price data\r\n constructPriceData(graphProjects, currentDateRange.fromDate, currentDateRange.toDate);\r\n\r\n let tempGraphProjects = [...graphProjects]; // Clone the projects array\r\n let fromDate = currentDateRange.fromDate;\r\n let toDate = currentDateRange.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) <= toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(tempGraphProjects);\r\n };\r\n\r\n const dateFilterFinancialData = () => {\r\n constructPriceData(graphProjects, timeRangeDates.fromDate, timeRangeDates.toDate)\r\n // let financialChartMeasurements = originalMeasurementRows.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => new Date(x.insertedOn) >= new Date(timeRangeDates.fromDate) && new Date(x.insertedOn) <= new Date(timeRangeDates.toDate))\r\n\r\n let financialChartMeasurements = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)); // Clone original rows\r\n\r\n financialChartMeasurements = financialChartMeasurements.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > timeRangeDates.startDate && startTime <= timeRangeDates.endDate; // Check range\r\n });\r\n\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n }\r\n\r\n const limitString = (str, limit) => {\r\n if (str.length > limit) {\r\n return str.substring(0, limit) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n // Detail names for financial view\r\n const constructDetailCollection = (details) => {\r\n let temporaryCollection = [];\r\n for (let i = 0; i < details.length; i++) {\r\n let thisProjectDetail = details[i];\r\n if (thisProjectDetail.price > 0) {\r\n temporaryCollection.push({ id: thisProjectDetail.id, name: thisProjectDetail.description, registrationPoint: thisProjectDetail.resourceName, color: thisProjectDetail.color });\r\n }\r\n }\r\n //Empty array for all details, also add a total to display in the graph\r\n temporaryCollection.push({ id: -1, name: 'Total', color: '#c7c9c8' });\r\n\r\n return temporaryCollection;\r\n }\r\n\r\n // Data for financial view\r\n const constructFinancialData = (projectDetails, chartDataCollection) => {\r\n let tempTotalData = [];\r\n let total = 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n let count = 0;\r\n\r\n //First we loop through all measurements to calculate the TOTAL LINE\r\n chartDataCollection.forEach((thisMeasurement) => {\r\n let isStopwatch = false;\r\n let thisDetail = projectDetails.find(x => x.id === thisMeasurement.detailId);\r\n if (thisDetail !== undefined && thisDetail.price > 0) {\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId === 2)) {\r\n isStopwatch = true;\r\n }\r\n\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startTime);\r\n let stopDate = new Date(thisMeasurement.stopTime);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisDetail.price / 3600) * dif);\r\n\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (count === 0) {\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: startTime, price: 0, profitAdded: 0, isVisible: true, '-1_Total_price': 0, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, '-1_Total_price': total, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n count++;\r\n }\r\n });\r\n\r\n let tempDetailData = [];\r\n\r\n //Loop through the details and their measurements to get each unique detail line\r\n projectDetails.filter(x => x.price > 0).forEach(thisDetail => {\r\n let isStopwatch = false;\r\n let detailCount = 0;\r\n\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId === 2)) {\r\n //Stopwatch\r\n isStopwatch = true;\r\n }\r\n let thisMeasurements = chartDataCollection.filter(x => x.detailId === thisDetail.id);\r\n\r\n let total = 0;\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n\r\n if (thisMeasurements.length > 0) {\r\n let variablename = thisDetail.id + '_' + thisDetail.description + '_price';\r\n thisMeasurements.forEach(thisMeasurement => {\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startTime);\r\n let stopDate = new Date(thisMeasurement.stopTime);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisDetail.price / 3600) * dif);\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (detailCount === 0) {\r\n tempMeasurementData = { detailCount: 0, id: thisMeasurement.id, measurement: thisDetail.description, date: startTime, price: 0, profitAdded: 0, isVisible: true, [variablename]: 0, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: thisDetail.description, date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, [variablename]: total, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n detailCount++;\r\n });\r\n }\r\n\r\n\r\n });\r\n let combinedData = tempTotalData.concat(tempDetailData);\r\n return combinedData;\r\n }\r\n\r\n // TIMELINE\r\n const chartData = (data) => {\r\n let tempdata = [];\r\n let tempObj = {};\r\n\r\n data.forEach((x => {\r\n let startDate = new Date(x.startTime);\r\n let tempEndDate = new Date(x.startTime);\r\n let insertedOn = new Date(x.startTime);\r\n let updatedOn = new Date(x.startTime);\r\n\r\n if (x.typeId === controlTypes.STOPWATCH || x.typeId === controlTypes.EXTERNALAPI && x.externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (x.updatedOn !== undefined) {\r\n updatedOn = x.updatedOn;\r\n }\r\n if (x.stopTime !== null && x.stopTime !== undefined && x.stopTime.length > 0) {\r\n tempEndDate = new Date(x.stopTime);\r\n\r\n }\r\n if (x.insertedOn !== undefined) {\r\n insertedOn = x.insertedOn;\r\n }\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Stopwatch', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, value: x.dateValue, key: x.keyValue, counter: null, insertedOn: insertedOn, updatedOn: updatedOn, description: limitString(x.description, 15), color: x.registrationPointColor, chartType: 'rangeBar', argumentField: 'description', detailId: x.detailId, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.COUNTER) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Counter', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, value: x.integerValue, key: x.keyValue, counter: x.measurementValue, counterDescription: limitString(x.description, 15), color: x.registrationPointColor, chartType: 'scatter', argumentField: \"counterDescription\", linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.FREETEXT) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Free text', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, value: x.textValue, key: x.keyValue, counter: null, freetextDescription: limitString(x.description, 15), color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.DATALIST) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.CAMERA) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Image', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, image: x.imageId, thumbnail: x.thumbnail, cameraDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.SCANNER) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.EXTERNALAPI) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'External API', projectName: x.projectName, projectId: x.projectId, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, value: x.externalApiValues, externalApiDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n }\r\n\r\n tempdata.push(tempObj);\r\n }));\r\n tempdata = tempdata.filter(x => x.checked);\r\n return tempdata;\r\n }\r\n\r\n // FINANCIAL - LOGIC\r\n const handleDownloadImage = async (toDownload) => {\r\n let element;\r\n let fileName;\r\n if (toDownload === 'HighLow') {\r\n element = highLowRef.current;\r\n fileName = 'HighLow.jpg';\r\n } else {\r\n element = summaryRef.current;\r\n fileName = 'Summary.jpg';\r\n }\r\n const canvas = await html2canvas(element);\r\n\r\n const data = canvas.toDataURL('image/jpg');\r\n const link = document.createElement('a');\r\n\r\n if (typeof link.download === 'string') {\r\n link.href = data;\r\n link.download = fileName;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n window.open(data);\r\n }\r\n };\r\n\r\n // Data to display in financialSummaryTable\r\n const constructPriceData = (projects, thisFromDate, thisToDate) => {\r\n let aggregatedPriceData = [];\r\n let total = 0;\r\n if (projects.length > 0) {\r\n projects.forEach(project => {\r\n let projectDetails = project.details;\r\n\r\n for (let i = 0; i < projectDetails.length; i++) {\r\n let thisDetail = projectDetails[i];\r\n let filteredMeasurements = thisDetail.measurements.filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(thisFromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(thisToDate));\r\n let detailType = thisDetail.controlTypeId;\r\n\r\n // for each measurement, set filteredMeasurement.externalApiTypeId = thisDetail.externalApiTypeId\r\n filteredMeasurements.forEach(measurement => {\r\n measurement.controlTypeId = thisDetail.controlTypeId;\r\n measurement.externalApiTypeId = thisDetail.externalApiTypeId;\r\n });\r\n\r\n if (filteredMeasurements.length > 0) {\r\n let totalTime = 0;\r\n let tempTotal = 0;\r\n\r\n if (detailType === controlTypes.STOPWATCH || (detailType === controlTypes.EXTERNALAPI && thisDetail.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n for (let j = 0; j < filteredMeasurements.length; j++) {\r\n let startDate = new Date(filteredMeasurements[j].startValue);\r\n let stopDate = new Date(filteredMeasurements[j].stopValue);\r\n let dif = stopDate > startDate ? (stopDate.getTime() - startDate.getTime()) / 1000 : 0;\r\n totalTime += dif;\r\n }\r\n tempTotal = (thisDetail.price / 3600) * totalTime;\r\n } else {\r\n tempTotal = (filteredMeasurements.length * (thisDetail.price !== null ? thisDetail.price : 0));\r\n }\r\n\r\n let lowestDate = filteredMeasurements.reduce((minDate, measurement) => {\r\n let insertedOn = new Date(measurement.insertedOn);\r\n return insertedOn < minDate ? insertedOn : minDate;\r\n }, new Date(filteredMeasurements[0].insertedOn));\r\n\r\n let highestDate = filteredMeasurements.reduce((maxDate, measurement) => {\r\n let insertedOn = new Date(measurement.insertedOn);\r\n return insertedOn > maxDate ? insertedOn : maxDate;\r\n }, new Date(filteredMeasurements[0].insertedOn));\r\n\r\n aggregatedPriceData.push({\r\n projectId: project.id,\r\n projectName: project.projectName,\r\n resourceName: filteredMeasurements[0].resourceName,\r\n price: thisDetail.price !== null ? thisDetail.price : 0,\r\n totalPrice: tempTotal,\r\n isProfit: thisDetail.isProfit !== null ? thisDetail.isProfit : true,\r\n detailDescription: thisDetail.description,\r\n first: lowestDate,\r\n last: highestDate,\r\n amount: (!isStopwatch(filteredMeasurements[0]) ? filteredMeasurements.length : totalTime),\r\n color: thisDetail.color,\r\n type: detailType,\r\n externalApiTypeId: filteredMeasurements[0].externalApiTypeId,\r\n minuteamount: (!isStopwatch(filteredMeasurements[0]) ? null : convertHMS(totalTime)),\r\n });\r\n\r\n if (thisDetail.isProfit) {\r\n total += tempTotal;\r\n } else {\r\n total -= tempTotal;\r\n }\r\n }\r\n // else {\r\n // aggregatedPriceData.push({\r\n // projectId: project.id,\r\n // projectName: project.projectName,\r\n // price: thisDetail.price !== null ? thisDetail.price : 0,\r\n // totalPrice: 0,\r\n // isProfit: thisDetail.isProfit !== null ? thisDetail.isProfit : true,\r\n // detailDescription: thisDetail.description,\r\n // first: null,\r\n // last: null,\r\n // amount: 0,\r\n // color: thisDetail.color,\r\n // type: detailType,\r\n // externalApiType: thisDetail.externalApiTypeId,\r\n // minuteamount: (detailType !== controlTypes.STOPWATCH ? null : convertHMS(0)),\r\n // });\r\n\r\n // }\r\n }\r\n });\r\n\r\n aggregatedPriceData = aggregatedPriceData.filter(x => x.price > 0);\r\n\r\n setTotalPrice(total);\r\n setPriceData(aggregatedPriceData);\r\n }\r\n }\r\n\r\n const isStopwatch = (measurement) => {\r\n let measurementControlTypeId = measurement.controlTypeId || measurement.type;\r\n let measurementExternalApiTypeId = measurement.externalApiTypeId;\r\n\r\n if (measurementControlTypeId === controlTypes.STOPWATCH || (measurementControlTypeId === controlTypes.EXTERNALAPI && measurementExternalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n return true;\r\n } else {\r\n return false;\r\n };\r\n };\r\n\r\n const getControlTypeIcon = (typeId) => {\r\n let icon;\r\n switch (typeId) {\r\n case controlTypes.COUNTER:\r\n icon = <DiamondPlus className={classes.icon} />;\r\n break;\r\n case controlTypes.STOPWATCH:\r\n icon = <Timer className={classes.icon} />;\r\n break;\r\n case controlTypes.FREETEXT:\r\n icon = <TextCursorInput className={classes.icon} />;\r\n break;\r\n case controlTypes.DATALIST:\r\n icon = <List className={classes.icon} />;\r\n break;\r\n case controlTypes.SCANNER:\r\n icon = <ScanBarcode className={classes.icon} />;\r\n break;\r\n case controlTypes.CAMERA:\r\n icon = <Image className={classes.icon} />;\r\n break;\r\n case controlTypes.EXTERNALAPI:\r\n icon = <LinkIcon className={classes.icon} />;\r\n break;\r\n default:\r\n // code block\r\n }\r\n return icon;\r\n }\r\n\r\n const exportProfitLossReport = () => {\r\n if (profitLossReportComponentRef.current) {\r\n profitLossReportComponentRef.current.downloadReport(); // Call the function\r\n }\r\n };\r\n\r\n const comparePeriod = () => {\r\n // Setting true, check if there is already a compare date, if not --> Take the same length as the first daterange.\r\n const index = Object.keys(profitLossDates).length;\r\n\r\n if (index === 1) {\r\n setPercentageVisible(true);\r\n }\r\n\r\n if (compareLimit >= index) {\r\n var tempProfitLossDates = { ...profitLossDates };\r\n\r\n const [lastKey, lastValue] = Object.entries(tempProfitLossDates).at(0);\r\n\r\n var existingEndDate = lastValue.endDate;\r\n var existingStartDate = lastValue.startDate;\r\n\r\n const differenceInMs = existingEndDate - existingStartDate;\r\n const differenceInDays = differenceInMs / (1000 * 60 * 60 * 24);\r\n\r\n var newEndDate = new Date(lastValue.startDate.getTime() - 1000);\r\n var newStartDate = new Date(lastValue.startDate - differenceInMs);\r\n\r\n // for each tempProfitLossDate, set sequence to current sequence + 1\r\n tempProfitLossDates = Object.values(tempProfitLossDates).map(x => {\r\n return { ...x, sequence: x.sequence + 1 };\r\n });\r\n\r\n tempProfitLossDates[index] = { fromDate: new Date(newStartDate), startDate: new Date(newStartDate), toDate: new Date(newEndDate), endDate: new Date(newEndDate), sequence: 1 };\r\n\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // get earliest fromDate and startDate from profitLossDates, and latest toDate and endDate then set to timeRangeDates\r\n let earliestFromDate = new Date(Math.min.apply(null, Object.values(tempProfitLossDates).map(x => x.fromDate)));\r\n let latestToDate = new Date(Math.max.apply(null, Object.values(tempProfitLossDates).map(x => x.toDate)));\r\n\r\n let tempTimeRangeDates = { fromDate: earliestFromDate, toDate: latestToDate, startDate: earliestFromDate, endDate: latestToDate }\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(originalMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setBoolCompareDate(true);\r\n });\r\n\r\n onFiltersChange(financialFilters, tempTimeRangeDates, tempProfitLossDates);\r\n } else {\r\n toast.error(\"The limit of 5 has been reached\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }\r\n }\r\n\r\n const resetComparePeriod = () => {\r\n // remove all dates except the last one and change its sequence to 1\r\n let tempProfitLossDates = { ...profitLossDates };\r\n let lastKey = Object.keys(tempProfitLossDates).pop();\r\n let lastValue = tempProfitLossDates[lastKey];\r\n tempProfitLossDates = { [lastKey]: lastValue };\r\n\r\n // for each tempProfitLossDate, set sequence to 1\r\n tempProfitLossDates = Object.values(tempProfitLossDates).map(x => {\r\n return { ...x, sequence: 1 };\r\n });\r\n\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // get earliest fromDate and startDate from profitLossDates, and latest toDate and endDate then set to timeRangeDates\r\n let earliestFromDate = new Date(Math.min.apply(null, Object.values(tempProfitLossDates).map(x => x.fromDate)));\r\n let latestToDate = new Date(Math.max.apply(null, Object.values(tempProfitLossDates).map(x => x.toDate)));\r\n\r\n let tempTimeRangeDates = { fromDate: earliestFromDate, toDate: latestToDate, startDate: earliestFromDate, endDate: latestToDate }\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(originalMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setBoolCompareDate(false);\r\n });\r\n\r\n onFiltersChange(financialFilters, tempTimeRangeDates, tempProfitLossDates);\r\n setPercentageVisible(false);\r\n };\r\n\r\n const setCompareDateRange = (index, startDate, endDate, sequence) => {\r\n\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n var tempProfitLossDates = { ...profitLossDates };\r\n tempProfitLossDates[index] = { sequence: sequence, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) };\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(varFilteredResults.filter(x => x.checked), tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setProfitLossDates(tempProfitLossDates);\r\n });\r\n } else {\r\n resetCompareDateRangeFilter()\r\n }\r\n }\r\n\r\n const resetCompareDateRangeFilter = () => {\r\n\r\n }\r\n\r\n const isFinancialView = () => {\r\n return selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS;\r\n };\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Graph\" backbutton={true} {...props} />\r\n {loading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n\r\n }\r\n {noGraphFound ?\r\n <Box className={classes.noGraphContainer}>\r\n <p className={classes.noGraphContainer__text}>Unfortunately there is no graph available to view on this link. Make sure you have the correct URL.</p>\r\n </Box>\r\n :\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n\r\n }} >\r\n <div className={classes.container}>\r\n <div className={classes.header__titleRow}>\r\n <button className={classes.backButton} onClick={() => navigate('/graphs')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to graph overview\r\n </button>\r\n <h1>{create ? \"Create your graph\" : \"Modify your graph\"}</h1>\r\n <GraphTabs selectedGraphType={selectedGraphType} handleGraphTypeSelection={handleGraphTypeSelection}></GraphTabs>\r\n\r\n <div className={classes.buttonContainer}>\r\n {!create &&\r\n <div className={classes.sharingContainer}>\r\n <button className={classes.secondaryIconButton} onClick={() => setSharingDialogOpen(!sharingDialogOpen)} ref={sharingButtonRef}>\r\n <Share className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Sharing\r\n </button>\r\n {sharingDialogOpen && (\r\n <div className={classes.sharingDialog} ref={sharingDialogRef}>\r\n <p className={classes.sharingDialog__disclaimer}>By publishing a chart, people with the link will be able to <span className={classes.disclaimer__highlight}>view the chart</span> as it is configured here. People who can view the chart are <span className={classes.disclaimer__highlight}>not able to edit.</span></p>\r\n <div className={classes.sharingDialog__buttonContainer}>\r\n <div className={classes.sharingDialog__switchContainer}>\r\n <FormControlLabel\r\n className={classes.switchContainer__label}\r\n control={<FlagstoneSwitch checked={graphIsPublished} onChange={(e) => handlePublishGraph(e.target.checked)} />}\r\n label=\"Published\"\r\n />\r\n </div>\r\n <button\r\n className={`${classes.sharingDialog__primaryButton}`}\r\n onClick={copyLinkToClipboard}\r\n >\r\n {copiedToClipboard ? <p className={classes.copiedText}>Copied!</p> : ''}\r\n <p className={`${copiedToClipboard ? classes.copied : ''}`}> Copy link</p>\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n }\r\n <button className={classes.primaryButton} onClick={() => saveGraphConfiguration()}>{create ? \"Save graph\" : \"Save changes\"}</button>\r\n </div>\r\n </div>\r\n <div className={classes.projectSelectionContainer}>\r\n <div className={classes.formContainer}>\r\n <div className={classes.formColumn}>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n {graphConfigurationNameError === \"\" ?\r\n <p className={classes.labelContainer__label}>Name of your graph</p>\r\n :\r\n <p className={classes.labelContainer__helperText}>{graphConfigurationNameError}</p>\r\n }\r\n </div>\r\n <div className={classes.projectOption__inputContainer}>\r\n <TextfieldInput value={graphConfigurationName} action={setName} label={graphConfigurationName ? \" \" : \"Name\"} InputLabelProps={{ shrink: false }} error={graphConfigurationNameError !== \"\"} />\r\n </div>\r\n </div>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n {graphConfigurationCompanyIdError === \"\" ?\r\n <p className={classes.labelContainer__label}>Select a company</p>\r\n :\r\n <p className={classes.labelContainer__helperText}>{graphConfigurationCompanyIdError}</p>\r\n }\r\n </div>\r\n <div className={classes.projectOption__inputContainer}>\r\n <Select\r\n value={graphConfigurationCompanyId}\r\n onChange={(e) => setGraphConfigurationCompanyId(e.target.value)}\r\n displayEmpty\r\n style={{ width: \"100%\" }}\r\n error={graphConfigurationCompanyIdError !== \"\"}\r\n renderValue={graphConfigurationCompanyId !== \"\" ? undefined : () => \"Company\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allUserCompanies.length < 1 &&\r\n <MenuItem value=\"\">\r\n <em>You are not part of a company</em>\r\n </MenuItem>\r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allUserCompanies.map((company, index) => (\r\n <MenuItem key={index} value={company.id}>\r\n {company.name}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={classes.listDescriptionStyle}>\r\n <div className={classes.projectOption__labelContainer}>\r\n <p className={classes.labelContainer__label}>Description of your graph</p>\r\n </div>\r\n <textarea className={classes.description__textarea} value={graphConfigurationDescription} onChange={(e) => setDescription(e)}></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className={`${classes.projectSelectionContainer} ${selectedProjectsError !== '' ? classes.errorClass : ''}`}>\r\n\r\n <Box sx={{\r\n display: 'flex', flexDirection: 'row', gap: \"8px\", flexWrap: 'wrap', maxWidth: \"100%\",\r\n }}>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__inputContainer}>\r\n <select\r\n value={\"\"}\r\n onChange={(e) => handleProjectSelection(JSON.parse(e.target.value))}\r\n className={classes.projectSelect}\r\n >\r\n {/* Display a placeholder if no project is selected */}\r\n <option value=\"\" disabled hidden>\r\n Select a project\r\n </option>\r\n\r\n {/* If there are no projects available, show a disabled option */}\r\n {allProjects.length < 1 && (\r\n <option value=\"\" disabled className={classes.projectSelect__option}>\r\n There are no projects available\r\n </option>\r\n )}\r\n\r\n {/* Populate the dropdown with projects from allProjects */}\r\n {allProjects.filter(company => company.projects.length > 0).map((company, companyIndex) => {\r\n return <optgroup label={company.name} key={\"companyIndex_\" + companyIndex}>\r\n {company.projects.map((project, index) => {\r\n return <option key={'projectIndex_' + index} value={JSON.stringify(project)} disabled={(selectedProjects.some(selected => selected.id === project.id)) || (activeCurrency && project.currencyId !== activeCurrency.id)} className={classes.projectSelect__option}>\r\n {project.projectName} - {project.resourceDescription}\r\n </option>\r\n })}\r\n </optgroup>\r\n\r\n })}\r\n </select>\r\n </div>\r\n\r\n </div>\r\n {selectedProjects.map(project => (\r\n <div className={classes.selectedProjectPill} key={\"projectPill_\" + project.id}>\r\n <p className={classes.selectedProjectPill__name}>{project.projectName} {(project.resourceDescription !== null && project.resourceDescription !== \"\") ? (\" - \" + project.resourceDescription) : \"\"}</p>\r\n <button className={classes.pillButton} onClick={() => removeSelectedProject(project.id)}><X className={classes.pillButton__icon} /></button>\r\n </div>\r\n ))}\r\n </Box>\r\n </div>\r\n <div className={classes.chartContainer}>\r\n {(selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.PROFITLOSS) &&\r\n <div className={classes.chartContainer__buttonContainer}>\r\n <div className={classes.buttonContainer__start}>\r\n <DateRangePicker size=\"large\" setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} startDate={timeRangeDates.fromDate} endDate={timeRangeDates.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n {selectedGraphType === graphTypes.PROFITLOSS && <BoolToggle size=\"large\" label=\"Display percentages\" disabled={Object.keys(profitLossDates).length <= 1} setBoolValue={setPercentageVisible} boolValue={percentageVisible} />}\r\n {selectedGraphType === graphTypes.YAMAZUMI && <BoolToggle disabled={false} size=\"large\" label=\"Display labels\" setBoolValue={setLabelVisible} boolValue={labelVisible} />}\r\n </div>\r\n <div className={classes.buttonContainer__end}>\r\n {selectedGraphType === graphTypes.PROFITLOSS && <button onClick={exportProfitLossReport} className={classes.secondaryButton}>Export PDF</button>}\r\n </div>\r\n </div>\r\n }\r\n {(selectedGraphType === graphTypes.TIMELINE || selectedGraphType === graphTypes.FINANCIAL) &&\r\n <div className={classes.timeRangePickerContainer}>\r\n <div className={classes.filterBlock}>\r\n <DateRangePicker size=\"large\" setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} startDate={timeRangeDates.fromDate} endDate={timeRangeDates.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n {selectedGraphType === graphTypes.TIMELINE && <BoolToggle disabled={false} size=\"large\" label=\"Display linear\" setBoolValue={setShowLinearTimeline} boolValue={showLinearTimeline} />}\r\n <DateRangeSlider updateDataRange={updateDataRange} timeRangeDates={timeRangeDates}></DateRangeSlider>\r\n </div>\r\n </div>\r\n }\r\n <div className={classes.yamazumiContainer}>\r\n {selectedGraphType === graphTypes.YAMAZUMI && (\r\n <>\r\n {(selectedProjects.length === 0 || graphData.length === 0 || dataMeasurementRows.length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>{getEmptyStateTitle()}</p>\r\n <p className={classes.emptyStateCard__subtitle}>{getEmptyStateSubtitle()}</p>\r\n </div>\r\n </div>\r\n )}\r\n <YamazumiChart\r\n {...props}\r\n dataSource={graphData}\r\n labelVisible={labelVisible}\r\n graphConfigurationName={graphConfigurationName}\r\n emptyState={graphData.length === 0}\r\n />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.TIMELINE && (\r\n <>\r\n {(chartRows.filter(x => roundToSecond(new Date(x.startDate)) > new Date(timeRangeDates.fromDate) && roundToSecond(new Date(x.startDate)) <= new Date(timeRangeDates.toDate)).length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No measurements</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no measurements to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <TimeLineChart\r\n data={chartRows}\r\n visualisationType={showLinearTimeline ? timeLineVisualisationTypes.LINEAREVENTS : timeLineVisualisationTypes.SPLIT}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.FINANCIAL && (\r\n <>\r\n {(financialChartData.length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no financial data to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <FinancialChart\r\n financialChartData={financialChartData}\r\n projectDetailNames={projectDetailNames}\r\n currency={activeCurrency}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)} />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.PROFITLOSS && (\r\n <>\r\n {(profitLossReportData === undefined || profitLossReportData.length === 0 || profitLossReportData === null) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no financial data to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <ProfitLossReport\r\n ref={profitLossReportComponentRef}\r\n data={financialMeasurementRows}\r\n profitLossReportData={profitLossReportData}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n boolCompareDate={boolCompareDate}\r\n comparePeriod={comparePeriod}\r\n resetComparePeriod={resetComparePeriod}\r\n percentageVisible={percentageVisible}\r\n compareLimit={compareLimit}\r\n setCompareDateRange={setCompareDateRange}\r\n profitLossDates={profitLossDates}\r\n currency={activeCurrency}\r\n />\r\n </>\r\n )}\r\n </div>\r\n\r\n <div style={{ visibility: isFinancialView() ? \"hidden\" : \"visible\", height: isFinancialView() ? \"0px\" : \"auto\" }}>\r\n <DevExDataTable data={dataMeasurementRows} columns={resultColumns} onSelectionChange={onSelectionChange} selection={selection} handleFiltersChange={onFiltersChange} />\r\n </div>\r\n\r\n <div style={{ visibility: isFinancialView() ? \"visible\" : \"hidden\", height: isFinancialView() ? \"auto\" : \"0px\" }}>\r\n <ProfitLossDevExDataTable data={financialMeasurementRows} columns={profitLossResultColumns} currency={activeCurrency} onSelectionChange={onProfitLossSelectionChange} selection={profitLossSelection} currentFilters={financialFilters} handleFiltersChange={onFiltersChange} />\r\n </div>\r\n\r\n </div>\r\n {selectedGraphType === graphTypes.FINANCIAL &&\r\n <div className={classes.financialDetailInformationContainer}>\r\n <div className={classes.highLowContainer} ref={highLowRef}>\r\n <div className={classes.filterTitle}>\r\n <span>High/Low</span>\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B' }} onClick={() => handleDownloadImage('HighLow')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </div>\r\n\r\n {loading ?\r\n <Box className={classes.loadingBalls}>\r\n <Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin>\r\n </Box>\r\n :\r\n highLowGraphProjects.length > 0 ?\r\n highLowGraphProjects.map((project, projectIndex) => (\r\n <Box key={`GraphProject_${projectIndex}`} className={classes.highLow__projectContainer}>\r\n {/* Project subtitle */}\r\n <h3 className={classes.highLow__projectSubtitle}>{project.name}</h3>\r\n\r\n {/* Details of each project */}\r\n {project.details.filter(x => x.measurements.length > 0).map((detail, index) => {\r\n if (detail.price > 0) {\r\n return (\r\n <div\r\n key={`TableHighLow_${detail.id}_${index}`}\r\n className={classes.highLow__detail}\r\n >\r\n <div className={classes.highLow__headerContainer}>\r\n <div className={classes.highLow__detailHeader}>\r\n {getControlTypeIcon(detail.controlTypeId)}\r\n <p className={classes.highLow__detailTitle}>{detail.description}</p>\r\n </div>\r\n <div className={classes.headerContainer__detailInformation}>\r\n <div className={classes.detailInformation__registrationPoint}>\r\n <Tooltip title={detail.measurements[0].resourceName} placement=\"top\">\r\n <MapPin className={classes.registrationPoint__icon} />\r\n </Tooltip>\r\n {/* <p className={classes.registrationPoint__name}>{detail.measurements[0].resourceName}</p> */}\r\n </div>\r\n {detail.isProfit ? (\r\n <Plus style={{ color: 'rgb(40, 167, 69)', paddingRight: '10px' }} />\r\n ) : (\r\n <Minus style={{ color: 'rgb(220, 53, 69)', paddingRight: '10px' }} />\r\n )}\r\n </div>\r\n </div>\r\n <Divider />\r\n {detail.measurements.length > 0 ?\r\n <TableHighLow\r\n {...props}\r\n detail={detail}\r\n projectName={project.projectName}\r\n location={project.resourceDescription}\r\n projectQr={project.qrCode}\r\n currency={activeCurrency}\r\n />\r\n :\r\n <p className={classes.emptyStateCard__subtitle} style={{ paddingTop: '8px', paddingBottom: '8px' }}>There are no measurements during this timespan</p>\r\n }\r\n\r\n </div>\r\n );\r\n } else {\r\n return <React.Fragment key={`EmptyDetail_${index}`}></React.Fragment>;\r\n }\r\n })}\r\n </Box>\r\n ))\r\n :\r\n <></>\r\n }\r\n\r\n {(dataMeasurementRows.length === 0 && !loading) && <Box style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', height: '100%', justifyContent: 'center' }}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no events for this project yet.</p>\r\n </div>\r\n </Box>}\r\n </div>\r\n <div className={classes.financialDetailInformationContainer__right}>\r\n <div className={classes.pieChartsContainer}>\r\n <div className={classes.pieStyle}>\r\n {(!priceData || priceData.filter(x => !isStopwatch(x)).length === 0) &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no event measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n <EventChart data={priceData.filter(x => !isStopwatch(x) && x.price > 0)} title={\"Event overview\"} />\r\n </div>\r\n <div className={classes.pieStyle}>\r\n {priceData.filter(x => isStopwatch(x)).length === 0 &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No stopwatches</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no stopwatch measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n <EventChart data={priceData.filter(x => isStopwatch(x))} title={\"Time overview\"} />\r\n </div>\r\n </div>\r\n <div className={classes.financialSummaryContainer} ref={summaryRef}>\r\n <div className={classes.calculateBoxStyle}>\r\n <div className={classes.filterTitle} variant=\"contained\" content=\"Options\" >\r\n <span>Summary</span>\r\n <div >\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B', marginRight: '10px' }} onClick={() => handleDownloadImage('Summary')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <FinancialSummaryTable totalPrice={totalPrice} priceData={priceData} currency={activeCurrency} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </Box>\r\n }\r\n </React.Fragment >\r\n )\r\n}\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n zIndex: '999',\r\n position: 'fixed',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n bar: {\r\n [theme.breakpoints.up('lg')]: {\r\n minWidth: \"70%\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n minWidth: \"60%\",\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n minWidth: \"65%\",\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n minWidth: \"70%\",\r\n },\r\n },\r\n\r\n header__titleRow: {\r\n width: \"100%\",\r\n minHeight: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n toggleFilter: {\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"absolute\",\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n position: \"relative\",\r\n left: \"0\",\r\n transform: \"none\",\r\n }\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n width: \"128px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"96px\",\r\n }\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(100% / 4)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n formContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n },\r\n\r\n formColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n projectOption: {\r\n minWidth: \"240px\",\r\n maxWidth: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n projectSelectionContainer: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n\r\n marginBottom: \"16px\",\r\n padding: \"16px\",\r\n },\r\n\r\n errorClass: {\r\n outline: \"1px solid #D84949\",\r\n },\r\n\r\n selectedProjectPill: {\r\n height: \"28px\",\r\n maxWidth: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"0\",\r\n padding: \"0 12px\",\r\n paddingRight: \"2px\",\r\n borderRadius: \"20px\",\r\n backgroundColor: \"#C3996B\",\r\n },\r\n\r\n selectedProjectPill__name: {\r\n fontSize: \"16px\",\r\n margin: \"0\",\r\n color: \"white\",\r\n maxWidth: 'calc(100% - 20px)',\r\n\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n\r\n pillButton: {\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n borderRadius: \"50%\",\r\n padding: \"4px\",\r\n color: \"white\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n color: \"#D84949\"\r\n }\r\n },\r\n\r\n pillButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n projectSelect: {\r\n height: \"28px\",\r\n maxWidth: \"100%\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n color: \"rgba(12, 14, 41, 0.4)\",\r\n backgroundColor: \"#F8F8F8\",\r\n\r\n padding: \"0px 8px\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n backgroundColor: \"#EDEDED\"\r\n },\r\n\r\n \"&:focus-visible\": {\r\n border: \"none\",\r\n outline: \"none\",\r\n }\r\n },\r\n\r\n projectSelect__option: {\r\n padding: \"8px 12px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n backgroundColor: \"#fff\",\r\n color: \"#0C0E29\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#EDEDED\",\r\n },\r\n\r\n \"&[disabled]\": {\r\n color: \"rgba(12, 14, 41, 0.3)\",\r\n backgroundColor: \"#F8F8F8\",\r\n },\r\n },\r\n\r\n listDescriptionStyle: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n position: 'relative',\r\n\r\n },\r\n\r\n description__textarea: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n padding: \"8px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #BDBDBD\",\r\n borderRadius: \"4px\",\r\n resize: \"none\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n height: \"120px\",\r\n },\r\n },\r\n\r\n projectOption__labelContainer: {\r\n display: \"flex\",\r\n gap: \"8px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n margin: \"0\",\r\n },\r\n\r\n labelContainer__helperText: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n margin: \"0\",\r\n },\r\n\r\n chartContainer: {\r\n width: \"100%\",\r\n position: \"relative\",\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n padding: \"24px\",\r\n paddingBottom: '0px',\r\n marginBottom: \"16px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n yamazumiContainer: {\r\n position: \"relative\",\r\n minHeight: \"400px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n emptyStateContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(237, 237, 237, 0.48)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n chartContainer__buttonContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n buttonContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n // Filter on graph ---------------------------------------------------------------------------------------\r\n\r\n filterBlock: {\r\n display: 'flex',\r\n alignItems: \"center\",\r\n marginBottom: '16px',\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap',\r\n justifyContent: 'flex-start',\r\n gap: \"8px\"\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-evenly',\r\n }\r\n },\r\n\r\n // Data table ------------------------------------------------------------------------------\r\n\r\n container: {\r\n boxSizing: \"border-box\",\r\n maxWidth: \"100%\",\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n borderRadius: \"8px\",\r\n width: '100%',\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n\r\n gap: \"16px\",\r\n },\r\n\r\n sharingContainer: {\r\n position: \"relative\",\r\n },\r\n\r\n secondaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n border: \"1px solid #a77d4f\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #a77d4f\",\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"2px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n sharingDialog: {\r\n width: \"320px\",\r\n height: \"fit-content\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n gap: \"24px\",\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n position: \"absolute\",\r\n zIndex: \"998\",\r\n top: \"48px\",\r\n right: \"0px\",\r\n padding: \"16px\",\r\n },\r\n\r\n sharingDialog__disclaimer: {\r\n textAlign: \"center\",\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\"\r\n },\r\n\r\n disclaimer__highlight: {\r\n color: \"#F69127\",\r\n },\r\n\r\n sharingDialog__buttonContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n },\r\n\r\n sharingDialog__switchContainer: {\r\n width: 'fit-content',\r\n height: \"40px\",\r\n\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n },\r\n\r\n switchContainer__label: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n gap: \"8px !important\",\r\n margin: \"0px !important\",\r\n\r\n userSelect: \"none\",\r\n },\r\n\r\n sharingDialog__primaryButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"relative\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n copied: {\r\n opacity: 0,\r\n },\r\n\r\n copiedText: {\r\n opacity: 1,\r\n color: \"white\",\r\n position: \"absolute\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n displayLabel: {\r\n height: '40px',\r\n marginRight: '10px !important',\r\n border: '1px solid #C3996B !important',\r\n textTransform: 'capitalize !important',\r\n color: '#C3996B !important',\r\n fontSize: '16px !important',\r\n fontFamily: 'inherit !important',\r\n fontWeight: 'normal !important',\r\n '&.Mui-selected': {\r\n color: 'white !important',\r\n backgroundColor: '#C3996B !important',\r\n\r\n }\r\n },\r\n\r\n // FINANCIAL - STYLING\r\n financialDetailInformationContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n\r\n highLowContainer: {\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexBasis: \"0\",\r\n flexGrow: \"1\",\r\n\r\n background: \"white\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n highLow__projectContainer: {\r\n\r\n },\r\n\r\n highLow__projectSubtitle: {\r\n fontSize: \"18px\",\r\n margin: \"0px\",\r\n },\r\n\r\n highLow__detail: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n highLow__headerContainer: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n flexDirection: 'row',\r\n backgroundColor: '#ede6df',\r\n },\r\n\r\n highLow__detailHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n\r\n padding: \"10px\",\r\n },\r\n\r\n highLow__detailTitle: {\r\n margin: \"0\",\r\n\r\n whiteSpace: \"nowrap\",\r\n },\r\n\r\n headerContainer__detailInformation: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"16px\",\r\n },\r\n\r\n detailInformation__registrationPoint: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n // overflow ...\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n\r\n fontSize: \"14px\",\r\n },\r\n\r\n registrationPoint__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n financialDetailInformationContainer__right: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexBasis: \"0\",\r\n flexGrow: \"2\",\r\n gap: \"16px\",\r\n },\r\n\r\n pieChartsContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n overflow: 'hidden',\r\n\r\n borderRadius: \"8px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n\r\n pieStyle: {\r\n width: \"50%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%'\r\n },\r\n },\r\n\r\n financialSummaryContainer: {\r\n overflow: 'hidden',\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"16px\",\r\n gap: \"10px\",\r\n },\r\n\r\n filterTitle: {\r\n backgroundColor: \"#C3996B !important\",\r\n color: 'white',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n padding: '10px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n },\r\n\r\n icon: {\r\n color: \"#0C0E29\",\r\n display: \"block\",\r\n\r\n height: \"24px\",\r\n width: \"24px\",\r\n\r\n strokeWidth: \"1.8px\",\r\n },\r\n}));","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { parseDateToDDMMYYTime, parseNewDateToDDMMYYYWithoutSeconds } from '../../../Utils/dateHelper';\r\nimport { valueTypeCodes, controlTypes, ProjectFilterTypes, resultColumns, profitLossResultColumns, graphTypes, externalApiTypes, timeLineVisualisationTypes, registrationPointColors } from '../../../Config/constants';\r\n\r\n// Packages\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport html2canvas from 'html2canvas';\r\n\r\n// Components\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport DateRangeSlider from '../../Shared/DateSelection/DateRangeSlider';\r\nimport DevExDataTable from \"../Results/Components/DevExDataTable\";\r\nimport ProfitLossDevExDataTable from \"./Components/ProfitLossDevExDataTable\";\r\nimport BoolToggle from '../../Shared/Buttons/BoolToggle';\r\nimport YamazumiChart from './Components/YamazumiChart';\r\nimport TimeLineChart from '../Results/Components/TimeLineChart'\r\nimport FinancialChart from './Components/FinancialChart';\r\nimport { Box, FormControlLabel, Tooltip, Button, Divider } from '@mui/material';\r\nimport EventChart from '../ProjectReport/Components/EventChart';\r\nimport TableHighLow from '../ProjectReport/Components/TableHighLow';\r\nimport FinancialSummaryTable from './Components/FinancialSummaryTable';\r\nimport ProfitLossReport from './Components/ProfitLossReport';\r\nimport GraphTabs from './Components/GraphTabs';\r\nimport TextWithReadMore from '../../Shared/TextWithReadMore';\r\n\r\n// Assets\r\nimport { Share, MapPin, CalendarClock, ChevronLeft, Plus, Minus, Timer, ScanBarcode, Image, TextCursorInput, LinkIcon, List, DiamondPlus } from 'lucide-react';\r\n\r\nfunction GraphDetailPage(props) {\r\n const { graphId } = useParams();\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n // General\r\n const [loading, setLoading] = useState(true);\r\n const [selectedGraphType, setSelectedGraphType] = useState(1);\r\n const [graphProjects, setGraphProjects] = useState([]);\r\n const [allFilters, setAllFilters] = useState();\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n const [activeCurrency, setActiveCurrency] = useState(null);\r\n\r\n // Datagrid properties\r\n const [originalMeasurementRows, setOriginalMeasurementRows] = useState([]); // All measurementrows for current GraphDetail - should not be overwritten\r\n const [types, setTypes] = useState([]);\r\n\r\n // Filtering\r\n const [dateFiltering, setDateFiltering] = useState(false);\r\n const [timeRangeDates, setTimeRangeDates] = useState({ fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) });\r\n const [noGraphFound, setNoGraphFound] = useState(false);\r\n const [graphConfigurationObject, setGraphConfigurationObject] = useState(null);\r\n const [selectedProjects, setSelectedProjects] = useState([]);\r\n const [graphConfigurationName, setGraphConfigurationName] = useState(\"\");\r\n const [selectedProject, setSelectedProject] = useState([]);\r\n const [graphData, setGraphData] = useState([]);\r\n const [graphConfigurationId, setGraphConfigurationId] = useState(null);\r\n const [graphConfigurationUniqueId, setGraphConfigurationUniqueId] = useState(null);\r\n const [labelVisible, setLabelVisible] = useState(true);\r\n\r\n // Timeline chart\r\n const [chartRows, setChartRows] = useState([]);\r\n const [graphDetails, setGraphDetails] = useState([]);\r\n const [showLinearTimeline, setShowLinearTimeline] = useState(false);\r\n\r\n // Financial chart\r\n const summaryRef = React.createRef();\r\n const highLowRef = React.createRef();\r\n const [financialChartData, setFinancialChartData] = useState([]);\r\n const [projectDetailNames, setDetailsNames] = useState({});\r\n const [totalPrice, setTotalPrice] = useState(0); // for summary\r\n const [priceData, setPriceData] = useState([]);\r\n const [highLowGraphProjects, setHighLowGraphProjects] = useState([]);\r\n\r\n\r\n // Profit/Loss report\r\n const profitLossReportComponentRef = useRef(null);\r\n const [profitLossReportData, setProfitLossReportData] = useState([]);\r\n const [allAccountCategories, setAllAccountCategories] = useState([]);\r\n const [allAccounts, setAllAccounts] = useState([]);\r\n const [boolCompareDate, setBoolCompareDate] = useState(false);\r\n const [profitLossDates, setProfitLossDates] = useState(null);\r\n const [compareLimit, setCompareLimit] = useState(5);\r\n const [percentageVisible, setPercentageVisible] = useState(false);\r\n\r\n\r\n // Date range filters\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n\r\n //DevExData\r\n const [selection, setSelection] = useState([]);\r\n const [profitLossSelection, setProfitLossSelection] = useState([]);\r\n\r\n // Tab-specific filtering\r\n const [dataFilters, setDataFilters] = useState([]);\r\n const [financialFilters, setFinancialFilters] = useState([]);\r\n\r\n const [dataMeasurementRows, setDataMeasurementRows] = useState([]);\r\n const [financialMeasurementRows, setFinancialMeasurementRows] = useState([]);\r\n\r\n useEffect(() => {\r\n if (graphId !== null && graphId !== \"\") {\r\n getGraphData(graphId);\r\n }\r\n }, [graphId]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n // Get all currencies\r\n dataService.getAllCurrencies().then(results => {\r\n setAllCurrencies(results);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n // set active currency\r\n if (selectedProjects.length > 0 && allCurrencies.length > 0) {\r\n let currency = allCurrencies.find(x => x.id === selectedProjects[0].currencyId);\r\n setActiveCurrency(currency);\r\n };\r\n\r\n }, [selectedProjects, allCurrencies])\r\n\r\n useEffect(() => {\r\n dataService.getTypes().then(results => {\r\n setTypes(results.sort((a, b) => a.description.localeCompare(b.description)));\r\n });\r\n }, [props])\r\n\r\n // useEffect(() => {\r\n // onFiltersChange();\r\n // dateFilterFinancialData();\r\n // }, [timeRangeDates]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const roundToSecond = (date) => {\r\n // remove milliseconds\r\n return new Date(date.setMilliseconds(0));\r\n };\r\n\r\n // Convert seconds to hh:mm:ss\r\n function convertHMS(value) {\r\n const sec = parseInt(value, 10); // convert value to number if it's string\r\n let hours = Math.floor(sec / 3600); // get hours\r\n let minutes = Math.floor((sec - (hours * 3600)) / 60); // get minutes\r\n let seconds = sec - (hours * 3600) - (minutes * 60); // get seconds\r\n // add 0 if value < 10; Example: 2 => 02\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds; // Return is HH : MM : SS\r\n }\r\n\r\n const getEventPrice = (measurement) => {\r\n if (measurement.price === null || measurement.price === undefined || measurement.price == 0) {\r\n return 0;\r\n } else {\r\n if (measurement.typeId === controlTypes.STOPWATCH || (measurement.typeId === controlTypes.EXTERNALAPI && measurement.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n if (measurement.startValue && measurement.stopValue) {\r\n const startTime = new Date(measurement.startValue);\r\n const stopTime = new Date(measurement.stopValue);\r\n const durationInSeconds = (stopTime - startTime) / 1000; // Convert to seconds\r\n return parseFloat((measurement.price / 3600) * durationInSeconds.toFixed(2));\r\n } else {\r\n return 0;\r\n }\r\n } else {\r\n return measurement.price;\r\n }\r\n }\r\n };\r\n\r\n const handleGraphTypeSelection = (type) => {\r\n setSelectedGraphType(type);\r\n }\r\n\r\n // Setting properties for current graphConfiguration\r\n const getGraphData = (graphId) => {\r\n var graphdataResults = [];\r\n let tempGraphData = [];\r\n let tempMeasurementRows = [];\r\n let tempProfitLossMeasurementRows = [];\r\n var projectMeasurements = [];\r\n let tempTimeRangeDates = {};\r\n let graphDetails = [];\r\n\r\n let tempDataMeasurementRows = [];\r\n let tempFinancialMeasurementRows = [];\r\n\r\n let tempSelectedProjects = JSON.parse(JSON.stringify(selectedProject));\r\n\r\n dataService.getGraphConfigurationForViewingByUniqueId(graphId).then(results => {\r\n setGraphConfigurationName(results.name);\r\n setGraphConfigurationId(results.id);\r\n setGraphConfigurationUniqueId(results.uniqueId);\r\n setGraphConfigurationObject(results);\r\n // handleGraphConfiguration(JSON.parse(results.metaData));\r\n\r\n graphdataResults = results;\r\n if (graphdataResults !== null && graphdataResults !== undefined) {\r\n setGraphProjects(graphdataResults.projects)\r\n graphdataResults.projects.forEach((project, index) => {\r\n tempSelectedProjects.push(project)\r\n // tempGraphData.push(parseProjectData(project));\r\n project.details.forEach(detail => {\r\n detail.resourceName = project.resourceDescription;\r\n graphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n detail.measurements.forEach(measurement => {\r\n measurement.registrationPointColor = registrationPointColors[index];\r\n });\r\n\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n setGraphDetails(graphDetails);\r\n })\r\n\r\n\r\n projectMeasurements = projectMeasurements.flat();\r\n let tempProjectMeasurementRows;\r\n\r\n tempProjectMeasurementRows = (projectMeasurements.map(\r\n y => ({\r\n accountId: y.accountId,\r\n accountName: y.accountName,\r\n accountCategoryId: y.accountCategoryId,\r\n accountCategoryName: y.accountCategoryName,\r\n checked: true,\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n valueTypeId: y.valueTypeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceName: y.resourceName,\r\n registrationPointColor: y.registrationPointColor,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopValue,\r\n insertedOn: new Date(y.insertedOn),\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n valueType: getValueType(y.valueTypeId),\r\n keyValue: y.keyValue,\r\n eventPrice: getEventPrice(y),\r\n externalApiTypeId: y.externalApiTypeId,\r\n })));\r\n tempDataMeasurementRows.push(...tempProjectMeasurementRows.flat());\r\n\r\n tempFinancialMeasurementRows = tempDataMeasurementRows.filter(row => row.eventPrice > 0);\r\n\r\n // Setting timerangedates\r\n let graphConfigurationMetaData = JSON.parse(results.metaData);\r\n if (graphConfigurationMetaData.dateRange !== null && graphConfigurationMetaData.dateRange !== undefined) {\r\n let dateRange = JSON.parse(results.metaData).dateRange;\r\n tempTimeRangeDates = { fromDate: new Date(dateRange.fromDate), startDate: new Date(dateRange.fromDate), toDate: new Date(dateRange.toDate), endDate: new Date(dateRange.toDate) };\r\n } else {\r\n let element = getLatestStartTimeElement(tempDataMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to };\r\n } else {\r\n tempTimeRangeDates = timeRangeDates;\r\n }\r\n }\r\n\r\n graphdataResults.projects.forEach(project => {\r\n // tempSelectedProjects.push(project)\r\n tempGraphData.push(parseProjectData(project, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate));\r\n project.details.forEach(detail => {\r\n // graphDetails.push(detail);\r\n if (detail.measurements !== null && detail.measurements !== undefined && detail.measurements.length > 0) {\r\n\r\n projectMeasurements.push(detail.measurements);\r\n }\r\n })\r\n // setGraphDetails(graphDetails);\r\n })\r\n\r\n // Setting the states for measurements and graph data\r\n const selectionPromise = new Promise(resolve => {\r\n const indexes = tempDataMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n const profitLossIndexes = tempFinancialMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n setProfitLossSelection(profitLossIndexes);\r\n resolve();\r\n });\r\n\r\n // Filter the array\r\n const measurementsBetweenDate = tempDataMeasurementRows.filter(item => {\r\n const insertedDate = roundToSecond(new Date(item.insertedOn));\r\n return insertedDate > tempTimeRangeDates.fromDate && insertedDate <= tempTimeRangeDates.toDate;\r\n });\r\n\r\n const measurementRowsPromise = new Promise(resolve => {\r\n setDataMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n setFinancialMeasurementRows([...measurementsBetweenDate].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)).filter(row => row.eventPrice > 0));\r\n resolve();\r\n });\r\n\r\n const originalMeasurementRowsPromise = new Promise(resolve => {\r\n setOriginalMeasurementRows([...tempDataMeasurementRows].flat().sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)));\r\n resolve();\r\n });\r\n\r\n // Data for yamazumi view\r\n const graphDataPromise = new Promise(resolve => {\r\n setGraphData(parseMeasurementRows(measurementsBetweenDate).flat());\r\n resolve();\r\n });\r\n\r\n // Data for timeline view\r\n const chartRowsPromise = new Promise(resolve => {\r\n let data = chartData(measurementsBetweenDate.flat());\r\n setChartRows(data);\r\n resolve();\r\n })\r\n\r\n // Data for financial view\r\n const financialDataPromise = new Promise(resolve => {\r\n constructPriceData(graphdataResults.projects, tempTimeRangeDates.fromDate, tempTimeRangeDates.toDate)\r\n\r\n let financialChartMeasurements = measurementsBetweenDate.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(tempTimeRangeDates.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(tempTimeRangeDates.toDate))\r\n\r\n let data = constructFinancialData(graphDetails, financialChartMeasurements)\r\n let detailNames = constructDetailCollection(graphDetails);\r\n setDetailsNames(detailNames);\r\n setFinancialChartData(data);\r\n\r\n // setting data for highlow table\r\n let tempGraphProjects = [...graphdataResults.projects]; // Clone the projects array\r\n let fromDate = tempTimeRangeDates.fromDate;\r\n let toDate = tempTimeRangeDates.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) <= toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(tempGraphProjects);\r\n\r\n resolve();\r\n })\r\n\r\n var dateranges = { 0: tempTimeRangeDates };\r\n // Data for profit loss report\r\n const profitLossReportDataPromise = new Promise(resolve => {\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(tempProjectMeasurementRows, dateranges).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n resolve();\r\n })\r\n\r\n const timeRangeDatesPromise = new Promise(resolve => {\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n // add sequence to tempTimeRangeDates \r\n let tempProfitLossDates = tempTimeRangeDates;\r\n tempProfitLossDates.sequence = 1;\r\n setProfitLossDates({ 0: tempProfitLossDates });\r\n resolve();\r\n });\r\n\r\n const selectedProjectsPromise = new Promise(resolve => {\r\n setSelectedProjects(tempSelectedProjects);\r\n resolve();\r\n });\r\n\r\n // Wait for all state updates to complete before setting loading to false\r\n Promise.all([\r\n selectionPromise,\r\n measurementRowsPromise,\r\n originalMeasurementRowsPromise,\r\n graphDataPromise,\r\n chartRowsPromise,\r\n financialDataPromise,\r\n profitLossReportDataPromise,\r\n timeRangeDatesPromise,\r\n selectedProjectsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n }\r\n }).catch((error) => {\r\n console.log('Error ', error)\r\n setNoGraphFound(true);\r\n toast.error(\"Something went wrong\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }).finally(() => {\r\n setLoading(false);\r\n })\r\n }\r\n\r\n const getValueType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA:\r\n return 'Value added';\r\n case valueTypeCodes.NVA:\r\n return 'No value added';\r\n case valueTypeCodes.W:\r\n return 'Waste';\r\n default:\r\n return 'Unknown'\r\n }\r\n }\r\n\r\n const getMeasurementValue = (typeId, externalApiTypeId, text, int, time, dataListValue, imageLink, externalApiValue) => {\r\n switch (typeId) {\r\n case 1: return int;\r\n case 2:\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n case 3: return text;\r\n case 4: return dataListValue;\r\n case 5: return text;\r\n case 6: return imageLink;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (int > 0) {\r\n return time;\r\n } else {\r\n return '';\r\n }\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return text;\r\n }\r\n return text;\r\n default: return ''\r\n // eslint-disable-next-line \r\n }\r\n }\r\n\r\n const getCommentText = (typeId, externalApiTypeId, text, commentText) => {\r\n switch (typeId) {\r\n case 1: return commentText;\r\n case 2: return commentText;\r\n case 3: return commentText;\r\n case 4: return commentText;\r\n case 5: return commentText;\r\n case 6: return commentText;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n return text;\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return commentText;\r\n }\r\n return commentText;\r\n default: return ''\r\n // eslint-disable-next-line\r\n }\r\n }\r\n\r\n const getLatestStartTimeElement = (data) => {\r\n //We check the latest measurement -> this is how we will decide from where to start the 'last 24h'\r\n if (data !== null && data.length > 0) {\r\n return data.reduce((latest, current) => {\r\n const latestTime = new Date(latest.startTime);\r\n const currentTime = new Date(current.startTime);\r\n\r\n // Check if current startTime is later than the latest\r\n return currentTime > latestTime ? current : latest;\r\n });\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n setTimeRangeDates({ fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) });\r\n let tempProfitLossDates = { 0: { sequence: 1, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) } }\r\n setProfitLossDates(tempProfitLossDates)\r\n\r\n // new daterange\r\n let newDateRange = { sequence: 1, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) };\r\n\r\n onFiltersChange(null, newDateRange, tempProfitLossDates);\r\n } else {\r\n resetDateRangeFilter()\r\n }\r\n }\r\n\r\n const handleSetStartDate = (event) => {\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n // Set timeRange to 24 hours before last measurement\r\n let element = getLatestStartTimeElement(originalMeasurementRows);\r\n let from = timeRangeDates.fromDate;\r\n let to = timeRangeDates.toDate;\r\n let tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n\r\n if (element !== null && element !== undefined) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n tempTimeRangeDates = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n setStartDate(new Date(from));\r\n setEndDate(new Date(to));\r\n setTimeRangeDates(tempTimeRangeDates);\r\n setProfitLossDates({ 0: tempTimeRangeDates });\r\n\r\n // new date\r\n let newDateRange = { fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to, sequence: 1 };\r\n\r\n onFiltersChange(null, newDateRange);\r\n }\r\n\r\n setPercentageVisible(false);\r\n }\r\n\r\n // Update Timerange for data\r\n const updateDataRange = (data, changeDay) => {\r\n let tempStartDate = new Date(data[0]);\r\n let tempEndDate = new Date(data[1]);\r\n let duplicateDateRange = JSON.parse(JSON.stringify(timeRangeDates));\r\n\r\n var objNewTimeRangeDate;\r\n\r\n if (changeDay) {\r\n // if it was a 'changeDay' action we start again with a 24h range\r\n objNewTimeRangeDate = { startDate: new Date(tempStartDate), fromDate: new Date(tempStartDate), toDate: new Date(tempEndDate), endDate: new Date(tempEndDate) };\r\n } else {\r\n // if slider was changed\r\n objNewTimeRangeDate = { startDate: new Date(tempStartDate), fromDate: new Date(duplicateDateRange.fromDate), toDate: new Date(duplicateDateRange.toDate), endDate: new Date(tempEndDate), };\r\n }\r\n\r\n if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(timeRangeDates)) {\r\n setTimeRangeDates(objNewTimeRangeDate);\r\n let tempProfitLossDates = objNewTimeRangeDate;\r\n tempProfitLossDates.sequence = 1;\r\n setProfitLossDates({ 0: tempProfitLossDates });\r\n\r\n onFiltersChange(null, objNewTimeRangeDate, { 0: tempProfitLossDates });\r\n }\r\n }\r\n\r\n const getColorForType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA: return '#4caf50'; // Green for Value Added\r\n case valueTypeCodes.NVA: return '#ff9800'; // Orange for Non Value Added\r\n case valueTypeCodes.W: return '#f44336'; // Red for Waste\r\n default: return '#9e9e9e'; // Gray for Unknown\r\n }\r\n };\r\n\r\n const parseMeasurementRows = (measurementRows) => {\r\n // Initialize an object to hold the parsed data for each project\r\n let projectData = {};\r\n // Loop through each measurement row in the array\r\n measurementRows.forEach(row => {\r\n // Only process rows where \"checked\" is true\r\n if (!row.checked || row.stopTime === null) return;\r\n\r\n if (row.typeId === controlTypes.STOPWATCH || (row.typeId === controlTypes.EXTERNALAPI && row.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n const projectId = row.projectId;\r\n const detailId = row.detailId;\r\n const startTime = new Date(row.startTime);\r\n const stopTime = new Date(row.stopTime);\r\n const duration = (stopTime - startTime) / 3600000; // Calculate duration in hours\r\n\r\n // Initialize data for this project if not already done\r\n if (!projectData[projectId]) {\r\n projectData[projectId] = {\r\n state: row.projectName + \" - \" + row.resourceName,\r\n values: {}\r\n };\r\n }\r\n\r\n // Check if this detailId has already been processed for this project\r\n if (!projectData[projectId].values[detailId]) {\r\n projectData[projectId].values[detailId] = {\r\n typeId: row.valueTypeId,\r\n title: row.description,\r\n color: row.color,\r\n typeName: (row.valueTypeId === valueTypeCodes.VA) ? \"VA\" : (row.valueTypeId === valueTypeCodes.NVA) ? \"NVA\" : (row.valueTypeId === valueTypeCodes.W) ? \"W\" : \"UNKNOWN\",\r\n totalDuration: 0,\r\n measurementCounter: 0\r\n };\r\n }\r\n\r\n if (duration > 0) {\r\n // Update the total duration and measurement counter for this detail\r\n projectData[projectId].values[detailId].totalDuration += duration;\r\n projectData[projectId].values[detailId].measurementCounter += 1;\r\n }\r\n }\r\n });\r\n\r\n // Transform the data into the required output format\r\n const parsedOutput = [];\r\n Object.values(projectData).forEach(project => {\r\n Object.values(project.values).forEach(detail => {\r\n parsedOutput.push({\r\n state: project.state,\r\n [detail.typeName]: detail.totalDuration, // Dynamic key based on typeName\r\n type: detail.typeId,\r\n typeName: detail.typeName,\r\n title: detail.title,\r\n color: detail.color,\r\n measurements: detail.measurementCounter\r\n });\r\n });\r\n });\r\n\r\n return parsedOutput;\r\n };\r\n\r\n const formatProfitLossReportData = async (measurements, dateranges) => {\r\n let accounts = [];\r\n let accountCategories = [];\r\n let tempProfitLossReportData = {\r\n companies: [],\r\n revenueAccountCategoryResults: [],\r\n costAccountCategoryResults: [],\r\n totalProfit: {},\r\n revenueTotal: {}, // Added for overall revenue totals\r\n costTotal: {}, // Added for overall cost totals\r\n percentageTotalProfit: {}\r\n };\r\n\r\n // Fetch accounts and categories if not already loaded\r\n if (!allAccounts.length && !allAccountCategories.length) {\r\n try {\r\n const [fetchedAccounts] = await Promise.all([\r\n dataService.getAllAccountsForGraphConfigurationByUniqueId(graphId),\r\n ]);\r\n\r\n let tempAccounts = [];\r\n let tempAccountCategories = [];\r\n\r\n fetchedAccounts.forEach(company => {\r\n company.accountCategories.forEach(category => {\r\n let tempCategory = {\r\n id: category.id,\r\n name: category.name,\r\n isRevenue: category.isRevenue,\r\n isActive: category.isActive,\r\n companyId: category.companyId,\r\n };\r\n tempAccountCategories.push(tempCategory);\r\n\r\n category.accounts.forEach(account => {\r\n tempAccounts.push(account);\r\n });\r\n });\r\n });\r\n\r\n setAllAccounts(tempAccounts);\r\n setAllAccountCategories(tempAccountCategories);\r\n\r\n accounts = tempAccounts;\r\n accountCategories = tempAccountCategories;\r\n } catch (error) {\r\n console.error(\"Error fetching account data:\", error);\r\n return tempProfitLossReportData;\r\n }\r\n } else {\r\n accounts = allAccounts;\r\n accountCategories = allAccountCategories;\r\n }\r\n\r\n // sort dateranges by sequence\r\n let orderedDateRanges = Object.keys(dateranges).map(key => dateranges[key]).sort((a, b) => a.sequence - b.sequence);\r\n\r\n // Initialize date range totals and process measurements\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n const { fromDate, toDate } = orderedDateRanges[rangeIndex];\r\n const from = new Date(fromDate);\r\n const to = new Date(toDate);\r\n\r\n // Initialize date range totals if not already initialized\r\n if (!tempProfitLossReportData.totalProfit[rangeIndex]) {\r\n tempProfitLossReportData.totalProfit[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.revenueTotal[rangeIndex]) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.costTotal[rangeIndex]) {\r\n tempProfitLossReportData.costTotal[rangeIndex] = 0;\r\n }\r\n\r\n // Filter measurements within the current date range\r\n const measurementsInDateRange = measurements.filter(measurement => {\r\n const insertedDate = roundToSecond(new Date(measurement.insertedOn));\r\n return insertedDate > from && insertedDate <= to;\r\n });\r\n\r\n // Process each measurement within the current date range\r\n measurementsInDateRange.filter(x => x.accountCategoryId !== null).forEach(measurement => {\r\n let measurementAccount = accounts.find(acc => acc.id === measurement.accountId);\r\n let measurementAccountCategory = accountCategories.find(\r\n category => category.id === measurementAccount.accountCategoryId\r\n );\r\n\r\n if (!measurementAccount || !measurementAccountCategory) return;\r\n\r\n let measurementCompanyName = measurement.companyName;\r\n\r\n // Add company if not already present\r\n if (!tempProfitLossReportData.companies.includes(measurementCompanyName)) {\r\n tempProfitLossReportData.companies.push(measurementCompanyName);\r\n tempProfitLossReportData.companies.sort((a, b) => a.localeCompare(b));\r\n }\r\n\r\n const isRevenue = measurementAccountCategory.isRevenue;\r\n const categoryList = isRevenue\r\n ? tempProfitLossReportData.revenueAccountCategoryResults\r\n : tempProfitLossReportData.costAccountCategoryResults;\r\n\r\n let category = categoryList.find(cat => cat.id === measurementAccountCategory.id);\r\n\r\n // Add category if not already present\r\n if (!category) {\r\n category = {\r\n id: measurementAccountCategory.id,\r\n name: measurementAccountCategory.name,\r\n isRevenue: isRevenue,\r\n accountResults: [],\r\n total: {}, // Dynamically calculated totals for each date range\r\n percentage: {}\r\n };\r\n categoryList.push(category);\r\n }\r\n\r\n let account = category.accountResults.find(acc => acc.id === measurementAccount.id);\r\n\r\n // Add account if not already present\r\n if (!account) {\r\n account = {\r\n id: measurementAccount.id,\r\n name: measurementAccount.name,\r\n isActive: measurementAccount.isActive,\r\n total: {},\r\n percentage: {}\r\n };\r\n category.accountResults.push(account);\r\n }\r\n\r\n // Update totals\r\n account.total[rangeIndex] = (account.total[rangeIndex] || 0) + measurement.eventPrice;\r\n category.total[rangeIndex] = (category.total[rangeIndex] || 0) + measurement.eventPrice;\r\n\r\n if (isRevenue) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] += measurement.eventPrice;\r\n } else {\r\n tempProfitLossReportData.costTotal[rangeIndex] += measurement.eventPrice;\r\n }\r\n\r\n tempProfitLossReportData.totalProfit[rangeIndex] =\r\n (tempProfitLossReportData.totalProfit[rangeIndex] || 0) +\r\n (isRevenue ? measurement.eventPrice : -measurement.eventPrice);\r\n });\r\n\r\n // Ensure totals for each category and account have all date ranges\r\n tempProfitLossReportData.revenueAccountCategoryResults.forEach(category => {\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!category.total[rangeIndex]) {\r\n category.total[rangeIndex] = 0; // Set missing total to 0\r\n }\r\n category.accountResults.forEach(account => {\r\n if (!account.total[rangeIndex]) {\r\n account.total[rangeIndex] = 0; // Set missing account total to 0\r\n }\r\n });\r\n });\r\n });\r\n\r\n tempProfitLossReportData.costAccountCategoryResults.forEach(category => {\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!category.total[rangeIndex]) {\r\n category.total[rangeIndex] = 0; // Set missing total to 0\r\n }\r\n category.accountResults.forEach(account => {\r\n if (!account.total[rangeIndex]) {\r\n account.total[rangeIndex] = 0; // Set missing account total to 0\r\n }\r\n });\r\n });\r\n });\r\n\r\n // Ensure overall totals for revenue and cost have all date ranges\r\n Object.keys(orderedDateRanges).forEach(rangeIndex => {\r\n if (!tempProfitLossReportData.revenueTotal[rangeIndex]) {\r\n tempProfitLossReportData.revenueTotal[rangeIndex] = 0;\r\n }\r\n if (!tempProfitLossReportData.costTotal[rangeIndex]) {\r\n tempProfitLossReportData.costTotal[rangeIndex] = 0;\r\n }\r\n });\r\n });\r\n\r\n // Add percentage calculations for each category and account\r\n const calculatePercentage = (prev, curr) => {\r\n if (prev === 0 && curr === 0) return 0; // No change\r\n if (prev === 0) return 100; // From 0 to any value\r\n return ((curr - prev) / Math.abs(prev)) * 100;\r\n };\r\n\r\n // Calculate percentages for each category\r\n [tempProfitLossReportData.revenueAccountCategoryResults, tempProfitLossReportData.costAccountCategoryResults].forEach(categoryList => {\r\n categoryList.forEach(category => {\r\n Object.keys(category.total).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n category.percentage[rangeIndex] = calculatePercentage(\r\n category.total[prevIndex] || 0,\r\n category.total[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n\r\n category.accountResults.forEach(account => {\r\n Object.keys(account.total).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n account.percentage[rangeIndex] = calculatePercentage(\r\n account.total[prevIndex] || 0,\r\n account.total[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n });\r\n });\r\n });\r\n\r\n // Calculate percentages for totalProfit\r\n tempProfitLossReportData.percentageTotalProfit = {};\r\n Object.keys(tempProfitLossReportData.totalProfit).forEach((rangeIndex, idx, rangeKeys) => {\r\n if (idx > 0) {\r\n const prevIndex = rangeKeys[idx - 1];\r\n tempProfitLossReportData.percentageTotalProfit[rangeIndex] = calculatePercentage(\r\n tempProfitLossReportData.totalProfit[prevIndex] || 0,\r\n tempProfitLossReportData.totalProfit[rangeIndex] || 0\r\n );\r\n }\r\n });\r\n\r\n return tempProfitLossReportData;\r\n };\r\n\r\n const parseProjectData = (project, fromDate, toDate) => {\r\n let from;\r\n let to;\r\n // Convert fromDate and toDate to Date objects if they are provided\r\n if (fromDate && toDate) {\r\n from = new Date(fromDate);\r\n to = new Date(toDate);\r\n }\r\n\r\n if (project) {\r\n const projectName = project.projectName;\r\n var projectValues = [];\r\n let dataSource = {};\r\n\r\n project.details.forEach(detail => {\r\n if ((detail.controlTypeId === controlTypes.STOPWATCH || detail.controlTypeId === controlTypes.EXTERNALAPI && detail.externalApiTypeId === externalApiTypes.STOPWATCH) && detail.isActive) {\r\n let totalDuration = 0;\r\n var measurementCounter = 0;\r\n\r\n detail.measurements.forEach(measurement => {\r\n if (measurement.stopValue !== null && measurement.stopValue !== undefined) {\r\n const start = roundToSecond(new Date(measurement.startTime));\r\n const stop = roundToSecond(new Date(measurement.stopValue));\r\n\r\n // Check if the start is within the date range if fromDate and toDate are provided\r\n if (start > from && start <= to) {\r\n // Calculate duration in hours\r\n const duration = (stop - start) / 3600000; // 3600000 ms = 1 hour\r\n totalDuration += duration;\r\n measurementCounter += 1;\r\n }\r\n }\r\n });\r\n\r\n dataSource[detail.description] = totalDuration;\r\n\r\n projectValues.push({\r\n projectId: project.id,\r\n state: projectName + \" - \" + project.resourceDescription,\r\n [detail.valueTypeId === valueTypeCodes.VA ? \"VA\" : detail.valueTypeId === valueTypeCodes.NVA ? \"NVA\" : detail.valueTypeId === valueTypeCodes.W ? \"W\" : \"UNKNOWN\"]: totalDuration, // Dynamic key\r\n type: detail.valueTypeId,\r\n typeName: (detail.valueTypeId === valueTypeCodes.VA) ? \"VA\" : (detail.valueTypeId === valueTypeCodes.NVA) ? 'NVA' : (detail.valueTypeId === valueTypeCodes.W) ? \"W\" : \"UNKNOWN\",\r\n title: detail.description,\r\n color: getColorForType(detail.valueTypeId),\r\n measurements: measurementCounter\r\n });\r\n }\r\n });\r\n\r\n return projectValues;\r\n }\r\n };\r\n\r\n const getEmptyStateTitle = () => {\r\n if (selectedProjects.length === 0) {\r\n return \"No projects selected\";\r\n } else {\r\n return \"No measurements\";\r\n }\r\n };\r\n\r\n const getEmptyStateSubtitle = () => {\r\n if (selectedProjects.length === 0) {\r\n return \"Select at least 1 project to display data in the Yamazumi graph.\";\r\n } else {\r\n return \"There are no measurements to display\"\r\n }\r\n };\r\n\r\n //DevEx functions\r\n const onSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(dataMeasurementRows));\r\n const selectedIds = e.map(index => tempRows[index] !== undefined ? tempRows[index].id : null);\r\n setSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n var data = chartData(updatedArray.filter(x => x.checked));\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n setChartRows(data);\r\n }\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(updatedArray.filter(x => x.checked), profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n setGraphData(parseMeasurementRows(updatedArray.filter(x => x.checked)));\r\n\r\n // Financial\r\n let financialChartMeasurements = updatedArray.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => x.checked)\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n }\r\n\r\n const onProfitLossSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(financialMeasurementRows));\r\n\r\n const selectedIds = e.map(index => tempRows[index] !== undefined ? tempRows[index].id : null);\r\n setProfitLossSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n let tempProfitLossReportData;\r\n\r\n formatProfitLossReportData(updatedArray.filter(x => x.checked), profitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n }\r\n\r\n const onFiltersChange = (filters, dateRange, profitLossDateRanges) => {\r\n let currentFilters;\r\n let currentDateRange;\r\n let currentProfitLossDates;\r\n\r\n let currentDataFilters;\r\n let currentFinancialFilters;\r\n\r\n let filteredDataMeasurements;\r\n let filteredFinancialMeasurements;\r\n\r\n if (filters) {\r\n if (selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.TIMELINE) {\r\n currentDataFilters = filters;\r\n setDataFilters(filters);\r\n currentFinancialFilters = financialFilters;\r\n } else if (selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS) {\r\n currentFinancialFilters = filters;\r\n setFinancialFilters(filters);\r\n currentDataFilters = dataFilters;\r\n }\r\n currentFilters = filters;\r\n setAllFilters(filters);\r\n } else {\r\n currentDataFilters = dataFilters;\r\n currentFinancialFilters = financialFilters;\r\n currentFilters = allFilters;\r\n }\r\n\r\n if (dateRange) {\r\n currentDateRange = dateRange;\r\n } else {\r\n currentDateRange = timeRangeDates;\r\n }\r\n\r\n if (profitLossDateRanges) {\r\n currentProfitLossDates = profitLossDateRanges;\r\n setProfitLossDates(profitLossDateRanges);\r\n } else {\r\n currentProfitLossDates = profitLossDates;\r\n }\r\n\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n varFilteredResults = varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > currentDateRange.fromDate && startTime <= currentDateRange.toDate; // Check range\r\n });\r\n\r\n varFilteredResults.forEach((x) => (x.checked = true)); // Reset checked state\r\n\r\n // Uncheck all rows that have a date outside of date indicated in dateRangeSlider\r\n varFilteredResults.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > currentDateRange.endDate || startTime <= currentDateRange.startDate; // Check range\r\n }).forEach((x) => (x.checked = false));\r\n\r\n filteredDataMeasurements = varFilteredResults\r\n .filter(x => x.checked)\r\n .map(x => ({ ...x })); // Creates new object copies\r\n\r\n filteredFinancialMeasurements = varFilteredResults\r\n .filter(x => x.checked && x.eventPrice > 0)\r\n .map(x => ({ ...x })); // Creates new object copies\r\n\r\n console.log(varFilteredResults.filter(x => x.checked && x.eventPrice > 0));\r\n\r\n // console.log(\"changed filters profitloss selection change\")\r\n // console.log(filteredFinancialMeasurements.filter(x => x.checked))\r\n\r\n // FILTERS\r\n // if (selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.TIMELINE) {\r\n currentDataFilters && currentDataFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"accountName\":\r\n filteredDataMeasurements\r\n .filter((x) => x.accountName && !x.accountName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"accountCategoryName\":\r\n filteredDataMeasurements\r\n .filter((x) => x.accountCategoryName && !x.accountCategoryName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"companyName\":\r\n filteredDataMeasurements\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n filteredDataMeasurements\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (filteredDataMeasurements.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredDataMeasurements.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (filteredDataMeasurements.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredDataMeasurements.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n filteredDataMeasurements.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredDataMeasurements.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredDataMeasurements.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n\r\n currentFinancialFilters && currentFinancialFilters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"accountName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => x.accountName && !x.accountName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"accountCategoryName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => x.accountCategoryName && !x.accountCategoryName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"companyName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n filteredFinancialMeasurements\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (filteredFinancialMeasurements.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredFinancialMeasurements.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (filteredFinancialMeasurements.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n filteredFinancialMeasurements.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (valueType !== null) {\r\n filteredFinancialMeasurements.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (filteredFinancialMeasurements.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n filteredFinancialMeasurements.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n\r\n // GENERAL\r\n\r\n let dateSortedDataMeasurements = [...filteredDataMeasurements].sort((a, b) =>\r\n new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n );\r\n\r\n let dateSortedFinancialMeasurements = [...filteredFinancialMeasurements].sort((a, b) =>\r\n new Date(b.insertedOn).getTime() - new Date(a.insertedOn).getTime()\r\n );\r\n\r\n setDataMeasurementRows(dateSortedDataMeasurements);\r\n setFinancialMeasurementRows(dateSortedFinancialMeasurements);\r\n\r\n // setMeasurementRows(newToOldMeasurementRows);\r\n // setFinancialMeasurementRows(newToOldMeasurementRows.filter(row => row.eventPrice > 0));\r\n\r\n const indexes = dateSortedDataMeasurements\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setSelection(indexes);\r\n\r\n const profitLossIndexes = dateSortedFinancialMeasurements\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setProfitLossSelection(profitLossIndexes);\r\n\r\n // YAMAZUMI\r\n setGraphData(parseMeasurementRows(dateSortedDataMeasurements.filter(x => x.checked)));\r\n\r\n // PROFIT & LOSS\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(dateSortedFinancialMeasurements.filter(x => x.checked), currentProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n });\r\n\r\n // TIMELINE\r\n var data = chartData(dateSortedDataMeasurements.filter(x => x.checked).flat());\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n setChartRows(data);\r\n }\r\n\r\n // FINANCIAL\r\n let financialChartMeasurements = filteredFinancialMeasurements.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => x.checked).filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(currentDateRange.fromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(currentDateRange.toDate))\r\n\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n\r\n let tempGraphProjects = [...graphProjects]; // Clone the projects array\r\n let fromDate = currentDateRange.fromDate;\r\n let toDate = currentDateRange.toDate;\r\n\r\n tempGraphProjects = tempGraphProjects.map(project => {\r\n return {\r\n ...project,\r\n details: project.details.map(detail => {\r\n return {\r\n ...detail,\r\n measurements: detail.measurements.filter(measurement =>\r\n roundToSecond(new Date(measurement.insertedOn)) > fromDate && roundToSecond(new Date(measurement.insertedOn)) <= toDate\r\n )\r\n };\r\n })\r\n };\r\n });\r\n setHighLowGraphProjects(tempGraphProjects);\r\n };\r\n\r\n const dateFilterFinancialData = () => {\r\n constructPriceData(graphProjects, timeRangeDates.fromDate, timeRangeDates.toDate)\r\n // let financialChartMeasurements = originalMeasurementRows.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)).filter(x => new Date(x.insertedOn) >= new Date(timeRangeDates.fromDate) && new Date(x.insertedOn) <= new Date(timeRangeDates.toDate))\r\n\r\n let financialChartMeasurements = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn)); // Clone original rows\r\n\r\n financialChartMeasurements = financialChartMeasurements.filter(row => {\r\n const startTime = roundToSecond(new Date(row.insertedOn)); // Convert to Date\r\n return startTime > timeRangeDates.startDate && startTime <= timeRangeDates.endDate; // Check range\r\n });\r\n\r\n let financialData = constructFinancialData(graphDetails, financialChartMeasurements)\r\n setFinancialChartData(financialData);\r\n }\r\n\r\n const limitString = (str, limit) => {\r\n if (str.length > limit) {\r\n return str.substring(0, limit) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n // Detail names for financial view\r\n const constructDetailCollection = (details) => {\r\n let temporaryCollection = [];\r\n for (let i = 0; i < details.length; i++) {\r\n let thisProjectDetail = details[i];\r\n if (thisProjectDetail.price > 0) {\r\n temporaryCollection.push({ id: thisProjectDetail.id, name: thisProjectDetail.description, registrationPoint: thisProjectDetail.resourceName, color: thisProjectDetail.color });\r\n }\r\n }\r\n //Empty array for all details, also add a total to display in the graph\r\n temporaryCollection.push({ id: -1, name: 'Total', color: '#c7c9c8' });\r\n\r\n return temporaryCollection;\r\n }\r\n\r\n // Data for financial view\r\n const constructFinancialData = (projectDetails, chartDataCollection) => {\r\n let tempTotalData = [];\r\n let total = 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n let count = 0;\r\n\r\n //First we loop through all measurements to calculate the TOTAL LINE\r\n chartDataCollection.forEach((thisMeasurement) => {\r\n let isStopwatch = false;\r\n let thisDetail = projectDetails.find(x => x.id === thisMeasurement.detailId);\r\n if (thisDetail !== undefined && thisDetail.price > 0) {\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId === 2)) {\r\n isStopwatch = true;\r\n }\r\n\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startTime);\r\n let stopDate = new Date(thisMeasurement.stopTime);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisDetail.price / 3600) * dif);\r\n\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (count === 0) {\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: startTime, price: 0, profitAdded: 0, isVisible: true, '-1_Total_price': 0, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, '-1_Total_price': total, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n count++;\r\n }\r\n });\r\n\r\n let tempDetailData = [];\r\n\r\n //Loop through the details and their measurements to get each unique detail line\r\n projectDetails.filter(x => x.price > 0).forEach(thisDetail => {\r\n let isStopwatch = false;\r\n let detailCount = 0;\r\n\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId === 2)) {\r\n //Stopwatch\r\n isStopwatch = true;\r\n }\r\n let thisMeasurements = chartDataCollection.filter(x => x.detailId === thisDetail.id);\r\n\r\n let total = 0;\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n\r\n if (thisMeasurements.length > 0) {\r\n let variablename = thisDetail.id + '_' + thisDetail.description + '_price';\r\n thisMeasurements.forEach(thisMeasurement => {\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startTime);\r\n let stopDate = new Date(thisMeasurement.stopTime);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisDetail.price / 3600) * dif);\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (detailCount === 0) {\r\n tempMeasurementData = { detailCount: 0, id: thisMeasurement.id, measurement: thisDetail.description, date: startTime, price: 0, profitAdded: 0, isVisible: true, [variablename]: 0, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: thisDetail.description, date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, [variablename]: total, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n detailCount++;\r\n });\r\n }\r\n\r\n\r\n });\r\n let combinedData = tempTotalData.concat(tempDetailData);\r\n return combinedData;\r\n }\r\n\r\n // TIMELINE\r\n const chartData = (data) => {\r\n let tempdata = [];\r\n let tempObj = {};\r\n\r\n data.forEach((x => {\r\n let startDate = new Date(x.startTime);\r\n let tempEndDate = new Date(x.startTime);\r\n let insertedOn = new Date(x.startTime);\r\n let updatedOn = new Date(x.startTime);\r\n\r\n if (x.typeId === controlTypes.STOPWATCH || x.typeId === controlTypes.EXTERNALAPI && x.externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (x.updatedOn !== undefined) {\r\n updatedOn = x.updatedOn;\r\n }\r\n if (x.stopTime !== null && x.stopTime.length > 0) {\r\n tempEndDate = new Date(x.stopTime);\r\n\r\n }\r\n if (x.insertedOn !== undefined) {\r\n insertedOn = x.insertedOn;\r\n }\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Stopwatch', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.dateValue, key: x.keyValue, counter: null, insertedOn: insertedOn, updatedOn: updatedOn, description: limitString(x.description, 15), color: x.registrationPointColor, chartType: 'rangeBar', argumentField: 'description', detailId: x.detailId, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.COUNTER) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Counter', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.integerValue, key: x.keyValue, counter: x.measurementValue, counterDescription: limitString(x.description, 15), color: x.registrationPointColor, chartType: 'scatter', argumentField: \"counterDescription\", linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.FREETEXT) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Free text', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.textValue, key: x.keyValue, counter: null, freetextDescription: limitString(x.description, 15), color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.DATALIST) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.CAMERA) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Image', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, image: x.imageId, thumbnail: x.thumbnail, cameraDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.SCANNER) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.EXTERNALAPI) {\r\n tempObj = { commentText: x.commentText, externalApiTypeId: x.externalApiTypeId, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'External API', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, value: x.externalApiValues, externalApiDescription: limitString(x.description, 15), counter: null, color: x.registrationPointColor, linearTimeline: \"\" };\r\n }\r\n\r\n tempdata.push(tempObj);\r\n }));\r\n tempdata = tempdata.filter(x => x.checked);\r\n return tempdata;\r\n }\r\n\r\n // FINANCIAL - LOGIC\r\n const handleDownloadImage = async (toDownload) => {\r\n let element;\r\n let fileName;\r\n if (toDownload === 'HighLow') {\r\n element = highLowRef.current;\r\n fileName = 'HighLow.jpg';\r\n } else {\r\n element = summaryRef.current;\r\n fileName = 'Summary.jpg';\r\n }\r\n const canvas = await html2canvas(element);\r\n\r\n const data = canvas.toDataURL('image/jpg');\r\n const link = document.createElement('a');\r\n\r\n if (typeof link.download === 'string') {\r\n link.href = data;\r\n link.download = fileName;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n window.open(data);\r\n }\r\n };\r\n\r\n // Data to display in financialSummaryTable\r\n const constructPriceData = (projects, thisFromDate, thisToDate) => {\r\n let aggregatedPriceData = [];\r\n let total = 0;\r\n\r\n projects.forEach(project => {\r\n let projectDetails = project.details;\r\n\r\n for (let i = 0; i < projectDetails.length; i++) {\r\n let thisDetail = projectDetails[i];\r\n let filteredMeasurements = thisDetail.measurements.filter(x => roundToSecond(new Date(x.insertedOn)) > new Date(thisFromDate) && roundToSecond(new Date(x.insertedOn)) <= new Date(thisToDate));\r\n\r\n filteredMeasurements.forEach(measurement => {\r\n measurement.controlTypeId = thisDetail.controlTypeId;\r\n measurement.externalApiTypeId = thisDetail.externalApiTypeId;\r\n });\r\n\r\n if (filteredMeasurements.length > 0) {\r\n let detailType = filteredMeasurements[0].typeId;\r\n let totalTime = 0;\r\n let tempTotal = 0;\r\n\r\n if (detailType === 2 || (detailType === 7 && filteredMeasurements[0].externalApiTypeId === 2)) {\r\n for (let j = 0; j < filteredMeasurements.length; j++) {\r\n let startDate = new Date(filteredMeasurements[j].startValue);\r\n let stopDate = new Date(filteredMeasurements[j].stopValue);\r\n let dif = stopDate > startDate ? (stopDate.getTime() - startDate.getTime()) / 1000 : 0;\r\n totalTime += dif;\r\n }\r\n tempTotal = (thisDetail.price / 3600) * totalTime;\r\n } else {\r\n tempTotal = (filteredMeasurements.length * (thisDetail.price !== null ? thisDetail.price : 0));\r\n }\r\n\r\n let lowestDate = filteredMeasurements.reduce((minDate, measurement) => {\r\n let insertedOn = new Date(measurement.insertedOn);\r\n return insertedOn < minDate ? insertedOn : minDate;\r\n }, new Date(filteredMeasurements[0].insertedOn));\r\n\r\n let highestDate = filteredMeasurements.reduce((maxDate, measurement) => {\r\n let insertedOn = new Date(measurement.insertedOn);\r\n return insertedOn > maxDate ? insertedOn : maxDate;\r\n }, new Date(filteredMeasurements[0].insertedOn));\r\n\r\n aggregatedPriceData.push({\r\n projectId: project.id,\r\n projectName: project.projectName,\r\n resourceName: filteredMeasurements[0].resourceName,\r\n price: thisDetail.price !== null ? thisDetail.price : 0,\r\n totalPrice: tempTotal,\r\n isProfit: thisDetail.isProfit !== null ? thisDetail.isProfit : true,\r\n detailDescription: thisDetail.description,\r\n first: lowestDate,\r\n last: highestDate,\r\n amount: (!isStopwatch(filteredMeasurements[0]) ? filteredMeasurements.length : totalTime),\r\n color: thisDetail.color,\r\n type: detailType,\r\n externalApiTypeId: filteredMeasurements[0].externalApiTypeId,\r\n minuteamount: (!isStopwatch(filteredMeasurements[0]) ? null : convertHMS(totalTime)),\r\n });\r\n\r\n if (thisDetail.isProfit) {\r\n total += tempTotal;\r\n } else {\r\n total -= tempTotal;\r\n }\r\n }\r\n }\r\n });\r\n\r\n aggregatedPriceData = aggregatedPriceData.filter(x => x.price > 0);\r\n\r\n setTotalPrice(total);\r\n setPriceData(aggregatedPriceData);\r\n }\r\n\r\n const getControlTypeIcon = (typeId) => {\r\n let icon;\r\n switch (typeId) {\r\n case 1:\r\n icon = <DiamondPlus className={classes.icon} />;\r\n break;\r\n case 2:\r\n icon = <Timer className={classes.icon} />;\r\n break;\r\n case 3:\r\n icon = <TextCursorInput className={classes.icon} />;\r\n break;\r\n case 4:\r\n icon = <List className={classes.icon} />;\r\n break;\r\n case 5:\r\n icon = <ScanBarcode className={classes.icon} />;\r\n break;\r\n case 6:\r\n icon = <Image className={classes.icon} />;\r\n break;\r\n case 7:\r\n icon = <LinkIcon className={classes.icon} />;\r\n break;\r\n default:\r\n // code block\r\n }\r\n return icon;\r\n }\r\n\r\n const exportProfitLossReport = () => {\r\n if (profitLossReportComponentRef.current) {\r\n profitLossReportComponentRef.current.downloadReport(); // Call the function\r\n }\r\n };\r\n\r\n const comparePeriod = () => {\r\n const index = Object.keys(profitLossDates).length;\r\n\r\n if (index === 1) {\r\n setPercentageVisible(true);\r\n }\r\n\r\n if (compareLimit >= index) {\r\n var tempProfitLossDates = { ...profitLossDates };\r\n\r\n const [lastKey, lastValue] = Object.entries(tempProfitLossDates).at(0);\r\n\r\n var existingEndDate = lastValue.endDate;\r\n var existingStartDate = lastValue.startDate;\r\n\r\n const differenceInMs = existingEndDate - existingStartDate;\r\n const differenceInDays = differenceInMs / (1000 * 60 * 60 * 24);\r\n\r\n var newEndDate = new Date(lastValue.startDate.getTime() - 1000);\r\n var newStartDate = new Date(lastValue.startDate - differenceInMs);\r\n\r\n // for each tempProfitLossDate, set sequence to current sequence + 1\r\n tempProfitLossDates = Object.values(tempProfitLossDates).map(x => {\r\n return { ...x, sequence: x.sequence + 1 };\r\n });\r\n\r\n tempProfitLossDates[index] = { fromDate: new Date(newStartDate), startDate: new Date(newStartDate), toDate: new Date(newEndDate), endDate: new Date(newEndDate), sequence: 1 };\r\n\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // get earliest fromDate and startDate from profitLossDates, and latest toDate and endDate then set to timeRangeDates\r\n let earliestFromDate = new Date(Math.min.apply(null, Object.values(tempProfitLossDates).map(x => x.fromDate)));\r\n let latestToDate = new Date(Math.max.apply(null, Object.values(tempProfitLossDates).map(x => x.toDate)));\r\n\r\n let tempTimeRangeDates = { fromDate: earliestFromDate, toDate: latestToDate, startDate: earliestFromDate, endDate: latestToDate }\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(originalMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setBoolCompareDate(true);\r\n });\r\n\r\n onFiltersChange(financialFilters, tempTimeRangeDates, tempProfitLossDates);\r\n } else {\r\n toast.error(\"The limit of 5 has been reached\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }\r\n };\r\n\r\n const resetComparePeriod = () => {\r\n // remove all dates except the last one and change its sequence to 1\r\n let tempProfitLossDates = { ...profitLossDates };\r\n let lastKey = Object.keys(tempProfitLossDates).pop();\r\n let lastValue = tempProfitLossDates[lastKey];\r\n tempProfitLossDates = { [lastKey]: lastValue };\r\n\r\n // for each tempProfitLossDate, set sequence to 1\r\n tempProfitLossDates = Object.values(tempProfitLossDates).map(x => {\r\n return { ...x, sequence: 1 };\r\n });\r\n\r\n setProfitLossDates(tempProfitLossDates);\r\n\r\n // get earliest fromDate and startDate from profitLossDates, and latest toDate and endDate then set to timeRangeDates\r\n let earliestFromDate = new Date(Math.min.apply(null, Object.values(tempProfitLossDates).map(x => x.fromDate)));\r\n let latestToDate = new Date(Math.max.apply(null, Object.values(tempProfitLossDates).map(x => x.toDate)));\r\n\r\n let tempTimeRangeDates = { fromDate: earliestFromDate, toDate: latestToDate, startDate: earliestFromDate, endDate: latestToDate }\r\n setTimeRangeDates(tempTimeRangeDates);\r\n\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(originalMeasurementRows, tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setBoolCompareDate(false);\r\n });\r\n\r\n onFiltersChange(financialFilters, tempTimeRangeDates, tempProfitLossDates);\r\n setPercentageVisible(false);\r\n };\r\n\r\n const setCompareDateRange = (index, startDate, endDate, sequence) => {\r\n\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)).sort((a, b) => new Date(b.insertedOn) - new Date(a.insertedOn)); // Clone original rows\r\n\r\n if (startDate && endDate) {\r\n setDateFiltering(true);\r\n var tempProfitLossDates = { ...profitLossDates };\r\n tempProfitLossDates[index] = { sequence: sequence, fromDate: new Date(startDate), startDate: new Date(startDate), toDate: new Date(endDate), endDate: new Date(endDate) };\r\n let tempProfitLossReportData;\r\n formatProfitLossReportData(varFilteredResults.filter(x => x.checked), tempProfitLossDates).then(formattedData => {\r\n tempProfitLossReportData = formattedData;\r\n setProfitLossReportData(tempProfitLossReportData);\r\n setProfitLossDates(tempProfitLossDates);\r\n });\r\n } else {\r\n resetCompareDateRangeFilter()\r\n }\r\n }\r\n\r\n const isStopwatch = (measurement) => {\r\n let measurementControlTypeId = measurement.controlTypeId || measurement.type;\r\n let measurementExternalApiTypeId = measurement.controlTypeId;\r\n\r\n if (measurementControlTypeId === controlTypes.STOPWATCH || (measurementControlTypeId === controlTypes.EXTERNALAPI && measurementExternalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n return true;\r\n } else {\r\n return false;\r\n };\r\n };\r\n\r\n const isFinancialView = () => {\r\n return selectedGraphType === graphTypes.FINANCIAL || selectedGraphType === graphTypes.PROFITLOSS;\r\n };\r\n\r\n const resetCompareDateRangeFilter = () => {\r\n\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Graph\" backbutton={true} {...props} />\r\n {loading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n\r\n }\r\n {noGraphFound ?\r\n <Box className={classes.noGraphContainer}>\r\n <p className={classes.noGraphContainer__text}>Unfortunately there is no graph available to view on this link. Make sure you have the correct URL.</p>\r\n </Box>\r\n :\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n }} >\r\n\r\n <Box className={classes.container}>\r\n <div className={classes.header__titleRow}>\r\n <GraphTabs selectedGraphType={selectedGraphType} handleGraphTypeSelection={handleGraphTypeSelection}></GraphTabs>\r\n\r\n </div>\r\n {graphConfigurationObject !== null &&\r\n <div className={classes.header}>\r\n <div className={classes.header__titleDetailRow}>\r\n <h2 className={classes.header__projectTitle}>{graphConfigurationObject.name}</h2>\r\n <div className={classes.header__detailContainer}>\r\n <div className={classes.header__detail}>\r\n <CalendarClock className={classes.header__detailIcon} />\r\n <p className={classes.header__detailText}>{graphConfigurationObject.updatedOn !== null ? parseDateToDDMMYYTime(graphConfigurationObject.updatedOn) : parseDateToDDMMYYTime(graphConfigurationObject.insertedOn)}</p>\r\n </div>\r\n </div>\r\n </div>\r\n {graphConfigurationObject.description &&\r\n // <p className={classes.header__description}>{graphConfigurationObject.description}</p>\r\n <TextWithReadMore dialogTitle={\"Description\"} text={graphConfigurationObject.description} />\r\n }\r\n </div>\r\n }\r\n <div className={classes.chartContainer}>\r\n {(selectedGraphType === graphTypes.YAMAZUMI || selectedGraphType === graphTypes.PROFITLOSS) &&\r\n <div className={classes.chartContainer__buttonContainer}>\r\n <div className={classes.buttonContainer__start}>\r\n <DateRangePicker size=\"large\" setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} startDate={timeRangeDates.fromDate} endDate={timeRangeDates.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n {selectedGraphType === graphTypes.PROFITLOSS && <BoolToggle size=\"large\" label=\"Display percentages\" disabled={Object.keys(profitLossDates).length <= 1} setBoolValue={setPercentageVisible} boolValue={percentageVisible} />}\r\n {selectedGraphType === graphTypes.YAMAZUMI && <BoolToggle disabled={false} size=\"large\" label=\"Display labels\" setBoolValue={setLabelVisible} boolValue={labelVisible} />}\r\n </div>\r\n <div className={classes.buttonContainer__end}>\r\n {selectedGraphType === graphTypes.PROFITLOSS && <button onClick={exportProfitLossReport} className={classes.secondaryButton}>Export PDF</button>}\r\n </div>\r\n </div>\r\n }\r\n {(selectedGraphType === graphTypes.TIMELINE || selectedGraphType === graphTypes.FINANCIAL) &&\r\n <div className={classes.timeRangePickerContainer}>\r\n <div className={classes.filterBlock}>\r\n <DateRangePicker size=\"large\" setDateRange={setDateRange} resetDateRangeFilter={resetDateRangeFilter} startDate={timeRangeDates.fromDate} endDate={timeRangeDates.endDate} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n {selectedGraphType === graphTypes.TIMELINE && <BoolToggle disabled={false} size=\"large\" label=\"Display linear\" setBoolValue={setShowLinearTimeline} boolValue={showLinearTimeline} />}\r\n <DateRangeSlider updateDataRange={updateDataRange} timeRangeDates={timeRangeDates}></DateRangeSlider>\r\n </div>\r\n </div>\r\n }\r\n <div className={classes.yamazumiContainer}>\r\n {selectedGraphType === graphTypes.YAMAZUMI && (\r\n <>\r\n {(selectedProjects.length === 0 || graphData.length === 0 || dataMeasurementRows.length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>{getEmptyStateTitle()}</p>\r\n <p className={classes.emptyStateCard__subtitle}>{getEmptyStateSubtitle()}</p>\r\n </div>\r\n </div>\r\n )}\r\n <YamazumiChart\r\n {...props}\r\n dataSource={graphData}\r\n labelVisible={labelVisible}\r\n graphConfigurationName={graphConfigurationName}\r\n emptyState={graphData.length === 0}\r\n />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.TIMELINE && (\r\n <>\r\n {(chartRows.filter(x => roundToSecond(new Date(x.startDate)) > new Date(timeRangeDates.fromDate) && roundToSecond(new Date(x.startDate)) <= new Date(timeRangeDates.toDate)).length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No measurements</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no measurements to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <TimeLineChart\r\n data={chartRows}\r\n visualisationType={showLinearTimeline ? timeLineVisualisationTypes.LINEAREVENTS : timeLineVisualisationTypes.SPLIT}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.FINANCIAL && (\r\n <>\r\n {(financialChartData.length === 0) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no financial data to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <FinancialChart\r\n financialChartData={financialChartData}\r\n projectDetailNames={projectDetailNames}\r\n currency={activeCurrency}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)} />\r\n </>\r\n )}\r\n {selectedGraphType === graphTypes.PROFITLOSS && (\r\n <>\r\n {(profitLossReportData === undefined || profitLossReportData.length === 0 || profitLossReportData === null) && (\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no financial data to display</p>\r\n </div>\r\n </div>\r\n )}\r\n <ProfitLossReport\r\n ref={profitLossReportComponentRef}\r\n data={financialMeasurementRows}\r\n profitLossReportData={profitLossReportData}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n boolCompareDate={boolCompareDate}\r\n comparePeriod={comparePeriod}\r\n resetComparePeriod={resetComparePeriod}\r\n percentageVisible={percentageVisible}\r\n compareLimit={compareLimit}\r\n setCompareDateRange={setCompareDateRange}\r\n profitLossDates={profitLossDates}\r\n currency={activeCurrency}\r\n />\r\n </>\r\n )}\r\n </div>\r\n\r\n <div style={{ visibility: isFinancialView() ? \"hidden\" : \"visible\", height: isFinancialView() ? \"0px\" : \"auto\" }}>\r\n <DevExDataTable data={dataMeasurementRows} columns={resultColumns} onSelectionChange={onSelectionChange} selection={selection} handleFiltersChange={onFiltersChange} />\r\n </div>\r\n\r\n <div style={{ visibility: isFinancialView() ? \"visible\" : \"hidden\", height: isFinancialView() ? \"auto\" : \"0px\" }}>\r\n <ProfitLossDevExDataTable data={financialMeasurementRows} columns={profitLossResultColumns} currency={activeCurrency} onSelectionChange={onProfitLossSelectionChange} selection={profitLossSelection} currentFilters={financialFilters} handleFiltersChange={onFiltersChange} />\r\n </div>\r\n\r\n </div>\r\n {selectedGraphType === graphTypes.FINANCIAL &&\r\n <div className={classes.financialDetailInformationContainer}>\r\n <div className={classes.highLowContainer} ref={highLowRef}>\r\n <div className={classes.filterTitle}>\r\n <span>High/Low</span>\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B' }} onClick={() => handleDownloadImage('HighLow')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </div>\r\n\r\n {loading ?\r\n <Box className={classes.loadingBalls}>\r\n <Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin>\r\n </Box>\r\n :\r\n highLowGraphProjects.length > 0 ?\r\n highLowGraphProjects.map((project, projectIndex) => (\r\n <Box key={`GraphProject_${projectIndex}`} className={classes.highLow__projectContainer}>\r\n {/* Project subtitle */}\r\n <h3 className={classes.highLow__projectSubtitle}>{project.name}</h3>\r\n\r\n {/* Details of each project */}\r\n {project.details.map((detail, index) => {\r\n if (detail.measurements.length > 0 && detail.price > 0) {\r\n return (\r\n <div\r\n key={`TableHighLow_${detail.id}_${index}`}\r\n className={classes.highLow__detail}\r\n >\r\n <div className={classes.highLow__headerContainer}>\r\n <div className={classes.highLow__detailHeader}>\r\n {getControlTypeIcon(detail.controlTypeId)}\r\n <p className={classes.highLow__detailTitle}>{detail.description}</p>\r\n </div>\r\n <div className={classes.headerContainer__detailInformation}>\r\n <div className={classes.detailInformation__registrationPoint}>\r\n <Tooltip title={detail.measurements[0].resourceName} placement=\"top\">\r\n <MapPin className={classes.registrationPoint__icon} />\r\n </Tooltip>\r\n {/* <p className={classes.registrationPoint__name}>{detail.measurements[0].resourceName}</p> */}\r\n </div>\r\n {detail.isProfit ? (\r\n <Plus style={{ color: 'rgb(40, 167, 69)', paddingRight: '10px' }} />\r\n ) : (\r\n <Minus style={{ color: 'rgb(220, 53, 69)', paddingRight: '10px' }} />\r\n )}\r\n </div>\r\n </div>\r\n <Divider />\r\n <TableHighLow\r\n {...props}\r\n detail={detail}\r\n projectName={project.projectName}\r\n location={project.resourceDescription}\r\n projectQr={project.qrCode}\r\n currency={activeCurrency}\r\n />\r\n </div>\r\n );\r\n } else {\r\n return <React.Fragment key={`EmptyDetail_${index}`}></React.Fragment>;\r\n }\r\n })}\r\n </Box>\r\n ))\r\n :\r\n <React.Fragment></React.Fragment>\r\n }\r\n\r\n {(dataMeasurementRows.length === 0 && !loading) && <Box style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', height: '100%', justifyContent: 'center' }}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no events for this project yet.</p>\r\n </div>\r\n </Box>}\r\n </div>\r\n <div className={classes.financialDetailInformationContainer__right}>\r\n <div className={classes.pieChartsContainer}>\r\n <div className={classes.pieStyle}>\r\n {(!priceData || priceData.filter(x => !isStopwatch(x)).length === 0) &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no event measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n <EventChart data={priceData.filter(x => !isStopwatch(x) && x.price > 0)} title={\"Event overview\"} />\r\n </div>\r\n <div className={classes.pieStyle}>\r\n {priceData.filter(x => isStopwatch(x)).length === 0 &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No stopwatches</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no stopwatch measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n <EventChart data={priceData.filter(x => isStopwatch(x))} title={\"Time overview\"} />\r\n </div>\r\n </div>\r\n <div className={classes.financialSummaryContainer} ref={summaryRef}>\r\n <div className={classes.calculateBoxStyle}>\r\n <div className={classes.filterTitle} variant=\"contained\" content=\"Options\" >\r\n <span>Summary</span>\r\n <div >\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B', marginRight: '10px' }} onClick={() => handleDownloadImage('Summary')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <FinancialSummaryTable totalPrice={totalPrice} priceData={priceData} currency={activeCurrency} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </Box>\r\n </Box>\r\n }\r\n\r\n </React.Fragment >\r\n )\r\n}\r\n\r\nexport default GraphDetailPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n zIndex: '999',\r\n position: 'fixed',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n header__titleRow: {\r\n width: \"100%\",\r\n minHeight: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n }\r\n },\r\n\r\n // Graph type toggle\r\n toggleFilter: {\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"absolute\",\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n position: \"relative\",\r\n left: \"0\",\r\n transform: \"none\",\r\n }\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n width: \"128px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"96px\",\r\n }\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(100% / 4)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n fullHeader: {\r\n backgroundColor: '#C3996B',\r\n color: 'white',\r\n borderTopLeftRadius: '8px',\r\n borderTopRightRadius: '8px',\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n\r\n },\r\n\r\n extraInfo: {\r\n display: 'flex',\r\n justifyContent: 'end'\r\n },\r\n\r\n header: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n gap: \"8px\",\r\n\r\n backgroundColor: \"#C3996B\",\r\n color: 'white',\r\n\r\n borderTopRightRadius: '8px',\r\n borderTopLeftRadius: '8px',\r\n\r\n padding: \"16px\",\r\n },\r\n\r\n header__titleDetailRow: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n header__projectTitle: {\r\n color: \"white\",\r\n },\r\n\r\n header__description: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n },\r\n\r\n header__detailContainer: {\r\n display: \"flex\",\r\n gap: \"24px\",\r\n },\r\n\r\n header__detail: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n header__detailIcon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n header__detailText: {\r\n margin: \"0px\",\r\n },\r\n\r\n header__published: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n },\r\n\r\n statusIndicator: {\r\n width: \"8px\",\r\n height: \"8px\",\r\n borderRadius: \"50%\",\r\n display: \"inline-block\",\r\n },\r\n\r\n // Style for published indicator (green)\r\n published: {\r\n backgroundColor: \"#5CC958\",\r\n },\r\n\r\n // Style for not published indicator (red)\r\n notPublished: {\r\n backgroundColor: \"#D84949\",\r\n },\r\n\r\n noGraphContainer: {\r\n width: \"400px\",\r\n\r\n margin: \"auto\",\r\n marginTop: \"125px\",\r\n padding: \"16px\",\r\n\r\n backgroundColor: \"white\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n noGraphContainer__text: {\r\n fontColor: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n margin: \"0\",\r\n textAlign: \"center\",\r\n },\r\n\r\n container: {\r\n boxSizing: \"border-box\",\r\n maxWidth: \"100%\",\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n borderRadius: \"8px\",\r\n marginBottom: '24px',\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n },\r\n\r\n graphInformationContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n marginBottom: \"24px\",\r\n },\r\n\r\n chartContainer: {\r\n width: \"100%\",\r\n\r\n position: \"relative\",\r\n zIndex: \"500\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"0px 0px 8px 8px\",\r\n padding: \"24px\",\r\n marginBottom: \"16px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n yamazumiContainer: {\r\n position: \"relative\",\r\n minHeight: \"400px\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n emptyStateContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(237, 237, 237, 0.48)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n chartContainer__buttonContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n buttonContainer__start: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n // Filter on graph ---------------------------------------------------------------------------------------\r\n\r\n filterButton: {\r\n backgroundColor: \"#C3996B !important\"\r\n },\r\n\r\n filterBlock: {\r\n display: 'flex',\r\n alignItems: \"center\",\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap',\r\n justifyContent: 'flex-start',\r\n gap: \"8px\"\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-evenly',\r\n }\r\n },\r\n\r\n filterItem: {\r\n [theme.breakpoints.down('sm')]: {\r\n marginBottom: '16px',\r\n width: '100%',\r\n textAlign: 'center',\r\n justifyContent: 'center',\r\n }\r\n },\r\n\r\n clearFiltersButton: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n\r\n padding: \"8px\",\r\n\r\n border: \"none\",\r\n backgroundColor: \"transparent\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41, 1)\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n\r\n gap: \"16px\",\r\n },\r\n\r\n sharingContainer: {\r\n position: \"relative\",\r\n zIndex: \"600\",\r\n },\r\n\r\n secondaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"1px solid #a77d4f\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #a77d4f\",\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"2px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n switchContainer__label: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n gap: \"8px !important\",\r\n margin: \"0px !important\",\r\n\r\n userSelect: \"none\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n // FINANCIAL - STYLING\r\n financialDetailInformationContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n\r\n highLowContainer: {\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexBasis: \"0\",\r\n flexGrow: \"1\",\r\n\r\n background: \"white\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n highLow__projectContainer: {\r\n\r\n },\r\n\r\n highLow__projectSubtitle: {\r\n fontSize: \"18px\",\r\n margin: \"0px\",\r\n },\r\n\r\n highLow__detail: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n highLow__headerContainer: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n flexDirection: 'row',\r\n backgroundColor: '#ede6df',\r\n },\r\n\r\n highLow__detailHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n\r\n padding: \"10px\",\r\n },\r\n\r\n highLow__detailTitle: {\r\n margin: \"0\",\r\n\r\n whiteSpace: \"nowrap\",\r\n },\r\n\r\n headerContainer__detailInformation: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"16px\",\r\n },\r\n\r\n detailInformation__registrationPoint: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n // overflow ...\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n\r\n fontSize: \"14px\",\r\n },\r\n\r\n registrationPoint__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n financialDetailInformationContainer__right: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexBasis: \"0\",\r\n flexGrow: \"2\",\r\n gap: \"16px\",\r\n },\r\n\r\n pieChartsContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n overflow: 'hidden',\r\n\r\n borderRadius: \"8px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n\r\n pieStyle: {\r\n width: \"50%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%'\r\n },\r\n },\r\n\r\n financialSummaryContainer: {\r\n overflow: 'hidden',\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"16px\",\r\n gap: \"10px\",\r\n },\r\n\r\n filterTitle: {\r\n backgroundColor: \"#C3996B !important\",\r\n color: 'white',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n padding: '10px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n },\r\n\r\n icon: {\r\n color: \"#0C0E29\",\r\n display: \"block\",\r\n\r\n height: \"24px\",\r\n width: \"24px\",\r\n\r\n strokeWidth: \"1.8px\",\r\n }\r\n}));","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * GSAP 3.12.7\n * https://gsap.com\n *\n * @license Copyright 2008-2025, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _reverting,\n _context,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi,\n // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\n_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _startAtRevertConfig = {\n suppressEvents: true,\n isStart: true,\n kill: false\n},\n _revertConfigNoKill = {\n suppressEvents: true,\n kill: false\n},\n _revertConfig = {\n suppressEvents: true\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 10000000) / 10000000 || 0;\n},\n // increased precision mostly for timing values.\n_parseRelative = function _parseRelative(start, value) {\n var operator = value.charAt(0),\n end = parseFloat(value.substr(2));\n start = parseFloat(start);\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && !_reverting && _lazyRender();\n animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));\n _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {\n return function (obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults[p]);\n }\n };\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime = _roundPrecise(tTime / cycleDuration));\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {\n // in case, for example, the _start is moved on a tween that has already rendered, or if it's being inserted into a timeline BEFORE where the playhead is currently. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning. Special case: if it's a timeline (has .add() method) and no duration, we can skip rendering because the user may be populating it AFTER adding it to a parent timeline (unconventional, but possible, and we wouldn't want it to get removed if the parent's autoRemoveChildren is true).\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n _isFromOrFromStart(child) || (timeline._recent = child);\n skipChecks || _postAddChecks(timeline, child);\n timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\n\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {\n _initTween(tween, time, tTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [tTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_isFromOrFromStart = function _isFromOrFromStart(_ref2) {\n var data = _ref2.data;\n return data === \"isFromStart\" || data === \"isStart\";\n},\n _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\n // if iteration changed\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents && !_reverting) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _roundPrecise(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\n animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc,\n totalDuration: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position, percentAnimation) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset,\n isPercent;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n offset = position.charAt(0);\n isPercent = position.substr(-1) === \"%\";\n i = position.indexOf(\"=\");\n\n if (offset === \"<\" || offset === \">\") {\n i >= 0 && (position = position.replace(/=/, \"\"));\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n }\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\n\n if (isPercent && percentAnimation) {\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n }\n\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _createTweenType = function _createTweenType(type, params, timeline) {\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars,\n parent;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = timeline;\n\n if (type) {\n irVars = vars;\n parent = timeline;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return new Tween(params[0], vars, params[varsIndex + 1]);\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value, v) {\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, scope, leaveStrings) {\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n selector = function selector(value) {\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n return function (v) {\n var el = value.current || value.nativeElement || value;\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n };\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = (Math.random() * i) | 0, v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt < l && wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\n\n return function (raw) {\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n prevContext = _context,\n context = animation._ctx,\n params,\n scope,\n result;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n context && (_context = context);\n result = params ? callback.apply(scope, params) : callback.call(scope);\n _context = prevContext;\n return result;\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _registerPluginQueue = [],\n _createPlugin = function _createPlugin(config) {\n if (!config) return;\n config = !config.name && config[\"default\"] || config; // UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n if (_windowExists() || config.headless) {\n // edge case: some build tools may pass in a null/undefined value\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n } else {\n _registerPluginQueue.push(config);\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\n// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\n// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\n_hue = function _hue(h, m1, m2) {\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _registerPluginQueue.forEach(_createPlugin);\n }\n\n _raf = typeof requestAnimationFrame !== \"undefined\" && requestAnimationFrame;\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback, once, prioritize) {\n var func = once ? function (t, d, f, v) {\n callback(t, d, f, v);\n\n _self.remove(func);\n } : callback;\n\n _self.remove(callback);\n\n _listeners[prioritize ? \"unshift\" : \"push\"](func);\n\n _wake();\n\n return func;\n },\n remove: function remove(callback, i) {\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return Math.pow(2, 10 * (p - 1)) * p + p * p * p * p * p * p * (1 - p);\n}); // previously 2 ** (10 * (p - 1)) but that doesn't end up with the value quite at the right spot so we do a blended ease to ensure it lands where it should perfectly.\n\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars) {\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n\n if (_context) {\n this._ctx = _context;\n\n _context.data.push(this);\n }\n\n _tickerActive || _ticker.wake();\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent && parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() >= 0 && this._initted ? 1 : 0;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value, suppressEvents) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\n //(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false);\n\n _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\n\n\n return _recacheAncestors(this);\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n } // possible future addition - if an animation is removed from its parent and then .restart() or .play() or .resume() is called, perhaps we should force it back into the globalTimeline but be careful because what if it's already at its end? We don't want it to just persist forever and not get released for GC.\n // !this.parent && !value && this._tTime < this._tDur && this !== _globalTimeline && _globalTimeline.add(this);\n\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detached parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.revert = function revert(config) {\n if (config === void 0) {\n config = _revertConfig;\n }\n\n var prevIsReverting = _reverting;\n _reverting = config;\n\n if (this._initted || this._startAt) {\n this.timeline && this.timeline.revert(config);\n this.totalTime(-0.01, config.suppressEvents);\n }\n\n this.data !== \"nested\" && config.kill !== false && this.kill();\n _reverting = prevIsReverting;\n return this;\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (Math.abs(animation._ts) || 1);\n animation = animation._dp;\n }\n\n return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). \"_sat\" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert().\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n var time = this._time;\n this._rDelay = value;\n\n _onUpdateTotalDuration(this);\n\n return time ? this.time(time) : this;\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n this._dur || (this._zTime = -_tinyNum); // ensures onComplete fires on a zero-duration animation that gets restarted.\n\n return this;\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, position) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\n vars.reversed && _this.reverse();\n vars.paused && _this.paused(true);\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n _createTweenType(0, arguments, this);\n\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n _createTweenType(1, arguments, this);\n\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n _createTweenType(2, arguments, this);\n\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),\n // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n prevIteration = _roundPrecise(tTime / cycleDuration); // full decimal version of iterations, not the previous iteration (we're reusing prevIteration variable for efficiency)\n\n iteration = ~~prevIteration;\n\n if (iteration && iteration === prevIteration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://gsap.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the \"repeatDelay\" portion\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; // if the playhead is landing exactly at the end of an iteration, use that totalTime rather than only the duration, otherwise it'll skip the 2nd render since it's effectively at the same time.\n\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\n\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n if (!prevTime && time && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position, child));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n child.parent === this && _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result.filter((v, i) => result.indexOf(v) === i);\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n initted,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n\n if (!initted) {\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n initted = 1;\n }\n\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate(soft) {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate(soft);\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this, soft);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n\n if (pt || pt === 0) {\n // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\n end = pt;\n }\n }\n }\n\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\n if (!isNaN(parsedStart * end) && end !== \"\") {\n // fun fact: any number multiplied by \"\" is evaluated as the number 0!\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_forceAllPropTweens,\n _initTween = function _initTween(tween, time, tTime) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n if (!tl || keyframes && !vars.stagger) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n\n if (prevStartAt) {\n prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\n\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\n // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\n\n prevStartAt._lazy = 0;\n }\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: !prevStartAt && _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate && function () {\n return _callback(tween, \"onUpdate\");\n },\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set.\n\n tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween\n\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\n\n if (immediateRender) {\n if (dur && time <= 0 && tTime <= 0) {\n // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (!prevStartAt) {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline!\n\n tween._startAt._sat = tween; // used in globalTime()\n\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n tween._zTime = time;\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = tween._ptCache = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n\n keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\n},\n _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],\n pt,\n rootPT,\n lookup,\n i;\n\n if (!ptCache) {\n ptCache = tween._ptCache[property] = [];\n lookup = tween._ptLookup;\n i = tween._targets.length;\n\n while (i--) {\n pt = lookup[i][property];\n\n if (pt && pt.d && pt.d._pt) {\n // it's a plugin, so find the nested PropTween\n pt = pt.d._pt;\n\n while (pt && pt.p !== property && pt.fp !== property) {\n // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\n pt = pt._next;\n }\n }\n\n if (!pt) {\n // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\n // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\n _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\n\n tween.vars[property] = \"+=0\";\n\n _initTween(tween, time);\n\n _forceAllPropTweens = 0;\n return skipRecursion ? _warn(property + \" not eligible for reset\") : 1; // if someone tries to do a quickTo() on a special property like borderRadius which must get split into 4 different properties, that's not eligible for .resetTo().\n }\n\n ptCache.push(pt);\n }\n }\n\n i = ptCache.length;\n\n while (i--) {\n rootPT = ptCache[i];\n pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\n\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n pt.c = value - pt.s;\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\n\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\n }\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n // parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\n_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {\n var ease = obj.ease || easeEach || \"power1.inOut\",\n p,\n a;\n\n if (_isArray(obj)) {\n a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease\n\n obj.forEach(function (value, i) {\n return a.push({\n t: i / (obj.length - 1) * 100,\n v: value,\n e: ease\n });\n });\n } else {\n for (p in obj) {\n a = allProps[p] || (allProps[p] = []);\n p === \"ease\" || a.push({\n t: parseFloat(prop),\n v: obj[p],\n e: ease\n });\n }\n }\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\n _staggerPropsToSkip = {};\n\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function (name) {\n return _staggerPropsToSkip[name] = 1;\n});\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, position, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n position.duration = vars;\n vars = position;\n position = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = vars.parent || _globalTimeline,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://gsap.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {},\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\n }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\n\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n l = parsedTargets.length;\n staggerFunc = stagger && distribute(stagger);\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = _copyExcluding(vars, _staggerPropsToSkip);\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n tl._ease = _easeMap.none;\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n } else if (keyframes) {\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\n ease: \"none\"\n }));\n\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n var time = 0,\n a,\n kf,\n v;\n\n if (_isArray(keyframes)) {\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\n } else {\n copy = {};\n\n for (p in keyframes) {\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n }\n\n for (p in copy) {\n a = copy[p].sort(function (a, b) {\n return a.t - b.t;\n });\n time = 0;\n\n for (i = 0; i < a.length; i++) {\n kf = a[i];\n v = {\n ease: kf.e,\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\n };\n v[p] = kf.v;\n tl.to(parsedTargets, v, time);\n time += v.duration;\n }\n }\n\n tl.duration() < duration && tl.to({}, {\n duration: duration - tl.duration()\n }); // in case keyframes didn't go to 100%\n }\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\n\n vars.reversed && _this3.reverse();\n vars.paused && _this3.paused(true);\n\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay) || 0); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n isNegative = totalTime < 0,\n tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative || this._lazy) {\n // this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && isNegative) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n prevIteration = _roundPrecise(tTime / cycleDuration); // full decimal version of iterations, not the previous iteration (we're reusing prevIteration variable for efficiency)\n\n iteration = ~~prevIteration;\n\n if (iteration && iteration === prevIteration) {\n time = dur;\n iteration--;\n } else if (time > dur) {\n time = dur;\n }\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted && iteration === prevIteration) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n this._tTime = tTime;\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock && time !== cycleDuration && this._initted) {\n // this._time will === cycleDuration when we render at EXACTLY the end of an iteration. Without this condition, it'd often do the repeatRefresh render TWICE (again on the very next tick).\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {\n // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values. But we also don't want to dump if we're doing a repeatRefresh render!\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n if (time && !prevTime && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate(soft) {\n // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate(soft);\n return _Animation2.prototype.invalidate.call(this, soft);\n };\n\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {\n _tickerActive || _ticker.wake();\n this._ts || this.play();\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\n ratio;\n this._initted || _initTween(this, time);\n ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\n // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\n // if (_isObject(property)) { // performance optimization\n // \tfor (p in property) {\n // \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\n // \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n // \t\t}\n // \t}\n // } else {\n\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {\n return this.resetTo(property, value, start, startIsRelative, 1); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n } //}\n\n\n _alignPlayhead(this, 0);\n\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n return this.render(0);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n this.parent ? _interrupt(this) : this.scrollTrigger && this.scrollTrigger.kill(!!_reverting);\n return this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return _createTweenType(1, arguments);\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return _createTweenType(2, arguments);\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n\nvar _media = [],\n _listeners = {},\n _emptyArray = [],\n _lastMediaTime = 0,\n _contextID = 0,\n _dispatch = function _dispatch(type) {\n return (_listeners[type] || _emptyArray).map(function (f) {\n return f();\n });\n},\n _onMediaChange = function _onMediaChange() {\n var time = Date.now(),\n matches = [];\n\n if (time - _lastMediaTime > 2) {\n _dispatch(\"matchMediaInit\");\n\n _media.forEach(function (c) {\n var queries = c.queries,\n conditions = c.conditions,\n match,\n p,\n anyMatch,\n toggled;\n\n for (p in queries) {\n match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\n\n match && (anyMatch = 1);\n\n if (match !== conditions[p]) {\n conditions[p] = match;\n toggled = 1;\n }\n }\n\n if (toggled) {\n c.revert();\n anyMatch && matches.push(c);\n }\n });\n\n _dispatch(\"matchMediaRevert\");\n\n matches.forEach(function (c) {\n return c.onMatch(c, function (func) {\n return c.add(null, func);\n });\n });\n _lastMediaTime = time;\n\n _dispatch(\"matchMedia\");\n }\n};\n\nvar Context = /*#__PURE__*/function () {\n function Context(func, scope) {\n this.selector = scope && selector(scope);\n this.data = [];\n this._r = []; // returned/cleanup functions\n\n this.isReverted = false;\n this.id = _contextID++; // to work around issues that frameworks like Vue cause by making things into Proxies which make it impossible to do something like _media.indexOf(this) because \"this\" would no longer refer to the Context instance itself - it'd refer to a Proxy! We needed a way to identify the context uniquely\n\n func && this.add(func);\n }\n\n var _proto5 = Context.prototype;\n\n _proto5.add = function add(name, func, scope) {\n // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function.\n // if (name && _isFunction(name.revert)) {\n // \tthis.data.push(name);\n // \treturn (name._ctx = this);\n // }\n if (_isFunction(name)) {\n scope = func;\n func = name;\n name = _isFunction;\n }\n\n var self = this,\n f = function f() {\n var prev = _context,\n prevSelector = self.selector,\n result;\n prev && prev !== self && prev.data.push(self);\n scope && (self.selector = selector(scope));\n _context = self;\n result = func.apply(self, arguments);\n _isFunction(result) && self._r.push(result);\n _context = prev;\n self.selector = prevSelector;\n self.isReverted = false;\n return result;\n };\n\n self.last = f;\n return name === _isFunction ? f(self, function (func) {\n return self.add(null, func);\n }) : name ? self[name] = f : f;\n };\n\n _proto5.ignore = function ignore(func) {\n var prev = _context;\n _context = null;\n func(this);\n _context = prev;\n };\n\n _proto5.getTweens = function getTweens() {\n var a = [];\n this.data.forEach(function (e) {\n return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\n });\n return a;\n };\n\n _proto5.clear = function clear() {\n this._r.length = this.data.length = 0;\n };\n\n _proto5.kill = function kill(revert, matchMedia) {\n var _this4 = this;\n\n if (revert) {\n (function () {\n var tweens = _this4.getTweens(),\n i = _this4.data.length,\n t;\n\n while (i--) {\n // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\n t = _this4.data[i];\n\n if (t.data === \"isFlip\") {\n t.revert();\n t.getChildren(true, true, false).forEach(function (tween) {\n return tweens.splice(tweens.indexOf(tween), 1);\n });\n }\n } // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\n\n\n tweens.map(function (t) {\n return {\n g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity,\n t: t\n };\n }).sort(function (a, b) {\n return b.g - a.g || -Infinity;\n }).forEach(function (o) {\n return o.t.revert(revert);\n }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\n\n i = _this4.data.length;\n\n while (i--) {\n // make sure we loop backwards so that, for example, SplitTexts that were created later on the same element get reverted first\n t = _this4.data[i];\n\n if (t instanceof Timeline) {\n if (t.data !== \"nested\") {\n t.scrollTrigger && t.scrollTrigger.revert();\n t.kill(); // don't revert() the timeline because that's duplicating efforts since we already reverted all the tweens\n }\n } else {\n !(t instanceof Tween) && t.revert && t.revert(revert);\n }\n }\n\n _this4._r.forEach(function (f) {\n return f(revert, _this4);\n });\n\n _this4.isReverted = true;\n })();\n } else {\n this.data.forEach(function (e) {\n return e.kill && e.kill();\n });\n }\n\n this.clear();\n\n if (matchMedia) {\n var i = _media.length;\n\n while (i--) {\n // previously, we checked _media.indexOf(this), but some frameworks like Vue enforce Proxy objects that make it impossible to get the proper result that way, so we must use a unique ID number instead.\n _media[i].id === this.id && _media.splice(i, 1);\n }\n }\n } // killWithCleanup() {\n // \tthis.kill();\n // \tthis._r.forEach(f => f(false, this));\n // }\n ;\n\n _proto5.revert = function revert(config) {\n this.kill(config || {});\n };\n\n return Context;\n}();\n\nvar MatchMedia = /*#__PURE__*/function () {\n function MatchMedia(scope) {\n this.contexts = [];\n this.scope = scope;\n _context && _context.data.push(this);\n }\n\n var _proto6 = MatchMedia.prototype;\n\n _proto6.add = function add(conditions, func, scope) {\n _isObject(conditions) || (conditions = {\n matches: conditions\n });\n var context = new Context(0, scope || this.scope),\n cond = context.conditions = {},\n mq,\n p,\n active;\n _context && !context.selector && (context.selector = _context.selector); // in case a context is created inside a context. Like a gsap.matchMedia() that's inside a scoped gsap.context()\n\n this.contexts.push(context);\n func = context.add(\"onMatch\", func);\n context.queries = conditions;\n\n for (p in conditions) {\n if (p === \"all\") {\n active = 1;\n } else {\n mq = _win.matchMedia(conditions[p]);\n\n if (mq) {\n _media.indexOf(context) < 0 && _media.push(context);\n (cond[p] = mq.matches) && (active = 1);\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n }\n }\n }\n\n active && func(context, function (f) {\n return context.add(null, f);\n });\n return this;\n } // refresh() {\n // \tlet time = _lastMediaTime,\n // \t\tmedia = _media;\n // \t_lastMediaTime = -1;\n // \t_media = this.contexts;\n // \t_onMediaChange();\n // \t_lastMediaTime = time;\n // \t_media = media;\n // }\n ;\n\n _proto6.revert = function revert(config) {\n this.kill(config || {});\n };\n\n _proto6.kill = function kill(revert) {\n this.contexts.forEach(function (c) {\n return c.kill(revert, true);\n });\n };\n\n return MatchMedia;\n}();\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n quickTo: function quickTo(target, property, vars) {\n var _setDefaults2;\n\n var tween = gsap.to(target, _setDefaults((_setDefaults2 = {}, _setDefaults2[property] = \"+=0.1\", _setDefaults2.paused = true, _setDefaults2.stagger = 0, _setDefaults2), vars || {})),\n func = function func(value, start, startIsRelative) {\n return tween.resetTo(property, value, start, startIsRelative);\n };\n\n func.tween = tween;\n return func;\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref3) {\n var name = _ref3.name,\n effect = _ref3.effect,\n plugins = _ref3.plugins,\n defaults = _ref3.defaults,\n extendTimeline = _ref3.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n context: function context(func, scope) {\n return func ? new Context(func, scope) : _context;\n },\n matchMedia: function matchMedia(scope) {\n return new MatchMedia(scope);\n },\n matchMediaRefresh: function matchMediaRefresh() {\n return _media.forEach(function (c) {\n var cond = c.conditions,\n found,\n p;\n\n for (p in cond) {\n if (cond[p]) {\n cond[p] = false;\n found = 1;\n }\n }\n\n found && c.revert();\n }) || _onMediaChange();\n },\n addEventListener: function addEventListener(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n },\n removeEventListener: function removeEventListener(type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n selector: selector,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n reverting: function reverting() {\n return _reverting;\n },\n context: function context(toAdd) {\n if (toAdd && _context) {\n _context.data.push(toAdd);\n\n toAdd._ctx = _context;\n }\n\n return _context;\n },\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt, v;\n this.tween = tween;\n\n for (p in vars) {\n v = target.getAttribute(p) || \"\";\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt.op = p;\n pt.b = v; // record the beginning value so we can revert()\n\n this._props.push(p);\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\n\n pt = pt._next;\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.12.7\";\n_coreReady = 1;\n_windowExists() && _wake();\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative };","/*!\n * CSSPlugin 3.12.7\n * https://gsap.com\n *\n * Copyright 2008-2025, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n\n var target = this.target,\n style = target.style,\n cache = target._gsap;\n\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n\n if (cache.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n\n property = _transformProp;\n }\n\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n},\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n},\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n if (!props[i + 1]) {\n props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n } else if (props[i + 1] === 2) {\n // non-CSS value (function-based)\n target[props[i]](props[i + 2]);\n } else {\n // non-CSS value (not function-based)\n target[props[i]] = props[i + 2];\n }\n }\n\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n\n i = _reverting();\n\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n\n if (cache.zOrigin && style[_transformOriginProp]) {\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs.\n\n cache.zOrigin = 0;\n cache.renderTransform();\n }\n\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n},\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && target.style && target.nodeType && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n }); // make sure it's a DOM node too.\n\n return saver;\n},\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n},\n _getReparentedCloneBBox = function _getReparentedCloneBBox(target) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a <defs> element and/or <mask>. We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var owner = target.ownerSVGElement,\n svg = _createElement(\"svg\", owner && owner.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n clone = target.cloneNode(true),\n bbox;\n\n clone.style.display = \"block\";\n svg.appendChild(clone);\n\n _docElement.appendChild(svg);\n\n try {\n bbox = clone.getBBox();\n } catch (e) {}\n\n svg.removeChild(clone);\n\n _docElement.removeChild(svg);\n\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds, cloned;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a <symbol> or <defs>). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getReparentedCloneBBox(target);\n cloned = 1;\n }\n\n bounds && (bounds.width || bounds.height) || cloned || (bounds = _getReparentedCloneBBox(target)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style,\n first2Chars;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n first2Chars = property.substr(0, 2);\n\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = unit !== \"rem\" && ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n if (toPercent && (property === \"height\" || property === \"width\")) {\n // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding.\n var v = target.style[property];\n target.style[property] = amount + unit;\n px = target[measureProperty];\n v ? target.style[property] = v : _removeProperty(target, property);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n }\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n startValue = target.style[prop];\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\n }\n\n a = [start, end];\n\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n style.scale = style.rotate = style.translate = \"none\";\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n\n _removeIndependentTransforms(style);\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent && !target.getBoundingClientRect().width) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375. Note: position: fixed elements report a null offsetParent but they could also be invisible because they're in an ancestor with display: none, so we check getBoundingClientRect(). We only want to alter the DOM if we absolutely have to because it can cause iframe content to reload, like a Vimeo video.\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin); // if (!(\"xOrigin\" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration\n // \txOrigin -= bounds.x;\n // \tyOrigin -= bounds.y;\n // }\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute.\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n\n style.scale = style.rotate = style.translate = \"none\";\n }\n\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || startValue === \"auto\" || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n inlineProps.push(\"visibility\", 0, style.visibility);\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : typeof target[p] === \"function\" ? inlineProps.push(p, 2, target[p]()) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","import React, { useEffect, useRef } from \"react\";\r\nimport gsap from \"gsap\";\r\n\r\nimport \"./../Assets/styles/landingpage-styles.css\"\r\n\r\nconst CanvasAnimation = () => {\r\n const canvasRef = useRef(null);\r\n const largeHeaderRef = useRef(null);\r\n\r\n useEffect(() => {\r\n let width, height, ctx, points, target;\r\n let animateHeader = true;\r\n\r\n function initHeader() {\r\n width = window.innerWidth;\r\n height = window.innerHeight;\r\n target = {\r\n x: width / 9,\r\n y: height / 14\r\n };\r\n\r\n if (largeHeaderRef.current) {\r\n largeHeaderRef.current.style.height = `${height}px`;\r\n }\r\n\r\n const canvas = canvasRef.current;\r\n if (!canvas) return;\r\n\r\n canvas.width = width;\r\n canvas.height = height;\r\n ctx = canvas.getContext(\"2d\");\r\n\r\n // Create points\r\n points = [];\r\n for (let x = 0; x < width; x += width / 9) {\r\n for (let y = 0; y < height; y += height / 14) {\r\n let px = x + Math.random() * width / 9;\r\n let py = y + Math.random() * height / 14;\r\n let p = { x: px, originX: px, y: py, originY: py, closest: [] };\r\n points.push(p);\r\n }\r\n }\r\n\r\n // Find the closest 3 points\r\n for (let i = 0; i < points.length; i++) {\r\n let p1 = points[i];\r\n for (let j = 0; j < points.length; j++) {\r\n let p2 = points[j];\r\n if (p1 !== p2) {\r\n p1.closest.push(p2);\r\n p1.closest.sort((a, b) => getDistance(p1, a) - getDistance(p1, b));\r\n p1.closest = p1.closest.slice(0, 3);\r\n }\r\n }\r\n }\r\n\r\n // Assign circles\r\n points.forEach(p => {\r\n p.circle = new Circle(p, 2 + Math.random() * 2, \"rgb(0,0,0)\");\r\n });\r\n\r\n initAnimation();\r\n }\r\n\r\n function initAnimation() {\r\n animate();\r\n points.forEach(p => shiftPoint(p));\r\n }\r\n\r\n function animate() {\r\n if (animateHeader && ctx) {\r\n ctx.clearRect(0, 0, width, height);\r\n points.forEach(p => {\r\n const distance = getDistance(target, p);\r\n if (distance < 4000) {\r\n p.active = 0.3;\r\n p.circle.active = 0.6;\r\n } else if (distance < 20000) {\r\n p.active = 0.1;\r\n p.circle.active = 0.3;\r\n } else {\r\n p.active = 0;\r\n p.circle.active = 0;\r\n }\r\n\r\n drawLines(p);\r\n p.circle.draw();\r\n });\r\n }\r\n requestAnimationFrame(animate);\r\n }\r\n\r\n function shiftPoint(p) {\r\n gsap.to(p, {\r\n x: p.originX - 50 + Math.random() * 100,\r\n y: p.originY - 50 + Math.random() * 100,\r\n ease: \"circ.inOut\",\r\n duration: 1 + Math.random(),\r\n onComplete: () => shiftPoint(p),\r\n });\r\n }\r\n\r\n function drawLines(p) {\r\n if (!p.active || !ctx) return;\r\n p.closest.forEach(close => {\r\n ctx.beginPath();\r\n ctx.moveTo(p.x, p.y);\r\n ctx.lineTo(close.x, close.y);\r\n ctx.strokeStyle = `rgba(0,0,0,${p.active})`;\r\n ctx.stroke();\r\n });\r\n }\r\n\r\n function Circle(pos, rad, color) {\r\n this.pos = pos;\r\n this.radius = rad;\r\n this.color = color;\r\n\r\n this.draw = function () {\r\n if (!this.active || !ctx) return;\r\n ctx.beginPath();\r\n ctx.arc(this.pos.x, this.pos.y, this.radius, 0, 2 * Math.PI, false);\r\n ctx.fillStyle = `rgba(227,123,7,${this.active})`;\r\n ctx.fill();\r\n };\r\n }\r\n\r\n function getDistance(p1, p2) {\r\n return Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2);\r\n }\r\n\r\n initHeader();\r\n }, []);\r\n\r\n return (\r\n <div ref={largeHeaderRef} style={{ width: \"100%\", overflow: \"hidden\", top: 0, left: 0 }}>\r\n <canvas ref={canvasRef}></canvas>\r\n </div>\r\n );\r\n};\r\n\r\nexport default CanvasAnimation;\r\n","import { makeStyles } from '@material-ui/core';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport DividerImage from '../../../Images/line2.png';\r\nimport { toast } from 'react-toastify';\r\nimport { Link } from 'react-router-dom';\r\n\r\n// Styling\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport './Assets/styles/landingpage-styles.css';\r\n\r\n// JS\r\nimport \"https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenLite.min.js\";\r\n\r\n// Components\r\nimport CanvasAnimation from './Components/CanvasAnimation';\r\n\r\n// Images\r\nimport img_logo from './Assets/images/logo.png';\r\nimport img_bannerBg from './Assets/images/Banner_BG.png';\r\nimport img_arrowRight from './Assets/images/arrow-right.png';\r\nimport img_circleLeft from './Assets/images/circle-left.png';\r\nimport img_circleRight from './Assets/images/circle-right.png';\r\nimport img_shapeIcon1 from './Assets/images/shape_icon1.png';\r\nimport img_shapeIcon2 from './Assets/images/shape_icon2.png';\r\nimport img_shapeIcon3 from './Assets/images/shape_icon3.png';\r\nimport img_shapeIcon4 from './Assets/images/shape_icon4.png';\r\nimport img_shapeIcon5 from './Assets/images/shape_icon5.png';\r\nimport img_icon1 from './Assets/images/icon-1.png';\r\nimport img_icon2 from './Assets/images/icon-2.png';\r\nimport img_icon3 from './Assets/images/icon-3.png';\r\nimport img_icon4 from './Assets/images/icon-4.png';\r\nimport img_icon5 from './Assets/images/icon-5.png';\r\nimport img_icon6 from './Assets/images/icon-6.png';\r\nimport img_img1 from './Assets/images/img-1.jpg';\r\nimport img_img2 from './Assets/images/img-2.jpg';\r\nimport img_img3 from './Assets/images/img-3.jpg';\r\nimport img_img4 from './Assets/images/img-4.jpg';\r\nimport img_testimonial from './Assets/images/testimonial.jpg';\r\nimport img_hannoverMesseBanner from './Assets/images/hannover-messe_banner.jpeg';\r\n\r\nfunction LandingPage(props) {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const [firstName, setFirstName] = useState(null);\r\n const [lastName, setLastName] = useState(null);\r\n const [email, setEmail] = useState(null);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n const gotoLogin = () => {\r\n navigate(\"/login\");\r\n }\r\n const requestLogin = () => {\r\n const errors = {}\r\n if (lastName === null) {\r\n errors.lastName = 'Required';\r\n }\r\n if (firstName === null) {\r\n errors.firstName = 'Required';\r\n }\r\n if (email === null) {\r\n errors.email = 'Required';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(email)) {\r\n errors.email = 'Invalid email address';\r\n }\r\n\r\n if (Object.keys(errors).length > 0) {\r\n return errors;\r\n } else {\r\n dataService.requestLogin(firstName, lastName, email).then(response => {\r\n if (response.success === true) {\r\n toast.success('Uw aanvraag werd verzonden! Wij nemen zo snel mogelijk contact op met u!', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Er liep iets verkeerd, probeer opnieuw.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n const handleFirstNameChange = (event) => {\r\n setFirstName(event.target.value);\r\n }\r\n const handleLastNameChange = (event) => {\r\n setLastName(event.target.value);\r\n }\r\n const handleEmailChange = (event) => {\r\n setEmail(event.target.value);\r\n }\r\n\r\n\r\n\r\n return (\r\n <div className=\"landingpage\" style={{ backgroundColor: \"white\" }}>\r\n <header className=\"header\">\r\n <div className=\"container\">\r\n <div className=\"logo\">\r\n <Link to=\"/\">\r\n <img src={img_logo} alt=\"\" />\r\n </Link>\r\n </div>\r\n <Link className=\"btn_design\" to=\"/login\">Login</Link>\r\n </div>\r\n </header>\r\n <section className=\"banner\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-5\">\r\n <div className=\"banner_left\">\r\n <h1>Taplr<span>.</span></h1>\r\n <h4>Boost Your Manufacturing Efficiency by 20%</h4>\r\n <h5>Taplr helps you unlock hidden potential in your production processes and align it with financial performance.</h5>\r\n <p>From a general point of view, manufacturing companies can improve their efficiency by 20%. Are you ready to test it?</p>\r\n <Link className=\"btn_design\" to=\"/bookdemo\">Book your demo now</Link>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-7\">\r\n <div className=\"banner-right\">\r\n <img src={img_bannerBg} alt=\"\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"hannover-messe\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"hannover-messe-container\">\r\n <a href=\"https://www.hannovermesse.de/en/application/registration/direct-entry-tickets-passes?code=45%2B1Y\"\r\n target=\"_blank\"\r\n rel=\"noreferrer\"\r\n title=\"Discover our product at Hannover Messe at Hall 8. Claim your free ticket here\">\r\n <img src={img_hannoverMesseBanner} alt=\"Join us at Hannover Messe. Learn more\" />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"problem\">\r\n <div className=\"container\">\r\n <h2 className=\"h2\">The Problem:</h2>\r\n <div className=\"cercle\">\r\n <img className=\"circle-left\" src={img_circleLeft} alt=\"\" />\r\n <img className=\"circle-right\" src={img_circleRight} alt=\"\" />\r\n <div className=\"icon_animation\">\r\n <img className=\"icon_one\" src={img_shapeIcon1} alt=\"\" />\r\n <img className=\"icon_two\" src={img_shapeIcon2} alt=\"\" />\r\n <img className=\"icon_three\" src={img_shapeIcon3} alt=\"\" />\r\n <img className=\"icon_four\" src={img_shapeIcon4} alt=\"\" />\r\n <img className=\"icon_five\" src={img_shapeIcon5} alt=\"\" />\r\n </div>\r\n\r\n <div id=\"large-header\" className=\"large-header\">\r\n {/* <canvas id=\"demo-canvas\"> */}\r\n <CanvasAnimation />\r\n {/* </canvas> */}\r\n </div>\r\n\r\n <h3>Finance vs. Production</h3>\r\n <p>It's common in many companies that finance and production teams aren't perfectly aligned. As a result, it's hard to see where exactly to improve operations to have a real impact on the bottom line.</p>\r\n <p>Taplr solves this problem by combining task mining with financial insights, allowing you to track production data while seeing the real financial impact of your decisions.</p>\r\n <Link className=\"btn_design\" to=\"/login?register=true\">Experience it for yourself</Link>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"benefits\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-6\">\r\n <div className=\"benefits_contain\">\r\n <h2>Benefits for <br /> CFOs:</h2>\r\n <div className=\"benefits_contain_list\">\r\n <div className=\"media\">\r\n <img className=\"mr-3\" src={img_icon1} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h4 className=\"mt-0\">See the <br /> Financial Impact:</h4>\r\n </div>\r\n </div>\r\n <p>Taplr shows you how operational changes affect the <br /> bottom line, so you can make smarter financial decisions.</p>\r\n </div>\r\n <div className=\"benefits_contain_list\">\r\n <div className=\"media\">\r\n <img className=\"mr-3\" src={img_icon3} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h4 className=\"mt-0\">Reduce <br /> Costs:</h4>\r\n </div>\r\n </div>\r\n <p>Pinpoint inefficiencies and reduce waste, leading to <br /> direct cost savings.\r\n </p>\r\n </div>\r\n <div className=\"benefits_contain_list\">\r\n <div className=\"media\">\r\n <img className=\"mr-3\" src={img_icon5} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h4 className=\"mt-0\">Improve Financial <br /> Transparency:</h4>\r\n </div>\r\n </div>\r\n <p>Taplr gives you a clear view of how production <br /> performance aligns with financial goals.</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div className=\"col-lg-6\">\r\n <div className=\"benefits_contain\">\r\n <h2>Benefits for Process <br /> Improvement Specialists:</h2>\r\n <div className=\"benefits_contain_list\">\r\n <div className=\"media\">\r\n <img className=\"mr-3\" src={img_icon2} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h4 className=\"mt-0\">Identify Bottlenecks <br /> Quickly:</h4>\r\n </div>\r\n </div>\r\n <p>Taplr’s real-time data helps you spot production issues <br /> before they become big problems.</p>\r\n </div>\r\n <div className=\"benefits_contain_list\">\r\n <div className=\"media\">\r\n <img className=\"mr-3\" src={img_icon4} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h4 className=\"mt-0\">Optimize <br /> Operations:</h4>\r\n </div>\r\n </div>\r\n <p>Use task mining to improve workflows and boost <br /> productivity.\r\n </p>\r\n </div>\r\n <div className=\"benefits_contain_list\">\r\n <div className=\"media\">\r\n <img className=\"mr-3\" src={img_icon6} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h4 className=\"mt-0\">Make Informed <br /> Decisions:\r\n </h4>\r\n </div>\r\n </div>\r\n <p>Taplr shows both operational and financial data, helping <br /> you prioritize changes that make the biggest impact.</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"egest\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-12\">\r\n <div className=\"egest_top text-center\">\r\n <h2>Uncover hidden profit leaks with Taplr's task mining & P&L insights</h2>\r\n <p>Automatically discover how work is actually performed, map it to your financial data, and pinpoint areas where profit is being lost. Empower your team with actionable insights to optimize processes, reduce costs, and drive revenue growth</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mt-5\">\r\n <div className=\"col-lg-6 margin_bottom\">\r\n <div className=\"egest_set\">\r\n <div className=\"media\">\r\n <img className=\"ml-3\" src={img_img1} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h3>P&L</h3>\r\n <p>Would you make decisions faster if you could prioritize and reassess the impact of continuous improvement with real-time data instantly reflected in your profit and loss statement?</p>\r\n <Link to=\"/bookdemo\">Tell me more <img src={img_arrowRight} alt=\"\" /></Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-6 margin_bottom\">\r\n <div className=\"egest_set\">\r\n <div className=\"media\">\r\n <img className=\"ml-3\" src={img_img2} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h3>Object Tracking</h3>\r\n <p>Would meetings be more efficient and decisions made faster if you could visualize the execution time of your production steps across different processes?</p>\r\n <Link to=\"/bookdemo\">Tell me more <img src={img_arrowRight} alt=\"\" /></Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-6 margin_bottom\">\r\n <div className=\"egest_set\">\r\n <div className=\"media\">\r\n <img className=\"ml-3\" src={img_img3} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h3>Event visualization</h3>\r\n <p>How would your EBIT be impacted if you could quickly pinpoint the origin of delays and identify improvement potential on your shopfloor?</p>\r\n <Link to=\"/bookdemo\">Tell me more <img src={img_arrowRight} alt=\"\" /></Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-6 margin_bottom\">\r\n <div className=\"egest_set\">\r\n <div className=\"media\">\r\n <img className=\"ml-3\" src={img_img4} alt=\"\" />\r\n <div className=\"media-body\">\r\n <h3>Optimization Insights</h3>\r\n <p>What if you could identify low-hanging fruit for improvements, minimize production time by analyzing lost time, and boost your contribution margin with minimal investments?</p>\r\n <Link to=\"/bookdemo\">Tell me more <img src={img_arrowRight} alt=\"\" /></Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n {/* <section className=\"stories\">\r\n <div className=\"stories_top\">\r\n <div className=\"container\">\r\n <h3>Success Stories</h3>\r\n </div>\r\n </div>\r\n <div className=\"stories_bottom\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-6\">\r\n <div className=\"stories_bottom_left\">\r\n <p>Pellentesque id libero ac arcu ornare vehicula. Vestibulum feugiat eu eros vitae scelerisque. Nam volutpat porttitor arcu ac tristique.</p>\r\n <h4>Accountant</h4>\r\n <h5>Robben Stewart</h5>\r\n <img src={img_testimonial} alt=\"\" />\r\n </div>\r\n </div>\r\n <div className=\"col-lg-6\">\r\n <div className=\"stories_bottom_right\">\r\n <ul>\r\n <li>\r\n <h4>Curabitur vehicula neque in nibh <br /> condimentum</h4>\r\n <p>John Doe</p>\r\n </li>\r\n <li>\r\n <h4>Curabitur vehicula neque in nibh <br /> condimentum</h4>\r\n <p>Nancy William</p>\r\n </li>\r\n <li>\r\n <h4>Curabitur vehicula neque in nibh <br /> condimentum</h4>\r\n <p>Alexis Sanchez</p>\r\n </li>\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section> */}\r\n <section className=\"ready text-center\">\r\n <div className=\"container\">\r\n <h2>Ready to Test It?</h2>\r\n <h4>Want to see how Taplr can work for you?</h4>\r\n <p>Book a demo and discover how Taplr can help improve your production processes and financial performance— <br /> tailored to your specific needs.</p>\r\n <Link className=\"btn_design\" to=\"/bookdemo\">Book Your Demo Now!</Link>\r\n </div>\r\n </section>\r\n <section className=\"about text-center\">\r\n <div className=\"container\">\r\n <p>Taplr is a product of Flagstone, a company with over 20 years of experience in optimizing shopfloors. Flagstone specializes in identifying inefficiencies and implementing solutions that enhance productivity and operations. The process begins with a thorough mapping of all relevant data, serving as the foundation for a detailed evaluation. By analyzing this data, it is possible to determine which processes are best suited for digitalization or automation, or where changes to work methods are needed to improve efficiency.</p>\r\n <p>Leveraging the insights and expertise Flagstone has gained, Taplr provides an innovative solution for mapping shopfloors and improving operational processes. Taplr helps businesses through real-time data analysis and process optimization, balancing both technology and human factors. This creates a dynamic work environment that is not only more efficient but also better aligned with the specific needs of the workforce. With this holistic approach Taplr has already helped numerous organizations achieve sustainable improvements and optimization of their operational processes.</p>\r\n </div>\r\n </section>\r\n <footer className=\"footer\">\r\n <div className=\"container\">\r\n <p>© 2025 <Link to=\"/\"> Taplr </Link>. All rights reserved. Taplr is a product by Flagstone BV, Stedestraat 51, 8530 Harelbeke - Belgium. <Link to=\"/privacypolicy\">Privacy Policy</Link></p>\r\n </div>\r\n </footer>\r\n </div>\r\n )\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n header: {\r\n backgroundColor: '#231F20',\r\n paddingTop: \"65px\",\r\n\r\n [theme.breakpoints.down('lg')]: {\r\n paddingTop: '20px',\r\n },\r\n },\r\n\r\n container: {\r\n maxWidth: \"1560px\",\r\n\r\n margin: \"0 auto\",\r\n padding: \"0 15px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n row: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n [theme.breakpoints.down('md')]: {\r\n marginBottom: \"30px\",\r\n },\r\n },\r\n\r\n col5: {\r\n flex: \"0 0 41.666%\",\r\n maxWidth: \"41.666%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n col6: {\r\n flex: \"0 0 50%\",\r\n maxWidth: \"50%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n col7: {\r\n flex: \"0 0 58.333%\",\r\n maxWidth: \"58.333%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n logo: {\r\n // image inside\r\n '& img': {\r\n [theme.breakpoints.down('md')]: {\r\n width: \"130px\",\r\n },\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: '118px',\r\n },\r\n },\r\n },\r\n\r\n banner: {\r\n padding: \"30px 0 110px\",\r\n backgroundColor: \"#231F20\",\r\n boxSizing: \"border-box\",\r\n\r\n [theme.breakpoints.down('lg')]: {\r\n padding: \"30px 0 70px\",\r\n },\r\n\r\n [theme.breakpoints.down('md')]: {\r\n padding: \"0px 0 70px\",\r\n marginTop: \"-1px\",\r\n },\r\n },\r\n}));\r\nexport default LandingPage;","import React, { useEffect, useState } from 'react';\r\nimport { Eye, EyeOff, X, ArrowLeft } from 'lucide-react';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { useNavigate, useSearchParams } from 'react-router-dom';\r\nimport { Grid2, TextField, Divider, Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, InputAdornment, IconButton } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { getAuth, signInWithEmailAndPassword, onAuthStateChanged, sendEmailVerification, sendPasswordResetEmail, RecaptchaVerifier, GoogleAuthProvider, multiFactor, TotpMultiFactorGenerator, TotpSecret, getMultiFactorResolver } from \"firebase/auth\";\r\nimport { toast } from 'react-toastify';\r\nimport QRCode from \"qrcode.react\";\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { authViews } from '../../../Config/constants';\r\n\r\ntoast.configure();\r\n\r\nfunction LoginPage(props) {\r\n const classes = useStyles();\r\n const recaptchaKey = process.env.REACT_APP_RECAPTCHA_KEY;\r\n\r\n // AuthNavigation\r\n const [currentAuthView, setCurrentAuthView] = useState(authViews.LOGIN);\r\n\r\n // URL parameter\r\n const [searchParams] = useSearchParams();\r\n const register = searchParams.get(\"register\"); // Used to link directly to register tab\r\n\r\n\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const handleClickShowPassword = () => setShowPassword(!showPassword);\r\n const [email, setEmail] = useState(\"\");\r\n const [company, setCompany] = useState(\"\");\r\n // const [phoneNumber, setPhoneNumber] = useState();\r\n\r\n const [lastName, setLastName] = useState(\"\");\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [emailAlreadyUsed] = useState(false);\r\n // const appVerifier = window.recaptchaVerifier;\r\n const [captchaValue, setCaptcha] = useState(null);\r\n const [imageNumber, setImageNumber] = useState(1);\r\n const navigate = useNavigate();\r\n const [verificationMessage] = useState(false);\r\n const [recaptchaRequired, setRecaptchaRequired] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n // const [recaptchaKey, setRecaptchaKey] = useState(null);\r\n\r\n // Validation\r\n const [successMessage, setSuccessMessage] = useState(\"\");\r\n const [generalError, setGeneralError] = useState(\"\");\r\n const [emailError, setEmailError] = useState(false);\r\n const [companyError, setCompanyError] = useState(false);\r\n const [passwordError, setPasswordError] = useState(false);\r\n const [firstNameError, setFirstNameError] = useState(false);\r\n const [lastNameError, setLastNameError] = useState(false);\r\n\r\n // Multi factor\r\n const [totpSecret, setTotpSecret] = useState(null);\r\n const [totpQrCodeUrl, setTotpQrCodeUrl] = useState(null);\r\n const [verificationCode, setVerificationCode] = useState(\"\");\r\n const [verificationCodeError, setVerificationCodeError] = useState(false);\r\n const [mfaResolverUid, setMfaResolverUid] = useState(null);\r\n const [authError, setAuthError] = useState(null);\r\n\r\n let auth = getAuth();\r\n\r\n const provider = new GoogleAuthProvider();\r\n provider.addScope('https://www.googleapis.com/auth/contacts.readonly');\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n var min = 1;\r\n var max = 3;\r\n var number = Math.floor(Math.random() * (max - min + 1) + min);\r\n setImageNumber(number);\r\n }, [])\r\n const recaptchaRef = React.createRef();\r\n\r\n const checkLogin = (e) => {\r\n e.preventDefault();\r\n\r\n resetErrors();\r\n if (email === \"\" || password === \"\") {\r\n if (email === \"\") {\r\n setEmailError(true);\r\n }\r\n if (password === \"\") {\r\n setPasswordError(true);\r\n }\r\n } else {\r\n // Sign in with email and pass.\r\n signInWithEmailAndPassword(auth, email, password)\r\n .then((userCredential) => {\r\n // Signed in \r\n const user = userCredential.user;\r\n const userToken = user.accessToken;\r\n if (user) {\r\n if (user.emailVerified) {\r\n handleMultiFactorEnrollment(user);\r\n // dataService.getUserByEmailAddress(user.email, userToken).then(results => {\r\n // if (results) {\r\n // props.actions.setUserid(results.id);\r\n // props.actions.setUserName(results.firstname);\r\n // props.actions.setLastName(results.lastname);\r\n // props.actions.setCompanyIds(results.companyIds);\r\n // props.actions.setUserToken(userToken);\r\n // props.actions.setUserRoles(results.roleIds);\r\n // props.actions.setEmail(user.email);\r\n\r\n // // User is signed in, see docs for a list of available properties\r\n // // https://firebase.google.com/docs/reference/js/firebase.User\r\n // props.actions.setLogin(true);\r\n // navigate(\"/\");\r\n // }\r\n // }).catch((error) => {\r\n // console.log('error', error)\r\n // });\r\n\r\n } else {\r\n setOpen(true);\r\n }\r\n\r\n } else {\r\n\r\n }\r\n }).catch((error) => {\r\n if (error.code === \"auth/multi-factor-auth-required\") {\r\n setAuthError(error);\r\n const mfaResolver = getMultiFactorResolver(getAuth(), error);\r\n setMfaResolverUid(mfaResolver.hints[0].uid);\r\n handleAuthNavigation(authViews.TOTPSIGNIN);\r\n } else {\r\n setGeneralError(\"Failed to sign in. Please check your credentials.\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleMultiFactorEnrollment = async (user) => {\r\n const multiFactorSession = await multiFactor(user).getSession();\r\n const totpSecret = await TotpMultiFactorGenerator.generateSecret(\r\n multiFactorSession\r\n );\r\n\r\n let qrCodeUrl = totpSecret.generateQrCodeUrl(user.email, \"Taplr\");\r\n\r\n setTotpSecret(totpSecret);\r\n setTotpQrCodeUrl(qrCodeUrl);\r\n\r\n handleAuthNavigation(authViews.TWOFACTORENROLLMENT);\r\n };\r\n\r\n const checkRegister = (e) => {\r\n e.preventDefault();\r\n const recaptchaAuth = getAuth();\r\n window.recaptchaVerifier = new RecaptchaVerifier('register-button', {\r\n 'size': 'invisible',\r\n 'callback': (response) => {\r\n console.log(response);\r\n // reCAPTCHA solved, allow signInWithPhoneNumber.\r\n }\r\n }, recaptchaAuth);\r\n\r\n resetErrors();\r\n if (email === \"\" || firstName === \"\" || lastName === \"\" || company === \"\") {\r\n if (email === \"\") {\r\n setEmailError(true);\r\n }\r\n if (firstName === \"\") {\r\n setFirstNameError(true);\r\n }\r\n if (lastName === \"\") {\r\n setLastNameError(true);\r\n }\r\n if (company === \"\") {\r\n setCompanyError(true);\r\n }\r\n if (captchaValue === null) {\r\n setRecaptchaRequired(true);\r\n }\r\n } else {\r\n if (captchaValue !== null) {\r\n setRecaptchaRequired(false);\r\n\r\n dataService.requestLogin(firstName, lastName, company, email).then(response => {\r\n if (response.success === true) {\r\n setCaptcha(null);\r\n setSuccessMessage(\"Your account request has been received. We've sent a confirmation email to your address.\");\r\n } else {\r\n setCaptcha(null);\r\n setGeneralError(\"Something went wrong, please try again.\");\r\n }\r\n });\r\n\r\n } else {\r\n setRecaptchaRequired(true);\r\n }\r\n }\r\n }\r\n\r\n const resetErrors = () => {\r\n setGeneralError(\"\");\r\n setSuccessMessage(\"\");\r\n\r\n setEmailError(false);\r\n setCompanyError(false);\r\n setPasswordError(false);\r\n setFirstNameError(false);\r\n setLastNameError(false);\r\n }\r\n\r\n const handleVerificationMail = (event) => {\r\n setOpen(false);\r\n let auth = getAuth();\r\n\r\n if (email === \"\") {\r\n setEmailError(true);\r\n } else {\r\n sendEmailVerification(auth.currentUser)\r\n .then(() => {\r\n // Email verification sent!\r\n // ...\r\n });\r\n }\r\n\r\n\r\n }\r\n const sendPasswordMail = (event) => {\r\n event.preventDefault();\r\n\r\n resetErrors();\r\n if (email === \"\") {\r\n setEmailError(true);\r\n } else {\r\n sendPasswordResetEmail(auth, email)\r\n .then(() => {\r\n setSuccessMessage(\"An email has been sent to: \" + email);\r\n }).catch((error) => {\r\n const errorMessage = error.message;\r\n setGeneralError(errorMessage);\r\n });\r\n }\r\n }\r\n\r\n const handleAuthNavigation = (authView) => {\r\n if (currentAuthView === authViews.REGISTER) {\r\n setEmail(\"\");\r\n setPassword(\"\");\r\n setFirstName(\"\");\r\n setLastName(\"\");\r\n };\r\n resetErrors();\r\n setCurrentAuthView(authView);\r\n };\r\n\r\n // Navigate straight to sign up tab\r\n const handleSignUp = () => {\r\n resetErrors();\r\n setPassword(\"\");\r\n\r\n }\r\n\r\n // Checks if the user should be directed to the sign up tab\r\n useEffect(() => {\r\n if (register === \"true\") {\r\n handleAuthNavigation(authViews.REGISTER);\r\n }\r\n }, [register]);\r\n\r\n const navigateToHomePage = () => {\r\n navigate(\"/\");\r\n }\r\n\r\n const changeEmail = (event) => {\r\n setEmail(event.target.value);\r\n };\r\n\r\n const changeCompany = (event) => {\r\n setCompany(event.target.value);\r\n };\r\n\r\n const changeVerificationCode = (event) => {\r\n setVerificationCode(event.target.value);\r\n };\r\n\r\n const changeLastName = (event) => {\r\n setLastName(event.target.value);\r\n }\r\n\r\n const changeFirstName = (event) => {\r\n setFirstName(event.target.value);\r\n };\r\n\r\n const changePassword = (event) => {\r\n setPassword(event.target.value);\r\n };\r\n\r\n const handleCaptcha = (value) => {\r\n setCaptcha(value);\r\n }\r\n\r\n const finalizeMfaEnrollment = async (event) => {\r\n event.preventDefault();\r\n\r\n const multiFactorAssertion = TotpMultiFactorGenerator.assertionForEnrollment(totpSecret, verificationCode);\r\n await multiFactor(auth.currentUser).enroll(multiFactorAssertion, \"Authenticator App\").then(result => {\r\n console.log(auth.currentUser);\r\n if (auth.currentUser) {\r\n dataService.getUserByEmailAddress(auth.currentUser.email, auth.currentUser.accessToken).then(results => {\r\n if (results) {\r\n if (results) {\r\n props.actions.setUserid(results.id);\r\n props.actions.setUserName(results.firstname);\r\n props.actions.setLastName(results.lastname);\r\n props.actions.setCompanyIds(results.companyIds);\r\n props.actions.setUserToken(auth.currentUser.accessToken);\r\n props.actions.setUserRoles(results.roleIds);\r\n props.actions.setEmail(auth.currentUser.email);\r\n props.actions.setLogin(true);\r\n props.actions.resetActiveFilters();\r\n navigate(\"/\");\r\n }\r\n } else {\r\n handleAuthNavigation(authViews.LOGIN);\r\n }\r\n }).catch((error) => {\r\n console.log('error', error)\r\n });\r\n } else {\r\n handleAuthNavigation(authViews.LOGIN);\r\n }\r\n });\r\n };\r\n\r\n const loginWithTotp = async (event) => {\r\n event.preventDefault();\r\n\r\n const otpFromAuthenticator = verificationCode;\r\n const multiFactorAssertion = TotpMultiFactorGenerator.assertionForSignIn(mfaResolverUid, otpFromAuthenticator);\r\n const mfaResolver = getMultiFactorResolver(getAuth(), authError);\r\n\r\n try {\r\n const userCredential = await mfaResolver.resolveSignIn(multiFactorAssertion);\r\n const user = userCredential.user;\r\n const userToken = user.accessToken;\r\n if (user) {\r\n if (user.emailVerified) {\r\n dataService.getUserByEmailAddress(user.email, userToken).then(results => {\r\n if (results) {\r\n props.actions.setUserid(results.id);\r\n props.actions.setUserName(results.firstname);\r\n props.actions.setLastName(results.lastname);\r\n props.actions.setCompanyIds(results.companyIds);\r\n props.actions.setUserToken(userToken);\r\n props.actions.setUserRoles(results.roleIds);\r\n props.actions.setEmail(user.email);\r\n props.actions.setLogin(true);\r\n props.actions.resetActiveFilters();\r\n navigate(\"/\");\r\n }\r\n }).catch((error) => {\r\n console.log('error', error)\r\n });\r\n\r\n } else {\r\n setOpen(true);\r\n }\r\n\r\n } else {\r\n\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n setGeneralError(\"The verification code you provided has expired or is not valid.\");\r\n }\r\n };\r\n\r\n return (\r\n <div className={classes.loginContainer}>\r\n <div className={classes.imageContainer}\r\n style={{ backgroundImage: `url(${process.env.PUBLIC_URL + '/images/Login/istock' + imageNumber + '.jpg'})` }}>\r\n <div className={classes.imageOverlay}>\r\n\r\n </div>\r\n </div>\r\n\r\n {currentAuthView === authViews.LOGIN ?\r\n <form onSubmit={checkLogin} className={classes.loginForm}>\r\n\r\n <div className={classes.logoContainer}>\r\n <img className={classes.logoContainer__logo} src={process.env.PUBLIC_URL + \"/images/Taplr.png\"} onClick={() => navigateToHomePage()} alt=\"Taplr Logo\"></img>\r\n </div>\r\n <div className={classes.login}>\r\n <h1 className={classes.actionType}>Sign in</h1>\r\n {generalError !== \"\" &&\r\n <div className={classes.generalErrorContainer}>\r\n <p className={classes.generalErrorText}>{generalError}</p>\r\n </div>\r\n }\r\n <div className={classes.form__column}>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: emailError ? \"#D84949\" : \"#0C0E29\" }}>{emailError ? \"Email address is required\" : \"Email address\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: emailError ? \"#D84949\" : \"#A9A9A9\" }} type=\"email\" value={email} onChange={(event) => changeEmail(event)} />\r\n </div>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: passwordError ? \"#D84949\" : \"#0C0E29\" }}>{passwordError ? \"Password is required\" : \"Password\"}</label>\r\n <div className={classes.form__passwordInputContainer}>\r\n <input className={classes.form__passwordInput} style={{ borderColor: passwordError ? \"#D84949\" : \"#A9A9A9\" }} type={showPassword ? \"text\" : \"password\"} value={password} onChange={(event) => changePassword(event)} />\r\n <button type=\"button\" onClick={handleClickShowPassword} className={classes.form__showPasswordButton}>\r\n {showPassword ?\r\n <EyeOff size={20} strokeWidth={1.4} color=\"#0C0E29\" />\r\n :\r\n <Eye size={20} strokeWidth={1.4} color=\"#0C0E29\" />\r\n }\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <button type=\"submit\" className={classes.primaryButton}>Sign in</button>\r\n <button type=\"button\" className={classes.forgotPasswordButton} style={{ marginTop: '16px' }} onClick={() => handleAuthNavigation(authViews.FORGOTPASSWORD)}>Forgot Password?</button>\r\n <div className={classes.dividerWithText}>\r\n <div className={classes.dividerLine} />\r\n <span className={classes.dividerText}>New to Taplr?</span>\r\n <div className={classes.dividerLine} />\r\n </div>\r\n <button type=\"button\" className={classes.secondaryButton} onClick={() => handleAuthNavigation(authViews.REGISTER)}>Request an account</button>\r\n {verificationMessage ?\r\n <div>\r\n <p>A verification e-mail was sent to {email}, please verify your account before using our app.</p>\r\n <a href=\"/#\" onClick={() => handleVerificationMail()}>Resend the mail?</a>\r\n </div>\r\n\r\n : <React.Fragment></React.Fragment>\r\n }\r\n\r\n </div>\r\n </form>\r\n :\r\n currentAuthView === authViews.FORGOTPASSWORD ?\r\n <div className={classes.loginForm}>\r\n <div className={classes.logoContainer}>\r\n <img className={classes.logoContainer__logo} src={process.env.PUBLIC_URL + \"/images/Taplr.png\"} onClick={() => navigateToHomePage()} alt=\"Taplr Logo\"></img>\r\n </div>\r\n <div className={classes.login}>\r\n <h1 className={classes.actionType}>Forgot password</h1>\r\n <>\r\n {generalError !== \"\" &&\r\n <div className={classes.generalErrorContainer}>\r\n <p className={classes.generalErrorText}>{generalError}</p>\r\n </div>\r\n }\r\n </>\r\n <>\r\n {successMessage !== \"\" &&\r\n <div className={classes.successContainer}>\r\n <p className={classes.successText}>{successMessage}</p>\r\n </div>\r\n }\r\n </>\r\n <form onSubmit={sendPasswordMail}>\r\n <div className={classes.form__column}>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: emailError ? \"#D84949\" : \"#0C0E29\" }}>{emailError ? \"Email address is required\" : \"Email address\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: emailError ? \"#D84949\" : \"#A9A9A9\" }} type=\"email\" value={email} onChange={(event) => changeEmail(event)} />\r\n </div>\r\n </div>\r\n <button type=\"submit\" className={classes.primaryButton}>Send email</button>\r\n </form>\r\n <button type=\"button\" onClick={() => handleAuthNavigation(authViews.LOGIN)} className={classes.backButton}>\r\n <ArrowLeft className={classes.backButton__icon} />\r\n Back to sign in\r\n </button>\r\n </div>\r\n </div>\r\n : currentAuthView === authViews.REGISTER ?\r\n\r\n <form onSubmit={checkRegister} className={classes.loginForm}>\r\n <div className={classes.logoContainer}>\r\n <img className={classes.logoContainer__logo} src={process.env.PUBLIC_URL + \"/images/Taplr.png\"} onClick={() => navigateToHomePage()} alt=\"Taplr Logo\"></img>\r\n </div>\r\n <div className={classes.login}>\r\n <h1 className={classes.actionType}>Request an account</h1>\r\n <>\r\n {generalError !== \"\" &&\r\n <div className={classes.generalErrorContainer}>\r\n <p className={classes.generalErrorText}>{generalError}</p>\r\n </div>\r\n }\r\n </>\r\n <>\r\n {successMessage !== \"\" &&\r\n <div className={classes.successContainer}>\r\n <p className={classes.successText}>{successMessage}</p>\r\n </div>\r\n }\r\n </>\r\n <div className={classes.form__column}>\r\n <div className={classes.form__row}>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: firstNameError ? \"#D84949\" : \"#0C0E29\" }}>{firstNameError ? \"First name is required\" : \"First name\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: firstNameError ? \"#D84949\" : \"#A9A9A9\" }} type=\"text\" value={firstName} onChange={(event) => changeFirstName(event)} />\r\n </div>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: lastNameError ? \"#D84949\" : \"#0C0E29\" }}>{lastNameError ? \"Last name is required\" : \"Last name\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: lastNameError ? \"#D84949\" : \"#A9A9A9\" }} type=\"text\" value={lastName} onChange={(event) => changeLastName(event)} />\r\n </div>\r\n </div>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: companyError ? \"#D84949\" : \"#0C0E29\" }}>{companyError ? \"Company is required\" : \"Company\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: companyError ? \"#D84949\" : \"#A9A9A9\" }} type=\"text\" value={company} onChange={(event) => changeCompany(event)} />\r\n </div>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: emailError ? \"#D84949\" : \"#0C0E29\" }}>{emailError ? \"Email address is required\" : \"Email address\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: emailError ? \"#D84949\" : \"#A9A9A9\" }} type=\"email\" value={email} onChange={(event) => changeEmail(event)} />\r\n </div>\r\n </div>\r\n {emailAlreadyUsed ? <b style={{ color: 'red' }}>This email address is already in use.</b> : <React.Fragment></React.Fragment>}\r\n <div style={{ display: 'flex', justifyContent: 'center', marginBottom: '15px' }}>\r\n <ReCAPTCHA style={recaptchaRequired ? { border: 'red 1px solid' } : { border: 'none' }}\r\n ref={recaptchaRef}\r\n sitekey={recaptchaKey}\r\n onChange={(e) => handleCaptcha(e)}\r\n />\r\n </div>\r\n {recaptchaRequired ? <p style={{ color: 'red' }}>Recaptcha is required</p> : <React.Fragment></React.Fragment>}\r\n\r\n <button type=\"submit\" disabled={!captchaValue} className={`${classes.primaryButton} ${!captchaValue ? classes.disabled : ''}`} id=\"register-button\">Request an account</button>\r\n <div className={classes.dividerWithText}>\r\n <div className={classes.dividerLine} />\r\n <span className={classes.dividerText}>Already have an account?</span>\r\n <div className={classes.dividerLine} />\r\n </div>\r\n <button type=\"button\" className={classes.secondaryButton} onClick={() => handleAuthNavigation(authViews.LOGIN)}>Sign in</button>\r\n </div>\r\n </form>\r\n : currentAuthView === authViews.TWOFACTORENROLLMENT ?\r\n <div className={classes.loginForm}>\r\n <div className={classes.logoContainer}>\r\n <img className={classes.logoContainer__logo} src={process.env.PUBLIC_URL + \"/images/Taplr.png\"} onClick={() => navigateToHomePage()} alt=\"Taplr Logo\"></img>\r\n </div>\r\n <div className={classes.login}>\r\n <h1 className={classes.actionType}>Multi-factor authentication</h1>\r\n <p className={classes.subtitle}>Add an extra layer of security to protect your account from unauthorized access.</p>\r\n <>\r\n {generalError !== \"\" &&\r\n <div className={classes.generalErrorContainer}>\r\n <p className={classes.generalErrorText}>{generalError}</p>\r\n </div>\r\n }\r\n </>\r\n <>\r\n {successMessage !== \"\" &&\r\n <div className={classes.successContainer}>\r\n <p className={classes.successText}>{successMessage}</p>\r\n </div>\r\n }\r\n </>\r\n <div className={classes.qrCodeContainer}>\r\n <QRCode\r\n id=\"Qr\"\r\n value={totpQrCodeUrl}\r\n bgColor={\"#ffffff\"}\r\n renderAs={\"svg\"}\r\n size={160} />\r\n <p>{totpSecret.secretKey}</p>\r\n </div>\r\n <form onSubmit={finalizeMfaEnrollment}>\r\n <div className={classes.form__column}>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: verificationCodeError ? \"#D84949\" : \"#0C0E29\" }}>{verificationCodeError ? \"Email address is required\" : \"Verification code\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: verificationCodeError ? \"#D84949\" : \"#A9A9A9\" }} type=\"text\" value={verificationCode} onChange={(event) => changeVerificationCode(event)} />\r\n </div>\r\n </div>\r\n <button type=\"submit\" className={classes.primaryButton}>Submit</button>\r\n </form>\r\n <button type=\"button\" onClick={() => handleAuthNavigation(authViews.LOGIN)} className={classes.backButton}>\r\n <ArrowLeft className={classes.backButton__icon} />\r\n Back to sign in\r\n </button>\r\n </div>\r\n </div>\r\n : currentAuthView === authViews.TOTPSIGNIN ?\r\n <div className={classes.loginForm}>\r\n <div className={classes.logoContainer}>\r\n <img className={classes.logoContainer__logo} src={process.env.PUBLIC_URL + \"/images/Taplr.png\"} onClick={() => navigateToHomePage()} alt=\"Taplr Logo\"></img>\r\n </div>\r\n <div className={classes.login}>\r\n <h1 className={classes.actionType}>Multi-factor authentication</h1>\r\n <p className={classes.subtitle}>Check your authenticator app for a verification code.</p>\r\n <>\r\n {generalError !== \"\" &&\r\n <div className={classes.generalErrorContainer}>\r\n <p className={classes.generalErrorText}>{generalError}</p>\r\n </div>\r\n }\r\n </>\r\n <>\r\n {successMessage !== \"\" &&\r\n <div className={classes.successContainer}>\r\n <p className={classes.successText}>{successMessage}</p>\r\n </div>\r\n }\r\n </>\r\n <form onSubmit={loginWithTotp}>\r\n <div className={classes.form__column}>\r\n <div className={classes.form__inputContainer}>\r\n <label className={classes.form__label} style={{ color: verificationCodeError ? \"#D84949\" : \"#0C0E29\" }}>{verificationCodeError ? \"Verification code is required\" : \"Verification code\"}</label>\r\n <input className={classes.form__input} style={{ borderColor: verificationCodeError ? \"#D84949\" : \"#A9A9A9\" }} type=\"text\" value={verificationCode} onChange={(event) => changeVerificationCode(event)} />\r\n </div>\r\n </div>\r\n <button type=\"submit\" className={classes.primaryButton}>Sign in</button>\r\n </form>\r\n <button type=\"button\" onClick={() => handleAuthNavigation(authViews.LOGIN)} className={classes.backButton}>\r\n <ArrowLeft className={classes.backButton__icon} />\r\n Back to sign in\r\n </button>\r\n </div>\r\n </div> : <React.Fragment></React.Fragment>}\r\n\r\n <Dialog\r\n className={classes.dialog}\r\n open={open}\r\n onClose={handleClose}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n <div className={classes.dialog__head}>\r\n <DialogTitle className={classes.dialog__title} id=\"draggable-dialog-title\">\r\n Verify your email address\r\n </DialogTitle>\r\n <button onClick={() => handleClose()} className={classes.dialog__closeButton}>\r\n <X size={19} />\r\n </button>\r\n </div>\r\n <DialogContent className={classes.dialog__contentContainer}>\r\n <div className={classes.dialog__content}>\r\n <p className={classes.dialog__subtitle}>Your email address has not been verified yet. Please check your inbox.</p>\r\n </div>\r\n </DialogContent>\r\n <DialogActions sx={{ display: 'flex', flexDirection: \"column\", gap: \"8px\", justifyContent: 'space-between', paddingLeft: '16px', paddingRight: '16px', paddingBottom: \"16px\" }}>\r\n <button onClick={() => handleVerificationMail()} variant=\"contained\" className={classes.primaryButton}>\r\n Resend mail\r\n </button>\r\n </DialogActions>\r\n </Dialog>\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default LoginPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n loginForm: {\r\n backgroundColor: 'transparent',\r\n height: '100vh',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '45%',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n },\r\n display: 'flex',\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n gap: \"16px\",\r\n },\r\n\r\n loginContainer: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n },\r\n\r\n imageContainer: {\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'none',\r\n },\r\n\r\n backgroundColor: \"#e6ccb1\",\r\n width: '55%',\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n position: 'relative'\r\n },\r\n\r\n imageOverlay: {\r\n height: '100%',\r\n width: '100%',\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n backgroundColor: 'black',\r\n opacity: '0.6',\r\n },\r\n\r\n logoContainer: {\r\n width: \"70%\",\r\n maxWidth: \"480px\",\r\n margin: \"0px auto\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#C3996B\",\r\n border: \"1px solid #B68C5D\",\r\n\r\n borderRadius: \"8px\",\r\n\r\n boxShadow: \"2px 4px 12px 0px rgb(175 175 175 / 40%)\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: 'calc(100% - 32px)',\r\n margin: \"0px auto\",\r\n },\r\n },\r\n\r\n logoContainer__logo: {\r\n height: \"56px\",\r\n width: \"auto\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n login: {\r\n height: 'auto',\r\n width: '70%',\r\n maxWidth: \"480px\",\r\n\r\n position: 'relative',\r\n\r\n display: \"flex\",\r\n flexDirection: 'column',\r\n\r\n backgroundColor: \"white\",\r\n outline: \"1px solid #EDEDED\",\r\n boxShadow: '2px 4px 12px 0px rgb(175 175 175 / 40%)',\r\n\r\n borderRadius: \"8px\",\r\n\r\n color: \"#0C0E29 !important\",\r\n\r\n margin: \"0px auto\",\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: 'calc(100% - 32px)',\r\n margin: \"0px auto\",\r\n },\r\n },\r\n\r\n actionType: {\r\n marginBottom: \"16px\",\r\n },\r\n\r\n subtitle: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: \"normal\",\r\n\r\n color: \"#0C0E29\",\r\n opacity: \"0.8\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n generalErrorContainer: {\r\n width: \"100%\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n padding: \"12px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n generalErrorText: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n },\r\n\r\n successContainer: {\r\n width: \"100%\",\r\n\r\n border: \"1px solid #E2F8E0\",\r\n borderRadius: \"6px\",\r\n\r\n backgroundColor: \"#F3FBF2\",\r\n\r\n padding: \"12px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n successText: {\r\n fontSize: \"16px\",\r\n color: \"#3AB037\",\r\n },\r\n\r\n qrCodeContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n\r\n marginBottom: \"16px\",\r\n padding: \"16px\",\r\n },\r\n\r\n form__column: {\r\n width: \"100%\",\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '16px',\r\n\r\n marginBottom: \"24px\",\r\n },\r\n\r\n form__row: {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '8px',\r\n },\r\n\r\n form__inputContainer: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '4px',\r\n },\r\n\r\n form__label: {\r\n fontSize: '14px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n },\r\n\r\n form__input: {\r\n width: '100%',\r\n height: '40px',\r\n borderRadius: '3px',\r\n border: '1px solid #A9A9A9',\r\n\r\n padding: '0px 8px',\r\n paddingLeft: '8px',\r\n boxSizing: 'border-box',\r\n\r\n overflow: \"hidden\",\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif !important',\r\n fontWeight: 'regular',\r\n color: '#0C0E29',\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #4654FB\",\r\n },\r\n },\r\n\r\n form__passwordInputContainer: {\r\n position: 'relative',\r\n },\r\n\r\n form__passwordInput: {\r\n width: '100%',\r\n height: '40px',\r\n borderRadius: '3px',\r\n border: '1px solid #A9A9A9',\r\n\r\n padding: '0px 8px',\r\n paddingLeft: '8px',\r\n boxSizing: 'border-box',\r\n\r\n overflow: \"hidden\",\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif !important',\r\n fontWeight: 'regular',\r\n color: '#0C0E29',\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #4654FB\",\r\n },\r\n },\r\n\r\n form__showPasswordButton: {\r\n height: \"32px\",\r\n width: \"32px\",\r\n borderRadius: \"4px\",\r\n\r\n backgroundColor: \"transparent\",\r\n\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '4px',\r\n\r\n cursor: 'pointer',\r\n border: 'none',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#EDEDED',\r\n },\r\n },\r\n\r\n dividerWithText: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n margin: \"16px 0\",\r\n },\r\n\r\n dividerLine: {\r\n width: \"100%\",\r\n height: \"1px\",\r\n backgroundColor: \"#989898\",\r\n },\r\n\r\n dividerText: {\r\n whiteSpace: \"nowrap\",\r\n fontSize: \"14px\",\r\n color: \"#989898\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n width: \"100%\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n disabled: {\r\n backgroundColor: \"#DCDCDC\",\r\n color: \"#989898\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#DCDCDC\",\r\n color: \"#989898\",\r\n cursor: \"default\",\r\n },\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n forgotPasswordButton: {\r\n fontSize: '14px',\r\n cursor: 'pointer',\r\n color: \"#0C0E29\",\r\n opacity: \"0.8\",\r\n\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n outline: \"none\",\r\n padding: \"0px\",\r\n margin: \"0 auto\",\r\n\r\n transition: \"opacity 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n },\r\n },\r\n\r\n backButton: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontSize: '14px',\r\n cursor: 'pointer',\r\n color: \"#0C0E29\",\r\n opacity: \"0.8\",\r\n\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n outline: \"none\",\r\n padding: \"0px\",\r\n margin: \"16px auto 8px auto\",\r\n\r\n transition: \"opacity 0.1s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n },\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n transition: \"all 0.1s ease-in-out\",\r\n\r\n color: \"inherit\",\r\n opacity: \"inherit\",\r\n },\r\n\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '480px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n}));","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React from 'react';\n\n// Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\nvar classNameCombinations = {};\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n return classNameCombinations[key];\n}\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []);\n\n // For compatibility with older versions of react-syntax-highlighter\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n };\n // prep custom styling\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle;\n // combine\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n return assembledStyle;\n}\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines,\n _ref3$wrapLines = _ref3.wrapLines,\n wrapLines = _ref3$wrapLines === void 0 ? false : _ref3$wrapLines;\n var properties = wrapLines ? _objectSpread({}, typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps) : {};\n properties['className'] = properties['className'] ? [].concat(_toConsumableArray(properties['className'].trim().split(/\\s+/)), _toConsumableArray(className)) : className;\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread({\n display: 'flex'\n }, properties.style);\n }\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n return newTree;\n}\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines,\n wrapLines: wrapLines\n });\n }\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n return children;\n }\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n };\n\n // if it's the first line\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n var _line = createLine(_children, lineNumber);\n newTree.push(_line);\n\n // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n newTree.push(_line2);\n }\n\n // if it's neither the first nor the last line\n } else {\n var _children3 = [newChild];\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n index++;\n };\n while (index < tree.length) {\n _loop();\n }\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n}\n\n// only highlight.js has the highlightAuto method\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n }\n\n // must be refractor/prism, then\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread({\n whiteSpace: 'pre-wrap'\n }, codeTagProps.style);\n } else {\n codeTagProps.style = _objectSpread({\n whiteSpace: 'pre'\n }, codeTagProps.style);\n }\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n }\n\n // determine largest line number so that we can force minWidth on all linenumber elements\n var lineCount = codeTree.value.length;\n if (lineCount === 1 && codeTree.value[0].type === 'text') {\n // Since codeTree for an unparsable text (e.g. 'a\\na\\na') is [{ type: 'text', value: 'a\\na\\na' }]\n lineCount = codeTree.value[0].value.split('\\n').length;\n }\n var largestLineNumber = lineCount + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","import highlight from './highlight';\nimport defaultStyle from './styles/hljs/default-style';\nimport lowlight from 'lowlight';\nimport supportedLanguages from './languages/hljs/supported-languages';\nvar highlighter = highlight(lowlight, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#F0F0F0\",\n \"color\": \"#444\"\n },\n \"hljs-subst\": {\n \"color\": \"#444\"\n },\n \"hljs-comment\": {\n \"color\": \"#888888\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#880000\"\n },\n \"hljs-string\": {\n \"color\": \"#880000\"\n },\n \"hljs-number\": {\n \"color\": \"#880000\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#880000\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#880000\"\n },\n \"hljs-quote\": {\n \"color\": \"#880000\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#880000\"\n },\n \"hljs-deletion\": {\n \"color\": \"#880000\"\n },\n \"hljs-title\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-symbol\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-link\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-literal\": {\n \"color\": \"#78A960\"\n },\n \"hljs-built_in\": {\n \"color\": \"#397300\"\n },\n \"hljs-bullet\": {\n \"color\": \"#397300\"\n },\n \"hljs-code\": {\n \"color\": \"#397300\"\n },\n \"hljs-addition\": {\n \"color\": \"#397300\"\n },\n \"hljs-meta\": {\n \"color\": \"#1f7199\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#4d99bf\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","//\n// This file has been auto-generated by the `npm run build-languages-hljs` task\n//\n\nexport default ['1c', 'abnf', 'accesslog', 'actionscript', 'ada', 'angelscript', 'apache', 'applescript', 'arcade', 'arduino', 'armasm', 'asciidoc', 'aspectj', 'autohotkey', 'autoit', 'avrasm', 'awk', 'axapta', 'bash', 'basic', 'bnf', 'brainfuck', 'c-like', 'c', 'cal', 'capnproto', 'ceylon', 'clean', 'clojure-repl', 'clojure', 'cmake', 'coffeescript', 'coq', 'cos', 'cpp', 'crmsh', 'crystal', 'csharp', 'csp', 'css', 'd', 'dart', 'delphi', 'diff', 'django', 'dns', 'dockerfile', 'dos', 'dsconfig', 'dts', 'dust', 'ebnf', 'elixir', 'elm', 'erb', 'erlang-repl', 'erlang', 'excel', 'fix', 'flix', 'fortran', 'fsharp', 'gams', 'gauss', 'gcode', 'gherkin', 'glsl', 'gml', 'go', 'golo', 'gradle', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hsp', 'htmlbars', 'http', 'hy', 'inform7', 'ini', 'irpf90', 'isbl', 'java', 'javascript', 'jboss-cli', 'json', 'julia-repl', 'julia', 'kotlin', 'lasso', 'latex', 'ldif', 'leaf', 'less', 'lisp', 'livecodeserver', 'livescript', 'llvm', 'lsl', 'lua', 'makefile', 'markdown', 'mathematica', 'matlab', 'maxima', 'mel', 'mercury', 'mipsasm', 'mizar', 'mojolicious', 'monkey', 'moonscript', 'n1ql', 'nginx', 'nim', 'nix', 'node-repl', 'nsis', 'objectivec', 'ocaml', 'openscad', 'oxygene', 'parser3', 'perl', 'pf', 'pgsql', 'php-template', 'php', 'plaintext', 'pony', 'powershell', 'processing', 'profile', 'prolog', 'properties', 'protobuf', 'puppet', 'purebasic', 'python-repl', 'python', 'q', 'qml', 'r', 'reasonml', 'rib', 'roboconf', 'routeros', 'rsl', 'ruby', 'ruleslanguage', 'rust', 'sas', 'scala', 'scheme', 'scilab', 'scss', 'shell', 'smali', 'smalltalk', 'sml', 'sqf', 'sql', 'sql_more', 'stan', 'stata', 'step21', 'stylus', 'subunit', 'swift', 'taggerscript', 'tap', 'tcl', 'thrift', 'tp', 'twig', 'typescript', 'vala', 'vbnet', 'vbscript-html', 'vbscript', 'verilog', 'vhdl', 'vim', 'x86asm', 'xl', 'xml', 'xquery', 'yaml', 'zephir'];","import React, { useState, useEffect } from 'react';\r\nimport SyntaxHighlighter from 'react-syntax-highlighter';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Dialog, DialogTitle, DialogContent } from '@mui/material';\r\nimport { X } from 'lucide-react';\r\nimport { externalApiTypes } from '../../../../Config/constants';\r\n\r\nexport default function HowToUseAPIDialog({ dialogOpen, closeDialog, apiTypeId, apiUrl, apiBodyItems, ...props }) {\r\n const classes = useStyles();\r\n const excludeStopwatchKeys = [\"stopwatchReference\", \"startTime\", \"stopTime\"];\r\n\r\n const [copiedToClipboard, setCopiedToClipboard] = useState(false); // Confirmation that link is succesfully copied to clipboard\r\n\r\n\r\n // Format bodyItems\r\n const bodyItems = apiBodyItems.reduce((acc, item, index) => {\r\n acc[item.itemName] = `value ${index + 1}`;\r\n return acc;\r\n }, {});\r\n\r\n // Example code\r\n const jsCodeDataAPI = `fetch('${apiUrl}', {\r\nmethod: 'POST',\r\nheaders: {\r\n 'Content-Type': 'application/json',\r\n},\r\nbody: JSON.stringify(\r\n {\r\n \"keyValue\": \"123ABC\", // optional key value (can be used to link to an order number) ${Object.entries(bodyItems).map(([key, value]) => ` \"${key}\": \"${value}\"`).join(',\\n')}\r\n }\r\n)\r\n})\r\n.then(response => response.json())\r\n.then(data => {\r\n console.log('Server response:', data);\r\n})\r\n.catch(error => {\r\n console.error('An error has occured:', error);\r\n});`;\r\n\r\n const jsCodeStopwatchAPI = `fetch('${apiUrl}', {\r\nmethod: 'POST',\r\nheaders: {\r\n 'Content-Type': 'application/json',\r\n},\r\nbody: JSON.stringify(\r\n {\r\n \"stopwatchReference\": \"00000000-0000-0000-0000-000000000000\", // if you are starting a new stopwatch, this should be left empty\r\n \"startTime\": \"14/01/2025 13:30:12\", // the time you want to start the stopwatch\r\n \"stopTime\": \"14/01/2025 13:42:41\", // the time you want to stop the stopwatch (should always be later then startTime)\r\n \"keyValue\": \"123ABC\", // optional key value (can be used to link to an order number) ${Object.entries(bodyItems).filter(([key]) => !excludeStopwatchKeys.includes(key)).map(([key, value]) => ` \"${key}\": \"${value}\"`).join(',\\n')}\r\n }\r\n)\r\n})\r\n.then(response => response.json())\r\n.then(data => {\r\n console.log('Server response:', data);\r\n})\r\n.catch(error => {\r\n console.error('An error has occured:', error);\r\n});`;\r\n\r\n const copyCodeToClipboard = () => {\r\n // Copy code to clipboard\r\n navigator.clipboard.writeText(apiTypeId === externalApiTypes.DATA ? jsCodeDataAPI : jsCodeStopwatchAPI)\r\n .then(() => {\r\n setCopiedToClipboard(true);\r\n\r\n // Set copiedToClipboard back to false after 2 seconds\r\n setTimeout(() => {\r\n setCopiedToClipboard(false);\r\n }, 2000);\r\n })\r\n .catch((err) => {\r\n console.error('Failed to copy link: ', err);\r\n });\r\n }\r\n\r\n return (\r\n <Dialog className={classes.dialog}\r\n open={dialogOpen}\r\n aria-labelledby=\"draggable-dialog-title\"\r\n onClose={closeDialog}\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n <div className={classes.dialog__head}>\r\n <DialogTitle className={classes.dialog__title} id=\"draggable-dialog-title\">\r\n How to use the API?\r\n </DialogTitle>\r\n <button onClick={() => closeDialog()} className={classes.dialog__closeButton}>\r\n <X size={19} />\r\n </button>\r\n </div>\r\n <DialogContent className={classes.dialog__contentContainer}>\r\n <div className={classes.dialog__content}>\r\n {apiTypeId === externalApiTypes.DATA ?\r\n <div className={classes.dialog__textContainer}>\r\n <p className={classes.textContainer__paragraph}>Below you can see an example of an API call in JavaScript specifically for this API you created.</p>\r\n <p className={classes.textContainer__paragraph}>Make sure to change the values you pass with your own values.</p>\r\n </div>\r\n :\r\n <div className={classes.dialog__textContainer}>\r\n <p className={classes.textContainer__paragraph}>This is an API of the type “Stopwatch”. This means that you can start and stop your stopwatch. The way you use this type of API is a little bit different from a “Data” API, but if you read through the explanation, this should't be a problem.</p>\r\n <h3 className={classes.textContainer__subtitle}>stopwatchReference</h3>\r\n <p className={classes.textContainer__paragraph}>The stopwatchReference should be left empty when starting a new stopwatch. After you started the stopwatch you will get a stopwatchReference in the API-response. This reference will be used to stop or update the stopwatch.</p>\r\n <h3 className={classes.textContainer__subtitle}>startTime</h3>\r\n <p className={classes.textContainer__paragraph}>This is obviously the time your stopwatch starts. pass it in the following format: “dd:mm:yyyy hh:mm:ss”. When you want to stop the stopwatch, you can leave the startTime empty. If you pass a startTime along with a stopwatchReference, the startTime will be overwritten.</p>\r\n <h3 className={classes.textContainer__subtitle}>stopTime</h3>\r\n <p className={classes.textContainer__paragraph}>This is the time your stopwatch stops. You can leave this empty when starting a new stopwatch. If you do pass a stopTime when starting a stopwatch, the stopwatch will be finished.</p>\r\n </div>\r\n }\r\n <div className={classes.functionExampleContainer}>\r\n <button className={classes.copyButton} onClick={() => copyCodeToClipboard()}>\r\n {copiedToClipboard ? <p className={classes.copiedText}>Copied!</p> : ''}\r\n <p className={`${copiedToClipboard ? classes.copied : ''}`}> Copy code</p>\r\n </button>\r\n <SyntaxHighlighter\r\n language=\"javascript\"\r\n customStyle={{\r\n background: 'transparent', // Makes the background transparent\r\n padding: '16px', // Removes padding\r\n margin: '0', // Removes margin\r\n paddingBottom: '8px',\r\n paddingTop: \"24px\",\r\n }}\r\n >\r\n {apiTypeId === externalApiTypes.DATA ? jsCodeDataAPI : jsCodeStopwatchAPI}\r\n </SyntaxHighlighter>\r\n </div>\r\n </div>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '740px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n textContainer__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'bold',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 4px 0px',\r\n },\r\n\r\n textContainer__paragraph: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n functionExampleContainer: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n backgroundColor: \"#F8F8F8\",\r\n\r\n borderRadius: \"8px\",\r\n padding: \"8px\",\r\n\r\n overflow: \"hidden\",\r\n position: \"relative\",\r\n\r\n \"& > pre\": {\r\n \"&::-webkit-scrollbar\": {\r\n width: \"8px\", /* Adjust width for vertical scroll */\r\n height: \"8px\", /* Adjust height for horizontal scroll */\r\n },\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.5)\", /* A semi-transparent thumb */\r\n borderRadius: \"4px\", /* Rounded corners */\r\n },\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.7)\", /* Darker thumb on hover */\r\n },\r\n \"&::-webkit-scrollbar-track\": {\r\n background: \"transparent\", /* Make the track transparent */\r\n },\r\n },\r\n },\r\n\r\n copyButton: {\r\n position: \"absolute\",\r\n top: \"8px\",\r\n right: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"#EDEDED\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n padding: \"4px 8px\",\r\n\r\n transition: \"background-color ease-in-out 0.2s\",\r\n\r\n '&:hover': {\r\n cursor: \"pointer\",\r\n backgroundColor: '#DCDCDC',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n\r\n '& p': {\r\n margin: 0,\r\n },\r\n },\r\n\r\n copied: {\r\n opacity: 0,\r\n },\r\n\r\n copiedText: {\r\n opacity: 1,\r\n color: \"#0C0E29\",\r\n position: \"absolute\",\r\n },\r\n}));\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { Plus, Trash2, Pencil, Save, GripVertical } from 'lucide-react';\r\n\r\nimport { TableContainer, TableRow, IconButton, TextField, Table, Fab, Select, InputLabel, FormControl, Paper } from '@mui/material';\r\nimport './TableStyle.css';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport { externalApiTypes } from \"../../../../Config/constants\";\r\n\r\nfunction TableList(props) {\r\n const classes = useStyles();\r\n var today = new Date();\r\n const [saveHelper, setSaveHelper] = useState(false);\r\n\r\n useEffect(() => {\r\n // eslint-disable-next-line\r\n }, [props.Login.userid]);\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) return;\r\n\r\n const reorderedRows = Array.from(props.rows);\r\n\r\n // Remove the dragged item from its original position\r\n const [movedRow] = reorderedRows.splice(result.source.index, 1);\r\n\r\n // Insert the dragged item into its new position\r\n reorderedRows.splice(result.destination.index, 0, movedRow);\r\n\r\n // Update the Ids to match the new positions\r\n const updatedRows = reorderedRows.map((row, index) => ({\r\n ...row,\r\n Id: index + 1, // Set Id to match the 1-based index\r\n }));\r\n\r\n props.setRows(updatedRows);\r\n };\r\n\r\n\r\n const GenerateId = () => {\r\n let tempArray = [...props.rows];\r\n const ids = tempArray.map((object) => object.Id);\r\n const max = Math.max(...ids);\r\n\r\n return tempArray.length === 0 ? 1 : max + 1;\r\n };\r\n\r\n const addRow = () => {\r\n const newRow = {\r\n Id: GenerateId(),\r\n itemDescription: '',\r\n edit: true,\r\n itemName: '',\r\n UserId: props.Login.userid,\r\n InsertedOn: today,\r\n };\r\n const tempArray = [...props.rows];\r\n tempArray.push(newRow);\r\n props.setRows(tempArray);\r\n };\r\n\r\n const setItemName = (event, id) => {\r\n let tempArray = [...props.rows];\r\n const targetRow = tempArray.find((x) => x.Id === id);\r\n if (targetRow) targetRow.itemName = event.target.value;\r\n props.setRows(tempArray);\r\n };\r\n\r\n const setItemDescription = (event, id) => {\r\n let tempArray = [...props.rows];\r\n const targetRow = tempArray.find((x) => x.Id === id);\r\n if (targetRow) targetRow.itemDescription = event.target.value;\r\n props.setRows(tempArray);\r\n };\r\n\r\n const editListItem = (id) => {\r\n let tempArray = [...props.rows];\r\n const targetRow = tempArray.find((x) => x.Id === id);\r\n if (targetRow) targetRow.edit = true;\r\n props.setRows(tempArray);\r\n };\r\n\r\n const saveListItem = (id) => {\r\n let tempArray = [...props.rows];\r\n const targetRow = tempArray.find((x) => x.Id === id);\r\n if (targetRow && targetRow.itemName) {\r\n targetRow.edit = false;\r\n props.setRows(tempArray);\r\n setSaveHelper(false);\r\n } else {\r\n setSaveHelper(true);\r\n }\r\n };\r\n\r\n const deleteListItem = (id) => {\r\n let tempArray = [...props.rows];\r\n const index = tempArray.findIndex((x) => x.Id === id);\r\n if (index > -1) tempArray.splice(index, 1);\r\n props.setRows(tempArray);\r\n };\r\n\r\n const isDefaultStopwatchKey = (itemName) => {\r\n return itemName === 'stopwatchReference' || itemName === 'startTime' || itemName === 'stopTime' || itemName === 'keyValue';\r\n };\r\n\r\n const isDefaultDataKey = (itemName) => {\r\n return itemName === 'keyValue';\r\n };\r\n\r\n return (\r\n <DragDropContext onDragEnd={onDragEnd}>\r\n <Droppable droppableId=\"tableRows\">\r\n {(provided) => (\r\n <TableContainer\r\n {...provided.droppableProps}\r\n ref={provided.innerRef}\r\n style={{ borderTopRightRadius: '8px', borderTopLeftRadius: '8px' }}\r\n component={Paper}\r\n >\r\n <Table>\r\n <thead className={classes.tableHead}>\r\n <tr>\r\n <th align=\"center\">#</th>\r\n <th></th>\r\n <th width=\"30%\">Name</th>\r\n <th width=\"60%\">Description</th>\r\n <th width=\"10%\" colSpan={2} align=\"center\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody align=\"center\" className={classes.tableContent}>\r\n {props.rows.map((x, index) => (\r\n <Draggable key={x.Id} draggableId={x.Id.toString()} index={index}>\r\n {(provided) => (\r\n <TableRow\r\n ref={provided.innerRef}\r\n {...provided.draggableProps}\r\n className={classes.tableRow}\r\n >\r\n <td className={classes.indexTd}>\r\n <div className={classes.listOrder}>{x.Id}</div>\r\n </td>\r\n <td className={classes.dragTd} {...provided.dragHandleProps}>\r\n <GripVertical />\r\n </td>\r\n <td className={classes.tableTd}>\r\n {x.edit ? (\r\n <TextField\r\n label={x.itemName ? ' ' : 'Name'}\r\n InputLabelProps={{ shrink: false }}\r\n style={saveHelper ? { border: 'solid 2px', borderColor: '#d32f2f', borderRadius: '7px', width: '100%', minWidth: '100px' } : { width: '100%', minWidth: '100px' }}\r\n type=\"search\"\r\n variant=\"outlined\"\r\n value={x.itemName.length > 0 ? x.itemName : ''}\r\n onChange={(event) => setItemName(event, x.Id)}\r\n />\r\n ) : (\r\n <TextField style={{ width: '100%', minWidth: '100px' }} disabled value={x.itemName} />\r\n )}\r\n </td>\r\n <td className={classes.tableTd}>\r\n {x.edit ? (\r\n <TextField\r\n label={x.itemDescription ? ' ' : 'Description'}\r\n InputLabelProps={{ shrink: false }}\r\n style={{ width: '100%', minWidth: '140px' }}\r\n className={classes.descriptionField}\r\n id=\"outlined-basic\"\r\n type=\"search\"\r\n variant=\"outlined\"\r\n value={x.itemDescription.length > 0 ? x.itemDescription : ''}\r\n onChange={(event) => setItemDescription(event, x.Id)}\r\n />\r\n ) : (\r\n <TextField style={{ width: '100%', minWidth: '140px' }} disabled value={x.itemDescription !== '' ? x.itemDescription : x.description} />\r\n )}\r\n </td>\r\n <td className={classes.tableTd} align=\"center\">\r\n {x.edit ? (\r\n <IconButton aria-label=\"save\" disabled={(props.apiTypeId === externalApiTypes.STOPWATCH && isDefaultStopwatchKey(x.itemName)) || props.apiTypeId === externalApiTypes.DATA && isDefaultDataKey(x.itemName)} onClick={() => saveListItem(x.Id)} className={classes.editButton} size=\"large\">\r\n {/* disabled class if nescessary */}\r\n <Save\r\n className={`${(props.apiTypeId === externalApiTypes.STOPWATCH && isDefaultStopwatchKey(x.itemName)) || props.apiTypeId === externalApiTypes.DATA && isDefaultDataKey(x.itemName) ? classes.disabledIcon : ''}`}\r\n fontSize=\"inherit\"\r\n />\r\n </IconButton>\r\n ) : (\r\n <IconButton aria-label=\"edit\" disabled={(props.apiTypeId === externalApiTypes.STOPWATCH && isDefaultStopwatchKey(x.itemName)) || props.apiTypeId === externalApiTypes.DATA && isDefaultDataKey(x.itemName)} onClick={() => editListItem(x.Id)} className={classes.editButton} size=\"large\">\r\n <Pencil\r\n className={`${(props.apiTypeId === externalApiTypes.STOPWATCH && isDefaultStopwatchKey(x.itemName)) || props.apiTypeId === externalApiTypes.DATA && isDefaultDataKey(x.itemName) ? classes.disabledIcon : ''}`}\r\n fontSize=\"inherit\"\r\n />\r\n </IconButton>\r\n )}\r\n </td>\r\n <td className={classes.tableTd}>\r\n <IconButton aria-label=\"delete\" disabled={(props.apiTypeId === externalApiTypes.STOPWATCH && isDefaultStopwatchKey(x.itemName)) || props.apiTypeId === externalApiTypes.DATA && isDefaultDataKey(x.itemName)} onClick={() => deleteListItem(x.Id)} className={classes.functionButton} color=\"error\" size=\"large\">\r\n <Trash2\r\n className={`${(props.apiTypeId === externalApiTypes.STOPWATCH && isDefaultStopwatchKey(x.itemName)) || props.apiTypeId === externalApiTypes.DATA && isDefaultDataKey(x.itemName) ? classes.disabledIcon : ''}`}\r\n fontSize=\"inherit\"\r\n />\r\n </IconButton>\r\n </td>\r\n </TableRow>\r\n )}\r\n </Draggable>\r\n ))}\r\n {provided.placeholder}\r\n <TableRow className={classes.addRow} onClick={addRow}>\r\n <td className={classes.indexTd}>-</td>\r\n <td className={classes.dragTd}></td>\r\n <td className={classes.tableTd} style={{ minWidth: '100px' }}>\r\n <FormControl fullWidth>\r\n <InputLabel>Name</InputLabel>\r\n <Select IconComponent={() => null} disabled />\r\n </FormControl>\r\n </td>\r\n <td className={classes.tableTd} style={{ minWidth: '140px' }}>\r\n <FormControl fullWidth>\r\n <InputLabel>Description</InputLabel>\r\n <Select IconComponent={() => null} disabled />\r\n </FormControl>\r\n </td>\r\n <td className={classes.tableTd} colSpan=\"2\" align=\"center\">\r\n <Fab size=\"medium\">\r\n <Plus />\r\n </Fab>\r\n </td>\r\n </TableRow>\r\n </tbody>\r\n </Table>\r\n </TableContainer>\r\n )}\r\n </Droppable>\r\n </DragDropContext>\r\n );\r\n}\r\n\r\nexport default TableList;\r\n\r\nconst useStyles = makeStyles({\r\n tableContent: {\r\n paddingTop: \"15px\",\r\n },\r\n tableRow: {\r\n height: '60px',\r\n },\r\n tableHead: {\r\n backgroundColor: \"#e0dce4\",\r\n marginBottom: \"15px\",\r\n },\r\n addRow: {\r\n opacity: \"0.3\"\r\n },\r\n tableTd: {\r\n padding: \"5px\",\r\n },\r\n descriptionField: {\r\n width: \"100%\",\r\n },\r\n editButton: {\r\n fontSize: '2rem !important',\r\n color: '#0B4097 !important',\r\n },\r\n functionButton: {\r\n fontSize: '2rem !important',\r\n },\r\n disabledIcon: {\r\n color: '#DCDCDC !important',\r\n },\r\n indexTd: {\r\n borderRight: '2px solid rgb(224, 224, 224)',\r\n width: '25px',\r\n background: 'rgba(0, 0, 0, 0.54)',\r\n color: 'white',\r\n zIndex: '2',\r\n },\r\n emptydrag: {\r\n padding: '17px !important',\r\n border: '0'\r\n },\r\n listOrder: {\r\n paddingLeft: '5px',\r\n paddingRight: '5px',\r\n },\r\n dragTd: {\r\n border: '0',\r\n width: '24px',\r\n },\r\n dragIcon: {\r\n float: 'left',\r\n },\r\n});","import React, { useEffect, useState } from 'react';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport { TextField, MenuItem, Select, Grid2, Snackbar, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Box } from '@mui/material';\r\n\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport ButtonNormalText from '../../Shared/Buttons/ButtonNormalText';\r\nimport ButtonNormalDelete from '../../Shared/Buttons/ButtonNormalDelete';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport TableList from './Components/ModifyExternalApiList';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport * as apiHelper from '../../../Utils/API/apiHelper';\r\n\r\nimport HowToUseAPIDialog from './Components/HowToUseAPIDialog';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Save, ClipboardCopy, Trash2, ChevronLeft } from 'lucide-react';\r\n\r\n\r\nfunction ModifyExternalApiPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const apiUniqueId = useParams().apiUniqueId;\r\n var today = new Date();\r\n\r\n const [allExternalApiTypes, setAllExternalApiTypes] = useState([]);\r\n const [allUserCompanies, setAllUserCompanies] = useState([]);\r\n\r\n const [connectionName, setConnectionName] = useState(\"\");\r\n const [connectionDesc, setConnectionDesc] = useState(\"\");\r\n const [companyId, setCompanyId] = useState(null);\r\n const [company, setCompany] = useState(null);\r\n const [apiKey, setApiKey] = useState(\"\");\r\n const [errorConnectionName, setErrorConnectionName] = useState(false);\r\n const [errorApiKey, setErrorApiKey] = useState(false);\r\n const [errorCompany, setErrorCompany] = useState(\"\");\r\n const [helperTextCompany, setHelperTextCompany] = useState(\"\");\r\n\r\n const [htConnectionName, setHtConnectionName] = useState(\"\");\r\n const [htApiKey, setHtApiKey] = useState(\"\");\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n const [apiBodyItems, setApiBodyItems] = useState([]);\r\n const [apiExampleLink, setApiExampleLink] = useState(\"\");\r\n const [apiExamplePoints, setApiExamplePoints] = useState(\"\");\r\n const [ApiId, setApiId] = useState(\"\");\r\n const [openToast, setOpenToast] = useState(false);\r\n const [delopen, setDelOpen] = useState(false);\r\n\r\n const [apiTypeId, setApiTypeId] = useState(null);\r\n const [externalApiType, setExternalApiType] = useState(null);\r\n const [helperTextExternalApiType, setHelperTextExternalApiType] = useState(\"\");\r\n const [errorExternalApiType, setErrorExternalApiType] = useState(\"\");\r\n\r\n const [howToOpen, setHowToOpen] = useState(false); // Open How to use API dialog\r\n\r\n useEffect(() => {\r\n dataService.getExternalApiByUniqueId(apiUniqueId).then(results => {\r\n setConnectionName(results.name);\r\n setConnectionDesc(results.description);\r\n setApiKey(results.apiKey);\r\n setApiId(results.id);\r\n setApiTypeId(results.externalApiTypeId);\r\n setApiExampleLink(apiHelper.ComposeUri(apiHelper.EXTERNALAPI) + results.apiKey)\r\n\r\n var apiFormatParsed = JSON.parse(results.apiFormat)\r\n var apiFormat = apiFormatParsed.map((item, index) => ({ Id: index + 1, itemDescription: item.Description, edit: false, itemName: item.Name, UserId: props.Login.userid, InsertedOn: today }))\r\n setApiBodyItems(apiFormat);\r\n\r\n var ExampleApiValuesMapped = apiFormat.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n\r\n setCompanyId(results.companyId);\r\n })\r\n }, [props.Login.userid]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (companyId) {\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then(results => {\r\n setCompany(results.find(x => x.id === companyId))\r\n setAllUserCompanies(results);\r\n })\r\n }\r\n\r\n }, [companyId]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (apiTypeId) {\r\n dataService.getAllExternalApiTypes().then(results => {\r\n setAllExternalApiTypes(results);\r\n setExternalApiType(results.find(x => x.id === apiTypeId));\r\n });\r\n }\r\n }, [apiTypeId]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const handleDialogOpenDel = () => {\r\n setDelOpen(true);\r\n }\r\n const handleDialogCloseDel = () => {\r\n setDelOpen(false);\r\n }\r\n\r\n const setConnectionNameState = (event) => {\r\n setConnectionName(event.target.value);\r\n }\r\n\r\n const setConnectionDescState = (event) => {\r\n setConnectionDesc(event.target.value);\r\n }\r\n\r\n const setApiKeyState = (event) => {\r\n setApiKey(event.target.value);\r\n }\r\n\r\n const setRows = (event) => {\r\n setApiBodyItems(event);\r\n var ExampleApiValuesMapped = event.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n setApiExamplePoints(NewExampleApiValues)\r\n }\r\n\r\n const validate = () => {\r\n var validationOK = true\r\n if (connectionName === \"\") {\r\n validationOK = false\r\n setHtConnectionName(\"Please enter a connection name\")\r\n setErrorConnectionName(true)\r\n } else {\r\n setHtConnectionName(\"\")\r\n setErrorConnectionName(false)\r\n }\r\n\r\n if (!company) {\r\n validationOK = false\r\n setHelperTextCompany(\"Please select a company\");\r\n setErrorCompany(true);\r\n } else {\r\n setHelperTextCompany(\"\");\r\n setErrorCompany(false);\r\n }\r\n\r\n if (apiKey === \"\") {\r\n validationOK = false\r\n setHtApiKey(\"Please generate an API key\")\r\n setErrorApiKey(true)\r\n } else {\r\n setErrorApiKey(false)\r\n setHtApiKey(\"\")\r\n }\r\n\r\n if (apiBodyItems.length === 0 || apiBodyItems[0].itemName === \"\") {\r\n validationOK = false\r\n setEmptyDetails(true)\r\n }\r\n else {\r\n setEmptyDetails(false)\r\n }\r\n\r\n return validationOK\r\n }\r\n\r\n const sendToApi = () => {\r\n setApiBodyItems(apiBodyItems.map(x => ({\r\n ...x,\r\n edit: false\r\n })));\r\n setApiExampleLink(apiHelper.ComposeUri(apiHelper.EXTERNALAPI) + apiKey)\r\n var ExampleApiValuesMapped = apiBodyItems.map(item => ({ [item.itemName]: \"Your data here\" }))\r\n var NewExampleApiValues = JSON.stringify(Object.assign({}, ...ExampleApiValuesMapped), null, 2);\r\n let userid = props.Login.userid\r\n setApiExamplePoints(NewExampleApiValues)\r\n if (validate()) {\r\n var items = JSON.stringify(apiBodyItems.map(item => ({ Name: item.itemName, Description: item.itemDescription })))\r\n dataService.modifyApi(ApiId, connectionName, connectionDesc, company.id, apiKey, items, userid).then((response) => {\r\n if (response.success === true) {\r\n toast.success('External Api was saved successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n }\r\n\r\n const generateApiKey = () => {\r\n let key = uuidv4()\r\n setApiKey(key)\r\n setApiExampleLink(apiHelper.ComposeUri(apiHelper.EXTERNALAPI) + key)\r\n }\r\n\r\n const handleOpenToast = () => {\r\n setOpenToast(true);\r\n };\r\n\r\n const handleCloseToast = (reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenToast(false);\r\n };\r\n\r\n const handleCopyLink = () => {\r\n handleOpenToast();\r\n navigator.clipboard.writeText(apiExampleLink);\r\n };\r\n\r\n const handleCopyFormat = () => {\r\n handleOpenToast();\r\n navigator.clipboard.writeText(apiExamplePoints);\r\n };\r\n\r\n const handleDeleteExternalApi = () => {\r\n let userid = props.Login.userid\r\n var items = JSON.stringify(apiBodyItems.map(item => ({ Name: item.itemName, Description: item.itemDescription })))\r\n dataService.deleteApi(ApiId, connectionName, connectionDesc, apiKey, items, userid).then(response => {\r\n if (response.success === true) {\r\n toast.success('External Api was deleted successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n navigate(\"/externalapioverview\");\r\n });\r\n }\r\n\r\n const handleTutorialDialog = () => {\r\n setHowToOpen(true);\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Modify a data connection\" backbutton={true} {...props} />\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n\r\n }} >\r\n <div className={classes.header}>\r\n <button className={classes.backButton} onClick={() => navigate('/externalapioverview')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to API overview\r\n </button>\r\n <h1>Modify your API</h1>\r\n </div>\r\n\r\n <div className={classes.container}>\r\n <div className={classes.formContainer}>\r\n <div className={classes.formColumn}>\r\n <div className={classes.projectOption}>\r\n {/* <DescriptionItem Text=\"Name of your connection\" /> */}\r\n <div className={classes.projectOption__labelContainer}>\r\n {htConnectionName === \"\" ?\r\n <label className={classes.labelContainer__label}>API name</label>\r\n :\r\n <label className={classes.labelContainer__helperText}>{htConnectionName}</label>\r\n }\r\n </div>\r\n <TextfieldInput label={connectionName ? \" \" : \"Connection\"} InputLabelProps={{ shrink: false }} value={connectionName} action={setConnectionNameState} error={errorConnectionName} />\r\n </div>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n <p className={classes.labelContainer__label}>Select a company</p>\r\n <p className={classes.labelContainer__helperText}>{helperTextCompany}</p>\r\n </div>\r\n <Select\r\n value={company}\r\n onChange={(e) => setCompany(e.target.value)}\r\n displayEmpty\r\n error={errorCompany}\r\n helperText={helperTextCompany}\r\n style={{ width: \"100%\" }}\r\n renderValue={company !== \"\" ? undefined : () => \"Company\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allUserCompanies.length < 1 &&\r\n <MenuItem value=\"\">\r\n <em>You are not part of a company</em>\r\n </MenuItem>\r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allUserCompanies.map((company, index) => (\r\n <MenuItem key={index} value={company}>\r\n {company.name}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </div>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n {helperTextExternalApiType === \"\" ?\r\n <label className={classes.labelContainer__label}>Select an API-type</label>\r\n :\r\n <label className={classes.labelContainer__helperText}>{helperTextExternalApiType}</label>\r\n }\r\n </div>\r\n <Select\r\n value={externalApiType}\r\n disabled\r\n onChange={(e) => setExternalApiType(e.target.value)}\r\n displayEmpty\r\n error={errorExternalApiType}\r\n helperText={helperTextExternalApiType}\r\n style={{ width: \"100%\" }}\r\n renderValue={externalApiType !== \"\" ? undefined : () => \"API-type\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allExternalApiTypes.length < 1 &&\r\n <MenuItem value=\"\">\r\n <em>There are no types to choose from</em>\r\n </MenuItem>\r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allExternalApiTypes.map((apiType, index) => (\r\n <MenuItem key={index} value={apiType}>\r\n {apiType.name}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </div>\r\n </div>\r\n <div className={classes.listDescriptionStyle}>\r\n <div className={classes.projectOption__labelContainer}>\r\n <p className={classes.labelContainer__label}>Description of your API</p>\r\n </div>\r\n <textarea className={classes.description__textarea} value={connectionDesc} onChange={(e) => setConnectionDescState(e)}></textarea>\r\n {/* <TextfieldInput label={connectionDesc ? \" \" : \"Description\"} InputLabelProps={{ shrink: false }} rows={3} multiline value={connectionDesc} action={setConnectionDescState} /> */}\r\n </div>\r\n </div>\r\n <div className={classes.listDescriptionStyle}>\r\n <div className={classes.projectOption__labelContainer}>\r\n <p className={classes.labelContainer__label}>Generate API key</p>\r\n </div>\r\n <div className={classes.generateApiKeyContainer}>\r\n <button className={classes.primaryButton} onClick={() => generateApiKey()}>Generate API key</button>\r\n <TextField value={apiKey} fullWidth action={setApiKeyState} placeholder=\"API key\" helperText={htApiKey} error={errorApiKey} slotProps={{ readOnly: true, }} />\r\n </div>\r\n </div>\r\n {emptyDetails === true ?\r\n <div style={{ marginTop: \"24px\" }}>\r\n <label className={classes.label}>Add data points</label>\r\n <Grid2 item xs={12} sm={12} md={12} style={{ border: \"solid 2px\", borderColor: \"#d32f2f\", borderRadius: \"17px\", marginTop: \"4px\" }}>\r\n <TableList {...props} rows={apiBodyItems} setRows={setRows} apiTypeId={externalApiType && externalApiType.id} makeSave={sendToApi} />\r\n </Grid2>\r\n <p style={{ color: \"#d32f2f\", fontWeight: \"400\", fontSize: \"0.75rem\", fontFamily: \"Roboto, Helvetica, Arial\", letterSpacing: \"0.03333em\" }}>Please create at least one data point.</p>\r\n </div>\r\n :\r\n <div style={{ marginTop: \"24px\" }}>\r\n <label className={classes.label}>Add data points</label>\r\n <Grid2 item xs={12} sm={12} md={12} style={{ marginTop: \"4px\" }}>\r\n <TableList {...props} rows={apiBodyItems} setRows={setRows} apiTypeId={externalApiType && externalApiType.id} />\r\n </Grid2>\r\n </div>}\r\n <div className={classes.buttonContainer}>\r\n <button className={classes.deleteButton} onClick={handleDialogOpenDel}>\r\n <Trash2 className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Delete\r\n </button>\r\n <button className={classes.primaryIconButton} onClick={sendToApi}>\r\n <Save className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Save\r\n </button>\r\n </div>\r\n <div style={{ marginTop: \"20px\" }}>\r\n <label className={classes.label}>Your unique API link</label>\r\n <div className={classes.ApiContainer} style={{ marginBottom: \"15px\" }}>\r\n {/* <TextField fullWidth disabled multiline value={apiExampleLink} label={apiExampleLink ? \" \" : \"Connection Link\"} InputLabelProps={{ shrink: false }} style={{ marginRight: \"5px\" }} /> */}\r\n <input className={classes.apiTextField} disabled value={apiExampleLink} label={apiExampleLink ? \" \" : \"API Link\"} />\r\n {apiExampleLink === \"\" ?\r\n // <Button size='large' variant=\"contained\" onClick={handleCopyLink} style={{ background: \"#C3996B\", color: 'white', marginBottom: \"8px\" }} startIcon={<ClipboardCopy />} content=\"Copy\">Copy</Button>\r\n <button className={classes.disabledIconButton}>\r\n <ClipboardCopy className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Copy\r\n </button>\r\n :\r\n <button className={classes.primaryIconButton} onClick={handleCopyLink}>\r\n <ClipboardCopy className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Copy\r\n </button>\r\n // <Button disabled size='large' variant=\"contained\" onClick={handleCopyLink} style={{ color: 'white', marginBottom: \"8px\" }} startIcon={<ClipboardCopy />} content=\"Copy\">Copy</Button>\r\n }\r\n </div>\r\n <label className={classes.label}>API format example</label>\r\n <div className={classes.ApiFormatContainer}>\r\n <TextField\r\n fullWidth\r\n disabled\r\n multiline\r\n value={apiExamplePoints}\r\n label={apiExamplePoints ? \" \" : \"Connection Example\"}\r\n InputLabelProps={{ shrink: false }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n },\r\n }}\r\n />\r\n <div className={classes.ApiFormatContainer__buttonContainer}>\r\n <button className={classes.tertiaryButton} onClick={() => handleTutorialDialog()}>\r\n How do I use this?\r\n </button>\r\n {apiExamplePoints === \"\" ?\r\n // <Button size='large' variant=\"contained\" onClick={handleCopyFormat} style={{ background: \"#C3996B\", color: 'white', marginBottom: \"8px\" }} startIcon={<ClipboardCopy />} content=\"Copy\">Copy</Button>\r\n <button className={classes.disabledIconButton}>\r\n <ClipboardCopy className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Copy\r\n </button>\r\n :\r\n <button className={classes.primaryIconButton} onClick={handleCopyFormat}>\r\n <ClipboardCopy className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Copy\r\n </button>\r\n // <Button disabled size='large' variant=\"contained\" onClick={handleCopyFormat} style={{ color: 'white', marginBottom: \"8px\" }} startIcon={<ClipboardCopy />} content=\"Copy\">Copy</Button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </Box>\r\n <Snackbar\r\n open={openToast}\r\n autoHideDuration={3000}\r\n onClose={handleCloseToast}\r\n message=\"Copied to clipboard\"\r\n />\r\n\r\n <HowToUseAPIDialog dialogOpen={howToOpen} closeDialog={() => setHowToOpen(false)} apiTypeId={externalApiType && externalApiType.id} apiUrl={apiExampleLink} apiBodyItems={apiBodyItems} />\r\n\r\n <Dialog\r\n open={delopen}\r\n onClose={handleDialogCloseDel}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n <DialogTitle id=\"alert-dialog-title\">\r\n {\"Delete External API\"}\r\n </DialogTitle>\r\n <DialogContent>\r\n <DialogContentText id=\"alert-dialog-description\">\r\n {\"Are you sure you want to delete ExternalApi \" + htConnectionName + \" ?\"}\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions>\r\n <ButtonNormalText content=\"Close\" onClick={handleDialogCloseDel}>Close</ButtonNormalText>\r\n <ButtonNormalDelete startIcon={<Trash2 />} content=\"Delete\" onClick={handleDeleteExternalApi}>Delete</ButtonNormalDelete>\r\n </DialogActions>\r\n </Dialog>\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ModifyExternalApiPage;\r\nconst useStyles = makeStyles((theme) => ({\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n margin: \"auto\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n container: {\r\n boxSizing: \"border-box\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n width: \"100%\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginBottom: \"48px\",\r\n },\r\n qrButton: {\r\n backgroundColor: \"#C3996B\"\r\n },\r\n buttonContainer: {\r\n marginTop: '24px',\r\n display: 'flex',\r\n justifyContent: 'end',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n },\r\n\r\n formContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n },\r\n\r\n formColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n projectOption: {\r\n minWidth: \"240px\",\r\n maxWidth: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n margin: \"0\",\r\n },\r\n\r\n label: {\r\n display: \"inline-block\",\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n margin: \"0\",\r\n marginBottom: \"4px\",\r\n },\r\n\r\n labelContainer__helperText: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n margin: \"0\",\r\n },\r\n\r\n listDescriptionStyle: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n position: 'relative',\r\n },\r\n\r\n description__textarea: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n padding: \"8px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #BDBDBD\",\r\n borderRadius: \"4px\",\r\n resize: \"none\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n height: \"120px\",\r\n },\r\n },\r\n\r\n generateApiKeyContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\"\r\n },\r\n },\r\n\r\n ApiContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'center',\r\n\r\n border: \"1px solid #989898\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n ApiFormatContainer: {\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'flex-end',\r\n\r\n border: \"1px solid #989898\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"8px\",\r\n },\r\n\r\n apiTextField: {\r\n height: \"40px\",\r\n width: \"100%\",\r\n\r\n fontSize: \"16px\",\r\n\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n },\r\n\r\n generateApiKeyButton: {\r\n backgroundColor: \"#C3996B\",\r\n color: \"white\",\r\n width: \"220px\",\r\n borderRadius: \"4px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n cursor: \"pointer\",\r\n marginRight: \"5px\",\r\n height: \"55px\",\r\n fontSize: \"15px\"\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n whiteSpace: \"nowrap\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n disabledIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#DCDCDC\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n\r\n secondaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"1px solid #a77d4f\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #a77d4f\",\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n border: \"1px solid #D84949\",\r\n borderRadius: \"4px\",\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n backgroundColor: \"transparent\",\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n transition: \"all 0.2s ease-in-out\",\r\n \"&:hover\": {\r\n border: \"1px solid #D84949\",\r\n backgroundColor: \"#D84949\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"2px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n ApiFormatContainer__buttonContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tertiaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n whiteSpace: \"nowrap\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41)\",\r\n backgroundColor: \"#EDEDED\",\r\n cursor: \"pointer\",\r\n }\r\n }\r\n}));","import { useEffect } from \"react\";\r\nimport { Table, Tooltip, Fab, TableContainer, TableRow, TextField, IconButton, Select, InputLabel, FormControl, Paper } from '@mui/material';\r\nimport { Plus, Trash2, Pencil, Save } from 'lucide-react';\r\nimport './TableStyle.css';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nfunction TableModifyList(props) {\r\n const classes = useStyles();\r\n var today = new Date();\r\n\r\n useEffect(() => {\r\n // eslint-disable-next-line \r\n }, [props.Login.userid])\r\n\r\n const setItemName = (event, id) => {\r\n let tempArray = [...props.rows]\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).itemName = event.target.value\r\n } else {\r\n tempArray.find(x => x.edit === true).itemName = event.target.value;\r\n }\r\n props.setRows(tempArray)\r\n }\r\n\r\n const setItemDescription = (event, id) => {\r\n let tempArray = [...props.rows]\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).itemDescription = event.target.value\r\n } else {\r\n tempArray.find(x => x.edit === true).itemDescription = event.target.value;\r\n }\r\n props.setRows(tempArray)\r\n }\r\n\r\n const GenerateId = () => {\r\n let tempArray = [...props.rows];\r\n const ids = tempArray.map(object => {\r\n return object.Id;\r\n });\r\n\r\n const max = Math.max(...ids);\r\n\r\n if (tempArray.length === 0) {\r\n return 1;\r\n }\r\n else {\r\n let index = max;\r\n index++;\r\n return index;\r\n }\r\n }\r\n\r\n const editListItem = (id) => {\r\n let tempArray = [...props.rows];\r\n tempArray.find(x => x.Id === id).edit = true;\r\n props.setRows(tempArray);\r\n }\r\n\r\n const saveListItem = (id) => {\r\n let tempArray = [...props.rows];\r\n if (tempArray.find(x => x.Id === id).itemName !== \"\" || tempArray.find(x => x.Id === id).itemName !== null) {\r\n tempArray.find(x => x.Id === id).edit = false;\r\n props.setRows(tempArray);\r\n }\r\n }\r\n\r\n const deleteListItem = (id) => {\r\n let tempArray = [...props.rows];\r\n let index = tempArray.indexOf(tempArray.find(x => x.Id === id));\r\n tempArray.splice(index, 1);\r\n props.setRows(tempArray);\r\n }\r\n\r\n const addRow = () => {\r\n let userid = props.Login.userid;\r\n let Rowid = { Id: GenerateId(), itemDescription: \"\", edit: true, itemName: \"\", UserId: props.Login.userid, InsertedOn: today, InsertedByUserId: userid, state: \"new\" }\r\n let PrevId = GenerateId() - 1;\r\n var tempArray = [...props.rows];\r\n if (tempArray.find(x => x.itemName === \"\") === undefined) {\r\n if (tempArray.length !== 0) {\r\n if (tempArray.find(x => x.Id === PrevId).itemDescription !== \"\") {\r\n tempArray.find(x => x.Id === PrevId).edit = false;\r\n tempArray.push(Rowid);\r\n props.setRows(tempArray);\r\n }\r\n else {\r\n tempArray.push(Rowid);\r\n props.setRows(tempArray);\r\n }\r\n }\r\n else {\r\n tempArray.push(Rowid);\r\n props.setRows(tempArray);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <TableContainer style={{ borderTopRightRadius: \"8px\", borderTopLeftRadius: \"8px\" }} component={Paper}>\r\n <Table>\r\n <thead className={classes.tableHead}>\r\n <tr>\r\n <th align=\"center\">#</th>\r\n <th width=\"30%\">Name</th>\r\n <th width=\"60%\">Description</th>\r\n <th width=\"10%\" colSpan={2} align=\"center\" >Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody align=\"center\" className={classes.tableContent}>\r\n {\r\n props.rows.map((x, index) =>\r\n <TableRow key={x.Id} className={classes.tableRow}>\r\n <td className={classes.indexTd} >\r\n <div className={classes.listOrder}>\r\n {index + 1}\r\n </div>\r\n </td>\r\n <td className={classes.tableTd}>\r\n {x.edit ?// eslint-disable-next-line\r\n <TextField label={x.itemName ? \" \" : \"Name\"} InputLabelProps={{ shrink: false }} style={{ width: '100%' }} className={classes.descriptionField} id=\"outlined-basic\" type={\"search\"} variant=\"outlined\" value={x.itemName === undefined ? '' : x.itemName.length > 0 ? x.itemName : ''} onChange={(event) => setItemName(event, x.Id)} /> :\r\n <TextField style={{ width: '100%' }} disabled value={x.itemName} />\r\n }\r\n </td>\r\n <td className={classes.tableTd}>\r\n {x.edit ?// eslint-disable-next-line\r\n <TextField label={x.itemDescription ? \" \" : \"Description\"} style={{ width: '100%' }} className={classes.descriptionField} id=\"outlined-basic\" type={\"search\"} variant=\"outlined\" value={x.itemDescription === undefined ? '' : x.itemDescription.length > 0 ? x.itemDescription : ''} onChange={(event) => setItemDescription(event, x.Id)} /> :\r\n <TextField style={{ width: '100%' }} disabled value={x.itemDescription} />\r\n }\r\n </td>\r\n <td className={classes.tableTd} align=\"center\">\r\n {x.edit ?\r\n // <Tooltip title=\"Save\" placement=\"top\" disableInteractive arrow>\r\n <IconButton aria-label=\"save\" style={{ borderRadius: 0 }} onClick={() => saveListItem(x.Id)} className={classes.editButton} size=\"large\">\r\n <Save fontSize=\"inherit\" />\r\n </IconButton>\r\n // </Tooltip>\r\n :\r\n // <Tooltip title=\"Edit\" placement=\"top\" disableInteractive arrow>\r\n <IconButton aria-label=\"edit\" style={{ borderRadius: 0 }} onClick={() => editListItem(x.Id)} className={classes.editButton} size=\"large\">\r\n <Pencil fontSize=\"inherit\" />\r\n </IconButton>\r\n // </Tooltip>\r\n }\r\n {/* <Tooltip title=\"Delete\" placement=\"top\" disableInteractive arrow>\r\n <IconButton style={{ borderRadius: 0 }} className={classes.deleteButton} onClick={() => deleteListItem(x.Id)}>\r\n <Trash2 />\r\n </IconButton>\r\n </Tooltip> */}\r\n </td>\r\n <td>\r\n <IconButton aria-label=\"delete\" onClick={() => deleteListItem(x.Id)} className={classes.functionButton} color='error' size=\"large\">\r\n <Trash2 fontSize=\"inherit\" />\r\n </IconButton>\r\n\r\n </td>\r\n </TableRow>\r\n )\r\n }\r\n <TableRow className={classes.addRow} onClick={addRow}>\r\n <td className={classes.indexTd}>\r\n -\r\n </td>\r\n <td className={classes.tableTd}>\r\n <FormControl fullWidth>\r\n <InputLabel>Name</InputLabel>\r\n <Select\r\n IconComponent={() => (null\r\n )} disabled />\r\n </FormControl>\r\n </td>\r\n <td className={classes.tableTd}>\r\n <FormControl fullWidth>\r\n <InputLabel>Description</InputLabel>\r\n <Select\r\n IconComponent={() => (null\r\n )} disabled />\r\n </FormControl>\r\n </td>\r\n <td className={classes.tableTd} colSpan=\"2\" align=\"center\">\r\n <Fab size=\"medium\">\r\n <Plus />\r\n </Fab>\r\n </td>\r\n </TableRow>\r\n </tbody>\r\n </Table >\r\n </TableContainer >\r\n )\r\n}\r\n\r\nexport default TableModifyList;\r\n\r\nconst useStyles = makeStyles({\r\n tableContent: {\r\n paddingTop: \"15px\",\r\n },\r\n tableRow: {\r\n height: '60px',\r\n },\r\n tableHead: {\r\n backgroundColor: \"#e0dce4\",\r\n marginBottom: \"15px\",\r\n },\r\n descriptionField: {\r\n width: \"100%\",\r\n },\r\n\r\n editButton: {\r\n fontSize: '2rem !important',\r\n color: '#0B4097 !important',\r\n },\r\n\r\n functionButton: {\r\n fontSize: '2rem !important',\r\n\r\n },\r\n addRow: {\r\n opacity: \"0.3\"\r\n },\r\n tableTd: {\r\n padding: \"-5px\",\r\n },\r\n indexTd: {\r\n borderRight: '2px solid rgb(224, 224, 224)',\r\n width: '25px',\r\n background: 'rgba(0, 0, 0, 0.54)',\r\n color: 'white',\r\n zIndex: '2',\r\n },\r\n emptydrag: {\r\n padding: '17px !important',\r\n border: '0'\r\n },\r\n listOrder: {\r\n paddingLeft: '5px',\r\n paddingRight: '5px',\r\n },\r\n dragTd: {\r\n border: '0',\r\n width: '24px',\r\n },\r\n dragIcon: {\r\n float: 'left',\r\n },\r\n});","import React, { useEffect, useState } from 'react';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { Grid2, Select, MenuItem, DialogTitle, DialogContentText, DialogContent, DialogActions, Dialog, Box } from '@mui/material';\r\nimport ButtonNormalText from '../../Shared/Buttons/ButtonNormalText';\r\nimport ButtonNormalDelete from '../../Shared/Buttons/ButtonNormalDelete';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport TableList from './Components/TableModifyList';\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { Save, Trash2, ChevronLeft } from 'lucide-react';\r\n\r\nfunction ModifyListPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const dropdownUniqueId = useParams().dropdownUniqueId;\r\n\r\n const [listName, setListName] = useState(\"\");\r\n const [listCompany, setListCompany] = useState(null);\r\n const [companyId, setCompanyId] = useState(null);\r\n const [allUserCompanies, setAllUserCompanies] = useState([]);\r\n const [listDescription, setListDescription] = useState(\"\");\r\n const [helperTextListName, setHelperTextListName] = useState(null);\r\n const [helperTextListCompany, setHelperTextListCompany] = useState(null);\r\n const [errorListName, setErrorListName] = useState(false);\r\n const [errorListCompany, setErrorListCompany] = useState(false);\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n const [listItems, setListItems] = useState([]);\r\n const [delopen, setDelOpen] = useState(false);\r\n const [listId, setListId] = useState(0);\r\n var today = new Date();\r\n\r\n useEffect(() => {\r\n dataService.getDataListByUniqueId(dropdownUniqueId).then(results => {\r\n setListDescription(results.description)\r\n setListName(results.name);\r\n setListItems([...results.dataListItems.map(x => ({ Id: x.id, itemName: x.name, itemDescription: x.description, InsertedOn: x.insertedOn, InsertedByUserId: x.insertedByUserId, edit: false }))]);\r\n setListId(results.id)\r\n setCompanyId(results.companyId)\r\n })\r\n }, [props.Login.userid, dropdownUniqueId, props.Login.userid]);\r\n\r\n useEffect(() => {\r\n if (companyId) {\r\n dataService.getAllCompaniesByUserId(props.Login.userid).then(results => {\r\n setListCompany(results.find(x => x.id === companyId))\r\n setAllUserCompanies(results);\r\n })\r\n }\r\n }, [companyId, props.Login.userid])\r\n\r\n const handleDialogOpenDel = () => {\r\n setDelOpen(true);\r\n }\r\n const handleDialogCloseDel = () => {\r\n setDelOpen(false);\r\n }\r\n\r\n const handleDeleteList = () => {\r\n let userid = props.Login.userid\r\n let DataListItems = listItems.map(x => ({ Name: x.itemName, Description: x.itemDescription, InsertedOn: x.InsertedOn, InsertedByUserId: x.UserId, Id: x.Id }));\r\n dataService.deleteDataList(listName, listDescription, listCompany.id, today, userid, DataListItems, listId).then(response => {\r\n if (response.success === true) {\r\n toast.success('Dropdown was deleted successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n\r\n });\r\n navigate(\"/dropdownoverview\");\r\n }\r\n\r\n const setList = (event) => {\r\n setListName(event.target.value);\r\n }\r\n\r\n const setDescription = (event) => {\r\n setListDescription(event.target.value);\r\n }\r\n\r\n const saveAllListItems = () => {\r\n let invalidRowsCount = 0;\r\n let tempListItems = [...listItems];\r\n\r\n tempListItems.forEach(listItem => {\r\n if (listItem.itemName === \"\") {\r\n invalidRowsCount++;\r\n }\r\n })\r\n\r\n if (invalidRowsCount == 0) {\r\n tempListItems = tempListItems.map(listItem => ({\r\n ...listItem, // Spread the existing properties\r\n edit: false // Override the 'edit' property\r\n }));\r\n\r\n setListItems(tempListItems);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const sendToApi = () => {\r\n if (listName === \"\") {\r\n setHelperTextListName(\"Please enter a dropdown name.\")\r\n setErrorListName(true)\r\n }\r\n if (!listCompany) {\r\n setHelperTextListCompany(\"Please select a company\")\r\n setErrorListCompany(true);\r\n }\r\n else {\r\n setHelperTextListName(null)\r\n setErrorListName(false)\r\n setEmptyDetails(false)\r\n if (listItems.length === 0) {\r\n setEmptyDetails(true)\r\n }\r\n else {\r\n if (saveAllListItems()) {\r\n // API CALL HERE\r\n let userid = props.Login.userid\r\n let DataListItems = listItems.map(x => ({ Name: x.itemName, Description: x.itemDescription, InsertedOn: x.InsertedOn, InsertedByUserId: x.InsertedByUserId, Id: x.Id, State: x.state }));\r\n dataService.modifyDataList(listName, listDescription, listCompany.id, today, userid, DataListItems, listId).then((response) => {\r\n if (response.success === true) {\r\n toast.success('Dropdown was saved successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n } else {\r\n toast.error('Make sure all items have a name.', { position: toast.POSITION.TOP_CENTER })\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Modify your dropdown\" backbutton={true} {...props} />\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n\r\n }} >\r\n <div className={classes.header}>\r\n <button className={classes.backButton} onClick={() => navigate('/dropdownoverview')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to dropdown overview\r\n </button>\r\n <h1>Modify your dropdown</h1>\r\n </div>\r\n\r\n <Box className={classes.container}>\r\n <Box className={classes.projectSelectionContainer}>\r\n <div className={classes.formContainer}>\r\n <div className={classes.formColumn}>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n {!helperTextListName ?\r\n <p className={classes.labelContainer__label}>Name of your dropdown</p>\r\n :\r\n <p className={classes.labelContainer__helperText}>{helperTextListName}</p>\r\n }\r\n </div>\r\n <div className={classes.projectOption__inputContainer}>\r\n <TextfieldInput value={listName} action={setList} label={listName ? \" \" : \"Dropdown\"} InputLabelProps={{ shrink: false }} error={errorListName} />\r\n </div>\r\n </div>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n {!helperTextListCompany ?\r\n <p className={classes.labelContainer__label}>Select a company</p>\r\n :\r\n <p className={classes.labelContainer__helperText}>{helperTextListCompany}</p>\r\n }\r\n </div>\r\n <div className={classes.projectOption__inputContainer}>\r\n <Select\r\n value={listCompany}\r\n onChange={(e) => setListCompany(e.target.value)}\r\n displayEmpty\r\n error={errorListCompany}\r\n style={{ width: \"100%\" }}\r\n renderValue={listCompany !== \"\" ? undefined : () => \"Company\"}\r\n >\r\n {/* If no company is selected, this is a placeholder */}\r\n {allUserCompanies.length < 1 &&\r\n <MenuItem value=\"\">\r\n <em>You are not part of a company</em>\r\n </MenuItem>\r\n }\r\n {/* Populate the dropdown with companies from allUserCompanies */}\r\n {allUserCompanies.map((company, index) => (\r\n <MenuItem key={index} value={company}>\r\n {company.name}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={classes.listDescriptionStyle}>\r\n <div className={classes.projectOption__labelContainer}>\r\n <p className={classes.labelContainer__label}>Description of your dropdown</p>\r\n </div>\r\n <textarea className={classes.description__textarea} value={listDescription} onChange={(e) => setDescription(e)}></textarea>\r\n {/* <TextfieldInput rows={3} multiline value={listDescription} action={setDescription} label={listDescription ? \" \" : \"Description\"} InputLabelProps={{ shrink: false }} /> */}\r\n </div>\r\n </div>\r\n </Box>\r\n {emptyDetails === true ?\r\n <div style={{ marginTop: \"1rem\" }}>\r\n <Grid2 item xs={12} sm={12} md={12} style={{ border: \"solid 2px\", borderColor: \"#d32f2f\", borderRadius: \"17px\" }}>\r\n <TableList {...props} rows={listItems} setRows={setListItems} makeSave={sendToApi} />\r\n </Grid2>\r\n <p style={{ color: \"#d32f2f\", fontWeight: \"400\", fontSize: \"0.75rem\", fontFamily: \"Roboto, Helvetica, Arial\", letterSpacing: \"0.03333em\" }}>Please create at least one item.</p>\r\n </div>\r\n :\r\n <div style={{ marginTop: \"1rem\" }}>\r\n <Grid2 item xs={12} sm={12} md={12}>\r\n <TableList {...props} rows={listItems} setRows={setListItems} />\r\n </Grid2>\r\n </div>}\r\n <Box className={classes.buttonContainer}>\r\n <button className={classes.deleteButton} onClick={handleDialogOpenDel}>\r\n <Trash2 className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Delete\r\n </button>\r\n <button className={classes.primaryIconButton} onClick={sendToApi}>\r\n <Save className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Save\r\n </button>\r\n\r\n </Box>\r\n </Box>\r\n </Box>\r\n\r\n {delopen &&\r\n <Dialog\r\n open={delopen}\r\n onClose={handleDialogCloseDel}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n <DialogTitle id=\"alert-dialog-title\">\r\n {\"Delete dropdown\"}\r\n </DialogTitle>\r\n <DialogContent>\r\n <DialogContentText id=\"alert-dialog-description\">\r\n {\"Are you sure you want to delete dropdown \" + listName + \" ?\"}\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions>\r\n <ButtonNormalText content=\"Close\" onClick={handleDialogCloseDel}>Close</ButtonNormalText>\r\n <ButtonNormalDelete startIcon={<Trash2 />} content=\"Delete\" onClick={handleDeleteList}>Delete</ButtonNormalDelete>\r\n </DialogActions>\r\n </Dialog>\r\n }\r\n\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ModifyListPage;\r\nconst useStyles = makeStyles((theme) => ({\r\n projectSelectionContainer: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n marginBottom: \"16px\",\r\n padding: \"16px\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n qrButton: {\r\n backgroundColor: \"#C3996B\"\r\n },\r\n buttonContainer: {\r\n gap: \"8px\",\r\n justifyContent: 'end',\r\n marginTop: '15px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n float: 'right'\r\n },\r\n\r\n description__textarea: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n padding: \"8px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #BDBDBD\",\r\n borderRadius: \"4px\",\r\n resize: \"none\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n height: \"120px\",\r\n },\r\n },\r\n\r\n projectOption: {\r\n minWidth: \"240px\",\r\n maxWidth: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n projectOption__labelContainer: {\r\n display: \"flex\",\r\n gap: \"8px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n margin: 0\r\n },\r\n\r\n labelContainer__helperText: {\r\n fontSize: \"15px\",\r\n color: \"red\"\r\n },\r\n\r\n formContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n },\r\n\r\n formColumn: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n listDescriptionStyle: {\r\n width: '100%',\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n whiteSpace: \"nowrap\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n disabledIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#DCDCDC\",\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n border: \"1px solid #D84949\",\r\n borderRadius: \"4px\",\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n backgroundColor: \"transparent\",\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #D84949\",\r\n backgroundColor: \"#D84949\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n}));","import React, { useState, useEffect } from 'react';\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { toast } from 'react-toastify';\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Select, MenuItem, TextField, Button } from '@mui/material';\r\nimport { getAuth } from \"firebase/auth\";\r\nimport { X, ArrowRight } from 'lucide-react';\r\n\r\nexport default function ChangeHistoricalPriceDialog({ dialogOpen, closeDialog, newProjectDetailRows, originalProjectDetailRows, currency, save, ...props }) {\r\n const classes = useStyles();\r\n const auth = getAuth();\r\n\r\n const [generalError, setGeneralError] = useState(null);\r\n\r\n const [allPriceChanges, setAllPriceChanges] = useState([]);\r\n\r\n useEffect(() => {\r\n // Check if price for any entry in projectDetailRows is different from that entry in originalProjectDetailRows. if so, add them to allPriceChanges with .description, .oldPrice, .newPrice\r\n var priceChanges = [];\r\n if (newProjectDetailRows && originalProjectDetailRows) {\r\n newProjectDetailRows.forEach((row) => {\r\n var originalRow = originalProjectDetailRows.find(x => x.Id === row.Id);\r\n if (originalRow && originalRow.price !== row.price) {\r\n priceChanges.push({\r\n id: row.Id,\r\n description: row.description,\r\n oldPrice: originalRow.price,\r\n newPrice: row.price\r\n })\r\n }\r\n })\r\n setAllPriceChanges(priceChanges);\r\n }\r\n }, [newProjectDetailRows, originalProjectDetailRows])\r\n\r\n const handleCloseDialog = () => {\r\n closeDialog();\r\n }\r\n\r\n const formatPrice = (price) => {\r\n // Check for null, undefined, or empty string\r\n if (price === null || price === undefined || price === \"\") {\r\n return \"0,00\";\r\n }\r\n\r\n // Convert price to a number\r\n const numericPrice = parseFloat(price.toString().replace(',', '.'));\r\n\r\n // If parseFloat fails (returns NaN), return \"0,00\"\r\n if (isNaN(numericPrice)) {\r\n return \"0,00\";\r\n }\r\n\r\n // Format the number with two decimal places and replace decimal point with a comma\r\n return numericPrice\r\n .toFixed(2) // Ensure two decimal places\r\n .replace('.', ',') // Replace decimal point with comma\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' '); // Add space as thousands separator\r\n };\r\n\r\n return (\r\n\r\n <Dialog className={classes.dialog}\r\n open={dialogOpen}\r\n aria-labelledby=\"draggable-dialog-title\"\r\n onClose={closeDialog}\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n <div className={classes.dialog__head}>\r\n <DialogTitle className={classes.dialog__title} id=\"draggable-dialog-title\">\r\n Change the historical price?\r\n </DialogTitle>\r\n <button onClick={() => handleCloseDialog()} className={classes.dialog__closeButton}>\r\n <X size={19} />\r\n </button>\r\n </div>\r\n <DialogContent className={classes.dialog__contentContainer}>\r\n <div className={classes.dialog__content}>\r\n {generalError &&\r\n <div className={classes.errorContainer}>\r\n <p className={classes.errorMessage}>{generalError}</p>\r\n </div>\r\n }\r\n <p className={classes.dialog__subtitle}>You are about to change the price of a measurement point. Do you want to change the historical price of all linked measurements?</p>\r\n <div className={classes.priceChangeOverviewContainer}>\r\n {allPriceChanges.map((priceChange) => {\r\n return (\r\n <div className={classes.priceChangeContainer}>\r\n <p className={classes.priceChange__name}>{priceChange.description}</p>\r\n <div className={classes.priceChange__priceContainer}>\r\n <p className={classes.priceChange__oldPrice}>{currency.symbol}{formatPrice(priceChange.oldPrice)}</p>\r\n <ArrowRight className={classes.icon__medium} />\r\n <p className={classes.priceChange__newPrice}>{currency.symbol}{formatPrice(priceChange.newPrice)}</p>\r\n </div>\r\n </div>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n </DialogContent>\r\n <DialogActions sx={{ display: 'flex', flexDirection: \"column\", gap: \"8px\", justifyContent: 'space-between', paddingLeft: '16px', paddingRight: '16px', paddingBottom: \"16px\" }}>\r\n {/* {financialTypeToEdit &&\r\n <button className={classes.deleteButton} onClick={closeDialog}>Delete</button>\r\n } */}\r\n <button className={classes.deleteButton} onClick={() => save(newProjectDetailRows, true)}>Change historical price</button>\r\n <button className={classes.saveButton} onClick={() => save(newProjectDetailRows, false)}>Change prices from now on</button>\r\n </DialogActions>\r\n </Dialog >\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '480px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#4654FB auto 1px',\r\n },\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px 0px 16px 0px',\r\n },\r\n\r\n priceChangeOverviewContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n },\r\n\r\n priceChangeContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n priceChange__name: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n margin: \"0\",\r\n },\r\n\r\n priceChange__priceContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n priceChange__oldPrice: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n opacity: \"0.8\",\r\n\r\n lineHeight: \"100%\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n icon__medium: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n color: \"#0C0E29\",\r\n\r\n strokeWidth: \"1.6px\",\r\n },\r\n\r\n priceChange__newPrice: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n lineHeight: \"100%\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n errorContainer: {\r\n width: \"100%\",\r\n backgroundColor: \"#FDF3F3\",\r\n\r\n border: \"1px solid #FBE5E5\",\r\n borderRadius: \"6px\",\r\n\r\n marginBottom: \"16px\",\r\n padding: \"12px\",\r\n },\r\n\r\n errorMessage: {\r\n fontSize: \"16px\",\r\n color: \"#D84949\"\r\n },\r\n\r\n saveButton: {\r\n height: \"40px\",\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n padding: \"0 16px\",\r\n marginLeft: \"0px !important\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n deleteButton: {\r\n height: \"40px\",\r\n width: \"100%\",\r\n padding: \"0 16px\",\r\n verticalAlign: 'center',\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#D84949\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"white\",\r\n border: \"1px solid #C73B3B\",\r\n cursor: \"pointer\",\r\n }\r\n }\r\n}));\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport TextfieldInput from '../../Shared/TextField';\r\nimport DateSelectionFuture from \"../../Shared/DateSelection/DateSelectionFuture\";\r\nimport TableDragResources from '../../Shared/Tables/TableDragResources';\r\nimport DescriptionItem from '../../Shared/DescriptionItem';\r\nimport DropdownCompany from '../../Shared/Dropdowns/DropdownCopmany';\r\nimport DropdownResources from '../../Shared/Dropdowns/DropdownResources';\r\nimport ButtonNormalText from '../../Shared/Buttons/ButtonNormalText';\r\nimport ButtonNormalDelete from '../../Shared/Buttons/ButtonNormalDelete';\r\nimport CustomizedMenus from '../../Shared/CustomizedMenus';\r\nimport ShareDialog from '../../Shared/Dialogs/ShareDialog';\r\nimport ChangeHistoricalPriceDialog from './Components/ChangeHistoricalPriceDialog';\r\n\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Spin } from \"react-cssfx-loading\";\r\n\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { Grid2, Divider, DialogTitle, DialogContentText, DialogContent, DialogActions, Dialog, Box, Tooltip } from '@mui/material';\r\nimport { Trash2, Save, ChevronLeft, CircleHelp } from 'lucide-react';\r\nimport { set } from 'date-fns';\r\n\r\ntoast.configure();\r\n\r\nfunction ModifyPage(props) {\r\n const navigate = useNavigate();\r\n const { projectQr } = useParams();\r\n\r\n const [FromDate, setFromDate] = useState(new Date());\r\n const [ToDate, setToDate] = useState(new Date());\r\n const [projectQR, setProjectQR] = useState(null);\r\n\r\n // Project properties\r\n const [projectId, setProjectId] = useState(null);\r\n const [projectName, setProjectName] = useState(\"\");\r\n const [resourceName, setResourceName] = useState(\"\");\r\n const [selectedResource, setSelectedResource] = useState(\"\");\r\n const [projectHasMeasurements, setProjectHasMeasurements] = useState(false);\r\n\r\n const [CompanyName, setCompanyName] = useState(\"\");\r\n const [CompanyId, setCompanyId] = useState(null);\r\n const [OldCompanyId, setOldCompanyId] = useState(null);\r\n const [projectDetailRows, setProjectDetailRows] = useState([]);\r\n const [originalProjectDetailRows, setOriginalProjectDetailRows] = useState([]); // Copy to check if changes are made\r\n\r\n // General properties\r\n const [allCompanies, setAllCompanies] = useState([]);\r\n const [resources, setResources] = useState([]);\r\n const [currentSaveType, setCurrentSaveType] = useState(null);\r\n\r\n const [delopen, setDelOpen] = useState(false);\r\n const GetUserId = props.Login.userid;\r\n const [openQr, setOpenQr] = useState(false);\r\n\r\n // TableDragResources\r\n const tableDragResourcesRef = useRef();\r\n\r\n const [historicalPriceChangeDialogOpen, setHistoricalPriceChangeDialogOpen] = useState(false);\r\n\r\n const classes = useStyles();\r\n const [types, setTypes] = useState([]);\r\n const [activeProject, setActiveProject] = useState(true);\r\n const [helperTextProjectName, setHelperTextProjectName] = useState(null);\r\n const [helperTextCompany, setHelperTextCompany] = useState(null);\r\n const [helperTextResourceDescription, setHelperTextResourceDescription] = useState(null);\r\n const [errorProjectName, setErrorProjectName] = useState(false);\r\n const [errorCompany, setErrorCompany] = useState(false);\r\n const [errorResourceDescription, setErrorResourceDescription] = useState(false);\r\n const [emptyDetails, setEmptyDetails] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [allCurrencies, setAllCurrencies] = useState([]);\r\n const [activeCurrency, setActiveCurrency] = useState({ symbol: '€' });\r\n\r\n useEffect(() => {\r\n if (allCurrencies.length > 0 && CompanyId !== null) {\r\n let selectedCompany = allCompanies.find(x => x.id === CompanyId);\r\n let currency = allCurrencies.find(x => x.id === selectedCompany.currencyId);\r\n if (currency !== undefined) {\r\n setActiveCurrency(currency);\r\n }\r\n };\r\n }, [CompanyId, allCurrencies])\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n if (projectQr !== null) {\r\n setProjectQR(projectQr);\r\n }\r\n\r\n let project;\r\n let tempProjectDetailRows = [];\r\n\r\n try {\r\n const results = await Promise.all([\r\n dataService.getAllCompaniesByUserId(props.Login.userid),\r\n dataService.getResources(props.Login.userid),\r\n dataService.getTypes(),\r\n dataService.getProjectByQr(projectQr),\r\n dataService.getProjectDetailsByQr(projectQr),\r\n dataService.projectHasMeasurements(projectQr),\r\n dataService.getAllCurrencies(),\r\n ]);\r\n\r\n // Destructure results\r\n const [\r\n companyResults,\r\n resourcesResults,\r\n typeResults,\r\n projectResults,\r\n projectDetailsResults,\r\n projectHasMeasurementsResult,\r\n allCurrencies,\r\n ] = results;\r\n\r\n setProjectHasMeasurements(projectHasMeasurementsResult);\r\n setAllCompanies(companyResults);\r\n setResources(resourcesResults);\r\n setAllCurrencies(allCurrencies);\r\n\r\n if (typeResults !== null) {\r\n setTypes(typeResults.sort((a, b) => a.description.localeCompare(b.description)));\r\n }\r\n\r\n project = projectResults ?? null;\r\n\r\n if (projectDetailsResults !== null && projectDetailsResults.some(x => x.id)) {\r\n tempProjectDetailRows = await Promise.all(\r\n projectDetailsResults.map(async (x) => ({\r\n comment: x.hasComment,\r\n isParent: x.isParent,\r\n isApiParent: x.isApiParent,\r\n color: x.color,\r\n typeId: x.typeId,\r\n type: x.typeId,\r\n description: x.description,\r\n Id: x.id,\r\n edit: false,\r\n accountId: x.accountId,\r\n sequence: x.sequence,\r\n dataListId: x.dataListId,\r\n externalApiId: x.externalApiId,\r\n price: x.price,\r\n isProfit: x.isProfit,\r\n costProfit: x.isProfit ? '+' : '-',\r\n valueTypeId: x.valueTypeId,\r\n descriptionError: null,\r\n accountError: null,\r\n typeError: null,\r\n hasMeasurements: await detailHasMeasurements(x.id),\r\n }))\r\n );\r\n }\r\n } catch (error) {\r\n toast.error('Something went wrong while fetching the data.', {\r\n position: toast.POSITION.TOP_CENTER,\r\n autoClose: 2000,\r\n });\r\n console.error('Error: ', error);\r\n } finally {\r\n if (project !== null) {\r\n setProjectId(project.id);\r\n setProjectName(project.projectName);\r\n setCompanyName(project.companyName);\r\n setOldCompanyId(project.companyId);\r\n setCompanyId(project.companyId);\r\n setResourceName(project.resourceDescription);\r\n\r\n const fromDateString = project.timeRangeBegin ? Date.parse(project.timeRangeBegin) : Date.now();\r\n const toDateString = project.timeRangeEnd ? Date.parse(project.timeRangeEnd) : Date.now();\r\n\r\n const fromDateObject = new Date(fromDateString);\r\n const toDateObject = new Date(toDateString);\r\n\r\n setFromDate(fromDateObject);\r\n setToDate(toDateObject);\r\n\r\n const currentDate = new Date();\r\n const difference = dateRange(fromDateObject, toDateObject, currentDate, currentDate);\r\n setActiveProject(!!difference);\r\n }\r\n\r\n if (tempProjectDetailRows.length > 0) {\r\n tempProjectDetailRows = tempProjectDetailRows.sort((a, b) => a.sequence - b.sequence);\r\n }\r\n\r\n setProjectDetailRows(tempProjectDetailRows);\r\n setOriginalProjectDetailRows(tempProjectDetailRows);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n fetchData();\r\n }, [projectQr, props.Login.userid]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n\r\n const detailHasMeasurements = async (detailId) => {\r\n const hasMeasurements = await dataService.projectDetailHasMeasurements(detailId);\r\n if (hasMeasurements) {\r\n console.log(\"has measurements\");\r\n } else {\r\n console.log(\"has no measurements\");\r\n }\r\n return hasMeasurements;\r\n };\r\n\r\n const datesAreOnSameDay = (first, second) =>\r\n first.getFullYear() === second.getFullYear() &&\r\n first.getMonth() === second.getMonth() &&\r\n first.getDate() === second.getDate();\r\n\r\n function dateRange(a_start, a_end, b_start, b_end) {\r\n if (a_start <= b_start && b_start <= a_end) return true; // b starts in a\r\n if (a_start <= b_end && b_end <= a_end) return true; // b ends in a\r\n if (b_start < a_start && a_end < b_end) return true; // a in b\r\n // if (b_start < a_start && a_end > b_end) return true; // a overlaps b\r\n\r\n if (datesAreOnSameDay(a_start, b_start)) return true;\r\n if (datesAreOnSameDay(b_end, a_end)) return true;\r\n return false;\r\n }\r\n\r\n const setProject = (event) => {\r\n setProjectName(event.target.value);\r\n }\r\n const setTheFromDate = (event) => {\r\n if (event !== FromDate) {\r\n setFromDate(event);\r\n }\r\n }\r\n const setTheToDate = (event) => {\r\n if (event !== ToDate) {\r\n setToDate(event);\r\n }\r\n }\r\n\r\n const handleClickOpenQr = () => {\r\n setOpenQr(true);\r\n };\r\n const handleCloseQr = () => {\r\n setOpenQr(false);\r\n };\r\n const handleDialogOpenDel = () => {\r\n setDelOpen(true);\r\n }\r\n const handleDialogCloseDel = () => {\r\n setDelOpen(false);\r\n }\r\n const setCompany = (event) => {\r\n if (projectDetailRows.length > 0) {\r\n let tempProjectDetailRows = projectDetailRows.map(row => ({\r\n ...row,\r\n edit: true,\r\n accountId: null\r\n }));\r\n\r\n setProjectDetailRows(tempProjectDetailRows);\r\n }\r\n if (event.inputValue) {\r\n if (allCompanies.some(x => x.name === event.inputValue)) {\r\n setCompanyId(allCompanies.find(x => x.name === event.inputValue).id);\r\n setCompanyName(event.inputValue);\r\n }\r\n }\r\n else {\r\n if (event.target.textContent) {\r\n if (allCompanies.some(x => x.name === event.target.textContent)) {\r\n setCompanyId(allCompanies.find(x => x.name === event.target.textContent).id);\r\n setCompanyName(event.target.textContent);\r\n }\r\n }\r\n else {\r\n if (allCompanies.some(x => x.name === event.target.value)) {\r\n setCompanyId(allCompanies.find(x => x.name === event.target.value).id);\r\n }\r\n setCompanyName(event.target.value);\r\n }\r\n }\r\n }\r\n\r\n const setDates = (fromDate, toDate) => {\r\n setFromDate(fromDate);\r\n setToDate(toDate);\r\n let tempFromDate = fromDate;\r\n let tempToDate = toDate;\r\n props.actions.fromDateAction(tempFromDate);\r\n props.actions.toDateAction(tempToDate);\r\n }\r\n\r\n const checkForPriceChanges = async (detailId) => {\r\n let priceChanges = false;\r\n\r\n if (detailId) {\r\n const originalRow = originalProjectDetailRows.find(x => x.Id === detailId);\r\n const row = projectDetailRows.find(x => x.Id === detailId);\r\n\r\n if (originalRow && parseFloat(originalRow.price) !== parseFloat(row.price)) {\r\n const hasMeasurements = await dataService.projectDetailHasMeasurements(row.Id);\r\n if (hasMeasurements) {\r\n priceChanges = true;\r\n }\r\n }\r\n } else {\r\n for (const row of projectDetailRows) {\r\n const originalRow = originalProjectDetailRows.find(x => x.Id === row.Id);\r\n if (originalRow && parseFloat(originalRow.price) !== parseFloat(row.price)) {\r\n const hasMeasurements = await dataService.projectDetailHasMeasurements(row.Id);\r\n if (hasMeasurements) {\r\n priceChanges = true;\r\n break; // Stop checking once a change is detected\r\n }\r\n }\r\n }\r\n }\r\n\r\n return priceChanges;\r\n };\r\n\r\n const save = async (newProjectrows, changeHistoricalPrice) => {\r\n setHistoricalPriceChangeDialogOpen(false);\r\n setCurrentSaveType(\"row\");\r\n if (projectName === \"\" || resourceName === \"\" || CompanyId === \"\" || CompanyName === \"\" || FromDate === \"\" || ToDate === \"\" || resourceName === null || FromDate === null || ToDate === null) {\r\n if (projectName === \"\") {\r\n setHelperTextProjectName(\"Please enter a project name.\");\r\n setErrorProjectName(true);\r\n }\r\n else {\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n }\r\n if (resourceName === \"\" || resourceName === null || resourceName === undefined) {\r\n setHelperTextResourceDescription(\"Please select or enter a registration point.\");\r\n setErrorResourceDescription(true);\r\n }\r\n\r\n else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n }\r\n if (CompanyId === \"\" || CompanyId === null || CompanyName === \"\" || CompanyName === null || CompanyName === undefined) {\r\n setHelperTextCompany(\"Please select or create a Company.\");\r\n setErrorCompany(true);\r\n }\r\n else {\r\n setHelperTextCompany(null);\r\n setErrorCompany(false);\r\n }\r\n } else {\r\n if (await checkForPriceChanges() && (changeHistoricalPrice === null || changeHistoricalPrice === undefined)) {\r\n setHistoricalPriceChangeDialogOpen(true);\r\n } else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n setHelperTextCompany(null);\r\n setErrorCompany(false);\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n setEmptyDetails(false);\r\n if (newProjectrows.length === 0) {\r\n setEmptyDetails(true);\r\n }\r\n else {\r\n setEmptyDetails(false);\r\n let def = await Promise.all(\r\n newProjectrows.map(async x => ({\r\n HasComment: x.comment,\r\n IsParent: x.isParent,\r\n IsApiParent: x.isApiParent,\r\n color: x.color,\r\n description: x.description,\r\n typeId: x.type,\r\n type: x.type,\r\n Id: x.Id,\r\n projectId: projectId,\r\n sequence: x.sequence,\r\n dataListId: x.dataListId,\r\n externalApiId: x.externalApiId,\r\n price: (x.price === \"\" || x.price === undefined || x.price === null ? 0 : parseFloat(String(x.price).replace(',', '.'))),\r\n isProfit: x.isProfit,\r\n costProfit: (x.isProfit ? '+' : '-'),\r\n valueTypeId: x.valueTypeId,\r\n accountId: x.accountId,\r\n newRow: x.newRow,\r\n historicalPriceChange: await checkForPriceChanges(x.Id) ? changeHistoricalPrice : false\r\n })).sort((a, b) => a.sequence - b.sequence)\r\n );\r\n def.forEach((detail, index) => {\r\n detail.sequence = index + 1;\r\n });\r\n\r\n var resourceId = 0;\r\n if (selectedResource !== null && selectedResource !== undefined) {\r\n resourceId = selectedResource.id;\r\n }\r\n\r\n dataService.updateProjects(GetUserId, projectName, resourceName, resourceId, OldCompanyId, CompanyId, CompanyName, FromDate, ToDate, def, projectId, projectQr).then((response) => {\r\n if (!response) {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n resetProject();\r\n }\r\n setCurrentSaveType(null);\r\n setOriginalProjectDetailRows(projectDetailRows);\r\n }).catch((error) => {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n const setResource = (event) => {\r\n if (event !== null && event.value !== undefined && resources.some(x => x.id === event.value)) {\r\n var selectedResourceElement = resources.find(x => x.id === event.value);\r\n setResourceName(selectedResourceElement.name);\r\n setSelectedResource(selectedResourceElement);\r\n\r\n } else if (event !== null && event !== undefined && event.target !== undefined && event.target !== null && event.target.value !== undefined) {\r\n setResourceName(event.target.value);\r\n setSelectedResource(null);\r\n } else {\r\n setSelectedResource(null);\r\n setResourceName(\"\");\r\n }\r\n }\r\n\r\n const resultsRedirect = () => {\r\n navigate(`/results/${projectQr}`);\r\n }\r\n const financialDashboardRedirect = () => {\r\n navigate(`/projectreport/${projectQr}`);\r\n }\r\n\r\n const duplicateRedirect = () => {\r\n navigate(`/duplicate/${projectQr}`);\r\n }\r\n\r\n const saveAllProjectDetailRows = () => {\r\n let invalidRowsCount = 0;\r\n let tempProjectDetailRows = [...projectDetailRows];\r\n\r\n tempProjectDetailRows.forEach(detail => {\r\n if (detail.description === \"\" || detail.type === null) {\r\n invalidRowsCount++;\r\n }\r\n // if detail.price is not null and bigger then 0 detail.accountId should be set\r\n if (detail.price !== null && detail.price > 0 && detail.accountId === null) {\r\n invalidRowsCount++;\r\n }\r\n })\r\n\r\n if (invalidRowsCount == 0) {\r\n tempProjectDetailRows = tempProjectDetailRows.map(detail => ({\r\n ...detail, // Spread the existing properties\r\n edit: false // Override the 'edit' property\r\n }));\r\n\r\n setProjectDetailRows(tempProjectDetailRows);\r\n setOriginalProjectDetailRows(tempProjectDetailRows);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const validateRows = async () => {\r\n if (tableDragResourcesRef.current) {\r\n try {\r\n const valid = await tableDragResourcesRef.current.validateAllRows();\r\n return valid;\r\n } catch (error) {\r\n return false; // Or handle as needed\r\n }\r\n }\r\n };\r\n\r\n\r\n const sendToApi = async (changeHistoricalPrice) => {\r\n setCurrentSaveType(\"project\");\r\n setHistoricalPriceChangeDialogOpen(false);\r\n if (projectName === \"\" || resourceName === \"\" || CompanyId === \"\" || CompanyName === \"\" || FromDate === \"\" || ToDate === \"\" || resourceName === null || FromDate === null || ToDate === null || !(await validateRows())) {\r\n if (projectName === \"\") {\r\n setHelperTextProjectName(\"Please enter a project name.\");\r\n setErrorProjectName(true);\r\n }\r\n else {\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n }\r\n if (resourceName === \"\" || resourceName === null || resourceName === undefined) {\r\n setHelperTextResourceDescription(\"Please select or enter a registration point.\");\r\n setErrorResourceDescription(true);\r\n }\r\n else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n }\r\n if (CompanyId === \"\" || CompanyId === null || CompanyName === \"\" || CompanyName === null || CompanyName === undefined) {\r\n setHelperTextCompany(\"Please select or create a company.\");\r\n setErrorCompany(true);\r\n }\r\n else {\r\n setHelperTextCompany(null);\r\n setErrorCompany(false);\r\n }\r\n } else {\r\n if (await checkForPriceChanges() && (changeHistoricalPrice === null || changeHistoricalPrice === undefined)) {\r\n setHistoricalPriceChangeDialogOpen(true);\r\n } else {\r\n setHelperTextResourceDescription(null);\r\n setErrorResourceDescription(false);\r\n setHelperTextCompany(null);\r\n setErrorCompany(false);\r\n setHelperTextProjectName(null);\r\n setErrorProjectName(false);\r\n setEmptyDetails(false);\r\n if (projectDetailRows.length === 0 || projectDetailRows.find(x => x.type === null) !== undefined) {\r\n setEmptyDetails(true);\r\n }\r\n else {\r\n setEmptyDetails(false);\r\n if (saveAllProjectDetailRows()) {\r\n let tempProjDetails = [...projectDetailRows];\r\n tempProjDetails.sort((a, b) => b.sequence + a.sequence);\r\n let projectDetails = await Promise.all(\r\n tempProjDetails.map(async x => ({\r\n HasComment: x.comment,\r\n IsParent: x.isParent,\r\n IsApiParent: x.isApiParent,\r\n color: x.color,\r\n description: x.description,\r\n typeId: x.type,\r\n type: x.type,\r\n Id: x.Id,\r\n projectId: projectId,\r\n accountId: x.accountId,\r\n sequence: x.sequence,\r\n dataListId: x.dataListId,\r\n price: (x.price === \"\" || x.price === undefined || x.price === null ? 0 : parseFloat(String(x.price).replace(',', '.'))),\r\n isProfit: x.isProfit,\r\n costProfit: (x.isProfit !== null ? (x.isProfit ? '+' : '-') : '-'),\r\n valueTypeId: x.valueTypeId,\r\n externalApiId: x.externalApiId,\r\n newRow: x.newRow,\r\n historicalPriceChange: await checkForPriceChanges(x.Id) ? changeHistoricalPrice : false\r\n })).sort((a, b) => a.sequence - b.sequence)\r\n );\r\n props.actions.toDateAction(ToDate);\r\n var resourceId = 0;\r\n if (selectedResource !== null && selectedResource !== undefined) {\r\n resourceId = selectedResource.id;\r\n }\r\n\r\n dataService.updateProjects(GetUserId, projectName, resourceName, resourceId, OldCompanyId, CompanyId, CompanyName, FromDate, ToDate, projectDetails, projectId, projectQr).then((response) => {\r\n if (response && response.success) {\r\n setOriginalProjectDetailRows(projectDetailRows);\r\n setCurrentSaveType(null);\r\n toast.success('Project was saved successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n resetProject()\r\n }\r\n });\r\n } else {\r\n if (tableDragResourcesRef.current) {\r\n tableDragResourcesRef.current.validateAllRows();\r\n }\r\n toast.error('Make sure all details are filled in.', { position: toast.POSITION.TOP_CENTER })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const resetProject = () => {\r\n var project;\r\n let tempProjectDetailRows = [];\r\n\r\n Promise.all([\r\n dataService.getProjectByQr(projectQr),\r\n dataService.getProjectDetailsByQr(projectQr),\r\n ]).then((results) => {\r\n //Set result-variables\r\n var projectResults = results[0];\r\n var projectDetailsResults = results[1];\r\n\r\n if (projectResults !== null) {\r\n project = projectResults;\r\n } else {\r\n project = null;\r\n }\r\n\r\n if (projectDetailsResults !== null) {\r\n if (projectDetailsResults.some(x => x.id)) {\r\n tempProjectDetailRows = projectDetailsResults.map(x => ({\r\n comment: x.hasComment,\r\n isParent: x.isParent,\r\n isApiParent: x.isApiParent,\r\n color: x.color,\r\n typeId: x.typeId,\r\n type: x.typeId,\r\n description: x.description,\r\n Id: x.id,\r\n edit: false,\r\n accountId: x.accountId,\r\n sequence: x.sequence,\r\n dataListId: x.dataListId,\r\n externalApiId: x.externalApiId,\r\n price: x.price,\r\n isProfit: x.isProfit,\r\n costProfit: (x.isProfit ? '+' : '-'),\r\n valueTypeId: x.valueTypeId,\r\n descriptionError: null,\r\n accountError: null,\r\n typeError: null,\r\n }));\r\n }\r\n\r\n }\r\n }).catch((error) => {\r\n toast.error('Something went wrong while fetching the data.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n if (project !== null) {\r\n setProjectId(project.id);\r\n setProjectName(project.projectName);\r\n setCompanyName(project.companyName);\r\n setOldCompanyId(project.companyId)\r\n setCompanyId(project.companyId);\r\n setResourceName(project.resourceDescription);\r\n\r\n let fromDateString = \"\";\r\n if (project.timeRangeBegin !== null) {\r\n fromDateString = Date.parse(project.timeRangeBegin);\r\n }\r\n else {\r\n fromDateString = Date.parse();\r\n }\r\n let fromDateObject = new Date(fromDateString);\r\n setFromDate(fromDateObject);\r\n let toDateString = \"\";\r\n if (project.timeRangeEnd !== null) {\r\n toDateString = Date.parse(project.timeRangeEnd);\r\n }\r\n else {\r\n toDateString = Date.parse();\r\n }\r\n let toDateObject = new Date(toDateString);\r\n setToDate(toDateObject);\r\n\r\n let currentDate = new Date();\r\n let difference = dateRange(fromDateObject, toDateObject, currentDate, currentDate);\r\n if (difference) {\r\n setActiveProject(true);\r\n }\r\n else {\r\n setActiveProject(false);\r\n }\r\n }\r\n if (tempProjectDetailRows !== undefined && tempProjectDetailRows !== null) {\r\n tempProjectDetailRows = tempProjectDetailRows.sort((a, b) => a.sequence - b.sequence);\r\n }\r\n setProjectDetailRows(tempProjectDetailRows);\r\n setOriginalProjectDetailRows(tempProjectDetailRows);\r\n setLoading(false);\r\n\r\n });\r\n }\r\n\r\n const handleDeleteProject = () => {\r\n dataService.deleteProject(projectId, GetUserId).then(response => {\r\n if (response.success) {\r\n toast.success('Project was deleted successfully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n navigate(\"/projectreportoverview\");\r\n });\r\n };\r\n\r\n const cancelPriceChange = () => {\r\n setHistoricalPriceChangeDialogOpen(false);\r\n setProjectDetailRows(originalProjectDetailRows);\r\n };\r\n\r\n const handlePriceChangeSave = (newProjectDetailRows, historicalPriceChange) => {\r\n if (currentSaveType === \"row\") {\r\n save(newProjectDetailRows, historicalPriceChange);\r\n } else if (currentSaveType === \"project\") {\r\n sendToApi(historicalPriceChange);\r\n }\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Modify your project\" {...props} wipe={true} backbutton={true} />\r\n {loading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n }\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n\r\n }} >\r\n {/* <Box sx={{ paddingBottom: '10px', display: 'flex', flexDirection: 'row', justifyContent: 'space-between' }}>\r\n <Typography variant='h5'>Modify your project</Typography>\r\n <CustomizedMenus isActive={activeProject} handleDialogOpenDel={handleDialogOpenDel} handleClickOpenQr={handleClickOpenQr} duplicateRedirect={duplicateRedirect} resultsRedirect={resultsRedirect} financialDashboardRedirect={financialDashboardRedirect}></CustomizedMenus>\r\n </Box> */}\r\n <div className={classes.header} sx={{ paddingBottom: '16px', display: 'flex', flexDirection: 'row', justifyContent: 'space-between', width: '100%' }}>\r\n <button className={classes.backButton} onClick={() => navigate('/projectreportoverview')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to project overview\r\n </button>\r\n <h1>Modify your project</h1>\r\n <CustomizedMenus isActive={activeProject} handleDialogOpenDel={handleDialogOpenDel} handleClickOpenQr={handleClickOpenQr} duplicateRedirect={duplicateRedirect} resultsRedirect={resultsRedirect} financialDashboardRedirect={financialDashboardRedirect}></CustomizedMenus>\r\n </div>\r\n\r\n <Box className={classes.container}>\r\n <div className={classes.optionContainer}>\r\n <div className={classes.projectOptions}>\r\n <div className={classes.projectOption}>\r\n <label className={classes.labelContainer__label}>Project name</label>\r\n <TextfieldInput label={projectName ? \" \" : \"Project\"} InputLabelProps={{ shrink: false }} value={projectName} action={setProject} helperText={helperTextProjectName} error={errorProjectName} />\r\n </div>\r\n <div className={classes.projectOption}>\r\n <label className={classes.labelContainer__label}>Company name</label>\r\n <DropdownCompany companies={allCompanies} value={CompanyName} action={setCompany} helperText={helperTextCompany} disabled={projectHasMeasurements} error={errorCompany} />\r\n </div>\r\n <div className={classes.projectOption}>\r\n <div className={classes.projectOption__labelContainer}>\r\n <label className={classes.labelContainer__label}>Registration point</label>\r\n <Tooltip disableInteractive title=\"A registration point could be 'Welding machine 1'. It describes the location where you are taking measurements\">\r\n <CircleHelp className={classes.labelContainer__help} />\r\n </Tooltip>\r\n </div>\r\n <DropdownResources resources={resources} value={resourceName} action={setResource} helperText={helperTextResourceDescription} error={errorResourceDescription} />\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <Grid2 item xs={12} style={{ marginBottom: '-1rem' }}>\r\n <DescriptionItem Text=\"Active between:\" />\r\n <DateSelectionFuture FromDate={FromDate} ToDate={ToDate} setDates={setDates} setTheFromDate={setTheFromDate} setTheToDate={setTheToDate} />\r\n <Divider style={{ marginBottom: \"2rem\", marginTop: \"1rem\" }}></Divider>\r\n </Grid2>\r\n {emptyDetails ?\r\n <div>\r\n <Grid2 item xs={12} sm={12} md={12} style={{ border: \"solid 2px\", borderColor: \"#d32f2f\", borderRadius: \"17px\" }}>\r\n <TableDragResources create={false} {...props} types={types} currency={activeCurrency} rows={projectDetailRows} setRows={setProjectDetailRows} companyId={CompanyId} makeSave={save} />\r\n </Grid2>\r\n <p style={{ color: \"#d32f2f\", fontWeight: \"400\", fontSize: \"0.75rem\", fontFamily: \"Roboto, Helvetica, Arial\", letterSpacing: \"0.03333em\" }}>Please create at least one item.</p>\r\n </div>\r\n :\r\n <div>\r\n <Grid2 item xs={12} sm={12} md={12}>\r\n <TableDragResources ref={tableDragResourcesRef} create={false} {...props} types={types} currency={activeCurrency} rows={projectDetailRows} setRows={setProjectDetailRows} companyId={CompanyId} makeSave={save} />\r\n </Grid2>\r\n </div>}\r\n <div className={classes.buttonDiv} style={{ marginTop: '15px' }}>\r\n {/* <Button size='large' className={classes.qrButton} onClick={sendToQr} disabled variant=\"contained\">Generate QR</Button> */}\r\n {/* <ButtonSave startIcon={<Save />} content=\"Save\" onClick={sendToApi} /> */}\r\n <button className={classes.primaryIconButton} onClick={() => sendToApi()}>\r\n <Save className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Save\r\n </button>\r\n </div>\r\n </Box>\r\n </Box>\r\n\r\n {openQr &&\r\n <ShareDialog openQr={openQr} handleCloseQr={handleCloseQr} projectQR={projectQR} projectName={projectName} resourceName={resourceName}></ShareDialog>\r\n }\r\n\r\n <ChangeHistoricalPriceDialog dialogOpen={historicalPriceChangeDialogOpen} closeDialog={() => cancelPriceChange()} newProjectDetailRows={projectDetailRows} originalProjectDetailRows={originalProjectDetailRows} currency={activeCurrency} save={handlePriceChangeSave}></ChangeHistoricalPriceDialog>\r\n\r\n {delopen &&\r\n <Dialog\r\n open={delopen}\r\n onClose={handleDialogCloseDel}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n <DialogTitle id=\"alert-dialog-title\">\r\n {\"Delete Project\"}\r\n </DialogTitle>\r\n <DialogContent>\r\n <DialogContentText id=\"alert-dialog-description\">\r\n {\"Are you sure you want to delete project \" + projectName + \" ?\"}\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions>\r\n <ButtonNormalText content=\"Close\" onClick={handleDialogCloseDel}>Close</ButtonNormalText>\r\n <ButtonNormalDelete startIcon={<Trash2 />} content=\"Delete\" onClick={handleDeleteProject}>Delete</ButtonNormalDelete>\r\n </DialogActions>\r\n </Dialog>\r\n }\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ModifyPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n position: 'fixed',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n container: {\r\n boxSizing: \"border-box\",\r\n position: 'relative',\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n maxWidth: \"100%\",\r\n marginBottom: \"24px\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n minHeight: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n buttonDiv: {\r\n marginTop: '15px',\r\n float: 'right'\r\n },\r\n buttonRow: {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n paddingLeft: '0px !important',\r\n paddingRight: '0px !important',\r\n marginBottom: '10px',\r\n },\r\n optionContainer: {\r\n marginBottom: \"24px\",\r\n display: 'flex',\r\n position: 'relative',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%'\r\n },\r\n },\r\n projectOptions: {\r\n display: 'flex',\r\n gap: \"16px\",\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap',\r\n width: '100%'\r\n\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap',\r\n width: '100%'\r\n\r\n }\r\n },\r\n\r\n menuOption: {\r\n zIndex: '100',\r\n top: '5px',\r\n position: 'absolute',\r\n right: '5px',\r\n display: 'flex',\r\n justifyContent: 'end',\r\n },\r\n\r\n projectOption: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n\r\n [theme.breakpoints.up('md')]: {\r\n width: \"100%\",\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n },\r\n },\r\n\r\n projectOption__labelContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n },\r\n\r\n labelContainer__label: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\"\r\n },\r\n\r\n labelContainer__help: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n display: \"block\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n transition: \"color ease-in 0.2s\",\r\n\r\n \"&:hover\": {\r\n color: \"rgba(12, 14, 41, 1)\",\r\n }\r\n },\r\n\r\n menuRight: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n\r\n menuLeft: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n },\r\n\r\n titleTextStyle: {\r\n marginLeft: \"20px\",\r\n },\r\n\r\n titleSection: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n\r\n smallMenuItem: {\r\n display: \"flex\",\r\n paddingBottom: \"1rem\",\r\n justifyContent: \"center\",\r\n background: \"#FFFFFF\",\r\n alignItems: \"center\"\r\n },\r\n\r\n titleStyle: {\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n display: \"flex\",\r\n alignContent: \"space-around\",\r\n alignItems: \"center\",\r\n background: \"#FFFFFF\",\r\n justifyContent: \"space-between\"\r\n },\r\n\r\n activeFor: {\r\n color: \"#696969\",\r\n fontSize: \"15px\",\r\n },\r\n\r\n backIcon: {\r\n padding: \"20px\",\r\n cursor: \"pointer\"\r\n },\r\n\r\n hstyle: {\r\n fontStyle: \"normal\",\r\n fontWeight: \"bold\",\r\n fontSize: \"2.5rem\",\r\n lineHeight: \"48px\",\r\n color: \"#1D3557\",\r\n },\r\n\r\n printIcon: {\r\n paddingRight: '5px',\r\n },\r\n\r\n doneButton: {\r\n backgroundColor: '#C3996B !important',\r\n },\r\n\r\n printButton: {\r\n backgroundColor: '#0B4097 !important',\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"2px\",\r\n\r\n display: \"block\",\r\n },\r\n}));","import React from \"react\";\r\nimport { Route, Routes } from \"react-router-dom\";\r\nimport LoginPage from '../Login/LoginPage';\r\nimport BookDemoPage from \"../BookDemo/BookDemoPage\";\r\nimport SelectMenuPage from '../SelectMenu/SelectMenuPage';\r\nimport ResultsPage from '../Results/ResultsPage';\r\nimport { PrivateRoute } from '../../Shared/PrivateRoute';\r\nimport CreatePage from '../CreateProject/CreatePage';\r\nimport ConfigurationPage from '../Configuration/ConfigurationPage';\r\nimport DataManagementPage from '../DataManagement/DataManagementPage';\r\nimport UserSettingsPage from '../User/UserSettings/userSettings';\r\nimport ProjectReportPage from \"../ProjectReport/ProjectReport\";\r\nimport ProjectReportOverviewPage from \"../ProjectReportOverview/ProjectReportOverview\";\r\nimport GraphsOverviewPage from \"../Graphs/GraphsOverviewPage\";\r\nimport GraphDetailPage from \"../Graphs/GraphDetailPage\";\r\nimport ModifyGraphPage from \"../Graphs/ModifyGraphPage\";\r\nimport ViewGraphPage from \"../Graphs/ViewGraphPage\";\r\nimport ModifyPage from '../ModifyProject/ModifyPage';\r\nimport PerformMeasurementPage from \"../PerformMeasurement/PerformMeasurementPage\";\r\nimport ManagePage from \"../ProjectOverview/ManagePage\";\r\nimport DuplicatePage from \"../DuplicateProject/DuplicatePage\";\r\nimport CreateListPage from \"../CreateList/CreateList\";\r\nimport CreateExternalApiPage from \"../CreateExternalApi/CreateExternalApi\";\r\nimport ModifyListPage from \"../ModifyList/ModifyList\";\r\nimport ModifyExternalApiPage from \"../ModifyExternalApi/ModifyExternalApi\";\r\nimport PrivacyPolicyPage from \"../PrivacyPolicy/PrivacyPolicyPage\";\r\nimport ListOverviewPage from \"../ProjectListOverview/ListOverview\";\r\nimport ExternalApiOverviewPage from \"../ExternalApiListOverview/ExternalApiOverview\";\r\nimport CompanySettingsPage from \"../CompanyManagment/CompanySettings\";\r\nimport AccountOverviewPage from \"../AccountOverview/AccountOverview\";\r\nimport GeneralLedgerAccountPage from \"../GeneralLedgerAccount/GeneralLedgerAccountPage\";\r\nimport { Roles } from '../../../Config/constants';\r\n\r\n\r\nimport LandingPage from \"../Landing/LandingPage\";\r\n\r\nfunction NavigationPage(props) {\r\n\r\n const loggedInState = props.Login.loginState;\r\n\r\n return (\r\n <React.Fragment>\r\n <Routes>\r\n {loggedInState && (<Route path=\"/\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <SelectMenuPage {...props}></SelectMenuPage> </PrivateRoute>}></Route>)}\r\n <Route path=\"/user\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <UserSettingsPage {...props}></UserSettingsPage> </PrivateRoute>}></Route>\r\n <Route path=\"/create\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <CreatePage {...props}></CreatePage> </PrivateRoute>}></Route>\r\n <Route path=\"/datamanagement\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <DataManagementPage {...props}></DataManagementPage> </PrivateRoute>}></Route>\r\n <Route path=\"/modifydropdown/:dropdownUniqueId\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ModifyListPage {...props}></ModifyListPage> </PrivateRoute>}></Route>\r\n <Route path=\"/createdropdown\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <CreateListPage {...props}></CreateListPage> </PrivateRoute>}></Route>\r\n <Route path=\"/projectreport/:projectQr\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ProjectReportPage {...props}></ProjectReportPage> </PrivateRoute>}></Route>\r\n <Route path=\"/projectreportoverview\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ProjectReportOverviewPage {...props}></ProjectReportOverviewPage> </PrivateRoute>}></Route>\r\n <Route path=\"/createapi\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <CreateExternalApiPage {...props}></CreateExternalApiPage> </PrivateRoute>}></Route>\r\n <Route path=\"/modifyapi/:apiUniqueId\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ModifyExternalApiPage {...props}></ModifyExternalApiPage> </PrivateRoute>}></Route>\r\n <Route path=\"/dropdownoverview\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ListOverviewPage {...props}></ListOverviewPage> </PrivateRoute>}></Route>\r\n <Route path=\"/externalapioverview\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ExternalApiOverviewPage {...props}></ExternalApiOverviewPage> </PrivateRoute>}></Route>\r\n <Route path=\"/graphs\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <GraphsOverviewPage {...props}></GraphsOverviewPage> </PrivateRoute>}></Route>\r\n <Route path=\"/modifygraph/:graphId\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ModifyGraphPage {...props}></ModifyGraphPage> </PrivateRoute>}></Route>\r\n <Route path=\"/graph/:graphId\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <GraphDetailPage {...props}></GraphDetailPage> </PrivateRoute>}></Route>\r\n <Route path=\"/modify\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ModifyPage {...props}></ModifyPage> </PrivateRoute>}></Route>\r\n <Route path=\"/modifyproject/:projectQr\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ModifyPage {...props}></ModifyPage> </PrivateRoute>}></Route>\r\n <Route path=\"/scanqr\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <LoginPage {...props}></LoginPage> </PrivateRoute>}></Route>\r\n <Route path=\"/results\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ResultsPage {...props}></ResultsPage> </PrivateRoute>}></Route>\r\n <Route path=\"/results/:projectQr\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ResultsPage {...props}></ResultsPage> </PrivateRoute>}></Route>\r\n <Route path=\"/manage\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ManagePage {...props}></ManagePage> </PrivateRoute>}></Route>\r\n <Route path=\"/duplicate/:projectQr\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <DuplicatePage {...props}></DuplicatePage> </PrivateRoute>}></Route>\r\n <Route path=\"/configuration\" loggedInState={loggedInState} element={<PrivateRoute {...props}> <ConfigurationPage {...props}></ConfigurationPage> </PrivateRoute>}></Route>\r\n <Route path=\"/company\" loggedInState={loggedInState} element={<PrivateRoute {...props}> {props.Login !== undefined && props.Login.userRoles !== undefined && props.Login.userRoles !== null && <CompanySettingsPage {...props}></CompanySettingsPage>} </PrivateRoute>}></Route>\r\n <Route path=\"/accountoverview\" loggedInState={loggedInState} element={<PrivateRoute {...props}><AccountOverviewPage {...props}></AccountOverviewPage></PrivateRoute>}></Route>\r\n {/* <Route path=\"/generalledgeraccount\" loggedInState={loggedInState} element={<PrivateRoute {...props}><GeneralLedgerAccountPage {...props}></GeneralLedgerAccountPage></PrivateRoute>}></Route> */}\r\n </Routes>\r\n <Routes>\r\n <Route path=\"/login\" exact loggedInState={loggedInState} element={<LoginPage {...props} />} />\r\n <Route path=\"/measure\" loggedInState={loggedInState} element={<PerformMeasurementPage loggedInState={loggedInState} {...props} />} />\r\n <Route path=\"/viewgraph/:graphId\" loggedInState={loggedInState} element={<ViewGraphPage {...props}></ViewGraphPage>}></Route>\r\n <Route path=\"/\" exact loggedInState={loggedInState} element={!loggedInState && <LandingPage {...props} />} />\r\n <Route path=\"/bookdemo\" exact loggedInState={loggedInState} element={<BookDemoPage {...props} />} />\r\n <Route path=\"/privacypolicy\" exact loggedInState={loggedInState} element={<PrivacyPolicyPage {...props} />} />\r\n </Routes>\r\n </React.Fragment>\r\n )\r\n}\r\n\r\n\r\nexport default NavigationPage;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport cameraIcon from './camera.svg';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { LightenDarkenColor } from 'lighten-darken-color';\r\nimport Webcam from \"react-webcam\";\r\nimport CameraswitchIcon from '@mui/icons-material/Cameraswitch';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport PhotoIcon from '@mui/icons-material/Photo';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Divider, Dialog, DialogActions, Tooltip, DialogContent, DialogTitle, Typography, List, ListItem, Pagination, TextField, IconButton, Card, Collapse, Button } from '@mui/material';\r\nimport PhotoCameraIcon from '@mui/icons-material/PhotoCamera';\r\nimport ReportProblemIcon from '@mui/icons-material/ReportProblem';\r\nimport PropTypes from 'prop-types';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { parseNewDateToDDMMYYY } from '../../../Utils/dateHelper';\r\nimport { Key } from 'lucide-react';\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n <div\r\n role=\"tabpanel\"\r\n hidden={value !== index}\r\n id={`vertical-tabpanel-${index}`}\r\n aria-labelledby={`vertical-tab-${index}`}\r\n {...other}\r\n >\r\n {value === index && (\r\n <div style={{ paddingLeft: \"10px\", paddingTop: \"10px\", paddingRight: \"10px\" }}>\r\n <Typography>{children}</Typography>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.number.isRequired,\r\n value: PropTypes.number.isRequired,\r\n};\r\n\r\n\r\nfunction Camera(props) {\r\n const classes = useStyles();\r\n\r\n const [openImage, setOpenImage] = useState(false);\r\n const [expanded, setExpanded] = useState(false);\r\n const [captured, setCaptured] = useState(false);\r\n const [lastImages, setLastImages] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [selectedImage, setSelectedImage] = useState(null);\r\n const [image, setImage] = useState(\"\")\r\n const [cameraSide, setCameraSide] = useState(true)\r\n const webcamRef = React.useRef(null);\r\n const current = new Date();\r\n const date = parseNewDateToDDMMYYY(current);\r\n const [open, setOpen] = useState(false);\r\n const [extraContent, setExtraContent] = useState(false)\r\n const [comment, setComment] = useState(\"\");\r\n const [openComment, setOpenComment] = useState(false);\r\n const [listOfComments, setListOfComments] = useState([]);\r\n\r\n // header\r\n const titleRef = useRef(null);\r\n const [isOverflowing, setIsOverflowing] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkOverflow = () => {\r\n if (titleRef.current) {\r\n const element = titleRef.current;\r\n\r\n // Temporarily remove the clamp styles to measure natural height\r\n const originalStyle = element.style.webkitLineClamp;\r\n element.style.webkitLineClamp = \"unset\";\r\n element.style.display = \"block\";\r\n\r\n // Measure natural height\r\n const naturalHeight = element.getBoundingClientRect().height;\r\n\r\n // Restore original styles\r\n element.style.webkitLineClamp = originalStyle;\r\n element.style.display = \"-webkit-box\";\r\n\r\n // Get line height dynamically\r\n const lineHeight = parseFloat(window.getComputedStyle(element).lineHeight);\r\n const maxHeight = lineHeight * 2; // Two lines\r\n\r\n setIsOverflowing(naturalHeight > maxHeight);\r\n }\r\n };\r\n\r\n checkOverflow();\r\n window.addEventListener(\"resize\", checkOverflow);\r\n return () => window.removeEventListener(\"resize\", checkOverflow);\r\n }, [props.description]);\r\n\r\n const titleElement = (\r\n <h2 ref={titleRef} className={classes.h2style}>\r\n {props.description}\r\n </h2>\r\n );\r\n\r\n useEffect(() => {\r\n setListOfComments(props.comments)\r\n // eslint-disable-next-line no-undef\r\n }, [props.comments]);\r\n\r\n\r\n useEffect(() => {\r\n if (props.toggleRefresh) {\r\n setLastImages([]);\r\n setCaptured(false);\r\n setImage(\"\");\r\n }\r\n // eslint-disable-next-line no-undef\r\n }, [props.toggleRefresh]);\r\n const cameraFace = {\r\n facingMode: \"user\"\r\n }\r\n\r\n const cameraBack = {\r\n facingMode: { exact: \"environment\" }\r\n }\r\n\r\n const CameraStyle = {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"absolute\",\r\n objectFit: \"cover\",\r\n top: \"0\",\r\n left: \"0\",\r\n }\r\n\r\n const handlePage = (event, value) => {\r\n setPage(value);\r\n };\r\n\r\n const handleDialogOpenComment = () => {\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogCloseComment = () => {\r\n setOpenComment(false);\r\n }\r\n\r\n const switchCameraMode = () => {\r\n setCameraSide(!cameraSide)\r\n }\r\n\r\n const handleDialogOpen = () => {\r\n setOpen(true);\r\n }\r\n\r\n const handleDialogClose = () => {\r\n setOpen(false);\r\n }\r\n\r\n const handleExpandClick = () => {\r\n setExpanded(!expanded);\r\n };\r\n\r\n const handleOpenImageOpen = (id) => {\r\n setOpenImage(true)\r\n setSelectedImage(id)\r\n };\r\n\r\n const handleOpenImageClose = () => {\r\n setOpenImage(false)\r\n };\r\n\r\n const handleExtraContentClick = () => {\r\n setExtraContent(!extraContent);\r\n };\r\n\r\n const GenerateId = () => {\r\n let tempArray = JSON.parse(JSON.stringify(lastImages));\r\n const ids = tempArray.map(object => {\r\n return object.id;\r\n });\r\n const max = Math.max(...ids);\r\n if (tempArray.length === 0) {\r\n return 1;\r\n }\r\n else {\r\n let index = max;\r\n index++;\r\n return index;\r\n }\r\n }\r\n\r\n const capture = () => {\r\n const imageSrc = webcamRef.current.getScreenshot();\r\n if (imageSrc !== null) {\r\n setCaptured(true);\r\n setImage(imageSrc);\r\n let tempImages = JSON.parse(JSON.stringify(lastImages));\r\n let ImageObject = { id: GenerateId(), image: imageSrc }\r\n if (tempImages.length < 3) {\r\n tempImages.push(ImageObject);\r\n setSelectedImage(ImageObject.id)\r\n setLastImages(tempImages)\r\n }\r\n else {\r\n tempImages.push(ImageObject);\r\n tempImages.shift();\r\n setSelectedImage(ImageObject.id)\r\n setLastImages(tempImages)\r\n }\r\n if (props.comment) {\r\n setComment(\"\");\r\n handleDialogOpenComment();\r\n }\r\n else {\r\n dataService.newMediaImage(date, imageSrc.slice(23), props.id,);\r\n }\r\n }\r\n else {\r\n alert(\"No Camera Found\");\r\n }\r\n }\r\n\r\n const handleSendWithComment = () => {\r\n\r\n dataService.newMediaImageWithComment(date, image.slice(23), props.id, comment);\r\n handleDialogCloseComment();\r\n let tempListOfComments = [...listOfComments];\r\n let index = tempListOfComments.length + 1;\r\n let newListItem = { comment: comment, index: index++, insertedOn: new Date(Date.now()) };\r\n tempListOfComments.push(newListItem)\r\n setListOfComments(tempListOfComments)\r\n setPage(index - 1)\r\n }\r\n\r\n return (\r\n <div>\r\n <Card>\r\n <div className={classes.freeText} style={{\r\n color: props.textColor,\r\n backgroundColor: `${props.color}`,\r\n }}>\r\n <div className={classes.headerDiv}>\r\n {props.isKey && <Key className={classes.keyStyle}></Key>}\r\n {props.comment && listOfComments.length > 0 ?\r\n <Button style={{ zIndex: \"4\", position: \"absolute\", left: \"3%\" }} size={'large'} onClick={handleExtraContentClick}>\r\n <ReportProblemIcon style={{ color: props.textColor }} />\r\n </Button>\r\n : <React.Fragment></React.Fragment>\r\n }\r\n {isOverflowing ? (\r\n <Tooltip title={props.description} placement=\"top\" arrow>\r\n {titleElement}\r\n </Tooltip>\r\n ) : (\r\n titleElement\r\n )}\r\n <img alt=\"cameraIcon\" className={classes.imageStyle} src={cameraIcon} style={{ filter: props.darkness ? 'invert(1)' : 'contrast(80%)' }} />\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.textDiv} style={{\r\n backgroundColor: LightenDarkenColor(props.color, 20)\r\n }}>\r\n <IconButton onClick={handleDialogOpen} style={{ color: props.textColor }}>\r\n <PhotoCameraIcon fontSize=\"large\" color='white' />\r\n </IconButton>\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.StyleDiv}>\r\n {lastImages.length > 0 ?\r\n lastImages.map(x =>\r\n <IconButton onClick={() => handleOpenImageOpen(x.id)} size=\"large\">\r\n <img alt={\"ThumbnailImage\"} style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={x.image}></img>\r\n </IconButton>\r\n ) :\r\n <React.Fragment></React.Fragment>\r\n }\r\n </div>\r\n </div>\r\n {openImage &&\r\n <Dialog\r\n open={openImage}\r\n onClose={handleOpenImageClose}\r\n maxWidth={\"lg\"}\r\n >\r\n <DialogTitle>\r\n {\"Image\"}\r\n </DialogTitle>\r\n <DialogContent>\r\n {selectedImage && <img alt=\"afbeelding\" style={{ maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }} src={lastImages.length > 0 ? lastImages.find(x => x.id === selectedImage).image : \"\"}></img>}\r\n </DialogContent>\r\n <DialogActions style={{ justifyContent: \"center\" }}>\r\n <Button content={\"Close\"} onClick={handleOpenImageClose} variant='contained' sx={{ background: '#C3996B !important', color: 'white !important', padding: '10px !important', borderRadius: '4px !important' }}>\r\n Close\r\n </Button>\r\n </DialogActions>\r\n </Dialog>\r\n\r\n }\r\n {openComment &&\r\n <Dialog\r\n fullWidth\r\n open={openComment}\r\n onClose={handleDialogCloseComment}>\r\n <DialogTitle>\r\n {\"Comment\"}\r\n <IconButton style={{ position: \"absolute\", right: \"10px\", top: \"5px\" }} onClick={handleDialogCloseComment} size=\"large\">\r\n <CloseIcon fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <div className={classes.StyleDivComment}>\r\n <TextField multiline\r\n rows={8}\r\n style={{ marginBottom: \"10px\", margin: \"10px\", width: \"87%\" }}\r\n label={comment ? \" \" : \"Make a comment.\"}\r\n InputLabelProps={{ shrink: false }} variant=\"outlined\"\r\n onChange={(event) => setComment(event.target.value)}\r\n value={comment} />\r\n <IconButton style={{ marginBottom: \"12px\" }} onClick={handleSendWithComment} size=\"large\">\r\n <SendIcon fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </div>\r\n </Dialog>\r\n }\r\n\r\n {open &&\r\n <Dialog\r\n fullScreen\r\n open={open}\r\n onClose={handleDialogClose}\r\n maxWidth={\"lg\"}\r\n >\r\n <DialogTitle style={{ background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\", boxShadow: 2, color: 'white', display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\r\n {\"Camera\"}\r\n <IconButton onClick={handleDialogClose} size=\"large\">\r\n <CloseIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"white\", boxShadow: 2 }} />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider></Divider>\r\n <DialogContent>\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraSide ? cameraBack : cameraFace}\r\n ></Webcam>\r\n </DialogContent>\r\n <Divider></Divider>\r\n <DialogActions style={{ justifyContent: \"center\", background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\" }}>\r\n <IconButton onClick={handleExpandClick} size=\"large\" style={{ fontSize: '50px', marginRight: '15px' }}>\r\n {captured ?\r\n <img style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image} alt=\"\"></img>\r\n :\r\n <PhotoIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"white\" }} />\r\n }\r\n </IconButton>\r\n <IconButton onClick={capture} size=\"large\" style={{ border: '1px solid white', fontSize: '50px', marginRight: '15px' }} className={classes.takePictureIcon}>\r\n <CircleIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"white\" }} />\r\n </IconButton>\r\n <IconButton onClick={switchCameraMode} size=\"large\" style={{ fontSize: '50px' }}>\r\n <CameraswitchIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"white\" }} />\r\n </IconButton>\r\n </DialogActions>\r\n <Divider style={{ background: \"rgb(0, 0, 0)\", zIndex: \"2\" }}></Divider>\r\n <Collapse style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }} in={expanded} timeout=\"auto\" unmountOnExit>\r\n <DialogContent style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }}>\r\n <img style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\", maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }}\r\n src={image} alt=\"\"></img>\r\n </DialogContent>\r\n </Collapse>\r\n </Dialog>\r\n }\r\n\r\n </Card>\r\n {\r\n extraContent ? <div style={{ position: \"relative\" }}>\r\n <div style={{ position: \"absolute\", top: \"1\", width: \"100%\", zIndex: \"10\" }}>\r\n <Collapse in={extraContent} timeout=\"auto\" unmountOnExit >\r\n <Card >\r\n {listOfComments.filter(list => list.index === page).map(x =>\r\n <List sx={{ width: '100%', overflow: \"hidden\" }}>\r\n <ListItem>\r\n <Typography style={{ width: \"70%\" }} >{props.description + \" Comment: \" + x.index}</Typography>\r\n <Typography style={{ width: \"30%\", fontWeight: \"bold\" }}>{parseNewDateToDDMMYYY(new Date(x.insertedOn))}</Typography>\r\n </ListItem>\r\n <Divider></Divider>\r\n {x.comment !== \"\" ?\r\n <ListItem>\r\n <Typography style={{ hyphens: \"auto\", wordWrap: \"break-word\", overflowWrap: \"anywhere\" }}>{x.comment}</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment === \"\" && (x.image === \"\" || x.image === null) ?\r\n <ListItem>\r\n <Typography style={{ color: \"red\" }} >No recorded comment.</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n <Divider></Divider>\r\n <ListItem style={{ justifyContent: 'center' }}>\r\n <Pagination page={page} variant=\"outlined\" size=\"small\" siblingCount={0} count={listOfComments.length} onChange={handlePage} />\r\n </ListItem>\r\n </List>\r\n )\r\n }\r\n </Card>\r\n </Collapse>\r\n </div>\r\n </div> :\r\n <React.Fragment></React.Fragment>\r\n }\r\n </div >\r\n );\r\n}\r\n\r\n\r\nexport default Camera;\r\n\r\nconst useStyles = makeStyles({\r\n freeText: {\r\n overflow: 'hidden',\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundSize: \"10rem 10rem\",\r\n backgroundPosition: \"center\",\r\n height: \"12rem\",\r\n },\r\n takePictureIcon: {\r\n padding: '0px !important'\r\n },\r\n headerDiv: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n },\r\n h2style: {\r\n margin: '0',\r\n zIndex: '2',\r\n maxWidth: 'calc(100% - 150px)',\r\n\r\n // break words if they are too long\r\n whiteSpace: 'normal',\r\n textOverflow: 'ellipsis',\r\n wordWrap: 'break-word',\r\n\r\n // max two lines\r\n display: '-webkit-box',\r\n WebkitLineClamp: '2',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n },\r\n StyleDiv: {\r\n height: '33%',\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-evenly\",\r\n alignItems: 'center',\r\n },\r\n StyleDivComment: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'flex-end',\r\n },\r\n imageStyle: {\r\n position: 'absolute',\r\n right: '3%',\r\n opacity: '50%',\r\n width: '50px',\r\n },\r\n keyStyle: {\r\n position: 'absolute',\r\n left: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n textDiv: {\r\n paddingLeft: '15px',\r\n paddingRight: '15px',\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n height: '34%',\r\n alignItems: 'center',\r\n }\r\n});","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCounterStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 288.27 288.27\",\n style: {\n enableBackground: \"new 0 0 288.27 288.27\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M89.516,288.27h109.238c43.605,0,79.084-35.474,79.084-79.084V79.084 C277.838,35.474,242.365,0,198.754,0H89.516C45.911,0,10.432,35.474,10.432,79.084v130.102 C10.432,252.797,45.911,288.27,89.516,288.27z M21.31,79.084c0-37.611,30.595-68.206,68.206-68.206h109.238 c37.611,0,68.206,30.595,68.206,68.206v130.102c0,37.611-30.595,68.206-68.206,68.206H89.516 c-37.611,0-68.206-30.595-68.206-68.206C21.31,209.186,21.31,79.084,21.31,79.084z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M58.084,137.048h172.103c3.002,0,5.439-2.437,5.439-5.439V48.087c0-3.002-2.437-5.439-5.439-5.439 H58.084c-3.002,0-5.439,2.437-5.439,5.439v83.522C52.645,134.611,55.081,137.048,58.084,137.048z M63.523,53.526h161.225v72.644 H63.523V53.526z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M58.084,237.644h74.912c3.002,0,5.439-2.437,5.439-5.439v-72.943c0-3.002-2.437-5.439-5.439-5.439 H58.084c-3.002,0-5.439,2.437-5.439,5.439v72.943C52.645,235.212,55.081,237.644,58.084,237.644z M63.523,164.7h64.034v62.065 H63.523V164.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M230.187,153.822h-74.918c-3.002,0-5.439,2.437-5.439,5.439v72.943 c0,3.002,2.437,5.439,5.439,5.439h74.912c3.002,0,5.439-2.437,5.439-5.439v-72.943 C235.626,156.259,233.189,153.822,230.187,153.822z M224.748,226.765h-64.04V164.7h64.034v62.065H224.748z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M114.688,190.351l-38.753-0.098c-0.005,0-0.005,0-0.011,0c-2.997,0-5.434,2.426-5.439,5.428 c-0.005,3.002,2.42,5.445,5.428,5.45l38.753,0.098c0.005,0,0.005,0,0.011,0c2.997,0,5.434-2.426,5.439-5.428 C120.122,192.798,117.696,190.362,114.688,190.351z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M171.352,201.131h15.936v15.936c0,3.002,2.437,5.439,5.439,5.439s5.439-2.437,5.439-5.439v-15.936 h15.942c3.002,0,5.439-2.437,5.439-5.439c0-3.002-2.437-5.439-5.439-5.439h-15.942v-15.942c0-3.002-2.437-5.439-5.439-5.439 s-5.439,2.437-5.439,5.439v15.942h-15.936c-3.002,0-5.439,2.437-5.439,5.439C165.913,198.694,168.35,201.131,171.352,201.131z\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null)), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCounterStyle);\nexport default __webpack_public_path__ + \"static/media/counterStyle.ca5f5a356b92a75d4d6de79f66abc184.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { LightenDarkenColor } from 'lighten-darken-color';\r\nimport Tally from './counterStyle.svg';\r\nimport { List, ListItem, Pagination, InputAdornment, Divider, Button, IconButton, Card, Collapse, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Typography, Tooltip } from '@mui/material';\r\nimport { Key, Plus, Minus, TriangleAlert, Camera as CameraIcon, Send, Image, SwitchCamera, Circle, X } from 'lucide-react';\r\nimport Webcam from \"react-webcam\";\r\nimport { parseNewDateToDDMMYYY } from '../../../Utils/dateHelper';\r\n\r\nfunction Counter(props) {\r\n const classes = useStyles();\r\n const [captured, setCaptured] = useState(false);\r\n const [extraContent, setExtraContent] = useState(false)\r\n const [openComment, setOpenComment] = useState(false);\r\n const [openCamera, setOpenCamera] = useState(false);\r\n const [openFullscreenImage, setOpenFullscreenImage] = useState(false);\r\n const [image, setImage] = useState(\"\");\r\n const [comment, setComment] = useState(\"\");\r\n const [cameraSide, setCameraSide] = useState(true)\r\n const [expanded, setExpanded] = useState(false);\r\n const webcamRef = React.useRef(null);\r\n const [operator, setOperator] = useState(false);\r\n const [listOfComments, setListOfComments] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [disableDecrement, setDisableDecrement] = useState(true);\r\n\r\n const titleRef = useRef(null);\r\n const [isOverflowing, setIsOverflowing] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkOverflow = () => {\r\n if (titleRef.current) {\r\n const element = titleRef.current;\r\n\r\n // Temporarily remove the clamp styles to measure natural height\r\n const originalStyle = element.style.webkitLineClamp;\r\n element.style.webkitLineClamp = \"unset\";\r\n element.style.display = \"block\";\r\n\r\n // Measure natural height\r\n const naturalHeight = element.getBoundingClientRect().height;\r\n\r\n // Restore original styles\r\n element.style.webkitLineClamp = originalStyle;\r\n element.style.display = \"-webkit-box\";\r\n\r\n // Get line height dynamically\r\n const lineHeight = parseFloat(window.getComputedStyle(element).lineHeight);\r\n const maxHeight = lineHeight * 2; // Two lines\r\n\r\n setIsOverflowing(naturalHeight > maxHeight);\r\n }\r\n };\r\n\r\n checkOverflow();\r\n window.addEventListener(\"resize\", checkOverflow);\r\n return () => window.removeEventListener(\"resize\", checkOverflow);\r\n }, [props.description]);\r\n\r\n const titleElement = (\r\n <h2 ref={titleRef} className={classes.h2style}>\r\n {props.description}\r\n </h2>\r\n );\r\n\r\n useEffect(() => {\r\n if (props.counter === '0' && disableDecrement === false) {\r\n setDisableDecrement(true);\r\n }\r\n\r\n if (props.counter !== '0' && disableDecrement === true) {\r\n setDisableDecrement(false);\r\n }\r\n }, [props.counter, disableDecrement])\r\n\r\n useEffect(() => {\r\n setListOfComments(props.comments)\r\n // eslint-disable-next-line no-undef\r\n }, [props.refresh, props.comments]);\r\n\r\n const cameraFace = {\r\n facingMode: \"user\"\r\n }\r\n\r\n const cameraBack = {\r\n facingMode: { exact: \"environment\" }\r\n }\r\n\r\n const handleDialogOpenComment = () => {\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogCloseComment = () => {\r\n setOpenComment(false);\r\n }\r\n\r\n const handleDialogOpenCamera = () => {\r\n setOpenCamera(true);\r\n setOpenComment(false);\r\n }\r\n\r\n const handleDialogCloseCamera = () => {\r\n setOpenCamera(false);\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogOpenFullscreenImage = () => {\r\n setOpenFullscreenImage(true);\r\n }\r\n\r\n const handleDialogCloseFullscreenImage = () => {\r\n setOpenFullscreenImage(false);\r\n }\r\n\r\n const Cameremode = () => {\r\n setCameraSide(!cameraSide)\r\n }\r\n\r\n const handleExtraContentClick = () => {\r\n setExtraContent(!extraContent);\r\n };\r\n\r\n const handleExpandClick = () => {\r\n setExpanded(!expanded);\r\n };\r\n\r\n const handlePage = (event, value) => {\r\n setPage(value);\r\n };\r\n\r\n const Increment = () => {\r\n if (props.comment) {\r\n setComment(\"\");\r\n setImage(\"\");\r\n handleDialogOpenComment();\r\n setOperator(true);\r\n }\r\n else {\r\n props.action(parseInt(props.counter) + 1, props.id);\r\n }\r\n }\r\n\r\n const Decrement = () => {\r\n if (props.comment) {\r\n setComment(\"\");\r\n setImage(\"\");\r\n handleDialogOpenComment();\r\n setOperator(false);\r\n }\r\n else {\r\n props.action(parseInt(props.counter) - 1, props.id);\r\n }\r\n }\r\n\r\n const handleSendWithComment = () => {\r\n if (operator) {\r\n props.actionWithComment(parseInt(props.counter) + 1, props.id, image.slice(23), comment);\r\n }\r\n else {\r\n props.actionWithComment(parseInt(props.counter) - 1, props.id, image.slice(23), comment);\r\n }\r\n handleDialogCloseComment();\r\n let tempListOfComments = [...listOfComments];\r\n let index = tempListOfComments.length + 1;\r\n let newListItem = { image: image, comment: comment, index: index++, insertedOn: new Date(Date.now()) };\r\n tempListOfComments.push(newListItem)\r\n setListOfComments(tempListOfComments)\r\n setPage(index - 1)\r\n }\r\n\r\n const capture = () => {\r\n const imageSrc = webcamRef.current.getScreenshot();\r\n if (imageSrc !== null) {\r\n setCaptured(true);\r\n setImage(imageSrc);\r\n }\r\n else {\r\n alert(\"No Camera Found\");\r\n }\r\n }\r\n\r\n const CameraStyle = {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"absolute\",\r\n objectFit: \"cover\",\r\n top: \"0\",\r\n left: \"0\",\r\n }\r\n\r\n return (\r\n <div>\r\n <Card>\r\n <div className={classes.StyleCounter} style={{\r\n color: props.textColor,\r\n backgroundColor: `${props.color}`,\r\n }}>\r\n <div className={classes.headerDiv} >\r\n {props.isKey && <Key className={classes.keyStyle}></Key>}\r\n {props.comment && (listOfComments.length > 0 || listOfComments !== \"\") ?\r\n <Button style={{ zIndex: \"4\", position: \"absolute\", left: \"3%\" }} size={'large'} onClick={handleExtraContentClick}>\r\n <TriangleAlert style={{ color: props.textColor }} />\r\n </Button>\r\n : <React.Fragment></React.Fragment>\r\n }\r\n {isOverflowing ? (\r\n <Tooltip title={props.description} placement=\"top\" arrow>\r\n {titleElement}\r\n </Tooltip>\r\n ) : (\r\n titleElement\r\n )}\r\n <img className={classes.imageStyle} style={{ filter: props.darkness ? 'invert(1)' : 'contrast(80%)' }} src={Tally} alt=\"\" />\r\n </div>\r\n <Divider ></Divider>\r\n <div className={classes.counterDiv} style={{ backgroundColor: LightenDarkenColor(props.color, 20) }}>\r\n <p style={{ fontSize: \"50px\" }}>{props.counter}</p>\r\n </div>\r\n <Divider ></Divider>\r\n <div className={classes.StyleDiv}>\r\n <Button style={{ color: props.textColor, width: \"100%\", height: '100%', cursor: disableDecrement ? 'not-allowed' : 'pointer' }} onClick={Decrement} disabled={disableDecrement}>\r\n <Minus fontSize=\"large\" style={{ color: props.textColor, width: \"100%\" }} />\r\n </Button>\r\n <Divider orientation=\"vertical\"></Divider>\r\n <Button style={{ color: props.textColor, width: \"100%\", height: '100%' }} onClick={Increment}>\r\n <Plus fontSize=\"large\" style={{ color: props.textColor, width: \"100%\" }} />\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n <Dialog\r\n fullScreen\r\n open={openCamera}\r\n onClose={handleDialogCloseCamera}\r\n maxWidth={\"lg\"}\r\n >\r\n <DialogTitle style={{ background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\", color: 'white', display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\r\n <h3>{\"Camera\"}</h3>\r\n <IconButton onClick={handleDialogCloseCamera} size=\"large\">\r\n <X style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider></Divider>\r\n <DialogContent>\r\n {\r\n cameraSide === true ?\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraBack}\r\n ></Webcam> :\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraFace}\r\n ></Webcam>\r\n }\r\n </DialogContent>\r\n <Divider></Divider>\r\n <DialogActions style={{ justifyContent: \"center\", background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\" }}>\r\n <IconButton onClick={handleExpandClick} size=\"large\">\r\n {(captured && image !== \"\") ?\r\n <img alt=\"afbeelding\" style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image}></img>\r\n :\r\n <Image fontSize=\"inherit\" style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n }\r\n </IconButton>\r\n <IconButton onClick={capture} size=\"large\">\r\n <Circle fontSize=\"inherit\" style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n </IconButton>\r\n <IconButton onClick={Cameremode} size=\"large\">\r\n <SwitchCamera fontSize=\"inherit\" style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n </IconButton>\r\n </DialogActions>\r\n <Divider style={{ background: \"rgb(0, 0, 0)\", zIndex: \"2\" }}></Divider>\r\n <Collapse style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }} in={expanded} timeout=\"auto\" unmountOnExit>\r\n <DialogContent style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }}>\r\n <img alt=\"afbeelding\"\r\n style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\", maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }}\r\n src={image}></img>\r\n </DialogContent>\r\n </Collapse>\r\n </Dialog>\r\n\r\n <Dialog\r\n fullWidth\r\n open={openComment}\r\n onClose={handleDialogCloseComment}>\r\n <DialogTitle>\r\n {\"Comment\"}\r\n <IconButton style={{ position: \"absolute\", right: \"10px\", top: \"5px\" }} onClick={handleDialogCloseComment} size=\"large\">\r\n <X fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <div className={classes.StyleDivComment}>\r\n <TextField multiline\r\n rows={8}\r\n style={{ marginBottom: \"10px\", margin: \"10px\", width: \"87%\" }}\r\n label={comment ? \" \" : \"Make a comment.\"}\r\n InputLabelProps={{ shrink: false }} variant=\"outlined\"\r\n onChange={(event) => setComment(event.target.value)}\r\n value={comment}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment style={{ marginTop: \"160px\" }}>\r\n {image !== \"\" ?\r\n <div>\r\n <IconButton onClick={handleDialogOpenFullscreenImage}>\r\n <img alt=\"afbeelding\" style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image}></img>\r\n </IconButton>\r\n <IconButton onClick={handleDialogOpenCamera} >\r\n <CameraIcon />\r\n </IconButton>\r\n </div>\r\n :\r\n <div>\r\n <IconButton onClick={handleDialogOpenCamera} >\r\n <CameraIcon />\r\n </IconButton>\r\n </div>\r\n }\r\n </InputAdornment>)\r\n }} />\r\n <IconButton style={{ marginBottom: \"12px\" }} onClick={handleSendWithComment} size=\"large\">\r\n <Send fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </div>\r\n </Dialog>\r\n\r\n\r\n <Dialog\r\n fullScreen\r\n open={openFullscreenImage}\r\n onClose={handleDialogCloseFullscreenImage}>\r\n <DialogTitle style={{ background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\", display: 'flex', justifyContent: 'end' }}>\r\n <IconButton style={{}} onClick={handleDialogCloseFullscreenImage} size=\"large\">\r\n <X fontSize=\"inherit\" color='white' style={{ width: '40px', height: '40px' }} />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <DialogContent>\r\n <img alt=\"afbeelding\" style={CameraStyle} src={image}></img>\r\n </DialogContent>\r\n </Dialog>\r\n\r\n </Card>\r\n {extraContent ? <div style={{ position: \"relative\" }}>\r\n <div style={{ position: \"absolute\", top: \"1\", width: \"100%\", zIndex: \"10\" }}>\r\n <Collapse in={extraContent} timeout=\"auto\" unmountOnExit >\r\n <Card >\r\n {listOfComments.filter(list => list.index === page).map(x =>\r\n <List sx={{ width: '100%', overflow: \"hidden\" }}>\r\n <ListItem>\r\n <Typography style={{ width: \"70%\" }} >{props.description + \" Comment: \" + x.index}</Typography>\r\n <Typography style={{ width: \"30%\", fontWeight: \"bold\" }}>{parseNewDateToDDMMYYY(new Date(x.insertedOn))}</Typography>\r\n </ListItem>\r\n <Divider></Divider>\r\n {x.image !== \"\" && x.image !== null ?\r\n <ListItem style={{ marginBottom: \"10px\", display: \"flex\", justifyContent: \"center\" }}>\r\n <img alt=\"afbeelding\" src={x.image} style={{ maxWidth: \"100%\", maxHeight: \"calc(40vh - 16px)\", borderRadius: \"15px\" }} />\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment !== \"\" ?\r\n <ListItem>\r\n <Typography style={{ hyphens: \"auto\", wordWrap: \"break-word\", overflowWrap: \"anywhere\" }}>{x.comment}</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment === \"\" && (x.image === \"\" || x.image === null) ?\r\n <ListItem>\r\n <Typography style={{ color: \"red\" }} >No recorded comment.</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n <Divider></Divider>\r\n <ListItem style={{ justifyContent: 'center' }}>\r\n <Pagination page={page} variant=\"outlined\" size=\"small\" siblingCount={0} count={listOfComments.length} onChange={handlePage} />\r\n </ListItem>\r\n </List>\r\n )\r\n }\r\n </Card>\r\n </Collapse>\r\n </div>\r\n </div> :\r\n <React.Fragment></React.Fragment>}\r\n </div>\r\n )\r\n}\r\nexport default Counter;\r\n\r\nconst useStyles = makeStyles({\r\n headerDiv: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n position: 'relative'\r\n },\r\n h2style: {\r\n margin: '0',\r\n zIndex: '2',\r\n maxWidth: 'calc(100% - 150px)',\r\n\r\n // break words if they are too long\r\n whiteSpace: 'normal',\r\n textOverflow: 'ellipsis',\r\n wordWrap: 'break-word',\r\n\r\n // max two lines\r\n display: '-webkit-box',\r\n WebkitLineClamp: '2',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n },\r\n StyleDiv: {\r\n height: '33%',\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-evenly\",\r\n alignItems: 'center',\r\n },\r\n StyleDivComment: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'flex-end',\r\n },\r\n counterDiv: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n height: '34%',\r\n alignItems: 'center',\r\n\r\n },\r\n fabStyle: {\r\n position: 'absolute',\r\n left: '3%'\r\n },\r\n imageStyle: {\r\n position: 'absolute',\r\n right: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n keyStyle: {\r\n position: 'absolute',\r\n left: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n StyleCounter: {\r\n overflow: 'hidden',\r\n backgroundRepeat: \"no-repeat !important\",\r\n backgroundSize: \"10rem 10rem\",\r\n backgroundPosition: \"center\",\r\n height: \"12rem\"\r\n }\r\n\r\n});","import React, { useEffect, useState, useRef } from 'react';\r\nimport { Divider, Select, MenuItem, Card, Tooltip } from '@mui/material';\r\nimport { Key } from 'lucide-react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { LightenDarkenColor } from 'lighten-darken-color';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport DataListIcon from './DataList.svg';\r\n\r\nfunction DataList(props) {\r\n const [datalistValue, setDatalistValue] = useState(\"\")\r\n const [listItems, setListItems] = useState([]);\r\n const classes = useStyles();\r\n\r\n const titleRef = useRef(null);\r\n const [isOverflowing, setIsOverflowing] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkOverflow = () => {\r\n if (titleRef.current) {\r\n const element = titleRef.current;\r\n\r\n // Temporarily remove the clamp styles to measure natural height\r\n const originalStyle = element.style.webkitLineClamp;\r\n element.style.webkitLineClamp = \"unset\";\r\n element.style.display = \"block\";\r\n\r\n // Measure natural height\r\n const naturalHeight = element.getBoundingClientRect().height;\r\n\r\n // Restore original styles\r\n element.style.webkitLineClamp = originalStyle;\r\n element.style.display = \"-webkit-box\";\r\n\r\n // Get line height dynamically\r\n const lineHeight = parseFloat(window.getComputedStyle(element).lineHeight);\r\n const maxHeight = lineHeight * 2; // Two lines\r\n\r\n setIsOverflowing(naturalHeight > maxHeight);\r\n }\r\n };\r\n\r\n checkOverflow();\r\n window.addEventListener(\"resize\", checkOverflow);\r\n return () => window.removeEventListener(\"resize\", checkOverflow);\r\n }, [props.description]);\r\n\r\n const titleElement = (\r\n <h2 ref={titleRef} style={{ color: `${props.textColor} !important` }} className={classes.h2style}>\r\n {props.description}\r\n </h2>\r\n );\r\n\r\n useEffect(() => {\r\n dataService.getListItemsByListIdAndProjectGuid(props.dataListId, props.projectGuid).then(result => {\r\n setListItems(result.sort((a, b) => a.name.localeCompare(b.name)));\r\n });\r\n setDatalistValue(\"\")\r\n // eslint-disable-next-line \r\n }, [props.refresh])\r\n\r\n const handleSelect = (e) => {\r\n setDatalistValue(e.target.value)\r\n props.setDataValue(e.target.value, props.id)\r\n }\r\n\r\n return (\r\n <Card>\r\n <div className={classes.freeText} style={{ color: props.textColor, backgroundColor: `${props.color}` }}>\r\n <div className={classes.headerDiv} style={{ color: `${props.textColor} !important` }}>\r\n {props.isKey && <Key className={classes.keyStyle}></Key>}\r\n {isOverflowing ? (\r\n <Tooltip title={props.description} placement=\"top\" arrow>\r\n {titleElement}\r\n </Tooltip>\r\n ) : (\r\n titleElement\r\n )}\r\n <img className={classes.imageStyle} style={{ filter: props.darkness ? 'invert(1)' : 'contrast(80%)' }} src={DataListIcon} alt=\"\" />\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.textDiv} style={{ color: props.textColor, backgroundColor: LightenDarkenColor(props.color, 20) }}>\r\n <Select\r\n style={{ display: 'flex !important', flexDirection: 'column !important' }}\r\n value={datalistValue}\r\n onChange={handleSelect}\r\n fullWidth >\r\n {listItems.map((row, index) => (\r\n <MenuItem value={row.name} index={index} >{row.name}</MenuItem>\r\n ))}\r\n </Select>\r\n </div>\r\n <Divider></Divider>\r\n </div>\r\n </Card >\r\n );\r\n}\r\n\r\n\r\nexport default DataList;\r\n\r\nconst useStyles = makeStyles({\r\n\r\n freeText: {\r\n overflow: 'hidden',\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundSize: \"10rem 10rem\",\r\n backgroundPosition: \"center\",\r\n height: \"12rem\",\r\n\r\n },\r\n headerDiv: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n },\r\n h2style: {\r\n margin: '0',\r\n zIndex: '2',\r\n maxWidth: 'calc(100% - 150px)',\r\n\r\n // break words if they are too long\r\n whiteSpace: 'normal',\r\n textOverflow: 'ellipsis',\r\n wordWrap: 'break-word',\r\n\r\n // max two lines\r\n display: '-webkit-box',\r\n WebkitLineClamp: '2',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n },\r\n imageStyle: {\r\n position: 'absolute',\r\n right: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n keyStyle: {\r\n position: 'absolute',\r\n left: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n textDiv: {\r\n paddingLeft: '15px',\r\n paddingRight: '15px',\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n height: '34%',\r\n alignItems: 'center',\r\n },\r\n StyleDiv: {\r\n height: '33%',\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-evenly\",\r\n alignItems: 'center',\r\n },\r\n});","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFreetext(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 50,\n height: 50,\n viewBox: \"0 0 50 50\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.99727 0H0.976562C0.437207 0 0 0.437305 0 0.976562V6.99727C0 7.53652 0.437207 7.97383 0.976562 7.97383H3.125V42.0262H0.976562C0.437207 42.0262 0 42.4635 0 43.0027V49.0234C0 49.5627 0.437207 50 0.976562 50H6.99727C7.53662 50 7.97383 49.5627 7.97383 49.0234V46.875H41.9922V48.9895C41.9922 49.5287 42.4294 49.966 42.9688 49.966H48.9895C49.5288 49.966 49.966 49.5287 49.966 48.9895V42.9688C49.966 42.4294 49.5288 41.9922 48.9895 41.9922H46.875V7.97383H48.9895C49.5288 7.97383 49.966 7.53652 49.966 6.99727V0.976562C49.966 0.437305 49.5288 0 48.9895 0H42.9688C42.4294 0 41.9922 0.437305 41.9922 0.976562V3.125L7.97383 3.125V0.976562C7.97383 0.437305 7.53662 0 6.99727 0ZM41.9922 45.1172V42.9688C41.9922 42.4295 42.4294 41.9922 42.9688 41.9922H45.1172V7.97383H42.9688C42.4294 7.97383 41.9922 7.53652 41.9922 6.99727V4.88281L7.97383 4.88281V6.99727C7.97383 7.53652 7.53662 7.97383 6.99727 7.97383H4.88281V42.0262H6.99727C7.53662 42.0262 7.97383 42.4634 7.97383 43.0027V45.1172H41.9922ZM6.0207 6.0207H1.95312V1.95312H6.0207V6.0207ZM48.0129 6.0207H43.9453V1.95312H48.0129V6.0207ZM43.9453 48.0129H48.0129V43.9453H43.9453V48.0129ZM6.0207 48.0469H1.95312V43.9793H6.0207V48.0469ZM28.3982 34.1218H32.5603C33.0995 34.1218 33.5368 34.5591 33.5367 35.0983V39.9418C33.5367 40.4811 33.0995 40.9184 32.5602 40.9184H17.4397C16.9004 40.9184 16.4632 40.4811 16.4632 39.9418V35.0983C16.4632 34.5591 16.9004 34.1218 17.4397 34.1218H21.6018V15.8781H18.8651V18.1124C18.8651 18.6517 18.4279 19.089 17.8886 19.089H13.0452C12.5059 19.089 12.0687 18.6517 12.0687 18.1124V10.0582C12.0687 9.51895 12.5059 9.08164 13.0452 9.08164H36.9548C37.4941 9.08164 37.9313 9.51895 37.9313 10.0582V18.1124C37.9313 18.6517 37.4941 19.089 36.9548 19.089H32.1114C31.5721 19.089 31.1349 18.6517 31.1349 18.1124V15.8781H28.3982V34.1218ZM18.4163 38.9652H31.5836V36.0749H27.4216C26.8822 36.0749 26.445 35.6376 26.445 35.0983V14.9016C26.445 14.3623 26.8822 13.925 27.4216 13.925H32.1113C32.6507 13.925 33.0879 14.3623 33.0879 14.9016V17.1358H35.9781V11.0348H14.0218V17.1358H16.912V14.9016C16.912 14.3623 17.3492 13.925 17.8886 13.925H22.5783C23.1177 13.925 23.5549 14.3623 23.5549 14.9016V35.0983C23.5549 35.6376 23.1177 36.0749 22.5783 36.0749H18.4163V38.9652Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFreetext);\nexport default __webpack_public_path__ + \"static/media/Freetext.6f9f23778850a1ad8b6f4ba8ecb84b8a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef, useEffect } from 'react';\r\nimport Divider from '@mui/material/Divider';\r\nimport { TextField, Tooltip } from '@mui/material';\r\nimport TextIcon from './Freetext.svg';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { LightenDarkenColor } from 'lighten-darken-color';\r\nimport Card from '@mui/material/Card';\r\nimport { Key, Save } from 'lucide-react';\r\nimport { toast } from 'react-toastify';\r\n\r\nfunction FreeText(props) {\r\n const classes = useStyles();\r\n\r\n const titleRef = useRef(null);\r\n const [isOverflowing, setIsOverflowing] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkOverflow = () => {\r\n if (titleRef.current) {\r\n const element = titleRef.current;\r\n\r\n // Temporarily remove the clamp styles to measure natural height\r\n const originalStyle = element.style.webkitLineClamp;\r\n element.style.webkitLineClamp = \"unset\";\r\n element.style.display = \"block\";\r\n\r\n // Measure natural height\r\n const naturalHeight = element.getBoundingClientRect().height;\r\n\r\n // Restore original styles\r\n element.style.webkitLineClamp = originalStyle;\r\n element.style.display = \"-webkit-box\";\r\n\r\n // Get line height dynamically\r\n const lineHeight = parseFloat(window.getComputedStyle(element).lineHeight);\r\n const maxHeight = lineHeight * 2; // Two lines\r\n\r\n setIsOverflowing(naturalHeight > maxHeight);\r\n }\r\n };\r\n\r\n checkOverflow();\r\n window.addEventListener(\"resize\", checkOverflow);\r\n return () => window.removeEventListener(\"resize\", checkOverflow);\r\n }, [props.description]);\r\n\r\n const titleElement = (\r\n <h2 ref={titleRef} className={classes.h2style}>\r\n {props.description}\r\n </h2>\r\n );\r\n\r\n function getRGB(c) {\r\n return parseInt(c, 16) || c\r\n }\r\n\r\n function getsRGB(c) {\r\n return getRGB(c) / 255 <= 0.03928\r\n ? getRGB(c) / 255 / 12.92\r\n : Math.pow((getRGB(c) / 255 + 0.055) / 1.055, 2.4)\r\n }\r\n\r\n function getLuminance(hexColor) {\r\n if (hexColor.includes('#')) {\r\n return (\r\n 0.2126 * getsRGB(hexColor.substr(1, 2)) +\r\n 0.7152 * getsRGB(hexColor.substr(3, 2)) +\r\n 0.0722 * getsRGB(hexColor.substr(-2))\r\n )\r\n } else {\r\n return (\r\n 0.2126 * hexColor +\r\n 0.7152 * hexColor +\r\n 0.0722 * hexColor\r\n )\r\n }\r\n\r\n }\r\n\r\n function getContrast(f, b) {\r\n const L1 = getLuminance(f)\r\n const L2 = getLuminance(b)\r\n return (Math.max(L1, L2) + 0.05) / (Math.min(L1, L2) + 0.05)\r\n }\r\n\r\n function getTextColor(bgColor) {\r\n\r\n if (bgColor === null) {\r\n return '#ffffff';\r\n } else {\r\n const whiteContrast = getContrast(bgColor, '#ffffff')\r\n const blackContrast = getContrast(bgColor, '#000000')\r\n return whiteContrast > blackContrast ? '#ffffff' : '#000000';\r\n\r\n }\r\n\r\n }\r\n\r\n const sendData = () => {\r\n if (props.text) {\r\n props.action(props.text, props.id);\r\n } else {\r\n toast.error(\"Failed to submit. Enter something in the inputfield.\", { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n }\r\n\r\n return (\r\n <Card>\r\n <div className={classes.freeText} style={{\r\n color: props.textColor,\r\n backgroundColor: `${props.color}`\r\n }}>\r\n <div className={classes.headerDiv}>\r\n {props.isKey && <Key className={classes.keyStyle}></Key>}\r\n {isOverflowing ? (\r\n <Tooltip title={props.description} placement=\"top\" arrow>\r\n {titleElement}\r\n </Tooltip>\r\n ) : (\r\n titleElement\r\n )}\r\n <img className={classes.imageStyle} style={{ filter: props.darkness ? 'invert(1)' : 'contrast(80%)' }} src={TextIcon} alt=\"\" />\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.textDiv} style={{\r\n backgroundColor: LightenDarkenColor(props.color, 20)\r\n }}>\r\n <TextField InputProps={{ style: { color: getTextColor(props.color) } }} onChange={(event) => props.setText(event.target.value, props.id)} autoFocus margin=\"dense\" id={props.description} type=\"string\" fullWidth value={props.text !== null ? props.text : ''} variant=\"standard\" />\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.StyleDiv}>\r\n <button className={`${classes.primaryButton} ${props.text === props.currentKey ? classes.disabledButton : ''}`} disabled={props.text === props.currentKey} onClick={() => sendData()} >\r\n <Save className={classes.buttonIcon} />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n </Card >\r\n );\r\n}\r\n\r\n\r\nexport default FreeText;\r\n\r\nconst useStyles = makeStyles({\r\n\r\n freeText: {\r\n overflow: 'hidden',\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundSize: \"10rem 10rem\",\r\n backgroundPosition: \"center\",\r\n height: \"12rem\",\r\n\r\n },\r\n\r\n headerDiv: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n },\r\n\r\n h2style: {\r\n margin: '0',\r\n zIndex: '2',\r\n maxWidth: 'calc(100% - 150px)',\r\n\r\n // break words if they are too long\r\n whiteSpace: 'normal',\r\n textOverflow: 'ellipsis',\r\n wordWrap: 'break-word',\r\n\r\n // max two lines\r\n display: '-webkit-box',\r\n WebkitLineClamp: '2',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n },\r\n\r\n imageStyle: {\r\n position: 'absolute',\r\n right: '3%',\r\n opacity: '50%'\r\n },\r\n\r\n keyStyle: {\r\n position: 'absolute',\r\n left: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n\r\n textDiv: {\r\n paddingLeft: '15px',\r\n paddingRight: '15px',\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n height: '34%',\r\n alignItems: 'center',\r\n },\r\n\r\n StyleDiv: {\r\n height: '33%',\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-evenly\",\r\n alignItems: 'center',\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n width: \"fit-content\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"10px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"4px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"18px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n buttonIcon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n strokeWidth: \"1.8px\",\r\n },\r\n\r\n disabledButton: {\r\n backgroundColor: \"#DCDCDC !important\",\r\n color: \"#989898 !important\",\r\n\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n});","import React, { useEffect, useState } from 'react';\r\nimport { Grid2, Divider, Button, Box, Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Counter from './Counters';\r\nimport Stopwatch from './Stopwatch';\r\nimport FreeText from './FreeText';\r\nimport DataList from './DataList';\r\nimport Camera from './Camera';\r\nimport { controlTypes } from '../../../Config/constants';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { RotateCcw } from 'lucide-react';\r\n\r\nimport MessageDialog from '../../Shared/Dialogs/MessageDialog';\r\nimport { parseNewDateToDDMMYYY, isDateObject } from '../../../Utils/dateHelper';\r\nimport Scanner from './Scanner';\r\n\r\nfunction MeasurementBlocks(props) {\r\n const classes = useStyles();\r\n const current = new Date();\r\n const date = parseNewDateToDDMMYYY(current);\r\n\r\n const [valuesArray, setValuesArray] = useState([]);\r\n const [confirmDialogOpen, setComfirmDialogOpen] = useState(false)\r\n const [runningStopwatchDialogOpen, setRunningStopwatchDialogOpen] = useState(false);\r\n const [watchStillRunningDialogOpen, setWatchStillRunningDialogOpen] = useState(false);\r\n const [stopwatchOnHold, setStopwatchOnHold] = useState([]);\r\n const [resetAllExcept, setResetAllExcept] = useState(null); // set to Id of timer you don't want to reset and all others will be reset\r\n const [stopWatchesRunning, setStopWatchesRunning] = useState([]);\r\n const [openStopwatchCommentDialog, setOpenStopwatchCommentDialog] = useState(false); // If this is set to true, the stopwatch components that have comment enabled will open the comment dialog (if it's applicable)\r\n const [refreshStopWatches, setRefreshStopWatches] = useState(false)\r\n const [refresh, setRefresh] = useState(false)\r\n\r\n // Key\r\n const [keyError, setKeyError] = useState(false);\r\n const [currentKey, setCurrentKey] = useState(props.currentKey);\r\n\r\n\r\n useEffect(() => {\r\n let elementsArray = []\r\n var i = 0;\r\n for (i = 0; i < props.data.length; i++) {\r\n elementsArray.push({\r\n id: props.data[i].id,\r\n value: props.data[i].isParent && !refresh ? currentKey : props.data[i].controlTypeId === 3 ? \"\" : props.data[i].value ? props.data[i].value : '',\r\n startTime: date,\r\n running: props.data[i].running,\r\n controlTypeId: props.data[i].controlTypeId,\r\n price: props.data[i].price,\r\n currencyId: props.data[i].currencyId,\r\n startValue: props.data[i].startValue !== null ? props.data[i].startValue : null,\r\n stopValue: props.data[i].stopValue !== null ? props.data[i].stopValue : null\r\n })\r\n }\r\n setValuesArray(elementsArray);\r\n setRefreshStopWatches(!refreshStopWatches);\r\n // eslint-disable-next-line \r\n }, [props.data]);\r\n\r\n useEffect(() => {\r\n setCurrentKey(props.currentKey);\r\n }, [props.currentKey])\r\n\r\n const SendTextValue = (value, detailId) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.FREETEXT;\r\n tempValues.find(x => x.id === detailId).value = String(value);\r\n tempValues.find(x => x.id === detailId).running = true;\r\n\r\n setValuesArray(tempValues)\r\n dataService.saveMeasurement(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n\r\n var detail = props.data.find(x => x.id === detailId);\r\n if (detail.isParent) {\r\n props.setKeyFound(true);\r\n props.setCurrentKey(value);\r\n setText(value, detailId);\r\n setCurrentKey(value);\r\n } else {\r\n setText(null, detailId);\r\n }\r\n toast.success('Succesfully saved', { position: toast.POSITION.TOP_CENTER });\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n const setCounter = (value, detailId) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.COUNTER;\r\n tempValues.find(x => x.id === detailId).value = String(value);\r\n tempValues.find(x => x.id === detailId).running = true;\r\n\r\n if (tempValues.some(x => x.id === detailId)) {\r\n dataService.saveMeasurement(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n\r\n setValuesArray(tempValues)\r\n //toast.success('Measurements were saved successfully.', { position: toast.POSITION.TOP_CENTER });\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n const setCounterWithComment = (value, detailId, image, text) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.COUNTER;\r\n tempValues.find(x => x.id === detailId).value = String(value);\r\n tempValues.find(x => x.id === detailId).running = true;\r\n tempValues.find(x => x.id === detailId).commentImage = image;\r\n tempValues.find(x => x.id === detailId).commentText = text;\r\n\r\n setValuesArray(tempValues)\r\n dataService.saveMeasurementWithComment(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n //toast.success('Measurements were saved successfully.', { position: toast.POSITION.TOP_CENTER });\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n const setStopWatch = (value, detailId, startTime, endTime, reset) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.STOPWATCH;\r\n tempValues.find(x => x.id === detailId).value = String(value);\r\n if (startTime) {\r\n tempValues.find(x => x.id === detailId).stopValue = null;\r\n tempValues.find(x => x.id === detailId).running = true;\r\n setValuesArray(tempValues);\r\n\r\n let startDateString = parseNewDateToDDMMYYY(startTime);\r\n tempValues.find(x => x.id === detailId).startValue = startDateString;\r\n\r\n } else {\r\n if (reset) {\r\n tempValues.find(x => x.id === detailId).running = false;\r\n tempValues.find(x => x.id === detailId).value = 0;\r\n }\r\n else {\r\n tempValues.find(x => x.id === detailId).running = true;\r\n }\r\n\r\n setValuesArray(tempValues)\r\n let endDateString = parseNewDateToDDMMYYY(endTime);\r\n tempValues.find(x => x.id === detailId).stopValue = endDateString;\r\n }\r\n\r\n if (reset) {\r\n if (isDateObject(tempValues.find(x => x.id === detailId).startValue)) {\r\n tempValues.find(x => x.id === detailId).startValue = parseNewDateToDDMMYYY(tempValues.find(x => x.id === detailId).startValue);\r\n }\r\n tempValues.find(x => x.id === detailId).value = '0';\r\n }\r\n\r\n if (isDateObject(tempValues.find(x => x.id === detailId).startValue)) {\r\n tempValues.find(x => x.id === detailId).startValue = parseNewDateToDDMMYYY(tempValues.find(x => x.id === detailId).startValue);\r\n }\r\n\r\n dataService.saveMeasurement(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n //toast.success('Measurements were saved successfully.', { position: toast.POSITION.TOP_CENTER });\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n const setStopwatchWithComment = (detailId, image, comment) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.STOPWATCH;\r\n tempValues.find(x => x.id === detailId).value = String(stopwatchOnHold.value);\r\n tempValues.find(x => x.id === detailId).commentImage = image;\r\n tempValues.find(x => x.id === detailId).commentText = comment;\r\n tempValues.find(x => x.id === detailId).stopValue = null;\r\n tempValues.find(x => x.id === detailId).running = true\r\n setValuesArray(tempValues);\r\n\r\n let startDateString = parseNewDateToDDMMYYY(stopwatchOnHold.startTime);\r\n tempValues.find(x => x.id === detailId).startValue = startDateString;\r\n\r\n dataService.saveMeasurementWithComment(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n setOpenStopwatchCommentDialog(false);\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n const startTimer = (value, detailId, startTime) => {\r\n setResetAllExcept(null)\r\n if (stopWatchesRunning.length > 0) {\r\n setStartValue(value, detailId, startTime);\r\n setStopwatchOnHold({ value: value, detailId: detailId, startTime: startTime });\r\n setRunningStopwatchDialogOpen(true);\r\n } else {\r\n setStartValue(value, detailId, startTime);\r\n }\r\n }\r\n\r\n const startTimerWithComment = (value, detailId, startTime) => {\r\n setResetAllExcept(null)\r\n if (stopWatchesRunning.length > 0) {\r\n setStartValueWithComment(value, detailId, startTime);\r\n setStopwatchOnHold({ value: value, detailId: detailId, startTime: startTime });\r\n setRunningStopwatchDialogOpen(true);\r\n } else {\r\n setStopwatchOnHold({ value: value, detailId: detailId, startTime: startTime });\r\n setStartValueWithComment(value, detailId, startTime);\r\n setOpenStopwatchCommentDialog(true);\r\n }\r\n }\r\n\r\n const setStartValue = (value, detailId, startTime) => {\r\n let tempStopWatchesRunning = [...stopWatchesRunning];\r\n tempStopWatchesRunning.push(detailId);\r\n setStopWatchesRunning(tempStopWatchesRunning);\r\n setStopWatch(value, detailId, startTime, null, false);\r\n }\r\n\r\n const setStartValueWithComment = (value, detailId, startTime) => {\r\n let tempStopWatchesRunning = [...stopWatchesRunning];\r\n tempStopWatchesRunning.push(detailId);\r\n setStopWatchesRunning(tempStopWatchesRunning);\r\n // setStopWatchWithComment(value, detailId, startTime, null, false)\r\n }\r\n\r\n // const addStopwatchCommentAction = (detailId, image, text) => {\r\n // dataService.addCommentToStopwatchEntry(detailId, image, text).then(result => {\r\n // if (result.succes === true) {\r\n // toast.success('Comment added successfully', { position: toast.POSITION.TOP_CENTER });\r\n // setOpenStopwatchCommentDialog(false);\r\n // } else {\r\n // toast.error(result.message, { position: toast.POSITION.TOP_CENTER })\r\n // }\r\n // })\r\n // }\r\n\r\n const setStopValue = (value, detailId, endTime, reset) => {\r\n let tempStopWatchesRunning = [...stopWatchesRunning];\r\n if (tempStopWatchesRunning.some(x => x === detailId)) {\r\n let index = tempStopWatchesRunning.indexOf(tempStopWatchesRunning.find(x => x === detailId));\r\n tempStopWatchesRunning.splice(index, 1);\r\n }\r\n setStopWatchesRunning(tempStopWatchesRunning);\r\n setStopWatch(value, detailId, null, endTime, reset);\r\n }\r\n\r\n const setText = (value, detailId) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.FREETEXT;\r\n tempValues.find(x => x.id === detailId).value = value;\r\n tempValues.find(x => x.id === detailId).running = false;\r\n setValuesArray(tempValues);\r\n\r\n }\r\n\r\n const setTextWithComment = (value, detailId, image, text) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.FREETEXT;\r\n tempValues.find(x => x.id === detailId).value = String(value);\r\n tempValues.find(x => x.id === detailId).running = true;\r\n tempValues.find(x => x.id === detailId).commentImage = image;\r\n tempValues.find(x => x.id === detailId).commentText = text;\r\n\r\n setValuesArray(tempValues)\r\n dataService.saveMeasurementWithComment(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n\r\n\r\n //toast.success('Measurements were saved successfully.', { position: toast.POSITION.TOP_CENTER });\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n const setDataListValue = (DataListValue, detailId) => {\r\n let tempValues = [...valuesArray];\r\n tempValues.find(x => x.id === detailId).controlTypeId = controlTypes.DATALIST;\r\n tempValues.find(x => x.id === detailId).value = DataListValue;\r\n tempValues.find(x => x.id === detailId).dataListValue = DataListValue;\r\n tempValues.find(x => x.id === detailId).running = false;\r\n setValuesArray(tempValues);\r\n\r\n dataService.saveMeasurement(tempValues.find(x => x.id === detailId)).then(result => {\r\n if (result.success === true) {\r\n var detail = props.data.find(x => x.id === detailId);\r\n if (detail.isParent) {\r\n props.setKeyFound(true);\r\n }\r\n\r\n //toast.success('Measurements were saved successfully.', { position: toast.POSITION.TOP_CENTER });\r\n } else {\r\n props.refreshMeasurements(true);\r\n toast.error(result.message, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n function elementSwitch(controlTypeId, description, id, color, dataListId, comment, comments, isKey) {\r\n switch (controlTypeId) {\r\n case controlTypes.COUNTER: //1\r\n return (\r\n <React.Fragment>\r\n {valuesArray.length >= 1 && <Counter isKey={isKey} currentKey={currentKey} keyRequired={props.keyRequired} keyFound={props.keyFound} refresh={refresh} comments={comments} comment={comment} color={color !== null ? color : '#e6ccb1'} textColor={getTextColor(color !== null ? color : '#e6ccb1')} darkness={getDarkness(color !== null ? color : '#84ff69')} description={description} counter={valuesArray.some(x => x.id === id) ? valuesArray.find(x => x.id === id).value : null} id={id} action={setCounter} actionWithComment={setCounterWithComment}></Counter>}\r\n </React.Fragment>\r\n );\r\n case controlTypes.STOPWATCH: //2\r\n return (\r\n <React.Fragment>\r\n {valuesArray.length >= 1 && <Stopwatch isKey={isKey} currentKey={currentKey} startActionWithComment={startTimerWithComment} keyRequired={props.keyRequired} keyFound={props.keyFound} comments={comments} comment={comment} openCommentDialog={openStopwatchCommentDialog} addCommentAction={setStopwatchWithComment} color={color !== null ? color : '#a5b6d4'} textColor={getTextColor(color !== null ? color : '#a5b6d4')} description={description} resetAllExcept={resetAllExcept} refresh={refreshStopWatches} darkness={getDarkness(color !== null ? color : '#84ff69')} stopwatch={valuesArray.some(x => x.id === id) ? valuesArray.find(x => x.id === id) : null} startAction={startTimer} stopAction={setStopValue} id={id}></Stopwatch>}\r\n </React.Fragment>\r\n );\r\n case controlTypes.FREETEXT: //3\r\n return (\r\n <React.Fragment>\r\n {valuesArray.length >= 1 && <FreeText isKey={isKey} currentKey={currentKey} keyRequired={props.keyRequired} keyFound={props.keyFound} color={color !== null ? color : '#cae6cb'} textColor={getTextColor(color !== null ? color : '#cae6cb')} description={description} text={valuesArray.some(x => x.id === id) ? valuesArray.find(x => x.id === id).value : null} darkness={getDarkness(color !== null ? color : '#84ff69')} id={id} setText={setText} action={SendTextValue} ></FreeText>}\r\n </React.Fragment>\r\n );\r\n case controlTypes.DATALIST: //4\r\n return (\r\n <React.Fragment>\r\n {valuesArray.length >= 1 && <DataList isKey={isKey} currentKey={currentKey} keyRequired={props.keyRequired} keyFound={props.keyFound} refresh={refresh} color={color !== null ? color : '#de576d'} textColor={getTextColor(color !== null ? color : '#de576d')} dataListId={dataListId} projectGuid={props.projectGuid} description={description} darkness={getDarkness(color !== null ? color : '#84ff69')} id={id} setDataValue={setDataListValue}></DataList>}\r\n </React.Fragment>\r\n );\r\n case controlTypes.SCANNER: //5\r\n return (\r\n <React.Fragment>\r\n {valuesArray.length >= 1 && <Scanner isKey={isKey} currentKey={currentKey} keyRequired={props.keyRequired} keyFound={props.keyFound} comments={comments} comment={comment} refresh={refresh} color={color !== null ? color : '#cae6cb'} textColor={getTextColor(color !== null ? color : '#cae6cb')} darkness={getDarkness(color !== null ? color : '#84ff69')} description={description} id={id} action={SendTextValue} actionWithComment={setTextWithComment} ></Scanner>}\r\n </React.Fragment>\r\n );\r\n case controlTypes.CAMERA: //6\r\n return (\r\n <React.Fragment>\r\n {valuesArray.length >= 1 && <Camera isKey={isKey} currentKey={currentKey} keyRequired={props.keyRequired} keyFound={props.keyFound} refresh={refresh} toggleRefresh={props.toggleRefresh} comments={comments} comment={comment} color={color !== null ? color : '#84ff69'} textColor={getTextColor(color !== null ? color : '#84ff69')} darkness={getDarkness(color !== null ? color : '#84ff69')} description={description} id={id} ></Camera>}\r\n </React.Fragment>\r\n );\r\n case controlTypes.EXTERNALAPI: //7\r\n return false;\r\n\r\n default:\r\n return <React.Fragment> </React.Fragment>;\r\n }\r\n }\r\n\r\n const resetAndSave = () => {\r\n setRefresh(!refresh)\r\n var measurements = []\r\n valuesArray.forEach(x =>\r\n measurements.push(\r\n {\r\n ProjectDetailId: x.id,\r\n StartTime: x.startTime,\r\n // Value: x.isParent ? \"\" : String(x.value),\r\n Value: props.data.find(d => d.id === x.id).isParent ? \"\" : String(x.value),\r\n StartValue: x.startValue ? parseNewDateToDDMMYYY(new Date(x.startValue)) : null,\r\n StopValue: x.stopValue ? parseNewDateToDDMMYYY(new Date(x.stopValue)) : null,\r\n DataListValue: String(x.dataListValue),\r\n Running: x.running,\r\n controlTypeId: x.controlTypeId,\r\n Description: \"\"\r\n })\r\n )\r\n props.setCurrentKey(null);\r\n dataService.saveAndResetMeasurements(measurements).then((result) => {\r\n closeConfirmDialog()\r\n props.refreshMeasurements()\r\n })\r\n }\r\n\r\n const openConfirmDialog = () => {\r\n if (stopWatchesRunning.length > 0) {\r\n openWatchStillRunningDialog();\r\n }\r\n else {\r\n setComfirmDialogOpen(true)\r\n }\r\n }\r\n\r\n const closeConfirmDialog = () => {\r\n setComfirmDialogOpen(false)\r\n }\r\n\r\n const closeWatchStillRunningDialog = () => {\r\n setWatchStillRunningDialogOpen(false)\r\n }\r\n\r\n const openWatchStillRunningDialog = () => {\r\n setWatchStillRunningDialogOpen(true)\r\n }\r\n\r\n const measurementGrid = {\r\n marginTop: '25px',\r\n }\r\n\r\n function getRGB(c) {\r\n return parseInt(c, 16) || c\r\n }\r\n\r\n function getsRGB(c) {\r\n return getRGB(c) / 255 <= 0.03928\r\n ? getRGB(c) / 255 / 12.92\r\n : Math.pow((getRGB(c) / 255 + 0.055) / 1.055, 2.4)\r\n }\r\n\r\n function getLuminance(hexColor) {\r\n if (hexColor.includes('#')) {\r\n return (\r\n 0.2126 * getsRGB(hexColor.substr(1, 2)) +\r\n 0.7152 * getsRGB(hexColor.substr(3, 2)) +\r\n 0.0722 * getsRGB(hexColor.substr(-2))\r\n )\r\n } else {\r\n return (\r\n 0.2126 * hexColor +\r\n 0.7152 * hexColor +\r\n 0.0722 * hexColor\r\n )\r\n }\r\n\r\n }\r\n\r\n function getContrast(f, b) {\r\n const L1 = getLuminance(f)\r\n const L2 = getLuminance(b)\r\n return (Math.max(L1, L2) + 0.05) / (Math.min(L1, L2) + 0.05)\r\n }\r\n\r\n function getTextColor(bgColor) {\r\n if (bgColor === null) {\r\n return '#ffffff';\r\n } else {\r\n const whiteContrast = getContrast(bgColor, '#ffffff')\r\n const blackContrast = getContrast(bgColor, '#000000')\r\n return whiteContrast > blackContrast ? '#ffffff' : '#000000';\r\n }\r\n }\r\n\r\n function getDarkness(bgColor) {\r\n if (bgColor === null) {\r\n return '#ffffff';\r\n } else {\r\n const whiteContrast = getContrast(bgColor, '#ffffff')\r\n const blackContrast = getContrast(bgColor, '#000000')\r\n return whiteContrast > blackContrast;\r\n }\r\n }\r\n\r\n const handlePauseAllOtherTimers = () => {\r\n // console.log(stopWatchesRunning);\r\n // console.log(stopwatchOnHold);\r\n // stopWatchesRunning.forEach(stopwatch => {\r\n // if (stopwatch !== stopwatchOnHold.detailId) {\r\n // const value = valuesArray.find(x => x.id === stopwatch).value\r\n\r\n // const startTimeDateString = valuesArray.find(x => x.id === stopwatch).startValue;\r\n // // Split the string into components\r\n // const [day, month, yearAndTime] = startTimeDateString.split('/');\r\n // const [year, time] = yearAndTime.split(' ');\r\n\r\n // // Rearrange into a format JavaScript can understand (YYYY-MM-DDTHH:mm:ss)\r\n // const isoString = `${year}-${month}-${day}T${time}`;\r\n\r\n // // Create a new Date object\r\n // const startTime = new Date(isoString);\r\n\r\n // setStopValue(Math.floor(parseInt(value) + (new Date() - startTime) / 1000), stopwatch, new Date(stopwatchOnHold.startTime), true)\r\n // }\r\n // });\r\n\r\n setResetAllExcept(stopwatchOnHold.detailId);\r\n setRunningStopwatchDialogOpen(false);\r\n if (props.data.find(x => x.id === stopwatchOnHold.detailId).hasComment) {\r\n setOpenStopwatchCommentDialog(true);\r\n }\r\n };\r\n\r\n const keepTimersRunning = () => {\r\n setRunningStopwatchDialogOpen(false)\r\n setOpenStopwatchCommentDialog(true);\r\n };\r\n\r\n\r\n return (\r\n <div>\r\n <Grid2 container\r\n direction=\"row\"\r\n justifyContent=\"center\"\r\n spacing={3}\r\n alignItems=\"center\" style={measurementGrid}>\r\n {\r\n props.data.filter(x => x.controlTypeId !== controlTypes.EXTERNALAPI && x.isParent).map(x =>\r\n\r\n <Grid2 key={x.id} item size={props.view}>\r\n {elementSwitch(x.controlTypeId, x.description, x.id, x.color, x.dataListId, x.hasComment, x.comments ? x.comments : \"\", true)}\r\n </Grid2>\r\n )\r\n }\r\n\r\n {\r\n props.data.filter(x => x.controlTypeId !== controlTypes.EXTERNALAPI && !x.isParent).map(x =>\r\n\r\n <Grid2 key={x.id} item size={props.view}>\r\n {elementSwitch(x.controlTypeId, x.description, x.id, x.color, x.dataListId, x.hasComment, x.comments ? x.comments : \"\", false)}\r\n </Grid2>\r\n )\r\n }\r\n\r\n {/* } */}\r\n\r\n </Grid2>\r\n <Divider style={{ marginBottom: \"0.5rem\", marginTop: \"0.5rem\" }}></Divider>\r\n\r\n <Box sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center', width: '100%' }}>\r\n <Button onClick={() => openConfirmDialog()} variant='contained' startIcon={<RotateCcw />} sx={{ background: '#C3996B !important', color: 'white !important', padding: '10px !important', borderRadius: '4px !important' }}>New registration</Button>\r\n </Box>\r\n {confirmDialogOpen &&\r\n <MessageDialog\r\n dialogOpen={confirmDialogOpen}\r\n closeDialog={closeConfirmDialog}\r\n messageTitle={\"New registration?\"}\r\n action={resetAndSave}\r\n messageContent={\"Running measurements will be stopped and you'll be able to start new measurements.\"}\r\n buttonText={\"OK\"}\r\n button2Text={\"Cancel\"}\r\n ></MessageDialog>\r\n }\r\n {watchStillRunningDialogOpen &&\r\n <MessageDialog\r\n dialogOpen={watchStillRunningDialogOpen}\r\n closeDialog={closeWatchStillRunningDialog}\r\n action={closeWatchStillRunningDialog}\r\n messageTitle={\"Attention!\"}\r\n buttonCount={1}\r\n messageContent={\"There are still stopwatches running... Please pause/reset the watches first before initiating new measurements.\"}\r\n buttonText={\"OK\"}\r\n ></MessageDialog>\r\n }\r\n {/* {runningStopwatchDialogOpen && */}\r\n <Dialog\r\n open={runningStopwatchDialogOpen}\r\n classes={{ paper: classes.dialogPaper }}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n <div className={classes.dialog__head}>\r\n <DialogTitle className={classes.dialog__title} id=\"draggable-dialog-title\">\r\n Pause other timers?\r\n </DialogTitle>\r\n </div>\r\n <DialogContent className={classes.dialog__contentContainer}>\r\n <div className={classes.dialog__content}>\r\n <p className={classes.dialog__subtitle}>\r\n You are trying to start a new timer while there are other timers running. Do you want to pause the other timers?</p>\r\n </div>\r\n </DialogContent>\r\n <DialogActions className={classes.dialog__buttonContainer}>\r\n <button className={classes.dialog__button__secondary} onClick={() => handlePauseAllOtherTimers()}>\r\n Pause other timers\r\n </button>\r\n <button className={classes.dialog__button} onClick={() => keepTimersRunning()}>\r\n Keep timers running\r\n </button>\r\n </DialogActions>\r\n </Dialog>\r\n\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default MeasurementBlocks;\r\n\r\nconst useStyles = makeStyles(() => ({\r\n dialogPaper: {\r\n width: '400px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '8px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n paddingBottom: '16px !important',\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n dialog__subtitle: {\r\n fontSize: '16px',\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'normal',\r\n\r\n color: '#0C0E29',\r\n\r\n margin: '0px',\r\n },\r\n\r\n dialog__buttonContainer: {\r\n display: 'flex',\r\n gap: \"8px\",\r\n alignItems: 'center',\r\n justifyContent: 'space-between !important',\r\n width: \"100% !important\",\r\n boxSizing: 'border-box',\r\n\r\n padding: '16px !important',\r\n paddingTop: '0px !important',\r\n margin: '0px !important',\r\n },\r\n\r\n dialog__button: {\r\n height: \"40px\",\r\n width: \"50%\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n userSelect: \"none\",\r\n\r\n // align right\r\n marginLeft: 'auto !important',\r\n\r\n '&:hover': {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n },\r\n '&:disabled': {\r\n backgroundColor: \"lightgrey !important\",\r\n color: \"white !important\",\r\n border: \"1px solid darkgrey !important\",\r\n cursor: \"not-allowed !important\"\r\n },\r\n },\r\n\r\n dialog__button__secondary: {\r\n height: \"40px\",\r\n width: \"50%\",\r\n padding: \"0 16px\",\r\n verticalAlign: 'center',\r\n border: \"1px solid #D84949\",\r\n borderRadius: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"#D84949\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n '&:hover': {\r\n backgroundColor: \"#C73B3B\",\r\n color: \"white\",\r\n border: \"1px solid #C73B3B\",\r\n cursor: \"pointer\",\r\n },\r\n '&:disabled': {\r\n backgroundColor: \"lightgrey !important\",\r\n color: \"white !important\",\r\n border: \"1px solid darkgrey !important\",\r\n cursor: \"not-allowed !important\"\r\n },\r\n },\r\n}));\r\n","import React, { useEffect, useState } from 'react';\r\nimport DescriptionTitle from '../../Shared/DescriptionTitle';\r\nimport { Grid2 } from '@mui/material';\r\nimport useQuery from '../../Shared/UseQuery';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport MeasurementBlocks from './MeasurementBlocks';\r\nimport { connect } from 'react-redux';\r\nimport { ToggleButtonGroup, ToggleButton } from '@mui/material';\r\nimport SvgIcon from '@mui/material/SvgIcon';\r\nimport TableRowsIcon from '@mui/icons-material/TableRows';\r\nimport Squares from './squares.svg';\r\nimport { controlTypes } from '../../../Config/constants';\r\n\r\nexport const PerformMeasurementPage = (props) => {\r\n\r\n let query = useQuery();\r\n let qr = query.get(\"qr\");\r\n const [measurementBlocks, setMeasurementBlocks] = useState([]);\r\n const [projectName, setProjectName] = useState([]);\r\n const [resourceName, setResourceName] = useState([]);\r\n const [projectId, setProjectId] = useState([]);\r\n const [refresh, setRefresh] = useState(false)\r\n const [viewSize, setViewSize] = useState(6)\r\n const [displaySize, setDisplaySize] = useState(3);\r\n const [activeProject, setActiveProject] = useState(true);\r\n const [autosize, setAutosize] = useState(true);\r\n const [toggleRefresh, setToggleRefresh] = useState(false);\r\n\r\n const [keyRequired, setKeyRequired] = useState(false);\r\n const [keyFound, setKeyFound] = useState(false);\r\n const [currentKey, setCurrentKey] = useState(null);\r\n\r\n useEffect(() => {\r\n dataService.getProjectDetailWithComments(qr).then(res => {\r\n var boolKeyRequired = false;\r\n var boolKeyFound = false;\r\n\r\n //check if the keyvalue is required for this project --> If so, check if we have already saved a value, if so we can start with other measurments, IF NOT Warn the user that they have to select the correct value first\r\n if (res.details !== null && res.details !== undefined && res.details.some(x => x.isParent)) {\r\n boolKeyRequired = true;\r\n var keyValue = res.details.find(x => x.isParent);\r\n if (keyValue.measurements !== null && keyValue.measurements !== undefined && keyValue.measurements.length > 0 && keyValue.measurements.some(x => x !== null && x.running)) {\r\n boolKeyFound = true;\r\n // setCurrentKey(keyValue.measurements.find(x => x !== null && x.running).textValue);\r\n\r\n setCurrentKey(keyValue.measurements.filter(x => x !== null && x.running).sort((a, b) => new Date(b.startTime) - new Date(a.startTime))[0]?.textValue);\r\n setKeyFound(boolKeyFound);\r\n }\r\n\r\n }\r\n setKeyRequired(boolKeyRequired);\r\n\r\n //Check if the project is still active\r\n let currentDate = new Date();\r\n let active = dateRange(new Date(res.timeRangeBegin), new Date(res.timeRangeEnd), currentDate, currentDate);\r\n if (active) {\r\n setActiveProject(true);\r\n }\r\n else {\r\n setActiveProject(false);\r\n }\r\n setProjectId(res.id);\r\n setProjectName(res.projectName);\r\n setResourceName(res.resourceDescription);\r\n\r\n let tempDetails = [...res.details];\r\n tempDetails.forEach(detail => {\r\n detail.running = true;\r\n detail.currencyId = res.currencyId;\r\n if (detail.measurements.length > 0 && detail.measurements[0] !== null && !refresh && detail.measurements[detail.measurements.length - 1].running === true) {\r\n if (detail.controlTypeId === controlTypes.COUNTER) {\r\n //Counter\r\n detail.value = detail.measurements[detail.measurements.length - 1].integerValue;\r\n let comments = detail.measurements.filter(measurement => measurement.running).map((measurement, index) => ({ comment: measurement.commentText ? measurement.commentText : \"\", image: measurement.commentImage ? \"data:image/png;base64,\" + measurement.commentImage : \"\", index: index + 1, insertedOn: measurement.commentInsertedOn }));\r\n detail.comments = comments;\r\n } else if (detail.controlTypeId === controlTypes.STOPWATCH) {\r\n //Timer \r\n if (detail.measurements[detail.measurements.length - 1].stopValue === null) {\r\n detail.value = \"0\";\r\n detail.stopValue = new Date(Date.now());\r\n detail.startValue = new Date(Date.now());\r\n let comments = detail.measurements.map((measurement, index) => ({ comment: measurement.commentText ? measurement.commentText : \"\", image: measurement.commentImage ? \"data:image/png;base64,\" + measurement.commentImage : \"\", index: index + 1, insertedOn: measurement.commentInsertedOn }));\r\n detail.comments = comments;\r\n } else {\r\n detail.value = detail.measurements[detail.measurements.length - 1].integerValue;\r\n detail.stopValue = new Date(detail.measurements[detail.measurements.length - 1].stopValue);\r\n detail.startValue = new Date(detail.measurements[detail.measurements.length - 1].startValue);\r\n let comments = detail.measurements.map((measurement, index) => ({ comment: measurement.commentText ? measurement.commentText : \"\", image: measurement.commentImage ? \"data:image/png;base64,\" + measurement.commentImage : \"\", index: index + 1, insertedOn: measurement.commentInsertedOn }));\r\n detail.comments = comments;\r\n }\r\n let comments = detail.measurements.filter(measurement => measurement.running).map((measurement, index) => ({ comment: measurement.commentText ? measurement.commentText : \"\", image: measurement.commentImage ? \"data:image/png;base64,\" + measurement.commentImage : \"\", index: index + 1, insertedOn: measurement.commentInsertedOn }));\r\n detail.comments = comments;\r\n } else if (detail.controlTypeId === controlTypes.FREETEXT) {\r\n //Free text\r\n detail.value = detail.measurements[detail.measurements.length - 1].textValue;\r\n }\r\n else if (detail.controlTypeId === controlTypes.SCANNER) {\r\n // Scanner\r\n detail.value = detail.measurements[detail.measurements.length - 1].textValue;\r\n let comments = detail.measurements.filter(measurement => measurement.running).map((measurement, index) => ({ comment: measurement.commentText ? measurement.commentText : \"\", image: measurement.commentImage ? \"data:image/png;base64,\" + measurement.commentImage : \"\", index: index + 1, insertedOn: measurement.commentInsertedOn }));\r\n detail.comments = comments;\r\n }\r\n else if (detail.controlTypeId === controlTypes.CAMERA) {\r\n // Camera\r\n detail.value = detail.measurements[detail.measurements.length - 1].textValue;\r\n let comments = detail.measurements.filter(measurement => measurement.running).map((measurement, index) => ({ comment: measurement.commentText ? measurement.commentText : \"\", image: measurement.commentImage ? \"data:image/png;base64,\" + measurement.commentImage : \"\", index: index + 1, insertedOn: measurement.commentInsertedOn }));\r\n detail.comments = comments;\r\n }\r\n }\r\n else {\r\n setCurrentKey(null)\r\n setKeyFound(false);\r\n if (detail.controlTypeId === controlTypes.COUNTER) {\r\n //Counter\r\n detail.value = \"0\";\r\n let comments = [];\r\n detail.comments = comments;\r\n } else if (detail.controlTypeId === controlTypes.STOPWATCH) {\r\n //Timer \r\n detail.value = \"0\";\r\n detail.stopValue = new Date(Date.now());\r\n detail.startValue = new Date(Date.now());\r\n let comments = [];\r\n detail.comments = comments;\r\n } else if (detail.controlTypeId === controlTypes.FREETEXT) {\r\n //Free text\r\n detail.value = \"\";\r\n }\r\n else if (detail.controlTypeId === controlTypes.SCANNER) {\r\n // Scanner\r\n detail.value = \"\";\r\n let comments = [];\r\n detail.comments = comments;\r\n }\r\n else if (detail.controlTypeId === controlTypes.CAMERA) {\r\n // Camera\r\n detail.value = \"\";\r\n let comments = [];\r\n detail.comments = comments;\r\n }\r\n }\r\n });\r\n setMeasurementBlocks(tempDetails);\r\n });\r\n\r\n function dateRange(a_start, a_end, b_start, b_end) {\r\n if (a_start <= b_start && b_start <= a_end) return true; // b starts in a\r\n if (a_start <= b_end && b_end <= a_end) return true; // b ends in a\r\n if (b_start < a_start && a_end < b_end) return true; // a in b\r\n if (datesAreOnSameDay(a_start, b_start)) return true;\r\n if (datesAreOnSameDay(b_end, a_end)) return true;\r\n return false;\r\n }\r\n\r\n const datesAreOnSameDay = (first, second) =>\r\n first.getFullYear() === second.getFullYear() &&\r\n first.getMonth() === second.getMonth() &&\r\n first.getDate() === second.getDate();\r\n\r\n const display1Min = window.matchMedia('(min-width: 720px)');\r\n const display2Min = window.matchMedia('(min-width: 1000px)');\r\n const display3Min = window.matchMedia('(min-width: 1300px)');\r\n\r\n const listener = () => {\r\n if (!display1Min.matches) {\r\n setDisplaySize(0)\r\n setAutosize(true)\r\n }\r\n if (display1Min.matches && !display2Min.matches) {\r\n setDisplaySize(1)\r\n setAutosize(true)\r\n }\r\n if (display2Min.matches && !display3Min.matches) {\r\n setDisplaySize(2)\r\n setAutosize(true)\r\n }\r\n if (display3Min.matches) {\r\n setDisplaySize(3)\r\n setAutosize(true)\r\n }\r\n if (autosize) {\r\n if (!display1Min.matches) { setViewSize(12) }\r\n if (display1Min.matches) { setViewSize(6) }\r\n if (display2Min.matches) { setViewSize(4) }\r\n if (display3Min.matches) { setViewSize(3) }\r\n }\r\n }\r\n\r\n listener();\r\n window.addEventListener('resize', listener);\r\n return () => window.removeEventListener('resize', listener);\r\n\r\n }, [qr, toggleRefresh]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const viewSizeFunction = (blockWidth) => {\r\n setViewSize(blockWidth !== null ? blockWidth : 6);\r\n setAutosize(false);\r\n }\r\n\r\n const TitleStyle = {\r\n background: \"#FFFFFF\",\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: '15px',\r\n }\r\n const Style = {\r\n textAlign: \"center\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n margin: \"1.5rem\",\r\n padding: \"1.5rem\"\r\n }\r\n\r\n const TitleTextStyle = {\r\n fontSize: \"1.5rem\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"48px\",\r\n color: \"#1D3557\",\r\n width: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginLeft: \"1.5rem\",\r\n }\r\n\r\n const refreshMeasurements = () => {\r\n setRefresh(true);\r\n setToggleRefresh(!toggleRefresh);\r\n }\r\n\r\n return (\r\n <div style={{ position: \"absolute\", top: props.loggedInState ? \"0\" : \"0\", width: \"100%\" }}>\r\n <div style={TitleStyle}>\r\n <div style={TitleTextStyle} >\r\n <h1>{resourceName}</h1>\r\n </div>\r\n <div style={{ float: 'right', marginRight: '10px' }}>\r\n <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column', height: '100%' }}>\r\n <div style={{ fontSize: \"10px\", width: '100%', textAlign: 'center' }}>\r\n Choose your preferred block width:\r\n </div>\r\n <ToggleButtonGroup onChange={(e, newValue) => viewSizeFunction(newValue)} exclusive value={viewSize} defaultValue={6}>\r\n <ToggleButton sx={{ borderRadius: 0, border: '1px solid rgb(224, 224, 224) !important', padding: '10px !important' }} value={12}>\r\n <TableRowsIcon color='#8D8D8D' />\r\n </ToggleButton>\r\n <ToggleButton sx={{ borderRadius: 0, border: '1px solid rgb(224, 224, 224) !important', padding: '10px !important' }} value={6}>\r\n <img src={Squares} style={{ padding: '2px' }} alt=\"Square Icon\" />\r\n </ToggleButton>\r\n {(displaySize === 2 || displaySize === 3) &&\r\n\r\n <ToggleButton sx={{ borderRadius: 0, border: '1px solid rgb(224, 224, 224) !important', padding: '10px !important' }} value={4} >\r\n <SvgIcon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path fill=\"currentcolor\" d=\"M16 5v6h5V5m-11 6h5V5h-5m6 13h5v-6h-5m-6 6h5v-6h-5m-6 6h5v-6H4m0-1h5V5H4v6Z\" />\r\n </svg>\r\n </SvgIcon>\r\n </ToggleButton>\r\n }\r\n {displaySize === 3 &&\r\n <ToggleButton sx={{ borderRadius: 0, border: '1px solid rgb(224, 224, 224) !important', padding: '10px !important' }} value={3}>\r\n <SvgIcon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24s\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n <path d=\"M3 9h4V5H3v4zm0 5h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zM8 9h4V5H8v4zm5-4v4h4V5h-4zm5 9h4v-4h-4v4zM3 19h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zm5 0h4v-4h-4v4zm0-14v4h4V5h-4z\" />\r\n </svg>\r\n </SvgIcon>\r\n </ToggleButton>\r\n\r\n }\r\n </ToggleButtonGroup>\r\n </div>\r\n </div>\r\n </div>\r\n {\r\n activeProject === true ?\r\n <div style={Style}>\r\n <Grid2 container>\r\n <Grid2 item size={12}>\r\n {(measurementBlocks !== undefined && measurementBlocks.length >= 1) && <MeasurementBlocks {...props} projectId={projectId} projectGuid={qr} data={measurementBlocks} keyFound={keyFound} setKeyFound={setKeyFound} keyRequired={keyRequired} currentKey={currentKey} setCurrentKey={setCurrentKey} refreshMeasurements={refreshMeasurements} toggleRefresh={toggleRefresh} view={viewSize} />}\r\n </Grid2>\r\n </Grid2>\r\n </div>\r\n :\r\n <div style={Style}>\r\n <Grid2 container>\r\n <Grid2 item size={12}>\r\n <h1 style={{ color: \"red\" }}>{projectName + \" is not active anymore.\"} </h1>\r\n <DescriptionTitle Text=\"Contact the project owner to change the date when this project takes places.\" />\r\n </Grid2>\r\n </Grid2>\r\n </div>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n settings: state.settings\r\n})\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(PerformMeasurementPage);\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport Divider from '@mui/material/Divider';\r\nimport ScannerIcon from './barcodeScanner.svg';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { LightenDarkenColor } from 'lighten-darken-color';\r\nimport BarcodeScannerComponent from \"react-qr-barcode-scanner\";\r\nimport { IconButton, Tooltip } from '@material-ui/core';\r\nimport Button from '@mui/material/Button';\r\nimport Card from '@mui/material/Card';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport QrCodeScannerIcon from '@mui/icons-material/QrCodeScanner';\r\nimport Collapse from '@mui/material/Collapse';\r\nimport ReportProblemIcon from '@mui/icons-material/ReportProblem';\r\nimport PhotoCameraIcon from '@mui/icons-material/PhotoCamera';\r\nimport TextField from '@mui/material/TextField';\r\nimport Typography from '@mui/material/Typography';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport PhotoIcon from '@mui/icons-material/Photo';\r\nimport Webcam from \"react-webcam\";\r\nimport CameraswitchIcon from '@mui/icons-material/Cameraswitch';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport List from '@mui/material/List';\r\nimport ListItem from '@mui/material/ListItem';\r\nimport Pagination from '@mui/material/Pagination';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport { parseNewDateToDDMMYYY } from '../../../Utils/dateHelper';\r\nimport { Key } from 'lucide-react';\r\n\r\nfunction Scanner(props) {\r\n const current = new Date();\r\n const date = parseNewDateToDDMMYYY(current);\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const [data, setData] = React.useState(\"\");\r\n const [extraContent, setExtraContent] = useState(false);\r\n const [listOfComments, setListOfComments] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [captured, setCaptured] = useState(false);\r\n const [openComment, setOpenComment] = useState(false);\r\n const [openCamera, setOpenCamera] = useState(false);\r\n const [openFullscreenImage, setOpenFullscreenImage] = useState(false);\r\n const [image, setImage] = useState(\"\");\r\n const [comment, setComment] = useState(\"\");\r\n const [cameraSide, setCameraSide] = useState(true)\r\n const [expanded, setExpanded] = useState(false);\r\n const webcamRef = React.useRef(null);\r\n\r\n const titleRef = useRef(null);\r\n const [isOverflowing, setIsOverflowing] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkOverflow = () => {\r\n if (titleRef.current) {\r\n const element = titleRef.current;\r\n\r\n // Temporarily remove the clamp styles to measure natural height\r\n const originalStyle = element.style.webkitLineClamp;\r\n element.style.webkitLineClamp = \"unset\";\r\n element.style.display = \"block\";\r\n\r\n // Measure natural height\r\n const naturalHeight = element.getBoundingClientRect().height;\r\n\r\n // Restore original styles\r\n element.style.webkitLineClamp = originalStyle;\r\n element.style.display = \"-webkit-box\";\r\n\r\n // Get line height dynamically\r\n const lineHeight = parseFloat(window.getComputedStyle(element).lineHeight);\r\n const maxHeight = lineHeight * 2; // Two lines\r\n\r\n setIsOverflowing(naturalHeight > maxHeight);\r\n }\r\n };\r\n\r\n checkOverflow();\r\n window.addEventListener(\"resize\", checkOverflow);\r\n return () => window.removeEventListener(\"resize\", checkOverflow);\r\n }, [props.description]);\r\n\r\n const titleElement = (\r\n <h2 ref={titleRef} className={classes.h2style}>\r\n {props.description}\r\n </h2>\r\n );\r\n\r\n useEffect(() => {\r\n setData(\"\")\r\n setListOfComments(props.comments)\r\n // eslint-disable-next-line no-undef\r\n }, [props.refresh, props.comments]);\r\n\r\n const cameraFace = {\r\n facingMode: \"user\"\r\n }\r\n\r\n const cameraBack = {\r\n facingMode: { exact: \"environment\" }\r\n }\r\n\r\n const handleDialogOpenComment = () => {\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogCloseComment = () => {\r\n setOpenComment(false);\r\n }\r\n\r\n const handleDialogOpenCamera = () => {\r\n setOpenCamera(true);\r\n setOpenComment(false);\r\n }\r\n\r\n const handleDialogCloseCamera = () => {\r\n setOpenCamera(false);\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogOpenFullscreenImage = () => {\r\n setOpenFullscreenImage(true);\r\n }\r\n\r\n const handleDialogCloseFullscreenImage = () => {\r\n setOpenFullscreenImage(false);\r\n }\r\n\r\n const Cameremode = () => {\r\n setCameraSide(!cameraSide)\r\n }\r\n\r\n const handleExtraContentClick = () => {\r\n setExtraContent(!extraContent);\r\n };\r\n\r\n const handleExpandClick = () => {\r\n setExpanded(!expanded);\r\n };\r\n\r\n const handlePage = (event, value) => {\r\n setPage(value);\r\n };\r\n\r\n const handleDialogOpen = () => {\r\n setOpen(true);\r\n }\r\n\r\n const handleDialogClose = () => {\r\n setOpen(false);\r\n }\r\n\r\n const handleScannedData = (data) => {\r\n setOpen(false);\r\n setData(data);\r\n if (props.comment) {\r\n setComment(\"\");\r\n setImage(\"\");\r\n handleDialogOpenComment();\r\n } else {\r\n // dataService.saveText(props.id, date, data)\r\n props.action(data, props.id);\r\n }\r\n }\r\n\r\n const handleSendWithComment = () => {\r\n\r\n props.actionWithComment(data, props.id, image.slice(23), comment);\r\n\r\n handleDialogCloseComment();\r\n let tempListOfComments = [...listOfComments];\r\n let index = tempListOfComments.length + 1;\r\n let newListItem = { image: image, comment: comment, index: index++, insertedOn: new Date(Date.now()) };\r\n tempListOfComments.push(newListItem)\r\n setListOfComments(tempListOfComments)\r\n setPage(index - 1)\r\n }\r\n\r\n const capture = () => {\r\n const imageSrc = webcamRef.current.getScreenshot();\r\n if (imageSrc !== null) {\r\n setCaptured(true);\r\n setImage(imageSrc);\r\n }\r\n else {\r\n alert(\"No Camera Found\");\r\n }\r\n }\r\n\r\n const CameraStyle = {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"absolute\",\r\n objectFit: \"cover\",\r\n top: \"0\",\r\n left: \"0\",\r\n }\r\n\r\n return (\r\n <div >\r\n <Card>\r\n <div className={classes.freeText} style={{\r\n color: props.textColor,\r\n backgroundColor: `${props.color}`,\r\n }}>\r\n <div className={classes.headerDiv}>\r\n {props.isKey && <Key className={classes.keyStyle}></Key>}\r\n {props.comment && listOfComments.length > 0 ?\r\n <Button style={{ zIndex: \"4\", position: \"absolute\", left: \"3%\" }} size={'large'} onClick={handleExtraContentClick}>\r\n <ReportProblemIcon style={{ color: props.textColor }} />\r\n </Button>\r\n : <React.Fragment></React.Fragment>\r\n }\r\n {isOverflowing ? (\r\n <Tooltip title={props.description} placement=\"top\" arrow>\r\n {titleElement}\r\n </Tooltip>\r\n ) : (\r\n titleElement\r\n )}\r\n <img className={classes.imageStyle} style={{ filter: props.darkness ? 'invert(1)' : 'contrast(80%)' }} src={ScannerIcon} alt=\"\" />\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.textDiv} style={{\r\n backgroundColor: LightenDarkenColor(props.color, 20)\r\n }}>\r\n <IconButton onClick={handleDialogOpen} style={{ color: props.textColor }}>\r\n <QrCodeScannerIcon fontSize=\"large\" color='white' />\r\n </IconButton>\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.StyleDiv}>\r\n <h4>{data}</h4>\r\n </div>\r\n </div>\r\n\r\n <Dialog\r\n fullScreen\r\n open={openCamera}\r\n onClose={handleDialogCloseCamera}\r\n maxWidth={\"lg\"}\r\n >\r\n <DialogTitle style={{ background: \"rgba(255, 255, 255, .0)\", zIndex: \"1\" }}>\r\n {\"Camera\"}\r\n <IconButton style={{ position: \"absolute\", right: \"10px\", top: \"5px\" }} onClick={handleDialogCloseCamera} size=\"large\">\r\n <CloseIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"black\" }} />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider></Divider>\r\n <DialogContent>\r\n {\r\n cameraSide === true ?\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraBack}\r\n ></Webcam> :\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraFace}\r\n ></Webcam>\r\n }\r\n </DialogContent>\r\n <Divider></Divider>\r\n <DialogActions style={{ justifyContent: \"center\", background: \"rgba(255, 255, 255, .25)\", zIndex: \"1\" }}>\r\n <IconButton onClick={handleExpandClick} size=\"large\">\r\n {captured ?\r\n <img alt=\"afbeelding\" style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image}></img>\r\n :\r\n <PhotoIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"black\" }} />\r\n }\r\n </IconButton>\r\n <IconButton onClick={capture} size=\"large\">\r\n <CircleIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"black\" }} />\r\n </IconButton>\r\n <IconButton onClick={Cameremode} size=\"large\">\r\n <CameraswitchIcon size=\"large\" fontSize=\"inherit\" style={{ color: \"black\" }} />\r\n </IconButton>\r\n </DialogActions>\r\n <Divider style={{ background: \"rgb(0, 0, 0)\", zIndex: \"2\" }}></Divider>\r\n <Collapse style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }} in={expanded} timeout=\"auto\" unmountOnExit>\r\n <DialogContent style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }}>\r\n <img alt=\"afbeelding\"\r\n style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\", maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }}\r\n src={image}></img>\r\n </DialogContent>\r\n </Collapse>\r\n </Dialog>\r\n\r\n <Dialog\r\n open={open}\r\n onClose={handleDialogClose}\r\n >\r\n <DialogTitle>\r\n {\"Scanner\"}\r\n </DialogTitle>\r\n <Divider></Divider>\r\n <DialogContent>\r\n <BarcodeScannerComponent\r\n onUpdate={(err, result) => {\r\n if (result) handleScannedData(result.text)\r\n else setData(\"Not Found\");\r\n }} />\r\n </DialogContent>\r\n </Dialog>\r\n\r\n <Dialog\r\n fullWidth\r\n open={openComment}\r\n onClose={handleDialogCloseComment}>\r\n <DialogTitle>\r\n {\"Comment\"}\r\n <IconButton style={{ position: \"absolute\", right: \"10px\", top: \"5px\" }} onClick={handleDialogCloseComment} size=\"large\">\r\n <CloseIcon fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <div className={classes.StyleDivComment}>\r\n <TextField multiline\r\n rows={8}\r\n style={{ marginBottom: \"10px\", margin: \"10px\", width: \"87%\" }}\r\n label={comment ? \" \" : \"Make a comment.\"}\r\n InputLabelProps={{ shrink: false }} variant=\"outlined\"\r\n onChange={(event) => setComment(event.target.value)}\r\n value={comment}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment style={{ marginTop: \"160px\" }}>\r\n {image !== \"\" ?\r\n <div>\r\n <IconButton onClick={handleDialogOpenFullscreenImage}>\r\n <img alt=\"afbeelding\" style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image}></img>\r\n </IconButton>\r\n <IconButton onClick={handleDialogOpenCamera} >\r\n <PhotoCameraIcon />\r\n </IconButton>\r\n </div>\r\n :\r\n <div>\r\n <IconButton onClick={handleDialogOpenCamera} >\r\n <PhotoCameraIcon />\r\n </IconButton>\r\n </div>\r\n }\r\n </InputAdornment>)\r\n }} />\r\n <IconButton style={{ marginBottom: \"12px\" }} onClick={handleSendWithComment} size=\"large\">\r\n <SendIcon fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </div>\r\n </Dialog>\r\n\r\n <Dialog\r\n fullScreen\r\n open={openFullscreenImage}\r\n onClose={handleDialogCloseFullscreenImage}>\r\n <DialogTitle style={{ background: \"rgba(0, 0, 0, .0)\", zIndex: \"1\" }}>\r\n <IconButton style={{ position: \"absolute\", right: \"10px\", top: \"5px\" }} onClick={handleDialogCloseFullscreenImage} size=\"large\">\r\n <CloseIcon fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <DialogContent>\r\n <img alt=\"afbeelding\" style={CameraStyle} src={image}></img>\r\n </DialogContent>\r\n </Dialog>\r\n </Card>\r\n {\r\n extraContent ? <div style={{ position: \"relative\" }}>\r\n <div style={{ position: \"absolute\", top: \"1\", width: \"100%\", zIndex: \"10\" }}>\r\n <Collapse in={extraContent} timeout=\"auto\" unmountOnExit >\r\n <Card >\r\n {listOfComments.filter(list => list.index === page).map(x =>\r\n <List sx={{ width: '100%', overflow: \"hidden\" }}>\r\n <ListItem>\r\n <Typography style={{ width: \"70%\" }} >{props.description + \" Comment: \" + x.index}</Typography>\r\n <Typography style={{ width: \"30%\", fontWeight: \"bold\" }}>{parseNewDateToDDMMYYY(new Date(x.insertedOn))}</Typography>\r\n </ListItem>\r\n <Divider></Divider>\r\n {x.image !== \"\" && x.image !== null ?\r\n <ListItem style={{ marginBottom: \"10px\", display: \"flex\", justifyContent: \"center\" }}>\r\n <img src={x.image} style={{ maxWidth: \"100%\", maxHeight: \"calc(40vh - 16px)\", borderRadius: \"15px\" }} alt=\"\" />\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment !== \"\" ?\r\n <ListItem>\r\n <Typography style={{ hyphens: \"auto\", wordWrap: \"break-word\", overflowWrap: \"anywhere\" }}>{x.comment}</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment === \"\" && (x.image === \"\" || x.image === null) ?\r\n <ListItem>\r\n <Typography style={{ color: \"red\" }} >No recorded comment.</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n <Divider></Divider>\r\n <ListItem style={{ justifyContent: 'center' }}>\r\n <Pagination page={page} variant=\"outlined\" size=\"small\" siblingCount={0} count={listOfComments.length} onChange={handlePage} />\r\n </ListItem>\r\n </List>\r\n )\r\n }\r\n </Card>\r\n </Collapse>\r\n </div>\r\n </div> :\r\n <React.Fragment></React.Fragment>\r\n }\r\n </div >\r\n );\r\n}\r\n\r\nexport default Scanner;\r\n\r\nconst useStyles = makeStyles({\r\n freeText: {\r\n overflow: 'hidden',\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundSize: \"10rem 10rem\",\r\n backgroundPosition: \"center\",\r\n height: \"12rem\",\r\n },\r\n headerDiv: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n },\r\n h2style: {\r\n margin: '0',\r\n zIndex: '2',\r\n maxWidth: 'calc(100% - 150px)',\r\n\r\n // break words if they are too long\r\n whiteSpace: 'normal',\r\n textOverflow: 'ellipsis',\r\n wordWrap: 'break-word',\r\n\r\n // max two lines\r\n display: '-webkit-box',\r\n WebkitLineClamp: '2',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n },\r\n StyleDiv: {\r\n height: '33%',\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-evenly\",\r\n alignItems: 'center',\r\n },\r\n StyleDivComment: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: 'flex-end',\r\n },\r\n imageStyle: {\r\n position: 'absolute',\r\n right: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n keyStyle: {\r\n position: 'absolute',\r\n left: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n textDiv: {\r\n paddingLeft: '15px',\r\n paddingRight: '15px',\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n height: '34%',\r\n alignItems: 'center',\r\n }\r\n});","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8m-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34C4.9 8.79 4 10.79 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91\"\n}), 'RestartAlt');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M6 19h4V5H6zm8-14v14h4V5z\"\n}), 'Pause');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport deepmerge from '@mui/utils/deepmerge';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport systemStyled from \"../styled/index.js\";\nimport useThemePropsSystem from \"../useThemeProps/index.js\";\nimport { extendSxProp } from \"../styleFunctionSx/index.js\";\nimport createTheme from \"../createTheme/index.js\";\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from \"../breakpoints/index.js\";\nimport { createUnarySpacing, getValue } from \"../spacing/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push(/*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = {\n display: 'flex',\n flexDirection: 'column',\n ...handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n }))\n };\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n // The useFlexGap={false} implement relies on each child to give up control of the margin.\n // We need to reset the margin to avoid double spacing.\n '& > :not(style):not(style)': {\n margin: 0\n },\n '& > :not(style) ~ :not(style)': {\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false,\n ...other\n } = props;\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, {\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className),\n ...other,\n children: divider ? joinChildren(children, divider) : children\n });\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from \"../styles/styled.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useDefaultProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\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.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTimerStyle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 480 480\",\n style: {\n enableBackground: \"new 0 0 480 480\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.907,310.841c20.924,0,37.947-17.005,37.947-37.907c0-17.77-12.308-32.715-28.854-36.795v-59.973 c0-5.523-4.477-10-10-10s-10,4.477-10,10v60.473c-15.594,4.697-26.988,19.187-26.988,36.295 C203.012,293.836,220.012,310.841,240.907,310.841z M240.907,255.031c9.896,0,17.947,8.031,17.947,17.903 c0,9.874-8.051,17.907-17.947,17.907c-9.868,0-17.895-8.033-17.895-17.907C223.012,263.062,231.04,255.031,240.907,255.031z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M465.796,121.169l-78.613-78.594c-3.905-3.904-10.237-3.904-14.142,0.001c-3.905,3.906-3.904,10.237,0.001,14.142 l29.672,29.665l-30.011,30.006C338.294,86.505,295.554,69.044,250,66.27v-0.952h48.181c16.508,0,34.901-12.967,34.901-31.575 v-3.979C333.082,11.133,315.337,0,298.181,0H181.826c-17.129,0-27.355,11.127-27.355,29.764v3.979 c0,19.181,10.738,31.575,27.355,31.575H230V66c-47.536,1.617-91.056,19.327-125.27,47.851L77.276,86.392l29.681-29.674 c3.906-3.905,3.906-10.236,0.002-14.142s-10.236-3.907-14.142-0.001L56.088,79.294c-0.008,0.008-0.018,0.015-0.026,0.024 c-0.008,0.009-0.016,0.018-0.024,0.026l-41.834,41.825c-3.906,3.905-3.906,10.236-0.002,14.142 c1.953,1.953,4.512,2.93,7.072,2.93c2.559,0,5.118-0.976,7.07-2.928l34.788-34.78l26.855,26.86 C52.961,164.822,30.06,216.252,30.06,272.935C30.061,387.11,122.952,480,237.131,480c114.187,0,207.085-92.89,207.085-207.066 c0-53.595-20.216-104.075-57.041-142.731l29.684-29.679l34.797,34.789c1.953,1.952,4.511,2.928,7.07,2.928 c2.559,0,5.119-0.977,7.072-2.93C469.703,131.405,469.702,125.073,465.796,121.169z M280.212,20h17.969 c7.048,0,14.901,4.01,14.901,9.764v3.979c0,5.841-7.381,11.575-14.901,11.575h-17.969V20z M199.788,45.318h-17.962 c-2.387,0-7.355,0-7.355-11.575v-3.979c0-9.764,3.573-9.764,7.355-9.764h17.962V45.318z M219.788,45.318V20h40.424v25.318 H219.788z M237.131,130.54c78.528,0,142.416,63.878,142.416,142.394c0,78.515-63.888,142.391-142.416,142.391 c-78.512,0-142.387-63.876-142.387-142.391C94.744,194.417,158.619,130.54,237.131,130.54z M424.216,272.933 C424.216,376.082,340.29,460,237.131,460c-103.151,0-187.07-83.918-187.07-187.066c0-100.762,80.082-183.158,179.939-186.92 v24.692c-86.244,3.746-155.256,75.074-155.256,162.228c0,89.543,72.846,162.391,162.387,162.391 c89.557,0,162.416-72.848,162.416-162.391c0-85.214-65.983-155.304-149.547-161.885V86.314 C347.178,92.949,424.216,174.108,424.216,272.933z\"\n }))))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimerStyle);\nexport default __webpack_public_path__ + \"static/media/timerStyle.5393a8f9073d80cf76f34c655049d569.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState, useRef } from 'react';\r\nimport Webcam from \"react-webcam\";\r\nimport RestartAltIcon from '@mui/icons-material/RestartAlt';\r\nimport PauseIcon from '@mui/icons-material/Pause';\r\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\r\nimport Stack from '@mui/material/Stack';\r\nimport StopwatchIcon from './timerStyle.svg';\r\nimport { parseNewDateToDDMMYYY } from '../../../Utils/dateHelper';\r\nimport { List, ListItem, Pagination, InputAdornment, Divider, Button, IconButton, Card, Collapse, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Typography, Tooltip } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { LightenDarkenColor } from 'lighten-darken-color';\r\nimport { Key, TriangleAlert, Camera as CameraIcon, Send, Image, SwitchCamera, Circle, X } from 'lucide-react';\r\nimport { toast } from 'react-toastify';\r\n\r\nfunction Stopwatch(props) {\r\n\r\n const classes = useStyles();\r\n const mounted = useRef(true);\r\n const countRef = useRef(null);\r\n\r\n // Timer\r\n const [timerSting, setTimerString] = useState(null);\r\n const [started, setStarted] = useState(false);\r\n const [startTime, setStartTime] = useState(null);\r\n\r\n // Comment\r\n const [openComment, setOpenComment] = useState(false);\r\n const [comment, setComment] = useState(\"\");\r\n const [listOfComments, setListOfComments] = useState([]);\r\n const [commentError, setCommentError] = useState(false); // Comment validation\r\n\r\n // Image\r\n const webcamRef = React.useRef(null);\r\n const [image, setImage] = useState(\"\");\r\n const [openCamera, setOpenCamera] = useState(false);\r\n const [cameraSide, setCameraSide] = useState(true)\r\n const [openFullscreenImage, setOpenFullscreenImage] = useState(false);\r\n const [captured, setCaptured] = useState(false);\r\n\r\n // Extra content\r\n const [extraContent, setExtraContent] = useState(false)\r\n const [expanded, setExpanded] = useState(false);\r\n const [page, setPage] = useState(1);\r\n\r\n const titleRef = useRef(null);\r\n const [isOverflowing, setIsOverflowing] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkOverflow = () => {\r\n if (titleRef.current) {\r\n const element = titleRef.current;\r\n\r\n // Temporarily remove the clamp styles to measure natural height\r\n const originalStyle = element.style.webkitLineClamp;\r\n element.style.webkitLineClamp = \"unset\";\r\n element.style.display = \"block\";\r\n\r\n // Measure natural height\r\n const naturalHeight = element.getBoundingClientRect().height;\r\n\r\n // Restore original styles\r\n element.style.webkitLineClamp = originalStyle;\r\n element.style.display = \"-webkit-box\";\r\n\r\n // Get line height dynamically\r\n const lineHeight = parseFloat(window.getComputedStyle(element).lineHeight);\r\n const maxHeight = lineHeight * 2; // Two lines\r\n\r\n setIsOverflowing(naturalHeight > maxHeight);\r\n }\r\n };\r\n\r\n checkOverflow();\r\n window.addEventListener(\"resize\", checkOverflow);\r\n return () => window.removeEventListener(\"resize\", checkOverflow);\r\n }, [props.description]);\r\n\r\n const titleElement = (\r\n <h2 ref={titleRef} className={classes.h2style}>\r\n {props.description}\r\n </h2>\r\n );\r\n\r\n useEffect(() => {\r\n if (props.stopwatch !== null && props.stopwatch !== undefined) {\r\n var s = (props.stopwatch.value * 1000);\r\n\r\n function pad(number) {\r\n if (number < 10) {\r\n return number = \"0\" + String(number);\r\n } else {\r\n return number = String(number);\r\n }\r\n }\r\n\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n s = (s - mins) / 60\r\n var hrs = s % 24;\r\n s = (s - hrs) / 24;\r\n\r\n if (mounted.current) {\r\n setTimerString(pad(hrs) + ':' + pad(mins) + ':' + pad(secs));\r\n }\r\n }\r\n }, [props.refresh, props.stopwatch]);\r\n\r\n useEffect(() => {\r\n setListOfComments(props.comments)\r\n // eslint-disable-next-line no-undef\r\n }, [props.refresh, props.comments]);\r\n\r\n const cameraFace = {\r\n facingMode: \"user\"\r\n }\r\n\r\n const cameraBack = {\r\n facingMode: { exact: \"environment\" }\r\n }\r\n\r\n const handleDialogOpenComment = () => {\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogCloseComment = () => {\r\n setOpenComment(false);\r\n }\r\n\r\n const handleDialogOpenCamera = () => {\r\n setOpenCamera(true);\r\n setOpenComment(false);\r\n }\r\n\r\n const handleDialogCloseCamera = () => {\r\n setOpenCamera(false);\r\n setOpenComment(true);\r\n }\r\n\r\n const handleDialogOpenFullscreenImage = () => {\r\n setOpenFullscreenImage(true);\r\n }\r\n\r\n const handleDialogCloseFullscreenImage = () => {\r\n setOpenFullscreenImage(false);\r\n }\r\n\r\n const Cameramode = () => {\r\n setCameraSide(!cameraSide)\r\n }\r\n\r\n const handleExtraContentClick = () => {\r\n setExtraContent(!extraContent);\r\n };\r\n\r\n const handleExpandClick = () => {\r\n setExpanded(!expanded);\r\n };\r\n\r\n const handlePage = (event, value) => {\r\n setPage(value);\r\n };\r\n\r\n const handleStart = () => {\r\n if (props.keyRequired && !props.keyFound) {\r\n toast.error('Required field must be filled in and submitted', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n setStarted(true)\r\n setStartTime(new Date())\r\n\r\n if (props.comment) {\r\n setComment(\"\");\r\n setImage(\"\");\r\n handleDialogOpenComment();\r\n }\r\n\r\n if (!started) {\r\n let startTime = new Date()\r\n countRef.current = (setInterval(() => {\r\n\r\n var s = (new Date() - startTime + parseInt(props.stopwatch.value) * 1000)\r\n\r\n function pad(number) {\r\n if (number < 10) {\r\n return number = \"0\" + String(number)\r\n }\r\n else {\r\n return number = String(number)\r\n }\r\n }\r\n\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n s = (s - mins) / 60\r\n var hrs = s % 24;\r\n s = (s - hrs) / 24\r\n\r\n if (mounted.current) {\r\n setTimerString(pad(hrs) + ':' + pad(mins) + ':' + pad(secs));\r\n }\r\n\r\n }\r\n , 1000\r\n ))\r\n if (!props.comment) {\r\n props.startAction(props.stopwatch.value, props.id, new Date());\r\n } else {\r\n props.startActionWithComment(props.stopwatch.value, props.id, new Date());\r\n }\r\n }\r\n }\r\n }\r\n\r\n // const handleStartWithComment = () => {\r\n // setReadyToAddComment(true);\r\n // props.startActionWithComment(props.stopwatch.value, props.id, startTime, image.slice(23), comment)\r\n // }\r\n\r\n const capture = () => {\r\n const imageSrc = webcamRef.current.getScreenshot();\r\n if (imageSrc !== null) {\r\n setCaptured(true);\r\n setImage(imageSrc);\r\n }\r\n else {\r\n alert(\"No Camera Found\");\r\n }\r\n\r\n }\r\n\r\n const CameraStyle = {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"absolute\",\r\n objectFit: \"cover\",\r\n top: \"0\",\r\n left: \"0\",\r\n }\r\n\r\n useEffect(() => {\r\n if (props.resetAllExcept !== null && props.resetAllExcept !== props.id && started) {\r\n setStarted(false);\r\n clearInterval(countRef.current);\r\n // setTimerString(\"00:00:00\");\r\n props.stopAction(Math.floor(parseInt(props.stopwatch.value) + (new Date() - startTime) / 1000), props.id, new Date(), false);\r\n }\r\n }, [props.resetAllExcept])\r\n\r\n const handlePause = () => {\r\n if (props.keyRequired && !props.keyFound) {\r\n toast.error('Required field must be filled in and submitted', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n if (started) {\r\n setStarted(false)\r\n clearInterval(countRef.current)\r\n props.stopAction(Math.floor(parseInt(props.stopwatch.value) + (new Date() - startTime) / 1000), props.id, new Date(), false);\r\n // props.action(formatDateTime(), props.id);\r\n }\r\n }\r\n\r\n }\r\n\r\n const handleReset = () => {\r\n if (props.keyRequired && !props.keyFound) {\r\n toast.error('Required field must be filled in and submitted', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n setStarted(false)\r\n clearInterval(countRef.current)\r\n setTimerString(\"00:00:00\")\r\n props.stopAction(Math.floor(parseInt(props.stopwatch.value) + (new Date() - startTime) / 1000), props.id, new Date(), true);\r\n }\r\n\r\n }\r\n\r\n const addComment = () => {\r\n setCommentError(false);\r\n if (comment.trim().length > 0 || image.trim().length > 0) {\r\n props.addCommentAction(props.id, image.slice(23), comment);\r\n setComment(\"\");\r\n setImage(\"\");\r\n setOpenComment(false);\r\n } else {\r\n setCommentError(true);\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n <Card>\r\n <div className={classes.StyleStopwatch} style={{\r\n color: props.textColor,\r\n backgroundColor: `${props.color}`\r\n }}>\r\n <div className={classes.headerDiv} >\r\n {props.isKey && <Key className={classes.keyStyle}></Key>}\r\n {props.comment && (listOfComments.length > 0 || listOfComments !== \"\") ?\r\n <Button style={{ zIndex: \"4\", position: \"absolute\", left: \"3%\" }} size={'large'} onClick={handleExtraContentClick}>\r\n <TriangleAlert style={{ color: props.textColor }} />\r\n </Button>\r\n :\r\n <React.Fragment></React.Fragment>\r\n }\r\n {isOverflowing ? (\r\n <Tooltip title={props.description} placement=\"top\" arrow>\r\n {titleElement}\r\n </Tooltip>\r\n ) : (\r\n titleElement\r\n )}\r\n <img className={classes.imageStyle} src={StopwatchIcon} style={{ filter: props.darkness ? 'invert(1)' : 'contrast(80%)' }} alt=\"\" />\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.stopwatchDev} style={{ backgroundColor: LightenDarkenColor(props.color, 20) }}>\r\n <p className={classes.Style}>{timerSting}</p>\r\n </div>\r\n <Divider></Divider>\r\n <Stack direction=\"row\" className={classes.buttonDiv}\r\n justifyContent=\"center\"\r\n alignItems=\"center\"\r\n spacing={1}>\r\n <IconButton size={'large'} className={classes.ResetStyle} onClick={handleReset} style={{ color: props.textColor }} >\r\n <RestartAltIcon fontSize=\"inherit\" />\r\n </IconButton>\r\n <IconButton size={'large'} className={classes.PauseStyle} onClick={handlePause} style={{ color: props.textColor }}>\r\n <PauseIcon fontSize=\"inherit\" />\r\n </IconButton>\r\n <IconButton size={'large'} className={classes.StartStyle} onClick={handleStart} style={{ color: props.textColor }}>\r\n <PlayArrowIcon fontSize=\"inherit\" />\r\n </IconButton>\r\n </Stack>\r\n </div>\r\n\r\n <Dialog\r\n fullScreen\r\n open={openCamera}\r\n onClose={handleDialogCloseCamera}\r\n maxWidth={\"lg\"}\r\n >\r\n <DialogTitle style={{ background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\", color: 'white', display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\r\n <h3>{\"Camera\"}</h3>\r\n <IconButton onClick={handleDialogCloseCamera} size=\"large\">\r\n <X style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider></Divider>\r\n <DialogContent>\r\n {\r\n cameraSide === true ?\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraBack}\r\n ></Webcam> :\r\n <Webcam\r\n style={CameraStyle}\r\n audio={false}\r\n ref={webcamRef}\r\n screenshotFormat=\"image/jpeg\"\r\n videoConstraints={cameraFace}\r\n ></Webcam>\r\n }\r\n </DialogContent>\r\n <Divider></Divider>\r\n <DialogActions style={{ justifyContent: \"center\", background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\" }}>\r\n <IconButton onClick={handleExpandClick} size=\"large\">\r\n {(captured && image !== \"\") ?\r\n <img alt=\"afbeelding\" style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image}></img>\r\n :\r\n <Image fontSize=\"inherit\" style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n }\r\n </IconButton>\r\n <IconButton onClick={capture} size=\"large\">\r\n <Circle fontSize=\"inherit\" style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n </IconButton>\r\n <IconButton onClick={Cameramode} size=\"large\">\r\n <SwitchCamera fontSize=\"inherit\" style={{ color: \"white\", width: '40px', height: '40px' }} />\r\n </IconButton>\r\n </DialogActions>\r\n <Divider style={{ background: \"rgb(0, 0, 0)\", zIndex: \"2\" }}></Divider>\r\n <Collapse style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }} in={expanded} timeout=\"auto\" unmountOnExit>\r\n <DialogContent style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\" }}>\r\n <img alt=\"afbeelding\"\r\n style={{ background: \"rgb(255, 255, 255)\", zIndex: \"2\", maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }}\r\n src={image}></img>\r\n </DialogContent>\r\n </Collapse>\r\n </Dialog>\r\n\r\n <Dialog\r\n fullWidth\r\n open={openComment && props.openCommentDialog}>\r\n <DialogTitle>\r\n {\"Comment\"}\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <div className={classes.StyleDivComment}>\r\n {commentError &&\r\n <label className={classes.label}>Please add a comment before submitting</label>\r\n }\r\n <TextField multiline\r\n rows={8}\r\n style={{ marginTop: \"0px\", margin: \"10px\", marginBottom: \"10px\", width: \"87%\" }}\r\n label={comment ? \" \" : \"Make a comment.\"}\r\n InputLabelProps={{ shrink: false }} variant=\"outlined\"\r\n onChange={(event) => setComment(event.target.value)}\r\n value={comment}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment style={{ marginTop: \"160px\" }}>\r\n {image !== \"\" ?\r\n <div>\r\n <IconButton onClick={handleDialogOpenFullscreenImage}>\r\n <img alt=\"afbeelding\" style={{ margin: \"0px\", width: \"2rem\", height: \"2rem\", borderRadius: \"50%\" }} src={image}></img>\r\n </IconButton>\r\n <IconButton onClick={handleDialogOpenCamera} >\r\n <CameraIcon />\r\n </IconButton>\r\n </div>\r\n :\r\n <div>\r\n <IconButton onClick={handleDialogOpenCamera} >\r\n <CameraIcon />\r\n </IconButton>\r\n </div>\r\n }\r\n </InputAdornment>)\r\n }} />\r\n <IconButton style={{ marginBottom: \"12px\" }} onClick={addComment} size=\"large\">\r\n <Send fontSize=\"inherit\" color='blue' />\r\n </IconButton>\r\n </div>\r\n </Dialog>\r\n\r\n\r\n <Dialog\r\n fullScreen\r\n open={openFullscreenImage}\r\n onClose={handleDialogCloseFullscreenImage}>\r\n <DialogTitle style={{ background: \"rgba(0, 0, 0, .25)\", zIndex: \"1\", display: 'flex', justifyContent: 'end' }}>\r\n <IconButton style={{}} onClick={handleDialogCloseFullscreenImage} size=\"large\">\r\n <X fontSize=\"inherit\" color='white' style={{ width: '40px', height: '40px' }} />\r\n </IconButton>\r\n </DialogTitle>\r\n <Divider ></Divider>\r\n <DialogContent>\r\n <img alt=\"afbeelding\" style={CameraStyle} src={image}></img>\r\n </DialogContent>\r\n </Dialog>\r\n </Card>\r\n {\r\n extraContent ? <div style={{ position: \"relative\" }}>\r\n <div style={{ position: \"absolute\", top: \"1\", width: \"100%\", zIndex: \"10\" }}>\r\n <Collapse in={extraContent} timeout=\"auto\" unmountOnExit >\r\n <Card >\r\n {listOfComments.filter(list => list.index === page).map(x =>\r\n <List sx={{ width: '100%', overflow: \"hidden\" }}>\r\n <ListItem>\r\n <Typography style={{ width: \"70%\" }} >{props.description + \" Comment: \" + x.index}</Typography>\r\n <Typography style={{ width: \"30%\", fontWeight: \"bold\" }}>{parseNewDateToDDMMYYY(new Date(x.insertedOn))}</Typography>\r\n </ListItem>\r\n <Divider></Divider>\r\n {x.image !== \"\" && x.image !== null ?\r\n <ListItem style={{ marginBottom: \"10px\", display: \"flex\", justifyContent: \"center\" }}>\r\n <img alt=\"afbeelding\" src={x.image} style={{ maxWidth: \"100%\", maxHeight: \"calc(40vh - 16px)\", borderRadius: \"15px\" }} />\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment !== \"\" ?\r\n <ListItem>\r\n <Typography style={{ hyphens: \"auto\", wordWrap: \"break-word\", overflowWrap: \"anywhere\" }}>{x.comment}</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n {x.comment === \"\" && (x.image === \"\" || x.image === null) ?\r\n <ListItem>\r\n <Typography style={{ color: \"red\" }} >No recorded comment.</Typography>\r\n </ListItem>\r\n :\r\n <React.Fragment></React.Fragment>}\r\n <Divider></Divider>\r\n <ListItem style={{ justifyContent: 'center' }}>\r\n <Pagination page={page} variant=\"outlined\" size=\"small\" siblingCount={0} count={listOfComments.length} onChange={handlePage} />\r\n </ListItem>\r\n </List>\r\n )\r\n }\r\n </Card>\r\n </Collapse>\r\n </div>\r\n </div> :\r\n <React.Fragment></React.Fragment>\r\n }\r\n </div>\r\n );\r\n}\r\nexport default Stopwatch;\r\n\r\nconst useStyles = makeStyles({\r\n\r\n headerDiv: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n },\r\n h2style: {\r\n margin: '0',\r\n zIndex: '2',\r\n maxWidth: 'calc(100% - 150px)',\r\n\r\n // break words if they are too long\r\n whiteSpace: 'normal',\r\n textOverflow: 'ellipsis',\r\n wordWrap: 'break-word',\r\n\r\n // max two lines\r\n display: '-webkit-box',\r\n WebkitLineClamp: '2',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n },\r\n Style: {\r\n borderRadius: \"50px\",\r\n textAlign: \"center\",\r\n fontSize: \"2.5rem\",\r\n margin: \"0\",\r\n },\r\n imageStyle: {\r\n position: 'absolute',\r\n right: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n keyStyle: {\r\n position: 'absolute',\r\n left: '3%',\r\n opacity: '50%',\r\n width: '50px'\r\n },\r\n buttonDiv: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '33%',\r\n },\r\n StartStyle: {\r\n background: \"#4CAF50\",\r\n color: \"white\",\r\n textAlign: \"center\",\r\n marginLeft: \"1rem\",\r\n marginRight: \"1rem\",\r\n },\r\n PauseStyle: {\r\n backgroundColor: \"#C3996B\",\r\n color: \"white\",\r\n textAlign: \"center\",\r\n marginLeft: \"1rem\",\r\n marginRight: \"1rem\",\r\n },\r\n stopwatchDev: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n height: '34%',\r\n alignItems: 'center',\r\n },\r\n ResetStyle: {\r\n background: \"#ff4c54\",\r\n color: \"white\",\r\n textAlign: \"center\",\r\n marginLeft: \"1rem\",\r\n marginRight: \"1rem\",\r\n },\r\n StyleStopwatch: {\r\n overflow: 'hidden',\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundSize: \"10rem 10rem\",\r\n backgroundPosition: \"center\",\r\n height: \"12rem\"\r\n },\r\n\r\n label: {\r\n height: \"18px\",\r\n\r\n color: \"red\",\r\n fontSize: \"16px\",\r\n\r\n marginTop: \"16px\",\r\n marginBottom: \"4px\",\r\n marginLeft: \"10px\",\r\n },\r\n});","import { makeStyles } from '@material-ui/core';\r\nimport React, { useEffect } from 'react';\r\nimport { useNavigate, Link } from 'react-router-dom';\r\n\r\n// Styling\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport './Assets/styles/privacypolicy-styles.css';\r\n\r\n// JS\r\nimport \"https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenLite.min.js\";\r\n// import \"https://assets.calendly.com/assets/external/widget.js\";\r\n\r\n// Images\r\nimport img_logo from './Assets/images/logo.png';\r\n\r\nfunction PrivacyPolicyPage(props) {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n return (\r\n <div className=\"privacypolicypage\">\r\n <header className=\"header\">\r\n <div className=\"container\">\r\n <div className=\"logo\">\r\n <Link to=\"/\">\r\n <img src={img_logo} alt=\"\" />\r\n </Link>\r\n </div>\r\n <Link className=\"btn_design\" to=\"/login\">Login</Link>\r\n </div>\r\n </header>\r\n <section className=\"privacyPolicy\">\r\n <div className=\"container\">\r\n <div class=\"s-text\">\r\n <h2>Privacy statement</h2>\r\n <p>You may not always be fully aware of it but using our website implies disclosing some personal data. According to the legal definition, personal data is every data that allows the identification of a natural person. The collection and processing of personal data is governed by strict conditions, enforced by the law. The most important law applicable is the Belgian Act of 8 December 1992 on Privacy Protection in relation to the Processing of Personal Data ('Privacy Act').</p>\r\n <p>Your privacy is very important to us; we want to be very clear and transparent about this. This is why we have designed this Privacy Policy. We assume that while using the website and its services, the User has taken notice of this Privacy Policy and agreed to the collection and processing of personal information that are in accordance thereto.</p>\r\n <p>Our Privacy Policy may be subject to future amendment or modification. Any such change will be clearly indicated in the Privacy Policy. It is your responsibility as a User to examine and take notification of any change made to this document; this should be done on a regular basis. Any change we deem substantial enough will besides be clearly communicated to you.</p>\r\n <p> </p>\r\n <h3>1. Who is responsible for the data processing?</h3>\r\n <p>The Privacy Act draws a distinction between the 'data controller' and the 'data processor'. This distinction is extremely important to avoid some ambiguity about responsibilities.</p>\r\n <p> </p>\r\n <h4>1.1. Data controller</h4>\r\n <p>The 'data controller' is every natural person and/or legal entity which alone or jointly with others determines the purposes and the (legal and technical) means of the processing of personal data.<br /> The data controller behind our website is:<br /> Flagstone bvba (Further on referred to as “Flagstone”)<br /> Stedestraat 51<br /> B-8530 Harelbeke<br /> Ondernemingsnummer (BTW-BE) 0635.607.445.</p>\r\n <p> </p>\r\n <h4>1.2. Data processor</h4>\r\n <p>The 'data processor' is the natural or legal person that processes personal data on behalf of the controller. He is responsible for the proper technical operation of the website (data transmission). Persons who, under the direct authority of the data controller or the data processor, are authorised to process the data should not be regarded as processors (e.g. employees or similar personnel).<br /> The data controller has of course carefully selected the processor. We've chosen a processor providing all the adequate guarantees in respect of technical and organizational security measures governing the processing to be carried out. The selected processor satisfies at the same time all the other requirements of Article 16, § 1 Privacy Act.<br /> The controller is not responsible for any loss or corruption of personal data, identity theft, data theft, viruses or Trojans, SQL injections or other attacks on computer systems or online cloud-portals. The processor has gained professional expertise in this domain and decides therefore in an autonomous way about the application that is best suitable to process the data. It's not possible to expect the same professional expertise from the data controller.</p>\r\n <p> </p>\r\n <h3>2. To which ends will my personal data be used?</h3>\r\n <p>We collect and process your personal information for one overarching goal, i.e. to offer you a safe, comfortable and personalized experience each time you visit the website. Dependant on whether the User makes intensive use of the website or relies on certain services, the collection of personal data may be more extensive.<br /> The information we collect about you is primarily processed to help us ensure the proper technical functioning of our website and the related services. Your personal data will only be processed for the following (internal) purposes:</p>\r\n <ul class=\"sULfix\">\r\n <li>To provide and improve our (standard and customized) services, including billing and invoicing, offering information, newsletters and useful or necessary offers, collecting and processing users' feedback, as well as providing support.</li>\r\n <li>To detect and offer protection against all fraud, errors and criminal behaviours on the website.</li>\r\n </ul>\r\n <p>We will never transfer any of your personal data to any third party for external analysis without having conducted a prior anonymization.<br /> By using our website and its functionalities, you give your explicit consent to the processing of your personal data by Flagstone. If any personal data from third parties is processed, Flagstone explicitly states that this processing is necessary for the performance of a contract to which this person is party or in order to take steps at the request of this person prior to entering into a contract.<br /> Given the fact that technology and innovation cannot be controlled, it is impossible to know what our future website and services will be like. This is why it is important to understand that a given consent will also apply to the use of personal data in the context of the development of new services or functions, as far as such use lays within the original purposes of our website.</p>\r\n <ul class=\"sULfix\">\r\n <li>\r\n <b>2.1. Website registration.</b>\r\n <br /> Each User may subscribe at our website in order to receive more information about Flagstone's activities. We collect all the data necessary to provide you with a personalized information (e.g. sex, age, demographic content, but also essential contact data such as address, e-mail address, phone- and fax number). The user will always have the final decision as to the quality and quantity of personal information that is disclosed.<br /> We will never collect sensitive information, such as data concerning race, political opinions, health, religion, sexual orientation or other similar information.</li>\r\n <li>\r\n <b>2.2. Proper technical functioning.</b>\r\n <br /> We furthermore collect and process personal data to guarantee the proper technical functioning of our website. Our website uses several means to optimize the user experience and detect possible (technical) issues. These means include: <ul class=\"sULfix\">\r\n <li>Cookies: this information allows us to recognize the user and to make an efficient use of our website's functionalities such as stay logged in, display personalized ads, etc.</li>\r\n <li>Log-information: information such as the IP-address and other data related to telecommunication.</li>\r\n <li>Information concerning the device that is being used to visit the website, such as hardware-, software- and network information.</li>\r\n <li>Local storage information.</li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <p>The website also collects anonymous user navigation data</p>\r\n <ul class=\"sULfix\">\r\n <li>\r\n <b>2.3. Location data</b>\r\n <br /> Analytical data of Flagstone do indeed show location data. Based on these data, it is possible to display a probable location on a map. But these indications (based on IP-addresses) are not accurate at all, and thus largely inadequate to trace down the exact location of a user.<br /> This means we will not use this location data to identify you, but only to guarantee the proper technical functioning of our website.</li>\r\n </ul>\r\n <p> </p>\r\n <p> </p>\r\n <h3>3. Will my data be used outside the e.U. (or even transferred to third parties)?</h3>\r\n <p>Personal data are primarily processed for Flagstone's internal purposes. This is why we can assure you that your personal data will not be sold, rent or otherwise transferred to any third party related to us, unless:</p>\r\n <ul class=\"sULfix\">\r\n <li>The user gives his explicit consent;</li>\r\n <li>Such transfer is necessary for the execution of the agreement. This will be the case with employees, agents, subcontractors, suppliers, commercial partners, marketing services, etc.;</li>\r\n <li>Such transfer is required for the conclusion or execution of an agreement between the data controller and a third party, which us in the interests of the user (e.g. in case of fraud);</li>\r\n <li>Such transfer is legally required (an important public interest or right is at stake);</li>\r\n </ul>\r\n <p>You can rest assured; in the event of a merger, acquisition, reorganization, sale of all or substantially all of our assets, or in connection with the sale of our website, we will utilize the highest level of security to protect your personal data and provide you with all the necessary information.<br /> Flagstone is a company organized under Belgian laws. However, the processing and/or transfer of data to countries outside the European Union can occur. According to Article 21 Privacy Act, transfer of personal data outside the European Union may only take place if the country of final destination in question ensures an adequate level of protection. An adequate level of protection is to be determined on a case-by-case basis in light of all the circumstances surrounding a data transfer operation.<br /> Flagstone guarantees that no data will be transferred to third countries without having taken the necessary measures to comply with the requirements of protection under the Privacy Act. Such transfer will only take place if one of the grounds mentioned in Article 2 is applicable.</p>\r\n <p> </p>\r\n <h3>4. Ons cookie policy?</h3>\r\n <p>A cookie is a small piece of data that a website asks your browser to store on your computer or mobile device. Cookies may have different purposes: there are technical (functional) cookies (e.g. language settings), session (temporary) cookies, and tracking (analytical) cookies (which analyse and record the behaviour you adopt on the website in order to offer you the best possible experience).<br /> Flagstone wants to keep you informed about our use of cookies. Cookies are essential for us in order to optimise your visit on our website. Cookies, for example, remember every technical choice you have made (e.g. language settings), and help us offer you more relevant services and suggestions.<br /> We can guarantee you that our cookies are safe. The information that is collected through the use of cookies allows us to detect possible errors and/or to propose specific services that we presume you will like. We may store information that can be directly linked to a user. Some of our cookies may moreover come from carefully selected partners with whom we cooperate and that advertise our services on their website.</p>\r\n <p>We recommend the User to enable cookies on your computer, tablet or mobile phone. If cookies are not enabled, there is a real possibility that we are not able to guarantee an optimized use of our website. If, however, you feel the urgent need to restrict, block or remove cookies of Flagstone, following instructions are useful.</p>\r\n <p>For Microsoft Internet Explorer</p>\r\n <ul class=\"sULfix\">\r\n <li>In Internet Explorer, click on 'Internet Options' in the 'Extra' menu.</li>\r\n <li>Under the 'Privacy' tab, set the settings to 'low' or 'accept all cookies' (any setting above 'medium' will disable cookies).</li>\r\n <li>Click on 'OK'.</li>\r\n </ul>\r\n <p>For Mozilla Firefox</p>\r\n <ul class=\"sULfix\">\r\n <li>Click on 'Firefox' in the top left corner of your browser and then select 'Options'.</li>\r\n <li>Under the 'Privacy' tab, make sure 'Tell websites I do not want to be tracked' is not ticked.</li>\r\n <li>Click on 'OK'.</li>\r\n </ul>\r\n <p>For Google Chrome</p>\r\n <ul class=\"sULfix\">\r\n <li>Click on 'Extra' in the top of your browser window and select 'Options'.</li>\r\n <li>Under the 'Under the Hood' tab, look for 'Privacy' and select 'Content Settings'.</li>\r\n <li>Now select 'Allow local data to be set'.</li>\r\n </ul>\r\n <p>For Safari</p>\r\n <ul class=\"sULfix\">\r\n <li>Click on to 'Cog' icon in the top of your browser window and select 'Preferences'.</li>\r\n <li>Click on 'Security' and then tick the option that says: 'Block cookies from third parties and advertisers'.</li>\r\n <li>Click 'Save'.</li>\r\n </ul>\r\n <p> </p>\r\n <h3>5. My rights as a data subject?</h3>\r\n <h4>5.1. Guarantee of a lawful and safe process of personal data</h4>\r\n <p>Every user can be assured that his personal data will be processed in a fair and lawfully manner. This means that the data will only be processed for the legitimate purposes that have been described above. Flagstone guarantees moreover that such processing will always be sufficient, proportionate and not excessive.<br /> We will never store your personal data any longer than strictly necessary. We will however keep an archive of your data as long as your account is active or as long as your personal data appears necessary to offer you a certain service.<br /> Flagstone has taken sufficient technical and organizational measures to guarantee a safe processing of your personal data. These measures are consistent with the nature of the personal data and proportional to the potential severity of the risk.<br /> The risks of an accidental or unauthorized destruction, loss, alteration of or access to, and any other unauthorized processing of the data are reduced to a minimum. Sadly though, no risk can be completely removed. In case of breach of Flagstone's IT-system, we will immediately take all possible measures to limit the damages and/or thefts to a minimum.</p>\r\n <p> </p>\r\n <h4>5.2. Right to object</h4>\r\n <p>Each user can oppose the processing of his personal data. This right to object exists only if there are sufficient legitimate and weighty grounds relating to his particular situation. The exceptions provided in the Privacy Act are also applicable to this right of objection. You may at any time, free of charge and without further ado oppose the proposed processing of your personal data if those data were obtained for the purpose of direct marketing.<br /> You are also entitled to obtain the removal and/or the ban on the use of all your personal data which have been obtained and which are incomplete or irrelevant, regarded from the view of the purpose of the processing. This is also applicable to any personal data of which the registration, disclosure, and retention are prohibited, or personal data preserved after expiry of the authorized period. This right can be used at any time, free of charge and without further justification.<br /> The user shall exercise his right through a signed, written request to Flagstone, by post or e-mail to info@flagstone.tech. Flagstone undertakes the appropriate action following a request within fifteen (15) working days.</p>\r\n <p> </p>\r\n <h4>5.3. Right to access</h4>\r\n <p>Each user who proves his identity has a right of access to all information regarding the processing of his personal data by Flagstone, as defined in the Privacy Act. This includes information on the purposes of the processing, the categories of information processed and relate the categories of recipients to whom the data are provided. This Privacy Policy is a first indication.<br /> The user shall exercise his right through a signed, written request to Flagstone, by post or e-mail to info@flagstone.tech. Flagstone undertakes the appropriate action following a request within fifteen (15) working days.</p>\r\n <p> </p>\r\n <h4>5.4. Right to correct</h4>\r\n <p>Flagstone attaches a great importance to an accurate data collection. Inaccurate or incomplete personal data can therefore always be improved or even obliterated. Because it is impossible for us to continuously be aware of any mistakes, incompleteness or falseness of your personal data, it is up to you as a user to report inaccuracies or omissions and to perform the necessary adjustments regarding ones registration details.<br /> If your personal actions seem not enough, feel free to contact us using a signed, written request directed at info@flagstone.tech. Flagstone performs the necessary actions within fifteen (15) working days by making additions, correcting or deleting the personal data. The removal is mainly related to the visibility, so it is possible that the deleted personal data remains temporarily stored.</p>\r\n <p> </p>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n <footer className=\"footer\">\r\n <div className=\"container\">\r\n <p>© 2025 <Link to=\"/\"> Taplr </Link>. All rights reserved. Taplr is a product by Flagstone BV, Stedestraat 51, 8530 Harelbeke - Belgium. <Link to=\"/privacypolicy\">Privacy policy</Link>\r\n </p>\r\n </div>\r\n </footer>\r\n </div>\r\n )\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n header: {\r\n backgroundColor: '#231F20',\r\n paddingTop: \"65px\",\r\n\r\n [theme.breakpoints.down('lg')]: {\r\n paddingTop: '20px',\r\n },\r\n },\r\n\r\n container: {\r\n maxWidth: \"1560px\",\r\n\r\n margin: \"0 auto\",\r\n padding: \"0 15px\",\r\n boxSizing: \"border-box\",\r\n },\r\n\r\n row: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n [theme.breakpoints.down('md')]: {\r\n marginBottom: \"30px\",\r\n },\r\n },\r\n\r\n col5: {\r\n flex: \"0 0 41.666%\",\r\n maxWidth: \"41.666%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n col6: {\r\n flex: \"0 0 50%\",\r\n maxWidth: \"50%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n col7: {\r\n flex: \"0 0 58.333%\",\r\n maxWidth: \"58.333%\",\r\n [theme.breakpoints.down('md')]: {\r\n flex: \"0 0 100%\",\r\n maxWidth: \"100%\",\r\n },\r\n },\r\n\r\n logo: {\r\n // image inside\r\n '& img': {\r\n [theme.breakpoints.down('md')]: {\r\n width: \"130px\",\r\n },\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: '118px',\r\n },\r\n },\r\n },\r\n\r\n banner: {\r\n padding: \"30px 0 110px\",\r\n backgroundColor: \"#231F20\",\r\n boxSizing: \"border-box\",\r\n\r\n [theme.breakpoints.down('lg')]: {\r\n padding: \"30px 0 70px\",\r\n },\r\n\r\n [theme.breakpoints.down('md')]: {\r\n padding: \"0px 0 70px\",\r\n marginTop: \"-1px\",\r\n },\r\n },\r\n}));\r\nexport default PrivacyPolicyPage;","import React from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { Pencil} from 'lucide-react';\r\n\r\nimport * as Actions from '../../../../Reducers/actions'\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nfunction EditListsButton(props) {\r\n const navigate = useNavigate();\r\n\r\n return (\r\n <div>\r\n <IconButton onClick={() => navigate(`/modifydropdown/${props.uniqueId}`)} size='large' style={{ borderRadius: 0 }}>\r\n <Pencil fontSize=\"inherit\" />\r\n </IconButton>\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n lists: state.lists,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(EditListsButton);","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport EditListsButton from './EditListsButton';\r\nimport { Paper, Typography, TableRow, TableHead, TableContainer, TableBody, Table, IconButton, Collapse, Box, Tooltip } from '@mui/material';\r\nimport { ChevronDown, ChevronUp, Search, ArrowDownAZ } from 'lucide-react';\r\nimport FilterListRow from '../../../Shared/Tables/FilterListRow';\r\n\r\nfunction Row(props) {\r\n const classes = useStyles();\r\n const row = props.row;\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n <React.Fragment>\r\n <tr className={classes.tableBodyRow} key={\"thow\"} style={props.index % 2 ? { background: \"#e6ecf0\" } : { background: \"white\" }}>\r\n <td className={classes.tableData}>\r\n <IconButton style={{ borderRadius: 0 }}\r\n aria-label=\"expand row\"\r\n size=\"small\"\r\n onClick={() => setOpen(!open)}>\r\n {open ? <ChevronUp /> : <ChevronDown />}\r\n </IconButton>\r\n </td>\r\n <td className={classes.tableData}>\r\n {row.name}\r\n </td>\r\n <td className={classes.tableData}>\r\n {row.description}\r\n </td>\r\n <td><EditListsButton style={{ borderRadius: 0 }} uniqueId={props.row.uniqueId} data={\r\n ({\r\n listName: props.row.name,\r\n listDescription: props.row.description,\r\n listCompanyId: props.row.companyId,\r\n listItems: props.row.dataListItems,\r\n listIsActive: props.row.listIsActive,\r\n listId: props.row.listId\r\n })} />\r\n </td>\r\n </tr>\r\n\r\n <tr style={props.index % 2 ? { background: \"#e6ecf0\" } : { background: \"white\" }}>\r\n <td style={{ paddingBottom: 0, paddingTop: 0 }} colSpan={4}>\r\n <Collapse in={open} timeout=\"auto\" unmountOnExit>\r\n <Box sx={{ margin: 1 }}>\r\n <Typography variant=\"h6\" gutterBottom component=\"div\">\r\n {row.name}\r\n </Typography>\r\n <Table size=\"small\">\r\n <thead>\r\n <TableRow className={classes.tableRow} >\r\n <td style={{ fontWeight: 'bold' }}>#</td>\r\n <td style={{ fontWeight: 'bold' }}>Name</td>\r\n <td style={{ fontWeight: 'bold' }}>Description</td>\r\n </TableRow>\r\n </thead>\r\n <TableBody>\r\n {row.dataListItems.map((ItemRows, index) => (\r\n <tr className={classes.tableRow} key={\"throw\"} style={props.index % 2 ? { background: \"#e6ecf0\" } : { background: \"white\" }}>\r\n <td>{index + 1}</td>\r\n <td>{ItemRows.name}</td>\r\n <td>{ItemRows.description}</td>\r\n </tr>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </Box>\r\n </Collapse>\r\n </td>\r\n </tr>\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nexport default function TableList(props) {\r\n const classes = useStyles();\r\n return (\r\n <TableContainer style={{ borderTopRightRadius: \"8px\", borderTopLeftRadius: '8px' }} component={Paper}>\r\n <Table size=\"sm\" key={props.rows.id}>\r\n <TableHead className={classes.headStyle} key={props.rows.id}>\r\n <TableRow className={classes.tableBodyRow} key={props.rows.id}>\r\n <th className={classes.tableHead} style={{ width: '2%' }} />\r\n <th className={classes.tableHead} style={{ width: \"240px\" }} >\r\n <span className={classes.titleSearch} style={{ paddingLeft: \"8px\", }}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('name')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Dropdown Name\r\n {/* <Tooltip title=\"Search project\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip> */}\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n Dropdown Description\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ textAlign: 'center', width: \"5%\" }}>\r\n Actions\r\n </th>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {props.filterOn && <FilterListRow rows={props.rows} filters={props.filters} filterList={props.filterList} updateFilters={props.updateFilters}></FilterListRow>}\r\n {props.rows.map((row, index) => (\r\n <Row row={row} index={index} className={classes.tableBodyRow} />\r\n ))}\r\n {props.rows.length === 0 &&\r\n <tr className={classes.tableBodyRow} >\r\n <td colSpan={4}>No dropdown available</td>\r\n </tr>}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tableHead: {\r\n height: '42px',\r\n textAlign: \"left\",\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n padding: \"0px 16px\",\r\n justifyContent: 'flex-start',\r\n alignItems: 'center'\r\n },\r\n headStyle: {\r\n backgroundColor: \"#e0dce4\",\r\n },\r\n tableBodyRow: {\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n tableRow: {\r\n borderBottom: '2px solid #e0dce4',\r\n },\r\n\r\n tableData: {\r\n padding: \"8px 16px\",\r\n textAlign: \"left\",\r\n },\r\n\r\n actionButtons: {\r\n padding: '0px !important',\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }\r\n}));\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport TitlePage from \"../../Shared/TitlePage\";\r\nimport { dataService } from \"../../../Services/data/data.service\";\r\nimport { Box, } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { dataListTypes } from '../../../Config/constants';\r\nimport { Plus, Search } from 'lucide-react';\r\n\r\nimport { useNavigate } from 'react-router-dom';\r\nimport TableList from \"./Components/TableList\";\r\n\r\nfunction ListOverviewPage(props) {\r\n const navigate = useNavigate();\r\n const [firstLoad, setFirstLoad] = useState(0);\r\n const classes = useStyles();\r\n const [filters, setFilters] = useState([]);\r\n const [filterOn, setFilterOn] = useState(false);\r\n const [list, setList] = useState([]);\r\n const [originalList, setOriginalList] = useState([]);\r\n const [selectedFilter, setSelectedFilter] = useState(1);\r\n\r\n useEffect(() => {\r\n dataService.getLists(props.Login.userid).then(result => {\r\n setList(result)\r\n setOriginalList(result);\r\n });\r\n }, [props.Login.userid])\r\n\r\n if (firstLoad === 0) {\r\n setFirstLoad(1);\r\n }\r\n\r\n const filter = [\r\n { number: 1, column: \"name\", sortOrder: \"ASC\" },\r\n { number: 2, column: \"name\", sortOrder: \"DESC\" },\r\n\r\n ]\r\n\r\n const dynamicSorting = (property) => {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n let asc = false;\r\n /* SC: Filter now works both ways (ASC, DESC) */\r\n if (filter.find(x => x.number === selectedFilter).column === property) {\r\n if (filter.find(x => x.number === selectedFilter).sortOrder === 'ASC') {\r\n asc = false;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n }\r\n if (asc === true) {\r\n return function (a, b) {\r\n //ASC A-Z\r\n var result = (a[property].toLowerCase() > b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n } else {\r\n return function (a, b) {\r\n //DESC Z-A\r\n var result = (a[property].toLowerCase() < b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n }\r\n }\r\n\r\n const handleSorting = (sortType) => {\r\n let tempMeasurementRows = [...list]\r\n setList(tempMeasurementRows.sort(dynamicSorting(sortType)));\r\n }\r\n\r\n const toggleFilter = () => {\r\n if (filterOn) {\r\n setFilters([]);\r\n }\r\n setFilterOn(!filterOn);\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n setFilters(tempFilters);\r\n filterList(tempFilters);\r\n }\r\n\r\n const filterList = (thisFilters) => {\r\n let varFilteredlist = [...originalList];\r\n var i;\r\n for (i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case dataListTypes.NAME:\r\n varFilteredlist = varFilteredlist.filter(x => x.name.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n default:\r\n varFilteredlist = varFilteredlist.filter(x => x.name.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n }\r\n }\r\n setList(varFilteredlist)\r\n }\r\n\r\n const getFilterValue = (type) => {\r\n\r\n let filter = filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n const navigateTo = (destination) => {\r\n navigate(destination);\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Manage your dropdowns\" backbutton={true} {...props} />\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n\r\n }} >\r\n <div className={classes.header}>\r\n <h1>Manage your dropdowns</h1>\r\n </div>\r\n <div className={classes.tableManagementContainer}>\r\n <div className={classes.tableManagementContainer__start}>\r\n <div className={classes.searchContainer}>\r\n <input placeholder=\"Search for dropdowns\" className={classes.search__input} type=\"text\" value={getFilterValue(dataListTypes.NAME)} onChange={(e) => updateFilters(dataListTypes.NAME, e)} />\r\n <Search size={16} className={classes.inputIcon} />\r\n </div>\r\n </div>\r\n <div className={classes.tableManagementContainer__end}>\r\n <button className={classes.tableManagementContainer__primaryIconButton} onClick={() => navigateTo('/createdropdown')}>\r\n <Plus className={classes.iconButton__icon} />\r\n Create dropdown\r\n </button>\r\n </div>\r\n </div>\r\n <Box className={classes.container}>\r\n <TableList toggleFilter={toggleFilter} filters={filters} handleSorting={handleSorting} filterOn={filterOn} filterList={filterList} updateFilters={updateFilters} rows={list} />\r\n </Box>\r\n </Box>\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ListOverviewPage;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n // background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n // padding: \"1.5rem\",\r\n maxWidth: \"100%\",\r\n marginBottom: \"24px\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n searchContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n search__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '8px',\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n});","import React, { useEffect, useState } from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport * as Actions from '../../../../Reducers/actions'\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Pencil } from 'lucide-react';\r\n\r\nfunction EditButton(props) {\r\n var today = new Date();\r\n const [FromDate, setFromDate] = useState(today);\r\n const [ToDate, setToDate] = useState(today);\r\n const [projectQr, setProjectQR] = useState(null)\r\n const [projectId, setProjectId] = useState(null)\r\n const [ResourceName, setResourceName] = useState(\"\")\r\n const [CompanyName, setCompanyName] = useState(\"\")\r\n const [CompanyId, setCompanyId] = useState(null)\r\n const [ProjectName, setProjectName] = useState(\"\")\r\n const [projectrows, setProjectRows] = useState([])\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n setProjectQR(props.data.projectQr);\r\n setProjectName(props.data.projectName);\r\n setCompanyName(props.data.company);\r\n setCompanyId(props.data.companyId);\r\n setResourceName(props.data.resource);\r\n setFromDate(props.data.fromDate);\r\n setToDate(props.data.toDate);\r\n setProjectId(props.data.projectId);\r\n setProjectRows(props.data.details);\r\n }, [props.data.projectQr, props.data.projectName, props.data.company, props.data.companyId, props.data.resource, props.data.fromDate, props.data.toDate, props.data.projectId, props.data.details])\r\n\r\n const SaveAndRedirect = () => {\r\n let tempCompanyName = CompanyName;\r\n let tempCompanyId = CompanyId;\r\n let tempResourceName = ResourceName;\r\n let tempProjectName = ProjectName;\r\n let tempFromDate = FromDate;\r\n let tempToDate = ToDate;\r\n let tempProjectId = projectId;\r\n let tempProjectQR = projectQr;\r\n let tempProjectRows = projectrows.map(x => ({ ...x }));\r\n\r\n props.actions.companyAction(tempCompanyName)\r\n props.actions.companyIdAction(tempCompanyId)\r\n props.actions.resourceAction(tempResourceName)\r\n props.actions.fromDateAction(tempFromDate)\r\n props.actions.toDateAction(tempToDate)\r\n props.actions.detailsAction(tempProjectRows)\r\n props.actions.projectIdAction(tempProjectId)\r\n props.actions.projectNameAction(tempProjectName)\r\n props.actions.projectQrAction(tempProjectQR)\r\n navigate(`/modifyproject/${props.data.projectQr}`);\r\n }\r\n\r\n return (\r\n <div>\r\n <IconButton style={{ borderRadius: 0, borderLeft: '1px solid rgba(0, 0, 0, 0.12)' }} onClick={SaveAndRedirect} size='large'>\r\n <Pencil fontSize=\"inherit\" />\r\n </IconButton>\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n projects: state.projects,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(EditButton);","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport QrButton from '../../../Shared/QrButton';\r\nimport FilterProjectRow from '../../../Shared/Tables/FilterProjectRow';\r\nimport EditButton from './EditButton';\r\nimport { Search, ChevronLast, ChevronFirst, ChevronRight, ChevronLeft, ArrowDownAZ } from 'lucide-react';\r\nimport { TableContainer, IconButton, Table, TableFooter, TablePagination, TableRow, Paper, Tooltip } from '@mui/material';\r\nimport PropTypes from 'prop-types';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\n\r\nfunction TablePaginationActions(props) {\r\n const theme = useTheme();\r\n const classes = useStyles();\r\n const { count, page, rowsPerPage, onPageChange } = props;\r\n\r\n const handleFirstPageButtonClick = (event) => {\r\n onPageChange(event, 0);\r\n };\r\n\r\n const handleBackButtonClick = (event) => {\r\n onPageChange(event, page - 1);\r\n };\r\n\r\n const handleNextButtonClick = (event) => {\r\n onPageChange(event, page + 1);\r\n };\r\n\r\n const handleLastPageButtonClick = (event) => {\r\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\r\n };\r\n\r\n return (\r\n <div className={classes.footer}>\r\n <IconButton\r\n onClick={handleFirstPageButtonClick}\r\n disabled={page === 0}\r\n aria-label=\"first page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronLast /> : <ChevronFirst />}\r\n </IconButton>\r\n <IconButton\r\n onClick={handleBackButtonClick}\r\n disabled={page === 0}\r\n aria-label=\"previous page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronRight /> : <ChevronLeft />}\r\n </IconButton>\r\n <IconButton\r\n onClick={handleNextButtonClick}\r\n disabled={page >= Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"next page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronLeft /> : <ChevronRight />}\r\n </IconButton>\r\n <IconButton\r\n onClick={handleLastPageButtonClick}\r\n disabled={page >= Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"last page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronFirst /> : <ChevronLast />}\r\n </IconButton>\r\n </div>\r\n );\r\n}\r\n\r\nTablePaginationActions.propTypes = {\r\n count: PropTypes.number.isRequired,\r\n onPageChange: PropTypes.func.isRequired,\r\n page: PropTypes.number.isRequired,\r\n rowsPerPage: PropTypes.number.isRequired,\r\n};\r\n\r\n\r\n\r\nexport default function TableManage(props) {\r\n const [page, setPage] = useState(0);\r\n const [rowsPerPage, setRowsPerPage] = useState(100);\r\n const currentDate = new Date();\r\n // Avoid a layout jump when reaching the last page with empty rows.\r\n // const emptyRows =\r\n // page > 0 ? Math.max(0, (1 + page) * rowsPerPage - props.rows.length) : 0;\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const classes = useStyles();\r\n var measurementTypes = props.types;\r\n function reformatDate(dateStr) {\r\n let dArr = dateStr.split(\"-\");\r\n return dArr[2] + \"/\" + dArr[1] + \"/\" + dArr[0];\r\n }\r\n const datesAreOnSameDay = (first, second) =>\r\n first.getFullYear() === second.getFullYear() &&\r\n first.getMonth() === second.getMonth() &&\r\n first.getDate() === second.getDate();\r\n\r\n\r\n function dateRange(a_start, a_end, b_start, b_end) {\r\n if (a_start <= b_start && b_start <= a_end) return true; // b starts in a\r\n if (a_start <= b_end && b_end <= a_end) return true; // b ends in a\r\n if (b_start < a_start && a_end < b_end) return true; // a in b\r\n\r\n if (datesAreOnSameDay(a_start, b_start)) return true;\r\n if (datesAreOnSameDay(b_end, a_end)) return true;\r\n return false;\r\n }\r\n\r\n return (\r\n <TableContainer style={{ borderTopRightRadius: \"8px\", borderTopLeftRadius: \"8px\" }} component={Paper}>\r\n <Table size=\"sm\" key={\"table\"}>\r\n <thead className={classes.headStyle} key={\"thead\"}>\r\n <tr className={classes.tableHeadRow} key={\"trow\"}>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('companyName')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Customer\r\n <Tooltip title=\"Search project\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('projectName')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Project\r\n <Tooltip title=\"Search project\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('resourceName')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Registration point\r\n <Tooltip title=\"Search registration point\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Sort descending\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('fromDate')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Date range\r\n\r\n </div>\r\n </span>\r\n </th>\r\n <th align=\"center\" className={classes.tableHead} style={{ width: '3%', textAlign: 'center' }}>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody key={\"tbody\"}>\r\n {props.filterOn && <FilterProjectRow rows={props.rows} filters={props.filters} filterProjects={props.filterProjects} updateFilters={props.updateFilters}></FilterProjectRow>}\r\n {(props.rows !== undefined && props.rows.length) > 0 ?\r\n <React.Fragment>\r\n {(rowsPerPage > 0\r\n ? props.rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n : props.rows\r\n ).map((row) => (\r\n <tr className={classes.tableBodyRow} key={row.projectId}>\r\n <td>{row.companyName}</td>\r\n <td>{row.projectName}</td>\r\n <td>{row.resourceName}</td>\r\n <td>{reformatDate(row.fromDate.slice(0, 10)) + \" - \" + reformatDate(row.toDate.slice(0, 10))}</td>\r\n <td className={classes.actionButtons}>\r\n\r\n <QrButton disabled={!dateRange(new Date(row.fromDate), new Date(row.toDate), new Date(currentDate), new Date(currentDate))} projectName={row.projectName} resourceName={row.resourceName} QrCode={row.qrCode} size='large' />\r\n\r\n <EditButton size='large' data={\r\n ({\r\n projectQr: row.qrCode,\r\n projectName: row.projectName,\r\n company: row.companyName,\r\n companyId: row.companyId,\r\n resource: row.resourceName,\r\n fromDate: row.fromDate,\r\n toDate: row.toDate,\r\n projectId: row.projectId,\r\n details: row.details,\r\n types: measurementTypes,\r\n })} />\r\n </td>\r\n </tr>\r\n ))}\r\n </React.Fragment>\r\n :\r\n <tr className={classes.tableBodyRow}>\r\n <td>No projects available</td>\r\n <td>-</td>\r\n <td>-</td>\r\n <td>-</td>\r\n <td>-</td>\r\n </tr>\r\n }\r\n\r\n\r\n </tbody>\r\n <TableFooter className={classes.tableFooter}>\r\n <TableRow>\r\n <TablePagination\r\n rowsPerPageOptions={[100, 200, 500, { label: 'All', value: -1 }]}\r\n colSpan={12}\r\n count={props.rows !== null && props.rows !== undefined ? props.rows.length : 0}\r\n rowsPerPage={rowsPerPage}\r\n page={page}\r\n SelectProps={{\r\n inputProps: {\r\n 'aria-label': 'rows per page',\r\n },\r\n native: true,\r\n }}\r\n onPageChange={handleChangePage}\r\n onRowsPerPageChange={handleChangeRowsPerPage}\r\n ActionsComponent={TablePaginationActions}\r\n />\r\n </TableRow>\r\n </TableFooter>\r\n </Table>\r\n </TableContainer>\r\n )\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n tableHead: {\r\n height: '42px',\r\n borderRight: '2px solid #e6ecf0',\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n headStyle: {\r\n backgroundColor: \"#e0dce4\",\r\n },\r\n tableBodyRow: {\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n actionButtons: {\r\n padding: '0px !important',\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"center\"\r\n },\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }\r\n}));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport TitlePage from \"../../Shared/TitlePage\";\r\nimport TableManage from \"./Components/TableManage\";\r\nimport { dataService } from \"../../../Services/data/data.service\";\r\nimport { fromNewDateFormatToYYYYMMDDSlash } from \"../../../Utils/dateHelper\";\r\nimport { Grid2, Divider, Box } from \"@mui/material\";\r\nimport DateSelectionFuture from \"../../Shared/DateSelection/DateSelectionFuture\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ProjectFilterTypes } from '../../../Config/constants';\r\nimport { Plus } from 'lucide-react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\n\r\n\r\nfunction ManagePage(props) {\r\n var today = new Date();\r\n var nextMonth = new Date();\r\n nextMonth.setDate(nextMonth.getDate() + 30);\r\n const navigate = useNavigate();\r\n const [firstLoad, setFirstLoad] = useState(0);\r\n const [FromDate, setFromDate] = useState(today);\r\n const [ToDate, setToDate] = useState(nextMonth);\r\n const GetUserId = props.Login.userid;\r\n const classes = useStyles();\r\n const [types, setTypes] = useState([]);\r\n const [filters, setFilters] = useState([]);\r\n const [filterOn, setFilterOn] = useState(false);\r\n const [measurementRows, setMeasurementRows] = useState([]);\r\n const [projects, setProjects] = useState([]);\r\n const [selectedFilter, setSelectedFilter] = useState(8);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n dataService.getTypes().then(results => {\r\n if (results) {\r\n setTypes(results.sort((a, b) => a.description.localeCompare(b.description)));\r\n }\r\n });\r\n }, [])\r\n\r\n const setTheFromDate = (event) => {\r\n if (event !== FromDate) {\r\n setFromDate(event);\r\n setDates(event, ToDate);\r\n }\r\n }\r\n const setTheToDate = (event) => {\r\n if (event !== ToDate) {\r\n setToDate(event);\r\n setDates(FromDate, event);\r\n }\r\n }\r\n\r\n const setDates = (fromDate, toDate) => {\r\n setToDate(toDate);\r\n setFromDate(fromDate);\r\n sendApi(fromDate, toDate);\r\n }\r\n\r\n\r\n const sendApi = (fromDate, toDate) => {\r\n // eslint-disable-next-line\r\n let sort;\r\n dataService.getMeasurementForModify(GetUserId, fromNewDateFormatToYYYYMMDDSlash(new Date(fromDate)), fromNewDateFormatToYYYYMMDDSlash(new Date(toDate))).then(results => {\r\n sort = results.sort(function (a, b) {\r\n // Turn your strings into dates, and then subtract them\r\n // to get a value that is either negative, positive, or zero.\r\n return new Date(b.fromDate) - new Date(a.fromDate);\r\n });\r\n }).catch((error) => {\r\n toast.error('Something went wrong while fetching the data.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n setMeasurementRows(sort)\r\n setProjects(sort);\r\n setLoading(false);\r\n })\r\n }\r\n\r\n if (firstLoad === 0) {\r\n sendApi(FromDate, ToDate);\r\n setFirstLoad(1);\r\n }\r\n\r\n const filter = [\r\n { number: 1, column: \"companyName\", sortOrder: \"ASC\" },\r\n { number: 2, column: \"companyName\", sortOrder: \"DESC\" },\r\n { number: 3, column: \"projectName\", sortOrder: \"ASC\" },\r\n { number: 4, column: \"projectName\", sortOrder: \"DESC\" },\r\n { number: 5, column: \"resourceName\", sortOrder: \"ASC\" },\r\n { number: 6, column: \"resourceName\", sortOrder: \"DESC\" },\r\n { number: 7, column: \"fromDate\", sortOrder: \"ASC\" },\r\n { number: 8, column: \"fromDate\", sortOrder: \"DESC\" },\r\n ]\r\n\r\n const dynamicSorting = (property) => {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n let asc = false;\r\n\r\n /* SC: Filter now works both ways (ASC, DESC) */\r\n if (filter.find(x => x.number === selectedFilter).column === property) {\r\n if (filter.find(x => x.number === selectedFilter).sortOrder === 'ASC') {\r\n asc = false;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n if (asc === true) {\r\n return function (a, b) {\r\n var result = (a[property].toLowerCase() > b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n } else {\r\n return function (a, b) {\r\n var result = (a[property].toLowerCase() < b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n }\r\n }\r\n\r\n const handleSorting = (sortType) => {\r\n let tempMeasurementRows = [...projects];\r\n setProjects(tempMeasurementRows.sort(dynamicSorting(sortType)));\r\n }\r\n\r\n\r\n const toggleFilter = () => {\r\n if (filterOn) {\r\n setFilters([]);\r\n }\r\n setFilterOn(!filterOn);\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n\r\n setFilters(tempFilters);\r\n filterProjects(tempFilters);\r\n }\r\n\r\n const filterProjects = (thisFilters) => {\r\n let varFilteredProjects = [...measurementRows];\r\n var i;\r\n for (i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case ProjectFilterTypes.CUSTOMER:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n case ProjectFilterTypes.PROJECT_NAME:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.projectName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n case ProjectFilterTypes.LOCATION_NAME:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.resourceName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n default:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n }\r\n }\r\n setProjects(varFilteredProjects)\r\n }\r\n\r\n const navigateTo = (destination) => {\r\n navigate(destination);\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Manage your projects\" backbutton={true} {...props} />\r\n {loading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n }\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n\r\n }} >\r\n <div className={classes.header}>\r\n <h1>Manage projects</h1>\r\n <button className={classes.primaryIconButton} onClick={() => navigateTo('/create', { state: { from: '/manage' } })} >\r\n <Plus className={classes.iconButton__icon} />\r\n Create a project\r\n </button>\r\n </div>\r\n <Box className={classes.container}>\r\n <Grid2\r\n container\r\n columnSpacing={3}\r\n rowSpacing={1}\r\n alignItems=\"center\">\r\n <Grid2 item size={12} >\r\n <div className={classes.dateAndCreateDiv}>\r\n <div className={classes.dateSelectionDiv}>\r\n <p className={classes.activeFor}>Active between: </p>\r\n <DateSelectionFuture setDates={setDates} FromDate={FromDate} ToDate={ToDate} setTheFromDate={setTheFromDate} setTheToDate={setTheToDate} />\r\n </div>\r\n\r\n </div>\r\n <Divider style={{ marginTop: \"1rem\", marginBottom: \"1rem\" }}></Divider>\r\n </Grid2>\r\n <Grid2 item size={12}>\r\n <TableManage toggleFilter={toggleFilter} filters={filters} handleSorting={handleSorting} filterOn={filterOn} filterProjects={filterProjects} updateFilters={updateFilters} types={types} rows={projects} />\r\n </Grid2>\r\n </Grid2>\r\n </Box>\r\n\r\n </Box>\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ManagePage;\r\n\r\nconst useStyles = makeStyles({\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n position: 'fixed',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n container: {\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n maxWidth: \"100%\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n dateAndCreateDiv: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'end',\r\n flexWrap: 'wrap',\r\n\r\n\r\n },\r\n\r\n activeFor: {\r\n color: \"#696969\",\r\n fontSize: \"15px\",\r\n },\r\n\r\n linkButton: {\r\n color: 'white !important',\r\n background: \"#C3996B !important\",\r\n border: \"1px solid #C3996B !important\",\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n transition: '0.3s',\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n\r\n },\r\n },\r\n});","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport QrButton from '../../../Shared/QrButton';\r\nimport FilterProjectRow from '../../../Shared/Tables/FilterProjectRow';\r\nimport { Search, ChevronLast, ChevronFirst, ChevronRight, ChevronLeft, ArrowDownAZ, Pencil, EllipsisVertical, ChartNoAxesColumn, ReceiptEuro } from 'lucide-react';\r\nimport { TableContainer, IconButton, Table, TableFooter, TablePagination, TableRow, Paper, Tooltip } from '@mui/material';\r\nimport PropTypes from 'prop-types';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\n\r\nfunction TablePaginationActions(props) {\r\n const theme = useTheme();\r\n const classes = useStyles();\r\n\r\n const { count, page, rowsPerPage, onPageChange } = props;\r\n\r\n const handleFirstPageButtonClick = (event) => {\r\n onPageChange(event, 0);\r\n };\r\n\r\n const handleBackButtonClick = (event) => {\r\n onPageChange(event, page - 1);\r\n };\r\n\r\n const handleNextButtonClick = (event) => {\r\n onPageChange(event, page + 1);\r\n };\r\n\r\n const handleLastPageButtonClick = (event) => {\r\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\r\n };\r\n\r\n return (\r\n <div className={classes.footer}>\r\n <IconButton\r\n onClick={handleFirstPageButtonClick}\r\n disabled={page === 0}\r\n aria-label=\"first page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronLast /> : <ChevronFirst />}\r\n </IconButton>\r\n <IconButton\r\n onClick={handleBackButtonClick}\r\n disabled={page === 0}\r\n aria-label=\"previous page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronRight /> : <ChevronLeft />}\r\n </IconButton>\r\n <IconButton\r\n onClick={handleNextButtonClick}\r\n disabled={page >= Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"next page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronLeft /> : <ChevronRight />}\r\n </IconButton>\r\n <IconButton\r\n onClick={handleLastPageButtonClick}\r\n disabled={page >= Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"last page\"\r\n >\r\n {theme.direction === 'rtl' ? <ChevronFirst /> : <ChevronLast />}\r\n </IconButton>\r\n </div>\r\n );\r\n}\r\n\r\nTablePaginationActions.propTypes = {\r\n count: PropTypes.number.isRequired,\r\n onPageChange: PropTypes.func.isRequired,\r\n page: PropTypes.number.isRequired,\r\n rowsPerPage: PropTypes.number.isRequired,\r\n};\r\n\r\n\r\n\r\nexport default function ProjectTable(props) {\r\n const navigate = useNavigate();\r\n const classes = useStyles();\r\n\r\n const [page, setPage] = useState(0);\r\n const [rowsPerPage, setRowsPerPage] = useState(100);\r\n\r\n const currentDate = new Date();\r\n const [dropdownItem, setDropdownItem] = useState(null);\r\n // Avoid a layout jump when reaching the last page with empty rows.\r\n // const emptyRows =\r\n // page > 0 ? Math.max(0, (1 + page) * rowsPerPage - props.rows.length) : 0;\r\n\r\n const dropdownRef = useRef(null);\r\n\r\n useEffect(() => {\r\n console.log(props.rows);\r\n }, [props.rows])\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n function reformatDate(dateStr) {\r\n let dArr = dateStr.split(\"-\");\r\n return dArr[2] + \"/\" + dArr[1] + \"/\" + dArr[0];\r\n }\r\n const datesAreOnSameDay = (first, second) =>\r\n first.getFullYear() === second.getFullYear() &&\r\n first.getMonth() === second.getMonth() &&\r\n first.getDate() === second.getDate();\r\n\r\n\r\n function dateRange(a_start, a_end, b_start, b_end) {\r\n if (a_start <= b_start && b_start <= a_end) return true; // b starts in a\r\n if (a_start <= b_end && b_end <= a_end) return true; // b ends in a\r\n if (b_start < a_start && a_end < b_end) return true; // a in b\r\n\r\n if (datesAreOnSameDay(a_start, b_start)) return true;\r\n if (datesAreOnSameDay(b_end, a_end)) return true;\r\n return false;\r\n }\r\n\r\n const getMeasurementCount = (project) => {\r\n let measurementCount = project.measurementCount;\r\n\r\n if (project.measurementCount === 0) {\r\n return \"No events recorded\";\r\n } else {\r\n return measurementCount;\r\n }\r\n }\r\n\r\n const handleToggleDropdown = (id) => {\r\n if (dropdownItem) {\r\n setDropdownItem(null);\r\n return;\r\n }\r\n setDropdownItem(id);\r\n }\r\n\r\n const handleClickOutsideDropdown = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\r\n setTimeout(() => {\r\n setDropdownItem(null);\r\n }, 100);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (dropdownItem) {\r\n document.addEventListener('mousedown', handleClickOutsideDropdown);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutsideDropdown);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutsideDropdown);\r\n };\r\n }, [dropdownItem]);\r\n\r\n const getProjectDateIndicator = (endDate) => {\r\n const currentDate = new Date();\r\n const projectEndDate = new Date(endDate);\r\n\r\n console.log(projectEndDate);\r\n\r\n if (projectEndDate < currentDate) {\r\n return <div style={{ backgroundColor: \"#D84949\", height: \"8px\", width: \"8px\", borderRadius: \"4px\" }}></div>;\r\n } else if (projectEndDate >= currentDate) {\r\n return <div style={{ backgroundColor: \"#5CC958\", height: \"8px\", width: \"8px\", borderRadius: \"4px\" }}></div>;\r\n }\r\n }\r\n\r\n return (\r\n <TableContainer style={{ borderTopRightRadius: \"8px\", borderTopLeftRadius: \"8px\", overflow: \"visible\", overflowX: \"visible !important\" }} component={Paper}>\r\n <Table size=\"sm\" key={\"table\"}>\r\n <thead className={classes.headStyle} key={\"thead\"}>\r\n <tr className={classes.tableHeadRow} key={\"trow\"}>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('projectName')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Project\r\n <Tooltip title=\"Search project\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('resourceDescription')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Registration point\r\n <Tooltip title=\"Search registration point\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('companyName')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Company\r\n <Tooltip title=\"Search project\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.toggleFilter()}>\r\n <Search />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Alphabetical order\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('eventCount')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Events\r\n </div>\r\n </span>\r\n </th>\r\n <th className={classes.tableHead} style={{ width: '20%' }}>\r\n <span className={classes.titleSearch}>\r\n <div className={classes.icons}>\r\n <Tooltip title=\"Sort descending\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={() => props.handleSorting('timeRangeBegin')}>\r\n <ArrowDownAZ />\r\n </IconButton>\r\n </Tooltip>\r\n Date range\r\n </div>\r\n </span>\r\n </th>\r\n <th align=\"center\" className={classes.tableHead} style={{ width: '3%', textAlign: 'center' }}>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody key={\"tbody\"}>\r\n {props.filterOn && <FilterProjectRow rows={props.rows} filters={props.filters} filterProjects={props.filterProjects} updateFilters={props.updateFilters}></FilterProjectRow>}\r\n {(props.rows !== undefined && props.rows.length) > 0 ?\r\n <React.Fragment>\r\n {(rowsPerPage > 0\r\n ? props.rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n : props.rows\r\n ).map((row) => (\r\n <tr className={classes.tableBodyRow} key={row.projectId}>\r\n <td className={classes.tableData}>{row.projectName}</td>\r\n <td className={classes.tableData}>{row.resourceDescription}</td>\r\n <td className={classes.tableData}>{row.companyName}</td>\r\n <td className={classes.tableData}>{getMeasurementCount(row)}</td>\r\n <td className={classes.tableData} style={{ paddingRight: \"24px\" }}><div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}><p style={{ width: \"fit-content\" }}>{reformatDate(row.timeRangeBegin.slice(0, 10)) + \" - \" + reformatDate(row.timeRangeEnd.slice(0, 10))}</p>{getProjectDateIndicator(row.timeRangeEnd)}</div></td>\r\n <td className={classes.actionButtons}>\r\n <QrButton disabled={!dateRange(new Date(row.timeRangeBegin), new Date(row.timeRangeEnd), new Date(currentDate), new Date(currentDate))} projectName={row.projectName} resourceName={row.resourceName} QrCode={row.qrCode} size='large' />\r\n <IconButton style={{ borderRadius: 0, borderLeft: '1px solid rgba(0, 0, 0, 0.12)' }} onClick={() => navigate(`/modifyproject/${row.qrCode}`)} size='large'>\r\n <Pencil fontSize=\"inherit\" />\r\n </IconButton>\r\n <button onClick={() => handleToggleDropdown(row.id)} className={classes.openDropdownButton} style={{ backgroundColor: dropdownItem === row.id ? \"#EDEDED\" : \"transparent\" }}>\r\n <EllipsisVertical size={20} absoluteStrokeWidth strokeWidth={1.4} />\r\n </button>\r\n {dropdownItem === row.id ? <div ref={dropdownRef} className={classes.row__dropdown}>\r\n <button className={classes.row__dropdownButton} onClick={() => navigate(`/results/${row.qrCode}`)}>\r\n <ChartNoAxesColumn className={classes.iconButton__icon} />\r\n Event timeline\r\n </button>\r\n <button className={classes.row__dropdownButton} onClick={() => navigate(`/projectreport/${row.qrCode}`)}>\r\n <ReceiptEuro className={classes.iconButton__icon} />\r\n Financial dashboard\r\n </button>\r\n </div> : null}\r\n </td>\r\n </tr>\r\n ))}\r\n </React.Fragment>\r\n :\r\n <tr className={classes.tableBodyRow}>\r\n <td>No projects available</td>\r\n <td>-</td>\r\n <td>-</td>\r\n <td>-</td>\r\n <td>-</td>\r\n </tr>\r\n }\r\n\r\n\r\n </tbody>\r\n <TableFooter className={classes.tableFooter}>\r\n <TableRow>\r\n <TablePagination\r\n rowsPerPageOptions={[100, 200, 500, { label: 'All', value: -1 }]}\r\n colSpan={12}\r\n count={props.rows !== null && props.rows !== undefined ? props.rows.length : 0}\r\n rowsPerPage={rowsPerPage}\r\n page={page}\r\n SelectProps={{\r\n inputProps: {\r\n 'aria-label': 'rows per page',\r\n },\r\n native: true,\r\n }}\r\n onPageChange={handleChangePage}\r\n onRowsPerPageChange={handleChangeRowsPerPage}\r\n ActionsComponent={TablePaginationActions}\r\n />\r\n </TableRow>\r\n </TableFooter>\r\n </Table>\r\n </TableContainer >\r\n )\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n tableHead: {\r\n height: '42px',\r\n borderRight: '2px solid #e6ecf0',\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n paddingLeft: \"16px\",\r\n alignItems: 'center'\r\n },\r\n headStyle: {\r\n backgroundColor: \"#e0dce4\",\r\n },\r\n tableBodyRow: {\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n\r\n position: \"relative\",\r\n },\r\n tableData: {\r\n textAlign: \"left\",\r\n paddingLeft: \"24px\",\r\n },\r\n actionButtons: {\r\n padding: '0px !important',\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n },\r\n\r\n openDropdownButton: {\r\n width: \"48px\",\r\n height: \"48px\",\r\n borderRadius: \"0px\",\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n color: \"#0C0E29\",\r\n borderLeft: \"1px solid rgba(0, 0, 0, 0.12)\",\r\n\r\n transition: \"background-color 0.1s\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#EDEDED !important\",\r\n }\r\n },\r\n\r\n row__dropdown: {\r\n position: \"absolute\",\r\n right: \"0px\",\r\n top: \"48px\",\r\n\r\n width: \"fit-content\",\r\n height: \"fit-content\",\r\n\r\n padding: \"4px\",\r\n\r\n backgroundColor: \"white\",\r\n zIndex: \"999\",\r\n boxShadow: \"0px 3px 15px rgba(175, 175, 175, 0.25)\",\r\n borderRadius: \"6px\",\r\n\r\n },\r\n\r\n row__dropdownButton: {\r\n width: \"100%\",\r\n height: \"32px\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: \"medium\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n padding: \"8px 12px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n transition: \"background-color 0.1s\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F8F8F8\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n strokeWidth: \"1.6px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }\r\n}));\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useNavigate } from 'react-router-dom';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport ProjectTable from \"./Components/ProjectTable\";\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { Fab, Divider, Tooltip, LinearProgress, IconButton, Typography, Box, Grid2 } from '@mui/material';\r\nimport { ChartNoAxesColumn, Plus, ArrowUp, List, LayoutGrid, EllipsisVertical, Pencil, Search, ReceiptEuro } from 'lucide-react';\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport { toast } from 'react-toastify';\r\nimport { ProjectFilter, TableView, ProjectFilterTypes } from '../../../Config/constants';\r\nimport DateRangePicker from '../../Shared/DateSelection/DateRangePicker';\r\nimport QrButton from '../../Shared/QrButton';\r\nimport BackToTopButton from '../../Shared/Buttons/BackToTopButton';\r\n\r\n\r\n\r\nfunction ProjectReportOverviewPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [projectList, setProjectList] = useState([]);\r\n const [originalProjectList, setOriginalProjectList] = useState([]); // Should never be overwritten\r\n const initialProjectList = useRef([]);\r\n const firstLoad = useRef(false);\r\n const [loadAmount, setLoadAmount] = useState(0);\r\n const currentDate = new Date();\r\n const [loading, setLoading] = useState(true);\r\n const [visibleProjectFilter, setVisibleProjectFilter] = useState(ProjectFilter.ALLPROJECTS);\r\n const [tableViewMode, setTableViewMode] = useState(TableView.GRID); // View the projects in a grid or in a list\r\n // Filtering\r\n const [types, setTypes] = useState([]);\r\n const [filters, setFilters] = useState(props.activeFilters.projectOverviewFilters);\r\n const [filterOn, setFilterOn] = useState(false);\r\n const [selectedFilter, setSelectedFilter] = useState(8);\r\n const [filteringDateRange, setFilteringDateRange] = useState(false);\r\n // Date range filter\r\n const [startDate, setStartDate] = useState();\r\n const [endDate, setEndDate] = useState();\r\n // Dropdown\r\n const [dropdownItem, setDropdownItem] = useState(null);\r\n const dropdownRef = useRef(null);\r\n\r\n\r\n // const loadMore = () => {\r\n // if (window.innerHeight + document.documentElement.scrollTop === document.scrollingElement.scrollHeight) {\r\n // let tempLoadAmount = loadAmount + 12;\r\n // if (firstLoad.current) {\r\n // dataService.getAllUserCompanyProjects(props.Login.userid, loadAmount, 12).then(results => {\r\n\r\n // setProjectList(sortProjectsOnFinished(initialProjectList.current.concat(results)));\r\n // setOriginalProjectList(sortProjectsOnFinished(initialProjectList.current.concat(results)))\r\n // });\r\n // firstLoad.current = false;\r\n // }\r\n // else {\r\n // dataService.getAllUserCompanyProjects(props.Login.userid, loadAmount, 12).then(results => {\r\n // if (results.length > 0) {\r\n // setProjectList(sortProjectsOnFinished(projectList.concat(results)));\r\n // setOriginalProjectList(sortProjectsOnFinished(projectList.concat(results)))\r\n // }\r\n // });\r\n // }\r\n // setLoadAmount(tempLoadAmount);\r\n // window.removeEventListener('scroll', loadMore);\r\n // }\r\n // }\r\n\r\n useEffect(() => {\r\n dataService.getTypes().then(results => {\r\n if (results) {\r\n setTypes(results.sort((a, b) => a.description.localeCompare(b.description)));\r\n }\r\n });\r\n }, [])\r\n\r\n\r\n\r\n useEffect(() => {\r\n filterProjects(filters);\r\n }, [filteringDateRange, startDate, endDate])\r\n\r\n // useEffect(() => {\r\n // dataService.getAllUserCompanyProjects(props.Login.userid, 0, loadAmount).then(results => {\r\n // var elements = sortProjectsOnFinished(results);\r\n\r\n // setProjectList(elements);\r\n // setOriginalProjectList(elements);\r\n // // window.addEventListener('scroll', loadMore);\r\n // initialProjectList.current = results;\r\n // firstLoad.current = true;\r\n // }).catch((error) => {\r\n // toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n // console.log('Error: ', error)\r\n // }).finally(() => {\r\n // setLoading(false);\r\n // });\r\n // }, [])\r\n\r\n useEffect(() => {\r\n dataService.getUserCompanyProjectOverview(props.Login.userid).then(results => {\r\n var elements = sortProjectsOnFinished(results);\r\n\r\n // setProjectList(elements);\r\n filterProjects(filters, elements);\r\n setOriginalProjectList(elements);\r\n\r\n initialProjectList.current = results;\r\n firstLoad.current = true;\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n }, [])\r\n\r\n const ResultRedirect = (projectQr) => {\r\n props.actions.projectReportAction(true);\r\n navigate(`/results/${projectQr}`);\r\n }\r\n\r\n const ModifyRedirect = (projectId) => {\r\n let thisProject = projectList.find(x => x.id === projectId);\r\n let fromDate = thisProject.timeRangeBegin;\r\n let toDate = thisProject.timeRangeEnd;\r\n props.actions.fromDateAction(fromDate);\r\n props.actions.toDateAction(toDate);\r\n navigate(`/modifyproject/${thisProject.qrCode}`);\r\n }\r\n\r\n const ReportRedirect = (projectId) => {\r\n let thisProject = projectList.find(x => x.id === projectId);\r\n navigate(`/projectreport/${thisProject.qrCode}`);\r\n }\r\n\r\n const setDateRange = (startDate, endDate) => {\r\n setStartDate(startDate);\r\n setEndDate(endDate);\r\n if (startDate && endDate) {\r\n setFilteringDateRange(true);\r\n } else {\r\n setFilteringDateRange(false);\r\n }\r\n }\r\n\r\n const handleSetStartDate = (event) => {\r\n if (event !== startDate) {\r\n setStartDate(event);\r\n setDateRange(event, endDate);\r\n }\r\n }\r\n const handleSetEndDate = (event) => {\r\n if (event !== endDate) {\r\n setEndDate(event);\r\n setDateRange(startDate, event);\r\n }\r\n }\r\n\r\n const resetDateRangeFilter = () => {\r\n setDateRange(null, null)\r\n }\r\n\r\n const getPercentage = (fromDate, toDate) => {\r\n let fromDateDate = new Date(fromDate);\r\n let toDateDate = new Date(toDate);\r\n let difference = currentDate.getTime() - fromDateDate.getTime();\r\n let percentage = (difference / (toDateDate.getTime() - fromDateDate.getTime())) * 100;\r\n return percentage;\r\n }\r\n\r\n const getDaysLeft = (fromDate, toDate) => {\r\n let toDateDate = new Date(toDate);\r\n let difference = toDateDate.getTime() - currentDate.getTime();\r\n let daysLeft = Math.round(difference / (1000 * 60 * 60 * 24));\r\n return daysLeft;\r\n }\r\n\r\n const getMeasurementCount = (project) => {\r\n let measurementCount = project.measurementCount;\r\n\r\n if (project.measurementCount === 0) {\r\n return \"No events recorded\";\r\n } else {\r\n return measurementCount;\r\n }\r\n }\r\n\r\n const navigateTo = (destination) => {\r\n navigate(destination, { state: { from: 'projectreportoverview' } });\r\n }\r\n\r\n const sortProjectsOnFinished = (projects) => {\r\n var results = projects.map(project => {\r\n let percentage = getPercentage(Date.parse(project.timeRangeBegin), Date.parse(project.timeRangeEnd));\r\n if (percentage < 100) {\r\n project.finished = false;\r\n }\r\n else {\r\n project.finished = true;\r\n }\r\n\r\n return project;\r\n })\r\n\r\n results = results.sort((a, b) => (a.finished - b.finished));\r\n return results;\r\n }\r\n\r\n const changeVisibleProjects = (value) => {\r\n setVisibleProjectFilter(value);\r\n }\r\n\r\n const handleTableView = (view) => {\r\n setTableViewMode(view)\r\n }\r\n\r\n // Counts the amount of measurements made in a project\r\n const getEventsCount = (projectDetails) => {\r\n let measurementCount = 0;\r\n\r\n projectDetails.forEach(detail => {\r\n measurementCount += detail.measurements.length;\r\n })\r\n\r\n return (measurementCount);\r\n }\r\n\r\n const handleToggleDropdown = (id) => {\r\n if (dropdownItem) {\r\n setDropdownItem(null);\r\n return;\r\n }\r\n setDropdownItem(id);\r\n }\r\n\r\n const handleClickOutsideDropdown = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\r\n setTimeout(() => {\r\n setDropdownItem(null);\r\n }, 100);\r\n }\r\n };\r\n\r\n const datesAreOnSameDay = (first, second) => {\r\n if (first.getFullYear() === second.getFullYear() &&\r\n first.getMonth() === second.getMonth() &&\r\n first.getDate() === second.getDate()) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n\r\n }\r\n\r\n const dateRange = (a_start, a_end, b_start, b_end) => {\r\n if (a_start <= b_start && b_start <= a_end) return true; // b starts in a\r\n if (a_start <= b_end && b_end <= a_end) return true; // b ends in a\r\n if (b_start < a_start && a_end < b_end) return true; // a in b\r\n\r\n if (datesAreOnSameDay(a_start, b_start)) return true;\r\n if (datesAreOnSameDay(b_end, a_end)) return true;\r\n return false;\r\n }\r\n\r\n useEffect(() => {\r\n if (dropdownItem) {\r\n document.addEventListener('mousedown', handleClickOutsideDropdown);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutsideDropdown);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutsideDropdown);\r\n };\r\n }, [dropdownItem]);\r\n\r\n const filter = [\r\n { number: 1, column: \"companyName\", sortOrder: \"ASC\" },\r\n { number: 2, column: \"companyName\", sortOrder: \"DESC\" },\r\n { number: 3, column: \"projectName\", sortOrder: \"ASC\" },\r\n { number: 4, column: \"projectName\", sortOrder: \"DESC\" },\r\n { number: 5, column: \"resourceDescription\", sortOrder: \"ASC\" },\r\n { number: 6, column: \"resourceDescription\", sortOrder: \"DESC\" },\r\n { number: 7, column: \"timeRangeBegin\", sortOrder: \"ASC\" },\r\n { number: 8, column: \"timeRangeBegin\", sortOrder: \"DESC\" },\r\n { number: 9, column: \"eventCount\", sortOrder: \"ASC\" },\r\n { number: 9, column: \"eventCount\", sortOrder: \"DESC\" },\r\n ]\r\n\r\n const dynamicSorting = (property) => {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n let asc = false;\r\n\r\n /* SC: Filter now works both ways (ASC, DESC) */\r\n if (filter.find(x => x.number === selectedFilter).column === property) {\r\n if (filter.find(x => x.number === selectedFilter).sortOrder === 'ASC') {\r\n asc = false;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'DESC').number);\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n } else {\r\n asc = true;\r\n setSelectedFilter(filter.find(x => x.column === property && x.sortOrder === 'ASC').number);\r\n }\r\n if (asc === true) {\r\n if (property === \"eventCount\") {\r\n return function (a, b) {\r\n var result = (getEventsCount(a.details) > getEventsCount(b.details) ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n } else {\r\n return function (a, b) {\r\n var result = (a[property].toLowerCase() > b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n }\r\n\r\n } else {\r\n if (property === \"eventCount\") {\r\n return function (a, b) {\r\n var result = (getEventsCount(a.details) < getEventsCount(b.details) ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n } else {\r\n return function (a, b) {\r\n var result = (a[property].toLowerCase() < b[property].toLowerCase() ? 1 : -1);\r\n return result * sortOrder;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n const handleSorting = (sortType) => {\r\n let tempProjectList = [...projectList];\r\n setProjectList(tempProjectList.sort(dynamicSorting(sortType)));\r\n }\r\n\r\n const toggleFilter = () => {\r\n if (filterOn) {\r\n setFilters([]);\r\n }\r\n setFilterOn(!filterOn);\r\n }\r\n\r\n const updateFilters = (type, event) => {\r\n let tempFilters = [...filters];\r\n if (tempFilters.some(x => x.type === type)) {\r\n let index = tempFilters.indexOf(tempFilters.find(x => x.type === type));\r\n tempFilters.splice(index, 1);\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n else {\r\n tempFilters.unshift({ type: type, filterValue: event.target.value });\r\n }\r\n\r\n props.actions.setProjectOverviewFiltersAction(tempFilters);\r\n\r\n setFilters(tempFilters);\r\n filterProjects(tempFilters);\r\n }\r\n\r\n const filterProjects = (thisFilters, projectList) => {\r\n let varFilteredProjects = projectList ? [...projectList] : [...originalProjectList];\r\n if (filteringDateRange) {\r\n varFilteredProjects = varFilteredProjects.filter(x => new Date(x.timeRangeBegin) > new Date(startDate) && new Date(x.timeRangeEnd) < new Date(endDate))\r\n }\r\n\r\n for (let i = 0; i < thisFilters.length; i++) {\r\n let filter = thisFilters[i]\r\n switch (filter.type) {\r\n case ProjectFilterTypes.GENERAL:\r\n varFilteredProjects = varFilteredProjects.filter(x =>\r\n x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()) ||\r\n x.projectName.toLowerCase().includes(filter.filterValue.toLowerCase()) ||\r\n x.resourceDescription.toLowerCase().includes(filter.filterValue.toLowerCase())\r\n );\r\n break;\r\n case ProjectFilterTypes.CUSTOMER:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n case ProjectFilterTypes.PROJECT_NAME:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.projectName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n case ProjectFilterTypes.LOCATION_NAME:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.resourceDescription.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n default:\r\n varFilteredProjects = varFilteredProjects.filter(x => x.companyName.toLowerCase().includes(filter.filterValue.toLowerCase()));\r\n break;\r\n }\r\n }\r\n // setProjects(varFilteredProjects)\r\n setProjectList(varFilteredProjects);\r\n }\r\n\r\n const getFilterValue = (type) => {\r\n\r\n let filter = filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n return (\r\n <Box>\r\n <TitlePage Text=\"Project overview\" backbutton={true} {...props} />\r\n {loading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n }\r\n <Box className={classes.container}>\r\n <Box sx={{ marginBottom: '16px', boxSizing: \"border-box\", height: \"40px\", display: 'flex', flexDirection: 'row', alignItems: \"center\", justifyContent: 'space-between' }}>\r\n <h1> Project overview</h1>\r\n {/* <Box sx={{ display: 'flex', flexDirection: 'row', gap: '16px' }}>\r\n <ToggleButtonGroup sx={{ height: '40px' }} exclusive onChange={(event) => changeVisibleProjects(event)} value={visibleProjectFilter}>\r\n <ToggleButton key={\"ViewAllProjects\"} value={ProjectFilter.ALLPROJECTS} sx={{ backgroundColor: visibleProjectFilter === ProjectFilter.ALLPROJECTS && '#C3996B !important', color: visibleProjectFilter === ProjectFilter.ALLPROJECTS && 'white !important' }}>\r\n Company projects\r\n </ToggleButton>\r\n <ToggleButton key={\"ViewMyProjects\"} value={ProjectFilter.MYPROJECTS} sx={{ backgroundColor: visibleProjectFilter === ProjectFilter.MYPROJECTS && '#C3996B !important', color: visibleProjectFilter === ProjectFilter.MYPROJECTS && 'white !important' }}>\r\n My projects\r\n </ToggleButton>\r\n </ToggleButtonGroup>\r\n <button className={classes.primaryIconButton} onClick={() => navigateTo('/create')}>\r\n <Plus className={classes.iconButton__icon} />\r\n Create a project\r\n </button>\r\n </Box> */}\r\n </Box>\r\n {/* Filter row */}\r\n <div className={classes.tableManagementContainer}>\r\n <div className={classes.tableManagementContainer__start}>\r\n <div className={classes.searchContainer}>\r\n <input placeholder=\"Search for projects\" className={classes.search__input} type=\"text\" value={getFilterValue(ProjectFilterTypes.GENERAL)} onChange={(e) => updateFilters(ProjectFilterTypes.GENERAL, e)} />\r\n <Search size={16} className={classes.inputIcon} />\r\n </div>\r\n\r\n <DateRangePicker setDateRange={setDateRange} startDate={startDate} endDate={endDate} resetDateRangeFilter={resetDateRangeFilter} handleSetStartDate={handleSetStartDate} handleSetEndDate={handleSetEndDate} />\r\n\r\n <div className={classes.toggleFilter}>\r\n <button onClick={() => changeVisibleProjects(ProjectFilter.ALLPROJECTS)} style={{ width: \"144px\" }} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>Company projects</p>\r\n </button>\r\n <button onClick={() => changeVisibleProjects(ProjectFilter.MYPROJECTS)} style={{ width: \"144px\" }} className={classes.toggleFilter__optionButton}>\r\n <p className={classes.toggleFilter__label}>My projects</p>\r\n </button>\r\n <div style={{ transform: visibleProjectFilter === ProjectFilter.ALLPROJECTS ? \"translateX(0px)\" : \"translateX(144px)\" }} className={classes.toggleSelected} />\r\n </div>\r\n </div>\r\n <div className={classes.tableManagementContainer__end}>\r\n <div className={classes.toggleFilter}>\r\n <button onClick={() => handleTableView(TableView.LIST)} style={{ width: \"64px\" }} className={classes.toggleFilter__optionButton}>\r\n <List className={classes.toggleFilter__icon} />\r\n <p className={classes.toggleFilter__label}>List</p>\r\n </button>\r\n <button onClick={() => handleTableView(TableView.GRID)} style={{ width: \"64px\" }} className={classes.toggleFilter__optionButton}>\r\n <LayoutGrid className={classes.toggleFilter__icon} />\r\n <p className={classes.toggleFilter__label}>Grid</p>\r\n </button>\r\n <div style={{ transform: tableViewMode === TableView.LIST ? \"translateX(0px)\" : \"translateX(64px)\" }} className={classes.toggleSelected} />\r\n </div>\r\n\r\n <button className={classes.tableManagementContainer__primaryIconButton} onClick={() => navigateTo('/create')}>\r\n <Plus className={classes.iconButton__icon} />\r\n Create project\r\n </button>\r\n </div>\r\n </div>\r\n {tableViewMode === TableView.GRID ?\r\n <>\r\n {/* Grid */}\r\n < Grid2 container spacing={2}>\r\n {projectList.filter(project => visibleProjectFilter === ProjectFilter.MYPROJECTS ? project.insertedByUserId === props.Login.userid : project.isActive).length === 0 &&\r\n <Grid2 size={{ xs: 12, md: 6, lg: 4, xl: 3 }} className={classes.boxStyle} sx={{ background: 'rgb(195, 153, 107, 0.15)' }} onClick={() => navigateTo('/create')} key={'createNewGraphBlock'}>\r\n <Box sx={{ border: \"2px dashed #C3996B\", height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column', gap: \"8px\" }}>\r\n <Plus size=\"36\" style={{ color: \"#C3996B\", fontSize: \"30px\" }}></Plus>\r\n <Typography variant='h6' color='#C3996B'>Create a new project</Typography>\r\n </Box>\r\n </Grid2>\r\n }\r\n {projectList.filter(project => visibleProjectFilter === ProjectFilter.MYPROJECTS ? project.insertedByUserId === props.Login.userid : project.isActive).map(project => (\r\n <Grid2 size={{ xs: 12, md: 6, lg: 4, xl: 3 }} className={classes.boxStyle} key={project.id}>\r\n <div className={classes.headerContainer}>\r\n <Tooltip title={project.projectName} placement=\"top\" disableInteractive>\r\n <Typography variant='h6' onClick={() => ModifyRedirect(project.id)} className={classes.headerTitle}>\r\n {project.projectName}\r\n </Typography>\r\n </Tooltip>\r\n <div className={classes.buttonContainer}>\r\n <QrButton borderRadius={4} disabled={!dateRange(new Date(project.timeRangeBegin), new Date(project.timeRangeEnd), new Date(currentDate), new Date(currentDate))} projectName={project.projectName} resourceName={project.resourceName} QrCode={project.qrCode} size='large' />\r\n <IconButton onClick={() => navigate(`/modifyproject/${project.qrCode}`)} size='small' style={{ height: \"50px\", width: \"50px\", borderRadius: \"4px\" }}>\r\n <Pencil />\r\n </IconButton>\r\n <button onClick={() => handleToggleDropdown(project.id)} className={classes.openDropdownButton} style={{ backgroundColor: dropdownItem === project.id ? \"#EDEDED\" : \"transparent\" }}>\r\n <EllipsisVertical size={20} absoluteStrokeWidth strokeWidth={1.4} />\r\n </button>\r\n {dropdownItem === project.id ? <div ref={dropdownRef} className={classes.row__dropdown}>\r\n <button className={classes.row__dropdownButton} onClick={() => navigate(`/results/${project.qrCode}`)}>\r\n <ChartNoAxesColumn className={classes.iconButton__icon} />\r\n Project timeline\r\n </button>\r\n <button className={classes.row__dropdownButton} onClick={() => navigate(`/projectreport/${project.qrCode}`)}>\r\n <ReceiptEuro className={classes.iconButton__icon} />\r\n Financial dashboard\r\n </button>\r\n </div> : null}\r\n </div>\r\n </div>\r\n <Divider></Divider>\r\n <div className={classes.dateContainer}>\r\n <p className={classes.dataContainer__label}>Time range</p>\r\n {!project.finished ?\r\n <Tooltip title={\r\n getDaysLeft(Date.parse(project.timeRangeBegin), Date.parse(project.timeRangeEnd)) === 1 ?\r\n `${getDaysLeft(Date.parse(project.timeRangeBegin), Date.parse(project.timeRangeEnd))} day left`\r\n : `${getDaysLeft(Date.parse(project.timeRangeBegin), Date.parse(project.timeRangeEnd))} days left`}>\r\n <LinearProgress className={classes.bar} style={{ height: \"8px\", borderRadius: \"4px\" }} color='success' variant=\"determinate\" value={getPercentage(Date.parse(project.timeRangeBegin), Date.parse(project.timeRangeEnd))} />\r\n </Tooltip>\r\n :\r\n <LinearProgress className={classes.bar} style={{ height: \"8px\", borderRadius: \"4px\" }} color='error' variant=\"determinate\" value={100} />\r\n }\r\n </div>\r\n <div className={classes.dataContainer}>\r\n <p className={classes.dataContainer__label}>Company</p>\r\n <Typography variant='h7'>\r\n {\" \" + (project.companyName !== null && project.companyName !== undefined ? project.companyName : '-')}\r\n </Typography>\r\n </div>\r\n <div className={classes.dataContainer}>\r\n <p className={classes.dataContainer__label}>Registration point</p>\r\n <Typography variant='h7'>\r\n {\" \" + project.resourceDescription}\r\n </Typography>\r\n </div>\r\n <div className={classes.dataContainer}>\r\n <p className={classes.dataContainer__label}>Events</p>\r\n <Typography variant='h7'>\r\n {\" \" + getMeasurementCount(project)}\r\n </Typography>\r\n </div>\r\n </Grid2>\r\n ))}\r\n </Grid2>\r\n </>\r\n :\r\n <Grid2 item size={12}>\r\n <ProjectTable toggleFilter={toggleFilter} filters={filters} handleSorting={handleSorting} filterOn={filterOn} filterProjects={filterProjects} updateFilters={updateFilters} types={types} rows={projectList.filter(project => visibleProjectFilter === ProjectFilter.MYPROJECTS ? project.insertedByUserId === props.Login.userid : project.isActive)} />\r\n </Grid2>\r\n }\r\n {tableViewMode === TableView.GRID &&\r\n <BackToTopButton />\r\n }\r\n </Box>\r\n\r\n\r\n </Box >\r\n )\r\n}\r\n\r\nexport default ProjectReportOverviewPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n boxSizing: \"border-box\",\r\n\r\n borderRadius: \"8px\",\r\n maxWidth: \"90%\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginTop: \"148px\",\r\n marginBottom: \"24px\",\r\n },\r\n\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n top: '0px',\r\n position: 'fixed',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n headerContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: '100%',\r\n flexDirection: 'row',\r\n overflowX: 'hidden',\r\n },\r\n\r\n tableManagementContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap-reverse\",\r\n\r\n marginBottom: \"8px\",\r\n },\r\n\r\n tableManagementContainer__start: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n searchContainer: {\r\n width: \"240px\",\r\n position: 'relative',\r\n },\r\n\r\n search__input: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n paddingRight: '32px',\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n fontSize: '14px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n\r\n backgroundColor: \"#FFFFFF\",\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n border: \"1px solid #C3996B\",\r\n },\r\n },\r\n\r\n inputIcon: {\r\n color: \"#0C0E29\",\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n right: '8px',\r\n },\r\n\r\n tableManagementContainer__end: {\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItens: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n toggleFilter: {\r\n height: \"32px\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"#DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"1px\",\r\n },\r\n\r\n toggleFilter__optionButton: {\r\n height: \"100%\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n zIndex: \"1\",\r\n\r\n \"&:hover\": {\r\n // backgroundColor: \"#DCDCDC\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n },\r\n\r\n toggleFilter__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n display: \"block\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n toggleFilter__label: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n margin: \"0\",\r\n },\r\n\r\n toggleSelected: {\r\n width: \"calc(50% - 1px)\",\r\n height: \"30px\",\r\n position: \"absolute\",\r\n transition: \"transform 0.2s\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"3px\"\r\n },\r\n\r\n tableManagementContainer__primaryIconButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n paddingLeft: \"6px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"4px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n strokeWidth: \"1.6px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n buttonContainer: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n flexDirection: 'row',\r\n },\r\n\r\n openDropdownButton: {\r\n width: \"48px\",\r\n height: \"48px\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n borderRadius: \"4px\",\r\n border: \"none\",\r\n\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n\r\n padding: \"0px\",\r\n margin: \"0px\",\r\n\r\n transition: \"background-color 0.1s\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n backgroundColor: \"#EDEDED !important\",\r\n }\r\n },\r\n\r\n row__dropdown: {\r\n position: \"absolute\",\r\n right: \"16px\",\r\n top: \"68px\",\r\n\r\n width: \"fit-content\",\r\n height: \"fit-content\",\r\n\r\n padding: \"4px\",\r\n\r\n backgroundColor: \"white\",\r\n zIndex: \"999\",\r\n boxShadow: \"0px 3px 15px rgba(175, 175, 175, 0.25)\",\r\n borderRadius: \"6px\",\r\n\r\n },\r\n\r\n row__dropdownButton: {\r\n width: \"100%\",\r\n height: \"36px\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: \"medium\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n padding: \"8px 12px\",\r\n margin: \"0px\",\r\n\r\n color: \"#0C0E29\",\r\n\r\n transition: \"background-color 0.1s\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F8F8F8\",\r\n }\r\n },\r\n\r\n dateContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n flexDirection: 'row',\r\n },\r\n\r\n dataContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n flexDirection: 'row',\r\n },\r\n\r\n dataContainer__label: {\r\n minWidth: \"142px\",\r\n\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n bar: {\r\n width: \"100%\",\r\n },\r\n\r\n boxStyle: {\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"16px\",\r\n gap: \"8px\",\r\n },\r\n\r\n headerTitle: {\r\n cursor: 'pointer',\r\n // if name is too long, ellipsis\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n}));","import React, { useEffect } from 'react';\r\nimport PieChart, {\r\n Series,\r\n Label,\r\n Connector,\r\n Export,\r\n Tooltip,\r\n Legend,\r\n} from 'devextreme-react/pie-chart';\r\nimport { MapPin } from 'lucide-react';\r\n\r\nexport default function EventChart(props) {\r\n\r\n const customizePoint = (pointInfo) => {\r\n return { color: pointInfo.data.color };\r\n };\r\n\r\n const customizeText = (text) => {\r\n if (text.point.data.minuteamount !== undefined) {\r\n return text.point.data.minuteamount;\r\n } else {\r\n return text.originalValue;\r\n\r\n }\r\n // return {color: pointInfo.data.color};\r\n };\r\n\r\n const customizeTooltip = (pointinfo) => {\r\n let detailName = pointinfo.argument;\r\n let htmlText = '';\r\n htmlText += '<b style=\"text-style: underline\">' + detailName + '</b><br/>'\r\n // if(seriesName === 'Total'){\r\n if (pointinfo.point.data !== null) {\r\n htmlText += '<div>' + getPercentage(pointinfo.percent) + ' - ' + ((pointinfo.point.data.type === 2 || (pointinfo.point.data.type === 7 && pointinfo.point.data.externalApiTypeId === 2)) ? pointinfo.point.data.minuteamount : pointinfo.value + ' events') + '</div>';\r\n // resourceName\r\n // Embed MapPin icon as an SVG inside the tooltip\r\n htmlText += `<div style=\"margin-top: 12px; display: flex; align-items: center;\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M21 10c0 7-9 12-9 12s-9-5-9-12a9 9 0 0 1 18 0Z\"></path>\r\n <circle cx=\"12\" cy=\"10\" r=\"3\"></circle>\r\n </svg>\r\n <span style=\"margin-left: 5px;\">${pointinfo.point.data.resourceName}</span>\r\n </div>`;\r\n }\r\n return {\r\n html: htmlText,\r\n };\r\n }\r\n const onLegendClick = ({ points }) => {\r\n points[0].isVisible() ? points[0].hide() : points[0].show();\r\n\r\n }\r\n\r\n // Turn a decimal into a percentage - 0.234 -> 23.40%\r\n const getPercentage = (decimalPercentage) => {\r\n let percentage = (decimalPercentage * 100).toFixed(2);\r\n return percentage + \"%\";\r\n }\r\n\r\n return (\r\n <PieChart id=\"pie\" dataSource={props.data} palette=\"Bright\" title={props.title} customizePoint={customizePoint} onLegendClick={onLegendClick}>\r\n <Tooltip enabled={true} customizeTooltip={customizeTooltip}></Tooltip>\r\n <Legend verticalAlignment=\"bottom\" horizontalAlignment=\"center\" itemTextPosition=\"top\" ></Legend>\r\n <Series argumentField=\"detailDescription\" valueField=\"amount\" >\r\n <Label visible={true} customizeText={customizeText}>\r\n <Connector visible={true} width={1} />\r\n </Label>\r\n </Series>\r\n <Export enabled={true} />\r\n </PieChart>\r\n\r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport {\r\n Chart,\r\n Title,\r\n CommonSeriesSettings,\r\n Series,\r\n ArgumentAxis,\r\n ValueAxis,\r\n Format,\r\n Label,\r\n Tooltip,\r\n Export,\r\n Crosshair,\r\n TickInterval,\r\n ZoomAndPan\r\n} from 'devextreme-react/chart';\r\n\r\nexport default function FinancialChart(props) {\r\n const [visualStartTime, setVisualStartTime] = useState(() => {\r\n const yesterday = new Date();\r\n yesterday.setDate(yesterday.getDate() - 1); // Subtract 1 day\r\n return yesterday;\r\n });\r\n const [visualEndTime, setVisualEndTime] = useState(new Date());\r\n const [currency, setCurrency] = useState({ symbol: '€' });\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency])\r\n\r\n useEffect(() => {\r\n if (props.from && props.to) {\r\n setVisualStartTime(new Date(props.from.replace(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/, '$2/$1/$3')));\r\n setVisualEndTime(new Date(props.to.replace(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/, '$2/$1/$3')));\r\n }\r\n }, [props.from, props.to])\r\n\r\n function customizeAnnotation(pointinfo) {\r\n let color = pointinfo.data.color;\r\n return {\r\n color: color\r\n }\r\n }\r\n\r\n function customizeTooltip(pointinfo) {\r\n let seriesName = pointinfo.seriesName;\r\n let htmlText = '';\r\n htmlText += '<b style=\"text-style: underline\">' + seriesName + '</b><br/>';\r\n // if(seriesName === 'Total'){\r\n let imgUrl = '';\r\n if (pointinfo.point.data !== null) {\r\n if (pointinfo.point.data.isProfit) {\r\n imgUrl = process.env.PUBLIC_URL + \"/images/greenarrow.png\";\r\n } else {\r\n imgUrl = process.env.PUBLIC_URL + \"/images/arrowdown.png\";\r\n }\r\n let valueTextConverted = pointinfo.valueText.replace(',', '');\r\n let priceConverted = pointinfo.point.data.price;\r\n htmlText += '<span><img style=\"width: 15px, height: 15px\" src=' + imgUrl + ' alt=\"Taplr Logo\"></img> ' + currency.symbol + parseFloat(valueTextConverted).toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '</span> <br/>'\r\n if (seriesName === 'Total') {\r\n htmlText += '<small>' + (pointinfo.point.data.originalMeasurement) + '</small>'\r\n }\r\n htmlText += '<small>' + (pointinfo.point.data.thismeasurement !== undefined ? pointinfo.point.data.thismeasurement : '') + ' (' + (pointinfo.point.data.isProfit ? ' + ' : ' - ') + currency.symbol + priceConverted.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ')</small>';\r\n }\r\n return {\r\n html: htmlText,\r\n };\r\n }\r\n function legendClickHandler(e) {\r\n const series = e.target;\r\n if (series.isVisible()) {\r\n series.hide();\r\n } else {\r\n series.show();\r\n }\r\n }\r\n function customizePoint(e) {\r\n let color = e.data.color;\r\n\r\n return {\r\n color: color,\r\n size: 6,\r\n }\r\n\r\n\r\n }\r\n function customizeSeriesPoint(e) {\r\n return {\r\n visible: false\r\n }\r\n\r\n }\r\n\r\n\r\n function customizeCrosshairLabel(e) {\r\n if (typeof e.value === 'number') {\r\n return currency.symbol + e.point.originalValue.toFixed(2).replace('.', ',');\r\n } else {\r\n return (new Date(e.point.data.date)).toTimeString().split(' ')[0];\r\n }\r\n\r\n }\r\n\r\n function customizeYAxisText(e) {\r\n return currency.symbol + e.value.toFixed(2).replace('.', ',');\r\n }\r\n\r\n return (\r\n <div style={{ height: '100%', width: \"100%\" }}>\r\n {props.financialChartData !== null && props.projectDetailNames.length > 0 ?\r\n <Chart id=\"chart\" style={{ width: '100%' }} dataSource={props.financialChartData.filter(x => x.isVisible)} onLegendClick={legendClickHandler} customizePoint={customizePoint} customizeAnnotation={customizeAnnotation}>\r\n <Tooltip enabled={true} customizeTooltip={customizeTooltip}>\r\n <Format type=\"fixedPoint\" precision={2} />\r\n </Tooltip>\r\n <Title text=\"Financial overview\" subtitle={props.project ? props.project.projectName : \"\"} />\r\n <CommonSeriesSettings argumentField=\"date\" type=\"line\" />\r\n <Format type=\"fixedPoint\" precision={2} />\r\n {props.projectDetailNames.map(x =>\r\n <Series valueField={x.name + '_price'} name={x.name} color={x.color} customizePoint={customizeSeriesPoint} key={x.name}>\r\n {/* <Label visible={true} >\r\n <Connector visible={true} />\r\n </Label> */}\r\n </Series>\r\n )}\r\n <ArgumentAxis\r\n visualRange={{\r\n startValue: visualStartTime.toISOString(),\r\n endValue: visualEndTime.toISOString()\r\n }}\r\n argumentType=\"datetime\"\r\n />\r\n <ValueAxis\r\n name=\"amount\"\r\n position=\"right\"\r\n // tickInterval={1}\r\n showZero={true}\r\n >\r\n <Label customizeText={customizeYAxisText} />\r\n </ValueAxis>\r\n <Export enabled={true} />\r\n\r\n <ZoomAndPan\r\n panKey=\"shift\"\r\n argumentAxis=\"both\"\r\n valueAxis=\"none\"\r\n allowMouseWheel={true}\r\n dragToZoom=\"true\"\r\n />\r\n <Crosshair\r\n enabled={true}>\r\n <Label visible={true} customizeText={customizeCrosshairLabel} />\r\n </Crosshair>\r\n\r\n </Chart>\r\n : ''}\r\n\r\n </div>\r\n );\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Paper, TableRow, TableHead, TableCell, TableBody, Table } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { parseNewDateToDDMMYYYnoTime } from \"../../../../Utils/dateHelper\";\r\nimport { Plus, Minus } from 'lucide-react';\r\n\r\nexport default function PriceTable(props) {\r\n const classes = useStyles();\r\n const [currency, setCurrency] = useState({ symbol: '€' });\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency])\r\n\r\n return (\r\n <div component={Paper}>\r\n <Table aria-label=\"simple table\">\r\n <TableHead>\r\n <TableRow>\r\n <TableCell>Event</TableCell>\r\n <TableCell align=\"right\">First occurence</TableCell>\r\n <TableCell align=\"right\">Last occurence</TableCell>\r\n <TableCell align=\"right\">Amount</TableCell>\r\n <TableCell align=\"right\">Price per hour/event</TableCell>\r\n <TableCell align=\"right\">Total price</TableCell>\r\n\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {props.priceData.length === 0 ?\r\n <tr>\r\n <td colSpan=\"9\" style={{ paddingTop: '24px', paddingBottom: '24px' }}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No data</p>\r\n <p className={classes.emptyStateCard__subtitle}>There is no data to display.</p>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n : <React.Fragment></React.Fragment>}\r\n {props.priceData.map((measurement, index) => (\r\n <TableRow key={`measurmentRow_${index}_${measurement.id}`} sx={{ '&:last-child td, &:last-child th': { border: 0 } }}>\r\n <TableCell component=\"th\" scope=\"row\">{measurement.detailDescription}</TableCell>\r\n <TableCell align=\"right\">{parseNewDateToDDMMYYYnoTime(new Date(measurement.first))}</TableCell>\r\n <TableCell align=\"right\">{parseNewDateToDDMMYYYnoTime(new Date(measurement.last))}</TableCell>\r\n <TableCell align=\"right\">{measurement.type !== 2 ? measurement.amount : measurement.minuteamount}</TableCell>\r\n <TableCell align=\"right\">{currency.symbol + (measurement.price).toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</TableCell>\r\n <TableCell style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }} align=\"right\">\r\n {currency.symbol + measurement.totalPrice.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} {measurement.isProfit ? <Plus style={{ color: 'rgb(40, 167, 69)' }}></Plus> : <Minus style={{ color: 'rgb(220, 53, 69)' }}></Minus>}\r\n </TableCell>\r\n\r\n </TableRow>\r\n ))}\r\n\r\n <TableRow>\r\n <TableCell colSpan={5} style={{ fontWeight: \"bold\" }}><span style={{ float: 'right' }}>Total</span></TableCell>\r\n <TableCell style={{ fontWeight: \"bold\" }} align=\"right\">{currency.symbol + props.totalPrice.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</TableCell>\r\n </TableRow>\r\n </TableBody>\r\n </Table>\r\n </div>\r\n );\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n margin: \"auto\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n}))\r\n","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { parseNewDateToDDMMYYYnoTime } from \"../../../../Utils/dateHelper\";\r\nimport { controlTypes, externalApiTypes } from \"../../../../Config/constants\";\r\n\r\nimport Divider from '@mui/material/Divider';\r\nimport { dataService } from '../../../../Services/data/data.service';\r\n\r\nexport default function TableHighLow(props) {\r\n const [mostCommonDate, setMostCommonDate] = useState('/');\r\n const [leastCommonDate, setLeastCommonDate] = useState('/');\r\n const [averagePrice, setAveragePrice] = useState({ average: '/', price: '/' });\r\n const [currency, setCurrency] = useState({ symbol: \"\" });\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency]);\r\n\r\n useEffect(() => {\r\n if (props.detail.measurements !== null && props.detail.measurements !== undefined) {\r\n findMostCommonDate(props.detail.measurements);\r\n findLeastCommonDate(props.detail.measurements);\r\n getAllActiveDates(props.detail.measurements);\r\n }\r\n\r\n }, [props.detail.measurements]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n function padTo2Digits(num) {\r\n return num.toString().padStart(2, '0');\r\n }\r\n\r\n function convertMsToTime(milliseconds) {\r\n let seconds = Math.floor(milliseconds / 1000);\r\n let minutes = Math.floor(seconds / 60);\r\n let hours = Math.floor(minutes / 60);\r\n\r\n seconds = seconds % 60;\r\n minutes = minutes % 60;\r\n hours = hours % 24;\r\n\r\n return `${padTo2Digits(hours)}:${padTo2Digits(minutes)}:${padTo2Digits(\r\n seconds,\r\n )}`;\r\n }\r\n\r\n const findMostCommonDate = (measurements) => {\r\n //Check which date got the most measurements\r\n if (measurements[0].typeId === controlTypes.STOPWATCH || (measurements[0].typeId === controlTypes.EXTERNALAPI && measurements[0].externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n //In case of a stopwatch, check which date had the longest-time measurments.\r\n const measurementsGroupedByDate = measurements.reduce((acc, item) => {\r\n const { date } = item;\r\n if (!acc[date]) {\r\n acc[date] = [];\r\n }\r\n acc[date].push(item);\r\n return acc;\r\n }, {});\r\n var most = 0;\r\n\r\n var mostDate = \"\";\r\n for (const [date, items] of Object.entries(measurementsGroupedByDate)) {\r\n var total = items.reduce((a, v) => a = a + v.integerValue, 0);\r\n if (total > most) {\r\n\r\n most = total;\r\n mostDate = date.split(\"T\")[0];\r\n }\r\n }\r\n\r\n mostDate = parseNewDateToDDMMYYYnoTime(new Date(Date.parse(mostDate)))\r\n setMostCommonDate(mostDate);\r\n } else {\r\n //For the others, just take a sum\r\n let tempMostDates = measurements.map(measurement => parseNewDateToDDMMYYYnoTime(new Date(Date.parse(measurement.insertedOn))));\r\n let dateMap = new Map();\r\n tempMostDates.forEach(date => {\r\n if (dateMap.has(date)) {\r\n dateMap.set(date, dateMap.get(date) + 1);\r\n }\r\n else {\r\n dateMap.set(date, 1);\r\n }\r\n });\r\n let mostCommonDate = \"\";\r\n let mostCommonCount = 0;\r\n dateMap.forEach((count, date) => {\r\n if (count > mostCommonCount) {\r\n mostCommonDate = date;\r\n mostCommonCount = count;\r\n }\r\n });\r\n setMostCommonDate(mostCommonDate);\r\n }\r\n\r\n }\r\n\r\n const findLeastCommonDate = (measurements) => {\r\n //Check lowest measurement date\r\n var measurementToUse = measurements[0];\r\n measurements.map(measurement => {\r\n if (measurement.measurementId !== 0) {\r\n measurementToUse = measurement;\r\n }\r\n })\r\n\r\n if (measurementToUse !== null) {\r\n //If it is a stopwatch check the date where the LEAST time was measured\r\n if (measurementToUse.typeId === controlTypes.STOPWATCH || (measurementToUse.typeId === controlTypes.EXTERNALAPI && measurementToUse.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n const measurementsGroupedByDate = measurements.reduce((acc, item) => {\r\n const { date } = item;\r\n if (!acc[date]) {\r\n acc[date] = [];\r\n }\r\n acc[date].push(item);\r\n return acc;\r\n }, {});\r\n\r\n var least = 0;\r\n var leastDate = \"\";\r\n var count = 0;\r\n for (const [date, items] of Object.entries(measurementsGroupedByDate)) {\r\n var total = items.reduce((a, v) => a = a + v.integerValue, 0);\r\n\r\n if (total < least || count === 0) {\r\n\r\n least = total;\r\n leastDate = date.split(\"T\")[0];\r\n }\r\n count = count + 1;\r\n }\r\n\r\n leastDate = parseNewDateToDDMMYYYnoTime(new Date(Date.parse(leastDate)))\r\n setLeastCommonDate(leastDate);\r\n } else {\r\n //least total of measurment\r\n let tempLeastDate = measurements.map(measurement => parseNewDateToDDMMYYYnoTime(new Date(Date.parse(measurement.insertedOn))));\r\n let dateMap = new Map();\r\n tempLeastDate.forEach(date => {\r\n if (dateMap.has(date)) {\r\n dateMap.set(date, dateMap.get(date) + 1);\r\n }\r\n else {\r\n dateMap.set(date, 1);\r\n }\r\n });\r\n let leastCommonDate = \"\";\r\n let leastCommonCount = 999999999;\r\n dateMap.forEach((count, date) => {\r\n if (count < leastCommonCount) {\r\n leastCommonDate = date;\r\n leastCommonCount = count;\r\n }\r\n });\r\n setLeastCommonDate(leastCommonDate);\r\n }\r\n }\r\n }\r\n\r\n const getAllActiveDates = (measurements) => {\r\n if (measurements.length > 0) {\r\n let tempDates = measurements.map(measurement => parseNewDateToDDMMYYYnoTime(new Date(Date.parse(measurement.insertedOn))));\r\n let arrUniqueValues = getUniqueValuesFromArray(tempDates);\r\n let arrEventsPerDay = [];\r\n arrUniqueValues.forEach((strMeasurementDate) => {\r\n var dateParts = strMeasurementDate.split(\"/\");\r\n var tempFromDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);\r\n var tempToDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]).addHours(24);\r\n let objFilteredMeasurements = measurements.filter(x => new Date(x.insertedOn) >= tempFromDate && new Date(x.insertedOn) <= tempToDate);\r\n let total;\r\n if (objFilteredMeasurements[0].typeId === controlTypes.STOPWATCH || (measurements[0].typeId === controlTypes.EXTERNALAPI && measurements[0].externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n //Som van de tijden\r\n total = objFilteredMeasurements.reduce((a, v) => a = a + v.integerValue, 0);\r\n } else {\r\n //Som van het aantal events\r\n total = objFilteredMeasurements.length;\r\n }\r\n arrEventsPerDay.push({ date: tempFromDate, total: total });\r\n\r\n });\r\n\r\n let intSumOfTotal = arrEventsPerDay.reduce((a, b) => a + b.total, 0);\r\n let floatAvgOfTotal = (intSumOfTotal / arrEventsPerDay.length) || 0;\r\n\r\n let numberPrice = 0;\r\n if (measurements[0].typeId === controlTypes.STOPWATCH || (measurements[0].typeId === controlTypes.EXTERNALAPI && measurements[0].externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n let avgHour = floatAvgOfTotal / 3600;\r\n numberPrice = avgHour * props.detail.price;\r\n floatAvgOfTotal = new Date(floatAvgOfTotal * 1000).toISOString().substring(11, 19)\r\n } else {\r\n numberPrice = floatAvgOfTotal * props.detail.price;\r\n }\r\n setAveragePrice({ average: floatAvgOfTotal, price: numberPrice.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) });\r\n } else {\r\n setAveragePrice({ average: '/', price: '/' });\r\n }\r\n\r\n }\r\n // eslint-disable-next-line \r\n Date.prototype.addHours = function (h) {\r\n this.setHours(this.getHours() + h);\r\n return this;\r\n }\r\n\r\n const getUniqueValuesFromArray = (array) => {\r\n var newArray = [];\r\n newArray = array.filter(function (elem, pos) {\r\n return array.indexOf(elem) === pos;\r\n });\r\n return newArray;\r\n }\r\n\r\n const findEventsWithDate = (measurements, date) => {\r\n if (date !== '/' && date !== undefined) {\r\n let events = measurements.filter(measurement => parseNewDateToDDMMYYYnoTime(new Date(Date.parse(measurement.insertedOn))) === date);\r\n if (events.length > 0) {\r\n if (events[0].typeId === controlTypes.STOPWATCH || (events[0].typeId === controlTypes.EXTERNALAPI && events[0].externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n //Stopwatch type\r\n let sum = 0;\r\n let filterEvents = events.filter(x => x.stopValue !== null);\r\n\r\n filterEvents.forEach(event => {\r\n let start = new Date(Date.parse(event.startValue));\r\n let stop = new Date(Date.parse(event.stopValue));\r\n let diff = stop.getTime() - start.getTime();\r\n sum += diff;\r\n });\r\n return (convertMsToTime(sum));\r\n }\r\n else {\r\n return (events.length);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const findPrice = (value, detail) => {\r\n if (value !== '/' && value !== undefined) {\r\n if (detail.controlTypeId === controlTypes.STOPWATCH || (detail.controlTypeId === controlTypes.EXTERNALAPI && detail.externalApiTypeId === externalApiTypes.STOPWATCH)) {\r\n const [hours, minutes, seconds] = value.split(':');\r\n // minutes are worth 60 seconds. Hours are worth 60 minutes.\r\n let totalSeconds = convertToSeconds(hours, minutes, seconds);\r\n let tempTotal = ((detail.price / 3600) * totalSeconds);\r\n return tempTotal.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n } else {\r\n let tempTotal = (value * detail.price);\r\n\r\n return tempTotal.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n }\r\n }\r\n\r\n // const events = measurements.filter(measurement => parseNewDateToDDMMYYYnoTime(new Date(Date.parse(measurement.insertedOn))) === date);\r\n // if (events[0].startValue !== null && events[0].stopValue !== null) {\r\n // let sum = 0;\r\n // events.forEach(event => {\r\n // const start = new Date(Date.parse(event.startValue));\r\n // const stop = new Date(Date.parse(event.stopValue));\r\n // const diff = stop.getTime() - start.getTime();\r\n // sum += diff;\r\n // });\r\n // return (convertMsToTime(sum));\r\n // }\r\n // else {\r\n // return (events.length);\r\n // }\r\n }\r\n\r\n function convertToSeconds(hours, minutes, seconds) {\r\n return Number(hours) * 60 * 60 + Number(minutes) * 60 + Number(seconds);\r\n }\r\n\r\n const handleResultsRedirect = () => {\r\n navigate(`/results/${props.projectQr}`);\r\n }\r\n\r\n return (\r\n <div className={classes.eventBoxStyle}>\r\n {props.detail.measurements.length > 0 &&\r\n <div className={classes.buttonContainer} onClick={() => handleResultsRedirect(mostCommonDate)}>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>Date: </small>\r\n {mostCommonDate}\r\n </div>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>{(props.detail.controlTypeId === controlTypes.STOPWATCH || (props.detail.controlTypeId === controlTypes.EXTERNALAPI && props.detail.externalApiTypeId === externalApiTypes.STOPWATCH)) ? 'Time: ' : 'Events: '}</small>\r\n {findEventsWithDate(props.detail.measurements, mostCommonDate)}\r\n </div>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>Effect in {currency.symbol}: </small>\r\n {currency.symbol}{findPrice(findEventsWithDate(props.detail.measurements, mostCommonDate), props.detail)}\r\n </div>\r\n <div style={{ paddingRight: '8px', width: '25%', float: 'right' }}>\r\n <div className={classes.dataBlock} style={{ background: (props.detail.isProfit ? \"#28a745\" : \"#dc3545\") }}>\r\n High\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n\r\n <Divider></Divider>\r\n {props.detail.measurements.length > 0 &&\r\n\r\n <div className={classes.averageContainer}>\r\n <div className={classes.infoBlock}>\r\n </div>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>{(props.detail.controlTypeId === controlTypes.STOPWATCH || (props.detail.controlTypeId === controlTypes.EXTERNALAPI && props.detail.externalApiTypeId === externalApiTypes.STOPWATCH)) ? 'Average time: ' : 'Average events: '}</small>\r\n {averagePrice.average.toLocaleString('nl-BE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}\r\n </div>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>Effect in {currency.symbol}: </small>\r\n {currency.symbol}{averagePrice.price}\r\n </div>\r\n <div style={{ paddingRight: '8px', width: '25%', float: 'right' }}>\r\n <div className={classes.dataBlock} style={{ background: 'grey' }}>\r\n Average\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <Divider></Divider>\r\n {props.detail.measurements.length > 0 &&\r\n\r\n <div className={classes.buttonContainer} onClick={() => handleResultsRedirect(leastCommonDate)}>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>Date: </small>\r\n {leastCommonDate}\r\n </div>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>{(props.detail.controlTypeId === controlTypes.STOPWATCH || (props.detail.controlTypeId === controlTypes.EXTERNALAPI && props.detail.externalApiTypeId === externalApiTypes.STOPWATCH)) ? 'Time: ' : 'Events: '}</small>\r\n {findEventsWithDate(props.detail.measurements, leastCommonDate)}\r\n </div>\r\n <div className={classes.infoBlock}>\r\n <small style={{ fontWeight: 600 }}>Effect in {currency.symbol}: </small>\r\n {currency.symbol}{findPrice(findEventsWithDate(props.detail.measurements, leastCommonDate), props.detail)}\r\n </div>\r\n <div style={{ paddingRight: '8px', width: '25%', float: 'right' }}>\r\n <div className={classes.dataBlock} style={{ background: (props.detail.isProfit ? \"#dc3545\" : \"#28a745\") }}>\r\n Low\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n infoBlock: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '25%',\r\n paddingLeft: '8px',\r\n },\r\n\r\n dataBlock: {\r\n float: 'right',\r\n width: '70px',\r\n color: 'white',\r\n paddingTop: '8px',\r\n paddingBottom: '8px',\r\n borderRadius: \"5px\",\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: \"bold\",\r\n },\r\n\r\n buttonContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n flexDirection: 'row',\r\n width: '100%',\r\n paddingTop: '20px',\r\n paddingBottom: '20px',\r\n '&:hover': {\r\n background: '#e8e6e6',\r\n cursor: 'pointer',\r\n }\r\n },\r\n averageContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n flexDirection: 'row',\r\n width: '100%',\r\n paddingTop: '8px',\r\n paddingBottom: '8px',\r\n\r\n },\r\n\r\n eventBoxStyle: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n height: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '100%',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n width: '100%',\r\n },\r\n },\r\n}));","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useNavigate } from 'react-router-dom';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { dataService } from '../../../Services/data/data.service';\r\n\r\nimport { parseNewDateToDDMMYYY } from '../../../Utils/dateHelper';\r\nimport PriceTable from './Components/PriceTable';\r\nimport TableHighLow from './Components/TableHighLow';\r\nimport EventChart from './Components/EventChart';\r\nimport FinancialChart from './Components/FinancialChart.jsx';\r\nimport TimeRangeChart from '../Results/Components/TimeRangeChart'\r\nimport Image from '../../../../src/Images/camera.svg';\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport pieChart from '../../../../src/Images/Pie.svg'\r\nimport { parseNewDateToDDMMYYYWithoutSeconds } from '../../../Utils/dateHelper';\r\n\r\n\r\nimport html2canvas from 'html2canvas';\r\nimport { Divider, Button, Box } from '@mui/material';\r\nimport { Plus, Minus, CircleAlert, ChevronLeft, Factory, MapPin, DiamondPlus, Timer, TextCursorInput, List, ScanBarcode, LinkIcon } from 'lucide-react';\r\nimport { externalApiTypes, controlTypes } from '../../../Config/constants.js';\r\n\r\n\r\nfunction ProjectReportPage(props) {\r\n const classes = useStyles();\r\n const { projectQr } = useParams();\r\n\r\n const [project, setProject] = useState(null);\r\n const [priceData, setPriceData] = useState([]);\r\n const [currency, setCurrency] = useState(null);\r\n\r\n const [totalPrice, setTotalPrice] = useState(0);\r\n const [financialChartData, setFinancialChartData] = useState([]);\r\n const [projectDetailNames, setDetailsNames] = useState({});\r\n const [measurementRows, setMeasurementRows] = useState([]);\r\n const [isLoading, setLoading] = useState(true);\r\n const [timeRangeDates, setTimeRangeDates] = useState({ fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) });\r\n const navigate = useNavigate();\r\n const ref = React.createRef();\r\n const HighLowRef = React.createRef();\r\n\r\n useEffect(() => {\r\n dataService.getProjectByProjectQr(projectQr).then(res => {\r\n setProject(res);\r\n handleProject(res);\r\n })\r\n }, [projectQr]) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (project) {\r\n dataService.getCurrencyById(project.currencyId).then((response) => {\r\n setCurrency(response);\r\n });\r\n }\r\n }, [project])\r\n\r\n function convertHMS(value) {\r\n const sec = parseInt(value, 10); // convert value to number if it's string\r\n let hours = Math.floor(sec / 3600); // get hours\r\n let minutes = Math.floor((sec - (hours * 3600)) / 60); // get minutes\r\n let seconds = sec - (hours * 3600) - (minutes * 60); // get seconds\r\n // add 0 if value < 10; Example: 2 => 02\r\n if (hours < 10) { hours = \"0\" + hours; }\r\n if (minutes < 10) { minutes = \"0\" + minutes; }\r\n if (seconds < 10) { seconds = \"0\" + seconds; }\r\n return hours + ':' + minutes + ':' + seconds; // Return is HH : MM : SS\r\n }\r\n\r\n const handleProject = (project) => {\r\n let thisProject = project;\r\n let tempMeasurementsCollection = [];\r\n let chartMeasurementCollection = [];\r\n\r\n //Loop through all details and just toss all measurements together, afterwards flatten and sort by date\r\n for (let i = 0; i < thisProject.details.length; i++) {\r\n tempMeasurementsCollection.push(thisProject.details[i].measurements);\r\n }\r\n\r\n tempMeasurementsCollection = tempMeasurementsCollection.flat();\r\n tempMeasurementsCollection = tempMeasurementsCollection.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn));\r\n\r\n\r\n setMeasurementRows(tempMeasurementsCollection);\r\n //Get last measurement so we can decide the last date for the rangeslider\r\n let fromAndToDate = constructFromAndToDate(tempMeasurementsCollection);\r\n let tempToDate = fromAndToDate[1];\r\n let tempFromDate = fromAndToDate[0];\r\n\r\n chartMeasurementCollection = tempMeasurementsCollection.filter(x => new Date(x.insertedOn) >= new Date(tempFromDate) && new Date(x.insertedOn) <= new Date(tempToDate));\r\n constructPriceData(thisProject, tempFromDate, tempToDate);\r\n setTimeRangeDates({ fromDate: tempFromDate, toDate: tempToDate, startDate: tempFromDate, endDate: tempToDate });\r\n\r\n let projectDetails = thisProject.details;\r\n //Creates an object with all detail and their color (needed for the chart)\r\n let detailNames = constructDetailCollection(projectDetails);\r\n\r\n //Construct the data that will be displayed in the financial chart\r\n let tempChartData = constructChartData(projectDetails, chartMeasurementCollection);\r\n\r\n setDetailsNames(detailNames);\r\n setFinancialChartData(tempChartData);\r\n setLoading(false);\r\n };\r\n\r\n const constructDetailCollection = (details) => {\r\n let temporaryCollection = [];\r\n for (let i = 0; i < details.length; i++) {\r\n let thisProjectDetail = details[i];\r\n if (thisProjectDetail.price > 0) {\r\n temporaryCollection.push({ name: thisProjectDetail.description, color: thisProjectDetail.color });\r\n }\r\n }\r\n //Empty array for all details, also add a total to display in the graph\r\n temporaryCollection.push({ name: 'Total', color: '#c7c9c8' });\r\n\r\n return temporaryCollection;\r\n }\r\n\r\n const constructChartData = (projectDetails, chartDataCollection) => {\r\n let tempTotalData = [];\r\n let total = 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n let count = 0;\r\n\r\n //First we loop through all measurements to calculate the TOTAL LINE\r\n chartDataCollection.forEach((thisMeasurement) => {\r\n let isStopwatch = false;\r\n let thisDetail = projectDetails.find(x => x.id === thisMeasurement.projectDetailId);\r\n if (thisDetail !== undefined && thisMeasurement.price > 0) {\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId == externalApiTypes.STOPWATCH)) {\r\n isStopwatch = true;\r\n }\r\n\r\n let price_per = thisMeasurement.price !== null ? thisMeasurement.price : 0;\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startValue);\r\n let stopDate = new Date(thisMeasurement.stopValue);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisMeasurement.price / 3600) * dif);\r\n\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (count === 0) {\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: startTime, price: 0, profitAdded: 0, isVisible: true, 'Total_price': 0, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: 'Total', date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, 'Total_price': total, color: thisDetail.color, isProfit: thisDetail.isProfit, originalMeasurement: thisDetail.description };\r\n tempTotalData.push(tempMeasurementData);\r\n count++;\r\n }\r\n });\r\n\r\n let tempDetailData = [];\r\n\r\n //Loop through the details and their measurements to get each unique detail line\r\n projectDetails.filter(x =>\r\n x.measurements && x.measurements.some(measurement => measurement.price > 0)\r\n ).forEach(thisDetail => {\r\n let isStopwatch = false;\r\n let detailCount = 0;\r\n\r\n if (thisDetail.controlTypeId === 2 || (thisDetail.controlTypeId === 7 && thisDetail.externalApiTypeId == externalApiTypes.STOPWATCH)) {\r\n isStopwatch = true;\r\n }\r\n\r\n let thisMeasurements = chartDataCollection.filter(x => x.projectDetailId === thisDetail.id);\r\n\r\n let total = 0;\r\n let price_per = thisDetail.price !== null ? thisDetail.price : 0;\r\n let startTime = chartDataCollection.length > 0 ? chartDataCollection[0].insertedOn : new Date();\r\n\r\n if (thisMeasurements.length > 0) {\r\n let variablename = thisDetail.description + '_price';\r\n thisMeasurements.forEach(thisMeasurement => {\r\n let tempMeasurementData = {};\r\n var dif;\r\n var priceToAdd;\r\n if (isStopwatch) {\r\n let startDate = new Date(thisMeasurement.startValue);\r\n let stopDate = new Date(thisMeasurement.stopValue);\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n } else {\r\n dif = 0;\r\n }\r\n priceToAdd = ((thisMeasurement.price / 3600) * dif);\r\n } else {\r\n priceToAdd = price_per;\r\n }\r\n\r\n if (thisDetail.isProfit) {\r\n total += priceToAdd;\r\n } else {\r\n total -= priceToAdd;\r\n }\r\n if (detailCount === 0) {\r\n tempMeasurementData = { detailCount: 0, id: thisMeasurement.id, measurement: thisDetail.description, date: startTime, price: 0, profitAdded: 0, isVisible: true, [variablename]: 0, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n\r\n }\r\n tempMeasurementData = { id: thisMeasurement.id, measurement: thisDetail.description, date: thisMeasurement.insertedOn, price: priceToAdd, profitAdded: priceToAdd, isVisible: true, [variablename]: total, color: thisDetail.color, isProfit: thisDetail.isProfit };\r\n tempDetailData.push(tempMeasurementData);\r\n detailCount++;\r\n });\r\n }\r\n\r\n\r\n });\r\n let combinedData = tempTotalData.concat(tempDetailData);\r\n return combinedData;\r\n }\r\n\r\n const constructPriceData = (thisProject, thisFromDate, thisToDate) => {\r\n let amountOfMeasurements = [];\r\n let detailDescriptions = [];\r\n let measurementColors = [];\r\n let tempMeasurementPrices = [];\r\n let tempPriceData = [];\r\n\r\n let total = 0;\r\n //Loop through details\r\n let projectDetails = thisProject.details;\r\n\r\n for (let i = 0; i < projectDetails.length; i++) {\r\n //If measurements have stopValue they are a stopwatch\r\n let thisDetail = projectDetails[i];\r\n let filteredMeasurements = thisDetail.measurements.filter(x => new Date(x.insertedOn) >= new Date(thisFromDate) && new Date(x.insertedOn) <= new Date(thisToDate));\r\n if (filteredMeasurements.length > 0) {\r\n //events\r\n //Check if stopvalue than type 2 is stopwatch\r\n let detailType = filteredMeasurements[0].stopValue !== null ? 2 : 1;\r\n amountOfMeasurements.push(filteredMeasurements.length);\r\n detailDescriptions.push(projectDetails.description);\r\n measurementColors.push(projectDetails.color);\r\n tempMeasurementPrices.push({\r\n measurementId: filteredMeasurements[0].id !== 0 ? filteredMeasurements[0].id : filteredMeasurements[0].externalApiId,\r\n price: 0\r\n });\r\n\r\n let lowestDate = new Date(filteredMeasurements[0].insertedOn);\r\n let totalMeasurementPrice = 0;\r\n let totalTime = 0;\r\n let tempTotal = 0;\r\n\r\n if (detailType === 2) {\r\n // for (let j = 0; j < filteredMeasurements.length; j++) {\r\n // let startDate = new Date(filteredMeasurements[j].startValue);\r\n // let stopDate = new Date(filteredMeasurements[j].stopValue);\r\n // console.log(\"startDate: \", startDate);\r\n // console.log(\"stopDate: \", stopDate);\r\n // var dif;\r\n // if (stopDate > startDate) {\r\n // dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n\r\n // } else {\r\n // dif = 0;\r\n // }\r\n // totalTime += dif;\r\n // totalMeasurementPrice += (filteredMeasurements[j].price / 3600) * dif;\r\n // }\r\n\r\n // rewrite the above code so it's better and actually works correctly\r\n filteredMeasurements.forEach(measurement => {\r\n let startDate = new Date(measurement.startValue);\r\n let stopDate = new Date(measurement.stopValue);\r\n\r\n let dif = 0;\r\n if (stopDate > startDate) {\r\n dif = (stopDate.getTime() - startDate.getTime()) / 1000;\r\n }\r\n\r\n totalTime += dif;\r\n totalMeasurementPrice += (measurement.price / 3600) * dif;\r\n });\r\n\r\n\r\n\r\n tempTotal = totalMeasurementPrice;\r\n\r\n } else {\r\n for (let j = 0; j < filteredMeasurements.length; j++) {\r\n totalMeasurementPrice += filteredMeasurements[j].price;\r\n }\r\n tempTotal = totalMeasurementPrice;\r\n }\r\n for (let j = 0; j < filteredMeasurements.length; j++) {\r\n if (new Date(filteredMeasurements[j].insertedOn) < lowestDate) {\r\n lowestDate = new Date(filteredMeasurements[j].insertedOn);\r\n }\r\n }\r\n let highestDate = new Date(filteredMeasurements[0].insertedOn);\r\n for (let j = 0; j < filteredMeasurements.length; j++) {\r\n\r\n if (new Date(filteredMeasurements[j].insertedOn) > highestDate) {\r\n highestDate = new Date(filteredMeasurements[j].insertedOn);\r\n }\r\n }\r\n\r\n tempPriceData.push({\r\n price: thisProject.details[i].price !== null ? thisProject.details[i].price : 0,\r\n totalPrice: tempTotal,\r\n isProfit: thisProject.details[i].isProfit !== null ? thisProject.details[i].isProfit : true,\r\n detailDescription: thisProject.details[i].description,\r\n first: lowestDate,\r\n last: highestDate,\r\n amount: (detailType !== 2 ? filteredMeasurements.length : totalTime),\r\n color: thisProject.details[i].color,\r\n type: detailType,\r\n minuteamount: (detailType !== 2 ? null : convertHMS(totalTime)),\r\n });\r\n if (thisProject.details[i].isProfit) {\r\n total += tempTotal;\r\n } else {\r\n total -= tempTotal;\r\n }\r\n }\r\n };\r\n tempPriceData = tempPriceData.filter(x => x.totalPrice > 0);\r\n\r\n setTotalPrice(total);\r\n setPriceData(tempPriceData);\r\n }\r\n\r\n const constructFromAndToDate = (measurementData) => {\r\n let tempToDate;\r\n if (measurementData.length > 0) {\r\n tempToDate = new Date(measurementData[measurementData.length - 1].insertedOn);\r\n } else {\r\n tempToDate = new Date();\r\n }\r\n let tempFromDate = new Date(tempToDate - 86400000);\r\n return [tempFromDate, tempToDate];\r\n }\r\n\r\n\r\n const handlePreviousDay = () => {\r\n let tempFrom = timeRangeDates.fromDate;\r\n let tempTo = timeRangeDates.toDate;\r\n let newFromDate = new Date(new Date(tempFrom) - (24 * 60 * 60 * 1000));\r\n let newToDate = new Date(new Date(tempTo) - (24 * 60 * 60 * 1000));\r\n setTimeRangeDates({ startDate: newFromDate, fromDate: newFromDate, toDate: newToDate, endDate: newToDate });\r\n handleDifferentDate(newFromDate, newToDate);\r\n\r\n }\r\n\r\n const handleNextDay = () => {\r\n var duplicateDateRange = JSON.parse(JSON.stringify(timeRangeDates));\r\n let tempFrom = new Date(duplicateDateRange.fromDate);\r\n let tempTo = new Date(duplicateDateRange.toDate);\r\n let newFromDate = new Date(new Date(tempFrom).getTime() + 60 * 60 * 24 * 1000);\r\n let newToDate = new Date(new Date(tempTo).getTime() + 60 * 60 * 24 * 1000);\r\n setTimeRangeDates({ startDate: newFromDate, fromDate: newFromDate, toDate: newToDate, endDate: newToDate });\r\n handleDifferentDate(newFromDate, newToDate);\r\n\r\n }\r\n\r\n const navigateToModifyDetail = () => {\r\n navigate(`/modifyproject/${projectQr}`);\r\n }\r\n\r\n const handleDifferentDate = (tempFromDate, tempToDate) => {\r\n let thisProject = project;\r\n let tempMeasurementsCollection = [];\r\n let chartMeasurementCollection = [];\r\n\r\n\r\n //Loop through all details and just toss all measurements together, afterwards flatten and sort by date\r\n for (let i = 0; i < thisProject.details.length; i++) {\r\n tempMeasurementsCollection.push(thisProject.details[i].measurements);\r\n }\r\n\r\n tempMeasurementsCollection = tempMeasurementsCollection.flat();\r\n tempMeasurementsCollection = tempMeasurementsCollection.sort((a, b) => new Date(a.insertedOn) - new Date(b.insertedOn));\r\n chartMeasurementCollection = tempMeasurementsCollection.filter(x => (new Date(x.insertedOn) >= new Date(tempFromDate) && new Date(x.insertedOn) <= new Date(tempToDate)) || (new Date(x.endDate) >= new Date(tempFromDate) && new Date(x.endDate) <= new Date(tempToDate)));\r\n constructPriceData(thisProject, tempFromDate, tempToDate);\r\n\r\n //Creates an object with all detail and their color (needed for the chart)\r\n let projectDetails = thisProject.details;\r\n\r\n //Creates an object with all detail and their color (needed for the chart)\r\n let detailNames = constructDetailCollection(projectDetails);\r\n\r\n //Construct the data that will be displayed in the financial chart\r\n let tempChartData = constructChartData(projectDetails, chartMeasurementCollection);\r\n setDetailsNames(detailNames);\r\n setFinancialChartData(tempChartData);\r\n\r\n }\r\n\r\n const updateDataRange = (data, changeDay) => {\r\n let tempFromDate = new Date(data[0]);\r\n let tempToDate = new Date(data[1]);\r\n var duplicateDateRange = JSON.parse(JSON.stringify(timeRangeDates));\r\n\r\n handleDifferentDate(tempFromDate, tempToDate);\r\n var objNewTimeRangeDate;\r\n\r\n if (changeDay) {\r\n objNewTimeRangeDate = { startDate: new Date(tempFromDate), fromDate: new Date(tempFromDate), toDate: new Date(tempToDate), endDate: new Date(tempToDate) };\r\n //If the dateRanges are different --> setTimeRangeDates (to prevent that we set to many states)\r\n\r\n } else {\r\n objNewTimeRangeDate = { startDate: new Date(duplicateDateRange.startDate), fromDate: new Date(tempFromDate), toDate: new Date(tempToDate), endDate: new Date(duplicateDateRange.endDate) };\r\n\r\n }\r\n\r\n if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(timeRangeDates)) {\r\n setTimeRangeDates(objNewTimeRangeDate);\r\n }\r\n\r\n }\r\n\r\n\r\n const handleDownloadImage = async (toDownload) => {\r\n let element;\r\n let fileName;\r\n if (toDownload === 'HighLow') {\r\n element = HighLowRef.current;\r\n fileName = 'HighLow.jpg';\r\n } else {\r\n element = ref.current;\r\n fileName = 'Summary.jpg';\r\n }\r\n const canvas = await html2canvas(element);\r\n\r\n const data = canvas.toDataURL('image/jpg');\r\n const link = document.createElement('a');\r\n\r\n if (typeof link.download === 'string') {\r\n link.href = data;\r\n link.download = fileName;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n window.open(data);\r\n }\r\n };\r\n\r\n const getControlTypeIcon = (typeId) => {\r\n let icon;\r\n switch (typeId) {\r\n case controlTypes.COUNTER:\r\n icon = <DiamondPlus className={classes.icon} />;\r\n break;\r\n case controlTypes.STOPWATCH:\r\n icon = <Timer className={classes.icon} />;\r\n break;\r\n case controlTypes.FREETEXT:\r\n icon = <TextCursorInput className={classes.icon} />;\r\n break;\r\n case controlTypes.DATALIST:\r\n icon = <List className={classes.icon} />;\r\n break;\r\n case controlTypes.SCANNER:\r\n icon = <ScanBarcode className={classes.icon} />;\r\n break;\r\n case controlTypes.CAMERA:\r\n icon = <Image className={classes.icon} />;\r\n break;\r\n case controlTypes.EXTERNALAPI:\r\n icon = <LinkIcon className={classes.icon} />;\r\n break;\r\n default:\r\n // code block\r\n }\r\n return icon;\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"Financial dashboard\" backbutton={true} {...props} />\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n }}>\r\n <div className={classes.header}>\r\n <button className={classes.backButton} onClick={() => navigate('/projectreportoverview')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to project overview\r\n </button>\r\n <h1>Financial dashboard</h1>\r\n </div>\r\n {project !== null &&\r\n <div className={classes.fullHeader}>\r\n <h2 className={classes.projectTitle}>\r\n {project.projectName}\r\n </h2>\r\n <div className={classes.header__detailContainer}>\r\n <div className={classes.header__detail}>\r\n <MapPin className={classes.header__detailIcon} />\r\n <p className={classes.header__detailText}>{project.resourceDescription}</p>\r\n </div>\r\n <div className={classes.header__detail}>\r\n <Factory className={classes.header__detailIcon} />\r\n <p className={classes.header__detailText}>{project.companyName}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n }\r\n\r\n <div className={classes.financialDashboardStyle}>\r\n <Box className={classes.boxStyle} ref={HighLowRef}>\r\n <Box className={classes.filterTitle} variant=\"contained\" content=\"Options\" >\r\n <span>High/Low for this project</span>\r\n {/* <Pdf targetRef={HighLowRef} filename=\"code-example.pdf\">\r\n {({ toPdf }) => <Button style={{ backgroundColor: 'white', color: '#C3996B', marginRight: '10px' }} onClick={toPdf}>Generate Pdf</Button>}\r\n </Pdf> */}\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B' }} onClick={() => handleDownloadImage('HighLow')} data-html2canvas-ignore=\"true\">Export</Button>\r\n </Box>\r\n\r\n {isLoading ? <Box className={classes.loadingBalls}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></Box> : project ? project.details.map((detail, index) => {\r\n if (detail.measurements.length > 0 && detail.measurements.some(x => x.price > 0)) {\r\n return (\r\n <Box key={`TableHighLow_${detail.id}_${index}`} className={classes.highLowItem}>\r\n <div className={classes.highLow__headerContainer}>\r\n <div className={classes.highLow__detailHeader}>\r\n {getControlTypeIcon(detail.controlTypeId)}\r\n <p className={classes.highLow__detailTitle}>{detail.description}</p>\r\n </div>\r\n {detail.isProfit ? (\r\n <Plus style={{ color: 'rgb(40, 167, 69)', paddingRight: '10px' }} />\r\n ) : (\r\n <Minus style={{ color: 'rgb(220, 53, 69)', paddingRight: '10px' }} />\r\n )}\r\n </div>\r\n <Divider></Divider>\r\n <TableHighLow {...props} detail={detail} projectName={project.projectName} currency={currency} location={project.resourceDescription} projectQr={projectQr} />\r\n </Box>\r\n )\r\n }\r\n else {\r\n return (\r\n <React.Fragment></React.Fragment>\r\n )\r\n }\r\n }\r\n ) : <React.Fragment></React.Fragment>}\r\n\r\n {(measurementRows.length === 0 && !isLoading) && <Box style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', height: '100%', justifyContent: 'center' }}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No events</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no events for this project yet.</p>\r\n </div>\r\n </Box>}\r\n </Box>\r\n {isLoading ? <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div> :\r\n\r\n <div className={classes.rightSideStyle}>\r\n <div className={classes.rightSideTitle}>Data between {parseNewDateToDDMMYYY(timeRangeDates.fromDate)} and {parseNewDateToDDMMYYY(timeRangeDates.toDate)}</div>\r\n <div style={{ backgroundColor: 'white', marginBottom: '15px', borderRadius: '8px', padding: \"16px\", margin: '15px' }}>\r\n\r\n {/* {project ? <TimeRangeChartCopy updateDataRange={updateDataRange} handleNextDay={handleNextDay} handlePreviousDay={handlePreviousDay}\r\n timeRangeDates={timeRangeDates}></TimeRangeChartCopy> :\r\n <div style={{ marginBottom: \"40px\" }}>\r\n </div>\r\n } */}\r\n {project ? <TimeRangeChart updateDataRange={updateDataRange} handleNextDay={handleNextDay} handlePreviousDay={handlePreviousDay}\r\n timeRangeDates={timeRangeDates}></TimeRangeChart> :\r\n <div style={{ marginBottom: \"40px\" }}>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n {financialChartData !== undefined && financialChartData.length > 0 ?\r\n <div className={classes.financialChart}>\r\n <FinancialChart\r\n financialChartData={financialChartData}\r\n projectDetailNames={projectDetailNames}\r\n project={project}\r\n currency={currency}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n >\r\n </FinancialChart>\r\n </div>\r\n :\r\n <div style={{ backgroundColor: 'white', height: '91%', padding: '25px', borderRadius: '8px', margin: '15px' }}>\r\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column', }}>\r\n <div style={{ height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>\r\n <div className={classes.noDataIcons}>\r\n <img className={classes.imageStyle} src={pieChart} alt=\"\" />\r\n <CircleAlert style={{ width: '100px', height: '100px', color: '#dc3545', position: 'absolute', right: '0', bottom: '0' }} className={classes.CircleAlert}></CircleAlert>\r\n </div>\r\n <p style={{ marginTop: '36px', fontSize: '16px', color: 'rgba(12, 14, 41, 1)' }}>No data to display between {parseNewDateToDDMMYYY(timeRangeDates.fromDate)} and {parseNewDateToDDMMYYY(timeRangeDates.toDate)}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n }\r\n\r\n {priceData !== undefined && financialChartData.length > 0 ?\r\n <div className={classes.chartBoxStyle}>\r\n <div className={classes.pieStyle}>\r\n {priceData.filter(x => x.type !== 2).length > 0 ?\r\n <EventChart data={priceData.filter(x => x.type !== 2 && x.price > 0)} title={\"Event overview\"} />\r\n :\r\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>\r\n <div style={{ height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>\r\n <div className={classes.noDataIcons}>\r\n <img className={classes.imageStyle} src={pieChart} alt=\"\" />\r\n <CircleAlert style={{ width: '100px', height: '100px', color: '#dc3545', position: 'absolute', right: '0', bottom: '0' }} className={classes.CircleAlert}></CircleAlert>\r\n </div>\r\n <p style={{ marginTop: '30px' }}>There were no event measurements during this timespan</p>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div className={classes.pieStyle}>\r\n {priceData.filter(x => x.type === 2).length > 0 ?\r\n <EventChart data={priceData.filter(x => x.type === 2)} title={\"Time overview\"} />\r\n :\r\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>\r\n <div style={{ height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>\r\n <div className={classes.noDataIcons}>\r\n <img className={classes.imageStyle} src={pieChart} alt=\"\" />\r\n <CircleAlert style={{ width: '100px', height: '100px', color: '#dc3545', position: 'absolute', right: '0', bottom: '0' }} className={classes.CircleAlert}></CircleAlert>\r\n </div>\r\n <p style={{ marginTop: '30px' }}>There were no stopwatch measurements during this timespan</p>\r\n </div>\r\n </div>\r\n\r\n }\r\n </div>\r\n </div> : ''}\r\n\r\n <div className={classes.tableContainer} ref={ref}>\r\n <div className={classes.calculateBoxStyle}>\r\n <div className={classes.filterTitle} variant=\"contained\" content=\"Options\" >\r\n <span>Summary</span>\r\n <div >\r\n <Button style={{ backgroundColor: 'white', color: '#C3996B', marginRight: '10px' }} onClick={() => handleDownloadImage('Summary')} data-html2canvas-ignore=\"true\">Export</Button>\r\n <Button onClick={() => navigateToModifyDetail(project.id)} style={{ backgroundColor: 'white', color: '#C3996B' }}>\r\n Modify\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <PriceTable totalPrice={totalPrice} priceData={priceData} currency={currency}></PriceTable>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n </div>\r\n\r\n </Box>\r\n </React.Fragment>\r\n )\r\n}\r\nexport default ProjectReportPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n noDataAvailable: {\r\n width: '100%',\r\n backgroundColor: 'white',\r\n borderRadius: '8px',\r\n fontSize: '20px',\r\n marginRight: 'auto',\r\n marginLeft: 'auto',\r\n paddingTop: '20px',\r\n paddingBottom: '20px',\r\n color: '#dc3545',\r\n paddingLeft: '15px'\r\n },\r\n bar: {\r\n [theme.breakpoints.up('lg')]: {\r\n minWidth: \"70%\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n minWidth: \"60%\",\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n minWidth: \"65%\",\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n minWidth: \"70%\",\r\n },\r\n },\r\n\r\n headerContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: '100%',\r\n flexDirection: 'row',\r\n backgroundColor: '#ede6df',\r\n // padding: '10px'\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n flexDirection: 'row',\r\n },\r\n dateContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n width: '100%',\r\n flexDirection: 'row',\r\n },\r\n projectHeader: {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginBottom: '16px'\r\n },\r\n\r\n fullHeader: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n display: 'flex',\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n flexWrap: \"wrap\",\r\n gap: \"8px\",\r\n\r\n backgroundColor: \"#C3996B\",\r\n color: 'white',\r\n\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n marginBottom: \"16px\",\r\n },\r\n\r\n projectTitle: {\r\n color: \"white\",\r\n },\r\n\r\n header__detailContainer: {\r\n display: \"flex\",\r\n gap: \"24px\",\r\n },\r\n\r\n header__detail: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n },\r\n\r\n header__detailIcon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n header__detailText: {\r\n margin: \"0px\",\r\n },\r\n\r\n extraInfo: {\r\n display: 'flex',\r\n justifyContent: 'end'\r\n },\r\n\r\n financialDashboardStyle: {\r\n display: 'flex',\r\n width: '100%',\r\n\r\n\r\n height: '100%',\r\n\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginBottom: \"16px\",\r\n\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: 'column'\r\n },\r\n },\r\n container: {\r\n boxSizing: \"border-box\",\r\n\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n flexFlow: 'space-around',\r\n borderRadius: \"8px\",\r\n gap: \"20px 30px\",\r\n width: '70%',\r\n // [theme.breakpoints.up('lg')]: {\r\n // maxWidth: \"70%\",\r\n // },\r\n // [theme.breakpoints.down('lg')]: {\r\n // maxWidth: \"70%\",\r\n // },\r\n // [theme.breakpoints.down('md')]: {\r\n // maxWidth: \"90%\",\r\n // },\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginTop: \"25px\"\r\n },\r\n titleTextStyle: {\r\n display: \"flex\",\r\n marginLeft: \"20px\",\r\n },\r\n noDataIcons: {\r\n position: 'relative'\r\n },\r\n CircleAlert: {\r\n position: 'absolute',\r\n right: '25%',\r\n bottom: '25%'\r\n },\r\n imageStyle: {\r\n height: '100%',\r\n width: '100%',\r\n filter: 'invert(87%) sepia(15%) saturate(124%) hue-rotate(341deg) brightness(108%) contrast(86%)',\r\n\r\n },\r\n noHighLow: {\r\n height: '100px',\r\n width: '100px',\r\n marginTop: '15px',\r\n\r\n },\r\n boxStyle: {\r\n // height: 'calc(100vh + 15px)',\r\n overflowY: 'hidden',\r\n width: '30%',\r\n\r\n [theme.breakpoints.down('md')]: {\r\n width: \"100%\",\r\n marginBottom: '15px'\r\n },\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n marginRight: '15px',\r\n //minHeight: '1000px'\r\n\r\n },\r\n loadingBalls: {\r\n height: '100%',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n loadingChart: {\r\n height: '100vh',\r\n width: '70%',\r\n position: 'relative',\r\n zIndex: '999',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'white',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n detailHeader: {\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n padding: \"10px\",\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n\r\n highLow__headerContainer: {\r\n width: '100%',\r\n\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n flexDirection: 'row',\r\n backgroundColor: '#ede6df',\r\n },\r\n\r\n highLow__detailHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n\r\n padding: \"10px\",\r\n },\r\n\r\n highLow__detailTitle: {\r\n margin: \"0\",\r\n },\r\n\r\n rightSideStyle: {\r\n borderRadius: '8px',\r\n height: '100%',\r\n width: '70%',\r\n\r\n [theme.breakpoints.down('md')]: {\r\n width: \"100%\",\r\n },\r\n position: 'relative',\r\n background: '#ede6df'\r\n },\r\n chartBoxStyle: {\r\n height: '50%',\r\n margin: '15px',\r\n overflow: 'hidden',\r\n display: \"flex\",\r\n gap: \"16px\",\r\n flexGrow: '2',\r\n justifyContent: \"space-between\",\r\n flexDirection: \"row\",\r\n borderRadius: \"8px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n width: 'calc(100% - 30px)'\r\n },\r\n },\r\n tableContainer: {\r\n margin: '15px'\r\n },\r\n\r\n financialChart: {\r\n boxSizing: \"border-box\",\r\n\r\n backgroundColor: \"white\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n margin: \"16px\",\r\n },\r\n\r\n pieStyle: {\r\n\r\n width: '50%',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n marginBottom: '15px'\r\n },\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"18px\",\r\n\r\n },\r\n\r\n highLowItem: {\r\n display: 'flex',\r\n flexDirection: 'column'\r\n },\r\n\r\n calculateBoxStyle: {\r\n overflow: 'hidden',\r\n display: \"flex\",\r\n flexGrow: '3',\r\n justifyContent: \"space-between\",\r\n flexDirection: \"column\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"18px\",\r\n gap: \"10px\",\r\n\r\n },\r\n\r\n filterTitle: {\r\n backgroundColor: \"#C3996B !important\",\r\n color: 'white',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n padding: '10px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n\r\n },\r\n rightSideTitle: {\r\n borderTopRightRadius: '8px',\r\n borderTopLeftRadius: '8px',\r\n\r\n backgroundColor: \"#C3996B !important\",\r\n color: 'white',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n padding: '10px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n\r\n },\r\n stylingBlock: {\r\n backgroundColor: '#f0f0f0',\r\n borderRadius: '6px',\r\n boxShadow: 'inset -3px -3px 7px #ffffffb0, inset 3px 3px 5px rgba(94, 104, 121, 0.692)',\r\n padding: \"25px\"\r\n },\r\n filterBlock: {\r\n display: 'flex',\r\n marginBottom: '15px',\r\n flexWrap: 'wrap',\r\n [theme.breakpoints.up('sm')]: {\r\n justifyContent: 'space-around',\r\n gap: \"15px\"\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n justifyContent: 'space-evenly',\r\n }\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n margin: \"auto\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n icon: {\r\n color: \"#0C0E29\",\r\n display: \"block\",\r\n\r\n height: \"24px\",\r\n width: \"24px\",\r\n\r\n strokeWidth: \"1.8px\",\r\n },\r\n}));","import React, { useState, useRef, useCallback, useEffect } from \"react\";\r\nimport { FilteringState, GroupingState, IntegratedGrouping, IntegratedPaging, IntegratedSorting, IntegratedFiltering, PagingState, SortingState, DataTypeProvider, SummaryState, IntegratedSummary, IntegratedSelection, SelectionState, } from \"@devexpress/dx-react-grid\";\r\nimport { ExportPanel, Grid, DragDropProvider, GroupingPanel, PagingPanel, TableFilterRow, TableGroupRow, TableSummaryRow, TableHeaderRow, Toolbar, TableSelection, VirtualTable, } from \"@devexpress/dx-react-grid-material-ui\";\r\nimport { IconButton, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from '@mui/material';\r\nimport { GridExporter } from '@devexpress/dx-react-grid-export';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ProjectButton from './ProjectButton';\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport saveAs from \"file-saver\";\r\nimport { BadgeCheck, BadgeMinus } from 'lucide-react';\r\n\r\nimport { resultTableColumnExtensions, resultGroupingColumnExtensions, filteringStateColumnExtensions, resultColumns, controlTypes, externalApiTypes } from \"../../../../Config/constants\"\r\nimport { getCurrentDateTimeString, formatDate, formatToTimeString } from \"../../../../Utils/dateHelper\"\r\n\r\nexport default function DevExDataTable(props) {\r\n const [grouping, setGrouping] = useState([]);\r\n const [data, setData] = useState([]);\r\n const [imageDialogOpen, setImageDialogOpen] = useState(false);\r\n const [image, setImage] = useState(\"\");\r\n const [description, setDescription] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(props.data))) {\r\n setData(props.data);\r\n }\r\n }, [props.data])\r\n\r\n const classes = useStyles();\r\n\r\n //Export excel\r\n const onSave = (workbook) => {\r\n var fileName = \"registrations_\" + getCurrentDateTimeString() + \".xlsx\";\r\n workbook.xlsx.writeBuffer().then((buffer) => {\r\n saveAs(\r\n new Blob([buffer], { type: \"application/octet-stream\" }),\r\n fileName\r\n );\r\n });\r\n\r\n\r\n };\r\n\r\n const exporterRef = useRef(null);\r\n const startExport = useCallback((options) => {\r\n exporterRef.current.exportGrid(options);\r\n }, [exporterRef]);\r\n\r\n\r\n const tableMessages = {\r\n sum: \"Sum\",\r\n contains: \"Contains\",\r\n noData: \"No measurements available\"\r\n\r\n };\r\n\r\n\r\n const startTimeFormatter = (row) => (\r\n <React.Fragment>\r\n {row.value !== null && row.value !== \"\" ? <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}><div style={{ lineHeight: '1' }}>{formatDate(row.value).split(\" \")[0]}</div><div style={{ lineHeight: '1' }}>{formatDate(row.value).split(\" \")[1]}</div></div> : \"\"}\r\n </React.Fragment>\r\n );\r\n\r\n const finishedFormatter = (row) => (\r\n <React.Fragment>\r\n {row.value ?\r\n <BadgeMinus style={{ color: 'red' }}></BadgeMinus>\r\n :\r\n <BadgeCheck style={{ color: 'green' }}></BadgeCheck>\r\n }\r\n </React.Fragment>\r\n );\r\n\r\n const valueTypeFormatter = (row) => {\r\n switch (row.value) {\r\n case \"Value added\":\r\n return <div className={classes.chip__green}>Value added</div>;\r\n case \"No value added\":\r\n return <div className={classes.chip__orange}>No value added</div>;\r\n case \"Waste\":\r\n return <div className={classes.chip__red}>Waste</div>;\r\n default:\r\n return <div className={classes.chip__grey}>Unknown</div>;\r\n }\r\n }\r\n\r\n const valueFormatter = (row) => {\r\n if (row.row !== undefined) {\r\n if (row.column.name === \"commentText\" && row.row !== undefined && row.row.commentImage !== \"\" && row.row.commentImage !== null && row.row.commentImage !== undefined) {\r\n return <div style={{ display: 'flex', flexDirection: 'column' }}>\r\n {(row.value !== null && row.value !== undefined && row.value !== \"\") && <span>{row.value}</span>}\r\n <IconButton style={{ borderRadius: \"25px\" }} onClick={() => handleDialogOpen(row.row.imageId, row.row.description, row.row.commentImage)}>\r\n <img alt=\"\"\r\n style={{ maxWidth: '100%', }}\r\n src={\"data:image/png;base64,\" + row.row.commentImage}></img>\r\n </IconButton>\r\n </div>\r\n }\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n if (row.column.name === \"measurementValue\" && row.row.typeId === controlTypes.STOPWATCH && row.row.integerValue) {\r\n const totalSeconds = row.row.integerValue;\r\n\r\n // Calculate hours, minutes, and seconds\r\n const hours = Math.floor(totalSeconds / 3600);\r\n const minutes = Math.floor((totalSeconds % 3600) / 60);\r\n const seconds = totalSeconds % 60;\r\n\r\n // Format each part to ensure two digits\r\n const formattedTime = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\r\n return formattedTime;\r\n } else {\r\n return \"-\";\r\n }\r\n } else if (row.row.typeId === controlTypes.CAMERA) {\r\n return <IconButton style={{ borderRadius: \"25px\" }} onClick={() => handleDialogOpen(row.row.imageId, row.row.description)}>\r\n <img alt=\"\"\r\n style={{ maxWidth: '100%', }}\r\n src={\"data:image/png;base64,\" + row.row.thumbnail}></img>\r\n </IconButton>\r\n } else {\r\n return row.value;\r\n }\r\n } else {\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n return \"-\";\r\n } else {\r\n return row.value;\r\n }\r\n }\r\n }\r\n\r\n const priceFormatter = (row) => {\r\n if (row.value === null || row.value === undefined || row.value === \"\") {\r\n return \"-\";\r\n } else {\r\n const formatPrice = (price) => {\r\n return price\r\n .toFixed(2) // Ensure two decimal places\r\n .replace('.', ',') // Replace decimal point with comma\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' '); // Add space as thousands separator\r\n };\r\n\r\n return (\r\n <p className={classes.eventPrice}>\r\n €{formatPrice(row.value)}\r\n </p>\r\n );\r\n }\r\n };\r\n\r\n\r\n const actionFormatter = (row) => {\r\n return <ProjectButton data={row.row} details={data.filter(x => x.projectId === row.row.projectId)}> </ProjectButton>\r\n }\r\n\r\n const handleDialogOpen = (imageId, description, commentImage) => {\r\n if (imageId !== null && imageId !== undefined && imageId !== 0) {\r\n dataService.GetImageById(imageId).then(response => {\r\n setImage(response.image);\r\n setDescription(description);\r\n setImageDialogOpen(true);\r\n }).catch((error) => {\r\n console.log('Error: ', error);\r\n toast.error(`Something went wrong`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n })\r\n } else if (commentImage !== \"\" && commentImage !== undefined && commentImage !== null) {\r\n setImage(commentImage);\r\n setDescription(description);\r\n setImageDialogOpen(true);\r\n } else {\r\n toast.error(`Something went wrong`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n\r\n }\r\n\r\n }\r\n\r\n const CustomGroupRowContent = ({ row, column, children }) => {\r\n var filterData = JSON.parse(JSON.stringify(data));\r\n const summary = row.value;\r\n var count = 0;\r\n var counterMessage = \"\";\r\n var timerMessage = \"\";\r\n var timeElapsed = 0;\r\n const key = grouping.findIndex(item => item.columnName === row.groupedBy);\r\n var arrCompoundKey = row.compoundKey.split('|');\r\n var groupBySubLevel = [];\r\n if (key > 0) {\r\n //sub level\r\n grouping.map((x, index) => {\r\n groupBySubLevel = groupByColumnName(filterData, x.columnName);\r\n filterData = groupBySubLevel[arrCompoundKey[index]];\r\n })\r\n }\r\n\r\n let groupedRows = filterData.filter(r => r[row.groupedBy] === row.value);\r\n // filter out rows that have checked false\r\n groupedRows = groupedRows.filter(x => x.checked === true);\r\n if (groupedRows !== undefined) {\r\n console.log(groupedRows);\r\n count = groupedRows.length;\r\n var counterRows = groupedRows.filter(x => x.typeId === controlTypes.COUNTER);\r\n var timerRows = groupedRows.filter(x => x.typeId === controlTypes.STOPWATCH || x.typeId === controlTypes.EXTERNALAPI && x.externalApiTypeId === externalApiTypes.STOPWATCH);\r\n if (counterRows.length > 0) {\r\n var groupedByDetail = groupByColumnName(counterRows, \"detailId\")\r\n var total = 0;\r\n\r\n Object.entries(groupedByDetail).map(([key, value]) => {\r\n var grouped = groupByColumnName(value, \"measurementSessionId\")\r\n Object.entries(grouped).map(([key, value]) => {\r\n total = total + value[0].measurementValue;\r\n });\r\n });\r\n counterMessage = total; // Use the formatted message\r\n }\r\n\r\n if (timerRows.length > 0) {\r\n var total = 0;\r\n timerRows.map(x => { total = total + x.integerValue; })\r\n timerMessage = formatToTimeString(total);\r\n }\r\n\r\n // calculate the difference in seconds between the first measurement starttime and last measurement (endtime if stopwatch, starttime if else)\r\n if (groupedRows.length > 0) {\r\n // get row with earliest starttime\r\n const earliestStartTime = groupedRows.reduce((prev, current) => (prev.startTime < current.startTime) ? prev : current);\r\n // get row with latest stoptime\r\n const latestStopTime = groupedRows.reduce((prev, current) => (prev.stopTime > current.stopTime) ? prev : current);\r\n // get row with latest starttime\r\n const latestStartTime = groupedRows.reduce((prev, current) => (prev.startTime > current.startTime) ? prev : current);\r\n\r\n // check if latest stoptime is later than latest starttime, use the latest one. then use it to calculate the difference between earliestStartTime and latest time\r\n const latestTime = latestStopTime.stopTime > latestStartTime.startTime ? latestStopTime.stopTime : latestStartTime.startTime;\r\n\r\n timeElapsed = (new Date(latestTime) - new Date(earliestStartTime.startTime)) / 1000;\r\n timeElapsed = formatToTimeString(timeElapsed);\r\n }\r\n }\r\n\r\n return (\r\n <TableGroupRow.Content row={row} column={column} sx={{ width: '100%', display: 'flex', flexDirection: 'row' }}>\r\n {/* {children} */}\r\n <div style={{ width: '100%', display: 'flex', justifyContent: 'space-between', paddingLeft: '5px' }}>\r\n <div style={{ width: '20%' }}>\r\n {children !== null ? children : summary}\r\n\r\n </div>\r\n <span style={{ width: '20%' }}>\r\n {/* {counterMessage !== \"\" && ( */}\r\n <> <b>Counter total:</b> {counterMessage ? counterMessage : \"-\"}</>\r\n {/* )} */}\r\n </span>\r\n {/* {counterMessage !== \"\" && timerMessage !== \"\" && ` - `} */}\r\n <span style={{ width: '20%' }}>\r\n\r\n {/* {timerMessage !== \"\" && timerMessage !== undefined && ( */}\r\n <> <b>Total time:</b> {timerMessage ? timerMessage : '-'}</>\r\n {/* )} */}\r\n\r\n </span>\r\n <span style={{ width: \"20%\" }}>\r\n <> <b>Time elapsed:</b> {timeElapsed ? timeElapsed : \"-\"} </>\r\n </span>\r\n\r\n <span style={{ width: '20%', display: 'flex', justifyContent: 'flex-end' }}>\r\n <b>Count:</b> <span style={{ width: '30px', display: 'flex', justifyContent: 'flex-end' }}>{count}</span>\r\n </span>\r\n\r\n </div>\r\n\r\n </TableGroupRow.Content>\r\n );\r\n };\r\n\r\n const groupByColumnName = (array, columnName) => {\r\n //Function to group all measurments by the given columnName\r\n return array.reduce((result, item) => {\r\n const key = item[columnName]; // Dynamically get the key value\r\n if (!result[key]) {\r\n result[key] = []; // Initialize the group if it doesn't exist\r\n }\r\n result[key].push(item); // Add the current item to the group\r\n return result;\r\n }, {});\r\n };\r\n\r\n const handleDialogClose = () => {\r\n setImageDialogOpen(false);\r\n }\r\n\r\n const formatlessSummaryTypes = ['customTotal'];\r\n const messages = {\r\n customTotal: 'Price higher than $6000',\r\n count: 'count'\r\n };\r\n\r\n return (\r\n <React.Fragment >\r\n <div id='taplrDevExTable'>\r\n <Grid rows={data} columns={props.columns}>\r\n <DragDropProvider />\r\n\r\n {/* DataTypeProviders are used to format the data, like dates or the valuetype (we show these as a pill) */}\r\n <DataTypeProvider formatterComponent={startTimeFormatter} for={[\"startTime\"]} />\r\n <DataTypeProvider formatterComponent={finishedFormatter} for={[\"running\"]} />\r\n <DataTypeProvider formatterComponent={valueFormatter} for={[\"measurementValue\", \"keyValue\", \"commentText\"]} />\r\n <DataTypeProvider formatterComponent={valueTypeFormatter} for={[\"valueType\"]} />\r\n <DataTypeProvider formatterComponent={priceFormatter} for={[\"eventPrice\"]} />\r\n <DataTypeProvider formatterComponent={actionFormatter} for={[\"\"]} />\r\n\r\n <FilteringState columnExtensions={filteringStateColumnExtensions} onFiltersChange={props.handleFiltersChange} />\r\n <SortingState columnExtensions={resultTableColumnExtensions} />\r\n <GroupingState grouping={grouping} onGroupingChange={setGrouping} columnExtensions={resultGroupingColumnExtensions} showGroupingControls />\r\n <SummaryState />\r\n <PagingState defaultPageSize={100} />\r\n <SelectionState selection={props.selection} onSelectionChange={props.onSelectionChange} mode=\"multiple\" deferred={true} />\r\n\r\n <IntegratedFiltering />\r\n <IntegratedGrouping />\r\n <IntegratedSummary messages={messages} />\r\n <IntegratedSorting />\r\n <IntegratedPaging />\r\n <IntegratedSelection getRowId={row => row.id} />\r\n\r\n <VirtualTable columnExtensions={resultTableColumnExtensions} messages={tableMessages} />\r\n <TableFilterRow showFilterSelector={false} />\r\n <TableHeaderRow showSortingControls columnExtensions={resultTableColumnExtensions} />\r\n <TableSelection showSelectAll enabled={true} rowSelectionEnabled={true} />\r\n <TableGroupRow contentComponent={CustomGroupRowContent} showColumnsWhenGrouped />\r\n\r\n <TableSummaryRow formatlessSummaryTypes={formatlessSummaryTypes}\r\n />\r\n\r\n <Toolbar />\r\n <GroupingPanel showSortingControls={true} showGroupingControls></GroupingPanel>\r\n\r\n <PagingPanel\r\n pageSizes={100}\r\n messages={{\r\n showAll: \"Show all\",\r\n rowsPerPage: \"Rows per page\",\r\n info: \"{from} of {to} ({count} elements)\",\r\n }}\r\n />\r\n <ExportPanel startExport={startExport} />\r\n </Grid>\r\n <GridExporter\r\n ref={exporterRef}\r\n rows={data}\r\n columns={resultColumns}\r\n grouping={grouping}\r\n // groupSummaryItems={groupSummaryItems}\r\n selection={props.selection}\r\n onSave={onSave} // Ensure onSave is properly passed\r\n\r\n />\r\n\r\n </div>\r\n {imageDialogOpen &&\r\n <Dialog open={imageDialogOpen} onClose={handleDialogClose}>\r\n <DialogTitle>\r\n {description}\r\n </DialogTitle>\r\n <DialogContent>\r\n <DialogContentText>\r\n <img alt=\"\"\r\n style={{ maxWidth: \"100%\", maxHeight: \"calc(100vh - 64px)\" }}\r\n src={\"data:image/png;base64,\" + image}></img>\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions sx={{ padding: '0px 24px 10px 0px' }}>\r\n <Button autoFocus content=\"Close\" className={classes.closeButton} onClick={handleDialogClose}>Close</Button>\r\n </DialogActions>\r\n </Dialog>\r\n }\r\n\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n valueStyle: {\r\n whiteSpace: 'wrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: 'block',\r\n maxWidth: '250px'\r\n }, closeButton: {\r\n gap: \"8px\",\r\n backgroundColor: '#0B4097 !important',\r\n border: \"1px solid #0B4097 !important\",\r\n color: 'white !important',\r\n \"&:hover\": {\r\n background: \"white !important\",\r\n color: '#0B4097 !important',\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n tableFooter: {\r\n width: '100%'\r\n },\r\n footer: {\r\n display: 'flex',\r\n },\r\n tableHeadRow: {\r\n\r\n },\r\n tableHead: {\r\n height: '42px',\r\n borderRight: '2px solid #e6ecf0',\r\n },\r\n titleSearch: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n icons: {\r\n position: 'relative',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n imageStyle: {\r\n marginTop: '15px',\r\n height: '100px',\r\n width: '100px'\r\n },\r\n\r\n chip__grey: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#EDEDED\",\r\n color: \"#7C7C7C\"\r\n },\r\n chip__green: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#E2F8E0\",\r\n color: \"#3AB037\"\r\n },\r\n chip__orange: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#FEF1D6\",\r\n color: \"#E76F0F\"\r\n },\r\n\r\n chip__red: {\r\n width: \"fit-content\",\r\n height: \"24px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n padding: \"0px 12px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#FBE5E5\",\r\n color: \"#D84949\"\r\n },\r\n\r\n eventPrice: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n textAlign: \"right\",\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n padding: \"16px\",\r\n margin: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n textAlign: \"center\",\r\n margin: \"0px\",\r\n },\r\n}));\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport * as Actions from '../../../../Reducers/actions'\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Tooltip, IconButton } from '@mui/material';\r\n\r\nimport { Info } from 'lucide-react';\r\n\r\nimport { dataService } from \"../../../../Services/data/data.service\";\r\n\r\n\r\nfunction ProjectButton(props) {\r\n const navigate = useNavigate();\r\n\r\n const SaveAndRedirect = () => {\r\n\r\n navigate(`/modifyproject/${props.data.qrCode}`);\r\n\r\n }\r\n\r\n return (\r\n <div>\r\n <Tooltip title=\"Project information\" placement=\"top\" arrow>\r\n <IconButton style={{ borderRadius: 0 }} onClick={SaveAndRedirect}>\r\n <Info />\r\n </IconButton>\r\n </Tooltip>\r\n\r\n </div>\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n projects: state.projects,\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(ProjectButton);","import React, { useEffect, useState, createRef } from \"react\";\r\nimport {\r\n Chart, CommonSeriesSettings, Legend, ArgumentAxis, Label, Series, Tooltip, ValueAxis, Grid, MinorGrid, CommonPaneSettings, Export, Border\r\n , ZoomAndPan\r\n} from 'devextreme-react/chart';\r\nimport { controlTypes, externalApiTypes, timeLineVisualisationTypes } from '../../../../Config/constants';\r\nimport { parseNewDateToDDMMYYYnoTime } from '../../../../Utils/dateHelper';\r\n\r\nexport default function FilterListRow(props) {\r\n const [visualStartTime, setVisualStartTime] = useState(() => {\r\n const yesterday = new Date();\r\n yesterday.setDate(yesterday.getDate() - 1); // Subtract 1 day\r\n return yesterday;\r\n });\r\n const [visualEndTime, setVisualEndTime] = useState(new Date());\r\n const [labelData, setLabelData] = useState([]);\r\n\r\n const [visualisationType, setVisualisationType] = useState(timeLineVisualisationTypes.SPLIT);\r\n\r\n useEffect(() => {\r\n console.log(props);\r\n }, [props]);\r\n\r\n useEffect(() => {\r\n if (props.visualisationType) {\r\n setVisualisationType(props.visualisationType);\r\n };\r\n }, [props.visualisationType]);\r\n\r\n useEffect(() => {\r\n setLabelData([]);\r\n }, [props.timeRange, props.refresh, props.endValue, props.startValue]);\r\n\r\n function getRGB(c) {\r\n return parseInt(c, 16) || c;\r\n }\r\n\r\n function getsRGB(c) {\r\n return getRGB(c) / 255 <= 0.03928\r\n ? getRGB(c) / 255 / 12.92\r\n : Math.pow((getRGB(c) / 255 + 0.055) / 1.055, 2.4)\r\n }\r\n\r\n function getLuminance(hexColor) {\r\n if (hexColor.includes('#') && hexColor !== undefined) {\r\n return (\r\n 0.2126 * getsRGB(hexColor.substr(1, 2)) +\r\n 0.7152 * getsRGB(hexColor.substr(3, 2)) +\r\n 0.0722 * getsRGB(hexColor.substr(-2))\r\n )\r\n } else {\r\n return (\r\n 0.2126 * hexColor +\r\n 0.7152 * hexColor +\r\n 0.0722 * hexColor\r\n )\r\n }\r\n }\r\n\r\n function getContrast(f, b) {\r\n const L1 = getLuminance(f)\r\n const L2 = getLuminance(b)\r\n return (Math.max(L1, L2) + 0.05) / (Math.min(L1, L2) + 0.05)\r\n }\r\n\r\n function getTextColor(bgColor) {\r\n if (bgColor === null) {\r\n return '#ffffff';\r\n } else {\r\n const whiteContrast = getContrast(bgColor, '#ffffff')\r\n const blackContrast = getContrast(bgColor, '#000000')\r\n return whiteContrast > blackContrast ? '#ffffff' : '#000000';\r\n }\r\n }\r\n\r\n function customizeValueAxis(e) {\r\n if (e.valueText.includes('PM') || e.valueText.includes('AM')) {\r\n let date = new Date(e.value);\r\n let hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();\r\n let minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();\r\n let seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();\r\n let time = hours + \":\" + minutes + \":\" + seconds;\r\n let htmlItem = '';\r\n htmlItem += '<div style=\"padding-right: 5px\">' + time + '</div><br>';\r\n return htmlItem;\r\n }\r\n else {\r\n if (e.valueText.includes('s')) {\r\n let date = new Date(e.value);\r\n let hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();\r\n let minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();\r\n let seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();\r\n let time = hours + \":\" + minutes + \":\" + seconds;\r\n let htmlItem = '';\r\n htmlItem += '<div style=\"padding-right: 5px\">' + time + '</div><br>';\r\n return htmlItem;\r\n }\r\n else {\r\n let date = new Date(e.value);\r\n let strDay = date.toLocaleDateString('en-UK', {\r\n weekday: 'long',\r\n });\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Adjust for zero-based month\r\n const year = date.getFullYear();\r\n // Build the HTML string using template literals\r\n const htmlItem = `<div>${strDay}</div><div>${day}/${month}/${year}</div>`;\r\n return htmlItem;\r\n }\r\n }\r\n }\r\n\r\n function customizeTooltip(pointInfo) {\r\n let strTime = pointInfo.valueText;\r\n let insertedOn = pointInfo.point.data.insertedOn;\r\n let updatedOn = pointInfo.point.data.updatedOn;\r\n let times = strTime.split(' - ');\r\n let startTime = times[0];\r\n\r\n var date = parseNewDateToDDMMYYYnoTime(new Date(startTime));\r\n\r\n let startDateTime = new Date(pointInfo.point.data.startDate);\r\n let endDateTime = new Date(pointInfo.point.data.endDate);\r\n\r\n let endTime = times[1];\r\n let value = '';\r\n let strStartTime = convertToTimeString(startTime);\r\n let strEndTime = convertToTimeString(endTime);\r\n let time = '';\r\n let commentText = pointInfo.point.data.commentText;\r\n var commentImage;\r\n var commentImageFound = false;\r\n if (pointInfo.point.data.commentImage !== '' && pointInfo.point.data.commentImage !== null) {\r\n commentImageFound = true;\r\n commentImage = props.data.find(x => x.id === pointInfo.point.data.id).commentImage;\r\n }\r\n if (pointInfo.point.data.typeId === controlTypes.STOPWATCH || pointInfo.point.data.typeId === controlTypes.EXTERNALAPI && pointInfo.point.data.externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n strStartTime = convertToTimeString(startDateTime);\r\n strEndTime = convertToTimeString(endDateTime);\r\n\r\n\r\n value = pointInfo.point.data.measurementValue;\r\n time = strStartTime + ' - ' + strEndTime;\r\n } else {\r\n value = pointInfo.point.data.measurementValue;\r\n time = strStartTime;\r\n }\r\n let text = '';\r\n if (commentImageFound) {\r\n\r\n text += '<div style=\"min-height: 350px;\">';\r\n } else {\r\n text += '<div>';\r\n }\r\n text += `<div><b>Project:</b> ${pointInfo.point.data.projectName}</div>`;\r\n text += `<div><b>Company: </b>${pointInfo.point.data.companyName}</div>`;\r\n text += `<div><b>Registration point: </b>${pointInfo.point.data.resource}</div>`;\r\n text += `<div><b>Time: </b>${time}</div>`;\r\n text += `<div><b>Date: </b>${date}</div>`;\r\n text += `<div><b>Key: </b>${pointInfo.point.data.key !== null ? pointInfo.point.data.key : '-'}</div>`;\r\n\r\n if (pointInfo.point.data.commentText !== '' && pointInfo.point.data.commentText !== null) {\r\n text += `<div style=\"padding-bottom: 5px\"><b>Comment: </b>${commentText}</div>`;\r\n }\r\n if (commentImageFound) {\r\n text += `<div style=\"padding-bottom: 5px\"><b>Comment Image: </b></div>`;\r\n text += `<img style=\"border-radius: 5px; max-width: 100%; max-height: calc(20vh - 16px);\" src=\"data:image/png;base64,${commentImage}\"></img>`;\r\n }\r\n\r\n if (pointInfo.point.data.typeId === controlTypes.CAMERA && pointInfo.point.data.thumbnail !== null) {\r\n text += `<img src=\"data:image/png;base64,${pointInfo.point.data.thumbnail}\"></img>`;\r\n }\r\n text += '</div>';\r\n\r\n return { text: `${pointInfo.argumentText}<br/> ${time}`, html: text, visible: true }\r\n }\r\n\r\n function customizeLinearTooltip(pointInfo) {\r\n let strTime = pointInfo.valueText;\r\n let insertedOn = pointInfo.point.data.insertedOn;\r\n let updatedOn = pointInfo.point.data.updatedOn;\r\n let times = strTime.split(' - ');\r\n let startTime = times[0];\r\n\r\n var date = parseNewDateToDDMMYYYnoTime(new Date(startTime));\r\n\r\n let startDateTime = new Date(pointInfo.point.data.startDate);\r\n let endDateTime = new Date(pointInfo.point.data.endDate);\r\n\r\n let endTime = times[1];\r\n let value = '';\r\n let strStartTime = convertToTimeString(startTime);\r\n let strEndTime = convertToTimeString(endTime);\r\n let time = '';\r\n let commentText = pointInfo.point.data.commentText;\r\n var commentImage;\r\n var commentImageFound = false;\r\n if (pointInfo.point.data.commentImage !== '' && pointInfo.point.data.commentImage !== null) {\r\n commentImageFound = true;\r\n commentImage = props.data.find(x => x.id === pointInfo.point.data.id).commentImage;\r\n }\r\n if (pointInfo.point.data.typeId === controlTypes.STOPWATCH || pointInfo.point.data.typeId === controlTypes.EXTERNALAPI && pointInfo.point.data.externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n strStartTime = convertToTimeString(startDateTime);\r\n strEndTime = convertToTimeString(endDateTime);\r\n\r\n\r\n value = pointInfo.point.data.measurementValue;\r\n time = strStartTime + ' - ' + strEndTime;\r\n } else {\r\n value = pointInfo.point.data.measurementValue;\r\n time = strStartTime;\r\n }\r\n let text = '';\r\n if (commentImageFound) {\r\n\r\n text += '<div style=\"min-height: 350px;\">';\r\n } else {\r\n text += '<div>';\r\n }\r\n text += `<div><b>Value:</b> ${pointInfo.point.data.measurementValue}</div>`;\r\n text += `<div><b>Project:</b> ${pointInfo.point.data.projectName}</div>`;\r\n text += `<div><b>Company: </b>${pointInfo.point.data.companyName}</div>`;\r\n text += `<div><b>Registration point: </b>${pointInfo.point.data.resource}</div>`;\r\n text += `<div><b>Time: </b>${time}</div>`;\r\n text += `<div><b>Date: </b>${date}</div>`;\r\n text += `<div><b>Key: </b>${pointInfo.point.data.key !== null ? pointInfo.point.data.key : '-'}</div>`;\r\n\r\n if (pointInfo.point.data.commentText !== '' && pointInfo.point.data.commentText !== null) {\r\n text += `<div style=\"padding-bottom: 5px\"><b>Comment: </b>${commentText}</div>`;\r\n }\r\n if (commentImageFound) {\r\n text += `<div style=\"padding-bottom: 5px\"><b>Comment Image: </b></div>`;\r\n text += `<img style=\"border-radius: 5px; max-width: 100%; max-height: calc(20vh - 16px);\" src=\"data:image/png;base64,${commentImage}\"></img>`;\r\n }\r\n\r\n if (pointInfo.point.data.typeId === controlTypes.CAMERA && pointInfo.point.data.thumbnail !== null) {\r\n text += `<img src=\"data:image/png;base64,${pointInfo.point.data.thumbnail}\"></img>`;\r\n }\r\n text += '</div>';\r\n\r\n return { text: `${pointInfo.argumentText}<br/> ${time}`, html: text, visible: true }\r\n }\r\n\r\n function customizePoint(pointInfo) {\r\n if (pointInfo.data.typeId === controlTypes.CAMERA && pointInfo.data.thumbnail !== null) {\r\n return { image: { url: \"data:image/png;base64,\" + pointInfo.data.thumbnail, width: 50, height: 50 }, visible: true };\r\n } else {\r\n return { color: this.data.color, border: { color: 'grey', width: 1, visible: true, dashStyle: 'dot', opacity: 1 } }\r\n\r\n }\r\n }\r\n\r\n function convertToTimeString(time) {\r\n let dateTime = new Date(time);\r\n let strTime = dateTime.toTimeString();\r\n strTime = strTime.split(' ')[0];\r\n return strTime;\r\n }\r\n\r\n function customizeText(e) {\r\n let tempLabelObj = labelData;\r\n let tempObj = {};\r\n let text = '';\r\n let color = '';\r\n if (e.point.data.color !== undefined) {\r\n color = getTextColor(e.point.data.color);\r\n } else {\r\n color = 'black';\r\n }\r\n if (e.point.data.typeId === 2) {\r\n //Stopwatch\r\n // if (tempLabelObj.length === 0 || !tempLabelObj.some(x => x.id === e.point.data.id)) {\r\n if ((tempLabelObj.length === 0 || !tempLabelObj.some(x => x.id === e.point.data.id)) && e.point.data.measurementValue !== \"\") {\r\n tempObj = { id: e.point.data.id };\r\n tempLabelObj.push(tempObj);\r\n setLabelData(tempLabelObj);\r\n return `${text += '<div style=\"color: ' + color + '\">' + e.point.data.measurementValue + '</div>'}`;\r\n }\r\n } else {\r\n return `${text += '<div style=\"color: ' + color + '; background: none\">' + e.point.data.measurementValue + '</div>'}`;\r\n }\r\n }\r\n\r\n function measurementKeyLabel(e) {\r\n let tempLabelObj = labelData;\r\n let tempObj = {};\r\n let text = '';\r\n let color = '';\r\n if (e.point.data.color !== undefined) {\r\n color = getTextColor(e.point.data.color);\r\n } else {\r\n color = 'black';\r\n }\r\n // Check if measurementPoint is a key value\r\n if (e.point.data.typeId === 3) {\r\n return `${text += '<div style=\"color: ' + color + '; background: none\">' + e.point.data.measurementValue + '</div>'}`;\r\n } else if (e.point.data.key !== null) {\r\n return `${text += '<div style=\"color: ' + color + '; background: none\">' + e.point.data.key + '</div>'}`;\r\n } else {\r\n return `${text += '<div style=\"color: ' + color + '; background: none\">' + e.point.data.measurementValue + '</div>'}`;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setVisualStartTime(new Date(props.from.replace(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/, '$2/$1/$3')));\r\n setVisualEndTime(new Date(props.to.replace(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/, '$2/$1/$3')));\r\n }, [props.from, props.to])\r\n\r\n const chartRef = createRef();\r\n return (\r\n <React.Fragment>\r\n <Chart\r\n id=\"chart\"\r\n dataSource={props.data}\r\n rotated={true}\r\n customizePoint={customizePoint}\r\n // resolveLabelOverlapping=\"hide\"\r\n title={`Evaluate your events`}\r\n ref={chartRef}>\r\n <CommonSeriesSettings\r\n type=\"rangeBar\"\r\n value=\"measurementValue\"\r\n argumentField=\"description\"\r\n rangeValue1Field=\"startDate\"\r\n rangeValue2Field=\"endDate\"\r\n barOverlapGroup=\"description\">\r\n </CommonSeriesSettings>\r\n <Legend visible={false} />\r\n\r\n {/* SC: Series for the stopwatches */}\r\n <Series\r\n type={visualisationType === timeLineVisualisationTypes.SPLIT ? \"rangeBar\" : \"scatter\"}\r\n valueField=\"startDate\"\r\n argumentField={visualisationType === timeLineVisualisationTypes.SPLIT ? \"description\" : \"linearTimeline\"}\r\n // argumentField={\"description\"}\r\n >\r\n <Label position={'inside'} visible={true} indent={30} customizeText={visualisationType === timeLineVisualisationTypes.SPLIT ? customizeText : measurementKeyLabel} />\r\n </Series>\r\n {/* SC: Series for the counters */}\r\n <Series\r\n type=\"scatter\"\r\n valueField=\"startDate\"\r\n // argumentField=\"counterDescription\"\r\n argumentField={visualisationType === timeLineVisualisationTypes.SPLIT ? \"counterDescription\" : \"linearTimeline\"}\r\n data=\"measurementValue\">\r\n <Label position={'inside'} visible={true} customizeText={visualisationType === timeLineVisualisationTypes.SPLIT ? customizeText : measurementKeyLabel} />\r\n </Series>\r\n {/* SC: Series for the free text */}\r\n <Series\r\n type=\"scatter\"\r\n valueField=\"startDate\"\r\n argumentField={visualisationType === timeLineVisualisationTypes.SPLIT ? \"freetextDescription\" : \"linearTimeline\"}\r\n // argumentField=\"freetextDescription\"\r\n data=\"measurementValue\">\r\n <Label visible={true} customizeText={visualisationType === timeLineVisualisationTypes.SPLIT ? customizeText : measurementKeyLabel} />\r\n </Series>\r\n {/* SC: Series for the datalist */}\r\n <Series\r\n type=\"scatter\"\r\n valueField=\"startDate\"\r\n argumentField={visualisationType === timeLineVisualisationTypes.SPLIT ? \"datalistDescription\" : \"linearTimeline\"}\r\n // argumentField=\"datalistDescription\"\r\n data=\"measurementValue\">\r\n <Label location=\"left\" alignment=\"right\" visible={true} customizeText={visualisationType === timeLineVisualisationTypes.SPLIT ? customizeText : measurementKeyLabel} />\r\n </Series>\r\n {/* SC: Series for the image */}\r\n <Series\r\n type=\"scatter\"\r\n valueField=\"startDate\"\r\n argumentField={visualisationType === timeLineVisualisationTypes.SPLIT ? \"cameraDescription\" : \"linearTimeline\"}\r\n // argumentField=\"cameraDescription\"\r\n data=\"measurementValue\">\r\n </Series>\r\n {/* SC: Series for the ExternalApiValues */}\r\n <Series\r\n type=\"scatter\"\r\n valueField=\"startDate\"\r\n argumentField={visualisationType === timeLineVisualisationTypes.SPLIT ? \"externalApiDescription\" : \"linearTimeline\"}\r\n // argumentField=\"externalApiDescription\"\r\n data=\"measurementValue\">\r\n <Label visible={true} customizeText={visualisationType === timeLineVisualisationTypes.SPLIT ? customizeText : measurementKeyLabel} />\r\n </Series>\r\n <Tooltip\r\n enabled={true}\r\n customizeTooltip={visualisationType === timeLineVisualisationTypes.SPLIT ? customizeTooltip : customizeLinearTooltip}\r\n />\r\n <ValueAxis\r\n visualRange={{\r\n startValue: visualStartTime.toISOString(),\r\n endValue: visualEndTime.toISOString()\r\n }}\r\n >\r\n <Grid visible={true} />\r\n <Label customizeText={customizeValueAxis} />\r\n </ValueAxis>\r\n <ArgumentAxis tickInterval={5}\r\n visualRange={{\r\n startValue: visualStartTime.toISOString(),\r\n endValue: visualEndTime.toISOString()\r\n }}\r\n >\r\n <Grid visible={true} />\r\n <MinorGrid visible={true} />\r\n </ArgumentAxis>\r\n\r\n <Export enabled={true} />\r\n\r\n <CommonPaneSettings>\r\n <Border visible={true} />\r\n </CommonPaneSettings>\r\n <ZoomAndPan\r\n panKey=\"shift\"\r\n argumentAxis=\"none\"\r\n valueAxis=\"both\"\r\n allowMouseWheel={true}\r\n dragToZoom=\"true\"\r\n />\r\n\r\n </Chart>\r\n </React.Fragment >\r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport RangeSelector, { Size, Scale, SliderMarker, MinorTick } from 'devextreme-react/range-selector';\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\r\nimport { Tooltip, IconButton } from '@mui/material';\r\n// import TimeRange from 'react-timeline-range-slider'\r\nfunction TimeRangeChart(props) {\r\n const [key, setKey] = useState(0);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setKey(prevKey => prevKey + 1);\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n const updateVisualRange = (e) => {\r\n //Update date range values (This will select and deselect all measurements between these dates)\r\n // if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(props.timeRangeDates)) {\r\n props.updateDataRange(e.value, false);\r\n\r\n // } \r\n }\r\n const handlePreviousDay = () => {\r\n var dupDateRange = JSON.parse(JSON.stringify(props.timeRangeDates));\r\n var dupFromDate = new Date(dupDateRange.fromDate);\r\n var tempToDate = new Date(dupDateRange.fromDate);\r\n\r\n var tempFromDate = new Date(dupFromDate.getTime() - 86401000);\r\n props.updateDataRange([tempFromDate, tempToDate], true);\r\n\r\n\r\n }\r\n const handleNextDay = () => {\r\n var dupDateRange = JSON.parse(JSON.stringify(props.timeRangeDates));\r\n var dupToDate = new Date(dupDateRange.toDate);\r\n var tempFromDate = new Date(dupDateRange.toDate);\r\n var tempToDate = new Date(dupToDate.getTime() + 86401000);\r\n props.updateDataRange([tempFromDate, tempToDate], true);\r\n\r\n }\r\n const dateFormatter = (date) => {\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n return `${(\"0\" + (date.getDate())).slice(-2)}/${(\"0\" + (date.getMonth() + 1)).slice(-2)}/${date.getFullYear()} ${(\"0\" + (hour)).slice(-2)}:${(\"0\" + (minute)).slice(-2)}`;\r\n\r\n\r\n //let tempTomorrow = new Date(date.getDate() + 86400000);\r\n }\r\n\r\n return (\r\n\r\n <React.Fragment>\r\n {props.timeRangeDates !== null &&\r\n <div style={{ display: 'flex', width: '100%' }}>\r\n <div style={{ marginTop: 'auto', marginBottom: 'auto' }}>\r\n <Tooltip title=\"Previous 24 hours\" arrow>\r\n <IconButton style={{ backgroundColor: \"#C3996B\", color: \"white\" }} sx={{ boxShadow: 3 }} onClick={handlePreviousDay} size={\"small\"}>\r\n <ChevronLeft fontSize=\"inherit\" />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <div style={{ width: '100%' }}>\r\n <RangeSelector key={key} id=\"range-selector\" selectedRangeColor=\"#C3996B\" onValueChanged={(e) => updateVisualRange(e)} value={[props.timeRangeDates.fromDate, props.timeRangeDates.toDate]}>\r\n <Scale startValue={props.timeRangeDates.startDate} endValue={props.timeRangeDates.endDate} tickInterval={\"hours\"} >\r\n <MinorTick visible={false} />\r\n </Scale>\r\n <SliderMarker format={dateFormatter} />\r\n <Size height={50} />\r\n </RangeSelector>\r\n </div>\r\n <div style={{ marginTop: 'auto', marginBottom: 'auto' }}>\r\n <Tooltip title=\"Next 24 hours\" arrow>\r\n <IconButton style={{ backgroundColor: \"#C3996B\", color: \"white\" }} sx={{ boxShadow: 3 }} onClick={handleNextDay} size={\"small\"}>\r\n <ChevronRight fontSize=\"inherit\" />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n }\r\n </React.Fragment>\r\n )\r\n} export default TimeRangeChart;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { CSVLink } from \"react-csv\";\r\nimport { Spin } from \"react-cssfx-loading\";\r\nimport TitlePage from \"../../Shared/TitlePage\";\r\nimport DevExDataTable from \"./Components/DevExDataTable\";\r\nimport { dataService } from \"../../../Services/data/data.service\";\r\nimport MyDateTimePicker from \"../../Shared/DateSelection/DateTimePicker\";\r\nimport { valueTypeCodes, resultColumns, controlTypes, timeLineVisualisationTypes, externalApiTypes } from '../../../Config/constants';\r\nimport TimeLineChart from './Components/TimeLineChart'\r\nimport TimeRangeChart from './Components/TimeRangeChart'\r\nimport DatePickerText from \"../../Shared/DateSelection/DatePickerText\";\r\nimport { parseNewDateToYYMMDDDash, parseNewDateToDDMMYYYWithoutSeconds } from '../../../Utils/dateHelper';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ChevronLeft, ChevronDown, RefreshCcw, MapPin, Factory } from 'lucide-react';\r\nimport { toast } from 'react-toastify';\r\nimport { Divider, Button, ButtonGroup, Typography, Collapse, IconButton, Box, Tooltip } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\n\r\n// Components\r\nimport BoolToggle from \"../../Shared/Buttons/BoolToggle\";\r\n\r\nconst ExpandMore = styled((props) => {\r\n const { expand, ...other } = props;\r\n return <IconButton {...other} />;\r\n})(({ theme, expand }) => ({\r\n \"&:hover\": {\r\n background: \"rgba(195, 153, 107, 0.85) !important\",\r\n },\r\n padding: 0,\r\n color: 'white',\r\n transform: !expand ? 'rotate(180deg)' : 'rotate(0deg)',\r\n marginLeft: 'auto',\r\n transition: theme.transitions.create('transform', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n}));\r\n\r\nfunction ResultsPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const { projectQr } = useParams(); //Project QR from URL\r\n const [project, setProject] = useState(null);\r\n const [measurementRows, setMeasurementRows] = useState([]);\r\n const [chartRows, setChartRows] = useState([]);\r\n\r\n const [showLinearTimeline, setShowLinearTimeline] = useState(false);\r\n\r\n const [originalMeasurementRows, setOriginalMeasurementRows] = useState([]); // Original copy of measurement rows - not to be overwritten\r\n const GetUserId = props.Login.userid;\r\n const [types, setTypes] = useState([]);\r\n const [selectedProject, setSelectedProject] = useState(false);\r\n const [timeLineData, setChartData] = useState({});\r\n const [timeRangeData, setTimeRangeData] = useState([]);\r\n const [exportActive, setExportActive] = useState(false);\r\n const [location, setLocation] = useState('');\r\n const [projectName, setProjectName] = useState('');\r\n const [openSearch, setOpenSearch] = useState(false);\r\n const [refresh, setRefresh] = useState(false);\r\n const anchorRef = React.useRef(null);\r\n const [isLoading, setLoading] = useState(true);\r\n const [timeRangeDates, setTimeRangeDates] = useState({ fromDate: new Date(Date.now() - 86400000), startDate: new Date(Date.now() - 86400000), toDate: new Date(Date.now()), endDate: new Date(Date.now()) });\r\n\r\n const [filtersCopy, setFiltersCopy] = useState(null); // Copy of filters set by DevExDataTable\r\n\r\n const chartDummyData = [\r\n {\r\n \"commentText\": \"Process started\",\r\n \"commentImage\": \"\",\r\n \"checked\": true,\r\n \"id\": 6041,\r\n \"startDate\": \"2024-12-03T10:12:45.123Z\",\r\n \"endDate\": \"2024-12-03T10:32:45.000Z\",\r\n \"companyName\": \"FictiefBedrijf\",\r\n \"measurementValue\": \"00:20:00\",\r\n \"type\": \"Stopwatch\",\r\n \"projectName\": \"Project Alpha\",\r\n \"resource\": \"Machine 2387\",\r\n \"typeId\": 2,\r\n \"key\": null,\r\n \"counter\": null,\r\n \"insertedOn\": \"2024-12-03T11:12:45.123\",\r\n \"updatedOn\": \"2024-12-03T11:32:45\",\r\n \"description\": \"Process start timer\",\r\n \"color\": \"#ff6600\",\r\n \"chartType\": \"rangeBar\",\r\n \"argumentField\": \"description\",\r\n \"detailId\": 3501\r\n },\r\n {\r\n \"commentText\": null,\r\n \"commentImage\": null,\r\n \"checked\": true,\r\n \"id\": 6040,\r\n \"startDate\": \"2024-12-03T10:05:30.456Z\",\r\n \"endDate\": \"2024-12-03T10:25:30.000Z\",\r\n \"companyName\": \"FictiefBedrijf\",\r\n \"measurementValue\": \"00:20:00\",\r\n \"type\": \"Stopwatch\",\r\n \"projectName\": \"Project Beta\",\r\n \"resource\": \"Machine 1243\",\r\n \"typeId\": 2,\r\n \"key\": null,\r\n \"counter\": null,\r\n \"insertedOn\": \"2024-12-03T11:05:30.456\",\r\n \"updatedOn\": \"2024-12-03T11:25:30\",\r\n \"description\": \"Pause timer\",\r\n \"color\": \"#00cc00\",\r\n \"chartType\": \"rangeBar\",\r\n \"argumentField\": \"description\",\r\n \"detailId\": 3502\r\n },\r\n {\r\n \"commentText\": \"Error encountered\",\r\n \"commentImage\": \"\",\r\n \"checked\": true,\r\n \"id\": 6039,\r\n \"startDate\": \"2024-12-03T09:55:00.123Z\",\r\n \"endDate\": \"2024-12-03T10:55:00.000Z\",\r\n \"companyName\": \"FictiefBedrijf\",\r\n \"measurementValue\": \"01:00:00\",\r\n \"type\": \"Stopwatch\",\r\n \"projectName\": \"Project Gamma\",\r\n \"resource\": \"Machine 3562\",\r\n \"typeId\": 2,\r\n \"key\": null,\r\n \"counter\": null,\r\n \"insertedOn\": \"2024-12-03T10:55:00.123\",\r\n \"updatedOn\": \"2024-12-03T11:55:00\",\r\n \"description\": \"Error recovery timer\",\r\n \"color\": \"#ff0000\",\r\n \"chartType\": \"rangeBar\",\r\n \"argumentField\": \"description\",\r\n \"detailId\": 3503\r\n },\r\n {\r\n \"commentText\": \"All systems go\",\r\n \"commentImage\": \"\",\r\n \"checked\": true,\r\n \"id\": 6038,\r\n \"startDate\": \"2024-12-03T09:45:30.223Z\",\r\n \"endDate\": \"2024-12-03T10:45:30.000Z\",\r\n \"companyName\": \"FictiefBedrijf\",\r\n \"measurementValue\": \"01:00:00\",\r\n \"type\": \"Stopwatch\",\r\n \"projectName\": \"Project Delta\",\r\n \"resource\": \"Machine 4589\",\r\n \"typeId\": 2,\r\n \"key\": null,\r\n \"counter\": null,\r\n \"insertedOn\": \"2024-12-03T10:45:30.223\",\r\n \"updatedOn\": \"2024-12-03T11:45:30\",\r\n \"description\": \"System check timer\",\r\n \"color\": \"#33cc33\",\r\n \"chartType\": \"rangeBar\",\r\n \"argumentField\": \"description\",\r\n \"detailId\": 3504\r\n },\r\n {\r\n \"commentText\": null,\r\n \"commentImage\": null,\r\n \"checked\": true,\r\n \"id\": 6037,\r\n \"startDate\": \"2024-12-03T09:40:15.987Z\",\r\n \"endDate\": \"2024-12-03T09:55:15.000Z\",\r\n \"companyName\": \"FictiefBedrijf\",\r\n \"measurementValue\": \"00:15:00\",\r\n \"type\": \"Stopwatch\",\r\n \"projectName\": \"Project Epsilon\",\r\n \"resource\": \"Machine 5291\",\r\n \"typeId\": 2,\r\n \"key\": null,\r\n \"counter\": null,\r\n \"insertedOn\": \"2024-12-03T10:40:15.987\",\r\n \"updatedOn\": \"2024-12-03T10:55:15\",\r\n \"description\": \"Startup timer\",\r\n \"color\": \"#0099cc\",\r\n \"chartType\": \"rangeBar\",\r\n \"argumentField\": \"description\",\r\n \"detailId\": 3505\r\n },\r\n {\r\n \"commentText\": \"System failure\",\r\n \"commentImage\": \"\",\r\n \"checked\": true,\r\n \"id\": 6036,\r\n \"startDate\": \"2024-12-03T09:25:30.135Z\",\r\n \"endDate\": \"2024-12-03T13:25:30.000Z\",\r\n \"companyName\": \"FictiefBedrijf\",\r\n \"measurementValue\": \"04:00:00\",\r\n \"type\": \"Stopwatch\",\r\n \"projectName\": \"Project Zeta\",\r\n \"resource\": \"Machine 6123\",\r\n \"typeId\": 2,\r\n \"key\": null,\r\n \"counter\": null,\r\n \"insertedOn\": \"2024-12-03T10:25:30.135\",\r\n \"updatedOn\": \"2024-12-03T14:25:30\",\r\n \"description\": \"System downtime\",\r\n \"color\": \"#ff3333\",\r\n \"chartType\": \"rangeBar\",\r\n \"argumentField\": \"description\",\r\n \"detailId\": 3506\r\n }\r\n ];\r\n\r\n //DevExData\r\n const [selection, setSelection] = useState([]);\r\n\r\n useEffect(() => {\r\n var apiCalls = [];\r\n var tempMeasurementRows;\r\n\r\n var objProject;\r\n var objTypes;\r\n if (projectQr) {\r\n //If we have a projectQR --> Get the measurements for that specific project\r\n apiCalls = [\r\n dataService.getMeasurementsByQrCode(projectQr),\r\n dataService.getTypes(),\r\n dataService.getProjectByProjectQr(projectQr),\r\n\r\n ];\r\n } else {\r\n //We don't have a project, so just get all measurements for the last 24h\r\n apiCalls = [\r\n dataService.getMeasurementsByUserIdDate(props.Login.userid, parseNewDateToYYMMDDDash(timeRangeDates.fromDate), parseNewDateToYYMMDDDash(timeRangeDates.toDate)),\r\n dataService.getTypes()\r\n ];\r\n }\r\n\r\n //Execute the api-calls\r\n Promise.all(apiCalls).then((results) => {\r\n var measurementResult = results[0];\r\n var typeResult = results[1];\r\n var projectResult;\r\n //Check if we have project-data\r\n if (projectQr) {\r\n projectResult = results[2];\r\n objProject = projectResult;\r\n }\r\n objProject = projectResult;\r\n objTypes = typeResult.sort((a, b) => a.description.localeCompare(b.description));\r\n\r\n var element = getLatestStartTimeElement(measurementResult);\r\n var from = timeRangeDates.fromDate;\r\n var to = timeRangeDates.toDate;\r\n\r\n //If a project is selected only display the elements that took place in the last 24h of the last event\r\n if (projectQr && (element !== null && element !== undefined)) {\r\n to = new Date(element.startTime);\r\n from = new Date(element.startTime);\r\n from.setHours(from.getHours() - 24);\r\n const formattedDate = from.toString();\r\n from = formattedDate;\r\n setTimeRangeDates({ fromDate: new Date(from), startDate: new Date(from), toDate: to, endDate: to });\r\n }\r\n\r\n console.log(measurementResult);\r\n\r\n tempMeasurementRows = (measurementResult.map((y, index) => ({\r\n index: index,\r\n checked: checkBetweenDate(new Date(y.startTime), new Date(from), new Date(to)),\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceId: y.resourceId,\r\n resourceName: y.resourceName,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopTime,\r\n insertedOn: y.startTime,\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n valueTypeId: y.valueTypeId,\r\n valueType: getValueType(y.valueTypeId),\r\n keyValue: y.keyValue\r\n })));\r\n\r\n console.log(tempMeasurementRows);\r\n\r\n\r\n const selectionPromise = new Promise(resolve => {\r\n const indexes = tempMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n setExportActive(true);\r\n resolve();\r\n });\r\n\r\n const projectPromise = new Promise(resolve => {\r\n if (projectQr) {\r\n setProject(objProject);\r\n setSelectedProject(true);\r\n } else {\r\n setSelectedProject(false);\r\n }\r\n resolve();\r\n\r\n });\r\n\r\n const typesPromise = new Promise(resolve => {\r\n setTypes(objTypes);\r\n resolve();\r\n });\r\n\r\n const measurementsPromise = new Promise(resolve => {\r\n if (tempMeasurementRows !== undefined && tempMeasurementRows !== null) {\r\n setMeasurementRows(tempMeasurementRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)));\r\n var data = chartData(tempMeasurementRows.flat());\r\n setChartRows(data);\r\n setOriginalMeasurementRows(tempMeasurementRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)))\r\n }\r\n resolve();\r\n });\r\n\r\n // Wait for all state updates to complete before setting loading to false\r\n Promise.all([\r\n selectionPromise,\r\n projectPromise,\r\n typesPromise,\r\n measurementsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n //All api-calls are finished, start setting states\r\n })\r\n }, [projectQr, props.Login.userid]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const getValueType = (id) => {\r\n switch (id) {\r\n case valueTypeCodes.VA:\r\n return 'Value added';\r\n case valueTypeCodes.NVA:\r\n return 'No value added';\r\n case valueTypeCodes.W:\r\n return 'Waste';\r\n default:\r\n return 'Unknown'\r\n }\r\n }\r\n\r\n const checkBetweenDate = (date, fromDate, toDate) => {\r\n //check if the date variable is between from- and todate\r\n return date >= fromDate && date <= toDate;\r\n }\r\n\r\n const getLatestStartTimeElement = (data) => {\r\n //We check the latest measurement -> this is how we will decide from where to start the 'last 24h'\r\n if (data !== null && data.length > 0) {\r\n return data.reduce((latest, current) => {\r\n const latestTime = new Date(latest.startTime);\r\n const currentTime = new Date(current.startTime);\r\n\r\n // Check if current startTime is later than the latest\r\n return currentTime > latestTime ? current : latest;\r\n });\r\n } else {\r\n return null;\r\n }\r\n\r\n };\r\n\r\n const limitString = (str, limit) => {\r\n if (str.length > limit) {\r\n return str.substring(0, limit) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n const chartData = (data) => {\r\n let tempdata = [];\r\n let tempObj = {};\r\n\r\n data.forEach((x => {\r\n let startDate = new Date(x.startTime);\r\n let tempEndDate = new Date(x.startTime);\r\n let insertedOn = new Date(x.startTime);\r\n let updatedOn = new Date(x.startTime);\r\n\r\n if (x.typeId === controlTypes.STOPWATCH) {\r\n if (x.updatedOn !== undefined) {\r\n updatedOn = x.updatedOn;\r\n }\r\n if (x.stopTime !== null && x.stopTime.length > 0) {\r\n tempEndDate = new Date(x.stopTime);\r\n\r\n }\r\n if (x.insertedOn !== undefined) {\r\n insertedOn = x.insertedOn;\r\n }\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Stopwatch', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.dateValue, key: x.keyValue, counter: null, insertedOn: insertedOn, updatedOn: updatedOn, description: limitString(x.description, 15), color: x.color, chartType: 'rangeBar', argumentField: 'description', detailId: x.detailId, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.COUNTER) {\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Counter', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.integerValue, key: x.keyValue, counter: x.measurementValue, counterDescription: limitString(x.description, 15), color: x.color, chartType: 'scatter', argumentField: \"counterDescription\", linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.FREETEXT) {\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Free text', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, value: x.textValue, key: x.keyValue, counter: null, freetextDescription: limitString(x.description, 15), color: x.color, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.DATALIST) {\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.color, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.CAMERA) {\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Image', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, image: x.imageId, thumbnail: x.thumbnail, cameraDescription: limitString(x.description, 15), counter: null, color: x.color, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.SCANNER) {\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'Data list', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, datalistDescription: limitString(x.description, 15), counter: null, color: x.color, linearTimeline: \"\" };\r\n } else if (x.typeId === controlTypes.EXTERNALAPI) {\r\n tempObj = { commentText: x.commentText, commentImage: x.commentImage, checked: x.checked, id: x.id, startDate: startDate, endDate: tempEndDate, companyName: x.companyName, measurementValue: x.measurementValue, type: 'External API', projectName: x.projectName, resource: x.resourceName, typeId: x.typeId, key: x.keyValue, value: x.textValue, externalApiDescription: limitString(x.description, 15), counter: null, color: x.color, linearTimeline: \"\" };\r\n }\r\n\r\n tempdata.push(tempObj);\r\n }));\r\n tempdata = tempdata.filter(x => x.checked);\r\n return tempdata;\r\n }\r\n\r\n const getMeasurementValue = (TypeId, externalApiTypeId, Text, Int, Time, DataListValue, ImageLink, ExternalApiValue) => {\r\n switch (TypeId) {\r\n case 1: return Int;\r\n case 2:\r\n if (Int > 0) {\r\n return Time;\r\n } else {\r\n return '';\r\n }\r\n case 3: return Text;\r\n case 4: return DataListValue;\r\n case 5: return Text;\r\n case 6: return ImageLink;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n if (Int > 0) {\r\n return Time;\r\n } else {\r\n return '';\r\n }\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return Text;\r\n }\r\n return Text;\r\n default: return Int;\r\n // eslint-disable-next-line \r\n }\r\n };\r\n\r\n const getCommentText = (typeId, externalApiTypeId, text, commentText) => {\r\n switch (typeId) {\r\n case 1: return commentText;\r\n case 2: return commentText;\r\n case 3: return commentText;\r\n case 4: return commentText;\r\n case 5: return commentText;\r\n case 6: return commentText;\r\n case 7:\r\n if (externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n return text;\r\n } else if (externalApiTypeId === externalApiTypes.TEXT) {\r\n return commentText;\r\n }\r\n return commentText;\r\n default: return ''\r\n // eslint-disable-next-line\r\n }\r\n }\r\n\r\n const headers = [\r\n { label: \"Customer\", key: \"companyName\" },\r\n { label: \"Project name\", key: \"projectName\" },\r\n { label: \"Registration point\", key: \"resourceName\" },\r\n { label: \"Description\", key: \"description\" },\r\n { label: \"Value Type\", key: \"valueTypeId\" },\r\n { label: \"Value\", key: \"measurementValue\" },\r\n { label: \"Key Value\", key: \"keyValue\" },\r\n { label: \"Start Time\", key: \"startTime\" },\r\n { label: \"Running\", key: \"running\" },\r\n { label: \"Comment\", key: \"commentText\" },\r\n ]\r\n\r\n const updateDataRange = (data, changeDay) => {\r\n let tempToDate = new Date(data[1]);\r\n let tempFromDate = new Date(data[0]);\r\n var duplicateDateRange = JSON.parse(JSON.stringify(timeRangeDates));\r\n\r\n var objNewTimeRangeDate;\r\n\r\n if (changeDay) {\r\n //IF it was a 'changeDay' action we start again with a 24h range\r\n objNewTimeRangeDate = { startDate: new Date(tempFromDate), fromDate: new Date(tempFromDate), toDate: new Date(tempToDate), endDate: new Date(tempToDate) };\r\n\r\n } else {\r\n //If slider was changed\r\n objNewTimeRangeDate = { startDate: new Date(duplicateDateRange.startDate), fromDate: new Date(tempFromDate), toDate: new Date(tempToDate), endDate: new Date(duplicateDateRange.endDate) };\r\n }\r\n\r\n if (projectQr !== undefined && projectQr !== null && projectQr !== \"\") {\r\n let tempRows = JSON.parse(JSON.stringify(originalMeasurementRows));\r\n\r\n //IF we are on a specific project-page; then we should just check the elements that are needed\r\n tempRows.forEach(x => {\r\n if ((new Date(x.startTime) >= tempFromDate && new Date(x.startTime) <= tempToDate) || (x.stopTime !== null && x.stopTime !== '' && (new Date(x.stopTime) >= tempFromDate && new Date(x.stopTime) <= tempToDate))) {\r\n x.checked = true;\r\n } else {\r\n x.checked = false;\r\n }\r\n });\r\n\r\n const selectionPromise = new Promise(resolve => {\r\n const indexes = tempRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n setExportActive(true);\r\n resolve();\r\n });\r\n\r\n const measurementsPromise = new Promise(resolve => {\r\n if (tempRows !== undefined && tempRows !== null) {\r\n setMeasurementRows(tempRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)));\r\n var data = chartData(tempRows.flat());\r\n setChartRows(data);\r\n }\r\n resolve();\r\n });\r\n\r\n Promise.all([\r\n selectionPromise,\r\n measurementsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n } else {\r\n var tempMeasurementRows = [];\r\n //No project selected, fetch all measurements that you might need\r\n dataService.getMeasurementsByUserIdDate(props.Login.userid, parseNewDateToYYMMDDDash(objNewTimeRangeDate.startDate), parseNewDateToYYMMDDDash(objNewTimeRangeDate.endDate)).then(results => {\r\n tempMeasurementRows = (results.map((y, index) => ({\r\n index: index,\r\n checked: checkBetweenDate(new Date(y.startTime), new Date(objNewTimeRangeDate.fromDate), new Date(objNewTimeRangeDate.toDate)),\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceId: y.resourceId,\r\n resourceName: y.resourceName,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopTime,\r\n insertedOn: y.startTime,\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n valueTypeId: y.valueTypeId,\r\n keyValue: y.keyValue,\r\n valueType: getValueType(y.valueTypeId),\r\n })));\r\n\r\n const selectionPromise = new Promise(resolve => {\r\n const indexes = tempMeasurementRows.map((item, index) => item.checked ? index : -1).filter(index => index !== -1);\r\n setSelection(indexes);\r\n setExportActive(true);\r\n resolve();\r\n });\r\n const measurementsPromise = new Promise(resolve => {\r\n if (tempMeasurementRows !== undefined && tempMeasurementRows !== null) {\r\n setMeasurementRows(tempMeasurementRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)));\r\n var data = chartData(tempMeasurementRows.flat());\r\n setChartRows(data);\r\n setOriginalMeasurementRows(tempMeasurementRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)))\r\n }\r\n resolve();\r\n });\r\n\r\n // Wait for all state updates to complete before setting loading to false\r\n Promise.all([\r\n selectionPromise,\r\n measurementsPromise,\r\n ]).then(() => {\r\n setLoading(false); // Only set loading to false after all updates\r\n });\r\n\r\n }).catch((error) => {\r\n toast.error(`A problem occured while fetching the data`, { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n console.log('Error: ', error)\r\n }).finally(() => {\r\n // setMeasurementRows(tempMeasurementRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)));\r\n setExportActive(true);\r\n // chartData(tempMeasurementRows.flat());\r\n\r\n setRefresh(!refresh);\r\n });\r\n }\r\n\r\n //If the dateRanges are different --> setTimeRangeDates (to prevent that we set to many states)\r\n if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(timeRangeDates)) {\r\n setTimeRangeDates(objNewTimeRangeDate);\r\n }\r\n }\r\n\r\n const setTheDate = (event) => {\r\n var yesterday = new Date(new Date(event));\r\n yesterday.setDate(yesterday.getDate() + 1);\r\n setTimeRangeDates({ fromDate: new Date(event), startDate: new Date(event), toDate: yesterday, endDate: yesterday });\r\n }\r\n\r\n const handleOpenSearch = () => {\r\n setOpenSearch(!openSearch);\r\n }\r\n\r\n const onSelectionChange = (e) => {\r\n var tempRows = JSON.parse(JSON.stringify(measurementRows));\r\n const selectedIds = e.map(index => tempRows[index].id);\r\n setSelection(e);\r\n const updatedArray = tempRows.map(item =>\r\n selectedIds.includes(item.id)\r\n ? { ...item, checked: true }\r\n : { ...item, checked: false }\r\n );\r\n\r\n var data = chartData(updatedArray.flat());\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n\r\n setChartRows(data);\r\n }\r\n }\r\n\r\n\r\n\r\n const onFiltersChange = (filters) => {\r\n if (filters !== null && filters !== undefined) {\r\n let varFilteredResults = JSON.parse(JSON.stringify(originalMeasurementRows)); // Clone original rows\r\n varFilteredResults.forEach((x) => (x.checked = true)); // Reset checked state\r\n // varFilteredResults.filter(vfr => vfr.)\r\n\r\n console.log(filters);\r\n\r\n filters.forEach((filter) => {\r\n switch (filter.columnName) {\r\n case \"companyName\":\r\n varFilteredResults\r\n .filter((x) => !x.companyName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"projectName\":\r\n varFilteredResults\r\n .filter((x) => !x.projectName.toLowerCase().includes(filter.value.toLowerCase()))\r\n .forEach((x) => (x.checked = false));\r\n break;\r\n case \"resourceName\":\r\n if (varFilteredResults.some(x => !x.resourceName.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n varFilteredResults.filter(vfr => !vfr.resourceName.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"description\":\r\n if (varFilteredResults.some(x => !x.description.toLowerCase().includes(filter.value.toLowerCase()))) {\r\n varFilteredResults.filter(vfr => !vfr.description.toLowerCase().includes(filter.value.toLowerCase())).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n break;\r\n case \"valueType\":\r\n var valueType = null;\r\n var unknown = \"unknown\";\r\n var waste = \"waste\";\r\n var valueAdded = \"value added\";\r\n var noValueAdded = \"no value added\";\r\n\r\n if (waste.includes(filter.value.toLowerCase())) {\r\n valueType = valueTypeCodes.W;\r\n } else if (valueAdded.includes(filter.value.toLowerCase()) && !filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.VA;\r\n } else if (noValueAdded.includes(filter.value.toLowerCase()) && filter.value.toLowerCase().includes('n')) {\r\n valueType = valueTypeCodes.NVA;\r\n }\r\n if (unknown.includes(filter.value.toLowerCase())) {\r\n valueType = \"unknown\";\r\n }\r\n if (valueType !== null) {\r\n if (valueType === \"unknown\") {\r\n varFilteredResults.filter(x => x.valueTypeId !== null).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n } else {\r\n varFilteredResults.filter(x => x.valueTypeId !== valueType).map((vfr) => {\r\n vfr.checked = false;\r\n });\r\n }\r\n }\r\n break;\r\n case \"keyValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"commentText\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.commentText && x.commentText.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.commentText && vfr.commentText.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n };\r\n break;\r\n case \"startTime\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.keyValue && x.keyValue.toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.keyValue && vfr.keyValue.toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n break;\r\n case \"measurementValue\":\r\n if (filter.value !== '' && filter.value !== undefined && filter.value !== null) {\r\n if (varFilteredResults.some(x => !(x.measurementValue && x.measurementValue !== undefined && x.measurementValue !== \"\" && x.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase())))) {\r\n varFilteredResults.filter(vfr => !(vfr.measurementValue && vfr.measurementValue !== undefined && vfr.measurementValue !== \"\" && vfr.measurementValue.toString().toLowerCase().includes(filter.value.toLowerCase()))).map((vfr) => {\r\n vfr.checked = false;\r\n })\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n ;\r\n }\r\n\r\n });\r\n\r\n var data = chartData(varFilteredResults.flat());\r\n if (JSON.parse(JSON.stringify(data)) !== JSON.parse(JSON.stringify(chartRows))) {\r\n\r\n setChartRows(data);\r\n }\r\n\r\n const indexes = varFilteredResults\r\n .map((item, index) => (item.checked ? index : -1))\r\n .filter((index) => index !== -1);\r\n setSelection(indexes);\r\n }\r\n };\r\n\r\n\r\n const handleSearch = () => {\r\n let TempMeasurementRows;\r\n dataService.getMeasurementsByUserIdDateLocationName(GetUserId, parseNewDateToYYMMDDDash(timeRangeDates.fromDate), parseNewDateToYYMMDDDash(timeRangeDates.toDate), location, projectName).then(results => {\r\n TempMeasurementRows = (results.map(\r\n y => ({\r\n checked: true,\r\n projectId: y.projectId,\r\n toDate: y.toDate,\r\n fromDate: y.fromDate,\r\n color: y.color,\r\n id: y.id,\r\n typeId: y.typeId,\r\n companyId: y.companyId,\r\n qrCode: y.qrCode,\r\n companyName: y.companyName,\r\n detailId: y.projectDetailId,\r\n projectName: y.projectName,\r\n resourceId: y.resourceId,\r\n resourceName: y.resourceName,\r\n description: y.description,\r\n startTime: y.startTime,\r\n stopTime: y.stopTime,\r\n insertedOn: y.startTime,\r\n updatedOn: y.stopTime,\r\n measurementSessionId: y.measurementSessionId,\r\n measurementValue: getMeasurementValue(y.typeId, y.externalApiTypeId, y.textValue, y.integerValue, y.dateValue, y.dataListValue, y.imageLink, y.externalApiValues),\r\n integerValue: y.integerValue,\r\n running: y.running,\r\n thumbnail: y.thumbnail,\r\n imageId: y.imageId,\r\n commentText: getCommentText(y.typeId, y.externalApiTypeId, y.textValue, y.commentText),\r\n commentImage: y.commentImage,\r\n commentId: y.commentId,\r\n keyValue: y.keyValue,\r\n valueType: getValueType(y.valueTypeId),\r\n\r\n })));\r\n // setMeasurementRows(TempMeasurementRows.flat().sort((b, a) => a.startTime.localeCompare(b.startTime)));\r\n setExportActive(true);\r\n // chartData(TempMeasurementRows.flat());\r\n setRefresh(!refresh);\r\n });\r\n\r\n // refresh page\r\n window.location.reload();\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n {isLoading &&\r\n <div className={classes.loadingChart}><Spin width=\"100px\" height=\"100px\" color=\"#C3996B\"></Spin></div>\r\n }\r\n <TitlePage Text=\"Results\" {...props} backbutton={true} />\r\n <Box sx={{\r\n maxWidth: '90%', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\"\r\n }} >\r\n <div className={classes.header}>\r\n {selectedProject &&\r\n <button className={classes.backButton} onClick={() => navigate('/projectreportoverview')}>\r\n <ChevronLeft className={classes.backButton__icon} />\r\n Back to project overview\r\n </button>\r\n }\r\n <>\r\n <h1>{!selectedProject ? 'Last 24 hours' : 'Project timeline'}</h1>\r\n </>\r\n </div>\r\n <Box>\r\n {selectedProject &&\r\n <div className={classes.fullHeader}>\r\n <h2 className={classes.projectTitle}>{project.projectName}</h2>\r\n <div className={classes.header__detailContainer}>\r\n <div className={classes.header__detail}>\r\n <MapPin className={classes.header__detailIcon} />\r\n <p className={classes.header__detailText}>{project.resourceDescription}</p>\r\n </div>\r\n <div className={classes.header__detail}>\r\n <Factory className={classes.header__detailIcon} />\r\n <p className={classes.header__detailText}>{project.companyName}</p>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <Box className={classes.container} sx={{ borderRadius: \"8px\", borderTopRightRadius: selectedProject ? \"0px !important\" : \"8px\", borderTopLeftRadius: selectedProject ? \"0px !important\" : \"8px\" }}>\r\n <div className={classes.buttonContainer}>\r\n <div className={classes.buttonContainer__start}>\r\n {/* <ButtonGroup variant=\"contained\" aria-label=\"split button\">\r\n <Button onClick={handleOpenSearch} className={classes.filterButton} content=\"Filters\" >\r\n Filters\r\n <ExpandMore\r\n expand={openSearch}\r\n onClick={handleOpenSearch}\r\n aria-expanded={openSearch}\r\n aria-label=\"show more\"\r\n >\r\n <ChevronDown />\r\n </ExpandMore>\r\n </Button>\r\n <Button style={{ borderLeft: '1px solid #e3c09a', backgroundColor: \"#C3996B\", color: \"white\", marginLeft: \"-10px\", borderRadius: 0 }} sx={{ boxShadow: 3 }} onClick={handleSearch} size={\"large\"}>\r\n <RefreshCcw />\r\n </Button>\r\n </ButtonGroup> */}\r\n <div ref={anchorRef} className={classes.buttonContainer__buttonGroup}>\r\n <button onClick={handleOpenSearch} className={classes.primaryIconButton}>\r\n Filters\r\n <ChevronDown style={{ transform: openSearch ? \"rotate(180deg)\" : \"rotate(0deg)\" }} className={classes.iconButton__icon} />\r\n </button>\r\n <Tooltip\r\n title=\"Refresh measurements\"\r\n placement=\"top\"\r\n disableInteractive\r\n slotProps={{\r\n popper: {\r\n modifiers: [\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: [0, -4],\r\n },\r\n },\r\n ],\r\n },\r\n }}\r\n >\r\n <button onClick={handleSearch} className={classes.iconButton}>\r\n <RefreshCcw className={classes.iconButton__icon} />\r\n </button>\r\n </Tooltip>\r\n </div>\r\n <BoolToggle disabled={false} size=\"large\" label=\"Display linear\" setBoolValue={setShowLinearTimeline} boolValue={showLinearTimeline} />\r\n </div>\r\n {/* <div className={classes.buttonContainer__end}>\r\n {exportActive ?\r\n <CSVLink data={measurementRows} headers={headers} filename={\"MeasurementData.csv\"} style={{ textDecoration: 'none' }}>\r\n <button className={classes.secondaryButton}>Export as CSV</button>\r\n </CSVLink>\r\n :\r\n <button className={classes.secondaryDisabledButton}>Export as CSV</button>\r\n }\r\n </div> */}\r\n </div>\r\n <Collapse in={openSearch} timeout=\"auto\" unmountOnExit style={{ marginBottom: \"16px\" }}>\r\n <Box className={classes.stylingBlock}>\r\n <div className={classes.filterBlock}>\r\n <div className={classes.blockStyle}>\r\n <DatePickerText Text=\"Timestamp: \" />\r\n </div>\r\n <div className={classes.filterBlock__dateFiltersContainer}>\r\n <MyDateTimePicker {...props} value={timeRangeDates.fromDate} toDate={timeRangeDates.toDate} action={setTheDate} />\r\n <TimeRangeChart updateDataRange={updateDataRange} timeRangeDates={timeRangeDates}></TimeRangeChart>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n <Typography fontSize={15} style={{ marginRight: '5%', lineHeight: '0', textAlign: \"right\", color: \"rgba(0, 0, 0, 0.3)\" }} component=\"div\">\r\n Your results window is 24 hours from your timestamp.\r\n </Typography>\r\n </Box>\r\n </Collapse>\r\n\r\n <div className={classes.timeLineChartContainer}>\r\n {(chartRows.length === 0) &&\r\n <div className={classes.emptyStateContainer}>\r\n <div className={classes.emptyStateCard}>\r\n <p className={classes.emptyStateCard__title}>No measurements</p>\r\n <p className={classes.emptyStateCard__subtitle}>There are no measurements to display</p>\r\n </div>\r\n </div>\r\n }\r\n <TimeLineChart\r\n data={chartRows.length === 0 ? chartDummyData : chartRows}\r\n visualisationType={showLinearTimeline ? timeLineVisualisationTypes.LINEAREVENTS : timeLineVisualisationTypes.SPLIT}\r\n from={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.fromDate)}\r\n to={parseNewDateToDDMMYYYWithoutSeconds(timeRangeDates.toDate)}\r\n />\r\n </div>\r\n <Divider style={{ marginBottom: \"1rem\", marginTop: \"1rem\", }}></Divider>\r\n <DevExDataTable data={measurementRows} columns={resultColumns} onSelectionChange={onSelectionChange} selection={selection} handleFiltersChange={onFiltersChange}></DevExDataTable>\r\n\r\n\r\n </Box>\r\n </Box>\r\n\r\n\r\n\r\n </Box>\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ResultsPage;\r\nconst useStyles = makeStyles((theme) => ({\r\n blockStyle: {\r\n // width: '32%',\r\n },\r\n container: {\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n\r\n background: \"#FFFFFF\",\r\n paddingLeft: \"1.5rem\",\r\n paddingRight: \"1.5rem\",\r\n paddingBottom: \"1.5rem\",\r\n paddingTop: \"1.5rem\",\r\n marginRight: \"auto\",\r\n width: '100%',\r\n marginLeft: \"auto\",\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n backButton: {\r\n position: \"absolute\",\r\n top: \"129px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n opacity: \".8\",\r\n\r\n border: \"none\",\r\n padding: \"0px\",\r\n\r\n transition: \"opacity ease-in-out .1s\",\r\n\r\n \"&:hover\": {\r\n opacity: \"1\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n backButton__icon: {\r\n height: \"16px\",\r\n width: \"16px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n noTopBorderRadius: {\r\n borderTopLeftRadius: \"0px !important\",\r\n borderTopRightRadius: \"0px !important\"\r\n },\r\n\r\n emptyStateCard: {\r\n maxWidth: \"320px\",\r\n boxSizing: \"border-box\",\r\n\r\n padding: \"16px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n alignItems: \"center\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n },\r\n\r\n chartHeader: {\r\n boxSizing: 'border-box', // Ensures padding/border don't affect width\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n minWidth: '100%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n\r\n fullHeader: {\r\n width: '100%',\r\n boxSizing: \"border-box\",\r\n\r\n display: 'flex',\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n flexWrap: \"wrap\",\r\n gap: \"8px\",\r\n\r\n backgroundColor: \"#C3996B\",\r\n color: 'white',\r\n\r\n borderTopRightRadius: '8px',\r\n borderTopLeftRadius: '8px',\r\n\r\n padding: \"16px\",\r\n },\r\n\r\n projectTitle: {\r\n color: \"white\",\r\n },\r\n\r\n header__detailContainer: {\r\n display: \"flex\",\r\n gap: \"24px\",\r\n },\r\n\r\n header__detail: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n },\r\n\r\n header__detailIcon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n strokeWidth: \"1.4px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n header__detailText: {\r\n margin: \"0px\",\r\n },\r\n\r\n extraInfo: {\r\n display: 'flex',\r\n justifyContent: 'end'\r\n },\r\n loadingChart: {\r\n height: '100vh',\r\n width: '100%',\r\n zIndex: '999',\r\n top: '0px',\r\n position: 'fixed',\r\n borderRadius: \"8px\",\r\n backgroundColor: 'rgba(156,156,156,0.5)',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n exportContainer: {\r\n display: 'flex',\r\n width: '100%',\r\n justifyContent: 'space-between',\r\n marginLeft: '1.5rem',\r\n alignItems: 'flex-end',\r\n flexWrap: 'wrap',\r\n },\r\n dateSelection: {\r\n display: 'flex',\r\n flexDirection: 'column'\r\n },\r\n filterBlock: {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [theme.breakpoints.up('sm')]: {\r\n // flexWrap: 'nowrap',\r\n // justifyContent: 'flex-start',\r\n // gap: \"15px\"\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n // flexWrap: 'wrap',\r\n // justifyContent: 'space-evenly',\r\n }\r\n },\r\n\r\n filterBlock__dateFiltersContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n gap: \"16px\",\r\n alignItems: \"center\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n alignItems: \"flex-start\",\r\n },\r\n },\r\n\r\n filterItem: {\r\n [theme.breakpoints.up('sm')]: {\r\n marginTop: '25px'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginBottom: '15px',\r\n width: '100%',\r\n textAlign: 'center',\r\n justifyContent: 'center',\r\n }\r\n },\r\n filterButton: {\r\n backgroundColor: \"#C3996B !important\"\r\n },\r\n stylingBlock: {\r\n backgroundColor: '#f0f0f0',\r\n borderRadius: '6px',\r\n padding: \"25px\"\r\n },\r\n\r\n buttonContainer: {\r\n paddingBottom: \"16px\",\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: \"8px\",\r\n\r\n [theme.breakpoints.up('sm')]: {\r\n flexWrap: 'nowrap'\r\n },\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexWrap: 'wrap'\r\n }\r\n },\r\n\r\n buttonContainer__start: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n },\r\n\r\n buttonContainer__buttonGroup: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n \"& button:first-child\": {\r\n borderTopRightRadius: \"0px\",\r\n borderBottomRightRadius: \"0px\",\r\n },\r\n\r\n \"& button:last-child\": {\r\n borderTopLeftRadius: \"0px\",\r\n borderBottomLeftRadius: \"0px\",\r\n }\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingRight: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n borderRight: \"1px solid #D8BEA2\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton: {\r\n height: \"40px\",\r\n width: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n buttonContainer__end: {\r\n display: 'flex',\r\n gap: \"8px\"\r\n },\r\n\r\n secondaryButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #C3996B\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#C3996B\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n secondaryDisabledButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n\r\n border: \"1px solid #DCDCDC\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#DCDCDC\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n\r\n timeLineChartContainer: {\r\n position: \"relative\",\r\n minHeight: \"400px\",\r\n },\r\n\r\n emptyStateContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n\r\n position: \"absolute\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n zIndex: \"998\",\r\n\r\n backgroundColor: \"rgba(237, 237, 237, 0.48)\",\r\n backdropFilter: \"blur(8px)\", // Apply blur to background elements\r\n\r\n borderRadius: \"8px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n emptyStateCard__title: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"rgba(12, 14, 41, 1)\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n emptyStateCard__subtitle: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"14px\",\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n\r\n textAlign: \"center\",\r\n\r\n margin: \"0px\",\r\n },\r\n}));","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from '@mui/material/Button';\r\nimport TitlePage from '../../Shared/TitlePage';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nfunction SelectMenuPage(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n return (\r\n <div>\r\n <TitlePage Text=\"What do you want to do?\" backbutton={false} {...props} />\r\n <div className={classes.container}>\r\n <div className={classes.boxStyle}>\r\n <p className={classes.menuItem}>Create a new project linked to a specific registration point.</p>\r\n <Button className={classes.linkButton} onClick={() => { navigate('/create', { state: { from: '/' } }) }} variant=\"contained\">Create a project</Button>\r\n </div>\r\n <div className={classes.boxStyle}>\r\n <p className={classes.menuItem}>View all your projects. (See results, reports,...)</p>\r\n <Button className={classes.linkButton} variant=\"contained\" onClick={() => { navigate('/projectreportoverview', { state: { from: '/' } }) }}>Project Overview</Button>\r\n </div>\r\n <div className={classes.boxStyle}>\r\n <p className={classes.menuItem}>View all your graphs</p>\r\n <Button className={classes.linkButton} variant=\"contained\" onClick={() => { navigate('/graphs', { state: { from: '/' } }) }}>Graph Overview</Button>\r\n </div>\r\n <div className={classes.boxStyle}>\r\n <p className={classes.menuItem}>View and manage all your measurements</p>\r\n <Button className={classes.linkButton} variant=\"contained\" onClick={() => { navigate('/datamanagement', { state: { from: '/' } }) }}>Data management</Button>\r\n </div>\r\n {/* <div className={classes.boxStyle}>\r\n <p className={classes.menuItem}>View an overview of all revenue and costs linked to your accounts</p>\r\n <Button className={classes.linkButton} variant=\"contained\" onClick={() => { navigate('/generalledgeraccount', { state: { from: '/' } }) }}>General ledger account</Button>\r\n </div> */}\r\n <div className={classes.boxStyle}>\r\n <p className={classes.menuItem}>Configuration</p>\r\n <Button className={classes.linkButton} variant=\"contained\" onClick={() => { navigate('/configuration', { state: { from: '/' } }) }}>Configuration</Button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SelectMenuPage;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n container: {\r\n boxSizing: \"border-box\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n\r\n borderRadius: \"8px\",\r\n [theme.breakpoints.up('lg')]: {\r\n maxWidth: \"50%\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n maxWidth: \"60%\",\r\n },\r\n\r\n [theme.breakpoints.down('md')]: {\r\n maxWidth: \"90%\",\r\n\r\n },\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n marginTop: \"148px\"\r\n },\r\n\r\n boxStyle: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column'\r\n },\r\n\r\n },\r\n\r\n menuItem: {\r\n color: '#1D3557',\r\n margin: \"0\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1rem',\r\n width: '100% !important',\r\n marginBottom: '15px'\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: '100% !important',\r\n fontSize: '1.2rem',\r\n },\r\n },\r\n\r\n linkButton: {\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100% !important',\r\n minWidth: '100% !important',\r\n minHeight: \"46.8px\",\r\n height: \"90%\",\r\n padding: \"10px\",\r\n fontSize: \"1rem\",\r\n },\r\n\r\n [theme.breakpoints.up('lg')]: {\r\n width: '320px',\r\n minWidth: \"320px\",\r\n height: \"40px\",\r\n fontSize: \"1.2rem\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n width: '320px',\r\n minWidth: \"320px\",\r\n fontSize: \"1.2rem\",\r\n },\r\n\r\n background: \"#C3996B !important\",\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n}));","import React, { useState, useEffect } from \"react\";\r\nimport TitlePage from \"../../../Shared/TitlePage\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { getAuth, sendEmailVerification, updatePassword, onAuthStateChanged } from \"firebase/auth\";\r\nimport { dataService } from '../../../../Services/data/data.service';\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { IconButton, TextField, Checkbox, Tooltip, InputAdornment, Box } from '@mui/material';\r\nimport { Lock, Eye, EyeOff, Save, CircleCheck } from 'lucide-react';\r\n\r\n\r\ntoast.configure();\r\n\r\nfunction UserSettingsPage(props) {\r\n const classes = useStyles();\r\n const [verified, setVerified] = useState(false);\r\n const [changePassword, setChangePassword] = useState(false);\r\n const [lastName, setLastName] = useState(props.Login.lastName);\r\n const [firstName, setFirstName] = useState(props.Login.userName);\r\n const [password, setPassword] = useState(\"\");\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const handleClickShowPassword = () => setShowPassword(!showPassword);\r\n const handleMouseDownPassword = () => setShowPassword(!showPassword);\r\n\r\n useEffect(() => {\r\n const auth = getAuth();\r\n onAuthStateChanged(auth, (user) => {\r\n if (user) {\r\n // User is signed in, see docs for a list of available properties\r\n // https://firebase.google.com/docs/reference/js/firebase.User\r\n // ...\r\n setVerified(user.emailVerified);\r\n } else {\r\n // User is signed out\r\n // ...\r\n }\r\n });\r\n }, []);\r\n\r\n\r\n const handleCheckBox = (e) => {\r\n setChangePassword(!changePassword);\r\n }\r\n const handleVerificationMail = () => {\r\n const tempAuth = getAuth();\r\n\r\n sendEmailVerification(tempAuth.currentUser)\r\n .then(() => {\r\n // Email verification sent!\r\n // ...\r\n });\r\n }\r\n const handleSaveChanges = () => {\r\n const auth = getAuth();\r\n\r\n const user = auth.currentUser;\r\n if (changePassword === true) {\r\n if (password && password.length > 6) {\r\n updatePassword(user, password).then(() => {\r\n console.log(\"success\")\r\n // Update successful.\r\n }).catch((error) => {\r\n // An error ocurred\r\n // ...\r\n console.log(error);\r\n });\r\n } else {\r\n toast.error('Your new password should be at least 6 characters long', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 })\r\n }\r\n }\r\n if (firstName !== \"\" || lastName !== \"\") {\r\n dataService.updateUserData(user.email, firstName, lastName).then(response => {\r\n if (response.success === true) {\r\n props.actions.setUserName(firstName);\r\n props.actions.setLastName(lastName);\r\n toast.success('User updated succefully', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n } else {\r\n toast.error('Something went wrong.', { position: toast.POSITION.TOP_CENTER, autoClose: 2000 });\r\n }\r\n\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n const changeLastName = (event) => {\r\n setLastName(event.target.value);\r\n }\r\n\r\n const changeFirstName = (event) => {\r\n setFirstName(event.target.value);\r\n }\r\n\r\n const handleChangePassword = (event) => {\r\n setPassword(event.target.value);\r\n }\r\n\r\n\r\n return (\r\n <React.Fragment>\r\n <TitlePage Text=\"User settings\" backbutton={true} {...props} />\r\n <Box sx={{\r\n maxWidth: '480px', display: 'flex', justifyContent: 'center', flexDirection: 'column', marginRight: \"auto\",\r\n marginLeft: \"auto\", marginTop: \"148px\", padding: \"0px 16px\",\r\n\r\n }} >\r\n <div className={classes.header}>\r\n <h1>Your account</h1>\r\n </div>\r\n\r\n <Box className={classes.container}>\r\n {!verified &&\r\n <div className={classes.verificationContainer}>\r\n <h3 className={classes.verificationContainer__title}>You are not verified</h3>\r\n <p className={classes.verification__body}>Click the link in the email to verify your account</p>\r\n <button className={classes.primaryButton} onClick={() => handleVerificationMail()} >Resend email</button>\r\n </div>\r\n }\r\n <div className={classes.formContainer}>\r\n <div className={classes.row}>\r\n <span className={classes.labelText}>Email</span>\r\n <div className={classes.emailInputContainer}>\r\n <TextField\r\n className={classes.textField}\r\n type={\"text\"}\r\n variant=\"outlined\"\r\n value={props.Login.email}\r\n disabled={true}\r\n fullWidth={true}\r\n >\r\n </TextField>\r\n {verified &&\r\n <Tooltip placement=\"top\" disableInteractive title=\" This emailaddress is verified\">\r\n <CircleCheck className={classes.verifiedBadge} style={{ marginLeft: '10px', color: 'green' }}></CircleCheck>\r\n </Tooltip>}\r\n </div>\r\n\r\n </div>\r\n <div className={classes.row}>\r\n <span className={classes.labelText}>First name</span>\r\n <TextField\r\n className={classes.textField}\r\n type={\"text\"}\r\n variant=\"outlined\"\r\n onChange={(event) => changeFirstName(event)}\r\n\r\n value={firstName}\r\n fullWidth={true}\r\n\r\n >\r\n </TextField>\r\n </div>\r\n <div className={classes.row}>\r\n <span className={classes.labelText}>Last name</span>\r\n <TextField\r\n className={classes.textField}\r\n type={\"text\"}\r\n variant=\"outlined\"\r\n onChange={(event) => changeLastName(event)}\r\n\r\n value={lastName}\r\n fullWidth={true}\r\n >\r\n </TextField>\r\n </div>\r\n <div className={classes.row}>\r\n <span className={classes.labelText}>Change password <Checkbox style={{ color: '#C3996B' }} onChange={(e) => handleCheckBox(e)}></Checkbox></span>\r\n\r\n <TextField\r\n className={changePassword === false ? classes.disabledTextField : classes.textField}\r\n type={showPassword ? \"text\" : \"password\"}\r\n variant=\"outlined\"\r\n value={password}\r\n onChange={(event) => handleChangePassword(event)}\r\n\r\n fullWidth={true}\r\n disabled={changePassword === false}\r\n InputProps={{\r\n startAdornment:\r\n <InputAdornment position=\"start\">\r\n <Lock style={{ marginRight: '10px' }}></Lock>\r\n </InputAdornment>,\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n aria-label=\"toggle password visibility\"\r\n onClick={handleClickShowPassword}\r\n onMouseDown={handleMouseDownPassword}\r\n >\r\n {showPassword ? <EyeOff /> : <Eye />}\r\n </IconButton>\r\n </InputAdornment>)\r\n }}\r\n >\r\n </TextField>\r\n </div>\r\n {/* <button size='large' className={classes.logInButton} variant=\"contained\" onClick={() => handleSaveChanges()}>Save changes</button> */}\r\n <div className={classes.buttonContainer}>\r\n <button className={classes.primaryIconButton} onClick={() => handleSaveChanges()}>\r\n <Save className={classes.iconButton__icon} absoluteStrokeWidth />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </Box>\r\n </Box>\r\n </React.Fragment >\r\n )\r\n}\r\n\r\n\r\nexport default UserSettingsPage;\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n boxSizing: \"border-box\",\r\n\r\n background: \"#FFFFFF\",\r\n borderRadius: \"8px\",\r\n padding: \"1.5rem\",\r\n width: '100%',\r\n },\r\n\r\n verificationContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"8px\",\r\n\r\n backgroundColor: \"#F8F8F8\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"4px\",\r\n\r\n padding: \"16px\",\r\n marginBottom: \"24px\",\r\n\r\n },\r\n\r\n verificationContainer__title: {\r\n fontSize: \"18px\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n verification__body: {\r\n color: \"rgba(12, 14, 41, 0.8)\",\r\n },\r\n\r\n primaryButton: {\r\n height: \"40px\",\r\n width: \"fit-content\",\r\n padding: \"0 16px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n marginTop: \"8px\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n buttonStyle: {\r\n backgroundColor: '#C3996B !important',\r\n },\r\n\r\n header: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n verifiedRow: {\r\n display: 'flex',\r\n width: '100%',\r\n justifyContent: 'end',\r\n alignItems: 'center'\r\n },\r\n\r\n formContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n labelText: {\r\n alignItems: 'center',\r\n display: 'flex',\r\n margin: \"0px\",\r\n marginBottom: '4px',\r\n fontWeight: '400',\r\n fontSize: '1rem',\r\n color: 'rgb(105, 105, 105) !important'\r\n },\r\n\r\n emailInputContainer: {\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n position: \"relative\",\r\n },\r\n\r\n verifiedBadge: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n\r\n color: \"#5CC958\",\r\n strokeWidth: \"1.6px\",\r\n\r\n position: \"absolute\",\r\n top: \"50%\",\r\n right: \"16px\",\r\n transform: \"translateY(-50%)\",\r\n },\r\n\r\n verifiedText: {\r\n alignItems: 'center',\r\n display: 'flex',\r\n fontWeight: '400',\r\n fontSize: '1rem',\r\n color: 'rgb(105, 105, 105) !important'\r\n\r\n },\r\n\r\n logInButton: {\r\n height: \"32px\",\r\n padding: \"0 12px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"relative\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n titleTextStyle: {\r\n marginLeft: \"20px\",\r\n },\r\n titleSection: {\r\n width: \"100%\",\r\n },\r\n titleStyle: {\r\n paddingLeft: \"10%\",\r\n paddingRight: \"10%\",\r\n display: \"flex\",\r\n alignContent: \"space-around\",\r\n alignItems: \"center\",\r\n background: \"#FFFFFF\",\r\n justifyContent: \"space-between\"\r\n },\r\n dateAndCreateDiv: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'end',\r\n flexWrap: 'wrap',\r\n\r\n\r\n },\r\n activeFor: {\r\n color: \"#696969\",\r\n fontSize: \"15px\",\r\n },\r\n backIcon: {\r\n padding: \"20px\",\r\n cursor: \"pointer\"\r\n },\r\n iconItem: {\r\n display: 'flex !important',\r\n alignItems: 'center !important'\r\n },\r\n textField: {\r\n marginTop: '10px',\r\n marginBottom: '10px'\r\n },\r\n disabledTextField: {\r\n backgroundColor: '#dddddd'\r\n },\r\n\r\n buttonContainer: {\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n\r\n marginTop: \"16px\",\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingLeft: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n strokeWidth: \"2px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n});","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSAxMiA3LTcgNyA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOVY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowUp = createLucideIcon('ArrowUp', [\n ['path', { d: 'm5 12 7-7 7 7', key: 'hav0vg' }],\n ['path', { d: 'M12 19V5', key: 'x0mq9r' }],\n]);\n\nexport default ArrowUp;\n","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ArrowUp } from 'lucide-react';\r\n\r\nexport default function BackToTopButton(props) {\r\n const classes = useStyles();\r\n\r\n const handleGoToTop = () => {\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\r\n }\r\n\r\n return (\r\n <button className={classes.backToTopButton} onClick={() => handleGoToTop()}>\r\n <label className={classes.button__label}>Back to top</label>\r\n <ArrowUp className={classes.arrowIcon} />\r\n </button>\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n backToTopButton: {\r\n height: \"32px\",\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n\r\n position: \"fixed\",\r\n bottom: \"32px\",\r\n left: \"calc(50%)\",\r\n transform: \"translateX(-50%)\",\r\n\r\n borderRadius: \"16px\",\r\n\r\n backgroundColor: \"white\",\r\n color: \"#C3996B\",\r\n border: \"1px solid #EDEDED\",\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n padding: \"0px 6px 0px 16px\",\r\n\r\n cursor: \"pointer\",\r\n\r\n \"&:hover\": {\r\n // make boxshadow pop\r\n cursor: \"pointer\",\r\n boxShadow: '0px 4px 12px rgba(0, 0, 0, 0.2)',\r\n borderColor: \"#C3996B\",\r\n }\r\n },\r\n\r\n button__label: {\r\n fontSize: \"16px\",\r\n margin: \"0px\",\r\n cursor: \"pointer\",\r\n },\r\n\r\n arrowIcon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n fontSize: \"14px\",\r\n }\r\n\r\n}));","import React, { useState, useEffect } from \"react\";\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nfunction BoolToggle({ size = \"small\", label, boolValue, setBoolValue, ...props }) {\r\n const classes = useStyles();\r\n\r\n const handleToggle = () => {\r\n setBoolValue(!boolValue)\r\n }\r\n\r\n return (\r\n <button\r\n disabled={props.disabled}\r\n className={props.disabled ? classes.toggleButtonDisabled : classes.toggleButton} onClick={() => handleToggle()}\r\n style={{\r\n height: size === \"large\" ? \"40px\" : \"32px\",\r\n paddingLeft: size === \"large\" ? \"12px\" : \"8px\",\r\n paddingRight: size === \"large\" ? \"12px\" : \"6px\",\r\n gap: size === \"large\" ? \"12px\" : \"8px\",\r\n }}\r\n >\r\n <label\r\n className={props.disabled ? classes.labelDisabled : classes.label}\r\n style={{\r\n fontSize: size === \"large\" ? \"16px\" : \"14px\",\r\n }}\r\n >{label}</label>\r\n <div\r\n className={clsx(classes.toggleContainer, {\r\n [classes.activeContainer]: boolValue,\r\n [classes.toggleContainerDisabled]: props.disabled\r\n })}\r\n >\r\n <div\r\n className={clsx(classes.toggleCircle, {\r\n [classes.activeCircle]: boolValue,\r\n [classes.toggleCircleDisabled]: props.disabled\r\n })}\r\n ></div>\r\n </div>\r\n </button>\r\n );\r\n}\r\nexport default BoolToggle;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n toggleButton: {\r\n height: \"28px\",\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n paddingLeft: \"8px\",\r\n paddingRight: \"6px\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n }\r\n },\r\n toggleButtonDisabled: {\r\n height: \"28px\",\r\n width: \"fit-content\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"8px\",\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #EDEDED\",\r\n\r\n backgroundColor: \"#EDEDED\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#bebfc4\",\r\n\r\n paddingLeft: \"8px\",\r\n paddingRight: \"6px\",\r\n\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n }\r\n },\r\n\r\n label: {\r\n fontSize: \"14px\",\r\n color: \"#0C0E29\",\r\n\r\n whiteSpace: \"nowrap\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n labelDisabled: {\r\n fontSize: \"14px\",\r\n color: \"#BDBDBD\",\r\n\r\n \"&:hover\": {\r\n cursor: \"not-allowed\",\r\n },\r\n },\r\n\r\n\r\n toggleContainer: {\r\n width: \"38px\",\r\n height: \"20px\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"1px\",\r\n\r\n borderRadius: \"10px\",\r\n\r\n backgroundColor: \"#EDEDED\",\r\n\r\n position: \"relative\",\r\n transition: \"background-color 0.3s ease\",\r\n },\r\n\r\n toggleContainerDisabled: {\r\n backgroundColor: \"#DCDCDC\",\r\n },\r\n\r\n activeContainer: {\r\n backgroundColor: \"#E2F8E0\",\r\n },\r\n\r\n toggleCircle: {\r\n width: \"18px\",\r\n height: \"18px\",\r\n borderRadius: \"50%\",\r\n backgroundColor: \"#BDBDBD\",\r\n position: \"absolute\",\r\n left: \"1px\",\r\n transition: \"left 0.3s ease\",\r\n },\r\n\r\n toggleCircleDisabled: {\r\n backgroundColor: \"#BDBDBD\",\r\n },\r\n\r\n activeCircle: {\r\n left: \"18px\", // Moves the toggle circle to the right\r\n backgroundColor: \"#5CC958\", // Green color for the circle when active\r\n },\r\n}));","import React from 'react';\r\nimport Button from '@mui/material/Button'\r\n\r\nfunction ButtonNormalDelete(props) {\r\n return (\r\n <Button size='large' startIcon={props.startIcon} type={props.type} style={ButtonStyle} onClick={props.onClick} variant=\"contained\">{props.content}</Button>\r\n )\r\n}\r\n\r\nconst ButtonStyle = {\r\n background: \"#ff4c54\"\r\n}\r\n\r\nexport default ButtonNormalDelete;","import React from 'react';\r\nimport Button from '@mui/material/Button'\r\n\r\nfunction ButtonNormalText(props) {\r\n return (\r\n <Button disabled={props.disabled} autoFocus={props.autoFocus} startIcon={props.startIcon} type={props.type} style={ButtonStyle} onClick={props.onClick} variant=\"contained\">{props.content}</Button>\r\n )\r\n}\r\n\r\nconst ButtonStyle = {\r\n background: \"#C3996B\",\r\n color: 'white',\r\n padding: '10px'\r\n\r\n}\r\n\r\nexport default ButtonNormalText;","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\n\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = reactCSS({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return isValidElement(children) ? React.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : React.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexport default Checkboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// <https://www.w3.org/TR/css-color-4/#named-colors>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","import each from 'lodash-es/each';\nimport tinycolor from 'tinycolor2';\n\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nexport var toState = function toState(data, oldHue) {\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\n\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nexport var red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return tinycolor(type + ' (' + stringWithoutDegree + ')')._ok;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);","import React, { useState } from \"react\";\r\nimport { ChromePicker } from 'react-color';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nfunction ColorPicker(props) {\r\n const classes = useStyles();\r\n const [openPicker, setOpenPicker] = useState(false);\r\n const [usedColor, setColor] = useState(props.color ? props.color : \"#000\");\r\n\r\n const openColorPicker = () => {\r\n setOpenPicker(true)\r\n }\r\n\r\n const closeColorPicker = () => {\r\n setOpenPicker(false)\r\n }\r\n\r\n const fuckOff = () => {\r\n\r\n }\r\n const handleChange = (data) => {\r\n setColor(data.hex)\r\n props.action(data.hex, props.id)\r\n }\r\n\r\n return (\r\n <div>\r\n <div className={classes.swatch} onClick={props.disabled ? fuckOff : openColorPicker}>\r\n <div className={classes.color} style={{ backgroundColor: usedColor }} />\r\n </div>\r\n {openPicker ? <div className={classes.popover}>\r\n <div className={classes.cover} onClick={closeColorPicker} />\r\n <ChromePicker disableAlpha color={usedColor} disabled={props.disabled} onChange={handleChange} />\r\n </div> : null}\r\n </div>\r\n )\r\n\r\n}\r\n\r\nexport default ColorPicker\r\n\r\nconst useStyles = makeStyles((usedColor) => ({\r\n color: {\r\n width: '36px',\r\n height: '14px',\r\n borderRadius: '2px',\r\n },\r\n swatch: {\r\n padding: '5px',\r\n background: '#fff',\r\n borderRadius: '1px',\r\n boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\r\n display: 'inline-block',\r\n cursor: 'pointer',\r\n },\r\n popover: {\r\n position: 'absolute',\r\n zIndex: '2',\r\n },\r\n cover: {\r\n position: 'fixed',\r\n top: '0px',\r\n right: '0px',\r\n bottom: '0px',\r\n left: '0px',\r\n },\r\n}));","import React, { useState } from 'react';\r\nimport { ClipboardCopy, X } from 'lucide-react';\r\nimport {Snackbar , IconButton, InputAdornment, TextField} from '@mui/material';\r\nimport ApiHelper from '../../Utils/API/apiHelper'\r\n\r\nfunction CopyQrLink(props) {\r\n\r\n const [openToast, setOpenToast] = useState(false);\r\n const appSettings = ApiHelper.appSettings;\r\n\r\n const handleCopy = () => {\r\n handleOpenToast();\r\n navigator.clipboard.writeText(appSettings.TAPLR_BASE_URL + \"measure?qr=\" + props.QrCode);\r\n };\r\n\r\n const handleOpenToast = () => {\r\n setOpenToast(true);\r\n };\r\n\r\n const handleCloseToast = (reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n setOpenToast(false);\r\n };\r\n\r\n const action = (\r\n <React.Fragment>\r\n <IconButton\r\n size=\"small\"\r\n aria-label=\"close\"\r\n color=\"inherit\"\r\n onClick={handleCloseToast}\r\n >\r\n <X fontSize=\"small\" />\r\n </IconButton>\r\n </React.Fragment>\r\n );\r\n\r\n const Style = {\r\n width: '100%',\r\n marginTop: \"10px\"\r\n }\r\n const copyUrl = {\r\n marginTop: \"15px\",\r\n }\r\n\r\n return (\r\n <div style={copyUrl}>\r\n <TextField\r\n style={Style}\r\n label=\"Copy link to clipboard:\"\r\n fullWidth\r\n InputProps={{\r\n readOnly: true,\r\n endAdornment: (\r\n <InputAdornment position='end'>\r\n <IconButton onClick={handleCopy}>\r\n <ClipboardCopy />\r\n </IconButton>\r\n </InputAdornment>\r\n )\r\n }}\r\n variant=\"outlined\"\r\n value={props.value}>\r\n </TextField>\r\n\r\n <Snackbar\r\n open={openToast}\r\n autoHideDuration={3000}\r\n onClose={handleCloseToast}\r\n message=\"Link copied to clipboard\"\r\n action={action}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default CopyQrLink;","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Euro\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGgxMiIgLz4KICA8cGF0aCBkPSJNNCAxNGg5IiAvPgogIDxwYXRoIGQ9Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/euro\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Euro = createLucideIcon('Euro', [\n ['path', { d: 'M4 10h12', key: '1y6xl8' }],\n ['path', { d: 'M4 14h9', key: '1loblj' }],\n [\n 'path',\n {\n d: 'M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2',\n key: '1j6lzo',\n },\n ],\n]);\n\nexport default Euro;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Copy = createLucideIcon('Copy', [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n]);\n\nexport default Copy;\n","import React, { useState } from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport { Divider, Box, MenuItem, Menu } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { Euro, QrCode, Eye, Copy, Trash2, ChevronDown } from 'lucide-react';\r\n\r\n\r\nconst StyledMenu = styled((props) => (\r\n\r\n <Menu\r\n elevation={0}\r\n anchorOrigin={{\r\n vertical: 'bottom',\r\n horizontal: 'right',\r\n }}\r\n transformOrigin={{\r\n vertical: 'top',\r\n horizontal: 'right',\r\n }}\r\n {...props}\r\n />\r\n))(({ theme }) => ({\r\n '& .MuiPaper-root': {\r\n borderRadius: 6,\r\n marginTop: theme.spacing(1),\r\n minWidth: 180,\r\n color:\r\n theme.palette.mode === 'light' ? 'rgb(55, 65, 81)' : theme.palette.grey[300],\r\n boxShadow:\r\n 'rgb(255, 255, 255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px',\r\n '& .MuiMenu-list': {\r\n padding: '4px 0',\r\n },\r\n '& .MuiMenuItem-root': {\r\n '& .MuiSvgIcon-root': {\r\n fontSize: 18,\r\n color: theme.palette.text.secondary,\r\n marginRight: theme.spacing(1.5),\r\n },\r\n '&:active': {\r\n backgroundColor: \"#C3996B\",\r\n color: 'white'\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport default function CustomizedMenus(props) {\r\n\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n const [menuOpen, setMenuOpen] = useState(false);\r\n const activeProject = props.isActive\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n setMenuOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n setMenuOpen(false)\r\n };\r\n\r\n return (\r\n\r\n <div>\r\n <button className={classes.primaryIconButton} onClick={handleClick} >\r\n Project options\r\n <ChevronDown className={classes.iconButton__icon} style={{ transform: menuOpen ? \"rotate(180deg)\" : \"\" }} />\r\n </button>\r\n <StyledMenu\r\n id=\"demo-customized-menu\"\r\n MenuListProps={{\r\n 'aria-labelledby': 'demo-customized-button',\r\n }}\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n >\r\n <MenuItem onClick={props.resultsRedirect} className={classes.viewResults} disableRipple sx={{ minHeight: '44px !important' }}>\r\n <Eye className={classes.icon} />\r\n <Box sx={{ paddingLeft: '15px', borderLeft: '1px solid rgba(0, 0, 0, 0.12)', }}>\r\n View Results\r\n </Box>\r\n </MenuItem>\r\n <Divider sx={{ margin: '0px !important' }} />\r\n <MenuItem onClick={props.financialDashboardRedirect} disableRipple sx={{ minHeight: '44px !important' }}>\r\n <Euro className={classes.icon} />\r\n <Box sx={{ paddingLeft: '15px', borderLeft: '1px solid rgba(0, 0, 0, 0.12)', }}>\r\n Financial dashboard\r\n </Box>\r\n </MenuItem>\r\n <Divider sx={{ margin: '0px !important' }} />\r\n <MenuItem onClick={props.duplicateRedirect} disableRipple sx={{ minHeight: '44px !important' }}>\r\n <Copy fontSize=\"inherit\" className={classes.icon} ></Copy>\r\n <Box sx={{ paddingLeft: '15px', borderLeft: '1px solid rgba(0, 0, 0, 0.12)', }}>\r\n Duplicate\r\n </Box>\r\n </MenuItem>\r\n <Divider sx={{ margin: '0px !important' }} />\r\n <MenuItem onClick={props.handleClickOpenQr} disabled={!activeProject} disableRipple sx={{ minHeight: '44px !important' }}>\r\n <QrCode fontSize=\"inherit\" className={classes.icon} />\r\n <Box sx={{ paddingLeft: '15px', borderLeft: '1px solid rgba(0, 0, 0, 0.12)', }}>\r\n QR-code\r\n </Box>\r\n </MenuItem>\r\n <Divider sx={{ margin: '0px !important' }} />\r\n <MenuItem onClick={props.handleDialogOpenDel} className={classes.deleteProject} disableRipple sx={{ minHeight: '44px !important' }}>\r\n <Trash2 fontSize=\"inherit\" className={classes.icon} />\r\n <Box sx={{ paddingLeft: '15px', borderLeft: '1px solid rgba(0, 0, 0, 0.12)', }}>\r\n Delete\r\n </Box>\r\n </MenuItem>\r\n </StyledMenu>\r\n </div>\r\n );\r\n\r\n\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n viewResults: {\r\n marginTop: '4px !important',\r\n },\r\n deleteProject: {\r\n marginBottom: '4px !important',\r\n },\r\n icon: {\r\n marginRight: '15px',\r\n fontSize: '45px !important'\r\n },\r\n\r\n primaryIconButton: {\r\n height: \"40px\",\r\n padding: \"0 16px\",\r\n paddingRight: \"8px\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"white\",\r\n backgroundColor: \"#C3996B\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"24px\",\r\n width: \"24px\",\r\n\r\n strokeWidth: \"1.8px\",\r\n\r\n transition: \"transform 0.3s ease\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n iconButton__iconOpen: {\r\n transform: \"rotate(180deg)\"\r\n },\r\n}));","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getDatePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiDatePickerToolbar', slot);\n}\nexport const datePickerToolbarClasses = generateUtilityClasses('MuiDatePickerToolbar', ['root', 'title']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\", \"isLandscape\", \"onChange\", \"toolbarFormat\", \"toolbarPlaceholder\", \"views\", \"className\", \"onViewChange\", \"view\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { PickersToolbar } from \"../internals/components/PickersToolbar.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { getDatePickerToolbarUtilityClass } from \"./datePickerToolbarClasses.js\";\nimport { resolveDateFormat } from \"../internals/utils/date-utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n title: ['title']\n };\n return composeClasses(slots, getDatePickerToolbarUtilityClass, classes);\n};\nconst DatePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDatePickerToolbar',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({});\nconst DatePickerToolbarTitle = styled(Typography, {\n name: 'MuiDatePickerToolbar',\n slot: 'Title',\n overridesResolver: (_, styles) => styles.title\n})({\n variants: [{\n props: {\n isLandscape: true\n },\n style: {\n margin: 'auto 16px auto auto'\n }\n }]\n});\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Custom components](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [DatePickerToolbar API](https://mui.com/x/api/date-pickers/date-picker-toolbar/)\n */\nexport const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePickerToolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePickerToolbar'\n });\n const {\n value,\n isLandscape,\n toolbarFormat,\n toolbarPlaceholder = '––',\n views,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const utils = useUtils();\n const translations = usePickersTranslations();\n const classes = useUtilityClasses(props);\n const dateText = React.useMemo(() => {\n if (!value) {\n return toolbarPlaceholder;\n }\n const formatFromViews = resolveDateFormat(utils, {\n format: toolbarFormat,\n views\n }, true);\n return utils.formatByString(value, formatFromViews);\n }, [value, toolbarFormat, toolbarPlaceholder, utils, views]);\n const ownerState = props;\n return /*#__PURE__*/_jsx(DatePickerToolbarRoot, _extends({\n ref: ref,\n toolbarTitle: translations.datePickerToolbarTitle,\n isLandscape: isLandscape,\n className: clsx(classes.root, className)\n }, other, {\n children: /*#__PURE__*/_jsx(DatePickerToolbarTitle, {\n variant: \"h4\",\n align: isLandscape ? 'left' : 'center',\n ownerState: ownerState,\n className: classes.title,\n children: dateText\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePickerToolbar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n /**\n * If `true`, show the toolbar even in desktop mode.\n * @default `true` for Desktop, `false` for Mobile.\n */\n hidden: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n /**\n * Callback called when a toolbar is clicked\n * @template TView\n * @param {TView} view The view to open\n */\n onViewChange: PropTypes.func.isRequired,\n readOnly: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n titleId: PropTypes.string,\n /**\n * Toolbar date format.\n */\n toolbarFormat: PropTypes.string,\n /**\n * Toolbar value placeholder—it is displayed when the value is empty.\n * @default \"––\"\n */\n toolbarPlaceholder: PropTypes.node,\n value: PropTypes.object,\n /**\n * Currently visible picker view.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from \"../internals/hooks/useUtils.js\";\nimport { applyDefaultViewProps } from \"../internals/utils/views.js\";\nimport { applyDefaultDate } from \"../internals/utils/date-utils.js\";\nimport { DatePickerToolbar } from \"./DatePickerToolbar.js\";\nexport function useDatePickerDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n const localeText = React.useMemo(() => {\n if (themeProps.localeText?.toolbarTitle == null) {\n return themeProps.localeText;\n }\n return _extends({}, themeProps.localeText, {\n datePickerToolbarTitle: themeProps.localeText.toolbarTitle\n });\n }, [themeProps.localeText]);\n return _extends({}, themeProps, {\n localeText\n }, applyDefaultViewProps({\n views: themeProps.views,\n openTo: themeProps.openTo,\n defaultViews: ['year', 'day'],\n defaultOpenTo: 'day'\n }), {\n disableFuture: themeProps.disableFuture ?? false,\n disablePast: themeProps.disablePast ?? false,\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),\n slots: _extends({\n toolbar: DatePickerToolbar\n }, themeProps.slots)\n });\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"slots\", \"slotProps\", \"InputProps\", \"inputProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MuiTextField from '@mui/material/TextField';\nimport { useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { refType } from '@mui/utils';\nimport { useDateField } from \"./useDateField.js\";\nimport { useClearableField } from \"../hooks/index.js\";\nimport { PickersTextField } from \"../PickersTextField/index.js\";\nimport { convertFieldResponseIntoMuiTextFieldProps } from \"../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DateField](http://mui.com/x/react-date-pickers/date-field/)\n * - [Fields](https://mui.com/x/react-date-pickers/fields/)\n *\n * API:\n *\n * - [DateField API](https://mui.com/x/api/date-pickers/date-field/)\n */\nconst DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRef) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiDateField'\n });\n const {\n slots,\n slotProps,\n InputProps,\n inputProps\n } = themeProps,\n other = _objectWithoutPropertiesLoose(themeProps, _excluded);\n const ownerState = themeProps;\n const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);\n const textFieldProps = useSlotProps({\n elementType: TextField,\n externalSlotProps: slotProps?.textField,\n externalForwardedProps: other,\n additionalProps: {\n ref: inRef\n },\n ownerState\n });\n\n // TODO: Remove when mui/material-ui#35088 will be merged\n textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);\n textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);\n const fieldResponse = useDateField(textFieldProps);\n const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);\n const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {\n slots,\n slotProps\n }));\n return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateField.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the `input` element is focused during the first mount.\n * @default false\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, a clear button will be shown in the field allowing value clearing.\n * @default false\n */\n clearable: PropTypes.bool,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),\n component: PropTypes.elementType,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * Format of the date when rendered in the input(s).\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.\n */\n FormHelperTextProps: PropTypes.object,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The helper text content.\n */\n helperText: PropTypes.node,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * The id of the `input` element.\n * Use this prop to make `label` and `helperText` accessible for screen readers.\n */\n id: PropTypes.string,\n /**\n * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.\n * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.\n */\n InputLabelProps: PropTypes.object,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Props applied to the Input element.\n * It will be a [`FilledInput`](/material-ui/api/filled-input/),\n * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)\n * component depending on the `variant` prop value.\n */\n InputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the clear button is clicked.\n */\n onClear: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate a part of the new value that is not present in the format when both `value` and `defaultValue` are empty.\n * For example, on time fields it will be used to determine the date to set.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.\n */\n referenceDate: PropTypes.object,\n /**\n * If `true`, the label is displayed as required and the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)\n * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)\n *\n * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: \"DD\"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.\n *\n * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.\n * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\\u200e/g, '')`.\n *\n * Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.\n * This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.\n *\n * @default false\n */\n shouldRespectLeadingZeros: PropTypes.bool,\n /**\n * The size of the component.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The ref object used to imperatively interact with the field.\n */\n unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport { DateField };","'use client';\n\nimport { singleItemFieldValueManager, singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useField } from \"../internals/hooks/useField/index.js\";\nimport { validateDate } from \"../validation/index.js\";\nimport { useSplitFieldProps } from \"../hooks/index.js\";\nimport { useDefaultizedDateField } from \"../internals/hooks/defaultizedFieldProps.js\";\nexport const useDateField = inProps => {\n const props = useDefaultizedDateField(inProps);\n const {\n forwardedProps,\n internalProps\n } = useSplitFieldProps(props, 'date');\n return useField({\n forwardedProps,\n internalProps,\n valueManager: singleItemValueManager,\n fieldValueManager: singleItemFieldValueManager,\n validator: validateDate,\n valueType: 'date'\n });\n};","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport { refType } from '@mui/utils';\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useDatePickerDefaultizedProps } from \"../DatePicker/shared.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { validateDate, extractValidationProps } from \"../validation/index.js\";\nimport { useDesktopPicker } from \"../internals/hooks/useDesktopPicker/index.js\";\nimport { CalendarIcon } from \"../icons/index.js\";\nimport { DateField } from \"../DateField/index.js\";\nimport { renderDateViewCalendar } from \"../dateViewRenderers/index.js\";\nimport { resolveDateFormat } from \"../internals/utils/date-utils.js\";\nimport { buildGetOpenDialogAriaText } from \"../locales/utils/getPickersLocalization.js\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)\n */\nconst DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n\n // Props with the default values common to all date pickers\n const defaultizedProps = useDatePickerDefaultizedProps(inProps, 'MuiDesktopDatePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar\n }, defaultizedProps.viewRenderers);\n\n // Props with the default values specific to the desktop variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateFormat(utils, defaultizedProps, false),\n yearsPerRow: defaultizedProps.yearsPerRow ?? 4,\n slots: _extends({\n openPickerIcon: CalendarIcon,\n field: DateField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n }),\n toolbar: _extends({\n hidden: true\n }, defaultizedProps.slotProps?.toolbar)\n })\n });\n const {\n renderPicker\n } = useDesktopPicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date',\n getOpenDialogAriaText: buildGetOpenDialogAriaText({\n utils,\n formatKey: 'fullDate',\n contextTranslation: translations.openDatePickerDialogue,\n propsTranslation: props.localeText?.openDatePickerDialogue\n }),\n validator: validateDate\n });\n return renderPicker();\n});\nDesktopDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => <span>...</span>\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 4\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { DesktopDatePicker };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport { refType } from '@mui/utils';\nimport { useMobilePicker } from \"../internals/hooks/useMobilePicker/index.js\";\nimport { useDatePickerDefaultizedProps } from \"../DatePicker/shared.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { extractValidationProps, validateDate } from \"../validation/index.js\";\nimport { DateField } from \"../DateField/index.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { renderDateViewCalendar } from \"../dateViewRenderers/index.js\";\nimport { resolveDateFormat } from \"../internals/utils/date-utils.js\";\nimport { buildGetOpenDialogAriaText } from \"../locales/utils/getPickersLocalization.js\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)\n */\nconst MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n\n // Props with the default values common to all date pickers\n const defaultizedProps = useDatePickerDefaultizedProps(inProps, 'MuiMobileDatePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar\n }, defaultizedProps.viewRenderers);\n\n // Props with the default values specific to the mobile variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateFormat(utils, defaultizedProps, false),\n slots: _extends({\n field: DateField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n }),\n toolbar: _extends({\n hidden: false\n }, defaultizedProps.slotProps?.toolbar)\n })\n });\n const {\n renderPicker\n } = useMobilePicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date',\n getOpenDialogAriaText: buildGetOpenDialogAriaText({\n utils,\n formatKey: 'fullDate',\n contextTranslation: translations.openDatePickerDialogue,\n propsTranslation: props.localeText?.openDatePickerDialogue\n }),\n validator: validateDate\n });\n return renderPicker();\n});\nMobileDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => <span>...</span>\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { MobileDatePicker };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useThemeProps } from '@mui/material/styles';\nimport { refType } from '@mui/utils';\nimport { DesktopDatePicker } from \"../DesktopDatePicker/index.js\";\nimport { MobileDatePicker } from \"../MobileDatePicker/index.js\";\nimport { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from \"../internals/utils/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DatePicker API](https://mui.com/x/api/date-pickers/date-picker/)\n */\nconst DatePicker = /*#__PURE__*/React.forwardRef(function DatePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePicker'\n });\n const {\n desktopModeMediaQuery = DEFAULT_DESKTOP_MODE_MEDIA_QUERY\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // defaults to `true` in environments where `window.matchMedia` would not be available (i.e. test/jsdom)\n const isDesktop = useMediaQuery(desktopModeMediaQuery, {\n defaultMatches: true\n });\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDatePicker, _extends({\n ref: ref\n }, other));\n }\n return /*#__PURE__*/_jsx(MobileDatePicker, _extends({\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => <span>...</span>\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 4 on desktop, 3 on mobile\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;\nexport { DatePicker };","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"../en-US/_lib/formatDistance/index.js\";\nimport formatRelative from \"../en-US/_lib/formatRelative/index.js\";\nimport localize from \"../en-US/_lib/localize/index.js\";\nimport match from \"../en-US/_lib/match/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\nvar locale = {\n code: 'en-GB',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import React from \"react\";\r\nimport TextField from '@mui/material/TextField';\r\nimport { DatePicker, LocalizationProvider } from '@mui/x-date-pickers';\r\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';\r\nimport { enGB } from \"date-fns/locale\";\r\n\r\nfunction MyDatePicker(props) {\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDateFns} adapterLocale={enGB}>\r\n <DatePicker\r\n type=\"date\"\r\n disabled={props.disabled}\r\n value={props.value}\r\n maxDate={props.toDate}\r\n minDate={props.fromDate}\r\n inputFormat=\"dd/MM/yyyy\"\r\n views={[\"day\", \"month\", \"year\"]}\r\n onChange={(event) => {\r\n props.action(event);\r\n }}\r\n renderInput={(params) => (\r\n <TextField style={props.style} {...params} />\r\n )}\r\n />\r\n </LocalizationProvider>\r\n );\r\n}\r\nexport default MyDatePicker;","import React from 'react';\r\n\r\nconst Style = {\r\n color: \"#1D3557\",\r\n fontSize: \"16px\"\r\n }\r\n\r\nfunction DatePickerText(props) {\r\n return (\r\n <div>\r\n <p style={Style}>{props.Text}</p>\r\n </div>\r\n )\r\n}\r\n\r\nexport default DatePickerText;","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CalendarSearch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSIgLz4KICA8cGF0aCBkPSJtMjIgMjItMS44NzUtMS44NzUiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CalendarSearch = createLucideIcon('CalendarSearch', [\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['path', { d: 'M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25', key: '1jrsq6' }],\n ['path', { d: 'm22 22-1.875-1.875', key: '13zax7' }],\n ['path', { d: 'M3 10h18', key: '8toen8' }],\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['circle', { cx: '18', cy: '18', r: '3', key: '1xkwt0' }],\n]);\n\nexport default CalendarSearch;\n","import React, { useState, useEffect } from \"react\";\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport MyDatePicker from './DatePicker';\r\nimport { Paper, Button, ClickAwayListener, Box } from '@mui/material';\r\nimport { CalendarSearch, X, ArrowRight } from 'lucide-react';\r\nimport './DateSelectionStyle.css'\r\n\r\nfunction DateRangePicker({ size = \"small\", resetDateRangeFilter, ...props }) {\r\n const classes = useStyles();\r\n var today = new Date();\r\n const [open, setOpen] = useState(false);\r\n const [custom, setCustom] = useState(true);\r\n const [weekSelected, setWeekSelected] = useState(false);\r\n const [monthSelected, setMonthSelected] = useState(true);\r\n const [yearSelected, setYearSelected] = useState(false);\r\n const [startDate, setStartDate] = useState(props.startDate);\r\n const [endDate, setEndDate] = useState(props.endDate);\r\n\r\n const handleClickAway = () => {\r\n setOpen(false);\r\n };\r\n useEffect(() => {\r\n let diff = getNumberOfDays(props.startDate, props.endDate);\r\n if (props.startDate && sameDay(props.startDate, new Date())) {\r\n if (diff === 7) {\r\n setWeekSelected(true);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(false);\r\n } else if (diff === 30) {\r\n setWeekSelected(false);\r\n setMonthSelected(true);\r\n setYearSelected(false);\r\n setCustom(false);\r\n } else if (diff === 365) {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(true);\r\n setCustom(false);\r\n } else {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(true);\r\n }\r\n } else {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(true);\r\n\r\n }\r\n\r\n }, [startDate, endDate]);\r\n\r\n\r\n function sameDay(d1, d2) {\r\n return d1.getFullYear() === d2.getFullYear() &&\r\n d1.getMonth() === d2.getMonth() &&\r\n d1.getDate() === d2.getDate();\r\n }\r\n\r\n function getNumberOfDays(start, end) {\r\n const date1 = new Date(start);\r\n const date2 = new Date(end);\r\n\r\n // One day in milliseconds\r\n const oneDay = 1000 * 60 * 60 * 24;\r\n\r\n // Calculating the time difference between two dates\r\n const diffInTime = date2.getTime() - date1.getTime();\r\n\r\n // Calculating the no. of days between two dates\r\n const diffInDays = Math.round(diffInTime / oneDay);\r\n\r\n return diffInDays;\r\n }\r\n\r\n const formatDate = (date) => {\r\n const d = new Date(date);\r\n\r\n const day = String(d.getDate()).padStart(2, '0'); // Ensure 2 digits for day\r\n const month = String(d.getMonth() + 1).padStart(2, '0'); // Months are zero-based, add 1\r\n const year = d.getFullYear(); // Get the full year\r\n\r\n return `${day}/${month}/${year}`; // Return formatted string\r\n };\r\n\r\n const handleSetStartDate = (event) => {\r\n if (props.index !== undefined && props.index !== null) {\r\n props.setDateRange(props.index, new Date(event), new Date(props.endDate));\r\n props.handleSetStartDate(props.index, event)\r\n } else {\r\n props.setDateRange(new Date(event), new Date(props.endDate));\r\n props.handleSetStartDate(event)\r\n }\r\n\r\n }\r\n\r\n const handleSetEndDate = (event) => {\r\n props.setDateRange(new Date(props.startDate), new Date(event));\r\n props.handleSetEndDate(event)\r\n }\r\n\r\n const handleOpen = () => {\r\n setOpen(!open);\r\n }\r\n\r\n const handleSeven = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() - 7);\r\n props.setDateRange(relevantDays, today);\r\n setWeekSelected(true);\r\n setYearSelected(false);\r\n setMonthSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleThirty = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() - 30);\r\n props.setDateRange(relevantDays, today);\r\n setMonthSelected(true);\r\n setYearSelected(false);\r\n setWeekSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleYear = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() - 365);\r\n props.setDateRange(relevantDays, today);\r\n setYearSelected(true);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleCustom = () => {\r\n setCustom(!custom);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setYearSelected(false);\r\n }\r\n\r\n const clearDateRange = (e) => {\r\n e.stopPropagation();\r\n setOpen(false);\r\n resetSelected();\r\n resetDateRangeFilter();\r\n }\r\n\r\n const resetSelected = () => {\r\n setCustom(false);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setYearSelected(false);\r\n }\r\n\r\n return (\r\n <ClickAwayListener onClickAway={handleClickAway}>\r\n <div style={{ display: \"inline-block\" }}>\r\n\r\n {/* <IconButton style={{ borderRadius: \"5px\" }} onClick={handleOpen}>{props.startDate && props.endDate ? props.startDate.toDateString() + \" - \" + props.endDate.toDateString() : \"Select a daterange\"}<ChevronDown /></IconButton> */}\r\n <button\r\n onClick={handleOpen}\r\n className={classes.dateRangeButton}\r\n style={{\r\n height: size === \"large\" ? \"40px\" : \"32px\",\r\n width: \"240px\",\r\n // fontSize: size === \"large\" ? \"16px\" : \"14px\",\r\n paddingLeft: size === \"large\" ? \"12px\" : \"8px\",\r\n paddingRight: props.startDate && props.endDate ? \"3px\" : \"8px\",\r\n }}\r\n > {props.startDate && props.endDate ? (\r\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\r\n {formatDate(props.startDate)}\r\n <ArrowRight\r\n style={{\r\n height: \"12px\",\r\n width: \"12px\"\r\n }}\r\n />\r\n {formatDate(props.endDate)}\r\n </div>\r\n ) : (\r\n <span style={{ opacity: \"0.6\" }}>Select a date range</span>\r\n )}\r\n {props.startDate && props.endDate ?\r\n <button\r\n onClick={(e) => clearDateRange(e)}\r\n className={classes.clearDateRangeButton}\r\n style={{\r\n width: size === \"large\" ? \"32px\" : \"24px\",\r\n height: size === \"large\" ? \"32px\" : \"24px\",\r\n }}\r\n >\r\n <X\r\n className={classes.buttonIcon}\r\n style={{\r\n width: size === \"large\" ? \"20px\" : \"16px\",\r\n height: size === \"large\" ? \"20px\" : \"16px\",\r\n }}\r\n />\r\n </button>\r\n :\r\n <CalendarSearch\r\n className={classes.buttonIcon}\r\n style={{\r\n width: size === \"large\" ? \"20px\" : \"16px\",\r\n height: size === \"large\" ? \"20px\" : \"16px\",\r\n }}\r\n />\r\n }\r\n </button>\r\n {open ?\r\n // <Paper elevation={5} style={{ position: \"absolute\", zIndex: \"999\", marginTop: \"6px\" }} >\r\n <div className={classes.card}>\r\n <div className={classes.buttonContainer}>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: weekSelected })} onClick={handleSeven}>Previous week</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: monthSelected })} onClick={handleThirty}>Previous 30 days</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: yearSelected })} onClick={handleYear}>Previous year</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: custom })} onClick={handleCustom}>Date range</button>\r\n </div>\r\n <div className={classes.inputContainer}>\r\n <div className={classes.input}>\r\n <label className={classes.label}>From:</label>\r\n <MyDatePicker style={{ marginRight: \"1rem\" }} disabled={!custom} value={props.startDate} toDate={props.endDate} action={handleSetStartDate} />\r\n </div>\r\n <div className={classes.input}>\r\n <label className={classes.label}>To:</label>\r\n <MyDatePicker value={props.endDate} disabled={!custom} fromDate={props.startDate} action={handleSetEndDate} />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n // </Paper>\r\n : <React.Fragment></React.Fragment>}\r\n </div>\r\n </ClickAwayListener>\r\n );\r\n}\r\nexport default DateRangePicker;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n position: \"absolute\",\r\n zIndex: \"999\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n\r\n boxShadow: \"rgba(149, 157, 165, 0.2) 0px 8px 24px\",\r\n\r\n marginTop: \"6px\",\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n left: \"0px\",\r\n },\r\n },\r\n\r\n buttonIcon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n display: \"block\",\r\n\r\n strokeWidth: \"1.4px\",\r\n color: \"inherit\",\r\n },\r\n\r\n dateRangeButton: {\r\n height: \"28px\",\r\n width: \"240px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n toggleButton: {\r\n height: \"40px\",\r\n padding: \"0 12px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"relative\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #a77d4f\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n selected: {\r\n backgroundColor: \"#a77d4f\", // Style for the \"selected\" state\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\", // Add a border for visual indication\r\n },\r\n\r\n clearDateRangeButton: {\r\n width: \"24px\",\r\n height: \"24px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n borderRadius: \"2px\",\r\n border: \"none\",\r\n\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n\r\n padding: \"0\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n color: \"#D84949\",\r\n backgroundColor: \"#EDEDED\",\r\n }\r\n },\r\n\r\n inputContainer: {\r\n display: 'flex',\r\n gap: '8px',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n\r\n input: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: \"50%\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n marginBottom: \"4px\",\r\n },\r\n\r\n}));","import React, { useEffect, useState } from \"react\";\r\nimport RangeSelector, { Size, Scale, SliderMarker, MinorTick } from 'devextreme-react/range-selector';\r\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\r\nimport { Tooltip, IconButton } from '@mui/material';\r\n// import TimeRange from 'react-timeline-range-slider'\r\nfunction DateRangeSlider(props) {\r\n const [key, setKey] = useState(0);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setKey(prevKey => prevKey + 1);\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n\r\n const updateVisualRange = (e) => {\r\n //Update date range values (This will select and deselect all measurements between these dates)\r\n // if (JSON.stringify(objNewTimeRangeDate) !== JSON.stringify(props.timeRangeDates)) {\r\n props.updateDataRange(e.value, false);\r\n\r\n // } \r\n }\r\n const handlePreviousDay = () => {\r\n var dupDateRange = JSON.parse(JSON.stringify(props.timeRangeDates));\r\n\r\n var dupFromDate = new Date(dupDateRange.fromDate);\r\n var dupToDate = new Date(dupDateRange.toDate);\r\n\r\n var tempFromDate = new Date(dupFromDate.getTime() - 86401000);\r\n var tempToDate = new Date(dupToDate.getTime() - 86401000);\r\n\r\n\r\n props.updateDataRange([tempFromDate, tempToDate], true);\r\n }\r\n\r\n const handleNextDay = () => {\r\n var dupDateRange = JSON.parse(JSON.stringify(props.timeRangeDates));\r\n\r\n var dupFromDate = new Date(dupDateRange.fromDate);\r\n var dupToDate = new Date(dupDateRange.toDate);\r\n\r\n var tempFromDate = new Date(dupFromDate.getTime() + 86401000);\r\n var tempToDate = new Date(dupToDate.getTime() + 86401000);\r\n props.updateDataRange([tempFromDate, tempToDate], true);\r\n\r\n }\r\n\r\n const dateFormatter = (date) => {\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n return `${(\"0\" + (date.getDate())).slice(-2)}/${(\"0\" + (date.getMonth() + 1)).slice(-2)}/${date.getFullYear()} ${(\"0\" + (hour)).slice(-2)}:${(\"0\" + (minute)).slice(-2)}`;\r\n\r\n\r\n //let tempTomorrow = new Date(date.getDate() + 86400000);\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n {props.timeRangeDates !== null &&\r\n <div style={{ display: 'flex', width: '100%' }}>\r\n <div style={{ marginTop: 'auto', marginBottom: 'auto' }}>\r\n <Tooltip title=\"Previous 24 hours\" arrow>\r\n <IconButton style={{ backgroundColor: \"#C3996B\", color: \"white\" }} sx={{ boxShadow: 3 }} onClick={handlePreviousDay} size={\"small\"}>\r\n <ChevronLeft fontSize=\"inherit\" />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <div style={{ width: '100%' }}>\r\n <RangeSelector key={key} id=\"range-selector\" selectedRangeColor=\"#C3996B\" onValueChanged={(e) => updateVisualRange(e)} value={[props.timeRangeDates.startDate, props.timeRangeDates.endDate]}>\r\n <Scale startValue={props.timeRangeDates.fromDate} endValue={props.timeRangeDates.toDate} tickInterval={\"hours\"} >\r\n <MinorTick visible={false} />\r\n </Scale>\r\n <SliderMarker format={dateFormatter} />\r\n <Size height={50} />\r\n </RangeSelector>\r\n </div>\r\n <div style={{ marginTop: 'auto', marginBottom: 'auto' }}>\r\n <Tooltip title=\"Next 24 hours\" arrow>\r\n <IconButton style={{ backgroundColor: \"#C3996B\", color: \"white\" }} sx={{ boxShadow: 3 }} onClick={handleNextDay} size={\"small\"}>\r\n <ChevronRight fontSize=\"inherit\" />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n }\r\n </React.Fragment>\r\n )\r\n} export default DateRangeSlider;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport MyDatePicker from './DatePicker';\r\nimport { Paper, IconButton, Button, ClickAwayListener, Box } from '@mui/material';\r\nimport { ChevronDown } from 'lucide-react';\r\nimport './DateSelectionStyle.css'\r\n\r\nfunction DateSelectionFuture(props) {\r\n const classes = useStyles();\r\n var today = new Date();\r\n const [open, setOpen] = useState(false);\r\n const [custom, setCustom] = useState(true);\r\n const [weekSelected, setWeekSelected] = useState(false);\r\n const [monthSelected, setMonthSelected] = useState(true);\r\n const [yearSelected, setYearSelected] = useState(false);\r\n const [fromDate] = useState(props.FromDate);\r\n const [toDate] = useState(props.ToDate);\r\n\r\n const handleClickAway = () => {\r\n setOpen(false);\r\n };\r\n useEffect(() => {\r\n let diff = getNumberOfDays(props.FromDate, props.ToDate);\r\n if (sameDay(props.FromDate, new Date())) {\r\n if (diff === 7) {\r\n setWeekSelected(true);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(false);\r\n } else if (diff === 30) {\r\n setWeekSelected(false);\r\n setMonthSelected(true);\r\n setYearSelected(false);\r\n setCustom(false);\r\n } else if (diff === 365) {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(true);\r\n setCustom(false);\r\n } else {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(true);\r\n }\r\n } else {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(true);\r\n\r\n }\r\n\r\n }, [fromDate, toDate]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n\r\n function sameDay(d1, d2) {\r\n return d1.getFullYear() === d2.getFullYear() &&\r\n d1.getMonth() === d2.getMonth() &&\r\n d1.getDate() === d2.getDate();\r\n }\r\n\r\n function getNumberOfDays(start, end) {\r\n const date1 = new Date(start);\r\n const date2 = new Date(end);\r\n\r\n // One day in milliseconds\r\n const oneDay = 1000 * 60 * 60 * 24;\r\n\r\n // Calculating the time difference between two dates\r\n const diffInTime = date2.getTime() - date1.getTime();\r\n\r\n // Calculating the no. of days between two dates\r\n const diffInDays = Math.round(diffInTime / oneDay);\r\n\r\n return diffInDays;\r\n }\r\n\r\n\r\n\r\n const setTheFromDate = (event) => {\r\n props.setDates(new Date(event), new Date(props.ToDate));\r\n props.setTheFromDate(event)\r\n }\r\n\r\n const setTheToDate = (event) => {\r\n props.setDates(new Date(props.FromDate), new Date(event));\r\n props.setTheToDate(event)\r\n }\r\n\r\n const handleOpen = () => {\r\n setOpen(!open);\r\n }\r\n\r\n const handleSeven = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() + 7);\r\n props.setDates(today, relevantDays);\r\n setWeekSelected(true);\r\n setYearSelected(false);\r\n setMonthSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleThirty = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() + 30);\r\n props.setDates(today, relevantDays);\r\n setMonthSelected(true);\r\n setYearSelected(false);\r\n setWeekSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleYear = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() + 365);\r\n props.setDates(today, relevantDays);\r\n setYearSelected(true);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleCustom = () => {\r\n setCustom(!custom);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setYearSelected(false);\r\n }\r\n\r\n return (\r\n <ClickAwayListener onClickAway={handleClickAway}>\r\n <div style={{ display: \"inline-block\" }}>\r\n <IconButton style={{ borderRadius: \"5px\" }} onClick={handleOpen}>{props.FromDate.toDateString() + \" - \" + props.ToDate.toDateString()}<ChevronDown /></IconButton>\r\n {open ?\r\n <div className={classes.card}>\r\n <div className={classes.buttonContainer}>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: weekSelected })} onClick={handleSeven}>Next week</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: monthSelected })} onClick={handleThirty}>Next 30 days</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: yearSelected })} onClick={handleYear}>Next year</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: custom })} onClick={handleCustom}>Date range</button>\r\n </div>\r\n <div className={classes.inputContainer}>\r\n <div className={classes.input}>\r\n <label className={classes.label}>From:</label>\r\n <MyDatePicker style={{ marginRight: \"1rem\" }} disabled={!custom} value={props.FromDate} toDate={props.ToDate} action={setTheFromDate} />\r\n </div>\r\n <div className={classes.input}>\r\n <label className={classes.label}>To:</label>\r\n <MyDatePicker value={props.ToDate} disabled={!custom} fromDate={props.FromDate} action={setTheToDate} />\r\n </div>\r\n </div>\r\n </div>\r\n : <React.Fragment></React.Fragment>}\r\n </div>\r\n </ClickAwayListener >\r\n );\r\n}\r\nexport default DateSelectionFuture;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n position: \"absolute\",\r\n zIndex: \"999\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n\r\n boxShadow: \"rgba(149, 157, 165, 0.2) 0px 8px 24px\",\r\n\r\n marginTop: \"6px\",\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n left: \"0px\",\r\n },\r\n },\r\n\r\n buttonIcon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n display: \"block\",\r\n\r\n strokeWidth: \"1.4px\",\r\n color: \"inherit\",\r\n },\r\n\r\n dateRangeButton: {\r\n height: \"28px\",\r\n width: \"240px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n borderRadius: \"4px\",\r\n border: \"1px solid #DCDCDC\",\r\n\r\n backgroundColor: \"white\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n toggleButton: {\r\n height: \"40px\",\r\n padding: \"0 12px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"relative\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #a77d4f\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n selected: {\r\n backgroundColor: \"#a77d4f\", // Style for the \"selected\" state\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\", // Add a border for visual indication\r\n },\r\n\r\n clearDateRangeButton: {\r\n width: \"24px\",\r\n height: \"24px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n borderRadius: \"2px\",\r\n border: \"none\",\r\n\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n\r\n padding: \"0\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n color: \"#D84949\",\r\n backgroundColor: \"#EDEDED\",\r\n }\r\n },\r\n\r\n inputContainer: {\r\n display: 'flex',\r\n gap: '8px',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n\r\n input: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: \"50%\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n marginBottom: \"4px\",\r\n },\r\n\r\n}));","import { createIsAfterIgnoreDatePart } from \"../internals/utils/time-utils.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nexport const validateTime = ({\n adapter,\n value,\n timezone,\n props\n}) => {\n if (value === null) {\n return null;\n }\n const {\n minTime,\n maxTime,\n minutesStep,\n shouldDisableTime,\n disableIgnoringDatePartForTimeValidation = false,\n disablePast,\n disableFuture\n } = props;\n const now = adapter.utils.date(undefined, timezone);\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter.utils);\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n case Boolean(minTime && isAfter(minTime, value)):\n return 'minTime';\n case Boolean(maxTime && isAfter(value, maxTime)):\n return 'maxTime';\n case Boolean(disableFuture && adapter.utils.isAfter(value, now)):\n return 'disableFuture';\n case Boolean(disablePast && adapter.utils.isBefore(value, now)):\n return 'disablePast';\n case Boolean(shouldDisableTime && shouldDisableTime(value, 'hours')):\n return 'shouldDisableTime-hours';\n case Boolean(shouldDisableTime && shouldDisableTime(value, 'minutes')):\n return 'shouldDisableTime-minutes';\n case Boolean(shouldDisableTime && shouldDisableTime(value, 'seconds')):\n return 'shouldDisableTime-seconds';\n case Boolean(minutesStep && adapter.utils.getMinutes(value) % minutesStep !== 0):\n return 'minutesStep';\n default:\n return null;\n }\n};\nvalidateTime.valueManager = singleItemValueManager;","import { validateDate } from \"./validateDate.js\";\nimport { validateTime } from \"./validateTime.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nexport const validateDateTime = ({\n adapter,\n value,\n timezone,\n props\n}) => {\n const dateValidationResult = validateDate({\n adapter,\n value,\n timezone,\n props\n });\n if (dateValidationResult !== null) {\n return dateValidationResult;\n }\n return validateTime({\n adapter,\n value,\n timezone,\n props\n });\n};\nvalidateDateTime.valueManager = singleItemValueManager;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"slots\", \"slotProps\", \"InputProps\", \"inputProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MuiTextField from '@mui/material/TextField';\nimport { useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { refType } from '@mui/utils';\nimport { useDateTimeField } from \"./useDateTimeField.js\";\nimport { useClearableField } from \"../hooks/index.js\";\nimport { PickersTextField } from \"../PickersTextField/index.js\";\nimport { convertFieldResponseIntoMuiTextFieldProps } from \"../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DateTimeField](http://mui.com/x/react-date-pickers/date-time-field/)\n * - [Fields](https://mui.com/x/react-date-pickers/fields/)\n *\n * API:\n *\n * - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)\n */\nconst DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiDateTimeField'\n });\n const {\n slots,\n slotProps,\n InputProps,\n inputProps\n } = themeProps,\n other = _objectWithoutPropertiesLoose(themeProps, _excluded);\n const ownerState = themeProps;\n const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);\n const textFieldProps = useSlotProps({\n elementType: TextField,\n externalSlotProps: slotProps?.textField,\n externalForwardedProps: other,\n ownerState,\n additionalProps: {\n ref: inRef\n }\n });\n\n // TODO: Remove when mui/material-ui#35088 will be merged\n textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);\n textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);\n const fieldResponse = useDateTimeField(textFieldProps);\n const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);\n const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {\n slots,\n slotProps\n }));\n return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateTimeField.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * If `true`, the `input` element is focused during the first mount.\n * @default false\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, a clear button will be shown in the field allowing value clearing.\n * @default false\n */\n clearable: PropTypes.bool,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),\n component: PropTypes.elementType,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * Format of the date when rendered in the input(s).\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.\n */\n FormHelperTextProps: PropTypes.object,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The helper text content.\n */\n helperText: PropTypes.node,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * The id of the `input` element.\n * Use this prop to make `label` and `helperText` accessible for screen readers.\n */\n id: PropTypes.string,\n /**\n * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.\n * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.\n */\n InputLabelProps: PropTypes.object,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Props applied to the Input element.\n * It will be a [`FilledInput`](/material-ui/api/filled-input/),\n * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)\n * component depending on the `variant` prop value.\n */\n InputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.object,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the clear button is clicked.\n */\n onClear: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate a part of the new value that is not present in the format when both `value` and `defaultValue` are empty.\n * For example, on time fields it will be used to determine the date to set.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.\n */\n referenceDate: PropTypes.object,\n /**\n * If `true`, the label is displayed as required and the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)\n * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)\n *\n * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: \"DD\"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.\n *\n * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.\n * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\\u200e/g, '')`.\n *\n * Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.\n * This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.\n *\n * @default false\n */\n shouldRespectLeadingZeros: PropTypes.bool,\n /**\n * The size of the component.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The ref object used to imperatively interact with the field.\n */\n unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport { DateTimeField };","'use client';\n\nimport { singleItemFieldValueManager, singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useField } from \"../internals/hooks/useField/index.js\";\nimport { validateDateTime } from \"../validation/index.js\";\nimport { useSplitFieldProps } from \"../hooks/index.js\";\nimport { useDefaultizedDateTimeField } from \"../internals/hooks/defaultizedFieldProps.js\";\nexport const useDateTimeField = inProps => {\n const props = useDefaultizedDateTimeField(inProps);\n const {\n forwardedProps,\n internalProps\n } = useSplitFieldProps(props, 'date-time');\n return useField({\n forwardedProps,\n internalProps,\n valueManager: singleItemValueManager,\n fieldValueManager: singleItemFieldValueManager,\n validator: validateDateTime,\n valueType: 'date-time'\n });\n};","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass('MuiTab', slot);\n}\nconst tabClasses = generateUtilityClasses('MuiTab', ['root', 'labelIcon', 'textColorInherit', 'textColorPrimary', 'textColorSecondary', 'selected', 'disabled', 'fullWidth', 'wrapped', 'iconWrapper', 'icon']);\nexport default tabClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport unsupportedProp from \"../utils/unsupportedProp.js\";\nimport tabClasses, { getTabUtilityClass } from \"./tabClasses.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n textColor,\n fullWidth,\n wrapped,\n icon,\n label,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', icon && label && 'labelIcon', `textColor${capitalize(textColor)}`, fullWidth && 'fullWidth', wrapped && 'wrapped', selected && 'selected', disabled && 'disabled'],\n icon: ['iconWrapper', 'icon']\n };\n return composeClasses(slots, getTabUtilityClass, classes);\n};\nconst TabRoot = styled(ButtonBase, {\n name: 'MuiTab',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.label && ownerState.icon && styles.labelIcon, styles[`textColor${capitalize(ownerState.textColor)}`], ownerState.fullWidth && styles.fullWidth, ownerState.wrapped && styles.wrapped, {\n [`& .${tabClasses.iconWrapper}`]: styles.iconWrapper\n }, {\n [`& .${tabClasses.icon}`]: styles.icon\n }];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.button,\n maxWidth: 360,\n minWidth: 90,\n position: 'relative',\n minHeight: 48,\n flexShrink: 0,\n padding: '12px 16px',\n overflow: 'hidden',\n whiteSpace: 'normal',\n textAlign: 'center',\n lineHeight: 1.25,\n variants: [{\n props: ({\n ownerState\n }) => ownerState.label && (ownerState.iconPosition === 'top' || ownerState.iconPosition === 'bottom'),\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.label && ownerState.iconPosition !== 'top' && ownerState.iconPosition !== 'bottom',\n style: {\n flexDirection: 'row'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.icon && ownerState.label,\n style: {\n minHeight: 72,\n paddingTop: 9,\n paddingBottom: 9\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'top',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginBottom: 6\n }\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'bottom',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginTop: 6\n }\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'start',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginRight: theme.spacing(1)\n }\n }\n }, {\n props: ({\n ownerState,\n iconPosition\n }) => ownerState.icon && ownerState.label && iconPosition === 'end',\n style: {\n [`& > .${tabClasses.icon}`]: {\n marginLeft: theme.spacing(1)\n }\n }\n }, {\n props: {\n textColor: 'inherit'\n },\n style: {\n color: 'inherit',\n opacity: 0.6,\n // same opacity as theme.palette.text.secondary\n [`&.${tabClasses.selected}`]: {\n opacity: 1\n },\n [`&.${tabClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n }\n }\n }, {\n props: {\n textColor: 'primary'\n },\n style: {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n }, {\n props: {\n textColor: 'secondary'\n },\n style: {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.secondary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.fullWidth,\n style: {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.wrapped,\n style: {\n fontSize: theme.typography.pxToRem(12)\n }\n }]\n})));\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTab'\n });\n const {\n className,\n disabled = false,\n disableFocusRipple = false,\n // eslint-disable-next-line react/prop-types\n fullWidth,\n icon: iconProp,\n iconPosition = 'top',\n // eslint-disable-next-line react/prop-types\n indicator,\n label,\n onChange,\n onClick,\n onFocus,\n // eslint-disable-next-line react/prop-types\n selected,\n // eslint-disable-next-line react/prop-types\n selectionFollowsFocus,\n // eslint-disable-next-line react/prop-types\n textColor = 'inherit',\n value,\n wrapped = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disabled,\n disableFocusRipple,\n selected,\n icon: !!iconProp,\n iconPosition,\n label: !!label,\n fullWidth,\n textColor,\n wrapped\n };\n const classes = useUtilityClasses(ownerState);\n const icon = iconProp && label && /*#__PURE__*/React.isValidElement(iconProp) ? /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.icon, iconProp.props.className)\n }) : iconProp;\n const handleClick = event => {\n if (!selected && onChange) {\n onChange(event, value);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const handleFocus = event => {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n return /*#__PURE__*/_jsxs(TabRoot, {\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, className),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n ownerState: ownerState,\n tabIndex: selected ? 0 : -1,\n ...other,\n children: [iconPosition === 'top' || iconPosition === 'start' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [icon, label]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, icon]\n }), indicator]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display.\n */\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n /**\n * The position of the icon relative to the label.\n * @default 'top'\n */\n iconPosition: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * The label element.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n * @default false\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default Tab;","function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\nexport default function animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n const cancel = () => {\n cancelled = true;\n };\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n requestAnimationFrame(step);\n };\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n requestAnimationFrame(step);\n return cancel;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from \"../utils/debounce.js\";\nimport { ownerWindow, unstable_useEnhancedEffect as useEnhancedEffect } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\nexport default function ScrollbarSize(props) {\n const {\n onChange,\n ...other\n } = props;\n const scrollbarHeight = React.useRef();\n const nodeRef = React.useRef(null);\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n useEnhancedEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n style: styles,\n ref: nodeRef,\n ...other\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","'use client';\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport KeyboardArrowLeft from \"../internal/svg-icons/KeyboardArrowLeft.js\";\nimport KeyboardArrowRight from \"../internal/svg-icons/KeyboardArrowRight.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from \"./tabScrollButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses.disabled}`]: {\n opacity: 0\n },\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n width: '100%',\n height: 40,\n '& svg': {\n transform: 'var(--TabScrollButton-svgRotate)'\n }\n }\n }]\n});\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n const {\n className,\n slots = {},\n slotProps = {},\n direction,\n orientation,\n disabled,\n ...other\n } = props;\n const isRtl = useRtl();\n const ownerState = {\n isRtl,\n ...props\n };\n const classes = useUtilityClasses(ownerState);\n const StartButtonIcon = slots.StartScrollButtonIcon ?? KeyboardArrowLeft;\n const EndButtonIcon = slots.EndScrollButtonIcon ?? KeyboardArrowRight;\n const startButtonIconProps = useSlotProps({\n elementType: StartButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n const endButtonIconProps = useSlotProps({\n elementType: EndButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n return /*#__PURE__*/_jsx(TabScrollButtonRoot, {\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null,\n ...other,\n style: {\n ...other.style,\n ...(orientation === 'vertical' && {\n '--TabScrollButton-svgRotate': `rotate(${isRtl ? -90 : 90}deg)`\n })\n },\n children: direction === 'left' ? /*#__PURE__*/_jsx(StartButtonIcon, {\n ...startButtonIconProps\n }) : /*#__PURE__*/_jsx(EndButtonIcon, {\n ...endButtonIconProps\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The direction the button should indicate.\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The component orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TabScrollButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nexport default tabsClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport debounce from \"../utils/debounce.js\";\nimport animate from \"../internal/animate.js\";\nimport ScrollbarSize from \"./ScrollbarSize.js\";\nimport TabScrollButton from \"../TabScrollButton/index.js\";\nimport useEventCallback from \"../utils/useEventCallback.js\";\nimport tabsClasses, { getTabsUtilityClass } from \"./tabsClasses.js\";\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport ownerWindow from \"../utils/ownerWindow.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(memoTheme(({\n theme\n}) => ({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollButtonsHideMobile,\n style: {\n [`& .${tabsClasses.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n }\n }]\n})));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.fixed,\n style: {\n overflowX: 'hidden',\n width: '100%'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.hideScrollbar,\n style: {\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollableX,\n style: {\n overflowX: 'auto',\n overflowY: 'hidden'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.scrollableY,\n style: {\n overflowY: 'auto',\n overflowX: 'hidden'\n }\n }]\n});\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})({\n display: 'flex',\n variants: [{\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.centered,\n style: {\n justifyContent: 'center'\n }\n }]\n});\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(memoTheme(({\n theme\n}) => ({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create(),\n variants: [{\n props: {\n indicatorColor: 'primary'\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.primary.main\n }\n }, {\n props: {\n indicatorColor: 'secondary'\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.secondary.main\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.vertical,\n style: {\n height: '100%',\n width: 2,\n right: 0\n }\n }]\n})));\nconst TabsScrollbarSize = styled(ScrollbarSize)({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n});\nconst defaultIndicatorStyle = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n slots = {},\n slotProps = {},\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false,\n ...other\n } = props;\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n const ownerState = {\n ...props,\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n };\n const classes = useUtilityClasses(ownerState);\n const startScrollButtonIconProps = useSlotProps({\n elementType: slots.StartScrollButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n ownerState\n });\n const endScrollButtonIconProps = useSlotProps({\n elementType: slots.EndScrollButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n ownerState\n });\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n const [mounted, setMounted] = React.useState(false);\n const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n const [displayStartScroll, setDisplayStartScroll] = React.useState(false);\n const [displayEndScroll, setDisplayEndScroll] = React.useState(false);\n const [updateScrollObserver, setUpdateScrollObserver] = React.useState(false);\n const [scrollerStyle, setScrollerStyle] = React.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = React.useRef(null);\n const tabListRef = React.useRef(null);\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n // create a new object with ClientRect class props + scrollLeft\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n let tabMeta;\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n }\n }\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (process.env.NODE_ENV !== 'production') {\n if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0 &&\n // if the whole Tabs component is hidden, don't warn\n tabsMeta.clientWidth !== 0) {\n tabsMeta = null;\n console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n warnedOnceTabPresent = true;\n }\n }\n }\n }\n return {\n tabsMeta,\n tabMeta\n };\n };\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n if (vertical) {\n startIndicator = 'top';\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n if (tabMeta && tabsMeta) {\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + tabsMeta.scrollLeft);\n }\n }\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n };\n if (typeof indicatorStyle[startIndicator] !== 'number' || typeof indicatorStyle[size] !== 'number') {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n }\n scroll(scrollValue);\n };\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n if (totalSize + tab[clientSize] > containerSize) {\n // If the first item is longer than the container size, then only scroll\n // by the container size.\n if (i === 0) {\n totalSize = containerSize;\n }\n break;\n }\n totalSize += tab[clientSize];\n }\n return totalSize;\n };\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n };\n\n // TODO Remove <ScrollbarSize /> as browser support for hiding the scrollbar\n // with CSS improves.\n const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayStartScroll || displayEndScroll;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, {\n slots: {\n StartScrollButtonIcon: slots.StartScrollButtonIcon\n },\n slotProps: {\n startScrollButtonIcon: startScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayStartScroll,\n ...TabScrollButtonProps,\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n }) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, {\n slots: {\n EndScrollButtonIcon: slots.EndScrollButtonIcon\n },\n slotProps: {\n endScrollButtonIcon: endScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayEndScroll,\n ...TabScrollButtonProps,\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n }) : null;\n return conditionalElements;\n };\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n if (!tabMeta || !tabsMeta) {\n return;\n }\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n setUpdateScrollObserver(!updateScrollObserver);\n }\n });\n React.useEffect(() => {\n const handleResize = debounce(() => {\n // If the Tabs component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/33276\n // TODO: Add tests that will ensure the component is not failing when\n // replaced by Suspense with a fallback, once React is updated to version 18\n if (tabsRef.current) {\n updateIndicatorState();\n }\n });\n let resizeObserver;\n\n /**\n * @type {MutationCallback}\n */\n const handleMutation = records => {\n records.forEach(record => {\n record.removedNodes.forEach(item => {\n resizeObserver?.unobserve(item);\n });\n record.addedNodes.forEach(item => {\n resizeObserver?.observe(item);\n });\n });\n handleResize();\n updateScrollButtonState();\n };\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let mutationObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n if (typeof MutationObserver !== 'undefined') {\n mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(tabListRef.current, {\n childList: true\n });\n }\n return () => {\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n mutationObserver?.disconnect();\n resizeObserver?.disconnect();\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n\n /**\n * Toggle visibility of start and end scroll buttons\n * Using IntersectionObserver on first and last Tabs.\n */\n React.useEffect(() => {\n const tabListChildren = Array.from(tabListRef.current.children);\n const length = tabListChildren.length;\n if (typeof IntersectionObserver !== 'undefined' && length > 0 && scrollable && scrollButtons !== false) {\n const firstTab = tabListChildren[0];\n const lastTab = tabListChildren[length - 1];\n const observerOptions = {\n root: tabsRef.current,\n threshold: 0.99\n };\n const handleScrollButtonStart = entries => {\n setDisplayStartScroll(!entries[0].isIntersecting);\n };\n const firstObserver = new IntersectionObserver(handleScrollButtonStart, observerOptions);\n firstObserver.observe(firstTab);\n const handleScrollButtonEnd = entries => {\n setDisplayEndScroll(!entries[0].isIntersecting);\n };\n const lastObserver = new IntersectionObserver(handleScrollButtonEnd, observerOptions);\n lastObserver.observe(lastTab);\n return () => {\n firstObserver.disconnect();\n lastObserver.disconnect();\n };\n }\n return undefined;\n }, [scrollable, scrollButtons, updateScrollObserver, childrenProp?.length]);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n updateIndicatorState();\n });\n React.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n const indicator = /*#__PURE__*/_jsx(TabsIndicator, {\n ...TabIndicatorProps,\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: {\n ...indicatorStyle,\n ...TabIndicatorProps.style\n }\n });\n let childIndex = 0;\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, {\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue,\n ...(childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {})\n });\n });\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement;\n // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n const role = currentFocus.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n default:\n break;\n }\n };\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/_jsxs(TabsRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component,\n ...other,\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n children: [/*#__PURE__*/_jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n /**\n * If `true`, the scroll buttons aren't forced hidden on mobile.\n * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n * @default false\n */\n allowScrollButtonsMobile: PropTypes.bool,\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * If `true`, the tabs are centered.\n * This prop is intended for large views.\n * @default false\n */\n centered: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\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.elementType,\n /**\n * Determines the color of the indicator.\n * @default 'primary'\n */\n indicatorColor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * The component used to render the scroll buttons.\n * @default TabScrollButton\n */\n ScrollButtonComponent: PropTypes.elementType,\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `true` will always present them.\n * - `false` will never present them.\n *\n * By default the scroll buttons are hidden on mobile.\n * This behavior can be disabled with `allowScrollButtonsMobile`.\n * @default 'auto'\n */\n scrollButtons: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['auto', false, true]),\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Props applied to the tab indicator element.\n * @default {}\n */\n TabIndicatorProps: PropTypes.object,\n /**\n * Props applied to the [`TabScrollButton`](https://mui.com/material-ui/api/tab-scroll-button/) element.\n * @default {}\n */\n TabScrollButtonProps: PropTypes.object,\n /**\n * Determines the color of the `Tab`.\n * @default 'primary'\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `false`.\n */\n value: PropTypes.any,\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * - `fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n * @default 'standard'\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n /**\n * If `true`, the scrollbar is visible. It can be useful when displaying\n * a long vertical list of tabs.\n * @default false\n */\n visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getDateTimePickerTabsUtilityClass(slot) {\n return generateUtilityClass('MuiDateTimePickerTabs', slot);\n}\nexport const dateTimePickerTabsClasses = generateUtilityClasses('MuiDateTimePickerTabs', ['root']);","'use client';\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Tab from '@mui/material/Tab';\nimport Tabs, { tabsClasses } from '@mui/material/Tabs';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { TimeIcon, DateRangeIcon } from \"../icons/index.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { getDateTimePickerTabsUtilityClass } from \"./dateTimePickerTabsClasses.js\";\nimport { isDatePickerView } from \"../internals/utils/date-utils.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst viewToTab = view => {\n if (isDatePickerView(view)) {\n return 'date';\n }\n return 'time';\n};\nconst tabToView = tab => {\n if (tab === 'date') {\n return 'day';\n }\n return 'hours';\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDateTimePickerTabsUtilityClass, classes);\n};\nconst DateTimePickerTabsRoot = styled(Tabs, {\n name: 'MuiDateTimePickerTabs',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n boxShadow: `0 -1px 0 0 inset ${(theme.vars || theme).palette.divider}`,\n '&:last-child': {\n boxShadow: `0 1px 0 0 inset ${(theme.vars || theme).palette.divider}`,\n [`& .${tabsClasses.indicator}`]: {\n bottom: 'auto',\n top: 0\n }\n }\n}));\n\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Custom slots and subcomponents](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [DateTimePickerTabs API](https://mui.com/x/api/date-pickers/date-time-picker-tabs/)\n */\nconst DateTimePickerTabs = function DateTimePickerTabs(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePickerTabs'\n });\n const {\n dateIcon = /*#__PURE__*/_jsx(DateRangeIcon, {}),\n onViewChange,\n timeIcon = /*#__PURE__*/_jsx(TimeIcon, {}),\n view,\n hidden = typeof window === 'undefined' || window.innerHeight < 667,\n className,\n sx\n } = props;\n const translations = usePickersTranslations();\n const classes = useUtilityClasses(props);\n const handleChange = (event, value) => {\n onViewChange(tabToView(value));\n };\n if (hidden) {\n return null;\n }\n return /*#__PURE__*/_jsxs(DateTimePickerTabsRoot, {\n ownerState: props,\n variant: \"fullWidth\",\n value: viewToTab(view),\n onChange: handleChange,\n className: clsx(className, classes.root),\n sx: sx,\n children: [/*#__PURE__*/_jsx(Tab, {\n value: \"date\",\n \"aria-label\": translations.dateTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: dateIcon\n })\n }), /*#__PURE__*/_jsx(Tab, {\n value: \"time\",\n \"aria-label\": translations.timeTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: timeIcon\n })\n })]\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? DateTimePickerTabs.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Date tab icon.\n * @default DateRange\n */\n dateIcon: PropTypes.node,\n /**\n * Toggles visibility of the tabs allowing view switching.\n * @default `window.innerHeight < 667` for `DesktopDateTimePicker` and `MobileDateTimePicker`, `displayStaticWrapperAs === 'desktop'` for `StaticDateTimePicker`\n */\n hidden: PropTypes.bool,\n /**\n * Callback called when a tab is clicked.\n * @template TView\n * @param {TView} view The view to open\n */\n onViewChange: PropTypes.func.isRequired,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Time tab icon.\n * @default Time\n */\n timeIcon: PropTypes.node,\n /**\n * Currently visible picker view.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired\n} : void 0;\nexport { DateTimePickerTabs };","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersToolbarTextUtilityClass(slot) {\n return generateUtilityClass('MuiPickersToolbarText', slot);\n}\nexport const pickersToolbarTextClasses = generateUtilityClasses('MuiPickersToolbarText', ['root', 'selected']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { getPickersToolbarTextUtilityClass, pickersToolbarTextClasses } from \"./pickersToolbarTextClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected']\n };\n return composeClasses(slots, getPickersToolbarTextUtilityClass, classes);\n};\nconst PickersToolbarTextRoot = styled(Typography, {\n name: 'MuiPickersToolbarText',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`&.${pickersToolbarTextClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => ({\n transition: theme.transitions.create('color'),\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${pickersToolbarTextClasses.selected}`]: {\n color: (theme.vars || theme).palette.text.primary\n }\n}));\nexport const PickersToolbarText = /*#__PURE__*/React.forwardRef(function PickersToolbarText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersToolbarText'\n });\n const {\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(PickersToolbarTextRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n component: \"span\"\n }, other, {\n children: value\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"align\", \"className\", \"selected\", \"typographyClassName\", \"value\", \"variant\", \"width\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Button from '@mui/material/Button';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { PickersToolbarText } from \"./PickersToolbarText.js\";\nimport { getPickersToolbarUtilityClass } from \"./pickersToolbarClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getPickersToolbarUtilityClass, classes);\n};\nconst PickersToolbarButtonRoot = styled(Button, {\n name: 'MuiPickersToolbarButton',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({\n padding: 0,\n minWidth: 16,\n textTransform: 'none'\n});\nexport const PickersToolbarButton = /*#__PURE__*/React.forwardRef(function PickersToolbarButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersToolbarButton'\n });\n const {\n align,\n className,\n selected,\n typographyClassName,\n value,\n variant,\n width\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({\n variant: \"text\",\n ref: ref,\n className: clsx(classes.root, className)\n }, width ? {\n sx: {\n width\n }\n } : {}, other, {\n children: /*#__PURE__*/_jsx(PickersToolbarText, {\n align: align,\n className: typographyClassName,\n variant: variant,\n value: value,\n selected: selected\n })\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getDateTimePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiDateTimePickerToolbar', slot);\n}\nexport const dateTimePickerToolbarClasses = generateUtilityClasses('MuiDateTimePickerToolbar', ['root', 'dateContainer', 'timeContainer', 'timeDigitsContainer', 'separator', 'timeLabelReverse', 'ampmSelection', 'ampmLandscape', 'ampmLabel']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"value\", \"onChange\", \"view\", \"isLandscape\", \"onViewChange\", \"toolbarFormat\", \"toolbarPlaceholder\", \"views\", \"disabled\", \"readOnly\", \"toolbarVariant\", \"toolbarTitle\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport clsx from 'clsx';\nimport { PickersToolbarText } from \"../internals/components/PickersToolbarText.js\";\nimport { PickersToolbar } from \"../internals/components/PickersToolbar.js\";\nimport { PickersToolbarButton } from \"../internals/components/PickersToolbarButton.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { dateTimePickerToolbarClasses, getDateTimePickerToolbarUtilityClass } from \"./dateTimePickerToolbarClasses.js\";\nimport { useMeridiemMode } from \"../internals/hooks/date-helpers-hooks.js\";\nimport { MULTI_SECTION_CLOCK_SECTION_WIDTH } from \"../internals/constants/dimensions.js\";\nimport { formatMeridiem } from \"../internals/utils/date-utils.js\";\nimport { pickersToolbarTextClasses } from \"../internals/components/pickersToolbarTextClasses.js\";\nimport { pickersToolbarClasses } from \"../internals/components/pickersToolbarClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n isLandscape,\n isRtl\n } = ownerState;\n const slots = {\n root: ['root'],\n dateContainer: ['dateContainer'],\n timeContainer: ['timeContainer', isRtl && 'timeLabelReverse'],\n timeDigitsContainer: ['timeDigitsContainer', isRtl && 'timeLabelReverse'],\n separator: ['separator'],\n ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],\n ampmLabel: ['ampmLabel']\n };\n return composeClasses(slots, getDateTimePickerToolbarUtilityClass, classes);\n};\nconst DateTimePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n paddingLeft: 16,\n paddingRight: 16,\n justifyContent: 'space-around',\n position: 'relative',\n variants: [{\n props: {\n toolbarVariant: 'desktop'\n },\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n [`& .${pickersToolbarClasses.content} .${pickersToolbarTextClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.main,\n fontWeight: theme.typography.fontWeightBold\n }\n }\n }, {\n props: {\n toolbarVariant: 'desktop',\n isLandscape: true\n },\n style: {\n borderRight: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: {\n toolbarVariant: 'desktop',\n isLandscape: false\n },\n style: {\n paddingLeft: 24,\n paddingRight: 0\n }\n }]\n}));\nconst DateTimePickerToolbarDateContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'DateContainer',\n overridesResolver: (props, styles) => styles.dateContainer\n})({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n});\nconst DateTimePickerToolbarTimeContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'TimeContainer',\n overridesResolver: (props, styles) => styles.timeContainer\n})({\n display: 'flex',\n flexDirection: 'row',\n variants: [{\n props: {\n isRtl: true\n },\n style: {\n flexDirection: 'row-reverse'\n }\n }, {\n props: {\n toolbarVariant: 'desktop',\n isLandscape: false\n },\n style: {\n gap: 9,\n marginRight: 4,\n alignSelf: 'flex-end'\n }\n }, {\n props: ({\n isLandscape,\n toolbarVariant\n }) => isLandscape && toolbarVariant !== 'desktop',\n style: {\n flexDirection: 'column'\n }\n }, {\n props: ({\n isLandscape,\n toolbarVariant,\n isRtl\n }) => isLandscape && toolbarVariant !== 'desktop' && isRtl,\n style: {\n flexDirection: 'column-reverse'\n }\n }]\n});\nconst DateTimePickerToolbarTimeDigitsContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'TimeDigitsContainer',\n overridesResolver: (props, styles) => styles.timeDigitsContainer\n})({\n display: 'flex',\n variants: [{\n props: {\n isRtl: true\n },\n style: {\n flexDirection: 'row-reverse'\n }\n }, {\n props: {\n toolbarVariant: 'desktop'\n },\n style: {\n gap: 1.5\n }\n }]\n});\nconst DateTimePickerToolbarSeparator = styled(PickersToolbarText, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n margin: '0 4px 0 2px',\n cursor: 'default',\n variants: [{\n props: {\n toolbarVariant: 'desktop'\n },\n style: {\n margin: 0\n }\n }]\n});\n\n// Taken from TimePickerToolbar\nconst DateTimePickerToolbarAmPmSelection = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'AmPmSelection',\n overridesResolver: (props, styles) => [{\n [`.${dateTimePickerToolbarClasses.ampmLabel}`]: styles.ampmLabel\n }, {\n [`&.${dateTimePickerToolbarClasses.ampmLandscape}`]: styles.ampmLandscape\n }, styles.ampmSelection]\n})({\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n marginLeft: 12,\n [`& .${dateTimePickerToolbarClasses.ampmLabel}`]: {\n fontSize: 17\n },\n variants: [{\n props: {\n isLandscape: true\n },\n style: {\n margin: '4px 0 auto',\n flexDirection: 'row',\n justifyContent: 'space-around',\n width: '100%'\n }\n }]\n});\n\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Custom components](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [DateTimePickerToolbar API](https://mui.com/x/api/date-pickers/date-time-picker-toolbar/)\n */\nfunction DateTimePickerToolbar(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePickerToolbar'\n });\n const {\n ampm,\n ampmInClock,\n value,\n onChange,\n view,\n isLandscape,\n onViewChange,\n toolbarFormat,\n toolbarPlaceholder = '––',\n views,\n disabled,\n readOnly,\n toolbarVariant = 'mobile',\n toolbarTitle: inToolbarTitle,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const isRtl = useRtl();\n const ownerState = _extends({}, props, {\n isRtl\n });\n const utils = useUtils();\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(value, ampm, onChange);\n const showAmPmControl = Boolean(ampm && !ampmInClock);\n const isDesktop = toolbarVariant === 'desktop';\n const translations = usePickersTranslations();\n const classes = useUtilityClasses(ownerState);\n const toolbarTitle = inToolbarTitle ?? translations.dateTimePickerToolbarTitle;\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n const dateText = React.useMemo(() => {\n if (!value) {\n return toolbarPlaceholder;\n }\n if (toolbarFormat) {\n return utils.formatByString(value, toolbarFormat);\n }\n return utils.format(value, 'shortDate');\n }, [value, toolbarFormat, toolbarPlaceholder, utils]);\n return /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({\n isLandscape: isLandscape,\n className: clsx(classes.root, className),\n toolbarTitle: toolbarTitle\n }, other, {\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarDateContainer, {\n className: classes.dateContainer,\n ownerState: ownerState,\n children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"subtitle1\",\n onClick: () => onViewChange('year'),\n selected: view === 'year',\n value: value ? utils.format(value, 'year') : '–'\n }), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: isDesktop ? 'h5' : 'h4',\n onClick: () => onViewChange('day'),\n selected: view === 'day',\n value: dateText\n })]\n }), /*#__PURE__*/_jsxs(DateTimePickerToolbarTimeContainer, {\n className: classes.timeContainer,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarTimeDigitsContainer, {\n className: classes.timeDigitsContainer,\n ownerState: ownerState,\n children: [views.includes('hours') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: isDesktop ? 'h5' : 'h3',\n width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,\n onClick: () => onViewChange('hours'),\n selected: view === 'hours',\n value: value ? formatHours(value) : '--'\n }), /*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: isDesktop ? 'h5' : 'h3',\n value: \":\",\n className: classes.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: isDesktop ? 'h5' : 'h3',\n width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,\n onClick: () => onViewChange('minutes'),\n selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',\n value: value ? utils.format(value, 'minutes') : '--',\n disabled: !views.includes('minutes')\n })]\n }), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: isDesktop ? 'h5' : 'h3',\n value: \":\",\n className: classes.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: isDesktop ? 'h5' : 'h3',\n width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,\n onClick: () => onViewChange('seconds'),\n selected: view === 'seconds',\n value: value ? utils.format(value, 'seconds') : '--'\n })]\n })]\n }), showAmPmControl && !isDesktop && /*#__PURE__*/_jsxs(DateTimePickerToolbarAmPmSelection, {\n className: classes.ampmSelection,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"subtitle2\",\n selected: meridiemMode === 'am',\n typographyClassName: classes.ampmLabel,\n value: formatMeridiem(utils, 'am'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"subtitle2\",\n selected: meridiemMode === 'pm',\n typographyClassName: classes.ampmLabel,\n value: formatMeridiem(utils, 'pm'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n disabled: disabled\n })]\n }), ampm && isDesktop && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h5\",\n onClick: () => onViewChange('meridiem'),\n selected: view === 'meridiem',\n value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : '--',\n width: MULTI_SECTION_CLOCK_SECTION_WIDTH\n })]\n })]\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? DateTimePickerToolbar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n ampm: PropTypes.bool,\n ampmInClock: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n /**\n * If `true`, show the toolbar even in desktop mode.\n * @default `true` for Desktop, `false` for Mobile.\n */\n hidden: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n /**\n * Callback called when a toolbar is clicked\n * @template TView\n * @param {TView} view The view to open\n */\n onViewChange: PropTypes.func.isRequired,\n readOnly: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n titleId: PropTypes.string,\n /**\n * Toolbar date format.\n */\n toolbarFormat: PropTypes.string,\n /**\n * Toolbar value placeholder—it is displayed when the value is empty.\n * @default \"––\"\n */\n toolbarPlaceholder: PropTypes.node,\n /**\n * If provided, it will be used instead of `dateTimePickerToolbarTitle` from localization.\n */\n toolbarTitle: PropTypes.node,\n toolbarVariant: PropTypes.oneOf(['desktop', 'mobile']),\n value: PropTypes.object,\n /**\n * Currently visible picker view.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired\n} : void 0;\nexport { DateTimePickerToolbar };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from \"../internals/hooks/useUtils.js\";\nimport { applyDefaultDate } from \"../internals/utils/date-utils.js\";\nimport { DateTimePickerTabs } from \"./DateTimePickerTabs.js\";\nimport { DateTimePickerToolbar } from \"./DateTimePickerToolbar.js\";\nimport { applyDefaultViewProps } from \"../internals/utils/views.js\";\nexport function useDateTimePickerDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();\n const localeText = React.useMemo(() => {\n if (themeProps.localeText?.toolbarTitle == null) {\n return themeProps.localeText;\n }\n return _extends({}, themeProps.localeText, {\n dateTimePickerToolbarTitle: themeProps.localeText.toolbarTitle\n });\n }, [themeProps.localeText]);\n return _extends({}, themeProps, applyDefaultViewProps({\n views: themeProps.views,\n openTo: themeProps.openTo,\n defaultViews: ['year', 'day', 'hours', 'minutes'],\n defaultOpenTo: 'day'\n }), {\n ampm,\n localeText,\n orientation: themeProps.orientation ?? 'portrait',\n // TODO: Remove from public API\n disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||\n // allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520\n themeProps.disablePast || themeProps.disableFuture),\n disableFuture: themeProps.disableFuture ?? false,\n disablePast: themeProps.disablePast ?? false,\n minDate: applyDefaultDate(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),\n minTime: themeProps.minDateTime ?? themeProps.minTime,\n maxTime: themeProps.maxDateTime ?? themeProps.maxTime,\n slots: _extends({\n toolbar: DateTimePickerToolbar,\n tabs: DateTimePickerTabs\n }, themeProps.slots),\n slotProps: _extends({}, themeProps.slotProps, {\n toolbar: _extends({\n ampm\n }, themeProps.slotProps?.toolbar)\n })\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"views\", \"format\"];\nimport { resolveTimeFormat, isTimeView, isInternalTimeView } from \"./time-utils.js\";\nimport { isDatePickerView, resolveDateFormat } from \"./date-utils.js\";\nexport const resolveDateTimeFormat = (utils, _ref, ignoreDateResolving) => {\n let {\n views,\n format\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (format) {\n return format;\n }\n const dateViews = [];\n const timeViews = [];\n views.forEach(view => {\n if (isTimeView(view)) {\n timeViews.push(view);\n } else if (isDatePickerView(view)) {\n dateViews.push(view);\n }\n });\n if (timeViews.length === 0) {\n return resolveDateFormat(utils, _extends({\n views: dateViews\n }, other), false);\n }\n if (dateViews.length === 0) {\n return resolveTimeFormat(utils, _extends({\n views: timeViews\n }, other));\n }\n const timeFormat = resolveTimeFormat(utils, _extends({\n views: timeViews\n }, other));\n const dateFormat = ignoreDateResolving ? utils.formats.keyboardDate : resolveDateFormat(utils, _extends({\n views: dateViews\n }, other), false);\n return `${dateFormat} ${timeFormat}`;\n};\nconst resolveViews = (ampm, views, shouldUseSingleColumn) => {\n if (shouldUseSingleColumn) {\n return views.filter(view => !isInternalTimeView(view) || view === 'hours');\n }\n return ampm ? [...views, 'meridiem'] : views;\n};\nconst resolveShouldRenderTimeInASingleColumn = (timeSteps, threshold) => 24 * 60 / ((timeSteps.hours ?? 1) * (timeSteps.minutes ?? 5)) <= threshold;\nexport function resolveTimeViewsResponse({\n thresholdToRenderTimeInASingleColumn: inThreshold,\n ampm,\n timeSteps: inTimeSteps,\n views\n}) {\n const thresholdToRenderTimeInASingleColumn = inThreshold ?? 24;\n const timeSteps = _extends({\n hours: 1,\n minutes: 5,\n seconds: 5\n }, inTimeSteps);\n const shouldRenderTimeInASingleColumn = resolveShouldRenderTimeInASingleColumn(timeSteps, thresholdToRenderTimeInASingleColumn);\n return {\n thresholdToRenderTimeInASingleColumn,\n timeSteps,\n shouldRenderTimeInASingleColumn,\n views: resolveViews(ampm, views, shouldRenderTimeInASingleColumn)\n };\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getTimeClockUtilityClass(slot) {\n return generateUtilityClass('MuiTimeClock', slot);\n}\nexport const timeClockClasses = generateUtilityClasses('MuiTimeClock', ['root', 'arrowSwitcher']);","export const CLOCK_WIDTH = 220;\nexport const CLOCK_HOUR_WIDTH = 36;\nconst clockCenter = {\n x: CLOCK_WIDTH / 2,\n y: CLOCK_WIDTH / 2\n};\nconst baseClockPoint = {\n x: clockCenter.x,\n y: 0\n};\nconst cx = baseClockPoint.x - clockCenter.x;\nconst cy = baseClockPoint.y - clockCenter.y;\nconst rad2deg = rad => rad * (180 / Math.PI);\nconst getAngleValue = (step, offsetX, offsetY) => {\n const x = offsetX - clockCenter.x;\n const y = offsetY - clockCenter.y;\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n const value = Math.floor(deg / step) || 0;\n const delta = x ** 2 + y ** 2;\n const distance = Math.sqrt(delta);\n return {\n value,\n distance\n };\n};\nexport const getMinutes = (offsetX, offsetY, step = 1) => {\n const angleStep = step * 6;\n let {\n value\n } = getAngleValue(angleStep, offsetX, offsetY);\n value = value * step % 60;\n return value;\n};\nexport const getHours = (offsetX, offsetY, ampm) => {\n const {\n value,\n distance\n } = getAngleValue(30, offsetX, offsetY);\n let hour = value || 12;\n if (!ampm) {\n if (distance < CLOCK_WIDTH / 2 - CLOCK_HOUR_WIDTH) {\n hour += 12;\n hour %= 24;\n }\n } else {\n hour %= 12;\n }\n return hour;\n};","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getClockPointerUtilityClass(slot) {\n return generateUtilityClass('MuiClockPointer', slot);\n}\nexport const clockPointerClasses = generateUtilityClasses('MuiClockPointer', ['root', 'thumb']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"hasSelected\", \"isInner\", \"type\", \"viewValue\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from \"./shared.js\";\nimport { getClockPointerUtilityClass } from \"./clockPointerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n thumb: ['thumb']\n };\n return composeClasses(slots, getClockPointerUtilityClass, classes);\n};\nconst ClockPointerRoot = styled('div', {\n name: 'MuiClockPointer',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n width: 2,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px',\n variants: [{\n props: {\n shouldAnimate: true\n },\n style: {\n transition: theme.transitions.create(['transform', 'height'])\n }\n }]\n}));\nconst ClockPointerThumb = styled('div', {\n name: 'MuiClockPointer',\n slot: 'Thumb',\n overridesResolver: (_, styles) => styles.thumb\n})(({\n theme\n}) => ({\n width: 4,\n height: 4,\n backgroundColor: (theme.vars || theme).palette.primary.contrastText,\n borderRadius: '50%',\n position: 'absolute',\n top: -21,\n left: `calc(50% - ${CLOCK_HOUR_WIDTH / 2}px)`,\n border: `${(CLOCK_HOUR_WIDTH - 4) / 2}px solid ${(theme.vars || theme).palette.primary.main}`,\n boxSizing: 'content-box',\n variants: [{\n props: {\n hasSelected: true\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.primary.main\n }\n }]\n}));\n\n/**\n * @ignore - internal component.\n */\nexport function ClockPointer(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockPointer'\n });\n const {\n className,\n isInner,\n type,\n viewValue\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const previousType = React.useRef(type);\n React.useEffect(() => {\n previousType.current = type;\n }, [type]);\n const ownerState = _extends({}, props, {\n shouldAnimate: previousType.current !== type\n });\n const classes = useUtilityClasses(ownerState);\n const getAngleStyle = () => {\n const max = type === 'hours' ? 12 : 60;\n let angle = 360 / max * viewValue;\n if (type === 'hours' && viewValue > 12) {\n angle -= 360; // round up angle to max 360 degrees\n }\n return {\n height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),\n transform: `rotateZ(${angle}deg)`\n };\n };\n return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({\n style: getAngleStyle(),\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(ClockPointerThumb, {\n ownerState: ownerState,\n className: classes.thumb\n })\n }));\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getClockUtilityClass(slot) {\n return generateUtilityClass('MuiClock', slot);\n}\nexport const clockClasses = generateUtilityClasses('MuiClock', ['root', 'clock', 'wrapper', 'squareMask', 'pin', 'amButton', 'pmButton', 'meridiemText', 'selected']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useEnhancedEffect as useEnhancedEffect, unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { ClockPointer } from \"./ClockPointer.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { CLOCK_HOUR_WIDTH, getHours, getMinutes } from \"./shared.js\";\nimport { getClockUtilityClass } from \"./clockClasses.js\";\nimport { formatMeridiem } from \"../internals/utils/date-utils.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n meridiemMode\n } = ownerState;\n const slots = {\n root: ['root'],\n clock: ['clock'],\n wrapper: ['wrapper'],\n squareMask: ['squareMask'],\n pin: ['pin'],\n amButton: ['amButton', meridiemMode === 'am' && 'selected'],\n pmButton: ['pmButton', meridiemMode === 'pm' && 'selected'],\n meridiemText: ['meridiemText']\n };\n return composeClasses(slots, getClockUtilityClass, classes);\n};\nconst ClockRoot = styled('div', {\n name: 'MuiClock',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(2)\n}));\nconst ClockClock = styled('div', {\n name: 'MuiClock',\n slot: 'Clock',\n overridesResolver: (_, styles) => styles.clock\n})({\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 220,\n width: 220,\n flexShrink: 0,\n position: 'relative',\n pointerEvents: 'none'\n});\nconst ClockWrapper = styled('div', {\n name: 'MuiClock',\n slot: 'Wrapper',\n overridesResolver: (_, styles) => styles.wrapper\n})({\n '&:focus': {\n outline: 'none'\n }\n});\nconst ClockSquareMask = styled('div', {\n name: 'MuiClock',\n slot: 'SquareMask',\n overridesResolver: (_, styles) => styles.squareMask\n})({\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 0,\n // Disable scroll capabilities.\n touchAction: 'none',\n userSelect: 'none',\n variants: [{\n props: {\n disabled: false\n },\n style: {\n '@media (pointer: fine)': {\n cursor: 'pointer',\n borderRadius: '50%'\n },\n '&:active': {\n cursor: 'move'\n }\n }\n }]\n});\nconst ClockPin = styled('div', {\n name: 'MuiClock',\n slot: 'Pin',\n overridesResolver: (_, styles) => styles.pin\n})(({\n theme\n}) => ({\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: (theme.vars || theme).palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n}));\nconst meridiemButtonCommonStyles = (theme, meridiemMode) => ({\n zIndex: 1,\n bottom: 8,\n paddingLeft: 4,\n paddingRight: 4,\n width: CLOCK_HOUR_WIDTH,\n variants: [{\n props: {\n meridiemMode\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.light\n }\n }\n }]\n});\nconst ClockAmButton = styled(IconButton, {\n name: 'MuiClock',\n slot: 'AmButton',\n overridesResolver: (_, styles) => styles.amButton\n})(({\n theme\n}) => _extends({}, meridiemButtonCommonStyles(theme, 'am'), {\n // keeping it here to make TS happy\n position: 'absolute',\n left: 8\n}));\nconst ClockPmButton = styled(IconButton, {\n name: 'MuiClock',\n slot: 'PmButton',\n overridesResolver: (_, styles) => styles.pmButton\n})(({\n theme\n}) => _extends({}, meridiemButtonCommonStyles(theme, 'pm'), {\n // keeping it here to make TS happy\n position: 'absolute',\n right: 8\n}));\nconst ClockMeridiemText = styled(Typography, {\n name: 'MuiClock',\n slot: 'meridiemText',\n overridesResolver: (_, styles) => styles.meridiemText\n})({\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n});\n\n/**\n * @ignore - internal component.\n */\nexport function Clock(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClock'\n });\n const {\n ampm,\n ampmInClock,\n autoFocus,\n children,\n value,\n handleMeridiemChange,\n isTimeDisabled,\n meridiemMode,\n minutesStep = 1,\n onChange,\n selectedId,\n type,\n viewValue,\n disabled = false,\n readOnly,\n className\n } = props;\n const ownerState = props;\n const utils = useUtils();\n const translations = usePickersTranslations();\n const isMoving = React.useRef(false);\n const classes = useUtilityClasses(ownerState);\n const isSelectedTimeDisabled = isTimeDisabled(viewValue, type);\n const isPointerInner = !ampm && type === 'hours' && (viewValue < 1 || viewValue > 12);\n const handleValueChange = (newValue, isFinish) => {\n if (disabled || readOnly) {\n return;\n }\n if (isTimeDisabled(newValue, type)) {\n return;\n }\n onChange(newValue, isFinish);\n };\n const setTime = (event, isFinish) => {\n let {\n offsetX,\n offsetY\n } = event;\n if (offsetX === undefined) {\n const rect = event.target.getBoundingClientRect();\n offsetX = event.changedTouches[0].clientX - rect.left;\n offsetY = event.changedTouches[0].clientY - rect.top;\n }\n const newSelectedValue = type === 'seconds' || type === 'minutes' ? getMinutes(offsetX, offsetY, minutesStep) : getHours(offsetX, offsetY, Boolean(ampm));\n handleValueChange(newSelectedValue, isFinish);\n };\n const handleTouchSelection = event => {\n isMoving.current = true;\n setTime(event, 'shallow');\n };\n const handleTouchEnd = event => {\n if (isMoving.current) {\n setTime(event, 'finish');\n isMoving.current = false;\n }\n };\n const handleMouseMove = event => {\n // event.buttons & PRIMARY_MOUSE_BUTTON\n if (event.buttons > 0) {\n setTime(event.nativeEvent, 'shallow');\n }\n };\n const handleMouseUp = event => {\n if (isMoving.current) {\n isMoving.current = false;\n }\n setTime(event.nativeEvent, 'finish');\n };\n const hasSelected = React.useMemo(() => {\n if (type === 'hours') {\n return true;\n }\n return viewValue % 5 === 0;\n }, [type, viewValue]);\n const keyboardControlStep = type === 'minutes' ? minutesStep : 1;\n const listboxRef = React.useRef(null);\n // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n useEnhancedEffect(() => {\n if (autoFocus) {\n // The ref not being resolved would be a bug in MUI.\n listboxRef.current.focus();\n }\n }, [autoFocus]);\n const handleKeyDown = event => {\n // TODO: Why this early exit?\n if (isMoving.current) {\n return;\n }\n switch (event.key) {\n case 'Home':\n // reset both hours and minutes\n handleValueChange(0, 'partial');\n event.preventDefault();\n break;\n case 'End':\n handleValueChange(type === 'minutes' ? 59 : 23, 'partial');\n event.preventDefault();\n break;\n case 'ArrowUp':\n handleValueChange(viewValue + keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n case 'ArrowDown':\n handleValueChange(viewValue - keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n case 'PageUp':\n handleValueChange(viewValue + 5, 'partial');\n event.preventDefault();\n break;\n case 'PageDown':\n handleValueChange(viewValue - 5, 'partial');\n event.preventDefault();\n break;\n case 'Enter':\n case ' ':\n handleValueChange(viewValue, 'finish');\n event.preventDefault();\n break;\n default:\n // do nothing\n }\n };\n return /*#__PURE__*/_jsxs(ClockRoot, {\n className: clsx(classes.root, className),\n children: [/*#__PURE__*/_jsxs(ClockClock, {\n className: classes.clock,\n children: [/*#__PURE__*/_jsx(ClockSquareMask, {\n onTouchMove: handleTouchSelection,\n onTouchStart: handleTouchSelection,\n onTouchEnd: handleTouchEnd,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove,\n ownerState: {\n disabled\n },\n className: classes.squareMask\n }), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockPin, {\n className: classes.pin\n }), value != null && /*#__PURE__*/_jsx(ClockPointer, {\n type: type,\n viewValue: viewValue,\n isInner: isPointerInner,\n hasSelected: hasSelected\n })]\n }), /*#__PURE__*/_jsx(ClockWrapper, {\n \"aria-activedescendant\": selectedId,\n \"aria-label\": translations.clockLabelText(type, value, utils, value == null ? null : utils.format(value, 'fullTime')),\n ref: listboxRef,\n role: \"listbox\",\n onKeyDown: handleKeyDown,\n tabIndex: 0,\n className: classes.wrapper,\n children: children\n })]\n }), ampm && ampmInClock && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockAmButton, {\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled || meridiemMode === null,\n ownerState: ownerState,\n className: classes.amButton,\n title: formatMeridiem(utils, 'am'),\n children: /*#__PURE__*/_jsx(ClockMeridiemText, {\n variant: \"caption\",\n className: classes.meridiemText,\n children: formatMeridiem(utils, 'am')\n })\n }), /*#__PURE__*/_jsx(ClockPmButton, {\n disabled: disabled || meridiemMode === null,\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n ownerState: ownerState,\n className: classes.pmButton,\n title: formatMeridiem(utils, 'pm'),\n children: /*#__PURE__*/_jsx(ClockMeridiemText, {\n variant: \"caption\",\n className: classes.meridiemText,\n children: formatMeridiem(utils, 'pm')\n })\n })]\n })]\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getClockNumberUtilityClass(slot) {\n return generateUtilityClass('MuiClockNumber', slot);\n}\nexport const clockNumberClasses = generateUtilityClasses('MuiClockNumber', ['root', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"index\", \"inner\", \"label\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from \"./shared.js\";\nimport { getClockNumberUtilityClass, clockNumberClasses } from \"./clockNumberClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', disabled && 'disabled']\n };\n return composeClasses(slots, getClockNumberUtilityClass, classes);\n};\nconst ClockNumberRoot = styled('span', {\n name: 'MuiClockNumber',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`&.${clockNumberClasses.disabled}`]: styles.disabled\n }, {\n [`&.${clockNumberClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => ({\n height: CLOCK_HOUR_WIDTH,\n width: CLOCK_HOUR_WIDTH,\n position: 'absolute',\n left: `calc((100% - ${CLOCK_HOUR_WIDTH}px) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color: (theme.vars || theme).palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n '&:focused': {\n backgroundColor: (theme.vars || theme).palette.background.paper\n },\n [`&.${clockNumberClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText\n },\n [`&.${clockNumberClasses.disabled}`]: {\n pointerEvents: 'none',\n color: (theme.vars || theme).palette.text.disabled\n },\n variants: [{\n props: {\n inner: true\n },\n style: _extends({}, theme.typography.body2, {\n color: (theme.vars || theme).palette.text.secondary\n })\n }]\n}));\n\n/**\n * @ignore - internal component.\n */\nexport function ClockNumber(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockNumber'\n });\n const {\n className,\n disabled,\n index,\n inner,\n label,\n selected\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;\n const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);\n const x = Math.round(Math.cos(angle) * length);\n const y = Math.round(Math.sin(angle) * length);\n return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({\n className: clsx(classes.root, className),\n \"aria-disabled\": disabled ? true : undefined,\n \"aria-selected\": selected ? true : undefined,\n role: \"option\",\n style: {\n transform: `translate(${x}px, ${y + (CLOCK_WIDTH - CLOCK_HOUR_WIDTH) / 2}px`\n },\n ownerState: ownerState\n }, other, {\n children: label\n }));\n}","import * as React from 'react';\nimport { ClockNumber } from \"./ClockNumber.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @ignore - internal component.\n */\nexport const getHourNumbers = ({\n ampm,\n value,\n getClockNumberText,\n isDisabled,\n selectedId,\n utils\n}) => {\n const currentHours = value ? utils.getHours(value) : null;\n const hourNumbers = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n return currentHours === hour || currentHours - 12 === hour;\n }\n return currentHours === hour;\n };\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n if (hour === 0) {\n label = '00';\n }\n const inner = !ampm && (hour === 0 || hour > 12);\n label = utils.formatNumber(label);\n const selected = isSelected(hour);\n hourNumbers.push(/*#__PURE__*/_jsx(ClockNumber, {\n id: selected ? selectedId : undefined,\n index: hour,\n inner: inner,\n selected: selected,\n disabled: isDisabled(hour),\n label: label,\n \"aria-label\": getClockNumberText(label)\n }, hour));\n }\n return hourNumbers;\n};\nexport const getMinutesNumbers = ({\n utils,\n value,\n isDisabled,\n getClockNumberText,\n selectedId\n}) => {\n const f = utils.formatNumber;\n return [[5, f('05')], [10, f('10')], [15, f('15')], [20, f('20')], [25, f('25')], [30, f('30')], [35, f('35')], [40, f('40')], [45, f('45')], [50, f('50')], [55, f('55')], [0, f('00')]].map(([numberValue, label], index) => {\n const selected = numberValue === value;\n return /*#__PURE__*/_jsx(ClockNumber, {\n label: label,\n id: selected ? selectedId : undefined,\n index: index + 1,\n inner: false,\n disabled: isDisabled(numberValue),\n selected: selected,\n \"aria-label\": getClockNumberText(label)\n }, numberValue);\n });\n};","import * as React from 'react';\nimport { singleItemValueManager } from \"../utils/valueManagers.js\";\nimport { getTodayDate } from \"../utils/date-utils.js\";\nimport { SECTION_TYPE_GRANULARITY } from \"../utils/getDefaultReferenceDate.js\";\nexport const useClockReferenceDate = ({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n}) => {\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.day,\n timezone,\n getTodayDate: () => getTodayDate(utils, timezone, 'date')\n }),\n // We only want to compute the reference date on mount.\n [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n return value ?? referenceDate;\n};","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"autoFocus\", \"slots\", \"slotProps\", \"value\", \"defaultValue\", \"referenceDate\", \"disableIgnoringDatePartForTimeValidation\", \"maxTime\", \"minTime\", \"disableFuture\", \"disablePast\", \"minutesStep\", \"shouldDisableTime\", \"showViewSwitcher\", \"onChange\", \"view\", \"views\", \"openTo\", \"onViewChange\", \"focusedView\", \"onFocusedViewChange\", \"className\", \"disabled\", \"readOnly\", \"timezone\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId } from '@mui/utils';\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils, useNow } from \"../internals/hooks/useUtils.js\";\nimport { PickersArrowSwitcher } from \"../internals/components/PickersArrowSwitcher/index.js\";\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from \"../internals/utils/time-utils.js\";\nimport { useViews } from \"../internals/hooks/useViews.js\";\nimport { useMeridiemMode } from \"../internals/hooks/date-helpers-hooks.js\";\nimport { PickerViewRoot } from \"../internals/components/PickerViewRoot/index.js\";\nimport { getTimeClockUtilityClass } from \"./timeClockClasses.js\";\nimport { Clock } from \"./Clock.js\";\nimport { getHourNumbers, getMinutesNumbers } from \"./ClockNumbers.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useClockReferenceDate } from \"../internals/hooks/useClockReferenceDate.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n arrowSwitcher: ['arrowSwitcher']\n };\n return composeClasses(slots, getTimeClockUtilityClass, classes);\n};\nconst TimeClockRoot = styled(PickerViewRoot, {\n name: 'MuiTimeClock',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column',\n position: 'relative'\n});\nconst TimeClockArrowSwitcher = styled(PickersArrowSwitcher, {\n name: 'MuiTimeClock',\n slot: 'ArrowSwitcher',\n overridesResolver: (props, styles) => styles.arrowSwitcher\n})({\n position: 'absolute',\n right: 12,\n top: 15\n});\nconst TIME_CLOCK_DEFAULT_VIEWS = ['hours', 'minutes'];\n\n/**\n * Demos:\n *\n * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)\n * - [TimeClock](https://mui.com/x/react-date-pickers/time-clock/)\n *\n * API:\n *\n * - [TimeClock API](https://mui.com/x/api/date-pickers/time-clock/)\n */\nexport const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProps, ref) {\n const utils = useUtils();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTimeClock'\n });\n const {\n ampm = utils.is12HourCycleInCurrentLocale(),\n ampmInClock = false,\n autoFocus,\n slots,\n slotProps,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableIgnoringDatePartForTimeValidation = false,\n maxTime,\n minTime,\n disableFuture,\n disablePast,\n minutesStep = 1,\n shouldDisableTime,\n showViewSwitcher,\n onChange,\n view: inView,\n views = TIME_CLOCK_DEFAULT_VIEWS,\n openTo,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n className,\n disabled,\n readOnly,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'TimeClock',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const valueOrReferenceDate = useClockReferenceDate({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n });\n const translations = usePickersTranslations();\n const now = useNow(timezone);\n const {\n view,\n setView,\n previousView,\n nextView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onViewChange,\n onChange: handleValueChange,\n focusedView,\n onFocusedViewChange\n });\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(valueOrReferenceDate, ampm, setValueAndGoToNextView);\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n const shouldCheckPastEnd = viewType === 'hours' || viewType === 'minutes' && views.includes('seconds');\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n if (disableFuture && isAfter(start, now)) {\n return false;\n }\n if (disablePast && isAfter(now, shouldCheckPastEnd ? end : start)) {\n return false;\n }\n return true;\n };\n const isValidValue = (timeValue, step = 1) => {\n if (timeValue % step !== 0) {\n return false;\n }\n if (shouldDisableTime) {\n switch (viewType) {\n case 'hours':\n return !shouldDisableTime(utils.setHours(valueOrReferenceDate, timeValue), 'hours');\n case 'minutes':\n return !shouldDisableTime(utils.setMinutes(valueOrReferenceDate, timeValue), 'minutes');\n case 'seconds':\n return !shouldDisableTime(utils.setSeconds(valueOrReferenceDate, timeValue), 'seconds');\n default:\n return false;\n }\n }\n return true;\n };\n switch (viewType) {\n case 'hours':\n {\n const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(valueWithMeridiem);\n }\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(valueOrReferenceDate, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(valueOrReferenceDate, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n default:\n throw new Error('not supported');\n }\n }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils, disableFuture, disablePast, now, views]);\n const selectedId = useId();\n const viewProps = React.useMemo(() => {\n switch (view) {\n case 'hours':\n {\n const handleHoursChange = (hourValue, isFinish) => {\n const valueWithMeridiem = convertValueToMeridiem(hourValue, meridiemMode, ampm);\n setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');\n };\n return {\n onChange: handleHoursChange,\n viewValue: utils.getHours(valueOrReferenceDate),\n children: getHourNumbers({\n value,\n utils,\n ampm,\n onChange: handleHoursChange,\n getClockNumberText: translations.hoursClockNumberText,\n isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),\n selectedId\n })\n };\n }\n case 'minutes':\n {\n const minutesValue = utils.getMinutes(valueOrReferenceDate);\n const handleMinutesChange = (minuteValue, isFinish) => {\n setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minuteValue), isFinish, 'minutes');\n };\n return {\n viewValue: minutesValue,\n onChange: handleMinutesChange,\n children: getMinutesNumbers({\n utils,\n value: minutesValue,\n onChange: handleMinutesChange,\n getClockNumberText: translations.minutesClockNumberText,\n isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),\n selectedId\n })\n };\n }\n case 'seconds':\n {\n const secondsValue = utils.getSeconds(valueOrReferenceDate);\n const handleSecondsChange = (secondValue, isFinish) => {\n setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, secondValue), isFinish, 'seconds');\n };\n return {\n viewValue: secondsValue,\n onChange: handleSecondsChange,\n children: getMinutesNumbers({\n utils,\n value: secondsValue,\n onChange: handleSecondsChange,\n getClockNumberText: translations.secondsClockNumberText,\n isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),\n selectedId\n })\n };\n }\n default:\n throw new Error('You must provide the type for ClockView');\n }\n }, [view, utils, value, ampm, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(TimeClockRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(Clock, _extends({\n autoFocus: autoFocus ?? !!focusedView,\n ampmInClock: ampmInClock && views.includes('hours'),\n value: value,\n type: view,\n ampm: ampm,\n minutesStep: minutesStep,\n isTimeDisabled: isTimeDisabled,\n meridiemMode: meridiemMode,\n handleMeridiemChange: handleMeridiemChange,\n selectedId: selectedId,\n disabled: disabled,\n readOnly: readOnly\n }, viewProps)), showViewSwitcher && /*#__PURE__*/_jsx(TimeClockArrowSwitcher, {\n className: classes.arrowSwitcher,\n slots: slots,\n slotProps: slotProps,\n onGoToPrevious: () => setView(previousView),\n isPreviousDisabled: !previousView,\n previousLabel: translations.openPreviousView,\n onGoToNext: () => setView(nextView),\n isNextDisabled: !nextView,\n nextLabel: translations.openNextView,\n ownerState: ownerState\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TimeClock.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker views and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n /**\n * If `true`, the picker views and text field are read-only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid time using the validation props, except callbacks such as `shouldDisableTime`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n showViewSwitcher: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n /**\n * Available views.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getDigitalClockUtilityClass(slot) {\n return generateUtilityClass('MuiDigitalClock', slot);\n}\nexport const digitalClockClasses = generateUtilityClasses('MuiDigitalClock', ['root', 'list', 'item']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"timeStep\", \"autoFocus\", \"slots\", \"slotProps\", \"value\", \"defaultValue\", \"referenceDate\", \"disableIgnoringDatePartForTimeValidation\", \"maxTime\", \"minTime\", \"disableFuture\", \"disablePast\", \"minutesStep\", \"shouldDisableTime\", \"onChange\", \"view\", \"openTo\", \"onViewChange\", \"focusedView\", \"onFocusedViewChange\", \"className\", \"disabled\", \"readOnly\", \"views\", \"skipDisabled\", \"timezone\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport composeClasses from '@mui/utils/composeClasses';\nimport MenuItem from '@mui/material/MenuItem';\nimport MenuList from '@mui/material/MenuList';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils, useNow } from \"../internals/hooks/useUtils.js\";\nimport { createIsAfterIgnoreDatePart } from \"../internals/utils/time-utils.js\";\nimport { PickerViewRoot } from \"../internals/components/PickerViewRoot/index.js\";\nimport { getDigitalClockUtilityClass } from \"./digitalClockClasses.js\";\nimport { useViews } from \"../internals/hooks/useViews.js\";\nimport { DIGITAL_CLOCK_VIEW_HEIGHT } from \"../internals/constants/dimensions.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useClockReferenceDate } from \"../internals/hooks/useClockReferenceDate.js\";\nimport { getFocusedListItemIndex } from \"../internals/utils/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n list: ['list'],\n item: ['item']\n };\n return composeClasses(slots, getDigitalClockUtilityClass, classes);\n};\nconst DigitalClockRoot = styled(PickerViewRoot, {\n name: 'MuiDigitalClock',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n overflowY: 'auto',\n width: '100%',\n '@media (prefers-reduced-motion: no-preference)': {\n scrollBehavior: 'auto'\n },\n maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT,\n variants: [{\n props: {\n alreadyRendered: true\n },\n style: {\n '@media (prefers-reduced-motion: no-preference)': {\n scrollBehavior: 'smooth'\n }\n }\n }]\n});\nconst DigitalClockList = styled(MenuList, {\n name: 'MuiDigitalClock',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n padding: 0\n});\nconst DigitalClockItem = styled(MenuItem, {\n name: 'MuiDigitalClock',\n slot: 'Item',\n overridesResolver: (props, styles) => styles.item\n})(({\n theme\n}) => ({\n padding: '8px 16px',\n margin: '2px 4px',\n '&:first-of-type': {\n marginTop: 4\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n },\n '&.Mui-selected': {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:focus-visible, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n },\n '&.Mui-focusVisible': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)\n }\n}));\n/**\n * Demos:\n *\n * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)\n * - [DigitalClock](https://mui.com/x/react-date-pickers/digital-clock/)\n *\n * API:\n *\n * - [DigitalClock API](https://mui.com/x/api/date-pickers/digital-clock/)\n */\nexport const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(inProps, ref) {\n const utils = useUtils();\n const containerRef = React.useRef(null);\n const handleRef = useForkRef(ref, containerRef);\n const listRef = React.useRef(null);\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDigitalClock'\n });\n const {\n ampm = utils.is12HourCycleInCurrentLocale(),\n timeStep = 30,\n autoFocus,\n slots,\n slotProps,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableIgnoringDatePartForTimeValidation = false,\n maxTime,\n minTime,\n disableFuture,\n disablePast,\n minutesStep = 1,\n shouldDisableTime,\n onChange,\n view: inView,\n openTo,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n className,\n disabled,\n readOnly,\n views = ['hours'],\n skipDisabled = false,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange: handleRawValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'DigitalClock',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const translations = usePickersTranslations();\n const now = useNow(timezone);\n const ownerState = React.useMemo(() => _extends({}, props, {\n alreadyRendered: !!containerRef.current\n }), [props]);\n const classes = useUtilityClasses(ownerState);\n const ClockItem = slots?.digitalClockItem ?? DigitalClockItem;\n const clockItemProps = useSlotProps({\n elementType: ClockItem,\n externalSlotProps: slotProps?.digitalClockItem,\n ownerState: {},\n className: classes.item\n });\n const valueOrReferenceDate = useClockReferenceDate({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n });\n const handleValueChange = useEventCallback(newValue => handleRawValueChange(newValue, 'finish', 'hours'));\n const {\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onViewChange,\n onChange: handleValueChange,\n focusedView,\n onFocusedViewChange\n });\n const handleItemSelect = useEventCallback(newValue => {\n setValueAndGoToNextView(newValue, 'finish');\n });\n React.useEffect(() => {\n if (containerRef.current === null) {\n return;\n }\n const activeItem = containerRef.current.querySelector('[role=\"listbox\"] [role=\"option\"][tabindex=\"0\"], [role=\"listbox\"] [role=\"option\"][aria-selected=\"true\"]');\n if (!activeItem) {\n return;\n }\n const offsetTop = activeItem.offsetTop;\n if (autoFocus || !!focusedView) {\n activeItem.focus();\n }\n\n // Subtracting the 4px of extra margin intended for the first visible section item\n containerRef.current.scrollTop = offsetTop - 4;\n });\n const isTimeDisabled = React.useCallback(valueToCheck => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n const containsValidTime = () => {\n if (minTime && isAfter(minTime, valueToCheck)) {\n return false;\n }\n if (maxTime && isAfter(valueToCheck, maxTime)) {\n return false;\n }\n if (disableFuture && isAfter(valueToCheck, now)) {\n return false;\n }\n if (disablePast && isAfter(now, valueToCheck)) {\n return false;\n }\n return true;\n };\n const isValidValue = () => {\n if (utils.getMinutes(valueToCheck) % minutesStep !== 0) {\n return false;\n }\n if (shouldDisableTime) {\n return !shouldDisableTime(valueToCheck, 'hours');\n }\n return true;\n };\n return !containsValidTime() || !isValidValue();\n }, [disableIgnoringDatePartForTimeValidation, utils, minTime, maxTime, disableFuture, now, disablePast, minutesStep, shouldDisableTime]);\n const timeOptions = React.useMemo(() => {\n const result = [];\n const startOfDay = utils.startOfDay(valueOrReferenceDate);\n let nextTimeStepOption = startOfDay;\n while (utils.isSameDay(valueOrReferenceDate, nextTimeStepOption)) {\n result.push(nextTimeStepOption);\n nextTimeStepOption = utils.addMinutes(nextTimeStepOption, timeStep);\n }\n return result;\n }, [valueOrReferenceDate, timeStep, utils]);\n const focusedOptionIndex = timeOptions.findIndex(option => utils.isEqual(option, valueOrReferenceDate));\n const handleKeyDown = event => {\n switch (event.key) {\n case 'PageUp':\n {\n const newIndex = getFocusedListItemIndex(listRef.current) - 5;\n const children = listRef.current.children;\n const newFocusedIndex = Math.max(0, newIndex);\n const childToFocus = children[newFocusedIndex];\n if (childToFocus) {\n childToFocus.focus();\n }\n event.preventDefault();\n break;\n }\n case 'PageDown':\n {\n const newIndex = getFocusedListItemIndex(listRef.current) + 5;\n const children = listRef.current.children;\n const newFocusedIndex = Math.min(children.length - 1, newIndex);\n const childToFocus = children[newFocusedIndex];\n if (childToFocus) {\n childToFocus.focus();\n }\n event.preventDefault();\n break;\n }\n default:\n }\n };\n return /*#__PURE__*/_jsx(DigitalClockRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(DigitalClockList, {\n ref: listRef,\n role: \"listbox\",\n \"aria-label\": translations.timePickerToolbarTitle,\n className: classes.list,\n onKeyDown: handleKeyDown,\n children: timeOptions.map((option, index) => {\n if (skipDisabled && isTimeDisabled(option)) {\n return null;\n }\n const isSelected = utils.isEqual(option, value);\n const formattedValue = utils.format(option, ampm ? 'fullTime12h' : 'fullTime24h');\n const tabIndex = focusedOptionIndex === index || focusedOptionIndex === -1 && index === 0 ? 0 : -1;\n return /*#__PURE__*/_jsx(ClockItem, _extends({\n onClick: () => !readOnly && handleItemSelect(option),\n selected: isSelected,\n disabled: disabled || isTimeDisabled(option),\n disableRipple: readOnly,\n role: \"option\"\n // aria-readonly is not supported here and does not have any effect\n ,\n \"aria-disabled\": readOnly,\n \"aria-selected\": isSelected,\n tabIndex: tabIndex\n }, clockItemProps, {\n children: formattedValue\n }), `${option.valueOf()}-${formattedValue}`);\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DigitalClock.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker views and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['hours']),\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['hours']),\n /**\n * If `true`, the picker views and text field are read-only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid time using the validation props, except callbacks such as `shouldDisableTime`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overrideable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The time steps between two time options.\n * For example, if `timeStep = 45`, then the available time options will be `[00:00, 00:45, 01:30, 02:15, 03:00, etc.]`.\n * @default 30\n */\n timeStep: PropTypes.number,\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['hours']),\n /**\n * Available views.\n * @default ['hours']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours']))\n} : void 0;","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getMultiSectionDigitalClockUtilityClass(slot) {\n return generateUtilityClass('MuiMultiSectionDigitalClock', slot);\n}\nexport const multiSectionDigitalClockClasses = generateUtilityClasses('MuiMultiSectionDigitalClock', ['root']);","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getMultiSectionDigitalClockSectionUtilityClass(slot) {\n return generateUtilityClass('MuiMultiSectionDigitalClockSection', slot);\n}\nexport const multiSectionDigitalClockSectionClasses = generateUtilityClasses('MuiMultiSectionDigitalClockSection', ['root', 'item']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoFocus\", \"onChange\", \"className\", \"disabled\", \"readOnly\", \"items\", \"active\", \"slots\", \"slotProps\", \"skipDisabled\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport MenuList from '@mui/material/MenuList';\nimport MenuItem from '@mui/material/MenuItem';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { getMultiSectionDigitalClockSectionUtilityClass } from \"./multiSectionDigitalClockSectionClasses.js\";\nimport { DIGITAL_CLOCK_VIEW_HEIGHT, MULTI_SECTION_CLOCK_SECTION_WIDTH } from \"../internals/constants/dimensions.js\";\nimport { getFocusedListItemIndex } from \"../internals/utils/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n item: ['item']\n };\n return composeClasses(slots, getMultiSectionDigitalClockSectionUtilityClass, classes);\n};\nconst MultiSectionDigitalClockSectionRoot = styled(MenuList, {\n name: 'MuiMultiSectionDigitalClockSection',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT,\n width: 56,\n padding: 0,\n overflow: 'hidden',\n '@media (prefers-reduced-motion: no-preference)': {\n scrollBehavior: 'auto'\n },\n '@media (pointer: fine)': {\n '&:hover': {\n overflowY: 'auto'\n }\n },\n '@media (pointer: none), (pointer: coarse)': {\n overflowY: 'auto'\n },\n '&:not(:first-of-type)': {\n borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`\n },\n '&::after': {\n display: 'block',\n content: '\"\"',\n // subtracting the height of one item, extra margin and borders to make sure the max height is correct\n height: 'calc(100% - 40px - 6px)'\n },\n variants: [{\n props: {\n alreadyRendered: true\n },\n style: {\n '@media (prefers-reduced-motion: no-preference)': {\n scrollBehavior: 'smooth'\n }\n }\n }]\n}));\nconst MultiSectionDigitalClockSectionItem = styled(MenuItem, {\n name: 'MuiMultiSectionDigitalClockSection',\n slot: 'Item',\n overridesResolver: (_, styles) => styles.item\n})(({\n theme\n}) => ({\n padding: 8,\n margin: '2px 4px',\n width: MULTI_SECTION_CLOCK_SECTION_WIDTH,\n justifyContent: 'center',\n '&:first-of-type': {\n marginTop: 4\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n },\n '&.Mui-selected': {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:focus-visible, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n },\n '&.Mui-focusVisible': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)\n }\n}));\n/**\n * @ignore - internal component.\n */\nexport const MultiSectionDigitalClockSection = /*#__PURE__*/React.forwardRef(function MultiSectionDigitalClockSection(inProps, ref) {\n const containerRef = React.useRef(null);\n const handleRef = useForkRef(ref, containerRef);\n const previousActive = React.useRef(null);\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMultiSectionDigitalClockSection'\n });\n const {\n autoFocus,\n onChange,\n className,\n disabled,\n readOnly,\n items,\n active,\n slots,\n slotProps,\n skipDisabled\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = React.useMemo(() => _extends({}, props, {\n alreadyRendered: !!containerRef.current\n }), [props]);\n const classes = useUtilityClasses(ownerState);\n const DigitalClockSectionItem = slots?.digitalClockSectionItem ?? MultiSectionDigitalClockSectionItem;\n React.useEffect(() => {\n if (containerRef.current === null) {\n return;\n }\n const activeItem = containerRef.current.querySelector('[role=\"option\"][tabindex=\"0\"], [role=\"option\"][aria-selected=\"true\"]');\n if (active && autoFocus && activeItem) {\n activeItem.focus();\n }\n if (!activeItem || previousActive.current === activeItem) {\n return;\n }\n previousActive.current = activeItem;\n const offsetTop = activeItem.offsetTop;\n\n // Subtracting the 4px of extra margin intended for the first visible section item\n containerRef.current.scrollTop = offsetTop - 4;\n });\n const focusedOptionIndex = items.findIndex(item => item.isFocused(item.value));\n const handleKeyDown = event => {\n switch (event.key) {\n case 'PageUp':\n {\n const newIndex = getFocusedListItemIndex(containerRef.current) - 5;\n const children = containerRef.current.children;\n const newFocusedIndex = Math.max(0, newIndex);\n const childToFocus = children[newFocusedIndex];\n if (childToFocus) {\n childToFocus.focus();\n }\n event.preventDefault();\n break;\n }\n case 'PageDown':\n {\n const newIndex = getFocusedListItemIndex(containerRef.current) + 5;\n const children = containerRef.current.children;\n const newFocusedIndex = Math.min(children.length - 1, newIndex);\n const childToFocus = children[newFocusedIndex];\n if (childToFocus) {\n childToFocus.focus();\n }\n event.preventDefault();\n break;\n }\n default:\n }\n };\n return /*#__PURE__*/_jsx(MultiSectionDigitalClockSectionRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n autoFocusItem: autoFocus && active,\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, other, {\n children: items.map((option, index) => {\n const isItemDisabled = option.isDisabled?.(option.value);\n const isDisabled = disabled || isItemDisabled;\n if (skipDisabled && isDisabled) {\n return null;\n }\n const isSelected = option.isSelected(option.value);\n const tabIndex = focusedOptionIndex === index || focusedOptionIndex === -1 && index === 0 ? 0 : -1;\n return /*#__PURE__*/_jsx(DigitalClockSectionItem, _extends({\n onClick: () => !readOnly && onChange(option.value),\n selected: isSelected,\n disabled: isDisabled,\n disableRipple: readOnly,\n role: \"option\"\n // aria-readonly is not supported here and does not have any effect\n ,\n \"aria-disabled\": readOnly || isDisabled || undefined,\n \"aria-label\": option.ariaLabel,\n \"aria-selected\": isSelected,\n tabIndex: tabIndex,\n className: classes.item\n }, slotProps?.digitalClockSectionItem, {\n children: option.label\n }), option.label);\n })\n }));\n});","export const getHourSectionOptions = ({\n now,\n value,\n utils,\n ampm,\n isDisabled,\n resolveAriaLabel,\n timeStep,\n valueOrReferenceDate\n}) => {\n const currentHours = value ? utils.getHours(value) : null;\n const result = [];\n const isSelected = (hour, overriddenCurrentHours) => {\n const resolvedCurrentHours = overriddenCurrentHours ?? currentHours;\n if (resolvedCurrentHours === null) {\n return false;\n }\n if (ampm) {\n if (hour === 12) {\n return resolvedCurrentHours === 12 || resolvedCurrentHours === 0;\n }\n return resolvedCurrentHours === hour || resolvedCurrentHours - 12 === hour;\n }\n return resolvedCurrentHours === hour;\n };\n const isFocused = hour => {\n return isSelected(hour, utils.getHours(valueOrReferenceDate));\n };\n const endHour = ampm ? 11 : 23;\n for (let hour = 0; hour <= endHour; hour += timeStep) {\n let label = utils.format(utils.setHours(now, hour), ampm ? 'hours12h' : 'hours24h');\n const ariaLabel = resolveAriaLabel(parseInt(label, 10).toString());\n label = utils.formatNumber(label);\n result.push({\n value: hour,\n label,\n isSelected,\n isDisabled,\n isFocused,\n ariaLabel\n });\n }\n return result;\n};\nexport const getTimeSectionOptions = ({\n value,\n utils,\n isDisabled,\n timeStep,\n resolveLabel,\n resolveAriaLabel,\n hasValue = true\n}) => {\n const isSelected = timeValue => {\n if (value === null) {\n return false;\n }\n return hasValue && value === timeValue;\n };\n const isFocused = timeValue => {\n return value === timeValue;\n };\n return [...Array.from({\n length: Math.ceil(60 / timeStep)\n }, (_, index) => {\n const timeValue = timeStep * index;\n return {\n value: timeValue,\n label: utils.formatNumber(resolveLabel(timeValue)),\n isDisabled,\n isSelected,\n isFocused,\n ariaLabel: resolveAriaLabel(timeValue.toString())\n };\n })];\n};","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"timeSteps\", \"autoFocus\", \"slots\", \"slotProps\", \"value\", \"defaultValue\", \"referenceDate\", \"disableIgnoringDatePartForTimeValidation\", \"maxTime\", \"minTime\", \"disableFuture\", \"disablePast\", \"minutesStep\", \"shouldDisableTime\", \"onChange\", \"view\", \"views\", \"openTo\", \"onViewChange\", \"focusedView\", \"onFocusedViewChange\", \"className\", \"disabled\", \"readOnly\", \"skipDisabled\", \"timezone\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils, useNow } from \"../internals/hooks/useUtils.js\";\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from \"../internals/utils/time-utils.js\";\nimport { useViews } from \"../internals/hooks/useViews.js\";\nimport { useMeridiemMode } from \"../internals/hooks/date-helpers-hooks.js\";\nimport { PickerViewRoot } from \"../internals/components/PickerViewRoot/index.js\";\nimport { getMultiSectionDigitalClockUtilityClass } from \"./multiSectionDigitalClockClasses.js\";\nimport { MultiSectionDigitalClockSection } from \"./MultiSectionDigitalClockSection.js\";\nimport { getHourSectionOptions, getTimeSectionOptions } from \"./MultiSectionDigitalClock.utils.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { useClockReferenceDate } from \"../internals/hooks/useClockReferenceDate.js\";\nimport { formatMeridiem } from \"../internals/utils/date-utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMultiSectionDigitalClockUtilityClass, classes);\n};\nconst MultiSectionDigitalClockRoot = styled(PickerViewRoot, {\n name: 'MuiMultiSectionDigitalClock',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n}));\n/**\n * Demos:\n *\n * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)\n * - [DigitalClock](https://mui.com/x/react-date-pickers/digital-clock/)\n *\n * API:\n *\n * - [MultiSectionDigitalClock API](https://mui.com/x/api/date-pickers/multi-section-digital-clock/)\n */\nexport const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function MultiSectionDigitalClock(inProps, ref) {\n const utils = useUtils();\n const isRtl = useRtl();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMultiSectionDigitalClock'\n });\n const {\n ampm = utils.is12HourCycleInCurrentLocale(),\n timeSteps: inTimeSteps,\n autoFocus,\n slots,\n slotProps,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableIgnoringDatePartForTimeValidation = false,\n maxTime,\n minTime,\n disableFuture,\n disablePast,\n minutesStep = 1,\n shouldDisableTime,\n onChange,\n view: inView,\n views: inViews = ['hours', 'minutes'],\n openTo,\n onViewChange,\n focusedView: inFocusedView,\n onFocusedViewChange,\n className,\n disabled,\n readOnly,\n skipDisabled = false,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange: handleRawValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'MultiSectionDigitalClock',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const translations = usePickersTranslations();\n const now = useNow(timezone);\n const timeSteps = React.useMemo(() => _extends({\n hours: 1,\n minutes: 5,\n seconds: 5\n }, inTimeSteps), [inTimeSteps]);\n const valueOrReferenceDate = useClockReferenceDate({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n });\n const handleValueChange = useEventCallback((newValue, selectionState, selectedView) => handleRawValueChange(newValue, selectionState, selectedView));\n const views = React.useMemo(() => {\n if (!ampm || !inViews.includes('hours')) {\n return inViews;\n }\n return inViews.includes('meridiem') ? inViews : [...inViews, 'meridiem'];\n }, [ampm, inViews]);\n const {\n view,\n setValueAndGoToNextView,\n focusedView\n } = useViews({\n view: inView,\n views,\n openTo,\n onViewChange,\n onChange: handleValueChange,\n focusedView: inFocusedView,\n onFocusedViewChange\n });\n const handleMeridiemValueChange = useEventCallback(newValue => {\n setValueAndGoToNextView(newValue, 'finish', 'meridiem');\n });\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(valueOrReferenceDate, ampm, handleMeridiemValueChange, 'finish');\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n const shouldCheckPastEnd = viewType === 'hours' || viewType === 'minutes' && views.includes('seconds');\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n if (disableFuture && isAfter(start, now)) {\n return false;\n }\n if (disablePast && isAfter(now, shouldCheckPastEnd ? end : start)) {\n return false;\n }\n return true;\n };\n const isValidValue = (timeValue, step = 1) => {\n if (timeValue % step !== 0) {\n return false;\n }\n if (shouldDisableTime) {\n switch (viewType) {\n case 'hours':\n return !shouldDisableTime(utils.setHours(valueOrReferenceDate, timeValue), 'hours');\n case 'minutes':\n return !shouldDisableTime(utils.setMinutes(valueOrReferenceDate, timeValue), 'minutes');\n case 'seconds':\n return !shouldDisableTime(utils.setSeconds(valueOrReferenceDate, timeValue), 'seconds');\n default:\n return false;\n }\n }\n return true;\n };\n switch (viewType) {\n case 'hours':\n {\n const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(valueWithMeridiem);\n }\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(valueOrReferenceDate, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(valueOrReferenceDate, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n default:\n throw new Error('not supported');\n }\n }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils, disableFuture, disablePast, now, views]);\n const buildViewProps = React.useCallback(viewToBuild => {\n switch (viewToBuild) {\n case 'hours':\n {\n return {\n onChange: hours => {\n const valueWithMeridiem = convertValueToMeridiem(hours, meridiemMode, ampm);\n setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), 'finish', 'hours');\n },\n items: getHourSectionOptions({\n now,\n value,\n ampm,\n utils,\n isDisabled: hours => isTimeDisabled(hours, 'hours'),\n timeStep: timeSteps.hours,\n resolveAriaLabel: translations.hoursClockNumberText,\n valueOrReferenceDate\n })\n };\n }\n case 'minutes':\n {\n return {\n onChange: minutes => {\n setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minutes), 'finish', 'minutes');\n },\n items: getTimeSectionOptions({\n value: utils.getMinutes(valueOrReferenceDate),\n utils,\n isDisabled: minutes => isTimeDisabled(minutes, 'minutes'),\n resolveLabel: minutes => utils.format(utils.setMinutes(now, minutes), 'minutes'),\n timeStep: timeSteps.minutes,\n hasValue: !!value,\n resolveAriaLabel: translations.minutesClockNumberText\n })\n };\n }\n case 'seconds':\n {\n return {\n onChange: seconds => {\n setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, seconds), 'finish', 'seconds');\n },\n items: getTimeSectionOptions({\n value: utils.getSeconds(valueOrReferenceDate),\n utils,\n isDisabled: seconds => isTimeDisabled(seconds, 'seconds'),\n resolveLabel: seconds => utils.format(utils.setSeconds(now, seconds), 'seconds'),\n timeStep: timeSteps.seconds,\n hasValue: !!value,\n resolveAriaLabel: translations.secondsClockNumberText\n })\n };\n }\n case 'meridiem':\n {\n const amLabel = formatMeridiem(utils, 'am');\n const pmLabel = formatMeridiem(utils, 'pm');\n return {\n onChange: handleMeridiemChange,\n items: [{\n value: 'am',\n label: amLabel,\n isSelected: () => !!value && meridiemMode === 'am',\n isFocused: () => !!valueOrReferenceDate && meridiemMode === 'am',\n ariaLabel: amLabel\n }, {\n value: 'pm',\n label: pmLabel,\n isSelected: () => !!value && meridiemMode === 'pm',\n isFocused: () => !!valueOrReferenceDate && meridiemMode === 'pm',\n ariaLabel: pmLabel\n }]\n };\n }\n default:\n throw new Error(`Unknown view: ${viewToBuild} found.`);\n }\n }, [now, value, ampm, utils, timeSteps.hours, timeSteps.minutes, timeSteps.seconds, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, handleMeridiemChange]);\n const viewsToRender = React.useMemo(() => {\n if (!isRtl) {\n return views;\n }\n const digitViews = views.filter(v => v !== 'meridiem');\n digitViews.reverse();\n if (views.includes('meridiem')) {\n digitViews.push('meridiem');\n }\n return digitViews;\n }, [isRtl, views]);\n const viewTimeOptions = React.useMemo(() => {\n return views.reduce((result, currentView) => {\n return _extends({}, result, {\n [currentView]: buildViewProps(currentView)\n });\n }, {});\n }, [views, buildViewProps]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(MultiSectionDigitalClockRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"group\"\n }, other, {\n children: viewsToRender.map(timeView => /*#__PURE__*/_jsx(MultiSectionDigitalClockSection, {\n items: viewTimeOptions[timeView].items,\n onChange: viewTimeOptions[timeView].onChange,\n active: view === timeView,\n autoFocus: autoFocus ?? focusedView === timeView,\n disabled: disabled,\n readOnly: readOnly,\n slots: slots,\n slotProps: slotProps,\n skipDisabled: skipDisabled,\n \"aria-label\": translations.selectViewText(timeView)\n }, timeView))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MultiSectionDigitalClock.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker views and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),\n /**\n * If `true`, the picker views and text field are read-only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid time using the validation props, except callbacks such as `shouldDisableTime`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overrideable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The time steps between two time unit options.\n * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.\n * @default{ hours: 1, minutes: 5, seconds: 5 }\n */\n timeSteps: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number\n }),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),\n /**\n * Available views.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired)\n} : void 0;","import * as React from 'react';\nimport { TimeClock } from \"../TimeClock/index.js\";\nimport { DigitalClock } from \"../DigitalClock/index.js\";\nimport { MultiSectionDigitalClock } from \"../MultiSectionDigitalClock/index.js\";\nimport { isTimeView } from \"../internals/utils/time-utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const renderTimeViewClock = ({\n view,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n views,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n minutesStep,\n ampm,\n ampmInClock,\n slots,\n slotProps,\n readOnly,\n disabled,\n sx,\n autoFocus,\n showViewSwitcher,\n disableIgnoringDatePartForTimeValidation,\n timezone\n}) => /*#__PURE__*/_jsx(TimeClock, {\n view: view,\n onViewChange: onViewChange,\n focusedView: focusedView && isTimeView(focusedView) ? focusedView : null,\n onFocusedViewChange: onFocusedViewChange,\n views: views.filter(isTimeView),\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minTime: minTime,\n maxTime: maxTime,\n shouldDisableTime: shouldDisableTime,\n minutesStep: minutesStep,\n ampm: ampm,\n ampmInClock: ampmInClock,\n slots: slots,\n slotProps: slotProps,\n readOnly: readOnly,\n disabled: disabled,\n sx: sx,\n autoFocus: autoFocus,\n showViewSwitcher: showViewSwitcher,\n disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,\n timezone: timezone\n});\nexport const renderDigitalClockTimeView = ({\n view,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n views,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n minutesStep,\n ampm,\n slots,\n slotProps,\n readOnly,\n disabled,\n sx,\n autoFocus,\n disableIgnoringDatePartForTimeValidation,\n timeSteps,\n skipDisabled,\n timezone\n}) => /*#__PURE__*/_jsx(DigitalClock, {\n view: view,\n onViewChange: onViewChange,\n focusedView: focusedView,\n onFocusedViewChange: onFocusedViewChange,\n views: views.filter(isTimeView),\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minTime: minTime,\n maxTime: maxTime,\n shouldDisableTime: shouldDisableTime,\n minutesStep: minutesStep,\n ampm: ampm,\n slots: slots,\n slotProps: slotProps,\n readOnly: readOnly,\n disabled: disabled,\n sx: sx,\n autoFocus: autoFocus,\n disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,\n timeStep: timeSteps?.minutes,\n skipDisabled: skipDisabled,\n timezone: timezone\n});\nexport const renderMultiSectionDigitalClockTimeView = ({\n view,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n views,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n minutesStep,\n ampm,\n slots,\n slotProps,\n readOnly,\n disabled,\n sx,\n autoFocus,\n disableIgnoringDatePartForTimeValidation,\n timeSteps,\n skipDisabled,\n timezone\n}) => /*#__PURE__*/_jsx(MultiSectionDigitalClock, {\n view: view,\n onViewChange: onViewChange,\n focusedView: focusedView,\n onFocusedViewChange: onFocusedViewChange,\n views: views.filter(isTimeView),\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minTime: minTime,\n maxTime: maxTime,\n shouldDisableTime: shouldDisableTime,\n minutesStep: minutesStep,\n ampm: ampm,\n slots: slots,\n slotProps: slotProps,\n readOnly: readOnly,\n disabled: disabled,\n sx: sx,\n autoFocus: autoFocus,\n disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,\n timeSteps: timeSteps,\n skipDisabled: skipDisabled,\n timezone: timezone\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport Divider from '@mui/material/Divider';\nimport { PickersLayoutContentWrapper, PickersLayoutRoot, pickersLayoutClasses, usePickerLayout } from \"../PickersLayout/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * @ignore - internal component.\n */\nconst DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function DesktopDateTimePickerLayout(props, ref) {\n const isRtl = useRtl();\n const {\n toolbar,\n tabs,\n content,\n actionBar,\n shortcuts\n } = usePickerLayout(props);\n const {\n sx,\n className,\n isLandscape,\n classes\n } = props;\n const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;\n const ownerState = _extends({}, props, {\n isRtl\n });\n return /*#__PURE__*/_jsxs(PickersLayoutRoot, {\n ref: ref,\n className: clsx(pickersLayoutClasses.root, classes?.root, className),\n sx: [{\n [`& .${pickersLayoutClasses.tabs}`]: {\n gridRow: 4,\n gridColumn: '1 / 4'\n },\n [`& .${pickersLayoutClasses.actionBar}`]: {\n gridRow: 5\n }\n }, ...(Array.isArray(sx) ? sx : [sx])],\n ownerState: ownerState,\n children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/_jsxs(PickersLayoutContentWrapper, {\n className: clsx(pickersLayoutClasses.contentWrapper, classes?.contentWrapper),\n sx: {\n display: 'grid'\n },\n children: [content, tabs, isActionBarVisible && /*#__PURE__*/_jsx(Divider, {\n sx: {\n gridRow: 3,\n gridColumn: '1 / 4'\n }\n })]\n }), actionBar]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopDateTimePickerLayout.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n /**\n * `true` if the application is in right-to-left direction.\n */\n isRtl: PropTypes.bool.isRequired,\n isValid: PropTypes.func.isRequired,\n onAccept: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n onDismiss: PropTypes.func.isRequired,\n onOpen: PropTypes.func.isRequired,\n onSelectShortcut: PropTypes.func.isRequired,\n onSetToday: PropTypes.func.isRequired,\n onViewChange: PropTypes.func.isRequired,\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n value: PropTypes.any,\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,\n wrapperVariant: PropTypes.oneOf(['desktop', 'mobile'])\n} : void 0;\nexport { DesktopDateTimePickerLayout };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"openTo\", \"focusedView\", \"timeViewsCount\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport { refType } from '@mui/utils';\nimport Divider from '@mui/material/Divider';\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { DateTimeField } from \"../DateTimeField/index.js\";\nimport { useDateTimePickerDefaultizedProps } from \"../DateTimePicker/shared.js\";\nimport { renderDateViewCalendar } from \"../dateViewRenderers/dateViewRenderers.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { validateDateTime, extractValidationProps } from \"../validation/index.js\";\nimport { CalendarIcon } from \"../icons/index.js\";\nimport { useDesktopPicker } from \"../internals/hooks/useDesktopPicker/index.js\";\nimport { resolveDateTimeFormat, resolveTimeViewsResponse } from \"../internals/utils/date-time-utils.js\";\nimport { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from \"../timeViewRenderers/index.js\";\nimport { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from \"../MultiSectionDigitalClock/index.js\";\nimport { digitalClockClasses } from \"../DigitalClock/index.js\";\nimport { DesktopDateTimePickerLayout } from \"./DesktopDateTimePickerLayout.js\";\nimport { VIEW_HEIGHT } from \"../internals/constants/dimensions.js\";\nimport { isInternalTimeView } from \"../internals/utils/time-utils.js\";\nimport { isDatePickerView } from \"../internals/utils/date-utils.js\";\nimport { buildGetOpenDialogAriaText } from \"../locales/utils/getPickersLocalization.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {\n const {\n openTo,\n focusedView,\n timeViewsCount\n } = rendererProps,\n otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);\n const finalProps = _extends({}, otherProps, {\n focusedView: null,\n sx: [{\n [`&.${multiSectionDigitalClockClasses.root}`]: {\n borderBottom: 0\n },\n [`&.${multiSectionDigitalClockClasses.root}, .${multiSectionDigitalClockSectionClasses.root}, &.${digitalClockClasses.root}`]: {\n maxHeight: VIEW_HEIGHT\n }\n }]\n });\n const isTimeViewActive = isInternalTimeView(popperView);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [inViewRenderers[!isTimeViewActive ? popperView : 'day']?.(_extends({}, rendererProps, {\n view: !isTimeViewActive ? popperView : 'day',\n focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,\n views: rendererProps.views.filter(isDatePickerView),\n sx: [{\n gridColumn: 1\n }, ...finalProps.sx]\n })), timeViewsCount > 0 && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Divider, {\n orientation: \"vertical\",\n sx: {\n gridColumn: 2\n }\n }), inViewRenderers[isTimeViewActive ? popperView : 'hours']?.(_extends({}, finalProps, {\n view: isTimeViewActive ? popperView : 'hours',\n focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,\n openTo: isInternalTimeView(openTo) ? openTo : 'hours',\n views: rendererProps.views.filter(isInternalTimeView),\n sx: [{\n gridColumn: 3\n }, ...finalProps.sx]\n }))]\n })]\n });\n};\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)\n */\nconst DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n\n // Props with the default values common to all date time pickers\n const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiDesktopDateTimePicker');\n const {\n shouldRenderTimeInASingleColumn,\n thresholdToRenderTimeInASingleColumn,\n views: resolvedViews,\n timeSteps\n } = resolveTimeViewsResponse(defaultizedProps);\n const renderTimeView = shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar,\n hours: renderTimeView,\n minutes: renderTimeView,\n seconds: renderTimeView,\n meridiem: renderTimeView\n }, defaultizedProps.viewRenderers);\n const ampmInClock = defaultizedProps.ampmInClock ?? true;\n // Need to avoid adding the `meridiem` view when unexpected renderer is specified\n const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;\n const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;\n const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];\n\n // Props with the default values specific to the desktop variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateTimeFormat(utils, defaultizedProps),\n views,\n yearsPerRow: defaultizedProps.yearsPerRow ?? 4,\n ampmInClock,\n timeSteps,\n thresholdToRenderTimeInASingleColumn,\n shouldRenderTimeInASingleColumn,\n slots: _extends({\n field: DateTimeField,\n layout: DesktopDateTimePickerLayout,\n openPickerIcon: CalendarIcon\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n }),\n toolbar: _extends({\n hidden: true,\n ampmInClock,\n toolbarVariant: 'desktop'\n }, defaultizedProps.slotProps?.toolbar),\n tabs: _extends({\n hidden: true\n }, defaultizedProps.slotProps?.tabs),\n actionBar: ownerState => _extends({\n actions: actionBarActions\n }, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))\n })\n });\n const {\n renderPicker\n } = useDesktopPicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date-time',\n getOpenDialogAriaText: buildGetOpenDialogAriaText({\n utils,\n formatKey: 'fullDate',\n contextTranslation: translations.openDatePickerDialogue,\n propsTranslation: props.localeText?.openDatePickerDialogue\n }),\n validator: validateDateTime,\n rendererInterceptor\n });\n return renderPicker();\n});\nDesktopDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default true on desktop, false on mobile\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.object,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => <span>...</span>\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Amount of time options below or at which the single column time renderer is used.\n * @default 24\n */\n thresholdToRenderTimeInASingleColumn: PropTypes.number,\n /**\n * The time steps between two time unit options.\n * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.\n * When single column time renderer is used, only `timeStep.minutes` will be used.\n * @default{ hours: 1, minutes: 5, seconds: 5 }\n */\n timeSteps: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number\n }),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n hours: PropTypes.func,\n meridiem: PropTypes.func,\n minutes: PropTypes.func,\n month: PropTypes.func,\n seconds: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 4\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { DesktopDateTimePicker };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport { refType } from '@mui/utils';\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { DateTimeField } from \"../DateTimeField/index.js\";\nimport { useDateTimePickerDefaultizedProps } from \"../DateTimePicker/shared.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { extractValidationProps, validateDateTime } from \"../validation/index.js\";\nimport { useMobilePicker } from \"../internals/hooks/useMobilePicker/index.js\";\nimport { renderDateViewCalendar } from \"../dateViewRenderers/index.js\";\nimport { renderTimeViewClock } from \"../timeViewRenderers/index.js\";\nimport { resolveDateTimeFormat } from \"../internals/utils/date-time-utils.js\";\nimport { buildGetOpenDialogAriaText } from \"../locales/utils/getPickersLocalization.js\";\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)\n */\nconst MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n\n // Props with the default values common to all date time pickers\n const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiMobileDateTimePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar,\n hours: renderTimeViewClock,\n minutes: renderTimeViewClock,\n seconds: renderTimeViewClock\n }, defaultizedProps.viewRenderers);\n const ampmInClock = defaultizedProps.ampmInClock ?? false;\n\n // Props with the default values specific to the mobile variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateTimeFormat(utils, defaultizedProps),\n ampmInClock,\n slots: _extends({\n field: DateTimeField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n }),\n toolbar: _extends({\n hidden: false,\n ampmInClock\n }, defaultizedProps.slotProps?.toolbar),\n tabs: _extends({\n hidden: false\n }, defaultizedProps.slotProps?.tabs)\n })\n });\n const {\n renderPicker\n } = useMobilePicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date-time',\n getOpenDialogAriaText: buildGetOpenDialogAriaText({\n utils,\n formatKey: 'fullDate',\n contextTranslation: translations.openDatePickerDialogue,\n propsTranslation: props.localeText?.openDatePickerDialogue\n }),\n validator: validateDateTime\n });\n return renderPicker();\n});\nMobileDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default true on desktop, false on mobile\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.object,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => <span>...</span>\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n hours: PropTypes.func,\n minutes: PropTypes.func,\n month: PropTypes.func,\n seconds: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { MobileDateTimePicker };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useThemeProps } from '@mui/material/styles';\nimport { refType } from '@mui/utils';\nimport { DesktopDateTimePicker } from \"../DesktopDateTimePicker/index.js\";\nimport { MobileDateTimePicker } from \"../MobileDateTimePicker/index.js\";\nimport { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from \"../internals/utils/utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)\n */\nconst DateTimePicker = /*#__PURE__*/React.forwardRef(function DateTimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePicker'\n });\n const {\n desktopModeMediaQuery = DEFAULT_DESKTOP_MODE_MEDIA_QUERY\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // defaults to `true` in environments where `window.matchMedia` would not be available (i.e. test/jsdom)\n const isDesktop = useMediaQuery(desktopModeMediaQuery, {\n defaultMatches: true\n });\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDateTimePicker, _extends({\n ref: ref\n }, other));\n }\n return /*#__PURE__*/_jsx(MobileDateTimePicker, _extends({\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default utils.is12HourCycleInCurrentLocale()\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default true on desktop, false on mobile\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * @default false\n */\n enableAccessibleFieldDOMStructure: PropTypes.any,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.object,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.object,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.object,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated with the current value changes.\n * When a validation error is detected, the `error` parameter contains a non-null value.\n * This can be used to render an appropriate form error.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @param {TError} error The reason why the current value is not valid.\n * @param {TValue} value The value associated with the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => <span>...</span>\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accepts four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 3. If `\"all\"` is provided, all the sections will be selected.\n * 4. If `null` is provided, no section will be selected.\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Amount of time options below or at which the single column time renderer is used.\n * @default 24\n */\n thresholdToRenderTimeInASingleColumn: PropTypes.number,\n /**\n * The time steps between two time unit options.\n * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.\n * When single column time renderer is used, only `timeStep.minutes` will be used.\n * @default{ hours: 1, minutes: 5, seconds: 5 }\n */\n timeSteps: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number\n }),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n hours: PropTypes.func,\n meridiem: PropTypes.func,\n minutes: PropTypes.func,\n month: PropTypes.func,\n seconds: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 4 on desktop, 3 on mobile\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;\nexport { DateTimePicker };","import React from \"react\";\r\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';\r\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\r\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\r\n\r\nfunction MyDateTimePicker(props) {\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n <DateTimePicker\r\n type=\"date\"\r\n disabled={props.disabled}\r\n value={props.value}\r\n // maxDate={new Date()}\r\n // minDate={props.fromDate}\r\n\r\n ampm={false}\r\n style={{ backgroundColor: 'white !important' }}\r\n format=\"dd/MM/yyyy HH:mm\" // Correct format for dayjs\r\n onChange={(event) => {\r\n props.action(event)\r\n }}\r\n slotProps={{\r\n textField: {\r\n sx: {\r\n backgroundColor: 'white', // Set background color to white\r\n minWidth: 'fit-content', // Set field width to 100%\r\n '& .MuiInputBase-root': {\r\n borderRadius: '4px', // Optional: Customize border radius\r\n },\r\n },\r\n }\r\n }}\r\n />\r\n </LocalizationProvider>\r\n );\r\n}\r\nexport default MyDateTimePicker;","import React, { useState, useEffect } from \"react\";\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport MyDatePicker from './DatePicker';\r\nimport { Paper, Button, ClickAwayListener, Box } from '@mui/material';\r\nimport { CalendarSearch, X, ArrowRight } from 'lucide-react';\r\nimport './DateSelectionStyle.css'\r\n\r\nfunction ProfitLossDateRangePicker({ size = \"small\", resetDateRangeFilter, ...props }) {\r\n const classes = useStyles();\r\n var today = new Date();\r\n const [open, setOpen] = useState(false);\r\n const [custom, setCustom] = useState(true);\r\n const [weekSelected, setWeekSelected] = useState(false);\r\n const [monthSelected, setMonthSelected] = useState(true);\r\n const [yearSelected, setYearSelected] = useState(false);\r\n const [startDate, setStartDate] = useState(props.startDate);\r\n const [endDate, setEndDate] = useState(props.endDate);\r\n\r\n const handleClickAway = () => {\r\n setOpen(false);\r\n };\r\n useEffect(() => {\r\n let diff = getNumberOfDays(props.startDate, props.endDate);\r\n if (props.startDate && sameDay(props.startDate, new Date())) {\r\n if (diff === 7) {\r\n setWeekSelected(true);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(false);\r\n } else if (diff === 30) {\r\n setWeekSelected(false);\r\n setMonthSelected(true);\r\n setYearSelected(false);\r\n setCustom(false);\r\n } else if (diff === 365) {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(true);\r\n setCustom(false);\r\n } else {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(true);\r\n }\r\n } else {\r\n setWeekSelected(false);\r\n setMonthSelected(false);\r\n setYearSelected(false);\r\n setCustom(true);\r\n\r\n }\r\n\r\n }, [startDate, endDate]);\r\n\r\n\r\n function sameDay(d1, d2) {\r\n return d1.getFullYear() === d2.getFullYear() &&\r\n d1.getMonth() === d2.getMonth() &&\r\n d1.getDate() === d2.getDate();\r\n }\r\n\r\n function getNumberOfDays(start, end) {\r\n const date1 = new Date(start);\r\n const date2 = new Date(end);\r\n\r\n // One day in milliseconds\r\n const oneDay = 1000 * 60 * 60 * 24;\r\n\r\n // Calculating the time difference between two dates\r\n const diffInTime = date2.getTime() - date1.getTime();\r\n\r\n // Calculating the no. of days between two dates\r\n const diffInDays = Math.round(diffInTime / oneDay);\r\n\r\n return diffInDays;\r\n }\r\n\r\n const formatDate = (date) => {\r\n const d = new Date(date);\r\n\r\n const day = String(d.getDate()).padStart(2, '0'); // Ensure 2 digits for day\r\n const month = String(d.getMonth() + 1).padStart(2, '0'); // Months are zero-based, add 1\r\n const year = d.getFullYear(); // Get the full year\r\n\r\n return `${day}/${month}/${year}`; // Return formatted string\r\n };\r\n\r\n const handleSetStartDate = (event) => {\r\n if (props.index !== undefined && props.index !== null) {\r\n props.setDateRange(props.index, new Date(event), new Date(props.endDate), props.sequence);\r\n props.handleSetStartDate(props.index, event)\r\n } else {\r\n props.setDateRange(new Date(event), new Date(props.endDate));\r\n props.handleSetStartDate(event)\r\n }\r\n\r\n }\r\n\r\n const handleSetEndDate = (event) => {\r\n if (props.index !== undefined && props.index !== null) {\r\n props.setDateRange(props.index, new Date(props.startDate), new Date(event), props.sequence);\r\n props.handleSetEndDate(props.index, event)\r\n } else {\r\n props.setDateRange(new Date(props.startDate), new Date(event), props.sequence);\r\n props.handleSetEndDate(event)\r\n }\r\n }\r\n\r\n const handleOpen = () => {\r\n setOpen(!open);\r\n }\r\n\r\n const handleSeven = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() - 7);\r\n props.setDateRange(relevantDays, today, props.sequence);\r\n setWeekSelected(true);\r\n setYearSelected(false);\r\n setMonthSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleThirty = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() - 30);\r\n props.setDateRange(relevantDays, today);\r\n setMonthSelected(true);\r\n setYearSelected(false);\r\n setWeekSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleYear = () => {\r\n let relevantDays = new Date(today);\r\n relevantDays.setDate(today.getDate() - 365);\r\n props.setDateRange(relevantDays, today);\r\n setYearSelected(true);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setCustom(false);\r\n }\r\n\r\n const handleCustom = () => {\r\n setCustom(!custom);\r\n setMonthSelected(false);\r\n setWeekSelected(false);\r\n setYearSelected(false);\r\n }\r\n\r\n const clearDateRange = (e) => {\r\n e.stopPropagation();\r\n setOpen(false);\r\n resetDateRangeFilter();\r\n }\r\n\r\n return (\r\n <ClickAwayListener onClickAway={handleClickAway}>\r\n <div style={{ display: \"inline-block\", position: 'relative' }}>\r\n\r\n {/* <IconButton style={{ borderRadius: \"5px\" }} onClick={handleOpen}>{props.startDate && props.endDate ? props.startDate.toDateString() + \" - \" + props.endDate.toDateString() : \"Select a daterange\"}<ChevronDown /></IconButton> */}\r\n <div\r\n onClick={handleOpen}\r\n className={classes.dateRangeButton}\r\n style={{\r\n\r\n // fontSize: size === \"large\" ? \"16px\" : \"14px\",\r\n paddingLeft: size === \"large\" ? \"12px\" : \"8px\",\r\n paddingRight: props.startDate && props.endDate ? \"3px\" : \"8px\",\r\n }}\r\n > {props.startDate && props.endDate ? (\r\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\r\n <span>\r\n {formatDate(props.startDate)}\r\n </span>\r\n <ArrowRight\r\n style={{\r\n height: \"12px\",\r\n width: \"12px\"\r\n }}\r\n />\r\n <span>\r\n {formatDate(props.endDate)}\r\n\r\n </span>\r\n\r\n </div>\r\n ) : (\r\n <span style={{ opacity: \"0.6\" }}>Select a date range</span>\r\n )}\r\n {/* {props.startDate && props.endDate ?\r\n <button\r\n onClick={(e) => clearDateRange(e)}\r\n className={classes.clearDateRangeButton}\r\n style={{\r\n width: size === \"large\" ? \"32px\" : \"24px\",\r\n height: size === \"large\" ? \"32px\" : \"24px\",\r\n }}\r\n >\r\n <X\r\n className={classes.buttonIcon}\r\n style={{\r\n width: size === \"large\" ? \"20px\" : \"16px\",\r\n height: size === \"large\" ? \"20px\" : \"16px\",\r\n }}\r\n />\r\n </button>\r\n :\r\n <CalendarSearch\r\n className={classes.buttonIcon}\r\n style={{\r\n width: size === \"large\" ? \"20px\" : \"16px\",\r\n height: size === \"large\" ? \"20px\" : \"16px\",\r\n }}\r\n />\r\n } */}\r\n </div>\r\n {open ?\r\n // <Paper elevation={5} style={{ position: \"absolute\", zIndex: \"999\", marginTop: \"6px\" }} >\r\n <div className={classes.card}>\r\n {/* <div className={classes.buttonContainer}>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: weekSelected })} onClick={handleSeven}>Previous week</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: monthSelected })} onClick={handleThirty}>Previous 30 days</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: yearSelected })} onClick={handleYear}>Previous year</button>\r\n <button className={clsx(classes.toggleButton, { [classes.selected]: custom })} onClick={handleCustom}>Date range</button>\r\n </div> */}\r\n <div className={classes.inputContainer}>\r\n <div className={classes.input}>\r\n <label className={classes.label}>From:</label>\r\n <MyDatePicker style={{ marginRight: \"1rem\" }} disabled={!custom} value={props.startDate} toDate={props.endDate} action={handleSetStartDate} />\r\n </div>\r\n <div className={classes.input}>\r\n <label className={classes.label}>To:</label>\r\n <MyDatePicker value={props.endDate} disabled={!custom} fromDate={props.startDate} action={handleSetEndDate} />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n // </Paper>\r\n : <React.Fragment></React.Fragment>}\r\n </div>\r\n </ClickAwayListener>\r\n );\r\n}\r\nexport default ProfitLossDateRangePicker;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n position: \"absolute\",\r\n zIndex: \"999\",\r\n width: 'max-content',\r\n backgroundColor: \"white\",\r\n right: \"0px\",\r\n border: \"1px solid #EDEDED\",\r\n borderRadius: \"8px\",\r\n\r\n boxShadow: \"rgba(149, 157, 165, 0.2) 0px 8px 24px\",\r\n\r\n marginTop: \"6px\",\r\n padding: \"16px\",\r\n\r\n [theme.breakpoints.down('xs')]: {\r\n left: \"0px\",\r\n },\r\n },\r\n\r\n buttonIcon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n display: \"block\",\r\n\r\n strokeWidth: \"1.4px\",\r\n color: \"inherit\",\r\n },\r\n\r\n dateRangeButton: {\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n\r\n borderRadius: \"4px\",\r\n // border: \"1px solid #DCDCDC\",\r\n\r\n // backgroundColor: \"white\",\r\n\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n flexWrap: \"wrap\",\r\n\r\n marginBottom: \"16px\",\r\n },\r\n\r\n toggleButton: {\r\n height: \"40px\",\r\n padding: \"0 12px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n position: \"relative\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#a77d4f\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid #a77d4f\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#a77d4f\",\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n selected: {\r\n backgroundColor: \"#a77d4f\", // Style for the \"selected\" state\r\n color: \"white\",\r\n border: \"1px solid #a77d4f\", // Add a border for visual indication\r\n },\r\n\r\n clearDateRangeButton: {\r\n width: \"24px\",\r\n height: \"24px\",\r\n\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n\r\n borderRadius: \"2px\",\r\n border: \"none\",\r\n\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n\r\n padding: \"0\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n color: \"#D84949\",\r\n backgroundColor: \"#EDEDED\",\r\n }\r\n },\r\n\r\n inputContainer: {\r\n display: 'flex',\r\n gap: '8px',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n\r\n input: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: \"50%\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n width: \"100%\",\r\n },\r\n },\r\n\r\n label: {\r\n fontSize: \"16px\",\r\n color: \"rgb(105, 105, 105)\",\r\n marginBottom: \"4px\",\r\n textAlign: 'start'\r\n },\r\n\r\n}));","import React from 'react';\r\n\r\nconst Style = {\r\n color: \"#696969\",\r\n fontSize: \"15px\",\r\n margin: '0px'\r\n}\r\n\r\nfunction DescriptionItem(props) {\r\n return (\r\n <p style={Style}>{props.Text}</p>\r\n )\r\n}\r\n\r\nexport default DescriptionItem;","import React from 'react';\r\n\r\nconst Style = {\r\n fontSize: \"16px\",\r\n lineHeight: \"18px\",\r\n color: \"#1D3557\"\r\n}\r\n\r\nfunction DescriptionTitle(props) {\r\n return (\r\n <div>\r\n <p style={Style}>{props.Text}</p>\r\n </div>\r\n )\r\n}\r\n\r\nexport default DescriptionTitle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { duration } from '../styles/transitions';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nvar styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\nvar defaultTimeout = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * The Fade transition is used by the [Modal](/components/modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"TransitionComponent\", \"timeout\"]);\n\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n timeout: timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Fade.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 * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Fade;","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 withStyles from '../styles/withStyles';\nimport Fade from '../Fade';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n // Improve scrollable dialog support.\n zIndex: -1,\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\nvar Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n transitionDuration = props.transitionDuration,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"invisible\", \"open\", \"transitionDuration\", \"TransitionComponent\"]);\n\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.root, className, invisible && classes.invisible),\n \"aria-hidden\": true,\n ref: ref\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.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 * The content of the component.\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 * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n */\n invisible: PropTypes.bool,\n\n /**\n * If `true`, the backdrop is open.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiBackdrop'\n})(Backdrop);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport Modal from '../Modal';\nimport Backdrop from '../Backdrop';\nimport Fade from '../Fade';\nimport { duration } from '../styles/transitions';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n },\n\n /* Styles applied to the container element if `scroll=\"paper\"`. */\n scrollPaper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n /* Styles applied to the container element if `scroll=\"body\"`. */\n scrollBody: {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n },\n\n /* Styles applied to the container element. */\n container: {\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n },\n\n /* Styles applied to the `Paper` component. */\n paper: {\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE 11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n },\n\n /* Styles applied to the `Paper` component if `scroll=\"paper\"`. */\n paperScrollPaper: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `scroll=\"body\"`. */\n paperScrollBody: {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE 11\n\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=false`. */\n paperWidthFalse: {\n maxWidth: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"xs\"`. */\n paperWidthXs: {\n maxWidth: Math.max(theme.breakpoints.values.xs, 444),\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"sm\"`. */\n paperWidthSm: {\n maxWidth: theme.breakpoints.values.sm,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"md\"`. */\n paperWidthMd: {\n maxWidth: theme.breakpoints.values.md,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"lg\"`. */\n paperWidthLg: {\n maxWidth: theme.breakpoints.values.lg,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"xl\"`. */\n paperWidthXl: {\n maxWidth: theme.breakpoints.values.xl,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `fullWidth={true}`. */\n paperFullWidth: {\n width: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `fullScreen={true}`. */\n paperFullScreen: {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n '&$paperScrollBody': {\n margin: 0,\n maxWidth: '100%'\n }\n }\n };\n};\nvar defaultTransitionDuration = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nvar Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {\n var BackdropProps = props.BackdropProps,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$fullScreen = props.fullScreen,\n fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$maxWidth = props.maxWidth,\n maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperComponent = props.PaperComponent,\n PaperComponent = _props$PaperComponent === void 0 ? Paper : _props$PaperComponent,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$scroll = props.scroll,\n scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,\n TransitionProps = props.TransitionProps,\n ariaDescribedby = props['aria-describedby'],\n ariaLabelledby = props['aria-labelledby'],\n other = _objectWithoutProperties(props, [\"BackdropProps\", \"children\", \"classes\", \"className\", \"disableBackdropClick\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onEscapeKeyDown\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\", \"aria-describedby\", \"aria-labelledby\"]);\n\n var mouseDownTarget = React.useRef();\n\n var handleMouseDown = function handleMouseDown(event) {\n mouseDownTarget.current = event.target;\n };\n\n var handleBackdropClick = function handleBackdropClick(event) {\n // Ignore the events not coming from the \"backdrop\"\n // We don't want to close the dialog when clicking the dialog content.\n if (event.target !== event.currentTarget) {\n return;\n } // Make sure the event starts and ends on the same DOM element.\n\n\n if (event.target !== mouseDownTarget.current) {\n return;\n }\n\n mouseDownTarget.current = null;\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n return /*#__PURE__*/React.createElement(Modal, _extends({\n className: clsx(classes.root, className),\n BackdropComponent: Backdrop,\n BackdropProps: _extends({\n transitionDuration: transitionDuration\n }, BackdropProps),\n closeAfterTransition: true\n }, disableBackdropClick ? {\n disableBackdropClick: disableBackdropClick\n } : {}, {\n disableEscapeKeyDown: disableEscapeKeyDown,\n onEscapeKeyDown: onEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n role: \"none presentation\"\n }, TransitionProps), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.container, classes[\"scroll\".concat(capitalize(scroll))]),\n onMouseUp: handleBackdropClick,\n onMouseDown: handleMouseDown\n }, /*#__PURE__*/React.createElement(PaperComponent, _extends({\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, classes[\"paperScroll\".concat(capitalize(scroll))], classes[\"paperWidth\".concat(capitalize(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)\n }), children))));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.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 * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n\n /**\n * Dialog children, usually the included sub-components.\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 * If `true`, clicking the backdrop will not fire the `onClose` callback.\n * @deprecated Use the onClose prop with the `reason` argument to filter the `backdropClick` events.\n */\n disableBackdropClick: deprecatedPropType(PropTypes.bool, 'Use the onClose prop with the `reason` argument to filter the `backdropClick` events.'),\n\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n */\n disableEscapeKeyDown: PropTypes.bool,\n\n /**\n * If `true`, the dialog will be full-screen\n */\n fullScreen: PropTypes.bool,\n\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n */\n maxWidth: PropTypes.oneOf(['lg', 'md', 'sm', 'xl', 'xs', false]),\n\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the onClose prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `backdropClick` events.'),\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the dialog enters.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEnter: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog has entered.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntered: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntering: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the escape key is pressed,\n * `disableKeyboard` is false and the modal is in focus.\n * @deprecated Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.\n */\n onEscapeKeyDown: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.'),\n\n /**\n * Callback fired before the dialog exits.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExit: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog has exited.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExited: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExiting: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * If `true`, the Dialog is open.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The component used to render the body of the dialog.\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Determine the container for scrolling the dialog.\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialog'\n})(Dialog);","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\n\r\nexport default function BaseDialog(props) {\r\n\r\n const classes = useStyles(); \r\n\r\n return (\r\n\r\n <Dialog className={classes.dialogContainer}\r\n open={props.dialogOpen}\r\n aria-labelledby=\"draggable-dialog-title\"\r\n onClose={props.closeDialog}\r\n >\r\n {props.children} \r\n\r\n </Dialog>\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\r\n dialogContainer: {\r\n margin: \"auto\",\r\n '& .MuiDialog-paper': {\r\n maxWidth: \"500px\",\r\n },\r\n },\r\n\r\n}));\r\n","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 withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n },\n\n /* Styles applied to the root element if `disableSpacing={false}`. */\n spacing: {\n '& > :not(:first-child)': {\n marginLeft: 8\n }\n }\n};\nvar DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(props, ref) {\n var _props$disableSpacing = props.disableSpacing,\n disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"disableSpacing\", \"classes\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, !disableSpacing && classes.spacing),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.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 * The content of the component.\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 * If `true`, the actions do not have additional margin.\n */\n disableSpacing: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogActions'\n})(DialogActions);","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 withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n flex: '1 1 auto',\n WebkitOverflowScrolling: 'touch',\n // Add iOS momentum scrolling.\n overflowY: 'auto',\n padding: '8px 24px',\n '&:first-child': {\n // dialog without title\n paddingTop: 20\n }\n },\n\n /* Styles applied to the root element if `dividers={true}`. */\n dividers: {\n padding: '16px 24px',\n borderTop: \"1px solid \".concat(theme.palette.divider),\n borderBottom: \"1px solid \".concat(theme.palette.divider)\n }\n };\n};\nvar DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$dividers = props.dividers,\n dividers = _props$dividers === void 0 ? false : _props$dividers,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"dividers\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, dividers && classes.dividers),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.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 * The content of the component.\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 * Display the top and bottom dividers.\n */\n dividers: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogContent'\n})(DialogContent);","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 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 margin: 0\n },\n\n /* Styles applied to the root element if `variant=\"body2\"`. */\n body2: theme.typography.body2,\n\n /* Styles applied to the root element if `variant=\"body1\"`. */\n body1: theme.typography.body1,\n\n /* Styles applied to the root element if `variant=\"caption\"`. */\n caption: theme.typography.caption,\n\n /* Styles applied to the root element if `variant=\"button\"`. */\n button: theme.typography.button,\n\n /* Styles applied to the root element if `variant=\"h1\"`. */\n h1: theme.typography.h1,\n\n /* Styles applied to the root element if `variant=\"h2\"`. */\n h2: theme.typography.h2,\n\n /* Styles applied to the root element if `variant=\"h3\"`. */\n h3: theme.typography.h3,\n\n /* Styles applied to the root element if `variant=\"h4\"`. */\n h4: theme.typography.h4,\n\n /* Styles applied to the root element if `variant=\"h5\"`. */\n h5: theme.typography.h5,\n\n /* Styles applied to the root element if `variant=\"h6\"`. */\n h6: theme.typography.h6,\n\n /* Styles applied to the root element if `variant=\"subtitle1\"`. */\n subtitle1: theme.typography.subtitle1,\n\n /* Styles applied to the root element if `variant=\"subtitle2\"`. */\n subtitle2: theme.typography.subtitle2,\n\n /* Styles applied to the root element if `variant=\"overline\"`. */\n overline: theme.typography.overline,\n\n /* Styles applied to the root element if `variant=\"srOnly\"`. Only accessible to screen readers. */\n srOnly: {\n position: 'absolute',\n height: 1,\n width: 1,\n overflow: 'hidden'\n },\n\n /* Styles applied to the root element if `align=\"left\"`. */\n alignLeft: {\n textAlign: 'left'\n },\n\n /* Styles applied to the root element if `align=\"center\"`. */\n alignCenter: {\n textAlign: 'center'\n },\n\n /* Styles applied to the root element if `align=\"right\"`. */\n alignRight: {\n textAlign: 'right'\n },\n\n /* Styles applied to the root element if `align=\"justify\"`. */\n alignJustify: {\n textAlign: 'justify'\n },\n\n /* Styles applied to the root element if `nowrap={true}`. */\n noWrap: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n\n /* Styles applied to the root element if `gutterBottom={true}`. */\n gutterBottom: {\n marginBottom: '0.35em'\n },\n\n /* Styles applied to the root element if `paragraph={true}`. */\n paragraph: {\n marginBottom: 16\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\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=\"textPrimary\"`. */\n colorTextPrimary: {\n color: theme.palette.text.primary\n },\n\n /* Styles applied to the root element if `color=\"textSecondary\"`. */\n colorTextSecondary: {\n color: theme.palette.text.secondary\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 `display=\"inline\"`. */\n displayInline: {\n display: 'inline'\n },\n\n /* Styles applied to the root element if `display=\"block\"`. */\n displayBlock: {\n display: 'block'\n }\n };\n};\nvar defaultVariantMapping = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p'\n};\nvar Typography = /*#__PURE__*/React.forwardRef(function Typography(props, ref) {\n var _props$align = props.align,\n align = _props$align === void 0 ? 'inherit' : _props$align,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'initial' : _props$color,\n component = props.component,\n _props$display = props.display,\n display = _props$display === void 0 ? 'initial' : _props$display,\n _props$gutterBottom = props.gutterBottom,\n gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,\n _props$noWrap = props.noWrap,\n noWrap = _props$noWrap === void 0 ? false : _props$noWrap,\n _props$paragraph = props.paragraph,\n paragraph = _props$paragraph === void 0 ? false : _props$paragraph,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'body1' : _props$variant,\n _props$variantMapping = props.variantMapping,\n variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,\n other = _objectWithoutProperties(props, [\"align\", \"classes\", \"className\", \"color\", \"component\", \"display\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"]);\n\n var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes[\"color\".concat(capitalize(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes[\"align\".concat(capitalize(align))], display !== 'initial' && classes[\"display\".concat(capitalize(display))]),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Typography.propTypes = {\n /**\n * Set the text-align on the component.\n */\n align: PropTypes.oneOf(['inherit', 'left', 'center', 'right', 'justify']),\n\n /**\n * The content of the component.\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.isRequired,\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 */\n color: PropTypes.oneOf(['initial', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary', 'error']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n * Overrides the behavior of the `variantMapping` prop.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Controls the display type\n */\n display: PropTypes.oneOf(['initial', 'block', 'inline']),\n\n /**\n * If `true`, the text will have a bottom margin.\n */\n gutterBottom: PropTypes.bool,\n\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n */\n noWrap: PropTypes.bool,\n\n /**\n * If `true`, the text will have a bottom margin.\n */\n paragraph: PropTypes.bool,\n\n /**\n * Applies the theme typography styles.\n */\n variant: PropTypes.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'caption', 'button', 'overline', 'srOnly', 'inherit']),\n\n /**\n * The component maps the variant prop to a range of different HTML element types.\n * For instance, subtitle1 to `<h6>`.\n * If you wish to change that mapping, you can provide your own.\n * Alternatively, you can use the `component` prop.\n */\n variantMapping: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTypography'\n})(Typography);","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 withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n margin: 0,\n padding: '16px 24px',\n flex: '0 0 auto'\n }\n};\nvar DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other), disableTypography ? children : /*#__PURE__*/React.createElement(Typography, {\n component: \"h2\",\n variant: \"h6\"\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.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 * The content of the component.\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 * If `true`, the children won't be wrapped by a typography component.\n * For instance, this can be useful to render an h4 instead of the default h2.\n */\n disableTypography: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogTitle'\n})(DialogTitle);","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nexport default function ButtonAction(props) {\r\n\r\n const classes = useStyles(); \r\n\r\n return (\r\n <button className={classes.actionButton} disabled={props.disabled} onClick={() => props.action()}>{props.text}</button>\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n actionButton: {\r\n paddingRight: '15px',\r\n paddingLeft: '15px',\r\n\r\n border: \"none\",\r\n outline: \"none\",\r\n cursor: \"pointer\",\r\n margin: \"10px\",\r\n color: \"white\",\r\n height: \"30px\",\r\n backgroundColor:'#C3996B',\r\n fontWeight: \"bold\",\r\n fontFamily: \"Lato, sans-serif\",\r\n\r\n }\r\n\r\n}));","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nexport default function ButtonClose(props) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n <button className={classes.closeButton} onClick={() => props.closeDialog()}>{props.text}</button>\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\r\n closeButton: {\r\n border: \"1px solid #E8E8E8\",\r\n outline:\"none\",\r\n cursor: \"pointer\",\r\n backgroundColor: \"white\",\r\n margin: \"10px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n height:\"30px\",\r\n\r\n }\r\n}));\r\n","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport BaseDialog from './BaseDialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport ButtonAction from '../Buttons/ButtonAction';\r\nimport ButtonClose from '../Buttons/ButtonClose';\r\n\r\nexport default function MessageDialog(props) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n\r\n <BaseDialog\r\n dialogOpen={props.dialogOpen}\r\n closeDialog={props.closeDialog}\r\n >\r\n <DialogTitle className={classes.dialogTitle} id=\"draggable-dialog-title\">\r\n {props.messageTitle}\r\n </DialogTitle>\r\n <DialogContent className={classes.dialogContent}>\r\n {props.messageContent}\r\n </DialogContent>\r\n <DialogActions>\r\n <div className={classes.buttons}>\r\n {props.buttonCount === 1 ?\r\n <ButtonAction text={props.buttonText} action={props.action}></ButtonAction>\r\n :\r\n <React.Fragment>\r\n <ButtonClose text={props.button2Text} closeDialog={props.closeDialog}></ButtonClose>\r\n <ButtonAction text={props.buttonText} action={props.action}></ButtonAction>\r\n\r\n </React.Fragment>}\r\n </div>\r\n </DialogActions>\r\n </BaseDialog>\r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\r\n buttons: {\r\n textAlign: \"center\",\r\n width: \"100%\",\r\n marginBottom: \"10px\"\r\n },\r\n dialogTitle: {\r\n color: \"#000000\",\r\n fontFamily: \"Lato, sans-serif\",\r\n fontWeight: 'medium',\r\n textAlign: \"center\",\r\n '& h2': {\r\n fontSize: \"24px !important\",\r\n },\r\n paddingTop: \"20px\",\r\n cursor: 'move'\r\n },\r\n dialogContent: {\r\n textAlign: \"center\",\r\n fontFamily: \"Lato, sans-serif\",\r\n }\r\n\r\n}));\r\n","import React, { useRef } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Dialog, DialogContent, DialogActions, Button, Box } from '@mui/material';\r\nimport QRCode from \"qrcode.react\";\r\nimport CopyQrLink from '../CopyQrLink';\r\nimport { Link } from 'react-router-dom';\r\nimport { Eye, Printer } from 'lucide-react';\r\n\r\nimport ApiHelper from '../../../Utils/API/apiHelper';\r\n\r\nexport default function ShareDialog(props) {\r\n const componentRef = useRef();\r\n\r\n const classes = useStyles();\r\n const appSettings = ApiHelper.appSettings;\r\n const handlePrint = () => {\r\n const content = componentRef.current;\r\n const printWindow = window.open('', '_blank', 'width=800,height=600');\r\n\r\n // Add the content to the new window\r\n printWindow.document.write(`\r\n <html>\r\n <head>\r\n <title>Print QR Code\r\n \r\n \r\n \r\n
    \r\n ${content.innerHTML}\r\n
    \r\n \r\n \r\n `);\r\n\r\n // Trigger the print dialog\r\n printWindow.document.close();\r\n printWindow.print();\r\n };\r\n return (\r\n\r\n \r\n \r\n
    \r\n

    {props.projectName} - {props.resourceName}

    \r\n \r\n
    \r\n
    Powered by Flagstone
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n buttonRow: {\r\n width: '100%',\r\n display: 'flex',\r\n paddingLeft: '24px !important', paddingRight: '24px !important',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between !important',\r\n alignItems: 'center',\r\n marginBottom: '10px',\r\n boxSizing: 'border-box'\r\n\r\n },\r\n dialogContainer: {\r\n margin: \"auto\",\r\n '& .MuiDialog-paper': {\r\n maxWidth: \"500px\",\r\n },\r\n boxSizing: 'border-box'\r\n },\r\n printButton: {\r\n gap: \"8px\",\r\n backgroundColor: '#0B4097 !important',\r\n border: \"1px solid #0B4097 !important\",\r\n \"&:hover\": {\r\n background: \"white !important\",\r\n color: '#0B4097 !important',\r\n },\r\n \"&:disabled\": {\r\n background: \"#bdb6ac !important\",\r\n border: \"1px solid grey !important\",\r\n color: 'white !important',\r\n cursor: 'not-allowed'\r\n },\r\n },\r\n\r\n closeButton: {\r\n border: \"1px solid #0B4097 !important\",\r\n cursor: \"pointer\",\r\n color: '#0B4097 !important',\r\n backgroundColor: \"white !important\",\r\n fontFamily: \"Lato, sans-serif\",\r\n \"&:hover\": {\r\n background: \"#0B4097 !important\",\r\n color: 'white !important',\r\n },\r\n\r\n\r\n }\r\n\r\n\r\n}));\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ChevronDown, Check, CircleOff, X } from 'lucide-react';\r\nimport { IconButton, Select, FormControl, MenuItem, InputLabel, ListSubheader } from '@mui/material';\r\nimport { externalApiTypes } from '../../../Config/constants';\r\nimport { set } from 'date-fns';\r\n\r\nfunction AccountCategoryDropdown({ accountCategories, selectedAccountCategoryId, setSelectedAccountCategoryId, handleCreateNewAccountCategory, error, ...props }) {\r\n const classes = useStyles();\r\n\r\n // Dropdown\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n const openDropdownButtonRef = useRef(null);\r\n const dropdownRef = useRef(null);\r\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\r\n const [dropdownWidth, setDropdownWidth] = useState(0);\r\n\r\n // Input\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [categoryExists, setCategoryExists] = useState(true); // is there a category with the exact name of inputValue? \r\n\r\n // AccountCategory\r\n const [allAccountCategories, setAllAccountCategories] = useState([]);\r\n const [filteredAccountCategories, setFilteredAccountCategories] = useState([]);\r\n const [selectedAccountCategory, setSelectedAccountCategory] = useState(null);\r\n\r\n // Creating a new category\r\n const [creatingNewCategory, setCreatingNewCategory] = useState(false);\r\n const [newCategoryName, setNewCategoryName] = useState(\"\");\r\n const [newCategoryIsRevenue, setNewCategoryIsRevenue] = useState(true);\r\n\r\n useEffect(() => {\r\n // TODO: Initial setup\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (accountCategories !== allAccountCategories) {\r\n setAllAccountCategories(accountCategories);\r\n if (inputValue !== \"\") {\r\n let filtered = accountCategories.filter((category) => {\r\n return category.name.toLowerCase().includes(inputValue.toLowerCase());\r\n });\r\n\r\n setFilteredAccountCategories(filtered);\r\n } else {\r\n setFilteredAccountCategories(accountCategories);\r\n }\r\n }\r\n }, [accountCategories])\r\n\r\n useEffect(() => {\r\n if (openDropdown && openDropdownButtonRef.current) {\r\n const rect = openDropdownButtonRef.current.getBoundingClientRect();\r\n\r\n setDropdownPosition({\r\n top: rect.bottom + window.scrollY + 4, // Adjust for scroll position\r\n left: rect.left + window.scrollX, // Adjust for horizontal scrolling\r\n });\r\n\r\n setDropdownWidth(rect.width);\r\n }\r\n }, [openDropdown]);\r\n\r\n useEffect(() => {\r\n if (!selectedAccountCategory || selectedAccountCategoryId !== selectedAccountCategory.id) {\r\n // find selected category in accountCategories\r\n let category = accountCategories.find((category) => {\r\n return category.id === selectedAccountCategoryId;\r\n });\r\n\r\n setSelectedAccountCategory(category);\r\n setInputValue(category ? category.name : \"\");\r\n }\r\n }, [selectedAccountCategoryId]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target) && openDropdown) {\r\n // check if target is not the button\r\n if (!openDropdownButtonRef.current.contains(event.target)) {\r\n setOpenDropdown(false);\r\n };\r\n };\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [openDropdown]);\r\n\r\n const resetCreatingNewCategory = () => {\r\n setCreatingNewCategory(false);\r\n setNewCategoryName(\"\");\r\n setNewCategoryIsRevenue(true);\r\n };\r\n\r\n const resetInput = () => {\r\n handleInputValue(\"\");\r\n setSelectedAccountCategory(null);\r\n setSelectedAccountCategoryId(null);\r\n };\r\n\r\n const handleInputValue = (value) => {\r\n let exists = true;\r\n\r\n if (value !== \"\") {\r\n setOpenDropdown(true);\r\n }\r\n resetCreatingNewCategory();\r\n setInputValue(value);\r\n\r\n // check if exact inputValue exists in accountCategories\r\n if (value !== \"\") {\r\n exists = accountCategories.find((category) => {\r\n return category.name.toLowerCase() === value.toLowerCase();\r\n });\r\n };\r\n\r\n setCategoryExists(exists ? true : false);\r\n\r\n // filter accountCategories and set filteredAccountCategories\r\n let filtered = accountCategories.filter((category) => {\r\n return category.name.toLowerCase().includes(value.toLowerCase());\r\n });\r\n\r\n setFilteredAccountCategories(filtered);\r\n }\r\n\r\n const handleAccountCategorySelection = (accountCategory) => {\r\n setSelectedAccountCategory(accountCategory); // Set selected category in state\r\n setSelectedAccountCategoryId(accountCategory.id); // Set selected category in parent component\r\n setInputValue(accountCategory.name); // Set input to name of selected category\r\n setOpenDropdown(false); // Close dropdown\r\n };\r\n\r\n const handleCreateAccountCategory = (categoryName) => {\r\n setCreatingNewCategory(true);\r\n setNewCategoryName(categoryName);\r\n setOpenDropdown(false);\r\n\r\n let newCategory = {\r\n name: categoryName,\r\n isRevenue: newCategoryIsRevenue,\r\n };\r\n\r\n handleCreateNewAccountCategory(newCategory); // CreateAccountDialog.jsx function\r\n };\r\n\r\n const handleSetNewCategoryIsRevenue = (isRevenue) => {\r\n setNewCategoryIsRevenue(isRevenue);\r\n\r\n let newCategory = {\r\n name: newCategoryName,\r\n isRevenue: isRevenue,\r\n };\r\n\r\n handleCreateNewAccountCategory(newCategory); // CreateAccountDialog.jsx function\r\n };\r\n\r\n return (\r\n
    \r\n setOpenDropdown(!openDropdown)}\r\n >\r\n handleInputValue(e.target.value)} // Allow typing in input\r\n onClick={(e) => setOpenDropdown(true)} // Prevent div click from toggling dropdown\r\n />\r\n {inputValue === \"\" ?\r\n setOpenDropdown(!openDropdown)} className={classes.input__icon} style={{ transform: `rotate(${openDropdown ? '180deg' : '0deg'})` }} />\r\n :\r\n \r\n }\r\n
    \r\n {openDropdown &&\r\n ReactDOM.createPortal(\r\n \r\n {!categoryExists ?\r\n \r\n :\r\n null\r\n }\r\n {filteredAccountCategories.length > 0 ?\r\n filteredAccountCategories.map((category, index) => (\r\n \r\n ))\r\n :\r\n
    \r\n \r\n

    There are no categories to select

    \r\n
    \r\n }\r\n
    ,\r\n document.body\r\n )\r\n }\r\n {creatingNewCategory &&\r\n
    \r\n \r\n
    \r\n
    handleSetNewCategoryIsRevenue(true)}>\r\n
    \r\n \r\n
    \r\n

    Revenue

    \r\n
    \r\n
    handleSetNewCategoryIsRevenue(false)}>\r\n
    \r\n \r\n
    \r\n

    Expense

    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default AccountCategoryDropdown\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n position: \"relative\",\r\n width: \"100%\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"16px\",\r\n },\r\n\r\n inputContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n border: \"1px solid\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n\r\n padding: \"0px\",\r\n\r\n transition: \"border-color 0.2s\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #0C0E29\",\r\n cursor: \"cursor\",\r\n },\r\n },\r\n\r\n input: {\r\n width: \"100%\",\r\n height: \"40px\",\r\n padding: \"0 14px\",\r\n paddingRight: \"32px\",\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n outline: \"none\",\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n textAlign: \"left\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n dropdownContainer: {\r\n width: '100%',\r\n minWidth: \"160px\",\r\n maxHeight: '200px',\r\n overflowY: 'auto',\r\n position: 'absolute',\r\n // top: 'calc(100% + 4px)',\r\n // left: '0',\r\n zIndex: '9999',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"4px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#989898\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#7C7C7C\",\r\n },\r\n },\r\n\r\n dropdown__collapseButton: {\r\n width: '100%',\r\n minHeight: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n gap: \"8px\",\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n // no text wrapping\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n collapseButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n minHeight: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n dropdown__createButton: {\r\n width: '100%',\r\n minHeight: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: \"8px\",\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#F4F4F4',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#EDEDED',\r\n\r\n // style chip grey on hover\r\n \"& > div\": {\r\n backgroundColor: '#DCDCDC',\r\n },\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n\r\n\r\n },\r\n\r\n chip__grey: {\r\n width: \"fit-content\",\r\n height: \"22px\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n padding: \"0px 8px\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n borderRadius: \"12px\",\r\n backgroundColor: \"#EDEDED\",\r\n color: \"#0C0E29\",\r\n transition: \"background-color 0.2s\",\r\n },\r\n\r\n dropdown__emptyState: {\r\n height: \"fit-content\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n padding: \"24px 0 16px 0\",\r\n },\r\n\r\n emptyState__icon: {\r\n width: \"24px\",\r\n height: \"24px\",\r\n color: \"#0C0E29\",\r\n\r\n strokeWidth: \"1.4px\",\r\n },\r\n\r\n emptyState__text: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n margin: \"0\",\r\n },\r\n\r\n input__iconButton: {\r\n height: \"32px\",\r\n\r\n position: \"absolute\",\r\n right: \"4px\",\r\n top: \"4px\",\r\n\r\n display: \"flex\",\r\n gap: \"8px\",\r\n alignItems: \"center\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"#0C0E29\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F8F8F8\",\r\n color: \"#D84949\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n iconButton__icon: {\r\n height: \"20px\",\r\n width: \"20px\",\r\n\r\n display: \"block\",\r\n },\r\n\r\n input__icon: {\r\n position: \"absolute\",\r\n right: \"10px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n icon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n strokeWidth: \"1.4px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n inputRow: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n },\r\n\r\n radioButtonContainer: {\r\n width: \"100%\",\r\n display: \"flex\",\r\n gap: \"8px\",\r\n },\r\n\r\n radioButton: {\r\n width: \"fit-content\",\r\n height: \"40px\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n padding: \"8px\",\r\n\r\n borderRadius: \"4px\",\r\n\r\n transition: \"all ease-in-out 0.2s\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#EDEDED\",\r\n cursor: \"pointer\",\r\n }\r\n },\r\n\r\n radio: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n boxSizing: \"border-box\",\r\n\r\n borderRadius: \"50%\",\r\n border: \"1px solid #0C0E29\",\r\n backgroundColor: \"transparent\",\r\n },\r\n\r\n radioIcon: {\r\n color: \"#F8F8F8\",\r\n },\r\n\r\n radioButton__label: {\r\n fontSize: \"16px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n\r\n margin: \"0\",\r\n },\r\n});\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ChevronDown, Braces, Timer, CircleHelp } from 'lucide-react';\r\nimport { IconButton, Select, FormControl, MenuItem, InputLabel, ListSubheader } from '@mui/material';\r\nimport { externalApiTypes } from '../../../Config/constants';\r\n\r\nfunction DropdownAccounts({ accounts, currentAccountId, companyId, setAccountAction, error, ...props }) {\r\n const classes = useStyles();\r\n const [select, setSelect] = useState(\"\");\r\n const [list, setList] = useState([]);\r\n const [apis, setapis] = useState([]);\r\n const [openList, setOpenList] = useState(false);\r\n const [openApi, setOpenApi] = useState(false);\r\n\r\n // Dropdown\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n const [selectedAccountName, setSelectedAccountName] = useState(\"\");\r\n const openDropdownButtonRef = useRef(null);\r\n const dropdownRef = useRef(null);\r\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\r\n\r\n const [accountList, setAccountList] = useState([]);\r\n\r\n useEffect(() => {\r\n if (select !== null) {\r\n accountList.forEach(category => {\r\n category.accounts.forEach(account => {\r\n if (account.id === select) {\r\n setSelectedAccountName(account.name);\r\n }\r\n });\r\n });\r\n } else {\r\n setSelectedAccountName(\"\");\r\n }\r\n }, [select]);\r\n\r\n useEffect(() => {\r\n if (openDropdown && openDropdownButtonRef.current) {\r\n // Calculate the position of the dropdown relative to the viewport\r\n const rect = openDropdownButtonRef.current.getBoundingClientRect();\r\n setDropdownPosition({\r\n top: rect.bottom + 4, // Position dropdown below the trigger\r\n left: rect.left, // Align to the left of the trigger\r\n });\r\n }\r\n }, [openDropdown])\r\n\r\n useEffect(() => {\r\n // set accountList to accounts[?].accountCategories of account with companyId\r\n accounts.forEach(account => {\r\n if (account.id === companyId) {\r\n // add a parameter \"expanded\" to each accountCategory with default value false\r\n account.accountCategories.forEach(category => {\r\n category.expanded = false;\r\n });\r\n setAccountList(account.accountCategories);\r\n }\r\n });\r\n\r\n if (currentAccountId !== undefined) {\r\n setSelect(currentAccountId);\r\n }\r\n }, [accounts, companyId]);\r\n\r\n // handle click outside\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target) && openDropdown) {\r\n // check if target is not the button\r\n if (!openDropdownButtonRef.current.contains(event.target)) {\r\n setOpenDropdown(false);\r\n };\r\n };\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [openDropdown]);\r\n\r\n const handleSelect = (event) => {\r\n setSelect(event.target.value);\r\n props.action(props.id, event.target.value);\r\n };\r\n\r\n const handleAccountSelection = (accountId) => {\r\n setSelect(accountId);\r\n setAccountAction(props.id, accountId);\r\n // close dropdown\r\n setOpenDropdown(false);\r\n }\r\n\r\n // function to expand or collapse account category\r\n const handleExpand = (index) => {\r\n let tempAccountList = [...accountList];\r\n tempAccountList[index].expanded = !tempAccountList[index].expanded;\r\n setAccountList(tempAccountList);\r\n };\r\n\r\n return (\r\n // \r\n // handleSelect(e)}\r\n // MenuProps={{ PaperProps: { sx: { maxHeight: 210 } } }}\r\n // error={props.error}\r\n // >\r\n // {/* Add a \"None\" option to allow removal of selection */}\r\n // \r\n // None\r\n // \r\n\r\n // {accountList.map((category, index) => (\r\n // category.expanded ? (\r\n // [\r\n // \r\n // {category.name}\r\n // handleExpand(index)}>\r\n // \r\n // \r\n // ,\r\n // ...category.accounts.map((account) => (\r\n // \r\n // {account.name}\r\n // \r\n // ))\r\n // ]\r\n // ) : (\r\n // \r\n // {category.name}\r\n // handleExpand(index)}>\r\n // \r\n // \r\n // \r\n // )\r\n // ))}\r\n // \r\n // \r\n
    \r\n \r\n {ReactDOM.createPortal(\r\n
    \r\n \r\n {accountList.map((category, index) => (\r\n category.expanded ? (\r\n [\r\n ,\r\n ...category.accounts.map((account) => (\r\n \r\n ))\r\n ]\r\n ) : (\r\n \r\n )\r\n ))}\r\n
    ,\r\n document.body\r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default DropdownAccounts\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n position: \"relative\",\r\n },\r\n\r\n inputContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n border: \"1px solid\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n\r\n padding: \"0px\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #0C0E29\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input: {\r\n width: \"100%\",\r\n height: \"56px\",\r\n padding: \"0 14px\",\r\n paddingRight: \"32px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n textAlign: \"left\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n dropdownContainer: {\r\n width: 'fit-content',\r\n maxHeight: '200px',\r\n overflowY: 'auto',\r\n position: 'absolute',\r\n // top: 'calc(100% + 4px)',\r\n // left: '0',\r\n zIndex: '999',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"4px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#989898\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#7C7C7C\",\r\n },\r\n },\r\n\r\n dropdown__collapseButton: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n gap: \"8px\",\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n // no text wrapping\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n collapseButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n input__icon: {\r\n position: \"absolute\",\r\n right: \"10px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n color: \"#0C0E29\",\r\n },\r\n});\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ChevronDown, Braces, Timer, CircleHelp } from 'lucide-react';\r\nimport { IconButton, Select, FormControl, MenuItem, InputLabel, ListSubheader } from '@mui/material';\r\nimport { externalApiTypes } from '../../../Config/constants';\r\n\r\nfunction DropdownCompanies({ allCompanies, selectedCompany, setSelectedCompany, error, ...props }) {\r\n const classes = useStyles();\r\n const [select, setSelect] = useState(\"\");\r\n\r\n // Dropdown\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n const openDropdownButtonRef = useRef(null);\r\n const dropdownRef = useRef(null);\r\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\r\n\r\n useEffect(() => {\r\n if (select !== null) {\r\n allCompanies.forEach(company => {\r\n if (company.id === select) {\r\n setSelectedCompany(company);\r\n }\r\n });\r\n } else {\r\n setSelectedCompany(null);\r\n }\r\n }, [select]);\r\n\r\n useEffect(() => {\r\n if (openDropdown && openDropdownButtonRef.current) {\r\n // Calculate the position of the dropdown relative to the viewport\r\n const rect = openDropdownButtonRef.current.getBoundingClientRect();\r\n setDropdownPosition({\r\n top: rect.bottom + 4, // Position dropdown below the trigger\r\n left: rect.left, // Align to the left of the trigger\r\n });\r\n }\r\n }, [openDropdown])\r\n\r\n useEffect(() => {\r\n if (selectedCompany !== null) {\r\n setSelect(selectedCompany.id);\r\n }\r\n }, [selectedCompany]);\r\n\r\n const handleSelection = (companyId) => {\r\n setSelect(companyId);\r\n setOpenDropdown(false);\r\n };\r\n\r\n // handle click outside\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target) && openDropdown) {\r\n // check if target is not the button\r\n if (!openDropdownButtonRef.current.contains(event.target)) {\r\n setOpenDropdown(false);\r\n };\r\n };\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [openDropdown]);\r\n\r\n return (\r\n
    \r\n \r\n {ReactDOM.createPortal(\r\n
    \r\n \r\n {allCompanies && allCompanies.map((company) => (\r\n \r\n ))}\r\n
    ,\r\n document.body\r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default DropdownCompanies\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n position: \"relative\",\r\n },\r\n\r\n inputContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"white\",\r\n\r\n padding: \"0px\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input: {\r\n width: \"100%\",\r\n height: \"32px\",\r\n padding: \"0 8px\",\r\n paddingRight: \"32px\",\r\n border: \"1px solid #DCDCDC\",\r\n borderRadius: \"4px\",\r\n outline: \"none\",\r\n backgroundColor: \"transparent\",\r\n fontSize: \"14px\",\r\n fontFamily: \"Lato, sans-serif\",\r\n color: \"#0C0E29\",\r\n textAlign: \"left\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input__icon: {\r\n position: \"absolute\",\r\n right: \"8px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdownContainer: {\r\n width: 'fit-content',\r\n maxHeight: '200px',\r\n overflowY: 'auto',\r\n position: 'absolute',\r\n // top: 'calc(100% + 4px)',\r\n // left: '0',\r\n zIndex: '999',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"4px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#989898\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#7C7C7C\",\r\n },\r\n },\r\n\r\n dropdown__collapseButton: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n gap: \"8px\",\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n // no text wrapping\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n collapseButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n});\r\n","import TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\n\r\nfunction DropdownCompany(props) {\r\n const dropdownList = props.companies.map(x => { return { label: x.name, value: x.id } })\r\n return (\r\n a.label.localeCompare(b.label))}\r\n getOptionLabel={(option) => {\r\n // Value selected with enter, right from the input\r\n if (typeof option === 'string') {\r\n return option;\r\n }\r\n // Add \"xxx\" option created dynamically\r\n if (option.inputValue) {\r\n return option.inputValue;\r\n }\r\n // Regular option\r\n return option.label;\r\n }}\r\n renderOption={(props, option) =>
  • {option.label}
  • }\r\n onChange={(event, newValue) => {\r\n if (typeof newValue === 'string') {\r\n props.action(newValue)\r\n } else if (newValue && newValue.inputValue) {\r\n props.action(newValue)\r\n } else {\r\n props.action(event)\r\n }\r\n }} renderInput={(params) => props.action(event)} />}\r\n />\r\n );\r\n}\r\n\r\nexport default DropdownCompany","import TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\n\r\nfunction DropdownResources(props) {\r\n\r\n // Getting the Array List\r\n const dropdownList = props.resources.map(x => { return { label: x.name, value: x.id } })\r\n // Filtering the Array list for any duplicates\r\n const filtered = Array.from(new Set(dropdownList.map(a => a.label)))\r\n .map(label => {\r\n return dropdownList.find(a => a.label === label)\r\n })\r\n return (\r\n x.value === props.selectedResource.id) : props.value}\r\n onChange={(event, newValue) => {\r\n if (typeof newValue === 'string') {\r\n props.action(newValue, event)\r\n } else if (newValue && newValue.inputValue) {\r\n props.action(newValue, event)\r\n } else {\r\n props.action(newValue, event)\r\n }\r\n }}\r\n options={filtered.sort((a, b) => a.label.localeCompare(b.label))}\r\n renderInput={(params) => props.action(event)}/>}\r\n />\r\n );\r\n}\r\n\r\nexport default DropdownResources","import React, { useEffect, useState, useRef } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ChevronDown, Braces, Timer, CircleHelp } from 'lucide-react';\r\nimport { IconButton, Select, FormControl, MenuItem, InputLabel, ListSubheader } from '@mui/material';\r\nimport { externalApiTypes } from '../../../Config/constants';\r\n\r\nfunction DropdownType({ setTypeAction, allExternalApis, allDataLists, error, ...props }) {\r\n const classes = useStyles();\r\n const [select, setSelect] = useState(null);\r\n const [list, setList] = useState([]);\r\n const [apis, setapis] = useState([]);\r\n const [openList, setOpenList] = useState(false);\r\n const [openApi, setOpenApi] = useState(false);\r\n\r\n // Dropdown\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n const [selectedTypeName, setSelectedTypeName] = useState(null);\r\n const openDropdownButtonRef = useRef(null);\r\n const dropdownRef = useRef(null);\r\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\r\n\r\n const allTypes = [\r\n { id: 1, name: \"Counter\" },\r\n { id: 3, name: \"Free text\" },\r\n { id: 5, name: \"Scanner\" },\r\n { id: 2, name: \"Stopwatch\" },\r\n { id: 6, name: \"Take Picture\" },\r\n ];\r\n\r\n useEffect(() => {\r\n setList(allDataLists);\r\n setapis(allExternalApis);\r\n\r\n if (props.row !== undefined) {\r\n let row = props.row;\r\n\r\n if (row.typeId !== null) {\r\n if (row.typeId === 7) {\r\n // set selectedTypeName to the corresponding api\r\n const selectedApi = allExternalApis.find(api => api.id === row.externalApiId);\r\n if (selectedApi) {\r\n setSelectedTypeName(selectedApi.name);\r\n }\r\n } else if (row.typeId === 4) {\r\n // set selectedTypeName to corresponding dataList\r\n const selectedDataList = allDataLists.find(list => list.id === row.dataListId);\r\n if (selectedDataList) {\r\n setSelectedTypeName(selectedDataList.name);\r\n }\r\n } else {\r\n setSelect(row.typeId);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line \r\n }, [])\r\n\r\n useEffect(() => {\r\n if (select !== null) {\r\n const type = allTypes.find(type => type.id === select);\r\n if (type) {\r\n setSelectedTypeName(type.name);\r\n } else {\r\n setSelectedTypeName(null);\r\n }\r\n }\r\n }, [select]);\r\n\r\n useEffect(() => {\r\n if (openDropdown && openDropdownButtonRef.current) {\r\n // Calculate the position of the dropdown relative to the viewport\r\n const rect = openDropdownButtonRef.current.getBoundingClientRect();\r\n setDropdownPosition({\r\n top: rect.bottom + 4, // Position dropdown below the trigger\r\n left: rect.left, // Align to the left of the trigger\r\n });\r\n }\r\n }, [openDropdown])\r\n\r\n const handleSelect = (event) => {\r\n setSelect(event.target.value);\r\n props.action(event, props.id);\r\n };\r\n\r\n const handleTypeSelection = (typeId) => {\r\n setSelect(typeId);\r\n setTypeAction(typeId, props.id);\r\n setOpenDropdown(false);\r\n }\r\n\r\n const handleApiSelection = (id, row) => {\r\n setSelectedTypeName(row.name);\r\n props.actionExternalApi(id, row);\r\n setOpenDropdown(false);\r\n };\r\n\r\n const handleDataListSelection = (id, row) => {\r\n setSelectedTypeName(row.name);\r\n props.actionDataList(id, row);\r\n setOpenDropdown(false);\r\n };\r\n\r\n\r\n const handleOpenList = () => {\r\n setOpenList(!openList);\r\n };\r\n\r\n const handleOpenApi = () => {\r\n setOpenApi(!openApi);\r\n };\r\n\r\n const getApiTypeIcon = (externalApiTypeId) => {\r\n switch (externalApiTypeId) {\r\n case externalApiTypes.DATA:\r\n return \r\n case externalApiTypes.STOPWATCH:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n }\r\n\r\n return (\r\n // \r\n // {select ? null : Type}\r\n // handleSelect(e)}\r\n // MenuProps={{ PaperProps: { sx: { maxHeight: 210 } } }}\r\n // error={props.error}\r\n // >\r\n // Type's\r\n // Counter\r\n // Free text\r\n // Scanner\r\n // Stopwatch\r\n // Take Picture\r\n\r\n // List\r\n // \r\n // \r\n // \r\n // \r\n // {openList && list.filter(list => list.companyId === props.companyId).map((row, index) => (\r\n // props.actionDataList(props.id, row)} key={\"Dropdown_\" + index + \"_\" + row.id} value={row.name} index={index} >{\"Dropdown - \" + row.name}\r\n // ))}\r\n\r\n // Api\r\n // \r\n // \r\n // \r\n // \r\n // {openApi && apis.filter(api => api.companyId === props.companyId).map((row, index) => (\r\n // props.actionExternalApi(props.id, row)} key={\"API\" + index + \"_\" + row.id} value={row.name} index={index} >
    {getApiTypeIcon(row.externalApiTypeId)} {row.name}
    \r\n // ))}\r\n // \r\n //
    \r\n
    \r\n setOpenDropdown(!openDropdown)}\r\n >\r\n \r\n \r\n
    \r\n {openDropdown &&\r\n ReactDOM.createPortal(\r\n \r\n {/* button for counter, stopwatch, ... */}\r\n {allTypes.map((type, index) => (\r\n \r\n ))}\r\n\r\n setOpenList(!openList)}\r\n >\r\n List\r\n \r\n \r\n {openList && list.filter(list => list.companyId === props.companyId).map((row, index) => (\r\n handleDataListSelection(props.id, row)}\r\n key={\"Dropdown_\" + index + \"_\" + row.id}\r\n >\r\n {row.name}\r\n \r\n ))}\r\n\r\n setOpenApi(!openApi)}\r\n >\r\n API\r\n \r\n \r\n {openApi && apis.filter(api => api.companyId === props.companyId).map((row, index) => (\r\n handleApiSelection(props.id, row)}\r\n key={\"API\" + index + \"_\" + row.id}\r\n >\r\n
    \r\n {getApiTypeIcon(row.externalApiTypeId)}\r\n {row.name}\r\n
    \r\n \r\n ))}\r\n ,\r\n document.body\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default DropdownType\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n position: \"relative\",\r\n },\r\n\r\n inputContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n border: \"1px solid\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n\r\n padding: \"0px\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #0C0E29\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input: {\r\n width: \"100%\",\r\n height: \"56px\",\r\n padding: \"0 14px\",\r\n paddingRight: \"32px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n textAlign: \"left\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n dropdownContainer: {\r\n width: 'fit-content',\r\n minWidth: \"160px\",\r\n maxHeight: '200px',\r\n overflowY: 'scroll',\r\n position: 'absolute',\r\n // top: 'calc(100% + 4px)',\r\n // left: '0',\r\n zIndex: '999',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"4px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#989898\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#7C7C7C\",\r\n },\r\n },\r\n\r\n dropdown__collapseButton: {\r\n width: '100%',\r\n minHeight: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n gap: \"8px\",\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n // no text wrapping\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n collapseButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n minHeight: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n input__icon: {\r\n position: \"absolute\",\r\n right: \"10px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n icon: {\r\n width: \"20px\",\r\n height: \"20px\",\r\n strokeWidth: \"1.4px\",\r\n color: \"#0C0E29\",\r\n }\r\n});\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { dataService } from '../../../Services/data/data.service';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ChevronDown, Braces, Timer, CircleHelp } from 'lucide-react';\r\nimport { IconButton, Select, FormControl, MenuItem, InputLabel, ListSubheader } from '@mui/material';\r\nimport { externalApiTypes } from '../../../Config/constants';\r\n\r\nfunction DropdownValueTypes({ valueTypes, currentValueTypeId, setValueTypeAction, error, ...props }) {\r\n const classes = useStyles();\r\n const [select, setSelect] = useState(\"\");\r\n\r\n // Dropdown\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n const [selectedValueTypeName, setSelectedValueTypeName] = useState(\"\");\r\n const openDropdownButtonRef = useRef(null);\r\n const dropdownRef = useRef(null);\r\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\r\n\r\n useEffect(() => {\r\n if (select !== null) {\r\n valueTypes.forEach(valueType => {\r\n if (valueType.id === select) {\r\n setSelectedValueTypeName(valueType.name);\r\n }\r\n });\r\n } else {\r\n setSelectedValueTypeName(\"\");\r\n }\r\n }, [select]);\r\n\r\n useEffect(() => {\r\n if (openDropdown && openDropdownButtonRef.current) {\r\n // Calculate the position of the dropdown relative to the viewport\r\n const rect = openDropdownButtonRef.current.getBoundingClientRect();\r\n setDropdownPosition({\r\n top: rect.bottom + 4, // Position dropdown below the trigger\r\n left: rect.left, // Align to the left of the trigger\r\n });\r\n }\r\n }, [openDropdown])\r\n\r\n useEffect(() => {\r\n if (currentValueTypeId !== undefined) {\r\n setSelect(currentValueTypeId);\r\n }\r\n }, [valueTypes]);\r\n\r\n // handle click outside\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target) && openDropdown) {\r\n // check if target is not the button\r\n if (!openDropdownButtonRef.current.contains(event.target)) {\r\n setOpenDropdown(false);\r\n };\r\n };\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [openDropdown]);\r\n\r\n const handleSelect = (event) => {\r\n setSelect(event.target.value);\r\n props.action(props.id, event.target.value);\r\n };\r\n\r\n const handleValueTypeSelection = (valueTypeId) => {\r\n setSelect(valueTypeId);\r\n setValueTypeAction(props.id, valueTypeId);\r\n // close dropdown\r\n setOpenDropdown(false);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {ReactDOM.createPortal(\r\n
    \r\n \r\n {valueTypes.map((valueType) => (\r\n \r\n ))}\r\n
    ,\r\n document.body\r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default DropdownValueTypes\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n position: \"relative\",\r\n },\r\n\r\n inputContainer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n position: \"relative\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n\r\n border: \"1px solid\",\r\n borderRadius: \"4px\",\r\n backgroundColor: \"transparent\",\r\n\r\n padding: \"0px\",\r\n\r\n \"&:hover\": {\r\n border: \"1px solid #0C0E29\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n input: {\r\n width: \"100%\",\r\n height: \"56px\",\r\n padding: \"0 14px\",\r\n paddingRight: \"32px\",\r\n border: \"none\",\r\n outline: \"none\",\r\n backgroundColor: \"transparent\",\r\n color: \"#0C0E29\",\r\n fontSize: \"16px\",\r\n textAlign: \"left\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n\r\n dropdownContainer: {\r\n width: 'fit-content',\r\n maxHeight: '200px',\r\n overflowY: 'auto',\r\n position: 'absolute',\r\n // top: 'calc(100% + 4px)',\r\n // left: '0',\r\n zIndex: '999',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: '4px',\r\n border: '1px solid #DCDCDC',\r\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\r\n\r\n display: 'flex',\r\n flexDirection: 'column',\r\n\r\n padding: '4px',\r\n\r\n \"&::-webkit-scrollbar\": {\r\n width: \"4px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#989898\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-track\": {\r\n backgroundColor: \"#F4F4F4\",\r\n borderRadius: \"2px\",\r\n },\r\n\r\n \"&::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: \"#7C7C7C\",\r\n },\r\n },\r\n\r\n dropdown__collapseButton: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n gap: \"8px\",\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"rgba(12, 14, 41, 0.6)\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n // no text wrapping\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n collapseButton__icon: {\r\n width: \"16px\",\r\n height: \"16px\",\r\n color: \"#0C0E29\",\r\n },\r\n\r\n dropdown__menuItem: {\r\n width: '100%',\r\n height: '32px',\r\n boxSizing: 'border-box',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n padding: '0px 8px',\r\n border: \"none\",\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n\r\n fontSize: '16px',\r\n fontFamily: 'Lato, sans-serif',\r\n fontWeight: 'normal',\r\n color: \"#0C0E29\",\r\n backgroundColor: '#FFFFFF',\r\n\r\n \"&:hover\": {\r\n backgroundColor: '#F4F4F4',\r\n },\r\n\r\n \"&:active\": {\r\n backgroundColor: '#EDEDED',\r\n },\r\n\r\n \"&:focus\": {\r\n outline: \"none\",\r\n },\r\n },\r\n\r\n input__icon: {\r\n position: \"absolute\",\r\n right: \"10px\",\r\n width: \"20px\",\r\n height: \"20px\",\r\n color: \"#0C0E29\",\r\n },\r\n});\r\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8 11h8v2H8zm12.1 1H22c0-2.76-2.24-5-5-5h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M19 12h-2v3h-3v2h3v3h2v-3h3v-2h-3z\"\n}), 'AddLink');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5\"\n}), 'Link');","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport getReactElementRef from '@mui/utils/getReactElementRef';\nimport debounce from \"../utils/debounce.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport { useTheme } from \"../zero-styled/index.js\";\nimport { reflow, getTransitionProps } from \"../transitions/utils.js\";\nimport { ownerWindow } from \"../utils/index.js\";\n\n// Translate the node so it can't be seen on the screen.\n// Later, we're going to translate the node back to its original location with `none`.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getTranslateValue(direction, node, resolvedContainer) {\n const rect = node.getBoundingClientRect();\n const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n let offsetX = 0;\n let offsetY = 0;\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n if (direction === 'left') {\n if (containerRect) {\n return `translateX(${containerRect.right + offsetX - rect.left}px)`;\n }\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n }\n if (direction === 'right') {\n if (containerRect) {\n return `translateX(-${rect.right - containerRect.left - offsetX}px)`;\n }\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n }\n if (direction === 'up') {\n if (containerRect) {\n return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;\n }\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n }\n\n // direction === 'down'\n if (containerRect) {\n return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n}\nfunction resolveContainer(containerPropProp) {\n return typeof containerPropProp === 'function' ? containerPropProp() : containerPropProp;\n}\nexport function setTranslateValue(direction, node, containerProp) {\n const resolvedContainer = resolveContainer(containerProp);\n const transform = getTranslateValue(direction, node, resolvedContainer);\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n\n/**\n * The Slide transition is used by the [Drawer](/material-ui/react-drawer/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n const theme = useTheme();\n const defaultEasing = {\n enter: theme.transitions.easing.easeOut,\n exit: theme.transitions.easing.sharp\n };\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n container: containerProp,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition,\n ...other\n } = props;\n const childrenRef = React.useRef(null);\n const handleRef = useForkRef(getReactElementRef(children), childrenRef, ref);\n const normalizedTransitionCallback = callback => isAppearing => {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n setTranslateValue(direction, node, containerProp);\n reflow(node);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', {\n ...transitionProps\n });\n node.style.transition = theme.transitions.create('transform', {\n ...transitionProps\n });\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n setTranslateValue(direction, node, containerProp);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(node => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n if (onExited) {\n onExited(node);\n }\n });\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(childrenRef.current, next);\n }\n };\n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n }, [direction, containerProp]);\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n const handleResize = debounce(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n });\n const containerWindow = ownerWindow(childrenRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp, containerProp]);\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/_jsx(TransitionComponent, {\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n appear: appear,\n in: inProp,\n timeout: timeout,\n ...other,\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef,\n style: {\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined,\n ...style,\n ...children.props.style\n },\n ...childProps\n });\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the container the Slide is transitioning from.\n */\n container: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open) {\n const resolvedContainer = resolveContainer(props.container);\n if (resolvedContainer && resolvedContainer.nodeType === 1) {\n const box = resolvedContainer.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== 'function' || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'It should be an HTML element instance.'].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * Direction the child node will enter from.\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n * @default {\n * enter: theme.transitions.easing.easeOut,\n * exit: theme.transitions.easing.sharp,\n * }\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDrawerUtilityClass(slot) {\n return generateUtilityClass('MuiDrawer', slot);\n}\nconst drawerClasses = generateUtilityClasses('MuiDrawer', ['root', 'docked', 'paper', 'paperAnchorLeft', 'paperAnchorRight', 'paperAnchorTop', 'paperAnchorBottom', 'paperAnchorDockedLeft', 'paperAnchorDockedRight', 'paperAnchorDockedTop', 'paperAnchorDockedBottom', 'modal']);\nexport default drawerClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport Modal from \"../Modal/index.js\";\nimport Slide from \"../Slide/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getDrawerUtilityClass } from \"./drawerClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, (ownerState.variant === 'permanent' || ownerState.variant === 'persistent') && styles.docked, styles.modal];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchor,\n variant\n } = ownerState;\n const slots = {\n root: ['root'],\n docked: [(variant === 'permanent' || variant === 'persistent') && 'docked'],\n modal: ['modal'],\n paper: ['paper', `paperAnchor${capitalize(anchor)}`, variant !== 'temporary' && `paperAnchorDocked${capitalize(anchor)}`]\n };\n return composeClasses(slots, getDrawerUtilityClass, classes);\n};\nconst DrawerRoot = styled(Modal, {\n name: 'MuiDrawer',\n slot: 'Root',\n overridesResolver\n})(memoTheme(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.drawer\n})));\nconst DrawerDockedRoot = styled('div', {\n shouldForwardProp: rootShouldForwardProp,\n name: 'MuiDrawer',\n slot: 'Docked',\n skipVariantsResolver: false,\n overridesResolver\n})({\n flex: '0 0 auto'\n});\nconst DrawerPaper = styled(Paper, {\n name: 'MuiDrawer',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`paperAnchor${capitalize(ownerState.anchor)}`], ownerState.variant !== 'temporary' && styles[`paperAnchorDocked${capitalize(ownerState.anchor)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 0 auto',\n zIndex: (theme.vars || theme).zIndex.drawer,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n // temporary style\n position: 'fixed',\n top: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n // At some point, it would be better to keep it for keyboard users.\n // :focus-ring CSS pseudo-class will help.\n outline: 0,\n variants: [{\n props: {\n anchor: 'left'\n },\n style: {\n left: 0\n }\n }, {\n props: {\n anchor: 'top'\n },\n style: {\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n }\n }, {\n props: {\n anchor: 'right'\n },\n style: {\n right: 0\n }\n }, {\n props: {\n anchor: 'bottom'\n },\n style: {\n top: 'auto',\n left: 0,\n bottom: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'left' && ownerState.variant !== 'temporary',\n style: {\n borderRight: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'top' && ownerState.variant !== 'temporary',\n style: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'right' && ownerState.variant !== 'temporary',\n style: {\n borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.anchor === 'bottom' && ownerState.variant !== 'temporary',\n style: {\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`\n }\n }]\n})));\nconst oppositeDirection = {\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n};\nexport function isHorizontal(anchor) {\n return ['left', 'right'].includes(anchor);\n}\nexport function getAnchor({\n direction\n}, anchor) {\n return direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;\n}\n\n/**\n * The props of the [Modal](/material-ui/api/modal/) component are available\n * when `variant=\"temporary\"` is set.\n */\nconst Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDrawer'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n anchor: anchorProp = 'left',\n BackdropProps,\n children,\n className,\n elevation = 16,\n hideBackdrop = false,\n ModalProps: {\n BackdropProps: BackdropPropsProp,\n ...ModalProps\n } = {},\n onClose,\n open = false,\n PaperProps = {},\n SlideProps,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Slide,\n transitionDuration = defaultTransitionDuration,\n variant = 'temporary',\n ...other\n } = props;\n\n // Let's assume that the Drawer will always be rendered on user space.\n // We use this state is order to skip the appear transition during the\n // initial mount of the component.\n const mounted = React.useRef(false);\n React.useEffect(() => {\n mounted.current = true;\n }, []);\n const anchorInvariant = getAnchor({\n direction: isRtl ? 'rtl' : 'ltr'\n }, anchorProp);\n const anchor = anchorProp;\n const ownerState = {\n ...props,\n anchor,\n elevation,\n open,\n variant,\n ...other\n };\n const classes = useUtilityClasses(ownerState);\n const drawer = /*#__PURE__*/_jsx(DrawerPaper, {\n elevation: variant === 'temporary' ? elevation : 0,\n square: true,\n ...PaperProps,\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: children\n });\n if (variant === 'permanent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, {\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: drawer\n });\n }\n const slidingDrawer = /*#__PURE__*/_jsx(TransitionComponent, {\n in: open,\n direction: oppositeDirection[anchorInvariant],\n timeout: transitionDuration,\n appear: mounted.current,\n ...SlideProps,\n children: drawer\n });\n if (variant === 'persistent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, {\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref,\n ...other,\n children: slidingDrawer\n });\n }\n\n // variant === temporary\n return /*#__PURE__*/_jsx(DrawerRoot, {\n BackdropProps: {\n ...BackdropProps,\n ...BackdropPropsProp,\n transitionDuration\n },\n className: clsx(classes.root, classes.modal, className),\n open: open,\n ownerState: ownerState,\n onClose: onClose,\n hideBackdrop: hideBackdrop,\n ref: ref,\n ...other,\n ...ModalProps,\n children: slidingDrawer\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Drawer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Side from which the drawer will appear.\n * @default 'left'\n */\n anchor: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The elevation of the drawer.\n * @default 16\n */\n elevation: integerPropType,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Props applied to the [`Modal`](https://mui.com/material-ui/api/modal/) element.\n * @default {}\n */\n ModalProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Props applied to the [`Paper`](https://mui.com/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Props applied to the [`Slide`](https://mui.com/material-ui/api/slide/) element.\n */\n SlideProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * The variant to use.\n * @default 'temporary'\n */\n variant: PropTypes.oneOf(['permanent', 'persistent', 'temporary'])\n} : void 0;\nexport default Drawer;","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name House\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgiIC8+CiAgPHBhdGggZD0iTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy01Ljk5OWEyIDIgMCAwIDEgMi41ODIgMGw3IDUuOTk5QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/house\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst House = createLucideIcon('House', [\n ['path', { d: 'M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8', key: '5wwlr5' }],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n key: '1d0kgt',\n },\n ],\n]);\n\nexport default House;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ListChecks\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNyAyIDIgNC00IiAvPgogIDxwYXRoIGQ9Im0zIDcgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMTMgNmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOGg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-checks\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ListChecks = createLucideIcon('ListChecks', [\n ['path', { d: 'm3 17 2 2 4-4', key: '1jhpwq' }],\n ['path', { d: 'm3 7 2 2 4-4', key: '1obspn' }],\n ['path', { d: 'M13 6h8', key: '15sg57' }],\n ['path', { d: 'M13 12h8', key: 'h98zly' }],\n ['path', { d: 'M13 18h8', key: 'oe0vm4' }],\n]);\n\nexport default ListChecks;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name History\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djVsNCAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/history\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst History = createLucideIcon('History', [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '1357e3' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n ['path', { d: 'M12 7v5l4 2', key: '1fdv2h' }],\n]);\n\nexport default History;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChartColumnStacked\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTNINyIgLz4KICA8cGF0aCBkPSJNMTkgOWgtNCIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB4PSI3IiB5PSI4IiB3aWR0aD0iNCIgaGVpZ2h0PSI5IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-column-stacked\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChartColumnStacked = createLucideIcon('ChartColumnStacked', [\n ['path', { d: 'M11 13H7', key: 't0o9gq' }],\n ['path', { d: 'M19 9h-4', key: 'rera1j' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16', key: 'c24i48' }],\n ['rect', { x: '15', y: '5', width: '4', height: '12', rx: '1', key: 'q8uenq' }],\n ['rect', { x: '7', y: '8', width: '4', height: '9', rx: '1', key: 'sr5ea' }],\n]);\n\nexport default ChartColumnStacked;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Database\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSIgLz4KICA8cGF0aCBkPSJNMyAxMkE5IDMgMCAwIDAgMjEgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/database\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Database = createLucideIcon('Database', [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3', key: 'msslwz' }],\n ['path', { d: 'M3 5V19A9 3 0 0 0 21 19V5', key: '1wlel7' }],\n ['path', { d: 'M3 12A9 3 0 0 0 21 12', key: 'mv7ke4' }],\n]);\n\nexport default Database;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Cog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIydi0yIiAvPgogIDxwYXRoIGQ9Im0xNyAyMC42Ni0xLTEuNzMiIC8+CiAgPHBhdGggZD0iTTExIDEwLjI3IDcgMy4zNCIgLz4KICA8cGF0aCBkPSJtMjAuNjYgMTctMS43My0xIiAvPgogIDxwYXRoIGQ9Im0zLjM0IDcgMS43MyAxIiAvPgogIDxwYXRoIGQ9Ik0xNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIiIC8+CiAgPHBhdGggZD0ibTIwLjY2IDctMS43MyAxIiAvPgogIDxwYXRoIGQ9Im0zLjM0IDE3IDEuNzMtMSIgLz4KICA8cGF0aCBkPSJtMTcgMy4zNC0xIDEuNzMiIC8+CiAgPHBhdGggZD0ibTExIDEzLjczLTQgNi45MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cog\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Cog = createLucideIcon('Cog', [\n ['path', { d: 'M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z', key: 'sobvz5' }],\n ['path', { d: 'M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z', key: '11i496' }],\n ['path', { d: 'M12 2v2', key: 'tus03m' }],\n ['path', { d: 'M12 22v-2', key: '1osdcq' }],\n ['path', { d: 'm17 20.66-1-1.73', key: 'eq3orb' }],\n ['path', { d: 'M11 10.27 7 3.34', key: '16pf9h' }],\n ['path', { d: 'm20.66 17-1.73-1', key: 'sg0v6f' }],\n ['path', { d: 'm3.34 7 1.73 1', key: '1ulond' }],\n ['path', { d: 'M14 12h8', key: '4f43i9' }],\n ['path', { d: 'M2 12h2', key: '1t8f8n' }],\n ['path', { d: 'm20.66 7-1.73 1', key: '1ow05n' }],\n ['path', { d: 'm3.34 17 1.73-1', key: 'nuk764' }],\n ['path', { d: 'm17 3.34-1 1.73', key: '2wel8s' }],\n ['path', { d: 'm11 13.73-4 6.93', key: '794ttg' }],\n]);\n\nexport default Cog;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ListPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTJIMyIgLz4KICA8cGF0aCBkPSJNMTYgNkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOEgzIiAvPgogIDxwYXRoIGQ9Ik0xOCA5djYiIC8+CiAgPHBhdGggZD0iTTIxIDEyaC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ListPlus = createLucideIcon('ListPlus', [\n ['path', { d: 'M11 12H3', key: '51ecnj' }],\n ['path', { d: 'M16 6H3', key: '1wxfjs' }],\n ['path', { d: 'M16 18H3', key: '12xzn7' }],\n ['path', { d: 'M18 9v6', key: '1twb98' }],\n ['path', { d: 'M21 12h-6', key: 'bt1uis' }],\n]);\n\nexport default ListPlus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name HandCoins\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTciIC8+CiAgPHBhdGggZD0ibTcgMjEgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSIgLz4KICA8cGF0aCBkPSJtMiAxNiA2IDYiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSI5IiByPSIyLjkiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-coins\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst HandCoins = createLucideIcon('HandCoins', [\n ['path', { d: 'M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17', key: 'geh8rc' }],\n [\n 'path',\n {\n d: 'm7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9',\n key: '1fto5m',\n },\n ],\n ['path', { d: 'm2 16 6 6', key: '1pfhp9' }],\n ['circle', { cx: '16', cy: '9', r: '2.9', key: '1n0dlu' }],\n ['circle', { cx: '6', cy: '5', r: '3', key: '151irh' }],\n]);\n\nexport default HandCoins;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name UserCog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE1IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI3IiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJtMjEuNyAxNi40LS45LS4zIiAvPgogIDxwYXRoIGQ9Im0xNS4yIDEzLjktLjktLjMiIC8+CiAgPHBhdGggZD0ibTE2LjYgMTguNy4zLS45IiAvPgogIDxwYXRoIGQ9Im0xOS4xIDEyLjIuMy0uOSIgLz4KICA8cGF0aCBkPSJtMTkuNiAxOC43LS40LTEiIC8+CiAgPHBhdGggZD0ibTE2LjggMTIuMy0uNC0xIiAvPgogIDxwYXRoIGQ9Im0xNC4zIDE2LjYgMS0uNCIgLz4KICA8cGF0aCBkPSJtMjAuNyAxMy44IDEtLjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-cog\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst UserCog = createLucideIcon('UserCog', [\n ['circle', { cx: '18', cy: '15', r: '3', key: 'gjjjvw' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ['path', { d: 'M10 15H6a4 4 0 0 0-4 4v2', key: '1nfge6' }],\n ['path', { d: 'm21.7 16.4-.9-.3', key: '12j9ji' }],\n ['path', { d: 'm15.2 13.9-.9-.3', key: '1fdjdi' }],\n ['path', { d: 'm16.6 18.7.3-.9', key: 'heedtr' }],\n ['path', { d: 'm19.1 12.2.3-.9', key: '1af3ki' }],\n ['path', { d: 'm19.6 18.7-.4-1', key: '1x9vze' }],\n ['path', { d: 'm16.8 12.3-.4-1', key: 'vqeiwj' }],\n ['path', { d: 'm14.3 16.6 1-.4', key: '1qlj63' }],\n ['path', { d: 'm20.7 13.8 1-.4', key: '1v5t8k' }],\n]);\n\nexport default UserCog;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Users\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8cGF0aCBkPSJNMjIgMjF2LTJhNCA0IDAgMCAwLTMtMy44NyIgLz4KICA8cGF0aCBkPSJNMTYgMy4xM2E0IDQgMCAwIDEgMCA3Ljc1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Users = createLucideIcon('Users', [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87', key: 'kshegd' }],\n ['path', { d: 'M16 3.13a4 4 0 0 1 0 7.75', key: '1da9ce' }],\n]);\n\nexport default Users;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LogOut\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMTYgMTcgMjEgMTIgMTYgNyIgLz4KICA8bGluZSB4MT0iMjEiIHgyPSI5IiB5MT0iMTIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/log-out\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LogOut = createLucideIcon('LogOut', [\n ['path', { d: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4', key: '1uf3rs' }],\n ['polyline', { points: '16 17 21 12 16 7', key: '1gabdz' }],\n ['line', { x1: '21', x2: '9', y1: '12', y2: '12', key: '1uyos4' }],\n]);\n\nexport default LogOut;\n","import React, { useState } from \"react\";\r\nimport { getAuth, signOut } from \"firebase/auth\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\nimport AddLinkIcon from '@mui/icons-material/AddLink';\r\nimport LinkIcon from '@mui/icons-material/Link';\r\nimport { Roles } from '../../Config/constants';\r\n\r\nimport { Divider, Collapse, List, ListItem, ListItemIcon, ListItemText, IconButton, MenuItem, Drawer, Box } from '@mui/material';\r\nimport { Plus, House, Wrench, ListChecks, History, ChartColumnStacked, UserCog, Cog, ChevronDown, ChevronUp, ListPlus, List as ListIcon, X, LogOut as LogOutIcon, Users, HandCoins, ClipboardList, Database } from 'lucide-react';\r\n\r\n\r\nfunction Menu(props) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const [openCollapse, setOpenCollapse] = useState(false);\r\n\r\n function handleOpenSettings() {\r\n setOpenCollapse(!openCollapse);\r\n }\r\n const auth = getAuth();\r\n\r\n const LogOut = () => {\r\n signOut(auth).then((response) => {\r\n navigate('/login');\r\n props.actions.setLogin(false);\r\n props.actions.setUserid(null);\r\n props.actions.setUserName(null);\r\n props.actions.setCompanyIds(null);\r\n props.actions.setUserRoles(null);\r\n props.actions.setAccessToken(null);\r\n props.actions.setEmail(null);\r\n\r\n\r\n\r\n // Sign-out successful.\r\n }).catch((error) => {\r\n console.log(error, 'error')\r\n // An error happened.\r\n });\r\n // props.actions.setLogin(false);\r\n // props.actions.setUserid(null);\r\n // if (loggedInState === true) {\r\n // navigate('/login');\r\n // }\r\n }\r\n\r\n\r\n const navigateTo = (destination) => {\r\n const currentPath = window.location.pathname;\r\n\r\n navigate(destination, { state: { from: currentPath } });\r\n }\r\n\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n

    Menu

    \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n navigateTo('/')}\r\n divider={true}>\r\n \r\n \r\n \r\n Homepage\r\n \r\n navigateTo('/create')}\r\n divider={true}>\r\n \r\n \r\n \r\n Create a project\r\n \r\n {/* navigateTo('/manage')}\r\n divider={true}>\r\n \r\n \r\n \r\n Manage projects\r\n */}\r\n navigateTo('/projectreportoverview')}\r\n divider={true}>\r\n \r\n \r\n \r\n Project overview\r\n \r\n navigateTo('/results')}\r\n divider={true}>\r\n \r\n \r\n \r\n Last 24 hours\r\n \r\n navigateTo('/graphs')}\r\n divider={true}>\r\n \r\n \r\n \r\n Graphs overview\r\n \r\n navigateTo('/datamanagement')}\r\n divider={true}>\r\n \r\n \r\n \r\n Data management\r\n \r\n {/* navigateTo('/generalledgeraccount')}\r\n divider={true}>\r\n \r\n \r\n \r\n General ledger account\r\n */}\r\n \r\n \r\n \r\n \r\n Configuration\r\n {openCollapse ? : }\r\n\r\n \r\n \r\n \r\n navigateTo('/createdropdown')} divider={true}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n navigateTo('/dropdownoverview')} divider={true}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n navigateTo('/createapi')} divider={true}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n navigateTo('/externalapioverview')} divider={true}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n navigateTo('/accountoverview')} divider={true}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n navigateTo('/user')}\r\n divider={true}>\r\n \r\n \r\n \r\n User settings\r\n \r\n {/* {props.Login.userRoles.includes(Roles.ADMIN) && */}\r\n navigateTo('/company')}\r\n divider={true}>\r\n \r\n \r\n \r\n Company settings\r\n \r\n {/* } */}\r\n \r\n \r\n\r\n \r\n \r\n Logout\r\n \r\n \r\n\r\n
    \r\n\r\n\r\n\r\n\r\n {/* \r\n \r\n \r\n \r\n User settings\r\n \r\n \r\n \r\n\r\n \r\n \r\n Terms {\"&\"} Policy\r\n */}\r\n\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default Menu\r\nconst useStyles = makeStyles({\r\n sideBar: {\r\n color: '#1D3557 !important',\r\n width: '300px', height: '100%'\r\n },\r\n titleHeader: {\r\n color: '#1D3557 !important',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'around',\r\n marginLeft: '25px'\r\n },\r\n\r\n menuItem: {\r\n marginBottom: '15px',\r\n color: 'rgb(105, 105, 105) !important',\r\n // borderTop: '1px solid grey',\r\n },\r\n menuText: {\r\n paddingTop: '10px',\r\n paddingBottom: '10px',\r\n marginLeft: '15px',\r\n },\r\n iconItem: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n width: '30px',\r\n paddingRight: '10px',\r\n borderRight: '1px solid rgba(0, 0, 0, 0.12)',\r\n fontSize: '25px !important'\r\n },\r\n ImgItem: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n width: '30px',\r\n paddingRight: '10px',\r\n borderRight: '1px solid rgba(0, 0, 0, 0.12)',\r\n },\r\n selectedItem: {\r\n backgroundColor: 'red !important',\r\n },\r\n toggleArrow: {\r\n float: 'right',\r\n marginRight: '0',\r\n marginLeft: 'auto'\r\n },\r\n listItemIcon: {\r\n borderRight: '1px solid rgba(0, 0, 0, 0.12)',\r\n display: 'flex',\r\n paddingRight: '10px',\r\n\r\n justifyContent: 'end'\r\n\r\n },\r\n listItemText: {\r\n color: 'rgb(105, 105, 105) !important',\r\n\r\n paddingLeft: '10px'\r\n },\r\n imageStyle: {\r\n filter: 'contrast(80%)',\r\n opacity: '75%',\r\n width: '30px'\r\n },\r\n});","import React from 'react';\r\nimport { Navigate } from 'react-router-dom';\r\n\r\nexport const PrivateRoute = (props) => {\r\n if (!props.Login.loginState) {\r\n // not logged in so redirect to login page with the return url\r\n return \r\n }\r\n\r\n // If authorized, return an outlet that will render child elements\r\n // If not, return element that will navigate to login page\r\n // return children;\r\n return props.children;\r\n}\r\n\r\nexport default PrivateRoute;\r\n","import React, { useState } from 'react';\r\nimport ShareDialog from '../Shared/Dialogs/ShareDialog';\r\nimport {IconButton } from '@mui/material';\r\nimport { QrCode as QrCodeIcon } from 'lucide-react';\r\n\r\nfunction QrButton(props) {\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n\r\n {open &&\r\n\r\n \r\n }\r\n
    \r\n )\r\n\r\n}\r\n\r\nexport default QrButton;","import React from 'react';\r\nimport { makeStyles, TextField } from '@material-ui/core';\r\nimport { dataListTypes } from '../../../Config/constants';\r\n\r\n\r\nexport default function FilterListRow(props) {\r\n const classes = useStyles();\r\n const getValue = (type) => {\r\n\r\n let filter = props.filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {/*CompanyName */}\r\n \r\n 0 ? props.filters[0].type === dataListTypes.NAME : false} \r\n id=\"outlined-search\" \r\n label=\"\" \r\n type=\"search\" \r\n variant=\"outlined\" \r\n value={getValue(dataListTypes.NAME)} \r\n className={classes.textField} \r\n size=\"small\" \r\n onChange={(e) => props.updateFilters(dataListTypes.NAME, e)}/>\r\n \r\n \r\n{/* {props.groupType !== salesorderGroupingTypes.SLICE_TYPE && \r\n */}{/* 0 ? props.filters[0].type === customerProductFilterTypes.SLICE_TYPE : false} id=\"outlined-search\" label=\"\" type=\"search\" variant=\"outlined\" value={getValue(customerProductFilterTypes.SLICE_TYPE)} className={classes.textField} size=\"small\" onChange={(e) => props.updateFilters(customerProductFilterTypes.SLICE_TYPE, e)} />\r\n } */} \r\n \r\n{/* 0 ? props.filters[0].type === customerProductFilterTypes.PALLET_TYPE : false} id=\"outlined-search\" label=\"\" type=\"search\" variant=\"outlined\" value={getValue(customerProductFilterTypes.PALLET_TYPE)} className={classes.textField} size=\"small\" onChange={(e) => props.updateFilters(customerProductFilterTypes.PALLET_TYPE, e)} />\r\n */} \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n filterRow: {\r\n marginBottom: '10px',\r\n width: '100%',\r\n },\r\n leftCell: {\r\n fontSize: \"14px\",\r\n color: \"#020100\",\r\n padding: \"10px\",\r\n fontWeight: \"normal\",\r\n paddingLeft: \"20px\",\r\n },\r\n midCell: {\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n color: \"#020100\",\r\n height: \"40px\",\r\n },\r\n rightCell: {\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n color: \"#020100\",\r\n paddingLeft: \"10px\",\r\n },\r\n textField: {\r\n backgroundColor: \"white\",\r\n width: \"90%\",\r\n },\r\n checkBox: {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n float: \"left\"\r\n },\r\n icon: {\r\n borderRadius: 3,\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n checkedIcon: {\r\n backgroundColor: \"black\",\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n backgroundImage:\r\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath\" +\r\n \" fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 \" +\r\n \"1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='%23fff'/%3E%3C/svg%3E\\\")\",\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: \"black\",\r\n },\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { makeStyles, TextField } from '@material-ui/core';\r\nimport { ProjectFilterTypes } from '../../../Config/constants';\r\n\r\n\r\nexport default function FilterProjectRow(props) {\r\n const classes = useStyles();\r\n const getValue = (type) => {\r\n\r\n let filter = props.filters.find(x => x.type === type)\r\n\r\n if (filter) {\r\n return filter.filterValue\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {/*ProjectName */}\r\n \r\n 0 ? props.filters[0].type === ProjectFilterTypes.PROJECT_NAME : false}\r\n id=\"outlined-search\" label=\"\" type=\"search\" variant=\"outlined\"\r\n value={getValue(ProjectFilterTypes.PROJECT_NAME)}\r\n className={classes.textField} size=\"small\"\r\n onChange={(e) => props.updateFilters(ProjectFilterTypes.PROJECT_NAME, e)} />\r\n \r\n\r\n {/*Resource*/}\r\n \r\n 0 ? props.filters[0].type === ProjectFilterTypes.LOCATION_NAME : false}\r\n id=\"outlined-search\" label=\"\" type=\"search\" variant=\"outlined\"\r\n value={getValue(ProjectFilterTypes.LOCATION_NAME)}\r\n className={classes.textField} size=\"small\"\r\n onChange={(e) => props.updateFilters(ProjectFilterTypes.LOCATION_NAME, e)} />\r\n \r\n {/*CompanyName */}\r\n \r\n 0 ? props.filters[0].type === ProjectFilterTypes.CUSTOMER : false}\r\n id=\"outlined-search\"\r\n label=\"\"\r\n type=\"search\"\r\n variant=\"outlined\"\r\n value={getValue(ProjectFilterTypes.CUSTOMER)}\r\n className={classes.textField}\r\n size=\"small\"\r\n onChange={(e) => props.updateFilters(ProjectFilterTypes.CUSTOMER, e)} />\r\n\r\n \r\n {/* {props.groupType !== salesorderGroupingTypes.SLICE_TYPE && \r\n */}{/* 0 ? props.filters[0].type === customerProductFilterTypes.SLICE_TYPE : false} id=\"outlined-search\" label=\"\" type=\"search\" variant=\"outlined\" value={getValue(customerProductFilterTypes.SLICE_TYPE)} className={classes.textField} size=\"small\" onChange={(e) => props.updateFilters(customerProductFilterTypes.SLICE_TYPE, e)} />\r\n } */}\r\n \r\n {/* 0 ? props.filters[0].type === customerProductFilterTypes.PALLET_TYPE : false} id=\"outlined-search\" label=\"\" type=\"search\" variant=\"outlined\" value={getValue(customerProductFilterTypes.PALLET_TYPE)} className={classes.textField} size=\"small\" onChange={(e) => props.updateFilters(customerProductFilterTypes.PALLET_TYPE, e)} />\r\n */} \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n filterRow: {\r\n marginBottom: '10px',\r\n width: '100%',\r\n },\r\n leftCell: {\r\n fontSize: \"14px\",\r\n color: \"#020100\",\r\n padding: \"10px\",\r\n fontWeight: \"normal\",\r\n paddingLeft: \"20px\",\r\n },\r\n midCell: {\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n color: \"#020100\",\r\n height: \"40px\",\r\n },\r\n rightCell: {\r\n fontSize: \"14px\",\r\n fontWeight: \"normal\",\r\n color: \"#020100\",\r\n paddingLeft: \"10px\",\r\n },\r\n textField: {\r\n backgroundColor: \"white\",\r\n width: \"90%\",\r\n },\r\n checkBox: {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n float: \"left\"\r\n },\r\n icon: {\r\n borderRadius: 3,\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5',\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)',\r\n },\r\n },\r\n checkedIcon: {\r\n backgroundColor: \"black\",\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n backgroundImage:\r\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath\" +\r\n \" fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 \" +\r\n \"1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='%23fff'/%3E%3C/svg%3E\\\")\",\r\n content: '\"\"',\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: \"black\",\r\n },\r\n },\r\n}));\r\n","import React, { useEffect, useState, forwardRef, useImperativeHandle } from \"react\";\r\nimport DropdownType from \"../Dropdowns/DropdownType\";\r\nimport ButtonNormalText from \"../Buttons/ButtonNormalText\";\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport './TableStyle.css';\r\nimport { dataService } from \"../../../Services/data/data.service\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ColorPicker from \"../ColorPicker\";\r\nimport { controlTypes, externalApiTypes } from \"../../../Config/constants\";\r\nimport { Fab, Paper, InputAdornment, Tooltip, FormControl, InputLabel, Select, IconButton, DialogTitle, ToggleButton, ToggleButtonGroup, DialogContentText, DialogContent, DialogActions, Dialog, Table, TableContainer, TableRow, TextField, MenuItem, ListSubheader, Checkbox } from '@mui/material';\r\nimport { Plus, Minus, Trash2, Pencil, Save, GripVertical, X } from 'lucide-react';\r\nimport DropdownAccounts from \"../Dropdowns/DropdownAccounts\";\r\nimport DropdownValueTypes from \"../Dropdowns/DropdownValueTypes\";\r\n\r\nconst TableDragResources = forwardRef((props, ref) => {\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false); // Row error dialog\r\n const [types, setTypes] = useState([]);\r\n const [lists, setLists] = useState([]);\r\n const [apis, setApis] = useState([]);\r\n const [valueTypes, setValueTypes] = useState([]);\r\n const [allAccounts, setAllAccounts] = useState([]);\r\n const [expandTable, setExpandTable] = useState(false);\r\n const [currency, setCurrency] = useState({ symbol: '€' });\r\n\r\n const [openAllRowsErrorsDialog, setOpenAllRowsErrorsDialog] = useState(false);\r\n\r\n useEffect(() => {\r\n if (types.length === 0 || types === undefined) {\r\n dataService.getTypes().then(results => {\r\n setTypes(results);\r\n });\r\n }\r\n\r\n dataService.getValueTypes(props.Login.userid).then(result => {\r\n setValueTypes(result.sort((a, b) => a.name.localeCompare(b.name)));\r\n })\r\n\r\n dataService.getAllUserCompanyAccounts(props.Login.userid, 0, 0).then(result => {\r\n setAllAccounts(result);\r\n });\r\n\r\n dataService.getLists(props.Login.userid).then(result => {\r\n setLists(result.sort((a, b) => a.name.localeCompare(b.name)));\r\n });\r\n\r\n dataService.getApis(props.Login.userid).then(result => {\r\n setApis(result.sort((a, b) => a.name.localeCompare(b.name)));\r\n });\r\n // eslint-disable-next-line \r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.currency) {\r\n setCurrency(props.currency);\r\n }\r\n }, [props.currency]);\r\n\r\n const handleDialogOpen = () => {\r\n setOpenAllRowsErrorsDialog(true);\r\n }\r\n\r\n const handleDialogClose = () => {\r\n setOpenAllRowsErrorsDialog(false);\r\n }\r\n\r\n const selectType = (row) => {\r\n switch (row.type) {\r\n case 1: return \"Counter\";\r\n case 2: return \"Stopwatch\";\r\n case 3: return \"Text\";\r\n case 4:\r\n if (lists !== undefined && lists.length > 0) {\r\n return lists.find(x => x.id === row.dataListId).name;\r\n } break;\r\n case 5: return \"Scanner\";\r\n case 6: return \"Picture\";\r\n case 7:\r\n if (apis !== undefined && apis.length > 0 && row.externalApiId !== null) {\r\n return apis.find(x => x.id === row.externalApiId).name;\r\n } break;\r\n default:\r\n break;\r\n // eslint-disable-next-line \r\n }\r\n }\r\n\r\n // function to determine if the pricing should be per event or per hour\r\n const getPricingType = (row) => {\r\n // If the type is stopwatch, or the type is api and the externalApiTypeId is stopwatch then return price/hour\r\n switch (row.type) {\r\n case 2: return \"price/hour\";\r\n case 7:\r\n if (apis !== undefined && apis.length > 0 && row.externalApiId !== null) {\r\n if (apis.find(x => x.id === row.externalApiId).externalApiTypeId === externalApiTypes.STOPWATCH) {\r\n return \"price/hour\";\r\n } else {\r\n return \"price/event\";\r\n }\r\n } break;\r\n default:\r\n return \"price/event\";\r\n }\r\n }\r\n\r\n const selectTypeId = (row) => {\r\n switch (row.type) {\r\n case 1: return 1;\r\n case 2: return 2;\r\n case 3: return 3;\r\n case 4:\r\n if (lists !== undefined && lists.length > 0) {\r\n return lists.find(x => x.id === row.dataListId).name;\r\n } break;\r\n case 5: return 5;\r\n case 6: return 6;\r\n case 7:\r\n if (apis !== undefined && apis.length > 0 && row.externalApiId !== null) {\r\n return apis.find(x => x.id === row.externalApiId).name;\r\n } break;\r\n default:\r\n break;\r\n // eslint-disable-next-line \r\n }\r\n }\r\n const getRanHex = size => {\r\n let result = [];\r\n let hexRef = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\r\n\r\n for (let n = 0; n < size; n++) {\r\n result.push(hexRef[Math.floor(Math.random() * 16)]);\r\n }\r\n return result.join('');\r\n }\r\n\r\n\r\n const setType = (typeId, id) => {\r\n if (typeId < 9) {\r\n let tempArray = props.rows.map(x => ({ ...x }))\r\n if (typeId !== (controlTypes.CAMERA || controlTypes.COUNTER || controlTypes.SCANNER)) {\r\n tempArray.find(x => x.Id === id).comment = false;\r\n }\r\n if (typeId !== (controlTypes.FREETEXT || controlTypes.DATALIST || controlTypes.SCANNER)) {\r\n tempArray.find(x => x.Id === id).isParent = false;\r\n }\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).type = typeId;\r\n tempArray.find(x => x.Id === id).typeId = typeId;\r\n if (tempArray.find(x => x.Id === id).color === undefined) {\r\n switch (typeId) {\r\n case 1:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Counter\";\r\n break;\r\n case 2:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Stopwatch\";\r\n break;\r\n case 3:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Text\";\r\n break;\r\n case 5:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Scanner\";\r\n break;\r\n case 6:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Picture\";\r\n break;\r\n default:\r\n break;\r\n // eslint-disable-next-line \r\n }\r\n }\r\n } else {\r\n tempArray.find(x => x.edit).type = typeId;\r\n tempArray.find(x => x.edit).typeId = typeId;\r\n if (tempArray.find(x => x.Id === id).color === undefined) {\r\n switch (typeId) {\r\n case 1:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Counter\";\r\n break;\r\n case 2:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Stopwatch\";\r\n break;\r\n case 3:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Text\";\r\n break;\r\n case 5:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Scanner\";\r\n break;\r\n case 6:\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"Picture\";\r\n break;\r\n default:\r\n break;\r\n // eslint-disable-next-line \r\n }\r\n }\r\n }\r\n props.setRows(tempArray);\r\n }\r\n }\r\n\r\n const setTypeDataList = (id, DataListrow) => {\r\n let tempArray = props.rows.map(x => ({ ...x }))\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).type = 4;\r\n tempArray.find(x => x.Id === id).typeId = 4;\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).dataListId = DataListrow.id;\r\n tempArray.find(x => x.Id === id).name = \"List - \" + DataListrow.name;\r\n } else {\r\n tempArray.find(x => x.edit).type = 4;\r\n tempArray.find(x => x.edit).typeId = 4;\r\n tempArray.find(x => x.Id === id).dataListId = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).name = \"List - \" + DataListrow.name;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const setTypeExternalApi = (id, ExternalApirow) => {\r\n let tempArray = props.rows.map(x => ({ ...x }))\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).type = 7;\r\n tempArray.find(x => x.Id === id).typeId = 7;\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).externalApiId = ExternalApirow.id;\r\n tempArray.find(x => x.Id === id).name = \"Api - \" + ExternalApirow.name;\r\n } else {\r\n tempArray.find(x => x.edit).type = 7;\r\n tempArray.find(x => x.edit).typeId = 7;\r\n tempArray.find(x => x.Id === id).color = '#' + getRanHex(6);\r\n tempArray.find(x => x.Id === id).externalApiId = ExternalApirow.id;\r\n tempArray.find(x => x.Id === id).name = \"Api - \" + ExternalApirow.name;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const setValueType = (id, valueType) => {\r\n let tempArray = props.rows.map(x => ({ ...x }))\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).valueTypeId = valueType;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const setAccount = (id, accountId) => {\r\n let tempArray = props.rows.map(x => ({ ...x }))\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).accountId = accountId;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const setDescription = (event, id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).description = event.target.value;\r\n } else {\r\n tempArray.find(x => x.edit).description = event.target.value;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const setPrice = (event, id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n const inputValue = event.target.value; // Get the input value as a string\r\n\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).price = inputValue; // Keep it as a string\r\n } else {\r\n tempArray.find(x => x.edit).price = inputValue; // Keep it as a string\r\n }\r\n\r\n props.setRows(tempArray);\r\n };\r\n\r\n const handleCostProfit = (event, id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).costProfit = event;\r\n if (event === '+') {\r\n tempArray.find(x => x.Id === id).isProfit = true;\r\n } else {\r\n tempArray.find(x => x.Id === id).isProfit = false;\r\n }\r\n } else {\r\n tempArray.find(x => x.edit).costProfit = event;\r\n if (event === '+') {\r\n tempArray.find(x => x.Id === id).isProfit = true;\r\n } else {\r\n tempArray.find(x => x.Id === id).isProfit = false;\r\n }\r\n }\r\n props.setRows(tempArray);\r\n };\r\n\r\n\r\n const GenerateId = () => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n const ids = tempArray.map(object => {\r\n return object.Id;\r\n });\r\n const max = Math.max(...ids);\r\n if (tempArray.length === 0) {\r\n return 1;\r\n }\r\n else {\r\n let index = max;\r\n index++;\r\n return index;\r\n }\r\n }\r\n\r\n const editProjectRow = (id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n tempArray.find(x => x.Id === id).edit = true;\r\n props.setRows(tempArray);\r\n }\r\n\r\n const saveProjectRow = (id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n\r\n if (validateRow(id)) {\r\n tempArray.find(x => x.Id === id).edit = false;\r\n props.setRows(tempArray);\r\n props.makeSave(tempArray);\r\n } else {\r\n handleDialogOpen();\r\n }\r\n }\r\n\r\n const deleteProjectRow = (id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n let index = tempArray.indexOf(tempArray.find(x => x.Id === id));\r\n tempArray.splice(index, 1);\r\n props.setRows(tempArray);\r\n props.makeSave(tempArray);\r\n }\r\n\r\n const addRow = () => {\r\n var tempArray = props.rows.map(x => ({ ...x }))\r\n if (tempArray.find(x => x.type === null || x.description === \"\") === undefined) {\r\n let Rowid = { Id: GenerateId(), description: \"\", type: null, accountId: null, edit: true, name: \"\", sequence: GenerateId(), comment: false, isParent: false, newRow: true, price: 0, costProfit: '+', isProfit: true, descriptionError: null, accountError: null, typeError: null, };\r\n let PrevId = GenerateId() - 1;\r\n if (tempArray.length !== 0) {\r\n if (tempArray.find(x => x.Id === PrevId).description !== \"\" && tempArray.find(x => x.Id === PrevId).type !== null) {\r\n tempArray.find(x => x.Id === PrevId).edit = false;\r\n tempArray.push(Rowid);\r\n props.setRows(tempArray);\r\n }\r\n else {\r\n tempArray.push(Rowid);\r\n props.setRows(tempArray);\r\n }\r\n }\r\n else {\r\n tempArray.push(Rowid);\r\n props.setRows(tempArray);\r\n }\r\n }\r\n }\r\n\r\n const handleColor = (event, id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).color = event;\r\n } else {\r\n tempArray.find(x => x.edit).color = event;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const handleComment = (id) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n if (tempArray.find(x => x.Id === id) !== undefined) {\r\n tempArray.find(x => x.Id === id).comment = !tempArray.find(x => x.Id === id).comment;\r\n } else {\r\n tempArray.find(x => x.edit).comment = !tempArray.find(x => x.Id === id).comment;\r\n }\r\n props.setRows(tempArray);\r\n }\r\n\r\n const handleParent = (id) => {\r\n let tempArray = props.rows.map(row => ({\r\n ...row,\r\n comment: row.Id === id ? false : row.comment, // Set all others to false\r\n isParent: row.Id === id ? !row.isParent : false // Set all others to false\r\n }));\r\n props.setRows(tempArray);\r\n };\r\n\r\n const MoveSequence = (source, destination) => {\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n tempArray.forEach(function (value, i) {\r\n value.sequence = i;\r\n });\r\n tempArray[source].sequence = -1;\r\n if (source > destination) {\r\n tempArray.filter(x => x.sequence >= destination && x.sequence !== -1 && x.sequence < source).forEach(x => {\r\n x.sequence++;\r\n });\r\n }\r\n else if (source < destination) {\r\n tempArray.filter(x => x.sequence <= destination && x.sequence !== -1 && x.sequence > source).forEach(x => {\r\n x.sequence--;\r\n });\r\n }\r\n\r\n tempArray.find(x => x.sequence === -1).sequence = destination;\r\n tempArray.sort((a, b) => a.sequence - b.sequence);\r\n props.setRows(tempArray);\r\n Shrink();\r\n }\r\n\r\n const Expand = () => {\r\n setExpandTable(true);\r\n }\r\n\r\n const Shrink = () => {\r\n setExpandTable(false);\r\n }\r\n\r\n function handleOnDragEnd(result) {\r\n if (result.destination) {\r\n MoveSequence(result.source.index, result.destination.index);\r\n }\r\n if (!result.destination) return;\r\n }\r\n\r\n const formatAccountCategory = (id) => {\r\n if (allAccounts && allAccounts.length > 0) {\r\n let accountCategory = allAccounts.find(company => company.id === props.companyId).accountCategories.find(accountCategory => accountCategory.id === id);\r\n return accountCategory.name;\r\n }\r\n }\r\n\r\n const formatAccount = (id) => {\r\n if (id !== null) {\r\n if (allAccounts && allAccounts.length > 0) {\r\n let account;\r\n let companyAccounts = allAccounts.find(company => company.id === props.companyId);\r\n\r\n // find account in all companyAccounts.accountCategories\r\n companyAccounts.accountCategories.forEach(category => {\r\n let tempAccount = category.accounts.find(account => account.id === id);\r\n if (tempAccount !== undefined && tempAccount !== null) {\r\n account = tempAccount;\r\n }\r\n });\r\n\r\n return account.name;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n const formatValueType = (id) => {\r\n if (valueTypes && valueTypes.length > 0) {\r\n let valueType = valueTypes.find(valueType => valueType.id === id);\r\n return valueType.name;\r\n }\r\n };\r\n\r\n const resetAllRowErrors = () => {\r\n let updatedRows = props.rows.map(row => ({\r\n ...row,\r\n descriptionError: null,\r\n typeError: null,\r\n accountError: null\r\n }));\r\n\r\n props.setRows(updatedRows);\r\n };\r\n\r\n const validateRow = (rowId) => {\r\n let errors = 0;\r\n let tempArray = props.rows.map(x => ({ ...x }));\r\n let row = tempArray.find(x => x.Id === rowId);\r\n\r\n // resetRowErrors(rowId);\r\n // reset errors for current row\r\n tempArray.find(x => x.Id === rowId).descriptionError = null;\r\n tempArray.find(x => x.Id === rowId).typeError = null;\r\n tempArray.find(x => x.Id === rowId).accountError = null;\r\n\r\n if (row.description.trim() === \"\") {\r\n errors++;\r\n // setDescriptionError(\"Description is required.\", rowId);\r\n // set descriptionError for correct row in tempArray\r\n tempArray.find(x => x.Id === rowId).descriptionError = \"Description is required.\";\r\n }\r\n if (row.type === null) {\r\n errors++;\r\n // setTypeError(\"Type must be selected.\", rowId);\r\n tempArray.find(x => x.Id === rowId).typeError = \"Type must be selected.\";\r\n }\r\n\r\n let parsedPrice = typeof row.price === \"string\"\r\n ? parseFloat(row.price.replace(',', '.'))\r\n : parseFloat(row.price || 0);\r\n if ((parsedPrice !== null && parsedPrice > 0) && row.accountId === null) {\r\n errors++;\r\n // setAccountError(\"Account is required when price is set.\", rowId)\r\n tempArray.find(x => x.Id === rowId).accountError = \"Account is required when price is set.\";\r\n }\r\n\r\n props.setRows(tempArray);\r\n\r\n if (errors > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n const validateAllRows = async () => {\r\n let errors = 0;\r\n\r\n // Reset errors for all rows before validation\r\n resetAllRowErrors();\r\n\r\n // Update rows with validation errors\r\n const updatedRows = props.rows.map(row => {\r\n let rowErrors = 0;\r\n let descriptionError = null;\r\n let typeError = null;\r\n let accountError = null;\r\n\r\n // Validate description\r\n if (row.description === \"\") {\r\n descriptionError = \"Description is required.\";\r\n rowErrors++;\r\n }\r\n\r\n // Validate type\r\n if (row.type === null) {\r\n typeError = \"Type must be selected.\";\r\n rowErrors++;\r\n }\r\n\r\n // Validate price and account\r\n let parsedPrice = typeof row.price === \"string\"\r\n ? parseFloat(row.price.replace(',', '.'))\r\n : parseFloat(row.price || 0);\r\n\r\n if ((parsedPrice !== null && parsedPrice > 0) && row.accountId === null) {\r\n accountError = \"Account is required when price is set.\";\r\n rowErrors++;\r\n }\r\n\r\n errors += rowErrors;\r\n\r\n // Return updated row with error messages\r\n return {\r\n ...row,\r\n descriptionError,\r\n typeError,\r\n accountError\r\n };\r\n });\r\n\r\n // Update rows state if necessary (assuming props has a setRows method)\r\n props.setRows(updatedRows);\r\n\r\n if (errors > 0) {\r\n setOpenAllRowsErrorsDialog(true);\r\n }\r\n\r\n // Return validation result: true if no errors, false otherwise\r\n return errors === 0;\r\n };\r\n\r\n // Expose the validateAllRows function to the parent component\r\n useImperativeHandle(ref, () => ({\r\n validateAllRows,\r\n }));\r\n\r\n const handleCloseAllRowsErrorsDialog = () => {\r\n setOpenAllRowsErrorsDialog(false);\r\n };\r\n\r\n const rowHasErrors = (row) => {\r\n return row.descriptionError || row.typeError || row.accountError;\r\n }\r\n\r\n const detailHasMeasurements = async (id) => {\r\n const hasMeasurements = await dataService.projectDetailHasMeasurements(id);\r\n if (hasMeasurements) {\r\n console.log(\"has measurements\");\r\n } else {\r\n console.log(\"has no measurements\");\r\n }\r\n return hasMeasurements;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(provided) => (\r\n \r\n {props.rows.map((row, index) => {\r\n return (\r\n \r\n {(provided) => (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {provided.placeholder}\r\n \r\n )\r\n }\r\n \r\n )\r\n })\r\n }\r\n {expandTable ?\r\n \r\n : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {/* Single row error dialog */}\r\n \r\n \r\n {\"Error\"}\r\n \r\n \r\n \r\n {/* show all row errors, that are not null */}\r\n {props.rows.map(row => (\r\n \r\n {row.descriptionError &&
    {row.descriptionError}
    }\r\n {row.typeError &&
    {row.typeError}
    }\r\n {row.accountError &&
    {row.accountError}
    }\r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n Close\r\n \r\n \r\n\r\n {/* To Delete - OLD: All rows error dialog */}\r\n {/* handleCloseAllRowsErrorsDialog()}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n \r\n {\"Errors\"}\r\n \r\n \r\n \r\n {props.rows.map(row => (\r\n
    \r\n {row.descriptionError &&
    {row.descriptionError}
    }\r\n {row.typeError &&
    {row.typeError}
    }\r\n {row.accountError &&
    {row.accountError}
    }\r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n handleCloseAllRowsErrorsDialog()}>Close\r\n \r\n */}\r\n\r\n {/* All rows error dialog */}\r\n handleCloseAllRowsErrorsDialog()}\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n
    \r\n \r\n Errors\r\n \r\n \r\n
    \r\n \r\n
    \r\n {/* show all (unique) row errors, that are not null */}\r\n {props.rows.map((row, index) => {\r\n return rowHasErrors(row) ? ( // Explicitly return the JSX\r\n
    \r\n

    Row {index + 1}

    \r\n
    \r\n {row.descriptionError &&
    {row.descriptionError}
    }\r\n {row.typeError &&
    {row.typeError}
    }\r\n {row.accountError &&
    {row.accountError}
    }\r\n
    \r\n
    \r\n ) : null; // Return null if rowHasErrors is false\r\n })}\r\n
    \r\n \r\n
    \r\n
    #DescriptionType{currency.symbol}Value TypeAccountKeyCommentColorActions
    \r\n
    \r\n {index + 1}\r\n
    \r\n
    (Expand())} onMouseUp={() => (Shrink())} className={classes.dragTd} {...provided.dragHandleProps}>\r\n \r\n \r\n {row.edit ?// eslint-disable-next-line\r\n 0 ? row.description : ''} onChange={(event) => setDescription(event, row.Id)} /> :\r\n \r\n }\r\n \r\n {row.edit && !row.hasMeasurements ? (\r\n \r\n ) : types.length > 0 ? (row.edit && row.hasMeasurements) ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n ) : (\r\n null\r\n )}\r\n \r\n {row.edit ?// eslint-disable-next-line\r\n setPrice(event, row.Id)} InputProps={{\r\n startAdornment: {currency.symbol},\r\n endAdornment: {getPricingType(row)},\r\n inputMode: 'decimal'\r\n }} /> :\r\n {currency.symbol},\r\n endAdornment: {getPricingType(row)},\r\n inputMode: 'decimal'\r\n }} />\r\n\r\n }\r\n \r\n \r\n handleCostProfit('+', row.Id)} disabled={row.edit ? false : true}>\r\n \r\n \r\n \r\n \r\n\r\n handleCostProfit('-', row.Id)} disabled={row.edit ? false : true}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* setValueType(row.Id, e.target.value)}\r\n MenuProps={{ PaperProps: { sx: { maxHeight: 210 } } }}\r\n error={row.valueTypeError}\r\n > */}\r\n {/* Empty option for deselecting */}\r\n {/* \r\n None\r\n \r\n {valueTypes && valueTypes.map((row, valueTypeIndex) => (\r\n {row.name}\r\n ))}\r\n */}\r\n {row.edit ?\r\n \r\n :\r\n \r\n }\r\n \r\n {row.edit ?\r\n \r\n :\r\n \r\n }\r\n {row.edit && (row.type === controlTypes.FREETEXT || row.type === controlTypes.DATALIST || row.type === controlTypes.SCANNER) ?\r\n handleParent(row.Id)} checked={!!row.isParent} /> :\r\n }\r\n {row.edit && (row.type === controlTypes.COUNTER || row.type === controlTypes.STOPWATCH || row.type === controlTypes.SCANNER || row.type === controlTypes.CAMERA) && !row.isParent ?\r\n handleComment(row.Id)} checked={!!row.comment} /> :\r\n }\r\n \r\n y.Id === row.Id).color} disabled={!row.edit} id={row.Id} action={handleColor} />\r\n {/* {row.edit ?\r\n :\r\n
    \r\n
    y.Id === row.Id).color }}>\r\n
    \r\n
    } */}\r\n
    \r\n {row.edit ?\r\n saveProjectRow(row.Id)} className={classes.editButton} size=\"large\">\r\n \r\n :\r\n editProjectRow(row.Id)} className={classes.editButton} size=\"large\">\r\n \r\n \r\n }\r\n \r\n deleteProjectRow(row.Id)} className={classes.functionButton} color='error' size=\"large\">\r\n \r\n \r\n
    \r\n -\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n {/* */}\r\n \r\n \r\n \r\n\r\n {currency.symbol},\r\n endAdornment: price/event,\r\n inputMode: 'numeric'\r\n }} />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Account\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n})\r\n\r\nexport default TableDragResources;\r\n\r\nconst useStyles = makeStyles({\r\n tableContent: {\r\n paddingTop: \"15px\",\r\n },\r\n tableHead: {\r\n marginBottom: \"15px\",\r\n },\r\n addRow: {\r\n opacity: \"0.3\"\r\n },\r\n tableTd: {\r\n padding: \"5px\",\r\n },\r\n tableRow: {\r\n tableLayout: \"fixed\",\r\n },\r\n indexTd: {\r\n display: 'table-cell',\r\n borderRight: '2px solid rgb(224, 224, 224)',\r\n width: '25px',\r\n background: 'rgba(0, 0, 0, 0.54)',\r\n color: 'white',\r\n zIndex: '2',\r\n },\r\n emptydrag: {\r\n padding: '17px !important',\r\n border: '0'\r\n },\r\n listOrder: {\r\n paddingLeft: '5px',\r\n paddingRight: '5px',\r\n },\r\n dragTd: {\r\n border: '0',\r\n width: '24px',\r\n },\r\n dragIcon: {\r\n float: 'left',\r\n },\r\n descriptionField: {\r\n width: \"100%\",\r\n },\r\n editButton: {\r\n fontSize: '2rem !important',\r\n color: '#0B4097 !important',\r\n },\r\n functionButton: {\r\n fontSize: '2rem !important',\r\n },\r\n ColorPickerBorder: {\r\n padding: '5px',\r\n width: '46px',\r\n height: '24px',\r\n borderRadius: '2px',\r\n boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\r\n background: 'white',\r\n marginBottom: '5px'\r\n },\r\n ColorPicker: {\r\n width: '36px',\r\n height: '14px',\r\n borderRadius: '2px',\r\n },\r\n\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '400px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '16px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n lineHeight: \"29px !important\",\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#C3996B auto 1px',\r\n },\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n allRowsErrors__rowContainer: {\r\n width: \"100%\",\r\n boxSizing: \"border-box\",\r\n\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n\r\n backgroundColor: \"#F8F8F8\",\r\n\r\n borderRadius: \"4px\",\r\n\r\n padding: \"8px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n rowContainer__title: {\r\n fontSize: \"16px\",\r\n\r\n margin: \"0px\",\r\n marginBottom: \"8px\",\r\n },\r\n\r\n rowContainer__errorList: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"4px\",\r\n\r\n opacity: \".8\",\r\n\r\n margin: \"0px\",\r\n },\r\n\r\n errorListItem: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"8px\",\r\n\r\n marginLeft: \"4px\",\r\n },\r\n\r\n errorListItem__bullet: {\r\n width: \"4px\",\r\n height: \"4px\",\r\n borderRadius: \"50%\",\r\n backgroundColor: \"#0C0E29\",\r\n },\r\n});","import React from 'react';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nfunction TextfieldInput(props) {\r\n return (\r\n props.action(event)} />\r\n \r\n )\r\n}\r\n\r\n\r\nexport default TextfieldInput;","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { DialogTitle, DialogContent, Dialog } from '@mui/material';\r\nimport { X } from 'lucide-react';\r\n\r\nconst TextWithReadMore = ({ text, dialogTitle }) => {\r\n const classes = useStyles();\r\n const descriptionRef = useRef(null);\r\n\r\n const [showButton, setShowButton] = useState(false);\r\n const [openReadMoreDialog, setOpenReadMoreDialog] = useState(false);\r\n\r\n useEffect(() => {\r\n const element = descriptionRef.current;\r\n if (element) {\r\n // Check if content overflows the 5-line height\r\n const isOverflowing =\r\n element.scrollHeight > element.offsetHeight;\r\n setShowButton(isOverflowing);\r\n }\r\n }, [text]);\r\n\r\n return (\r\n <>\r\n
    \r\n

    {text}

    \r\n {showButton && (\r\n \r\n )}\r\n
    \r\n\r\n setOpenReadMoreDialog(false)}\r\n classes={{ paper: classes.dialogPaper }}\r\n >\r\n
    \r\n \r\n {dialogTitle ? dialogTitle : \"Read More\"}\r\n \r\n \r\n
    \r\n \r\n
    \r\n

    {text}

    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TextWithReadMore;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paragraph: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"inherit\",\r\n margin: \"0px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n display: \"-webkit-box\",\r\n WebkitLineClamp: \"3\",\r\n WebkitBoxOrient: \"vertical\",\r\n marginBottom: \"8px\",\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n WebkitLineClamp: \"5\",\r\n },\r\n },\r\n\r\n readMoreButton: {\r\n padding: \"0\",\r\n boxSizing: \"border-box\",\r\n\r\n border: \"none\",\r\n borderRadius: \"4px\",\r\n\r\n fontSize: \"16px\",\r\n color: \"inherit\",\r\n backgroundColor: \"transparent\",\r\n\r\n transition: \"all 0.2s ease-in-out\",\r\n whiteSpace: \"nowrap\",\r\n\r\n userSelect: \"none\",\r\n\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n textDecoration: \"underline\",\r\n textUnderlineOffset: \"4px\",\r\n },\r\n\r\n \"&:focus-visible\": {\r\n textDecoration: \"underline\",\r\n textUnderlineOffset: \"4px\",\r\n },\r\n },\r\n\r\n dialog: {\r\n margin: \"auto\"\r\n },\r\n\r\n dialogPaper: {\r\n width: '640px !important',\r\n height: 'auto',\r\n borderRadius: '6px !important',\r\n },\r\n\r\n dialog__head: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n\r\n padding: '16px 16px 0px 16px !important',\r\n marginBottom: '16px !important',\r\n },\r\n\r\n dialog__title: {\r\n fontSize: '24px !important',\r\n fontFamily: \"Lato, sans-serif !important\",\r\n fontWeight: 'normal',\r\n lineHeight: \"29px !important\",\r\n\r\n padding: '0px !important',\r\n },\r\n\r\n dialog__closeButton: {\r\n backgroundColor: '#F5F5F5',\r\n border: 'none',\r\n cursor: 'pointer',\r\n\r\n padding: '3px !important',\r\n height: '25px !important',\r\n\r\n borderRadius: '3px',\r\n\r\n transition: 'all 0.2s',\r\n\r\n '&:hover': {\r\n backgroundColor: '#D84949',\r\n color: '#F5F5F5',\r\n },\r\n\r\n '&:focus-visible': {\r\n outline: '#C3996B auto 1px',\r\n },\r\n },\r\n\r\n dialog__contentContainer: {\r\n padding: '0px 16px !important',\r\n marginBottom: \"16px\",\r\n\r\n // remove scrollbar\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n '-ms-overflow-style': 'none',\r\n scrollbarWidth: 'none',\r\n },\r\n\r\n dialog__content: {\r\n display: 'flex',\r\n height: '100%',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n alignItems: 'flex-start',\r\n\r\n margin: '0px !important',\r\n },\r\n\r\n content__paragraph: {\r\n fontFamily: \"Lato, sans-serif\",\r\n fontSize: \"16px\",\r\n color: \"#0C0E29\",\r\n margin: \"0px\",\r\n }\r\n}));","import React, { useState } from 'react';\r\nimport { Menu as MenuIcon } from 'lucide-react';\r\nimport Menu from './Menu';\r\nimport { IconButton } from '@mui/material';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useNavigate } from 'react-router-dom';\r\nimport AuthObserver from '../../AuthObserver'; // Firebase onIdTokenChanged\r\n\r\n\r\nfunction TitlePage(props) {\r\n const [menuState, setMenuState] = useState(false)\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n\r\n const openMenu = () => {\r\n setMenuState(true);\r\n }\r\n const closeMenu = () => {\r\n setMenuState(false);\r\n }\r\n const navigateTo = (destination) => {\r\n navigate(destination);\r\n }\r\n\r\n return (\r\n
    \r\n {props.Login !== null && props.Login.loginState &&\r\n \r\n }\r\n
    \r\n {/* {props.Login.loginState &&\r\n
    \r\n {props.backbutton ?\r\n \r\n \r\n : }\r\n

    {props.Text}

    \r\n
    \r\n } */}\r\n
    \r\n navigateTo('/')} className={classes.taplrLogo} src={process.env.PUBLIC_URL + \"/images/Taplr.png\"} alt=\"Taplr Logo\">\r\n
    \r\n\r\n {props.Login.loginState &&\r\n
    \r\n \r\n
    \r\n {\"Hi, \" + props.Login.userName}\r\n
    \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default TitlePage;\r\nconst useStyles = makeStyles((theme) => ({\r\n titleSection: {\r\n width: '100%',\r\n height: '100px',\r\n background: \"#C3996B !important\",\r\n display: 'flex', justifyContent: 'center',\r\n position: 'fixed', top: '0px', zIndex: '1000'\r\n },\r\n titleTextStyle: {\r\n marginLeft: \"20px\",\r\n },\r\n\r\n hstyle: {\r\n whiteSpace: 'nowrap',\r\n [theme.breakpoints.up('md')]: {\r\n fontSize: \"2.5rem\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n fontSize: \"1.5rem\",\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: \"1.2rem\",\r\n\r\n },\r\n fontStyle: \"normal\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"48px\",\r\n color: 'white'\r\n },\r\n\r\n hstylewithoutbutton: {\r\n whiteSpace: 'nowrap',\r\n [theme.breakpoints.up('md')]: {\r\n fontSize: \"2.5rem\",\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n fontSize: \"1.5rem\",\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: \"1.2rem\",\r\n },\r\n marginLeft: '54px',\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n marginLeft: '0px',\r\n },\r\n fontStyle: \"normal\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"48px\",\r\n color: 'white'\r\n },\r\n\r\n titleStyle: {\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n display: \"flex\",\r\n alignContent: \"space-around\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n position: 'fixed',\r\n\r\n zIndex: '955',\r\n top: '0',\r\n width: '90%',\r\n [theme.breakpoints.down('md')]: {\r\n height: '100px',\r\n },\r\n [theme.breakpoints.down('lg')]: {\r\n height: '100px',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n height: '100px',\r\n flexDirection: 'column-reverse',\r\n },\r\n\r\n\r\n },\r\n headerLeft: {\r\n paddingLeft: \"5%\",\r\n // alignItems: 'center',\r\n // display: 'flex',\r\n width: '50%',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n paddingLeft: \"0%\",\r\n position: \"absolute\",\r\n top: '55px',\r\n justifyContent: 'center'\r\n },\r\n color: 'white'\r\n\r\n },\r\n headerMiddle: {\r\n width: '50%',\r\n // display: 'flex',\r\n // justifyContent: 'center',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n justifyContent: 'center',\r\n position: \"absolute\",\r\n top: '5px',\r\n height: 'auto'\r\n },\r\n\r\n },\r\n aubWerk: {\r\n display: 'flex',\r\n fontSize: '1.2rem',\r\n paddingRight: '10px',\r\n justifyContent: 'center !important',\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'none !important',\r\n\r\n },\r\n alignItems: 'center !important'\r\n\r\n\r\n },\r\n\r\n headerRight: {\r\n width: '50%',\r\n display: 'flex',\r\n justifyContent: 'end',\r\n color: 'white',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n position: 'fixed',\r\n top: '105px',\r\n paddingRight: '5px',\r\n pointerEvents: 'none', // Make the parent div ignore pointer events\r\n },\r\n '& > *': {\r\n pointerEvents: 'auto', // Restore pointer events for child elements\r\n },\r\n },\r\n\r\n toggleButton: {\r\n marginLeft: '5px',\r\n [theme.breakpoints.down('sm')]: {\r\n background: \"#C3996B !important\",\r\n },\r\n },\r\n\r\n arrowBack: {\r\n zIndex: '999',\r\n color: 'white',\r\n padding: '15px',\r\n [theme.breakpoints.down('sm')]: {\r\n padding: '5px',\r\n position: 'absolute !important',\r\n left: '25px',\r\n fontSize: '50px !important',\r\n top: '-50%'\r\n },\r\n cursor: 'pointer'\r\n },\r\n taplrLogo: {\r\n marginTop: '15px',\r\n marginBottom: '15px',\r\n width: '150px',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100px',\r\n height: 'auto',\r\n maxHeight: '46px'\r\n },\r\n cursor: 'pointer',\r\n },\r\n}));","import {useMemo} from 'react';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nfunction useQuery() {\r\n const { search } = useLocation();\r\n\r\n return useMemo(() => new URLSearchParams(search), [search]);\r\n}\r\n\r\nexport default useQuery;","export const authViews = { 'LOGIN': 1, 'REGISTER': 2, 'FORGOTPASSWORD': 3, 'TWOFACTORENROLLMENT': 4, 'TOTPSIGNIN': 5 };\r\nexport const controlTypes = { 'COUNTER': 1, 'STOPWATCH': 2, 'FREETEXT': 3, 'DATALIST': 4, 'SCANNER': 5, 'CAMERA': 6, 'EXTERNALAPI': 7 };\r\nexport const externalApiTypes = { 'DATA': 1, 'STOPWATCH': 2 };\r\nexport const ProjectFilterTypes = { 'CUSTOMER': 0, 'PROJECT_NAME': 1, 'LOCATION_NAME': 2, 'DESCRIPTION': 3, 'VALUETYPE': 4, 'KEYVALUE': 5, 'EVENTCOUNT': 6, 'STARTDATE': 7, 'ENDDATE': 8, 'GENERAL': 9 }\r\nexport const GraphFilterTypes = { 'GENERAL': 0 };\r\nexport const dataListTypes = { 'NAME': 0 }\r\nexport const ExternalApiTypes = { 'NAME': 0 }\r\nexport const Roles = { 'ADMIN': 1, 'BACKOFFICEADMIN': 2, 'BACKOFFICEUSER': 3, 'DATAANALIST': 4 };\r\nexport const RoleNames = [{ name: 'Admin', id: 1, color: 'rgb(124, 181, 121)' }, { name: 'Backoffice-admin', id: 2, color: 'rgb(124, 181, 121)' }, { name: 'Backoffice-user', id: 3, color: 'rgb(212, 214, 75)' }, { name: 'Data analist', id: 4, color: 'rgb(245, 132, 69)' }];\r\n\r\nexport const ProjectFilter = { 'ALLPROJECTS': 1, 'MYPROJECTS': 2, };\r\n\r\nexport const TableView = { 'GRID': 1, 'LIST': 2 };\r\n\r\nexport const valueTypeCodes = { 'VA': 1, 'NVA': 2, 'W': 3, }\r\n\r\nexport const crudTypes = { 'CREATE': 1, 'READ': 2, 'UPDATE': 3, 'DELETE': 4,}\r\n\r\nexport const graphTypes = {\"YAMAZUMI\": 1, \"TIMELINE\": 2, \"FINANCIAL\": 3, \"PROFITLOSS\": 4}\r\n\r\nexport const currencies = {\"DOLLAR\": 1, \"EURO\": 2}\r\n\r\nexport const timeLineVisualisationTypes = {\"SPLIT\": 1, \"LINEAREVENTS\": 2}\r\n\r\nexport const profitLossResultColumns = [\r\n { id: 1, name: \"companyName\", title: \"Customer\", className: \"table-column-companyName\" },\r\n { id: 2, name: \"projectName\", title: \"Project\" },\r\n { id: 3, name: \"resourceName\", title: \"Registration point\" },\r\n { id: 4, name: \"description\", title: \"Description\" },\r\n { id: 4, name: \"accountCategoryName\", title: \"Category\" },\r\n { id: 4, name: \"accountName\", title: \"Account\" },\r\n { id: 5, name: \"eventPrice\", title: \"Event Price\" },\r\n { id: 6, name: \"keyValue\", title: \"Key\" },\r\n { id: 7, name: \"startTime\", title: \"Start Time\" },\r\n { id: 8, name: \"running\", title: \"Finished\" },\r\n { id: 9, name: \"\", title: \"\", className: \"table-column-actions\" }\r\n];\r\n\r\nexport const resultColumns = [\r\n { id: 1, name: \"companyName\", title: \"Customer\", className: \"table-column-companyName\" },\r\n { id: 2, name: \"projectName\", title: \"Project\" },\r\n { id: 3, name: \"resourceName\", title: \"Registration point\" },\r\n { id: 4, name: \"description\", title: \"Description\" },\r\n { id: 5, name: \"valueType\", title: \"Value type\" },\r\n { id: 6, name: \"measurementValue\", title: \"Value\" },\r\n // { id: 12, name: \"eventPrice\", title: \"Event Price\" },\r\n { id: 7, name: \"keyValue\", title: \"Key\" },\r\n { id: 8, name: \"commentText\", title: \"Comment\" },\r\n { id: 9, name: \"startTime\", title: \"Start Time\" },\r\n { id: 10, name: \"running\", title: \"Finished\" },\r\n { id: 11, name: \"\", title: \"\", className: \"table-column-actions\" }\r\n]\r\n\r\nexport const resultTableColumnExtensions = [\r\n { columnName: 'companyName', align: \"left\" },\r\n { columnName: 'projectName', align: \"left\" },\r\n { columnName: 'resourceName', align: \"left\" },\r\n { columnName: 'description', align: \"left\" },\r\n { columnName: 'valueType', align: \"center\", width: 140 },\r\n { columnName: 'measurementValue', align: \"left\" },\r\n { columnName: 'keyValue', align: \"left\" },\r\n { columnName: 'startTime', align: \"center\", width: 100 },\r\n { columnName: 'running', align: \"center\", width: 60, sortingEnabled: false, allowSorting: false },\r\n { columnName: '', align: 'center', width: 60, sortingEnabled: false, allowSorting: false, groupingEnabled: false },\r\n]\r\n\r\nexport const measurementsTableColumnExtensions = [\r\n { columnName: 'companyName', align: \"left\" },\r\n { columnName: 'projectName', align: \"left\" },\r\n { columnName: 'resourceName', align: \"left\" },\r\n { columnName: 'description', align: \"left\" },\r\n { columnName: 'valueType', align: \"center\", width: 140 },\r\n { columnName: 'measurementValue', align: \"left\" },\r\n { columnName: 'keyValue', align: \"left\" },\r\n { columnName: 'startTime', align: \"center\", width: 100},\r\n { columnName: 'running', align: \"center\", width: 60, sortingEnabled: false, allowSorting: false },\r\n { columnName: '', align: 'center', width: 90, sortingEnabled: false, allowSorting: false, groupingEnabled: false },\r\n]\r\n\r\n\r\nexport const resultGroupingColumnExtensions = [\r\n { columnName: 'companyName', groupingEnabled: true },\r\n { columnName: 'projectName', groupingEnabled: true },\r\n { columnName: 'resourceName', groupingEnabled: true },\r\n { columnName: 'description', groupingEnabled: true },\r\n { columnName: 'valueType', groupingEnabled: true },\r\n { columnName: 'measurementValue', groupingEnabled: true },\r\n { columnName: 'keyValue', groupingEnabled: true },\r\n { columnName: 'startTime', groupingEnabled: true },\r\n { columnName: 'running', columnGroupingEnabled: false },\r\n { columnName: '', columnGroupingEnabled: false },\r\n];\r\n\r\nexport const filteringStateColumnExtensions = [\r\n { columnName: 'customer', width: '10%', filteringEnabled: true },\r\n { columnName: 'project', width: '10%', filteringEnabled: true },\r\n { columnName: 'registrationPoint', width: '10%', filteringEnabled: true },\r\n { columnName: 'description', width: '10%', filteringEnabled: true },\r\n { columnName: 'valueType', width: '10%', filteringEnabled: true },\r\n { columnName: 'value', width: '10%', filteringEnabled: true },\r\n { columnName: 'keyValue', width: '10%', filteringEnabled: true },\r\n { columnName: 'startTime', width: '10%', filteringEnabled: false },\r\n { columnName: 'running', width: '10%', filteringEnabled: false },\r\n { columnName: '', filteringEnabled: false },\r\n\r\n];\r\n\r\n\r\nexport const sumMessages = {\r\n sum: \"Som\",\r\n contains: \"Bevat\",\r\n notContains: \"Bevat niet\",\r\n startsWith: \"Start met\",\r\n endsWith: \"Eindigd met\",\r\n equal: \"Is gelijk aan\",\r\n notEqual: \"Is niet gelijk aan\",\r\n};\r\n\r\nexport const tableMessages = {\r\n sum: \"Som\",\r\n contains: \"Bevat\",\r\n noData: \"Geen registraties beschikbaar.\"\r\n\r\n};\r\n\r\n// colors to differentiate the different registration points\r\nexport const registrationPointColors = [\r\n // colors that are easily distinguishable\r\n \"#1f77b4\", // blue\r\n \"#ff7f0e\", // orange\r\n \"#2ca02c\", // green\r\n \"#d62728\", // red\r\n \"#9467bd\", // purple\r\n \"#8c564b\", // brown\r\n \"#e377c2\", // pink\r\n \"#7f7f7f\", // grey\r\n \"#bcbd22\", // yellow\r\n \"#17becf\", // cyan\r\n]\r\n\r\n","export const SET_GRAPHOVERVIEWFILTERS = 'SET_GRAPHOVERVIEWFILTERS';\r\nexport const SET_PROJECTOVERVIEWFILTERS = 'SET_PROJECTOVERVIEWFILTERS';\r\n\r\nexport const RESET_ACTIVEFILTERS = 'RESET_ACTIVEFILTERS';","export const SET_EXTERNALAPINAME = 'SET_EXTERNALAPINAME';\r\nexport const SET_EXTERNALAPIDESCRIPTION = 'SET_EXTERNALAPIDESCRIPTION';\r\nexport const SET_EXTERNALAPICOMPANYID = 'set_EXTERNALAPICOMPANYID';\r\nexport const SET_EXTERNALAPIKEY = 'SET_EXTERNALAPIKEY';\r\nexport const SET_EXTERNALAPIITEMS = 'SET_EXTERNALAPIITEMS';\r\nexport const SET_EXTERNALAPIID = 'SET_EXTERNALAPIID';","export const SET_LISTNAME = 'SET_LISTNAME';\r\nexport const SET_LISTCOMPANYID = 'SET_LISTCOMPANYID';\r\nexport const SET_LISTDESCRIPTION = 'SET_LISTDESCRIPTION';\r\nexport const SET_LISTITEMS = 'SET_LISTITEMS';\r\nexport const SET_LISTISACTIVE = 'SET_ISACTIVE';\r\nexport const SET_LISTID = 'SET_ID';","export const SET_LOGIN = 'SET_LOGIN';\r\nexport const SET_USERID = 'SET_USERID';\r\nexport const SET_USERNAME = 'SET_USERNAME';\r\nexport const SET_EMAIL = 'SET_EMAIL';\r\nexport const SET_LASTNAME = 'SET_LASTNAME';\r\nexport const SET_COMPANYIDS = 'SET_COMPANYIDS';\r\nexport const SET_USERTOKEN = 'SET_USERTOKEN';\r\nexport const SET_USERROLES = 'SET_USERROLES';\r\nexport const LOGOUT = 'LOGOUT';\r\n\r\n","export const SET_COMPANY = 'SET_COMPANY';\r\nexport const SET_COMPANYID = 'SET_COMPANYID';\r\nexport const SET_RESOURCE = 'SET_RESOURCE';\r\nexport const SET_FROMDATE = 'SET_FROMDATE';\r\nexport const SET_TODATE = 'SET_TODATE';\r\nexport const SET_DETAILS = 'SET_DETAILS';\r\nexport const SET_PROJECTID = 'SET_PROJECTID';\r\nexport const SET_PROJECTNAME = 'SET_PROJECTNAME';\r\nexport const SET_PROJECTQR = 'SET_PROJECTQR';\r\nexport const SET_PROJECTREPORT = 'SET_PROJECTREPORT';","import * as types from './ProjectCopyActionTypes.js';\r\n\r\nexport const companyAction = (company) => {\r\n return {\r\n type: types.SET_COMPANY,\r\n payload: company\r\n };\r\n};\r\n\r\nexport const companyIdAction = (companyId) => {\r\n return {\r\n type: types.SET_COMPANYID,\r\n payload: companyId\r\n };\r\n};\r\n\r\nexport const resourceAction = (resource) => {\r\n return {\r\n type: types.SET_RESOURCE,\r\n payload: resource\r\n };\r\n};\r\n\r\nexport const fromDateAction = (fromDate) => {\r\n return {\r\n type: types.SET_FROMDATE,\r\n payload: fromDate\r\n };\r\n};\r\n\r\nexport const toDateAction = (toDate) => {\r\n return {\r\n type: types.SET_TODATE,\r\n payload: toDate\r\n };\r\n};\r\n\r\nexport const detailsAction = (details) => {\r\n return {\r\n type: types.SET_DETAILS,\r\n payload: details\r\n };\r\n};\r\n\r\nexport const projectIdAction = (projectId) => {\r\n return {\r\n type: types.SET_PROJECTID,\r\n payload: projectId\r\n };\r\n};\r\n\r\nexport const projectNameAction = (projectName) => {\r\n return {\r\n type: types.SET_PROJECTNAME,\r\n payload: projectName\r\n };\r\n};\r\n\r\nexport const projectQrAction = (projectQr) => {\r\n return {\r\n type: types.SET_PROJECTQR,\r\n payload: projectQr\r\n };\r\n};\r\n\r\nexport const getAllTypes = (types) => {\r\n return {\r\n type: types.SET_TYPES,\r\n payload: types\r\n };\r\n};\r\n\r\nexport const projectReportAction = (report) => {\r\n return {\r\n type: types.SET_PROJECTREPORT,\r\n payload: report\r\n };\r\n};\r\n","import * as types from './LoginActionTypes';\r\n\r\nexport const setLogin = (loginstate) => {\r\n return {\r\n type: types.SET_LOGIN,\r\n payload: loginstate\r\n };\r\n};\r\n\r\nexport const setUserid = (userId) => {\r\n return {\r\n type: types.SET_USERID,\r\n payload: userId\r\n };\r\n};\r\n\r\nexport const setUserName = (userName) => {\r\n return {\r\n type: types.SET_USERNAME,\r\n payload: userName\r\n };\r\n};\r\n\r\nexport const setLastName = (lastName) => {\r\n return {\r\n type: types.SET_LASTNAME,\r\n payload: lastName\r\n };\r\n};\r\n\r\nexport const setEmail = (email) => {\r\n return {\r\n type: types.SET_EMAIL,\r\n payload: email\r\n };\r\n};\r\n\r\nexport const setCompanyIds = (companyIds) => {\r\n return {\r\n type: types.SET_COMPANYIDS,\r\n payload: companyIds\r\n }\r\n}\r\n\r\nexport const setUserToken = (userToken) => {\r\n return {\r\n type: types.SET_USERTOKEN,\r\n payload: userToken\r\n }\r\n}\r\n\r\nexport const setUserRoles = (roles) => {\r\n return {\r\n type: types.SET_USERROLES,\r\n payload: roles\r\n }\r\n}","import * as types from './ActiveFiltersActionTypes.js';\r\n\r\nexport const setGraphOverviewFiltersAction = (filters) => {\r\n return {\r\n type: types.SET_GRAPHOVERVIEWFILTERS,\r\n payload: filters\r\n };\r\n};\r\n\r\nexport const setProjectOverviewFiltersAction = (filters) => {\r\n return {\r\n type: types.SET_PROJECTOVERVIEWFILTERS,\r\n payload: filters\r\n };\r\n};\r\n\r\nexport const resetActiveFilters = () => {\r\n return {\r\n type: types.RESET_ACTIVEFILTERS\r\n };\r\n};\r\n","import * as types from './ListCopyActionTypes.js';\r\n\r\nexport const listNameAction = (listName) => {\r\n return {\r\n type: types.SET_LISTNAME,\r\n payload: listName\r\n };\r\n};\r\n\r\nexport const listCompanyIdAction = (listCompanyId) => {\r\n return {\r\n type: types.SET_LISTCOMPANYID,\r\n payload: listCompanyId\r\n };\r\n};\r\n\r\nexport const listDescriptionAction = (listDescription) => {\r\n return {\r\n type: types.SET_LISTDESCRIPTION,\r\n payload: listDescription\r\n };\r\n};\r\n\r\nexport const listItemsAction = (listItems) => {\r\n return {\r\n type: types.SET_LISTITEMS,\r\n payload: listItems\r\n };\r\n};\r\n\r\nexport const listIsActiveAction = (listIsActive) => {\r\n return {\r\n type: types.SET_LISTISACTIVE,\r\n payload: listIsActive\r\n };\r\n};\r\n\r\nexport const listIdAction = (listId) => {\r\n return {\r\n type: types.SET_LISTID,\r\n payload: listId\r\n };\r\n};","import * as types from './ExternalAPiCopyActionTypes.js';\r\n\r\nexport const externalApiNameAction = (externalApiName) => {\r\n return {\r\n type: types.SET_EXTERNALAPINAME,\r\n payload: externalApiName\r\n };\r\n};\r\n\r\nexport const externalApiDescriptionAction = (externalApiDescription) => {\r\n return {\r\n type: types.SET_EXTERNALAPIDESCRIPTION,\r\n payload: externalApiDescription\r\n };\r\n};\r\n\r\nexport const externalApiKeyAction = (externalApiKey) => {\r\n return {\r\n type: types.SET_EXTERNALAPIKEY,\r\n payload: externalApiKey\r\n };\r\n};\r\n\r\nexport const externalApiCompanyIdAction = (externalApiCompanyId) => {\r\n return {\r\n type: types.SET_EXTERNALAPICOMPANYID,\r\n payload: externalApiCompanyId\r\n }\r\n}\r\n\r\nexport const externalApiItemsAction = (externalApiItems) => {\r\n return {\r\n type: types.SET_EXTERNALAPIITEMS,\r\n payload: externalApiItems\r\n };\r\n};\r\n\r\nexport const externalApiIdAction = (externalApiId) => {\r\n return {\r\n type: types.SET_EXTERNALAPIID,\r\n payload: externalApiId\r\n };\r\n};","import { getAuth, signOut } from \"firebase/auth\";\r\n\r\nexport const logoutUser = () => async (dispatch) => {\r\n const auth = getAuth();\r\n\r\n try {\r\n await signOut(auth);\r\n // Dispatch Redux actions\r\n dispatch({ type: 'LOGOUT' });\r\n if(!window.location.pathname.toLowerCase().includes('/measure')){\r\n console.log(\"User is signed out\");\r\n if (window.location.pathname.toLowerCase().includes('taplr.app')) {\r\n // window.location.replace('/taplr.app/login');\r\n } else {\r\n window.location.replace('/login');\r\n }\r\n }\r\n \r\n } catch (error) {\r\n console.error('Error during sign out:', error);\r\n }\r\n};","import * as types from './ProjectCopyActionTypes.js';\r\n\r\nconst initialState = {\r\n company: \"\",\r\n companyId: \"\",\r\n resource: \"\",\r\n fromDate: null,\r\n toDate: null,\r\n details: [],\r\n projectId: \"\",\r\n projectName: \"\",\r\n projectQr: null,\r\n report: false,\r\n};\r\n\r\nexport default function projectCopy(state = initialState, action) {\r\n switch (action.type) {\r\n case types.SET_COMPANY:\r\n if (action.payload !== state.company) {\r\n return Object.assign({}, state, { company: action.payload });\r\n }\r\n return state;\r\n case types.SET_COMPANYID:\r\n if (action.payload !== state.companyId) {\r\n return Object.assign({}, state, { companyId: action.payload });\r\n }\r\n return state;\r\n case types.SET_RESOURCE:\r\n if (action.payload !== state.resource) {\r\n return Object.assign({}, state, { resource: action.payload });\r\n }\r\n return state;\r\n case types.SET_FROMDATE:\r\n if (action.payload !== state.fromDate) {\r\n return Object.assign({}, state, { fromDate: action.payload });\r\n }\r\n return state;\r\n case types.SET_TODATE:\r\n if (action.payload !== state.toDate) {\r\n return Object.assign({}, state, { toDate: action.payload });\r\n }\r\n return state;\r\n case types.SET_DETAILS:\r\n if (action.payload !== state.details) {\r\n return Object.assign({}, state, { details: action.payload });\r\n }\r\n return state;\r\n case types.SET_PROJECTID:\r\n if (action.payload !== state.projectId) {\r\n return Object.assign({}, state, { projectId: action.payload });\r\n }\r\n return state;\r\n case types.SET_PROJECTNAME:\r\n if (action.payload !== state.projectName) {\r\n return Object.assign({}, state, { projectName: action.payload });\r\n }\r\n return state;\r\n case types.SET_PROJECTQR:\r\n if (action.payload !== state.projectQr) {\r\n return Object.assign({}, state, { projectQr: action.payload });\r\n }\r\n return state;\r\n case types.SET_PROJECTREPORT:\r\n if (action.payload !== state.report) {\r\n return Object.assign({}, state, { report: action.payload });\r\n }\r\n return state;\r\n default: {\r\n return state;\r\n }\r\n }\r\n}","import * as types from './LoginActionTypes.js';\r\n\r\nconst initialState = {\r\n loginState: false,\r\n userid: null,\r\n userName: '',\r\n email: '',\r\n lastName: '',\r\n companyIds: [],\r\n auth: {},\r\n filters: {},\r\n userToken: null,\r\n roleIds: [],\r\n};\r\n\r\nexport default function Login(state = initialState, action) {\r\n switch (action.type) {\r\n case types.SET_LOGIN:\r\n if (action.payload !== state.loginState) {\r\n return Object.assign({}, state, { loginState: action.payload });\r\n }\r\n return state;\r\n case types.SET_USERID:\r\n if (action.payload !== state.userid) {\r\n return Object.assign({}, state, { userid: action.payload });\r\n }\r\n return state;\r\n case types.SET_USERNAME:\r\n if (action.payload !== state.userName) {\r\n return Object.assign({}, state, { userName: action.payload });\r\n }\r\n return state;\r\n case types.SET_EMAIL:\r\n if (action.payload !== state.email) {\r\n return Object.assign({}, state, { email: action.payload });\r\n }\r\n return state;\r\n case types.SET_LASTNAME:\r\n if (action.payload !== state.lastName) {\r\n return Object.assign({}, state, { lastName: action.payload });\r\n }\r\n return state;\r\n case types.SET_COMPANYIDS:\r\n if (action.payload !== state.companyIds) {\r\n return Object.assign({}, state, { companyIds: action.payload });\r\n }\r\n return state;\r\n case types.SET_USERTOKEN:\r\n if (action.payload !== state.userToken) {\r\n return Object.assign({}, state, { userToken: action.payload });\r\n }\r\n return state;\r\n case types.SET_USERROLES:\r\n if (action.payload !== state.userRoles) {\r\n return Object.assign({}, state, { userRoles: action.payload });\r\n }\r\n return state;\r\n case types.LOGOUT:\r\n return { ...initialState };\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}","import * as types from './ListCopyActionTypes';\r\n\r\nconst initialState = {\r\n listName: \"\",\r\n listCompanyId: null,\r\n listDescription: \"\",\r\n listItems: [],\r\n listIsAvtive: null,\r\n listId: 0\r\n};\r\n\r\nexport default function listCopy(state = initialState, action) {\r\n switch (action.type) {\r\n case types.SET_LISTNAME:\r\n if (action.payload !== state.listName) {\r\n return Object.assign({}, state, { listName: action.payload });\r\n }\r\n return state;\r\n case types.SET_LISTCOMPANYID:\r\n if (action.payload !== state.listCompanyId) {\r\n return Object.assign({}, state, { listCompanyId: action.payload });\r\n }\r\n return state;\r\n case types.SET_LISTDESCRIPTION:\r\n if (action.payload !== state.listDescription) {\r\n return Object.assign({}, state, { listDescription: action.payload });\r\n }\r\n return state;\r\n case types.SET_LISTITEMS:\r\n if (action.payload !== state.listItems) {\r\n return Object.assign({}, state, { listItems: action.payload });\r\n }\r\n return state;\r\n case types.SET_LISTISACTIVE:\r\n if (action.payload !== state.listIsAvtive) {\r\n return Object.assign({}, state, { listIsAvtive: action.payload });\r\n }\r\n return state;\r\n case types.SET_LISTID:\r\n if (action.payload !== state.listId) {\r\n return Object.assign({}, state, { listId: action.payload });\r\n }\r\n return state;\r\n default: {\r\n return state;\r\n }\r\n }\r\n}","import * as types from './ExternalAPiCopyActionTypes';\r\n\r\nconst initialState = {\r\n ExternalApiName: \"\",\r\n ApiDescription: \"\",\r\n ExternalApiKey: \"\",\r\n ExternalApiCompanyId: null,\r\n ExternalApiItems: [],\r\n ExternalApiId: \"\",\r\n};\r\n\r\nexport default function ExternalApiCopy(state = initialState, action) {\r\n switch (action.type) {\r\n case types.SET_EXTERNALAPINAME:\r\n if (action.payload !== state.ExternalApiName) {\r\n return Object.assign({}, state, { ExternalApiName: action.payload });\r\n }\r\n return state;\r\n case types.SET_EXTERNALAPIDESCRIPTION:\r\n if (action.payload !== state.ExternalApiDescription) {\r\n return Object.assign({}, state, { ExternalApiDescription: action.payload });\r\n }\r\n return state;\r\n case types.SET_EXTERNALAPIKEY:\r\n if (action.payload !== state.ExternalApiKey) {\r\n return Object.assign({}, state, { ExternalApiKey: action.payload });\r\n }\r\n return state;\r\n case types.SET_EXTERNALAPICOMPANYID:\r\n if (action.payload !== state.ExternalApiCompanyId) {\r\n return Object.assign({}, state, { ExternalApiCompanyId: action.payload });\r\n }\r\n return state;\r\n case types.SET_EXTERNALAPIITEMS:\r\n if (action.payload !== state.ExternalApiItems) {\r\n return Object.assign({}, state, { ExternalApiItems: action.payload });\r\n }\r\n return state;\r\n case types.SET_EXTERNALAPIID:\r\n if (action.payload !== state.ExternalApiId) {\r\n return Object.assign({}, state, { ExternalApiId: action.payload });\r\n }\r\n return state;\r\n default: {\r\n return state;\r\n }\r\n }\r\n}","import * as types from './ActiveFiltersActionTypes.js';\r\n\r\nconst initialState = {\r\n graphOverviewFilters: [],\r\n projectOverviewFilters: [],\r\n};\r\n\r\nexport default function ActiveFilters(state = initialState, action) {\r\n switch (action.type) {\r\n case types.SET_GRAPHOVERVIEWFILTERS:\r\n if (action.payload !== state.graphOverviewFilters) {\r\n return Object.assign({}, state, { graphOverviewFilters: action.payload });\r\n }\r\n return state;\r\n case types.SET_PROJECTOVERVIEWFILTERS:\r\n if (action.payload !== state.projectOverviewFilters) {\r\n return Object.assign({}, state, { projectOverviewFilters: action.payload });\r\n }\r\n return state;\r\n case types.RESET_ACTIVEFILTERS:\r\n return { ...initialState };\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}","import projectCopy from \"./ProjectCopy/ProjectCopy.js\";\r\nimport Login from \"./Login/Login\";\r\nimport listCopy from \"./ListCopy/ListCopy.js\";\r\nimport externalApiCopy from \"./ExternalAPiCopy/ExternalApiCopy.js\";\r\nimport activeFilters from \"./ActiveFilters/ActiveFilters.js\";\r\nimport {combineReducers} from 'redux';\r\n\r\n\r\nconst rootReducer = combineReducers({\r\n projectCopy,\r\n Login,\r\n listCopy,\r\n externalApiCopy,\r\n activeFilters,\r\n});\r\n\r\n\r\nexport default rootReducer;","\r\nimport { handleResponse } from \"../../Utils/API/handle-reponse\";\r\nimport * as apiHelper from '../../Utils/API/apiHelper';\r\n\r\nexport const dataService = {\r\n // General\r\n login,\r\n requestLogin,\r\n getSystemParameters,\r\n\r\n // Company\r\n getAllCompaniesByUserId,\r\n getUserAndCompanyData,\r\n saveCompany,\r\n createCompany,\r\n\r\n // Currency\r\n getAllCurrencies,\r\n getCurrencyById,\r\n\r\n // External Api\r\n createNewApi,\r\n getExternalApiByUniqueId,\r\n getApis,\r\n modifyApi,\r\n deleteApi,\r\n\r\n // External Api Type\r\n getAllExternalApiTypes,\r\n\r\n // DataList\r\n createNewDataList,\r\n getLists,\r\n getDataListByUniqueId,\r\n deleteDataList,\r\n modifyDataList,\r\n getListItems,\r\n getListItemsByListIdAndProjectGuid,\r\n\r\n // Project\r\n createNewProject,\r\n deleteProject,\r\n getProjectDetails,\r\n getProjectDetailsByQr,\r\n getProjectByQr,\r\n getAllProjectInfoByProjectId,\r\n getProjectLocationsByUserId,\r\n getProjectNamesByUserId,\r\n getProjectDetailWithComments,\r\n getProjectAndDetails,\r\n getProjectByProjectQr,\r\n getProjectByProjectIdUserId,\r\n getAllUserCompanyProjects,\r\n getUserCompanyProjectOverview, // Project data nescessary for project overview\r\n findProjects,\r\n updateProjects,\r\n projectHasMeasurements,\r\n\r\n // ProjectDetail\r\n projectDetailHasMeasurements,\r\n\r\n // Measurements\r\n getByProjectId, // Get measurements by project id\r\n saveMeasurement,\r\n saveMeasurementWithComment,\r\n getMeasurementById,\r\n get24HoursBeforeLastMeasurementById,\r\n getAllProjectMeasurementsById,\r\n getAllProjectGraphMeasurementsById,\r\n\r\n getProjectMeasurementsByDateAndId,\r\n getMeasurementForModify,\r\n getMeasurementsByUserIdDateLocationName,\r\n getMeasurementsByUserIdDate,\r\n getMeasurementsByQrCode,\r\n getMeasurement,\r\n getMeasurementByIdAndDate,\r\n saveAndResetMeasurements,\r\n\r\n setMeasurementInactive,\r\n setMeasurementsInactiveByIdList,\r\n\r\n // Graph\r\n getAllGraphConfigurationsByCompanyId,\r\n getAllGraphConfigurationsByCompanyIdList,\r\n getAllUserCompanyGraphConfigurations,\r\n getGraphConfigurationByUniqueId,\r\n getGraphConfigurationForViewingByUniqueId,\r\n createNewGraphConfiguration,\r\n updateGraphConfiguration,\r\n publishGraphConfiguration,\r\n deleteGraphConfiguration,\r\n\r\n // User\r\n getUserByEmail,\r\n getUserByEmailAddress,\r\n updateUserData,\r\n createUser,\r\n addUser, //Add existing user to company\r\n updateUser,\r\n changeUserActive,\r\n\r\n //Roles\r\n getAllRoles,\r\n\r\n getResources,\r\n getResourcesByDateRange,\r\n getTypes,\r\n saveText,\r\n saveTime,\r\n saveCount,\r\n getName,\r\n newMediaImage,\r\n newMediaImageWithComment,\r\n GetImageById,\r\n getValueTypes,\r\n\r\n // Financial types\r\n getAllUserCompanyFinancialTypes,\r\n createFinancialType,\r\n updateFinancialType,\r\n\r\n // Account category\r\n getAllUserCompanyAccountCategories,\r\n createAccountCategory,\r\n updateAccountCategory,\r\n\r\n // Account\r\n getAllUserCompanyAccounts,\r\n createAccount,\r\n updateAccount,\r\n createAccounts,\r\n // updateAccounts,\r\n getAllAccountsForGraphConfigurationByUniqueId,\r\n\r\n // General Ledger Account\r\n getReportByCompanyIdAndDateRange,\r\n getMeasurementsByCompanyIdAndDateRange,\r\n getAllMeasurementsByUserId,\r\n}\r\n\r\n// Currency\r\nexport function getAllCurrencies() {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n }\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLCURRENCIES);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n};\r\n\r\nexport function getCurrencyById(currencyId){\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n }\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.GETCURRENCYBYID);\r\n url += \"?currencyId=\" + currencyId;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n} \r\n\r\nexport function login(email, password) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n\r\n },\r\n body: JSON.stringify({\r\n email: email,\r\n password: password\r\n })\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.LOGIN_URL);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function requestLogin(firstName, lastName, company, email) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n email: email,\r\n lastName: lastName,\r\n firstName: firstName,\r\n company: company\r\n })\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.REQUESTLOGIN_URL);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createNewProject(GetUserId, ProjectName, ResourceName, resourceId, CompanyId, CompanyName, FromDate, ToDate, projectrows) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n UserId: GetUserId,\r\n ProjectName: ProjectName,\r\n ResourceName: ResourceName,\r\n resourceId: resourceId,\r\n CompanyId: CompanyId,\r\n CompanyName: CompanyName,\r\n FromDate: FromDate,\r\n ToDate: ToDate,\r\n Details: projectrows\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATENEWPROJECT);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getUserByEmail(email) {\r\n\r\n const requestOptions = { method: 'GET' };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETUSERBYEMAIL_URL);\r\n url += \"?email=\" + email\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getUserByEmailAddress(email, accessToken) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader(accessToken)\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETUSERBYEMAILADDRESS);\r\n url += \"?email=\" + email\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllCompaniesByUserId(userId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETCOMPANIES_URL);\r\n url += \"?userId=\" + userId\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getUserAndCompanyData(userId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETUSERANDCOMPANYDATA_URL);\r\n url += \"?userId=\" + userId\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getResources(userId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETRESOURCES_URL);\r\n url += \"?userId=\" + userId\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getTypes() {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETTYPES_URL);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveCompany(companyName, GetUserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Name: companyName,\r\n UserId: GetUserId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.SAVECOMPANY);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createCompany(companyObject) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n companyName: companyObject.name,\r\n currencyId: companyObject.currencyId,\r\n insertedByUserId: companyObject.insertedByUserId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATECOMPANY);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function findProjects(CompanyId, GetUserId, FromDate, ToDate, ResourceName) {\r\n\r\n const requestOptions = { method: 'GET' };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTS_URL);\r\n url += \"?UserId=\" + GetUserId + \"&CompanyId=\" + CompanyId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate + \"&ResourceName=\" + ResourceName\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateProjects(GetUserId, ProjectName, ResourceName, resourceId, OldCompanyId, CompanyId, CompanyName, FromDate, ToDate, projectrows, ProjectId, ProjectQr) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n ProjectId: ProjectId,\r\n UserId: GetUserId,\r\n ProjectName: ProjectName,\r\n ResourceName: ResourceName,\r\n resourceId : resourceId,\r\n OldCompanyId: OldCompanyId,\r\n CompanyId: CompanyId,\r\n CompanyName: CompanyName,\r\n FromDate: FromDate,\r\n ToDate: ToDate,\r\n QrCode: ProjectQr,\r\n Details: projectrows\r\n })\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEPROJECTS_URL);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function projectHasMeasurements(projectQr){\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.PROJECTHASMEASUREMENTS);\r\n url += \"?ProjectQr=\" + projectQr\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function projectDetailHasMeasurements(projectDetailId){\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.PROJECTDETAILHASMEASUREMENTS);\r\n url += \"?ProjectDetailId=\" + projectDetailId\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateUserData(email, firstName, lastName) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Email: email,\r\n FirstName: firstName,\r\n LastName: lastName,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEUSERDATA_URL);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createUser(userObject) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n emailAddress: userObject.email,\r\n firstName: userObject.firstName,\r\n name: userObject.name,\r\n fireBaseId: userObject.fireBaseId,\r\n roles: userObject.roles,\r\n companyId: userObject.companyId,\r\n insertedByUserId: userObject.insertedByUserId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATEUSER_URL);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function addUser(userObject) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n emailAddress: userObject.email,\r\n roles: userObject.roles,\r\n companyId: userObject.companyId,\r\n insertedByUserId: userObject.insertedByUserId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.ADDUSER_URL);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateUser(userObject) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n emailAddress: userObject.email,\r\n firstName: userObject.firstName,\r\n name: userObject.name,\r\n fireBaseId: userObject.fireBaseId,\r\n roles: userObject.roles,\r\n companyId: userObject.companyId,\r\n insertedByUserId: userObject.insertedByUserId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEUSER_URL);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function changeUserActive(userObject) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n enabled: userObject.enabled,\r\n updateByUserId: userObject.updateByUserId,\r\n userId: userObject.userId,\r\n companyId: userObject.companyId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CHANGEUSERACTIVE);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllRoles() {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n }\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLROLES_URL);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// Measurements\r\n\r\nexport function getMeasurement(userId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENT_URL);\r\n url += \"?userId=\" + userId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function setMeasurementInactive(measurementId) {\r\n // update measurement to isActive = false\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n id: measurementId,\r\n })\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.SETMEASUREMENTINACTIVE);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n};\r\n\r\nexport function setMeasurementsInactiveByIdList(measurementIdList) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify( measurementIdList)\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.SETMEASUREMENTSINACTIVEBYIDLIST);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n};\r\n\r\nexport function getMeasurementForModify(userId, FromDate, ToDate,) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTFORMODIFY_URL);\r\n url += \"?userId=\" + userId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\nexport function getAllProjectInfoByProjectId(projectId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLPROJECTINFOBYPROJECTID);\r\n url += \"?projectId=\" + projectId;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\nexport function getProjectDetails(Qr) {\r\n\r\n const requestOptions = { method: 'GET' };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTDETAILS_URL);\r\n url += \"?qr=\" + Qr\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getProjectDetailsByQr(Qr) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTDETAILSBYQR_URL);\r\n url += \"?qr=\" + Qr\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveText(projectDetailId, StartTime, TextValue) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: projectDetailId,\r\n StartTime: StartTime,\r\n TextValue: TextValue\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.SAVETEXT);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveTime(projectDetailId, StartTime, stopwatch) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: projectDetailId,\r\n StartTime: StartTime,\r\n DateValue: stopwatch\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.SAVETIME);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveCount(projectDetailId, StartTime, counterValue) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: projectDetailId,\r\n StartTime: StartTime,\r\n CounterValue: counterValue\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.SAVECOUNT);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveMeasurement(measurement) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: measurement.id,\r\n StartTime: measurement.startTime,\r\n Value: measurement.value,\r\n StartValue: measurement.startValue,\r\n StopValue: measurement.stopValue,\r\n Price: measurement.price,\r\n CurrencyId: measurement.currencyId,\r\n Running: measurement.running,\r\n ControlTypeId: measurement.controlTypeId,\r\n })\r\n\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.SAVEMEASUREMENT);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveMeasurementWithComment(measurement) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: measurement.id,\r\n StartTime: measurement.startTime,\r\n Value: measurement.value,\r\n StartValue: measurement.startValue,\r\n StopValue: measurement.stopValue,\r\n Price: measurement.price,\r\n CurrencyId: measurement.currencyId,\r\n Running: measurement.running,\r\n controlTypeId: measurement.controlTypeId,\r\n Image: measurement.commentImage,\r\n Comment: measurement.commentText,\r\n })\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.SAVEMEASUREMENTWITHCOMMENT);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function saveAndResetMeasurements(measurements) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n measurements: measurements\r\n })\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.SAVEANDRESETMEASUREMENTS);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getName(Qr) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETNAME_URL);\r\n url += \"?Qr=\" + Qr\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getMeasurementById(userId, ProjectId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTBYID_URL);\r\n url += \"?userId=\" + userId + \"&ProjectId=\" + ProjectId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function get24HoursBeforeLastMeasurementById(projectId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GET24HOURSBEFORELASTMEASUREMENTBYID);\r\n url += \"?ProjectId=\" + projectId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllProjectMeasurementsById(projectId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLPROJECTMEASUREMENTSBYID);\r\n url += \"?ProjectId=\" + projectId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllProjectGraphMeasurementsById(projectId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLPROJECTGRAPHMEASUREMENTSBYID);\r\n url += \"?ProjectId=\" + projectId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getProjectMeasurementsByDateAndId(projectId, fromDate, toDate) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTMEASUREMENTSBYDATEANDID);\r\n url += \"?ProjectId=\" + projectId + \"&FromDate=\" + fromDate + \"&ToDate=\" + toDate\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getMeasurementByIdAndDate(userId, ProjectId, FromDate, ToDate) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTBYIDANDDATE_URL);\r\n url += \"?userId=\" + userId + \"&ProjectId=\" + ProjectId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getByProjectId(ProjectId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTSBYPROJECTID_URL);\r\n url += \"?ProjectId=\" + ProjectId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function deleteProject(projectId, UserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n ProjectId: projectId,\r\n UserId: UserId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.DELETEPROJECT);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createNewDataList(Name, CompanyId, Description, InsertedOn, InsertedByUserId, DataListItems) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Name: Name,\r\n CompanyId: CompanyId,\r\n Description: Description,\r\n InsertedOn: InsertedOn,\r\n InsertedByUserId: InsertedByUserId,\r\n DataListItems: DataListItems\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATENEWDATALIST);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getLists(UserId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETLISTS);\r\n url += \"?UserId=\" + UserId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getDataListByUniqueId(uniqueId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETDATALISTBYUNIQUEID);\r\n url += \"?uniqueId=\" + uniqueId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function deleteDataList(Name, Description, CompanyId, InsertedOn, InsertedByUserId, DataListItems, listId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Name: Name,\r\n CompanyId: CompanyId,\r\n Description: Description,\r\n InsertedOn: InsertedOn,\r\n InsertedByUserId: InsertedByUserId,\r\n DataListItems: DataListItems,\r\n Id: listId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.DELETEDATALIST);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function modifyDataList(Name, Description, CompanyId, InsertedOn, InsertedByUserId, DataListItems, listId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Name: Name,\r\n Description: Description,\r\n CompanyId: CompanyId,\r\n InsertedOn: InsertedOn,\r\n InsertedByUserId: InsertedByUserId,\r\n DataListItems: DataListItems,\r\n Id: listId\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.MODIFYDATALIST);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getListItems(dataListId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETLISTITEMS);\r\n url += \"?dataListId=\" + dataListId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getListItemsByListIdAndProjectGuid(dataListId, projectGuid) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETLISTITEMSBYLISTIDANDPROJECTGUID);\r\n url += \"?dataListId=\" + dataListId + \"&projectGuid=\" + projectGuid\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function newMediaImage(InsertedOn, Image, ProjectDetailId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: ProjectDetailId,\r\n InsertedOn: InsertedOn,\r\n Image: Image\r\n })\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.NEWMEDIAIMAGE);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function newMediaImageWithComment(InsertedOn, Image, ProjectDetailId, CommentText) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n ProjectDetailId: ProjectDetailId,\r\n InsertedOn: InsertedOn,\r\n Image: Image,\r\n Comment: CommentText,\r\n })\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.NEWMEDIAIMAGEWITHCOMMENT);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function GetImageById(ImageId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETIMAGEBYID);\r\n url += \"?ImageId=\" + ImageId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getSystemParameters() {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETSYSTEMPARAMETERS);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getProjectLocationsByUserId(userId, FromDate, ToDate) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETLOCATION_URL);\r\n url += \"?UserId=\" + userId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getResourcesByDateRange(userId, FromDate, ToDate) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETRESOURCESBYDATERANGE_URL);\r\n url += \"?UserId=\" + userId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n\r\nexport function getProjectNamesByUserId(userId, FromDate, ToDate) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTNAMES_URL);\r\n url += \"?UserId=\" + userId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getMeasurementsByUserIdDateLocationName(userId, FromDate, ToDate, Location, ProjectName) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTBYDATELOCATIONNAME);\r\n url += \"?UserId=\" + userId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate + \"&Location=\" + Location + \"&ProjectName=\" + ProjectName;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllMeasurementsByUserId(userId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLMEASUREMENTSBYUSERID);\r\n url += \"?UserId=\" + userId;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getMeasurementsByUserIdDate(userId, FromDate, ToDate) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTBYDATEANDUSER);\r\n url += \"?UserId=\" + userId + \"&FromDate=\" + FromDate + \"&ToDate=\" + ToDate;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getMeasurementsByQrCode(qrCode) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTBYQR);\r\n url += \"?qr=\" + qrCode;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n\r\n\r\nexport function getProjectDetailWithComments(Qr) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETDETAILMEASUREMENTSANDCOMMENTS);\r\n url += \"?Qr=\" + Qr\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getProjectAndDetails(UserId, Page, PageSize) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTSANDDETAILS);\r\n url += \"?UserId=\" + UserId + \"&Page=\" + Page + \"&PageSize=\" + PageSize\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getProjectByQr(qr) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTBYQR);\r\n url += \"?qr=\" + qr\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getProjectByProjectQr(projectQr) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTBYPROJECTQR);\r\n url += \"?ProjectQr=\" + projectQr\r\n return fetch(url, requestOptions).then(handleResponse);\r\n}\r\n\r\nexport function getProjectByProjectIdUserId(ProjectId, UserId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETPROJECTBYPROJECTIDUSERID);\r\n url += \"?ProjectId=\" + ProjectId + \"&UserId=\" + UserId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllUserCompanyProjects(UserId, Page, PageSize) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLUSERCOMPANYPROJECTS);\r\n url += \"?UserId=\" + UserId + \"&Page=\" + Page + \"&PageSize=\" + PageSize\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getUserCompanyProjectOverview(UserId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.GETUSERCOMPANYPROJECTOVERVIEW);\r\n url += \"?UserId=\" + UserId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getValueTypes() {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETVALUETYPES);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllGraphConfigurationsByCompanyId(companyId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLLGRAPHCONFIGURATIONSBYCOMPANYID);\r\n url += \"?CompanyId=\" + companyId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllGraphConfigurationsByCompanyIdList(companyIds) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n let idString = \"\"\r\n for (var id of companyIds) {\r\n idString += String(id) + \",\"\r\n }\r\n idString = idString.substring(0, idString.length - 1);\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLLGRAPHCONFIGURATIONSBYCOMPANYIDLIST);\r\n url += `?companyIds=${idString}`;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllUserCompanyGraphConfigurations(userId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLUSERCOMPANYGRAPHCONFIGURATIONS);\r\n url += `?userId=${userId}`;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getGraphConfigurationByUniqueId(uniqueId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETGRAPHCONFIGURATIONBYUNIQUEID);\r\n url += \"?UniqueId=\" + uniqueId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getGraphConfigurationForViewingByUniqueId(uniqueId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETGRAPHCONFIGURATIONFORVIEWINGBYUNIQUEID);\r\n url += \"?UniqueId=\" + uniqueId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createNewGraphConfiguration(CompanyId, Name, Description, MetaData, IsPublic, InsertedByUserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n CompanyId: CompanyId,\r\n Name: Name,\r\n Description: Description,\r\n MetaData: MetaData,\r\n IsPublic: IsPublic,\r\n InsertedByUserId: InsertedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATENEWGRAPHCONFIGURATION);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateGraphConfiguration(Id, CompanyId, Name, Description, MetaData, IsPublic, InsertedByUserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Id: Id,\r\n CompanyId: CompanyId,\r\n Name: Name,\r\n Description: Description,\r\n MetaData: MetaData,\r\n IsPublic: IsPublic,\r\n InsertedByUserId: InsertedByUserId,\r\n })\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEGRAPHCONFIGURATION);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function publishGraphConfiguration(id, publish){\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.PUBLISHGRAPHCONFIGURATION);\r\n url += \"?Id=\" + id + \"&Publish=\" + publish\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function deleteGraphConfiguration(id, userId){\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.DELETEGRAPHCONFIGURATION);\r\n url += \"?id=\" + id + \"&userId=\" + userId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// Financial types\r\nexport function getAllUserCompanyFinancialTypes(userId, page, pageSize) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLUSERCOMPANYFINANCIALTYPES);\r\n url += \"?UserId=\" + userId + \"&Page=\" + page + \"&PageSize=\" + pageSize;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createFinancialType(financialType) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n name: financialType.name,\r\n companyId: financialType.companyId,\r\n isRevenue: financialType.isRevenue,\r\n insertedByUserId: financialType.insertedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATEFINANCIALTYPE);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateFinancialType(financialType) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n id: financialType.id,\r\n name: financialType.name,\r\n companyId: financialType.companyId,\r\n isRevenue: financialType.isRevenue,\r\n updatedByUserId: financialType.updatedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEFINANCIALTYPE);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// AccountCategory\r\nexport function getAllUserCompanyAccountCategories(userId, page, pageSize) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLUSERCOMPANYACCOUNTCATEGORIES);\r\n url += \"?UserId=\" + userId + \"&Page=\" + page + \"&PageSize=\" + pageSize;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createAccountCategory(accountCategory) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n name: accountCategory.name,\r\n companyId: accountCategory.companyId,\r\n isRevenue: accountCategory.isRevenue,\r\n insertedByUserId: accountCategory.insertedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATEACCOUNTCATEGORY);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateAccountCategory(accountCategory) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n id: accountCategory.id,\r\n name: accountCategory.name,\r\n companyId: accountCategory.companyId,\r\n isRevenue: accountCategory.isRevenue,\r\n updatedByUserId: accountCategory.updatedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEACCOUNTCATEGORY);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// Account\r\nexport function getAllUserCompanyAccounts(userId, page, pageSize) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLUSERCOMPANYACCOUNTS);\r\n url += \"?UserId=\" + userId + \"&Page=\" + page + \"&PageSize=\" + pageSize;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createAccount(account) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n name: account.name,\r\n accountCategoryId: account.accountCategoryId,\r\n insertedByUserId: account.insertedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATEACCOUNT);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function updateAccount(updateAccount) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify(updateAccount)\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.UPDATEACCOUNT);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function createAccounts(newAccounts) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify(newAccounts)\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATEACCOUNTS);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getAllAccountsForGraphConfigurationByUniqueId(uniqueId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLACCOUNTSFORGRAPHCONFIGURTATIONBYUNIQUEID);\r\n url += \"?GraphConfigurationUniqueId=\" + uniqueId;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// General Ledger Account\r\nexport function getReportByCompanyIdAndDateRange(companyId, fromDate, toDate) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETREPORTBYCOMPANYIDANDDATERANGE);\r\n url += \"?CompanyId=\" + companyId + \"&FromDate=\" + fromDate + \"&ToDate=\" + toDate;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getMeasurementsByCompanyIdAndDateRange(companyId, fromDate, toDate) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETMEASUREMENTSBYCOMPANYIDANDDATERANGE);\r\n url += \"?CompanyId=\" + companyId + \"&FromDate=\" + fromDate + \"&ToDate=\" + toDate;\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// External Api\r\nexport function createNewApi(Name, Description, apiTypeId, CompanyId, ApiKey, ApiFormat, InsertedByUserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Name: Name,\r\n Description: Description,\r\n ExternalApiTypeId: apiTypeId,\r\n CompanyId: CompanyId,\r\n ApiKey: ApiKey,\r\n ApiFormat: ApiFormat,\r\n InsertedByUserId: InsertedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.CREATENEWAPI);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function modifyApi(Id, Name, Description, CompanyId, ApiKey, ApiFormat, UpdatedByUserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Id: Id,\r\n Name: Name,\r\n Description: Description,\r\n CompanyId: CompanyId,\r\n ApiKey: ApiKey,\r\n ApiFormat: ApiFormat,\r\n UpdatedByUserId: UpdatedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.MODIFYAPI);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function deleteApi(Id, Name, Description, ApiKey, ApiFormat, UpdatedByUserId) {\r\n const requestOptions = {\r\n method: 'POST', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n body: JSON.stringify({\r\n Id: Id,\r\n Name: Name,\r\n Description: Description,\r\n ApiKey: ApiKey,\r\n ApiFormat: ApiFormat,\r\n UpdatedByUserId: UpdatedByUserId,\r\n })\r\n\r\n };\r\n let url = apiHelper.ComposeUri(apiHelper.DELETEAPI);\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getApis(UserId) {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETAPIS);\r\n url += \"?UserId=\" + UserId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getExternalApiByUniqueId(uniqueId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETEXTERNALAPIBYUNIQUEID);\r\n url += \"?UniqueId=\" + uniqueId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\nexport function getExternalApisByCompanyId(companyId) {\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETEXTERNALAPISBYCOMPANYID);\r\n url += \"?CompanyId=\" + companyId\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}\r\n\r\n// External Api Type\r\nexport function getAllExternalApiTypes() {\r\n\r\n const requestOptions = {\r\n method: 'GET', headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': apiHelper.getAuthHeader()\r\n },\r\n };\r\n\r\n let url = apiHelper.ComposeUri(apiHelper.GETALLEXTERNALAPITYPES);\r\n\r\n return fetch(url, requestOptions).then(handleResponse).catch(() => { return null; });\r\n}","import { store } from \"../../index\";\r\n\r\nexport default class ApiHelper {\r\n static appSettings; \r\n}\r\n\r\nexport const LOGIN_URL = \"user/login\";\r\nexport const GETCOMPANIES_URL = \"Company/GetByUserId\";\r\nexport const GETUSERANDCOMPANYDATA_URL = \"CompanyLogic/GetUserAndCompanyData\";\r\n\r\nexport const GETRESOURCES_URL = \"ResourceLogic/GetResource\";\r\nexport const GETRESOURCESBYDATERANGE_URL = \"ResourceLogic/GetResourcesByDateRange\";\r\n\r\nexport const GETTYPES_URL = \"ControlType\";\r\nexport const CREATENEWPROJECT = \"ProjectLogic/CreateNewProject\";\r\nexport const CREATENEWDATALIST = \"DataListLogic/NewDataList\";\r\nexport const MODIFYDATALIST = \"DataListLogic/ModifyDataList\";\r\nexport const DELETEDATALIST = \"DataListLogic/DeleteDataList\";\r\nexport const SAVECOMPANY = \"CompanyLogic/NewCompany\";\r\nexport const CREATECOMPANY = \"CompanyLogic/CreateCompany\";\r\n\r\nexport const SAVETEXT = \"ProjectDetailMeasurement/SaveText\";\r\nexport const SAVETIME = \"ProjectDetailMeasurement/SaveTime\";\r\nexport const SAVECOUNT = \"ProjectDetailMeasurement/SaveCount\";\r\nexport const GETPROJECTS_URL = \"Project/GetProjects\";\r\nexport const GETPROJECTBYQR = \"Project/GetProjectByQr\"\r\nexport const UPDATEPROJECTS_URL = \"ProjectLogic/ModifyProject\";\r\nexport const GETMEASUREMENT_URL = \"ProjectLogic/GetMeasurement\";\r\nexport const GETNAME_URL = \"Project/GetName\";\r\nexport const GETPROJECTDETAILS_URL = \"ProjectDetail/MeasurementScan\";\r\nexport const GETPROJECTDETAILSBYQR_URL = \"ProjectDetail/GetDetails\";\r\nexport const SAVEMEASUREMENT = \"ProjectDetailMeasurementLogic/SaveMeasurement\";\r\nexport const SAVEMEASUREMENTWITHCOMMENT = \"ProjectDetailMeasurementCommentLogic/SaveMeasurementWithComment\";\r\nexport const SAVEANDRESETMEASUREMENTS = \"ProjectDetailMeasurementLogic/SaveAndResetMeasurements\";\r\nexport const GETMEASUREMENTBYID_URL = \"ProjectLogic/GetMeasurementById\";\r\nexport const GETALLPROJECTMEASUREMENTSBYID = \"ProjectLogic/GetAllProjectMeasurementsById\";\r\nexport const GETALLPROJECTGRAPHMEASUREMENTSBYID = \"ProjectLogic/GetAllProjectGraphMeasurementsById\";\r\n\r\nexport const GETPROJECTMEASUREMENTSBYDATEANDID = \"ProjectLogic/GetProjectMeasurementsByDateAndId\"\r\nexport const GET24HOURSBEFORELASTMEASUREMENTBYID = \"ProjectLogic/Get24HoursBeforeLastMeasurementById\";\r\nexport const GETMEASUREMENTBYIDANDDATE_URL = \"ProjectLogic/GetMeasurementByIdAndDate\";\r\nexport const GETMEASUREMENTSBYPROJECTID_URL = \"Project/GetByProjectID\";\r\nexport const GETALLPROJECTINFOBYPROJECTID = \"Project/GetAllProjectInfoByProjectID\";\r\nexport const GETMEASUREMENTFORMODIFY_URL = \"Project/GetMeasurementForModify\";\r\nexport const DELETEPROJECT = \"ProjectLogic/DeleteProject\";\r\nexport const GETLISTS = \"DataList/GetLists\";\r\nexport const GETDATALISTBYUNIQUEID = \"DataList/GetDataListByUniqueId\";\r\nexport const GETLISTITEMS = \"DataList/GetListItems\";\r\nexport const GETLISTITEMSBYLISTIDANDPROJECTGUID = \"PublicDataList/GetListItemsByListIdAndProjectGuid\";\r\nexport const NEWMEDIAIMAGE = \"ProjectDetailMeasurementMediaLogic/SaveImage\";\r\nexport const NEWMEDIAIMAGEWITHCOMMENT = \"ProjectDetailMeasurementMediaLogic/SaveImageWithComment\";\r\nexport const GETIMAGEBYID = \"ProjectDetailMeasurementMedia/GetImageById\";\r\nexport const GETSYSTEMPARAMETERS = \"SystemParameter\";\r\nexport const GETUSERBYEMAIL_URL = \"user/GetAllByEmail\";\r\nexport const GETUSERBYEMAILADDRESS = \"user/GetUserByEmailAddress\";\r\nexport const UPDATEUSERDATA_URL = \"user/UpdateUserData\";\r\nexport const CREATEUSER_URL = \"UserLogic/CreateUser\";\r\nexport const ADDUSER_URL = \"UserLogic/AddUser\"\r\nexport const UPDATEUSER_URL = \"UserLogic/UpdateUser\";\r\nexport const CHANGEUSERACTIVE = \"UserLogic/ChangeUserActive\";\r\n\r\n\r\nexport const GETALLROLES_URL = \"RoleLogic/GetAll\";\r\n\r\nexport const EXTERNALAPI = \"ExternalApiMeasurementLogic/NewExternalApiMeasurement?ApiKey=\";\r\nexport const CREATENEWAPI = \"ExternalApiLogic/NewExternalApi\";\r\nexport const MODIFYAPI = \"ExternalApiLogic/ModifyExternalApi\";\r\nexport const DELETEAPI = \"ExternalApiLogic/DeleteExternalApi\";\r\nexport const GETAPIS = \"ExternalApi/GetApis\";\r\nexport const GETEXTERNALAPIBYUNIQUEID = \"ExternalApi/GetExternalApiByUniqueId\"\r\nexport const GETEXTERNALAPISBYCOMPANYID = \"ExternalApi/GetApisByCompanyId\";\r\nexport const GETLOCATION_URL = \"Project/GetAllLocation\";\r\nexport const GETPROJECTNAMES_URL = \"Project/GetAllProjectNames\";\r\nexport const GETMEASUREMENTBYDATELOCATIONNAME = \"ProjectLogic/GetMeasurementByDateLocationName\";\r\nexport const GETMEASUREMENTBYDATEANDUSER = \"ProjectLogic/GetProjectMeasurementsByDateAndUserId\";\r\n\r\nexport const GETMEASUREMENTBYQR = \"ProjectLogic/GetMeasurementByQr\";\r\n\r\nexport const GETDETAILMEASUREMENTSANDCOMMENTS = \"Measurement/GetDetailsByQr\";\r\nexport const GETPROJECTSANDDETAILS = \"ProjectLogic/GetAllProjects\";\r\nexport const GETALLUSERCOMPANYPROJECTS = \"ProjectLogic/GetAllUserCompanyProjects\";\r\nexport const GETUSERCOMPANYPROJECTOVERVIEW = \"ProjectLogic/GetUserCompanyProjectOverview\";\r\nexport const GETPROJECTBYPROJECTQR = \"ProjectLogic/GetProjectByProjectQr\";\r\nexport const GETPROJECTBYPROJECTIDUSERID = \"ProjectLogic/GetProject\";\r\nexport const REQUESTLOGIN_URL = \"request/RequestLogin\";\r\nexport const GETVALUETYPES = \"ValueType/GetAllValueTypes\";\r\nexport const GETALLLGRAPHCONFIGURATIONSBYCOMPANYID = \"GraphConfiguration/GetAllGraphConfigurationsByCompanyId\";\r\nexport const GETALLLGRAPHCONFIGURATIONSBYCOMPANYIDLIST = \"GraphConfiguration/GetAllGraphConfigurationsByCompanyIdList\";\r\nexport const GETALLUSERCOMPANYGRAPHCONFIGURATIONS = \"GraphConfiguration/GetAllUserCompanyGraphConfigurations\";\r\n\r\nexport const GETGRAPHCONFIGURATIONBYUNIQUEID = \"GraphConfiguration/GetGraphConfigurationByUniqueId\";\r\nexport const GETGRAPHCONFIGURATIONFORVIEWINGBYUNIQUEID = \"PublicGraphConfiguration/GetGraphConfigurationForViewingByUniqueId\";\r\nexport const PUBLISHGRAPHCONFIGURATION = \"GraphConfiguration/PublishGraphConfiguration\";\r\nexport const DELETEGRAPHCONFIGURATION = \"GraphConfiguration/DeleteGraphConfiguration\";\r\n\r\nexport const CREATENEWGRAPHCONFIGURATION = \"GraphConfiguration/CreateNewGraphConfiguration\";\r\nexport const UPDATEGRAPHCONFIGURATION = \"GraphConfiguration/UpdateGraphConfiguration\";\r\n\r\n// Project\r\nexport const PROJECTHASMEASUREMENTS = \"ProjectLogic/ProjectHasMeasurements\";\r\n\r\n// ProjectDetail\r\nexport const PROJECTDETAILHASMEASUREMENTS = \"ProjectDetail/ProjectDetailHasMeasurements\";\r\n\r\n// Financial types\r\nexport const GETALLFINANCIALTYPESBYCOMPANYID = \"FinancialType/GetAllFinancialTypesByCompanyId\";\r\nexport const GETALLUSERCOMPANYFINANCIALTYPES = \"FinancialType/GetAllUserCompanyFinancialTypes\";\r\nexport const CREATEFINANCIALTYPE = \"FinancialType/CreateFinancialType\";\r\nexport const UPDATEFINANCIALTYPE = \"FinancialType/UpdateFinancialType\";\r\n\r\n// AccountCategory\r\nexport const GETALLUSERCOMPANYACCOUNTCATEGORIES = \"AccountCategory/GetAllUserCompanyAccountCategories\";\r\nexport const CREATEACCOUNTCATEGORY = \"AccountCategory/CreateAccountCategory\";\r\nexport const UPDATEACCOUNTCATEGORY = \"AccountCategory/UpdateAccountCategory\";\r\n\r\n// Account\r\nexport const GETALLUSERCOMPANYACCOUNTS = \"Account/GetAllUserCompanyAccounts\";\r\nexport const CREATEACCOUNT = \"Account/CreateAccount\";\r\nexport const UPDATEACCOUNT= \"Account/UpdateAccount\";\r\nexport const CREATEACCOUNTS = \"Account/CreateAccounts\";\r\nexport const GETALLACCOUNTSFORGRAPHCONFIGURTATIONBYUNIQUEID = \"Account/GetAllAccountsForGraphConfigurationByUniqueId\";\r\n\r\n// ExternalApiType\r\nexport const GETALLEXTERNALAPITYPES = \"ExternalApiType\";\r\n\r\n// General Ledger Account\r\nexport const GETREPORTBYCOMPANYIDANDDATERANGE = \"GeneralLedgerAccountLogic/GetReportByCompanyIdAndDateRange\";\r\nexport const GETMEASUREMENTSBYCOMPANYIDANDDATERANGE = \"ProjectLogic/GetMeasurementsByCompanyIdAndDateRange\";\r\n\r\n// Currency\r\nexport const GETALLCURRENCIES = \"Currency/GetAllCurrencies\";\r\nexport const GETCURRENCYBYID = \"Currency/GetCurrencyById\";\r\n\r\n// Measurements\r\nexport const GETALLMEASUREMENTSBYUSERID = \"Measurement/GetAllMeasurementsByUserId\";\r\nexport const SETMEASUREMENTINACTIVE = \"Measurement/SetMeasurementInactive\";\r\nexport const SETMEASUREMENTSINACTIVEBYIDLIST = \"Measurement/SetMeasurementsInactiveByIdList\";\r\n\r\nexport function ComposeUri(action){\r\n if(ApiHelper.appSettings){\r\n return `${ApiHelper.appSettings.TAPLR_API_BASE_URL}/${action}`;\r\n }\r\n}\r\n\r\nexport const getAuthHeader = (token) => {\r\n if(token !== null && token !== undefined && token){\r\n return 'Bearer ' + token;\r\n }\r\n\r\n var state = store.getState();\r\n token = state.Login.userToken;\r\n return token ? 'Bearer ' + token : '';\r\n}\r\n\r\n","import { store } from '../../index'; // Adjust the path to your Redux store\r\nimport { logoutUser } from '../../Reducers/authActions'; // Import your logoutUser action\r\n\r\n\r\nexport function handleResponse(response) {\r\n return response.text().then(text => {\r\n if (!response.ok) {\r\n if ([401, 403].indexOf(response.status) !== -1) {\r\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n //authenticationService.logout();\r\n //window.location.reload(true);\r\n // logout();\r\n store.dispatch(logoutUser());\r\n\r\n }\r\n return Promise.reject(text);\r\n }\r\n const data = text && JSON.parse(text);\r\n return data;\r\n });\r\n}\r\n\r\n// const logout = () => {\r\n// const auth = getAuth();\r\n\r\n// signOut(auth).then((response) => {\r\n// // actions.logout();\r\n\r\n// if (window.location.pathname.toLowerCase().includes('taplr.app')) {\r\n// window.location.replace('/taplr.app/login');\r\n// } else {\r\n// window.location.replace('/login');\r\n// }\r\n// // actions.setLogin(false);\r\n// // actions.setUserid(null);\r\n// // actions.setUserToken(null);\r\n\r\n// // Sign-out successful.\r\n// }).catch((error) => {\r\n// console.log(error, 'error')\r\n// // An error happened.\r\n// });\r\n// }","// ! This file contains functions to help with date formatting and manipulation\r\n// ! It is a good practice to keep all date-related functions in one file\r\n\r\n// ! Always use the same naming convention for all functions:\r\n// ! Ex: parseDateToDDMMYY - always start with \"parseDateTo\" and then the format (DDMMYY)\r\n\r\n// ! Add comments if the function is not self-explanatory\r\n\r\nexport function fromNewDateFormatToYYYYMMDDSlash(newDate) {\r\n\r\n let addZeroToMonth = false\r\n\r\n let addZeroToDay = false\r\n\r\n if (new Date(newDate).getDate() < 10) {\r\n addZeroToDay = true\r\n }\r\n\r\n if (new Date(newDate).getMonth() + 1 < 10) {\r\n addZeroToMonth = true\r\n }\r\n\r\n let date = new Date(newDate).getFullYear() + \"/\" + (addZeroToMonth ? \"0\" : \"\") + String(new Date(newDate).getMonth() + 1) + \"/\" + (addZeroToDay ? \"0\" : \"\") + new Date(newDate).getDate();\r\n\r\n return date\r\n}\r\n\r\nexport function parseNewDateToDDMMYYY(newDate){\r\n return `${(\"0\" + (newDate.getDate())).slice(-2)}/${(\"0\" + (newDate.getMonth() + 1)).slice(-2)}/${newDate.getFullYear()} ${(\"0\" + (newDate.getHours())).slice(-2)}:${(\"0\" + (newDate.getMinutes())).slice(-2)}:${(\"0\" + (newDate.getSeconds())).slice(-2)}`;\r\n\r\n}\r\n\r\nexport function parseNewDateToDDMMYYYWithoutSeconds(newDate){\r\n return `${(\"0\" + (newDate.getDate())).slice(-2)}/${(\"0\" + (newDate.getMonth() + 1)).slice(-2)}/${newDate.getFullYear()} ${(\"0\" + (newDate.getHours())).slice(-2)}:${(\"0\" + (newDate.getMinutes())).slice(-2)}`;\r\n\r\n}\r\n\r\n\r\nexport function parseNewDateToDDMMYYYnoTime(newDate){\r\n return `${(\"0\" + (newDate.getDate())).slice(-2)}/${(\"0\" + (newDate.getMonth() + 1)).slice(-2)}/${newDate.getFullYear()}`;\r\n\r\n}\r\nexport function parseNewDateToYYMMDDDash(newDate){\r\n return `${newDate.getFullYear()}-${(\"0\" + (newDate.getMonth() + 1)).slice(-2)}-${(\"0\" + (newDate.getDate())).slice(-2)} ${(\"0\" + (newDate.getHours())).slice(-2)}:${(\"0\" + (newDate.getMinutes())).slice(-2)}:${(\"0\" + (newDate.getSeconds())).slice(-2)}`;\r\n\r\n}\r\nexport function formatCardDate(date) {\r\n const now = new Date();\r\n const inputDate = new Date(date);\r\n\r\n // Calculate the difference in years between the current date and the input date\r\n const yearDiff = now.getFullYear() - inputDate.getFullYear();\r\n\r\n // Check if the date is within the last year\r\n const isYoungerThanOneYear = yearDiff < 1 || (yearDiff === 1 && now.getMonth() >= inputDate.getMonth() && now.getDate() >= inputDate.getDate());\r\n\r\n // Format the date\r\n if (isYoungerThanOneYear) {\r\n const day = String(inputDate.getDate()).padStart(2, '0');\r\n const month = String(inputDate.getMonth() + 1).padStart(2, '0'); // Months are 0-based\r\n const hours = String(inputDate.getHours()).padStart(2, '0');\r\n const minutes = String(inputDate.getMinutes()).padStart(2, '0');\r\n\r\n return `${day}/${month} ${hours}:${minutes}`;\r\n } else {\r\n const day = String(inputDate.getDate()).padStart(2, '0');\r\n const month = String(inputDate.getMonth() + 1).padStart(2, '0');\r\n const year = inputDate.getFullYear();\r\n\r\n return `${day}/${month}/${year}`;\r\n }\r\n};\r\n\r\nexport function parseDateToDDMMYYTime(date){\r\n if (date) {\r\n let d = new Date(date);\r\n let hours = d.getHours() < 10 ? '0' + d.getHours() : d.getHours();\r\n let minutes = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes();\r\n let seconds = d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds();\r\n let month = (d.getMonth() + 1) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1);\r\n let day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();\r\n return day + \"/\" + (month) + \"/\" + d.getFullYear() + \" \" + hours + \":\" + minutes + \":\" + seconds;\r\n }\r\n return \"\";\r\n}\r\n\r\nexport const formatDate = (date) => {\r\n if (date) {\r\n let d = new Date(date);\r\n let hours = d.getHours() < 10 ? '0' + d.getHours() : d.getHours();\r\n let minutes = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes();\r\n let seconds = d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds();\r\n let month = (d.getMonth() + 1) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1);\r\n let day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();\r\n return day + \"/\" + (month) + \"/\" + d.getFullYear() + \" \" + hours + \":\" + minutes + \":\" + seconds;\r\n }\r\n return \"\";\r\n}\r\n\r\nexport const getCurrentDateTimeString = () => {\r\n const now = new Date();\r\n const year = now.getFullYear();\r\n const month = `0${now.getMonth() + 1}`.slice(-2); // Adding 1 because months are zero-based\r\n const day = `0${now.getDate()}`.slice(-2);\r\n const hours = `0${now.getHours()}`.slice(-2);\r\n const minutes = `0${now.getMinutes()}`.slice(-2);\r\n const seconds = `0${now.getSeconds()}`.slice(-2);\r\n return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}`;\r\n}\r\n\r\n\r\n\r\nexport function isDateObject(date){\r\n if(date instanceof Date){\r\n return true\r\n }\r\n else{\r\n return false\r\n }\r\n}\r\n\r\n //Function created to format seconds to years, months, days, hours, minutes & seconds --> Request of Jurgen\r\n export function formatToTimeString(seconds) {\r\n if (seconds < 0) return \"Invalid time\";\r\n\r\n const units = [\r\n { label: \"year\", seconds: 31536000 },\r\n { label: \"month\", seconds: 2592000 },\r\n { label: \"day\", seconds: 86400 },\r\n { label: \"hour\", seconds: 3600 },\r\n { label: \"minute\", seconds: 60 },\r\n { label: \"second\", seconds: 1 },\r\n ];\r\n\r\n let remainingSeconds = seconds;\r\n const parts = [];\r\n\r\n units.forEach((unit) => {\r\n const count = Math.floor(remainingSeconds / unit.seconds);\r\n if (count > 0) {\r\n parts.push(`${count} ${unit.label}${count > 1 ? \"s\" : \"\"}`);\r\n remainingSeconds %= unit.seconds;\r\n }\r\n });\r\n\r\n return parts.length > 0 ? parts.join(\" \") : \"0 seconds\";\r\n }","import React, { Component } from 'react';\r\nimport './index.css';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport NavigationPage from './Components/Pages/Navigation/NavigationPage';\r\nimport { BrowserRouter as Router } from 'react-router-dom';\r\nimport { ToastContainer } from \"react-toastify\";\r\n\r\n//import AdapterDateFns from '@mui/lab/AdapterDateFns';\r\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';\r\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\r\n//import LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport * as Actions from './Reducers/actions';\r\nimport { bindActionCreators, compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport ApiHelper from './Utils/API/apiHelper';\r\nimport { initializeApp } from 'firebase/app';\r\nimport { getAuth } from \"firebase/auth\";\r\nimport firebase from 'firebase/compat/app';\r\nimport 'firebase/compat/auth';\r\nimport './App.css';\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n appSettings: null,\r\n ready: false,\r\n }\r\n }\r\n componentDidMount = () => {\r\n const firebaseConfig = {\r\n apiKey: \"AIzaSyBfrMbCqucO7raJ3hclVNKetkOZXjbRgdQ\",\r\n authDomain: \"taplr-b96e9.firebaseapp.com\",\r\n projectId: \"taplr-b96e9\",\r\n storageBucket: \"taplr-b96e9.appspot.com\",\r\n messagingSenderId: \"228132134105\",\r\n appId: \"1:228132134105:web:b2786c6ed30a43f0c7f2c8\",\r\n measurementId: \"G-2CK1YFLXB3\"\r\n };\r\n\r\n const app = initializeApp(firebaseConfig);\r\n firebase.initializeApp(firebaseConfig);\r\n firebase.auth().useDeviceLanguage();\r\n\r\n window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('2fa-captcha', {\r\n size: 'invisible',\r\n callback: (response) => console.log('captcha solved!', response),\r\n });\r\n\r\n const auth = getAuth(app);\r\n\r\n fetch(\"appSettings.json\").then(\r\n function (res) {\r\n return res.json()\r\n }).then((data) => {\r\n ApiHelper.appSettings = data\r\n this.setState({ appSettings: data });\r\n this.setState({ ready: true });\r\n }).catch(\r\n function (err) {\r\n console.log(err, 'error')\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.state.ready &&\r\n \r\n \r\n \r\n }\r\n \r\n\r\n \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n\r\n}\r\n\r\nreportWebVitals();\r\n\r\nconst mapStateToProps = state => ({\r\n listCopy: state.listCopy,\r\n externalApiCopy: state.externalApiCopy,\r\n projectCopy: state.projectCopy,\r\n Login: state.Login,\r\n activeFilters: state.activeFilters,\r\n settings: state.settings\r\n})\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n actions: bindActionCreators(Actions, dispatch)\r\n})\r\n\r\nexport default compose(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n))(App);\r\n","import React, { Suspense } from \"react\";\r\nimport { render } from 'react-dom';\r\nimport { createStore, applyMiddleware } from 'redux'; // Creates the Central Redux Store\r\nimport { Provider } from 'react-redux';\r\nimport App from './app';\r\nimport { persistStore, persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\nimport reducer from './Reducers'; // Gets the root reducer to be used by the store\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport { thunk } from 'redux-thunk';\r\nimport \"./Styles/custom-bootstrap.scss\";\r\n\r\nconst Loader = () =>
    loading...
    ;\r\n\r\nconst persistConfig = {\r\n key: 'root',\r\n storage: storage,\r\n };\r\n\r\nconst pReducer = persistReducer(persistConfig, reducer);\r\n\r\n//hook up the redux devtools browser extension\r\nexport const store = createStore(pReducer,\r\n composeWithDevTools(\r\n applyMiddleware(thunk)\r\n )\r\n);\r\n\r\n\r\nconst persistor = persistStore(store);\r\n\r\nrender(\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n ,\r\n\r\n document.getElementById('root')\r\n);\r\n\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","var isDevelopment = false;\n\n/*\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\nfunction sheetForTag(tag) {\n if (tag.sheet) {\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 return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\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 tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : 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.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\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 this._insertTag(createStyleElement(this));\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 the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__PURE__ */React.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' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* */\nfunction (props, cache, ref) {\n var cssProp = props.css; // 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 WrappedComponent = 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, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-5486c51c.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.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 }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\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\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node\n /*: HTMLStyleElement | null*/\n = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\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\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\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\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\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\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\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\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 Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\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, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\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(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 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 scale: 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 { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\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 = /* #__PURE__ */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\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.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 = serializedStyles.styles + \";\";\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);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\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]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\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);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction 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);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[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]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\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 += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\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 { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\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 if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(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.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An enum of factors that may be used for multifactor authentication.\n *\n * @public\n */\nexport const FactorId = {\n /** Phone as second factor */\n PHONE: 'phone',\n TOTP: 'totp'\n} as const;\n\n/**\n * Enumeration of supported providers.\n *\n * @public\n */\nexport const ProviderId = {\n /** Facebook provider ID */\n FACEBOOK: 'facebook.com',\n /** GitHub provider ID */\n GITHUB: 'github.com',\n /** Google provider ID */\n GOOGLE: 'google.com',\n /** Password provider */\n PASSWORD: 'password',\n /** Phone provider */\n PHONE: 'phone',\n /** Twitter provider ID */\n TWITTER: 'twitter.com'\n} as const;\n\n/**\n * Enumeration of supported sign-in methods.\n *\n * @public\n */\nexport const SignInMethod = {\n /** Email link sign in method */\n EMAIL_LINK: 'emailLink',\n /** Email/password sign in method */\n EMAIL_PASSWORD: 'password',\n /** Facebook sign in method */\n FACEBOOK: 'facebook.com',\n /** GitHub sign in method */\n GITHUB: 'github.com',\n /** Google sign in method */\n GOOGLE: 'google.com',\n /** Phone sign in method */\n PHONE: 'phone',\n /** Twitter sign in method */\n TWITTER: 'twitter.com'\n} as const;\n\n/**\n * Enumeration of supported operation types.\n *\n * @public\n */\nexport const OperationType = {\n /** Operation involving linking an additional provider to an already signed-in user. */\n LINK: 'link',\n /** Operation involving using a provider to reauthenticate an already signed-in user. */\n REAUTHENTICATE: 'reauthenticate',\n /** Operation involving signing in a user. */\n SIGN_IN: 'signIn'\n} as const;\n\n/**\n * An enumeration of the possible email action types.\n *\n * @public\n */\nexport const ActionCodeOperation = {\n /** The email link sign-in action. */\n EMAIL_SIGNIN: 'EMAIL_SIGNIN',\n /** The password reset action. */\n PASSWORD_RESET: 'PASSWORD_RESET',\n /** The email revocation action. */\n RECOVER_EMAIL: 'RECOVER_EMAIL',\n /** The revert second factor addition email action. */\n REVERT_SECOND_FACTOR_ADDITION: 'REVERT_SECOND_FACTOR_ADDITION',\n /** The revert second factor addition email action. */\n VERIFY_AND_CHANGE_EMAIL: 'VERIFY_AND_CHANGE_EMAIL',\n /** The email verification action. */\n VERIFY_EMAIL: 'VERIFY_EMAIL'\n} as const;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorMap, User } from '../model/public_types';\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { AppName } from '../model/auth';\nimport { AuthCredential } from './credentials';\n\n/**\n * Enumeration of Firebase Auth error codes.\n *\n * @internal\n */\nexport const enum AuthErrorCode {\n ADMIN_ONLY_OPERATION = 'admin-restricted-operation',\n ARGUMENT_ERROR = 'argument-error',\n APP_NOT_AUTHORIZED = 'app-not-authorized',\n APP_NOT_INSTALLED = 'app-not-installed',\n CAPTCHA_CHECK_FAILED = 'captcha-check-failed',\n CODE_EXPIRED = 'code-expired',\n CORDOVA_NOT_READY = 'cordova-not-ready',\n CORS_UNSUPPORTED = 'cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE = 'credential-already-in-use',\n CREDENTIAL_MISMATCH = 'custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH = 'dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED = 'dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'email-change-needs-verification',\n EMAIL_EXISTS = 'email-already-in-use',\n EMULATOR_CONFIG_FAILED = 'emulator-config-failed',\n EXPIRED_OOB_CODE = 'expired-action-code',\n EXPIRED_POPUP_REQUEST = 'cancelled-popup-request',\n INTERNAL_ERROR = 'internal-error',\n INVALID_API_KEY = 'invalid-api-key',\n INVALID_APP_CREDENTIAL = 'invalid-app-credential',\n INVALID_APP_ID = 'invalid-app-id',\n INVALID_AUTH = 'invalid-user-token',\n INVALID_AUTH_EVENT = 'invalid-auth-event',\n INVALID_CERT_HASH = 'invalid-cert-hash',\n INVALID_CODE = 'invalid-verification-code',\n INVALID_CONTINUE_URI = 'invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION = 'invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN = 'invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN = 'invalid-dynamic-link-domain',\n INVALID_EMAIL = 'invalid-email',\n INVALID_EMULATOR_SCHEME = 'invalid-emulator-scheme',\n INVALID_IDP_RESPONSE = 'invalid-credential',\n INVALID_MESSAGE_PAYLOAD = 'invalid-message-payload',\n INVALID_MFA_SESSION = 'invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID = 'invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER = 'invalid-oauth-provider',\n INVALID_OOB_CODE = 'invalid-action-code',\n INVALID_ORIGIN = 'unauthorized-domain',\n INVALID_PASSWORD = 'wrong-password',\n INVALID_PERSISTENCE = 'invalid-persistence-type',\n INVALID_PHONE_NUMBER = 'invalid-phone-number',\n INVALID_PROVIDER_ID = 'invalid-provider-id',\n INVALID_RECIPIENT_EMAIL = 'invalid-recipient-email',\n INVALID_SENDER = 'invalid-sender',\n INVALID_SESSION_INFO = 'invalid-verification-id',\n INVALID_TENANT_ID = 'invalid-tenant-id',\n LOGIN_BLOCKED = 'login-blocked',\n MFA_INFO_NOT_FOUND = 'multi-factor-info-not-found',\n MFA_REQUIRED = 'multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME = 'missing-android-pkg-name',\n MISSING_APP_CREDENTIAL = 'missing-app-credential',\n MISSING_AUTH_DOMAIN = 'auth-domain-config-required',\n MISSING_CODE = 'missing-verification-code',\n MISSING_CONTINUE_URI = 'missing-continue-uri',\n MISSING_IFRAME_START = 'missing-iframe-start',\n MISSING_IOS_BUNDLE_ID = 'missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE = 'missing-or-invalid-nonce',\n MISSING_MFA_INFO = 'missing-multi-factor-info',\n MISSING_MFA_SESSION = 'missing-multi-factor-session',\n MISSING_PHONE_NUMBER = 'missing-phone-number',\n MISSING_PASSWORD = 'missing-password',\n MISSING_SESSION_INFO = 'missing-verification-id',\n MODULE_DESTROYED = 'app-deleted',\n NEED_CONFIRMATION = 'account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED = 'network-request-failed',\n NULL_USER = 'null-user',\n NO_AUTH_EVENT = 'no-auth-event',\n NO_SUCH_PROVIDER = 'no-such-provider',\n OPERATION_NOT_ALLOWED = 'operation-not-allowed',\n OPERATION_NOT_SUPPORTED = 'operation-not-supported-in-this-environment',\n POPUP_BLOCKED = 'popup-blocked',\n POPUP_CLOSED_BY_USER = 'popup-closed-by-user',\n PROVIDER_ALREADY_LINKED = 'provider-already-linked',\n QUOTA_EXCEEDED = 'quota-exceeded',\n REDIRECT_CANCELLED_BY_USER = 'redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING = 'redirect-operation-pending',\n REJECTED_CREDENTIAL = 'rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED = 'second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH = 'tenant-id-mismatch',\n TIMEOUT = 'timeout',\n TOKEN_EXPIRED = 'user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'too-many-requests',\n UNAUTHORIZED_DOMAIN = 'unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR = 'unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE = 'unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION = 'unsupported-tenant-operation',\n UNVERIFIED_EMAIL = 'unverified-email',\n USER_CANCELLED = 'user-cancelled',\n USER_DELETED = 'user-not-found',\n USER_DISABLED = 'user-disabled',\n USER_MISMATCH = 'user-mismatch',\n USER_SIGNED_OUT = 'user-signed-out',\n WEAK_PASSWORD = 'weak-password',\n WEB_STORAGE_UNSUPPORTED = 'web-storage-unsupported',\n ALREADY_INITIALIZED = 'already-initialized',\n RECAPTCHA_NOT_ENABLED = 'recaptcha-not-enabled',\n MISSING_RECAPTCHA_TOKEN = 'missing-recaptcha-token',\n INVALID_RECAPTCHA_TOKEN = 'invalid-recaptcha-token',\n INVALID_RECAPTCHA_ACTION = 'invalid-recaptcha-action',\n MISSING_CLIENT_TYPE = 'missing-client-type',\n MISSING_RECAPTCHA_VERSION = 'missing-recaptcha-version',\n INVALID_RECAPTCHA_VERSION = 'invalid-recaptcha-version',\n INVALID_REQ_TYPE = 'invalid-req-type'\n}\n\nfunction _debugErrorMap(): ErrorMap {\n return {\n [AuthErrorCode.ADMIN_ONLY_OPERATION]:\n 'This operation is restricted to administrators only.',\n [AuthErrorCode.ARGUMENT_ERROR]: '',\n [AuthErrorCode.APP_NOT_AUTHORIZED]:\n \"This app, identified by the domain where it's hosted, is not \" +\n 'authorized to use Firebase Authentication with the provided API key. ' +\n 'Review your key configuration in the Google API console.',\n [AuthErrorCode.APP_NOT_INSTALLED]:\n 'The requested mobile application corresponding to the identifier (' +\n 'Android package name or iOS bundle ID) provided is not installed on ' +\n 'this device.',\n [AuthErrorCode.CAPTCHA_CHECK_FAILED]:\n 'The reCAPTCHA response token provided is either invalid, expired, ' +\n 'already used or the domain associated with it does not match the list ' +\n 'of whitelisted domains.',\n [AuthErrorCode.CODE_EXPIRED]:\n 'The SMS code has expired. Please re-send the verification code to try ' +\n 'again.',\n [AuthErrorCode.CORDOVA_NOT_READY]: 'Cordova framework is not ready.',\n [AuthErrorCode.CORS_UNSUPPORTED]: 'This browser is not supported.',\n [AuthErrorCode.CREDENTIAL_ALREADY_IN_USE]:\n 'This credential is already associated with a different user account.',\n [AuthErrorCode.CREDENTIAL_MISMATCH]:\n 'The custom token corresponds to a different audience.',\n [AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n 'This operation is sensitive and requires recent authentication. Log in ' +\n 'again before retrying this request.',\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.',\n [AuthErrorCode.DYNAMIC_LINK_NOT_ACTIVATED]:\n 'Please activate Dynamic Links in the Firebase Console and agree to the terms and ' +\n 'conditions.',\n [AuthErrorCode.EMAIL_CHANGE_NEEDS_VERIFICATION]:\n 'Multi-factor users must always have a verified email.',\n [AuthErrorCode.EMAIL_EXISTS]:\n 'The email address is already in use by another account.',\n [AuthErrorCode.EMULATOR_CONFIG_FAILED]:\n 'Auth instance has already been used to make a network call. Auth can ' +\n 'no longer be configured to use the emulator. Try calling ' +\n '\"connectAuthEmulator()\" sooner.',\n [AuthErrorCode.EXPIRED_OOB_CODE]: 'The action code has expired.',\n [AuthErrorCode.EXPIRED_POPUP_REQUEST]:\n 'This operation has been cancelled due to another conflicting popup being opened.',\n [AuthErrorCode.INTERNAL_ERROR]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_APP_CREDENTIAL]:\n 'The phone verification request contains an invalid application verifier.' +\n ' The reCAPTCHA token response is either invalid or expired.',\n [AuthErrorCode.INVALID_APP_ID]:\n 'The mobile app identifier is not registed for the current project.',\n [AuthErrorCode.INVALID_AUTH]:\n \"This user's credential isn't valid for this project. This can happen \" +\n \"if the user's token has been tampered with, or if the user isn't for \" +\n 'the project associated with this API key.',\n [AuthErrorCode.INVALID_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_CODE]:\n 'The SMS verification code used to create the phone auth credential is ' +\n 'invalid. Please resend the verification code sms and be sure to use the ' +\n 'verification code provided by the user.',\n [AuthErrorCode.INVALID_CONTINUE_URI]:\n 'The continue URL provided in the request is invalid.',\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]:\n 'The following Cordova plugins must be installed to enable OAuth sign-in: ' +\n 'cordova-plugin-buildinfo, cordova-universal-links-plugin, ' +\n 'cordova-plugin-browsertab, cordova-plugin-inappbrowser and ' +\n 'cordova-plugin-customurlscheme.',\n [AuthErrorCode.INVALID_CUSTOM_TOKEN]:\n 'The custom token format is incorrect. Please check the documentation.',\n [AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN]:\n 'The provided dynamic link domain is not configured or authorized for the current project.',\n [AuthErrorCode.INVALID_EMAIL]: 'The email address is badly formatted.',\n [AuthErrorCode.INVALID_EMULATOR_SCHEME]:\n 'Emulator URL must start with a valid scheme (http:// or https://).',\n [AuthErrorCode.INVALID_API_KEY]:\n 'Your API key is invalid, please check you have copied it correctly.',\n [AuthErrorCode.INVALID_CERT_HASH]:\n 'The SHA-1 certificate hash provided is invalid.',\n [AuthErrorCode.INVALID_IDP_RESPONSE]:\n 'The supplied auth credential is malformed or has expired.',\n [AuthErrorCode.INVALID_MESSAGE_PAYLOAD]:\n 'The email template corresponding to this action contains invalid characters in its message. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_MFA_SESSION]:\n 'The request does not contain a valid proof of first factor successful sign-in.',\n [AuthErrorCode.INVALID_OAUTH_PROVIDER]:\n 'EmailAuthProvider is not supported for this operation. This operation ' +\n 'only supports OAuth providers.',\n [AuthErrorCode.INVALID_OAUTH_CLIENT_ID]:\n 'The OAuth client ID provided is either invalid or does not match the ' +\n 'specified API key.',\n [AuthErrorCode.INVALID_ORIGIN]:\n 'This domain is not authorized for OAuth operations for your Firebase ' +\n 'project. Edit the list of authorized domains from the Firebase console.',\n [AuthErrorCode.INVALID_OOB_CODE]:\n 'The action code is invalid. This can happen if the code is malformed, ' +\n 'expired, or has already been used.',\n [AuthErrorCode.INVALID_PASSWORD]:\n 'The password is invalid or the user does not have a password.',\n [AuthErrorCode.INVALID_PERSISTENCE]:\n 'The specified persistence type is invalid. It can only be local, session or none.',\n [AuthErrorCode.INVALID_PHONE_NUMBER]:\n 'The format of the phone number provided is incorrect. Please enter the ' +\n 'phone number in a format that can be parsed into E.164 format. E.164 ' +\n 'phone numbers are written in the format [+][country code][subscriber ' +\n 'number including area code].',\n [AuthErrorCode.INVALID_PROVIDER_ID]:\n 'The specified provider ID is invalid.',\n [AuthErrorCode.INVALID_RECIPIENT_EMAIL]:\n 'The email corresponding to this action failed to send as the provided ' +\n 'recipient email address is invalid.',\n [AuthErrorCode.INVALID_SENDER]:\n 'The email template corresponding to this action contains an invalid sender email or name. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_SESSION_INFO]:\n 'The verification ID used to create the phone auth credential is invalid.',\n [AuthErrorCode.INVALID_TENANT_ID]:\n \"The Auth instance's tenant ID is invalid.\",\n [AuthErrorCode.LOGIN_BLOCKED]:\n 'Login blocked by user-provided method: {$originalMessage}',\n [AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME]:\n 'An Android Package Name must be provided if the Android App is required to be installed.',\n [AuthErrorCode.MISSING_AUTH_DOMAIN]:\n 'Be sure to include authDomain when calling firebase.initializeApp(), ' +\n 'by following the instructions in the Firebase console.',\n [AuthErrorCode.MISSING_APP_CREDENTIAL]:\n 'The phone verification request is missing an application verifier ' +\n 'assertion. A reCAPTCHA response token needs to be provided.',\n [AuthErrorCode.MISSING_CODE]:\n 'The phone auth credential was created with an empty SMS verification code.',\n [AuthErrorCode.MISSING_CONTINUE_URI]:\n 'A continue URL must be provided in the request.',\n [AuthErrorCode.MISSING_IFRAME_START]: 'An internal AuthError has occurred.',\n [AuthErrorCode.MISSING_IOS_BUNDLE_ID]:\n 'An iOS Bundle ID must be provided if an App Store ID is provided.',\n [AuthErrorCode.MISSING_OR_INVALID_NONCE]:\n 'The request does not contain a valid nonce. This can occur if the ' +\n 'SHA-256 hash of the provided raw nonce does not match the hashed nonce ' +\n 'in the ID token payload.',\n [AuthErrorCode.MISSING_PASSWORD]: 'A non-empty password must be provided',\n [AuthErrorCode.MISSING_MFA_INFO]:\n 'No second factor identifier is provided.',\n [AuthErrorCode.MISSING_MFA_SESSION]:\n 'The request is missing proof of first factor successful sign-in.',\n [AuthErrorCode.MISSING_PHONE_NUMBER]:\n 'To send verification codes, provide a phone number for the recipient.',\n [AuthErrorCode.MISSING_SESSION_INFO]:\n 'The phone auth credential was created with an empty verification ID.',\n [AuthErrorCode.MODULE_DESTROYED]:\n 'This instance of FirebaseApp has been deleted.',\n [AuthErrorCode.MFA_INFO_NOT_FOUND]:\n 'The user does not have a second factor matching the identifier provided.',\n [AuthErrorCode.MFA_REQUIRED]:\n 'Proof of ownership of a second factor is required to complete sign-in.',\n [AuthErrorCode.NEED_CONFIRMATION]:\n 'An account already exists with the same email address but different ' +\n 'sign-in credentials. Sign in using a provider associated with this ' +\n 'email address.',\n [AuthErrorCode.NETWORK_REQUEST_FAILED]:\n 'A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.',\n [AuthErrorCode.NO_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.NO_SUCH_PROVIDER]:\n 'User was not linked to an account with the given provider.',\n [AuthErrorCode.NULL_USER]:\n 'A null user object was provided as the argument for an operation which ' +\n 'requires a non-null user object.',\n [AuthErrorCode.OPERATION_NOT_ALLOWED]:\n 'The given sign-in provider is disabled for this Firebase project. ' +\n 'Enable it in the Firebase console, under the sign-in method tab of the ' +\n 'Auth section.',\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]:\n 'This operation is not supported in the environment this application is ' +\n 'running on. \"location.protocol\" must be http, https or chrome-extension' +\n ' and web storage must be enabled.',\n [AuthErrorCode.POPUP_BLOCKED]:\n 'Unable to establish a connection with the popup. It may have been blocked by the browser.',\n [AuthErrorCode.POPUP_CLOSED_BY_USER]:\n 'The popup has been closed by the user before finalizing the operation.',\n [AuthErrorCode.PROVIDER_ALREADY_LINKED]:\n 'User can only be linked to one identity for the given provider.',\n [AuthErrorCode.QUOTA_EXCEEDED]:\n \"The project's quota for this operation has been exceeded.\",\n [AuthErrorCode.REDIRECT_CANCELLED_BY_USER]:\n 'The redirect operation has been cancelled by the user before finalizing.',\n [AuthErrorCode.REDIRECT_OPERATION_PENDING]:\n 'A redirect sign-in operation is already pending.',\n [AuthErrorCode.REJECTED_CREDENTIAL]:\n 'The request contains malformed or mismatching credentials.',\n [AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED]:\n 'The second factor is already enrolled on this account.',\n [AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED]:\n 'The maximum allowed number of second factors on a user has been exceeded.',\n [AuthErrorCode.TENANT_ID_MISMATCH]:\n \"The provided tenant ID does not match the Auth instance's tenant ID\",\n [AuthErrorCode.TIMEOUT]: 'The operation has timed out.',\n [AuthErrorCode.TOKEN_EXPIRED]:\n \"The user's credential is no longer valid. The user must sign in again.\",\n [AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER]:\n 'We have blocked all requests from this device due to unusual activity. ' +\n 'Try again later.',\n [AuthErrorCode.UNAUTHORIZED_DOMAIN]:\n 'The domain of the continue URL is not whitelisted. Please whitelist ' +\n 'the domain in the Firebase console.',\n [AuthErrorCode.UNSUPPORTED_FIRST_FACTOR]:\n 'Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.',\n [AuthErrorCode.UNSUPPORTED_PERSISTENCE]:\n 'The current environment does not support the specified persistence type.',\n [AuthErrorCode.UNSUPPORTED_TENANT_OPERATION]:\n 'This operation is not supported in a multi-tenant context.',\n [AuthErrorCode.UNVERIFIED_EMAIL]:\n 'The operation requires a verified email.',\n [AuthErrorCode.USER_CANCELLED]:\n 'The user did not grant your application the permissions it requested.',\n [AuthErrorCode.USER_DELETED]:\n 'There is no user record corresponding to this identifier. The user may ' +\n 'have been deleted.',\n [AuthErrorCode.USER_DISABLED]:\n 'The user account has been disabled by an administrator.',\n [AuthErrorCode.USER_MISMATCH]:\n 'The supplied credentials do not correspond to the previously signed in user.',\n [AuthErrorCode.USER_SIGNED_OUT]: '',\n [AuthErrorCode.WEAK_PASSWORD]:\n 'The password must be 6 characters long or more.',\n [AuthErrorCode.WEB_STORAGE_UNSUPPORTED]:\n 'This browser is not supported or 3rd party cookies and data may be disabled.',\n [AuthErrorCode.ALREADY_INITIALIZED]:\n 'initializeAuth() has already been called with ' +\n 'different options. To avoid this error, call initializeAuth() with the ' +\n 'same options as when it was originally called, or call getAuth() to return the' +\n ' already initialized instance.',\n [AuthErrorCode.MISSING_RECAPTCHA_TOKEN]:\n 'The reCAPTCHA token is missing when sending request to the backend.',\n [AuthErrorCode.INVALID_RECAPTCHA_TOKEN]:\n 'The reCAPTCHA token is invalid when sending request to the backend.',\n [AuthErrorCode.INVALID_RECAPTCHA_ACTION]:\n 'The reCAPTCHA action is invalid when sending request to the backend.',\n [AuthErrorCode.RECAPTCHA_NOT_ENABLED]:\n 'reCAPTCHA Enterprise integration is not enabled for this project.',\n [AuthErrorCode.MISSING_CLIENT_TYPE]:\n 'The reCAPTCHA client type is missing when sending request to the backend.',\n [AuthErrorCode.MISSING_RECAPTCHA_VERSION]:\n 'The reCAPTCHA version is missing when sending request to the backend.',\n [AuthErrorCode.INVALID_REQ_TYPE]: 'Invalid request parameters.',\n [AuthErrorCode.INVALID_RECAPTCHA_VERSION]:\n 'The reCAPTCHA version is invalid when sending request to the backend.'\n };\n}\n\nexport interface ErrorMapRetriever extends AuthErrorMap {\n (): ErrorMap;\n}\n\nfunction _prodErrorMap(): ErrorMap {\n // We will include this one message in the prod error map since by the very\n // nature of this error, developers will never be able to see the message\n // using the debugErrorMap (which is installed during auth initialization).\n return {\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.'\n } as ErrorMap;\n}\n\n/**\n * A verbose error map with detailed descriptions for most error codes.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const debugErrorMap: AuthErrorMap = _debugErrorMap;\n\n/**\n * A minimal error map with all verbose error messages stripped.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const prodErrorMap: AuthErrorMap = _prodErrorMap;\n\nexport interface NamedErrorParams {\n appName: AppName;\n credential?: AuthCredential;\n email?: string;\n phoneNumber?: string;\n tenantId?: string;\n user?: User;\n _serverResponse?: object;\n}\n\n/**\n * @internal\n */\ntype GenericAuthErrorParams = {\n [key in Exclude<\n AuthErrorCode,\n | AuthErrorCode.ARGUMENT_ERROR\n | AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n | AuthErrorCode.INTERNAL_ERROR\n | AuthErrorCode.MFA_REQUIRED\n | AuthErrorCode.NO_AUTH_EVENT\n | AuthErrorCode.OPERATION_NOT_SUPPORTED\n >]: {\n appName?: AppName;\n email?: string;\n phoneNumber?: string;\n message?: string;\n };\n};\n\n/**\n * @internal\n */\nexport interface AuthErrorParams extends GenericAuthErrorParams {\n [AuthErrorCode.ARGUMENT_ERROR]: { appName?: AppName };\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]: { appName?: AppName };\n [AuthErrorCode.INTERNAL_ERROR]: { appName?: AppName };\n [AuthErrorCode.LOGIN_BLOCKED]: {\n appName?: AppName;\n originalMessage?: string;\n };\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]: { appName?: AppName };\n [AuthErrorCode.NO_AUTH_EVENT]: { appName?: AppName };\n [AuthErrorCode.MFA_REQUIRED]: {\n appName: AppName;\n _serverResponse: IdTokenMfaResponse;\n };\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]: {\n appName: AppName;\n missingPlugin?: string;\n };\n}\n\nexport const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory<\n AuthErrorCode,\n AuthErrorParams\n>('auth', 'Firebase', _prodErrorMap());\n\n/**\n * A map of potential `Auth` error codes, for easier comparison with errors\n * thrown by the SDK.\n *\n * @remarks\n * Note that you can't tree-shake individual keys\n * in the map, so by using the map you might substantially increase your\n * bundle size.\n *\n * @public\n */\nexport const AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY = {\n ADMIN_ONLY_OPERATION: 'auth/admin-restricted-operation',\n ARGUMENT_ERROR: 'auth/argument-error',\n APP_NOT_AUTHORIZED: 'auth/app-not-authorized',\n APP_NOT_INSTALLED: 'auth/app-not-installed',\n CAPTCHA_CHECK_FAILED: 'auth/captcha-check-failed',\n CODE_EXPIRED: 'auth/code-expired',\n CORDOVA_NOT_READY: 'auth/cordova-not-ready',\n CORS_UNSUPPORTED: 'auth/cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE: 'auth/credential-already-in-use',\n CREDENTIAL_MISMATCH: 'auth/custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 'auth/requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH: 'auth/dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED: 'auth/dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION: 'auth/email-change-needs-verification',\n EMAIL_EXISTS: 'auth/email-already-in-use',\n EMULATOR_CONFIG_FAILED: 'auth/emulator-config-failed',\n EXPIRED_OOB_CODE: 'auth/expired-action-code',\n EXPIRED_POPUP_REQUEST: 'auth/cancelled-popup-request',\n INTERNAL_ERROR: 'auth/internal-error',\n INVALID_API_KEY: 'auth/invalid-api-key',\n INVALID_APP_CREDENTIAL: 'auth/invalid-app-credential',\n INVALID_APP_ID: 'auth/invalid-app-id',\n INVALID_AUTH: 'auth/invalid-user-token',\n INVALID_AUTH_EVENT: 'auth/invalid-auth-event',\n INVALID_CERT_HASH: 'auth/invalid-cert-hash',\n INVALID_CODE: 'auth/invalid-verification-code',\n INVALID_CONTINUE_URI: 'auth/invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION: 'auth/invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN: 'auth/invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN: 'auth/invalid-dynamic-link-domain',\n INVALID_EMAIL: 'auth/invalid-email',\n INVALID_EMULATOR_SCHEME: 'auth/invalid-emulator-scheme',\n INVALID_IDP_RESPONSE: 'auth/invalid-credential',\n INVALID_MESSAGE_PAYLOAD: 'auth/invalid-message-payload',\n INVALID_MFA_SESSION: 'auth/invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID: 'auth/invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER: 'auth/invalid-oauth-provider',\n INVALID_OOB_CODE: 'auth/invalid-action-code',\n INVALID_ORIGIN: 'auth/unauthorized-domain',\n INVALID_PASSWORD: 'auth/wrong-password',\n INVALID_PERSISTENCE: 'auth/invalid-persistence-type',\n INVALID_PHONE_NUMBER: 'auth/invalid-phone-number',\n INVALID_PROVIDER_ID: 'auth/invalid-provider-id',\n INVALID_RECIPIENT_EMAIL: 'auth/invalid-recipient-email',\n INVALID_SENDER: 'auth/invalid-sender',\n INVALID_SESSION_INFO: 'auth/invalid-verification-id',\n INVALID_TENANT_ID: 'auth/invalid-tenant-id',\n MFA_INFO_NOT_FOUND: 'auth/multi-factor-info-not-found',\n MFA_REQUIRED: 'auth/multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME: 'auth/missing-android-pkg-name',\n MISSING_APP_CREDENTIAL: 'auth/missing-app-credential',\n MISSING_AUTH_DOMAIN: 'auth/auth-domain-config-required',\n MISSING_CODE: 'auth/missing-verification-code',\n MISSING_CONTINUE_URI: 'auth/missing-continue-uri',\n MISSING_IFRAME_START: 'auth/missing-iframe-start',\n MISSING_IOS_BUNDLE_ID: 'auth/missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE: 'auth/missing-or-invalid-nonce',\n MISSING_MFA_INFO: 'auth/missing-multi-factor-info',\n MISSING_MFA_SESSION: 'auth/missing-multi-factor-session',\n MISSING_PHONE_NUMBER: 'auth/missing-phone-number',\n MISSING_SESSION_INFO: 'auth/missing-verification-id',\n MODULE_DESTROYED: 'auth/app-deleted',\n NEED_CONFIRMATION: 'auth/account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED: 'auth/network-request-failed',\n NULL_USER: 'auth/null-user',\n NO_AUTH_EVENT: 'auth/no-auth-event',\n NO_SUCH_PROVIDER: 'auth/no-such-provider',\n OPERATION_NOT_ALLOWED: 'auth/operation-not-allowed',\n OPERATION_NOT_SUPPORTED: 'auth/operation-not-supported-in-this-environment',\n POPUP_BLOCKED: 'auth/popup-blocked',\n POPUP_CLOSED_BY_USER: 'auth/popup-closed-by-user',\n PROVIDER_ALREADY_LINKED: 'auth/provider-already-linked',\n QUOTA_EXCEEDED: 'auth/quota-exceeded',\n REDIRECT_CANCELLED_BY_USER: 'auth/redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING: 'auth/redirect-operation-pending',\n REJECTED_CREDENTIAL: 'auth/rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED: 'auth/second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED: 'auth/maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH: 'auth/tenant-id-mismatch',\n TIMEOUT: 'auth/timeout',\n TOKEN_EXPIRED: 'auth/user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER: 'auth/too-many-requests',\n UNAUTHORIZED_DOMAIN: 'auth/unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR: 'auth/unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE: 'auth/unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION: 'auth/unsupported-tenant-operation',\n UNVERIFIED_EMAIL: 'auth/unverified-email',\n USER_CANCELLED: 'auth/user-cancelled',\n USER_DELETED: 'auth/user-not-found',\n USER_DISABLED: 'auth/user-disabled',\n USER_MISMATCH: 'auth/user-mismatch',\n USER_SIGNED_OUT: 'auth/user-signed-out',\n WEAK_PASSWORD: 'auth/weak-password',\n WEB_STORAGE_UNSUPPORTED: 'auth/web-storage-unsupported',\n ALREADY_INITIALIZED: 'auth/already-initialized',\n RECAPTCHA_NOT_ENABLED: 'auth/recaptcha-not-enabled',\n MISSING_RECAPTCHA_TOKEN: 'auth/missing-recaptcha-token',\n INVALID_RECAPTCHA_TOKEN: 'auth/invalid-recaptcha-token',\n INVALID_RECAPTCHA_ACTION: 'auth/invalid-recaptcha-action',\n MISSING_CLIENT_TYPE: 'auth/missing-client-type',\n MISSING_RECAPTCHA_VERSION: 'auth/missing-recaptcha-version',\n INVALID_RECAPTCHA_VERSION: 'auth/invalid-recaptcha-version',\n INVALID_REQ_TYPE: 'auth/invalid-req-type'\n} as const;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger, LogLevel } from '@firebase/logger';\nimport { SDK_VERSION } from '@firebase/app';\n\nexport { LogLevel };\n\nconst logClient = new Logger('@firebase/auth');\n\n// Helper methods are needed because variables can't be exported as read/write\nexport function _getLogLevel(): LogLevel {\n return logClient.logLevel;\n}\n\nexport function _setLogLevel(newLevel: LogLevel): void {\n logClient.logLevel = newLevel;\n}\n\nexport function _logDebug(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.DEBUG) {\n logClient.debug(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logWarn(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.WARN) {\n logClient.warn(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logError(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.ERROR) {\n logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth } from '../../model/public_types';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../../model/auth';\nimport {\n _DEFAULT_AUTH_ERROR_FACTORY,\n AuthErrorCode,\n AuthErrorParams,\n prodErrorMap,\n ErrorMapRetriever\n} from '../errors';\nimport { _logError } from './log';\n\ntype AuthErrorListParams = K extends keyof AuthErrorParams\n ? [AuthErrorParams[K]]\n : [];\ntype LessAppName = Omit;\n\n/**\n * Unconditionally fails, throwing a developer facing INTERNAL_ERROR\n *\n * @example\n * ```javascript\n * fail(auth, AuthErrorCode.MFA_REQUIRED); // Error: the MFA_REQUIRED error needs more params than appName\n * fail(auth, AuthErrorCode.MFA_REQUIRED, {serverResponse}); // Compiles\n * fail(AuthErrorCode.INTERNAL_ERROR); // Compiles; internal error does not need appName\n * fail(AuthErrorCode.USER_DELETED); // Error: USER_DELETED requires app name\n * fail(auth, AuthErrorCode.USER_DELETED); // Compiles; USER_DELETED _only_ needs app name\n * ```\n *\n * @param appName App name for tagging the error\n * @throws FirebaseError\n */\nexport function _fail(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): never;\nexport function _fail(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): never;\nexport function _fail(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): never {\n throw createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _createError(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): FirebaseError;\nexport function _createError(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): FirebaseError;\nexport function _createError(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n return createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _errorWithCustomMessage(\n auth: Auth,\n code: AuthErrorCode,\n message: string\n): FirebaseError {\n const errorMap = {\n ...(prodErrorMap as ErrorMapRetriever)(),\n [code]: message\n };\n const factory = new ErrorFactory(\n 'auth',\n 'Firebase',\n errorMap\n );\n return factory.create(code, {\n appName: auth.name\n });\n}\n\nexport function _assertInstanceOf(\n auth: Auth,\n object: object,\n instance: unknown\n): void {\n const constructorInstance = instance as { new (...args: unknown[]): unknown };\n if (!(object instanceof constructorInstance)) {\n if (constructorInstance.name !== object.constructor.name) {\n _fail(auth, AuthErrorCode.ARGUMENT_ERROR);\n }\n\n throw _errorWithCustomMessage(\n auth,\n AuthErrorCode.ARGUMENT_ERROR,\n `Type of ${object.constructor.name} does not match expected instance.` +\n `Did you pass a reference from a different Auth SDK?`\n );\n }\n}\n\nfunction createErrorInternal(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n if (typeof authOrCode !== 'string') {\n const code = rest[0] as K;\n const fullParams = [...rest.slice(1)] as AuthErrorListParams;\n if (fullParams[0]) {\n fullParams[0].appName = authOrCode.name;\n }\n\n return (authOrCode as AuthInternal)._errorFactory.create(\n code,\n ...fullParams\n );\n }\n\n return _DEFAULT_AUTH_ERROR_FACTORY.create(\n authOrCode,\n ...(rest as AuthErrorListParams)\n );\n}\n\nexport function _assert(\n assertion: unknown,\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n authOrCode: Auth | K,\n ...rest: unknown[]\n): asserts assertion {\n if (!assertion) {\n throw createErrorInternal(authOrCode, ...rest);\n }\n}\n\n// We really do want to accept literally any function type here\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype TypeExpectation = Function | string | MapType;\n\ninterface MapType extends Record {}\n\nclass Optional {\n constructor(readonly type: TypeExpectation) {}\n}\n\nexport function opt(type: TypeExpectation): Optional {\n return new Optional(type);\n}\n\n/**\n * Asserts the runtime types of arguments. The 'expected' field can be one of\n * a class, a string (representing a \"typeof\" call), or a record map of name\n * to type. Furthermore, the opt() function can be used to mark a field as\n * optional. For example:\n *\n * function foo(auth: Auth, profile: {displayName?: string}, update = false) {\n * assertTypes(arguments, [AuthImpl, {displayName: opt('string')}, opt('boolean')]);\n * }\n *\n * opt() can be used for any type:\n * function foo(auth?: Auth) {\n * assertTypes(arguments, [opt(AuthImpl)]);\n * }\n *\n * The string types can be or'd together, and you can use \"null\" as well (note\n * that typeof null === 'object'; this is an edge case). For example:\n *\n * function foo(profile: {displayName?: string | null}) {\n * assertTypes(arguments, [{displayName: opt('string|null')}]);\n * }\n *\n * @param args\n * @param expected\n */\nexport function assertTypes(\n args: Omit,\n ...expected: Array\n): void {\n if (args.length > expected.length) {\n _fail(AuthErrorCode.ARGUMENT_ERROR, {});\n }\n\n for (let i = 0; i < expected.length; i++) {\n let expect = expected[i];\n const arg = args[i];\n\n if (expect instanceof Optional) {\n // If the arg is undefined, then it matches \"optional\" and we can move to\n // the next arg\n if (typeof arg === 'undefined') {\n continue;\n }\n expect = expect.type;\n }\n\n if (typeof expect === 'string') {\n // Handle the edge case for null because typeof null === 'object'\n if (expect.includes('null') && arg === null) {\n continue;\n }\n\n const required = expect.split('|');\n _assert(required.includes(typeof arg), AuthErrorCode.ARGUMENT_ERROR, {});\n } else if (typeof expect === 'object') {\n // Recursively check record arguments\n const record = arg as Record;\n const map = expect as MapType;\n const keys = Object.keys(expect);\n\n assertTypes(\n keys.map(k => record[k]),\n ...keys.map(k => map[k])\n );\n } else {\n _assert(arg instanceof expect, AuthErrorCode.ARGUMENT_ERROR, {});\n }\n }\n}\n\n/**\n * Unconditionally fails, throwing an internal error with the given message.\n *\n * @param failure type of failure encountered\n * @throws Error\n */\nexport function debugFail(failure: string): never {\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n const message = `INTERNAL ASSERTION FAILED: ` + failure;\n _logError(message);\n\n // NOTE: We don't use FirebaseError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw new Error(message);\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * @param assertion\n * @param message\n */\nexport function debugAssert(\n assertion: unknown,\n message: string\n): asserts assertion {\n if (!assertion) {\n debugFail(message);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _getCurrentUrl(): string {\n return (typeof self !== 'undefined' && self.location?.href) || '';\n}\n\nexport function _isHttpOrHttps(): boolean {\n return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';\n}\n\nexport function _getCurrentScheme(): string | null {\n return (typeof self !== 'undefined' && self.location?.protocol) || null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isMobileCordova, isReactNative } from '@firebase/util';\nimport { _isOnline } from './navigator';\nimport { debugAssert } from './assert';\n\nexport const enum DelayMin {\n OFFLINE = 5000\n}\n\n/**\n * A structure to help pick between a range of long and short delay durations\n * depending on the current environment. In general, the long delay is used for\n * mobile environments whereas short delays are used for desktop environments.\n */\nexport class Delay {\n // The default value for the offline delay timeout in ms.\n\n private readonly isMobile: boolean;\n constructor(\n private readonly shortDelay: number,\n private readonly longDelay: number\n ) {\n // Internal error when improperly initialized.\n debugAssert(\n longDelay > shortDelay,\n 'Short delay should be less than long delay!'\n );\n this.isMobile = isMobileCordova() || isReactNative();\n }\n\n get(): number {\n if (!_isOnline()) {\n // Pick the shorter timeout.\n return Math.min(DelayMin.OFFLINE, this.shortDelay);\n }\n // If running in a mobile environment, return the long delay, otherwise\n // return the short delay.\n // This could be improved in the future to dynamically change based on other\n // variables instead of just reading the current environment.\n return this.isMobile ? this.longDelay : this.shortDelay;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isBrowserExtension } from '@firebase/util';\nimport { _isHttpOrHttps } from './location';\n\n/**\n * Determine whether the browser is working online\n */\nexport function _isOnline(): boolean {\n if (\n typeof navigator !== 'undefined' &&\n navigator &&\n 'onLine' in navigator &&\n typeof navigator.onLine === 'boolean' &&\n // Apply only for traditional web apps and Chrome extensions.\n // This is especially true for Cordova apps which have unreliable\n // navigator.onLine behavior unless cordova-plugin-network-information is\n // installed which overwrites the native navigator.onLine value and\n // defines navigator.connection.\n (_isHttpOrHttps() || isBrowserExtension() || 'connection' in navigator)\n ) {\n return navigator.onLine;\n }\n // If we can't determine the state, assume it is online.\n return true;\n}\n\nexport function _getUserLanguage(): string | null {\n if (typeof navigator === 'undefined') {\n return null;\n }\n const navigatorLanguage: NavigatorLanguage = navigator;\n return (\n // Most reliable, but only supported in Chrome/Firefox.\n (navigatorLanguage.languages && navigatorLanguage.languages[0]) ||\n // Supported in most browsers, but returns the language of the browser\n // UI, not the language set in browser settings.\n navigatorLanguage.language ||\n // Couldn't determine language.\n null\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigInternal } from '../../model/auth';\nimport { debugAssert } from './assert';\n\nexport function _emulatorUrl(config: ConfigInternal, path?: string): string {\n debugAssert(config.emulator, 'Emulator should always be set here');\n const { url } = config.emulator;\n\n if (!path) {\n return url;\n }\n\n return `${url}${path.startsWith('/') ? path.slice(1) : path}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugFail } from './assert';\n\nexport class FetchProvider {\n private static fetchImpl: typeof fetch | null;\n private static headersImpl: typeof Headers | null;\n private static responseImpl: typeof Response | null;\n\n static initialize(\n fetchImpl: typeof fetch,\n headersImpl?: typeof Headers,\n responseImpl?: typeof Response\n ): void {\n this.fetchImpl = fetchImpl;\n if (headersImpl) {\n this.headersImpl = headersImpl;\n }\n if (responseImpl) {\n this.responseImpl = responseImpl;\n }\n }\n\n static fetch(): typeof fetch {\n if (this.fetchImpl) {\n return this.fetchImpl;\n }\n if (typeof self !== 'undefined' && 'fetch' in self) {\n return self.fetch;\n }\n debugFail(\n 'Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static headers(): typeof Headers {\n if (this.headersImpl) {\n return this.headersImpl;\n }\n if (typeof self !== 'undefined' && 'Headers' in self) {\n return self.Headers;\n }\n debugFail(\n 'Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static response(): typeof Response {\n if (this.responseImpl) {\n return this.responseImpl;\n }\n if (typeof self !== 'undefined' && 'Response' in self) {\n return self.Response;\n }\n debugFail(\n 'Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\n\n/**\n * Errors that can be returned by the backend\n */\nexport const enum ServerError {\n ADMIN_ONLY_OPERATION = 'ADMIN_ONLY_OPERATION',\n BLOCKING_FUNCTION_ERROR_RESPONSE = 'BLOCKING_FUNCTION_ERROR_RESPONSE',\n CAPTCHA_CHECK_FAILED = 'CAPTCHA_CHECK_FAILED',\n CORS_UNSUPPORTED = 'CORS_UNSUPPORTED',\n CREDENTIAL_MISMATCH = 'CREDENTIAL_MISMATCH',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'CREDENTIAL_TOO_OLD_LOGIN_AGAIN',\n DYNAMIC_LINK_NOT_ACTIVATED = 'DYNAMIC_LINK_NOT_ACTIVATED',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'EMAIL_CHANGE_NEEDS_VERIFICATION',\n EMAIL_EXISTS = 'EMAIL_EXISTS',\n EMAIL_NOT_FOUND = 'EMAIL_NOT_FOUND',\n EXPIRED_OOB_CODE = 'EXPIRED_OOB_CODE',\n FEDERATED_USER_ID_ALREADY_LINKED = 'FEDERATED_USER_ID_ALREADY_LINKED',\n INVALID_APP_CREDENTIAL = 'INVALID_APP_CREDENTIAL',\n INVALID_APP_ID = 'INVALID_APP_ID',\n INVALID_CERT_HASH = 'INVALID_CERT_HASH',\n INVALID_CODE = 'INVALID_CODE',\n INVALID_CONTINUE_URI = 'INVALID_CONTINUE_URI',\n INVALID_CUSTOM_TOKEN = 'INVALID_CUSTOM_TOKEN',\n INVALID_DYNAMIC_LINK_DOMAIN = 'INVALID_DYNAMIC_LINK_DOMAIN',\n INVALID_EMAIL = 'INVALID_EMAIL',\n INVALID_ID_TOKEN = 'INVALID_ID_TOKEN',\n INVALID_IDP_RESPONSE = 'INVALID_IDP_RESPONSE',\n INVALID_IDENTIFIER = 'INVALID_IDENTIFIER',\n INVALID_MESSAGE_PAYLOAD = 'INVALID_MESSAGE_PAYLOAD',\n INVALID_MFA_PENDING_CREDENTIAL = 'INVALID_MFA_PENDING_CREDENTIAL',\n INVALID_OAUTH_CLIENT_ID = 'INVALID_OAUTH_CLIENT_ID',\n INVALID_OOB_CODE = 'INVALID_OOB_CODE',\n INVALID_PASSWORD = 'INVALID_PASSWORD',\n INVALID_PENDING_TOKEN = 'INVALID_PENDING_TOKEN',\n INVALID_PHONE_NUMBER = 'INVALID_PHONE_NUMBER',\n INVALID_PROVIDER_ID = 'INVALID_PROVIDER_ID',\n INVALID_RECIPIENT_EMAIL = 'INVALID_RECIPIENT_EMAIL',\n INVALID_SENDER = 'INVALID_SENDER',\n INVALID_SESSION_INFO = 'INVALID_SESSION_INFO',\n INVALID_TEMPORARY_PROOF = 'INVALID_TEMPORARY_PROOF',\n INVALID_TENANT_ID = 'INVALID_TENANT_ID',\n MFA_ENROLLMENT_NOT_FOUND = 'MFA_ENROLLMENT_NOT_FOUND',\n MISSING_ANDROID_PACKAGE_NAME = 'MISSING_ANDROID_PACKAGE_NAME',\n MISSING_APP_CREDENTIAL = 'MISSING_APP_CREDENTIAL',\n MISSING_CODE = 'MISSING_CODE',\n MISSING_CONTINUE_URI = 'MISSING_CONTINUE_URI',\n MISSING_CUSTOM_TOKEN = 'MISSING_CUSTOM_TOKEN',\n MISSING_IOS_BUNDLE_ID = 'MISSING_IOS_BUNDLE_ID',\n MISSING_MFA_ENROLLMENT_ID = 'MISSING_MFA_ENROLLMENT_ID',\n MISSING_MFA_PENDING_CREDENTIAL = 'MISSING_MFA_PENDING_CREDENTIAL',\n MISSING_OOB_CODE = 'MISSING_OOB_CODE',\n MISSING_OR_INVALID_NONCE = 'MISSING_OR_INVALID_NONCE',\n MISSING_PASSWORD = 'MISSING_PASSWORD',\n MISSING_REQ_TYPE = 'MISSING_REQ_TYPE',\n MISSING_PHONE_NUMBER = 'MISSING_PHONE_NUMBER',\n MISSING_SESSION_INFO = 'MISSING_SESSION_INFO',\n OPERATION_NOT_ALLOWED = 'OPERATION_NOT_ALLOWED',\n PASSWORD_LOGIN_DISABLED = 'PASSWORD_LOGIN_DISABLED',\n QUOTA_EXCEEDED = 'QUOTA_EXCEEDED',\n RESET_PASSWORD_EXCEED_LIMIT = 'RESET_PASSWORD_EXCEED_LIMIT',\n REJECTED_CREDENTIAL = 'REJECTED_CREDENTIAL',\n SECOND_FACTOR_EXISTS = 'SECOND_FACTOR_EXISTS',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'SECOND_FACTOR_LIMIT_EXCEEDED',\n SESSION_EXPIRED = 'SESSION_EXPIRED',\n TENANT_ID_MISMATCH = 'TENANT_ID_MISMATCH',\n TOKEN_EXPIRED = 'TOKEN_EXPIRED',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'TOO_MANY_ATTEMPTS_TRY_LATER',\n UNSUPPORTED_FIRST_FACTOR = 'UNSUPPORTED_FIRST_FACTOR',\n UNSUPPORTED_TENANT_OPERATION = 'UNSUPPORTED_TENANT_OPERATION',\n UNAUTHORIZED_DOMAIN = 'UNAUTHORIZED_DOMAIN',\n UNVERIFIED_EMAIL = 'UNVERIFIED_EMAIL',\n USER_CANCELLED = 'USER_CANCELLED',\n USER_DISABLED = 'USER_DISABLED',\n USER_NOT_FOUND = 'USER_NOT_FOUND',\n WEAK_PASSWORD = 'WEAK_PASSWORD',\n RECAPTCHA_NOT_ENABLED = 'RECAPTCHA_NOT_ENABLED',\n MISSING_RECAPTCHA_TOKEN = 'MISSING_RECAPTCHA_TOKEN',\n INVALID_RECAPTCHA_TOKEN = 'INVALID_RECAPTCHA_TOKEN',\n INVALID_RECAPTCHA_ACTION = 'INVALID_RECAPTCHA_ACTION',\n MISSING_CLIENT_TYPE = 'MISSING_CLIENT_TYPE',\n MISSING_RECAPTCHA_VERSION = 'MISSING_RECAPTCHA_VERSION',\n INVALID_RECAPTCHA_VERSION = 'INVALID_RECAPTCHA_VERSION',\n INVALID_REQ_TYPE = 'INVALID_REQ_TYPE'\n}\n\n/**\n * API Response in the event of an error\n */\nexport interface JsonError {\n error: {\n code: number;\n message: string;\n errors?: [\n {\n message: ServerError;\n domain: string;\n reason: string;\n }\n ];\n };\n}\n\n/**\n * Type definition for a map from server errors to developer visible errors\n */\nexport declare type ServerErrorMap = {\n readonly [K in ApiError]: AuthErrorCode;\n};\n\n/**\n * Map from errors returned by the server to errors to developer visible errors\n */\nexport const SERVER_ERROR_MAP: Partial> = {\n // Custom token errors.\n [ServerError.CREDENTIAL_MISMATCH]: AuthErrorCode.CREDENTIAL_MISMATCH,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CUSTOM_TOKEN]: AuthErrorCode.INTERNAL_ERROR,\n\n // Create Auth URI errors.\n [ServerError.INVALID_IDENTIFIER]: AuthErrorCode.INVALID_EMAIL,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CONTINUE_URI]: AuthErrorCode.INTERNAL_ERROR,\n\n // Sign in with email and password errors (some apply to sign up too).\n [ServerError.INVALID_PASSWORD]: AuthErrorCode.INVALID_PASSWORD,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_PASSWORD]: AuthErrorCode.MISSING_PASSWORD,\n\n // Sign up with email and password errors.\n [ServerError.EMAIL_EXISTS]: AuthErrorCode.EMAIL_EXISTS,\n [ServerError.PASSWORD_LOGIN_DISABLED]: AuthErrorCode.OPERATION_NOT_ALLOWED,\n\n // Verify assertion for sign in with credential errors:\n [ServerError.INVALID_IDP_RESPONSE]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.INVALID_PENDING_TOKEN]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.FEDERATED_USER_ID_ALREADY_LINKED]:\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_REQ_TYPE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Send Password reset email errors:\n [ServerError.EMAIL_NOT_FOUND]: AuthErrorCode.USER_DELETED,\n [ServerError.RESET_PASSWORD_EXCEED_LIMIT]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n [ServerError.EXPIRED_OOB_CODE]: AuthErrorCode.EXPIRED_OOB_CODE,\n [ServerError.INVALID_OOB_CODE]: AuthErrorCode.INVALID_OOB_CODE,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_OOB_CODE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Operations that require ID token in request:\n [ServerError.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN,\n [ServerError.INVALID_ID_TOKEN]: AuthErrorCode.INVALID_AUTH,\n [ServerError.TOKEN_EXPIRED]: AuthErrorCode.TOKEN_EXPIRED,\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.TOKEN_EXPIRED,\n\n // Other errors.\n [ServerError.TOO_MANY_ATTEMPTS_TRY_LATER]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n // Phone Auth related errors.\n [ServerError.INVALID_CODE]: AuthErrorCode.INVALID_CODE,\n [ServerError.INVALID_SESSION_INFO]: AuthErrorCode.INVALID_SESSION_INFO,\n [ServerError.INVALID_TEMPORARY_PROOF]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.MISSING_SESSION_INFO]: AuthErrorCode.MISSING_SESSION_INFO,\n [ServerError.SESSION_EXPIRED]: AuthErrorCode.CODE_EXPIRED,\n\n // Other action code errors when additional settings passed.\n // MISSING_CONTINUE_URI is getting mapped to INTERNAL_ERROR above.\n // This is OK as this error will be caught by client side validation.\n [ServerError.MISSING_ANDROID_PACKAGE_NAME]:\n AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME,\n [ServerError.UNAUTHORIZED_DOMAIN]: AuthErrorCode.UNAUTHORIZED_DOMAIN,\n\n // getProjectConfig errors when clientId is passed.\n [ServerError.INVALID_OAUTH_CLIENT_ID]: AuthErrorCode.INVALID_OAUTH_CLIENT_ID,\n\n // User actions (sign-up or deletion) disabled errors.\n [ServerError.ADMIN_ONLY_OPERATION]: AuthErrorCode.ADMIN_ONLY_OPERATION,\n\n // Multi factor related errors.\n [ServerError.INVALID_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.INVALID_MFA_SESSION,\n [ServerError.MFA_ENROLLMENT_NOT_FOUND]: AuthErrorCode.MFA_INFO_NOT_FOUND,\n [ServerError.MISSING_MFA_ENROLLMENT_ID]: AuthErrorCode.MISSING_MFA_INFO,\n [ServerError.MISSING_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.MISSING_MFA_SESSION,\n [ServerError.SECOND_FACTOR_EXISTS]:\n AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED,\n [ServerError.SECOND_FACTOR_LIMIT_EXCEEDED]:\n AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED,\n\n // Blocking functions related errors.\n [ServerError.BLOCKING_FUNCTION_ERROR_RESPONSE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Recaptcha related errors.\n [ServerError.RECAPTCHA_NOT_ENABLED]: AuthErrorCode.RECAPTCHA_NOT_ENABLED,\n [ServerError.MISSING_RECAPTCHA_TOKEN]: AuthErrorCode.MISSING_RECAPTCHA_TOKEN,\n [ServerError.INVALID_RECAPTCHA_TOKEN]: AuthErrorCode.INVALID_RECAPTCHA_TOKEN,\n [ServerError.INVALID_RECAPTCHA_ACTION]:\n AuthErrorCode.INVALID_RECAPTCHA_ACTION,\n [ServerError.MISSING_CLIENT_TYPE]: AuthErrorCode.MISSING_CLIENT_TYPE,\n [ServerError.MISSING_RECAPTCHA_VERSION]:\n AuthErrorCode.MISSING_RECAPTCHA_VERSION,\n [ServerError.INVALID_RECAPTCHA_VERSION]:\n AuthErrorCode.INVALID_RECAPTCHA_VERSION,\n [ServerError.INVALID_REQ_TYPE]: AuthErrorCode.INVALID_REQ_TYPE\n};\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError, querystring } from '@firebase/util';\n\nimport { AuthErrorCode, NamedErrorParams } from '../core/errors';\nimport {\n _createError,\n _errorWithCustomMessage,\n _fail\n} from '../core/util/assert';\nimport { Delay } from '../core/util/delay';\nimport { _emulatorUrl } from '../core/util/emulator';\nimport { FetchProvider } from '../core/util/fetch_provider';\nimport { Auth } from '../model/public_types';\nimport { AuthInternal, ConfigInternal } from '../model/auth';\nimport { IdTokenResponse, TaggedWithTokenResponse } from '../model/id_token';\nimport { IdTokenMfaResponse } from './authentication/mfa';\nimport { SERVER_ERROR_MAP, ServerError, ServerErrorMap } from './errors';\n\nexport const enum HttpMethod {\n POST = 'POST',\n GET = 'GET'\n}\n\nexport const enum HttpHeader {\n CONTENT_TYPE = 'Content-Type',\n X_FIREBASE_LOCALE = 'X-Firebase-Locale',\n X_CLIENT_VERSION = 'X-Client-Version',\n X_FIREBASE_GMPID = 'X-Firebase-gmpid',\n X_FIREBASE_CLIENT = 'X-Firebase-Client',\n X_FIREBASE_APP_CHECK = 'X-Firebase-AppCheck'\n}\n\nexport const enum Endpoint {\n CREATE_AUTH_URI = '/v1/accounts:createAuthUri',\n DELETE_ACCOUNT = '/v1/accounts:delete',\n RESET_PASSWORD = '/v1/accounts:resetPassword',\n SIGN_UP = '/v1/accounts:signUp',\n SIGN_IN_WITH_CUSTOM_TOKEN = '/v1/accounts:signInWithCustomToken',\n SIGN_IN_WITH_EMAIL_LINK = '/v1/accounts:signInWithEmailLink',\n SIGN_IN_WITH_IDP = '/v1/accounts:signInWithIdp',\n SIGN_IN_WITH_PASSWORD = '/v1/accounts:signInWithPassword',\n SIGN_IN_WITH_PHONE_NUMBER = '/v1/accounts:signInWithPhoneNumber',\n SEND_VERIFICATION_CODE = '/v1/accounts:sendVerificationCode',\n SEND_OOB_CODE = '/v1/accounts:sendOobCode',\n SET_ACCOUNT_INFO = '/v1/accounts:update',\n GET_ACCOUNT_INFO = '/v1/accounts:lookup',\n GET_RECAPTCHA_PARAM = '/v1/recaptchaParams',\n START_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:start',\n FINALIZE_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:finalize',\n START_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:start',\n FINALIZE_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:finalize',\n WITHDRAW_MFA = '/v2/accounts/mfaEnrollment:withdraw',\n GET_PROJECT_CONFIG = '/v1/projects',\n GET_RECAPTCHA_CONFIG = '/v2/recaptchaConfig'\n}\n\nexport const enum RecaptchaClientType {\n WEB = 'CLIENT_TYPE_WEB',\n ANDROID = 'CLIENT_TYPE_ANDROID',\n IOS = 'CLIENT_TYPE_IOS'\n}\n\nexport const enum RecaptchaVersion {\n ENTERPRISE = 'RECAPTCHA_ENTERPRISE'\n}\n\nexport const enum RecaptchaActionName {\n SIGN_IN_WITH_PASSWORD = 'signInWithPassword',\n GET_OOB_CODE = 'getOobCode',\n SIGN_UP_PASSWORD = 'signUpPassword'\n}\n\nexport const DEFAULT_API_TIMEOUT_MS = new Delay(30_000, 60_000);\n\nexport function _addTidIfNecessary(\n auth: Auth,\n request: T\n): T {\n if (auth.tenantId && !request.tenantId) {\n return {\n ...request,\n tenantId: auth.tenantId\n };\n }\n return request;\n}\n\nexport async function _performApiRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n return _performFetchWithErrorHandling(auth, customErrorMap, async () => {\n let body = {};\n let params = {};\n if (request) {\n if (method === HttpMethod.GET) {\n params = request;\n } else {\n body = {\n body: JSON.stringify(request)\n };\n }\n }\n\n const query = querystring({\n key: auth.config.apiKey,\n ...params\n }).slice(1);\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/json';\n\n if (auth.languageCode) {\n headers[HttpHeader.X_FIREBASE_LOCALE] = auth.languageCode;\n }\n\n return FetchProvider.fetch()(\n _getFinalTarget(auth, auth.config.apiHost, path, query),\n {\n method,\n headers,\n referrerPolicy: 'no-referrer',\n ...body\n }\n );\n });\n}\n\nexport async function _performFetchWithErrorHandling(\n auth: Auth,\n customErrorMap: Partial>,\n fetchFn: () => Promise\n): Promise {\n (auth as AuthInternal)._canInitEmulator = false;\n const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };\n try {\n const networkTimeout = new NetworkTimeout(auth);\n const response: Response = await Promise.race>([\n fetchFn(),\n networkTimeout.promise\n ]);\n\n // If we've reached this point, the fetch succeeded and the networkTimeout\n // didn't throw; clear the network timeout delay so that Node won't hang\n networkTimeout.clearNetworkTimeout();\n\n const json = await response.json();\n if ('needConfirmation' in json) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, json);\n }\n\n if (response.ok && !('errorMessage' in json)) {\n return json;\n } else {\n const errorMessage = response.ok ? json.errorMessage : json.error.message;\n const [serverErrorCode, serverErrorMessage] = errorMessage.split(' : ');\n if (serverErrorCode === ServerError.FEDERATED_USER_ID_ALREADY_LINKED) {\n throw _makeTaggedError(\n auth,\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n json\n );\n } else if (serverErrorCode === ServerError.EMAIL_EXISTS) {\n throw _makeTaggedError(auth, AuthErrorCode.EMAIL_EXISTS, json);\n } else if (serverErrorCode === ServerError.USER_DISABLED) {\n throw _makeTaggedError(auth, AuthErrorCode.USER_DISABLED, json);\n }\n const authError =\n errorMap[serverErrorCode as ServerError] ||\n (serverErrorCode\n .toLowerCase()\n .replace(/[_\\s]+/g, '-') as unknown as AuthErrorCode);\n if (serverErrorMessage) {\n throw _errorWithCustomMessage(auth, authError, serverErrorMessage);\n } else {\n _fail(auth, authError);\n }\n }\n } catch (e) {\n if (e instanceof FirebaseError) {\n throw e;\n }\n // Changing this to a different error code will log user out when there is a network error\n // because we treat any error other than NETWORK_REQUEST_FAILED as token is invalid.\n // https://github.com/firebase/firebase-js-sdk/blob/4fbc73610d70be4e0852e7de63a39cb7897e8546/packages/auth/src/core/auth/auth_impl.ts#L309-L316\n _fail(auth, AuthErrorCode.NETWORK_REQUEST_FAILED, { 'message': String(e) });\n }\n}\n\nexport async function _performSignInRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n const serverResponse = (await _performApiRequest(\n auth,\n method,\n path,\n request,\n customErrorMap\n )) as V;\n if ('mfaPendingCredential' in serverResponse) {\n _fail(auth, AuthErrorCode.MFA_REQUIRED, {\n _serverResponse: serverResponse\n });\n }\n\n return serverResponse;\n}\n\nexport function _getFinalTarget(\n auth: Auth,\n host: string,\n path: string,\n query: string\n): string {\n const base = `${host}${path}?${query}`;\n\n if (!(auth as AuthInternal).config.emulator) {\n return `${auth.config.apiScheme}://${base}`;\n }\n\n return _emulatorUrl(auth.config as ConfigInternal, base);\n}\n\nclass NetworkTimeout {\n // Node timers and browser timers are fundamentally incompatible, but we\n // don't care about the value here\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timer: any | null = null;\n readonly promise = new Promise((_, reject) => {\n this.timer = setTimeout(() => {\n return reject(\n _createError(this.auth, AuthErrorCode.NETWORK_REQUEST_FAILED)\n );\n }, DEFAULT_API_TIMEOUT_MS.get());\n });\n\n clearNetworkTimeout(): void {\n clearTimeout(this.timer);\n }\n\n constructor(private readonly auth: Auth) {}\n}\n\ninterface PotentialResponse extends IdTokenResponse {\n email?: string;\n phoneNumber?: string;\n}\n\nexport function _makeTaggedError(\n auth: Auth,\n code: AuthErrorCode,\n response: PotentialResponse\n): FirebaseError {\n const errorParams: NamedErrorParams = {\n appName: auth.name\n };\n\n if (response.email) {\n errorParams.email = response.email;\n }\n if (response.phoneNumber) {\n errorParams.phoneNumber = response.phoneNumber;\n }\n\n const error = _createError(auth, code, errorParams);\n\n // We know customData is defined on error because errorParams is defined\n (error.customData! as TaggedWithTokenResponse)._tokenResponse = response;\n return error;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function utcTimestampToDateString(\n utcTimestamp?: string | number\n): string | undefined {\n if (!utcTimestamp) {\n return undefined;\n }\n try {\n // Convert to date object.\n const date = new Date(Number(utcTimestamp));\n // Test date is valid.\n if (!isNaN(date.getTime())) {\n // Convert to UTC date string.\n return date.toUTCString();\n }\n } catch (e) {\n // Do nothing. undefined will be returned.\n }\n return undefined;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult, ParsedToken, User } from '../../model/public_types';\nimport { base64Decode, getModularInstance } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { _logError } from '../util/log';\nimport { utcTimestampToDateString } from '../util/time';\nimport { AuthErrorCode } from '../errors';\n\n/**\n * Returns a JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport function getIdToken(user: User, forceRefresh = false): Promise {\n return getModularInstance(user).getIdToken(forceRefresh);\n}\n\n/**\n * Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport async function getIdTokenResult(\n user: User,\n forceRefresh = false\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const token = await userInternal.getIdToken(forceRefresh);\n const claims = _parseToken(token);\n\n _assert(\n claims && claims.exp && claims.auth_time && claims.iat,\n userInternal.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const firebase =\n typeof claims.firebase === 'object' ? claims.firebase : undefined;\n\n const signInProvider: string | undefined = firebase?.['sign_in_provider'];\n\n return {\n claims,\n token,\n authTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.auth_time)\n )!,\n issuedAtTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.iat)\n )!,\n expirationTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.exp)\n )!,\n signInProvider: signInProvider || null,\n signInSecondFactor: firebase?.['sign_in_second_factor'] || null\n };\n}\n\nfunction secondsStringToMilliseconds(seconds: string): number {\n return Number(seconds) * 1000;\n}\n\nexport function _parseToken(token: string): ParsedToken | null {\n const [algorithm, payload, signature] = token.split('.');\n if (\n algorithm === undefined ||\n payload === undefined ||\n signature === undefined\n ) {\n _logError('JWT malformed, contained fewer than 3 sections');\n return null;\n }\n\n try {\n const decoded = base64Decode(payload);\n if (!decoded) {\n _logError('Failed to decode base64 JWT payload');\n return null;\n }\n return JSON.parse(decoded);\n } catch (e) {\n _logError(\n 'Caught error parsing JWT payload as JSON',\n (e as Error)?.toString()\n );\n return null;\n }\n}\n\n/**\n * Extract expiresIn TTL from a token by subtracting the expiration from the issuance.\n */\nexport function _tokenExpiresIn(token: string): number {\n const parsedToken = _parseToken(token);\n _assert(parsedToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.exp !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.iat !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n return Number(parsedToken.exp) - Number(parsedToken.iat);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\nexport async function _logoutIfInvalidated(\n user: UserInternal,\n promise: Promise,\n bypassAuthState = false\n): Promise {\n if (bypassAuthState) {\n return promise;\n }\n try {\n return await promise;\n } catch (e) {\n if (e instanceof FirebaseError && isUserInvalidated(e)) {\n if (user.auth.currentUser === user) {\n await user.auth.signOut();\n }\n }\n\n throw e;\n }\n}\n\nfunction isUserInvalidated({ code }: FirebaseError): boolean {\n return (\n code === `auth/${AuthErrorCode.USER_DISABLED}` ||\n code === `auth/${AuthErrorCode.TOKEN_EXPIRED}`\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\n// Refresh the token five minutes before expiration\nexport const enum Duration {\n OFFSET = 5 * 1000 * 60,\n RETRY_BACKOFF_MIN = 30 * 1000,\n RETRY_BACKOFF_MAX = 16 * 60 * 1000\n}\n\nexport class ProactiveRefresh {\n private isRunning = false;\n\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timerId: any | null = null;\n private errorBackoff = Duration.RETRY_BACKOFF_MIN;\n\n constructor(private readonly user: UserInternal) {}\n\n _start(): void {\n if (this.isRunning) {\n return;\n }\n\n this.isRunning = true;\n this.schedule();\n }\n\n _stop(): void {\n if (!this.isRunning) {\n return;\n }\n\n this.isRunning = false;\n if (this.timerId !== null) {\n clearTimeout(this.timerId);\n }\n }\n\n private getInterval(wasError: boolean): number {\n if (wasError) {\n const interval = this.errorBackoff;\n this.errorBackoff = Math.min(\n this.errorBackoff * 2,\n Duration.RETRY_BACKOFF_MAX\n );\n return interval;\n } else {\n // Reset the error backoff\n this.errorBackoff = Duration.RETRY_BACKOFF_MIN;\n const expTime = this.user.stsTokenManager.expirationTime ?? 0;\n const interval = expTime - Date.now() - Duration.OFFSET;\n\n return Math.max(0, interval);\n }\n }\n\n private schedule(wasError = false): void {\n if (!this.isRunning) {\n // Just in case...\n return;\n }\n\n const interval = this.getInterval(wasError);\n this.timerId = setTimeout(async () => {\n await this.iteration();\n }, interval);\n }\n\n private async iteration(): Promise {\n try {\n await this.user.getIdToken(true);\n } catch (e) {\n // Only retry on network errors\n if (\n (e as FirebaseError)?.code ===\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n this.schedule(/* wasError */ true);\n }\n\n return;\n }\n this.schedule();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserMetadata as UserMetadataType } from '../../model/public_types';\n\nimport { utcTimestampToDateString } from '../util/time';\n\nexport class UserMetadata implements UserMetadataType {\n creationTime?: string;\n lastSignInTime?: string;\n\n constructor(\n private createdAt?: string | number,\n private lastLoginAt?: string | number\n ) {\n this._initializeTime();\n }\n\n private _initializeTime(): void {\n this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt);\n this.creationTime = utcTimestampToDateString(this.createdAt);\n }\n\n _copy(metadata: UserMetadata): void {\n this.createdAt = metadata.createdAt;\n this.lastLoginAt = metadata.lastLoginAt;\n this._initializeTime();\n }\n\n toJSON(): object {\n return {\n createdAt: this.createdAt,\n lastLoginAt: this.lastLoginAt\n };\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User, UserInfo } from '../../model/public_types';\n\nimport {\n getAccountInfo,\n ProviderUserInfo\n} from '../../api/account_management/account';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserMetadata } from './user_metadata';\nimport { getModularInstance } from '@firebase/util';\n\nexport async function _reloadWithoutSaving(user: UserInternal): Promise {\n const auth = user.auth;\n const idToken = await user.getIdToken();\n const response = await _logoutIfInvalidated(\n user,\n getAccountInfo(auth, { idToken })\n );\n\n _assert(response?.users.length, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const coreAccount = response.users[0];\n\n user._notifyReloadListener(coreAccount);\n\n const newProviderData = coreAccount.providerUserInfo?.length\n ? extractProviderData(coreAccount.providerUserInfo)\n : [];\n\n const providerData = mergeProviderData(user.providerData, newProviderData);\n\n // Preserves the non-nonymous status of the stored user, even if no more\n // credentials (federated or email/password) are linked to the user. If\n // the user was previously anonymous, then use provider data to update.\n // On the other hand, if it was not anonymous before, it should never be\n // considered anonymous now.\n const oldIsAnonymous = user.isAnonymous;\n const newIsAnonymous =\n !(user.email && coreAccount.passwordHash) && !providerData?.length;\n const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;\n\n const updates: Partial = {\n uid: coreAccount.localId,\n displayName: coreAccount.displayName || null,\n photoURL: coreAccount.photoUrl || null,\n email: coreAccount.email || null,\n emailVerified: coreAccount.emailVerified || false,\n phoneNumber: coreAccount.phoneNumber || null,\n tenantId: coreAccount.tenantId || null,\n providerData,\n metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),\n isAnonymous\n };\n\n Object.assign(user, updates);\n}\n\n/**\n * Reloads user account data, if signed in.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function reload(user: User): Promise {\n const userInternal: UserInternal = getModularInstance(user) as UserInternal;\n await _reloadWithoutSaving(userInternal);\n\n // Even though the current user hasn't changed, update\n // current user will trigger a persistence update w/ the\n // new info.\n await userInternal.auth._persistUserIfCurrent(userInternal);\n userInternal.auth._notifyListenersIfCurrent(userInternal);\n}\n\nfunction mergeProviderData(\n original: UserInfo[],\n newData: UserInfo[]\n): UserInfo[] {\n const deduped = original.filter(\n o => !newData.some(n => n.providerId === o.providerId)\n );\n return [...deduped, ...newData];\n}\n\nfunction extractProviderData(providers: ProviderUserInfo[]): UserInfo[] {\n return providers.map(({ providerId, ...provider }) => {\n return {\n providerId,\n uid: provider.rawId || '',\n displayName: provider.displayName || null,\n email: provider.email || null,\n phoneNumber: provider.phoneNumber || null,\n photoURL: provider.photoUrl || null\n };\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { MfaEnrollment } from './mfa';\nimport { Auth } from '../../model/public_types';\n\nexport interface DeleteAccountRequest {\n idToken: string;\n}\n\nexport async function deleteAccount(\n auth: Auth,\n request: DeleteAccountRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.DELETE_ACCOUNT,\n request\n );\n}\n\nexport interface ProviderUserInfo {\n providerId: string;\n rawId?: string;\n email?: string;\n displayName?: string;\n photoUrl?: string;\n phoneNumber?: string;\n}\n\nexport interface DeleteLinkedAccountsRequest {\n idToken: string;\n deleteProvider: string[];\n}\n\nexport interface DeleteLinkedAccountsResponse {\n providerUserInfo: ProviderUserInfo[];\n}\n\nexport async function deleteLinkedAccounts(\n auth: Auth,\n request: DeleteLinkedAccountsRequest\n): Promise {\n return _performApiRequest<\n DeleteLinkedAccountsRequest,\n DeleteLinkedAccountsResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface APIUserInfo {\n localId?: string;\n displayName?: string;\n photoUrl?: string;\n email?: string;\n emailVerified?: boolean;\n phoneNumber?: string;\n lastLoginAt?: number;\n createdAt?: number;\n tenantId?: string;\n passwordHash?: string;\n providerUserInfo?: ProviderUserInfo[];\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface GetAccountInfoRequest {\n idToken: string;\n}\n\nexport interface GetAccountInfoResponse {\n users: APIUserInfo[];\n}\n\nexport async function getAccountInfo(\n auth: Auth,\n request: GetAccountInfoRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.GET_ACCOUNT_INFO,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { requestStsToken } from '../../api/authentication/token';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert, debugFail } from '../util/assert';\nimport { _tokenExpiresIn } from './id_token_result';\n\n/**\n * The number of milliseconds before the official expiration time of a token\n * to refresh that token, to provide a buffer for RPCs to complete.\n */\nexport const enum Buffer {\n TOKEN_REFRESH = 30_000\n}\n\n/**\n * We need to mark this class as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport class StsTokenManager {\n refreshToken: string | null = null;\n accessToken: string | null = null;\n expirationTime: number | null = null;\n\n get isExpired(): boolean {\n return (\n !this.expirationTime ||\n Date.now() > this.expirationTime - Buffer.TOKEN_REFRESH\n );\n }\n\n updateFromServerResponse(\n response: IdTokenResponse | FinalizeMfaResponse\n ): void {\n _assert(response.idToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(\n typeof response.idToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof response.refreshToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n const expiresIn =\n 'expiresIn' in response && typeof response.expiresIn !== 'undefined'\n ? Number(response.expiresIn)\n : _tokenExpiresIn(response.idToken);\n this.updateTokensAndExpiration(\n response.idToken,\n response.refreshToken,\n expiresIn\n );\n }\n\n async getToken(\n auth: AuthInternal,\n forceRefresh = false\n ): Promise {\n _assert(\n !this.accessToken || this.refreshToken,\n auth,\n AuthErrorCode.TOKEN_EXPIRED\n );\n\n if (!forceRefresh && this.accessToken && !this.isExpired) {\n return this.accessToken;\n }\n\n if (this.refreshToken) {\n await this.refresh(auth, this.refreshToken!);\n return this.accessToken;\n }\n\n return null;\n }\n\n clearRefreshToken(): void {\n this.refreshToken = null;\n }\n\n private async refresh(auth: AuthInternal, oldToken: string): Promise {\n const { accessToken, refreshToken, expiresIn } = await requestStsToken(\n auth,\n oldToken\n );\n this.updateTokensAndExpiration(\n accessToken,\n refreshToken,\n Number(expiresIn)\n );\n }\n\n private updateTokensAndExpiration(\n accessToken: string,\n refreshToken: string,\n expiresInSec: number\n ): void {\n this.refreshToken = refreshToken || null;\n this.accessToken = accessToken || null;\n this.expirationTime = Date.now() + expiresInSec * 1000;\n }\n\n static fromJSON(appName: string, object: PersistedBlob): StsTokenManager {\n const { refreshToken, accessToken, expirationTime } = object;\n\n const manager = new StsTokenManager();\n if (refreshToken) {\n _assert(typeof refreshToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.refreshToken = refreshToken;\n }\n if (accessToken) {\n _assert(typeof accessToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.accessToken = accessToken;\n }\n if (expirationTime) {\n _assert(\n typeof expirationTime === 'number',\n AuthErrorCode.INTERNAL_ERROR,\n {\n appName\n }\n );\n manager.expirationTime = expirationTime;\n }\n return manager;\n }\n\n toJSON(): object {\n return {\n refreshToken: this.refreshToken,\n accessToken: this.accessToken,\n expirationTime: this.expirationTime\n };\n }\n\n _assign(stsTokenManager: StsTokenManager): void {\n this.accessToken = stsTokenManager.accessToken;\n this.refreshToken = stsTokenManager.refreshToken;\n this.expirationTime = stsTokenManager.expirationTime;\n }\n\n _clone(): StsTokenManager {\n return Object.assign(new StsTokenManager(), this.toJSON());\n }\n\n _performRefresh(): never {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable camelcase */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n _getFinalTarget,\n _performFetchWithErrorHandling,\n HttpMethod,\n HttpHeader\n} from '../index';\nimport { FetchProvider } from '../../core/util/fetch_provider';\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\n\nexport const enum Endpoint {\n TOKEN = '/v1/token'\n}\n\n/** The server responses with snake_case; we convert to camelCase */\ninterface RequestStsTokenServerResponse {\n access_token: string;\n expires_in: string;\n refresh_token: string;\n}\n\nexport interface RequestStsTokenResponse {\n accessToken: string;\n expiresIn: string;\n refreshToken: string;\n}\n\nexport async function requestStsToken(\n auth: Auth,\n refreshToken: string\n): Promise {\n const response =\n await _performFetchWithErrorHandling(\n auth,\n {},\n async () => {\n const body = querystring({\n 'grant_type': 'refresh_token',\n 'refresh_token': refreshToken\n }).slice(1);\n const { tokenApiHost, apiKey } = auth.config;\n const url = _getFinalTarget(\n auth,\n tokenApiHost,\n Endpoint.TOKEN,\n `key=${apiKey}`\n );\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/x-www-form-urlencoded';\n\n return FetchProvider.fetch()(url, {\n method: HttpMethod.POST,\n headers,\n body\n });\n }\n );\n\n // The response comes back in snake_case. Convert to camel:\n return {\n accessToken: response.access_token,\n expiresIn: response.expires_in,\n refreshToken: response.refresh_token\n };\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult } from '../../model/public_types';\nimport { NextFn } from '@firebase/util';\n\nimport {\n APIUserInfo,\n deleteAccount\n} from '../../api/account_management/account';\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport {\n MutableUserInfo,\n UserInternal,\n UserParameters\n} from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert } from '../util/assert';\nimport { getIdTokenResult } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { ProactiveRefresh } from './proactive_refresh';\nimport { _reloadWithoutSaving, reload } from './reload';\nimport { StsTokenManager } from './token_manager';\nimport { UserMetadata } from './user_metadata';\nimport { ProviderId } from '../../model/enums';\n\nfunction assertStringOrUndefined(\n assertion: unknown,\n appName: string\n): asserts assertion is string | undefined {\n _assert(\n typeof assertion === 'string' || typeof assertion === 'undefined',\n AuthErrorCode.INTERNAL_ERROR,\n { appName }\n );\n}\n\nexport class UserImpl implements UserInternal {\n // For the user object, provider is always Firebase.\n readonly providerId = ProviderId.FIREBASE;\n stsTokenManager: StsTokenManager;\n // Last known accessToken so we know when it changes\n private accessToken: string | null;\n\n uid: string;\n auth: AuthInternal;\n emailVerified: boolean;\n isAnonymous: boolean;\n tenantId: string | null;\n readonly metadata: UserMetadata;\n providerData: MutableUserInfo[];\n\n // Optional fields from UserInfo\n displayName: string | null;\n email: string | null;\n phoneNumber: string | null;\n photoURL: string | null;\n\n _redirectEventId?: string;\n private readonly proactiveRefresh = new ProactiveRefresh(this);\n\n constructor({ uid, auth, stsTokenManager, ...opt }: UserParameters) {\n this.uid = uid;\n this.auth = auth;\n this.stsTokenManager = stsTokenManager;\n this.accessToken = stsTokenManager.accessToken;\n this.displayName = opt.displayName || null;\n this.email = opt.email || null;\n this.emailVerified = opt.emailVerified || false;\n this.phoneNumber = opt.phoneNumber || null;\n this.photoURL = opt.photoURL || null;\n this.isAnonymous = opt.isAnonymous || false;\n this.tenantId = opt.tenantId || null;\n this.providerData = opt.providerData ? [...opt.providerData] : [];\n this.metadata = new UserMetadata(\n opt.createdAt || undefined,\n opt.lastLoginAt || undefined\n );\n }\n\n async getIdToken(forceRefresh?: boolean): Promise {\n const accessToken = await _logoutIfInvalidated(\n this,\n this.stsTokenManager.getToken(this.auth, forceRefresh)\n );\n _assert(accessToken, this.auth, AuthErrorCode.INTERNAL_ERROR);\n\n if (this.accessToken !== accessToken) {\n this.accessToken = accessToken;\n await this.auth._persistUserIfCurrent(this);\n this.auth._notifyListenersIfCurrent(this);\n }\n\n return accessToken;\n }\n\n getIdTokenResult(forceRefresh?: boolean): Promise {\n return getIdTokenResult(this, forceRefresh);\n }\n\n reload(): Promise {\n return reload(this);\n }\n\n private reloadUserInfo: APIUserInfo | null = null;\n private reloadListener: NextFn | null = null;\n\n _assign(user: UserInternal): void {\n if (this === user) {\n return;\n }\n _assert(this.uid === user.uid, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.displayName = user.displayName;\n this.photoURL = user.photoURL;\n this.email = user.email;\n this.emailVerified = user.emailVerified;\n this.phoneNumber = user.phoneNumber;\n this.isAnonymous = user.isAnonymous;\n this.tenantId = user.tenantId;\n this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));\n this.metadata._copy(user.metadata);\n this.stsTokenManager._assign(user.stsTokenManager);\n }\n\n _clone(auth: AuthInternal): UserInternal {\n const newUser = new UserImpl({\n ...this,\n auth,\n stsTokenManager: this.stsTokenManager._clone()\n });\n newUser.metadata._copy(this.metadata);\n return newUser;\n }\n\n _onReload(callback: NextFn): void {\n // There should only ever be one listener, and that is a single instance of MultiFactorUser\n _assert(!this.reloadListener, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.reloadListener = callback;\n if (this.reloadUserInfo) {\n this._notifyReloadListener(this.reloadUserInfo);\n this.reloadUserInfo = null;\n }\n }\n\n _notifyReloadListener(userInfo: APIUserInfo): void {\n if (this.reloadListener) {\n this.reloadListener(userInfo);\n } else {\n // If no listener is subscribed yet, save the result so it's available when they do subscribe\n this.reloadUserInfo = userInfo;\n }\n }\n\n _startProactiveRefresh(): void {\n this.proactiveRefresh._start();\n }\n\n _stopProactiveRefresh(): void {\n this.proactiveRefresh._stop();\n }\n\n async _updateTokensIfNecessary(\n response: IdTokenResponse | FinalizeMfaResponse,\n reload = false\n ): Promise {\n let tokensRefreshed = false;\n if (\n response.idToken &&\n response.idToken !== this.stsTokenManager.accessToken\n ) {\n this.stsTokenManager.updateFromServerResponse(response);\n tokensRefreshed = true;\n }\n\n if (reload) {\n await _reloadWithoutSaving(this);\n }\n\n await this.auth._persistUserIfCurrent(this);\n if (tokensRefreshed) {\n this.auth._notifyListenersIfCurrent(this);\n }\n }\n\n async delete(): Promise {\n const idToken = await this.getIdToken();\n await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken }));\n this.stsTokenManager.clearRefreshToken();\n\n // TODO: Determine if cancellable-promises are necessary to use in this class so that delete()\n // cancels pending actions...\n\n return this.auth.signOut();\n }\n\n toJSON(): PersistedBlob {\n return {\n uid: this.uid,\n email: this.email || undefined,\n emailVerified: this.emailVerified,\n displayName: this.displayName || undefined,\n isAnonymous: this.isAnonymous,\n photoURL: this.photoURL || undefined,\n phoneNumber: this.phoneNumber || undefined,\n tenantId: this.tenantId || undefined,\n providerData: this.providerData.map(userInfo => ({ ...userInfo })),\n stsTokenManager: this.stsTokenManager.toJSON(),\n // Redirect event ID must be maintained in case there is a pending\n // redirect event.\n _redirectEventId: this._redirectEventId,\n ...this.metadata.toJSON(),\n\n // Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):\n apiKey: this.auth.config.apiKey,\n appName: this.auth.name\n // Missing authDomain will be tolerated by the legacy SDK.\n // stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).\n };\n }\n\n get refreshToken(): string {\n return this.stsTokenManager.refreshToken || '';\n }\n\n static _fromJSON(auth: AuthInternal, object: PersistedBlob): UserInternal {\n const displayName = object.displayName ?? undefined;\n const email = object.email ?? undefined;\n const phoneNumber = object.phoneNumber ?? undefined;\n const photoURL = object.photoURL ?? undefined;\n const tenantId = object.tenantId ?? undefined;\n const _redirectEventId = object._redirectEventId ?? undefined;\n const createdAt = object.createdAt ?? undefined;\n const lastLoginAt = object.lastLoginAt ?? undefined;\n const {\n uid,\n emailVerified,\n isAnonymous,\n providerData,\n stsTokenManager: plainObjectTokenManager\n } = object;\n\n _assert(uid && plainObjectTokenManager, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const stsTokenManager = StsTokenManager.fromJSON(\n this.name,\n plainObjectTokenManager as PersistedBlob\n );\n\n _assert(typeof uid === 'string', auth, AuthErrorCode.INTERNAL_ERROR);\n assertStringOrUndefined(displayName, auth.name);\n assertStringOrUndefined(email, auth.name);\n _assert(\n typeof emailVerified === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof isAnonymous === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n assertStringOrUndefined(phoneNumber, auth.name);\n assertStringOrUndefined(photoURL, auth.name);\n assertStringOrUndefined(tenantId, auth.name);\n assertStringOrUndefined(_redirectEventId, auth.name);\n assertStringOrUndefined(createdAt, auth.name);\n assertStringOrUndefined(lastLoginAt, auth.name);\n const user = new UserImpl({\n uid,\n auth,\n email,\n emailVerified,\n displayName,\n isAnonymous,\n photoURL,\n phoneNumber,\n tenantId,\n stsTokenManager,\n createdAt,\n lastLoginAt\n });\n\n if (providerData && Array.isArray(providerData)) {\n user.providerData = providerData.map(userInfo => ({ ...userInfo }));\n }\n\n if (_redirectEventId) {\n user._redirectEventId = _redirectEventId;\n }\n\n return user;\n }\n\n /**\n * Initialize a User from an idToken server response\n * @param auth\n * @param idTokenResponse\n */\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const stsTokenManager = new StsTokenManager();\n stsTokenManager.updateFromServerResponse(idTokenResponse);\n\n // Initialize the Firebase Auth user.\n const user = new UserImpl({\n uid: idTokenResponse.localId,\n auth,\n stsTokenManager,\n isAnonymous\n });\n\n // Updates the user info and data and resolves with a user instance.\n await _reloadWithoutSaving(user);\n return user;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugAssert } from './assert';\n\n/**\n * Our API has a lot of one-off constants that are used to do things.\n * Unfortunately we can't export these as classes instantiated directly since\n * the constructor may side effect and therefore can't be proven to be safely\n * culled. Instead, we export these classes themselves as a lowerCamelCase\n * constant, and instantiate them under the hood.\n */\nexport interface SingletonInstantiator {\n new (): T;\n}\n\nconst instanceCache: Map = new Map();\n\nexport function _getInstance(cls: unknown): T {\n debugAssert(cls instanceof Function, 'Expected a class definition');\n let instance = instanceCache.get(cls) as T | undefined;\n\n if (instance) {\n debugAssert(\n instance instanceof cls,\n 'Instance stored in cache mismatched with class'\n );\n return instance;\n }\n\n instance = new (cls as SingletonInstantiator)();\n instanceCache.set(cls, instance);\n return instance;\n}\n\nexport function _clearInstanceMap(): void {\n instanceCache.clear();\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../persistence';\n\nexport class InMemoryPersistence implements PersistenceInternal {\n static type: 'NONE' = 'NONE';\n readonly type = PersistenceType.NONE;\n storage: Record = {};\n\n async _isAvailable(): Promise {\n return true;\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n this.storage[key] = value;\n }\n\n async _get(key: string): Promise {\n const value = this.storage[key];\n return value === undefined ? null : (value as T);\n }\n\n async _remove(key: string): Promise {\n delete this.storage[key];\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type 'NONE'.\n *\n * @public\n */\nexport const inMemoryPersistence: Persistence = InMemoryPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { PersistedBlob, PersistenceInternal } from '../persistence';\nimport { UserImpl } from '../user/user_impl';\nimport { _getInstance } from '../util/instantiator';\nimport { inMemoryPersistence } from './in_memory';\n\nexport const enum KeyName {\n AUTH_USER = 'authUser',\n AUTH_EVENT = 'authEvent',\n REDIRECT_USER = 'redirectUser',\n PERSISTENCE_USER = 'persistence'\n}\nexport const enum Namespace {\n PERSISTENCE = 'firebase'\n}\n\nexport function _persistenceKeyName(\n key: string,\n apiKey: ApiKey,\n appName: AppName\n): string {\n return `${Namespace.PERSISTENCE}:${key}:${apiKey}:${appName}`;\n}\n\nexport class PersistenceUserManager {\n private readonly fullUserKey: string;\n private readonly fullPersistenceKey: string;\n private readonly boundEventHandler: () => void;\n\n private constructor(\n public persistence: PersistenceInternal,\n private readonly auth: AuthInternal,\n private readonly userKey: string\n ) {\n const { config, name } = this.auth;\n this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name);\n this.fullPersistenceKey = _persistenceKeyName(\n KeyName.PERSISTENCE_USER,\n config.apiKey,\n name\n );\n this.boundEventHandler = auth._onStorageEvent.bind(auth);\n this.persistence._addListener(this.fullUserKey, this.boundEventHandler);\n }\n\n setCurrentUser(user: UserInternal): Promise {\n return this.persistence._set(this.fullUserKey, user.toJSON());\n }\n\n async getCurrentUser(): Promise {\n const blob = await this.persistence._get(this.fullUserKey);\n return blob ? UserImpl._fromJSON(this.auth, blob) : null;\n }\n\n removeCurrentUser(): Promise {\n return this.persistence._remove(this.fullUserKey);\n }\n\n savePersistenceForRedirect(): Promise {\n return this.persistence._set(\n this.fullPersistenceKey,\n this.persistence.type\n );\n }\n\n async setPersistence(newPersistence: PersistenceInternal): Promise {\n if (this.persistence === newPersistence) {\n return;\n }\n\n const currentUser = await this.getCurrentUser();\n await this.removeCurrentUser();\n\n this.persistence = newPersistence;\n\n if (currentUser) {\n return this.setCurrentUser(currentUser);\n }\n }\n\n delete(): void {\n this.persistence._removeListener(this.fullUserKey, this.boundEventHandler);\n }\n\n static async create(\n auth: AuthInternal,\n persistenceHierarchy: PersistenceInternal[],\n userKey = KeyName.AUTH_USER\n ): Promise {\n if (!persistenceHierarchy.length) {\n return new PersistenceUserManager(\n _getInstance(inMemoryPersistence),\n auth,\n userKey\n );\n }\n\n // Eliminate any persistences that are not available\n const availablePersistences = (\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (await persistence._isAvailable()) {\n return persistence;\n }\n return undefined;\n })\n )\n ).filter(persistence => persistence) as PersistenceInternal[];\n\n // Fall back to the first persistence listed, or in memory if none available\n let selectedPersistence =\n availablePersistences[0] ||\n _getInstance(inMemoryPersistence);\n\n const key = _persistenceKeyName(userKey, auth.config.apiKey, auth.name);\n\n // Pull out the existing user, setting the chosen persistence to that\n // persistence if the user exists.\n let userToMigrate: UserInternal | null = null;\n // Note, here we check for a user in _all_ persistences, not just the\n // ones deemed available. If we can migrate a user out of a broken\n // persistence, we will (but only if that persistence supports migration).\n for (const persistence of persistenceHierarchy) {\n try {\n const blob = await persistence._get(key);\n if (blob) {\n const user = UserImpl._fromJSON(auth, blob); // throws for unparsable blob (wrong format)\n if (persistence !== selectedPersistence) {\n userToMigrate = user;\n }\n selectedPersistence = persistence;\n break;\n }\n } catch {}\n }\n\n // If we find the user in a persistence that does support migration, use\n // that migration path (of only persistences that support migration)\n const migrationHierarchy = availablePersistences.filter(\n p => p._shouldAllowMigration\n );\n\n // If the persistence does _not_ allow migration, just finish off here\n if (\n !selectedPersistence._shouldAllowMigration ||\n !migrationHierarchy.length\n ) {\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n\n selectedPersistence = migrationHierarchy[0];\n if (userToMigrate) {\n // This normally shouldn't throw since chosenPersistence.isAvailable() is true, but if it does\n // we'll just let it bubble to surface the error.\n await selectedPersistence._set(key, userToMigrate.toJSON());\n }\n\n // Attempt to clear the key in other persistences but ignore errors. This helps prevent issues\n // such as users getting stuck with a previous account after signing out and refreshing the tab.\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (persistence !== selectedPersistence) {\n try {\n await persistence._remove(key);\n } catch {}\n }\n })\n );\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isIE, getUA } from '@firebase/util';\n\ninterface NavigatorStandalone extends Navigator {\n standalone?: unknown;\n}\n\ninterface Document {\n documentMode?: number;\n}\n\n/**\n * Enums for Browser name.\n */\nexport const enum BrowserName {\n ANDROID = 'Android',\n BLACKBERRY = 'Blackberry',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n IE = 'IE',\n IEMOBILE = 'IEMobile',\n OPERA = 'Opera',\n OTHER = 'Other',\n CHROME = 'Chrome',\n SAFARI = 'Safari',\n SILK = 'Silk',\n WEBOS = 'Webos'\n}\n\n/**\n * Determine the browser for the purposes of reporting usage to the API\n */\nexport function _getBrowserName(userAgent: string): BrowserName | string {\n const ua = userAgent.toLowerCase();\n if (ua.includes('opera/') || ua.includes('opr/') || ua.includes('opios/')) {\n return BrowserName.OPERA;\n } else if (_isIEMobile(ua)) {\n // Windows phone IEMobile browser.\n return BrowserName.IEMOBILE;\n } else if (ua.includes('msie') || ua.includes('trident/')) {\n return BrowserName.IE;\n } else if (ua.includes('edge/')) {\n return BrowserName.EDGE;\n } else if (_isFirefox(ua)) {\n return BrowserName.FIREFOX;\n } else if (ua.includes('silk/')) {\n return BrowserName.SILK;\n } else if (_isBlackBerry(ua)) {\n // Blackberry browser.\n return BrowserName.BLACKBERRY;\n } else if (_isWebOS(ua)) {\n // WebOS default browser.\n return BrowserName.WEBOS;\n } else if (_isSafari(ua)) {\n return BrowserName.SAFARI;\n } else if (\n (ua.includes('chrome/') || _isChromeIOS(ua)) &&\n !ua.includes('edge/')\n ) {\n return BrowserName.CHROME;\n } else if (_isAndroid(ua)) {\n // Android stock browser.\n return BrowserName.ANDROID;\n } else {\n // Most modern browsers have name/version at end of user agent string.\n const re = /([a-zA-Z\\d\\.]+)\\/[a-zA-Z\\d\\.]*$/;\n const matches = userAgent.match(re);\n if (matches?.length === 2) {\n return matches[1];\n }\n }\n return BrowserName.OTHER;\n}\n\nexport function _isFirefox(ua = getUA()): boolean {\n return /firefox\\//i.test(ua);\n}\n\nexport function _isSafari(userAgent = getUA()): boolean {\n const ua = userAgent.toLowerCase();\n return (\n ua.includes('safari/') &&\n !ua.includes('chrome/') &&\n !ua.includes('crios/') &&\n !ua.includes('android')\n );\n}\n\nexport function _isChromeIOS(ua = getUA()): boolean {\n return /crios\\//i.test(ua);\n}\n\nexport function _isIEMobile(ua = getUA()): boolean {\n return /iemobile/i.test(ua);\n}\n\nexport function _isAndroid(ua = getUA()): boolean {\n return /android/i.test(ua);\n}\n\nexport function _isBlackBerry(ua = getUA()): boolean {\n return /blackberry/i.test(ua);\n}\n\nexport function _isWebOS(ua = getUA()): boolean {\n return /webos/i.test(ua);\n}\n\nexport function _isIOS(ua = getUA()): boolean {\n return (\n /iphone|ipad|ipod/i.test(ua) ||\n (/macintosh/i.test(ua) && /mobile/i.test(ua))\n );\n}\n\nexport function _isIOS7Or8(ua = getUA()): boolean {\n return (\n /(iPad|iPhone|iPod).*OS 7_\\d/i.test(ua) ||\n /(iPad|iPhone|iPod).*OS 8_\\d/i.test(ua)\n );\n}\n\nexport function _isIOSStandalone(ua = getUA()): boolean {\n return _isIOS(ua) && !!(window.navigator as NavigatorStandalone)?.standalone;\n}\n\nexport function _isIE10(): boolean {\n return isIE() && (document as Document).documentMode === 10;\n}\n\nexport function _isMobileBrowser(ua: string = getUA()): boolean {\n // TODO: implement getBrowserName equivalent for OS.\n return (\n _isIOS(ua) ||\n _isAndroid(ua) ||\n _isWebOS(ua) ||\n _isBlackBerry(ua) ||\n /windows phone/i.test(ua) ||\n _isIEMobile(ua)\n );\n}\n\nexport function _isIframe(): boolean {\n try {\n // Check that the current window is not the top window.\n // If so, return true.\n return !!(window && window !== window.top);\n } catch (e) {\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { _getBrowserName } from './browser';\nimport { getUA } from '@firebase/util';\n\nexport const enum ClientImplementation {\n CORE = 'JsCore'\n}\n\n/**\n * @internal\n */\nexport const enum ClientPlatform {\n BROWSER = 'Browser',\n NODE = 'Node',\n REACT_NATIVE = 'ReactNative',\n CORDOVA = 'Cordova',\n WORKER = 'Worker'\n}\n\n/*\n * Determine the SDK version string\n */\nexport function _getClientVersion(\n clientPlatform: ClientPlatform,\n frameworks: readonly string[] = []\n): string {\n let reportedPlatform: string;\n switch (clientPlatform) {\n case ClientPlatform.BROWSER:\n // In a browser environment, report the browser name.\n reportedPlatform = _getBrowserName(getUA());\n break;\n case ClientPlatform.WORKER:\n // Technically a worker runs from a browser but we need to differentiate a\n // worker from a browser.\n // For example: Chrome-Worker/JsCore/4.9.1/FirebaseCore-web.\n reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`;\n break;\n default:\n reportedPlatform = clientPlatform;\n }\n const reportedFrameworks = frameworks.length\n ? frameworks.join(',')\n : 'FirebaseCore-web'; /* default value if no other framework is used */\n return `${reportedPlatform}/${ClientImplementation.CORE}/${SDK_VERSION}/${reportedFrameworks}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _performApiRequest,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\n\ninterface GetRecaptchaParamResponse {\n recaptchaSiteKey?: string;\n}\n\nexport async function getRecaptchaParams(auth: Auth): Promise {\n return (\n (\n await _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_PARAM\n )\n ).recaptchaSiteKey || ''\n );\n}\n\n// The following functions are for reCAPTCHA enterprise integration.\ninterface GetRecaptchaConfigRequest {\n tenantId?: string;\n clientType?: RecaptchaClientType;\n version?: RecaptchaVersion;\n}\n\ninterface RecaptchaEnforcementState {\n provider: string;\n enforcementState: string;\n}\n\nexport interface GetRecaptchaConfigResponse {\n recaptchaKey: string;\n recaptchaEnforcementState: RecaptchaEnforcementState[];\n}\n\nexport async function getRecaptchaConfig(\n auth: Auth,\n request: GetRecaptchaConfigRequest\n): Promise {\n return _performApiRequest<\n GetRecaptchaConfigRequest,\n GetRecaptchaConfigResponse\n >(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_CONFIG,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RecaptchaParameters } from '../../model/public_types';\nimport { GetRecaptchaConfigResponse } from '../../api/authentication/recaptcha';\n\n// reCAPTCHA v2 interface\nexport interface Recaptcha {\n render: (container: HTMLElement, parameters: RecaptchaParameters) => number;\n getResponse: (id: number) => string;\n execute: (id: number) => unknown;\n reset: (id: number) => unknown;\n}\n\nexport function isV2(\n grecaptcha: Recaptcha | GreCAPTCHA | undefined\n): grecaptcha is Recaptcha {\n return (\n grecaptcha !== undefined &&\n (grecaptcha as Recaptcha).getResponse !== undefined\n );\n}\n\n// reCAPTCHA Enterprise & v3 shared interface\nexport interface GreCAPTCHATopLevel extends GreCAPTCHA {\n enterprise: GreCAPTCHA;\n}\n\n// reCAPTCHA Enterprise interface\nexport interface GreCAPTCHA {\n ready: (callback: () => void) => void;\n execute: (siteKey: string, options: { action: string }) => Promise;\n render: (\n container: string | HTMLElement,\n parameters: GreCAPTCHARenderOption\n ) => string;\n}\n\nexport interface GreCAPTCHARenderOption {\n sitekey: string;\n size: 'invisible';\n}\n\nexport function isEnterprise(\n grecaptcha: Recaptcha | GreCAPTCHA | undefined\n): grecaptcha is GreCAPTCHATopLevel {\n return (\n grecaptcha !== undefined &&\n (grecaptcha as GreCAPTCHATopLevel).enterprise !== undefined\n );\n}\n\n// TODO(chuanr): Replace this with the AuthWindow after resolving the dependency issue in Node.js env.\ndeclare global {\n interface Window {\n grecaptcha?: Recaptcha | GreCAPTCHATopLevel;\n }\n}\n\nexport class RecaptchaConfig {\n /**\n * The reCAPTCHA site key.\n */\n siteKey: string = '';\n\n /**\n * The reCAPTCHA enablement status of the {@link EmailAuthProvider} for the current tenant.\n */\n emailPasswordEnabled: boolean = false;\n\n constructor(response: GetRecaptchaConfigResponse) {\n if (response.recaptchaKey === undefined) {\n throw new Error('recaptchaKey undefined');\n }\n // Example response.recaptchaKey: \"projects/proj123/keys/sitekey123\"\n this.siteKey = response.recaptchaKey.split('/')[3];\n this.emailPasswordEnabled = response.recaptchaEnforcementState.some(\n enforcementState =>\n enforcementState.provider === 'EMAIL_PASSWORD_PROVIDER' &&\n enforcementState.enforcementState !== 'OFF'\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\nimport { _createError } from '../core/util/assert';\n\nfunction getScriptParentElement(): HTMLDocument | HTMLHeadElement {\n return document.getElementsByTagName('head')?.[0] ?? document;\n}\n\nexport function _loadJS(url: string): Promise {\n // TODO: consider adding timeout support & cancellation\n return new Promise((resolve, reject) => {\n const el = document.createElement('script');\n el.setAttribute('src', url);\n el.onload = resolve;\n el.onerror = e => {\n const error = _createError(AuthErrorCode.INTERNAL_ERROR);\n error.customData = e as unknown as Record;\n reject(error);\n };\n el.type = 'text/javascript';\n el.charset = 'UTF-8';\n getScriptParentElement().appendChild(el);\n });\n}\n\nexport function _generateCallbackName(prefix: string): string {\n return `__${prefix}${Math.floor(Math.random() * 1000000)}`;\n}\n","/* eslint-disable @typescript-eslint/no-require-imports */\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isEnterprise, RecaptchaConfig } from './recaptcha';\nimport { getRecaptchaConfig } from '../../api/authentication/recaptcha';\nimport {\n RecaptchaClientType,\n RecaptchaVersion,\n RecaptchaActionName\n} from '../../api';\n\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport * as jsHelpers from '../load_js';\n\nconst RECAPTCHA_ENTERPRISE_URL =\n 'https://www.google.com/recaptcha/enterprise.js?render=';\n\nexport const RECAPTCHA_ENTERPRISE_VERIFIER_TYPE = 'recaptcha-enterprise';\nexport const FAKE_TOKEN = 'NO_RECAPTCHA';\n\nexport class RecaptchaEnterpriseVerifier {\n /**\n * Identifies the type of application verifier (e.g. \"recaptcha-enterprise\").\n */\n readonly type = RECAPTCHA_ENTERPRISE_VERIFIER_TYPE;\n\n private readonly auth: AuthInternal;\n\n /**\n *\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n *\n */\n constructor(authExtern: Auth) {\n this.auth = _castAuth(authExtern);\n }\n\n /**\n * Executes the verification process.\n *\n * @returns A Promise for a token that can be used to assert the validity of a request.\n */\n async verify(\n action: string = 'verify',\n forceRefresh = false\n ): Promise {\n async function retrieveSiteKey(auth: AuthInternal): Promise {\n if (!forceRefresh) {\n if (auth.tenantId == null && auth._agentRecaptchaConfig != null) {\n return auth._agentRecaptchaConfig.siteKey;\n }\n if (\n auth.tenantId != null &&\n auth._tenantRecaptchaConfigs[auth.tenantId] !== undefined\n ) {\n return auth._tenantRecaptchaConfigs[auth.tenantId].siteKey;\n }\n }\n\n return new Promise(async (resolve, reject) => {\n getRecaptchaConfig(auth, {\n clientType: RecaptchaClientType.WEB,\n version: RecaptchaVersion.ENTERPRISE\n })\n .then(response => {\n if (response.recaptchaKey === undefined) {\n reject(new Error('recaptcha Enterprise site key undefined'));\n } else {\n const config = new RecaptchaConfig(response);\n if (auth.tenantId == null) {\n auth._agentRecaptchaConfig = config;\n } else {\n auth._tenantRecaptchaConfigs[auth.tenantId] = config;\n }\n return resolve(config.siteKey);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n\n function retrieveRecaptchaToken(\n siteKey: string,\n resolve: (value: string | PromiseLike) => void,\n reject: (reason?: unknown) => void\n ): void {\n const grecaptcha = window.grecaptcha;\n if (isEnterprise(grecaptcha)) {\n grecaptcha.enterprise.ready(() => {\n grecaptcha.enterprise\n .execute(siteKey, { action })\n .then(token => {\n resolve(token);\n })\n .catch(() => {\n resolve(FAKE_TOKEN);\n });\n });\n } else {\n reject(Error('No reCAPTCHA enterprise script loaded.'));\n }\n }\n\n return new Promise((resolve, reject) => {\n retrieveSiteKey(this.auth)\n .then(siteKey => {\n if (!forceRefresh && isEnterprise(window.grecaptcha)) {\n retrieveRecaptchaToken(siteKey, resolve, reject);\n } else {\n if (typeof window === 'undefined') {\n reject(\n new Error('RecaptchaVerifier is only supported in browser')\n );\n return;\n }\n jsHelpers\n ._loadJS(RECAPTCHA_ENTERPRISE_URL + siteKey)\n .then(() => {\n retrieveRecaptchaToken(siteKey, resolve, reject);\n })\n .catch(error => {\n reject(error);\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n}\n\nexport async function injectRecaptchaFields(\n auth: AuthInternal,\n request: T,\n action: RecaptchaActionName,\n captchaResp = false\n): Promise {\n const verifier = new RecaptchaEnterpriseVerifier(auth);\n let captchaResponse;\n try {\n captchaResponse = await verifier.verify(action);\n } catch (error) {\n captchaResponse = await verifier.verify(action, true);\n }\n const newRequest = { ...request };\n if (!captchaResp) {\n Object.assign(newRequest, { captchaResponse });\n } else {\n Object.assign(newRequest, { 'captchaResp': captchaResponse });\n }\n Object.assign(newRequest, { 'clientType': RecaptchaClientType.WEB });\n Object.assign(newRequest, {\n 'recaptchaVersion': RecaptchaVersion.ENTERPRISE\n });\n return newRequest;\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport { Unsubscribe, User } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\n\ninterface MiddlewareEntry {\n (user: User | null): Promise;\n onAbort?: () => void;\n}\n\nexport class AuthMiddlewareQueue {\n private readonly queue: MiddlewareEntry[] = [];\n\n constructor(private readonly auth: AuthInternal) {}\n\n pushCallback(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n // The callback could be sync or async. Wrap it into a\n // function that is always async.\n const wrappedCallback: MiddlewareEntry = (\n user: User | null\n ): Promise =>\n new Promise((resolve, reject) => {\n try {\n const result = callback(user);\n // Either resolve with existing promise or wrap a non-promise\n // return value into a promise.\n resolve(result);\n } catch (e) {\n // Sync callback throws.\n reject(e);\n }\n });\n // Attach the onAbort if present\n wrappedCallback.onAbort = onAbort;\n this.queue.push(wrappedCallback);\n\n const index = this.queue.length - 1;\n return () => {\n // Unsubscribe. Replace with no-op. Do not remove from array, or it will disturb\n // indexing of other elements.\n this.queue[index] = () => Promise.resolve();\n };\n }\n\n async runMiddleware(nextUser: User | null): Promise {\n if (this.auth.currentUser === nextUser) {\n return;\n }\n\n // While running the middleware, build a temporary stack of onAbort\n // callbacks to call if one middleware callback rejects.\n\n const onAbortStack: Array<() => void> = [];\n try {\n for (const beforeStateCallback of this.queue) {\n await beforeStateCallback(nextUser);\n\n // Only push the onAbort if the callback succeeds\n if (beforeStateCallback.onAbort) {\n onAbortStack.push(beforeStateCallback.onAbort);\n }\n }\n } catch (e) {\n // Run all onAbort, with separate try/catch to ignore any errors and\n // continue\n onAbortStack.reverse();\n for (const onAbort of onAbortStack) {\n try {\n onAbort();\n } catch (_) {\n /* swallow error */\n }\n }\n\n throw this.auth._errorFactory.create(AuthErrorCode.LOGIN_BLOCKED, {\n originalMessage: (e as Error)?.message\n });\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _FirebaseService, FirebaseApp } from '@firebase/app';\nimport { Provider } from '@firebase/component';\nimport { AppCheckInternalComponentName } from '@firebase/app-check-interop-types';\nimport {\n Auth,\n AuthErrorMap,\n AuthSettings,\n EmulatorConfig,\n NextOrObserver,\n Persistence,\n PopupRedirectResolver,\n User,\n UserCredential,\n CompleteFn,\n ErrorFn,\n NextFn,\n Unsubscribe\n} from '../../model/public_types';\nimport {\n createSubscribe,\n ErrorFactory,\n FirebaseError,\n getModularInstance,\n Observer,\n Subscribe\n} from '@firebase/util';\n\nimport { AuthInternal, ConfigInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport {\n AuthErrorCode,\n AuthErrorParams,\n ErrorMapRetriever,\n _DEFAULT_AUTH_ERROR_FACTORY\n} from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport {\n KeyName,\n PersistenceUserManager\n} from '../persistence/persistence_user_manager';\nimport { _reloadWithoutSaving } from '../user/reload';\nimport { _assert } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { _getUserLanguage } from '../util/navigator';\nimport { _getClientVersion } from '../util/version';\nimport { HttpHeader, RecaptchaClientType, RecaptchaVersion } from '../../api';\nimport { getRecaptchaConfig } from '../../api/authentication/recaptcha';\nimport { RecaptchaEnterpriseVerifier } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { AuthMiddlewareQueue } from './middleware';\nimport { RecaptchaConfig } from '../../platform_browser/recaptcha/recaptcha';\nimport { _logWarn } from '../util/log';\n\ninterface AsyncAction {\n (): Promise;\n}\n\nexport const enum DefaultConfig {\n TOKEN_API_HOST = 'securetoken.googleapis.com',\n API_HOST = 'identitytoolkit.googleapis.com',\n API_SCHEME = 'https'\n}\n\nexport class AuthImpl implements AuthInternal, _FirebaseService {\n currentUser: User | null = null;\n emulatorConfig: EmulatorConfig | null = null;\n private operations = Promise.resolve();\n private persistenceManager?: PersistenceUserManager;\n private redirectPersistenceManager?: PersistenceUserManager;\n private authStateSubscription = new Subscription(this);\n private idTokenSubscription = new Subscription(this);\n private readonly beforeStateQueue = new AuthMiddlewareQueue(this);\n private redirectUser: UserInternal | null = null;\n private isProactiveRefreshEnabled = false;\n\n // Any network calls will set this to true and prevent subsequent emulator\n // initialization\n _canInitEmulator = true;\n _isInitialized = false;\n _deleted = false;\n _initializationPromise: Promise | null = null;\n _popupRedirectResolver: PopupRedirectResolverInternal | null = null;\n _errorFactory: ErrorFactory =\n _DEFAULT_AUTH_ERROR_FACTORY;\n _agentRecaptchaConfig: RecaptchaConfig | null = null;\n _tenantRecaptchaConfigs: Record = {};\n readonly name: string;\n\n // Tracks the last notified UID for state change listeners to prevent\n // repeated calls to the callbacks. Undefined means it's never been\n // called, whereas null means it's been called with a signed out user\n private lastNotifiedUid: string | null | undefined = undefined;\n\n languageCode: string | null = null;\n tenantId: string | null = null;\n settings: AuthSettings = { appVerificationDisabledForTesting: false };\n\n constructor(\n public readonly app: FirebaseApp,\n private readonly heartbeatServiceProvider: Provider<'heartbeat'>,\n private readonly appCheckServiceProvider: Provider,\n public readonly config: ConfigInternal\n ) {\n this.name = app.name;\n this.clientVersion = config.sdkClientVersion;\n }\n\n _initializeWithPersistence(\n persistenceHierarchy: PersistenceInternal[],\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (popupRedirectResolver) {\n this._popupRedirectResolver = _getInstance(popupRedirectResolver);\n }\n\n // Have to check for app deletion throughout initialization (after each\n // promise resolution)\n this._initializationPromise = this.queue(async () => {\n if (this._deleted) {\n return;\n }\n\n this.persistenceManager = await PersistenceUserManager.create(\n this,\n persistenceHierarchy\n );\n\n if (this._deleted) {\n return;\n }\n\n // Initialize the resolver early if necessary (only applicable to web:\n // this will cause the iframe to load immediately in certain cases)\n if (this._popupRedirectResolver?._shouldInitProactively) {\n // If this fails, don't halt auth loading\n try {\n await this._popupRedirectResolver._initialize(this);\n } catch (e) {\n /* Ignore the error */\n }\n }\n\n await this.initializeCurrentUser(popupRedirectResolver);\n this.lastNotifiedUid = this.currentUser?.uid || null;\n\n if (this._deleted) {\n return;\n }\n\n this._isInitialized = true;\n });\n\n return this._initializationPromise;\n }\n\n /**\n * If the persistence is changed in another window, the user manager will let us know\n */\n async _onStorageEvent(): Promise {\n if (this._deleted) {\n return;\n }\n\n const user = await this.assertedPersistence.getCurrentUser();\n\n if (!this.currentUser && !user) {\n // No change, do nothing (was signed out and remained signed out).\n return;\n }\n\n // If the same user is to be synchronized.\n if (this.currentUser && user && this.currentUser.uid === user.uid) {\n // Data update, simply copy data changes.\n this._currentUser._assign(user);\n // If tokens changed from previous user tokens, this will trigger\n // notifyAuthListeners_.\n await this.currentUser.getIdToken();\n return;\n }\n\n // Update current Auth state. Either a new login or logout.\n // Skip blocking callbacks, they should not apply to a change in another tab.\n await this._updateCurrentUser(user, /* skipBeforeStateCallbacks */ true);\n }\n\n private async initializeCurrentUser(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n // First check to see if we have a pending redirect event.\n const previouslyStoredUser =\n (await this.assertedPersistence.getCurrentUser()) as UserInternal | null;\n let futureCurrentUser = previouslyStoredUser;\n let needsTocheckMiddleware = false;\n if (popupRedirectResolver && this.config.authDomain) {\n await this.getOrInitRedirectPersistenceManager();\n const redirectUserEventId = this.redirectUser?._redirectEventId;\n const storedUserEventId = futureCurrentUser?._redirectEventId;\n const result = await this.tryRedirectSignIn(popupRedirectResolver);\n\n // If the stored user (i.e. the old \"currentUser\") has a redirectId that\n // matches the redirect user, then we want to initially sign in with the\n // new user object from result.\n // TODO(samgho): More thoroughly test all of this\n if (\n (!redirectUserEventId || redirectUserEventId === storedUserEventId) &&\n result?.user\n ) {\n futureCurrentUser = result.user as UserInternal;\n needsTocheckMiddleware = true;\n }\n }\n\n // If no user in persistence, there is no current user. Set to null.\n if (!futureCurrentUser) {\n return this.directlySetCurrentUser(null);\n }\n\n if (!futureCurrentUser._redirectEventId) {\n // This isn't a redirect link operation, we can reload and bail.\n // First though, ensure that we check the middleware is happy.\n if (needsTocheckMiddleware) {\n try {\n await this.beforeStateQueue.runMiddleware(futureCurrentUser);\n } catch (e) {\n futureCurrentUser = previouslyStoredUser;\n // We know this is available since the bit is only set when the\n // resolver is available\n this._popupRedirectResolver!._overrideRedirectResult(this, () =>\n Promise.reject(e)\n );\n }\n }\n\n if (futureCurrentUser) {\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n } else {\n return this.directlySetCurrentUser(null);\n }\n }\n\n _assert(this._popupRedirectResolver, this, AuthErrorCode.ARGUMENT_ERROR);\n await this.getOrInitRedirectPersistenceManager();\n\n // If the redirect user's event ID matches the current user's event ID,\n // DO NOT reload the current user, otherwise they'll be cleared from storage.\n // This is important for the reauthenticateWithRedirect() flow.\n if (\n this.redirectUser &&\n this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId\n ) {\n return this.directlySetCurrentUser(futureCurrentUser);\n }\n\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n }\n\n private async tryRedirectSignIn(\n redirectResolver: PopupRedirectResolver\n ): Promise {\n // The redirect user needs to be checked (and signed in if available)\n // during auth initialization. All of the normal sign in and link/reauth\n // flows call back into auth and push things onto the promise queue. We\n // need to await the result of the redirect sign in *inside the promise\n // queue*. This presents a problem: we run into deadlock. See:\n // ┌> [Initialization] ─────┐\n // ┌> [] │\n // └─ [getRedirectResult] <─┘\n // where [] are tasks on the queue and arrows denote awaits\n // Initialization will never complete because it's waiting on something\n // that's waiting for initialization to complete!\n //\n // Instead, this method calls getRedirectResult() (stored in\n // _completeRedirectFn) with an optional parameter that instructs all of\n // the underlying auth operations to skip anything that mutates auth state.\n\n let result: UserCredential | null = null;\n try {\n // We know this._popupRedirectResolver is set since redirectResolver\n // is passed in. The _completeRedirectFn expects the unwrapped extern.\n result = await this._popupRedirectResolver!._completeRedirectFn(\n this,\n redirectResolver,\n true\n );\n } catch (e) {\n // Swallow any errors here; the code can retrieve them in\n // getRedirectResult().\n await this._setRedirectUser(null);\n }\n\n return result;\n }\n\n private async reloadAndSetCurrentUserOrClear(\n user: UserInternal\n ): Promise {\n try {\n await _reloadWithoutSaving(user);\n } catch (e) {\n if (\n (e as FirebaseError)?.code !==\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n // Something's wrong with the user's token. Log them out and remove\n // them from storage\n return this.directlySetCurrentUser(null);\n }\n }\n\n return this.directlySetCurrentUser(user);\n }\n\n useDeviceLanguage(): void {\n this.languageCode = _getUserLanguage();\n }\n\n async _delete(): Promise {\n this._deleted = true;\n }\n\n async updateCurrentUser(userExtern: User | null): Promise {\n // The public updateCurrentUser method needs to make a copy of the user,\n // and also check that the project matches\n const user = userExtern\n ? (getModularInstance(userExtern) as UserInternal)\n : null;\n if (user) {\n _assert(\n user.auth.config.apiKey === this.config.apiKey,\n this,\n AuthErrorCode.INVALID_AUTH\n );\n }\n return this._updateCurrentUser(user && user._clone(this));\n }\n\n async _updateCurrentUser(\n user: User | null,\n skipBeforeStateCallbacks: boolean = false\n ): Promise {\n if (this._deleted) {\n return;\n }\n if (user) {\n _assert(\n this.tenantId === user.tenantId,\n this,\n AuthErrorCode.TENANT_ID_MISMATCH\n );\n }\n\n if (!skipBeforeStateCallbacks) {\n await this.beforeStateQueue.runMiddleware(user);\n }\n\n return this.queue(async () => {\n await this.directlySetCurrentUser(user as UserInternal | null);\n this.notifyAuthListeners();\n });\n }\n\n async signOut(): Promise {\n // Run first, to block _setRedirectUser() if any callbacks fail.\n await this.beforeStateQueue.runMiddleware(null);\n // Clear the redirect user when signOut is called\n if (this.redirectPersistenceManager || this._popupRedirectResolver) {\n await this._setRedirectUser(null);\n }\n\n // Prevent callbacks from being called again in _updateCurrentUser, as\n // they were already called in the first line.\n return this._updateCurrentUser(null, /* skipBeforeStateCallbacks */ true);\n }\n\n setPersistence(persistence: Persistence): Promise {\n return this.queue(async () => {\n await this.assertedPersistence.setPersistence(_getInstance(persistence));\n });\n }\n\n async initializeRecaptchaConfig(): Promise {\n const response = await getRecaptchaConfig(this, {\n clientType: RecaptchaClientType.WEB,\n version: RecaptchaVersion.ENTERPRISE\n });\n\n const config = new RecaptchaConfig(response);\n if (this.tenantId == null) {\n this._agentRecaptchaConfig = config;\n } else {\n this._tenantRecaptchaConfigs[this.tenantId] = config;\n }\n\n if (config.emailPasswordEnabled) {\n const verifier = new RecaptchaEnterpriseVerifier(this);\n void verifier.verify();\n }\n }\n\n _getRecaptchaConfig(): RecaptchaConfig | null {\n if (this.tenantId == null) {\n return this._agentRecaptchaConfig;\n } else {\n return this._tenantRecaptchaConfigs[this.tenantId];\n }\n }\n\n _getPersistence(): string {\n return this.assertedPersistence.persistence.type;\n }\n\n _updateErrorMap(errorMap: AuthErrorMap): void {\n this._errorFactory = new ErrorFactory(\n 'auth',\n 'Firebase',\n (errorMap as ErrorMapRetriever)()\n );\n }\n\n onAuthStateChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.authStateSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n beforeAuthStateChanged(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n return this.beforeStateQueue.pushCallback(callback, onAbort);\n }\n\n onIdTokenChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.idTokenSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n toJSON(): object {\n return {\n apiKey: this.config.apiKey,\n authDomain: this.config.authDomain,\n appName: this.name,\n currentUser: this._currentUser?.toJSON()\n };\n }\n\n async _setRedirectUser(\n user: UserInternal | null,\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n const redirectManager = await this.getOrInitRedirectPersistenceManager(\n popupRedirectResolver\n );\n return user === null\n ? redirectManager.removeCurrentUser()\n : redirectManager.setCurrentUser(user);\n }\n\n private async getOrInitRedirectPersistenceManager(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (!this.redirectPersistenceManager) {\n const resolver: PopupRedirectResolverInternal | null =\n (popupRedirectResolver && _getInstance(popupRedirectResolver)) ||\n this._popupRedirectResolver;\n _assert(resolver, this, AuthErrorCode.ARGUMENT_ERROR);\n this.redirectPersistenceManager = await PersistenceUserManager.create(\n this,\n [_getInstance(resolver._redirectPersistence)],\n KeyName.REDIRECT_USER\n );\n this.redirectUser =\n await this.redirectPersistenceManager.getCurrentUser();\n }\n\n return this.redirectPersistenceManager;\n }\n\n async _redirectUserForId(id: string): Promise {\n // Make sure we've cleared any pending persistence actions if we're not in\n // the initializer\n if (this._isInitialized) {\n await this.queue(async () => {});\n }\n\n if (this._currentUser?._redirectEventId === id) {\n return this._currentUser;\n }\n\n if (this.redirectUser?._redirectEventId === id) {\n return this.redirectUser;\n }\n\n return null;\n }\n\n async _persistUserIfCurrent(user: UserInternal): Promise {\n if (user === this.currentUser) {\n return this.queue(async () => this.directlySetCurrentUser(user));\n }\n }\n\n /** Notifies listeners only if the user is current */\n _notifyListenersIfCurrent(user: UserInternal): void {\n if (user === this.currentUser) {\n this.notifyAuthListeners();\n }\n }\n\n _key(): string {\n return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`;\n }\n\n _startProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = true;\n if (this.currentUser) {\n this._currentUser._startProactiveRefresh();\n }\n }\n\n _stopProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = false;\n if (this.currentUser) {\n this._currentUser._stopProactiveRefresh();\n }\n }\n\n /** Returns the current user cast as the internal type */\n get _currentUser(): UserInternal {\n return this.currentUser as UserInternal;\n }\n\n private notifyAuthListeners(): void {\n if (!this._isInitialized) {\n return;\n }\n\n this.idTokenSubscription.next(this.currentUser);\n\n const currentUid = this.currentUser?.uid ?? null;\n if (this.lastNotifiedUid !== currentUid) {\n this.lastNotifiedUid = currentUid;\n this.authStateSubscription.next(this.currentUser);\n }\n }\n\n private registerStateListener(\n subscription: Subscription,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n if (this._deleted) {\n return () => {};\n }\n\n const cb =\n typeof nextOrObserver === 'function'\n ? nextOrObserver\n : nextOrObserver.next.bind(nextOrObserver);\n\n const promise = this._isInitialized\n ? Promise.resolve()\n : this._initializationPromise;\n _assert(promise, this, AuthErrorCode.INTERNAL_ERROR);\n // The callback needs to be called asynchronously per the spec.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n promise.then(() => cb(this.currentUser));\n\n if (typeof nextOrObserver === 'function') {\n return subscription.addObserver(nextOrObserver, error, completed);\n } else {\n return subscription.addObserver(nextOrObserver);\n }\n }\n\n /**\n * Unprotected (from race conditions) method to set the current user. This\n * should only be called from within a queued callback. This is necessary\n * because the queue shouldn't rely on another queued callback.\n */\n private async directlySetCurrentUser(\n user: UserInternal | null\n ): Promise {\n if (this.currentUser && this.currentUser !== user) {\n this._currentUser._stopProactiveRefresh();\n }\n if (user && this.isProactiveRefreshEnabled) {\n user._startProactiveRefresh();\n }\n\n this.currentUser = user;\n\n if (user) {\n await this.assertedPersistence.setCurrentUser(user);\n } else {\n await this.assertedPersistence.removeCurrentUser();\n }\n }\n\n private queue(action: AsyncAction): Promise {\n // In case something errors, the callback still should be called in order\n // to keep the promise chain alive\n this.operations = this.operations.then(action, action);\n return this.operations;\n }\n\n private get assertedPersistence(): PersistenceUserManager {\n _assert(this.persistenceManager, this, AuthErrorCode.INTERNAL_ERROR);\n return this.persistenceManager;\n }\n\n private frameworks: string[] = [];\n private clientVersion: string;\n _logFramework(framework: string): void {\n if (!framework || this.frameworks.includes(framework)) {\n return;\n }\n this.frameworks.push(framework);\n\n // Sort alphabetically so that \"FirebaseCore-web,FirebaseUI-web\" and\n // \"FirebaseUI-web,FirebaseCore-web\" aren't viewed as different.\n this.frameworks.sort();\n this.clientVersion = _getClientVersion(\n this.config.clientPlatform,\n this._getFrameworks()\n );\n }\n _getFrameworks(): readonly string[] {\n return this.frameworks;\n }\n async _getAdditionalHeaders(): Promise> {\n // Additional headers on every request\n const headers: Record = {\n [HttpHeader.X_CLIENT_VERSION]: this.clientVersion\n };\n\n if (this.app.options.appId) {\n headers[HttpHeader.X_FIREBASE_GMPID] = this.app.options.appId;\n }\n\n // If the heartbeat service exists, add the heartbeat string\n const heartbeatsHeader = await this.heartbeatServiceProvider\n .getImmediate({\n optional: true\n })\n ?.getHeartbeatsHeader();\n if (heartbeatsHeader) {\n headers[HttpHeader.X_FIREBASE_CLIENT] = heartbeatsHeader;\n }\n\n // If the App Check service exists, add the App Check token in the headers\n const appCheckToken = await this._getAppCheckToken();\n if (appCheckToken) {\n headers[HttpHeader.X_FIREBASE_APP_CHECK] = appCheckToken;\n }\n\n return headers;\n }\n\n async _getAppCheckToken(): Promise {\n const appCheckTokenResult = await this.appCheckServiceProvider\n .getImmediate({ optional: true })\n ?.getToken();\n if (appCheckTokenResult?.error) {\n // Context: appCheck.getToken() will never throw even if an error happened.\n // In the error case, a dummy token will be returned along with an error field describing\n // the error. In general, we shouldn't care about the error condition and just use\n // the token (actual or dummy) to send requests.\n _logWarn(\n `Error while retrieving App Check token: ${appCheckTokenResult.error}`\n );\n }\n return appCheckTokenResult?.token;\n }\n}\n\n/**\n * Method to be used to cast down to our private implmentation of Auth.\n * It will also handle unwrapping from the compat type if necessary\n *\n * @param auth Auth object passed in from developer\n */\nexport function _castAuth(auth: Auth): AuthInternal {\n return getModularInstance(auth) as AuthInternal;\n}\n\n/** Helper class to wrap subscriber logic */\nclass Subscription {\n private observer: Observer | null = null;\n readonly addObserver: Subscribe = createSubscribe(\n observer => (this.observer = observer)\n );\n\n constructor(readonly auth: AuthInternal) {}\n\n get next(): NextFn {\n _assert(this.observer, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.observer.next.bind(this.observer);\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Auth } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _castAuth } from './auth_impl';\n\n/**\n * Changes the {@link Auth} instance to communicate with the Firebase Auth Emulator, instead of production\n * Firebase Auth services.\n *\n * @remarks\n * This must be called synchronously immediately following the first call to\n * {@link initializeAuth}. Do not use with production credentials as emulator\n * traffic is not encrypted.\n *\n *\n * @example\n * ```javascript\n * connectAuthEmulator(auth, 'http://127.0.0.1:9099', { disableWarnings: true });\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param url - The URL at which the emulator is running (eg, 'http://localhost:9099').\n * @param options - Optional. `options.disableWarnings` defaults to `false`. Set it to\n * `true` to disable the warning banner attached to the DOM.\n *\n * @public\n */\nexport function connectAuthEmulator(\n auth: Auth,\n url: string,\n options?: { disableWarnings: boolean }\n): void {\n const authInternal = _castAuth(auth);\n _assert(\n authInternal._canInitEmulator,\n authInternal,\n AuthErrorCode.EMULATOR_CONFIG_FAILED\n );\n\n _assert(\n /^https?:\\/\\//.test(url),\n authInternal,\n AuthErrorCode.INVALID_EMULATOR_SCHEME\n );\n\n const disableWarnings = !!options?.disableWarnings;\n\n const protocol = extractProtocol(url);\n const { host, port } = extractHostAndPort(url);\n const portStr = port === null ? '' : `:${port}`;\n\n // Always replace path with \"/\" (even if input url had no path at all, or had a different one).\n authInternal.config.emulator = { url: `${protocol}//${host}${portStr}/` };\n authInternal.settings.appVerificationDisabledForTesting = true;\n authInternal.emulatorConfig = Object.freeze({\n host,\n port,\n protocol: protocol.replace(':', ''),\n options: Object.freeze({ disableWarnings })\n });\n\n if (!disableWarnings) {\n emitEmulatorWarning();\n }\n}\n\nfunction extractProtocol(url: string): string {\n const protocolEnd = url.indexOf(':');\n return protocolEnd < 0 ? '' : url.substr(0, protocolEnd + 1);\n}\n\nfunction extractHostAndPort(url: string): {\n host: string;\n port: number | null;\n} {\n const protocol = extractProtocol(url);\n const authority = /(\\/\\/)?([^?#/]+)/.exec(url.substr(protocol.length)); // Between // and /, ? or #.\n if (!authority) {\n return { host: '', port: null };\n }\n const hostAndPort = authority[2].split('@').pop() || ''; // Strip out \"username:password@\".\n const bracketedIPv6 = /^(\\[[^\\]]+\\])(:|$)/.exec(hostAndPort);\n if (bracketedIPv6) {\n const host = bracketedIPv6[1];\n return { host, port: parsePort(hostAndPort.substr(host.length + 1)) };\n } else {\n const [host, port] = hostAndPort.split(':');\n return { host, port: parsePort(port) };\n }\n}\n\nfunction parsePort(portStr: string): number | null {\n if (!portStr) {\n return null;\n }\n const port = Number(portStr);\n if (isNaN(port)) {\n return null;\n }\n return port;\n}\n\nfunction emitEmulatorWarning(): void {\n function attachBanner(): void {\n const el = document.createElement('p');\n const sty = el.style;\n el.innerText =\n 'Running in emulator mode. Do not use with production credentials.';\n sty.position = 'fixed';\n sty.width = '100%';\n sty.backgroundColor = '#ffffff';\n sty.border = '.1em solid #000000';\n sty.color = '#b50000';\n sty.bottom = '0px';\n sty.left = '0px';\n sty.margin = '0px';\n sty.zIndex = '10000';\n sty.textAlign = 'center';\n el.classList.add('firebase-emulator-warning');\n document.body.appendChild(el);\n }\n\n if (typeof console !== 'undefined' && typeof console.info === 'function') {\n console.info(\n 'WARNING: You are using the Auth Emulator,' +\n ' which is intended for local testing only. Do not use with' +\n ' production credentials.'\n );\n }\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n if (document.readyState === 'loading') {\n window.addEventListener('DOMContentLoaded', attachBanner);\n } else {\n attachBanner();\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { debugFail } from '../util/assert';\n\n/**\n * Interface that represents the credentials returned by an {@link AuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class AuthCredential {\n /** @internal */\n protected constructor(\n /**\n * The authentication provider ID for the credential.\n *\n * @remarks\n * For example, 'facebook.com', or 'google.com'.\n */\n readonly providerId: string,\n /**\n * The authentication sign in method for the credential.\n *\n * @remarks\n * For example, {@link SignInMethod}.EMAIL_PASSWORD, or\n * {@link SignInMethod}.EMAIL_LINK. This corresponds to the sign-in method\n * identifier as returned in {@link fetchSignInMethodsForEmail}.\n */\n readonly signInMethod: string\n ) {}\n\n /**\n * Returns a JSON-serializable representation of this object.\n *\n * @returns a JSON-serializable representation of this object.\n */\n toJSON(): object {\n return debugFail('not implemented');\n }\n\n /** @internal */\n _getIdTokenResponse(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _linkToIdToken(\n _auth: AuthInternal,\n _idToken: string\n ): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _getReauthenticationResolver(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from './mfa';\n\nexport interface ResetPasswordRequest {\n oobCode: string;\n newPassword?: string;\n tenantId?: string;\n}\n\nexport interface ResetPasswordResponse {\n email: string;\n newEmail?: string;\n requestType?: ActionCodeOperation;\n mfaInfo?: MfaEnrollment;\n}\n\nexport async function resetPassword(\n auth: Auth,\n request: ResetPasswordRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.RESET_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface UpdateEmailPasswordRequest {\n idToken: string;\n returnSecureToken?: boolean;\n email?: string;\n password?: string;\n}\n\nexport interface UpdateEmailPasswordResponse extends IdTokenResponse {}\n\nexport async function updateEmailPassword(\n auth: Auth,\n request: UpdateEmailPasswordRequest\n): Promise {\n return _performApiRequest<\n UpdateEmailPasswordRequest,\n UpdateEmailPasswordResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface ApplyActionCodeRequest {\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface ApplyActionCodeResponse {}\n\nexport async function applyActionCode(\n auth: Auth,\n request: ApplyActionCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SET_ACCOUNT_INFO,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _addTidIfNecessary,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\n\nexport interface SignInWithPasswordRequest {\n returnSecureToken?: boolean;\n email: string;\n password: string;\n tenantId?: string;\n captchaResponse?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface SignInWithPasswordResponse extends IdTokenResponse {\n email: string;\n displayName: string;\n}\n\nexport async function signInWithPassword(\n auth: Auth,\n request: SignInWithPasswordRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPasswordRequest,\n SignInWithPasswordResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface GetOobCodeRequest {\n email?: string; // Everything except VERIFY_AND_CHANGE_EMAIL\n continueUrl?: string;\n iOSBundleId?: string;\n iosAppStoreId?: string;\n androidPackageName?: string;\n androidInstallApp?: boolean;\n androidMinimumVersionCode?: string;\n canHandleCodeInApp?: boolean;\n dynamicLinkDomain?: string;\n tenantId?: string;\n targetProjectid?: string;\n}\n\nexport interface VerifyEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_EMAIL;\n idToken: IdToken;\n}\n\nexport interface PasswordResetRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.PASSWORD_RESET;\n email: string;\n captchaResp?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface EmailSignInRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.EMAIL_SIGNIN;\n email: string;\n captchaResp?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface VerifyAndChangeEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n idToken: IdToken;\n newEmail: string;\n}\n\ninterface GetOobCodeResponse {\n email: string;\n}\n\nexport interface VerifyEmailResponse extends GetOobCodeResponse {}\nexport interface PasswordResetResponse extends GetOobCodeResponse {}\nexport interface EmailSignInResponse extends GetOobCodeResponse {}\nexport interface VerifyAndChangeEmailResponse extends GetOobCodeRequest {}\n\nasync function sendOobCode(\n auth: Auth,\n request: GetOobCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_OOB_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function sendEmailVerification(\n auth: Auth,\n request: VerifyEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendPasswordResetEmail(\n auth: Auth,\n request: PasswordResetRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendSignInLinkToEmail(\n auth: Auth,\n request: EmailSignInRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function verifyAndChangeEmail(\n auth: Auth,\n request: VerifyAndChangeEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { updateEmailPassword } from '../../api/account_management/email_and_password';\nimport {\n signInWithPassword,\n SignInWithPasswordRequest\n} from '../../api/authentication/email_and_password';\nimport {\n signInWithEmailLink,\n signInWithEmailLinkForLinking\n} from '../../api/authentication/email_link';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\nimport { injectRecaptchaFields } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\n/**\n * Interface that represents the credentials returned by {@link EmailAuthProvider} for\n * {@link ProviderId}.PASSWORD\n *\n * @remarks\n * Covers both {@link SignInMethod}.EMAIL_PASSWORD and\n * {@link SignInMethod}.EMAIL_LINK.\n *\n * @public\n */\nexport class EmailAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n /** @internal */\n readonly _email: string,\n /** @internal */\n readonly _password: string,\n signInMethod: SignInMethod,\n /** @internal */\n readonly _tenantId: string | null = null\n ) {\n super(ProviderId.PASSWORD, signInMethod);\n }\n\n /** @internal */\n static _fromEmailAndPassword(\n email: string,\n password: string\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n password,\n SignInMethod.EMAIL_PASSWORD\n );\n }\n\n /** @internal */\n static _fromEmailAndCode(\n email: string,\n oobCode: string,\n tenantId: string | null = null\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n oobCode,\n SignInMethod.EMAIL_LINK,\n tenantId\n );\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n email: this._email,\n password: this._password,\n signInMethod: this.signInMethod,\n tenantId: this._tenantId\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an {@link AuthCredential}.\n *\n * @param json - Either `object` or the stringified representation of the object. When string is\n * provided, `JSON.parse` would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: object | string): EmailAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n if (obj?.email && obj?.password) {\n if (obj.signInMethod === SignInMethod.EMAIL_PASSWORD) {\n return this._fromEmailAndPassword(obj.email, obj.password);\n } else if (obj.signInMethod === SignInMethod.EMAIL_LINK) {\n return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId);\n }\n }\n return null;\n }\n\n /** @internal */\n async _getIdTokenResponse(auth: AuthInternal): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n const request: SignInWithPasswordRequest = {\n returnSecureToken: true,\n email: this._email,\n password: this._password,\n clientType: RecaptchaClientType.WEB\n };\n if (auth._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n auth,\n request,\n RecaptchaActionName.SIGN_IN_WITH_PASSWORD\n );\n return signInWithPassword(auth, requestWithRecaptcha);\n } else {\n return signInWithPassword(auth, request).catch(async error => {\n if (\n error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`\n ) {\n console.log(\n 'Sign-in with email address and password is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n auth,\n request,\n RecaptchaActionName.SIGN_IN_WITH_PASSWORD\n );\n return signInWithPassword(auth, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLink(auth, {\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n async _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n return updateEmailPassword(auth, {\n idToken,\n returnSecureToken: true,\n email: this._email,\n password: this._password\n });\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLinkForLinking(auth, {\n idToken,\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return this._getIdTokenResponse(auth);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performSignInRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithEmailLinkRequest {\n email: string;\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface SignInWithEmailLinkResponse extends IdTokenResponse {\n email: string;\n isNewUser: boolean;\n}\n\nexport async function signInWithEmailLink(\n auth: Auth,\n request: SignInWithEmailLinkRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface SignInWithEmailLinkForLinkingRequest\n extends SignInWithEmailLinkRequest {\n idToken: string;\n}\n\nexport async function signInWithEmailLinkForLinking(\n auth: Auth,\n request: SignInWithEmailLinkForLinkingRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkForLinkingRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithIdpRequest {\n requestUri: string;\n postBody?: string;\n sessionId?: string;\n tenantId?: string;\n returnSecureToken: boolean;\n returnIdpCredential?: boolean;\n idToken?: IdToken;\n autoCreate?: boolean;\n pendingToken?: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithIdpResponse extends IdTokenResponse {\n oauthAccessToken?: string;\n oauthTokenSecret?: string;\n nonce?: string;\n oauthIdToken?: string;\n pendingToken?: string;\n}\n\nexport async function signInWithIdp(\n auth: Auth,\n request: SignInWithIdpRequest\n): Promise {\n return _performSignInRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_IDP,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\nexport interface OAuthCredentialParams {\n // OAuth 2 uses either id token or access token\n idToken?: string | null;\n accessToken?: string | null;\n\n // These fields are used with OAuth 1\n oauthToken?: string;\n secret?: string;\n oauthTokenSecret?: string;\n\n // Nonce is only set if pendingToken is not present\n nonce?: string;\n pendingToken?: string;\n\n // Utilities\n providerId: string;\n signInMethod: string;\n}\n\n/**\n * Represents the OAuth credentials returned by an {@link OAuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class OAuthCredential extends AuthCredential {\n /**\n * The OAuth ID token associated with the credential if it belongs to an OIDC provider,\n * such as `google.com`.\n * @readonly\n */\n idToken?: string;\n /**\n * The OAuth access token associated with the credential if it belongs to an\n * {@link OAuthProvider}, such as `facebook.com`, `twitter.com`, etc.\n * @readonly\n */\n accessToken?: string;\n /**\n * The OAuth access token secret associated with the credential if it belongs to an OAuth 1.0\n * provider, such as `twitter.com`.\n * @readonly\n */\n secret?: string;\n\n private nonce?: string;\n private pendingToken: string | null = null;\n\n /** @internal */\n static _fromParams(params: OAuthCredentialParams): OAuthCredential {\n const cred = new OAuthCredential(params.providerId, params.signInMethod);\n\n if (params.idToken || params.accessToken) {\n // OAuth 2 and either ID token or access token.\n if (params.idToken) {\n cred.idToken = params.idToken;\n }\n\n if (params.accessToken) {\n cred.accessToken = params.accessToken;\n }\n\n // Add nonce if available and no pendingToken is present.\n if (params.nonce && !params.pendingToken) {\n cred.nonce = params.nonce;\n }\n\n if (params.pendingToken) {\n cred.pendingToken = params.pendingToken;\n }\n } else if (params.oauthToken && params.oauthTokenSecret) {\n // OAuth 1 and OAuth token with token secret\n cred.accessToken = params.oauthToken;\n cred.secret = params.oauthTokenSecret;\n } else {\n _fail(AuthErrorCode.ARGUMENT_ERROR);\n }\n\n return cred;\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n idToken: this.idToken,\n accessToken: this.accessToken,\n secret: this.secret,\n nonce: this.nonce,\n pendingToken: this.pendingToken,\n providerId: this.providerId,\n signInMethod: this.signInMethod\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): OAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, ...rest }: OAuthCredentialParams = obj;\n if (!providerId || !signInMethod) {\n return null;\n }\n\n const cred = new OAuthCredential(providerId, signInMethod);\n cred.idToken = rest.idToken || undefined;\n cred.accessToken = rest.accessToken || undefined;\n cred.secret = rest.secret;\n cred.nonce = rest.nonce;\n cred.pendingToken = rest.pendingToken || null;\n return cred;\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true\n };\n\n if (this.pendingToken) {\n request.pendingToken = this.pendingToken;\n } else {\n const postBody: Record = {};\n if (this.idToken) {\n postBody['id_token'] = this.idToken;\n }\n if (this.accessToken) {\n postBody['access_token'] = this.accessToken;\n }\n if (this.secret) {\n postBody['oauth_token_secret'] = this.secret;\n }\n\n postBody['providerId'] = this.providerId;\n if (this.nonce && !this.pendingToken) {\n postBody['nonce'] = this.nonce;\n }\n\n request.postBody = querystring(postBody);\n }\n\n return request;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _makeTaggedError,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { AuthErrorCode } from '../../core/errors';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { ServerError, ServerErrorMap } from '../errors';\nimport { Auth } from '../../model/public_types';\n\nexport interface SendPhoneVerificationCodeRequest {\n phoneNumber: string;\n recaptchaToken: string;\n tenantId?: string;\n}\n\nexport interface SendPhoneVerificationCodeResponse {\n sessionInfo: string;\n}\n\nexport async function sendPhoneVerificationCode(\n auth: Auth,\n request: SendPhoneVerificationCodeRequest\n): Promise {\n return _performApiRequest<\n SendPhoneVerificationCodeRequest,\n SendPhoneVerificationCodeResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_VERIFICATION_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberRequest {\n temporaryProof?: string;\n phoneNumber?: string;\n sessionInfo?: string;\n code?: string;\n tenantId?: string;\n}\n\nexport interface LinkWithPhoneNumberRequest\n extends SignInWithPhoneNumberRequest {\n idToken: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberResponse extends IdTokenResponse {\n temporaryProof?: string;\n phoneNumber?: string;\n}\n\nexport async function signInWithPhoneNumber(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function linkWithPhoneNumber(\n auth: Auth,\n request: LinkWithPhoneNumberRequest\n): Promise {\n const response = await _performSignInRequest<\n LinkWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n if (response.temporaryProof) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, response);\n }\n return response;\n}\n\ninterface VerifyPhoneNumberForExistingRequest\n extends SignInWithPhoneNumberRequest {\n operation: 'REAUTH';\n}\n\nconst VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_: Partial<\n ServerErrorMap\n> = {\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.USER_DELETED\n};\n\nexport async function verifyPhoneNumberForExisting(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n const apiRequest: VerifyPhoneNumberForExistingRequest = {\n ...request,\n operation: 'REAUTH'\n };\n return _performSignInRequest<\n VerifyPhoneNumberForExistingRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, apiRequest),\n VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport {\n linkWithPhoneNumber,\n signInWithPhoneNumber,\n SignInWithPhoneNumberRequest,\n verifyPhoneNumberForExisting\n} from '../../api/authentication/sms';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nexport interface PhoneAuthCredentialParameters {\n verificationId?: string;\n verificationCode?: string;\n phoneNumber?: string;\n temporaryProof?: string;\n}\n\n/**\n * Represents the credentials returned by {@link PhoneAuthProvider}.\n *\n * @public\n */\nexport class PhoneAuthCredential extends AuthCredential {\n private constructor(private readonly params: PhoneAuthCredentialParameters) {\n super(ProviderId.PHONE, SignInMethod.PHONE);\n }\n\n /** @internal */\n static _fromVerification(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ verificationId, verificationCode });\n }\n\n /** @internal */\n static _fromTokenResponse(\n phoneNumber: string,\n temporaryProof: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ phoneNumber, temporaryProof });\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithPhoneNumber(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return linkWithPhoneNumber(auth, {\n idToken,\n ...this._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return verifyPhoneNumberForExisting(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _makeVerificationRequest(): SignInWithPhoneNumberRequest {\n const { temporaryProof, phoneNumber, verificationId, verificationCode } =\n this.params;\n if (temporaryProof && phoneNumber) {\n return { temporaryProof, phoneNumber };\n }\n\n return {\n sessionInfo: verificationId,\n code: verificationCode\n };\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n const obj: Record = {\n providerId: this.providerId\n };\n if (this.params.phoneNumber) {\n obj.phoneNumber = this.params.phoneNumber;\n }\n if (this.params.temporaryProof) {\n obj.temporaryProof = this.params.temporaryProof;\n }\n if (this.params.verificationCode) {\n obj.verificationCode = this.params.verificationCode;\n }\n if (this.params.verificationId) {\n obj.verificationId = this.params.verificationId;\n }\n\n return obj;\n }\n\n /** Generates a phone credential based on a plain object or a JSON string. */\n static fromJSON(json: object | string): PhoneAuthCredential | null {\n if (typeof json === 'string') {\n json = JSON.parse(json);\n }\n\n const { verificationId, verificationCode, phoneNumber, temporaryProof } =\n json as { [key: string]: string };\n if (\n !verificationCode &&\n !verificationId &&\n !phoneNumber &&\n !temporaryProof\n ) {\n return null;\n }\n\n return new PhoneAuthCredential({\n verificationId,\n verificationCode,\n phoneNumber,\n temporaryProof\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { extractQuerystring, querystringDecode } from '@firebase/util';\nimport { ActionCodeOperation } from '../model/public_types';\nimport { AuthErrorCode } from './errors';\nimport { _assert } from './util/assert';\n\n/**\n * Enums for fields in URL query string.\n *\n * @enum {string}\n */\nconst enum QueryField {\n API_KEY = 'apiKey',\n CODE = 'oobCode',\n CONTINUE_URL = 'continueUrl',\n LANGUAGE_CODE = 'languageCode',\n MODE = 'mode',\n TENANT_ID = 'tenantId'\n}\n\n/**\n * Maps the mode string in action code URL to Action Code Info operation.\n *\n * @param mode\n */\nfunction parseMode(mode: string | null): ActionCodeOperation | null {\n switch (mode) {\n case 'recoverEmail':\n return ActionCodeOperation.RECOVER_EMAIL;\n case 'resetPassword':\n return ActionCodeOperation.PASSWORD_RESET;\n case 'signIn':\n return ActionCodeOperation.EMAIL_SIGNIN;\n case 'verifyEmail':\n return ActionCodeOperation.VERIFY_EMAIL;\n case 'verifyAndChangeEmail':\n return ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n case 'revertSecondFactorAddition':\n return ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION;\n default:\n return null;\n }\n}\n\n/**\n * Helper to parse FDL links\n *\n * @param url\n */\nfunction parseDeepLink(url: string): string {\n const link = querystringDecode(extractQuerystring(url))['link'];\n\n // Double link case (automatic redirect).\n const doubleDeepLink = link\n ? querystringDecode(extractQuerystring(link))['deep_link_id']\n : null;\n // iOS custom scheme links.\n const iOSDeepLink = querystringDecode(extractQuerystring(url))[\n 'deep_link_id'\n ];\n const iOSDoubleDeepLink = iOSDeepLink\n ? querystringDecode(extractQuerystring(iOSDeepLink))['link']\n : null;\n return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url;\n}\n\n/**\n * A utility class to parse email action URLs such as password reset, email verification,\n * email link sign in, etc.\n *\n * @public\n */\nexport class ActionCodeURL {\n /**\n * The API key of the email action link.\n */\n readonly apiKey: string;\n /**\n * The action code of the email action link.\n */\n readonly code: string;\n /**\n * The continue URL of the email action link. Null if not provided.\n */\n readonly continueUrl: string | null;\n /**\n * The language code of the email action link. Null if not provided.\n */\n readonly languageCode: string | null;\n /**\n * The action performed by the email action link. It returns from one of the types from\n * {@link ActionCodeInfo}\n */\n readonly operation: string;\n /**\n * The tenant ID of the email action link. Null if the email action is from the parent project.\n */\n readonly tenantId: string | null;\n\n /**\n * @param actionLink - The link from which to extract the URL.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @internal\n */\n constructor(actionLink: string) {\n const searchParams = querystringDecode(extractQuerystring(actionLink));\n const apiKey = searchParams[QueryField.API_KEY] ?? null;\n const code = searchParams[QueryField.CODE] ?? null;\n const operation = parseMode(searchParams[QueryField.MODE] ?? null);\n // Validate API key, code and mode.\n _assert(apiKey && code && operation, AuthErrorCode.ARGUMENT_ERROR);\n this.apiKey = apiKey;\n this.operation = operation;\n this.code = code;\n this.continueUrl = searchParams[QueryField.CONTINUE_URL] ?? null;\n this.languageCode = searchParams[QueryField.LANGUAGE_CODE] ?? null;\n this.tenantId = searchParams[QueryField.TENANT_ID] ?? null;\n }\n\n /**\n * Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,\n * otherwise returns null.\n *\n * @param link - The email action link string.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @public\n */\n static parseLink(link: string): ActionCodeURL | null {\n const actionLink = parseDeepLink(link);\n try {\n return new ActionCodeURL(actionLink);\n } catch {\n return null;\n }\n }\n}\n\n/**\n * Parses the email action link string and returns an {@link ActionCodeURL} if\n * the link is valid, otherwise returns null.\n *\n * @public\n */\nexport function parseActionCodeURL(link: string): ActionCodeURL | null {\n return ActionCodeURL.parseLink(link);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\nimport { AuthProvider } from '../../model/public_types';\n\nimport { ActionCodeURL } from '../action_code_url';\nimport { EmailAuthCredential } from '../credentials/email';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\n\n/**\n * Provider for generating {@link EmailAuthCredential}.\n *\n * @public\n */\nexport class EmailAuthProvider implements AuthProvider {\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n static readonly PROVIDER_ID: 'password' = ProviderId.PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_PASSWORD.\n */\n static readonly EMAIL_PASSWORD_SIGN_IN_METHOD: 'password' =\n SignInMethod.EMAIL_PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_LINK.\n */\n static readonly EMAIL_LINK_SIGN_IN_METHOD: 'emailLink' =\n SignInMethod.EMAIL_LINK;\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n readonly providerId = EmailAuthProvider.PROVIDER_ID;\n\n /**\n * Initialize an {@link AuthCredential} using an email and password.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credential(email, password);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * const userCredential = await signInWithEmailAndPassword(auth, email, password);\n * ```\n *\n * @param email - Email address.\n * @param password - User account password.\n * @returns The auth provider credential.\n */\n static credential(email: string, password: string): EmailAuthCredential {\n return EmailAuthCredential._fromEmailAndPassword(email, password);\n }\n\n /**\n * Initialize an {@link AuthCredential} using an email and an email link after a sign in with\n * email link operation.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credentialWithLink(auth, email, emailLink);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * await sendSignInLinkToEmail(auth, email);\n * // Obtain emailLink from user.\n * const userCredential = await signInWithEmailLink(auth, email, emailLink);\n * ```\n *\n * @param auth - The {@link Auth} instance used to verify the link.\n * @param email - Email address.\n * @param emailLink - Sign-in email link.\n * @returns - The auth provider credential.\n */\n static credentialWithLink(\n email: string,\n emailLink: string\n ): EmailAuthCredential {\n const actionCodeUrl = ActionCodeURL.parseLink(emailLink);\n _assert(actionCodeUrl, AuthErrorCode.ARGUMENT_ERROR);\n\n return EmailAuthCredential._fromEmailAndCode(\n email,\n actionCodeUrl.code,\n actionCodeUrl.tenantId\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider } from '../../model/public_types';\n\n/**\n * Map of OAuth Custom Parameters.\n *\n * @public\n */\nexport type CustomParameters = Record;\n\n/**\n * The base class for all Federated providers (OAuth (including OIDC), SAML).\n *\n * This class is not meant to be instantiated directly.\n *\n * @public\n */\nexport abstract class FederatedAuthProvider implements AuthProvider {\n /** @internal */\n defaultLanguageCode: string | null = null;\n /** @internal */\n private customParameters: CustomParameters = {};\n\n /**\n * Constructor for generic OAuth providers.\n *\n * @param providerId - Provider for which credentials should be generated.\n */\n constructor(readonly providerId: string) {}\n\n /**\n * Set the language gode.\n *\n * @param languageCode - language code\n */\n setDefaultLanguage(languageCode: string | null): void {\n this.defaultLanguageCode = languageCode;\n }\n\n /**\n * Sets the OAuth custom parameters to pass in an OAuth request for popup and redirect sign-in\n * operations.\n *\n * @remarks\n * For a detailed list, check the reserved required OAuth 2.0 parameters such as `client_id`,\n * `redirect_uri`, `scope`, `response_type`, and `state` are not allowed and will be ignored.\n *\n * @param customOAuthParameters - The custom OAuth parameters to pass in the OAuth request.\n */\n setCustomParameters(customOAuthParameters: CustomParameters): AuthProvider {\n this.customParameters = customOAuthParameters;\n return this;\n }\n\n /**\n * Retrieve the current list of {@link CustomParameters}.\n */\n getCustomParameters(): CustomParameters {\n return this.customParameters;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, UserCredential } from '../../model/public_types';\n\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\nimport { OAuthCredential, OAuthCredentialParams } from '../credentials/oauth';\nimport { UserCredentialInternal } from '../../model/user';\nimport { FirebaseError } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { SignInWithIdpResponse } from '../../../internal';\nimport { FederatedAuthProvider } from './federated';\n\n/**\n * Defines the options for initializing an {@link OAuthCredential}.\n *\n * @remarks\n * For ID tokens with nonce claim, the raw nonce has to also be provided.\n *\n * @public\n */\nexport interface OAuthCredentialOptions {\n /**\n * The OAuth ID token used to initialize the {@link OAuthCredential}.\n */\n idToken?: string;\n /**\n * The OAuth access token used to initialize the {@link OAuthCredential}.\n */\n accessToken?: string;\n /**\n * The raw nonce associated with the ID token.\n *\n * @remarks\n * It is required when an ID token with a nonce field is provided. The SHA-256 hash of the\n * raw nonce must match the nonce field in the ID token.\n */\n rawNonce?: string;\n}\n\n/**\n * Common code to all OAuth providers. This is separate from the\n * {@link OAuthProvider} so that child providers (like\n * {@link GoogleAuthProvider}) don't inherit the `credential` instance method.\n * Instead, they rely on a static `credential` method.\n */\nexport abstract class BaseOAuthProvider\n extends FederatedAuthProvider\n implements AuthProvider\n{\n /** @internal */\n private scopes: string[] = [];\n\n /**\n * Add an OAuth scope to the credential.\n *\n * @param scope - Provider OAuth scope to add.\n */\n addScope(scope: string): AuthProvider {\n // If not already added, add scope to list.\n if (!this.scopes.includes(scope)) {\n this.scopes.push(scope);\n }\n return this;\n }\n\n /**\n * Retrieve the current list of OAuth scopes.\n */\n getScopes(): string[] {\n return [...this.scopes];\n }\n}\n\n/**\n * Provider for generating generic {@link OAuthCredential}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new OAuthProvider('google.com');\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new OAuthProvider('google.com');\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class OAuthProvider extends BaseOAuthProvider {\n /**\n * Creates an {@link OAuthCredential} from a JSON string or a plain object.\n * @param json - A plain object or a JSON string\n */\n static credentialFromJSON(json: object | string): OAuthCredential {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n _assert(\n 'providerId' in obj && 'signInMethod' in obj,\n AuthErrorCode.ARGUMENT_ERROR\n );\n return OAuthCredential._fromParams(obj);\n }\n\n /**\n * Creates a {@link OAuthCredential} from a generic OAuth provider's access token or ID token.\n *\n * @remarks\n * The raw nonce is required when an ID token with a nonce field is provided. The SHA-256 hash of\n * the raw nonce must match the nonce field in the ID token.\n *\n * @example\n * ```javascript\n * // `googleUser` from the onsuccess Google Sign In callback.\n * // Initialize a generate OAuth provider with a `google.com` providerId.\n * const provider = new OAuthProvider('google.com');\n * const credential = provider.credential({\n * idToken: googleUser.getAuthResponse().id_token,\n * });\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param params - Either the options object containing the ID token, access token and raw nonce\n * or the ID token string.\n */\n credential(params: OAuthCredentialOptions): OAuthCredential {\n return this._credential({ ...params, nonce: params.rawNonce });\n }\n\n /** An internal credential method that accepts more permissive options */\n private _credential(\n params: Omit\n ): OAuthCredential {\n _assert(params.idToken || params.accessToken, AuthErrorCode.ARGUMENT_ERROR);\n // For OAuthCredential, sign in method is same as providerId.\n return OAuthCredential._fromParams({\n ...params,\n providerId: this.providerId,\n signInMethod: this.providerId\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static oauthCredentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const {\n oauthIdToken,\n oauthAccessToken,\n oauthTokenSecret,\n pendingToken,\n nonce,\n providerId\n } = tokenResponse as SignInWithIdpResponse;\n if (\n !oauthAccessToken &&\n !oauthTokenSecret &&\n !oauthIdToken &&\n !pendingToken\n ) {\n return null;\n }\n\n if (!providerId) {\n return null;\n }\n\n try {\n return new OAuthProvider(providerId)._credential({\n idToken: oauthIdToken,\n accessToken: oauthAccessToken,\n nonce,\n pendingToken\n });\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.FACEBOOK.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('user_birthday');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * provider.addScope('user_birthday');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class FacebookAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.FACEBOOK. */\n static readonly FACEBOOK_SIGN_IN_METHOD: 'facebook.com' =\n SignInMethod.FACEBOOK;\n /** Always set to {@link ProviderId}.FACEBOOK. */\n static readonly PROVIDER_ID: 'facebook.com' = ProviderId.FACEBOOK;\n\n constructor() {\n super(ProviderId.FACEBOOK);\n }\n\n /**\n * Creates a credential for Facebook.\n *\n * @example\n * ```javascript\n * // `event` from the Facebook auth.authResponseChange callback.\n * const credential = FacebookAuthProvider.credential(event.authResponse.accessToken);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param accessToken - Facebook access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: FacebookAuthProvider.PROVIDER_ID,\n signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an an {@link OAuthCredential} for {@link ProviderId}.GOOGLE.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GoogleAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GoogleAuthProvider();\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class GoogleAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GOOGLE. */\n static readonly GOOGLE_SIGN_IN_METHOD: 'google.com' = SignInMethod.GOOGLE;\n /** Always set to {@link ProviderId}.GOOGLE. */\n static readonly PROVIDER_ID: 'google.com' = ProviderId.GOOGLE;\n\n constructor() {\n super(ProviderId.GOOGLE);\n this.addScope('profile');\n }\n\n /**\n * Creates a credential for Google. At least one of ID token and access token is required.\n *\n * @example\n * ```javascript\n * // \\`googleUser\\` from the onsuccess Google Sign In callback.\n * const credential = GoogleAuthProvider.credential(googleUser.getAuthResponse().id_token);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param idToken - Google ID token.\n * @param accessToken - Google access token.\n */\n static credential(\n idToken?: string | null,\n accessToken?: string | null\n ): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GoogleAuthProvider.PROVIDER_ID,\n signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD,\n idToken,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const { oauthIdToken, oauthAccessToken } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthIdToken && !oauthAccessToken) {\n // This could be an oauth 1 credential or a phone credential\n return null;\n }\n\n try {\n return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.GITHUB.\n *\n * @remarks\n * GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect directly, or use\n * the {@link signInWithPopup} handler:\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GithubAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('repo');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Github Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GithubAuthProvider();\n * provider.addScope('repo');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Github Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class GithubAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GITHUB. */\n static readonly GITHUB_SIGN_IN_METHOD: 'github.com' = SignInMethod.GITHUB;\n /** Always set to {@link ProviderId}.GITHUB. */\n static readonly PROVIDER_ID: 'github.com' = ProviderId.GITHUB;\n\n constructor() {\n super(ProviderId.GITHUB);\n }\n\n /**\n * Creates a credential for Github.\n *\n * @param accessToken - Github access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GithubAuthProvider.PROVIDER_ID,\n signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents the SAML credentials returned by an {@link SAMLAuthProvider}.\n *\n * @public\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\n/**\n * @public\n */\nexport class SAMLAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n providerId: string,\n private readonly pendingToken: string\n ) {\n super(providerId, providerId);\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n signInMethod: this.signInMethod,\n providerId: this.providerId,\n pendingToken: this.pendingToken\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): SAMLAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, pendingToken }: Record =\n obj;\n if (\n !providerId ||\n !signInMethod ||\n !pendingToken ||\n providerId !== signInMethod\n ) {\n return null;\n }\n\n return new SAMLAuthCredential(providerId, pendingToken);\n }\n\n /**\n * Helper static method to avoid exposing the constructor to end users.\n *\n * @internal\n */\n static _create(providerId: string, pendingToken: string): SAMLAuthCredential {\n return new SAMLAuthCredential(providerId, pendingToken);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n return {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true,\n pendingToken: this.pendingToken\n };\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredential } from '../../model/public_types';\nimport { UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { SAMLAuthCredential } from '../credentials/saml';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { FederatedAuthProvider } from './federated';\n\nconst SAML_PROVIDER_PREFIX = 'saml.';\n\n/**\n * An {@link AuthProvider} for SAML.\n *\n * @public\n */\nexport class SAMLAuthProvider extends FederatedAuthProvider {\n /**\n * Constructor. The providerId must start with \"saml.\"\n * @param providerId - SAML provider ID.\n */\n constructor(providerId: string) {\n _assert(\n providerId.startsWith(SAML_PROVIDER_PREFIX),\n AuthErrorCode.ARGUMENT_ERROR\n );\n super(providerId);\n }\n\n /**\n * Generates an {@link AuthCredential} from a {@link UserCredential} after a\n * successful SAML flow completes.\n *\n * @remarks\n *\n * For example, to get an {@link AuthCredential}, you could write the\n * following code:\n *\n * ```js\n * const userCredential = await signInWithPopup(auth, samlProvider);\n * const credential = SAMLAuthProvider.credentialFromResult(userCredential);\n * ```\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): AuthCredential | null {\n return SAMLAuthProvider.samlCredentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): AuthCredential | null {\n return SAMLAuthProvider.samlCredentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n /**\n * Creates an {@link AuthCredential} from a JSON string or a plain object.\n * @param json - A plain object or a JSON string\n */\n static credentialFromJSON(json: string | object): AuthCredential {\n const credential = SAMLAuthCredential.fromJSON(json);\n _assert(credential, AuthErrorCode.ARGUMENT_ERROR);\n return credential;\n }\n\n private static samlCredentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): SAMLAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const { pendingToken, providerId } = tokenResponse as SignInWithIdpResponse;\n\n if (!pendingToken || !providerId) {\n return null;\n }\n\n try {\n return SAMLAuthCredential._create(providerId, pendingToken);\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * Copyright 2020 Twitter LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.TWITTER.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new TwitterAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new TwitterAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * ```\n *\n * @public\n */\nexport class TwitterAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.TWITTER. */\n static readonly TWITTER_SIGN_IN_METHOD: 'twitter.com' = SignInMethod.TWITTER;\n /** Always set to {@link ProviderId}.TWITTER. */\n static readonly PROVIDER_ID: 'twitter.com' = ProviderId.TWITTER;\n\n constructor() {\n super(ProviderId.TWITTER);\n }\n\n /**\n * Creates a credential for Twitter.\n *\n * @param token - Twitter access token.\n * @param secret - Twitter secret.\n */\n static credential(token: string, secret: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: TwitterAuthProvider.PROVIDER_ID,\n signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD,\n oauthToken: token,\n oauthTokenSecret: secret\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { oauthAccessToken, oauthTokenSecret } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthAccessToken || !oauthTokenSecret) {\n return null;\n }\n\n try {\n return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignUpRequest {\n returnSecureToken?: boolean;\n email?: string;\n password?: string;\n tenantId?: string;\n captchaResponse?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface SignUpResponse extends IdTokenResponse {\n displayName?: string;\n email?: string;\n}\n\nexport async function signUp(\n auth: Auth,\n request: SignUpRequest\n): Promise {\n return _performSignInRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_UP,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { UserImpl } from './user_impl';\nimport { AuthInternal } from '../../model/auth';\nimport { OperationType, ProviderId } from '../../model/enums';\n\ninterface UserCredentialParams {\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse?: PhoneOrOauthTokenResponse;\n readonly operationType: OperationType;\n}\n\nexport class UserCredentialImpl\n implements UserCredentialInternal, UserCredentialParams\n{\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse: PhoneOrOauthTokenResponse | undefined;\n readonly operationType: OperationType;\n\n constructor(params: UserCredentialParams) {\n this.user = params.user;\n this.providerId = params.providerId;\n this._tokenResponse = params._tokenResponse;\n this.operationType = params.operationType;\n }\n\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n operationType: OperationType,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const user = await UserImpl._fromIdTokenResponse(\n auth,\n idTokenResponse,\n isAnonymous\n );\n const providerId = providerIdForResponse(idTokenResponse);\n const userCred = new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: idTokenResponse,\n operationType\n });\n return userCred;\n }\n\n static async _forOperation(\n user: UserInternal,\n operationType: OperationType,\n response: PhoneOrOauthTokenResponse\n ): Promise {\n await user._updateTokensIfNecessary(response, /* reload */ true);\n const providerId = providerIdForResponse(response);\n return new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: response,\n operationType\n });\n }\n}\n\nfunction providerIdForResponse(\n response: IdTokenResponse\n): ProviderId | string | null {\n if (response.providerId) {\n return response.providerId;\n }\n\n if ('phoneNumber' in response) {\n return ProviderId.PHONE;\n }\n\n return null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, UserCredential } from '../../model/public_types';\nimport { signUp } from '../../api/authentication/sign_up';\nimport { UserInternal } from '../../model/user';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { OperationType } from '../../model/enums';\n\n/**\n * Asynchronously signs in as an anonymous user.\n *\n * @remarks\n * If there is already an anonymous user signed in, that user will be returned; otherwise, a\n * new anonymous user identity will be created and returned.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport async function signInAnonymously(auth: Auth): Promise {\n const authInternal = _castAuth(auth);\n await authInternal._initializationPromise;\n if (authInternal.currentUser?.isAnonymous) {\n // If an anonymous user is already signed in, no need to sign them in again.\n return new UserCredentialImpl({\n user: authInternal.currentUser as UserInternal,\n providerId: null,\n operationType: OperationType.SIGN_IN\n });\n }\n const response = await signUp(authInternal, {\n returnSecureToken: true\n });\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response,\n true\n );\n await authInternal._updateCurrentUser(userCredential.user);\n return userCredential;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MultiFactorError as MultiFactorErrorPublic } from '../model/public_types';\nimport { FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../model/auth';\nimport { IdTokenResponse } from '../model/id_token';\nimport { AuthErrorCode } from '../core/errors';\nimport { UserInternal } from '../model/user';\nimport { AuthCredential } from '../core/credentials';\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { OperationType } from '../model/enums';\n\nexport type MultiFactorErrorData = MultiFactorErrorPublic['customData'] & {\n _serverResponse: IdTokenMfaResponse;\n};\n\nexport class MultiFactorError\n extends FirebaseError\n implements MultiFactorErrorPublic\n{\n readonly customData: MultiFactorErrorData;\n\n private constructor(\n auth: AuthInternal,\n error: FirebaseError,\n readonly operationType: OperationType,\n readonly user?: UserInternal\n ) {\n super(error.code, error.message);\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, MultiFactorError.prototype);\n this.customData = {\n appName: auth.name,\n tenantId: auth.tenantId ?? undefined,\n _serverResponse: error.customData!._serverResponse as IdTokenMfaResponse,\n operationType\n };\n }\n\n static _fromErrorAndOperation(\n auth: AuthInternal,\n error: FirebaseError,\n operationType: OperationType,\n user?: UserInternal\n ): MultiFactorError {\n return new MultiFactorError(auth, error, operationType, user);\n }\n}\n\nexport function _processCredentialSavingMfaContextIfNecessary(\n auth: AuthInternal,\n operationType: OperationType,\n credential: AuthCredential,\n user?: UserInternal\n): Promise {\n const idTokenProvider =\n operationType === OperationType.REAUTHENTICATE\n ? credential._getReauthenticationResolver(auth)\n : credential._getIdTokenResponse(auth);\n\n return idTokenProvider.catch(error => {\n if (error.code === `auth/${AuthErrorCode.MFA_REQUIRED}`) {\n throw MultiFactorError._fromErrorAndOperation(\n auth,\n error,\n operationType,\n user\n );\n }\n\n throw error;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ProviderAssociatedObject {\n providerId?: string;\n}\n\n/**\n * Takes a set of UserInfo provider data and converts it to a set of names\n */\nexport function providerDataAsNames(\n providerData: T[]\n): Set {\n return new Set(\n providerData\n .map(({ providerId }) => providerId)\n .filter(pid => !!pid) as string[]\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User } from '../../model/public_types';\n\nimport { deleteLinkedAccounts } from '../../api/account_management/account';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { providerDataAsNames } from '../util/providers';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { _reloadWithoutSaving } from './reload';\nimport { UserCredentialImpl } from './user_credential_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType, ProviderId } from '../../model/enums';\n\n/**\n * Unlinks a provider from a user account.\n *\n * @param user - The user.\n * @param providerId - The provider to unlink.\n *\n * @public\n */\nexport async function unlink(user: User, providerId: string): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(true, userInternal, providerId);\n const { providerUserInfo } = await deleteLinkedAccounts(userInternal.auth, {\n idToken: await userInternal.getIdToken(),\n deleteProvider: [providerId]\n });\n\n const providersLeft = providerDataAsNames(providerUserInfo || []);\n\n userInternal.providerData = userInternal.providerData.filter(pd =>\n providersLeft.has(pd.providerId)\n );\n if (!providersLeft.has(ProviderId.PHONE)) {\n userInternal.phoneNumber = null;\n }\n\n await userInternal.auth._persistUserIfCurrent(userInternal);\n return userInternal;\n}\n\nexport async function _link(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const response = await _logoutIfInvalidated(\n user,\n credential._linkToIdToken(user.auth, await user.getIdToken()),\n bypassAuthState\n );\n return UserCredentialImpl._forOperation(user, OperationType.LINK, response);\n}\n\nexport async function _assertLinkedStatus(\n expected: boolean,\n user: UserInternal,\n provider: string\n): Promise {\n await _reloadWithoutSaving(user);\n const providerIds = providerDataAsNames(user.providerData);\n\n const code =\n expected === false\n ? AuthErrorCode.PROVIDER_ALREADY_LINKED\n : AuthErrorCode.NO_SUCH_PROVIDER;\n _assert(providerIds.has(provider) === expected, user.auth, code);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { OperationType } from '../../model/enums';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert, _fail } from '../util/assert';\nimport { _parseToken } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserCredentialImpl } from './user_credential_impl';\n\nexport async function _reauthenticate(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const { auth } = user;\n const operationType = OperationType.REAUTHENTICATE;\n\n try {\n const response = await _logoutIfInvalidated(\n user,\n _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential,\n user\n ),\n bypassAuthState\n );\n _assert(response.idToken, auth, AuthErrorCode.INTERNAL_ERROR);\n const parsed = _parseToken(response.idToken);\n _assert(parsed, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const { sub: localId } = parsed;\n _assert(user.uid === localId, auth, AuthErrorCode.USER_MISMATCH);\n\n return UserCredentialImpl._forOperation(user, operationType, response);\n } catch (e) {\n // Convert user deleted error into user mismatch\n if ((e as FirebaseError)?.code === `auth/${AuthErrorCode.USER_DELETED}`) {\n _fail(auth, AuthErrorCode.USER_MISMATCH);\n }\n throw e;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential, Auth, User } from '../../model/public_types';\n\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _assertLinkedStatus, _link } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\n\nexport async function _signInWithCredential(\n auth: AuthInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const operationType = OperationType.SIGN_IN;\n const response = await _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential\n );\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n auth,\n operationType,\n response\n );\n\n if (!bypassAuthState) {\n await auth._updateCurrentUser(userCredential.user);\n }\n return userCredential;\n}\n\n/**\n * Asynchronously signs in with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param auth - The {@link Auth} instance.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function signInWithCredential(\n auth: Auth,\n credential: AuthCredential\n): Promise {\n return _signInWithCredential(_castAuth(auth), credential);\n}\n\n/**\n * Links the user account with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function linkWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n\n await _assertLinkedStatus(false, userInternal, credential.providerId);\n\n return _link(userInternal, credential);\n}\n\n/**\n * Re-authenticates a user using a fresh credential.\n *\n * @remarks\n * Use before operations such as {@link updatePassword} that require tokens from recent sign-in\n * attempts. This method can be used to recover from a `CREDENTIAL_TOO_OLD_LOGIN_AGAIN` error\n * or a `TOKEN_EXPIRED` error.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function reauthenticateWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n return _reauthenticate(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, UserCredential } from '../../model/public_types';\n\nimport { signInWithCustomToken as getIdTokenResponse } from '../../api/authentication/custom_token';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { OperationType } from '../../model/enums';\n\n/**\n * Asynchronously signs in using a custom token.\n *\n * @remarks\n * Custom tokens are used to integrate Firebase Auth with existing auth systems, and must\n * be generated by an auth backend using the\n * {@link https://firebase.google.com/docs/reference/admin/node/admin.auth.Auth#createcustomtoken | createCustomToken}\n * method in the {@link https://firebase.google.com/docs/auth/admin | Admin SDK} .\n *\n * Fails with an error if the token is invalid, expired, or not accepted by the Firebase Auth service.\n *\n * @param auth - The {@link Auth} instance.\n * @param customToken - The custom token to sign in with.\n *\n * @public\n */\nexport async function signInWithCustomToken(\n auth: Auth,\n customToken: string\n): Promise {\n const authInternal = _castAuth(auth);\n const response: IdTokenResponse = await getIdTokenResponse(authInternal, {\n token: customToken,\n returnSecureToken: true\n });\n const cred = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response\n );\n await authInternal._updateCurrentUser(cred.user);\n return cred;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithCustomTokenRequest {\n token: string;\n returnSecureToken: boolean;\n tenantId?: string;\n}\n\nexport interface SignInWithCustomTokenResponse extends IdTokenResponse {}\n\nexport async function signInWithCustomToken(\n auth: Auth,\n request: SignInWithCustomTokenRequest\n): Promise {\n return _performSignInRequest<\n SignInWithCustomTokenRequest,\n SignInWithCustomTokenResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_CUSTOM_TOKEN,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FactorId,\n MultiFactorInfo,\n PhoneMultiFactorInfo,\n TotpMultiFactorInfo\n} from '../model/public_types';\nimport {\n PhoneMfaEnrollment,\n MfaEnrollment,\n TotpMfaEnrollment\n} from '../api/account_management/mfa';\nimport { AuthErrorCode } from '../core/errors';\nimport { _fail } from '../core/util/assert';\nimport { AuthInternal } from '../model/auth';\n\nexport abstract class MultiFactorInfoImpl implements MultiFactorInfo {\n readonly uid: string;\n readonly displayName?: string | null;\n readonly enrollmentTime: string;\n\n protected constructor(readonly factorId: FactorId, response: MfaEnrollment) {\n this.uid = response.mfaEnrollmentId;\n this.enrollmentTime = new Date(response.enrolledAt).toUTCString();\n this.displayName = response.displayName;\n }\n\n static _fromServerResponse(\n auth: AuthInternal,\n enrollment: MfaEnrollment\n ): MultiFactorInfoImpl {\n if ('phoneInfo' in enrollment) {\n return PhoneMultiFactorInfoImpl._fromServerResponse(auth, enrollment);\n } else if ('totpInfo' in enrollment) {\n return TotpMultiFactorInfoImpl._fromServerResponse(auth, enrollment);\n }\n return _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n}\n\nexport class PhoneMultiFactorInfoImpl\n extends MultiFactorInfoImpl\n implements PhoneMultiFactorInfo\n{\n readonly phoneNumber: string;\n\n private constructor(response: PhoneMfaEnrollment) {\n super(FactorId.PHONE, response);\n this.phoneNumber = response.phoneInfo;\n }\n\n static _fromServerResponse(\n _auth: AuthInternal,\n enrollment: MfaEnrollment\n ): PhoneMultiFactorInfoImpl {\n return new PhoneMultiFactorInfoImpl(enrollment as PhoneMfaEnrollment);\n }\n}\nexport class TotpMultiFactorInfoImpl\n extends MultiFactorInfoImpl\n implements TotpMultiFactorInfo\n{\n private constructor(response: TotpMfaEnrollment) {\n super(FactorId.TOTP, response);\n }\n\n static _fromServerResponse(\n _auth: AuthInternal,\n enrollment: MfaEnrollment\n ): TotpMultiFactorInfoImpl {\n return new TotpMultiFactorInfoImpl(enrollment as TotpMfaEnrollment);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeSettings, Auth } from '../../model/public_types';\n\nimport { GetOobCodeRequest } from '../../api/authentication/email_and_password';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\n\nexport function _setActionCodeSettingsOnRequest(\n auth: Auth,\n request: GetOobCodeRequest,\n actionCodeSettings: ActionCodeSettings\n): void {\n _assert(\n actionCodeSettings.url?.length > 0,\n auth,\n AuthErrorCode.INVALID_CONTINUE_URI\n );\n _assert(\n typeof actionCodeSettings.dynamicLinkDomain === 'undefined' ||\n actionCodeSettings.dynamicLinkDomain.length > 0,\n auth,\n AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN\n );\n\n request.continueUrl = actionCodeSettings.url;\n request.dynamicLinkDomain = actionCodeSettings.dynamicLinkDomain;\n request.canHandleCodeInApp = actionCodeSettings.handleCodeInApp;\n\n if (actionCodeSettings.iOS) {\n _assert(\n actionCodeSettings.iOS.bundleId.length > 0,\n auth,\n AuthErrorCode.MISSING_IOS_BUNDLE_ID\n );\n request.iOSBundleId = actionCodeSettings.iOS.bundleId;\n }\n\n if (actionCodeSettings.android) {\n _assert(\n actionCodeSettings.android.packageName.length > 0,\n auth,\n AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME\n );\n request.androidInstallApp = actionCodeSettings.android.installApp;\n request.androidMinimumVersionCode =\n actionCodeSettings.android.minimumVersion;\n request.androidPackageName = actionCodeSettings.android.packageName;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeInfo,\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n UserCredential\n} from '../../model/public_types';\n\nimport * as account from '../../api/account_management/email_and_password';\nimport * as authentication from '../../api/authentication/email_and_password';\nimport { signUp, SignUpRequest } from '../../api/authentication/sign_up';\nimport { MultiFactorInfoImpl } from '../../mfa/mfa_info';\nimport { EmailAuthProvider } from '../providers/email';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _assert } from '../util/assert';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { signInWithCredential } from './credential';\nimport { _castAuth } from '../auth/auth_impl';\nimport { AuthErrorCode } from '../errors';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\nimport { injectRecaptchaFields } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\n\n/**\n * Sends a password reset email to the given email address.\n *\n * @remarks\n * To complete the password reset, call {@link confirmPasswordReset} with the code supplied in\n * the email sent to the user, along with the new password specified by the user.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendPasswordResetEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain code from user.\n * await confirmPasswordReset('user@example.com', code);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendPasswordResetEmail(\n auth: Auth,\n email: string,\n actionCodeSettings?: ActionCodeSettings\n): Promise {\n const authInternal = _castAuth(auth);\n const request: authentication.PasswordResetRequest = {\n requestType: ActionCodeOperation.PASSWORD_RESET,\n email,\n clientType: RecaptchaClientType.WEB\n };\n if (authInternal._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n requestWithRecaptcha,\n actionCodeSettings\n );\n }\n await authentication.sendPasswordResetEmail(\n authInternal,\n requestWithRecaptcha\n );\n } else {\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n request,\n actionCodeSettings\n );\n }\n await authentication\n .sendPasswordResetEmail(authInternal, request)\n .catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n 'Password resets are protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the password reset flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n requestWithRecaptcha,\n actionCodeSettings\n );\n }\n await authentication.sendPasswordResetEmail(\n authInternal,\n requestWithRecaptcha\n );\n } else {\n return Promise.reject(error);\n }\n });\n }\n}\n\n/**\n * Completes the password reset process, given a confirmation code and new password.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A confirmation code sent to the user.\n * @param newPassword - The new password.\n *\n * @public\n */\nexport async function confirmPasswordReset(\n auth: Auth,\n oobCode: string,\n newPassword: string\n): Promise {\n await account.resetPassword(getModularInstance(auth), {\n oobCode,\n newPassword\n });\n // Do not return the email.\n}\n\n/**\n * Applies a verification code sent to the user by email or other out-of-band mechanism.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A verification code sent to the user.\n *\n * @public\n */\nexport async function applyActionCode(\n auth: Auth,\n oobCode: string\n): Promise {\n await account.applyActionCode(getModularInstance(auth), { oobCode });\n}\n\n/**\n * Checks a verification code sent to the user by email or other out-of-band mechanism.\n *\n * @returns metadata about the code.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A verification code sent to the user.\n *\n * @public\n */\nexport async function checkActionCode(\n auth: Auth,\n oobCode: string\n): Promise {\n const authModular = getModularInstance(auth);\n const response = await account.resetPassword(authModular, { oobCode });\n\n // Email could be empty only if the request type is EMAIL_SIGNIN or\n // VERIFY_AND_CHANGE_EMAIL.\n // New email should not be empty if the request type is\n // VERIFY_AND_CHANGE_EMAIL.\n // Multi-factor info could not be empty if the request type is\n // REVERT_SECOND_FACTOR_ADDITION.\n const operation = response.requestType;\n _assert(operation, authModular, AuthErrorCode.INTERNAL_ERROR);\n switch (operation) {\n case ActionCodeOperation.EMAIL_SIGNIN:\n break;\n case ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL:\n _assert(response.newEmail, authModular, AuthErrorCode.INTERNAL_ERROR);\n break;\n case ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION:\n _assert(response.mfaInfo, authModular, AuthErrorCode.INTERNAL_ERROR);\n // fall through\n default:\n _assert(response.email, authModular, AuthErrorCode.INTERNAL_ERROR);\n }\n\n // The multi-factor info for revert second factor addition\n let multiFactorInfo: MultiFactorInfoImpl | null = null;\n if (response.mfaInfo) {\n multiFactorInfo = MultiFactorInfoImpl._fromServerResponse(\n _castAuth(authModular),\n response.mfaInfo\n );\n }\n\n return {\n data: {\n email:\n (response.requestType === ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL\n ? response.newEmail\n : response.email) || null,\n previousEmail:\n (response.requestType === ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL\n ? response.email\n : response.newEmail) || null,\n multiFactorInfo\n },\n operation\n };\n}\n\n/**\n * Checks a password reset code sent to the user by email or other out-of-band mechanism.\n *\n * @returns the user's email address if valid.\n *\n * @param auth - The {@link Auth} instance.\n * @param code - A verification code sent to the user.\n *\n * @public\n */\nexport async function verifyPasswordResetCode(\n auth: Auth,\n code: string\n): Promise {\n const { data } = await checkActionCode(getModularInstance(auth), code);\n // Email should always be present since a code was sent to it\n return data.email!;\n}\n\n/**\n * Creates a new user account associated with the specified email address and password.\n *\n * @remarks\n * On successful creation of the user account, this user will also be signed in to your application.\n *\n * User account creation can fail if the account already exists or the password is invalid.\n *\n * Note: The email address acts as a unique identifier for the user and enables an email-based\n * password reset. This function will create a new user account and set the initial user password.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param password - The user's chosen password.\n *\n * @public\n */\nexport async function createUserWithEmailAndPassword(\n auth: Auth,\n email: string,\n password: string\n): Promise {\n const authInternal = _castAuth(auth);\n const request: SignUpRequest = {\n returnSecureToken: true,\n email,\n password,\n clientType: RecaptchaClientType.WEB\n };\n let signUpResponse: Promise;\n if (authInternal._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.SIGN_UP_PASSWORD\n );\n signUpResponse = signUp(authInternal, requestWithRecaptcha);\n } else {\n signUpResponse = signUp(authInternal, request).catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n 'Sign-up is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-up flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.SIGN_UP_PASSWORD\n );\n return signUp(authInternal, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n\n const response = await signUpResponse.catch(error => {\n return Promise.reject(error);\n });\n\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response\n );\n await authInternal._updateCurrentUser(userCredential.user);\n\n return userCredential;\n}\n\n/**\n * Asynchronously signs in using an email and password.\n *\n * @remarks\n * Fails with an error if the email address and password do not match.\n *\n * Note: The user's password is NOT the password used to access the user's email account. The\n * email address serves as a unique identifier for the user, and the password is used to access\n * the user's account in your Firebase project. See also: {@link createUserWithEmailAndPassword}.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The users email address.\n * @param password - The users password.\n *\n * @public\n */\nexport function signInWithEmailAndPassword(\n auth: Auth,\n email: string,\n password: string\n): Promise {\n return signInWithCredential(\n getModularInstance(auth),\n EmailAuthProvider.credential(email, password)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n UserCredential\n} from '../../model/public_types';\n\nimport * as api from '../../api/authentication/email_and_password';\nimport { ActionCodeURL } from '../action_code_url';\nimport { EmailAuthProvider } from '../providers/email';\nimport { _getCurrentUrl } from '../util/location';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { signInWithCredential } from './credential';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { getModularInstance } from '@firebase/util';\nimport { _castAuth } from '../auth/auth_impl';\nimport { injectRecaptchaFields } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\n\n/**\n * Sends a sign-in email link to the user with the specified email.\n *\n * @remarks\n * The sign-in operation has to always be completed in the app unlike other out of band email\n * actions (password reset and email verifications). This is because, at the end of the flow,\n * the user is expected to be signed in and their Auth state persisted within the app.\n *\n * To complete sign in with the email link, call {@link signInWithEmailLink} with the email\n * address and the email link supplied in the email sent to the user.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendSignInLinkToEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain emailLink from the user.\n * if(isSignInWithEmailLink(auth, emailLink)) {\n * await signInWithEmailLink(auth, 'user@example.com', emailLink);\n * }\n * ```\n *\n * @param authInternal - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendSignInLinkToEmail(\n auth: Auth,\n email: string,\n actionCodeSettings: ActionCodeSettings\n): Promise {\n const authInternal = _castAuth(auth);\n const request: api.EmailSignInRequest = {\n requestType: ActionCodeOperation.EMAIL_SIGNIN,\n email,\n clientType: RecaptchaClientType.WEB\n };\n function setActionCodeSettings(\n request: api.EmailSignInRequest,\n actionCodeSettings: ActionCodeSettings\n ): void {\n _assert(\n actionCodeSettings.handleCodeInApp,\n authInternal,\n AuthErrorCode.ARGUMENT_ERROR\n );\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n request,\n actionCodeSettings\n );\n }\n }\n if (authInternal._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);\n await api.sendSignInLinkToEmail(authInternal, requestWithRecaptcha);\n } else {\n setActionCodeSettings(request, actionCodeSettings);\n await api\n .sendSignInLinkToEmail(authInternal, request)\n .catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n 'Email link sign-in is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);\n await api.sendSignInLinkToEmail(authInternal, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n}\n\n/**\n * Checks if an incoming link is a sign-in with email link suitable for {@link signInWithEmailLink}.\n *\n * @param auth - The {@link Auth} instance.\n * @param emailLink - The link sent to the user's email address.\n *\n * @public\n */\nexport function isSignInWithEmailLink(auth: Auth, emailLink: string): boolean {\n const actionCodeUrl = ActionCodeURL.parseLink(emailLink);\n return actionCodeUrl?.operation === ActionCodeOperation.EMAIL_SIGNIN;\n}\n\n/**\n * Asynchronously signs in using an email and sign-in email link.\n *\n * @remarks\n * If no link is passed, the link is inferred from the current URL.\n *\n * Fails with an error if the email address is invalid or OTP in email link expires.\n *\n * Note: Confirm the link is a sign-in email link before calling this method firebase.auth.Auth.isSignInWithEmailLink.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendSignInLinkToEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain emailLink from the user.\n * if(isSignInWithEmailLink(auth, emailLink)) {\n * await signInWithEmailLink(auth, 'user@example.com', emailLink);\n * }\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param emailLink - The link sent to the user's email address.\n *\n * @public\n */\nexport async function signInWithEmailLink(\n auth: Auth,\n email: string,\n emailLink?: string\n): Promise {\n const authModular = getModularInstance(auth);\n const credential = EmailAuthProvider.credentialWithLink(\n email,\n emailLink || _getCurrentUrl()\n );\n // Check if the tenant ID in the email link matches the tenant ID on Auth\n // instance.\n _assert(\n credential._tenantId === (authModular.tenantId || null),\n authModular,\n AuthErrorCode.TENANT_ID_MISMATCH\n );\n return signInWithCredential(authModular, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n User\n} from '../../model/public_types';\n\nimport {\n createAuthUri,\n CreateAuthUriRequest\n} from '../../api/authentication/create_auth_uri';\nimport * as api from '../../api/authentication/email_and_password';\nimport { UserInternal } from '../../model/user';\nimport { _getCurrentUrl, _isHttpOrHttps } from '../util/location';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { getModularInstance } from '@firebase/util';\n\n/**\n * Gets the list of possible sign in methods for the given email address.\n *\n * @remarks\n * This is useful to differentiate methods of sign-in for the same provider, eg.\n * {@link EmailAuthProvider} which has 2 methods of sign-in,\n * {@link SignInMethod}.EMAIL_PASSWORD and\n * {@link SignInMethod}.EMAIL_LINK.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n *\n * @public\n */\nexport async function fetchSignInMethodsForEmail(\n auth: Auth,\n email: string\n): Promise {\n // createAuthUri returns an error if continue URI is not http or https.\n // For environments like Cordova, Chrome extensions, native frameworks, file\n // systems, etc, use http://localhost as continue URL.\n const continueUri = _isHttpOrHttps() ? _getCurrentUrl() : 'http://localhost';\n const request: CreateAuthUriRequest = {\n identifier: email,\n continueUri\n };\n\n const { signinMethods } = await createAuthUri(\n getModularInstance(auth),\n request\n );\n\n return signinMethods || [];\n}\n\n/**\n * Sends a verification email to a user.\n *\n * @remarks\n * The verification process is completed by calling {@link applyActionCode}.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendEmailVerification(user, actionCodeSettings);\n * // Obtain code from the user.\n * await applyActionCode(auth, code);\n * ```\n *\n * @param user - The user.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendEmailVerification(\n user: User,\n actionCodeSettings?: ActionCodeSettings | null\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const idToken = await user.getIdToken();\n const request: api.VerifyEmailRequest = {\n requestType: ActionCodeOperation.VERIFY_EMAIL,\n idToken\n };\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n userInternal.auth,\n request,\n actionCodeSettings\n );\n }\n\n const { email } = await api.sendEmailVerification(userInternal.auth, request);\n\n if (email !== user.email) {\n await user.reload();\n }\n}\n\n/**\n * Sends a verification email to a new email address.\n *\n * @remarks\n * The user's email will be updated to the new one after being verified.\n *\n * If you have a custom email action handler, you can complete the verification process by calling\n * {@link applyActionCode}.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await verifyBeforeUpdateEmail(user, 'newemail@example.com', actionCodeSettings);\n * // Obtain code from the user.\n * await applyActionCode(auth, code);\n * ```\n *\n * @param user - The user.\n * @param newEmail - The new email address to be verified before update.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function verifyBeforeUpdateEmail(\n user: User,\n newEmail: string,\n actionCodeSettings?: ActionCodeSettings | null\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const idToken = await user.getIdToken();\n const request: api.VerifyAndChangeEmailRequest = {\n requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL,\n idToken,\n newEmail\n };\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n userInternal.auth,\n request,\n actionCodeSettings\n );\n }\n\n const { email } = await api.verifyAndChangeEmail(userInternal.auth, request);\n\n if (email !== user.email) {\n // If the local copy of the email on user is outdated, reload the\n // user.\n await user.reload();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { Auth } from '../../model/public_types';\n\nexport interface CreateAuthUriRequest {\n identifier: string;\n continueUri: string;\n tenantId?: string;\n}\n\nexport interface CreateAuthUriResponse {\n signinMethods: string[];\n}\n\nexport async function createAuthUri(\n auth: Auth,\n request: CreateAuthUriRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.CREATE_AUTH_URI,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User } from '../../model/public_types';\n\nimport {\n updateEmailPassword as apiUpdateEmailPassword,\n UpdateEmailPasswordRequest\n} from '../../api/account_management/email_and_password';\nimport { updateProfile as apiUpdateProfile } from '../../api/account_management/profile';\nimport { UserInternal } from '../../model/user';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { getModularInstance } from '@firebase/util';\nimport { ProviderId } from '../../model/enums';\n\n/**\n * Updates a user's profile data.\n *\n * @param user - The user.\n * @param profile - The profile's `displayName` and `photoURL` to update.\n *\n * @public\n */\nexport async function updateProfile(\n user: User,\n {\n displayName,\n photoURL: photoUrl\n }: { displayName?: string | null; photoURL?: string | null }\n): Promise {\n if (displayName === undefined && photoUrl === undefined) {\n return;\n }\n\n const userInternal = getModularInstance(user) as UserInternal;\n const idToken = await userInternal.getIdToken();\n const profileRequest = {\n idToken,\n displayName,\n photoUrl,\n returnSecureToken: true\n };\n const response = await _logoutIfInvalidated(\n userInternal,\n apiUpdateProfile(userInternal.auth, profileRequest)\n );\n\n userInternal.displayName = response.displayName || null;\n userInternal.photoURL = response.photoUrl || null;\n\n // Update the password provider as well\n const passwordProvider = userInternal.providerData.find(\n ({ providerId }) => providerId === ProviderId.PASSWORD\n );\n if (passwordProvider) {\n passwordProvider.displayName = userInternal.displayName;\n passwordProvider.photoURL = userInternal.photoURL;\n }\n\n await userInternal._updateTokensIfNecessary(response);\n}\n\n/**\n * Updates the user's email address.\n *\n * @remarks\n * An email will be sent to the original email address (if it was set) that allows to revoke the\n * email address change, in order to protect them from account hijacking.\n *\n * Important: this is a security sensitive operation that requires the user to have recently signed\n * in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n * @param newEmail - The new email address.\n *\n * @public\n */\nexport function updateEmail(user: User, newEmail: string): Promise {\n return updateEmailOrPassword(\n getModularInstance(user) as UserInternal,\n newEmail,\n null\n );\n}\n\n/**\n * Updates the user's password.\n *\n * @remarks\n * Important: this is a security sensitive operation that requires the user to have recently signed\n * in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n * @param newPassword - The new password.\n *\n * @public\n */\nexport function updatePassword(user: User, newPassword: string): Promise {\n return updateEmailOrPassword(\n getModularInstance(user) as UserInternal,\n null,\n newPassword\n );\n}\n\nasync function updateEmailOrPassword(\n user: UserInternal,\n email: string | null,\n password: string | null\n): Promise {\n const { auth } = user;\n const idToken = await user.getIdToken();\n const request: UpdateEmailPasswordRequest = {\n idToken,\n returnSecureToken: true\n };\n\n if (email) {\n request.email = email;\n }\n\n if (password) {\n request.password = password;\n }\n\n const response = await _logoutIfInvalidated(\n user,\n apiUpdateEmailPassword(auth, request)\n );\n await user._updateTokensIfNecessary(response, /* reload */ true);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface UpdateProfileRequest {\n idToken: string;\n displayName?: string | null;\n photoUrl?: string | null;\n returnSecureToken: boolean;\n}\n\nexport interface UpdateProfileResponse extends IdTokenResponse {\n displayName?: string | null;\n photoUrl?: string | null;\n}\n\nexport async function updateProfile(\n auth: Auth,\n request: UpdateProfileRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SET_ACCOUNT_INFO,\n request\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AdditionalUserInfo, UserCredential } from '../../model/public_types';\nimport { IdTokenResponse, IdTokenResponseKind } from '../../model/id_token';\nimport { _parseToken } from './id_token_result';\nimport { UserCredentialInternal } from '../../model/user';\nimport { ProviderId } from '../../model/enums';\n\n/**\n * Parse the `AdditionalUserInfo` from the ID token response.\n *\n */\nexport function _fromIdTokenResponse(\n idTokenResponse?: IdTokenResponse\n): AdditionalUserInfo | null {\n if (!idTokenResponse) {\n return null;\n }\n const { providerId } = idTokenResponse;\n const profile = idTokenResponse.rawUserInfo\n ? JSON.parse(idTokenResponse.rawUserInfo)\n : {};\n const isNewUser =\n idTokenResponse.isNewUser ||\n idTokenResponse.kind === IdTokenResponseKind.SignupNewUser;\n if (!providerId && idTokenResponse?.idToken) {\n const signInProvider = _parseToken(idTokenResponse.idToken)?.firebase?.[\n 'sign_in_provider'\n ];\n if (signInProvider) {\n const filteredProviderId =\n signInProvider !== ProviderId.ANONYMOUS &&\n signInProvider !== ProviderId.CUSTOM\n ? (signInProvider as ProviderId)\n : null;\n // Uses generic class in accordance with the legacy SDK.\n return new GenericAdditionalUserInfo(isNewUser, filteredProviderId);\n }\n }\n if (!providerId) {\n return null;\n }\n switch (providerId) {\n case ProviderId.FACEBOOK:\n return new FacebookAdditionalUserInfo(isNewUser, profile);\n case ProviderId.GITHUB:\n return new GithubAdditionalUserInfo(isNewUser, profile);\n case ProviderId.GOOGLE:\n return new GoogleAdditionalUserInfo(isNewUser, profile);\n case ProviderId.TWITTER:\n return new TwitterAdditionalUserInfo(\n isNewUser,\n profile,\n idTokenResponse.screenName || null\n );\n case ProviderId.CUSTOM:\n case ProviderId.ANONYMOUS:\n return new GenericAdditionalUserInfo(isNewUser, null);\n default:\n return new GenericAdditionalUserInfo(isNewUser, providerId, profile);\n }\n}\n\nclass GenericAdditionalUserInfo implements AdditionalUserInfo {\n constructor(\n readonly isNewUser: boolean,\n readonly providerId: ProviderId | string | null,\n readonly profile: Record = {}\n ) {}\n}\n\nclass FederatedAdditionalUserInfoWithUsername extends GenericAdditionalUserInfo {\n constructor(\n isNewUser: boolean,\n providerId: ProviderId,\n profile: Record,\n readonly username: string | null\n ) {\n super(isNewUser, providerId, profile);\n }\n}\n\nclass FacebookAdditionalUserInfo extends GenericAdditionalUserInfo {\n constructor(isNewUser: boolean, profile: Record) {\n super(isNewUser, ProviderId.FACEBOOK, profile);\n }\n}\n\nclass GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {\n constructor(isNewUser: boolean, profile: Record) {\n super(\n isNewUser,\n ProviderId.GITHUB,\n profile,\n typeof profile?.login === 'string' ? profile?.login : null\n );\n }\n}\n\nclass GoogleAdditionalUserInfo extends GenericAdditionalUserInfo {\n constructor(isNewUser: boolean, profile: Record) {\n super(isNewUser, ProviderId.GOOGLE, profile);\n }\n}\n\nclass TwitterAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {\n constructor(\n isNewUser: boolean,\n profile: Record,\n screenName: string | null\n ) {\n super(isNewUser, ProviderId.TWITTER, profile, screenName);\n }\n}\n\n/**\n * Extracts provider specific {@link AdditionalUserInfo} for the given credential.\n *\n * @param userCredential - The user credential.\n *\n * @public\n */\nexport function getAdditionalUserInfo(\n userCredential: UserCredential\n): AdditionalUserInfo | null {\n const { user, _tokenResponse } = userCredential as UserCredentialInternal;\n if (user.isAnonymous && !_tokenResponse) {\n // Handle the special case where signInAnonymously() gets called twice.\n // No network call is made so there's nothing to actually fill this in\n return {\n providerId: null,\n isNewUser: false,\n profile: null\n };\n }\n\n return _fromIdTokenResponse(_tokenResponse);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getModularInstance } from '@firebase/util';\nimport {\n Auth,\n NextOrObserver,\n Persistence,\n User,\n CompleteFn,\n ErrorFn,\n Unsubscribe\n} from '../model/public_types';\nimport { _castAuth } from '../core/auth/auth_impl';\n\nexport {\n debugErrorMap,\n prodErrorMap,\n AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as AuthErrorCodes\n} from './errors';\n\n// Non-optional auth methods.\n/**\n * Changes the type of persistence on the {@link Auth} instance for the currently saved\n * `Auth` session and applies this type of persistence for future sign-in requests, including\n * sign-in with redirect requests.\n *\n * @remarks\n * This makes it easy for a user signing in to specify whether their session should be\n * remembered or not. It also makes it easier to never persist the `Auth` state for applications\n * that are shared by other users or have sensitive data.\n *\n * @example\n * ```javascript\n * setPersistence(auth, browserSessionPersistence);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param persistence - The {@link Persistence} to use.\n * @returns A `Promise` that resolves once the persistence change has completed\n *\n * @public\n */\nexport function setPersistence(\n auth: Auth,\n persistence: Persistence\n): Promise {\n return getModularInstance(auth).setPersistence(persistence);\n}\n\n/**\n * Loads the reCAPTCHA configuration into the `Auth` instance.\n *\n * @remarks\n * This will load the reCAPTCHA config, which indicates whether the reCAPTCHA\n * verification flow should be triggered for each auth provider, into the\n * current Auth session.\n *\n * If initializeRecaptchaConfig() is not invoked, the auth flow will always start\n * without reCAPTCHA verification. If the provider is configured to require reCAPTCHA\n * verification, the SDK will transparently load the reCAPTCHA config and restart the\n * auth flows.\n *\n * Thus, by calling this optional method, you will reduce the latency of future auth flows.\n * Loading the reCAPTCHA config early will also enhance the signal collected by reCAPTCHA.\n *\n * @example\n * ```javascript\n * initializeRecaptchaConfig(auth);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function initializeRecaptchaConfig(auth: Auth): Promise {\n const authInternal = _castAuth(auth);\n return authInternal.initializeRecaptchaConfig();\n}\n\n/**\n * Adds an observer for changes to the signed-in user's ID token.\n *\n * @remarks\n * This includes sign-in, sign-out, and token refresh events.\n * This will not be triggered automatically upon ID token expiration. Use {@link User.getIdToken} to refresh the ID token.\n *\n * @param auth - The {@link Auth} instance.\n * @param nextOrObserver - callback triggered on change.\n * @param error - Deprecated. This callback is never triggered. Errors\n * on signing in/out can be caught in promises returned from\n * sign-in/sign-out functions.\n * @param completed - Deprecated. This callback is never triggered.\n *\n * @public\n */\nexport function onIdTokenChanged(\n auth: Auth,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n): Unsubscribe {\n return getModularInstance(auth).onIdTokenChanged(\n nextOrObserver,\n error,\n completed\n );\n}\n/**\n * Adds a blocking callback that runs before an auth state change\n * sets a new user.\n *\n * @param auth - The {@link Auth} instance.\n * @param callback - callback triggered before new user value is set.\n * If this throws, it blocks the user from being set.\n * @param onAbort - callback triggered if a later `beforeAuthStateChanged()`\n * callback throws, allowing you to undo any side effects.\n */\nexport function beforeAuthStateChanged(\n auth: Auth,\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n): Unsubscribe {\n return getModularInstance(auth).beforeAuthStateChanged(callback, onAbort);\n}\n/**\n * Adds an observer for changes to the user's sign-in state.\n *\n * @remarks\n * To keep the old behavior, see {@link onIdTokenChanged}.\n *\n * @param auth - The {@link Auth} instance.\n * @param nextOrObserver - callback triggered on change.\n * @param error - Deprecated. This callback is never triggered. Errors\n * on signing in/out can be caught in promises returned from\n * sign-in/sign-out functions.\n * @param completed - Deprecated. This callback is never triggered.\n *\n * @public\n */\nexport function onAuthStateChanged(\n auth: Auth,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n): Unsubscribe {\n return getModularInstance(auth).onAuthStateChanged(\n nextOrObserver,\n error,\n completed\n );\n}\n/**\n * Sets the current language to the default device/browser preference.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function useDeviceLanguage(auth: Auth): void {\n getModularInstance(auth).useDeviceLanguage();\n}\n/**\n * Asynchronously sets the provided user as {@link Auth.currentUser} on the\n * {@link Auth} instance.\n *\n * @remarks\n * A new instance copy of the user provided will be made and set as currentUser.\n *\n * This will trigger {@link onAuthStateChanged} and {@link onIdTokenChanged} listeners\n * like other sign in methods.\n *\n * The operation fails with an error if the user to be updated belongs to a different Firebase\n * project.\n *\n * @param auth - The {@link Auth} instance.\n * @param user - The new {@link User}.\n *\n * @public\n */\nexport function updateCurrentUser(\n auth: Auth,\n user: User | null\n): Promise {\n return getModularInstance(auth).updateCurrentUser(user);\n}\n/**\n * Signs out the current user.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function signOut(auth: Auth): Promise {\n return getModularInstance(auth).signOut();\n}\n\nexport { initializeAuth } from './auth/initialize';\nexport { connectAuthEmulator } from './auth/emulator';\n\n// credentials\nexport { AuthCredential } from './credentials';\nexport { EmailAuthCredential } from './credentials/email';\nexport { OAuthCredential } from './credentials/oauth';\nexport { PhoneAuthCredential } from './credentials/phone';\n\n// persistence\nexport { inMemoryPersistence } from './persistence/in_memory';\n\n// providers\nexport { EmailAuthProvider } from './providers/email';\nexport { FacebookAuthProvider } from './providers/facebook';\nexport { CustomParameters } from './providers/federated';\nexport { GoogleAuthProvider } from './providers/google';\nexport { GithubAuthProvider } from './providers/github';\nexport { OAuthProvider, OAuthCredentialOptions } from './providers/oauth';\nexport { SAMLAuthProvider } from './providers/saml';\nexport { TwitterAuthProvider } from './providers/twitter';\n\n// strategies\nexport { signInAnonymously } from './strategies/anonymous';\nexport {\n signInWithCredential,\n linkWithCredential,\n reauthenticateWithCredential\n} from './strategies/credential';\nexport { signInWithCustomToken } from './strategies/custom_token';\nexport {\n sendPasswordResetEmail,\n confirmPasswordReset,\n applyActionCode,\n checkActionCode,\n verifyPasswordResetCode,\n createUserWithEmailAndPassword,\n signInWithEmailAndPassword\n} from './strategies/email_and_password';\nexport {\n sendSignInLinkToEmail,\n isSignInWithEmailLink,\n signInWithEmailLink\n} from './strategies/email_link';\nexport {\n fetchSignInMethodsForEmail,\n sendEmailVerification,\n verifyBeforeUpdateEmail\n} from './strategies/email';\n\n// core\nexport { ActionCodeURL, parseActionCodeURL } from './action_code_url';\n\n// user\nexport {\n updateProfile,\n updateEmail,\n updatePassword\n} from './user/account_info';\nexport { getIdToken, getIdTokenResult } from './user/id_token_result';\nexport { unlink } from './user/link_unlink';\nexport { getAdditionalUserInfo } from './user/additional_user_info';\n\n// Non-optional user methods.\nexport { reload } from './user/reload';\n/**\n * Deletes and signs out the user.\n *\n * @remarks\n * Important: this is a security-sensitive operation that requires the user to have recently\n * signed in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function deleteUser(user: User): Promise {\n return getModularInstance(user).delete();\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AuthInternal } from '../model/auth';\nimport { MultiFactorSession } from '../model/public_types';\n\nexport const enum MultiFactorSessionType {\n ENROLL = 'enroll',\n SIGN_IN = 'signin'\n}\n\ninterface SerializedMultiFactorSession {\n multiFactorSession: {\n idToken?: string;\n pendingCredential?: string;\n };\n}\n\nexport class MultiFactorSessionImpl implements MultiFactorSession {\n private constructor(\n readonly type: MultiFactorSessionType,\n readonly credential: string,\n readonly auth?: AuthInternal\n ) {}\n\n static _fromIdtoken(\n idToken: string,\n auth?: AuthInternal\n ): MultiFactorSessionImpl {\n return new MultiFactorSessionImpl(\n MultiFactorSessionType.ENROLL,\n idToken,\n auth\n );\n }\n\n static _fromMfaPendingCredential(\n mfaPendingCredential: string\n ): MultiFactorSessionImpl {\n return new MultiFactorSessionImpl(\n MultiFactorSessionType.SIGN_IN,\n mfaPendingCredential\n );\n }\n\n toJSON(): SerializedMultiFactorSession {\n const key =\n this.type === MultiFactorSessionType.ENROLL\n ? 'idToken'\n : 'pendingCredential';\n return {\n multiFactorSession: {\n [key]: this.credential\n }\n };\n }\n\n static fromJSON(\n obj: Partial\n ): MultiFactorSessionImpl | null {\n if (obj?.multiFactorSession) {\n if (obj.multiFactorSession?.pendingCredential) {\n return MultiFactorSessionImpl._fromMfaPendingCredential(\n obj.multiFactorSession.pendingCredential\n );\n } else if (obj.multiFactorSession?.idToken) {\n return MultiFactorSessionImpl._fromIdtoken(\n obj.multiFactorSession.idToken\n );\n }\n }\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n MultiFactorResolver,\n UserCredential,\n MultiFactorError\n} from '../model/public_types';\n\nimport { _castAuth } from '../core/auth/auth_impl';\nimport { AuthErrorCode } from '../core/errors';\nimport { UserCredentialImpl } from '../core/user/user_credential_impl';\nimport { _assert, _fail } from '../core/util/assert';\nimport { UserCredentialInternal } from '../model/user';\nimport { MultiFactorAssertionImpl } from './mfa_assertion';\nimport { MultiFactorError as MultiFactorErrorInternal } from './mfa_error';\nimport { MultiFactorInfoImpl } from './mfa_info';\nimport { MultiFactorSessionImpl } from './mfa_session';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../model/enums';\n\nexport class MultiFactorResolverImpl implements MultiFactorResolver {\n private constructor(\n readonly session: MultiFactorSessionImpl,\n readonly hints: MultiFactorInfoImpl[],\n private readonly signInResolver: (\n assertion: MultiFactorAssertionImpl\n ) => Promise\n ) {}\n\n /** @internal */\n static _fromError(\n authExtern: Auth,\n error: MultiFactorErrorInternal\n ): MultiFactorResolverImpl {\n const auth = _castAuth(authExtern);\n const serverResponse = error.customData._serverResponse;\n const hints = (serverResponse.mfaInfo || []).map(enrollment =>\n MultiFactorInfoImpl._fromServerResponse(auth, enrollment)\n );\n\n _assert(\n serverResponse.mfaPendingCredential,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const session = MultiFactorSessionImpl._fromMfaPendingCredential(\n serverResponse.mfaPendingCredential\n );\n\n return new MultiFactorResolverImpl(\n session,\n hints,\n async (\n assertion: MultiFactorAssertionImpl\n ): Promise => {\n const mfaResponse = await assertion._process(auth, session);\n // Clear out the unneeded fields from the old login response\n delete serverResponse.mfaInfo;\n delete serverResponse.mfaPendingCredential;\n\n // Use in the new token & refresh token in the old response\n const idTokenResponse = {\n ...serverResponse,\n idToken: mfaResponse.idToken,\n refreshToken: mfaResponse.refreshToken\n };\n\n // TODO: we should collapse this switch statement into UserCredentialImpl._forOperation and have it support the SIGN_IN case\n switch (error.operationType) {\n case OperationType.SIGN_IN:\n const userCredential =\n await UserCredentialImpl._fromIdTokenResponse(\n auth,\n error.operationType,\n idTokenResponse\n );\n await auth._updateCurrentUser(userCredential.user);\n return userCredential;\n case OperationType.REAUTHENTICATE:\n _assert(error.user, auth, AuthErrorCode.INTERNAL_ERROR);\n return UserCredentialImpl._forOperation(\n error.user,\n error.operationType,\n idTokenResponse\n );\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n );\n }\n\n async resolveSignIn(\n assertionExtern: MultiFactorAssertionImpl\n ): Promise {\n const assertion = assertionExtern as MultiFactorAssertionImpl;\n return this.signInResolver(assertion);\n }\n}\n\n/**\n * Provides a {@link MultiFactorResolver} suitable for completion of a\n * multi-factor flow.\n *\n * @param auth - The {@link Auth} instance.\n * @param error - The {@link MultiFactorError} raised during a sign-in, or\n * reauthentication operation.\n *\n * @public\n */\nexport function getMultiFactorResolver(\n auth: Auth,\n error: MultiFactorError\n): MultiFactorResolver {\n const authModular = getModularInstance(auth);\n const errorInternal = error as MultiFactorErrorInternal;\n _assert(\n error.customData.operationType,\n authModular,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n errorInternal.customData._serverResponse?.mfaPendingCredential,\n authModular,\n AuthErrorCode.ARGUMENT_ERROR\n );\n\n return MultiFactorResolverImpl._fromError(authModular, errorInternal);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n MultiFactorAssertion,\n MultiFactorInfo,\n MultiFactorSession,\n MultiFactorUser,\n User\n} from '../model/public_types';\n\nimport { withdrawMfa } from '../api/account_management/mfa';\nimport { _logoutIfInvalidated } from '../core/user/invalidation';\nimport { UserInternal } from '../model/user';\nimport { MultiFactorAssertionImpl } from './mfa_assertion';\nimport { MultiFactorInfoImpl } from './mfa_info';\nimport { MultiFactorSessionImpl } from './mfa_session';\nimport { getModularInstance } from '@firebase/util';\n\nexport class MultiFactorUserImpl implements MultiFactorUser {\n enrolledFactors: MultiFactorInfo[] = [];\n\n private constructor(readonly user: UserInternal) {\n user._onReload(userInfo => {\n if (userInfo.mfaInfo) {\n this.enrolledFactors = userInfo.mfaInfo.map(enrollment =>\n MultiFactorInfoImpl._fromServerResponse(user.auth, enrollment)\n );\n }\n });\n }\n\n static _fromUser(user: UserInternal): MultiFactorUserImpl {\n return new MultiFactorUserImpl(user);\n }\n\n async getSession(): Promise {\n return MultiFactorSessionImpl._fromIdtoken(\n await this.user.getIdToken(),\n this.user.auth\n );\n }\n\n async enroll(\n assertionExtern: MultiFactorAssertion,\n displayName?: string | null\n ): Promise {\n const assertion = assertionExtern as MultiFactorAssertionImpl;\n const session = (await this.getSession()) as MultiFactorSessionImpl;\n const finalizeMfaResponse = await _logoutIfInvalidated(\n this.user,\n assertion._process(this.user.auth, session, displayName)\n );\n // New tokens will be issued after enrollment of the new second factors.\n // They need to be updated on the user.\n await this.user._updateTokensIfNecessary(finalizeMfaResponse);\n // The user needs to be reloaded to get the new multi-factor information\n // from server. USER_RELOADED event will be triggered and `enrolledFactors`\n // will be updated.\n return this.user.reload();\n }\n\n async unenroll(infoOrUid: MultiFactorInfo | string): Promise {\n const mfaEnrollmentId =\n typeof infoOrUid === 'string' ? infoOrUid : infoOrUid.uid;\n const idToken = await this.user.getIdToken();\n try {\n const idTokenResponse = await _logoutIfInvalidated(\n this.user,\n withdrawMfa(this.user.auth, {\n idToken,\n mfaEnrollmentId\n })\n );\n // Remove the second factor from the user's list.\n this.enrolledFactors = this.enrolledFactors.filter(\n ({ uid }) => uid !== mfaEnrollmentId\n );\n // Depending on whether the backend decided to revoke the user's session,\n // the tokenResponse may be empty. If the tokens were not updated (and they\n // are now invalid), reloading the user will discover this and invalidate\n // the user's state accordingly.\n await this.user._updateTokensIfNecessary(idTokenResponse);\n await this.user.reload();\n } catch (e) {\n throw e;\n }\n }\n}\n\nconst multiFactorUserCache = new WeakMap();\n\n/**\n * The {@link MultiFactorUser} corresponding to the user.\n *\n * @remarks\n * This is used to access all multi-factor properties and operations related to the user.\n *\n * @param user - The user.\n *\n * @public\n */\nexport function multiFactor(user: User): MultiFactorUser {\n const userModular = getModularInstance(user);\n if (!multiFactorUserCache.has(userModular)) {\n multiFactorUserCache.set(\n userModular,\n MultiFactorUserImpl._fromUser(userModular as UserInternal)\n );\n }\n return multiFactorUserCache.get(userModular)!;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { SignInWithPhoneNumberRequest } from '../authentication/sms';\nimport { FinalizeMfaResponse } from '../authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\n\n/**\n * MFA Info as returned by the API.\n */\ninterface BaseMfaEnrollment {\n mfaEnrollmentId: string;\n enrolledAt: number;\n displayName?: string;\n}\n\n/**\n * An MFA provided by SMS verification.\n */\nexport interface PhoneMfaEnrollment extends BaseMfaEnrollment {\n phoneInfo: string;\n}\n\n/**\n * An MFA provided by TOTP (Time-based One Time Password).\n */\nexport interface TotpMfaEnrollment extends BaseMfaEnrollment {}\n\n/**\n * MfaEnrollment can be any subtype of BaseMfaEnrollment, currently only PhoneMfaEnrollment and TotpMfaEnrollment are supported.\n */\nexport type MfaEnrollment = PhoneMfaEnrollment | TotpMfaEnrollment;\n\nexport interface StartPhoneMfaEnrollmentRequest {\n idToken: string;\n phoneEnrollmentInfo: {\n phoneNumber: string;\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaEnrollmentResponse {\n phoneSessionInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startEnrollPhoneMfa(\n auth: AuthInternal,\n request: StartPhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaEnrollmentRequest,\n StartPhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaEnrollmentRequest {\n idToken: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizePhoneMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollPhoneMfa(\n auth: AuthInternal,\n request: FinalizePhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaEnrollmentRequest,\n FinalizePhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface StartTotpMfaEnrollmentRequest {\n idToken: string;\n totpEnrollmentInfo: {};\n tenantId?: string;\n}\n\nexport interface StartTotpMfaEnrollmentResponse {\n totpSessionInfo: {\n sharedSecretKey: string;\n verificationCodeLength: number;\n hashingAlgorithm: string;\n periodSec: number;\n sessionInfo: string;\n finalizeEnrollmentTime: number;\n };\n}\n\nexport function startEnrollTotpMfa(\n auth: AuthInternal,\n request: StartTotpMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartTotpMfaEnrollmentRequest,\n StartTotpMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface TotpVerificationInfo {\n sessionInfo: string;\n verificationCode: string;\n}\nexport interface FinalizeTotpMfaEnrollmentRequest {\n idToken: string;\n totpVerificationInfo: TotpVerificationInfo;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizeTotpMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollTotpMfa(\n auth: AuthInternal,\n request: FinalizeTotpMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizeTotpMfaEnrollmentRequest,\n FinalizeTotpMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface WithdrawMfaRequest {\n idToken: string;\n mfaEnrollmentId: string;\n tenantId?: string;\n}\n\nexport interface WithdrawMfaResponse extends FinalizeMfaResponse {}\n\nexport function withdrawMfa(\n auth: AuthInternal,\n request: WithdrawMfaRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.WITHDRAW_MFA,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Persistence } from '../../model/public_types';\n\nexport const enum PersistenceType {\n SESSION = 'SESSION',\n LOCAL = 'LOCAL',\n NONE = 'NONE'\n}\n\nexport type PersistedBlob = Record;\n\nexport interface Instantiator {\n (blob: PersistedBlob): T;\n}\n\nexport type PersistenceValue = PersistedBlob | string;\n\nexport const STORAGE_AVAILABLE_KEY = '__sak';\n\nexport interface StorageEventListener {\n (value: PersistenceValue | null): void;\n}\n\nexport interface PersistenceInternal extends Persistence {\n type: PersistenceType;\n _isAvailable(): Promise;\n _set(key: string, value: PersistenceValue): Promise;\n _get(key: string): Promise;\n _remove(key: string): Promise;\n _addListener(key: string, listener: StorageEventListener): void;\n _removeListener(key: string, listener: StorageEventListener): void;\n // Should this persistence allow migration up the chosen hierarchy?\n _shouldAllowMigration?: boolean;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n PersistenceValue,\n STORAGE_AVAILABLE_KEY,\n PersistenceType\n} from '../../core/persistence';\n\n// There are two different browser persistence types: local and session.\n// Both have the same implementation but use a different underlying storage\n// object.\n\nexport abstract class BrowserPersistenceClass {\n protected constructor(\n protected readonly storageRetriever: () => Storage,\n readonly type: PersistenceType\n ) {}\n\n _isAvailable(): Promise {\n try {\n if (!this.storage) {\n return Promise.resolve(false);\n }\n this.storage.setItem(STORAGE_AVAILABLE_KEY, '1');\n this.storage.removeItem(STORAGE_AVAILABLE_KEY);\n return Promise.resolve(true);\n } catch {\n return Promise.resolve(false);\n }\n }\n\n _set(key: string, value: PersistenceValue): Promise {\n this.storage.setItem(key, JSON.stringify(value));\n return Promise.resolve();\n }\n\n _get(key: string): Promise {\n const json = this.storage.getItem(key);\n return Promise.resolve(json ? JSON.parse(json) : null);\n }\n\n _remove(key: string): Promise {\n this.storage.removeItem(key);\n return Promise.resolve();\n }\n\n protected get storage(): Storage {\n return this.storageRetriever();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport { getUA } from '@firebase/util';\nimport {\n _isSafari,\n _isIOS,\n _isIframe,\n _isMobileBrowser,\n _isIE10\n} from '../../core/util/browser';\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nfunction _iframeCannotSyncWebStorage(): boolean {\n const ua = getUA();\n return _isSafari(ua) || _isIOS(ua);\n}\n\n// The polling period in case events are not supported\nexport const _POLLING_INTERVAL_MS = 1000;\n\n// The IE 10 localStorage cross tab synchronization delay in milliseconds\nconst IE10_LOCAL_STORAGE_SYNC_DELAY = 10;\n\nclass BrowserLocalPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'LOCAL' = 'LOCAL';\n\n constructor() {\n super(() => window.localStorage, PersistenceType.LOCAL);\n }\n\n private readonly boundEventHandler = (\n event: StorageEvent,\n poll?: boolean\n ): void => this.onStorageEvent(event, poll);\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n\n // Safari or iOS browser and embedded in an iframe.\n private readonly safariLocalStorageNotSynced =\n _iframeCannotSyncWebStorage() && _isIframe();\n // Whether to use polling instead of depending on window events\n private readonly fallbackToPolling = _isMobileBrowser();\n readonly _shouldAllowMigration = true;\n\n private forAllChangedKeys(\n cb: (key: string, oldValue: string | null, newValue: string | null) => void\n ): void {\n // Check all keys with listeners on them.\n for (const key of Object.keys(this.listeners)) {\n // Get value from localStorage.\n const newValue = this.storage.getItem(key);\n const oldValue = this.localCache[key];\n // If local map value does not match, trigger listener with storage event.\n // Differentiate this simulated event from the real storage event.\n if (newValue !== oldValue) {\n cb(key, oldValue, newValue);\n }\n }\n }\n\n private onStorageEvent(event: StorageEvent, poll = false): void {\n // Key would be null in some situations, like when localStorage is cleared\n if (!event.key) {\n this.forAllChangedKeys(\n (key: string, _oldValue: string | null, newValue: string | null) => {\n this.notifyListeners(key, newValue);\n }\n );\n return;\n }\n\n const key = event.key;\n\n // Check the mechanism how this event was detected.\n // The first event will dictate the mechanism to be used.\n if (poll) {\n // Environment detects storage changes via polling.\n // Remove storage event listener to prevent possible event duplication.\n this.detachListener();\n } else {\n // Environment detects storage changes via storage event listener.\n // Remove polling listener to prevent possible event duplication.\n this.stopPolling();\n }\n\n // Safari embedded iframe. Storage event will trigger with the delta\n // changes but no changes will be applied to the iframe localStorage.\n if (this.safariLocalStorageNotSynced) {\n // Get current iframe page value.\n const storedValue = this.storage.getItem(key);\n // Value not synchronized, synchronize manually.\n if (event.newValue !== storedValue) {\n if (event.newValue !== null) {\n // Value changed from current value.\n this.storage.setItem(key, event.newValue);\n } else {\n // Current value deleted.\n this.storage.removeItem(key);\n }\n } else if (this.localCache[key] === event.newValue && !poll) {\n // Already detected and processed, do not trigger listeners again.\n return;\n }\n }\n\n const triggerListeners = (): void => {\n // Keep local map up to date in case storage event is triggered before\n // poll.\n const storedValue = this.storage.getItem(key);\n if (!poll && this.localCache[key] === storedValue) {\n // Real storage event which has already been detected, do nothing.\n // This seems to trigger in some IE browsers for some reason.\n return;\n }\n this.notifyListeners(key, storedValue);\n };\n\n const storedValue = this.storage.getItem(key);\n if (\n _isIE10() &&\n storedValue !== event.newValue &&\n event.newValue !== event.oldValue\n ) {\n // IE 10 has this weird bug where a storage event would trigger with the\n // correct key, oldValue and newValue but localStorage.getItem(key) does\n // not yield the updated value until a few milliseconds. This ensures\n // this recovers from that situation.\n setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY);\n } else {\n triggerListeners();\n }\n }\n\n private notifyListeners(key: string, value: string | null): void {\n this.localCache[key] = value;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(value ? JSON.parse(value) : value);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(() => {\n this.forAllChangedKeys(\n (key: string, oldValue: string | null, newValue: string | null) => {\n this.onStorageEvent(\n new StorageEvent('storage', {\n key,\n oldValue,\n newValue\n }),\n /* poll */ true\n );\n }\n );\n }, _POLLING_INTERVAL_MS);\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n private attachListener(): void {\n window.addEventListener('storage', this.boundEventHandler);\n }\n\n private detachListener(): void {\n window.removeEventListener('storage', this.boundEventHandler);\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n // Whether browser can detect storage event when it had already been pushed to the background.\n // This may happen in some mobile browsers. A localStorage change in the foreground window\n // will not be detected in the background window via the storage event.\n // This was detected in iOS 7.x mobile browsers\n if (this.fallbackToPolling) {\n this.startPolling();\n } else {\n this.attachListener();\n }\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n this.localCache[key] = this.storage.getItem(key);\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.detachListener();\n this.stopPolling();\n }\n }\n\n // Update local cache on base operations:\n\n async _set(key: string, value: PersistenceValue): Promise {\n await super._set(key, value);\n this.localCache[key] = JSON.stringify(value);\n }\n\n async _get(key: string): Promise {\n const value = await super._get(key);\n this.localCache[key] = JSON.stringify(value);\n return value;\n }\n\n async _remove(key: string): Promise {\n await super._remove(key);\n delete this.localCache[key];\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `localStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserLocalPersistence: Persistence = BrowserLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nclass BrowserSessionPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'SESSION' = 'SESSION';\n\n constructor() {\n super(() => window.sessionStorage, PersistenceType.SESSION);\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of `SESSION` using `sessionStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserSessionPersistence: Persistence = BrowserSessionPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ReceiverHandler,\n _EventType,\n _ReceiverResponse,\n SenderMessageEvent,\n _Status,\n _SenderRequest\n} from './index';\nimport { _allSettled } from './promise';\n\n/**\n * Interface class for receiving messages.\n *\n */\nexport class Receiver {\n private static readonly receivers: Receiver[] = [];\n private readonly boundEventHandler: EventListener;\n\n private readonly handlersMap: {\n // Typescript doesn't have existential types :(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [eventType: string]: Set>;\n } = {};\n\n constructor(private readonly eventTarget: EventTarget) {\n this.boundEventHandler = this.handleEvent.bind(this);\n }\n\n /**\n * Obtain an instance of a Receiver for a given event target, if none exists it will be created.\n *\n * @param eventTarget - An event target (such as window or self) through which the underlying\n * messages will be received.\n */\n static _getInstance(eventTarget: EventTarget): Receiver {\n // The results are stored in an array since objects can't be keys for other\n // objects. In addition, setting a unique property on an event target as a\n // hash map key may not be allowed due to CORS restrictions.\n const existingInstance = this.receivers.find(receiver =>\n receiver.isListeningto(eventTarget)\n );\n if (existingInstance) {\n return existingInstance;\n }\n const newInstance = new Receiver(eventTarget);\n this.receivers.push(newInstance);\n return newInstance;\n }\n\n private isListeningto(eventTarget: EventTarget): boolean {\n return this.eventTarget === eventTarget;\n }\n\n /**\n * Fans out a MessageEvent to the appropriate listeners.\n *\n * @remarks\n * Sends an {@link Status.ACK} upon receipt and a {@link Status.DONE} once all handlers have\n * finished processing.\n *\n * @param event - The MessageEvent.\n *\n */\n private async handleEvent<\n T extends _ReceiverResponse,\n S extends _SenderRequest\n >(event: Event): Promise {\n const messageEvent = event as MessageEvent>;\n const { eventId, eventType, data } = messageEvent.data;\n\n const handlers: Set> | undefined =\n this.handlersMap[eventType];\n if (!handlers?.size) {\n return;\n }\n\n messageEvent.ports[0].postMessage({\n status: _Status.ACK,\n eventId,\n eventType\n });\n\n const promises = Array.from(handlers).map(async handler =>\n handler(messageEvent.origin, data)\n );\n const response = await _allSettled(promises);\n messageEvent.ports[0].postMessage({\n status: _Status.DONE,\n eventId,\n eventType,\n response\n });\n }\n\n /**\n * Subscribe an event handler for a particular event.\n *\n * @param eventType - Event name to subscribe to.\n * @param eventHandler - The event handler which should receive the events.\n *\n */\n _subscribe(\n eventType: _EventType,\n eventHandler: ReceiverHandler\n ): void {\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.addEventListener('message', this.boundEventHandler);\n }\n\n if (!this.handlersMap[eventType]) {\n this.handlersMap[eventType] = new Set();\n }\n\n this.handlersMap[eventType].add(eventHandler);\n }\n\n /**\n * Unsubscribe an event handler from a particular event.\n *\n * @param eventType - Event name to unsubscribe from.\n * @param eventHandler - Optinoal event handler, if none provided, unsubscribe all handlers on this event.\n *\n */\n _unsubscribe(\n eventType: _EventType,\n eventHandler?: ReceiverHandler\n ): void {\n if (this.handlersMap[eventType] && eventHandler) {\n this.handlersMap[eventType].delete(eventHandler);\n }\n if (!eventHandler || this.handlersMap[eventType].size === 0) {\n delete this.handlersMap[eventType];\n }\n\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.removeEventListener('message', this.boundEventHandler);\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** TODO: remove this once tslib has a polyfill for Promise.allSettled */\ninterface PromiseFulfilledResult {\n fulfilled: true;\n value: T;\n}\n\ninterface PromiseRejectedResult {\n fulfilled: false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reason: any;\n}\n\nexport type PromiseSettledResult =\n | PromiseFulfilledResult\n | PromiseRejectedResult;\n\n/**\n * Shim for Promise.allSettled, note the slightly different format of `fulfilled` vs `status`.\n *\n * @param promises - Array of promises to wait on.\n */\nexport function _allSettled(\n promises: Array>\n): Promise>> {\n return Promise.all(\n promises.map(async promise => {\n try {\n const value = await promise;\n return {\n fulfilled: true,\n value\n } as PromiseFulfilledResult;\n } catch (reason) {\n return {\n fulfilled: false,\n reason\n } as PromiseRejectedResult;\n }\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _generateEventId(prefix = '', digits = 10): string {\n let random = '';\n for (let i = 0; i < digits; i++) {\n random += Math.floor(Math.random() * 10);\n }\n return prefix + random;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _generateEventId } from '../../core/util/event_id';\nimport {\n _SenderRequest,\n _EventType,\n ReceiverMessageEvent,\n _MessageError,\n SenderMessageEvent,\n _Status,\n _ReceiverMessageResponse,\n _ReceiverResponse,\n _TimeoutDuration\n} from './index';\n\ninterface MessageHandler {\n messageChannel: MessageChannel;\n onMessage: EventListenerOrEventListenerObject;\n}\n\n/**\n * Interface for sending messages and waiting for a completion response.\n *\n */\nexport class Sender {\n private readonly handlers = new Set();\n\n constructor(private readonly target: ServiceWorker) {}\n\n /**\n * Unsubscribe the handler and remove it from our tracking Set.\n *\n * @param handler - The handler to unsubscribe.\n */\n private removeMessageHandler(handler: MessageHandler): void {\n if (handler.messageChannel) {\n handler.messageChannel.port1.removeEventListener(\n 'message',\n handler.onMessage\n );\n handler.messageChannel.port1.close();\n }\n this.handlers.delete(handler);\n }\n\n /**\n * Send a message to the Receiver located at {@link target}.\n *\n * @remarks\n * We'll first wait a bit for an ACK , if we get one we will wait significantly longer until the\n * receiver has had a chance to fully process the event.\n *\n * @param eventType - Type of event to send.\n * @param data - The payload of the event.\n * @param timeout - Timeout for waiting on an ACK from the receiver.\n *\n * @returns An array of settled promises from all the handlers that were listening on the receiver.\n */\n async _send(\n eventType: _EventType,\n data: S,\n timeout = _TimeoutDuration.ACK\n ): Promise<_ReceiverMessageResponse> {\n const messageChannel =\n typeof MessageChannel !== 'undefined' ? new MessageChannel() : null;\n if (!messageChannel) {\n throw new Error(_MessageError.CONNECTION_UNAVAILABLE);\n }\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let completionTimer: any;\n let handler: MessageHandler;\n return new Promise<_ReceiverMessageResponse>((resolve, reject) => {\n const eventId = _generateEventId('', 20);\n messageChannel.port1.start();\n const ackTimer = setTimeout(() => {\n reject(new Error(_MessageError.UNSUPPORTED_EVENT));\n }, timeout);\n handler = {\n messageChannel,\n onMessage(event: Event): void {\n const messageEvent = event as MessageEvent>;\n if (messageEvent.data.eventId !== eventId) {\n return;\n }\n switch (messageEvent.data.status) {\n case _Status.ACK:\n // The receiver should ACK first.\n clearTimeout(ackTimer);\n completionTimer = setTimeout(() => {\n reject(new Error(_MessageError.TIMEOUT));\n }, _TimeoutDuration.COMPLETION);\n break;\n case _Status.DONE:\n // Once the receiver's handlers are finished we will get the results.\n clearTimeout(completionTimer);\n resolve(messageEvent.data.response);\n break;\n default:\n clearTimeout(ackTimer);\n clearTimeout(completionTimer);\n reject(new Error(_MessageError.INVALID_RESPONSE));\n break;\n }\n }\n };\n this.handlers.add(handler);\n messageChannel.port1.addEventListener('message', handler.onMessage);\n this.target.postMessage(\n {\n eventType,\n eventId,\n data\n } as SenderMessageEvent,\n [messageChannel.port2]\n );\n }).finally(() => {\n if (handler) {\n this.removeMessageHandler(handler);\n }\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Recaptcha, GreCAPTCHATopLevel } from './recaptcha/recaptcha';\n\n/**\n * A specialized window type that melds the normal window type plus the\n * various bits we need. The three different blocks that are &'d together\n * cant be defined in the same block together.\n */\nexport type AuthWindow = {\n // Standard window types\n [T in keyof Window]: Window[T];\n} & {\n // Any known / named properties we want to add\n grecaptcha?: Recaptcha | GreCAPTCHATopLevel;\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n ___jsl?: Record;\n gapi?: typeof gapi;\n} & {\n // A final catch-all for callbacks (which will have random names) that\n // we will stick on the window.\n [callback: string]: (...args: unknown[]) => void;\n};\n\n/**\n * Lazy accessor for window, since the compat layer won't tree shake this out,\n * we need to make sure not to mess with window unless we have to\n */\nexport function _window(): AuthWindow {\n return window as unknown as AuthWindow;\n}\n\nexport function _setWindowLocation(url: string): void {\n _window().location.href = url;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _window } from '../auth_window';\n\nexport function _isWorker(): boolean {\n return (\n typeof _window()['WorkerGlobalScope'] !== 'undefined' &&\n typeof _window()['importScripts'] === 'function'\n );\n}\n\nexport async function _getActiveServiceWorker(): Promise {\n if (!navigator?.serviceWorker) {\n return null;\n }\n try {\n const registration = await navigator.serviceWorker.ready;\n return registration.active;\n } catch {\n return null;\n }\n}\n\nexport function _getServiceWorkerController(): ServiceWorker | null {\n return navigator?.serviceWorker?.controller || null;\n}\n\nexport function _getWorkerGlobalScope(): ServiceWorker | null {\n return _isWorker() ? (self as unknown as ServiceWorker) : null;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\nimport {\n PersistedBlob,\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener,\n STORAGE_AVAILABLE_KEY\n} from '../../core/persistence/';\nimport {\n _EventType,\n _PingResponse,\n KeyChangedResponse,\n KeyChangedRequest,\n PingRequest,\n _TimeoutDuration\n} from '../messagechannel/index';\nimport { Receiver } from '../messagechannel/receiver';\nimport { Sender } from '../messagechannel/sender';\nimport {\n _isWorker,\n _getActiveServiceWorker,\n _getServiceWorkerController,\n _getWorkerGlobalScope\n} from '../util/worker';\n\nexport const DB_NAME = 'firebaseLocalStorageDb';\nconst DB_VERSION = 1;\nconst DB_OBJECTSTORE_NAME = 'firebaseLocalStorage';\nconst DB_DATA_KEYPATH = 'fbase_key';\n\ninterface DBObject {\n [DB_DATA_KEYPATH]: string;\n value: PersistedBlob;\n}\n\n/**\n * Promise wrapper for IDBRequest\n *\n * Unfortunately we can't cleanly extend Promise since promises are not callable in ES6\n *\n */\nclass DBPromise {\n constructor(private readonly request: IDBRequest) {}\n\n toPromise(): Promise {\n return new Promise((resolve, reject) => {\n this.request.addEventListener('success', () => {\n resolve(this.request.result);\n });\n this.request.addEventListener('error', () => {\n reject(this.request.error);\n });\n });\n }\n}\n\nfunction getObjectStore(db: IDBDatabase, isReadWrite: boolean): IDBObjectStore {\n return db\n .transaction([DB_OBJECTSTORE_NAME], isReadWrite ? 'readwrite' : 'readonly')\n .objectStore(DB_OBJECTSTORE_NAME);\n}\n\nexport async function _clearDatabase(db: IDBDatabase): Promise {\n const objectStore = getObjectStore(db, true);\n return new DBPromise(objectStore.clear()).toPromise();\n}\n\nexport function _deleteDatabase(): Promise {\n const request = indexedDB.deleteDatabase(DB_NAME);\n return new DBPromise(request).toPromise();\n}\n\nexport function _openDatabase(): Promise {\n const request = indexedDB.open(DB_NAME, DB_VERSION);\n return new Promise((resolve, reject) => {\n request.addEventListener('error', () => {\n reject(request.error);\n });\n\n request.addEventListener('upgradeneeded', () => {\n const db = request.result;\n\n try {\n db.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH });\n } catch (e) {\n reject(e);\n }\n });\n\n request.addEventListener('success', async () => {\n const db: IDBDatabase = request.result;\n // Strange bug that occurs in Firefox when multiple tabs are opened at the\n // same time. The only way to recover seems to be deleting the database\n // and re-initializing it.\n // https://github.com/firebase/firebase-js-sdk/issues/634\n\n if (!db.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) {\n // Need to close the database or else you get a `blocked` event\n db.close();\n await _deleteDatabase();\n resolve(await _openDatabase());\n } else {\n resolve(db);\n }\n });\n });\n}\n\nexport async function _putObject(\n db: IDBDatabase,\n key: string,\n value: PersistenceValue | string\n): Promise {\n const request = getObjectStore(db, true).put({\n [DB_DATA_KEYPATH]: key,\n value\n });\n return new DBPromise(request).toPromise();\n}\n\nasync function getObject(\n db: IDBDatabase,\n key: string\n): Promise {\n const request = getObjectStore(db, false).get(key);\n const data = await new DBPromise(request).toPromise();\n return data === undefined ? null : data.value;\n}\n\nexport function _deleteObject(db: IDBDatabase, key: string): Promise {\n const request = getObjectStore(db, true).delete(key);\n return new DBPromise(request).toPromise();\n}\n\nexport const _POLLING_INTERVAL_MS = 800;\nexport const _TRANSACTION_RETRY_COUNT = 3;\n\nclass IndexedDBLocalPersistence implements InternalPersistence {\n static type: 'LOCAL' = 'LOCAL';\n\n type = PersistenceType.LOCAL;\n db?: IDBDatabase;\n readonly _shouldAllowMigration = true;\n\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n private pendingWrites = 0;\n\n private receiver: Receiver | null = null;\n private sender: Sender | null = null;\n private serviceWorkerReceiverAvailable = false;\n private activeServiceWorker: ServiceWorker | null = null;\n // Visible for testing only\n readonly _workerInitializationPromise: Promise;\n\n constructor() {\n // Fire & forget the service worker registration as it may never resolve\n this._workerInitializationPromise =\n this.initializeServiceWorkerMessaging().then(\n () => {},\n () => {}\n );\n }\n\n async _openDb(): Promise {\n if (this.db) {\n return this.db;\n }\n this.db = await _openDatabase();\n return this.db;\n }\n\n async _withRetries(op: (db: IDBDatabase) => Promise): Promise {\n let numAttempts = 0;\n\n while (true) {\n try {\n const db = await this._openDb();\n return await op(db);\n } catch (e) {\n if (numAttempts++ > _TRANSACTION_RETRY_COUNT) {\n throw e;\n }\n if (this.db) {\n this.db.close();\n this.db = undefined;\n }\n // TODO: consider adding exponential backoff\n }\n }\n }\n\n /**\n * IndexedDB events do not propagate from the main window to the worker context. We rely on a\n * postMessage interface to send these events to the worker ourselves.\n */\n private async initializeServiceWorkerMessaging(): Promise {\n return _isWorker() ? this.initializeReceiver() : this.initializeSender();\n }\n\n /**\n * As the worker we should listen to events from the main window.\n */\n private async initializeReceiver(): Promise {\n this.receiver = Receiver._getInstance(_getWorkerGlobalScope()!);\n // Refresh from persistence if we receive a KeyChanged message.\n this.receiver._subscribe(\n _EventType.KEY_CHANGED,\n async (_origin: string, data: KeyChangedRequest) => {\n const keys = await this._poll();\n return {\n keyProcessed: keys.includes(data.key)\n };\n }\n );\n // Let the sender know that we are listening so they give us more timeout.\n this.receiver._subscribe(\n _EventType.PING,\n async (_origin: string, _data: PingRequest) => {\n return [_EventType.KEY_CHANGED];\n }\n );\n }\n\n /**\n * As the main window, we should let the worker know when keys change (set and remove).\n *\n * @remarks\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/ready | ServiceWorkerContainer.ready}\n * may not resolve.\n */\n private async initializeSender(): Promise {\n // Check to see if there's an active service worker.\n this.activeServiceWorker = await _getActiveServiceWorker();\n if (!this.activeServiceWorker) {\n return;\n }\n this.sender = new Sender(this.activeServiceWorker);\n // Ping the service worker to check what events they can handle.\n const results = await this.sender._send<_PingResponse, PingRequest>(\n _EventType.PING,\n {},\n _TimeoutDuration.LONG_ACK\n );\n if (!results) {\n return;\n }\n if (\n results[0]?.fulfilled &&\n results[0]?.value.includes(_EventType.KEY_CHANGED)\n ) {\n this.serviceWorkerReceiverAvailable = true;\n }\n }\n\n /**\n * Let the worker know about a changed key, the exact key doesn't technically matter since the\n * worker will just trigger a full sync anyway.\n *\n * @remarks\n * For now, we only support one service worker per page.\n *\n * @param key - Storage key which changed.\n */\n private async notifyServiceWorker(key: string): Promise {\n if (\n !this.sender ||\n !this.activeServiceWorker ||\n _getServiceWorkerController() !== this.activeServiceWorker\n ) {\n return;\n }\n try {\n await this.sender._send(\n _EventType.KEY_CHANGED,\n { key },\n // Use long timeout if receiver has previously responded to a ping from us.\n this.serviceWorkerReceiverAvailable\n ? _TimeoutDuration.LONG_ACK\n : _TimeoutDuration.ACK\n );\n } catch {\n // This is a best effort approach. Ignore errors.\n }\n }\n\n async _isAvailable(): Promise {\n try {\n if (!indexedDB) {\n return false;\n }\n const db = await _openDatabase();\n await _putObject(db, STORAGE_AVAILABLE_KEY, '1');\n await _deleteObject(db, STORAGE_AVAILABLE_KEY);\n return true;\n } catch {}\n return false;\n }\n\n private async _withPendingWrite(write: () => Promise): Promise {\n this.pendingWrites++;\n try {\n await write();\n } finally {\n this.pendingWrites--;\n }\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _putObject(db, key, value));\n this.localCache[key] = value;\n return this.notifyServiceWorker(key);\n });\n }\n\n async _get(key: string): Promise {\n const obj = (await this._withRetries((db: IDBDatabase) =>\n getObject(db, key)\n )) as T;\n this.localCache[key] = obj;\n return obj;\n }\n\n async _remove(key: string): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _deleteObject(db, key));\n delete this.localCache[key];\n return this.notifyServiceWorker(key);\n });\n }\n\n private async _poll(): Promise {\n // TODO: check if we need to fallback if getAll is not supported\n const result = await this._withRetries((db: IDBDatabase) => {\n const getAllRequest = getObjectStore(db, false).getAll();\n return new DBPromise(getAllRequest).toPromise();\n });\n\n if (!result) {\n return [];\n }\n\n // If we have pending writes in progress abort, we'll get picked up on the next poll\n if (this.pendingWrites !== 0) {\n return [];\n }\n\n const keys = [];\n const keysInResult = new Set();\n for (const { fbase_key: key, value } of result) {\n keysInResult.add(key);\n if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) {\n this.notifyListeners(key, value as PersistenceValue);\n keys.push(key);\n }\n }\n for (const localKey of Object.keys(this.localCache)) {\n if (this.localCache[localKey] && !keysInResult.has(localKey)) {\n // Deleted\n this.notifyListeners(localKey, null);\n keys.push(localKey);\n }\n }\n return keys;\n }\n\n private notifyListeners(\n key: string,\n newValue: PersistenceValue | null\n ): void {\n this.localCache[key] = newValue;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(newValue);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(\n async () => this._poll(),\n _POLLING_INTERVAL_MS\n );\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n this.startPolling();\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n void this._get(key); // This can happen in the background async and we can return immediately.\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.stopPolling();\n }\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `indexedDB`\n * for the underlying storage.\n *\n * @public\n */\nexport const indexedDBLocalPersistence: Persistence = IndexedDBLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport { RecaptchaParameters } from '../../model/public_types';\nimport {\n Recaptcha,\n GreCAPTCHATopLevel,\n GreCAPTCHARenderOption,\n GreCAPTCHA\n} from './recaptcha';\n\nexport const _SOLVE_TIME_MS = 500;\nexport const _EXPIRATION_TIME_MS = 60_000;\nexport const _WIDGET_ID_START = 1_000_000_000_000;\n\nexport interface Widget {\n getResponse: () => string | null;\n delete: () => void;\n execute: () => void;\n}\n\nexport class MockReCaptcha implements Recaptcha {\n private counter = _WIDGET_ID_START;\n _widgets = new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n render(\n container: string | HTMLElement,\n parameters?: RecaptchaParameters\n ): number {\n const id = this.counter;\n this._widgets.set(\n id,\n new MockWidget(container, this.auth.name, parameters || {})\n );\n this.counter++;\n return id;\n }\n\n reset(optWidgetId?: number): void {\n const id = optWidgetId || _WIDGET_ID_START;\n void this._widgets.get(id)?.delete();\n this._widgets.delete(id);\n }\n\n getResponse(optWidgetId?: number): string {\n const id = optWidgetId || _WIDGET_ID_START;\n return this._widgets.get(id)?.getResponse() || '';\n }\n\n async execute(optWidgetId?: number | string): Promise {\n const id: number = (optWidgetId as number) || _WIDGET_ID_START;\n void this._widgets.get(id)?.execute();\n return '';\n }\n}\n\nexport class MockGreCAPTCHATopLevel implements GreCAPTCHATopLevel {\n enterprise: GreCAPTCHA = new MockGreCAPTCHA();\n ready(callback: () => void): void {\n callback();\n }\n\n execute(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _siteKey: string,\n _options: { action: string }\n ): Promise {\n return Promise.resolve('token');\n }\n render(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _container: string | HTMLElement,\n _parameters: GreCAPTCHARenderOption\n ): string {\n return '';\n }\n}\n\nexport class MockGreCAPTCHA implements GreCAPTCHA {\n ready(callback: () => void): void {\n callback();\n }\n\n execute(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _siteKey: string,\n _options: { action: string }\n ): Promise {\n return Promise.resolve('token');\n }\n render(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _container: string | HTMLElement,\n _parameters: GreCAPTCHARenderOption\n ): string {\n return '';\n }\n}\n\nexport class MockWidget {\n private readonly container: HTMLElement;\n private readonly isVisible: boolean;\n private timerId: number | null = null;\n private deleted = false;\n private responseToken: string | null = null;\n private readonly clickHandler = (): void => {\n this.execute();\n };\n\n constructor(\n containerOrId: string | HTMLElement,\n appName: string,\n private readonly params: RecaptchaParameters\n ) {\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, AuthErrorCode.ARGUMENT_ERROR, { appName });\n\n this.container = container;\n this.isVisible = this.params.size !== 'invisible';\n if (this.isVisible) {\n this.execute();\n } else {\n this.container.addEventListener('click', this.clickHandler);\n }\n }\n\n getResponse(): string | null {\n this.checkIfDeleted();\n return this.responseToken;\n }\n\n delete(): void {\n this.checkIfDeleted();\n this.deleted = true;\n if (this.timerId) {\n clearTimeout(this.timerId);\n this.timerId = null;\n }\n this.container.removeEventListener('click', this.clickHandler);\n }\n\n execute(): void {\n this.checkIfDeleted();\n if (this.timerId) {\n return;\n }\n\n this.timerId = window.setTimeout(() => {\n this.responseToken = generateRandomAlphaNumericString(50);\n const { callback, 'expired-callback': expiredCallback } = this.params;\n if (callback) {\n try {\n callback(this.responseToken);\n } catch (e) {}\n }\n\n this.timerId = window.setTimeout(() => {\n this.timerId = null;\n this.responseToken = null;\n if (expiredCallback) {\n try {\n expiredCallback();\n } catch (e) {}\n }\n\n if (this.isVisible) {\n this.execute();\n }\n }, _EXPIRATION_TIME_MS);\n }, _SOLVE_TIME_MS);\n }\n\n private checkIfDeleted(): void {\n if (this.deleted) {\n throw new Error('reCAPTCHA mock was already deleted!');\n }\n }\n}\n\nfunction generateRandomAlphaNumericString(len: number): string {\n const chars = [];\n const allowedChars =\n '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (let i = 0; i < len; i++) {\n chars.push(\n allowedChars.charAt(Math.floor(Math.random() * allowedChars.length))\n );\n }\n return chars.join('');\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as jsHelpers from '../load_js';\nimport { Recaptcha, isV2 } from './recaptcha';\nimport { MockReCaptcha } from './recaptcha_mock';\n\n// ReCaptcha will load using the same callback, so the callback function needs\n// to be kept around\nexport const _JSLOAD_CALLBACK = jsHelpers._generateCallbackName('rcb');\nconst NETWORK_TIMEOUT_DELAY = new Delay(30000, 60000);\nconst RECAPTCHA_BASE = 'https://www.google.com/recaptcha/api.js?';\n\n/**\n * We need to mark this interface as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport interface ReCaptchaLoader {\n load(auth: AuthInternal, hl?: string): Promise;\n clearedOneInstance(): void;\n}\n\n/**\n * Loader for the GReCaptcha library. There should only ever be one of this.\n */\nexport class ReCaptchaLoaderImpl implements ReCaptchaLoader {\n private hostLanguage = '';\n private counter = 0;\n /**\n * Check for `render()` method. `window.grecaptcha` will exist if the Enterprise\n * version of the ReCAPTCHA script was loaded by someone else (e.g. App Check) but\n * `window.grecaptcha.render()` will not. Another load will add it.\n */\n private readonly librarySeparatelyLoaded = !!_window().grecaptcha?.render;\n\n load(auth: AuthInternal, hl = ''): Promise {\n _assert(isHostLanguageValid(hl), auth, AuthErrorCode.ARGUMENT_ERROR);\n\n if (this.shouldResolveImmediately(hl) && isV2(_window().grecaptcha)) {\n return Promise.resolve(_window().grecaptcha! as Recaptcha);\n }\n return new Promise((resolve, reject) => {\n const networkTimeout = _window().setTimeout(() => {\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }, NETWORK_TIMEOUT_DELAY.get());\n\n _window()[_JSLOAD_CALLBACK] = () => {\n _window().clearTimeout(networkTimeout);\n delete _window()[_JSLOAD_CALLBACK];\n\n const recaptcha = _window().grecaptcha as Recaptcha;\n\n if (!recaptcha || !isV2(recaptcha)) {\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n return;\n }\n\n // Wrap the greptcha render function so that we know if the developer has\n // called it separately\n const render = recaptcha.render;\n recaptcha.render = (container, params) => {\n const widgetId = render(container, params);\n this.counter++;\n return widgetId;\n };\n\n this.hostLanguage = hl;\n resolve(recaptcha);\n };\n\n const url = `${RECAPTCHA_BASE}?${querystring({\n onload: _JSLOAD_CALLBACK,\n render: 'explicit',\n hl\n })}`;\n\n jsHelpers._loadJS(url).catch(() => {\n clearTimeout(networkTimeout);\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n });\n });\n }\n\n clearedOneInstance(): void {\n this.counter--;\n }\n\n private shouldResolveImmediately(hl: string): boolean {\n // We can resolve immediately if:\n // • grecaptcha is already defined AND (\n // 1. the requested language codes are the same OR\n // 2. there exists already a ReCaptcha on the page\n // 3. the library was already loaded by the app\n // In cases (2) and (3), we _can't_ reload as it would break the recaptchas\n // that are already in the page\n return (\n !!_window().grecaptcha?.render &&\n (hl === this.hostLanguage ||\n this.counter > 0 ||\n this.librarySeparatelyLoaded)\n );\n }\n}\n\nfunction isHostLanguageValid(hl: string): boolean {\n return hl.length <= 6 && /^\\s*[a-zA-Z0-9\\-]*\\s*$/.test(hl);\n}\n\nexport class MockReCaptchaLoaderImpl implements ReCaptchaLoader {\n async load(auth: AuthInternal): Promise {\n return new MockReCaptcha(auth);\n }\n\n clearedOneInstance(): void {}\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, RecaptchaParameters } from '../../model/public_types';\nimport { getRecaptchaParams } from '../../api/authentication/recaptcha';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { _isHttpOrHttps } from '../../core/util/location';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport { _isWorker } from '../util/worker';\nimport { Recaptcha } from './recaptcha';\nimport {\n MockReCaptchaLoaderImpl,\n ReCaptchaLoader,\n ReCaptchaLoaderImpl\n} from './recaptcha_loader';\n\nexport const RECAPTCHA_VERIFIER_TYPE = 'recaptcha';\n\nconst DEFAULT_PARAMS: RecaptchaParameters = {\n theme: 'light',\n type: 'image'\n};\n\ntype TokenCallback = (token: string) => void;\n\n/**\n * An {@link https://www.google.com/recaptcha/ | reCAPTCHA}-based application verifier.\n *\n * @public\n */\nexport class RecaptchaVerifier implements ApplicationVerifierInternal {\n /**\n * The application verifier type.\n *\n * @remarks\n * For a reCAPTCHA verifier, this is 'recaptcha'.\n */\n readonly type = RECAPTCHA_VERIFIER_TYPE;\n private destroyed = false;\n private widgetId: number | null = null;\n private readonly container: HTMLElement;\n private readonly isInvisible: boolean;\n private readonly tokenChangeListeners = new Set();\n private renderPromise: Promise | null = null;\n private readonly auth: AuthInternal;\n\n /** @internal */\n readonly _recaptchaLoader: ReCaptchaLoader;\n private recaptcha: Recaptcha | null = null;\n\n /**\n *\n * @param containerOrId - The reCAPTCHA container parameter.\n *\n * @remarks\n * This has different meaning depending on whether the reCAPTCHA is hidden or visible. For a\n * visible reCAPTCHA the container must be empty. If a string is used, it has to correspond to\n * an element ID. The corresponding element must also must be in the DOM at the time of\n * initialization.\n *\n * @param parameters - The optional reCAPTCHA parameters.\n *\n * @remarks\n * Check the reCAPTCHA docs for a comprehensive list. All parameters are accepted except for\n * the sitekey. Firebase Auth backend provisions a reCAPTCHA for each project and will\n * configure this upon rendering. For an invisible reCAPTCHA, a size key must have the value\n * 'invisible'.\n *\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n */\n constructor(\n containerOrId: HTMLElement | string,\n private readonly parameters: RecaptchaParameters = {\n ...DEFAULT_PARAMS\n },\n authExtern: Auth\n ) {\n this.auth = _castAuth(authExtern);\n this.isInvisible = this.parameters.size === 'invisible';\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n\n this.container = container;\n this.parameters.callback = this.makeTokenCallback(this.parameters.callback);\n\n this._recaptchaLoader = this.auth.settings.appVerificationDisabledForTesting\n ? new MockReCaptchaLoaderImpl()\n : new ReCaptchaLoaderImpl();\n\n this.validateStartingState();\n // TODO: Figure out if sdk version is needed\n }\n\n /**\n * Waits for the user to solve the reCAPTCHA and resolves with the reCAPTCHA token.\n *\n * @returns A Promise for the reCAPTCHA token.\n */\n async verify(): Promise {\n this.assertNotDestroyed();\n const id = await this.render();\n const recaptcha = this.getAssertedRecaptcha();\n\n const response = recaptcha.getResponse(id);\n if (response) {\n return response;\n }\n\n return new Promise(resolve => {\n const tokenChange = (token: string): void => {\n if (!token) {\n return; // Ignore token expirations.\n }\n this.tokenChangeListeners.delete(tokenChange);\n resolve(token);\n };\n\n this.tokenChangeListeners.add(tokenChange);\n if (this.isInvisible) {\n recaptcha.execute(id);\n }\n });\n }\n\n /**\n * Renders the reCAPTCHA widget on the page.\n *\n * @returns A Promise that resolves with the reCAPTCHA widget ID.\n */\n render(): Promise {\n try {\n this.assertNotDestroyed();\n } catch (e) {\n // This method returns a promise. Since it's not async (we want to return the\n // _same_ promise if rendering is still occurring), the API surface should\n // reject with the error rather than just throw\n return Promise.reject(e);\n }\n\n if (this.renderPromise) {\n return this.renderPromise;\n }\n\n this.renderPromise = this.makeRenderPromise().catch(e => {\n this.renderPromise = null;\n throw e;\n });\n\n return this.renderPromise;\n }\n\n /** @internal */\n _reset(): void {\n this.assertNotDestroyed();\n if (this.widgetId !== null) {\n this.getAssertedRecaptcha().reset(this.widgetId);\n }\n }\n\n /**\n * Clears the reCAPTCHA widget from the page and destroys the instance.\n */\n clear(): void {\n this.assertNotDestroyed();\n this.destroyed = true;\n this._recaptchaLoader.clearedOneInstance();\n if (!this.isInvisible) {\n this.container.childNodes.forEach(node => {\n this.container.removeChild(node);\n });\n }\n }\n\n private validateStartingState(): void {\n _assert(!this.parameters.sitekey, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n _assert(\n this.isInvisible || !this.container.hasChildNodes(),\n this.auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n }\n\n private makeTokenCallback(\n existing: TokenCallback | string | undefined\n ): TokenCallback {\n return token => {\n this.tokenChangeListeners.forEach(listener => listener(token));\n if (typeof existing === 'function') {\n existing(token);\n } else if (typeof existing === 'string') {\n const globalFunc = _window()[existing];\n if (typeof globalFunc === 'function') {\n globalFunc(token);\n }\n }\n };\n }\n\n private assertNotDestroyed(): void {\n _assert(!this.destroyed, this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n\n private async makeRenderPromise(): Promise {\n await this.init();\n if (!this.widgetId) {\n let container = this.container;\n if (!this.isInvisible) {\n const guaranteedEmpty = document.createElement('div');\n container.appendChild(guaranteedEmpty);\n container = guaranteedEmpty;\n }\n\n this.widgetId = this.getAssertedRecaptcha().render(\n container,\n this.parameters\n );\n }\n\n return this.widgetId;\n }\n\n private async init(): Promise {\n _assert(\n _isHttpOrHttps() && !_isWorker(),\n this.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n\n await domReady();\n this.recaptcha = await this._recaptchaLoader.load(\n this.auth,\n this.auth.languageCode || undefined\n );\n\n const siteKey = await getRecaptchaParams(this.auth);\n _assert(siteKey, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.parameters.sitekey = siteKey;\n }\n\n private getAssertedRecaptcha(): Recaptcha {\n _assert(this.recaptcha, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.recaptcha;\n }\n}\n\nfunction domReady(): Promise {\n let resolver: (() => void) | null = null;\n return new Promise(resolve => {\n if (document.readyState === 'complete') {\n resolve();\n return;\n }\n\n // Document not ready, wait for load before resolving.\n // Save resolver, so we can remove listener in case it was externally\n // cancelled.\n resolver = () => resolve();\n window.addEventListener('load', resolver);\n }).catch(e => {\n if (resolver) {\n window.removeEventListener('load', resolver);\n }\n\n throw e;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ApplicationVerifier,\n Auth,\n ConfirmationResult,\n PhoneInfoOptions,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { startEnrollPhoneMfa } from '../../api/account_management/mfa';\nimport { startSignInPhoneMfa } from '../../api/authentication/mfa';\nimport { sendPhoneVerificationCode } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assertLinkedStatus, _link } from '../../core/user/link_unlink';\nimport { _assert } from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport {\n linkWithCredential,\n reauthenticateWithCredential,\n signInWithCredential\n} from '../../core/strategies/credential';\nimport {\n MultiFactorSessionImpl,\n MultiFactorSessionType\n} from '../../mfa/mfa_session';\nimport { UserInternal } from '../../model/user';\nimport { RECAPTCHA_VERIFIER_TYPE } from '../recaptcha/recaptcha_verifier';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { ProviderId } from '../../model/enums';\n\ninterface OnConfirmationCallback {\n (credential: PhoneAuthCredential): Promise;\n}\n\nclass ConfirmationResultImpl implements ConfirmationResult {\n constructor(\n readonly verificationId: string,\n private readonly onConfirmation: OnConfirmationCallback\n ) {}\n\n confirm(verificationCode: string): Promise {\n const authCredential = PhoneAuthCredential._fromVerification(\n this.verificationId,\n verificationCode\n );\n return this.onConfirmation(authCredential);\n }\n}\n\n/**\n * Asynchronously signs in using a phone number.\n *\n * @remarks\n * This method sends a code via SMS to the given\n * phone number, and returns a {@link ConfirmationResult}. After the user\n * provides the code sent to their phone, call {@link ConfirmationResult.confirm}\n * with the code to sign the user in.\n *\n * For abuse prevention, this method also requires a {@link ApplicationVerifier}.\n * This SDK includes a reCAPTCHA-based implementation, {@link RecaptchaVerifier}.\n * This function can work on other platforms that do not support the\n * {@link RecaptchaVerifier} (like React Native), but you need to use a\n * third-party {@link ApplicationVerifier} implementation.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain a verificationCode from the user.\n * const credential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function signInWithPhoneNumber(\n auth: Auth,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const authInternal = _castAuth(auth);\n const verificationId = await _verifyPhoneNumber(\n authInternal,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n signInWithCredential(authInternal, cred)\n );\n}\n\n/**\n * Links the user account with the given phone number.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function linkWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(false, userInternal, ProviderId.PHONE);\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n linkWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Re-authenticates a user using a fresh phone credential.\n *\n * @remarks Use before operations such as {@link updatePassword} that require tokens from recent sign-in attempts.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function reauthenticateWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n reauthenticateWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Returns a verification ID to be used in conjunction with the SMS code that is sent.\n *\n */\nexport async function _verifyPhoneNumber(\n auth: AuthInternal,\n options: PhoneInfoOptions | string,\n verifier: ApplicationVerifierInternal\n): Promise {\n const recaptchaToken = await verifier.verify();\n\n try {\n _assert(\n typeof recaptchaToken === 'string',\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n verifier.type === RECAPTCHA_VERIFIER_TYPE,\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n\n let phoneInfoOptions: PhoneInfoOptions;\n\n if (typeof options === 'string') {\n phoneInfoOptions = {\n phoneNumber: options\n };\n } else {\n phoneInfoOptions = options;\n }\n\n if ('session' in phoneInfoOptions) {\n const session = phoneInfoOptions.session as MultiFactorSessionImpl;\n\n if ('phoneNumber' in phoneInfoOptions) {\n _assert(\n session.type === MultiFactorSessionType.ENROLL,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const response = await startEnrollPhoneMfa(auth, {\n idToken: session.credential,\n phoneEnrollmentInfo: {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n }\n });\n return response.phoneSessionInfo.sessionInfo;\n } else {\n _assert(\n session.type === MultiFactorSessionType.SIGN_IN,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const mfaEnrollmentId =\n phoneInfoOptions.multiFactorHint?.uid ||\n phoneInfoOptions.multiFactorUid;\n _assert(mfaEnrollmentId, auth, AuthErrorCode.MISSING_MFA_INFO);\n const response = await startSignInPhoneMfa(auth, {\n mfaPendingCredential: session.credential,\n mfaEnrollmentId,\n phoneSignInInfo: {\n recaptchaToken\n }\n });\n return response.phoneResponseInfo.sessionInfo;\n }\n } else {\n const { sessionInfo } = await sendPhoneVerificationCode(auth, {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n });\n return sessionInfo;\n }\n } finally {\n verifier._reset();\n }\n}\n\n/**\n * Updates the user's phone number.\n *\n * @example\n * ```\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * await updatePhoneNumber(user, phoneCredential);\n * ```\n *\n * @param user - The user.\n * @param credential - A credential authenticating the new phone number.\n *\n * @public\n */\nexport async function updatePhoneNumber(\n user: User,\n credential: PhoneAuthCredential\n): Promise {\n await _link(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performApiRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from '../account_management/mfa';\nimport { SignInWithIdpResponse } from './idp';\nimport {\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n} from './sms';\n\nexport interface FinalizeMfaResponse {\n idToken: string;\n refreshToken: string;\n}\n\n/**\n * @internal\n */\nexport interface IdTokenMfaResponse extends IdTokenResponse {\n mfaPendingCredential?: string;\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface StartPhoneMfaSignInRequest {\n mfaPendingCredential: string;\n mfaEnrollmentId: string;\n phoneSignInInfo: {\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaSignInResponse {\n phoneResponseInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startSignInPhoneMfa(\n auth: Auth,\n request: StartPhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaSignInRequest,\n StartPhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaSignInRequest {\n mfaPendingCredential: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n tenantId?: string;\n}\n\n// TOTP MFA Sign in only has a finalize phase. Phone MFA has a start phase to initiate sending an\n// SMS and a finalize phase to complete sign in. With TOTP, the user already has the OTP in the\n// TOTP/Authenticator app.\nexport interface FinalizeTotpMfaSignInRequest {\n mfaPendingCredential: string;\n totpVerificationInfo: { verificationCode: string };\n tenantId?: string;\n mfaEnrollmentId: string;\n}\n\nexport interface FinalizePhoneMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport interface FinalizeTotpMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport function finalizeSignInPhoneMfa(\n auth: Auth,\n request: FinalizePhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaSignInRequest,\n FinalizePhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport function finalizeSignInTotpMfa(\n auth: Auth,\n request: FinalizeTotpMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizeTotpMfaSignInRequest,\n FinalizeTotpMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport type PhoneOrOauthTokenResponse =\n | SignInWithPhoneNumberResponse\n | SignInWithIdpResponse\n | IdTokenResponse;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n PhoneInfoOptions,\n ApplicationVerifier,\n UserCredential\n} from '../../model/public_types';\n\nimport { SignInWithPhoneNumberResponse } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal as ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal as AuthInternal } from '../../model/auth';\nimport { UserCredentialInternal as UserCredentialInternal } from '../../model/user';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { _verifyPhoneNumber } from '../strategies/phone';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthCredential } from '../../core';\nimport { FirebaseError, getModularInstance } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link PhoneAuthCredential}.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, phoneCredential);\n * ```\n *\n * @public\n */\nexport class PhoneAuthProvider {\n /** Always set to {@link ProviderId}.PHONE. */\n static readonly PROVIDER_ID: 'phone' = ProviderId.PHONE;\n /** Always set to {@link SignInMethod}.PHONE. */\n static readonly PHONE_SIGN_IN_METHOD: 'phone' = SignInMethod.PHONE;\n\n /** Always set to {@link ProviderId}.PHONE. */\n readonly providerId = PhoneAuthProvider.PROVIDER_ID;\n private readonly auth: AuthInternal;\n\n /**\n * @param auth - The Firebase {@link Auth} instance in which sign-ins should occur.\n *\n */\n constructor(auth: Auth) {\n this.auth = _castAuth(auth);\n }\n\n /**\n *\n * Starts a phone number authentication flow by sending a verification code to the given phone\n * number.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param phoneInfoOptions - The user's {@link PhoneInfoOptions}. The phone number should be in\n * E.164 format (e.g. +16505550101).\n * @param applicationVerifier - For abuse prevention, this method also requires a\n * {@link ApplicationVerifier}. This SDK includes a reCAPTCHA-based implementation,\n * {@link RecaptchaVerifier}.\n *\n * @returns A Promise for a verification ID that can be passed to\n * {@link PhoneAuthProvider.credential} to identify this flow..\n */\n verifyPhoneNumber(\n phoneOptions: PhoneInfoOptions | string,\n applicationVerifier: ApplicationVerifier\n ): Promise {\n return _verifyPhoneNumber(\n this.auth,\n phoneOptions,\n getModularInstance(applicationVerifier as ApplicationVerifierInternal)\n );\n }\n\n /**\n * Creates a phone auth credential, given the verification ID from\n * {@link PhoneAuthProvider.verifyPhoneNumber} and the code that was sent to the user's\n * mobile device.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param verificationId - The verification ID returned from {@link PhoneAuthProvider.verifyPhoneNumber}.\n * @param verificationCode - The verification code sent to the user's mobile device.\n *\n * @returns The auth provider credential.\n */\n static credential(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return PhoneAuthCredential._fromVerification(\n verificationId,\n verificationCode\n );\n }\n\n /**\n * Generates an {@link AuthCredential} from a {@link UserCredential}.\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): AuthCredential | null {\n const credential = userCredential as UserCredentialInternal;\n return PhoneAuthProvider.credentialFromTaggedObject(credential);\n }\n\n /**\n * Returns an {@link AuthCredential} when passed an error.\n *\n * @remarks\n *\n * This method works for errors like\n * `auth/account-exists-with-different-credentials`. This is useful for\n * recovering when attempting to set a user's phone number but the number\n * in question is already tied to another account. For example, the following\n * code tries to update the current user's phone number, and if that\n * fails, links the user with the account associated with that number:\n *\n * ```js\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(number, verifier);\n * try {\n * const code = ''; // Prompt the user for the verification code\n * await updatePhoneNumber(\n * auth.currentUser,\n * PhoneAuthProvider.credential(verificationId, code));\n * } catch (e) {\n * if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {\n * const cred = PhoneAuthProvider.credentialFromError(e);\n * await linkWithCredential(auth.currentUser, cred);\n * }\n * }\n *\n * // At this point, auth.currentUser.phoneNumber === number.\n * ```\n *\n * @param error - The error to generate a credential from.\n */\n static credentialFromError(error: FirebaseError): AuthCredential | null {\n return PhoneAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): AuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { phoneNumber, temporaryProof } =\n tokenResponse as SignInWithPhoneNumberResponse;\n if (phoneNumber && temporaryProof) {\n return PhoneAuthCredential._fromTokenResponse(\n phoneNumber,\n temporaryProof\n );\n }\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PopupRedirectResolver } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { _getInstance } from './instantiator';\n\n/**\n * Chooses a popup/redirect resolver to use. This prefers the override (which\n * is directly passed in), and falls back to the property set on the auth\n * object. If neither are available, this function errors w/ an argument error.\n */\nexport function _withDefaultResolver(\n auth: AuthInternal,\n resolverOverride: PopupRedirectResolver | undefined\n): PopupRedirectResolverInternal {\n if (resolverOverride) {\n return _getInstance(resolverOverride);\n }\n\n _assert(auth._popupRedirectResolver, auth, AuthErrorCode.ARGUMENT_ERROR);\n\n return auth._popupRedirectResolver;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _link as _linkUser } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { _assert } from '../util/assert';\nimport { _signInWithCredential } from './credential';\nimport { AuthErrorCode } from '../errors';\nimport { ProviderId } from '../../model/enums';\n\nexport interface IdpTaskParams {\n auth: AuthInternal;\n requestUri: string;\n sessionId?: string;\n tenantId?: string;\n postBody?: string;\n pendingToken?: string;\n user?: UserInternal;\n bypassAuthState?: boolean;\n}\n\nexport type IdpTask = (\n params: IdpTaskParams\n) => Promise;\n\nclass IdpCredential extends AuthCredential {\n constructor(readonly params: IdpTaskParams) {\n super(ProviderId.CUSTOM, ProviderId.CUSTOM);\n }\n\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return signInWithIdp(auth, this._buildIdpRequest(idToken));\n }\n\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n private _buildIdpRequest(idToken?: string): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: this.params.requestUri,\n sessionId: this.params.sessionId,\n postBody: this.params.postBody,\n tenantId: this.params.tenantId,\n pendingToken: this.params.pendingToken,\n returnSecureToken: true,\n returnIdpCredential: true\n };\n\n if (idToken) {\n request.idToken = idToken;\n }\n\n return request;\n }\n}\n\nexport function _signIn(\n params: IdpTaskParams\n): Promise {\n return _signInWithCredential(\n params.auth,\n new IdpCredential(params),\n params.bypassAuthState\n ) as Promise;\n}\n\nexport function _reauth(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _reauthenticate(\n user,\n new IdpCredential(params),\n params.bypassAuthState\n );\n}\n\nexport async function _link(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _linkUser(user, new IdpCredential(params), params.bypassAuthState);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { debugAssert, _fail } from '../util/assert';\nimport {\n _link,\n _reauth,\n _signIn,\n IdpTask,\n IdpTaskParams\n} from '../strategies/idp';\nimport { AuthInternal } from '../../model/auth';\n\ninterface PendingPromise {\n resolve: (cred: UserCredentialInternal | null) => void;\n reject: (error: Error) => void;\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n */\nexport abstract class AbstractPopupRedirectOperation\n implements AuthEventConsumer\n{\n private pendingPromise: PendingPromise | null = null;\n private eventManager: EventManager | null = null;\n readonly filter: AuthEventType[];\n\n abstract eventId: string | null;\n\n constructor(\n protected readonly auth: AuthInternal,\n filter: AuthEventType | AuthEventType[],\n protected readonly resolver: PopupRedirectResolverInternal,\n protected user?: UserInternal,\n protected readonly bypassAuthState = false\n ) {\n this.filter = Array.isArray(filter) ? filter : [filter];\n }\n\n abstract onExecution(): Promise;\n\n execute(): Promise {\n return new Promise(\n async (resolve, reject) => {\n this.pendingPromise = { resolve, reject };\n\n try {\n this.eventManager = await this.resolver._initialize(this.auth);\n await this.onExecution();\n this.eventManager.registerConsumer(this);\n } catch (e) {\n this.reject(e as Error);\n }\n }\n );\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n const { urlResponse, sessionId, postBody, tenantId, error, type } = event;\n if (error) {\n this.reject(error);\n return;\n }\n\n const params: IdpTaskParams = {\n auth: this.auth,\n requestUri: urlResponse!,\n sessionId: sessionId!,\n tenantId: tenantId || undefined,\n postBody: postBody || undefined,\n user: this.user,\n bypassAuthState: this.bypassAuthState\n };\n\n try {\n this.resolve(await this.getIdpTask(type)(params));\n } catch (e) {\n this.reject(e as Error);\n }\n }\n\n onError(error: FirebaseError): void {\n this.reject(error);\n }\n\n private getIdpTask(type: AuthEventType): IdpTask {\n switch (type) {\n case AuthEventType.SIGN_IN_VIA_POPUP:\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n return _signIn;\n case AuthEventType.LINK_VIA_POPUP:\n case AuthEventType.LINK_VIA_REDIRECT:\n return _link;\n case AuthEventType.REAUTH_VIA_POPUP:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return _reauth;\n default:\n _fail(this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n protected resolve(cred: UserCredentialInternal | null): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.resolve(cred);\n this.unregisterAndCleanUp();\n }\n\n protected reject(error: Error): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.reject(error);\n this.unregisterAndCleanUp();\n }\n\n private unregisterAndCleanUp(): void {\n if (this.eventManager) {\n this.eventManager.unregisterConsumer(this);\n }\n\n this.pendingPromise = null;\n this.cleanUp();\n }\n\n abstract cleanUp(): void;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport {\n _assert,\n debugAssert,\n _createError,\n _assertInstanceOf\n} from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport { AuthPopup } from '../util/popup';\nimport { AbstractPopupRedirectOperation } from '../../core/strategies/abstract_popup_redirect_operation';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\n\n/*\n * The event timeout is the same on mobile and desktop, no need for Delay. Set this to 8s since\n * blocking functions can take upto 7s to complete sign in, as documented in:\n * https://cloud.google.com/identity-platform/docs/blocking-functions#understanding_blocking_functions\n * https://firebase.google.com/docs/auth/extend-with-blocking-functions#understanding_blocking_functions\n */\nexport const enum _Timeout {\n AUTH_EVENT = 8000\n}\nexport const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2000, 10000);\n\n/**\n * Authenticates a Firebase client using a popup-based OAuth authentication flow.\n *\n * @remarks\n * If succeeds, returns the signed in user along with the provider's credential. If sign in was\n * unsuccessful, returns an error object containing additional information about the error.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n *\n * @public\n */\nexport async function signInWithPopup(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n const action = new PopupOperation(\n authInternal,\n AuthEventType.SIGN_IN_VIA_POPUP,\n provider,\n resolverInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a pop-up based\n * OAuth flow.\n *\n * @remarks\n * If the reauthentication is successful, the returned result will contain the user and the\n * provider's credential.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n * // Reauthenticate using a popup.\n * await reauthenticateWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function reauthenticateWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.REAUTH_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Links the authenticated provider to the user account using a pop-up based OAuth flow.\n *\n * @remarks\n * If the linking is successful, the returned result will contain the user and the provider's credential.\n *\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a popup.\n * const provider = new FacebookAuthProvider();\n * await linkWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function linkWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.LINK_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n *\n */\nclass PopupOperation extends AbstractPopupRedirectOperation {\n // Only one popup is ever shown at once. The lifecycle of the current popup\n // can be managed / cancelled by the constructor.\n private static currentPopupAction: PopupOperation | null = null;\n private authWindow: AuthPopup | null = null;\n private pollId: number | null = null;\n\n constructor(\n auth: AuthInternal,\n filter: AuthEventType,\n private readonly provider: AuthProvider,\n resolver: PopupRedirectResolverInternal,\n user?: UserInternal\n ) {\n super(auth, filter, resolver, user);\n if (PopupOperation.currentPopupAction) {\n PopupOperation.currentPopupAction.cancel();\n }\n\n PopupOperation.currentPopupAction = this;\n }\n\n async executeNotNull(): Promise {\n const result = await this.execute();\n _assert(result, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return result;\n }\n\n async onExecution(): Promise {\n debugAssert(\n this.filter.length === 1,\n 'Popup operations only handle one event'\n );\n const eventId = _generateEventId();\n this.authWindow = await this.resolver._openPopup(\n this.auth,\n this.provider,\n this.filter[0], // There's always one, see constructor\n eventId\n );\n this.authWindow.associatedEvent = eventId;\n\n // Check for web storage support and origin validation _after_ the popup is\n // loaded. These operations are slow (~1 second or so) Rather than\n // waiting on them before opening the window, optimistically open the popup\n // and check for storage support at the same time. If storage support is\n // not available, this will cause the whole thing to reject properly. It\n // will also close the popup, but since the promise has already rejected,\n // the popup closed by user poll will reject into the void.\n this.resolver._originValidation(this.auth).catch(e => {\n this.reject(e);\n });\n\n this.resolver._isIframeWebStorageSupported(this.auth, isSupported => {\n if (!isSupported) {\n this.reject(\n _createError(this.auth, AuthErrorCode.WEB_STORAGE_UNSUPPORTED)\n );\n }\n });\n\n // Handle user closure. Notice this does *not* use await\n this.pollUserCancellation();\n }\n\n get eventId(): string | null {\n return this.authWindow?.associatedEvent || null;\n }\n\n cancel(): void {\n this.reject(_createError(this.auth, AuthErrorCode.EXPIRED_POPUP_REQUEST));\n }\n\n cleanUp(): void {\n if (this.authWindow) {\n this.authWindow.close();\n }\n\n if (this.pollId) {\n window.clearTimeout(this.pollId);\n }\n\n this.authWindow = null;\n this.pollId = null;\n PopupOperation.currentPopupAction = null;\n }\n\n private pollUserCancellation(): void {\n const poll = (): void => {\n if (this.authWindow?.window?.closed) {\n // Make sure that there is sufficient time for whatever action to\n // complete. The window could have closed but the sign in network\n // call could still be in flight. This is specifically true for\n // Firefox or if the opener is in an iframe, in which case the oauth\n // helper closes the popup.\n this.pollId = window.setTimeout(() => {\n this.pollId = null;\n this.reject(\n _createError(this.auth, AuthErrorCode.POPUP_CLOSED_BY_USER)\n );\n }, _Timeout.AUTH_EVENT);\n return;\n }\n\n this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get());\n };\n\n poll();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEvent,\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserCredentialInternal } from '../../model/user';\nimport { PersistenceInternal } from '../persistence';\nimport { _persistenceKeyName } from '../persistence/persistence_user_manager';\nimport { _getInstance } from '../util/instantiator';\nimport { AbstractPopupRedirectOperation } from './abstract_popup_redirect_operation';\n\nconst PENDING_REDIRECT_KEY = 'pendingRedirect';\n\n// We only get one redirect outcome for any one auth, so just store it\n// in here.\nconst redirectOutcomeMap: Map<\n string,\n () => Promise\n> = new Map();\n\nexport class RedirectAction extends AbstractPopupRedirectOperation {\n eventId = null;\n\n constructor(\n auth: AuthInternal,\n resolver: PopupRedirectResolverInternal,\n bypassAuthState = false\n ) {\n super(\n auth,\n [\n AuthEventType.SIGN_IN_VIA_REDIRECT,\n AuthEventType.LINK_VIA_REDIRECT,\n AuthEventType.REAUTH_VIA_REDIRECT,\n AuthEventType.UNKNOWN\n ],\n resolver,\n undefined,\n bypassAuthState\n );\n }\n\n /**\n * Override the execute function; if we already have a redirect result, then\n * just return it.\n */\n async execute(): Promise {\n let readyOutcome = redirectOutcomeMap.get(this.auth._key());\n if (!readyOutcome) {\n try {\n const hasPendingRedirect = await _getAndClearPendingRedirectStatus(\n this.resolver,\n this.auth\n );\n const result = hasPendingRedirect ? await super.execute() : null;\n readyOutcome = () => Promise.resolve(result);\n } catch (e) {\n readyOutcome = () => Promise.reject(e);\n }\n\n redirectOutcomeMap.set(this.auth._key(), readyOutcome);\n }\n\n // If we're not bypassing auth state, the ready outcome should be set to\n // null.\n if (!this.bypassAuthState) {\n redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null));\n }\n\n return readyOutcome();\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n if (event.type === AuthEventType.SIGN_IN_VIA_REDIRECT) {\n return super.onAuthEvent(event);\n } else if (event.type === AuthEventType.UNKNOWN) {\n // This is a sentinel value indicating there's no pending redirect\n this.resolve(null);\n return;\n }\n\n if (event.eventId) {\n const user = await this.auth._redirectUserForId(event.eventId);\n if (user) {\n this.user = user;\n return super.onAuthEvent(event);\n } else {\n this.resolve(null);\n }\n }\n }\n\n async onExecution(): Promise {}\n\n cleanUp(): void {}\n}\n\nexport async function _getAndClearPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n const key = pendingRedirectKey(auth);\n const persistence = resolverPersistence(resolver);\n if (!(await persistence._isAvailable())) {\n return false;\n }\n const hasPendingRedirect = (await persistence._get(key)) === 'true';\n await persistence._remove(key);\n return hasPendingRedirect;\n}\n\nexport async function _setPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n return resolverPersistence(resolver)._set(pendingRedirectKey(auth), 'true');\n}\n\nexport function _clearRedirectOutcomes(): void {\n redirectOutcomeMap.clear();\n}\n\nexport function _overrideRedirectResult(\n auth: AuthInternal,\n result: () => Promise\n): void {\n redirectOutcomeMap.set(auth._key(), result);\n}\n\nfunction resolverPersistence(\n resolver: PopupRedirectResolverInternal\n): PersistenceInternal {\n return _getInstance(resolver._redirectPersistence);\n}\n\nfunction pendingRedirectKey(auth: AuthInternal): string {\n return _persistenceKeyName(\n PENDING_REDIRECT_KEY,\n auth.config.apiKey,\n auth.name\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { _assertLinkedStatus } from '../../core/user/link_unlink';\nimport { _assertInstanceOf } from '../../core/util/assert';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport {\n RedirectAction,\n _setPendingRedirectStatus\n} from '../../core/strategies/redirect';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\n\n/**\n * Authenticates a Firebase client using a full-page redirect flow.\n *\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link signInWithRedirect}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _signInWithRedirect(auth, provider, resolver) as Promise;\n}\n\nexport async function _signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await authInternal._initializationPromise;\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n await _setPendingRedirectStatus(resolverInternal, authInternal);\n\n return resolverInternal._openRedirect(\n authInternal,\n provider,\n AuthEventType.SIGN_IN_VIA_REDIRECT\n );\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a full-page redirect flow.\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link reauthenticateWithRedirect}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * // Reauthenticate using a redirect.\n * await reauthenticateWithRedirect(result.user, provider);\n * // This will again trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _reauthenticateWithRedirect(\n user,\n provider,\n resolver\n ) as Promise;\n}\nexport async function _reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await userInternal.auth._initializationPromise;\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.REAUTH_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Links the {@link OAuthProvider} to the user account using a full-page redirect flow.\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link linkWithRedirect}.\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a redirect.\n * const provider = new FacebookAuthProvider();\n * await linkWithRedirect(result.user, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n *\n * @public\n */\nexport function linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _linkWithRedirect(user, provider, resolver) as Promise;\n}\nexport async function _linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await userInternal.auth._initializationPromise;\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _assertLinkedStatus(false, userInternal, provider.providerId);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.LINK_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Returns a {@link UserCredential} from the redirect-based sign-in flow.\n *\n * @remarks\n * If sign-in succeeded, returns the signed in user. If sign-in was unsuccessful, fails with an\n * error. If no redirect operation was called, returns `null`.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function getRedirectResult(\n auth: Auth,\n resolver?: PopupRedirectResolver\n): Promise {\n await _castAuth(auth)._initializationPromise;\n return _getRedirectResult(auth, resolver, false);\n}\n\nexport async function _getRedirectResult(\n auth: Auth,\n resolverExtern?: PopupRedirectResolver,\n bypassAuthState = false\n): Promise {\n const authInternal = _castAuth(auth);\n const resolver = _withDefaultResolver(authInternal, resolverExtern);\n const action = new RedirectAction(authInternal, resolver, bypassAuthState);\n const result = await action.execute();\n\n if (result && !bypassAuthState) {\n delete result.user._redirectEventId;\n await authInternal._persistUserIfCurrent(result.user as UserInternal);\n await authInternal._setRedirectUser(null, resolverExtern);\n }\n\n return result;\n}\n\nasync function prepareUserForRedirect(user: UserInternal): Promise {\n const eventId = _generateEventId(`${user.uid}:::`);\n user._redirectEventId = eventId;\n await user.auth._setRedirectUser(user);\n await user.auth._persistUserIfCurrent(user);\n return eventId;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager\n} from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { AuthInternal } from '../../model/auth';\nimport { _createError } from '../util/assert';\n\n// The amount of time to store the UIDs of seen events; this is\n// set to 10 min by default\nconst EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1000;\n\nexport class AuthEventManager implements EventManager {\n private readonly cachedEventUids: Set = new Set();\n private readonly consumers: Set = new Set();\n protected queuedRedirectEvent: AuthEvent | null = null;\n protected hasHandledPotentialRedirect = false;\n private lastProcessedEventTime = Date.now();\n\n constructor(private readonly auth: AuthInternal) {}\n\n registerConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.add(authEventConsumer);\n\n if (\n this.queuedRedirectEvent &&\n this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)\n ) {\n this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer);\n this.saveEventToCache(this.queuedRedirectEvent);\n this.queuedRedirectEvent = null;\n }\n }\n\n unregisterConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.delete(authEventConsumer);\n }\n\n onEvent(event: AuthEvent): boolean {\n // Check if the event has already been handled\n if (this.hasEventBeenHandled(event)) {\n return false;\n }\n\n let handled = false;\n this.consumers.forEach(consumer => {\n if (this.isEventForConsumer(event, consumer)) {\n handled = true;\n this.sendToConsumer(event, consumer);\n this.saveEventToCache(event);\n }\n });\n\n if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) {\n // If we've already seen a redirect before, or this is a popup event,\n // bail now\n return handled;\n }\n\n this.hasHandledPotentialRedirect = true;\n\n // If the redirect wasn't handled, hang on to it\n if (!handled) {\n this.queuedRedirectEvent = event;\n handled = true;\n }\n\n return handled;\n }\n\n private sendToConsumer(event: AuthEvent, consumer: AuthEventConsumer): void {\n if (event.error && !isNullRedirectEvent(event)) {\n const code =\n (event.error.code?.split('auth/')[1] as AuthErrorCode) ||\n AuthErrorCode.INTERNAL_ERROR;\n consumer.onError(_createError(this.auth, code));\n } else {\n consumer.onAuthEvent(event);\n }\n }\n\n private isEventForConsumer(\n event: AuthEvent,\n consumer: AuthEventConsumer\n ): boolean {\n const eventIdMatches =\n consumer.eventId === null ||\n (!!event.eventId && event.eventId === consumer.eventId);\n return consumer.filter.includes(event.type) && eventIdMatches;\n }\n\n private hasEventBeenHandled(event: AuthEvent): boolean {\n if (\n Date.now() - this.lastProcessedEventTime >=\n EVENT_DUPLICATION_CACHE_DURATION_MS\n ) {\n this.cachedEventUids.clear();\n }\n\n return this.cachedEventUids.has(eventUid(event));\n }\n\n private saveEventToCache(event: AuthEvent): void {\n this.cachedEventUids.add(eventUid(event));\n this.lastProcessedEventTime = Date.now();\n }\n}\n\nfunction eventUid(e: AuthEvent): string {\n return [e.type, e.eventId, e.sessionId, e.tenantId].filter(v => v).join('-');\n}\n\nfunction isNullRedirectEvent({ type, error }: AuthEvent): boolean {\n return (\n type === AuthEventType.UNKNOWN &&\n error?.code === `auth/${AuthErrorCode.NO_AUTH_EVENT}`\n );\n}\n\nfunction isRedirectEvent(event: AuthEvent): boolean {\n switch (event.type) {\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n case AuthEventType.LINK_VIA_REDIRECT:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return true;\n case AuthEventType.UNKNOWN:\n return isNullRedirectEvent(event);\n default:\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _performApiRequest, Endpoint, HttpMethod } from '../index';\nimport { Auth } from '../../model/public_types';\n\nexport interface GetProjectConfigRequest {\n androidPackageName?: string;\n iosBundleId?: string;\n}\n\nexport interface GetProjectConfigResponse {\n authorizedDomains: string[];\n}\n\nexport async function _getProjectConfig(\n auth: Auth,\n request: GetProjectConfigRequest = {}\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_PROJECT_CONFIG,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProjectConfig } from '../../api/project_config/get_project_config';\nimport { AuthInternal } from '../../model/auth';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from './assert';\nimport { _getCurrentUrl } from './location';\n\nconst IP_ADDRESS_REGEX = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\nconst HTTP_REGEX = /^https?/;\n\nexport async function _validateOrigin(auth: AuthInternal): Promise {\n // Skip origin validation if we are in an emulated environment\n if (auth.config.emulator) {\n return;\n }\n\n const { authorizedDomains } = await _getProjectConfig(auth);\n\n for (const domain of authorizedDomains) {\n try {\n if (matchDomain(domain)) {\n return;\n }\n } catch {\n // Do nothing if there's a URL error; just continue searching\n }\n }\n\n // In the old SDK, this error also provides helpful messages.\n _fail(auth, AuthErrorCode.INVALID_ORIGIN);\n}\n\nfunction matchDomain(expected: string): boolean {\n const currentUrl = _getCurrentUrl();\n const { protocol, hostname } = new URL(currentUrl);\n if (expected.startsWith('chrome-extension://')) {\n const ceUrl = new URL(expected);\n\n if (ceUrl.hostname === '' && hostname === '') {\n // For some reason we're not parsing chrome URLs properly\n return (\n protocol === 'chrome-extension:' &&\n expected.replace('chrome-extension://', '') ===\n currentUrl.replace('chrome-extension://', '')\n );\n }\n\n return protocol === 'chrome-extension:' && ceUrl.hostname === hostname;\n }\n\n if (!HTTP_REGEX.test(protocol)) {\n return false;\n }\n\n if (IP_ADDRESS_REGEX.test(expected)) {\n // The domain has to be exactly equal to the pattern, as an IP domain will\n // only contain the IP, no extra character.\n return hostname === expected;\n }\n\n // Dots in pattern should be escaped.\n const escapedDomainPattern = expected.replace(/\\./g, '\\\\.');\n // Non ip address domains.\n // domain.com = *.domain.com OR domain.com\n const re = new RegExp(\n '^(.+\\\\.' + escapedDomainPattern + '|' + escapedDomainPattern + ')$',\n 'i'\n );\n return re.test(hostname);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as js from '../load_js';\n\nconst NETWORK_TIMEOUT = new Delay(30000, 60000);\n\n/**\n * Reset unlaoded GApi modules. If gapi.load fails due to a network error,\n * it will stop working after a retrial. This is a hack to fix this issue.\n */\nfunction resetUnloadedGapiModules(): void {\n // Clear last failed gapi.load state to force next gapi.load to first\n // load the failed gapi.iframes module.\n // Get gapix.beacon context.\n const beacon = _window().___jsl;\n // Get current hint.\n if (beacon?.H) {\n // Get gapi hint.\n for (const hint of Object.keys(beacon.H)) {\n // Requested modules.\n beacon.H[hint].r = beacon.H[hint].r || [];\n // Loaded modules.\n beacon.H[hint].L = beacon.H[hint].L || [];\n // Set requested modules to a copy of the loaded modules.\n beacon.H[hint].r = [...beacon.H[hint].L];\n // Clear pending callbacks.\n if (beacon.CP) {\n for (let i = 0; i < beacon.CP.length; i++) {\n // Remove all failed pending callbacks.\n beacon.CP[i] = null;\n }\n }\n }\n }\n}\n\nfunction loadGapi(auth: AuthInternal): Promise {\n return new Promise((resolve, reject) => {\n // Function to run when gapi.load is ready.\n function loadGapiIframe(): void {\n // The developer may have tried to previously run gapi.load and failed.\n // Run this to fix that.\n resetUnloadedGapiModules();\n gapi.load('gapi.iframes', {\n callback: () => {\n resolve(gapi.iframes.getContext());\n },\n ontimeout: () => {\n // The above reset may be sufficient, but having this reset after\n // failure ensures that if the developer calls gapi.load after the\n // connection is re-established and before another attempt to embed\n // the iframe, it would work and would not be broken because of our\n // failed attempt.\n // Timeout when gapi.iframes.Iframe not loaded.\n resetUnloadedGapiModules();\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n },\n timeout: NETWORK_TIMEOUT.get()\n });\n }\n\n if (_window().gapi?.iframes?.Iframe) {\n // If gapi.iframes.Iframe available, resolve.\n resolve(gapi.iframes.getContext());\n } else if (!!_window().gapi?.load) {\n // Gapi loader ready, load gapi.iframes.\n loadGapiIframe();\n } else {\n // Create a new iframe callback when this is called so as not to overwrite\n // any previous defined callback. This happens if this method is called\n // multiple times in parallel and could result in the later callback\n // overwriting the previous one. This would end up with a iframe\n // timeout.\n const cbName = js._generateCallbackName('iframefcb');\n // GApi loader not available, dynamically load platform.js.\n _window()[cbName] = () => {\n // GApi loader should be ready.\n if (!!gapi.load) {\n loadGapiIframe();\n } else {\n // Gapi loader failed, throw error.\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }\n };\n // Load GApi loader.\n return js\n ._loadJS(`https://apis.google.com/js/api.js?onload=${cbName}`)\n .catch(e => reject(e));\n }\n }).catch(error => {\n // Reset cached promise to allow for retrial.\n cachedGApiLoader = null;\n throw error;\n });\n}\n\nlet cachedGApiLoader: Promise | null = null;\nexport function _loadGapi(auth: AuthInternal): Promise {\n cachedGApiLoader = cachedGApiLoader || loadGapi(auth);\n return cachedGApiLoader;\n}\n\nexport function _resetLoader(): void {\n cachedGApiLoader = null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { querystring } from '@firebase/util';\nimport { DefaultConfig } from '../../../internal';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _emulatorUrl } from '../../core/util/emulator';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as gapiLoader from './gapi';\n\nconst PING_TIMEOUT = new Delay(5000, 15000);\nconst IFRAME_PATH = '__/auth/iframe';\nconst EMULATED_IFRAME_PATH = 'emulator/auth/iframe';\n\nconst IFRAME_ATTRIBUTES = {\n style: {\n position: 'absolute',\n top: '-100px',\n width: '1px',\n height: '1px'\n },\n 'aria-hidden': 'true',\n tabindex: '-1'\n};\n\n// Map from apiHost to endpoint ID for passing into iframe. In current SDK, apiHost can be set to\n// anything (not from a list of endpoints with IDs as in legacy), so this is the closest we can get.\nconst EID_FROM_APIHOST = new Map([\n [DefaultConfig.API_HOST, 'p'], // production\n ['staging-identitytoolkit.sandbox.googleapis.com', 's'], // staging\n ['test-identitytoolkit.sandbox.googleapis.com', 't'] // test\n]);\n\nfunction getIframeUrl(auth: AuthInternal): string {\n const config = auth.config;\n _assert(config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n const url = config.emulator\n ? _emulatorUrl(config, EMULATED_IFRAME_PATH)\n : `https://${auth.config.authDomain}/${IFRAME_PATH}`;\n\n const params: Record = {\n apiKey: config.apiKey,\n appName: auth.name,\n v: SDK_VERSION\n };\n const eid = EID_FROM_APIHOST.get(auth.config.apiHost);\n if (eid) {\n params.eid = eid;\n }\n const frameworks = auth._getFrameworks();\n if (frameworks.length) {\n params.fw = frameworks.join(',');\n }\n return `${url}?${querystring(params).slice(1)}`;\n}\n\nexport async function _openIframe(\n auth: AuthInternal\n): Promise {\n const context = await gapiLoader._loadGapi(auth);\n const gapi = _window().gapi;\n _assert(gapi, auth, AuthErrorCode.INTERNAL_ERROR);\n return context.open(\n {\n where: document.body,\n url: getIframeUrl(auth),\n messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER,\n attributes: IFRAME_ATTRIBUTES,\n dontclear: true\n },\n (iframe: gapi.iframes.Iframe) =>\n new Promise(async (resolve, reject) => {\n await iframe.restyle({\n // Prevent iframe from closing on mouse out.\n setHideOnLeave: false\n });\n\n const networkError = _createError(\n auth,\n AuthErrorCode.NETWORK_REQUEST_FAILED\n );\n // Confirm iframe is correctly loaded.\n // To fallback on failure, set a timeout.\n const networkErrorTimer = _window().setTimeout(() => {\n reject(networkError);\n }, PING_TIMEOUT.get());\n // Clear timer and resolve pending iframe ready promise.\n function clearTimerAndResolve(): void {\n _window().clearTimeout(networkErrorTimer);\n resolve(iframe);\n }\n // This returns an IThenable. However the reject part does not call\n // when the iframe is not loaded.\n iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => {\n reject(networkError);\n });\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getUA } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport {\n _isChromeIOS,\n _isFirefox,\n _isIOSStandalone\n} from '../../core/util/browser';\nimport { AuthInternal } from '../../model/auth';\n\nconst BASE_POPUP_OPTIONS = {\n location: 'yes',\n resizable: 'yes',\n statusbar: 'yes',\n toolbar: 'no'\n};\n\nconst DEFAULT_WIDTH = 500;\nconst DEFAULT_HEIGHT = 600;\nconst TARGET_BLANK = '_blank';\n\nconst FIREFOX_EMPTY_URL = 'http://localhost';\n\nexport class AuthPopup {\n associatedEvent: string | null = null;\n\n constructor(readonly window: Window | null) {}\n\n close(): void {\n if (this.window) {\n try {\n this.window.close();\n } catch (e) {}\n }\n }\n}\n\nexport function _open(\n auth: AuthInternal,\n url?: string,\n name?: string,\n width = DEFAULT_WIDTH,\n height = DEFAULT_HEIGHT\n): AuthPopup {\n const top = Math.max((window.screen.availHeight - height) / 2, 0).toString();\n const left = Math.max((window.screen.availWidth - width) / 2, 0).toString();\n let target = '';\n\n const options: { [key: string]: string } = {\n ...BASE_POPUP_OPTIONS,\n width: width.toString(),\n height: height.toString(),\n top,\n left\n };\n\n // Chrome iOS 7 and 8 is returning an undefined popup win when target is\n // specified, even though the popup is not necessarily blocked.\n const ua = getUA().toLowerCase();\n\n if (name) {\n target = _isChromeIOS(ua) ? TARGET_BLANK : name;\n }\n\n if (_isFirefox(ua)) {\n // Firefox complains when invalid URLs are popped out. Hacky way to bypass.\n url = url || FIREFOX_EMPTY_URL;\n // Firefox disables by default scrolling on popup windows, which can create\n // issues when the user has many Google accounts, for instance.\n options.scrollbars = 'yes';\n }\n\n const optionsString = Object.entries(options).reduce(\n (accum, [key, value]) => `${accum}${key}=${value},`,\n ''\n );\n\n if (_isIOSStandalone(ua) && target !== '_self') {\n openAsNewWindowIOS(url || '', target);\n return new AuthPopup(null);\n }\n\n // about:blank getting sanitized causing browsers like IE/Edge to display\n // brief error message before redirecting to handler.\n const newWin = window.open(url || '', target, optionsString);\n _assert(newWin, auth, AuthErrorCode.POPUP_BLOCKED);\n\n // Flaky on IE edge, encapsulate with a try and catch.\n try {\n newWin.focus();\n } catch (e) {}\n\n return new AuthPopup(newWin);\n}\n\nfunction openAsNewWindowIOS(url: string, target: string): void {\n const el = document.createElement('a');\n el.href = url;\n el.target = target;\n const click = document.createEvent('MouseEvent');\n click.initMouseEvent(\n 'click',\n true,\n true,\n window,\n 1,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 1,\n null\n );\n el.dispatchEvent(click);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { AuthProvider } from '../../model/public_types';\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { isEmpty, querystring } from '@firebase/util';\nimport { _emulatorUrl } from './emulator';\nimport { FederatedAuthProvider } from '../providers/federated';\nimport { BaseOAuthProvider } from '../providers/oauth';\n\n/**\n * URL for Authentication widget which will initiate the OAuth handshake\n *\n * @internal\n */\nconst WIDGET_PATH = '__/auth/handler';\n\n/**\n * URL for emulated environment\n *\n * @internal\n */\nconst EMULATOR_WIDGET_PATH = 'emulator/auth/handler';\n\n/**\n * Fragment name for the App Check token that gets passed to the widget\n *\n * @internal\n */\nconst FIREBASE_APP_CHECK_FRAGMENT_ID = encodeURIComponent('fac');\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\ntype WidgetParams = {\n apiKey: ApiKey;\n appName: AppName;\n authType: AuthEventType;\n redirectUrl?: string;\n v: string;\n providerId?: string;\n scopes?: string;\n customParameters?: string;\n eventId?: string;\n tid?: string;\n} & { [key: string]: string | undefined };\n\nexport async function _getRedirectUrl(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n redirectUrl?: string,\n eventId?: string,\n additionalParams?: Record\n): Promise {\n _assert(auth.config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n _assert(auth.config.apiKey, auth, AuthErrorCode.INVALID_API_KEY);\n\n const params: WidgetParams = {\n apiKey: auth.config.apiKey,\n appName: auth.name,\n authType,\n redirectUrl,\n v: SDK_VERSION,\n eventId\n };\n\n if (provider instanceof FederatedAuthProvider) {\n provider.setDefaultLanguage(auth.languageCode);\n params.providerId = provider.providerId || '';\n if (!isEmpty(provider.getCustomParameters())) {\n params.customParameters = JSON.stringify(provider.getCustomParameters());\n }\n\n // TODO set additionalParams from the provider as well?\n for (const [key, value] of Object.entries(additionalParams || {})) {\n params[key] = value;\n }\n }\n\n if (provider instanceof BaseOAuthProvider) {\n const scopes = provider.getScopes().filter(scope => scope !== '');\n if (scopes.length > 0) {\n params.scopes = scopes.join(',');\n }\n }\n\n if (auth.tenantId) {\n params.tid = auth.tenantId;\n }\n\n // TODO: maybe set eid as endipointId\n // TODO: maybe set fw as Frameworks.join(\",\")\n\n const paramsDict = params as Record;\n for (const key of Object.keys(paramsDict)) {\n if (paramsDict[key] === undefined) {\n delete paramsDict[key];\n }\n }\n\n // Sets the App Check token to pass to the widget\n const appCheckToken = await auth._getAppCheckToken();\n const appCheckTokenFragment = appCheckToken\n ? `#${FIREBASE_APP_CHECK_FRAGMENT_ID}=${encodeURIComponent(appCheckToken)}`\n : '';\n\n // Start at index 1 to skip the leading '&' in the query string\n return `${getHandlerBase(auth)}?${querystring(paramsDict).slice(\n 1\n )}${appCheckTokenFragment}`;\n}\n\nfunction getHandlerBase({ config }: AuthInternal): string {\n if (!config.emulator) {\n return `https://${config.authDomain}/${WIDGET_PATH}`;\n }\n\n return _emulatorUrl(config, EMULATOR_WIDGET_PATH);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, PopupRedirectResolver } from '../model/public_types';\n\nimport { AuthEventManager } from '../core/auth/auth_event_manager';\nimport { AuthErrorCode } from '../core/errors';\nimport { _assert, debugAssert, _fail } from '../core/util/assert';\nimport { _generateEventId } from '../core/util/event_id';\nimport { _getCurrentUrl } from '../core/util/location';\nimport { _validateOrigin } from '../core/util/validate_origin';\nimport { AuthInternal } from '../model/auth';\nimport {\n AuthEventType,\n EventManager,\n GapiAuthEvent,\n GapiOutcome,\n PopupRedirectResolverInternal\n} from '../model/popup_redirect';\nimport { _setWindowLocation } from './auth_window';\nimport { _openIframe } from './iframe/iframe';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { _open, AuthPopup } from './util/popup';\nimport { _getRedirectResult } from './strategies/redirect';\nimport { _getRedirectUrl } from '../core/util/handler';\nimport { _isIOS, _isMobileBrowser, _isSafari } from '../core/util/browser';\nimport { _overrideRedirectResult } from '../core/strategies/redirect';\n\n/**\n * The special web storage event\n *\n */\nconst WEB_STORAGE_SUPPORT_KEY = 'webStorageSupport';\n\ninterface WebStorageSupportMessage extends gapi.iframes.Message {\n [index: number]: Record;\n}\n\ninterface ManagerOrPromise {\n manager?: EventManager;\n promise?: Promise;\n}\n\nclass BrowserPopupRedirectResolver implements PopupRedirectResolverInternal {\n private readonly eventManagers: Record = {};\n private readonly iframes: Record = {};\n private readonly originValidationPromises: Record> = {};\n\n readonly _redirectPersistence = browserSessionPersistence;\n\n // Wrapping in async even though we don't await anywhere in order\n // to make sure errors are raised as promise rejections\n async _openPopup(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n debugAssert(\n this.eventManagers[auth._key()]?.manager,\n '_initialize() not called before _openPopup()'\n );\n\n const url = await _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n return _open(auth, url, _generateEventId());\n }\n\n async _openRedirect(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n await this._originValidation(auth);\n const url = await _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n _setWindowLocation(url);\n return new Promise(() => {});\n }\n\n _initialize(auth: AuthInternal): Promise {\n const key = auth._key();\n if (this.eventManagers[key]) {\n const { manager, promise } = this.eventManagers[key];\n if (manager) {\n return Promise.resolve(manager);\n } else {\n debugAssert(promise, 'If manager is not set, promise should be');\n return promise;\n }\n }\n\n const promise = this.initAndGetManager(auth);\n this.eventManagers[key] = { promise };\n\n // If the promise is rejected, the key should be removed so that the\n // operation can be retried later.\n promise.catch(() => {\n delete this.eventManagers[key];\n });\n\n return promise;\n }\n\n private async initAndGetManager(auth: AuthInternal): Promise {\n const iframe = await _openIframe(auth);\n const manager = new AuthEventManager(auth);\n iframe.register(\n 'authEvent',\n (iframeEvent: GapiAuthEvent | null) => {\n _assert(iframeEvent?.authEvent, auth, AuthErrorCode.INVALID_AUTH_EVENT);\n // TODO: Consider splitting redirect and popup events earlier on\n\n const handled = manager.onEvent(iframeEvent.authEvent);\n return { status: handled ? GapiOutcome.ACK : GapiOutcome.ERROR };\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n\n this.eventManagers[auth._key()] = { manager };\n this.iframes[auth._key()] = iframe;\n return manager;\n }\n\n _isIframeWebStorageSupported(\n auth: AuthInternal,\n cb: (supported: boolean) => unknown\n ): void {\n const iframe = this.iframes[auth._key()];\n iframe.send(\n WEB_STORAGE_SUPPORT_KEY,\n { type: WEB_STORAGE_SUPPORT_KEY },\n result => {\n const isSupported = result?.[0]?.[WEB_STORAGE_SUPPORT_KEY];\n if (isSupported !== undefined) {\n cb(!!isSupported);\n }\n\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n }\n\n _originValidation(auth: AuthInternal): Promise {\n const key = auth._key();\n if (!this.originValidationPromises[key]) {\n this.originValidationPromises[key] = _validateOrigin(auth);\n }\n\n return this.originValidationPromises[key];\n }\n\n get _shouldInitProactively(): boolean {\n // Mobile browsers and Safari need to optimistically initialize\n return _isMobileBrowser() || _isSafari() || _isIOS();\n }\n\n _completeRedirectFn = _getRedirectResult;\n\n _overrideRedirectResult = _overrideRedirectResult;\n}\n\n/**\n * An implementation of {@link PopupRedirectResolver} suitable for browser\n * based applications.\n *\n * @public\n */\nexport const browserPopupRedirectResolver: PopupRedirectResolver =\n BrowserPopupRedirectResolver;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { FactorId, MultiFactorAssertion } from '../model/public_types';\nimport { debugFail } from '../core/util/assert';\nimport { MultiFactorSessionImpl, MultiFactorSessionType } from './mfa_session';\nimport { FinalizeMfaResponse } from '../api/authentication/mfa';\nimport { AuthInternal } from '../model/auth';\n\nexport abstract class MultiFactorAssertionImpl implements MultiFactorAssertion {\n protected constructor(readonly factorId: FactorId) {}\n\n _process(\n auth: AuthInternal,\n session: MultiFactorSessionImpl,\n displayName?: string | null\n ): Promise {\n switch (session.type) {\n case MultiFactorSessionType.ENROLL:\n return this._finalizeEnroll(auth, session.credential, displayName);\n case MultiFactorSessionType.SIGN_IN:\n return this._finalizeSignIn(auth, session.credential);\n default:\n return debugFail('unexpected MultiFactorSessionType');\n }\n }\n\n abstract _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise;\n abstract _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n FactorId,\n PhoneMultiFactorAssertion\n} from '../../../model/public_types';\n\nimport { MultiFactorAssertionImpl } from '../../../mfa/mfa_assertion';\nimport { AuthInternal } from '../../../model/auth';\nimport { finalizeEnrollPhoneMfa } from '../../../api/account_management/mfa';\nimport { PhoneAuthCredential } from '../../../core/credentials/phone';\nimport {\n finalizeSignInPhoneMfa,\n FinalizeMfaResponse\n} from '../../../api/authentication/mfa';\n\n/**\n * {@inheritdoc PhoneMultiFactorAssertion}\n *\n * @public\n */\nexport class PhoneMultiFactorAssertionImpl\n extends MultiFactorAssertionImpl\n implements PhoneMultiFactorAssertion\n{\n private constructor(private readonly credential: PhoneAuthCredential) {\n super(FactorId.PHONE);\n }\n\n /** @internal */\n static _fromCredential(\n credential: PhoneAuthCredential\n ): PhoneMultiFactorAssertionImpl {\n return new PhoneMultiFactorAssertionImpl(credential);\n }\n\n /** @internal */\n _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise {\n return finalizeEnrollPhoneMfa(auth, {\n idToken,\n displayName,\n phoneVerificationInfo: this.credential._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise {\n return finalizeSignInPhoneMfa(auth, {\n mfaPendingCredential,\n phoneVerificationInfo: this.credential._makeVerificationRequest()\n });\n }\n}\n\n/**\n * Provider for generating a {@link PhoneMultiFactorAssertion}.\n *\n * @public\n */\nexport class PhoneMultiFactorGenerator {\n private constructor() {}\n\n /**\n * Provides a {@link PhoneMultiFactorAssertion} to confirm ownership of the phone second factor.\n *\n * @param phoneAuthCredential - A credential provided by {@link PhoneAuthProvider.credential}.\n * @returns A {@link PhoneMultiFactorAssertion} which can be used with\n * {@link MultiFactorResolver.resolveSignIn}\n */\n static assertion(credential: PhoneAuthCredential): PhoneMultiFactorAssertion {\n return PhoneMultiFactorAssertionImpl._fromCredential(credential);\n }\n\n /**\n * The identifier of the phone second factor: `phone`.\n */\n static FACTOR_ID = 'phone';\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n TotpMultiFactorAssertion,\n MultiFactorSession,\n FactorId\n} from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport {\n finalizeEnrollTotpMfa,\n startEnrollTotpMfa,\n StartTotpMfaEnrollmentResponse,\n TotpVerificationInfo\n} from '../../api/account_management/mfa';\nimport {\n FinalizeMfaResponse,\n finalizeSignInTotpMfa\n} from '../../api/authentication/mfa';\nimport { MultiFactorAssertionImpl } from '../../mfa/mfa_assertion';\nimport { MultiFactorSessionImpl } from '../mfa_session';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\n\n/**\n * Provider for generating a {@link TotpMultiFactorAssertion}.\n *\n * @public\n */\nexport class TotpMultiFactorGenerator {\n /**\n * Provides a {@link TotpMultiFactorAssertion} to confirm ownership of\n * the TOTP (time-based one-time password) second factor.\n * This assertion is used to complete enrollment in TOTP second factor.\n *\n * @param secret A {@link TotpSecret} containing the shared secret key and other TOTP parameters.\n * @param oneTimePassword One-time password from TOTP App.\n * @returns A {@link TotpMultiFactorAssertion} which can be used with\n * {@link MultiFactorUser.enroll}.\n */\n static assertionForEnrollment(\n secret: TotpSecret,\n oneTimePassword: string\n ): TotpMultiFactorAssertion {\n return TotpMultiFactorAssertionImpl._fromSecret(secret, oneTimePassword);\n }\n\n /**\n * Provides a {@link TotpMultiFactorAssertion} to confirm ownership of the TOTP second factor.\n * This assertion is used to complete signIn with TOTP as the second factor.\n *\n * @param enrollmentId identifies the enrolled TOTP second factor.\n * @param oneTimePassword One-time password from TOTP App.\n * @returns A {@link TotpMultiFactorAssertion} which can be used with\n * {@link MultiFactorResolver.resolveSignIn}.\n */\n static assertionForSignIn(\n enrollmentId: string,\n oneTimePassword: string\n ): TotpMultiFactorAssertion {\n return TotpMultiFactorAssertionImpl._fromEnrollmentId(\n enrollmentId,\n oneTimePassword\n );\n }\n\n /**\n * Returns a promise to {@link TotpSecret} which contains the TOTP shared secret key and other parameters.\n * Creates a TOTP secret as part of enrolling a TOTP second factor.\n * Used for generating a QR code URL or inputting into a TOTP app.\n * This method uses the auth instance corresponding to the user in the multiFactorSession.\n *\n * @param session The {@link MultiFactorSession} that the user is part of.\n * @returns A promise to {@link TotpSecret}.\n */\n static async generateSecret(\n session: MultiFactorSession\n ): Promise {\n const mfaSession = session as MultiFactorSessionImpl;\n _assert(\n typeof mfaSession.auth !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n const response = await startEnrollTotpMfa(mfaSession.auth, {\n idToken: mfaSession.credential,\n totpEnrollmentInfo: {}\n });\n return TotpSecret._fromStartTotpMfaEnrollmentResponse(\n response,\n mfaSession.auth\n );\n }\n\n /**\n * The identifier of the TOTP second factor: `totp`.\n */\n static FACTOR_ID: 'totp' = FactorId.TOTP;\n}\n\nexport class TotpMultiFactorAssertionImpl\n extends MultiFactorAssertionImpl\n implements TotpMultiFactorAssertion\n{\n constructor(\n readonly otp: string,\n readonly enrollmentId?: string,\n readonly secret?: TotpSecret\n ) {\n super(FactorId.TOTP);\n }\n\n /** @internal */\n static _fromSecret(\n secret: TotpSecret,\n otp: string\n ): TotpMultiFactorAssertionImpl {\n return new TotpMultiFactorAssertionImpl(otp, undefined, secret);\n }\n\n /** @internal */\n static _fromEnrollmentId(\n enrollmentId: string,\n otp: string\n ): TotpMultiFactorAssertionImpl {\n return new TotpMultiFactorAssertionImpl(otp, enrollmentId);\n }\n\n /** @internal */\n async _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise {\n _assert(\n typeof this.secret !== 'undefined',\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n return finalizeEnrollTotpMfa(auth, {\n idToken,\n displayName,\n totpVerificationInfo: this.secret._makeTotpVerificationInfo(this.otp)\n });\n }\n\n /** @internal */\n async _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise {\n _assert(\n this.enrollmentId !== undefined && this.otp !== undefined,\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n const totpVerificationInfo = { verificationCode: this.otp };\n return finalizeSignInTotpMfa(auth, {\n mfaPendingCredential,\n mfaEnrollmentId: this.enrollmentId,\n totpVerificationInfo\n });\n }\n}\n\n/**\n * Provider for generating a {@link TotpMultiFactorAssertion}.\n *\n * Stores the shared secret key and other parameters to generate time-based OTPs.\n * Implements methods to retrieve the shared secret key and generate a QR code URL.\n * @public\n */\nexport class TotpSecret {\n /**\n * Shared secret key/seed used for enrolling in TOTP MFA and generating OTPs.\n */\n readonly secretKey: string;\n /**\n * Hashing algorithm used.\n */\n readonly hashingAlgorithm: string;\n /**\n * Length of the one-time passwords to be generated.\n */\n readonly codeLength: number;\n /**\n * The interval (in seconds) when the OTP codes should change.\n */\n readonly codeIntervalSeconds: number;\n /**\n * The timestamp (UTC string) by which TOTP enrollment should be completed.\n */\n // This can be used by callers to show a countdown of when to enter OTP code by.\n readonly enrollmentCompletionDeadline: string;\n\n // The public members are declared outside the constructor so the docs can be generated.\n private constructor(\n secretKey: string,\n hashingAlgorithm: string,\n codeLength: number,\n codeIntervalSeconds: number,\n enrollmentCompletionDeadline: string,\n private readonly sessionInfo: string,\n private readonly auth: AuthInternal\n ) {\n this.secretKey = secretKey;\n this.hashingAlgorithm = hashingAlgorithm;\n this.codeLength = codeLength;\n this.codeIntervalSeconds = codeIntervalSeconds;\n this.enrollmentCompletionDeadline = enrollmentCompletionDeadline;\n }\n\n /** @internal */\n static _fromStartTotpMfaEnrollmentResponse(\n response: StartTotpMfaEnrollmentResponse,\n auth: AuthInternal\n ): TotpSecret {\n return new TotpSecret(\n response.totpSessionInfo.sharedSecretKey,\n response.totpSessionInfo.hashingAlgorithm,\n response.totpSessionInfo.verificationCodeLength,\n response.totpSessionInfo.periodSec,\n new Date(response.totpSessionInfo.finalizeEnrollmentTime).toUTCString(),\n response.totpSessionInfo.sessionInfo,\n auth\n );\n }\n\n /** @internal */\n _makeTotpVerificationInfo(otp: string): TotpVerificationInfo {\n return { sessionInfo: this.sessionInfo, verificationCode: otp };\n }\n\n /**\n * Returns a QR code URL as described in\n * https://github.com/google/google-authenticator/wiki/Key-Uri-Format\n * This can be displayed to the user as a QR code to be scanned into a TOTP app like Google Authenticator.\n * If the optional parameters are unspecified, an accountName of and issuer of are used.\n *\n * @param accountName the name of the account/app along with a user identifier.\n * @param issuer issuer of the TOTP (likely the app name).\n * @returns A QR code URL string.\n */\n generateQrCodeUrl(accountName?: string, issuer?: string): string {\n let useDefaults = false;\n if (_isEmptyString(accountName) || _isEmptyString(issuer)) {\n useDefaults = true;\n }\n if (useDefaults) {\n if (_isEmptyString(accountName)) {\n accountName = this.auth.currentUser?.email || 'unknownuser';\n }\n if (_isEmptyString(issuer)) {\n issuer = this.auth.name;\n }\n }\n return `otpauth://totp/${issuer}:${accountName}?secret=${this.secretKey}&issuer=${issuer}&algorithm=${this.hashingAlgorithm}&digits=${this.codeLength}`;\n }\n}\n\n/** @internal */\nfunction _isEmptyString(input?: string): boolean {\n return typeof input === 'undefined' || input?.length === 0;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Unsubscribe } from '@firebase/util';\nimport { FirebaseAuthInternal } from '@firebase/auth-interop-types';\n\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\ninterface TokenListener {\n (tok: string | null): unknown;\n}\n\nexport class AuthInterop implements FirebaseAuthInternal {\n private readonly internalListeners: Map =\n new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n getUid(): string | null {\n this.assertAuthConfigured();\n return this.auth.currentUser?.uid || null;\n }\n\n async getToken(\n forceRefresh?: boolean\n ): Promise<{ accessToken: string } | null> {\n this.assertAuthConfigured();\n await this.auth._initializationPromise;\n if (!this.auth.currentUser) {\n return null;\n }\n\n const accessToken = await this.auth.currentUser.getIdToken(forceRefresh);\n return { accessToken };\n }\n\n addAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n if (this.internalListeners.has(listener)) {\n return;\n }\n\n const unsubscribe = this.auth.onIdTokenChanged(user => {\n listener(\n (user as UserInternal | null)?.stsTokenManager.accessToken || null\n );\n });\n this.internalListeners.set(listener, unsubscribe);\n this.updateProactiveRefresh();\n }\n\n removeAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n const unsubscribe = this.internalListeners.get(listener);\n if (!unsubscribe) {\n return;\n }\n\n this.internalListeners.delete(listener);\n unsubscribe();\n this.updateProactiveRefresh();\n }\n\n private assertAuthConfigured(): void {\n _assert(\n this.auth._initializationPromise,\n AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n );\n }\n\n private updateProactiveRefresh(): void {\n if (this.internalListeners.size > 0) {\n this.auth._startProactiveRefresh();\n } else {\n this.auth._stopProactiveRefresh();\n }\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, getApp, _getProvider } from '@firebase/app';\n\nimport {\n initializeAuth,\n beforeAuthStateChanged,\n onIdTokenChanged,\n connectAuthEmulator\n} from '..';\nimport { registerAuth } from '../core/auth/register';\nimport { ClientPlatform } from '../core/util/version';\nimport { browserLocalPersistence } from './persistence/local_storage';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { indexedDBLocalPersistence } from './persistence/indexed_db';\nimport { browserPopupRedirectResolver } from './popup_redirect';\nimport { Auth, User } from '../model/public_types';\nimport { getDefaultEmulatorHost, getExperimentalSetting } from '@firebase/util';\n\nconst DEFAULT_ID_TOKEN_MAX_AGE = 5 * 60;\nconst authIdTokenMaxAge =\n getExperimentalSetting('authIdTokenMaxAge') || DEFAULT_ID_TOKEN_MAX_AGE;\n\nlet lastPostedIdToken: string | undefined | null = null;\n\nconst mintCookieFactory = (url: string) => async (user: User | null) => {\n const idTokenResult = user && (await user.getIdTokenResult());\n const idTokenAge =\n idTokenResult &&\n (new Date().getTime() - Date.parse(idTokenResult.issuedAtTime)) / 1_000;\n if (idTokenAge && idTokenAge > authIdTokenMaxAge) {\n return;\n }\n // Specifically trip null => undefined when logged out, to delete any existing cookie\n const idToken = idTokenResult?.token;\n if (lastPostedIdToken === idToken) {\n return;\n }\n lastPostedIdToken = idToken;\n await fetch(url, {\n method: idToken ? 'POST' : 'DELETE',\n headers: idToken\n ? {\n 'Authorization': `Bearer ${idToken}`\n }\n : {}\n });\n};\n\n/**\n * Returns the Auth instance associated with the provided {@link @firebase/app#FirebaseApp}.\n * If no instance exists, initializes an Auth instance with platform-specific default dependencies.\n *\n * @param app - The Firebase App.\n *\n * @public\n */\nexport function getAuth(app: FirebaseApp = getApp()): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n return provider.getImmediate();\n }\n\n const auth = initializeAuth(app, {\n popupRedirectResolver: browserPopupRedirectResolver,\n persistence: [\n indexedDBLocalPersistence,\n browserLocalPersistence,\n browserSessionPersistence\n ]\n });\n\n const authTokenSyncUrl = getExperimentalSetting('authTokenSyncURL');\n if (authTokenSyncUrl) {\n const mintCookie = mintCookieFactory(authTokenSyncUrl);\n beforeAuthStateChanged(auth, mintCookie, () =>\n mintCookie(auth.currentUser)\n );\n onIdTokenChanged(auth, user => mintCookie(user));\n }\n\n const authEmulatorHost = getDefaultEmulatorHost('auth');\n if (authEmulatorHost) {\n connectAuthEmulator(auth, `http://${authEmulatorHost}`);\n }\n\n return auth;\n}\n\nregisterAuth(ClientPlatform.BROWSER);\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProvider, FirebaseApp } from '@firebase/app';\nimport { deepEqual } from '@firebase/util';\nimport { Auth, Dependencies } from '../../model/public_types';\n\nimport { AuthErrorCode } from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport { _fail } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { AuthImpl } from './auth_impl';\n\n/**\n * Initializes an {@link Auth} instance with fine-grained control over\n * {@link Dependencies}.\n *\n * @remarks\n *\n * This function allows more control over the {@link Auth} instance than\n * {@link getAuth}. `getAuth` uses platform-specific defaults to supply\n * the {@link Dependencies}. In general, `getAuth` is the easiest way to\n * initialize Auth and works for most use cases. Use `initializeAuth` if you\n * need control over which persistence layer is used, or to minimize bundle\n * size if you're not using either `signInWithPopup` or `signInWithRedirect`.\n *\n * For example, if your app only uses anonymous accounts and you only want\n * accounts saved for the current session, initialize `Auth` with:\n *\n * ```js\n * const auth = initializeAuth(app, {\n * persistence: browserSessionPersistence,\n * popupRedirectResolver: undefined,\n * });\n * ```\n *\n * @public\n */\nexport function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n const auth = provider.getImmediate() as AuthImpl;\n const initialOptions = provider.getOptions() as Dependencies;\n if (deepEqual(initialOptions, deps ?? {})) {\n return auth;\n } else {\n _fail(auth, AuthErrorCode.ALREADY_INITIALIZED);\n }\n }\n\n const auth = provider.initialize({ options: deps }) as AuthImpl;\n\n return auth;\n}\n\nexport function _initializeAuthInstance(\n auth: AuthImpl,\n deps?: Dependencies\n): void {\n const persistence = deps?.persistence || [];\n const hierarchy = (\n Array.isArray(persistence) ? persistence : [persistence]\n ).map(_getInstance);\n if (deps?.errorMap) {\n auth._updateErrorMap(deps.errorMap);\n }\n\n // This promise is intended to float; auth initialization happens in the\n // background, meanwhile the auth object may be used by the app.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _registerComponent, registerVersion } from '@firebase/app';\nimport {\n Component,\n ComponentType,\n InstantiationMode\n} from '@firebase/component';\n\nimport { name, version } from '../../../package.json';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _getClientVersion, ClientPlatform } from '../util/version';\nimport { _castAuth, AuthImpl, DefaultConfig } from './auth_impl';\nimport { AuthInterop } from './firebase_internal';\nimport { ConfigInternal } from '../../model/auth';\nimport { Dependencies } from '../../model/public_types';\nimport { _initializeAuthInstance } from './initialize';\n\nexport const enum _ComponentName {\n AUTH = 'auth',\n AUTH_INTERNAL = 'auth-internal'\n}\n\nfunction getVersionForPlatform(\n clientPlatform: ClientPlatform\n): string | undefined {\n switch (clientPlatform) {\n case ClientPlatform.NODE:\n return 'node';\n case ClientPlatform.REACT_NATIVE:\n return 'rn';\n case ClientPlatform.WORKER:\n return 'webworker';\n case ClientPlatform.CORDOVA:\n return 'cordova';\n default:\n return undefined;\n }\n}\n\n/** @internal */\nexport function registerAuth(clientPlatform: ClientPlatform): void {\n _registerComponent(\n new Component(\n _ComponentName.AUTH,\n (container, { options: deps }: { options?: Dependencies }) => {\n const app = container.getProvider('app').getImmediate()!;\n const heartbeatServiceProvider =\n container.getProvider<'heartbeat'>('heartbeat');\n const appCheckServiceProvider =\n container.getProvider<'app-check-internal'>('app-check-internal');\n const { apiKey, authDomain } = app.options;\n\n _assert(\n apiKey && !apiKey.includes(':'),\n AuthErrorCode.INVALID_API_KEY,\n { appName: app.name }\n );\n\n const config: ConfigInternal = {\n apiKey,\n authDomain,\n clientPlatform,\n apiHost: DefaultConfig.API_HOST,\n tokenApiHost: DefaultConfig.TOKEN_API_HOST,\n apiScheme: DefaultConfig.API_SCHEME,\n sdkClientVersion: _getClientVersion(clientPlatform)\n };\n\n const authInstance = new AuthImpl(\n app,\n heartbeatServiceProvider,\n appCheckServiceProvider,\n config\n );\n _initializeAuthInstance(authInstance, deps);\n\n return authInstance;\n },\n ComponentType.PUBLIC\n )\n /**\n * Auth can only be initialized by explicitly calling getAuth() or initializeAuth()\n * For why we do this, See go/firebase-next-auth-init\n */\n .setInstantiationMode(InstantiationMode.EXPLICIT)\n /**\n * Because all firebase products that depend on auth depend on auth-internal directly,\n * we need to initialize auth-internal after auth is initialized to make it available to other firebase products.\n */\n .setInstanceCreatedCallback(\n (container, _instanceIdentifier, _instance) => {\n const authInternalProvider = container.getProvider(\n _ComponentName.AUTH_INTERNAL\n );\n authInternalProvider.initialize();\n }\n )\n );\n\n _registerComponent(\n new Component(\n _ComponentName.AUTH_INTERNAL,\n container => {\n const auth = _castAuth(\n container.getProvider(_ComponentName.AUTH).getImmediate()!\n );\n return (auth => new AuthInterop(auth))(auth);\n },\n ComponentType.PRIVATE\n ).setInstantiationMode(InstantiationMode.EXPLICIT)\n );\n\n registerVersion(name, version, getVersionForPlatform(clientPlatform));\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\n */\n\nexport const CONSTANTS = {\n /**\n * @define {boolean} Whether this is the client Node.js SDK.\n */\n NODE_CLIENT: false,\n /**\n * @define {boolean} Whether this is the Admin Node.js SDK.\n */\n NODE_ADMIN: false,\n\n /**\n * Firebase SDK Version\n */\n SDK_VERSION: '${JSCORE_VERSION}'\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw new DecodeBase64StringError();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * An error encountered while decoding base64 string.\n */\nexport class DecodeBase64StringError extends Error {\n readonly name = 'DecodeBase64StringError';\n}\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Do a deep-copy of basic JavaScript Objects or Arrays.\n */\nexport function deepCopy(value: T): T {\n return deepExtend(undefined, value) as T;\n}\n\n/**\n * Copy properties from source to target (recursively allows extension\n * of Objects and Arrays). Scalar values in the target are over-written.\n * If target is undefined, an object of the appropriate type will be created\n * (and returned).\n *\n * We recursively copy all child properties of plain Objects in the source- so\n * that namespace- like dictionaries are merged.\n *\n * Note that the target can be a function, in which case the properties in\n * the source Object are copied onto it as static properties of the Function.\n *\n * Note: we don't merge __proto__ to prevent prototype pollution\n */\nexport function deepExtend(target: unknown, source: unknown): unknown {\n if (!(source instanceof Object)) {\n return source;\n }\n\n switch (source.constructor) {\n case Date:\n // Treat Dates like scalars; if the target date object had any child\n // properties - they will be lost!\n const dateValue = source as Date;\n return new Date(dateValue.getTime());\n\n case Object:\n if (target === undefined) {\n target = {};\n }\n break;\n case Array:\n // Always copy the array source and overwrite the target.\n target = [];\n break;\n\n default:\n // Not a plain Object - treat it as a scalar.\n return source;\n }\n\n for (const prop in source) {\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\n continue;\n }\n (target as Record)[prop] = deepExtend(\n (target as Record)[prop],\n (source as Record)[prop]\n );\n }\n\n return target;\n}\n\nfunction isValidKey(key: string): boolean {\n return key !== '__proto__';\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { base64Decode } from './crypt';\nimport { getGlobal } from './global';\n\n/**\n * Keys for experimental properties on the `FirebaseDefaults` object.\n * @public\n */\nexport type ExperimentalKey = 'authTokenSyncURL' | 'authIdTokenMaxAge';\n\n/**\n * An object that can be injected into the environment as __FIREBASE_DEFAULTS__,\n * either as a property of globalThis, a shell environment variable, or a\n * cookie.\n *\n * This object can be used to automatically configure and initialize\n * a Firebase app as well as any emulators.\n *\n * @public\n */\nexport interface FirebaseDefaults {\n config?: Record;\n emulatorHosts?: Record;\n _authTokenSyncURL?: string;\n _authIdTokenMaxAge?: number;\n /**\n * Override Firebase's runtime environment detection and\n * force the SDK to act as if it were in the specified environment.\n */\n forceEnvironment?: 'browser' | 'node';\n [key: string]: unknown;\n}\n\ndeclare global {\n // Need `var` for this to work.\n // eslint-disable-next-line no-var\n var __FIREBASE_DEFAULTS__: FirebaseDefaults | undefined;\n}\n\nconst getDefaultsFromGlobal = (): FirebaseDefaults | undefined =>\n getGlobal().__FIREBASE_DEFAULTS__;\n\n/**\n * Attempt to read defaults from a JSON string provided to\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\n * The dots are in parens because certain compilers (Vite?) cannot\n * handle seeing that variable in comments.\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\n */\nconst getDefaultsFromEnvVariable = (): FirebaseDefaults | undefined => {\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\n return;\n }\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\n if (defaultsJsonString) {\n return JSON.parse(defaultsJsonString);\n }\n};\n\nconst getDefaultsFromCookie = (): FirebaseDefaults | undefined => {\n if (typeof document === 'undefined') {\n return;\n }\n let match;\n try {\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\n } catch (e) {\n // Some environments such as Angular Universal SSR have a\n // `document` object but error on accessing `document.cookie`.\n return;\n }\n const decoded = match && base64Decode(match[1]);\n return decoded && JSON.parse(decoded);\n};\n\n/**\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\n * (1) if such an object exists as a property of `globalThis`\n * (2) if such an object was provided on a shell environment variable\n * (3) if such an object exists in a cookie\n * @public\n */\nexport const getDefaults = (): FirebaseDefaults | undefined => {\n try {\n return (\n getDefaultsFromGlobal() ||\n getDefaultsFromEnvVariable() ||\n getDefaultsFromCookie()\n );\n } catch (e) {\n /**\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\n * to any environment case we have not accounted for. Log to\n * info instead of swallowing so we can find these unknown cases\n * and add paths for them if needed.\n */\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\n return;\n }\n};\n\n/**\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\n * @public\n */\nexport const getDefaultEmulatorHost = (\n productName: string\n): string | undefined => getDefaults()?.emulatorHosts?.[productName];\n\n/**\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\n * @public\n */\nexport const getDefaultEmulatorHostnameAndPort = (\n productName: string\n): [hostname: string, port: number] | undefined => {\n const host = getDefaultEmulatorHost(productName);\n if (!host) {\n return undefined;\n }\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\n }\n // eslint-disable-next-line no-restricted-globals\n const port = parseInt(host.substring(separatorIndex + 1), 10);\n if (host[0] === '[') {\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\n return [host.substring(1, separatorIndex - 1), port];\n } else {\n return [host.substring(0, separatorIndex), port];\n }\n};\n\n/**\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\n * @public\n */\nexport const getDefaultAppConfig = (): Record | undefined =>\n getDefaults()?.config;\n\n/**\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\n * prefixed by \"_\")\n * @public\n */\nexport const getExperimentalSetting = (\n name: T\n): FirebaseDefaults[`_${T}`] =>\n getDefaults()?.[`_${name}`] as FirebaseDefaults[`_${T}`];\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n * @public\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CONSTANTS } from './constants';\nimport { getDefaults } from './defaults';\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected or specified.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n const forceEnvironment = getDefaults()?.forceEnvironment;\n if (forceEnvironment === 'node') {\n return true;\n } else if (forceEnvironment === 'browser') {\n return false;\n }\n\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment\n */\nexport function isBrowser(): boolean {\n return typeof self === 'object' && self.self === self;\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n try {\n return typeof indexedDB === 'object';\n } catch (e) {\n return false;\n }\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n * // Typescript string literals for type-safe codes\n * type Err =\n * 'unknown' |\n * 'object-not-found'\n * ;\n *\n * // Closure enum for type-safe error codes\n * // at-enum {string}\n * var Err = {\n * UNKNOWN: 'unknown',\n * OBJECT_NOT_FOUND: 'object-not-found',\n * }\n *\n * let errors: Map = {\n * 'generic-error': \"Unknown error\",\n * 'file-not-found': \"Could not find file: {$file}\",\n * };\n *\n * // Type-safe function - must pass a valid error code as param.\n * let error = new ErrorFactory('service', 'Service', errors);\n *\n * ...\n * throw error.create(Err.GENERIC);\n * ...\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n * ...\n * // Service: Could not file file: foo.txt (service/file-not-found).\n *\n * catch (e) {\n * assert(e.message === \"Could not find file: foo.txt.\");\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\n * console.log(\"Could not read file: \" + e['file']);\n * }\n * }\n */\n\nexport type ErrorMap = {\n readonly [K in ErrorCode]: string;\n};\n\nconst ERROR_NAME = 'FirebaseError';\n\nexport interface StringLike {\n toString(): string;\n}\n\nexport interface ErrorData {\n [key: string]: unknown;\n}\n\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nexport class FirebaseError extends Error {\n /** The custom name for all FirebaseErrors. */\n readonly name: string = ERROR_NAME;\n\n constructor(\n /** The error code for this error. */\n readonly code: string,\n message: string,\n /** Custom data for this error. */\n public customData?: Record\n ) {\n super(message);\n\n // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, FirebaseError.prototype);\n\n // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\n }\n }\n}\n\nexport class ErrorFactory<\n ErrorCode extends string,\n ErrorParams extends { readonly [K in ErrorCode]?: ErrorData } = {}\n> {\n constructor(\n private readonly service: string,\n private readonly serviceName: string,\n private readonly errors: ErrorMap\n ) {}\n\n create(\n code: K,\n ...data: K extends keyof ErrorParams ? [ErrorParams[K]] : []\n ): FirebaseError {\n const customData = (data[0] as ErrorData) || {};\n const fullCode = `${this.service}/${code}`;\n const template = this.errors[code];\n\n const message = template ? replaceTemplate(template, customData) : 'Error';\n // Service Name: Error message (service/code).\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n\n const error = new FirebaseError(fullCode, fullMessage, customData);\n\n return error;\n }\n}\n\nfunction replaceTemplate(template: string, data: ErrorData): string {\n return template.replace(PATTERN, (_, key) => {\n const value = data[key];\n return value != null ? String(value) : `<${key}?>`;\n });\n}\n\nconst PATTERN = /\\{\\$([^}]+)}/g;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\n * params object (e.g. {arg: 'val', arg2: 'val2'})\n * Note: You must prepend it with ? when adding it to a URL.\n */\nexport function querystring(querystringParams: {\n [key: string]: string | number;\n}): string {\n const params = [];\n for (const [key, value] of Object.entries(querystringParams)) {\n if (Array.isArray(value)) {\n value.forEach(arrayVal => {\n params.push(\n encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal)\n );\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n return params.length ? '&' + params.join('&') : '';\n}\n\n/**\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\n * (e.g. {arg: 'val', arg2: 'val2'})\n */\nexport function querystringDecode(querystring: string): Record {\n const obj: Record = {};\n const tokens = querystring.replace(/^\\?/, '').split('&');\n\n tokens.forEach(token => {\n if (token) {\n const [key, value] = token.split('=');\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n\n/**\n * Extract the query string part of a URL, including the leading question mark (if present).\n */\nexport function extractQuerystring(url: string): string {\n const queryStart = url.indexOf('?');\n if (!queryStart) {\n return '';\n }\n const fragmentStart = url.indexOf('#', queryStart);\n return url.substring(\n queryStart,\n fragmentStart > 0 ? fragmentStart : undefined\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport type NextFn = (value: T) => void;\nexport type ErrorFn = (error: Error) => void;\nexport type CompleteFn = () => void;\n\nexport interface Observer {\n // Called once for each value in a stream of values.\n next: NextFn;\n\n // A stream terminates by a single call to EITHER error() or complete().\n error: ErrorFn;\n\n // No events will be sent to next() once complete() is called.\n complete: CompleteFn;\n}\n\nexport type PartialObserver = Partial>;\n\n// TODO: Support also Unsubscribe.unsubscribe?\nexport type Unsubscribe = () => void;\n\n/**\n * The Subscribe interface has two forms - passing the inline function\n * callbacks, or a object interface with callback properties.\n */\nexport interface Subscribe {\n (next?: NextFn, error?: ErrorFn, complete?: CompleteFn): Unsubscribe;\n (observer: PartialObserver): Unsubscribe;\n}\n\nexport interface Observable {\n // Subscribe method\n subscribe: Subscribe;\n}\n\nexport type Executor = (observer: Observer) => void;\n\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\nexport function createSubscribe(\n executor: Executor,\n onNoObservers?: Executor\n): Subscribe {\n const proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n\n/**\n * Implement fan-out for any number of Observers attached via a subscribe\n * function.\n */\nclass ObserverProxy implements Observer {\n private observers: Array> | undefined = [];\n private unsubscribes: Unsubscribe[] = [];\n private onNoObservers: Executor | undefined;\n private observerCount = 0;\n // Micro-task scheduling by calling task.then().\n private task = Promise.resolve();\n private finalized = false;\n private finalError?: Error;\n\n /**\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\n constructor(executor: Executor, onNoObservers?: Executor) {\n this.onNoObservers = onNoObservers;\n // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n this.task\n .then(() => {\n executor(this);\n })\n .catch(e => {\n this.error(e);\n });\n }\n\n next(value: T): void {\n this.forEachObserver((observer: Observer) => {\n observer.next(value);\n });\n }\n\n error(error: Error): void {\n this.forEachObserver((observer: Observer) => {\n observer.error(error);\n });\n this.close(error);\n }\n\n complete(): void {\n this.forEachObserver((observer: Observer) => {\n observer.complete();\n });\n this.close();\n }\n\n /**\n * Subscribe function that can be used to add an Observer to the fan-out list.\n *\n * - We require that no event is sent to a subscriber sychronously to their\n * call to subscribe().\n */\n subscribe(\n nextOrObserver?: NextFn | PartialObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n ): Unsubscribe {\n let observer: Observer;\n\n if (\n nextOrObserver === undefined &&\n error === undefined &&\n complete === undefined\n ) {\n throw new Error('Missing Observer.');\n }\n\n // Assemble an Observer object when passed as callback functions.\n if (\n implementsAnyMethods(nextOrObserver as { [key: string]: unknown }, [\n 'next',\n 'error',\n 'complete'\n ])\n ) {\n observer = nextOrObserver as Observer;\n } else {\n observer = {\n next: nextOrObserver as NextFn,\n error,\n complete\n } as Observer;\n }\n\n if (observer.next === undefined) {\n observer.next = noop as NextFn;\n }\n if (observer.error === undefined) {\n observer.error = noop as ErrorFn;\n }\n if (observer.complete === undefined) {\n observer.complete = noop as CompleteFn;\n }\n\n const unsub = this.unsubscribeOne.bind(this, this.observers!.length);\n\n // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n try {\n if (this.finalError) {\n observer.error(this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {\n // nothing\n }\n return;\n });\n }\n\n this.observers!.push(observer as Observer);\n\n return unsub;\n }\n\n // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n private unsubscribeOne(i: number): void {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n\n this.observerCount -= 1;\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n }\n\n private forEachObserver(fn: (observer: Observer) => void): void {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n }\n\n // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n for (let i = 0; i < this.observers!.length; i++) {\n this.sendOne(i, fn);\n }\n }\n\n // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n private sendOne(i: number, fn: (observer: Observer) => void): void {\n // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n if (this.observers !== undefined && this.observers[i] !== undefined) {\n try {\n fn(this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n }\n\n private close(err?: Error): void {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n if (err !== undefined) {\n this.finalError = err;\n }\n // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n this.observers = undefined;\n this.onNoObservers = undefined;\n });\n }\n}\n\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function async(fn: Function, onError?: ErrorFn): Function {\n return (...args: unknown[]) => {\n Promise.resolve(true)\n .then(() => {\n fn(...args);\n })\n .catch((error: Error) => {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n\n/**\n * Return true if the object passed in implements any of the named methods.\n */\nfunction implementsAnyMethods(\n obj: { [key: string]: unknown },\n methods: string[]\n): boolean {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (const method of methods) {\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop(): void {\n // do nothing\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getScale(value) {\n return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var timer = React.useRef();\n var autoTimeout = React.useRef();\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration,\n delay = _getTransitionProps.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration,\n delay = _getTransitionProps2.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay || duration * 0.333\n })].join(',');\n node.style.opacity = '0';\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n };\n\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.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 * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, show the component; triggers the enter or exit animation.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport useEventCallback from '../utils/useEventCallback';\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n var classes = props.classes,\n _props$pulsate = props.pulsate,\n pulsate = _props$pulsate === void 0 ? false : _props$pulsate,\n rippleX = props.rippleX,\n rippleY = props.rippleY,\n rippleSize = props.rippleSize,\n inProp = props.in,\n _props$onExited = props.onExited,\n onExited = _props$onExited === void 0 ? function () {} : _props$onExited,\n timeout = props.timeout;\n\n var _React$useState = React.useState(false),\n leaving = _React$useState[0],\n setLeaving = _React$useState[1];\n\n var rippleClassName = clsx(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n var rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n var childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n var handleExited = useEventCallback(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority\n\n useEnhancedEffect(function () {\n if (!inProp) {\n // react-transition-group#onExit\n setLeaving(true); // react-transition-group#onExited\n\n var timeoutId = setTimeout(handleExited, timeout);\n return function () {\n clearTimeout(timeoutId);\n };\n }\n\n return undefined;\n }, [handleExited, inProp, timeout]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: rippleClassName,\n style: rippleStyles\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: childClassName\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\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.isRequired,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Ripple from './Ripple';\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n },\n\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"center\", \"classes\", \"className\"]);\n\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/React.createElement(Ripple, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n var element = fakeElement ? null : container.current;\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(function () {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (event, cb) {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));","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 * as ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = _objectWithoutProperties(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return useEventCallback(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = useEventCallback(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = useEventCallback(function (event) {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a \n * \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersSlideTransitionUtilityClass = slot => generateUtilityClass('MuiPickersSlideTransition', slot);\nexport const pickersSlideTransitionClasses = generateUtilityClasses('MuiPickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\", \"classes\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useTheme, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { getPickersSlideTransitionUtilityClass, pickersSlideTransitionClasses } from \"./pickersSlideTransitionClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n slideDirection\n } = ownerState;\n const slots = {\n root: ['root'],\n exit: ['slideExit'],\n enterActive: ['slideEnterActive'],\n enter: [`slideEnter-${slideDirection}`],\n exitActive: [`slideExitActiveLeft-${slideDirection}`]\n };\n return composeClasses(slots, getPickersSlideTransitionUtilityClass, classes);\n};\nconst PickersSlideTransitionRoot = styled(TransitionGroup, {\n name: 'MuiPickersSlideTransition',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`.${pickersSlideTransitionClasses['slideEnter-left']}`]: styles['slideEnter-left']\n }, {\n [`.${pickersSlideTransitionClasses['slideEnter-right']}`]: styles['slideEnter-right']\n }, {\n [`.${pickersSlideTransitionClasses.slideEnterActive}`]: styles.slideEnterActive\n }, {\n [`.${pickersSlideTransitionClasses.slideExit}`]: styles.slideExit\n }, {\n [`.${pickersSlideTransitionClasses['slideExitActiveLeft-left']}`]: styles['slideExitActiveLeft-left']\n }, {\n [`.${pickersSlideTransitionClasses['slideExitActiveLeft-right']}`]: styles['slideExitActiveLeft-right']\n }]\n})(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: theme.transitions.duration.complex,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${pickersSlideTransitionClasses['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${pickersSlideTransitionClasses['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${pickersSlideTransitionClasses.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${pickersSlideTransitionClasses.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${pickersSlideTransitionClasses['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${pickersSlideTransitionClasses['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n\n/**\n * @ignore - do not document.\n */\nexport function PickersSlideTransition(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersSlideTransition'\n });\n const {\n children,\n className,\n reduceAnimations,\n transKey\n // extracting `classes` from `other`\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n const theme = useTheme();\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n const transitionClasses = {\n exit: classes.exit,\n enterActive: classes.enterActive,\n enter: classes.enter,\n exitActive: classes.exitActive\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n role: \"presentation\",\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: theme.transitions.duration.complex,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getDayCalendarUtilityClass = slot => generateUtilityClass('MuiDayCalendar', slot);\nexport const dayCalendarClasses = generateUtilityClasses('MuiDayCalendar', ['root', 'header', 'weekDayLabel', 'loadingContainer', 'slideTransition', 'monthContainer', 'weekContainer', 'weekNumberLabel', 'weekNumber']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"parentProps\", \"day\", \"focusableDay\", \"selectedDays\", \"isDateDisabled\", \"currentMonthNumber\", \"isViewFocused\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport Typography from '@mui/material/Typography';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useControlled as useControlled } from '@mui/utils';\nimport clsx from 'clsx';\nimport { PickersDay } from \"../PickersDay/PickersDay.js\";\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils, useNow } from \"../internals/hooks/useUtils.js\";\nimport { DAY_SIZE, DAY_MARGIN } from \"../internals/constants/dimensions.js\";\nimport { PickersSlideTransition } from \"./PickersSlideTransition.js\";\nimport { useIsDateDisabled } from \"./useIsDateDisabled.js\";\nimport { findClosestEnabledDate, getWeekdays } from \"../internals/utils/date-utils.js\";\nimport { getDayCalendarUtilityClass } from \"./dayCalendarClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n header: ['header'],\n weekDayLabel: ['weekDayLabel'],\n loadingContainer: ['loadingContainer'],\n slideTransition: ['slideTransition'],\n monthContainer: ['monthContainer'],\n weekContainer: ['weekContainer'],\n weekNumberLabel: ['weekNumberLabel'],\n weekNumber: ['weekNumber']\n };\n return composeClasses(slots, getDayCalendarUtilityClass, classes);\n};\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 2) * 6;\nconst PickersCalendarDayRoot = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({});\nconst PickersCalendarDayHeader = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'Header',\n overridesResolver: (_, styles) => styles.header\n})({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekDayLabel',\n overridesResolver: (_, styles) => styles.weekDayLabel\n})(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: (theme.vars || theme).palette.text.secondary\n}));\nconst PickersCalendarWeekNumberLabel = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekNumberLabel',\n overridesResolver: (_, styles) => styles.weekNumberLabel\n})(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.disabled\n}));\nconst PickersCalendarWeekNumber = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekNumber',\n overridesResolver: (_, styles) => styles.weekNumber\n})(({\n theme\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n padding: 0,\n margin: `0 ${DAY_MARGIN}px`,\n color: theme.palette.text.disabled,\n fontSize: '0.75rem',\n alignItems: 'center',\n justifyContent: 'center',\n display: 'inline-flex'\n}));\nconst PickersCalendarLoadingContainer = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'LoadingContainer',\n overridesResolver: (_, styles) => styles.loadingContainer\n})({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(PickersSlideTransition, {\n name: 'MuiDayCalendar',\n slot: 'SlideTransition',\n overridesResolver: (_, styles) => styles.slideTransition\n})({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'MonthContainer',\n overridesResolver: (_, styles) => styles.monthContainer\n})({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'WeekContainer',\n overridesResolver: (_, styles) => styles.weekContainer\n})({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\nfunction WrappedDay(_ref) {\n let {\n parentProps,\n day,\n focusableDay,\n selectedDays,\n isDateDisabled,\n currentMonthNumber,\n isViewFocused\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n disabled,\n disableHighlightToday,\n isMonthSwitchingAnimating,\n showDaysOutsideCurrentMonth,\n slots,\n slotProps,\n timezone\n } = parentProps;\n const utils = useUtils();\n const now = useNow(timezone);\n const isFocusableDay = focusableDay !== null && utils.isSameDay(day, focusableDay);\n const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));\n const isToday = utils.isSameDay(day, now);\n const Day = slots?.day ?? PickersDay;\n // We don't want to pass to ownerState down, to avoid re-rendering all the day whenever a prop changes.\n const _useSlotProps = useSlotProps({\n elementType: Day,\n externalSlotProps: slotProps?.day,\n additionalProps: _extends({\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n role: 'gridcell',\n isAnimating: isMonthSwitchingAnimating,\n // it is used in date range dragging logic by accessing `dataset.timestamp`\n 'data-timestamp': utils.toJsDate(day).valueOf()\n }, other),\n ownerState: _extends({}, parentProps, {\n day,\n selected: isSelected\n })\n }),\n dayProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const isDisabled = React.useMemo(() => disabled || isDateDisabled(day), [disabled, isDateDisabled, day]);\n const outsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);\n const isFirstVisibleCell = React.useMemo(() => {\n const startOfMonth = utils.startOfMonth(utils.setMonth(day, currentMonthNumber));\n if (!showDaysOutsideCurrentMonth) {\n return utils.isSameDay(day, startOfMonth);\n }\n return utils.isSameDay(day, utils.startOfWeek(startOfMonth));\n }, [currentMonthNumber, day, showDaysOutsideCurrentMonth, utils]);\n const isLastVisibleCell = React.useMemo(() => {\n const endOfMonth = utils.endOfMonth(utils.setMonth(day, currentMonthNumber));\n if (!showDaysOutsideCurrentMonth) {\n return utils.isSameDay(day, endOfMonth);\n }\n return utils.isSameDay(day, utils.endOfWeek(endOfMonth));\n }, [currentMonthNumber, day, showDaysOutsideCurrentMonth, utils]);\n return /*#__PURE__*/_jsx(Day, _extends({}, dayProps, {\n day: day,\n disabled: isDisabled,\n autoFocus: isViewFocused && isFocusableDay,\n today: isToday,\n outsideCurrentMonth: outsideCurrentMonth,\n isFirstVisibleCell: isFirstVisibleCell,\n isLastVisibleCell: isLastVisibleCell,\n selected: isSelected,\n tabIndex: isFocusableDay ? 0 : -1,\n \"aria-selected\": isSelected,\n \"aria-current\": isToday ? 'date' : undefined\n }));\n}\n\n/**\n * @ignore - do not document.\n */\nexport function DayCalendar(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDayCalendar'\n });\n const utils = useUtils();\n const {\n onFocusedDayChange,\n className,\n currentMonth,\n selectedDays,\n focusedDay,\n loading,\n onSelectedDaysChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n slideDirection,\n TransitionProps,\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n dayOfWeekFormatter = date => utils.format(date, 'weekdayShort').charAt(0).toUpperCase(),\n hasFocus,\n onFocusedViewChange,\n gridLabelId,\n displayWeekNumber,\n fixedWeekNumber,\n autoFocus,\n timezone\n } = props;\n const now = useNow(timezone);\n const classes = useUtilityClasses(props);\n const isRtl = useRtl();\n const isDateDisabled = useIsDateDisabled({\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n timezone\n });\n const translations = usePickersTranslations();\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'DayCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus ?? false\n });\n const [internalFocusedDay, setInternalFocusedDay] = React.useState(() => focusedDay || now);\n const handleDaySelect = useEventCallback(day => {\n if (readOnly) {\n return;\n }\n onSelectedDaysChange(day);\n });\n const focusDay = day => {\n if (!isDateDisabled(day)) {\n onFocusedDayChange(day);\n setInternalFocusedDay(day);\n onFocusedViewChange?.(true);\n setInternalHasFocus(true);\n }\n };\n const handleKeyDown = useEventCallback((event, day) => {\n switch (event.key) {\n case 'ArrowUp':\n focusDay(utils.addDays(day, -7));\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusDay(utils.addDays(day, 7));\n event.preventDefault();\n break;\n case 'ArrowLeft':\n {\n const newFocusedDayDefault = utils.addDays(day, isRtl ? 1 : -1);\n const nextAvailableMonth = utils.addMonths(day, isRtl ? 1 : -1);\n const closestDayToFocus = findClosestEnabledDate({\n utils,\n date: newFocusedDayDefault,\n minDate: isRtl ? newFocusedDayDefault : utils.startOfMonth(nextAvailableMonth),\n maxDate: isRtl ? utils.endOfMonth(nextAvailableMonth) : newFocusedDayDefault,\n isDateDisabled,\n timezone\n });\n focusDay(closestDayToFocus || newFocusedDayDefault);\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n const newFocusedDayDefault = utils.addDays(day, isRtl ? -1 : 1);\n const nextAvailableMonth = utils.addMonths(day, isRtl ? -1 : 1);\n const closestDayToFocus = findClosestEnabledDate({\n utils,\n date: newFocusedDayDefault,\n minDate: isRtl ? utils.startOfMonth(nextAvailableMonth) : newFocusedDayDefault,\n maxDate: isRtl ? newFocusedDayDefault : utils.endOfMonth(nextAvailableMonth),\n isDateDisabled,\n timezone\n });\n focusDay(closestDayToFocus || newFocusedDayDefault);\n event.preventDefault();\n break;\n }\n case 'Home':\n focusDay(utils.startOfWeek(day));\n event.preventDefault();\n break;\n case 'End':\n focusDay(utils.endOfWeek(day));\n event.preventDefault();\n break;\n case 'PageUp':\n focusDay(utils.addMonths(day, 1));\n event.preventDefault();\n break;\n case 'PageDown':\n focusDay(utils.addMonths(day, -1));\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleFocus = useEventCallback((event, day) => focusDay(day));\n const handleBlur = useEventCallback((event, day) => {\n if (internalHasFocus && utils.isSameDay(internalFocusedDay, day)) {\n onFocusedViewChange?.(false);\n }\n });\n const currentMonthNumber = utils.getMonth(currentMonth);\n const currentYearNumber = utils.getYear(currentMonth);\n const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);\n\n // need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n const focusableDay = React.useMemo(() => {\n const startOfMonth = utils.startOfMonth(currentMonth);\n const endOfMonth = utils.endOfMonth(currentMonth);\n if (isDateDisabled(internalFocusedDay) || utils.isAfterDay(internalFocusedDay, endOfMonth) || utils.isBeforeDay(internalFocusedDay, startOfMonth)) {\n return findClosestEnabledDate({\n utils,\n date: internalFocusedDay,\n minDate: startOfMonth,\n maxDate: endOfMonth,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n });\n }\n return internalFocusedDay;\n }, [currentMonth, disableFuture, disablePast, internalFocusedDay, isDateDisabled, utils, timezone]);\n const weeksToDisplay = React.useMemo(() => {\n const toDisplay = utils.getWeekArray(currentMonth);\n let nextMonth = utils.addMonths(currentMonth, 1);\n while (fixedWeekNumber && toDisplay.length < fixedWeekNumber) {\n const additionalWeeks = utils.getWeekArray(nextMonth);\n const hasCommonWeek = utils.isSameDay(toDisplay[toDisplay.length - 1][0], additionalWeeks[0][0]);\n additionalWeeks.slice(hasCommonWeek ? 1 : 0).forEach(week => {\n if (toDisplay.length < fixedWeekNumber) {\n toDisplay.push(week);\n }\n });\n nextMonth = utils.addMonths(nextMonth, 1);\n }\n return toDisplay;\n }, [currentMonth, fixedWeekNumber, utils]);\n return /*#__PURE__*/_jsxs(PickersCalendarDayRoot, {\n role: \"grid\",\n \"aria-labelledby\": gridLabelId,\n className: classes.root,\n children: [/*#__PURE__*/_jsxs(PickersCalendarDayHeader, {\n role: \"row\",\n className: classes.header,\n children: [displayWeekNumber && /*#__PURE__*/_jsx(PickersCalendarWeekNumberLabel, {\n variant: \"caption\",\n role: \"columnheader\",\n \"aria-label\": translations.calendarWeekNumberHeaderLabel,\n className: classes.weekNumberLabel,\n children: translations.calendarWeekNumberHeaderText\n }), getWeekdays(utils, now).map((weekday, i) => /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n variant: \"caption\",\n role: \"columnheader\",\n \"aria-label\": utils.format(weekday, 'weekday'),\n className: classes.weekDayLabel,\n children: dayOfWeekFormatter(weekday)\n }, i.toString()))]\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n className: classes.loadingContainer,\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: clsx(className, classes.slideTransition)\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"rowgroup\",\n className: classes.monthContainer,\n children: weeksToDisplay.map((week, index) => /*#__PURE__*/_jsxs(PickersCalendarWeek, {\n role: \"row\",\n className: classes.weekContainer\n // fix issue of announcing row 1 as row 2\n // caused by week day labels row\n ,\n \"aria-rowindex\": index + 1,\n children: [displayWeekNumber && /*#__PURE__*/_jsx(PickersCalendarWeekNumber, {\n className: classes.weekNumber,\n role: \"rowheader\",\n \"aria-label\": translations.calendarWeekNumberAriaLabelText(utils.getWeekNumber(week[0])),\n children: translations.calendarWeekNumberText(utils.getWeekNumber(week[0]))\n }), week.map((day, dayIndex) => /*#__PURE__*/_jsx(WrappedDay, {\n parentProps: props,\n day: day,\n selectedDays: validSelectedDays,\n focusableDay: focusableDay,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onDaySelect: handleDaySelect,\n isDateDisabled: isDateDisabled,\n currentMonthNumber: currentMonthNumber,\n isViewFocused: internalHasFocus\n // fix issue of announcing column 1 as column 2 when `displayWeekNumber` is enabled\n ,\n \"aria-colindex\": dayIndex + 1\n }, day.toString()))]\n }, `week-${week[0]}`))\n })\n }))]\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersMonthUtilityClass(slot) {\n return generateUtilityClass('MuiPickersMonth', slot);\n}\nexport const pickersMonthClasses = generateUtilityClasses('MuiPickersMonth', ['root', 'monthButton', 'disabled', 'selected']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"children\", \"disabled\", \"selected\", \"value\", \"tabIndex\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"aria-current\", \"aria-label\", \"monthsPerRow\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, alpha, useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { getPickersMonthUtilityClass, pickersMonthClasses } from \"./pickersMonthClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n monthButton: ['monthButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersMonthUtilityClass, classes);\n};\nconst PickersMonthRoot = styled('div', {\n name: 'MuiPickersMonth',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root]\n})({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexBasis: '33.3%',\n variants: [{\n props: {\n monthsPerRow: 4\n },\n style: {\n flexBasis: '25%'\n }\n }]\n});\nconst MonthCalendarButton = styled('button', {\n name: 'MuiPickersMonth',\n slot: 'MonthButton',\n overridesResolver: (_, styles) => [styles.monthButton, {\n [`&.${pickersMonthClasses.disabled}`]: styles.disabled\n }, {\n [`&.${pickersMonthClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n cursor: 'auto',\n pointerEvents: 'none'\n },\n [`&.${pickersMonthClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.secondary\n },\n [`&.${pickersMonthClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n }\n}));\n\n/**\n * @ignore - do not document.\n */\nexport const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersMonth'\n });\n const {\n autoFocus,\n className,\n children,\n disabled,\n selected,\n value,\n tabIndex,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel\n // We don't want to forward this prop to the root element\n ,\n\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ref = React.useRef(null);\n const classes = useUtilityClasses(props);\n\n // We can't forward the `autoFocus` to the button because it is a native button, not a MUI Button\n useEnhancedEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUI.\n ref.current?.focus();\n }\n }, [autoFocus]);\n const MonthButton = slots?.monthButton ?? MonthCalendarButton;\n const monthButtonProps = useSlotProps({\n elementType: MonthButton,\n externalSlotProps: slotProps?.monthButton,\n additionalProps: {\n children,\n disabled,\n tabIndex,\n ref,\n type: 'button',\n role: 'radio',\n 'aria-current': ariaCurrent,\n 'aria-checked': selected,\n 'aria-label': ariaLabel,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n onFocus: event => onFocus(event, value),\n onBlur: event => onBlur(event, value)\n },\n ownerState: props,\n className: classes.monthButton\n });\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: props\n }, other, {\n children: /*#__PURE__*/_jsx(MonthButton, _extends({}, monthButtonProps))\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getMonthCalendarUtilityClass(slot) {\n return generateUtilityClass('MuiMonthCalendar', slot);\n}\nexport const monthCalendarClasses = generateUtilityClasses('MuiMonthCalendar', ['root']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"value\", \"defaultValue\", \"referenceDate\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"shouldDisableMonth\", \"readOnly\", \"disableHighlightToday\", \"autoFocus\", \"onMonthFocus\", \"hasFocus\", \"onFocusedViewChange\", \"monthsPerRow\", \"timezone\", \"gridLabelId\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { PickersMonth } from \"./PickersMonth.js\";\nimport { useUtils, useNow, useDefaultDates } from \"../internals/hooks/useUtils.js\";\nimport { getMonthCalendarUtilityClass } from \"./monthCalendarClasses.js\";\nimport { applyDefaultDate, getMonthsInYear } from \"../internals/utils/date-utils.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { SECTION_TYPE_GRANULARITY } from \"../internals/utils/getDefaultReferenceDate.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { DIALOG_WIDTH } from \"../internals/constants/dimensions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthCalendarUtilityClass, classes);\n};\nexport function useMonthCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({\n disableFuture: false,\n disablePast: false\n }, themeProps, {\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst MonthCalendarRoot = styled('div', {\n name: 'MuiMonthCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n padding: '0 4px',\n width: DIALOG_WIDTH,\n // avoid padding increasing width over defined\n boxSizing: 'border-box'\n});\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n *\n * API:\n *\n * - [MonthCalendar API](https://mui.com/x/api/date-pickers/month-calendar/)\n */\nexport const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalendar(inProps, ref) {\n const props = useMonthCalendarDefaultizedProps(inProps, 'MuiMonthCalendar');\n const {\n className,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n shouldDisableMonth,\n readOnly,\n autoFocus = false,\n onMonthFocus,\n hasFocus,\n onFocusedViewChange,\n monthsPerRow = 3,\n timezone: timezoneProp,\n gridLabelId,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'MonthCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChange,\n valueManager: singleItemValueManager\n });\n const now = useNow(timezone);\n const isRtl = useRtl();\n const utils = useUtils();\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n timezone,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.month\n }), [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const todayMonth = React.useMemo(() => utils.getMonth(now), [utils, now]);\n const selectedMonth = React.useMemo(() => {\n if (value != null) {\n return utils.getMonth(value);\n }\n return null;\n }, [value, utils]);\n const [focusedMonth, setFocusedMonth] = React.useState(() => selectedMonth || utils.getMonth(referenceDate));\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'MonthCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus ?? false\n });\n const changeHasFocus = useEventCallback(newHasFocus => {\n setInternalHasFocus(newHasFocus);\n if (onFocusedViewChange) {\n onFocusedViewChange(newHasFocus);\n }\n });\n const isMonthDisabled = React.useCallback(dateToValidate => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n const monthToValidate = utils.startOfMonth(dateToValidate);\n if (utils.isBefore(monthToValidate, firstEnabledMonth)) {\n return true;\n }\n if (utils.isAfter(monthToValidate, lastEnabledMonth)) {\n return true;\n }\n if (!shouldDisableMonth) {\n return false;\n }\n return shouldDisableMonth(monthToValidate);\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableMonth, utils]);\n const handleMonthSelection = useEventCallback((event, month) => {\n if (readOnly) {\n return;\n }\n const newDate = utils.setMonth(value ?? referenceDate, month);\n handleValueChange(newDate);\n });\n const focusMonth = useEventCallback(month => {\n if (!isMonthDisabled(utils.setMonth(value ?? referenceDate, month))) {\n setFocusedMonth(month);\n changeHasFocus(true);\n if (onMonthFocus) {\n onMonthFocus(month);\n }\n }\n });\n React.useEffect(() => {\n setFocusedMonth(prevFocusedMonth => selectedMonth !== null && prevFocusedMonth !== selectedMonth ? selectedMonth : prevFocusedMonth);\n }, [selectedMonth]);\n const handleKeyDown = useEventCallback((event, month) => {\n const monthsInYear = 12;\n const monthsInRow = 3;\n switch (event.key) {\n case 'ArrowUp':\n focusMonth((monthsInYear + month - monthsInRow) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusMonth((monthsInYear + month + monthsInRow) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n focusMonth((monthsInYear + month + (isRtl ? 1 : -1)) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowRight':\n focusMonth((monthsInYear + month + (isRtl ? -1 : 1)) % monthsInYear);\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleMonthFocus = useEventCallback((event, month) => {\n focusMonth(month);\n });\n const handleMonthBlur = useEventCallback((event, month) => {\n if (focusedMonth === month) {\n changeHasFocus(false);\n }\n });\n return /*#__PURE__*/_jsx(MonthCalendarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"radiogroup\",\n \"aria-labelledby\": gridLabelId\n }, other, {\n children: getMonthsInYear(utils, value ?? referenceDate).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n const monthLabel = utils.format(month, 'month');\n const isSelected = monthNumber === selectedMonth;\n const isDisabled = disabled || isMonthDisabled(month);\n return /*#__PURE__*/_jsx(PickersMonth, {\n selected: isSelected,\n value: monthNumber,\n onClick: handleMonthSelection,\n onKeyDown: handleKeyDown,\n autoFocus: internalHasFocus && monthNumber === focusedMonth,\n disabled: isDisabled,\n tabIndex: monthNumber === focusedMonth && !isDisabled ? 0 : -1,\n onFocus: handleMonthFocus,\n onBlur: handleMonthBlur,\n \"aria-current\": todayMonth === monthNumber ? 'date' : undefined,\n \"aria-label\": monthLabel,\n monthsPerRow: monthsPerRow,\n slots: slots,\n slotProps: slotProps,\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n gridLabelId: PropTypes.string,\n hasFocus: PropTypes.bool,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Callback fired when the value changes.\n * @template TDate\n * @param {TDate} value The new value.\n */\n onChange: PropTypes.func,\n onFocusedViewChange: PropTypes.func,\n onMonthFocus: PropTypes.func,\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid month using the validation props, except callbacks such as `shouldDisableMonth`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('MuiPickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('MuiPickersYear', ['root', 'yearButton', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"children\", \"disabled\", \"selected\", \"value\", \"tabIndex\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"aria-current\", \"yearsPerRow\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, alpha, useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { getPickersYearUtilityClass, pickersYearClasses } from \"./pickersYearClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\nconst PickersYearRoot = styled('div', {\n name: 'MuiPickersYear',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root]\n})({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexBasis: '33.3%',\n variants: [{\n props: {\n yearsPerRow: 4\n },\n style: {\n flexBasis: '25%'\n }\n }]\n});\nconst YearCalendarButton = styled('button', {\n name: 'MuiPickersYear',\n slot: 'YearButton',\n overridesResolver: (_, styles) => [styles.yearButton, {\n [`&.${pickersYearClasses.disabled}`]: styles.disabled\n }, {\n [`&.${pickersYearClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '6px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.action.active, theme.palette.action.focusOpacity)\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n cursor: 'auto',\n pointerEvents: 'none'\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n }\n}));\n\n/**\n * @ignore - internal component.\n */\nexport const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersYear'\n });\n const {\n autoFocus,\n className,\n children,\n disabled,\n selected,\n value,\n tabIndex,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n 'aria-current': ariaCurrent\n // We don't want to forward this prop to the root element\n ,\n\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ref = React.useRef(null);\n const classes = useUtilityClasses(props);\n\n // We can't forward the `autoFocus` to the button because it is a native button, not a MUI Button\n useEnhancedEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUI.\n ref.current?.focus();\n }\n }, [autoFocus]);\n const YearButton = slots?.yearButton ?? YearCalendarButton;\n const yearButtonProps = useSlotProps({\n elementType: YearButton,\n externalSlotProps: slotProps?.yearButton,\n additionalProps: {\n children,\n disabled,\n tabIndex,\n ref,\n type: 'button',\n role: 'radio',\n 'aria-current': ariaCurrent,\n 'aria-checked': selected,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n onFocus: event => onFocus(event, value),\n onBlur: event => onBlur(event, value)\n },\n ownerState: props,\n className: classes.yearButton\n });\n return /*#__PURE__*/_jsx(PickersYearRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: props\n }, other, {\n children: /*#__PURE__*/_jsx(YearButton, _extends({}, yearButtonProps))\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getYearCalendarUtilityClass(slot) {\n return generateUtilityClass('MuiYearCalendar', slot);\n}\nexport const yearCalendarClasses = generateUtilityClasses('MuiYearCalendar', ['root']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"value\", \"defaultValue\", \"referenceDate\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"readOnly\", \"shouldDisableYear\", \"disableHighlightToday\", \"onYearFocus\", \"hasFocus\", \"onFocusedViewChange\", \"yearsOrder\", \"yearsPerRow\", \"timezone\", \"gridLabelId\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_useControlled as useControlled, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { PickersYear } from \"./PickersYear.js\";\nimport { useUtils, useNow, useDefaultDates } from \"../internals/hooks/useUtils.js\";\nimport { getYearCalendarUtilityClass } from \"./yearCalendarClasses.js\";\nimport { applyDefaultDate } from \"../internals/utils/date-utils.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { SECTION_TYPE_GRANULARITY } from \"../internals/utils/getDefaultReferenceDate.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from \"../internals/constants/dimensions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearCalendarUtilityClass, classes);\n};\nfunction useYearCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({\n disablePast: false,\n disableFuture: false\n }, themeProps, {\n yearsPerRow: themeProps.yearsPerRow ?? 3,\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst YearCalendarRoot = styled('div', {\n name: 'MuiYearCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n padding: '0 4px',\n width: DIALOG_WIDTH,\n maxHeight: MAX_CALENDAR_HEIGHT,\n // avoid padding increasing width over defined\n boxSizing: 'border-box',\n position: 'relative'\n});\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n *\n * API:\n *\n * - [YearCalendar API](https://mui.com/x/api/date-pickers/year-calendar/)\n */\nexport const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(inProps, ref) {\n const props = useYearCalendarDefaultizedProps(inProps, 'MuiYearCalendar');\n const {\n autoFocus,\n className,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n readOnly,\n shouldDisableYear,\n onYearFocus,\n hasFocus,\n onFocusedViewChange,\n yearsOrder = 'asc',\n yearsPerRow,\n timezone: timezoneProp,\n gridLabelId,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'YearCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChange,\n valueManager: singleItemValueManager\n });\n const now = useNow(timezone);\n const isRtl = useRtl();\n const utils = useUtils();\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n timezone,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.year\n }), [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const todayYear = React.useMemo(() => utils.getYear(now), [utils, now]);\n const selectedYear = React.useMemo(() => {\n if (value != null) {\n return utils.getYear(value);\n }\n return null;\n }, [value, utils]);\n const [focusedYear, setFocusedYear] = React.useState(() => selectedYear || utils.getYear(referenceDate));\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'YearCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus ?? false\n });\n const changeHasFocus = useEventCallback(newHasFocus => {\n setInternalHasFocus(newHasFocus);\n if (onFocusedViewChange) {\n onFocusedViewChange(newHasFocus);\n }\n });\n const isYearDisabled = React.useCallback(dateToValidate => {\n if (disablePast && utils.isBeforeYear(dateToValidate, now)) {\n return true;\n }\n if (disableFuture && utils.isAfterYear(dateToValidate, now)) {\n return true;\n }\n if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {\n return true;\n }\n if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {\n return true;\n }\n if (!shouldDisableYear) {\n return false;\n }\n const yearToValidate = utils.startOfYear(dateToValidate);\n return shouldDisableYear(yearToValidate);\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);\n const handleYearSelection = useEventCallback((event, year) => {\n if (readOnly) {\n return;\n }\n const newDate = utils.setYear(value ?? referenceDate, year);\n handleValueChange(newDate);\n });\n const focusYear = useEventCallback(year => {\n if (!isYearDisabled(utils.setYear(value ?? referenceDate, year))) {\n setFocusedYear(year);\n changeHasFocus(true);\n onYearFocus?.(year);\n }\n });\n React.useEffect(() => {\n setFocusedYear(prevFocusedYear => selectedYear !== null && prevFocusedYear !== selectedYear ? selectedYear : prevFocusedYear);\n }, [selectedYear]);\n const verticalDirection = yearsOrder !== 'desc' ? yearsPerRow * 1 : yearsPerRow * -1;\n const horizontalDirection = isRtl && yearsOrder === 'asc' || !isRtl && yearsOrder === 'desc' ? -1 : 1;\n const handleKeyDown = useEventCallback((event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - verticalDirection);\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusYear(year + verticalDirection);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n focusYear(year - horizontalDirection);\n event.preventDefault();\n break;\n case 'ArrowRight':\n focusYear(year + horizontalDirection);\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleYearFocus = useEventCallback((event, year) => {\n focusYear(year);\n });\n const handleYearBlur = useEventCallback((event, year) => {\n if (focusedYear === year) {\n changeHasFocus(false);\n }\n });\n const scrollerRef = React.useRef(null);\n const handleRef = useForkRef(ref, scrollerRef);\n React.useEffect(() => {\n if (autoFocus || scrollerRef.current === null) {\n return;\n }\n const tabbableButton = scrollerRef.current.querySelector('[tabindex=\"0\"]');\n if (!tabbableButton) {\n return;\n }\n\n // Taken from useScroll in x-data-grid, but vertically centered\n const offsetHeight = tabbableButton.offsetHeight;\n const offsetTop = tabbableButton.offsetTop;\n const clientHeight = scrollerRef.current.clientHeight;\n const scrollTop = scrollerRef.current.scrollTop;\n const elementBottom = offsetTop + offsetHeight;\n if (offsetHeight > clientHeight || offsetTop < scrollTop) {\n // Button already visible\n return;\n }\n scrollerRef.current.scrollTop = elementBottom - clientHeight / 2 - offsetHeight / 2;\n }, [autoFocus]);\n const yearRange = utils.getYearRange([minDate, maxDate]);\n if (yearsOrder === 'desc') {\n yearRange.reverse();\n }\n return /*#__PURE__*/_jsx(YearCalendarRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"radiogroup\",\n \"aria-labelledby\": gridLabelId\n }, other, {\n children: yearRange.map(year => {\n const yearNumber = utils.getYear(year);\n const isSelected = yearNumber === selectedYear;\n const isDisabled = disabled || isYearDisabled(year);\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: isSelected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: internalHasFocus && yearNumber === focusedYear,\n disabled: isDisabled,\n tabIndex: yearNumber === focusedYear && !isDisabled ? 0 : -1,\n onFocus: handleYearFocus,\n onBlur: handleYearBlur,\n \"aria-current\": todayYear === yearNumber ? 'date' : undefined,\n yearsPerRow: yearsPerRow,\n slots: slots,\n slotProps: slotProps,\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? YearCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n gridLabelId: PropTypes.string,\n hasFocus: PropTypes.bool,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Callback fired when the value changes.\n * @template TDate\n * @param {TDate} value The new value.\n */\n onChange: PropTypes.func,\n onFocusedViewChange: PropTypes.func,\n onYearFocus: PropTypes.func,\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid year using the validation props, except callbacks such as `shouldDisableYear`.\n */\n referenceDate: PropTypes.object,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersCalendarHeaderUtilityClass = slot => generateUtilityClass('MuiPickersCalendarHeader', slot);\nexport const pickersCalendarHeaderClasses = generateUtilityClasses('MuiPickersCalendarHeader', ['root', 'labelContainer', 'label', 'switchViewButton', 'switchViewIcon']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"slots\", \"slotProps\", \"currentMonth\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onMonthChange\", \"onViewChange\", \"view\", \"reduceAnimations\", \"views\", \"labelId\", \"className\", \"timezone\", \"format\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport IconButton from '@mui/material/IconButton';\nimport { usePickersTranslations } from \"../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../internals/hooks/useUtils.js\";\nimport { PickersFadeTransitionGroup } from \"../DateCalendar/PickersFadeTransitionGroup.js\";\nimport { ArrowDropDownIcon } from \"../icons/index.js\";\nimport { PickersArrowSwitcher } from \"../internals/components/PickersArrowSwitcher/index.js\";\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from \"../internals/hooks/date-helpers-hooks.js\";\nimport { getPickersCalendarHeaderUtilityClass, pickersCalendarHeaderClasses } from \"./pickersCalendarHeaderClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n labelContainer: ['labelContainer'],\n label: ['label'],\n switchViewButton: ['switchViewButton'],\n switchViewIcon: ['switchViewIcon']\n };\n return composeClasses(slots, getPickersCalendarHeaderUtilityClass, classes);\n};\nconst PickersCalendarHeaderRoot = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({\n display: 'flex',\n alignItems: 'center',\n marginTop: 12,\n marginBottom: 4,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 40,\n minHeight: 40\n});\nconst PickersCalendarHeaderLabelContainer = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'LabelContainer',\n overridesResolver: (_, styles) => styles.labelContainer\n})(({\n theme\n}) => _extends({\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabel = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'Label',\n overridesResolver: (_, styles) => styles.label\n})({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton, {\n name: 'MuiPickersCalendarHeader',\n slot: 'SwitchViewButton',\n overridesResolver: (_, styles) => styles.switchViewButton\n})({\n marginRight: 'auto',\n variants: [{\n props: {\n view: 'year'\n },\n style: {\n [`.${pickersCalendarHeaderClasses.switchViewIcon}`]: {\n transform: 'rotate(180deg)'\n }\n }\n }]\n});\nconst PickersCalendarHeaderSwitchViewIcon = styled(ArrowDropDownIcon, {\n name: 'MuiPickersCalendarHeader',\n slot: 'SwitchViewIcon',\n overridesResolver: (_, styles) => styles.switchViewIcon\n})(({\n theme\n}) => ({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}));\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * - [DateRangeCalendar](https://mui.com/x/react-date-pickers/date-range-calendar/)\n * - [Custom slots and subcomponents](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [PickersCalendarHeader API](https://mui.com/x/api/date-pickers/pickers-calendar-header/)\n */\nconst PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCalendarHeader(inProps, ref) {\n const translations = usePickersTranslations();\n const utils = useUtils();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersCalendarHeader'\n });\n const {\n slots,\n slotProps,\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n view,\n reduceAnimations,\n views,\n labelId,\n className,\n timezone,\n format = `${utils.formats.month} ${utils.formats.year}`\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(props);\n const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;\n const switchViewButtonProps = useSlotProps({\n elementType: SwitchViewButton,\n externalSlotProps: slotProps?.switchViewButton,\n additionalProps: {\n size: 'small',\n 'aria-label': translations.calendarViewSwitchingButtonAriaLabel(view)\n },\n ownerState,\n className: classes.switchViewButton\n });\n const SwitchViewIcon = slots?.switchViewIcon ?? PickersCalendarHeaderSwitchViewIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: SwitchViewIcon,\n externalSlotProps: slotProps?.switchViewIcon,\n ownerState,\n className: classes.switchViewIcon\n }),\n switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const selectNextMonth = () => onMonthChange(utils.addMonths(month, 1), 'left');\n const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture,\n maxDate,\n timezone\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast,\n minDate,\n timezone\n });\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n if (views.length === 2) {\n onViewChange(views.find(el => el !== view) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(view) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n };\n\n // No need to display more information\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n const label = utils.formatByString(month, format);\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, _extends({}, other, {\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabelContainer, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState\n // putting this on the label item element below breaks when using transition\n ,\n \"aria-live\": \"polite\",\n className: classes.labelContainer,\n children: [/*#__PURE__*/_jsx(PickersFadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: label,\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabel, {\n id: labelId,\n ownerState: ownerState,\n className: classes.label,\n children: label\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(SwitchViewButton, _extends({}, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(SwitchViewIcon, _extends({}, switchViewIconProps))\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: view === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n slots: slots,\n slotProps: slotProps,\n onGoToPrevious: selectPreviousMonth,\n isPreviousDisabled: isPreviousMonthDisabled,\n previousLabel: translations.previousMonth,\n onGoToNext: selectNextMonth,\n isNextDisabled: isNextMonthDisabled,\n nextLabel: translations.nextMonth\n })\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? PickersCalendarHeader.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n currentMonth: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n disableFuture: PropTypes.bool,\n disablePast: PropTypes.bool,\n /**\n * Format used to display the date.\n * @default `${adapter.formats.month} ${adapter.formats.year}`\n */\n format: PropTypes.string,\n /**\n * Id of the calendar text element.\n * It is used to establish an `aria-labelledby` relationship with the calendar `grid` element.\n */\n labelId: PropTypes.string,\n maxDate: PropTypes.object.isRequired,\n minDate: PropTypes.object.isRequired,\n onMonthChange: PropTypes.func.isRequired,\n onViewChange: PropTypes.func,\n reduceAnimations: PropTypes.bool.isRequired,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n timezone: PropTypes.string.isRequired,\n view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired\n} : void 0;\nexport { PickersCalendarHeader };","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getDateCalendarUtilityClass = slot => generateUtilityClass('MuiDateCalendar', slot);\nexport const dateCalendarClasses = generateUtilityClasses('MuiDateCalendar', ['root', 'viewTransitionContainer']);","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"value\", \"defaultValue\", \"referenceDate\", \"disableFuture\", \"disablePast\", \"onChange\", \"onYearChange\", \"onMonthChange\", \"reduceAnimations\", \"shouldDisableDate\", \"shouldDisableMonth\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\", \"disabled\", \"readOnly\", \"minDate\", \"maxDate\", \"disableHighlightToday\", \"focusedView\", \"onFocusedViewChange\", \"showDaysOutsideCurrentMonth\", \"fixedWeekNumber\", \"dayOfWeekFormatter\", \"slots\", \"slotProps\", \"loading\", \"renderLoading\", \"displayWeekNumber\", \"yearsOrder\", \"yearsPerRow\", \"monthsPerRow\", \"timezone\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { useCalendarState } from \"./useCalendarState.js\";\nimport { useDefaultDates, useUtils } from \"../internals/hooks/useUtils.js\";\nimport { PickersFadeTransitionGroup } from \"./PickersFadeTransitionGroup.js\";\nimport { DayCalendar } from \"./DayCalendar.js\";\nimport { MonthCalendar } from \"../MonthCalendar/index.js\";\nimport { YearCalendar } from \"../YearCalendar/index.js\";\nimport { useViews } from \"../internals/hooks/useViews.js\";\nimport { PickersCalendarHeader } from \"../PickersCalendarHeader/index.js\";\nimport { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from \"../internals/utils/date-utils.js\";\nimport { PickerViewRoot } from \"../internals/components/PickerViewRoot/index.js\";\nimport { useDefaultReduceAnimations } from \"../internals/hooks/useDefaultReduceAnimations.js\";\nimport { getDateCalendarUtilityClass } from \"./dateCalendarClasses.js\";\nimport { useControlledValueWithTimezone } from \"../internals/hooks/useValueWithTimezone.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nimport { VIEW_HEIGHT } from \"../internals/constants/dimensions.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getDateCalendarUtilityClass, classes);\n};\nfunction useDateCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const defaultReduceAnimations = useDefaultReduceAnimations();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({}, themeProps, {\n loading: themeProps.loading ?? false,\n disablePast: themeProps.disablePast ?? false,\n disableFuture: themeProps.disableFuture ?? false,\n openTo: themeProps.openTo ?? 'day',\n views: themeProps.views ?? ['year', 'day'],\n reduceAnimations: themeProps.reduceAnimations ?? defaultReduceAnimations,\n renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n })),\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst DateCalendarRoot = styled(PickerViewRoot, {\n name: 'MuiDateCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column',\n height: VIEW_HEIGHT\n});\nconst DateCalendarViewTransitionContainer = styled(PickersFadeTransitionGroup, {\n name: 'MuiDateCalendar',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({});\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DateCalendar API](https://mui.com/x/api/date-pickers/date-calendar/)\n */\nexport const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps, ref) {\n const utils = useUtils();\n const id = useId();\n const props = useDateCalendarDefaultizedProps(inProps, 'MuiDateCalendar');\n const {\n autoFocus,\n onViewChange,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableFuture,\n disablePast,\n onChange,\n onYearChange,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n view: inView,\n views,\n openTo,\n className,\n disabled,\n readOnly,\n minDate,\n maxDate,\n disableHighlightToday,\n focusedView: inFocusedView,\n onFocusedViewChange,\n showDaysOutsideCurrentMonth,\n fixedWeekNumber,\n dayOfWeekFormatter,\n slots,\n slotProps,\n loading,\n renderLoading,\n displayWeekNumber,\n yearsOrder,\n yearsPerRow,\n monthsPerRow,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'DateCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const {\n view,\n setView,\n focusedView,\n setFocusedView,\n goToNextView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onChange: handleValueChange,\n onViewChange,\n autoFocus,\n focusedView: inFocusedView,\n onFocusedViewChange\n });\n const {\n referenceDate,\n calendarState,\n changeFocusedDay,\n changeMonth,\n handleChangeMonth,\n isDateDisabled,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n value,\n referenceDate: referenceDateProp,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture,\n timezone\n });\n\n // When disabled, limit the view to the selected date\n const minDateWithDisabled = disabled && value || minDate;\n const maxDateWithDisabled = disabled && value || maxDate;\n const gridLabelId = `${id}-grid-label`;\n const hasFocus = focusedView !== null;\n const CalendarHeader = slots?.calendarHeader ?? PickersCalendarHeader;\n const calendarHeaderProps = useSlotProps({\n elementType: CalendarHeader,\n externalSlotProps: slotProps?.calendarHeader,\n additionalProps: {\n views,\n view,\n currentMonth: calendarState.currentMonth,\n onViewChange: setView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDateWithDisabled,\n maxDate: maxDateWithDisabled,\n disabled,\n disablePast,\n disableFuture,\n reduceAnimations,\n timezone,\n labelId: gridLabelId\n },\n ownerState: props\n });\n const handleDateMonthChange = useEventCallback(newDate => {\n const startOfMonth = utils.startOfMonth(newDate);\n const endOfMonth = utils.endOfMonth(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfMonth) ? startOfMonth : minDate,\n maxDate: utils.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n }) : newDate;\n if (closestEnabledDate) {\n setValueAndGoToNextView(closestEnabledDate, 'finish');\n onMonthChange?.(startOfMonth);\n } else {\n goToNextView();\n changeMonth(startOfMonth);\n }\n changeFocusedDay(closestEnabledDate, true);\n });\n const handleDateYearChange = useEventCallback(newDate => {\n const startOfYear = utils.startOfYear(newDate);\n const endOfYear = utils.endOfYear(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfYear) ? startOfYear : minDate,\n maxDate: utils.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n }) : newDate;\n if (closestEnabledDate) {\n setValueAndGoToNextView(closestEnabledDate, 'finish');\n onYearChange?.(closestEnabledDate);\n } else {\n goToNextView();\n changeMonth(startOfYear);\n }\n changeFocusedDay(closestEnabledDate, true);\n });\n const handleSelectedDayChange = useEventCallback(day => {\n if (day) {\n // If there is a date already selected, then we want to keep its time\n return handleValueChange(mergeDateAndTime(utils, day, value ?? referenceDate), 'finish', view);\n }\n return handleValueChange(day, 'finish', view);\n });\n React.useEffect(() => {\n if (value != null && utils.isValid(value)) {\n changeMonth(value);\n }\n }, [value]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const baseDateValidationProps = {\n disablePast,\n disableFuture,\n maxDate,\n minDate\n };\n const commonViewProps = {\n disableHighlightToday,\n readOnly,\n disabled,\n timezone,\n gridLabelId,\n slots,\n slotProps\n };\n const prevOpenViewRef = React.useRef(view);\n React.useEffect(() => {\n // If the view change and the focus was on the previous view\n // Then we update the focus.\n if (prevOpenViewRef.current === view) {\n return;\n }\n if (focusedView === prevOpenViewRef.current) {\n setFocusedView(view, true);\n }\n prevOpenViewRef.current = view;\n }, [focusedView, setFocusedView, view]);\n const selectedDays = React.useMemo(() => [value], [value]);\n return /*#__PURE__*/_jsxs(DateCalendarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps, {\n slots: slots,\n slotProps: slotProps\n })), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: view,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [view === 'year' && /*#__PURE__*/_jsx(YearCalendar, _extends({}, baseDateValidationProps, commonViewProps, {\n value: value,\n onChange: handleDateYearChange,\n shouldDisableYear: shouldDisableYear,\n hasFocus: hasFocus,\n onFocusedViewChange: isViewFocused => setFocusedView('year', isViewFocused),\n yearsOrder: yearsOrder,\n yearsPerRow: yearsPerRow,\n referenceDate: referenceDate\n })), view === 'month' && /*#__PURE__*/_jsx(MonthCalendar, _extends({}, baseDateValidationProps, commonViewProps, {\n hasFocus: hasFocus,\n className: className,\n value: value,\n onChange: handleDateMonthChange,\n shouldDisableMonth: shouldDisableMonth,\n onFocusedViewChange: isViewFocused => setFocusedView('month', isViewFocused),\n monthsPerRow: monthsPerRow,\n referenceDate: referenceDate\n })), view === 'day' && /*#__PURE__*/_jsx(DayCalendar, _extends({}, calendarState, baseDateValidationProps, commonViewProps, {\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n selectedDays: selectedDays,\n onSelectedDaysChange: handleSelectedDayChange,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n hasFocus: hasFocus,\n onFocusedViewChange: isViewFocused => setFocusedView('day', isViewFocused),\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n fixedWeekNumber: fixedWeekNumber,\n dayOfWeekFormatter: dayOfWeekFormatter,\n displayWeekNumber: displayWeekNumber,\n loading: loading,\n renderLoading: renderLoading\n }))]\n })\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.object,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * The day view will show as many weeks as needed after the end of the current month to match this value.\n * Put it to 6 to have a fixed number of weeks in Gregorian calendars\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Maximal selectable date.\n * @default 2099-12-31\n */\n maxDate: PropTypes.object,\n /**\n * Minimal selectable date.\n * @default 1900-01-01\n */\n minDate: PropTypes.object,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.\n */\n referenceDate: PropTypes.object,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documentation} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.object,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years are displayed in ascending (chronological) order by default.\n * If `desc`, years are displayed in descending order.\n * @default 'asc'\n */\n yearsOrder: PropTypes.oneOf(['asc', 'desc']),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;","import * as React from 'react';\nimport { DateCalendar } from \"../DateCalendar/index.js\";\nimport { isDatePickerView } from \"../internals/utils/date-utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const renderDateViewCalendar = ({\n view,\n onViewChange,\n views,\n focusedView,\n onFocusedViewChange,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minDate,\n maxDate,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n reduceAnimations,\n onMonthChange,\n monthsPerRow,\n onYearChange,\n yearsOrder,\n yearsPerRow,\n slots,\n slotProps,\n loading,\n renderLoading,\n disableHighlightToday,\n readOnly,\n disabled,\n showDaysOutsideCurrentMonth,\n dayOfWeekFormatter,\n sx,\n autoFocus,\n fixedWeekNumber,\n displayWeekNumber,\n timezone\n}) => /*#__PURE__*/_jsx(DateCalendar, {\n view: view,\n onViewChange: onViewChange,\n views: views.filter(isDatePickerView),\n focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,\n onFocusedViewChange: onFocusedViewChange,\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minDate: minDate,\n maxDate: maxDate,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n reduceAnimations: reduceAnimations,\n onMonthChange: onMonthChange,\n monthsPerRow: monthsPerRow,\n onYearChange: onYearChange,\n yearsOrder: yearsOrder,\n yearsPerRow: yearsPerRow,\n slots: slots,\n slotProps: slotProps,\n loading: loading,\n renderLoading: renderLoading,\n disableHighlightToday: disableHighlightToday,\n readOnly: readOnly,\n disabled: disabled,\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n dayOfWeekFormatter: dayOfWeekFormatter,\n sx: sx,\n autoFocus: autoFocus,\n fixedWeekNumber: fixedWeekNumber,\n displayWeekNumber: displayWeekNumber,\n timezone: timezone\n});","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"clearable\", \"onClear\", \"InputProps\", \"sx\", \"slots\", \"slotProps\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport MuiIconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { ClearIcon } from \"../icons/index.js\";\nimport { usePickersTranslations } from \"./usePickersTranslations.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const useClearableField = props => {\n const translations = usePickersTranslations();\n const {\n clearable,\n onClear,\n InputProps,\n sx,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const IconButton = slots?.clearButton ?? MuiIconButton;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: IconButton,\n externalSlotProps: slotProps?.clearButton,\n ownerState: {},\n className: 'clearButton',\n additionalProps: {\n title: translations.fieldClearLabel\n }\n }),\n iconButtonProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const EndClearIcon = slots?.clearIcon ?? ClearIcon;\n const endClearIconProps = useSlotProps({\n elementType: EndClearIcon,\n externalSlotProps: slotProps?.clearIcon,\n ownerState: {}\n });\n return _extends({}, other, {\n InputProps: _extends({}, InputProps, {\n endAdornment: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [clearable && /*#__PURE__*/_jsx(InputAdornment, {\n position: \"end\",\n sx: {\n marginRight: InputProps?.endAdornment ? -1 : -1.5\n },\n children: /*#__PURE__*/_jsx(IconButton, _extends({}, iconButtonProps, {\n onClick: onClear,\n children: /*#__PURE__*/_jsx(EndClearIcon, _extends({\n fontSize: \"small\"\n }, endClearIconProps))\n }))\n }), InputProps?.endAdornment]\n })\n }),\n sx: [{\n '& .clearButton': {\n opacity: 1\n },\n '@media (pointer: fine)': {\n '& .clearButton': {\n opacity: 0\n },\n '&:hover, &:focus-within': {\n '.clearButton': {\n opacity: 1\n }\n }\n }\n }, ...(Array.isArray(sx) ? sx : [sx])]\n });\n};","'use client';\n\nimport { useLocalizationContext } from \"../internals/hooks/useUtils.js\";\nexport const usePickersTranslations = () => useLocalizationContext().localeText;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from \"../validation/extractValidationProps.js\";\nconst SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];\n/**\n * Split the props received by the field component into:\n * - `internalProps` which are used by the various hooks called by the field component.\n * - `forwardedProps` which are passed to the underlying component.\n * Note that some forwarded props might be used by the hooks as well.\n * For instance, hooks like `useDateField` need props like `autoFocus` to know how to behave.\n * @template TProps, TValueType\n * @param {TProps} props The props received by the field component.\n * @param {TValueType} valueType The type of the field value ('date', 'time', or 'date-time').\n */\nexport const useSplitFieldProps = (props, valueType) => {\n return React.useMemo(() => {\n const forwardedProps = _extends({}, props);\n const internalProps = {};\n const extractProp = propName => {\n if (forwardedProps.hasOwnProperty(propName)) {\n // @ts-ignore\n internalProps[propName] = forwardedProps[propName];\n delete forwardedProps[propName];\n }\n };\n SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(extractProp);\n if (valueType === 'date') {\n DATE_VALIDATION_PROP_NAMES.forEach(extractProp);\n } else if (valueType === 'time') {\n TIME_VALIDATION_PROP_NAMES.forEach(extractProp);\n } else if (valueType === 'date-time') {\n DATE_VALIDATION_PROP_NAMES.forEach(extractProp);\n TIME_VALIDATION_PROP_NAMES.forEach(extractProp);\n DATE_TIME_VALIDATION_PROP_NAMES.forEach(extractProp);\n }\n return {\n forwardedProps,\n internalProps\n };\n }, [props, valueType]);\n};","import { createSvgIcon } from '@mui/material/utils';\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ArrowDropDownIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n\n/**\n * @ignore - internal component.\n */\nexport const ArrowLeftIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'ArrowLeft');\n\n/**\n * @ignore - internal component.\n */\nexport const ArrowRightIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'ArrowRight');\n\n/**\n * @ignore - internal component.\n */\nexport const CalendarIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Calendar');\n\n/**\n * @ignore - internal component.\n */\nexport const ClockIcon = createSvgIcon(/*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Clock');\n\n/**\n * @ignore - internal component.\n */\nexport const DateRangeIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"\n}), 'DateRange');\n\n/**\n * @ignore - internal component.\n */\nexport const TimeIcon = createSvgIcon(/*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Time');\n\n/**\n * @ignore - internal component.\n */\nexport const ClearIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from \"../../constants/dimensions.js\";\nexport const PickerViewRoot = styled('div')({\n overflow: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersArrowSwitcherUtilityClass(slot) {\n return generateUtilityClass('MuiPickersArrowSwitcher', slot);\n}\nexport const pickersArrowSwitcherClasses = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button', 'previousIconButton', 'nextIconButton', 'leftArrowIcon', 'rightArrowIcon']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"slots\", \"slotProps\", \"isNextDisabled\", \"isNextHidden\", \"onGoToNext\", \"nextLabel\", \"isPreviousDisabled\", \"isPreviousHidden\", \"onGoToPrevious\", \"previousLabel\", \"labelId\"],\n _excluded2 = [\"ownerState\"],\n _excluded3 = [\"ownerState\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport IconButton from '@mui/material/IconButton';\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../../../icons/index.js\";\nimport { getPickersArrowSwitcherUtilityClass } from \"./pickersArrowSwitcherClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersArrowSwitcherRoot = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton, {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Button',\n overridesResolver: (props, styles) => styles.button\n})({\n variants: [{\n props: {\n hidden: true\n },\n style: {\n visibility: 'hidden'\n }\n }]\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n spacer: ['spacer'],\n button: ['button'],\n previousIconButton: ['previousIconButton'],\n nextIconButton: ['nextIconButton'],\n leftArrowIcon: ['leftArrowIcon'],\n rightArrowIcon: ['rightArrowIcon']\n };\n return composeClasses(slots, getPickersArrowSwitcherUtilityClass, classes);\n};\nexport const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(inProps, ref) {\n const isRtl = useRtl();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersArrowSwitcher'\n });\n const {\n children,\n className,\n slots,\n slotProps,\n isNextDisabled,\n isNextHidden,\n onGoToNext,\n nextLabel,\n isPreviousDisabled,\n isPreviousHidden,\n onGoToPrevious,\n previousLabel,\n labelId\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const nextProps = {\n isDisabled: isNextDisabled,\n isHidden: isNextHidden,\n goTo: onGoToNext,\n label: nextLabel\n };\n const previousProps = {\n isDisabled: isPreviousDisabled,\n isHidden: isPreviousHidden,\n goTo: onGoToPrevious,\n label: previousLabel\n };\n const PreviousIconButton = slots?.previousIconButton ?? PickersArrowSwitcherButton;\n const previousIconButtonProps = useSlotProps({\n elementType: PreviousIconButton,\n externalSlotProps: slotProps?.previousIconButton,\n additionalProps: {\n size: 'medium',\n title: previousProps.label,\n 'aria-label': previousProps.label,\n disabled: previousProps.isDisabled,\n edge: 'end',\n onClick: previousProps.goTo\n },\n ownerState: _extends({}, ownerState, {\n hidden: previousProps.isHidden\n }),\n className: clsx(classes.button, classes.previousIconButton)\n });\n const NextIconButton = slots?.nextIconButton ?? PickersArrowSwitcherButton;\n const nextIconButtonProps = useSlotProps({\n elementType: NextIconButton,\n externalSlotProps: slotProps?.nextIconButton,\n additionalProps: {\n size: 'medium',\n title: nextProps.label,\n 'aria-label': nextProps.label,\n disabled: nextProps.isDisabled,\n edge: 'start',\n onClick: nextProps.goTo\n },\n ownerState: _extends({}, ownerState, {\n hidden: nextProps.isHidden\n }),\n className: clsx(classes.button, classes.nextIconButton)\n });\n const LeftArrowIcon = slots?.leftArrowIcon ?? ArrowLeftIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: LeftArrowIcon,\n externalSlotProps: slotProps?.leftArrowIcon,\n additionalProps: {\n fontSize: 'inherit'\n },\n ownerState,\n className: classes.leftArrowIcon\n }),\n leftArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const RightArrowIcon = slots?.rightArrowIcon ?? ArrowRightIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps2 = useSlotProps({\n elementType: RightArrowIcon,\n externalSlotProps: slotProps?.rightArrowIcon,\n additionalProps: {\n fontSize: 'inherit'\n },\n ownerState,\n className: classes.rightArrowIcon\n }),\n rightArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PreviousIconButton, _extends({}, previousIconButtonProps, {\n children: isRtl ? /*#__PURE__*/_jsx(RightArrowIcon, _extends({}, rightArrowIconProps)) : /*#__PURE__*/_jsx(LeftArrowIcon, _extends({}, leftArrowIconProps))\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n id: labelId,\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n className: classes.spacer,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(NextIconButton, _extends({}, nextIconButtonProps, {\n children: isRtl ? /*#__PURE__*/_jsx(LeftArrowIcon, _extends({}, leftArrowIconProps)) : /*#__PURE__*/_jsx(RightArrowIcon, _extends({}, rightArrowIconProps))\n }))]\n }));\n});","import * as React from 'react';\nimport { LocalizationProvider } from \"../../LocalizationProvider/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const PickersContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Provides the context for the various parts of a picker component:\n * - contextValue: the context for the picker sub-components.\n * - localizationProvider: the translations passed through the props and through a parent LocalizationProvider.\n *\n * @ignore - do not document.\n */\nexport function PickersProvider(props) {\n const {\n contextValue,\n localeText,\n children\n } = props;\n return /*#__PURE__*/_jsx(PickersContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(LocalizationProvider, {\n localeText: localeText,\n children: children\n })\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"toolbarTitle\", \"hidden\", \"titleId\", \"isLandscape\", \"classes\", \"landscapeDirection\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { getPickersToolbarUtilityClass } from \"./pickersToolbarClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n isLandscape\n } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content'],\n penIconButton: ['penIconButton', isLandscape && 'penIconButtonLandscape']\n };\n return composeClasses(slots, getPickersToolbarUtilityClass, classes);\n};\nconst PickersToolbarRoot = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3),\n variants: [{\n props: {\n isLandscape: true\n },\n style: {\n height: 'auto',\n maxWidth: 160,\n padding: 16,\n justifyContent: 'flex-start',\n flexWrap: 'wrap'\n }\n }]\n}));\nconst PickersToolbarContent = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row',\n variants: [{\n props: {\n isLandscape: true\n },\n style: {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n flexDirection: 'column'\n }\n }, {\n props: {\n isLandscape: true,\n landscapeDirection: 'row'\n },\n style: {\n flexDirection: 'row'\n }\n }]\n});\nexport const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersToolbar'\n });\n const {\n children,\n className,\n toolbarTitle,\n hidden,\n titleId\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n if (hidden) {\n return null;\n }\n return /*#__PURE__*/_jsxs(PickersToolbarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n variant: \"overline\",\n id: titleId,\n children: toolbarTitle\n }), /*#__PURE__*/_jsx(PickersToolbarContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n })]\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiPickersToolbar', slot);\n}\nexport const pickersToolbarClasses = generateUtilityClasses('MuiPickersToolbar', ['root', 'content']);","export const DAY_SIZE = 36;\nexport const DAY_MARGIN = 2;\nexport const DIALOG_WIDTH = 320;\nexport const MAX_CALENDAR_HEIGHT = 280;\nexport const VIEW_HEIGHT = 336;\nexport const DIGITAL_CLOCK_VIEW_HEIGHT = 232;\nexport const MULTI_SECTION_CLOCK_SECTION_WIDTH = 48;","import * as React from 'react';\nimport { useUtils } from \"./useUtils.js\";\nimport { getMeridiem, convertToMeridiem } from \"../utils/time-utils.js\";\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate,\n timezone\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date(undefined, timezone);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils, timezone]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate,\n timezone\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date(undefined, timezone);\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils, timezone]);\n}\nexport function useMeridiemMode(date, ampm, onChange, selectionState) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, selectionState ?? 'partial');\n }, [ampm, date, onChange, selectionState, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { applyDefaultDate } from \"../utils/date-utils.js\";\nimport { useUtils, useDefaultDates } from \"./useUtils.js\";\nexport const useDefaultizedDateField = props => {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n return _extends({}, props, {\n disablePast: props.disablePast ?? false,\n disableFuture: props.disableFuture ?? false,\n format: props.format ?? utils.formats.keyboardDate,\n minDate: applyDefaultDate(utils, props.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)\n });\n};\nexport const useDefaultizedTimeField = props => {\n const utils = useUtils();\n const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();\n const defaultFormat = ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h;\n return _extends({}, props, {\n disablePast: props.disablePast ?? false,\n disableFuture: props.disableFuture ?? false,\n format: props.format ?? defaultFormat\n });\n};\nexport const useDefaultizedDateTimeField = props => {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();\n const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;\n return _extends({}, props, {\n disablePast: props.disablePast ?? false,\n disableFuture: props.disableFuture ?? false,\n format: props.format ?? defaultFormat,\n disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime),\n minDate: applyDefaultDate(utils, props.minDateTime ?? props.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, props.maxDateTime ?? props.maxDate, defaultDates.maxDate),\n minTime: props.minDateTime ?? props.minTime,\n maxTime: props.maxDateTime ?? props.maxTime\n });\n};","import useMediaQuery from '@mui/material/useMediaQuery';\nconst PREFERS_REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';\n\n// detect if user agent has Android version < 10 or iOS version < 13\nconst mobileVersionMatches = typeof navigator !== 'undefined' && navigator.userAgent.match(/android\\s(\\d+)|OS\\s(\\d+)/i);\nconst androidVersion = mobileVersionMatches && mobileVersionMatches[1] ? parseInt(mobileVersionMatches[1], 10) : null;\nconst iOSVersion = mobileVersionMatches && mobileVersionMatches[2] ? parseInt(mobileVersionMatches[2], 10) : null;\nexport const slowAnimationDevices = androidVersion && androidVersion < 10 || iOSVersion && iOSVersion < 13 || false;\nexport const useDefaultReduceAnimations = () => {\n const prefersReduced = useMediaQuery(PREFERS_REDUCED_MOTION, {\n defaultMatches: false\n });\n return prefersReduced || slowAnimationDevices;\n};","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersPopperUtilityClass(slot) {\n return generateUtilityClass('MuiPickersPopper', slot);\n}\nexport const pickersPopperClasses = generateUtilityClasses('MuiPickersPopper', ['root', 'paper']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"PaperComponent\", \"popperPlacement\", \"ownerState\", \"children\", \"paperSlotProps\", \"paperClasses\", \"onPaperClick\", \"onPaperTouchStart\"];\nimport * as React from 'react';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport Grow from '@mui/material/Grow';\nimport Fade from '@mui/material/Fade';\nimport MuiPaper from '@mui/material/Paper';\nimport MuiPopper from '@mui/material/Popper';\nimport BaseFocusTrap from '@mui/material/Unstable_TrapFocus';\nimport { unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_ownerDocument as ownerDocument, unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { getPickersPopperUtilityClass } from \"./pickersPopperClasses.js\";\nimport { getActiveElement } from \"../utils/utils.js\";\nimport { useDefaultReduceAnimations } from \"../hooks/useDefaultReduceAnimations.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper']\n };\n return composeClasses(slots, getPickersPopperUtilityClass, classes);\n};\nconst PickersPopperRoot = styled(MuiPopper, {\n name: 'MuiPickersPopper',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst PickersPopperPaper = styled(MuiPaper, {\n name: 'MuiPickersPopper',\n slot: 'Paper',\n overridesResolver: (_, styles) => styles.paper\n})({\n outline: 0,\n transformOrigin: 'top center',\n variants: [{\n props: ({\n placement\n }) => ['top', 'top-start', 'top-end'].includes(placement),\n style: {\n transformOrigin: 'bottom center'\n }\n }]\n});\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Based on @mui/material/ClickAwayListener without the customization.\n * We can probably strip away even more since children won't be portaled.\n * @param {boolean} active Only listen to clicks when the popper is opened.\n * @param {(event: MouseEvent | TouchEvent) => void} onClickAway The callback to call when clicking outside the popper.\n * @returns {Array} The ref and event handler to listen to the outside clicks.\n */\nfunction useClickAwayListener(active, onClickAway) {\n const movedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n React.useEffect(() => {\n if (!active) {\n return undefined;\n }\n\n // Ensure that this hook is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n function armClickAwayListener() {\n activatedRef.current = true;\n }\n document.addEventListener('mousedown', armClickAwayListener, true);\n document.addEventListener('touchstart', armClickAwayListener, true);\n return () => {\n document.removeEventListener('mousedown', armClickAwayListener, true);\n document.removeEventListener('touchstart', armClickAwayListener, true);\n activatedRef.current = false;\n };\n }, [active]);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n if (!activatedRef.current) {\n return;\n }\n\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!nodeRef.current ||\n // is a TouchEvent?\n 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n if (!insideDOM && !insideReactTree) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const handleSynthetic = () => {\n syntheticEventRef.current = true;\n };\n React.useEffect(() => {\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener('touchstart', handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener('touchstart', handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [active, handleClickAway]);\n React.useEffect(() => {\n // TODO This behavior is not tested automatically\n // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).\n // Or if this is a timing related issues due to different Transition components\n // Once we get rid of all the manual scheduling (for example setTimeout(update, 0)) we can revisit this code+test.\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener('click', handleClickAway);\n return () => {\n doc.removeEventListener('click', handleClickAway);\n // cleanup `handleClickAway`\n syntheticEventRef.current = false;\n };\n }\n return undefined;\n }, [active, handleClickAway]);\n return [nodeRef, handleSynthetic, handleSynthetic];\n}\nconst PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n PaperComponent,\n popperPlacement,\n ownerState: inOwnerState,\n children,\n paperSlotProps,\n paperClasses,\n onPaperClick,\n onPaperTouchStart\n // picks up the style props provided by `Transition`\n // https://mui.com/material-ui/transitions/#child-requirement\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, inOwnerState, {\n placement: popperPlacement\n });\n const paperProps = useSlotProps({\n elementType: PaperComponent,\n externalSlotProps: paperSlotProps,\n additionalProps: {\n tabIndex: -1,\n elevation: 8,\n ref\n },\n className: paperClasses,\n ownerState\n });\n return /*#__PURE__*/_jsx(PaperComponent, _extends({}, other, paperProps, {\n onClick: event => {\n onPaperClick(event);\n paperProps.onClick?.(event);\n },\n onTouchStart: event => {\n onPaperTouchStart(event);\n paperProps.onTouchStart?.(event);\n },\n ownerState: ownerState,\n children: children\n }));\n});\nexport function PickersPopper(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersPopper'\n });\n const {\n anchorEl,\n children,\n containerRef = null,\n shouldRestoreFocus,\n onBlur,\n onDismiss,\n open,\n role,\n placement,\n slots,\n slotProps,\n reduceAnimations: inReduceAnimations\n } = props;\n React.useEffect(() => {\n function handleKeyDown(nativeEvent) {\n if (open && nativeEvent.key === 'Escape') {\n onDismiss();\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onDismiss, open]);\n const lastFocusedElementRef = React.useRef(null);\n React.useEffect(() => {\n if (role === 'tooltip' || shouldRestoreFocus && !shouldRestoreFocus()) {\n return;\n }\n if (open) {\n lastFocusedElementRef.current = getActiveElement(document);\n } else if (lastFocusedElementRef.current && lastFocusedElementRef.current instanceof HTMLElement) {\n // make sure the button is flushed with updated label, before returning focus to it\n // avoids issue, where screen reader could fail to announce selected date after selection\n setTimeout(() => {\n if (lastFocusedElementRef.current instanceof HTMLElement) {\n lastFocusedElementRef.current.focus();\n }\n });\n }\n }, [open, role, shouldRestoreFocus]);\n const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ?? onDismiss);\n const paperRef = React.useRef(null);\n const handleRef = useForkRef(paperRef, containerRef);\n const handlePaperRef = useForkRef(handleRef, clickAwayRef);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const defaultReduceAnimations = useDefaultReduceAnimations();\n const reduceAnimations = inReduceAnimations ?? defaultReduceAnimations;\n const handleKeyDown = event => {\n if (event.key === 'Escape') {\n // stop the propagation to avoid closing parent modal\n event.stopPropagation();\n onDismiss();\n }\n };\n const Transition = slots?.desktopTransition ?? reduceAnimations ? Fade : Grow;\n const FocusTrap = slots?.desktopTrapFocus ?? BaseFocusTrap;\n const Paper = slots?.desktopPaper ?? PickersPopperPaper;\n const Popper = slots?.popper ?? PickersPopperRoot;\n const popperProps = useSlotProps({\n elementType: Popper,\n externalSlotProps: slotProps?.popper,\n additionalProps: {\n transition: true,\n role,\n open,\n anchorEl,\n placement,\n onKeyDown: handleKeyDown\n },\n className: classes.root,\n ownerState: props\n });\n return /*#__PURE__*/_jsx(Popper, _extends({}, popperProps, {\n children: ({\n TransitionProps,\n placement: popperPlacement\n }) => /*#__PURE__*/_jsx(FocusTrap, _extends({\n open: open,\n disableAutoFocus: true\n // pickers are managing focus position manually\n // without this prop the focus is returned to the button before `aria-label` is updated\n // which would force screen readers to read too old label\n ,\n disableRestoreFocus: true,\n disableEnforceFocus: role === 'tooltip',\n isEnabled: () => true\n }, slotProps?.desktopTrapFocus, {\n children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps?.desktopTransition, {\n children: /*#__PURE__*/_jsx(PickersPopperPaperWrapper, {\n PaperComponent: Paper,\n ownerState: ownerState,\n popperPlacement: popperPlacement,\n ref: handlePaperRef,\n onPaperClick: onPaperClick,\n onPaperTouchStart: onPaperTouchStart,\n paperClasses: classes.paper,\n paperSlotProps: slotProps?.desktopPaper,\n children: children\n })\n }))\n }))\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"props\", \"getOpenDialogAriaText\"],\n _excluded2 = [\"ownerState\"],\n _excluded3 = [\"ownerState\"];\nimport * as React from 'react';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport MuiInputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useId from '@mui/utils/useId';\nimport { PickersPopper } from \"../../components/PickersPopper.js\";\nimport { usePicker } from \"../usePicker/index.js\";\nimport { PickersLayout } from \"../../../PickersLayout/index.js\";\nimport { PickersProvider } from \"../../components/PickersProvider.js\";\n\n/**\n * Hook managing all the single-date desktop pickers:\n * - DesktopDatePicker\n * - DesktopDateTimePicker\n * - DesktopTimePicker\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const useDesktopPicker = _ref => {\n let {\n props,\n getOpenDialogAriaText\n } = _ref,\n pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n slots,\n slotProps: innerSlotProps,\n className,\n sx,\n format,\n formatDensity,\n enableAccessibleFieldDOMStructure,\n selectedSections,\n onSelectedSectionsChange,\n timezone,\n name,\n label,\n inputRef,\n readOnly,\n disabled,\n autoFocus,\n localeText,\n reduceAnimations\n } = props;\n const containerRef = React.useRef(null);\n const fieldRef = React.useRef(null);\n const labelId = useId();\n const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;\n const {\n open,\n actions,\n hasUIView,\n layoutProps,\n renderCurrentView,\n shouldRestoreFocus,\n fieldProps: pickerFieldProps,\n contextValue,\n ownerState\n } = usePicker(_extends({}, pickerParams, {\n props,\n fieldRef,\n autoFocusView: true,\n additionalViewProps: {},\n wrapperVariant: 'desktop'\n }));\n const InputAdornment = slots.inputAdornment ?? MuiInputAdornment;\n const _useSlotProps = useSlotProps({\n elementType: InputAdornment,\n externalSlotProps: innerSlotProps?.inputAdornment,\n additionalProps: {\n position: 'end'\n },\n ownerState: props\n }),\n inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const OpenPickerButton = slots.openPickerButton ?? IconButton;\n const _useSlotProps2 = useSlotProps({\n elementType: OpenPickerButton,\n externalSlotProps: innerSlotProps?.openPickerButton,\n additionalProps: {\n disabled: disabled || readOnly,\n onClick: open ? actions.onClose : actions.onOpen,\n 'aria-label': getOpenDialogAriaText(pickerFieldProps.value),\n edge: inputAdornmentProps.position\n },\n ownerState: props\n }),\n openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);\n const OpenPickerIcon = slots.openPickerIcon;\n const openPickerIconProps = useSlotProps({\n elementType: OpenPickerIcon,\n externalSlotProps: innerSlotProps?.openPickerIcon,\n ownerState\n });\n const Field = slots.field;\n const fieldProps = useSlotProps({\n elementType: Field,\n externalSlotProps: innerSlotProps?.field,\n additionalProps: _extends({}, pickerFieldProps, isToolbarHidden && {\n id: labelId\n }, {\n readOnly,\n disabled,\n className,\n sx,\n format,\n formatDensity,\n enableAccessibleFieldDOMStructure,\n selectedSections,\n onSelectedSectionsChange,\n timezone,\n label,\n name,\n autoFocus: autoFocus && !props.open,\n focused: open ? true : undefined\n }, inputRef ? {\n inputRef\n } : {}),\n ownerState: props\n });\n\n // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged\n if (hasUIView) {\n fieldProps.InputProps = _extends({}, fieldProps.InputProps, {\n ref: containerRef\n }, !props.disableOpenPicker && {\n [`${inputAdornmentProps.position}Adornment`]: /*#__PURE__*/_jsx(InputAdornment, _extends({}, inputAdornmentProps, {\n children: /*#__PURE__*/_jsx(OpenPickerButton, _extends({}, openPickerButtonProps, {\n children: /*#__PURE__*/_jsx(OpenPickerIcon, _extends({}, openPickerIconProps))\n }))\n }))\n });\n }\n const slotsForField = _extends({\n textField: slots.textField,\n clearIcon: slots.clearIcon,\n clearButton: slots.clearButton\n }, fieldProps.slots);\n const Layout = slots.layout ?? PickersLayout;\n let labelledById = labelId;\n if (isToolbarHidden) {\n if (label) {\n labelledById = `${labelId}-label`;\n } else {\n labelledById = undefined;\n }\n }\n const slotProps = _extends({}, innerSlotProps, {\n toolbar: _extends({}, innerSlotProps?.toolbar, {\n titleId: labelId\n }),\n popper: _extends({\n 'aria-labelledby': labelledById\n }, innerSlotProps?.popper)\n });\n const handleFieldRef = useForkRef(fieldRef, fieldProps.unstableFieldRef);\n const renderPicker = () => /*#__PURE__*/_jsxs(PickersProvider, {\n contextValue: contextValue,\n localeText: localeText,\n children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {\n slots: slotsForField,\n slotProps: slotProps,\n unstableFieldRef: handleFieldRef\n })), /*#__PURE__*/_jsx(PickersPopper, _extends({\n role: \"dialog\",\n placement: \"bottom-start\",\n anchorEl: containerRef.current\n }, actions, {\n open: open,\n slots: slots,\n slotProps: slotProps,\n shouldRestoreFocus: shouldRestoreFocus,\n reduceAnimations: reduceAnimations,\n children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps?.layout, {\n slots: slots,\n slotProps: slotProps,\n children: renderCurrentView()\n }))\n }))]\n });\n return {\n renderPicker\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { applyLocalizedDigits, cleanLeadingZeros, doesSectionFormatHaveLeadingZeros, getDateSectionConfigFromFormatToken, removeLocalizedDigits } from \"./useField.utils.js\";\nconst expandFormat = ({\n utils,\n format\n}) => {\n // Expand the provided format\n let formatExpansionOverflow = 10;\n let prevFormat = format;\n let nextFormat = utils.expandFormat(format);\n while (nextFormat !== prevFormat) {\n prevFormat = nextFormat;\n nextFormat = utils.expandFormat(prevFormat);\n formatExpansionOverflow -= 1;\n if (formatExpansionOverflow < 0) {\n throw new Error('MUI X: The format expansion seems to be in an infinite loop. Please open an issue with the format passed to the picker component.');\n }\n }\n return nextFormat;\n};\nconst getEscapedPartsFromFormat = ({\n utils,\n expandedFormat\n}) => {\n const escapedParts = [];\n const {\n start: startChar,\n end: endChar\n } = utils.escapedCharacters;\n const regExp = new RegExp(`(\\\\${startChar}[^\\\\${endChar}]*\\\\${endChar})+`, 'g');\n let match = null;\n // eslint-disable-next-line no-cond-assign\n while (match = regExp.exec(expandedFormat)) {\n escapedParts.push({\n start: match.index,\n end: regExp.lastIndex - 1\n });\n }\n return escapedParts;\n};\nconst getSectionPlaceholder = (utils, localeText, sectionConfig, sectionFormat) => {\n switch (sectionConfig.type) {\n case 'year':\n {\n return localeText.fieldYearPlaceholder({\n digitAmount: utils.formatByString(utils.date(undefined, 'default'), sectionFormat).length,\n format: sectionFormat\n });\n }\n case 'month':\n {\n return localeText.fieldMonthPlaceholder({\n contentType: sectionConfig.contentType,\n format: sectionFormat\n });\n }\n case 'day':\n {\n return localeText.fieldDayPlaceholder({\n format: sectionFormat\n });\n }\n case 'weekDay':\n {\n return localeText.fieldWeekDayPlaceholder({\n contentType: sectionConfig.contentType,\n format: sectionFormat\n });\n }\n case 'hours':\n {\n return localeText.fieldHoursPlaceholder({\n format: sectionFormat\n });\n }\n case 'minutes':\n {\n return localeText.fieldMinutesPlaceholder({\n format: sectionFormat\n });\n }\n case 'seconds':\n {\n return localeText.fieldSecondsPlaceholder({\n format: sectionFormat\n });\n }\n case 'meridiem':\n {\n return localeText.fieldMeridiemPlaceholder({\n format: sectionFormat\n });\n }\n default:\n {\n return sectionFormat;\n }\n }\n};\nconst createSection = ({\n utils,\n date,\n shouldRespectLeadingZeros,\n localeText,\n localizedDigits,\n now,\n token,\n startSeparator\n}) => {\n if (token === '') {\n throw new Error('MUI X: Should not call `commitToken` with an empty token');\n }\n const sectionConfig = getDateSectionConfigFromFormatToken(utils, token);\n const hasLeadingZerosInFormat = doesSectionFormatHaveLeadingZeros(utils, sectionConfig.contentType, sectionConfig.type, token);\n const hasLeadingZerosInInput = shouldRespectLeadingZeros ? hasLeadingZerosInFormat : sectionConfig.contentType === 'digit';\n const isValidDate = date != null && utils.isValid(date);\n let sectionValue = isValidDate ? utils.formatByString(date, token) : '';\n let maxLength = null;\n if (hasLeadingZerosInInput) {\n if (hasLeadingZerosInFormat) {\n maxLength = sectionValue === '' ? utils.formatByString(now, token).length : sectionValue.length;\n } else {\n if (sectionConfig.maxLength == null) {\n throw new Error(`MUI X: The token ${token} should have a 'maxDigitNumber' property on it's adapter`);\n }\n maxLength = sectionConfig.maxLength;\n if (isValidDate) {\n sectionValue = applyLocalizedDigits(cleanLeadingZeros(removeLocalizedDigits(sectionValue, localizedDigits), maxLength), localizedDigits);\n }\n }\n }\n return _extends({}, sectionConfig, {\n format: token,\n maxLength,\n value: sectionValue,\n placeholder: getSectionPlaceholder(utils, localeText, sectionConfig, token),\n hasLeadingZerosInFormat,\n hasLeadingZerosInInput,\n startSeparator,\n endSeparator: '',\n modified: false\n });\n};\nconst buildSections = params => {\n const {\n utils,\n expandedFormat,\n escapedParts\n } = params;\n const now = utils.date(undefined);\n const sections = [];\n let startSeparator = '';\n\n // This RegExp tests if the beginning of a string corresponds to a supported token\n const validTokens = Object.keys(utils.formatTokenMap).sort((a, b) => b.length - a.length); // Sort to put longest word first\n\n const regExpFirstWordInFormat = /^([a-zA-Z]+)/;\n const regExpWordOnlyComposedOfTokens = new RegExp(`^(${validTokens.join('|')})*$`);\n const regExpFirstTokenInWord = new RegExp(`^(${validTokens.join('|')})`);\n const getEscapedPartOfCurrentChar = i => escapedParts.find(escapeIndex => escapeIndex.start <= i && escapeIndex.end >= i);\n let i = 0;\n while (i < expandedFormat.length) {\n const escapedPartOfCurrentChar = getEscapedPartOfCurrentChar(i);\n const isEscapedChar = escapedPartOfCurrentChar != null;\n const firstWordInFormat = regExpFirstWordInFormat.exec(expandedFormat.slice(i))?.[1];\n\n // The first word in the format is only composed of tokens.\n // We extract those tokens to create a new sections.\n if (!isEscapedChar && firstWordInFormat != null && regExpWordOnlyComposedOfTokens.test(firstWordInFormat)) {\n let word = firstWordInFormat;\n while (word.length > 0) {\n const firstWord = regExpFirstTokenInWord.exec(word)[1];\n word = word.slice(firstWord.length);\n sections.push(createSection(_extends({}, params, {\n now,\n token: firstWord,\n startSeparator\n })));\n startSeparator = '';\n }\n i += firstWordInFormat.length;\n }\n // The remaining format does not start with a token,\n // We take the first character and add it to the current section's end separator.\n else {\n const char = expandedFormat[i];\n\n // If we are on the opening or closing character of an escaped part of the format,\n // Then we ignore this character.\n const isEscapeBoundary = isEscapedChar && escapedPartOfCurrentChar?.start === i || escapedPartOfCurrentChar?.end === i;\n if (!isEscapeBoundary) {\n if (sections.length === 0) {\n startSeparator += char;\n } else {\n sections[sections.length - 1].endSeparator += char;\n }\n }\n i += 1;\n }\n }\n if (sections.length === 0 && startSeparator.length > 0) {\n sections.push({\n type: 'empty',\n contentType: 'letter',\n maxLength: null,\n format: '',\n value: '',\n placeholder: '',\n hasLeadingZerosInFormat: false,\n hasLeadingZerosInInput: false,\n startSeparator,\n endSeparator: '',\n modified: false\n });\n }\n return sections;\n};\nconst postProcessSections = ({\n isRtl,\n formatDensity,\n sections\n}) => {\n return sections.map(section => {\n const cleanSeparator = separator => {\n let cleanedSeparator = separator;\n if (isRtl && cleanedSeparator !== null && cleanedSeparator.includes(' ')) {\n cleanedSeparator = `\\u2069${cleanedSeparator}\\u2066`;\n }\n if (formatDensity === 'spacious' && ['/', '.', '-'].includes(cleanedSeparator)) {\n cleanedSeparator = ` ${cleanedSeparator} `;\n }\n return cleanedSeparator;\n };\n section.startSeparator = cleanSeparator(section.startSeparator);\n section.endSeparator = cleanSeparator(section.endSeparator);\n return section;\n });\n};\nexport const buildSectionsFromFormat = params => {\n let expandedFormat = expandFormat(params);\n if (params.isRtl && params.enableAccessibleFieldDOMStructure) {\n expandedFormat = expandedFormat.split(' ').reverse().join(' ');\n }\n const escapedParts = getEscapedPartsFromFormat(_extends({}, params, {\n expandedFormat\n }));\n const sections = buildSections(_extends({}, params, {\n expandedFormat,\n escapedParts\n }));\n return postProcessSections(_extends({}, params, {\n sections\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useControlled from '@mui/utils/useControlled';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { usePickersTranslations } from \"../../../hooks/usePickersTranslations.js\";\nimport { useUtils, useLocalizationContext } from \"../useUtils.js\";\nimport { mergeDateIntoReferenceDate, getSectionsBoundaries, validateSections, getDateFromDateSections, parseSelectedSections, getLocalizedDigits } from \"./useField.utils.js\";\nimport { buildSectionsFromFormat } from \"./buildSectionsFromFormat.js\";\nimport { useValueWithTimezone } from \"../useValueWithTimezone.js\";\nimport { getSectionTypeGranularity } from \"../../utils/getDefaultReferenceDate.js\";\nexport const useFieldState = params => {\n const utils = useUtils();\n const translations = usePickersTranslations();\n const adapter = useLocalizationContext();\n const isRtl = useRtl();\n const {\n valueManager,\n fieldValueManager,\n valueType,\n validator,\n internalProps,\n internalProps: {\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n onChange,\n format,\n formatDensity = 'dense',\n selectedSections: selectedSectionsProp,\n onSelectedSectionsChange,\n shouldRespectLeadingZeros = false,\n timezone: timezoneProp,\n enableAccessibleFieldDOMStructure = false\n }\n } = params;\n const {\n timezone,\n value: valueFromTheOutside,\n handleValueChange\n } = useValueWithTimezone({\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager\n });\n const localizedDigits = React.useMemo(() => getLocalizedDigits(utils), [utils]);\n const sectionsValueBoundaries = React.useMemo(() => getSectionsBoundaries(utils, localizedDigits, timezone), [utils, localizedDigits, timezone]);\n const getSectionsFromValue = React.useCallback((value, fallbackSections = null) => fieldValueManager.getSectionsFromValue(utils, value, fallbackSections, date => buildSectionsFromFormat({\n utils,\n localeText: translations,\n localizedDigits,\n format,\n date,\n formatDensity,\n shouldRespectLeadingZeros,\n enableAccessibleFieldDOMStructure,\n isRtl\n })), [fieldValueManager, format, translations, localizedDigits, isRtl, shouldRespectLeadingZeros, utils, formatDensity, enableAccessibleFieldDOMStructure]);\n const [state, setState] = React.useState(() => {\n const sections = getSectionsFromValue(valueFromTheOutside);\n validateSections(sections, valueType);\n const stateWithoutReferenceDate = {\n sections,\n value: valueFromTheOutside,\n referenceValue: valueManager.emptyValue,\n tempValueStrAndroid: null\n };\n const granularity = getSectionTypeGranularity(sections);\n const referenceValue = valueManager.getInitialReferenceValue({\n referenceDate: referenceDateProp,\n value: valueFromTheOutside,\n utils,\n props: internalProps,\n granularity,\n timezone\n });\n return _extends({}, stateWithoutReferenceDate, {\n referenceValue\n });\n });\n const [selectedSections, innerSetSelectedSections] = useControlled({\n controlled: selectedSectionsProp,\n default: null,\n name: 'useField',\n state: 'selectedSections'\n });\n const setSelectedSections = newSelectedSections => {\n innerSetSelectedSections(newSelectedSections);\n onSelectedSectionsChange?.(newSelectedSections);\n };\n const parsedSelectedSections = React.useMemo(() => parseSelectedSections(selectedSections, state.sections), [selectedSections, state.sections]);\n const activeSectionIndex = parsedSelectedSections === 'all' ? 0 : parsedSelectedSections;\n const publishValue = ({\n value,\n referenceValue,\n sections\n }) => {\n setState(prevState => _extends({}, prevState, {\n sections,\n value,\n referenceValue,\n tempValueStrAndroid: null\n }));\n if (valueManager.areValuesEqual(utils, state.value, value)) {\n return;\n }\n const context = {\n validationError: validator({\n adapter,\n value,\n timezone,\n props: internalProps\n })\n };\n handleValueChange(value, context);\n };\n const setSectionValue = (sectionIndex, newSectionValue) => {\n const newSections = [...state.sections];\n newSections[sectionIndex] = _extends({}, newSections[sectionIndex], {\n value: newSectionValue,\n modified: true\n });\n return newSections;\n };\n const clearValue = () => {\n publishValue({\n value: valueManager.emptyValue,\n referenceValue: state.referenceValue,\n sections: getSectionsFromValue(valueManager.emptyValue)\n });\n };\n const clearActiveSection = () => {\n if (activeSectionIndex == null) {\n return;\n }\n const activeSection = state.sections[activeSectionIndex];\n const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);\n const nonEmptySectionCountBefore = activeDateManager.getSections(state.sections).filter(section => section.value !== '').length;\n const hasNoOtherNonEmptySections = nonEmptySectionCountBefore === (activeSection.value === '' ? 0 : 1);\n const newSections = setSectionValue(activeSectionIndex, '');\n const newActiveDate = hasNoOtherNonEmptySections ? null : utils.getInvalidDate();\n const newValues = activeDateManager.getNewValuesFromNewActiveDate(newActiveDate);\n publishValue(_extends({}, newValues, {\n sections: newSections\n }));\n };\n const updateValueFromValueStr = valueStr => {\n const parseDateStr = (dateStr, referenceDate) => {\n const date = utils.parse(dateStr, format);\n if (date == null || !utils.isValid(date)) {\n return null;\n }\n const sections = buildSectionsFromFormat({\n utils,\n localeText: translations,\n localizedDigits,\n format,\n date,\n formatDensity,\n shouldRespectLeadingZeros,\n enableAccessibleFieldDOMStructure,\n isRtl\n });\n return mergeDateIntoReferenceDate(utils, date, sections, referenceDate, false);\n };\n const newValue = fieldValueManager.parseValueStr(valueStr, state.referenceValue, parseDateStr);\n const newReferenceValue = fieldValueManager.updateReferenceValue(utils, newValue, state.referenceValue);\n publishValue({\n value: newValue,\n referenceValue: newReferenceValue,\n sections: getSectionsFromValue(newValue, state.sections)\n });\n };\n const updateSectionValue = ({\n activeSection,\n newSectionValue,\n shouldGoToNextSection\n }) => {\n /**\n * 1. Decide which section should be focused\n */\n if (shouldGoToNextSection && activeSectionIndex < state.sections.length - 1) {\n setSelectedSections(activeSectionIndex + 1);\n }\n\n /**\n * 2. Try to build a valid date from the new section value\n */\n const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);\n const newSections = setSectionValue(activeSectionIndex, newSectionValue);\n const newActiveDateSections = activeDateManager.getSections(newSections);\n const newActiveDate = getDateFromDateSections(utils, newActiveDateSections, localizedDigits);\n let values;\n let shouldPublish;\n\n /**\n * If the new date is valid,\n * Then we merge the value of the modified sections into the reference date.\n * This makes sure that we don't lose some information of the initial date (like the time on a date field).\n */\n if (newActiveDate != null && utils.isValid(newActiveDate)) {\n const mergedDate = mergeDateIntoReferenceDate(utils, newActiveDate, newActiveDateSections, activeDateManager.referenceDate, true);\n values = activeDateManager.getNewValuesFromNewActiveDate(mergedDate);\n shouldPublish = true;\n } else {\n values = activeDateManager.getNewValuesFromNewActiveDate(newActiveDate);\n shouldPublish = (newActiveDate != null && !utils.isValid(newActiveDate)) !== (activeDateManager.date != null && !utils.isValid(activeDateManager.date));\n }\n\n /**\n * Publish or update the internal state with the new value and sections.\n */\n if (shouldPublish) {\n return publishValue(_extends({}, values, {\n sections: newSections\n }));\n }\n return setState(prevState => _extends({}, prevState, values, {\n sections: newSections,\n tempValueStrAndroid: null\n }));\n };\n const setTempAndroidValueStr = tempValueStrAndroid => setState(prev => _extends({}, prev, {\n tempValueStrAndroid\n }));\n React.useEffect(() => {\n const sections = getSectionsFromValue(state.value);\n validateSections(sections, valueType);\n setState(prevState => _extends({}, prevState, {\n sections\n }));\n }, [format, utils.locale, isRtl]); // eslint-disable-line react-hooks/exhaustive-deps\n\n React.useEffect(() => {\n let shouldUpdate;\n if (!valueManager.areValuesEqual(utils, state.value, valueFromTheOutside)) {\n shouldUpdate = true;\n } else {\n shouldUpdate = valueManager.getTimezone(utils, state.value) !== valueManager.getTimezone(utils, valueFromTheOutside);\n }\n if (shouldUpdate) {\n setState(prevState => _extends({}, prevState, {\n value: valueFromTheOutside,\n referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, prevState.referenceValue),\n sections: getSectionsFromValue(valueFromTheOutside)\n }));\n }\n }, [valueFromTheOutside]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n state,\n activeSectionIndex,\n parsedSelectedSections,\n setSelectedSections,\n clearValue,\n clearActiveSection,\n updateSectionValue,\n updateValueFromValueStr,\n setTempAndroidValueStr,\n getSectionsFromValue,\n sectionsValueBoundaries,\n localizedDigits,\n timezone\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useUtils } from \"../useUtils.js\";\nimport { changeSectionValueFormat, cleanDigitSectionValue, doesSectionFormatHaveLeadingZeros, getDateSectionConfigFromFormatToken, getDaysInWeekStr, getLetterEditingOptions, applyLocalizedDigits, removeLocalizedDigits, isStringNumber } from \"./useField.utils.js\";\n\n/**\n * The letter editing and the numeric editing each define a `CharacterEditingApplier`.\n * This function decides what the new section value should be and if the focus should switch to the next section.\n *\n * If it returns `null`, then the section value is not updated and the focus does not move.\n */\n\n/**\n * Function called by `applyQuery` which decides:\n * - what is the new section value ?\n * - should the query used to get this value be stored for the next key press ?\n *\n * If it returns `{ sectionValue: string; shouldGoToNextSection: boolean }`,\n * Then we store the query and update the section with the new value.\n *\n * If it returns `{ saveQuery: true` },\n * Then we store the query and don't update the section.\n *\n * If it returns `{ saveQuery: false },\n * Then we do nothing.\n */\n\nconst QUERY_LIFE_DURATION_MS = 5000;\nconst isQueryResponseWithoutValue = response => response.saveQuery != null;\n\n/**\n * Update the active section value when the user pressed a key that is not a navigation key (arrow key for example).\n * This hook has two main editing behaviors\n *\n * 1. The numeric editing when the user presses a digit\n * 2. The letter editing when the user presses another key\n */\nexport const useFieldCharacterEditing = ({\n sections,\n updateSectionValue,\n sectionsValueBoundaries,\n localizedDigits,\n setTempAndroidValueStr,\n timezone\n}) => {\n const utils = useUtils();\n const [query, setQuery] = React.useState(null);\n const resetQuery = useEventCallback(() => setQuery(null));\n React.useEffect(() => {\n if (query != null && sections[query.sectionIndex]?.type !== query.sectionType) {\n resetQuery();\n }\n }, [sections, query, resetQuery]);\n React.useEffect(() => {\n if (query != null) {\n const timeout = setTimeout(() => resetQuery(), QUERY_LIFE_DURATION_MS);\n return () => {\n clearTimeout(timeout);\n };\n }\n return () => {};\n }, [query, resetQuery]);\n const applyQuery = ({\n keyPressed,\n sectionIndex\n }, getFirstSectionValueMatchingWithQuery, isValidQueryValue) => {\n const cleanKeyPressed = keyPressed.toLowerCase();\n const activeSection = sections[sectionIndex];\n\n // The current query targets the section being editing\n // We can try to concatenate the value\n if (query != null && (!isValidQueryValue || isValidQueryValue(query.value)) && query.sectionIndex === sectionIndex) {\n const concatenatedQueryValue = `${query.value}${cleanKeyPressed}`;\n const queryResponse = getFirstSectionValueMatchingWithQuery(concatenatedQueryValue, activeSection);\n if (!isQueryResponseWithoutValue(queryResponse)) {\n setQuery({\n sectionIndex,\n value: concatenatedQueryValue,\n sectionType: activeSection.type\n });\n return queryResponse;\n }\n }\n const queryResponse = getFirstSectionValueMatchingWithQuery(cleanKeyPressed, activeSection);\n if (isQueryResponseWithoutValue(queryResponse) && !queryResponse.saveQuery) {\n resetQuery();\n return null;\n }\n setQuery({\n sectionIndex,\n value: cleanKeyPressed,\n sectionType: activeSection.type\n });\n if (isQueryResponseWithoutValue(queryResponse)) {\n return null;\n }\n return queryResponse;\n };\n const applyLetterEditing = params => {\n const findMatchingOptions = (format, options, queryValue) => {\n const matchingValues = options.filter(option => option.toLowerCase().startsWith(queryValue));\n if (matchingValues.length === 0) {\n return {\n saveQuery: false\n };\n }\n return {\n sectionValue: matchingValues[0],\n shouldGoToNextSection: matchingValues.length === 1\n };\n };\n const testQueryOnFormatAndFallbackFormat = (queryValue, activeSection, fallbackFormat, formatFallbackValue) => {\n const getOptions = format => getLetterEditingOptions(utils, timezone, activeSection.type, format);\n if (activeSection.contentType === 'letter') {\n return findMatchingOptions(activeSection.format, getOptions(activeSection.format), queryValue);\n }\n\n // When editing a digit-format month / weekDay and the user presses a letter,\n // We can support the letter editing by using the letter-format month / weekDay and re-formatting the result.\n // We just have to make sure that the default month / weekDay format is a letter format,\n if (fallbackFormat && formatFallbackValue != null && getDateSectionConfigFromFormatToken(utils, fallbackFormat).contentType === 'letter') {\n const fallbackOptions = getOptions(fallbackFormat);\n const response = findMatchingOptions(fallbackFormat, fallbackOptions, queryValue);\n if (isQueryResponseWithoutValue(response)) {\n return {\n saveQuery: false\n };\n }\n return _extends({}, response, {\n sectionValue: formatFallbackValue(response.sectionValue, fallbackOptions)\n });\n }\n return {\n saveQuery: false\n };\n };\n const getFirstSectionValueMatchingWithQuery = (queryValue, activeSection) => {\n switch (activeSection.type) {\n case 'month':\n {\n const formatFallbackValue = fallbackValue => changeSectionValueFormat(utils, fallbackValue, utils.formats.month, activeSection.format);\n return testQueryOnFormatAndFallbackFormat(queryValue, activeSection, utils.formats.month, formatFallbackValue);\n }\n case 'weekDay':\n {\n const formatFallbackValue = (fallbackValue, fallbackOptions) => fallbackOptions.indexOf(fallbackValue).toString();\n return testQueryOnFormatAndFallbackFormat(queryValue, activeSection, utils.formats.weekday, formatFallbackValue);\n }\n case 'meridiem':\n {\n return testQueryOnFormatAndFallbackFormat(queryValue, activeSection);\n }\n default:\n {\n return {\n saveQuery: false\n };\n }\n }\n };\n return applyQuery(params, getFirstSectionValueMatchingWithQuery);\n };\n const applyNumericEditing = params => {\n const getNewSectionValue = (queryValue, section) => {\n const cleanQueryValue = removeLocalizedDigits(queryValue, localizedDigits);\n const queryValueNumber = Number(cleanQueryValue);\n const sectionBoundaries = sectionsValueBoundaries[section.type]({\n currentDate: null,\n format: section.format,\n contentType: section.contentType\n });\n if (queryValueNumber > sectionBoundaries.maximum) {\n return {\n saveQuery: false\n };\n }\n\n // If the user types `0` on a month section,\n // It is below the minimum, but we want to store the `0` in the query,\n // So that when he pressed `1`, it will store `01` and move to the next section.\n if (queryValueNumber < sectionBoundaries.minimum) {\n return {\n saveQuery: true\n };\n }\n const shouldGoToNextSection = queryValueNumber * 10 > sectionBoundaries.maximum || cleanQueryValue.length === sectionBoundaries.maximum.toString().length;\n const newSectionValue = cleanDigitSectionValue(utils, queryValueNumber, sectionBoundaries, localizedDigits, section);\n return {\n sectionValue: newSectionValue,\n shouldGoToNextSection\n };\n };\n const getFirstSectionValueMatchingWithQuery = (queryValue, activeSection) => {\n if (activeSection.contentType === 'digit' || activeSection.contentType === 'digit-with-letter') {\n return getNewSectionValue(queryValue, activeSection);\n }\n\n // When editing a letter-format month and the user presses a digit,\n // We can support the numeric editing by using the digit-format month and re-formatting the result.\n if (activeSection.type === 'month') {\n const hasLeadingZerosInFormat = doesSectionFormatHaveLeadingZeros(utils, 'digit', 'month', 'MM');\n const response = getNewSectionValue(queryValue, {\n type: activeSection.type,\n format: 'MM',\n hasLeadingZerosInFormat,\n hasLeadingZerosInInput: true,\n contentType: 'digit',\n maxLength: 2\n });\n if (isQueryResponseWithoutValue(response)) {\n return response;\n }\n const formattedValue = changeSectionValueFormat(utils, response.sectionValue, 'MM', activeSection.format);\n return _extends({}, response, {\n sectionValue: formattedValue\n });\n }\n\n // When editing a letter-format weekDay and the user presses a digit,\n // We can support the numeric editing by returning the nth day in the week day array.\n if (activeSection.type === 'weekDay') {\n const response = getNewSectionValue(queryValue, activeSection);\n if (isQueryResponseWithoutValue(response)) {\n return response;\n }\n const formattedValue = getDaysInWeekStr(utils, activeSection.format)[Number(response.sectionValue) - 1];\n return _extends({}, response, {\n sectionValue: formattedValue\n });\n }\n return {\n saveQuery: false\n };\n };\n return applyQuery(params, getFirstSectionValueMatchingWithQuery, queryValue => isStringNumber(queryValue, localizedDigits));\n };\n const applyCharacterEditing = useEventCallback(params => {\n const activeSection = sections[params.sectionIndex];\n const isNumericEditing = isStringNumber(params.keyPressed, localizedDigits);\n const response = isNumericEditing ? applyNumericEditing(_extends({}, params, {\n keyPressed: applyLocalizedDigits(params.keyPressed, localizedDigits)\n })) : applyLetterEditing(params);\n if (response == null) {\n setTempAndroidValueStr(null);\n return;\n }\n updateSectionValue({\n activeSection,\n newSectionValue: response.sectionValue,\n shouldGoToNextSection: response.shouldGoToNextSection\n });\n });\n return {\n applyCharacterEditing,\n resetCharacterQuery: resetQuery\n };\n};","import * as React from 'react';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport useId from '@mui/utils/useId';\nimport { getSectionValueNow, getSectionValueText, parseSelectedSections } from \"./useField.utils.js\";\nimport { getActiveElement } from \"../../utils/utils.js\";\nimport { usePickersTranslations } from \"../../../hooks/usePickersTranslations.js\";\nimport { useUtils } from \"../useUtils.js\";\nexport const useFieldV7TextField = params => {\n const {\n internalProps: {\n disabled,\n readOnly = false\n },\n forwardedProps: {\n sectionListRef: inSectionListRef,\n onBlur,\n onClick,\n onFocus,\n onInput,\n onPaste,\n focused: focusedProp,\n autoFocus = false\n },\n fieldValueManager,\n applyCharacterEditing,\n resetCharacterQuery,\n setSelectedSections,\n parsedSelectedSections,\n state,\n clearActiveSection,\n clearValue,\n updateSectionValue,\n updateValueFromValueStr,\n sectionOrder,\n areAllSectionsEmpty,\n sectionsValueBoundaries\n } = params;\n const sectionListRef = React.useRef(null);\n const handleSectionListRef = useForkRef(inSectionListRef, sectionListRef);\n const translations = usePickersTranslations();\n const utils = useUtils();\n const id = useId();\n const [focused, setFocused] = React.useState(false);\n const interactions = React.useMemo(() => ({\n syncSelectionToDOM: () => {\n if (!sectionListRef.current) {\n return;\n }\n const selection = document.getSelection();\n if (!selection) {\n return;\n }\n if (parsedSelectedSections == null) {\n // If the selection contains an element inside the field, we reset it.\n if (selection.rangeCount > 0 && sectionListRef.current.getRoot().contains(selection.getRangeAt(0).startContainer)) {\n selection.removeAllRanges();\n }\n if (focused) {\n sectionListRef.current.getRoot().blur();\n }\n return;\n }\n\n // On multi input range pickers we want to update selection range only for the active input\n if (!sectionListRef.current.getRoot().contains(getActiveElement(document))) {\n return;\n }\n const range = new window.Range();\n let target;\n if (parsedSelectedSections === 'all') {\n target = sectionListRef.current.getRoot();\n } else {\n const section = state.sections[parsedSelectedSections];\n if (section.type === 'empty') {\n target = sectionListRef.current.getSectionContainer(parsedSelectedSections);\n } else {\n target = sectionListRef.current.getSectionContent(parsedSelectedSections);\n }\n }\n range.selectNodeContents(target);\n target.focus();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n getActiveSectionIndexFromDOM: () => {\n const activeElement = getActiveElement(document);\n if (!activeElement || !sectionListRef.current || !sectionListRef.current.getRoot().contains(activeElement)) {\n return null;\n }\n return sectionListRef.current.getSectionIndexFromDOMElement(activeElement);\n },\n focusField: (newSelectedSections = 0) => {\n if (!sectionListRef.current) {\n return;\n }\n const newParsedSelectedSections = parseSelectedSections(newSelectedSections, state.sections);\n setFocused(true);\n sectionListRef.current.getSectionContent(newParsedSelectedSections).focus();\n },\n setSelectedSections: newSelectedSections => {\n if (!sectionListRef.current) {\n return;\n }\n const newParsedSelectedSections = parseSelectedSections(newSelectedSections, state.sections);\n const newActiveSectionIndex = newParsedSelectedSections === 'all' ? 0 : newParsedSelectedSections;\n setFocused(newActiveSectionIndex !== null);\n setSelectedSections(newSelectedSections);\n },\n isFieldFocused: () => {\n const activeElement = getActiveElement(document);\n return !!sectionListRef.current && sectionListRef.current.getRoot().contains(activeElement);\n }\n }), [parsedSelectedSections, setSelectedSections, state.sections, focused]);\n\n /**\n * If a section content has been updated with a value we don't want to keep,\n * Then we need to imperatively revert it (we can't let React do it because the value did not change in his internal representation).\n */\n const revertDOMSectionChange = useEventCallback(sectionIndex => {\n if (!sectionListRef.current) {\n return;\n }\n const section = state.sections[sectionIndex];\n sectionListRef.current.getSectionContent(sectionIndex).innerHTML = section.value || section.placeholder;\n interactions.syncSelectionToDOM();\n });\n const handleContainerClick = useEventCallback((event, ...args) => {\n // The click event on the clear button would propagate to the input, trigger this handler and result in a wrong section selection.\n // We avoid this by checking if the call of `handleContainerClick` is actually intended, or a side effect.\n if (event.isDefaultPrevented() || !sectionListRef.current) {\n return;\n }\n setFocused(true);\n onClick?.(event, ...args);\n if (parsedSelectedSections === 'all') {\n setTimeout(() => {\n const cursorPosition = document.getSelection().getRangeAt(0).startOffset;\n if (cursorPosition === 0) {\n setSelectedSections(sectionOrder.startIndex);\n return;\n }\n let sectionIndex = 0;\n let cursorOnStartOfSection = 0;\n while (cursorOnStartOfSection < cursorPosition && sectionIndex < state.sections.length) {\n const section = state.sections[sectionIndex];\n sectionIndex += 1;\n cursorOnStartOfSection += `${section.startSeparator}${section.value || section.placeholder}${section.endSeparator}`.length;\n }\n setSelectedSections(sectionIndex - 1);\n });\n } else if (!focused) {\n setFocused(true);\n setSelectedSections(sectionOrder.startIndex);\n } else {\n const hasClickedOnASection = sectionListRef.current.getRoot().contains(event.target);\n if (!hasClickedOnASection) {\n setSelectedSections(sectionOrder.startIndex);\n }\n }\n });\n const handleContainerInput = useEventCallback(event => {\n onInput?.(event);\n if (!sectionListRef.current || parsedSelectedSections !== 'all') {\n return;\n }\n const target = event.target;\n const keyPressed = target.textContent ?? '';\n sectionListRef.current.getRoot().innerHTML = state.sections.map(section => `${section.startSeparator}${section.value || section.placeholder}${section.endSeparator}`).join('');\n interactions.syncSelectionToDOM();\n if (keyPressed.length === 0 || keyPressed.charCodeAt(0) === 10) {\n resetCharacterQuery();\n clearValue();\n setSelectedSections('all');\n } else if (keyPressed.length > 1) {\n updateValueFromValueStr(keyPressed);\n } else {\n applyCharacterEditing({\n keyPressed,\n sectionIndex: 0\n });\n }\n });\n const handleContainerPaste = useEventCallback(event => {\n onPaste?.(event);\n if (readOnly || parsedSelectedSections !== 'all') {\n event.preventDefault();\n return;\n }\n const pastedValue = event.clipboardData.getData('text');\n event.preventDefault();\n resetCharacterQuery();\n updateValueFromValueStr(pastedValue);\n });\n const handleContainerFocus = useEventCallback((...args) => {\n onFocus?.(...args);\n if (focused || !sectionListRef.current) {\n return;\n }\n setFocused(true);\n const isFocusInsideASection = sectionListRef.current.getSectionIndexFromDOMElement(getActiveElement(document)) != null;\n if (!isFocusInsideASection) {\n setSelectedSections(sectionOrder.startIndex);\n }\n });\n const handleContainerBlur = useEventCallback((...args) => {\n onBlur?.(...args);\n setTimeout(() => {\n if (!sectionListRef.current) {\n return;\n }\n const activeElement = getActiveElement(document);\n const shouldBlur = !sectionListRef.current.getRoot().contains(activeElement);\n if (shouldBlur) {\n setFocused(false);\n setSelectedSections(null);\n }\n });\n });\n const getInputContainerClickHandler = useEventCallback(sectionIndex => event => {\n // The click event on the clear button would propagate to the input, trigger this handler and result in a wrong section selection.\n // We avoid this by checking if the call to this function is actually intended, or a side effect.\n if (event.isDefaultPrevented()) {\n return;\n }\n setSelectedSections(sectionIndex);\n });\n const handleInputContentMouseUp = useEventCallback(event => {\n // Without this, the browser will remove the selected when clicking inside an already-selected section.\n event.preventDefault();\n });\n const getInputContentFocusHandler = useEventCallback(sectionIndex => () => {\n setSelectedSections(sectionIndex);\n });\n const handleInputContentPaste = useEventCallback(event => {\n // prevent default to avoid the input `onInput` handler being called\n event.preventDefault();\n if (readOnly || disabled || typeof parsedSelectedSections !== 'number') {\n return;\n }\n const activeSection = state.sections[parsedSelectedSections];\n const pastedValue = event.clipboardData.getData('text');\n const lettersOnly = /^[a-zA-Z]+$/.test(pastedValue);\n const digitsOnly = /^[0-9]+$/.test(pastedValue);\n const digitsAndLetterOnly = /^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(pastedValue);\n const isValidPastedValue = activeSection.contentType === 'letter' && lettersOnly || activeSection.contentType === 'digit' && digitsOnly || activeSection.contentType === 'digit-with-letter' && digitsAndLetterOnly;\n if (isValidPastedValue) {\n resetCharacterQuery();\n updateSectionValue({\n activeSection,\n newSectionValue: pastedValue,\n shouldGoToNextSection: true\n });\n }\n // If the pasted value corresponds to a single section, but not the expected type, we skip the modification\n else if (!lettersOnly && !digitsOnly) {\n resetCharacterQuery();\n updateValueFromValueStr(pastedValue);\n }\n });\n const handleInputContentDragOver = useEventCallback(event => {\n event.preventDefault();\n event.dataTransfer.dropEffect = 'none';\n });\n const handleInputContentInput = useEventCallback(event => {\n if (!sectionListRef.current) {\n return;\n }\n const target = event.target;\n const keyPressed = target.textContent ?? '';\n const sectionIndex = sectionListRef.current.getSectionIndexFromDOMElement(target);\n const section = state.sections[sectionIndex];\n if (readOnly || !sectionListRef.current) {\n revertDOMSectionChange(sectionIndex);\n return;\n }\n if (keyPressed.length === 0) {\n if (section.value === '') {\n revertDOMSectionChange(sectionIndex);\n return;\n }\n const inputType = event.nativeEvent.inputType;\n if (inputType === 'insertParagraph' || inputType === 'insertLineBreak') {\n revertDOMSectionChange(sectionIndex);\n return;\n }\n resetCharacterQuery();\n clearActiveSection();\n return;\n }\n applyCharacterEditing({\n keyPressed,\n sectionIndex\n });\n\n // The DOM value needs to remain the one React is expecting.\n revertDOMSectionChange(sectionIndex);\n });\n useEnhancedEffect(() => {\n if (!focused || !sectionListRef.current) {\n return;\n }\n if (parsedSelectedSections === 'all') {\n sectionListRef.current.getRoot().focus();\n } else if (typeof parsedSelectedSections === 'number') {\n const domElement = sectionListRef.current.getSectionContent(parsedSelectedSections);\n if (domElement) {\n domElement.focus();\n }\n }\n }, [parsedSelectedSections, focused]);\n const sectionBoundaries = React.useMemo(() => {\n return state.sections.reduce((acc, next) => {\n acc[next.type] = sectionsValueBoundaries[next.type]({\n currentDate: null,\n contentType: next.contentType,\n format: next.format\n });\n return acc;\n }, {});\n }, [sectionsValueBoundaries, state.sections]);\n const isContainerEditable = parsedSelectedSections === 'all';\n const elements = React.useMemo(() => {\n return state.sections.map((section, index) => {\n const isEditable = !isContainerEditable && !disabled && !readOnly;\n return {\n container: {\n 'data-sectionindex': index,\n onClick: getInputContainerClickHandler(index)\n },\n content: {\n tabIndex: isContainerEditable || index > 0 ? -1 : 0,\n contentEditable: !isContainerEditable && !disabled && !readOnly,\n role: 'spinbutton',\n id: `${id}-${section.type}`,\n 'aria-labelledby': `${id}-${section.type}`,\n 'aria-readonly': readOnly,\n 'aria-valuenow': getSectionValueNow(section, utils),\n 'aria-valuemin': sectionBoundaries[section.type].minimum,\n 'aria-valuemax': sectionBoundaries[section.type].maximum,\n 'aria-valuetext': section.value ? getSectionValueText(section, utils) : translations.empty,\n 'aria-label': translations[section.type],\n 'aria-disabled': disabled,\n spellCheck: isEditable ? false : undefined,\n autoCapitalize: isEditable ? 'off' : undefined,\n autoCorrect: isEditable ? 'off' : undefined,\n [parseInt(React.version, 10) >= 17 ? 'enterKeyHint' : 'enterkeyhint']: isEditable ? 'next' : undefined,\n children: section.value || section.placeholder,\n onInput: handleInputContentInput,\n onPaste: handleInputContentPaste,\n onFocus: getInputContentFocusHandler(index),\n onDragOver: handleInputContentDragOver,\n onMouseUp: handleInputContentMouseUp,\n inputMode: section.contentType === 'letter' ? 'text' : 'numeric'\n },\n before: {\n children: section.startSeparator\n },\n after: {\n children: section.endSeparator\n }\n };\n });\n }, [state.sections, getInputContentFocusHandler, handleInputContentPaste, handleInputContentDragOver, handleInputContentInput, getInputContainerClickHandler, handleInputContentMouseUp, disabled, readOnly, isContainerEditable, translations, utils, sectionBoundaries, id]);\n const handleValueStrChange = useEventCallback(event => {\n updateValueFromValueStr(event.target.value);\n });\n const valueStr = React.useMemo(() => areAllSectionsEmpty ? '' : fieldValueManager.getV7HiddenInputValueFromSections(state.sections), [areAllSectionsEmpty, state.sections, fieldValueManager]);\n React.useEffect(() => {\n if (sectionListRef.current == null) {\n throw new Error(['MUI X: The `sectionListRef` prop has not been initialized by `PickersSectionList`', 'You probably tried to pass a component to the `textField` slot that contains an `` element instead of a `PickersSectionList`.', '', 'If you want to keep using an `` HTML element for the editing, please remove the `enableAccessibleFieldDOMStructure` prop from your picker or field component:', '', '', '', 'Learn more about the field accessible DOM structure on the MUI documentation: https://mui.com/x/react-date-pickers/fields/#fields-to-edit-a-single-element'].join('\\n'));\n }\n if (autoFocus && sectionListRef.current) {\n sectionListRef.current.getSectionContent(sectionOrder.startIndex).focus();\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n interactions,\n returnedValue: {\n // Forwarded\n autoFocus,\n readOnly,\n focused: focusedProp ?? focused,\n sectionListRef: handleSectionListRef,\n onBlur: handleContainerBlur,\n onClick: handleContainerClick,\n onFocus: handleContainerFocus,\n onInput: handleContainerInput,\n onPaste: handleContainerPaste,\n // Additional\n enableAccessibleFieldDOMStructure: true,\n elements,\n // TODO v7: Try to set to undefined when there is a section selected.\n tabIndex: parsedSelectedSections === 0 ? -1 : 0,\n contentEditable: isContainerEditable,\n value: valueStr,\n onChange: handleValueStrChange,\n areAllSectionsEmpty\n }\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { getActiveElement } from \"../../utils/utils.js\";\nimport { getSectionVisibleValue, isAndroid } from \"./useField.utils.js\";\nconst cleanString = dirtyString => dirtyString.replace(/[\\u2066\\u2067\\u2068\\u2069]/g, '');\nexport const addPositionPropertiesToSections = (sections, localizedDigits, isRtl) => {\n let position = 0;\n let positionInInput = isRtl ? 1 : 0;\n const newSections = [];\n for (let i = 0; i < sections.length; i += 1) {\n const section = sections[i];\n const renderedValue = getSectionVisibleValue(section, isRtl ? 'input-rtl' : 'input-ltr', localizedDigits);\n const sectionStr = `${section.startSeparator}${renderedValue}${section.endSeparator}`;\n const sectionLength = cleanString(sectionStr).length;\n const sectionLengthInInput = sectionStr.length;\n\n // The ...InInput values consider the unicode characters but do include them in their indexes\n const cleanedValue = cleanString(renderedValue);\n const startInInput = positionInInput + (cleanedValue === '' ? 0 : renderedValue.indexOf(cleanedValue[0])) + section.startSeparator.length;\n const endInInput = startInInput + cleanedValue.length;\n newSections.push(_extends({}, section, {\n start: position,\n end: position + sectionLength,\n startInInput,\n endInInput\n }));\n position += sectionLength;\n // Move position to the end of string associated to the current section\n positionInInput += sectionLengthInInput;\n }\n return newSections;\n};\nexport const useFieldV6TextField = params => {\n const isRtl = useRtl();\n const focusTimeoutRef = React.useRef();\n const selectionSyncTimeoutRef = React.useRef();\n const {\n forwardedProps: {\n onFocus,\n onClick,\n onPaste,\n onBlur,\n inputRef: inputRefProp,\n placeholder: inPlaceholder\n },\n internalProps: {\n readOnly = false,\n disabled = false\n },\n parsedSelectedSections,\n activeSectionIndex,\n state,\n fieldValueManager,\n valueManager,\n applyCharacterEditing,\n resetCharacterQuery,\n updateSectionValue,\n updateValueFromValueStr,\n clearActiveSection,\n clearValue,\n setTempAndroidValueStr,\n setSelectedSections,\n getSectionsFromValue,\n areAllSectionsEmpty,\n localizedDigits\n } = params;\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(inputRefProp, inputRef);\n const sections = React.useMemo(() => addPositionPropertiesToSections(state.sections, localizedDigits, isRtl), [state.sections, localizedDigits, isRtl]);\n const interactions = React.useMemo(() => ({\n syncSelectionToDOM: () => {\n if (!inputRef.current) {\n return;\n }\n if (parsedSelectedSections == null) {\n if (inputRef.current.scrollLeft) {\n // Ensure that input content is not marked as selected.\n // setting selection range to 0 causes issues in Safari.\n // https://bugs.webkit.org/show_bug.cgi?id=224425\n inputRef.current.scrollLeft = 0;\n }\n return;\n }\n\n // On multi input range pickers we want to update selection range only for the active input\n // This helps to avoid the focus jumping on Safari https://github.com/mui/mui-x/issues/9003\n // because WebKit implements the `setSelectionRange` based on the spec: https://bugs.webkit.org/show_bug.cgi?id=224425\n if (inputRef.current !== getActiveElement(document)) {\n return;\n }\n\n // Fix scroll jumping on iOS browser: https://github.com/mui/mui-x/issues/8321\n const currentScrollTop = inputRef.current.scrollTop;\n if (parsedSelectedSections === 'all') {\n inputRef.current.select();\n } else {\n const selectedSection = sections[parsedSelectedSections];\n const selectionStart = selectedSection.type === 'empty' ? selectedSection.startInInput - selectedSection.startSeparator.length : selectedSection.startInInput;\n const selectionEnd = selectedSection.type === 'empty' ? selectedSection.endInInput + selectedSection.endSeparator.length : selectedSection.endInInput;\n if (selectionStart !== inputRef.current.selectionStart || selectionEnd !== inputRef.current.selectionEnd) {\n if (inputRef.current === getActiveElement(document)) {\n inputRef.current.setSelectionRange(selectionStart, selectionEnd);\n }\n }\n clearTimeout(selectionSyncTimeoutRef.current);\n selectionSyncTimeoutRef.current = setTimeout(() => {\n // handle case when the selection is not updated correctly\n // could happen on Android\n if (inputRef.current && inputRef.current === getActiveElement(document) &&\n // The section might loose all selection, where `selectionStart === selectionEnd`\n // https://github.com/mui/mui-x/pull/13652\n inputRef.current.selectionStart === inputRef.current.selectionEnd && (inputRef.current.selectionStart !== selectionStart || inputRef.current.selectionEnd !== selectionEnd)) {\n interactions.syncSelectionToDOM();\n }\n });\n }\n\n // Even reading this variable seems to do the trick, but also setting it just to make use of it\n inputRef.current.scrollTop = currentScrollTop;\n },\n getActiveSectionIndexFromDOM: () => {\n const browserStartIndex = inputRef.current.selectionStart ?? 0;\n const browserEndIndex = inputRef.current.selectionEnd ?? 0;\n if (browserStartIndex === 0 && browserEndIndex === 0) {\n return null;\n }\n const nextSectionIndex = browserStartIndex <= sections[0].startInInput ? 1 // Special case if browser index is in invisible characters at the beginning.\n : sections.findIndex(section => section.startInInput - section.startSeparator.length > browserStartIndex);\n return nextSectionIndex === -1 ? sections.length - 1 : nextSectionIndex - 1;\n },\n focusField: (newSelectedSection = 0) => {\n inputRef.current?.focus();\n setSelectedSections(newSelectedSection);\n },\n setSelectedSections: newSelectedSections => setSelectedSections(newSelectedSections),\n isFieldFocused: () => inputRef.current === getActiveElement(document)\n }), [inputRef, parsedSelectedSections, sections, setSelectedSections]);\n const syncSelectionFromDOM = () => {\n const browserStartIndex = inputRef.current.selectionStart ?? 0;\n let nextSectionIndex;\n if (browserStartIndex <= sections[0].startInInput) {\n // Special case if browser index is in invisible characters at the beginning\n nextSectionIndex = 1;\n } else if (browserStartIndex >= sections[sections.length - 1].endInInput) {\n // If the click is after the last character of the input, then we want to select the 1st section.\n nextSectionIndex = 1;\n } else {\n nextSectionIndex = sections.findIndex(section => section.startInInput - section.startSeparator.length > browserStartIndex);\n }\n const sectionIndex = nextSectionIndex === -1 ? sections.length - 1 : nextSectionIndex - 1;\n setSelectedSections(sectionIndex);\n };\n const handleInputFocus = useEventCallback((...args) => {\n onFocus?.(...args);\n // The ref is guaranteed to be resolved at this point.\n const input = inputRef.current;\n clearTimeout(focusTimeoutRef.current);\n focusTimeoutRef.current = setTimeout(() => {\n // The ref changed, the component got remounted, the focus event is no longer relevant.\n if (!input || input !== inputRef.current) {\n return;\n }\n if (activeSectionIndex != null) {\n return;\n }\n if (\n // avoid selecting all sections when focusing empty field without value\n input.value.length && Number(input.selectionEnd) - Number(input.selectionStart) === input.value.length) {\n setSelectedSections('all');\n } else {\n syncSelectionFromDOM();\n }\n });\n });\n const handleInputClick = useEventCallback((event, ...args) => {\n // The click event on the clear button would propagate to the input, trigger this handler and result in a wrong section selection.\n // We avoid this by checking if the call of `handleInputClick` is actually intended, or a side effect.\n if (event.isDefaultPrevented()) {\n return;\n }\n onClick?.(event, ...args);\n syncSelectionFromDOM();\n });\n const handleInputPaste = useEventCallback(event => {\n onPaste?.(event);\n\n // prevent default to avoid the input `onChange` handler being called\n event.preventDefault();\n if (readOnly || disabled) {\n return;\n }\n const pastedValue = event.clipboardData.getData('text');\n if (typeof parsedSelectedSections === 'number') {\n const activeSection = state.sections[parsedSelectedSections];\n const lettersOnly = /^[a-zA-Z]+$/.test(pastedValue);\n const digitsOnly = /^[0-9]+$/.test(pastedValue);\n const digitsAndLetterOnly = /^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(pastedValue);\n const isValidPastedValue = activeSection.contentType === 'letter' && lettersOnly || activeSection.contentType === 'digit' && digitsOnly || activeSection.contentType === 'digit-with-letter' && digitsAndLetterOnly;\n if (isValidPastedValue) {\n resetCharacterQuery();\n updateSectionValue({\n activeSection,\n newSectionValue: pastedValue,\n shouldGoToNextSection: true\n });\n return;\n }\n if (lettersOnly || digitsOnly) {\n // The pasted value corresponds to a single section, but not the expected type,\n // skip the modification\n return;\n }\n }\n resetCharacterQuery();\n updateValueFromValueStr(pastedValue);\n });\n const handleContainerBlur = useEventCallback((...args) => {\n onBlur?.(...args);\n setSelectedSections(null);\n });\n const handleInputChange = useEventCallback(event => {\n if (readOnly) {\n return;\n }\n const targetValue = event.target.value;\n if (targetValue === '') {\n resetCharacterQuery();\n clearValue();\n return;\n }\n const eventData = event.nativeEvent.data;\n // Calling `.fill(04/11/2022)` in playwright will trigger a change event with the requested content to insert in `event.nativeEvent.data`\n // usual changes have only the currently typed character in the `event.nativeEvent.data`\n const shouldUseEventData = eventData && eventData.length > 1;\n const valueStr = shouldUseEventData ? eventData : targetValue;\n const cleanValueStr = cleanString(valueStr);\n\n // If no section is selected or eventData should be used, we just try to parse the new value\n // This line is mostly triggered by imperative code / application tests.\n if (activeSectionIndex == null || shouldUseEventData) {\n updateValueFromValueStr(shouldUseEventData ? eventData : cleanValueStr);\n return;\n }\n let keyPressed;\n if (parsedSelectedSections === 'all' && cleanValueStr.length === 1) {\n keyPressed = cleanValueStr;\n } else {\n const prevValueStr = cleanString(fieldValueManager.getV6InputValueFromSections(sections, localizedDigits, isRtl));\n let startOfDiffIndex = -1;\n let endOfDiffIndex = -1;\n for (let i = 0; i < prevValueStr.length; i += 1) {\n if (startOfDiffIndex === -1 && prevValueStr[i] !== cleanValueStr[i]) {\n startOfDiffIndex = i;\n }\n if (endOfDiffIndex === -1 && prevValueStr[prevValueStr.length - i - 1] !== cleanValueStr[cleanValueStr.length - i - 1]) {\n endOfDiffIndex = i;\n }\n }\n const activeSection = sections[activeSectionIndex];\n const hasDiffOutsideOfActiveSection = startOfDiffIndex < activeSection.start || prevValueStr.length - endOfDiffIndex - 1 > activeSection.end;\n if (hasDiffOutsideOfActiveSection) {\n // TODO: Support if the new date is valid\n return;\n }\n\n // The active section being selected, the browser has replaced its value with the key pressed by the user.\n const activeSectionEndRelativeToNewValue = cleanValueStr.length - prevValueStr.length + activeSection.end - cleanString(activeSection.endSeparator || '').length;\n keyPressed = cleanValueStr.slice(activeSection.start + cleanString(activeSection.startSeparator || '').length, activeSectionEndRelativeToNewValue);\n }\n if (keyPressed.length === 0) {\n if (isAndroid()) {\n setTempAndroidValueStr(valueStr);\n }\n resetCharacterQuery();\n clearActiveSection();\n return;\n }\n applyCharacterEditing({\n keyPressed,\n sectionIndex: activeSectionIndex\n });\n });\n const placeholder = React.useMemo(() => {\n if (inPlaceholder !== undefined) {\n return inPlaceholder;\n }\n return fieldValueManager.getV6InputValueFromSections(getSectionsFromValue(valueManager.emptyValue), localizedDigits, isRtl);\n }, [inPlaceholder, fieldValueManager, getSectionsFromValue, valueManager.emptyValue, localizedDigits, isRtl]);\n const valueStr = React.useMemo(() => state.tempValueStrAndroid ?? fieldValueManager.getV6InputValueFromSections(state.sections, localizedDigits, isRtl), [state.sections, fieldValueManager, state.tempValueStrAndroid, localizedDigits, isRtl]);\n React.useEffect(() => {\n // Select all the sections when focused on mount (`autoFocus = true` on the input)\n if (inputRef.current && inputRef.current === getActiveElement(document)) {\n setSelectedSections('all');\n }\n return () => {\n clearTimeout(focusTimeoutRef.current);\n clearTimeout(selectionSyncTimeoutRef.current);\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const inputMode = React.useMemo(() => {\n if (activeSectionIndex == null) {\n return 'text';\n }\n if (state.sections[activeSectionIndex].contentType === 'letter') {\n return 'text';\n }\n return 'numeric';\n }, [activeSectionIndex, state.sections]);\n const inputHasFocus = inputRef.current && inputRef.current === getActiveElement(document);\n const shouldShowPlaceholder = !inputHasFocus && areAllSectionsEmpty;\n return {\n interactions,\n returnedValue: {\n // Forwarded\n readOnly,\n onBlur: handleContainerBlur,\n onClick: handleInputClick,\n onFocus: handleInputFocus,\n onPaste: handleInputPaste,\n inputRef: handleRef,\n // Additional\n enableAccessibleFieldDOMStructure: false,\n placeholder,\n inputMode,\n autoComplete: 'off',\n value: shouldShowPlaceholder ? '' : valueStr,\n onChange: handleInputChange\n }\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { useValidation } from \"../../../validation/index.js\";\nimport { useUtils } from \"../useUtils.js\";\nimport { adjustSectionValue, getSectionOrder } from \"./useField.utils.js\";\nimport { useFieldState } from \"./useFieldState.js\";\nimport { useFieldCharacterEditing } from \"./useFieldCharacterEditing.js\";\nimport { useFieldV7TextField } from \"./useFieldV7TextField.js\";\nimport { useFieldV6TextField } from \"./useFieldV6TextField.js\";\nexport const useField = params => {\n const utils = useUtils();\n const {\n internalProps,\n internalProps: {\n unstableFieldRef,\n minutesStep,\n enableAccessibleFieldDOMStructure = false,\n disabled = false,\n readOnly = false\n },\n forwardedProps: {\n onKeyDown,\n error,\n clearable,\n onClear\n },\n fieldValueManager,\n valueManager,\n validator\n } = params;\n const isRtl = useRtl();\n const stateResponse = useFieldState(params);\n const {\n state,\n activeSectionIndex,\n parsedSelectedSections,\n setSelectedSections,\n clearValue,\n clearActiveSection,\n updateSectionValue,\n setTempAndroidValueStr,\n sectionsValueBoundaries,\n localizedDigits,\n timezone\n } = stateResponse;\n const characterEditingResponse = useFieldCharacterEditing({\n sections: state.sections,\n updateSectionValue,\n sectionsValueBoundaries,\n localizedDigits,\n setTempAndroidValueStr,\n timezone\n });\n const {\n resetCharacterQuery\n } = characterEditingResponse;\n const areAllSectionsEmpty = valueManager.areValuesEqual(utils, state.value, valueManager.emptyValue);\n const useFieldTextField = enableAccessibleFieldDOMStructure ? useFieldV7TextField : useFieldV6TextField;\n const sectionOrder = React.useMemo(() => getSectionOrder(state.sections, isRtl && !enableAccessibleFieldDOMStructure), [state.sections, isRtl, enableAccessibleFieldDOMStructure]);\n const {\n returnedValue,\n interactions\n } = useFieldTextField(_extends({}, params, stateResponse, characterEditingResponse, {\n areAllSectionsEmpty,\n sectionOrder\n }));\n const handleContainerKeyDown = useEventCallback(event => {\n onKeyDown?.(event);\n if (disabled) {\n return;\n }\n // eslint-disable-next-line default-case\n switch (true) {\n // Select all\n case (event.ctrlKey || event.metaKey) && String.fromCharCode(event.keyCode) === 'A' && !event.shiftKey && !event.altKey:\n {\n // prevent default to make sure that the next line \"select all\" while updating\n // the internal state at the same time.\n event.preventDefault();\n setSelectedSections('all');\n break;\n }\n\n // Move selection to next section\n case event.key === 'ArrowRight':\n {\n event.preventDefault();\n if (parsedSelectedSections == null) {\n setSelectedSections(sectionOrder.startIndex);\n } else if (parsedSelectedSections === 'all') {\n setSelectedSections(sectionOrder.endIndex);\n } else {\n const nextSectionIndex = sectionOrder.neighbors[parsedSelectedSections].rightIndex;\n if (nextSectionIndex !== null) {\n setSelectedSections(nextSectionIndex);\n }\n }\n break;\n }\n\n // Move selection to previous section\n case event.key === 'ArrowLeft':\n {\n event.preventDefault();\n if (parsedSelectedSections == null) {\n setSelectedSections(sectionOrder.endIndex);\n } else if (parsedSelectedSections === 'all') {\n setSelectedSections(sectionOrder.startIndex);\n } else {\n const nextSectionIndex = sectionOrder.neighbors[parsedSelectedSections].leftIndex;\n if (nextSectionIndex !== null) {\n setSelectedSections(nextSectionIndex);\n }\n }\n break;\n }\n\n // Reset the value of the selected section\n case event.key === 'Delete':\n {\n event.preventDefault();\n if (readOnly) {\n break;\n }\n if (parsedSelectedSections == null || parsedSelectedSections === 'all') {\n clearValue();\n } else {\n clearActiveSection();\n }\n resetCharacterQuery();\n break;\n }\n\n // Increment / decrement the selected section value\n case ['ArrowUp', 'ArrowDown', 'Home', 'End', 'PageUp', 'PageDown'].includes(event.key):\n {\n event.preventDefault();\n if (readOnly || activeSectionIndex == null) {\n break;\n }\n const activeSection = state.sections[activeSectionIndex];\n const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);\n const newSectionValue = adjustSectionValue(utils, timezone, activeSection, event.key, sectionsValueBoundaries, localizedDigits, activeDateManager.date, {\n minutesStep\n });\n updateSectionValue({\n activeSection,\n newSectionValue,\n shouldGoToNextSection: false\n });\n break;\n }\n }\n });\n useEnhancedEffect(() => {\n interactions.syncSelectionToDOM();\n });\n const {\n hasValidationError\n } = useValidation({\n props: internalProps,\n validator,\n timezone,\n value: state.value,\n onError: internalProps.onError\n });\n const inputError = React.useMemo(() => {\n // only override when `error` is undefined.\n // in case of multi input fields, the `error` value is provided externally and will always be defined.\n if (error !== undefined) {\n return error;\n }\n return hasValidationError;\n }, [hasValidationError, error]);\n React.useEffect(() => {\n if (!inputError && activeSectionIndex == null) {\n resetCharacterQuery();\n }\n }, [state.referenceValue, activeSectionIndex, inputError]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // If `tempValueStrAndroid` is still defined for some section when running `useEffect`,\n // Then `onChange` has only been called once, which means the user pressed `Backspace` to reset the section.\n // This causes a small flickering on Android,\n // But we can't use `useEnhancedEffect` which is always called before the second `onChange` call and then would cause false positives.\n React.useEffect(() => {\n if (state.tempValueStrAndroid != null && activeSectionIndex != null) {\n resetCharacterQuery();\n clearActiveSection();\n }\n }, [state.sections]); // eslint-disable-line react-hooks/exhaustive-deps\n\n React.useImperativeHandle(unstableFieldRef, () => ({\n getSections: () => state.sections,\n getActiveSectionIndex: interactions.getActiveSectionIndexFromDOM,\n setSelectedSections: interactions.setSelectedSections,\n focusField: interactions.focusField,\n isFieldFocused: interactions.isFieldFocused\n }));\n const handleClearValue = useEventCallback((event, ...args) => {\n event.preventDefault();\n onClear?.(event, ...args);\n clearValue();\n if (!interactions.isFieldFocused()) {\n // setSelectedSections is called internally\n interactions.focusField(0);\n } else {\n setSelectedSections(sectionOrder.startIndex);\n }\n });\n const commonForwardedProps = {\n onKeyDown: handleContainerKeyDown,\n onClear: handleClearValue,\n error: inputError,\n clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled)\n };\n const commonAdditionalProps = {\n disabled,\n readOnly\n };\n return _extends({}, params.forwardedProps, commonForwardedProps, commonAdditionalProps, returnedValue);\n};","import { getMonthsInYear } from \"../../utils/date-utils.js\";\nexport const getDateSectionConfigFromFormatToken = (utils, formatToken) => {\n const config = utils.formatTokenMap[formatToken];\n if (config == null) {\n throw new Error([`MUI X: The token \"${formatToken}\" is not supported by the Date and Time Pickers.`, 'Please try using another token or open an issue on https://github.com/mui/mui-x/issues/new/choose if you think it should be supported.'].join('\\n'));\n }\n if (typeof config === 'string') {\n return {\n type: config,\n contentType: config === 'meridiem' ? 'letter' : 'digit',\n maxLength: undefined\n };\n }\n return {\n type: config.sectionType,\n contentType: config.contentType,\n maxLength: config.maxLength\n };\n};\nconst getDeltaFromKeyCode = keyCode => {\n switch (keyCode) {\n case 'ArrowUp':\n return 1;\n case 'ArrowDown':\n return -1;\n case 'PageUp':\n return 5;\n case 'PageDown':\n return -5;\n default:\n return 0;\n }\n};\nexport const getDaysInWeekStr = (utils, format) => {\n const elements = [];\n const now = utils.date(undefined, 'default');\n const startDate = utils.startOfWeek(now);\n const endDate = utils.endOfWeek(now);\n let current = startDate;\n while (utils.isBefore(current, endDate)) {\n elements.push(current);\n current = utils.addDays(current, 1);\n }\n return elements.map(weekDay => utils.formatByString(weekDay, format));\n};\nexport const getLetterEditingOptions = (utils, timezone, sectionType, format) => {\n switch (sectionType) {\n case 'month':\n {\n return getMonthsInYear(utils, utils.date(undefined, timezone)).map(month => utils.formatByString(month, format));\n }\n case 'weekDay':\n {\n return getDaysInWeekStr(utils, format);\n }\n case 'meridiem':\n {\n const now = utils.date(undefined, timezone);\n return [utils.startOfDay(now), utils.endOfDay(now)].map(date => utils.formatByString(date, format));\n }\n default:\n {\n return [];\n }\n }\n};\n\n// This format should be the same on all the adapters\n// If some adapter does not respect this convention, then we will need to hardcode the format on each adapter.\nexport const FORMAT_SECONDS_NO_LEADING_ZEROS = 's';\nconst NON_LOCALIZED_DIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nexport const getLocalizedDigits = utils => {\n const today = utils.date(undefined);\n const formattedZero = utils.formatByString(utils.setSeconds(today, 0), FORMAT_SECONDS_NO_LEADING_ZEROS);\n if (formattedZero === '0') {\n return NON_LOCALIZED_DIGITS;\n }\n return Array.from({\n length: 10\n }).map((_, index) => utils.formatByString(utils.setSeconds(today, index), FORMAT_SECONDS_NO_LEADING_ZEROS));\n};\nexport const removeLocalizedDigits = (valueStr, localizedDigits) => {\n if (localizedDigits[0] === '0') {\n return valueStr;\n }\n const digits = [];\n let currentFormattedDigit = '';\n for (let i = 0; i < valueStr.length; i += 1) {\n currentFormattedDigit += valueStr[i];\n const matchingDigitIndex = localizedDigits.indexOf(currentFormattedDigit);\n if (matchingDigitIndex > -1) {\n digits.push(matchingDigitIndex.toString());\n currentFormattedDigit = '';\n }\n }\n return digits.join('');\n};\nexport const applyLocalizedDigits = (valueStr, localizedDigits) => {\n if (localizedDigits[0] === '0') {\n return valueStr;\n }\n return valueStr.split('').map(char => localizedDigits[Number(char)]).join('');\n};\nexport const isStringNumber = (valueStr, localizedDigits) => {\n const nonLocalizedValueStr = removeLocalizedDigits(valueStr, localizedDigits);\n // `Number(' ')` returns `0` even if ' ' is not a valid number.\n return nonLocalizedValueStr !== ' ' && !Number.isNaN(Number(nonLocalizedValueStr));\n};\n\n/**\n * Remove the leading zeroes to a digit section value.\n * E.g.: `03` => `3`\n * Warning: Should only be called with non-localized digits. Call `removeLocalizedDigits` with your value if needed.\n */\nexport const cleanLeadingZeros = (valueStr, size) => {\n let cleanValueStr = valueStr;\n\n // Remove the leading zeros\n cleanValueStr = Number(cleanValueStr).toString();\n\n // Add enough leading zeros to fill the section\n while (cleanValueStr.length < size) {\n cleanValueStr = `0${cleanValueStr}`;\n }\n return cleanValueStr;\n};\nexport const cleanDigitSectionValue = (utils, value, sectionBoundaries, localizedDigits, section) => {\n if (process.env.NODE_ENV !== 'production') {\n if (section.type !== 'day' && section.contentType === 'digit-with-letter') {\n throw new Error([`MUI X: The token \"${section.format}\" is a digit format with letter in it.'\n This type of format is only supported for 'day' sections`].join('\\n'));\n }\n }\n if (section.type === 'day' && section.contentType === 'digit-with-letter') {\n const date = utils.setDate(sectionBoundaries.longestMonth, value);\n return utils.formatByString(date, section.format);\n }\n\n // queryValue without leading `0` (`01` => `1`)\n let valueStr = value.toString();\n if (section.hasLeadingZerosInInput) {\n valueStr = cleanLeadingZeros(valueStr, section.maxLength);\n }\n return applyLocalizedDigits(valueStr, localizedDigits);\n};\nexport const adjustSectionValue = (utils, timezone, section, keyCode, sectionsValueBoundaries, localizedDigits, activeDate, stepsAttributes) => {\n const delta = getDeltaFromKeyCode(keyCode);\n const isStart = keyCode === 'Home';\n const isEnd = keyCode === 'End';\n const shouldSetAbsolute = section.value === '' || isStart || isEnd;\n const adjustDigitSection = () => {\n const sectionBoundaries = sectionsValueBoundaries[section.type]({\n currentDate: activeDate,\n format: section.format,\n contentType: section.contentType\n });\n const getCleanValue = value => cleanDigitSectionValue(utils, value, sectionBoundaries, localizedDigits, section);\n const step = section.type === 'minutes' && stepsAttributes?.minutesStep ? stepsAttributes.minutesStep : 1;\n const currentSectionValue = parseInt(removeLocalizedDigits(section.value, localizedDigits), 10);\n let newSectionValueNumber = currentSectionValue + delta * step;\n if (shouldSetAbsolute) {\n if (section.type === 'year' && !isEnd && !isStart) {\n return utils.formatByString(utils.date(undefined, timezone), section.format);\n }\n if (delta > 0 || isStart) {\n newSectionValueNumber = sectionBoundaries.minimum;\n } else {\n newSectionValueNumber = sectionBoundaries.maximum;\n }\n }\n if (newSectionValueNumber % step !== 0) {\n if (delta < 0 || isStart) {\n newSectionValueNumber += step - (step + newSectionValueNumber) % step; // for JS -3 % 5 = -3 (should be 2)\n }\n if (delta > 0 || isEnd) {\n newSectionValueNumber -= newSectionValueNumber % step;\n }\n }\n if (newSectionValueNumber > sectionBoundaries.maximum) {\n return getCleanValue(sectionBoundaries.minimum + (newSectionValueNumber - sectionBoundaries.maximum - 1) % (sectionBoundaries.maximum - sectionBoundaries.minimum + 1));\n }\n if (newSectionValueNumber < sectionBoundaries.minimum) {\n return getCleanValue(sectionBoundaries.maximum - (sectionBoundaries.minimum - newSectionValueNumber - 1) % (sectionBoundaries.maximum - sectionBoundaries.minimum + 1));\n }\n return getCleanValue(newSectionValueNumber);\n };\n const adjustLetterSection = () => {\n const options = getLetterEditingOptions(utils, timezone, section.type, section.format);\n if (options.length === 0) {\n return section.value;\n }\n if (shouldSetAbsolute) {\n if (delta > 0 || isStart) {\n return options[0];\n }\n return options[options.length - 1];\n }\n const currentOptionIndex = options.indexOf(section.value);\n const newOptionIndex = (currentOptionIndex + delta) % options.length;\n const clampedIndex = (newOptionIndex + options.length) % options.length;\n return options[clampedIndex];\n };\n if (section.contentType === 'digit' || section.contentType === 'digit-with-letter') {\n return adjustDigitSection();\n }\n return adjustLetterSection();\n};\nexport const getSectionVisibleValue = (section, target, localizedDigits) => {\n let value = section.value || section.placeholder;\n const hasLeadingZeros = target === 'non-input' ? section.hasLeadingZerosInFormat : section.hasLeadingZerosInInput;\n if (target === 'non-input' && section.hasLeadingZerosInInput && !section.hasLeadingZerosInFormat) {\n value = Number(removeLocalizedDigits(value, localizedDigits)).toString();\n }\n\n // In the input, we add an empty character at the end of each section without leading zeros.\n // This makes sure that `onChange` will always be fired.\n // Otherwise, when your input value equals `1/dd/yyyy` (format `M/DD/YYYY` on DayJs),\n // If you press `1`, on the first section, the new value is also `1/dd/yyyy`,\n // So the browser will not fire the input `onChange`.\n const shouldAddInvisibleSpace = ['input-rtl', 'input-ltr'].includes(target) && section.contentType === 'digit' && !hasLeadingZeros && value.length === 1;\n if (shouldAddInvisibleSpace) {\n value = `${value}\\u200e`;\n }\n if (target === 'input-rtl') {\n value = `\\u2068${value}\\u2069`;\n }\n return value;\n};\nexport const changeSectionValueFormat = (utils, valueStr, currentFormat, newFormat) => {\n if (process.env.NODE_ENV !== 'production') {\n if (getDateSectionConfigFromFormatToken(utils, currentFormat).type === 'weekDay') {\n throw new Error(\"changeSectionValueFormat doesn't support week day formats\");\n }\n }\n return utils.formatByString(utils.parse(valueStr, currentFormat), newFormat);\n};\nconst isFourDigitYearFormat = (utils, format) => utils.formatByString(utils.date(undefined, 'system'), format).length === 4;\nexport const doesSectionFormatHaveLeadingZeros = (utils, contentType, sectionType, format) => {\n if (contentType !== 'digit') {\n return false;\n }\n const now = utils.date(undefined, 'default');\n switch (sectionType) {\n // We can't use `changeSectionValueFormat`, because `utils.parse('1', 'YYYY')` returns `1971` instead of `1`.\n case 'year':\n {\n if (isFourDigitYearFormat(utils, format)) {\n const formatted0001 = utils.formatByString(utils.setYear(now, 1), format);\n return formatted0001 === '0001';\n }\n const formatted2001 = utils.formatByString(utils.setYear(now, 2001), format);\n return formatted2001 === '01';\n }\n case 'month':\n {\n return utils.formatByString(utils.startOfYear(now), format).length > 1;\n }\n case 'day':\n {\n return utils.formatByString(utils.startOfMonth(now), format).length > 1;\n }\n case 'weekDay':\n {\n return utils.formatByString(utils.startOfWeek(now), format).length > 1;\n }\n case 'hours':\n {\n return utils.formatByString(utils.setHours(now, 1), format).length > 1;\n }\n case 'minutes':\n {\n return utils.formatByString(utils.setMinutes(now, 1), format).length > 1;\n }\n case 'seconds':\n {\n return utils.formatByString(utils.setSeconds(now, 1), format).length > 1;\n }\n default:\n {\n throw new Error('Invalid section type');\n }\n }\n};\n\n/**\n * Some date libraries like `dayjs` don't support parsing from date with escaped characters.\n * To make sure that the parsing works, we are building a format and a date without any separator.\n */\nexport const getDateFromDateSections = (utils, sections, localizedDigits) => {\n // If we have both a day and a weekDay section,\n // Then we skip the weekDay in the parsing because libraries like dayjs can't parse complicated formats containing a weekDay.\n // dayjs(dayjs().format('dddd MMMM D YYYY'), 'dddd MMMM D YYYY')) // returns `Invalid Date` even if the format is valid.\n const shouldSkipWeekDays = sections.some(section => section.type === 'day');\n const sectionFormats = [];\n const sectionValues = [];\n for (let i = 0; i < sections.length; i += 1) {\n const section = sections[i];\n const shouldSkip = shouldSkipWeekDays && section.type === 'weekDay';\n if (!shouldSkip) {\n sectionFormats.push(section.format);\n sectionValues.push(getSectionVisibleValue(section, 'non-input', localizedDigits));\n }\n }\n const formatWithoutSeparator = sectionFormats.join(' ');\n const dateWithoutSeparatorStr = sectionValues.join(' ');\n return utils.parse(dateWithoutSeparatorStr, formatWithoutSeparator);\n};\nexport const createDateStrForV7HiddenInputFromSections = sections => sections.map(section => {\n return `${section.startSeparator}${section.value || section.placeholder}${section.endSeparator}`;\n}).join('');\nexport const createDateStrForV6InputFromSections = (sections, localizedDigits, isRtl) => {\n const formattedSections = sections.map(section => {\n const dateValue = getSectionVisibleValue(section, isRtl ? 'input-rtl' : 'input-ltr', localizedDigits);\n return `${section.startSeparator}${dateValue}${section.endSeparator}`;\n });\n const dateStr = formattedSections.join('');\n if (!isRtl) {\n return dateStr;\n }\n\n // \\u2066: start left-to-right isolation\n // \\u2067: start right-to-left isolation\n // \\u2068: start first strong character isolation\n // \\u2069: pop isolation\n // wrap into an isolated group such that separators can split the string in smaller ones by adding \\u2069\\u2068\n return `\\u2066${dateStr}\\u2069`;\n};\nexport const getSectionsBoundaries = (utils, localizedDigits, timezone) => {\n const today = utils.date(undefined, timezone);\n const endOfYear = utils.endOfYear(today);\n const endOfDay = utils.endOfDay(today);\n const {\n maxDaysInMonth,\n longestMonth\n } = getMonthsInYear(utils, today).reduce((acc, month) => {\n const daysInMonth = utils.getDaysInMonth(month);\n if (daysInMonth > acc.maxDaysInMonth) {\n return {\n maxDaysInMonth: daysInMonth,\n longestMonth: month\n };\n }\n return acc;\n }, {\n maxDaysInMonth: 0,\n longestMonth: null\n });\n return {\n year: ({\n format\n }) => ({\n minimum: 0,\n maximum: isFourDigitYearFormat(utils, format) ? 9999 : 99\n }),\n month: () => ({\n minimum: 1,\n // Assumption: All years have the same amount of months\n maximum: utils.getMonth(endOfYear) + 1\n }),\n day: ({\n currentDate\n }) => ({\n minimum: 1,\n maximum: currentDate != null && utils.isValid(currentDate) ? utils.getDaysInMonth(currentDate) : maxDaysInMonth,\n longestMonth: longestMonth\n }),\n weekDay: ({\n format,\n contentType\n }) => {\n if (contentType === 'digit') {\n const daysInWeek = getDaysInWeekStr(utils, format).map(Number);\n return {\n minimum: Math.min(...daysInWeek),\n maximum: Math.max(...daysInWeek)\n };\n }\n return {\n minimum: 1,\n maximum: 7\n };\n },\n hours: ({\n format\n }) => {\n const lastHourInDay = utils.getHours(endOfDay);\n const hasMeridiem = removeLocalizedDigits(utils.formatByString(utils.endOfDay(today), format), localizedDigits) !== lastHourInDay.toString();\n if (hasMeridiem) {\n return {\n minimum: 1,\n maximum: Number(removeLocalizedDigits(utils.formatByString(utils.startOfDay(today), format), localizedDigits))\n };\n }\n return {\n minimum: 0,\n maximum: lastHourInDay\n };\n },\n minutes: () => ({\n minimum: 0,\n // Assumption: All years have the same amount of minutes\n maximum: utils.getMinutes(endOfDay)\n }),\n seconds: () => ({\n minimum: 0,\n // Assumption: All years have the same amount of seconds\n maximum: utils.getSeconds(endOfDay)\n }),\n meridiem: () => ({\n minimum: 0,\n maximum: 1\n }),\n empty: () => ({\n minimum: 0,\n maximum: 0\n })\n };\n};\nlet warnedOnceInvalidSection = false;\nexport const validateSections = (sections, valueType) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnceInvalidSection) {\n const supportedSections = ['empty'];\n if (['date', 'date-time'].includes(valueType)) {\n supportedSections.push('weekDay', 'day', 'month', 'year');\n }\n if (['time', 'date-time'].includes(valueType)) {\n supportedSections.push('hours', 'minutes', 'seconds', 'meridiem');\n }\n const invalidSection = sections.find(section => !supportedSections.includes(section.type));\n if (invalidSection) {\n console.warn(`MUI X: The field component you are using is not compatible with the \"${invalidSection.type}\" date section.`, `The supported date sections are [\"${supportedSections.join('\", \"')}\"]\\`.`);\n warnedOnceInvalidSection = true;\n }\n }\n }\n};\nconst transferDateSectionValue = (utils, section, dateToTransferFrom, dateToTransferTo) => {\n switch (section.type) {\n case 'year':\n {\n return utils.setYear(dateToTransferTo, utils.getYear(dateToTransferFrom));\n }\n case 'month':\n {\n return utils.setMonth(dateToTransferTo, utils.getMonth(dateToTransferFrom));\n }\n case 'weekDay':\n {\n const formattedDaysInWeek = getDaysInWeekStr(utils, section.format);\n const dayInWeekStrOfActiveDate = utils.formatByString(dateToTransferFrom, section.format);\n const dayInWeekOfActiveDate = formattedDaysInWeek.indexOf(dayInWeekStrOfActiveDate);\n const dayInWeekOfNewSectionValue = formattedDaysInWeek.indexOf(section.value);\n const diff = dayInWeekOfNewSectionValue - dayInWeekOfActiveDate;\n return utils.addDays(dateToTransferFrom, diff);\n }\n case 'day':\n {\n return utils.setDate(dateToTransferTo, utils.getDate(dateToTransferFrom));\n }\n case 'meridiem':\n {\n const isAM = utils.getHours(dateToTransferFrom) < 12;\n const mergedDateHours = utils.getHours(dateToTransferTo);\n if (isAM && mergedDateHours >= 12) {\n return utils.addHours(dateToTransferTo, -12);\n }\n if (!isAM && mergedDateHours < 12) {\n return utils.addHours(dateToTransferTo, 12);\n }\n return dateToTransferTo;\n }\n case 'hours':\n {\n return utils.setHours(dateToTransferTo, utils.getHours(dateToTransferFrom));\n }\n case 'minutes':\n {\n return utils.setMinutes(dateToTransferTo, utils.getMinutes(dateToTransferFrom));\n }\n case 'seconds':\n {\n return utils.setSeconds(dateToTransferTo, utils.getSeconds(dateToTransferFrom));\n }\n default:\n {\n return dateToTransferTo;\n }\n }\n};\nconst reliableSectionModificationOrder = {\n year: 1,\n month: 2,\n day: 3,\n weekDay: 4,\n hours: 5,\n minutes: 6,\n seconds: 7,\n meridiem: 8,\n empty: 9\n};\nexport const mergeDateIntoReferenceDate = (utils, dateToTransferFrom, sections, referenceDate, shouldLimitToEditedSections) =>\n// cloning sections before sort to avoid mutating it\n[...sections].sort((a, b) => reliableSectionModificationOrder[a.type] - reliableSectionModificationOrder[b.type]).reduce((mergedDate, section) => {\n if (!shouldLimitToEditedSections || section.modified) {\n return transferDateSectionValue(utils, section, dateToTransferFrom, mergedDate);\n }\n return mergedDate;\n}, referenceDate);\nexport const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');\n\n// TODO v8: Remove if we drop the v6 TextField approach.\nexport const getSectionOrder = (sections, shouldApplyRTL) => {\n const neighbors = {};\n if (!shouldApplyRTL) {\n sections.forEach((_, index) => {\n const leftIndex = index === 0 ? null : index - 1;\n const rightIndex = index === sections.length - 1 ? null : index + 1;\n neighbors[index] = {\n leftIndex,\n rightIndex\n };\n });\n return {\n neighbors,\n startIndex: 0,\n endIndex: sections.length - 1\n };\n }\n const rtl2ltr = {};\n const ltr2rtl = {};\n let groupedSectionsStart = 0;\n let groupedSectionsEnd = 0;\n let RTLIndex = sections.length - 1;\n while (RTLIndex >= 0) {\n groupedSectionsEnd = sections.findIndex(\n // eslint-disable-next-line @typescript-eslint/no-loop-func\n (section, index) => index >= groupedSectionsStart && section.endSeparator?.includes(' ') &&\n // Special case where the spaces were not there in the initial input\n section.endSeparator !== ' / ');\n if (groupedSectionsEnd === -1) {\n groupedSectionsEnd = sections.length - 1;\n }\n for (let i = groupedSectionsEnd; i >= groupedSectionsStart; i -= 1) {\n ltr2rtl[i] = RTLIndex;\n rtl2ltr[RTLIndex] = i;\n RTLIndex -= 1;\n }\n groupedSectionsStart = groupedSectionsEnd + 1;\n }\n sections.forEach((_, index) => {\n const rtlIndex = ltr2rtl[index];\n const leftIndex = rtlIndex === 0 ? null : rtl2ltr[rtlIndex - 1];\n const rightIndex = rtlIndex === sections.length - 1 ? null : rtl2ltr[rtlIndex + 1];\n neighbors[index] = {\n leftIndex,\n rightIndex\n };\n });\n return {\n neighbors,\n startIndex: rtl2ltr[0],\n endIndex: rtl2ltr[sections.length - 1]\n };\n};\nexport const parseSelectedSections = (selectedSections, sections) => {\n if (selectedSections == null) {\n return null;\n }\n if (selectedSections === 'all') {\n return 'all';\n }\n if (typeof selectedSections === 'string') {\n return sections.findIndex(section => section.type === selectedSections);\n }\n return selectedSections;\n};\nexport const getSectionValueText = (section, utils) => {\n if (!section.value) {\n return undefined;\n }\n switch (section.type) {\n case 'month':\n {\n if (section.contentType === 'digit') {\n return utils.format(utils.setMonth(utils.date(), Number(section.value) - 1), 'month');\n }\n const parsedDate = utils.parse(section.value, section.format);\n return parsedDate ? utils.format(parsedDate, 'month') : undefined;\n }\n case 'day':\n return section.contentType === 'digit' ? utils.format(utils.setDate(utils.startOfYear(utils.date()), Number(section.value)), 'dayOfMonthFull') : section.value;\n case 'weekDay':\n // TODO: improve by providing the label of the week day\n return undefined;\n default:\n return undefined;\n }\n};\nexport const getSectionValueNow = (section, utils) => {\n if (!section.value) {\n return undefined;\n }\n switch (section.type) {\n case 'weekDay':\n {\n if (section.contentType === 'letter') {\n // TODO: improve by resolving the week day number from a letter week day\n return undefined;\n }\n return Number(section.value);\n }\n case 'meridiem':\n {\n const parsedDate = utils.parse(`01:00 ${section.value}`, `${utils.formats.hours12h}:${utils.formats.minutes} ${section.format}`);\n if (parsedDate) {\n return utils.getHours(parsedDate) >= 12 ? 1 : 0;\n }\n return undefined;\n }\n case 'day':\n return section.contentType === 'digit-with-letter' ? parseInt(section.value, 10) : Number(section.value);\n case 'month':\n {\n if (section.contentType === 'digit') {\n return Number(section.value);\n }\n const parsedDate = utils.parse(section.value, section.format);\n return parsedDate ? utils.getMonth(parsedDate) + 1 : undefined;\n }\n default:\n return section.contentType !== 'letter' ? Number(section.value) : undefined;\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DialogContent from '@mui/material/DialogContent';\nimport Fade from '@mui/material/Fade';\nimport MuiDialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from \"../constants/dimensions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(MuiDialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nexport function PickersModalDialog(props) {\n const {\n children,\n onDismiss,\n open,\n slots,\n slotProps\n } = props;\n const Dialog = slots?.dialog ?? PickersModalDialogRoot;\n const Transition = slots?.mobileTransition ?? Fade;\n return /*#__PURE__*/_jsx(Dialog, _extends({\n open: open,\n onClose: onDismiss\n }, slotProps?.dialog, {\n TransitionComponent: Transition,\n TransitionProps: slotProps?.mobileTransition,\n PaperComponent: slots?.mobilePaper,\n PaperProps: slotProps?.mobilePaper,\n children: /*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n })\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"props\", \"getOpenDialogAriaText\"];\nimport * as React from 'react';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useId from '@mui/utils/useId';\nimport { PickersModalDialog } from \"../../components/PickersModalDialog.js\";\nimport { usePicker } from \"../usePicker/index.js\";\nimport { onSpaceOrEnter } from \"../../utils/utils.js\";\nimport { PickersLayout } from \"../../../PickersLayout/index.js\";\nimport { PickersProvider } from \"../../components/PickersProvider.js\";\n\n/**\n * Hook managing all the single-date mobile pickers:\n * - MobileDatePicker\n * - MobileDateTimePicker\n * - MobileTimePicker\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const useMobilePicker = _ref => {\n let {\n props,\n getOpenDialogAriaText\n } = _ref,\n pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n slots,\n slotProps: innerSlotProps,\n className,\n sx,\n format,\n formatDensity,\n enableAccessibleFieldDOMStructure,\n selectedSections,\n onSelectedSectionsChange,\n timezone,\n name,\n label,\n inputRef,\n readOnly,\n disabled,\n localeText\n } = props;\n const fieldRef = React.useRef(null);\n const labelId = useId();\n const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;\n const {\n open,\n actions,\n layoutProps,\n renderCurrentView,\n fieldProps: pickerFieldProps,\n contextValue\n } = usePicker(_extends({}, pickerParams, {\n props,\n fieldRef,\n autoFocusView: true,\n additionalViewProps: {},\n wrapperVariant: 'mobile'\n }));\n const Field = slots.field;\n const fieldProps = useSlotProps({\n elementType: Field,\n externalSlotProps: innerSlotProps?.field,\n additionalProps: _extends({}, pickerFieldProps, isToolbarHidden && {\n id: labelId\n }, !(disabled || readOnly) && {\n onClick: actions.onOpen,\n onKeyDown: onSpaceOrEnter(actions.onOpen)\n }, {\n readOnly: readOnly ?? true,\n disabled,\n className,\n sx,\n format,\n formatDensity,\n enableAccessibleFieldDOMStructure,\n selectedSections,\n onSelectedSectionsChange,\n timezone,\n label,\n name\n }, inputRef ? {\n inputRef\n } : {}),\n ownerState: props\n });\n\n // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged\n fieldProps.inputProps = _extends({}, fieldProps.inputProps, {\n 'aria-label': getOpenDialogAriaText(pickerFieldProps.value)\n });\n const slotsForField = _extends({\n textField: slots.textField\n }, fieldProps.slots);\n const Layout = slots.layout ?? PickersLayout;\n let labelledById = labelId;\n if (isToolbarHidden) {\n if (label) {\n labelledById = `${labelId}-label`;\n } else {\n labelledById = undefined;\n }\n }\n const slotProps = _extends({}, innerSlotProps, {\n toolbar: _extends({}, innerSlotProps?.toolbar, {\n titleId: labelId\n }),\n mobilePaper: _extends({\n 'aria-labelledby': labelledById\n }, innerSlotProps?.mobilePaper)\n });\n const handleFieldRef = useForkRef(fieldRef, fieldProps.unstableFieldRef);\n const renderPicker = () => /*#__PURE__*/_jsxs(PickersProvider, {\n contextValue: contextValue,\n localeText: localeText,\n children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {\n slots: slotsForField,\n slotProps: slotProps,\n unstableFieldRef: handleFieldRef\n })), /*#__PURE__*/_jsx(PickersModalDialog, _extends({}, actions, {\n open: open,\n slots: slots,\n slotProps: slotProps,\n children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps?.layout, {\n slots: slots,\n slotProps: slotProps,\n children: renderCurrentView()\n }))\n }))]\n });\n return {\n renderPicker\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useOpenState } from \"../useOpenState.js\";\nimport { useLocalizationContext, useUtils } from \"../useUtils.js\";\nimport { useValidation } from \"../../../validation/index.js\";\nimport { useValueWithTimezone } from \"../useValueWithTimezone.js\";\n/**\n * Decide if the new value should be published\n * The published value will be passed to `onChange` if defined.\n */\nconst shouldPublishValue = params => {\n const {\n action,\n hasChanged,\n dateState,\n isControlled\n } = params;\n const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;\n\n // The field is responsible for only calling `onChange` when needed.\n if (action.name === 'setValueFromField') {\n return true;\n }\n if (action.name === 'setValueFromAction') {\n // If the component is not controlled, and the value has not been modified since the mount,\n // Then we want to publish the default value whenever the user pressed the \"Accept\", \"Today\" or \"Clear\" button.\n if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {\n return true;\n }\n return hasChanged(dateState.lastPublishedValue);\n }\n if (action.name === 'setValueFromView' && action.selectionState !== 'shallow') {\n // On the first view,\n // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`\n if (isCurrentValueTheDefaultValue) {\n return true;\n }\n return hasChanged(dateState.lastPublishedValue);\n }\n if (action.name === 'setValueFromShortcut') {\n // On the first view,\n // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`\n if (isCurrentValueTheDefaultValue) {\n return true;\n }\n return hasChanged(dateState.lastPublishedValue);\n }\n return false;\n};\n\n/**\n * Decide if the new value should be committed.\n * The committed value will be passed to `onAccept` if defined.\n * It will also be used as a reset target when calling the `cancel` picker action (when clicking on the \"Cancel\" button).\n */\nconst shouldCommitValue = params => {\n const {\n action,\n hasChanged,\n dateState,\n isControlled,\n closeOnSelect\n } = params;\n const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;\n if (action.name === 'setValueFromAction') {\n // If the component is not controlled, and the value has not been modified since the mount,\n // Then we want to commit the default value whenever the user pressed the \"Accept\", \"Today\" or \"Clear\" button.\n if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {\n return true;\n }\n return hasChanged(dateState.lastCommittedValue);\n }\n if (action.name === 'setValueFromView' && action.selectionState === 'finish' && closeOnSelect) {\n // On picker where the 1st view is also the last view,\n // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onAccept`\n if (isCurrentValueTheDefaultValue) {\n return true;\n }\n return hasChanged(dateState.lastCommittedValue);\n }\n if (action.name === 'setValueFromShortcut') {\n return action.changeImportance === 'accept' && hasChanged(dateState.lastCommittedValue);\n }\n return false;\n};\n\n/**\n * Decide if the picker should be closed after the value is updated.\n */\nconst shouldClosePicker = params => {\n const {\n action,\n closeOnSelect\n } = params;\n if (action.name === 'setValueFromAction') {\n return true;\n }\n if (action.name === 'setValueFromView') {\n return action.selectionState === 'finish' && closeOnSelect;\n }\n if (action.name === 'setValueFromShortcut') {\n return action.changeImportance === 'accept';\n }\n return false;\n};\n\n/**\n * Manage the value lifecycle of all the pickers.\n */\nexport const usePickerValue = ({\n props,\n valueManager,\n valueType,\n wrapperVariant,\n validator\n}) => {\n const {\n onAccept,\n onChange,\n value: inValueWithoutRenderTimezone,\n defaultValue: inDefaultValue,\n closeOnSelect = wrapperVariant === 'desktop',\n timezone: timezoneProp\n } = props;\n const {\n current: defaultValue\n } = React.useRef(inDefaultValue);\n const {\n current: isControlled\n } = React.useRef(inValueWithoutRenderTimezone !== undefined);\n\n /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (inValueWithoutRenderTimezone !== undefined)) {\n console.error([`MUI X: A component is changing the ${isControlled ? '' : 'un'}controlled value of a picker to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled value` + '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 }, [inValueWithoutRenderTimezone]);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== inDefaultValue) {\n console.error([`MUI X: A component is changing the defaultValue of an uncontrolled picker after being initialized. ` + `To suppress this warning opt to use a controlled value.`].join('\\n'));\n }\n }, [JSON.stringify(defaultValue)]);\n }\n /* eslint-enable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\n\n const utils = useUtils();\n const adapter = useLocalizationContext();\n const {\n isOpen,\n setIsOpen\n } = useOpenState(props);\n const {\n timezone,\n value: inValueWithTimezoneToRender,\n handleValueChange\n } = useValueWithTimezone({\n timezone: timezoneProp,\n value: inValueWithoutRenderTimezone,\n defaultValue,\n onChange,\n valueManager\n });\n const [dateState, setDateState] = React.useState(() => {\n let initialValue;\n if (inValueWithTimezoneToRender !== undefined) {\n initialValue = inValueWithTimezoneToRender;\n } else if (defaultValue !== undefined) {\n initialValue = defaultValue;\n } else {\n initialValue = valueManager.emptyValue;\n }\n return {\n draft: initialValue,\n lastPublishedValue: initialValue,\n lastCommittedValue: initialValue,\n lastControlledValue: inValueWithTimezoneToRender,\n hasBeenModifiedSinceMount: false\n };\n });\n const {\n getValidationErrorForNewValue\n } = useValidation({\n props,\n validator,\n timezone,\n value: dateState.draft,\n onError: props.onError\n });\n const updateDate = useEventCallback(action => {\n const updaterParams = {\n action,\n dateState,\n hasChanged: comparison => !valueManager.areValuesEqual(utils, action.value, comparison),\n isControlled,\n closeOnSelect\n };\n const shouldPublish = shouldPublishValue(updaterParams);\n const shouldCommit = shouldCommitValue(updaterParams);\n const shouldClose = shouldClosePicker(updaterParams);\n setDateState(prev => _extends({}, prev, {\n draft: action.value,\n lastPublishedValue: shouldPublish ? action.value : prev.lastPublishedValue,\n lastCommittedValue: shouldCommit ? action.value : prev.lastCommittedValue,\n hasBeenModifiedSinceMount: true\n }));\n let cachedContext = null;\n const getContext = () => {\n if (!cachedContext) {\n const validationError = action.name === 'setValueFromField' ? action.context.validationError : getValidationErrorForNewValue(action.value);\n cachedContext = {\n validationError\n };\n if (action.name === 'setValueFromShortcut') {\n cachedContext.shortcut = action.shortcut;\n }\n }\n return cachedContext;\n };\n if (shouldPublish) {\n handleValueChange(action.value, getContext());\n }\n if (shouldCommit && onAccept) {\n onAccept(action.value, getContext());\n }\n if (shouldClose) {\n setIsOpen(false);\n }\n });\n if (inValueWithTimezoneToRender !== undefined && (dateState.lastControlledValue === undefined || !valueManager.areValuesEqual(utils, dateState.lastControlledValue, inValueWithTimezoneToRender))) {\n const isUpdateComingFromPicker = valueManager.areValuesEqual(utils, dateState.draft, inValueWithTimezoneToRender);\n setDateState(prev => _extends({}, prev, {\n lastControlledValue: inValueWithTimezoneToRender\n }, isUpdateComingFromPicker ? {} : {\n lastCommittedValue: inValueWithTimezoneToRender,\n lastPublishedValue: inValueWithTimezoneToRender,\n draft: inValueWithTimezoneToRender,\n hasBeenModifiedSinceMount: true\n }));\n }\n const handleClear = useEventCallback(() => {\n updateDate({\n value: valueManager.emptyValue,\n name: 'setValueFromAction',\n pickerAction: 'clear'\n });\n });\n const handleAccept = useEventCallback(() => {\n updateDate({\n value: dateState.lastPublishedValue,\n name: 'setValueFromAction',\n pickerAction: 'accept'\n });\n });\n const handleDismiss = useEventCallback(() => {\n updateDate({\n value: dateState.lastPublishedValue,\n name: 'setValueFromAction',\n pickerAction: 'dismiss'\n });\n });\n const handleCancel = useEventCallback(() => {\n updateDate({\n value: dateState.lastCommittedValue,\n name: 'setValueFromAction',\n pickerAction: 'cancel'\n });\n });\n const handleSetToday = useEventCallback(() => {\n updateDate({\n value: valueManager.getTodayValue(utils, timezone, valueType),\n name: 'setValueFromAction',\n pickerAction: 'today'\n });\n });\n const handleOpen = useEventCallback(event => {\n event.preventDefault();\n setIsOpen(true);\n });\n const handleClose = useEventCallback(event => {\n event?.preventDefault();\n setIsOpen(false);\n });\n const handleChange = useEventCallback((newValue, selectionState = 'partial') => updateDate({\n name: 'setValueFromView',\n value: newValue,\n selectionState\n }));\n const handleSelectShortcut = useEventCallback((newValue, changeImportance, shortcut) => updateDate({\n name: 'setValueFromShortcut',\n value: newValue,\n changeImportance,\n shortcut\n }));\n const handleChangeFromField = useEventCallback((newValue, context) => updateDate({\n name: 'setValueFromField',\n value: newValue,\n context\n }));\n const actions = {\n onClear: handleClear,\n onAccept: handleAccept,\n onDismiss: handleDismiss,\n onCancel: handleCancel,\n onSetToday: handleSetToday,\n onOpen: handleOpen,\n onClose: handleClose\n };\n const fieldResponse = {\n value: dateState.draft,\n onChange: handleChangeFromField\n };\n const viewValue = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);\n const viewResponse = {\n value: viewValue,\n onChange: handleChange,\n onClose: handleClose,\n open: isOpen\n };\n const isValid = testedValue => {\n const error = validator({\n adapter,\n value: testedValue,\n timezone,\n props\n });\n return !valueManager.hasError(error);\n };\n const layoutResponse = _extends({}, actions, {\n value: viewValue,\n onChange: handleChange,\n onSelectShortcut: handleSelectShortcut,\n isValid\n });\n const contextValue = React.useMemo(() => ({\n onOpen: handleOpen,\n onClose: handleClose,\n open: isOpen\n }), [isOpen, handleClose, handleOpen]);\n return {\n open: isOpen,\n fieldProps: fieldResponse,\n viewProps: viewResponse,\n layoutProps: layoutResponse,\n actions,\n contextValue\n };\n};","import * as React from 'react';\nexport const useOpenState = ({\n open,\n onOpen,\n onClose\n}) => {\n const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;\n const [openState, setIsOpenState] = React.useState(false);\n\n // It is required to update inner state in useEffect in order to avoid situation when\n // Our component is not mounted yet, but `open` state is set to `true` (for example initially opened)\n React.useEffect(() => {\n if (isControllingOpenProp) {\n if (typeof open !== 'boolean') {\n throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');\n }\n setIsOpenState(open);\n }\n }, [isControllingOpenProp, open]);\n const setIsOpen = React.useCallback(newIsOpen => {\n if (!isControllingOpenProp) {\n setIsOpenState(newIsOpen);\n }\n if (newIsOpen && onOpen) {\n onOpen();\n }\n if (!newIsOpen && onClose) {\n onClose();\n }\n }, [isControllingOpenProp, onOpen, onClose]);\n return {\n isOpen: openState,\n setIsOpen\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"sx\"];\nimport * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useViews } from \"../useViews.js\";\nimport { isTimeView } from \"../../utils/time-utils.js\";\n\n/**\n * Props used to handle the views that are common to all pickers.\n */\n\n/**\n * Props used to handle the views of the pickers.\n */\n\n/**\n * Props used to handle the value of the pickers.\n */\n\n/**\n * Manage the views of all the pickers:\n * - Handles the view switch\n * - Handles the switch between UI views and field views\n * - Handles the focus management when switching views\n */\nexport const usePickerViews = ({\n props,\n propsFromPickerValue,\n additionalViewProps,\n autoFocusView,\n rendererInterceptor,\n fieldRef\n}) => {\n const {\n onChange,\n open,\n onClose\n } = propsFromPickerValue;\n const {\n view: inView,\n views,\n openTo,\n onViewChange,\n viewRenderers,\n timezone\n } = props;\n const propsToForwardToView = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n view,\n setView,\n defaultView,\n focusedView,\n setFocusedView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onChange,\n onViewChange,\n autoFocus: autoFocusView\n });\n const {\n hasUIView,\n viewModeLookup\n } = React.useMemo(() => views.reduce((acc, viewForReduce) => {\n let viewMode;\n if (viewRenderers[viewForReduce] != null) {\n viewMode = 'UI';\n } else {\n viewMode = 'field';\n }\n acc.viewModeLookup[viewForReduce] = viewMode;\n if (viewMode === 'UI') {\n acc.hasUIView = true;\n }\n return acc;\n }, {\n hasUIView: false,\n viewModeLookup: {}\n }), [viewRenderers, views]);\n const timeViewsCount = React.useMemo(() => views.reduce((acc, viewForReduce) => {\n if (viewRenderers[viewForReduce] != null && isTimeView(viewForReduce)) {\n return acc + 1;\n }\n return acc;\n }, 0), [viewRenderers, views]);\n const currentViewMode = viewModeLookup[view];\n const shouldRestoreFocus = useEventCallback(() => currentViewMode === 'UI');\n const [popperView, setPopperView] = React.useState(currentViewMode === 'UI' ? view : null);\n if (popperView !== view && viewModeLookup[view] === 'UI') {\n setPopperView(view);\n }\n useEnhancedEffect(() => {\n // Handle case of `DateTimePicker` without time renderers\n if (currentViewMode === 'field' && open) {\n onClose();\n setTimeout(() => {\n fieldRef?.current?.setSelectedSections(view);\n // focusing the input before the range selection is done\n // calling it outside of timeout results in an inconsistent behavior between Safari And Chrome\n fieldRef?.current?.focusField(view);\n });\n }\n }, [view]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEnhancedEffect(() => {\n if (!open) {\n return;\n }\n let newView = view;\n\n // If the current view is a field view, go to the last popper view\n if (currentViewMode === 'field' && popperView != null) {\n newView = popperView;\n }\n\n // If the current view is not the default view and both are UI views\n if (newView !== defaultView && viewModeLookup[newView] === 'UI' && viewModeLookup[defaultView] === 'UI') {\n newView = defaultView;\n }\n if (newView !== view) {\n setView(newView);\n }\n setFocusedView(newView, true);\n }, [open]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const layoutProps = {\n views,\n view: popperView,\n onViewChange: setView\n };\n return {\n hasUIView,\n shouldRestoreFocus,\n layoutProps,\n renderCurrentView: () => {\n if (popperView == null) {\n return null;\n }\n const renderer = viewRenderers[popperView];\n if (renderer == null) {\n return null;\n }\n const rendererProps = _extends({}, propsToForwardToView, additionalViewProps, propsFromPickerValue, {\n views,\n timezone,\n onChange: setValueAndGoToNextView,\n view: popperView,\n onViewChange: setView,\n focusedView,\n onFocusedViewChange: setFocusedView,\n showViewSwitcher: timeViewsCount > 1,\n timeViewsCount\n });\n if (rendererInterceptor) {\n return rendererInterceptor(viewRenderers, popperView, rendererProps);\n }\n return renderer(rendererProps);\n }\n };\n};","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { arrayIncludes } from \"../utils/utils.js\";\nfunction getOrientation() {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n }\n\n // Support IOS safari\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n return 'portrait';\n}\nexport const useIsLandscape = (views, customOrientation) => {\n const [orientation, setOrientation] = React.useState(getOrientation);\n useEnhancedEffect(() => {\n const eventHandler = () => {\n setOrientation(getOrientation());\n };\n window.addEventListener('orientationchange', eventHandler);\n return () => {\n window.removeEventListener('orientationchange', eventHandler);\n };\n }, []);\n if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {\n // could not display 13:34:44 in landscape mode\n return false;\n }\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useRtl } from '@mui/system/RtlProvider';\nimport { useIsLandscape } from \"../useIsLandscape.js\";\n\n/**\n * Props used to create the layout of the views.\n * Those props are exposed on all the pickers.\n */\n\n/**\n * Prepare the props for the view layout (managed by `PickersLayout`)\n */\nexport const usePickerLayoutProps = ({\n props,\n propsFromPickerValue,\n propsFromPickerViews,\n wrapperVariant\n}) => {\n const {\n orientation\n } = props;\n const isLandscape = useIsLandscape(propsFromPickerViews.views, orientation);\n const isRtl = useRtl();\n const layoutProps = _extends({}, propsFromPickerViews, propsFromPickerValue, {\n isLandscape,\n isRtl,\n wrapperVariant,\n disabled: props.disabled,\n readOnly: props.readOnly\n });\n return {\n layoutProps\n };\n};","import { warnOnce } from '@mui/x-internals/warning';\nimport { usePickerValue } from \"./usePickerValue.js\";\nimport { usePickerViews } from \"./usePickerViews.js\";\nimport { usePickerLayoutProps } from \"./usePickerLayoutProps.js\";\nimport { usePickerOwnerState } from \"./usePickerOwnerState.js\";\nexport const usePicker = ({\n props,\n valueManager,\n valueType,\n wrapperVariant,\n additionalViewProps,\n validator,\n autoFocusView,\n rendererInterceptor,\n fieldRef\n}) => {\n if (process.env.NODE_ENV !== 'production') {\n if (props.renderInput != null) {\n warnOnce(['MUI X: The `renderInput` prop has been removed in version 6.0 of the Date and Time Pickers.', 'You can replace it with the `textField` component slot in most cases.', 'For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v5/#input-renderer-required-in-v5).']);\n }\n }\n const pickerValueResponse = usePickerValue({\n props,\n valueManager,\n valueType,\n wrapperVariant,\n validator\n });\n const pickerViewsResponse = usePickerViews({\n props,\n additionalViewProps,\n autoFocusView,\n fieldRef,\n propsFromPickerValue: pickerValueResponse.viewProps,\n rendererInterceptor\n });\n const pickerLayoutResponse = usePickerLayoutProps({\n props,\n wrapperVariant,\n propsFromPickerValue: pickerValueResponse.layoutProps,\n propsFromPickerViews: pickerViewsResponse.layoutProps\n });\n const pickerOwnerState = usePickerOwnerState({\n props,\n pickerValueResponse\n });\n return {\n // Picker value\n open: pickerValueResponse.open,\n actions: pickerValueResponse.actions,\n fieldProps: pickerValueResponse.fieldProps,\n // Picker views\n renderCurrentView: pickerViewsResponse.renderCurrentView,\n hasUIView: pickerViewsResponse.hasUIView,\n shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,\n // Picker layout\n layoutProps: pickerLayoutResponse.layoutProps,\n // Picker context\n contextValue: pickerValueResponse.contextValue,\n // Picker owner state\n ownerState: pickerOwnerState\n };\n};","import * as React from 'react';\nexport function usePickerOwnerState(parameters) {\n const {\n props,\n pickerValueResponse\n } = parameters;\n return React.useMemo(() => ({\n value: pickerValueResponse.viewProps.value,\n open: pickerValueResponse.open,\n disabled: props.disabled ?? false,\n readOnly: props.readOnly ?? false\n }), [pickerValueResponse.viewProps.value, pickerValueResponse.open, props.disabled, props.readOnly]);\n}","import { getPickersLocalization } from \"./utils/getPickersLocalization.js\";\n\n// This object is not Partial because it is the default values\n\nconst enUSPickers = {\n // Calendar navigation\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n // View navigation\n openPreviousView: 'Open previous view',\n openNextView: 'Open next view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange labels\n start: 'Start',\n end: 'End',\n startDate: 'Start date',\n startTime: 'Start time',\n endDate: 'End date',\n endTime: 'End time',\n // Action bar\n cancelButtonLabel: 'Cancel',\n clearButtonLabel: 'Clear',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Today',\n // Toolbar titles\n datePickerToolbarTitle: 'Select date',\n dateTimePickerToolbarTitle: 'Select date & time',\n timePickerToolbarTitle: 'Select time',\n dateRangePickerToolbarTitle: 'Select date range',\n // Clock labels\n clockLabelText: (view, time, utils, formattedTime) => `Select ${view}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'No time selected' : `Selected time is ${formattedTime ?? utils.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} hours`,\n minutesClockNumberText: minutes => `${minutes} minutes`,\n secondsClockNumberText: seconds => `${seconds} seconds`,\n // Digital clock labels\n selectViewText: view => `Select ${view}`,\n // Calendar labels\n calendarWeekNumberHeaderLabel: 'Week number',\n calendarWeekNumberHeaderText: '#',\n calendarWeekNumberAriaLabelText: weekNumber => `Week ${weekNumber}`,\n calendarWeekNumberText: weekNumber => `${weekNumber}`,\n // Open picker labels\n openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Choose date, selected date is ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Choose date',\n openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Choose time, selected time is ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Choose time',\n fieldClearLabel: 'Clear',\n // Table labels\n timeTableLabel: 'pick time',\n dateTableLabel: 'pick date',\n // Field section placeholders\n fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),\n fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',\n fieldDayPlaceholder: () => 'DD',\n fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',\n fieldHoursPlaceholder: () => 'hh',\n fieldMinutesPlaceholder: () => 'mm',\n fieldSecondsPlaceholder: () => 'ss',\n fieldMeridiemPlaceholder: () => 'aa',\n // View names\n year: 'Year',\n month: 'Month',\n day: 'Day',\n weekDay: 'Week day',\n hours: 'Hours',\n minutes: 'Minutes',\n seconds: 'Seconds',\n meridiem: 'Meridiem',\n // Common\n empty: 'Empty'\n};\nexport const DEFAULT_LOCALE = enUSPickers;\nexport const enUS = getPickersLocalization(enUSPickers);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { MuiPickersAdapterContext } from \"../../LocalizationProvider/LocalizationProvider.js\";\nimport { DEFAULT_LOCALE } from \"../../locales/enUS.js\";\nexport const useLocalizationContext = () => {\n const localization = React.useContext(MuiPickersAdapterContext);\n if (localization === null) {\n throw new Error(['MUI X: Can not find the date and time pickers localization context.', 'It looks like you forgot to wrap your component in LocalizationProvider.', 'This can also happen if you are bundling multiple versions of the `@mui/x-date-pickers` package'].join('\\n'));\n }\n if (localization.utils === null) {\n throw new Error(['MUI X: Can not find the date and time pickers adapter from its localization context.', 'It looks like you forgot to pass a `dateAdapter` to your LocalizationProvider.'].join('\\n'));\n }\n const localeText = React.useMemo(() => _extends({}, DEFAULT_LOCALE, localization.localeText), [localization.localeText]);\n return React.useMemo(() => _extends({}, localization, {\n localeText\n }), [localization, localeText]);\n};\nexport const useUtils = () => useLocalizationContext().utils;\nexport const useDefaultDates = () => useLocalizationContext().defaultDates;\nexport const useNow = timezone => {\n const utils = useUtils();\n const now = React.useRef();\n if (now.current === undefined) {\n now.current = utils.date(undefined, timezone);\n }\n return now.current;\n};","import * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useControlled from '@mui/utils/useControlled';\nimport { useUtils } from \"./useUtils.js\";\n/**\n * Hooks making sure that:\n * - The value returned by `onChange` always have the timezone of `props.value` or `props.defaultValue` if defined\n * - The value rendered is always the one from `props.timezone` if defined\n */\nexport const useValueWithTimezone = ({\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager\n}) => {\n const utils = useUtils();\n const firstDefaultValue = React.useRef(defaultValue);\n const inputValue = valueProp ?? firstDefaultValue.current ?? valueManager.emptyValue;\n const inputTimezone = React.useMemo(() => valueManager.getTimezone(utils, inputValue), [utils, valueManager, inputValue]);\n const setInputTimezone = useEventCallback(newValue => {\n if (inputTimezone == null) {\n return newValue;\n }\n return valueManager.setTimezone(utils, inputTimezone, newValue);\n });\n const timezoneToRender = timezoneProp ?? inputTimezone ?? 'default';\n const valueWithTimezoneToRender = React.useMemo(() => valueManager.setTimezone(utils, timezoneToRender, inputValue), [valueManager, utils, timezoneToRender, inputValue]);\n const handleValueChange = useEventCallback((newValue, ...otherParams) => {\n const newValueWithInputTimezone = setInputTimezone(newValue);\n onChange?.(newValueWithInputTimezone, ...otherParams);\n });\n return {\n value: valueWithTimezoneToRender,\n handleValueChange,\n timezone: timezoneToRender\n };\n};\n\n/**\n * Wrapper around `useControlled` and `useValueWithTimezone`\n */\nexport const useControlledValueWithTimezone = ({\n name,\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n valueManager\n}) => {\n const [valueWithInputTimezone, setValue] = useControlled({\n name,\n state: 'value',\n controlled: valueProp,\n default: defaultValue ?? valueManager.emptyValue\n });\n const onChange = useEventCallback((newValue, ...otherParams) => {\n setValue(newValue);\n onChangeProp?.(newValue, ...otherParams);\n });\n return useValueWithTimezone({\n timezone: timezoneProp,\n value: valueWithInputTimezone,\n defaultValue: undefined,\n onChange,\n valueManager\n });\n};","import * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { unstable_useControlled as useControlled } from '@mui/utils';\nlet warnedOnceNotValidView = false;\nexport function useViews({\n onChange,\n onViewChange,\n openTo,\n view: inView,\n views,\n autoFocus,\n focusedView: inFocusedView,\n onFocusedViewChange\n}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnceNotValidView) {\n if (inView != null && !views.includes(inView)) {\n console.warn(`MUI X: \\`view=\"${inView}\"\\` is not a valid prop.`, `It must be an element of \\`views=[\"${views.join('\", \"')}\"]\\`.`);\n warnedOnceNotValidView = true;\n }\n if (inView == null && openTo != null && !views.includes(openTo)) {\n console.warn(`MUI X: \\`openTo=\"${openTo}\"\\` is not a valid prop.`, `It must be an element of \\`views=[\"${views.join('\", \"')}\"]\\`.`);\n warnedOnceNotValidView = true;\n }\n }\n }\n const previousOpenTo = React.useRef(openTo);\n const previousViews = React.useRef(views);\n const defaultView = React.useRef(views.includes(openTo) ? openTo : views[0]);\n const [view, setView] = useControlled({\n name: 'useViews',\n state: 'view',\n controlled: inView,\n default: defaultView.current\n });\n const defaultFocusedView = React.useRef(autoFocus ? view : null);\n const [focusedView, setFocusedView] = useControlled({\n name: 'useViews',\n state: 'focusedView',\n controlled: inFocusedView,\n default: defaultFocusedView.current\n });\n React.useEffect(() => {\n // Update the current view when `openTo` or `views` props change\n if (previousOpenTo.current && previousOpenTo.current !== openTo || previousViews.current && previousViews.current.some(previousView => !views.includes(previousView))) {\n setView(views.includes(openTo) ? openTo : views[0]);\n previousViews.current = views;\n previousOpenTo.current = openTo;\n }\n }, [openTo, setView, view, views]);\n const viewIndex = views.indexOf(view);\n const previousView = views[viewIndex - 1] ?? null;\n const nextView = views[viewIndex + 1] ?? null;\n const handleFocusedViewChange = useEventCallback((viewToFocus, hasFocus) => {\n if (hasFocus) {\n // Focus event\n setFocusedView(viewToFocus);\n } else {\n // Blur event\n setFocusedView(prevFocusedView => viewToFocus === prevFocusedView ? null : prevFocusedView // If false the blur is due to view switching\n );\n }\n onFocusedViewChange?.(viewToFocus, hasFocus);\n });\n const handleChangeView = useEventCallback(newView => {\n // always keep the focused view in sync\n handleFocusedViewChange(newView, true);\n if (newView === view) {\n return;\n }\n setView(newView);\n if (onViewChange) {\n onViewChange(newView);\n }\n });\n const goToNextView = useEventCallback(() => {\n if (nextView) {\n handleChangeView(nextView);\n }\n });\n const setValueAndGoToNextView = useEventCallback((value, currentViewSelectionState, selectedView) => {\n const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';\n const hasMoreViews = selectedView ?\n // handles case like `DateTimePicker`, where a view might return a `finish` selection state\n // but when it's not the final view given all `views` -> overall selection state should be `partial`.\n views.indexOf(selectedView) < views.length - 1 : Boolean(nextView);\n const globalSelectionState = isSelectionFinishedOnCurrentView && hasMoreViews ? 'partial' : currentViewSelectionState;\n onChange(value, globalSelectionState, selectedView);\n // Detects if the selected view is not the active one.\n // Can happen if multiple views are displayed, like in `DesktopDateTimePicker` or `MultiSectionDigitalClock`.\n if (selectedView && selectedView !== view) {\n const nextViewAfterSelected = views[views.indexOf(selectedView) + 1];\n if (nextViewAfterSelected) {\n // move to next view after the selected one\n handleChangeView(nextViewAfterSelected);\n }\n } else if (isSelectionFinishedOnCurrentView) {\n goToNextView();\n }\n });\n return {\n view,\n setView: handleChangeView,\n focusedView,\n setFocusedView: handleFocusedViewChange,\n nextView,\n previousView,\n // Always return up-to-date default view instead of the initial one (i.e. defaultView.current)\n defaultView: views.includes(openTo) ? openTo : views[0],\n goToNextView,\n setValueAndGoToNextView\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"enableAccessibleFieldDOMStructure\"],\n _excluded2 = [\"InputProps\", \"readOnly\"],\n _excluded3 = [\"onPaste\", \"onKeyDown\", \"inputMode\", \"readOnly\", \"InputProps\", \"inputProps\", \"inputRef\"];\nexport const convertFieldResponseIntoMuiTextFieldProps = _ref => {\n let {\n enableAccessibleFieldDOMStructure\n } = _ref,\n fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (enableAccessibleFieldDOMStructure) {\n const {\n InputProps,\n readOnly\n } = fieldResponse,\n other = _objectWithoutPropertiesLoose(fieldResponse, _excluded2);\n return _extends({}, other, {\n InputProps: _extends({}, InputProps ?? {}, {\n readOnly\n })\n });\n }\n const {\n onPaste,\n onKeyDown,\n inputMode,\n readOnly,\n InputProps,\n inputProps,\n inputRef\n } = fieldResponse,\n other = _objectWithoutPropertiesLoose(fieldResponse, _excluded3);\n return _extends({}, other, {\n InputProps: _extends({}, InputProps ?? {}, {\n readOnly\n }),\n inputProps: _extends({}, inputProps ?? {}, {\n inputMode,\n onPaste,\n onKeyDown,\n ref: inputRef\n })\n });\n};","import { areViewsEqual } from \"./views.js\";\nexport const mergeDateAndTime = (utils, dateParam, timeParam) => {\n let mergedDate = dateParam;\n mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));\n mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));\n mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));\n mergedDate = utils.setMilliseconds(mergedDate, utils.getMilliseconds(timeParam));\n return mergedDate;\n};\nexport const findClosestEnabledDate = ({\n date,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n isDateDisabled,\n utils,\n timezone\n}) => {\n const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);\n if (disablePast && utils.isBefore(minDate, today)) {\n minDate = today;\n }\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n let forward = date;\n let backward = date;\n if (utils.isBefore(date, minDate)) {\n forward = minDate;\n backward = null;\n }\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = maxDate;\n }\n forward = null;\n }\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n if (forward) {\n if (!isDateDisabled(forward)) {\n return forward;\n }\n forward = utils.addDays(forward, 1);\n }\n if (backward) {\n if (!isDateDisabled(backward)) {\n return backward;\n }\n backward = utils.addDays(backward, -1);\n }\n }\n return null;\n};\nexport const replaceInvalidDateByNull = (utils, value) => value == null || !utils.isValid(value) ? null : value;\nexport const applyDefaultDate = (utils, value, defaultValue) => {\n if (value == null || !utils.isValid(value)) {\n return defaultValue;\n }\n return value;\n};\nexport const areDatesEqual = (utils, a, b) => {\n if (!utils.isValid(a) && a != null && !utils.isValid(b) && b != null) {\n return true;\n }\n return utils.isEqual(a, b);\n};\nexport const getMonthsInYear = (utils, year) => {\n const firstMonth = utils.startOfYear(year);\n const months = [firstMonth];\n while (months.length < 12) {\n const prevMonth = months[months.length - 1];\n months.push(utils.addMonths(prevMonth, 1));\n }\n return months;\n};\nexport const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);\nexport const formatMeridiem = (utils, meridiem) => {\n const date = utils.setHours(utils.date(), meridiem === 'am' ? 2 : 14);\n return utils.format(date, 'meridiem');\n};\nconst dateViews = ['year', 'month', 'day'];\nexport const isDatePickerView = view => dateViews.includes(view);\nexport const resolveDateFormat = (utils, {\n format,\n views\n}, isInToolbar) => {\n if (format != null) {\n return format;\n }\n const formats = utils.formats;\n if (areViewsEqual(views, ['year'])) {\n return formats.year;\n }\n if (areViewsEqual(views, ['month'])) {\n return formats.month;\n }\n if (areViewsEqual(views, ['day'])) {\n return formats.dayOfMonth;\n }\n if (areViewsEqual(views, ['month', 'year'])) {\n return `${formats.month} ${formats.year}`;\n }\n if (areViewsEqual(views, ['day', 'month'])) {\n return `${formats.month} ${formats.dayOfMonth}`;\n }\n if (isInToolbar) {\n // Little localization hack (Google is doing the same for android native pickers):\n // For english localization it is convenient to include weekday into the date \"Mon, Jun 1\".\n // For other locales using strings like \"June 1\", without weekday.\n return /en/.test(utils.getCurrentLocaleCode()) ? formats.normalDateWithWeekday : formats.normalDate;\n }\n return formats.keyboardDate;\n};\nexport const getWeekdays = (utils, date) => {\n const start = utils.startOfWeek(date);\n return [0, 1, 2, 3, 4, 5, 6].map(diff => utils.addDays(start, diff));\n};","import { createIsAfterIgnoreDatePart } from \"./time-utils.js\";\nimport { mergeDateAndTime, getTodayDate } from \"./date-utils.js\";\nexport const SECTION_TYPE_GRANULARITY = {\n year: 1,\n month: 2,\n day: 3,\n hours: 4,\n minutes: 5,\n seconds: 6,\n milliseconds: 7\n};\nexport const getSectionTypeGranularity = sections => Math.max(...sections.map(section => SECTION_TYPE_GRANULARITY[section.type] ?? 1));\nconst roundDate = (utils, granularity, date) => {\n if (granularity === SECTION_TYPE_GRANULARITY.year) {\n return utils.startOfYear(date);\n }\n if (granularity === SECTION_TYPE_GRANULARITY.month) {\n return utils.startOfMonth(date);\n }\n if (granularity === SECTION_TYPE_GRANULARITY.day) {\n return utils.startOfDay(date);\n }\n\n // We don't have startOfHour / startOfMinute / startOfSecond\n let roundedDate = date;\n if (granularity < SECTION_TYPE_GRANULARITY.minutes) {\n roundedDate = utils.setMinutes(roundedDate, 0);\n }\n if (granularity < SECTION_TYPE_GRANULARITY.seconds) {\n roundedDate = utils.setSeconds(roundedDate, 0);\n }\n if (granularity < SECTION_TYPE_GRANULARITY.milliseconds) {\n roundedDate = utils.setMilliseconds(roundedDate, 0);\n }\n return roundedDate;\n};\nexport const getDefaultReferenceDate = ({\n props,\n utils,\n granularity,\n timezone,\n getTodayDate: inGetTodayDate\n}) => {\n let referenceDate = inGetTodayDate ? inGetTodayDate() : roundDate(utils, granularity, getTodayDate(utils, timezone));\n if (props.minDate != null && utils.isAfterDay(props.minDate, referenceDate)) {\n referenceDate = roundDate(utils, granularity, props.minDate);\n }\n if (props.maxDate != null && utils.isBeforeDay(props.maxDate, referenceDate)) {\n referenceDate = roundDate(utils, granularity, props.maxDate);\n }\n const isAfter = createIsAfterIgnoreDatePart(props.disableIgnoringDatePartForTimeValidation ?? false, utils);\n if (props.minTime != null && isAfter(props.minTime, referenceDate)) {\n referenceDate = roundDate(utils, granularity, props.disableIgnoringDatePartForTimeValidation ? props.minTime : mergeDateAndTime(utils, referenceDate, props.minTime));\n }\n if (props.maxTime != null && isAfter(referenceDate, props.maxTime)) {\n referenceDate = roundDate(utils, granularity, props.disableIgnoringDatePartForTimeValidation ? props.maxTime : mergeDateAndTime(utils, referenceDate, props.maxTime));\n }\n return referenceDate;\n};","import { areViewsEqual } from \"./views.js\";\nconst timeViews = ['hours', 'minutes', 'seconds'];\nexport const isTimeView = view => timeViews.includes(view);\nexport const isInternalTimeView = view => timeViews.includes(view) || view === 'meridiem';\nexport const getMeridiem = (date, utils) => {\n if (!date) {\n return null;\n }\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\nexport const convertValueToMeridiem = (value, meridiem, ampm) => {\n if (ampm) {\n const currentMeridiem = value >= 12 ? 'pm' : 'am';\n if (currentMeridiem !== meridiem) {\n return meridiem === 'am' ? value - 12 : value + 12;\n }\n }\n return value;\n};\nexport const convertToMeridiem = (time, meridiem, ampm, utils) => {\n const newHoursAmount = convertValueToMeridiem(utils.getHours(time), meridiem, ampm);\n return utils.setHours(time, newHoursAmount);\n};\nexport const getSecondsInDay = (date, utils) => {\n return utils.getHours(date) * 3600 + utils.getMinutes(date) * 60 + utils.getSeconds(date);\n};\nexport const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation, utils) => (dateLeft, dateRight) => {\n if (disableIgnoringDatePartForTimeValidation) {\n return utils.isAfter(dateLeft, dateRight);\n }\n return getSecondsInDay(dateLeft, utils) > getSecondsInDay(dateRight, utils);\n};\nexport const resolveTimeFormat = (utils, {\n format,\n views,\n ampm\n}) => {\n if (format != null) {\n return format;\n }\n const formats = utils.formats;\n if (areViewsEqual(views, ['hours'])) {\n return ampm ? `${formats.hours12h} ${formats.meridiem}` : formats.hours24h;\n }\n if (areViewsEqual(views, ['minutes'])) {\n return formats.minutes;\n }\n if (areViewsEqual(views, ['seconds'])) {\n return formats.seconds;\n }\n if (areViewsEqual(views, ['minutes', 'seconds'])) {\n return `${formats.minutes}:${formats.seconds}`;\n }\n if (areViewsEqual(views, ['hours', 'minutes', 'seconds'])) {\n return ampm ? `${formats.hours12h}:${formats.minutes}:${formats.seconds} ${formats.meridiem}` : `${formats.hours24h}:${formats.minutes}:${formats.seconds}`;\n }\n return ampm ? `${formats.hours12h}:${formats.minutes} ${formats.meridiem}` : `${formats.hours24h}:${formats.minutes}`;\n};","/* Use it instead of .includes method for IE support */\nexport function arrayIncludes(array, itemOrItems) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n return array.indexOf(itemOrItems) !== -1;\n}\nexport const onSpaceOrEnter = (innerFn, externalEvent) => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n innerFn(event);\n\n // prevent any side effects\n event.preventDefault();\n event.stopPropagation();\n }\n if (externalEvent) {\n externalEvent(event);\n }\n};\nexport const executeInTheNextEventLoopTick = fn => {\n setTimeout(fn, 0);\n};\n\n// https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/\nexport const getActiveElement = (root = document) => {\n const activeEl = root.activeElement;\n if (!activeEl) {\n return null;\n }\n if (activeEl.shadowRoot) {\n return getActiveElement(activeEl.shadowRoot);\n }\n return activeEl;\n};\n\n/**\n * Gets the index of the focused list item in a given ul list element.\n *\n * @param {HTMLUListElement} listElement - The list element to search within.\n * @returns {number} The index of the focused list item, or -1 if none is focused.\n */\nexport const getFocusedListItemIndex = listElement => {\n const children = Array.from(listElement.children);\n return children.indexOf(getActiveElement(document));\n};\nexport const DEFAULT_DESKTOP_MODE_MEDIA_QUERY = '@media (pointer: fine)';","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\", \"referenceDate\"];\nimport { areDatesEqual, getTodayDate, replaceInvalidDateByNull } from \"./date-utils.js\";\nimport { getDefaultReferenceDate } from \"./getDefaultReferenceDate.js\";\nimport { createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from \"../hooks/useField/useField.utils.js\";\nexport const singleItemValueManager = {\n emptyValue: null,\n getTodayValue: getTodayDate,\n getInitialReferenceValue: _ref => {\n let {\n value,\n referenceDate\n } = _ref,\n params = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (value != null && params.utils.isValid(value)) {\n return value;\n }\n if (referenceDate != null) {\n return referenceDate;\n }\n return getDefaultReferenceDate(params);\n },\n cleanValue: replaceInvalidDateByNull,\n areValuesEqual: areDatesEqual,\n isSameError: (a, b) => a === b,\n hasError: error => error != null,\n defaultErrorState: null,\n getTimezone: (utils, value) => value == null || !utils.isValid(value) ? null : utils.getTimezone(value),\n setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)\n};\nexport const singleItemFieldValueManager = {\n updateReferenceValue: (utils, value, prevReferenceValue) => value == null || !utils.isValid(value) ? prevReferenceValue : value,\n getSectionsFromValue: (utils, date, prevSections, getSectionsFromDate) => {\n const shouldReUsePrevDateSections = !utils.isValid(date) && !!prevSections;\n if (shouldReUsePrevDateSections) {\n return prevSections;\n }\n return getSectionsFromDate(date);\n },\n getV7HiddenInputValueFromSections: createDateStrForV7HiddenInputFromSections,\n getV6InputValueFromSections: createDateStrForV6InputFromSections,\n getActiveDateManager: (utils, state) => ({\n date: state.value,\n referenceDate: state.referenceValue,\n getSections: sections => sections,\n getNewValuesFromNewActiveDate: newActiveDate => ({\n value: newActiveDate,\n referenceValue: newActiveDate == null || !utils.isValid(newActiveDate) ? state.referenceValue : newActiveDate\n })\n }),\n parseValueStr: (valueStr, referenceValue, parseDate) => parseDate(valueStr.trim(), referenceValue)\n};","export const areViewsEqual = (views, expectedViews) => {\n if (views.length !== expectedViews.length) {\n return false;\n }\n return expectedViews.every(expectedView => views.includes(expectedView));\n};\nexport const applyDefaultViewProps = ({\n openTo,\n defaultOpenTo,\n views,\n defaultViews\n}) => {\n const viewsWithDefault = views ?? defaultViews;\n let openToWithDefault;\n if (openTo != null) {\n openToWithDefault = openTo;\n } else if (viewsWithDefault.includes(defaultOpenTo)) {\n openToWithDefault = defaultOpenTo;\n } else if (viewsWithDefault.length > 0) {\n openToWithDefault = viewsWithDefault[0];\n } else {\n throw new Error('MUI X: The `views` prop must contain at least one view.');\n }\n return {\n views: viewsWithDefault,\n openTo: openToWithDefault\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const getPickersLocalization = pickersTranslations => {\n return {\n components: {\n MuiLocalizationProvider: {\n defaultProps: {\n localeText: _extends({}, pickersTranslations)\n }\n }\n }\n };\n};\nexport const buildGetOpenDialogAriaText = params => {\n const {\n utils,\n formatKey,\n contextTranslation,\n propsTranslation\n } = params;\n return value => {\n const formattedValue = value !== null && utils.isValid(value) ? utils.format(value, formatKey) : null;\n const translation = propsTranslation ?? contextTranslation;\n return translation(value, utils, formattedValue);\n };\n};","export const DATE_VALIDATION_PROP_NAMES = ['disablePast', 'disableFuture', 'minDate', 'maxDate', 'shouldDisableDate', 'shouldDisableMonth', 'shouldDisableYear'];\nexport const TIME_VALIDATION_PROP_NAMES = ['disablePast', 'disableFuture', 'minTime', 'maxTime', 'shouldDisableTime', 'minutesStep', 'ampm', 'disableIgnoringDatePartForTimeValidation'];\nexport const DATE_TIME_VALIDATION_PROP_NAMES = ['minDateTime', 'maxDateTime'];\nconst VALIDATION_PROP_NAMES = [...DATE_VALIDATION_PROP_NAMES, ...TIME_VALIDATION_PROP_NAMES, ...DATE_TIME_VALIDATION_PROP_NAMES];\n/**\n * Extract the validation props for the props received by a component.\n * Limit the risk of forgetting some of them and reduce the bundle size.\n */\nexport const extractValidationProps = props => VALIDATION_PROP_NAMES.reduce((extractedProps, propName) => {\n if (props.hasOwnProperty(propName)) {\n extractedProps[propName] = props[propName];\n }\n return extractedProps;\n}, {});","'use client';\n\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useLocalizationContext } from \"../internals/hooks/useUtils.js\";\n/**\n * Utility hook to check if a given value is valid based on the provided validation props.\n * @template TDate\n * @template TValue The value type. It will be either the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.\n * @param {UseValidationOptions} options The options to configure the hook.\n * @param {TValue} options.value The value to validate.\n * @param {PickersTimezone} options.timezone The timezone to use for the validation.\n * @param {Validator} options.validator The validator function to use.\n * @param {TValidationProps} options.props The validation props, they differ depending on the component.\n * @param {(error: TError, value: TValue) => void} options.onError Callback fired when the error associated with the current value changes.\n */\nexport function useValidation(options) {\n const {\n props,\n validator,\n value,\n timezone,\n onError\n } = options;\n const adapter = useLocalizationContext();\n const previousValidationErrorRef = React.useRef(validator.valueManager.defaultErrorState);\n const validationError = validator({\n adapter,\n value,\n timezone,\n props\n });\n const hasValidationError = validator.valueManager.hasError(validationError);\n React.useEffect(() => {\n if (onError && !validator.valueManager.isSameError(validationError, previousValidationErrorRef.current)) {\n onError(validationError, value);\n }\n previousValidationErrorRef.current = validationError;\n }, [validator, onError, validationError, value]);\n const getValidationErrorForNewValue = useEventCallback(newValue => {\n return validator({\n adapter,\n value: newValue,\n timezone,\n props\n });\n });\n return {\n validationError,\n hasValidationError,\n getValidationErrorForNewValue\n };\n}","import { applyDefaultDate } from \"../internals/utils/date-utils.js\";\nimport { singleItemValueManager } from \"../internals/utils/valueManagers.js\";\nexport const validateDate = ({\n props,\n value,\n timezone,\n adapter\n}) => {\n if (value === null) {\n return null;\n }\n const {\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n disablePast,\n disableFuture\n } = props;\n const now = adapter.utils.date(undefined, timezone);\n const minDate = applyDefaultDate(adapter.utils, props.minDate, adapter.defaultDates.minDate);\n const maxDate = applyDefaultDate(adapter.utils, props.maxDate, adapter.defaultDates.maxDate);\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n case Boolean(shouldDisableDate && shouldDisableDate(value)):\n return 'shouldDisableDate';\n case Boolean(shouldDisableMonth && shouldDisableMonth(value)):\n return 'shouldDisableMonth';\n case Boolean(shouldDisableYear && shouldDisableYear(value)):\n return 'shouldDisableYear';\n case Boolean(disableFuture && adapter.utils.isAfterDay(value, now)):\n return 'disableFuture';\n case Boolean(disablePast && adapter.utils.isBeforeDay(value, now)):\n return 'disablePast';\n case Boolean(minDate && adapter.utils.isBeforeDay(value, minDate)):\n return 'minDate';\n case Boolean(maxDate && adapter.utils.isAfterDay(value, maxDate)):\n return 'maxDate';\n default:\n return null;\n }\n};\nvalidateDate.valueManager = singleItemValueManager;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
    `,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport type AgnosticPatchRoutesOnNavigationFunctionArgs<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: O[]) => void;\n};\n\nexport type AgnosticPatchRoutesOnNavigationFunction<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = (\n opts: AgnosticPatchRoutesOnNavigationFunctionArgs\n) => void | Promise;\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n dataStrategy?: DataStrategyFunction;\n patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n viewTransitionOpts?: ViewTransitionOpts;\n flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches\n .slice(0, idx + 1)\n .every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error: discoverResult.error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n abortFetcher(key);\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset,\n });\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n preventScrollReset?: boolean;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n if (!patchRoutesOnNavigationImpl) {\n return { type: \"success\", matches };\n }\n\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n path: pathname,\n matches: partialMatches,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties\n );\n },\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string,\n includeBoundary = false\n) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n initialHydration: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(state.errors)[0],\n true\n );\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n pendingActionResult[0]\n );\n }\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n initialHydration ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction shouldLoadRouteOnHydration(\n route: AgnosticDataRouteObject,\n loaderData: RouteData | null | undefined,\n errors: RouteData | null | undefined\n) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n let childrenToPatch: AgnosticDataRouteObject[];\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(\n (newRoute) =>\n !childrenToPatch.some((existingRoute) =>\n isSameRoute(newRoute, existingRoute)\n )\n );\n\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n\n childrenToPatch.push(...newRoutes);\n}\n\nfunction isSameRoute(\n newRoute: AgnosticRouteObject,\n existingRoute: AgnosticRouteObject\n): boolean {\n // Most optimal check is by id\n if (\n \"id\" in newRoute &&\n \"id\" in existingRoute &&\n newRoute.id === existingRoute.id\n ) {\n return true;\n }\n\n // Second is by pathing differences\n if (\n !(\n newRoute.index === existingRoute.index &&\n newRoute.path === existingRoute.path &&\n newRoute.caseSensitive === existingRoute.caseSensitive\n )\n ) {\n return false;\n }\n\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if (\n (!newRoute.children || newRoute.children.length === 0) &&\n (!existingRoute.children || existingRoute.children.length === 0)\n ) {\n return true;\n }\n\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children!.every((aChild, i) =>\n existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","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= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0;\n\n // Add years and months\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date;\n\n // Add weeks and days\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes and seconds\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n};\n\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result;\n\n // Check for the difference of less than month\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference);\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign;\n\n // Check for cases of one full calendar month\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n result = sign * (difference - Number(isLastMonthNotFull));\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarYears from \"../differenceInCalendarYears/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight));\n\n // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n dateLeft.setFullYear(1584);\n dateRight.setFullYear(1584);\n\n // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - Number(isLastYearNotFull));\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport add from \"../add/index.js\";\nimport differenceInDays from \"../differenceInDays/index.js\";\nimport differenceInHours from \"../differenceInHours/index.js\";\nimport differenceInMinutes from \"../differenceInMinutes/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport differenceInYears from \"../differenceInYears/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @param {Interval} interval - the interval to convert to duration\n *\n * @returns {Duration} The duration Object\n * @throws {TypeError} Requires 2 arguments\n * @throws {RangeError} `start` must not be Invalid Date\n * @throws {RangeError} `end` must not be Invalid Date\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\nexport default function intervalToDuration(interval) {\n requiredArgs(1, arguments);\n var start = toDate(interval.start);\n var end = toDate(interval.end);\n if (isNaN(start.getTime())) throw new RangeError('Start Date is invalid');\n if (isNaN(end.getTime())) throw new RangeError('End Date is invalid');\n var duration = {};\n duration.years = Math.abs(differenceInYears(end, start));\n var sign = compareAsc(end, start);\n var remainingMonths = add(start, {\n years: sign * duration.years\n });\n duration.months = Math.abs(differenceInMonths(end, remainingMonths));\n var remainingDays = add(remainingMonths, {\n months: sign * duration.months\n });\n duration.days = Math.abs(differenceInDays(end, remainingDays));\n var remainingHours = add(remainingDays, {\n days: sign * duration.days\n });\n duration.hours = Math.abs(differenceInHours(end, remainingHours));\n var remainingMinutes = add(remainingHours, {\n hours: sign * duration.hours\n });\n duration.minutes = Math.abs(differenceInMinutes(end, remainingMinutes));\n var remainingSeconds = add(remainingMinutes, {\n minutes: sign * duration.minutes\n });\n duration.seconds = Math.abs(differenceInSeconds(end, remainingSeconds));\n return duration;\n}","import { millisecondsInHour } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nexport default function differenceInHours(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import { millisecondsInMinute } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nexport default function differenceInMinutes(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZoomAndPan = exports.Width = exports.WholeRange = exports.VisualRange = exports.VerticalLine = exports.ValueErrorBar = exports.ValueAxis = exports.Url = exports.TooltipBorder = exports.Tooltip = exports.Title = exports.TickInterval = exports.Tick = exports.Subtitle = exports.StripStyleLabel = exports.StripStyle = exports.StripLabel = exports.Strip = exports.Size = exports.Shadow = exports.SeriesTemplate = exports.SeriesBorder = exports.Series = exports.SelectionStyle = exports.ScrollBar = exports.Reduction = exports.PointSelectionStyle = exports.PointImage = exports.PointHoverStyle = exports.PointBorder = exports.Point = exports.PaneBorder = exports.Pane = exports.MinVisualRangeLength = exports.MinorTickInterval = exports.MinorTick = exports.MinorGrid = exports.Margin = exports.LoadingIndicator = exports.Length = exports.LegendTitleSubtitle = exports.LegendTitle = exports.Legend = exports.Label = exports.Image = exports.HoverStyle = exports.HorizontalLineLabel = exports.HorizontalLine = exports.Height = exports.Hatching = exports.Grid = exports.Format = exports.Font = exports.Export = exports.DragBoxStyle = exports.DataPrepareSettings = exports.Crosshair = exports.ConstantLineStyle = exports.ConstantLineLabel = exports.ConstantLine = exports.Connector = exports.CommonSeriesSettingsSelectionStyle = exports.CommonSeriesSettingsLabel = exports.CommonSeriesSettingsHoverStyle = exports.CommonSeriesSettings = exports.CommonPaneSettings = exports.CommonAxisSettingsTitle = exports.CommonAxisSettingsLabel = exports.CommonAxisSettingsConstantLineStyleLabel = exports.CommonAxisSettingsConstantLineStyle = exports.CommonAxisSettings = exports.CommonAnnotationSettings = exports.ChartTitleSubtitle = exports.ChartTitle = exports.BreakStyle = exports.Break = exports.Border = exports.AxisTitle = exports.AxisLabel = exports.AxisConstantLineStyleLabel = exports.AxisConstantLineStyle = exports.ArgumentFormat = exports.ArgumentAxis = exports.AnnotationImage = exports.AnnotationBorder = exports.Annotation = exports.Animation = exports.AggregationInterval = exports.Aggregation = exports.AdaptiveLayout = exports.Chart = void 0;\nvar chart_1 = require(\"devextreme/viz/chart\");\nvar PropTypes = require(\"prop-types\");\nvar component_1 = require(\"./core/component\");\nvar nested_option_1 = require(\"./core/nested-option\");\nvar Chart = /** @class */ (function (_super) {\n __extends(Chart, _super);\n function Chart() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = chart_1.default;\n _this.useRequestAnimationFrameFlag = true;\n _this.subscribableOptions = [\"argumentAxis\", \"argumentAxis.visualRange\", \"loadingIndicator\", \"loadingIndicator.show\", \"valueAxis\", \"valueAxis.visualRange\"];\n _this.independentEvents = [\"onArgumentAxisClick\", \"onDisposing\", \"onDone\", \"onDrawn\", \"onExported\", \"onExporting\", \"onFileSaving\", \"onIncidentOccurred\", \"onInitialized\", \"onLegendClick\", \"onPointClick\", \"onSeriesClick\", \"onTooltipHidden\", \"onTooltipShown\", \"onZoomEnd\", \"onZoomStart\"];\n _this._defaults = {\n defaultArgumentAxis: \"argumentAxis\",\n defaultLoadingIndicator: \"loadingIndicator\",\n defaultValueAxis: \"valueAxis\"\n };\n _this._expectedChildren = {\n adaptiveLayout: { optionName: \"adaptiveLayout\", isCollectionItem: false },\n animation: { optionName: \"animation\", isCollectionItem: false },\n annotation: { optionName: \"annotations\", isCollectionItem: true },\n argumentAxis: { optionName: \"argumentAxis\", isCollectionItem: false },\n chartTitle: { optionName: \"title\", isCollectionItem: false },\n commonAnnotationSettings: { optionName: \"commonAnnotationSettings\", isCollectionItem: false },\n commonAxisSettings: { optionName: \"commonAxisSettings\", isCollectionItem: false },\n commonPaneSettings: { optionName: \"commonPaneSettings\", isCollectionItem: false },\n commonSeriesSettings: { optionName: \"commonSeriesSettings\", isCollectionItem: false },\n crosshair: { optionName: \"crosshair\", isCollectionItem: false },\n dataPrepareSettings: { optionName: \"dataPrepareSettings\", isCollectionItem: false },\n export: { optionName: \"export\", isCollectionItem: false },\n legend: { optionName: \"legend\", isCollectionItem: false },\n loadingIndicator: { optionName: \"loadingIndicator\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n pane: { optionName: \"panes\", isCollectionItem: true },\n scrollBar: { optionName: \"scrollBar\", isCollectionItem: false },\n series: { optionName: \"series\", isCollectionItem: true },\n seriesTemplate: { optionName: \"seriesTemplate\", isCollectionItem: false },\n size: { optionName: \"size\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false },\n tooltip: { optionName: \"tooltip\", isCollectionItem: false },\n valueAxis: { optionName: \"valueAxis\", isCollectionItem: true },\n zoomAndPan: { optionName: \"zoomAndPan\", isCollectionItem: false }\n };\n return _this;\n }\n Object.defineProperty(Chart.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return Chart;\n}(component_1.Component));\nexports.Chart = Chart;\nChart.propTypes = {\n adaptiveLayout: PropTypes.object,\n adjustOnZoom: PropTypes.bool,\n animation: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.object\n ]),\n annotations: PropTypes.array,\n argumentAxis: PropTypes.object,\n autoHidePointMarkers: PropTypes.bool,\n barGroupPadding: PropTypes.number,\n barGroupWidth: PropTypes.number,\n commonAnnotationSettings: PropTypes.object,\n commonAxisSettings: PropTypes.object,\n commonPaneSettings: PropTypes.object,\n commonSeriesSettings: PropTypes.object,\n containerBackgroundColor: PropTypes.string,\n crosshair: PropTypes.object,\n customizeAnnotation: PropTypes.func,\n customizeLabel: PropTypes.func,\n customizePoint: PropTypes.func,\n dataPrepareSettings: PropTypes.object,\n dataSource: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object,\n PropTypes.string\n ]),\n defaultPane: PropTypes.string,\n disabled: PropTypes.bool,\n elementAttr: PropTypes.object,\n export: PropTypes.object,\n legend: PropTypes.object,\n loadingIndicator: PropTypes.object,\n margin: PropTypes.object,\n maxBubbleSize: PropTypes.number,\n minBubbleSize: PropTypes.number,\n negativesAsZeroes: PropTypes.bool,\n onArgumentAxisClick: PropTypes.func,\n onDisposing: PropTypes.func,\n onDone: PropTypes.func,\n onDrawn: PropTypes.func,\n onExported: PropTypes.func,\n onExporting: PropTypes.func,\n onFileSaving: PropTypes.func,\n onIncidentOccurred: PropTypes.func,\n onInitialized: PropTypes.func,\n onLegendClick: PropTypes.func,\n onOptionChanged: PropTypes.func,\n onPointClick: PropTypes.func,\n onPointHoverChanged: PropTypes.func,\n onPointSelectionChanged: PropTypes.func,\n onSeriesClick: PropTypes.func,\n onSeriesHoverChanged: PropTypes.func,\n onSeriesSelectionChanged: PropTypes.func,\n onTooltipHidden: PropTypes.func,\n onTooltipShown: PropTypes.func,\n onZoomEnd: PropTypes.func,\n onZoomStart: PropTypes.func,\n palette: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.oneOf([\n \"Bright\",\n \"Harmony Light\",\n \"Ocean\",\n \"Pastel\",\n \"Soft\",\n \"Soft Pastel\",\n \"Vintage\",\n \"Violet\",\n \"Carmine\",\n \"Dark Moon\",\n \"Dark Violet\",\n \"Green Mist\",\n \"Soft Blue\",\n \"Material\",\n \"Office\"\n ])\n ]),\n paletteExtensionMode: PropTypes.oneOf([\n \"alternate\",\n \"blend\",\n \"extrapolate\"\n ]),\n panes: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object\n ]),\n pathModified: PropTypes.bool,\n pointSelectionMode: PropTypes.oneOf([\n \"multiple\",\n \"single\"\n ]),\n redrawOnResize: PropTypes.bool,\n resizePanesOnZoom: PropTypes.bool,\n resolveLabelOverlapping: PropTypes.oneOf([\n \"hide\",\n \"none\",\n \"stack\"\n ]),\n rotated: PropTypes.bool,\n rtlEnabled: PropTypes.bool,\n scrollBar: PropTypes.object,\n series: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object\n ]),\n seriesSelectionMode: PropTypes.oneOf([\n \"multiple\",\n \"single\"\n ]),\n seriesTemplate: PropTypes.object,\n size: PropTypes.object,\n stickyHovering: PropTypes.bool,\n synchronizeMultiAxes: PropTypes.bool,\n theme: PropTypes.oneOf([\n \"generic.dark\",\n \"generic.light\",\n \"generic.contrast\",\n \"generic.carmine\",\n \"generic.darkmoon\",\n \"generic.darkviolet\",\n \"generic.greenmist\",\n \"generic.softblue\",\n \"material.blue.light\",\n \"material.lime.light\",\n \"material.orange.light\",\n \"material.purple.light\",\n \"material.teal.light\"\n ]),\n title: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string\n ]),\n tooltip: PropTypes.object,\n valueAxis: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object\n ]),\n zoomAndPan: PropTypes.object\n};\nvar AdaptiveLayout = /** @class */ (function (_super) {\n __extends(AdaptiveLayout, _super);\n function AdaptiveLayout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AdaptiveLayout.OptionName = \"adaptiveLayout\";\n return AdaptiveLayout;\n}(nested_option_1.default));\nexports.AdaptiveLayout = AdaptiveLayout;\nvar Aggregation = /** @class */ (function (_super) {\n __extends(Aggregation, _super);\n function Aggregation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Aggregation.OptionName = \"aggregation\";\n return Aggregation;\n}(nested_option_1.default));\nexports.Aggregation = Aggregation;\nvar AggregationInterval = /** @class */ (function (_super) {\n __extends(AggregationInterval, _super);\n function AggregationInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AggregationInterval.OptionName = \"aggregationInterval\";\n return AggregationInterval;\n}(nested_option_1.default));\nexports.AggregationInterval = AggregationInterval;\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Animation.OptionName = \"animation\";\n return Animation;\n}(nested_option_1.default));\nexports.Animation = Animation;\nvar Annotation = /** @class */ (function (_super) {\n __extends(Annotation, _super);\n function Annotation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Annotation.OptionName = \"annotations\";\n Annotation.IsCollectionItem = true;\n Annotation.ExpectedChildren = {\n annotationBorder: { optionName: \"border\", isCollectionItem: false },\n annotationImage: { optionName: \"image\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n image: { optionName: \"image\", isCollectionItem: false },\n shadow: { optionName: \"shadow\", isCollectionItem: false }\n };\n Annotation.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }, {\n tmplOption: \"tooltipTemplate\",\n render: \"tooltipRender\",\n component: \"tooltipComponent\",\n keyFn: \"tooltipKeyFn\"\n }];\n return Annotation;\n}(nested_option_1.default));\nexports.Annotation = Annotation;\nvar AnnotationBorder = /** @class */ (function (_super) {\n __extends(AnnotationBorder, _super);\n function AnnotationBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnnotationBorder.OptionName = \"border\";\n return AnnotationBorder;\n}(nested_option_1.default));\nexports.AnnotationBorder = AnnotationBorder;\nvar AnnotationImage = /** @class */ (function (_super) {\n __extends(AnnotationImage, _super);\n function AnnotationImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnnotationImage.OptionName = \"image\";\n return AnnotationImage;\n}(nested_option_1.default));\nexports.AnnotationImage = AnnotationImage;\nvar ArgumentAxis = /** @class */ (function (_super) {\n __extends(ArgumentAxis, _super);\n function ArgumentAxis() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ArgumentAxis.OptionName = \"argumentAxis\";\n ArgumentAxis.DefaultsProps = {\n defaultVisualRange: \"visualRange\"\n };\n ArgumentAxis.ExpectedChildren = {\n aggregationInterval: { optionName: \"aggregationInterval\", isCollectionItem: false },\n axisConstantLineStyle: { optionName: \"constantLineStyle\", isCollectionItem: false },\n axisLabel: { optionName: \"label\", isCollectionItem: false },\n axisTitle: { optionName: \"title\", isCollectionItem: false },\n break: { optionName: \"breaks\", isCollectionItem: true },\n breakStyle: { optionName: \"breakStyle\", isCollectionItem: false },\n constantLine: { optionName: \"constantLines\", isCollectionItem: true },\n constantLineStyle: { optionName: \"constantLineStyle\", isCollectionItem: false },\n grid: { optionName: \"grid\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n minorGrid: { optionName: \"minorGrid\", isCollectionItem: false },\n minorTick: { optionName: \"minorTick\", isCollectionItem: false },\n minorTickInterval: { optionName: \"minorTickInterval\", isCollectionItem: false },\n minVisualRangeLength: { optionName: \"minVisualRangeLength\", isCollectionItem: false },\n strip: { optionName: \"strips\", isCollectionItem: true },\n stripStyle: { optionName: \"stripStyle\", isCollectionItem: false },\n tick: { optionName: \"tick\", isCollectionItem: false },\n tickInterval: { optionName: \"tickInterval\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false },\n visualRange: { optionName: \"visualRange\", isCollectionItem: false },\n wholeRange: { optionName: \"wholeRange\", isCollectionItem: false }\n };\n return ArgumentAxis;\n}(nested_option_1.default));\nexports.ArgumentAxis = ArgumentAxis;\nvar ArgumentFormat = /** @class */ (function (_super) {\n __extends(ArgumentFormat, _super);\n function ArgumentFormat() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ArgumentFormat.OptionName = \"argumentFormat\";\n return ArgumentFormat;\n}(nested_option_1.default));\nexports.ArgumentFormat = ArgumentFormat;\nvar AxisConstantLineStyle = /** @class */ (function (_super) {\n __extends(AxisConstantLineStyle, _super);\n function AxisConstantLineStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AxisConstantLineStyle.OptionName = \"constantLineStyle\";\n return AxisConstantLineStyle;\n}(nested_option_1.default));\nexports.AxisConstantLineStyle = AxisConstantLineStyle;\nvar AxisConstantLineStyleLabel = /** @class */ (function (_super) {\n __extends(AxisConstantLineStyleLabel, _super);\n function AxisConstantLineStyleLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AxisConstantLineStyleLabel.OptionName = \"label\";\n return AxisConstantLineStyleLabel;\n}(nested_option_1.default));\nexports.AxisConstantLineStyleLabel = AxisConstantLineStyleLabel;\nvar AxisLabel = /** @class */ (function (_super) {\n __extends(AxisLabel, _super);\n function AxisLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AxisLabel.OptionName = \"label\";\n AxisLabel.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return AxisLabel;\n}(nested_option_1.default));\nexports.AxisLabel = AxisLabel;\nvar AxisTitle = /** @class */ (function (_super) {\n __extends(AxisTitle, _super);\n function AxisTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AxisTitle.OptionName = \"title\";\n return AxisTitle;\n}(nested_option_1.default));\nexports.AxisTitle = AxisTitle;\nvar Border = /** @class */ (function (_super) {\n __extends(Border, _super);\n function Border() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Border.OptionName = \"border\";\n return Border;\n}(nested_option_1.default));\nexports.Border = Border;\nvar Break = /** @class */ (function (_super) {\n __extends(Break, _super);\n function Break() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Break.OptionName = \"breaks\";\n Break.IsCollectionItem = true;\n return Break;\n}(nested_option_1.default));\nexports.Break = Break;\nvar BreakStyle = /** @class */ (function (_super) {\n __extends(BreakStyle, _super);\n function BreakStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BreakStyle.OptionName = \"breakStyle\";\n return BreakStyle;\n}(nested_option_1.default));\nexports.BreakStyle = BreakStyle;\nvar ChartTitle = /** @class */ (function (_super) {\n __extends(ChartTitle, _super);\n function ChartTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartTitle.OptionName = \"title\";\n ChartTitle.ExpectedChildren = {\n chartTitleSubtitle: { optionName: \"subtitle\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n subtitle: { optionName: \"subtitle\", isCollectionItem: false }\n };\n return ChartTitle;\n}(nested_option_1.default));\nexports.ChartTitle = ChartTitle;\nvar ChartTitleSubtitle = /** @class */ (function (_super) {\n __extends(ChartTitleSubtitle, _super);\n function ChartTitleSubtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartTitleSubtitle.OptionName = \"subtitle\";\n ChartTitleSubtitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return ChartTitleSubtitle;\n}(nested_option_1.default));\nexports.ChartTitleSubtitle = ChartTitleSubtitle;\nvar CommonAnnotationSettings = /** @class */ (function (_super) {\n __extends(CommonAnnotationSettings, _super);\n function CommonAnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAnnotationSettings.OptionName = \"commonAnnotationSettings\";\n CommonAnnotationSettings.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }, {\n tmplOption: \"tooltipTemplate\",\n render: \"tooltipRender\",\n component: \"tooltipComponent\",\n keyFn: \"tooltipKeyFn\"\n }];\n return CommonAnnotationSettings;\n}(nested_option_1.default));\nexports.CommonAnnotationSettings = CommonAnnotationSettings;\nvar CommonAxisSettings = /** @class */ (function (_super) {\n __extends(CommonAxisSettings, _super);\n function CommonAxisSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAxisSettings.OptionName = \"commonAxisSettings\";\n CommonAxisSettings.ExpectedChildren = {\n commonAxisSettingsConstantLineStyle: { optionName: \"constantLineStyle\", isCollectionItem: false },\n commonAxisSettingsLabel: { optionName: \"label\", isCollectionItem: false },\n commonAxisSettingsTitle: { optionName: \"title\", isCollectionItem: false },\n constantLineStyle: { optionName: \"constantLineStyle\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false }\n };\n return CommonAxisSettings;\n}(nested_option_1.default));\nexports.CommonAxisSettings = CommonAxisSettings;\nvar CommonAxisSettingsConstantLineStyle = /** @class */ (function (_super) {\n __extends(CommonAxisSettingsConstantLineStyle, _super);\n function CommonAxisSettingsConstantLineStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAxisSettingsConstantLineStyle.OptionName = \"constantLineStyle\";\n CommonAxisSettingsConstantLineStyle.ExpectedChildren = {\n commonAxisSettingsConstantLineStyleLabel: { optionName: \"label\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false }\n };\n return CommonAxisSettingsConstantLineStyle;\n}(nested_option_1.default));\nexports.CommonAxisSettingsConstantLineStyle = CommonAxisSettingsConstantLineStyle;\nvar CommonAxisSettingsConstantLineStyleLabel = /** @class */ (function (_super) {\n __extends(CommonAxisSettingsConstantLineStyleLabel, _super);\n function CommonAxisSettingsConstantLineStyleLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAxisSettingsConstantLineStyleLabel.OptionName = \"label\";\n return CommonAxisSettingsConstantLineStyleLabel;\n}(nested_option_1.default));\nexports.CommonAxisSettingsConstantLineStyleLabel = CommonAxisSettingsConstantLineStyleLabel;\nvar CommonAxisSettingsLabel = /** @class */ (function (_super) {\n __extends(CommonAxisSettingsLabel, _super);\n function CommonAxisSettingsLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAxisSettingsLabel.OptionName = \"label\";\n CommonAxisSettingsLabel.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return CommonAxisSettingsLabel;\n}(nested_option_1.default));\nexports.CommonAxisSettingsLabel = CommonAxisSettingsLabel;\nvar CommonAxisSettingsTitle = /** @class */ (function (_super) {\n __extends(CommonAxisSettingsTitle, _super);\n function CommonAxisSettingsTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAxisSettingsTitle.OptionName = \"title\";\n return CommonAxisSettingsTitle;\n}(nested_option_1.default));\nexports.CommonAxisSettingsTitle = CommonAxisSettingsTitle;\nvar CommonPaneSettings = /** @class */ (function (_super) {\n __extends(CommonPaneSettings, _super);\n function CommonPaneSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonPaneSettings.OptionName = \"commonPaneSettings\";\n CommonPaneSettings.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n paneBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonPaneSettings;\n}(nested_option_1.default));\nexports.CommonPaneSettings = CommonPaneSettings;\nvar CommonSeriesSettings = /** @class */ (function (_super) {\n __extends(CommonSeriesSettings, _super);\n function CommonSeriesSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettings.OptionName = \"commonSeriesSettings\";\n CommonSeriesSettings.ExpectedChildren = {\n aggregation: { optionName: \"aggregation\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n commonSeriesSettingsHoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n commonSeriesSettingsLabel: { optionName: \"label\", isCollectionItem: false },\n commonSeriesSettingsSelectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n hoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n point: { optionName: \"point\", isCollectionItem: false },\n reduction: { optionName: \"reduction\", isCollectionItem: false },\n selectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false },\n valueErrorBar: { optionName: \"valueErrorBar\", isCollectionItem: false }\n };\n return CommonSeriesSettings;\n}(nested_option_1.default));\nexports.CommonSeriesSettings = CommonSeriesSettings;\nvar CommonSeriesSettingsHoverStyle = /** @class */ (function (_super) {\n __extends(CommonSeriesSettingsHoverStyle, _super);\n function CommonSeriesSettingsHoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettingsHoverStyle.OptionName = \"hoverStyle\";\n CommonSeriesSettingsHoverStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hatching: { optionName: \"hatching\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonSeriesSettingsHoverStyle;\n}(nested_option_1.default));\nexports.CommonSeriesSettingsHoverStyle = CommonSeriesSettingsHoverStyle;\nvar CommonSeriesSettingsLabel = /** @class */ (function (_super) {\n __extends(CommonSeriesSettingsLabel, _super);\n function CommonSeriesSettingsLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettingsLabel.OptionName = \"label\";\n CommonSeriesSettingsLabel.ExpectedChildren = {\n argumentFormat: { optionName: \"argumentFormat\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n connector: { optionName: \"connector\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonSeriesSettingsLabel;\n}(nested_option_1.default));\nexports.CommonSeriesSettingsLabel = CommonSeriesSettingsLabel;\nvar CommonSeriesSettingsSelectionStyle = /** @class */ (function (_super) {\n __extends(CommonSeriesSettingsSelectionStyle, _super);\n function CommonSeriesSettingsSelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettingsSelectionStyle.OptionName = \"selectionStyle\";\n CommonSeriesSettingsSelectionStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hatching: { optionName: \"hatching\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonSeriesSettingsSelectionStyle;\n}(nested_option_1.default));\nexports.CommonSeriesSettingsSelectionStyle = CommonSeriesSettingsSelectionStyle;\nvar Connector = /** @class */ (function (_super) {\n __extends(Connector, _super);\n function Connector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Connector.OptionName = \"connector\";\n return Connector;\n}(nested_option_1.default));\nexports.Connector = Connector;\nvar ConstantLine = /** @class */ (function (_super) {\n __extends(ConstantLine, _super);\n function ConstantLine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConstantLine.OptionName = \"constantLines\";\n ConstantLine.IsCollectionItem = true;\n return ConstantLine;\n}(nested_option_1.default));\nexports.ConstantLine = ConstantLine;\nvar ConstantLineLabel = /** @class */ (function (_super) {\n __extends(ConstantLineLabel, _super);\n function ConstantLineLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConstantLineLabel.OptionName = \"label\";\n return ConstantLineLabel;\n}(nested_option_1.default));\nexports.ConstantLineLabel = ConstantLineLabel;\nvar ConstantLineStyle = /** @class */ (function (_super) {\n __extends(ConstantLineStyle, _super);\n function ConstantLineStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConstantLineStyle.OptionName = \"constantLineStyle\";\n return ConstantLineStyle;\n}(nested_option_1.default));\nexports.ConstantLineStyle = ConstantLineStyle;\nvar Crosshair = /** @class */ (function (_super) {\n __extends(Crosshair, _super);\n function Crosshair() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Crosshair.OptionName = \"crosshair\";\n Crosshair.ExpectedChildren = {\n horizontalLine: { optionName: \"horizontalLine\", isCollectionItem: false },\n horizontalLineLabel: { optionName: \"label\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n verticalLine: { optionName: \"verticalLine\", isCollectionItem: false }\n };\n return Crosshair;\n}(nested_option_1.default));\nexports.Crosshair = Crosshair;\nvar DataPrepareSettings = /** @class */ (function (_super) {\n __extends(DataPrepareSettings, _super);\n function DataPrepareSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataPrepareSettings.OptionName = \"dataPrepareSettings\";\n return DataPrepareSettings;\n}(nested_option_1.default));\nexports.DataPrepareSettings = DataPrepareSettings;\nvar DragBoxStyle = /** @class */ (function (_super) {\n __extends(DragBoxStyle, _super);\n function DragBoxStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DragBoxStyle.OptionName = \"dragBoxStyle\";\n return DragBoxStyle;\n}(nested_option_1.default));\nexports.DragBoxStyle = DragBoxStyle;\nvar Export = /** @class */ (function (_super) {\n __extends(Export, _super);\n function Export() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Export.OptionName = \"export\";\n return Export;\n}(nested_option_1.default));\nexports.Export = Export;\nvar Font = /** @class */ (function (_super) {\n __extends(Font, _super);\n function Font() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Font.OptionName = \"font\";\n return Font;\n}(nested_option_1.default));\nexports.Font = Font;\nvar Format = /** @class */ (function (_super) {\n __extends(Format, _super);\n function Format() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Format.OptionName = \"format\";\n return Format;\n}(nested_option_1.default));\nexports.Format = Format;\nvar Grid = /** @class */ (function (_super) {\n __extends(Grid, _super);\n function Grid() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Grid.OptionName = \"grid\";\n return Grid;\n}(nested_option_1.default));\nexports.Grid = Grid;\nvar Hatching = /** @class */ (function (_super) {\n __extends(Hatching, _super);\n function Hatching() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Hatching.OptionName = \"hatching\";\n return Hatching;\n}(nested_option_1.default));\nexports.Hatching = Hatching;\nvar Height = /** @class */ (function (_super) {\n __extends(Height, _super);\n function Height() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Height.OptionName = \"height\";\n return Height;\n}(nested_option_1.default));\nexports.Height = Height;\nvar HorizontalLine = /** @class */ (function (_super) {\n __extends(HorizontalLine, _super);\n function HorizontalLine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HorizontalLine.OptionName = \"horizontalLine\";\n HorizontalLine.ExpectedChildren = {\n horizontalLineLabel: { optionName: \"label\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false }\n };\n return HorizontalLine;\n}(nested_option_1.default));\nexports.HorizontalLine = HorizontalLine;\nvar HorizontalLineLabel = /** @class */ (function (_super) {\n __extends(HorizontalLineLabel, _super);\n function HorizontalLineLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HorizontalLineLabel.OptionName = \"label\";\n return HorizontalLineLabel;\n}(nested_option_1.default));\nexports.HorizontalLineLabel = HorizontalLineLabel;\nvar HoverStyle = /** @class */ (function (_super) {\n __extends(HoverStyle, _super);\n function HoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HoverStyle.OptionName = \"hoverStyle\";\n return HoverStyle;\n}(nested_option_1.default));\nexports.HoverStyle = HoverStyle;\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Image.OptionName = \"image\";\n return Image;\n}(nested_option_1.default));\nexports.Image = Image;\nvar Label = /** @class */ (function (_super) {\n __extends(Label, _super);\n function Label() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Label.OptionName = \"label\";\n Label.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }];\n return Label;\n}(nested_option_1.default));\nexports.Label = Label;\nvar Legend = /** @class */ (function (_super) {\n __extends(Legend, _super);\n function Legend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Legend.OptionName = \"legend\";\n Legend.ExpectedChildren = {\n annotationBorder: { optionName: \"border\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n legendTitle: { optionName: \"title\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false }\n };\n Legend.TemplateProps = [{\n tmplOption: \"markerTemplate\",\n render: \"markerRender\",\n component: \"markerComponent\",\n keyFn: \"markerKeyFn\"\n }];\n return Legend;\n}(nested_option_1.default));\nexports.Legend = Legend;\nvar LegendTitle = /** @class */ (function (_super) {\n __extends(LegendTitle, _super);\n function LegendTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LegendTitle.OptionName = \"title\";\n LegendTitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false },\n legendTitleSubtitle: { optionName: \"subtitle\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n subtitle: { optionName: \"subtitle\", isCollectionItem: false }\n };\n return LegendTitle;\n}(nested_option_1.default));\nexports.LegendTitle = LegendTitle;\nvar LegendTitleSubtitle = /** @class */ (function (_super) {\n __extends(LegendTitleSubtitle, _super);\n function LegendTitleSubtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LegendTitleSubtitle.OptionName = \"subtitle\";\n LegendTitleSubtitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return LegendTitleSubtitle;\n}(nested_option_1.default));\nexports.LegendTitleSubtitle = LegendTitleSubtitle;\nvar Length = /** @class */ (function (_super) {\n __extends(Length, _super);\n function Length() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Length.OptionName = \"length\";\n return Length;\n}(nested_option_1.default));\nexports.Length = Length;\nvar LoadingIndicator = /** @class */ (function (_super) {\n __extends(LoadingIndicator, _super);\n function LoadingIndicator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoadingIndicator.OptionName = \"loadingIndicator\";\n LoadingIndicator.DefaultsProps = {\n defaultShow: \"show\"\n };\n LoadingIndicator.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return LoadingIndicator;\n}(nested_option_1.default));\nexports.LoadingIndicator = LoadingIndicator;\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Margin.OptionName = \"margin\";\n return Margin;\n}(nested_option_1.default));\nexports.Margin = Margin;\nvar MinorGrid = /** @class */ (function (_super) {\n __extends(MinorGrid, _super);\n function MinorGrid() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinorGrid.OptionName = \"minorGrid\";\n return MinorGrid;\n}(nested_option_1.default));\nexports.MinorGrid = MinorGrid;\nvar MinorTick = /** @class */ (function (_super) {\n __extends(MinorTick, _super);\n function MinorTick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinorTick.OptionName = \"minorTick\";\n return MinorTick;\n}(nested_option_1.default));\nexports.MinorTick = MinorTick;\nvar MinorTickInterval = /** @class */ (function (_super) {\n __extends(MinorTickInterval, _super);\n function MinorTickInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinorTickInterval.OptionName = \"minorTickInterval\";\n return MinorTickInterval;\n}(nested_option_1.default));\nexports.MinorTickInterval = MinorTickInterval;\nvar MinVisualRangeLength = /** @class */ (function (_super) {\n __extends(MinVisualRangeLength, _super);\n function MinVisualRangeLength() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinVisualRangeLength.OptionName = \"minVisualRangeLength\";\n return MinVisualRangeLength;\n}(nested_option_1.default));\nexports.MinVisualRangeLength = MinVisualRangeLength;\nvar Pane = /** @class */ (function (_super) {\n __extends(Pane, _super);\n function Pane() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Pane.OptionName = \"panes\";\n Pane.IsCollectionItem = true;\n return Pane;\n}(nested_option_1.default));\nexports.Pane = Pane;\nvar PaneBorder = /** @class */ (function (_super) {\n __extends(PaneBorder, _super);\n function PaneBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaneBorder.OptionName = \"border\";\n return PaneBorder;\n}(nested_option_1.default));\nexports.PaneBorder = PaneBorder;\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Point.OptionName = \"point\";\n Point.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n image: { optionName: \"image\", isCollectionItem: false },\n pointBorder: { optionName: \"border\", isCollectionItem: false },\n pointHoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n pointImage: { optionName: \"image\", isCollectionItem: false },\n pointSelectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n selectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false }\n };\n return Point;\n}(nested_option_1.default));\nexports.Point = Point;\nvar PointBorder = /** @class */ (function (_super) {\n __extends(PointBorder, _super);\n function PointBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointBorder.OptionName = \"border\";\n return PointBorder;\n}(nested_option_1.default));\nexports.PointBorder = PointBorder;\nvar PointHoverStyle = /** @class */ (function (_super) {\n __extends(PointHoverStyle, _super);\n function PointHoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointHoverStyle.OptionName = \"hoverStyle\";\n PointHoverStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n pointBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return PointHoverStyle;\n}(nested_option_1.default));\nexports.PointHoverStyle = PointHoverStyle;\nvar PointImage = /** @class */ (function (_super) {\n __extends(PointImage, _super);\n function PointImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointImage.OptionName = \"image\";\n PointImage.ExpectedChildren = {\n height: { optionName: \"height\", isCollectionItem: false },\n url: { optionName: \"url\", isCollectionItem: false },\n width: { optionName: \"width\", isCollectionItem: false }\n };\n return PointImage;\n}(nested_option_1.default));\nexports.PointImage = PointImage;\nvar PointSelectionStyle = /** @class */ (function (_super) {\n __extends(PointSelectionStyle, _super);\n function PointSelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointSelectionStyle.OptionName = \"selectionStyle\";\n PointSelectionStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n pointBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return PointSelectionStyle;\n}(nested_option_1.default));\nexports.PointSelectionStyle = PointSelectionStyle;\nvar Reduction = /** @class */ (function (_super) {\n __extends(Reduction, _super);\n function Reduction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Reduction.OptionName = \"reduction\";\n return Reduction;\n}(nested_option_1.default));\nexports.Reduction = Reduction;\nvar ScrollBar = /** @class */ (function (_super) {\n __extends(ScrollBar, _super);\n function ScrollBar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScrollBar.OptionName = \"scrollBar\";\n return ScrollBar;\n}(nested_option_1.default));\nexports.ScrollBar = ScrollBar;\nvar SelectionStyle = /** @class */ (function (_super) {\n __extends(SelectionStyle, _super);\n function SelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionStyle.OptionName = \"selectionStyle\";\n return SelectionStyle;\n}(nested_option_1.default));\nexports.SelectionStyle = SelectionStyle;\nvar Series = /** @class */ (function (_super) {\n __extends(Series, _super);\n function Series() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Series.OptionName = \"series\";\n Series.IsCollectionItem = true;\n return Series;\n}(nested_option_1.default));\nexports.Series = Series;\nvar SeriesBorder = /** @class */ (function (_super) {\n __extends(SeriesBorder, _super);\n function SeriesBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SeriesBorder.OptionName = \"border\";\n return SeriesBorder;\n}(nested_option_1.default));\nexports.SeriesBorder = SeriesBorder;\nvar SeriesTemplate = /** @class */ (function (_super) {\n __extends(SeriesTemplate, _super);\n function SeriesTemplate() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SeriesTemplate.OptionName = \"seriesTemplate\";\n return SeriesTemplate;\n}(nested_option_1.default));\nexports.SeriesTemplate = SeriesTemplate;\nvar Shadow = /** @class */ (function (_super) {\n __extends(Shadow, _super);\n function Shadow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Shadow.OptionName = \"shadow\";\n return Shadow;\n}(nested_option_1.default));\nexports.Shadow = Shadow;\nvar Size = /** @class */ (function (_super) {\n __extends(Size, _super);\n function Size() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Size.OptionName = \"size\";\n return Size;\n}(nested_option_1.default));\nexports.Size = Size;\nvar Strip = /** @class */ (function (_super) {\n __extends(Strip, _super);\n function Strip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Strip.OptionName = \"strips\";\n Strip.IsCollectionItem = true;\n return Strip;\n}(nested_option_1.default));\nexports.Strip = Strip;\nvar StripLabel = /** @class */ (function (_super) {\n __extends(StripLabel, _super);\n function StripLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StripLabel.OptionName = \"label\";\n return StripLabel;\n}(nested_option_1.default));\nexports.StripLabel = StripLabel;\nvar StripStyle = /** @class */ (function (_super) {\n __extends(StripStyle, _super);\n function StripStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StripStyle.OptionName = \"stripStyle\";\n StripStyle.ExpectedChildren = {\n label: { optionName: \"label\", isCollectionItem: false },\n stripStyleLabel: { optionName: \"label\", isCollectionItem: false }\n };\n return StripStyle;\n}(nested_option_1.default));\nexports.StripStyle = StripStyle;\nvar StripStyleLabel = /** @class */ (function (_super) {\n __extends(StripStyleLabel, _super);\n function StripStyleLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StripStyleLabel.OptionName = \"label\";\n return StripStyleLabel;\n}(nested_option_1.default));\nexports.StripStyleLabel = StripStyleLabel;\nvar Subtitle = /** @class */ (function (_super) {\n __extends(Subtitle, _super);\n function Subtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Subtitle.OptionName = \"subtitle\";\n return Subtitle;\n}(nested_option_1.default));\nexports.Subtitle = Subtitle;\nvar Tick = /** @class */ (function (_super) {\n __extends(Tick, _super);\n function Tick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Tick.OptionName = \"tick\";\n return Tick;\n}(nested_option_1.default));\nexports.Tick = Tick;\nvar TickInterval = /** @class */ (function (_super) {\n __extends(TickInterval, _super);\n function TickInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TickInterval.OptionName = \"tickInterval\";\n return TickInterval;\n}(nested_option_1.default));\nexports.TickInterval = TickInterval;\nvar Title = /** @class */ (function (_super) {\n __extends(Title, _super);\n function Title() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Title.OptionName = \"title\";\n return Title;\n}(nested_option_1.default));\nexports.Title = Title;\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n function Tooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Tooltip.OptionName = \"tooltip\";\n Tooltip.ExpectedChildren = {\n argumentFormat: { optionName: \"argumentFormat\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false },\n shadow: { optionName: \"shadow\", isCollectionItem: false },\n tooltipBorder: { optionName: \"border\", isCollectionItem: false }\n };\n Tooltip.TemplateProps = [{\n tmplOption: \"contentTemplate\",\n render: \"contentRender\",\n component: \"contentComponent\",\n keyFn: \"contentKeyFn\"\n }];\n return Tooltip;\n}(nested_option_1.default));\nexports.Tooltip = Tooltip;\nvar TooltipBorder = /** @class */ (function (_super) {\n __extends(TooltipBorder, _super);\n function TooltipBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TooltipBorder.OptionName = \"border\";\n return TooltipBorder;\n}(nested_option_1.default));\nexports.TooltipBorder = TooltipBorder;\nvar Url = /** @class */ (function (_super) {\n __extends(Url, _super);\n function Url() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Url.OptionName = \"url\";\n return Url;\n}(nested_option_1.default));\nexports.Url = Url;\nvar ValueAxis = /** @class */ (function (_super) {\n __extends(ValueAxis, _super);\n function ValueAxis() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueAxis.OptionName = \"valueAxis\";\n ValueAxis.IsCollectionItem = true;\n ValueAxis.DefaultsProps = {\n defaultVisualRange: \"visualRange\"\n };\n ValueAxis.ExpectedChildren = {\n axisConstantLineStyle: { optionName: \"constantLineStyle\", isCollectionItem: false },\n axisLabel: { optionName: \"label\", isCollectionItem: false },\n axisTitle: { optionName: \"title\", isCollectionItem: false },\n break: { optionName: \"breaks\", isCollectionItem: true },\n constantLine: { optionName: \"constantLines\", isCollectionItem: true },\n constantLineStyle: { optionName: \"constantLineStyle\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n minorTickInterval: { optionName: \"minorTickInterval\", isCollectionItem: false },\n minVisualRangeLength: { optionName: \"minVisualRangeLength\", isCollectionItem: false },\n strip: { optionName: \"strips\", isCollectionItem: true },\n tickInterval: { optionName: \"tickInterval\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false },\n visualRange: { optionName: \"visualRange\", isCollectionItem: false },\n wholeRange: { optionName: \"wholeRange\", isCollectionItem: false }\n };\n return ValueAxis;\n}(nested_option_1.default));\nexports.ValueAxis = ValueAxis;\nvar ValueErrorBar = /** @class */ (function (_super) {\n __extends(ValueErrorBar, _super);\n function ValueErrorBar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueErrorBar.OptionName = \"valueErrorBar\";\n return ValueErrorBar;\n}(nested_option_1.default));\nexports.ValueErrorBar = ValueErrorBar;\nvar VerticalLine = /** @class */ (function (_super) {\n __extends(VerticalLine, _super);\n function VerticalLine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VerticalLine.OptionName = \"verticalLine\";\n VerticalLine.ExpectedChildren = {\n horizontalLineLabel: { optionName: \"label\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false }\n };\n return VerticalLine;\n}(nested_option_1.default));\nexports.VerticalLine = VerticalLine;\nvar VisualRange = /** @class */ (function (_super) {\n __extends(VisualRange, _super);\n function VisualRange() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VisualRange.OptionName = \"visualRange\";\n VisualRange.DefaultsProps = {\n defaultEndValue: \"endValue\",\n defaultStartValue: \"startValue\"\n };\n return VisualRange;\n}(nested_option_1.default));\nexports.VisualRange = VisualRange;\nvar WholeRange = /** @class */ (function (_super) {\n __extends(WholeRange, _super);\n function WholeRange() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WholeRange.OptionName = \"wholeRange\";\n WholeRange.DefaultsProps = {\n defaultEndValue: \"endValue\",\n defaultStartValue: \"startValue\"\n };\n return WholeRange;\n}(nested_option_1.default));\nexports.WholeRange = WholeRange;\nvar Width = /** @class */ (function (_super) {\n __extends(Width, _super);\n function Width() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Width.OptionName = \"width\";\n return Width;\n}(nested_option_1.default));\nexports.Width = Width;\nvar ZoomAndPan = /** @class */ (function (_super) {\n __extends(ZoomAndPan, _super);\n function ZoomAndPan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ZoomAndPan.OptionName = \"zoomAndPan\";\n ZoomAndPan.ExpectedChildren = {\n dragBoxStyle: { optionName: \"dragBoxStyle\", isCollectionItem: false }\n };\n return ZoomAndPan;\n}(nested_option_1.default));\nexports.ZoomAndPan = ZoomAndPan;\nexports.default = Chart;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.ComponentBase = void 0;\nvar events = require(\"devextreme/events\");\nvar React = require(\"react\");\nvar react_dom_1 = require(\"react-dom\");\nvar options_manager_1 = require(\"./options-manager\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar templates_renderer_1 = require(\"./templates-renderer\");\nvar templates_store_1 = require(\"./templates-store\");\nvar widget_config_1 = require(\"./widget-config\");\nvar tree_1 = require(\"./configuration/react/tree\");\nvar utils_1 = require(\"./configuration/utils\");\nvar DX_REMOVE_EVENT = 'dxremove';\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\nvar ComponentBase = /** @class */ (function (_super) {\n __extends(ComponentBase, _super);\n function ComponentBase(props) {\n var _this = _super.call(this, props) || this;\n _this.isPortalComponent = false;\n _this._templateProps = [];\n _this.useRequestAnimationFrameFlag = false;\n _this.useDeferUpdateForTemplates = false;\n _this._setTemplatesRendererRef = _this._setTemplatesRendererRef.bind(_this);\n _this._createWidget = _this._createWidget.bind(_this);\n _this._templatesStore = new templates_store_1.TemplatesStore(function () {\n if (_this._templatesRendererRef) {\n _this._templatesRendererRef.scheduleUpdate(_this.useDeferUpdateForTemplates);\n }\n });\n _this._templatesManager = new templates_manager_1.default(_this._templatesStore);\n _this._optionsManager = new options_manager_1.OptionsManager(_this._templatesManager);\n return _this;\n }\n ComponentBase.displayContentsStyle = function () {\n return utils_1.isIE()\n ? {\n width: '100%',\n height: '100%',\n padding: 0,\n margin: 0,\n }\n : { display: 'contents' };\n };\n ComponentBase.prototype.componentDidMount = function () {\n this._updateCssClasses(null, this.props);\n };\n ComponentBase.prototype.componentDidUpdate = function (prevProps) {\n this._updateCssClasses(prevProps, this.props);\n var config = this._getConfig();\n this._optionsManager.update(config);\n if (this._templatesRendererRef) {\n this._templatesRendererRef.scheduleUpdate(this.useDeferUpdateForTemplates);\n }\n };\n ComponentBase.prototype.componentWillUnmount = function () {\n if (this._instance) {\n events.triggerHandler(this._element, DX_REMOVE_EVENT);\n this._instance.dispose();\n }\n this._optionsManager.dispose();\n };\n ComponentBase.prototype._createWidget = function (element) {\n element = element || this._element;\n var config = this._getConfig();\n this._instance = new this._WidgetClass(element, __assign({ templatesRenderAsynchronously: true }, this._optionsManager.getInitialOptions(config)));\n if (!this.useRequestAnimationFrameFlag) {\n this.useDeferUpdateForTemplates = this._instance.option('integrationOptions.useDeferUpdateForTemplates');\n }\n this._optionsManager.setInstance(this._instance, config, this.subscribableOptions, this.independentEvents);\n this._instance.on('optionChanged', this._optionsManager.onOptionChanged);\n };\n ComponentBase.prototype._getConfig = function () {\n return tree_1.buildConfigTree({\n templates: this._templateProps,\n initialValuesProps: this._defaults,\n predefinedValuesProps: {},\n expectedChildren: this._expectedChildren,\n }, this.props);\n };\n ComponentBase.prototype._setTemplatesRendererRef = function (instance) {\n this._templatesRendererRef = instance;\n };\n ComponentBase.prototype._getElementProps = function () {\n var _this = this;\n var elementProps = {\n ref: function (element) { _this._element = element; },\n };\n widget_config_1.elementPropNames.forEach(function (name) {\n var props = _this.props;\n if (name in props) {\n elementProps[name] = props[name];\n }\n });\n return elementProps;\n };\n ComponentBase.prototype._updateCssClasses = function (prevProps, newProps) {\n var _a, _b;\n var prevClassName = prevProps ? widget_config_1.getClassName(prevProps) : undefined;\n var newClassName = widget_config_1.getClassName(newProps);\n if (prevClassName === newClassName) {\n return;\n }\n if (prevClassName) {\n var classNames = prevClassName.split(' ').filter(function (c) { return c; });\n if (classNames.length) {\n (_a = this._element.classList).remove.apply(_a, classNames);\n }\n }\n if (newClassName) {\n var classNames = newClassName.split(' ').filter(function (c) { return c; });\n if (classNames.length) {\n (_b = this._element.classList).add.apply(_b, classNames);\n }\n }\n };\n ComponentBase.prototype.renderChildren = function () {\n var children = this.props.children;\n return children;\n };\n ComponentBase.prototype.renderContent = function () {\n var _this = this;\n var children = this.props.children;\n return this.isPortalComponent && children\n ? React.createElement('div', {\n ref: function (node) {\n if (node && _this.portalContainer !== node) {\n _this.portalContainer = node;\n _this.forceUpdate();\n }\n },\n style: ComponentBase.displayContentsStyle(),\n })\n : this.renderChildren();\n };\n ComponentBase.prototype.renderPortal = function () {\n return this.portalContainer && react_dom_1.createPortal(this.renderChildren(), this.portalContainer);\n };\n ComponentBase.prototype.render = function () {\n return React.createElement(React.Fragment, {}, React.createElement('div', this._getElementProps(), this.renderContent(), React.createElement(templates_renderer_1.TemplatesRenderer, {\n templatesStore: this._templatesStore,\n ref: this._setTemplatesRendererRef,\n })), this.isPortalComponent && this.renderPortal());\n };\n return ComponentBase;\n}(React.PureComponent));\nexports.ComponentBase = ComponentBase;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = void 0;\nvar React = require(\"react\");\nvar component_base_1 = require(\"./component-base\");\nvar extension_component_1 = require(\"./extension-component\");\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n function Component(props) {\n var _this = _super.call(this, props) || this;\n _this._extensionCreators = [];\n _this._registerExtension = _this._registerExtension.bind(_this);\n return _this;\n }\n Component.prototype.componentDidMount = function () {\n _super.prototype.componentDidMount.call(this);\n this._createWidget();\n this._createExtensions();\n };\n Component.prototype.renderChildren = function () {\n var _this = this;\n return React.Children.map(this.props.children, function (child) {\n if (child && Object.prototype.isPrototypeOf.call(extension_component_1.ExtensionComponent, child.type)) {\n return React.cloneElement(child, { onMounted: _this._registerExtension });\n }\n return child;\n });\n };\n Component.prototype._registerExtension = function (creator) {\n this._extensionCreators.push(creator);\n };\n Component.prototype._createExtensions = function () {\n var _this = this;\n this._extensionCreators.forEach(function (creator) { return creator(_this._element); });\n };\n return Component;\n}(component_base_1.ComponentBase));\nexports.Component = Component;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n useLegacyTemplateEngine: false,\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChanges = void 0;\nvar tree_1 = require(\"./tree\");\nvar utils_1 = require(\"./utils\");\nfunction compareTemplates(current, prev, changesAccum) {\n var currentTemplatesOptions = {};\n var currentTemplates = {};\n var prevTemplatesOptions = {};\n var prevTemplates = {};\n tree_1.buildTemplates(current, currentTemplatesOptions, currentTemplates);\n tree_1.buildTemplates(prev, prevTemplatesOptions, prevTemplates);\n changesAccum.addRemovedValues(currentTemplatesOptions, prevTemplatesOptions, current.fullName);\n // TODO: support switching to default templates\n // appendRemovedValues(currentTemplates, prevTemplates, \"\", changesAccum.templates);\n Object.keys(currentTemplatesOptions).forEach(function (key) {\n if (currentTemplatesOptions[key] === prevTemplatesOptions[key]) {\n return;\n }\n changesAccum.options[utils_1.mergeNameParts(current.fullName, key)] = currentTemplatesOptions[key];\n });\n Object.keys(currentTemplates).forEach(function (key) {\n var currentTemplate = currentTemplates[key];\n var prevTemplate = prevTemplates[key];\n if (prevTemplate && currentTemplate.content === prevTemplate.content) {\n return;\n }\n changesAccum.templates[key] = currentTemplate;\n });\n}\nfunction compare(current, prev, changesAccum) {\n if (!prev) {\n changesAccum.options[current.fullName] = tree_1.buildNode(current, changesAccum.templates, true);\n return;\n }\n changesAccum.addRemovedValues(current.options, prev.options, current.fullName);\n changesAccum.addRemovedValues(current.configCollections, prev.configCollections, current.fullName);\n changesAccum.addRemovedValues(current.configs, prev.configs, current.fullName);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n compareCollections(current, prev, changesAccum);\n Object.keys(current.configs).forEach(function (key) {\n compare(current.configs[key], prev.configs[key], changesAccum);\n });\n Object.keys(current.options).forEach(function (key) {\n if (current.options[key] === prev.options[key]) {\n return;\n }\n changesAccum.options[utils_1.mergeNameParts(current.fullName, key)] = current.options[key];\n });\n compareTemplates(current, prev, changesAccum);\n}\nfunction appendRemovedValues(current, prev, path, changesAccum) {\n var removedKeys = Object.keys(prev).filter(function (key) { return Object.keys(current).indexOf(key) < 0; });\n removedKeys.forEach(function (key) {\n changesAccum.push(utils_1.mergeNameParts(path, key));\n });\n}\nfunction getChanges(current, prev) {\n var changesAccum = {\n options: {},\n removedOptions: [],\n templates: {},\n addRemovedValues: function (currentOptions, prevOptions, path) {\n appendRemovedValues(currentOptions, prevOptions, path, this.removedOptions);\n },\n };\n compare(current, prev, changesAccum);\n return changesAccum;\n}\nexports.getChanges = getChanges;\nfunction compareCollections(current, prev, changesAccum) {\n Object.keys(current.configCollections).forEach(function (key) {\n var currentCollection = current.configCollections[key];\n var prevCollection = prev.configCollections[key] || [];\n if (!currentCollection || currentCollection.length !== prevCollection.length) {\n var updatedCollection_1 = [];\n currentCollection.forEach(function (item) {\n var config = tree_1.buildNode(item, changesAccum.templates, true);\n updatedCollection_1.push(config);\n });\n changesAccum.options[utils_1.mergeNameParts(current.fullName, key)] = updatedCollection_1;\n return;\n }\n for (var i = 0; i < currentCollection.length; i += 1) {\n compare(currentCollection[i], prevCollection[i], changesAccum);\n }\n });\n}\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ElementType = exports.getElementInfo = void 0;\nvar template_1 = require(\"../../template\");\nvar ElementType;\n(function (ElementType) {\n ElementType[ElementType[\"Option\"] = 0] = \"Option\";\n ElementType[ElementType[\"Template\"] = 1] = \"Template\";\n ElementType[ElementType[\"Unknown\"] = 2] = \"Unknown\";\n})(ElementType || (ElementType = {}));\nexports.ElementType = ElementType;\nfunction getElementInfo(element, parentExpectedChildren) {\n var reactElement = element;\n if (!reactElement || !reactElement.type) {\n return {\n type: ElementType.Unknown,\n };\n }\n if (reactElement.type === template_1.Template) {\n return {\n type: ElementType.Template,\n props: reactElement.props,\n };\n }\n var elementDescriptor = reactElement.type;\n if (elementDescriptor.OptionName) {\n var name_1 = elementDescriptor.OptionName;\n var isCollectionItem = elementDescriptor.IsCollectionItem;\n var expectation = parentExpectedChildren && parentExpectedChildren[name_1];\n if (expectation) {\n isCollectionItem = expectation.isCollectionItem;\n if (expectation.optionName) {\n name_1 = expectation.optionName;\n }\n }\n return {\n type: ElementType.Option,\n descriptor: {\n name: name_1,\n isCollection: isCollectionItem,\n templates: elementDescriptor.TemplateProps || [],\n initialValuesProps: elementDescriptor.DefaultsProps || {},\n predefinedValuesProps: elementDescriptor.PredefinedProps || {},\n expectedChildren: elementDescriptor.ExpectedChildren || {},\n },\n props: reactElement.props,\n };\n }\n return {\n type: ElementType.Unknown,\n };\n}\nexports.getElementInfo = getElementInfo;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNamedTemplate = exports.getAnonymousTemplate = void 0;\nfunction getAnonymousTemplate(props, templateMeta, hasTranscludedContent) {\n if (templateMeta.tmplOption === 'template' && hasTranscludedContent) {\n return {\n optionName: templateMeta.tmplOption,\n isAnonymous: true,\n type: 'children',\n content: props.children,\n keyFn: props[templateMeta.keyFn],\n };\n }\n if (props[templateMeta.render]) {\n return {\n optionName: templateMeta.tmplOption,\n isAnonymous: true,\n type: 'render',\n content: props[templateMeta.render],\n keyFn: props[templateMeta.keyFn],\n };\n }\n if (props[templateMeta.component]) {\n return {\n optionName: templateMeta.tmplOption,\n isAnonymous: true,\n type: 'component',\n content: props[templateMeta.component],\n keyFn: props[templateMeta.keyFn],\n };\n }\n return null;\n}\nexports.getAnonymousTemplate = getAnonymousTemplate;\nfunction getNamedTemplate(props) {\n if (!props.name) {\n return null;\n }\n if (props.component) {\n return {\n optionName: props.name,\n isAnonymous: false,\n type: 'component',\n content: props.component,\n keyFn: props.keyFn,\n };\n }\n if (props.render) {\n return {\n optionName: props.name,\n isAnonymous: false,\n type: 'render',\n content: props.render,\n keyFn: props.keyFn,\n };\n }\n return {\n optionName: props.name,\n isAnonymous: false,\n type: 'children',\n content: props.children,\n keyFn: props.keyFn,\n };\n}\nexports.getNamedTemplate = getNamedTemplate;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildConfigTree = exports.processChildren = void 0;\nvar React = require(\"react\");\nvar widget_config_1 = require(\"../../widget-config\");\nvar element_1 = require(\"./element\");\nvar utils_1 = require(\"../utils\");\nvar templates_1 = require(\"./templates\");\nfunction processChildren(parentElement, parentFullName) {\n var templates = [];\n var configCollections = {};\n var configs = {};\n var hasTranscludedContent = false;\n React.Children.map(parentElement.props.children, function (child) {\n var element = element_1.getElementInfo(child, parentElement.descriptor.expectedChildren);\n if (element.type === element_1.ElementType.Unknown) {\n if (child !== null && child !== undefined && child !== false) {\n hasTranscludedContent = true;\n }\n return;\n }\n if (element.type === element_1.ElementType.Template) {\n var template = templates_1.getNamedTemplate(element.props);\n if (template) {\n templates.push(template);\n }\n return;\n }\n if (element.descriptor.isCollection) {\n var collection = configCollections[element.descriptor.name];\n if (!collection) {\n collection = [];\n configCollections[element.descriptor.name] = collection;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var collectionItem = createConfigNode(element, utils_1.mergeNameParts(parentFullName, element.descriptor.name) + \"[\" + collection.length + \"]\");\n collection.push(collectionItem);\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var configNode = createConfigNode(element, parentFullName);\n configs[element.descriptor.name] = configNode;\n });\n return {\n configs: configs,\n configCollections: configCollections,\n templates: templates,\n hasTranscludedContent: hasTranscludedContent,\n };\n}\nexports.processChildren = processChildren;\nfunction createConfigNode(element, path) {\n var fullName = element.descriptor.isCollection\n ? path\n : utils_1.mergeNameParts(path, element.descriptor.name);\n var separatedValues = widget_config_1.separateProps(element.props, element.descriptor.initialValuesProps, element.descriptor.templates);\n var childrenData = processChildren(element, fullName);\n element.descriptor.templates.forEach(function (templateMeta) {\n var template = templates_1.getAnonymousTemplate(element.props, templateMeta, path.length > 0 ? childrenData.hasTranscludedContent : false);\n if (template) {\n childrenData.templates.push(template);\n }\n });\n return {\n fullName: fullName,\n predefinedOptions: element.descriptor.predefinedValuesProps,\n initialOptions: separatedValues.defaults,\n options: separatedValues.options,\n templates: childrenData.templates,\n configCollections: childrenData.configCollections,\n configs: childrenData.configs,\n };\n}\nfunction buildConfigTree(widgetDescriptor, props) {\n return createConfigNode({\n type: element_1.ElementType.Option,\n descriptor: __assign({ name: '', isCollection: false }, widgetDescriptor),\n props: props,\n }, '');\n}\nexports.buildConfigTree = buildConfigTree;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findValueInObject = exports.findValue = exports.buildTemplates = exports.buildNode = exports.buildConfig = exports.ValueType = void 0;\nvar utils_1 = require(\"./utils\");\nfunction buildTemplates(node, optionsAccum, templatesAccum) {\n node.templates.forEach(function (template) {\n if (template.isAnonymous) {\n var templateName = utils_1.mergeNameParts(node.fullName, template.optionName);\n optionsAccum[template.optionName] = templateName;\n templatesAccum[templateName] = template;\n }\n else {\n templatesAccum[template.optionName] = template;\n }\n });\n}\nexports.buildTemplates = buildTemplates;\nfunction buildNode(node, templatesAccum, ignoreInitialValues) {\n var result = {};\n Object.keys(node.predefinedOptions).forEach(function (key) {\n result[key] = node.predefinedOptions[key];\n });\n Object.keys(node.configs).forEach(function (key) {\n result[key] = buildNode(node.configs[key], templatesAccum, ignoreInitialValues);\n });\n Object.keys(node.configCollections).forEach(function (key) {\n result[key] = node.configCollections[key].map(function (item) { return buildNode(item, templatesAccum, ignoreInitialValues); });\n });\n if (!ignoreInitialValues) {\n Object.keys(node.initialOptions).forEach(function (key) {\n result[key] = node.initialOptions[key];\n });\n }\n Object.keys(node.options).forEach(function (key) {\n result[key] = node.options[key];\n });\n buildTemplates(node, result, templatesAccum);\n return result;\n}\nexports.buildNode = buildNode;\nfunction buildConfig(root, ignoreInitialValues) {\n var templatesAccum = {};\n var options = buildNode(root, templatesAccum, ignoreInitialValues);\n return {\n templates: templatesAccum,\n options: options,\n };\n}\nexports.buildConfig = buildConfig;\nvar ValueType;\n(function (ValueType) {\n ValueType[ValueType[\"Simple\"] = 0] = \"Simple\";\n ValueType[ValueType[\"Complex\"] = 1] = \"Complex\";\n ValueType[ValueType[\"Array\"] = 2] = \"Array\";\n})(ValueType || (ValueType = {}));\nexports.ValueType = ValueType;\nfunction findValueInObject(obj, path) {\n var key = path.shift();\n if (!key) {\n return {\n value: obj,\n type: ValueType.Simple,\n };\n }\n if (obj instanceof Object && Object.keys(obj).includes(key)) {\n return findValueInObject(obj[key], path);\n }\n return undefined;\n}\nexports.findValueInObject = findValueInObject;\nfunction findValue(node, path) {\n var name = path.shift();\n if (!name) {\n return {\n value: buildConfig(node, true).options,\n type: ValueType.Complex,\n };\n }\n var optionInfo = utils_1.parseOptionName(name);\n if (optionInfo.name in node.options) {\n var options = optionInfo.isCollectionItem\n ? node.options[optionInfo.name][optionInfo.index]\n : node.options[optionInfo.name];\n return findValueInObject(options, path);\n }\n if (optionInfo.isCollectionItem) {\n var collection = node.configCollections[optionInfo.name];\n if (!collection) {\n return undefined;\n }\n var item = collection[optionInfo.index];\n if (!item) {\n return undefined;\n }\n return findValue(item, path);\n }\n var child = node.configs[optionInfo.name];\n if (child) {\n return findValue(child, path);\n }\n var childCollection = node.configCollections[optionInfo.name];\n if (childCollection) {\n if (path.length !== 0) {\n return undefined;\n }\n return {\n value: childCollection.map(function (item) { return buildNode(item, {}, true); }),\n type: ValueType.Array,\n };\n }\n return undefined;\n}\nexports.findValue = findValue;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shallowEquals = exports.isIE = exports.parseOptionName = exports.mergeNameParts = void 0;\nfunction mergeNameParts() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.filter(function (value) { return value; }).join('.');\n}\nexports.mergeNameParts = mergeNameParts;\nfunction parseOptionName(name) {\n var parts = name.split('[');\n if (parts.length === 1) {\n return {\n isCollectionItem: false,\n name: name,\n };\n }\n return {\n isCollectionItem: true,\n name: parts[0],\n index: Number(parts[1].slice(0, -1)),\n };\n}\nexports.parseOptionName = parseOptionName;\nexports.isIE = function () {\n var _a, _b;\n var ua = (_b = (_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) !== null && _b !== void 0 ? _b : ''; // Check the userAgent property of the window.navigator object\n var msie = ua.indexOf('MSIE'); // IE 10 or older\n var trident = ua.indexOf('Trident/'); // IE 11\n return (msie > 0 || trident > 0);\n};\nexports.shallowEquals = function (first, second) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n return Object.keys(first).every(function (key) { return first[key] === second[key]; });\n};\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDxTemplate = void 0;\nvar React = require(\"react\");\nvar helpers_1 = require(\"./helpers\");\nvar template_wrapper_1 = require(\"./template-wrapper\");\nfunction unwrapElement(element) {\n return element.get ? element.get(0) : element;\n}\nfunction createDxTemplate(createContentProvider, templatesStore, keyFn) {\n var renderedTemplates = new helpers_1.DoubleKeyMap();\n return {\n render: function (data) {\n var container = unwrapElement(data.container);\n var key = { key1: data.model, key2: container };\n var prevTemplateId = renderedTemplates.get(key);\n var templateId;\n if (prevTemplateId) {\n templateId = prevTemplateId;\n }\n else {\n templateId = keyFn ? keyFn(data.model) : \"__template_\" + helpers_1.generateID();\n if (data.model !== undefined) {\n renderedTemplates.set(key, templateId);\n }\n }\n templatesStore.add(templateId, function () {\n var props = {\n data: data.model,\n index: data.index,\n };\n var contentProvider = createContentProvider();\n return React.createElement(template_wrapper_1.TemplateWrapper, {\n content: contentProvider(props),\n container: container,\n onRemoved: function () {\n templatesStore.remove(templateId);\n renderedTemplates.delete({ key1: data.model, key2: container });\n },\n onRendered: data.onRendered,\n key: templateId,\n });\n });\n return container;\n },\n };\n}\nexports.createDxTemplate = createDxTemplate;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExtensionComponent = void 0;\nvar component_base_1 = require(\"./component-base\");\nvar ExtensionComponent = /** @class */ (function (_super) {\n __extends(ExtensionComponent, _super);\n function ExtensionComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExtensionComponent.prototype.componentDidMount = function () {\n var onMounted = this.props.onMounted;\n if (onMounted) {\n onMounted(this._createWidget);\n }\n else {\n this._createWidget();\n }\n };\n return ExtensionComponent;\n}(component_base_1.ComponentBase));\nexports.ExtensionComponent = ExtensionComponent;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.capitalizeFirstLetter = exports.DoubleKeyMap = exports.generateID = void 0;\nfunction generateID() {\n return Math.random().toString(36).substr(2);\n}\nexports.generateID = generateID;\nvar DoubleKeyMap = /** @class */ (function () {\n function DoubleKeyMap() {\n this._map = new Map();\n }\n DoubleKeyMap.prototype.set = function (_a, value) {\n var key1 = _a.key1, key2 = _a.key2;\n var innerMap = this._map.get(key1);\n if (!innerMap) {\n innerMap = new Map();\n this._map.set(key1, innerMap);\n }\n innerMap.set(key2, value);\n };\n DoubleKeyMap.prototype.get = function (_a) {\n var key1 = _a.key1, key2 = _a.key2;\n var innerMap = this._map.get(key1);\n return innerMap ? innerMap.get(key2) : undefined;\n };\n DoubleKeyMap.prototype.delete = function (_a) {\n var key1 = _a.key1, key2 = _a.key2;\n var innerMap = this._map.get(key1);\n if (!innerMap) {\n return;\n }\n innerMap.delete(key2);\n if (innerMap.size === 0) {\n this._map.delete(key1);\n }\n };\n return DoubleKeyMap;\n}());\nexports.DoubleKeyMap = DoubleKeyMap;\nfunction capitalizeFirstLetter(text) {\n if (text.length) {\n return \"\" + text[0].toUpperCase() + text.substr(1);\n }\n return '';\n}\nexports.capitalizeFirstLetter = capitalizeFirstLetter;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nvar element_1 = require(\"./configuration/react/element\");\nvar NestedOption = /** @class */ (function (_super) {\n __extends(NestedOption, _super);\n function NestedOption() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NestedOption.prototype.render = function () {\n var stateChildren = this.props.children;\n var children = React.Children.map(stateChildren, function (child) {\n var childElementInfo = element_1.getElementInfo(child);\n return childElementInfo.type === element_1.ElementType.Option ? child : null;\n });\n return React.createElement(React.Fragment, {}, children);\n };\n return NestedOption;\n}(React.PureComponent));\nexports.default = NestedOption;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsManager = void 0;\nvar comparer_1 = require(\"./configuration/comparer\");\nvar tree_1 = require(\"./configuration/tree\");\nvar utils_1 = require(\"./configuration/utils\");\nvar helpers_1 = require(\"./helpers\");\nvar OptionsManager = /** @class */ (function () {\n function OptionsManager(templatesManager) {\n this.guards = {};\n this.isUpdating = false;\n this.templatesManager = templatesManager;\n this.onOptionChanged = this.onOptionChanged.bind(this);\n this.wrapOptionValue = this.wrapOptionValue.bind(this);\n }\n OptionsManager.prototype.setInstance = function (instance, config, subscribableOptions, independentEvents) {\n this.instance = instance;\n this.currentConfig = config;\n this.subscribableOptions = new Set(subscribableOptions);\n this.independentEvents = new Set(independentEvents);\n };\n OptionsManager.prototype.getInitialOptions = function (rootNode) {\n var _this = this;\n var config = tree_1.buildConfig(rootNode, false);\n Object.keys(config.templates).forEach(function (key) {\n _this.templatesManager.add(key, config.templates[key]);\n });\n var options = {};\n Object.keys(config.options).forEach(function (key) {\n options[key] = _this.wrapOptionValue(key, config.options[key]);\n });\n if (this.templatesManager.templatesCount > 0) {\n options.integrationOptions = {\n templates: this.templatesManager.templates,\n };\n }\n return options;\n };\n OptionsManager.prototype.update = function (config) {\n var _this = this;\n var changedOptions = [];\n var optionChangedHandler = function (_a) {\n var value = _a.value, fullName = _a.fullName;\n changedOptions.push([fullName, value]);\n };\n this.instance.on('optionChanged', optionChangedHandler);\n var changes = comparer_1.getChanges(config, this.currentConfig);\n if (!changes.options && !changes.templates && !changes.removedOptions.length) {\n return;\n }\n this.instance.beginUpdate();\n this.isUpdating = true;\n changes.removedOptions.forEach(function (optionName) {\n _this.resetOption(optionName);\n });\n Object.keys(changes.templates).forEach(function (key) {\n _this.templatesManager.add(key, changes.templates[key]);\n });\n if (this.templatesManager.templatesCount > 0) {\n this.setValue('integrationOptions', {\n templates: this.templatesManager.templates,\n });\n }\n Object.keys(changes.options).forEach(function (key) {\n _this.setValue(key, changes.options[key]);\n });\n this.isUpdating = false;\n this.instance.off('optionChanged', optionChangedHandler);\n this.currentConfig = config;\n changedOptions.forEach(function (_a) {\n var name = _a[0], value = _a[1];\n var currentPropValue = config.options[name];\n if (config.options.hasOwnProperty(name) && currentPropValue !== value) {\n _this.setValue(name, currentPropValue);\n }\n });\n this.instance.endUpdate();\n };\n OptionsManager.prototype.onOptionChanged = function (e) {\n var _this = this;\n var _a;\n if (this.isUpdating) {\n return;\n }\n var valueDescriptor = tree_1.findValue(this.currentConfig, e.fullName.split('.'));\n if (!valueDescriptor || valueDescriptor.value !== e.value) {\n this.callOptionChangeHandler(e.fullName, e.value);\n }\n valueDescriptor = tree_1.findValue(this.currentConfig, e.fullName.split('.'));\n if (!valueDescriptor) {\n return;\n }\n var value = valueDescriptor.value, type = valueDescriptor.type;\n if (value instanceof Array && type === tree_1.ValueType.Array) {\n for (var i = 0; i < value.length; i += 1) {\n if (value[i] !== ((_a = e.value) === null || _a === void 0 ? void 0 : _a[i])) {\n this.setGuard(e.fullName, value);\n return;\n }\n }\n }\n else if (type === tree_1.ValueType.Complex && value instanceof Object) {\n Object.keys(value).forEach(function (key) {\n var _a;\n if (value[key] === ((_a = e.value) === null || _a === void 0 ? void 0 : _a[key])) {\n return;\n }\n _this.setGuard(utils_1.mergeNameParts(e.fullName, key), value[key]);\n });\n }\n else {\n var valuesAreEqual = value === e.value;\n var valuesAreEqualObjects = !valuesAreEqual\n && value instanceof Object\n && e.value instanceof Object\n && utils_1.shallowEquals(value, e.value);\n if (valuesAreEqual || valuesAreEqualObjects || this.instance.skipOptionsRollBack) {\n return;\n }\n this.setGuard(e.fullName, value);\n }\n };\n OptionsManager.prototype.dispose = function () {\n var _this = this;\n Object.keys(this.guards).forEach(function (optionName) {\n window.clearTimeout(_this.guards[optionName]);\n delete _this.guards[optionName];\n });\n };\n OptionsManager.prototype.isOptionSubscribable = function (optionName) {\n return this.subscribableOptions.has(optionName);\n };\n OptionsManager.prototype.isIndependentEvent = function (optionName) {\n return this.independentEvents.has(optionName);\n };\n OptionsManager.prototype.callOptionChangeHandler = function (optionName, optionValue) {\n if (!this.isOptionSubscribable(optionName)) {\n return;\n }\n var parts = optionName.split('.');\n var propName = parts[parts.length - 1];\n if (propName.startsWith('on')) {\n return;\n }\n var eventName = \"on\" + helpers_1.capitalizeFirstLetter(propName) + \"Change\";\n parts[parts.length - 1] = eventName;\n var changeEvent = tree_1.findValue(this.currentConfig, parts);\n if (!changeEvent) {\n return;\n }\n if (typeof changeEvent.value !== 'function') {\n throw new Error(\"Invalid value for the \" + eventName + \" property.\\n \" + eventName + \" must be a function.\");\n }\n changeEvent.value(optionValue);\n };\n OptionsManager.prototype.wrapOptionValue = function (name, value) {\n var _this = this;\n if (name.substr(0, 2) === 'on' && typeof value === 'function') {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!_this.isUpdating || _this.isIndependentEvent(name)) {\n value.apply(void 0, args);\n }\n };\n }\n return value;\n };\n OptionsManager.prototype.setGuard = function (optionName, optionValue) {\n var _this = this;\n if (this.guards[optionName] !== undefined) {\n return;\n }\n var guardId = window.setTimeout(function () {\n _this.setValue(optionName, optionValue);\n window.clearTimeout(guardId);\n delete _this.guards[optionName];\n });\n this.guards[optionName] = guardId;\n };\n OptionsManager.prototype.resetOption = function (name) {\n this.instance.resetOption(name);\n };\n OptionsManager.prototype.setValue = function (name, value) {\n if (this.guards[name]) {\n window.clearTimeout(this.guards[name]);\n delete this.guards[name];\n }\n this.instance.option(name, this.wrapOptionValue(name, value));\n };\n return OptionsManager;\n}());\nexports.OptionsManager = OptionsManager;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateWrapper = void 0;\nvar events = require(\"devextreme/events\");\nvar React = require(\"react\");\nvar ReactDOM = require(\"react-dom\");\nvar component_base_1 = require(\"./component-base\");\nvar removalListenerStyle = { display: 'none' };\nvar TableNodeNames;\n(function (TableNodeNames) {\n TableNodeNames[\"TABLE\"] = \"tbody\";\n TableNodeNames[\"TBODY\"] = \"tr\";\n})(TableNodeNames || (TableNodeNames = {}));\nvar TemplateWrapper = /** @class */ (function (_super) {\n __extends(TemplateWrapper, _super);\n function TemplateWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._removalListenerRef = React.createRef();\n _this.state = { removalListenerRequired: false };\n _this._onDxRemove = _this._onDxRemove.bind(_this);\n _this.getPreviousSiblingNode = _this.getPreviousSiblingNode.bind(_this);\n return _this;\n }\n TemplateWrapper.prototype.componentDidMount = function () {\n var _a, _b;\n this._subscribeOnRemove();\n (_b = (_a = this.props).onRendered) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n TemplateWrapper.prototype.componentDidUpdate = function () {\n this._subscribeOnRemove();\n };\n TemplateWrapper.prototype.componentWillUnmount = function () {\n // Let React remove it itself\n var node = this.element;\n var hiddenNode = this.hiddenElement;\n var container = this.props.container;\n if (node) {\n container.appendChild(node);\n }\n if (hiddenNode) {\n container.appendChild(hiddenNode);\n }\n if (this._listenerElement) {\n container.appendChild(this._listenerElement);\n }\n };\n Object.defineProperty(TemplateWrapper.prototype, \"_listenerElement\", {\n get: function () {\n return this._removalListenerRef.current;\n },\n enumerable: false,\n configurable: true\n });\n TemplateWrapper.prototype.getPreviousSiblingNode = function (node) {\n this.hiddenElement = node;\n this.element = node === null || node === void 0 ? void 0 : node.previousSibling;\n };\n TemplateWrapper.prototype._subscribeOnRemove = function () {\n var node = this.element;\n var removalListenerRequired = this.state.removalListenerRequired;\n if (node && node.nodeType === Node.ELEMENT_NODE) {\n this._subscribeOnElementRemoval(node);\n return;\n }\n if (!removalListenerRequired) {\n this.setState({ removalListenerRequired: true });\n return;\n }\n if (this._listenerElement) {\n this._subscribeOnElementRemoval(this._listenerElement);\n }\n };\n TemplateWrapper.prototype._subscribeOnElementRemoval = function (element) {\n events.off(element, component_base_1.DX_REMOVE_EVENT, this._onDxRemove);\n events.one(element, component_base_1.DX_REMOVE_EVENT, this._onDxRemove);\n };\n TemplateWrapper.prototype._onDxRemove = function () {\n var onRemoved = this.props.onRemoved;\n onRemoved();\n };\n TemplateWrapper.prototype.render = function () {\n var removalListenerRequired = this.state.removalListenerRequired;\n var _a = this.props, content = _a.content, container = _a.container;\n var removalListener = removalListenerRequired\n ? React.createElement('span', { style: removalListenerStyle, ref: this._removalListenerRef })\n : undefined;\n var nodeName = TableNodeNames[container.nodeName] || 'div';\n return ReactDOM.createPortal(React.createElement(React.Fragment, null, content, content && React.createElement(nodeName, { style: { display: 'none' }, ref: this.getPreviousSiblingNode }), removalListener), container);\n };\n return TemplateWrapper;\n}(React.PureComponent));\nexports.TemplateWrapper = TemplateWrapper;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findProps = exports.Template = void 0;\nvar PropTypes = require(\"prop-types\");\nvar React = require(\"react\");\nvar Template = /** @class */ (function (_super) {\n __extends(Template, _super);\n function Template() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Template.prototype.render = function () {\n return null;\n };\n return Template;\n}(React.PureComponent));\nexports.Template = Template;\nvar requiredPropsCheck = function (props) {\n if (!props.component && !props.render && !props.children) {\n return new Error(\"The Template component requires 'component' or 'render' property\");\n }\n return null;\n};\nTemplate.propTypes = {\n name: PropTypes.string.isRequired,\n component: requiredPropsCheck,\n render: requiredPropsCheck,\n children: requiredPropsCheck,\n};\nfunction findProps(child) {\n if (child.type !== Template) {\n return undefined;\n }\n return {\n name: child.props.name,\n render: child.props.render,\n component: child.props.component,\n children: child.props.children,\n keyFn: child.props.keyFn,\n };\n}\nexports.findProps = findProps;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nvar config_1 = require(\"./config\");\nvar dx_template_1 = require(\"./dx-template\");\nfunction normalizeProps(props) {\n if (config_1.getOption('useLegacyTemplateEngine')) {\n var model = props.data;\n if (model && Object.prototype.hasOwnProperty.call(model, 'key')) {\n model.dxkey = model.key;\n }\n return model;\n }\n return props;\n}\nvar contentCreators = {\n component: function (contentGetter) { return function (props) {\n props = normalizeProps(props);\n return React.createElement.bind(null, contentGetter())(props);\n }; },\n render: function (contentGetter) { return function (props) {\n normalizeProps(props);\n return contentGetter()(props.data, props.index);\n }; },\n children: function (contentGetter) { return function () { return contentGetter(); }; },\n};\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(templatesStore) {\n this._templates = {};\n this._templatesContent = {};\n this._templatesStore = templatesStore;\n }\n TemplatesManager.prototype.add = function (name, template) {\n var _this = this;\n this._templatesContent[name] = template.content;\n var contentCreator = contentCreators[template.type]\n .bind(this, function () { return _this._templatesContent[name]; });\n this._templates[name] = dx_template_1.createDxTemplate(contentCreator, this._templatesStore, template.keyFn);\n };\n Object.defineProperty(TemplatesManager.prototype, \"templatesCount\", {\n get: function () {\n return Object.keys(this._templates).length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n return TemplatesManager;\n}());\nexports.default = TemplatesManager;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesRenderer = void 0;\nvar frame_1 = require(\"devextreme/animation/frame\");\nvar common_1 = require(\"devextreme/core/utils/common\");\nvar React = require(\"react\");\nvar TemplatesRenderer = /** @class */ (function (_super) {\n __extends(TemplatesRenderer, _super);\n function TemplatesRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.updateScheduled = false;\n _this.mounted = false;\n return _this;\n }\n TemplatesRenderer.prototype.componentDidMount = function () {\n this.mounted = true;\n };\n TemplatesRenderer.prototype.componentWillUnmount = function () {\n this.mounted = false;\n };\n TemplatesRenderer.prototype.scheduleUpdate = function (useDeferUpdate) {\n var _this = this;\n if (this.updateScheduled) {\n return;\n }\n this.updateScheduled = true;\n var updateFunc = useDeferUpdate ? common_1.deferUpdate : frame_1.requestAnimationFrame;\n updateFunc(function () {\n if (_this.mounted) {\n _this.forceUpdate();\n }\n _this.updateScheduled = false;\n });\n };\n TemplatesRenderer.prototype.render = function () {\n var templatesStore = this.props.templatesStore;\n return React.createElement(React.Fragment, {}, templatesStore.renderWrappers());\n };\n return TemplatesRenderer;\n}(React.PureComponent));\nexports.TemplatesRenderer = TemplatesRenderer;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesStore = void 0;\nvar TemplatesStore = /** @class */ (function () {\n function TemplatesStore(onTemplateAdded) {\n this._templates = {};\n this._onTemplateAdded = onTemplateAdded;\n }\n TemplatesStore.prototype.add = function (templateId, templateFunc) {\n this._templates[templateId] = templateFunc;\n this._onTemplateAdded();\n };\n TemplatesStore.prototype.remove = function (templateId) {\n delete this._templates[templateId];\n };\n TemplatesStore.prototype.renderWrappers = function () {\n var _this = this;\n return Object.getOwnPropertyNames(this._templates).map(function (templateId) { return _this._templates[templateId](); });\n };\n return TemplatesStore;\n}());\nexports.TemplatesStore = TemplatesStore;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.separateProps = exports.getClassName = exports.elementPropNames = void 0;\nvar elementPropNames = ['style', 'id'];\nexports.elementPropNames = elementPropNames;\nvar classNamePropName = 'className';\nfunction isIgnoredProp(name) {\n return name === 'children' || name === classNamePropName || elementPropNames.indexOf(name) > -1;\n}\nfunction separateProps(props, defaultsProps, templateProps) {\n templateProps = templateProps || [];\n var defaults = {};\n var options = {};\n var templates = {};\n var knownTemplates = {};\n templateProps.forEach(function (value) {\n knownTemplates[value.component] = true;\n knownTemplates[value.render] = true;\n });\n Object.keys(props).forEach(function (key) {\n var defaultOptionName = defaultsProps ? defaultsProps[key] : null;\n if (isIgnoredProp(key)) {\n return;\n }\n if (defaultOptionName) {\n defaults[defaultOptionName] = props[key];\n return;\n }\n if (knownTemplates[key]) {\n templates[key] = props[key];\n return;\n }\n options[key] = props[key];\n });\n return { options: options, defaults: defaults, templates: templates };\n}\nexports.separateProps = separateProps;\nfunction getClassName(props) {\n return props[classNamePropName];\n}\nexports.getClassName = getClassName;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TooltipBorder = exports.Tooltip = exports.Title = exports.Subtitle = exports.SmallValuesGrouping = exports.Size = exports.Shadow = exports.SeriesTemplate = exports.SeriesBorder = exports.Series = exports.SelectionStyle = exports.PieChartTitleSubtitle = exports.PieChartTitle = exports.Margin = exports.LoadingIndicator = exports.LegendTitleSubtitle = exports.LegendTitle = exports.Legend = exports.Label = exports.Image = exports.HoverStyle = exports.Hatching = exports.Format = exports.Font = exports.Export = exports.Connector = exports.CommonSeriesSettings = exports.CommonAnnotationSettings = exports.Border = exports.ArgumentFormat = exports.AnnotationBorder = exports.Annotation = exports.Animation = exports.AdaptiveLayout = exports.PieChart = void 0;\nvar pie_chart_1 = require(\"devextreme/viz/pie_chart\");\nvar PropTypes = require(\"prop-types\");\nvar component_1 = require(\"./core/component\");\nvar nested_option_1 = require(\"./core/nested-option\");\nvar PieChart = /** @class */ (function (_super) {\n __extends(PieChart, _super);\n function PieChart() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = pie_chart_1.default;\n _this.subscribableOptions = [\"loadingIndicator\", \"loadingIndicator.show\"];\n _this.independentEvents = [\"onDisposing\", \"onDone\", \"onDrawn\", \"onExported\", \"onExporting\", \"onFileSaving\", \"onIncidentOccurred\", \"onInitialized\", \"onLegendClick\", \"onPointClick\", \"onTooltipHidden\", \"onTooltipShown\"];\n _this._defaults = {\n defaultLoadingIndicator: \"loadingIndicator\"\n };\n _this._expectedChildren = {\n adaptiveLayout: { optionName: \"adaptiveLayout\", isCollectionItem: false },\n animation: { optionName: \"animation\", isCollectionItem: false },\n annotation: { optionName: \"annotations\", isCollectionItem: true },\n commonAnnotationSettings: { optionName: \"commonAnnotationSettings\", isCollectionItem: false },\n commonSeriesSettings: { optionName: \"commonSeriesSettings\", isCollectionItem: false },\n export: { optionName: \"export\", isCollectionItem: false },\n legend: { optionName: \"legend\", isCollectionItem: false },\n loadingIndicator: { optionName: \"loadingIndicator\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n pieChartTitle: { optionName: \"title\", isCollectionItem: false },\n series: { optionName: \"series\", isCollectionItem: true },\n seriesTemplate: { optionName: \"seriesTemplate\", isCollectionItem: false },\n size: { optionName: \"size\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false },\n tooltip: { optionName: \"tooltip\", isCollectionItem: false }\n };\n _this._templateProps = [{\n tmplOption: \"centerTemplate\",\n render: \"centerRender\",\n component: \"centerComponent\",\n keyFn: \"centerKeyFn\"\n }];\n return _this;\n }\n Object.defineProperty(PieChart.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return PieChart;\n}(component_1.Component));\nexports.PieChart = PieChart;\nPieChart.propTypes = {\n adaptiveLayout: PropTypes.object,\n animation: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.object\n ]),\n annotations: PropTypes.array,\n commonAnnotationSettings: PropTypes.object,\n customizeAnnotation: PropTypes.func,\n customizeLabel: PropTypes.func,\n customizePoint: PropTypes.func,\n dataSource: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object,\n PropTypes.string\n ]),\n diameter: PropTypes.number,\n disabled: PropTypes.bool,\n elementAttr: PropTypes.object,\n export: PropTypes.object,\n innerRadius: PropTypes.number,\n legend: PropTypes.object,\n loadingIndicator: PropTypes.object,\n margin: PropTypes.object,\n minDiameter: PropTypes.number,\n onDisposing: PropTypes.func,\n onDone: PropTypes.func,\n onDrawn: PropTypes.func,\n onExported: PropTypes.func,\n onExporting: PropTypes.func,\n onFileSaving: PropTypes.func,\n onIncidentOccurred: PropTypes.func,\n onInitialized: PropTypes.func,\n onLegendClick: PropTypes.func,\n onOptionChanged: PropTypes.func,\n onPointClick: PropTypes.func,\n onPointHoverChanged: PropTypes.func,\n onPointSelectionChanged: PropTypes.func,\n onTooltipHidden: PropTypes.func,\n onTooltipShown: PropTypes.func,\n palette: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.oneOf([\n \"Bright\",\n \"Harmony Light\",\n \"Ocean\",\n \"Pastel\",\n \"Soft\",\n \"Soft Pastel\",\n \"Vintage\",\n \"Violet\",\n \"Carmine\",\n \"Dark Moon\",\n \"Dark Violet\",\n \"Green Mist\",\n \"Soft Blue\",\n \"Material\",\n \"Office\"\n ])\n ]),\n paletteExtensionMode: PropTypes.oneOf([\n \"alternate\",\n \"blend\",\n \"extrapolate\"\n ]),\n pathModified: PropTypes.bool,\n pointSelectionMode: PropTypes.oneOf([\n \"multiple\",\n \"single\"\n ]),\n redrawOnResize: PropTypes.bool,\n resolveLabelOverlapping: PropTypes.oneOf([\n \"hide\",\n \"none\",\n \"shift\"\n ]),\n rtlEnabled: PropTypes.bool,\n segmentsDirection: PropTypes.oneOf([\n \"anticlockwise\",\n \"clockwise\"\n ]),\n series: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object\n ]),\n seriesTemplate: PropTypes.object,\n size: PropTypes.object,\n sizeGroup: PropTypes.string,\n startAngle: PropTypes.number,\n theme: PropTypes.oneOf([\n \"generic.dark\",\n \"generic.light\",\n \"generic.contrast\",\n \"generic.carmine\",\n \"generic.darkmoon\",\n \"generic.darkviolet\",\n \"generic.greenmist\",\n \"generic.softblue\",\n \"material.blue.light\",\n \"material.lime.light\",\n \"material.orange.light\",\n \"material.purple.light\",\n \"material.teal.light\"\n ]),\n title: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string\n ]),\n tooltip: PropTypes.object,\n type: PropTypes.oneOf([\n \"donut\",\n \"doughnut\",\n \"pie\"\n ])\n};\nvar AdaptiveLayout = /** @class */ (function (_super) {\n __extends(AdaptiveLayout, _super);\n function AdaptiveLayout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AdaptiveLayout.OptionName = \"adaptiveLayout\";\n return AdaptiveLayout;\n}(nested_option_1.default));\nexports.AdaptiveLayout = AdaptiveLayout;\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Animation.OptionName = \"animation\";\n return Animation;\n}(nested_option_1.default));\nexports.Animation = Animation;\nvar Annotation = /** @class */ (function (_super) {\n __extends(Annotation, _super);\n function Annotation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Annotation.OptionName = \"annotations\";\n Annotation.IsCollectionItem = true;\n Annotation.ExpectedChildren = {\n annotationBorder: { optionName: \"border\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n image: { optionName: \"image\", isCollectionItem: false },\n shadow: { optionName: \"shadow\", isCollectionItem: false }\n };\n Annotation.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }, {\n tmplOption: \"tooltipTemplate\",\n render: \"tooltipRender\",\n component: \"tooltipComponent\",\n keyFn: \"tooltipKeyFn\"\n }];\n return Annotation;\n}(nested_option_1.default));\nexports.Annotation = Annotation;\nvar AnnotationBorder = /** @class */ (function (_super) {\n __extends(AnnotationBorder, _super);\n function AnnotationBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnnotationBorder.OptionName = \"border\";\n return AnnotationBorder;\n}(nested_option_1.default));\nexports.AnnotationBorder = AnnotationBorder;\nvar ArgumentFormat = /** @class */ (function (_super) {\n __extends(ArgumentFormat, _super);\n function ArgumentFormat() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ArgumentFormat.OptionName = \"argumentFormat\";\n return ArgumentFormat;\n}(nested_option_1.default));\nexports.ArgumentFormat = ArgumentFormat;\nvar Border = /** @class */ (function (_super) {\n __extends(Border, _super);\n function Border() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Border.OptionName = \"border\";\n return Border;\n}(nested_option_1.default));\nexports.Border = Border;\nvar CommonAnnotationSettings = /** @class */ (function (_super) {\n __extends(CommonAnnotationSettings, _super);\n function CommonAnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonAnnotationSettings.OptionName = \"commonAnnotationSettings\";\n CommonAnnotationSettings.TemplateProps = [{\n tmplOption: \"template\",\n render: \"render\",\n component: \"component\",\n keyFn: \"keyFn\"\n }, {\n tmplOption: \"tooltipTemplate\",\n render: \"tooltipRender\",\n component: \"tooltipComponent\",\n keyFn: \"tooltipKeyFn\"\n }];\n return CommonAnnotationSettings;\n}(nested_option_1.default));\nexports.CommonAnnotationSettings = CommonAnnotationSettings;\nvar CommonSeriesSettings = /** @class */ (function (_super) {\n __extends(CommonSeriesSettings, _super);\n function CommonSeriesSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettings.OptionName = \"commonSeriesSettings\";\n CommonSeriesSettings.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n selectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false },\n smallValuesGrouping: { optionName: \"smallValuesGrouping\", isCollectionItem: false }\n };\n return CommonSeriesSettings;\n}(nested_option_1.default));\nexports.CommonSeriesSettings = CommonSeriesSettings;\nvar Connector = /** @class */ (function (_super) {\n __extends(Connector, _super);\n function Connector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Connector.OptionName = \"connector\";\n return Connector;\n}(nested_option_1.default));\nexports.Connector = Connector;\nvar Export = /** @class */ (function (_super) {\n __extends(Export, _super);\n function Export() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Export.OptionName = \"export\";\n return Export;\n}(nested_option_1.default));\nexports.Export = Export;\nvar Font = /** @class */ (function (_super) {\n __extends(Font, _super);\n function Font() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Font.OptionName = \"font\";\n return Font;\n}(nested_option_1.default));\nexports.Font = Font;\nvar Format = /** @class */ (function (_super) {\n __extends(Format, _super);\n function Format() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Format.OptionName = \"format\";\n return Format;\n}(nested_option_1.default));\nexports.Format = Format;\nvar Hatching = /** @class */ (function (_super) {\n __extends(Hatching, _super);\n function Hatching() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Hatching.OptionName = \"hatching\";\n return Hatching;\n}(nested_option_1.default));\nexports.Hatching = Hatching;\nvar HoverStyle = /** @class */ (function (_super) {\n __extends(HoverStyle, _super);\n function HoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HoverStyle.OptionName = \"hoverStyle\";\n HoverStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hatching: { optionName: \"hatching\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return HoverStyle;\n}(nested_option_1.default));\nexports.HoverStyle = HoverStyle;\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Image.OptionName = \"image\";\n return Image;\n}(nested_option_1.default));\nexports.Image = Image;\nvar Label = /** @class */ (function (_super) {\n __extends(Label, _super);\n function Label() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Label.OptionName = \"label\";\n Label.ExpectedChildren = {\n argumentFormat: { optionName: \"argumentFormat\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n connector: { optionName: \"connector\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return Label;\n}(nested_option_1.default));\nexports.Label = Label;\nvar Legend = /** @class */ (function (_super) {\n __extends(Legend, _super);\n function Legend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Legend.OptionName = \"legend\";\n Legend.ExpectedChildren = {\n annotationBorder: { optionName: \"border\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n legendTitle: { optionName: \"title\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false }\n };\n Legend.TemplateProps = [{\n tmplOption: \"markerTemplate\",\n render: \"markerRender\",\n component: \"markerComponent\",\n keyFn: \"markerKeyFn\"\n }];\n return Legend;\n}(nested_option_1.default));\nexports.Legend = Legend;\nvar LegendTitle = /** @class */ (function (_super) {\n __extends(LegendTitle, _super);\n function LegendTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LegendTitle.OptionName = \"title\";\n LegendTitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false },\n legendTitleSubtitle: { optionName: \"subtitle\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n subtitle: { optionName: \"subtitle\", isCollectionItem: false }\n };\n return LegendTitle;\n}(nested_option_1.default));\nexports.LegendTitle = LegendTitle;\nvar LegendTitleSubtitle = /** @class */ (function (_super) {\n __extends(LegendTitleSubtitle, _super);\n function LegendTitleSubtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LegendTitleSubtitle.OptionName = \"subtitle\";\n LegendTitleSubtitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return LegendTitleSubtitle;\n}(nested_option_1.default));\nexports.LegendTitleSubtitle = LegendTitleSubtitle;\nvar LoadingIndicator = /** @class */ (function (_super) {\n __extends(LoadingIndicator, _super);\n function LoadingIndicator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoadingIndicator.OptionName = \"loadingIndicator\";\n LoadingIndicator.DefaultsProps = {\n defaultShow: \"show\"\n };\n LoadingIndicator.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return LoadingIndicator;\n}(nested_option_1.default));\nexports.LoadingIndicator = LoadingIndicator;\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Margin.OptionName = \"margin\";\n return Margin;\n}(nested_option_1.default));\nexports.Margin = Margin;\nvar PieChartTitle = /** @class */ (function (_super) {\n __extends(PieChartTitle, _super);\n function PieChartTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PieChartTitle.OptionName = \"title\";\n PieChartTitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n pieChartTitleSubtitle: { optionName: \"subtitle\", isCollectionItem: false },\n subtitle: { optionName: \"subtitle\", isCollectionItem: false }\n };\n return PieChartTitle;\n}(nested_option_1.default));\nexports.PieChartTitle = PieChartTitle;\nvar PieChartTitleSubtitle = /** @class */ (function (_super) {\n __extends(PieChartTitleSubtitle, _super);\n function PieChartTitleSubtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PieChartTitleSubtitle.OptionName = \"subtitle\";\n PieChartTitleSubtitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return PieChartTitleSubtitle;\n}(nested_option_1.default));\nexports.PieChartTitleSubtitle = PieChartTitleSubtitle;\nvar SelectionStyle = /** @class */ (function (_super) {\n __extends(SelectionStyle, _super);\n function SelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionStyle.OptionName = \"selectionStyle\";\n SelectionStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hatching: { optionName: \"hatching\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return SelectionStyle;\n}(nested_option_1.default));\nexports.SelectionStyle = SelectionStyle;\nvar Series = /** @class */ (function (_super) {\n __extends(Series, _super);\n function Series() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Series.OptionName = \"series\";\n Series.IsCollectionItem = true;\n return Series;\n}(nested_option_1.default));\nexports.Series = Series;\nvar SeriesBorder = /** @class */ (function (_super) {\n __extends(SeriesBorder, _super);\n function SeriesBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SeriesBorder.OptionName = \"border\";\n return SeriesBorder;\n}(nested_option_1.default));\nexports.SeriesBorder = SeriesBorder;\nvar SeriesTemplate = /** @class */ (function (_super) {\n __extends(SeriesTemplate, _super);\n function SeriesTemplate() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SeriesTemplate.OptionName = \"seriesTemplate\";\n return SeriesTemplate;\n}(nested_option_1.default));\nexports.SeriesTemplate = SeriesTemplate;\nvar Shadow = /** @class */ (function (_super) {\n __extends(Shadow, _super);\n function Shadow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Shadow.OptionName = \"shadow\";\n return Shadow;\n}(nested_option_1.default));\nexports.Shadow = Shadow;\nvar Size = /** @class */ (function (_super) {\n __extends(Size, _super);\n function Size() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Size.OptionName = \"size\";\n return Size;\n}(nested_option_1.default));\nexports.Size = Size;\nvar SmallValuesGrouping = /** @class */ (function (_super) {\n __extends(SmallValuesGrouping, _super);\n function SmallValuesGrouping() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SmallValuesGrouping.OptionName = \"smallValuesGrouping\";\n return SmallValuesGrouping;\n}(nested_option_1.default));\nexports.SmallValuesGrouping = SmallValuesGrouping;\nvar Subtitle = /** @class */ (function (_super) {\n __extends(Subtitle, _super);\n function Subtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Subtitle.OptionName = \"subtitle\";\n return Subtitle;\n}(nested_option_1.default));\nexports.Subtitle = Subtitle;\nvar Title = /** @class */ (function (_super) {\n __extends(Title, _super);\n function Title() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Title.OptionName = \"title\";\n return Title;\n}(nested_option_1.default));\nexports.Title = Title;\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n function Tooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Tooltip.OptionName = \"tooltip\";\n Tooltip.ExpectedChildren = {\n argumentFormat: { optionName: \"argumentFormat\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false },\n shadow: { optionName: \"shadow\", isCollectionItem: false },\n tooltipBorder: { optionName: \"border\", isCollectionItem: false }\n };\n Tooltip.TemplateProps = [{\n tmplOption: \"contentTemplate\",\n render: \"contentRender\",\n component: \"contentComponent\",\n keyFn: \"contentKeyFn\"\n }];\n return Tooltip;\n}(nested_option_1.default));\nexports.Tooltip = Tooltip;\nvar TooltipBorder = /** @class */ (function (_super) {\n __extends(TooltipBorder, _super);\n function TooltipBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TooltipBorder.OptionName = \"border\";\n return TooltipBorder;\n}(nested_option_1.default));\nexports.TooltipBorder = TooltipBorder;\nexports.default = PieChart;\n","/*!\n * devextreme-react\n * Version: 21.2.7\n * Build date: Mon Apr 11 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-react\n */\n\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Width = exports.ValueErrorBar = exports.ValueAxis = exports.Value = exports.Url = exports.Title = exports.TickInterval = exports.Tick = exports.Subtitle = exports.SliderMarker = exports.SliderHandle = exports.Size = exports.Shutter = exports.SeriesTemplate = exports.SeriesBorder = exports.Series = exports.SelectionStyle = exports.ScaleLabel = exports.Scale = exports.Reduction = exports.PointSelectionStyle = exports.PointImage = exports.PointHoverStyle = exports.PointBorder = exports.Point = exports.MinRange = exports.MinorTickInterval = exports.MinorTick = exports.MaxRange = exports.MarkerLabel = exports.Marker = exports.Margin = exports.LoadingIndicator = exports.Length = exports.Label = exports.Indent = exports.Image = exports.HoverStyle = exports.Height = exports.Hatching = exports.Format = exports.Font = exports.Export = exports.DataPrepareSettings = exports.Connector = exports.CommonSeriesSettingsSelectionStyle = exports.CommonSeriesSettingsLabel = exports.CommonSeriesSettingsHoverStyle = exports.CommonSeriesSettings = exports.Chart = exports.BreakStyle = exports.Break = exports.Border = exports.Behavior = exports.BackgroundImage = exports.Background = exports.ArgumentFormat = exports.AggregationInterval = exports.Aggregation = exports.RangeSelector = void 0;\nvar range_selector_1 = require(\"devextreme/viz/range_selector\");\nvar PropTypes = require(\"prop-types\");\nvar component_1 = require(\"./core/component\");\nvar nested_option_1 = require(\"./core/nested-option\");\nvar RangeSelector = /** @class */ (function (_super) {\n __extends(RangeSelector, _super);\n function RangeSelector() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = range_selector_1.default;\n _this.subscribableOptions = [\"loadingIndicator\", \"loadingIndicator.show\", \"value\"];\n _this.independentEvents = [\"onDisposing\", \"onDrawn\", \"onExported\", \"onExporting\", \"onFileSaving\", \"onIncidentOccurred\", \"onInitialized\", \"onValueChanged\"];\n _this._defaults = {\n defaultLoadingIndicator: \"loadingIndicator\",\n defaultValue: \"value\"\n };\n _this._expectedChildren = {\n background: { optionName: \"background\", isCollectionItem: false },\n behavior: { optionName: \"behavior\", isCollectionItem: false },\n chart: { optionName: \"chart\", isCollectionItem: false },\n export: { optionName: \"export\", isCollectionItem: false },\n indent: { optionName: \"indent\", isCollectionItem: false },\n loadingIndicator: { optionName: \"loadingIndicator\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n scale: { optionName: \"scale\", isCollectionItem: false },\n shutter: { optionName: \"shutter\", isCollectionItem: false },\n size: { optionName: \"size\", isCollectionItem: false },\n sliderHandle: { optionName: \"sliderHandle\", isCollectionItem: false },\n sliderMarker: { optionName: \"sliderMarker\", isCollectionItem: false },\n title: { optionName: \"title\", isCollectionItem: false },\n value: { optionName: \"value\", isCollectionItem: false }\n };\n return _this;\n }\n Object.defineProperty(RangeSelector.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return RangeSelector;\n}(component_1.Component));\nexports.RangeSelector = RangeSelector;\nRangeSelector.propTypes = {\n background: PropTypes.object,\n behavior: PropTypes.object,\n chart: PropTypes.object,\n containerBackgroundColor: PropTypes.string,\n dataSource: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object,\n PropTypes.string\n ]),\n dataSourceField: PropTypes.string,\n disabled: PropTypes.bool,\n elementAttr: PropTypes.object,\n export: PropTypes.object,\n indent: PropTypes.object,\n loadingIndicator: PropTypes.object,\n margin: PropTypes.object,\n onDisposing: PropTypes.func,\n onDrawn: PropTypes.func,\n onExported: PropTypes.func,\n onExporting: PropTypes.func,\n onFileSaving: PropTypes.func,\n onIncidentOccurred: PropTypes.func,\n onInitialized: PropTypes.func,\n onOptionChanged: PropTypes.func,\n onValueChanged: PropTypes.func,\n pathModified: PropTypes.bool,\n redrawOnResize: PropTypes.bool,\n rtlEnabled: PropTypes.bool,\n scale: PropTypes.object,\n selectedRangeColor: PropTypes.string,\n selectedRangeUpdateMode: PropTypes.oneOf([\n \"auto\",\n \"keep\",\n \"reset\",\n \"shift\"\n ]),\n shutter: PropTypes.object,\n size: PropTypes.object,\n sliderHandle: PropTypes.object,\n sliderMarker: PropTypes.object,\n theme: PropTypes.oneOf([\n \"generic.dark\",\n \"generic.light\",\n \"generic.contrast\",\n \"generic.carmine\",\n \"generic.darkmoon\",\n \"generic.darkviolet\",\n \"generic.greenmist\",\n \"generic.softblue\",\n \"material.blue.light\",\n \"material.lime.light\",\n \"material.orange.light\",\n \"material.purple.light\",\n \"material.teal.light\"\n ]),\n title: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string\n ]),\n value: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object\n ])\n};\nvar Aggregation = /** @class */ (function (_super) {\n __extends(Aggregation, _super);\n function Aggregation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Aggregation.OptionName = \"aggregation\";\n return Aggregation;\n}(nested_option_1.default));\nexports.Aggregation = Aggregation;\nvar AggregationInterval = /** @class */ (function (_super) {\n __extends(AggregationInterval, _super);\n function AggregationInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AggregationInterval.OptionName = \"aggregationInterval\";\n return AggregationInterval;\n}(nested_option_1.default));\nexports.AggregationInterval = AggregationInterval;\nvar ArgumentFormat = /** @class */ (function (_super) {\n __extends(ArgumentFormat, _super);\n function ArgumentFormat() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ArgumentFormat.OptionName = \"argumentFormat\";\n return ArgumentFormat;\n}(nested_option_1.default));\nexports.ArgumentFormat = ArgumentFormat;\nvar Background = /** @class */ (function (_super) {\n __extends(Background, _super);\n function Background() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Background.OptionName = \"background\";\n Background.ExpectedChildren = {\n backgroundImage: { optionName: \"image\", isCollectionItem: false },\n image: { optionName: \"image\", isCollectionItem: false }\n };\n return Background;\n}(nested_option_1.default));\nexports.Background = Background;\nvar BackgroundImage = /** @class */ (function (_super) {\n __extends(BackgroundImage, _super);\n function BackgroundImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BackgroundImage.OptionName = \"image\";\n return BackgroundImage;\n}(nested_option_1.default));\nexports.BackgroundImage = BackgroundImage;\nvar Behavior = /** @class */ (function (_super) {\n __extends(Behavior, _super);\n function Behavior() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Behavior.OptionName = \"behavior\";\n return Behavior;\n}(nested_option_1.default));\nexports.Behavior = Behavior;\nvar Border = /** @class */ (function (_super) {\n __extends(Border, _super);\n function Border() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Border.OptionName = \"border\";\n return Border;\n}(nested_option_1.default));\nexports.Border = Border;\nvar Break = /** @class */ (function (_super) {\n __extends(Break, _super);\n function Break() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Break.OptionName = \"breaks\";\n Break.IsCollectionItem = true;\n return Break;\n}(nested_option_1.default));\nexports.Break = Break;\nvar BreakStyle = /** @class */ (function (_super) {\n __extends(BreakStyle, _super);\n function BreakStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BreakStyle.OptionName = \"breakStyle\";\n return BreakStyle;\n}(nested_option_1.default));\nexports.BreakStyle = BreakStyle;\nvar Chart = /** @class */ (function (_super) {\n __extends(Chart, _super);\n function Chart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Chart.OptionName = \"chart\";\n Chart.ExpectedChildren = {\n commonSeriesSettings: { optionName: \"commonSeriesSettings\", isCollectionItem: false },\n dataPrepareSettings: { optionName: \"dataPrepareSettings\", isCollectionItem: false },\n series: { optionName: \"series\", isCollectionItem: true },\n seriesTemplate: { optionName: \"seriesTemplate\", isCollectionItem: false },\n valueAxis: { optionName: \"valueAxis\", isCollectionItem: false }\n };\n return Chart;\n}(nested_option_1.default));\nexports.Chart = Chart;\nvar CommonSeriesSettings = /** @class */ (function (_super) {\n __extends(CommonSeriesSettings, _super);\n function CommonSeriesSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettings.OptionName = \"commonSeriesSettings\";\n CommonSeriesSettings.ExpectedChildren = {\n aggregation: { optionName: \"aggregation\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n commonSeriesSettingsHoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n commonSeriesSettingsLabel: { optionName: \"label\", isCollectionItem: false },\n commonSeriesSettingsSelectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n hoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n point: { optionName: \"point\", isCollectionItem: false },\n reduction: { optionName: \"reduction\", isCollectionItem: false },\n selectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false },\n valueErrorBar: { optionName: \"valueErrorBar\", isCollectionItem: false }\n };\n return CommonSeriesSettings;\n}(nested_option_1.default));\nexports.CommonSeriesSettings = CommonSeriesSettings;\nvar CommonSeriesSettingsHoverStyle = /** @class */ (function (_super) {\n __extends(CommonSeriesSettingsHoverStyle, _super);\n function CommonSeriesSettingsHoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettingsHoverStyle.OptionName = \"hoverStyle\";\n CommonSeriesSettingsHoverStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hatching: { optionName: \"hatching\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonSeriesSettingsHoverStyle;\n}(nested_option_1.default));\nexports.CommonSeriesSettingsHoverStyle = CommonSeriesSettingsHoverStyle;\nvar CommonSeriesSettingsLabel = /** @class */ (function (_super) {\n __extends(CommonSeriesSettingsLabel, _super);\n function CommonSeriesSettingsLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettingsLabel.OptionName = \"label\";\n CommonSeriesSettingsLabel.ExpectedChildren = {\n argumentFormat: { optionName: \"argumentFormat\", isCollectionItem: false },\n border: { optionName: \"border\", isCollectionItem: false },\n connector: { optionName: \"connector\", isCollectionItem: false },\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonSeriesSettingsLabel;\n}(nested_option_1.default));\nexports.CommonSeriesSettingsLabel = CommonSeriesSettingsLabel;\nvar CommonSeriesSettingsSelectionStyle = /** @class */ (function (_super) {\n __extends(CommonSeriesSettingsSelectionStyle, _super);\n function CommonSeriesSettingsSelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommonSeriesSettingsSelectionStyle.OptionName = \"selectionStyle\";\n CommonSeriesSettingsSelectionStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hatching: { optionName: \"hatching\", isCollectionItem: false },\n seriesBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return CommonSeriesSettingsSelectionStyle;\n}(nested_option_1.default));\nexports.CommonSeriesSettingsSelectionStyle = CommonSeriesSettingsSelectionStyle;\nvar Connector = /** @class */ (function (_super) {\n __extends(Connector, _super);\n function Connector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Connector.OptionName = \"connector\";\n return Connector;\n}(nested_option_1.default));\nexports.Connector = Connector;\nvar DataPrepareSettings = /** @class */ (function (_super) {\n __extends(DataPrepareSettings, _super);\n function DataPrepareSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DataPrepareSettings.OptionName = \"dataPrepareSettings\";\n return DataPrepareSettings;\n}(nested_option_1.default));\nexports.DataPrepareSettings = DataPrepareSettings;\nvar Export = /** @class */ (function (_super) {\n __extends(Export, _super);\n function Export() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Export.OptionName = \"export\";\n return Export;\n}(nested_option_1.default));\nexports.Export = Export;\nvar Font = /** @class */ (function (_super) {\n __extends(Font, _super);\n function Font() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Font.OptionName = \"font\";\n return Font;\n}(nested_option_1.default));\nexports.Font = Font;\nvar Format = /** @class */ (function (_super) {\n __extends(Format, _super);\n function Format() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Format.OptionName = \"format\";\n return Format;\n}(nested_option_1.default));\nexports.Format = Format;\nvar Hatching = /** @class */ (function (_super) {\n __extends(Hatching, _super);\n function Hatching() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Hatching.OptionName = \"hatching\";\n return Hatching;\n}(nested_option_1.default));\nexports.Hatching = Hatching;\nvar Height = /** @class */ (function (_super) {\n __extends(Height, _super);\n function Height() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Height.OptionName = \"height\";\n return Height;\n}(nested_option_1.default));\nexports.Height = Height;\nvar HoverStyle = /** @class */ (function (_super) {\n __extends(HoverStyle, _super);\n function HoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HoverStyle.OptionName = \"hoverStyle\";\n return HoverStyle;\n}(nested_option_1.default));\nexports.HoverStyle = HoverStyle;\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Image.OptionName = \"image\";\n return Image;\n}(nested_option_1.default));\nexports.Image = Image;\nvar Indent = /** @class */ (function (_super) {\n __extends(Indent, _super);\n function Indent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Indent.OptionName = \"indent\";\n return Indent;\n}(nested_option_1.default));\nexports.Indent = Indent;\nvar Label = /** @class */ (function (_super) {\n __extends(Label, _super);\n function Label() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Label.OptionName = \"label\";\n return Label;\n}(nested_option_1.default));\nexports.Label = Label;\nvar Length = /** @class */ (function (_super) {\n __extends(Length, _super);\n function Length() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Length.OptionName = \"length\";\n return Length;\n}(nested_option_1.default));\nexports.Length = Length;\nvar LoadingIndicator = /** @class */ (function (_super) {\n __extends(LoadingIndicator, _super);\n function LoadingIndicator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoadingIndicator.OptionName = \"loadingIndicator\";\n LoadingIndicator.DefaultsProps = {\n defaultShow: \"show\"\n };\n LoadingIndicator.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return LoadingIndicator;\n}(nested_option_1.default));\nexports.LoadingIndicator = LoadingIndicator;\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Margin.OptionName = \"margin\";\n return Margin;\n}(nested_option_1.default));\nexports.Margin = Margin;\nvar Marker = /** @class */ (function (_super) {\n __extends(Marker, _super);\n function Marker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Marker.OptionName = \"marker\";\n Marker.ExpectedChildren = {\n label: { optionName: \"label\", isCollectionItem: false },\n markerLabel: { optionName: \"label\", isCollectionItem: false }\n };\n return Marker;\n}(nested_option_1.default));\nexports.Marker = Marker;\nvar MarkerLabel = /** @class */ (function (_super) {\n __extends(MarkerLabel, _super);\n function MarkerLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MarkerLabel.OptionName = \"label\";\n MarkerLabel.ExpectedChildren = {\n format: { optionName: \"format\", isCollectionItem: false }\n };\n return MarkerLabel;\n}(nested_option_1.default));\nexports.MarkerLabel = MarkerLabel;\nvar MaxRange = /** @class */ (function (_super) {\n __extends(MaxRange, _super);\n function MaxRange() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaxRange.OptionName = \"maxRange\";\n return MaxRange;\n}(nested_option_1.default));\nexports.MaxRange = MaxRange;\nvar MinorTick = /** @class */ (function (_super) {\n __extends(MinorTick, _super);\n function MinorTick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinorTick.OptionName = \"minorTick\";\n return MinorTick;\n}(nested_option_1.default));\nexports.MinorTick = MinorTick;\nvar MinorTickInterval = /** @class */ (function (_super) {\n __extends(MinorTickInterval, _super);\n function MinorTickInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinorTickInterval.OptionName = \"minorTickInterval\";\n return MinorTickInterval;\n}(nested_option_1.default));\nexports.MinorTickInterval = MinorTickInterval;\nvar MinRange = /** @class */ (function (_super) {\n __extends(MinRange, _super);\n function MinRange() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MinRange.OptionName = \"minRange\";\n return MinRange;\n}(nested_option_1.default));\nexports.MinRange = MinRange;\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Point.OptionName = \"point\";\n Point.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n hoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n image: { optionName: \"image\", isCollectionItem: false },\n pointBorder: { optionName: \"border\", isCollectionItem: false },\n pointHoverStyle: { optionName: \"hoverStyle\", isCollectionItem: false },\n pointImage: { optionName: \"image\", isCollectionItem: false },\n pointSelectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false },\n selectionStyle: { optionName: \"selectionStyle\", isCollectionItem: false }\n };\n return Point;\n}(nested_option_1.default));\nexports.Point = Point;\nvar PointBorder = /** @class */ (function (_super) {\n __extends(PointBorder, _super);\n function PointBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointBorder.OptionName = \"border\";\n return PointBorder;\n}(nested_option_1.default));\nexports.PointBorder = PointBorder;\nvar PointHoverStyle = /** @class */ (function (_super) {\n __extends(PointHoverStyle, _super);\n function PointHoverStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointHoverStyle.OptionName = \"hoverStyle\";\n PointHoverStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n pointBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return PointHoverStyle;\n}(nested_option_1.default));\nexports.PointHoverStyle = PointHoverStyle;\nvar PointImage = /** @class */ (function (_super) {\n __extends(PointImage, _super);\n function PointImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointImage.OptionName = \"image\";\n PointImage.ExpectedChildren = {\n height: { optionName: \"height\", isCollectionItem: false },\n url: { optionName: \"url\", isCollectionItem: false },\n width: { optionName: \"width\", isCollectionItem: false }\n };\n return PointImage;\n}(nested_option_1.default));\nexports.PointImage = PointImage;\nvar PointSelectionStyle = /** @class */ (function (_super) {\n __extends(PointSelectionStyle, _super);\n function PointSelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PointSelectionStyle.OptionName = \"selectionStyle\";\n PointSelectionStyle.ExpectedChildren = {\n border: { optionName: \"border\", isCollectionItem: false },\n pointBorder: { optionName: \"border\", isCollectionItem: false }\n };\n return PointSelectionStyle;\n}(nested_option_1.default));\nexports.PointSelectionStyle = PointSelectionStyle;\nvar Reduction = /** @class */ (function (_super) {\n __extends(Reduction, _super);\n function Reduction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Reduction.OptionName = \"reduction\";\n return Reduction;\n}(nested_option_1.default));\nexports.Reduction = Reduction;\nvar Scale = /** @class */ (function (_super) {\n __extends(Scale, _super);\n function Scale() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Scale.OptionName = \"scale\";\n Scale.ExpectedChildren = {\n aggregationInterval: { optionName: \"aggregationInterval\", isCollectionItem: false },\n break: { optionName: \"breaks\", isCollectionItem: true },\n breakStyle: { optionName: \"breakStyle\", isCollectionItem: false },\n label: { optionName: \"label\", isCollectionItem: false },\n marker: { optionName: \"marker\", isCollectionItem: false },\n maxRange: { optionName: \"maxRange\", isCollectionItem: false },\n minorTick: { optionName: \"minorTick\", isCollectionItem: false },\n minorTickInterval: { optionName: \"minorTickInterval\", isCollectionItem: false },\n minRange: { optionName: \"minRange\", isCollectionItem: false },\n scaleLabel: { optionName: \"label\", isCollectionItem: false },\n tick: { optionName: \"tick\", isCollectionItem: false },\n tickInterval: { optionName: \"tickInterval\", isCollectionItem: false }\n };\n return Scale;\n}(nested_option_1.default));\nexports.Scale = Scale;\nvar ScaleLabel = /** @class */ (function (_super) {\n __extends(ScaleLabel, _super);\n function ScaleLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScaleLabel.OptionName = \"label\";\n ScaleLabel.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false }\n };\n return ScaleLabel;\n}(nested_option_1.default));\nexports.ScaleLabel = ScaleLabel;\nvar SelectionStyle = /** @class */ (function (_super) {\n __extends(SelectionStyle, _super);\n function SelectionStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionStyle.OptionName = \"selectionStyle\";\n return SelectionStyle;\n}(nested_option_1.default));\nexports.SelectionStyle = SelectionStyle;\nvar Series = /** @class */ (function (_super) {\n __extends(Series, _super);\n function Series() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Series.OptionName = \"series\";\n Series.IsCollectionItem = true;\n return Series;\n}(nested_option_1.default));\nexports.Series = Series;\nvar SeriesBorder = /** @class */ (function (_super) {\n __extends(SeriesBorder, _super);\n function SeriesBorder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SeriesBorder.OptionName = \"border\";\n return SeriesBorder;\n}(nested_option_1.default));\nexports.SeriesBorder = SeriesBorder;\nvar SeriesTemplate = /** @class */ (function (_super) {\n __extends(SeriesTemplate, _super);\n function SeriesTemplate() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SeriesTemplate.OptionName = \"seriesTemplate\";\n return SeriesTemplate;\n}(nested_option_1.default));\nexports.SeriesTemplate = SeriesTemplate;\nvar Shutter = /** @class */ (function (_super) {\n __extends(Shutter, _super);\n function Shutter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Shutter.OptionName = \"shutter\";\n return Shutter;\n}(nested_option_1.default));\nexports.Shutter = Shutter;\nvar Size = /** @class */ (function (_super) {\n __extends(Size, _super);\n function Size() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Size.OptionName = \"size\";\n return Size;\n}(nested_option_1.default));\nexports.Size = Size;\nvar SliderHandle = /** @class */ (function (_super) {\n __extends(SliderHandle, _super);\n function SliderHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SliderHandle.OptionName = \"sliderHandle\";\n return SliderHandle;\n}(nested_option_1.default));\nexports.SliderHandle = SliderHandle;\nvar SliderMarker = /** @class */ (function (_super) {\n __extends(SliderMarker, _super);\n function SliderMarker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SliderMarker.OptionName = \"sliderMarker\";\n SliderMarker.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false },\n format: { optionName: \"format\", isCollectionItem: false }\n };\n return SliderMarker;\n}(nested_option_1.default));\nexports.SliderMarker = SliderMarker;\nvar Subtitle = /** @class */ (function (_super) {\n __extends(Subtitle, _super);\n function Subtitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Subtitle.OptionName = \"subtitle\";\n Subtitle.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false }\n };\n return Subtitle;\n}(nested_option_1.default));\nexports.Subtitle = Subtitle;\nvar Tick = /** @class */ (function (_super) {\n __extends(Tick, _super);\n function Tick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Tick.OptionName = \"tick\";\n return Tick;\n}(nested_option_1.default));\nexports.Tick = Tick;\nvar TickInterval = /** @class */ (function (_super) {\n __extends(TickInterval, _super);\n function TickInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TickInterval.OptionName = \"tickInterval\";\n return TickInterval;\n}(nested_option_1.default));\nexports.TickInterval = TickInterval;\nvar Title = /** @class */ (function (_super) {\n __extends(Title, _super);\n function Title() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Title.OptionName = \"title\";\n Title.ExpectedChildren = {\n font: { optionName: \"font\", isCollectionItem: false },\n margin: { optionName: \"margin\", isCollectionItem: false },\n subtitle: { optionName: \"subtitle\", isCollectionItem: false }\n };\n return Title;\n}(nested_option_1.default));\nexports.Title = Title;\nvar Url = /** @class */ (function (_super) {\n __extends(Url, _super);\n function Url() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Url.OptionName = \"url\";\n return Url;\n}(nested_option_1.default));\nexports.Url = Url;\nvar Value = /** @class */ (function (_super) {\n __extends(Value, _super);\n function Value() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Value.OptionName = \"value\";\n Value.DefaultsProps = {\n defaultEndValue: \"endValue\",\n defaultStartValue: \"startValue\"\n };\n Value.ExpectedChildren = {\n length: { optionName: \"length\", isCollectionItem: false }\n };\n return Value;\n}(nested_option_1.default));\nexports.Value = Value;\nvar ValueAxis = /** @class */ (function (_super) {\n __extends(ValueAxis, _super);\n function ValueAxis() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueAxis.OptionName = \"valueAxis\";\n return ValueAxis;\n}(nested_option_1.default));\nexports.ValueAxis = ValueAxis;\nvar ValueErrorBar = /** @class */ (function (_super) {\n __extends(ValueErrorBar, _super);\n function ValueErrorBar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueErrorBar.OptionName = \"valueErrorBar\";\n return ValueErrorBar;\n}(nested_option_1.default));\nexports.ValueErrorBar = ValueErrorBar;\nvar Width = /** @class */ (function (_super) {\n __extends(Width, _super);\n function Width() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Width.OptionName = \"width\";\n return Width;\n}(nested_option_1.default));\nexports.Width = Width;\nexports.default = RangeSelector;\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n if (nativeRequest && !nativeCancel) {\r\n var canceledRequests = {};\r\n request = function(callback) {\r\n var requestId = nativeRequest.call(window, (function() {\r\n try {\r\n if (requestId in canceledRequests) {\r\n return\r\n }\r\n callback.apply(this, arguments)\r\n } finally {\r\n delete canceledRequests[requestId]\r\n }\r\n }));\r\n return requestId\r\n };\r\n cancel = function(requestId) {\r\n canceledRequests[requestId] = true\r\n }\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/color.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar standardColorNames = {\r\n aliceblue: \"f0f8ff\",\r\n antiquewhite: \"faebd7\",\r\n aqua: \"00ffff\",\r\n aquamarine: \"7fffd4\",\r\n azure: \"f0ffff\",\r\n beige: \"f5f5dc\",\r\n bisque: \"ffe4c4\",\r\n black: \"000000\",\r\n blanchedalmond: \"ffebcd\",\r\n blue: \"0000ff\",\r\n blueviolet: \"8a2be2\",\r\n brown: \"a52a2a\",\r\n burlywood: \"deb887\",\r\n cadetblue: \"5f9ea0\",\r\n chartreuse: \"7fff00\",\r\n chocolate: \"d2691e\",\r\n coral: \"ff7f50\",\r\n cornflowerblue: \"6495ed\",\r\n cornsilk: \"fff8dc\",\r\n crimson: \"dc143c\",\r\n cyan: \"00ffff\",\r\n darkblue: \"00008b\",\r\n darkcyan: \"008b8b\",\r\n darkgoldenrod: \"b8860b\",\r\n darkgray: \"a9a9a9\",\r\n darkgreen: \"006400\",\r\n darkgrey: \"a9a9a9\",\r\n darkkhaki: \"bdb76b\",\r\n darkmagenta: \"8b008b\",\r\n darkolivegreen: \"556b2f\",\r\n darkorange: \"ff8c00\",\r\n darkorchid: \"9932cc\",\r\n darkred: \"8b0000\",\r\n darksalmon: \"e9967a\",\r\n darkseagreen: \"8fbc8f\",\r\n darkslateblue: \"483d8b\",\r\n darkslategray: \"2f4f4f\",\r\n darkslategrey: \"2f4f4f\",\r\n darkturquoise: \"00ced1\",\r\n darkviolet: \"9400d3\",\r\n deeppink: \"ff1493\",\r\n deepskyblue: \"00bfff\",\r\n dimgray: \"696969\",\r\n dimgrey: \"696969\",\r\n dodgerblue: \"1e90ff\",\r\n feldspar: \"d19275\",\r\n firebrick: \"b22222\",\r\n floralwhite: \"fffaf0\",\r\n forestgreen: \"228b22\",\r\n fuchsia: \"ff00ff\",\r\n gainsboro: \"dcdcdc\",\r\n ghostwhite: \"f8f8ff\",\r\n gold: \"ffd700\",\r\n goldenrod: \"daa520\",\r\n gray: \"808080\",\r\n green: \"008000\",\r\n greenyellow: \"adff2f\",\r\n grey: \"808080\",\r\n honeydew: \"f0fff0\",\r\n hotpink: \"ff69b4\",\r\n indianred: \"cd5c5c\",\r\n indigo: \"4b0082\",\r\n ivory: \"fffff0\",\r\n khaki: \"f0e68c\",\r\n lavender: \"e6e6fa\",\r\n lavenderblush: \"fff0f5\",\r\n lawngreen: \"7cfc00\",\r\n lemonchiffon: \"fffacd\",\r\n lightblue: \"add8e6\",\r\n lightcoral: \"f08080\",\r\n lightcyan: \"e0ffff\",\r\n lightgoldenrodyellow: \"fafad2\",\r\n lightgray: \"d3d3d3\",\r\n lightgreen: \"90ee90\",\r\n lightgrey: \"d3d3d3\",\r\n lightpink: \"ffb6c1\",\r\n lightsalmon: \"ffa07a\",\r\n lightseagreen: \"20b2aa\",\r\n lightskyblue: \"87cefa\",\r\n lightslateblue: \"8470ff\",\r\n lightslategray: \"778899\",\r\n lightslategrey: \"778899\",\r\n lightsteelblue: \"b0c4de\",\r\n lightyellow: \"ffffe0\",\r\n lime: \"00ff00\",\r\n limegreen: \"32cd32\",\r\n linen: \"faf0e6\",\r\n magenta: \"ff00ff\",\r\n maroon: \"800000\",\r\n mediumaquamarine: \"66cdaa\",\r\n mediumblue: \"0000cd\",\r\n mediumorchid: \"ba55d3\",\r\n mediumpurple: \"9370d8\",\r\n mediumseagreen: \"3cb371\",\r\n mediumslateblue: \"7b68ee\",\r\n mediumspringgreen: \"00fa9a\",\r\n mediumturquoise: \"48d1cc\",\r\n mediumvioletred: \"c71585\",\r\n midnightblue: \"191970\",\r\n mintcream: \"f5fffa\",\r\n mistyrose: \"ffe4e1\",\r\n moccasin: \"ffe4b5\",\r\n navajowhite: \"ffdead\",\r\n navy: \"000080\",\r\n oldlace: \"fdf5e6\",\r\n olive: \"808000\",\r\n olivedrab: \"6b8e23\",\r\n orange: \"ffa500\",\r\n orangered: \"ff4500\",\r\n orchid: \"da70d6\",\r\n palegoldenrod: \"eee8aa\",\r\n palegreen: \"98fb98\",\r\n paleturquoise: \"afeeee\",\r\n palevioletred: \"d87093\",\r\n papayawhip: \"ffefd5\",\r\n peachpuff: \"ffdab9\",\r\n peru: \"cd853f\",\r\n pink: \"ffc0cb\",\r\n plum: \"dda0dd\",\r\n powderblue: \"b0e0e6\",\r\n purple: \"800080\",\r\n rebeccapurple: \"663399\",\r\n red: \"ff0000\",\r\n rosybrown: \"bc8f8f\",\r\n royalblue: \"4169e1\",\r\n saddlebrown: \"8b4513\",\r\n salmon: \"fa8072\",\r\n sandybrown: \"f4a460\",\r\n seagreen: \"2e8b57\",\r\n seashell: \"fff5ee\",\r\n sienna: \"a0522d\",\r\n silver: \"c0c0c0\",\r\n skyblue: \"87ceeb\",\r\n slateblue: \"6a5acd\",\r\n slategray: \"708090\",\r\n slategrey: \"708090\",\r\n snow: \"fffafa\",\r\n springgreen: \"00ff7f\",\r\n steelblue: \"4682b4\",\r\n tan: \"d2b48c\",\r\n teal: \"008080\",\r\n thistle: \"d8bfd8\",\r\n tomato: \"ff6347\",\r\n turquoise: \"40e0d0\",\r\n violet: \"ee82ee\",\r\n violetred: \"d02090\",\r\n wheat: \"f5deb3\",\r\n white: \"ffffff\",\r\n whitesmoke: \"f5f5f5\",\r\n yellow: \"ffff00\",\r\n yellowgreen: \"9acd32\"\r\n};\r\nvar standardColorTypes = [{\r\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10)]\r\n }\r\n}, {\r\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d*\\.*\\d+)\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10), parseFloat(colorString[4])]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^hsv\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var v = parseInt(colorString[3], 10);\r\n var rgb = hsvToRgb(h, s, v);\r\n return [rgb[0], rgb[1], rgb[2], 1, [h, s, v]]\r\n }\r\n}, {\r\n re: /^hsl\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var l = parseInt(colorString[3], 10);\r\n var rgb = hslToRgb(h, s, l);\r\n return [rgb[0], rgb[1], rgb[2], 1, null, [h, s, l]]\r\n }\r\n}];\r\nvar _round = Math.round;\r\n\r\nfunction Color(value) {\r\n this.baseColor = value;\r\n var color;\r\n if (value) {\r\n color = String(value).toLowerCase().replace(/ /g, \"\");\r\n color = standardColorNames[color] ? \"#\" + standardColorNames[color] : color;\r\n color = parseColor(color)\r\n }\r\n if (!color) {\r\n this.colorIsInvalid = true\r\n }\r\n color = color || {};\r\n this.r = normalize(color[0]);\r\n this.g = normalize(color[1]);\r\n this.b = normalize(color[2]);\r\n this.a = normalize(color[3], 1, 1);\r\n if (color[4]) {\r\n this.hsv = {\r\n h: color[4][0],\r\n s: color[4][1],\r\n v: color[4][2]\r\n }\r\n } else {\r\n this.hsv = toHsvFromRgb(this.r, this.g, this.b)\r\n }\r\n if (color[5]) {\r\n this.hsl = {\r\n h: color[5][0],\r\n s: color[5][1],\r\n l: color[5][2]\r\n }\r\n } else {\r\n this.hsl = toHslFromRgb(this.r, this.g, this.b)\r\n }\r\n}\r\n\r\nfunction parseColor(color) {\r\n if (\"transparent\" === color) {\r\n return [0, 0, 0, 0]\r\n }\r\n var i = 0;\r\n var ii = standardColorTypes.length;\r\n var str;\r\n for (; i < ii; ++i) {\r\n str = standardColorTypes[i].re.exec(color);\r\n if (str) {\r\n return standardColorTypes[i].process(str)\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction normalize(colorComponent, def, max) {\r\n def = def || 0;\r\n max = max || 255;\r\n return colorComponent < 0 || isNaN(colorComponent) ? def : colorComponent > max ? max : colorComponent\r\n}\r\n\r\nfunction toHexFromRgb(r, g, b) {\r\n return \"#\" + (16777216 | r << 16 | g << 8 | b).toString(16).slice(1)\r\n}\r\n\r\nfunction toHsvFromRgb(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var delta = max - min;\r\n var H;\r\n var S;\r\n var V = max;\r\n S = 0 === max ? 0 : 1 - min / max;\r\n if (max === min) {\r\n H = 0\r\n } else {\r\n switch (max) {\r\n case r:\r\n H = (g - b) / delta * 60;\r\n if (g < b) {\r\n H += 360\r\n }\r\n break;\r\n case g:\r\n H = (b - r) / delta * 60 + 120;\r\n break;\r\n case b:\r\n H = (r - g) / delta * 60 + 240\r\n }\r\n }\r\n S *= 100;\r\n V *= 100 / 255;\r\n return {\r\n h: Math.round(H),\r\n s: Math.round(S),\r\n v: Math.round(V)\r\n }\r\n}\r\n\r\nfunction hsvToRgb(h, s, v) {\r\n var index = Math.floor(h % 360 / 60);\r\n var vMin = (100 - s) * v / 100;\r\n var a = h % 60 / 60 * (v - vMin);\r\n var vInc = vMin + a;\r\n var vDec = v - a;\r\n var r;\r\n var g;\r\n var b;\r\n switch (index) {\r\n case 0:\r\n r = v;\r\n g = vInc;\r\n b = vMin;\r\n break;\r\n case 1:\r\n r = vDec;\r\n g = v;\r\n b = vMin;\r\n break;\r\n case 2:\r\n r = vMin;\r\n g = v;\r\n b = vInc;\r\n break;\r\n case 3:\r\n r = vMin;\r\n g = vDec;\r\n b = v;\r\n break;\r\n case 4:\r\n r = vInc;\r\n g = vMin;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = vMin;\r\n b = vDec\r\n }\r\n return [Math.round(2.55 * r), Math.round(2.55 * g), Math.round(2.55 * b)]\r\n}\r\n\r\nfunction calculateHue(r, g, b, delta) {\r\n var max = Math.max(r, g, b);\r\n switch (max) {\r\n case r:\r\n return (g - b) / delta + (g < b ? 6 : 0);\r\n case g:\r\n return (b - r) / delta + 2;\r\n case b:\r\n return (r - g) / delta + 4\r\n }\r\n}\r\n\r\nfunction toHslFromRgb(r, g, b) {\r\n r = convertTo01Bounds(r, 255);\r\n g = convertTo01Bounds(g, 255);\r\n b = convertTo01Bounds(b, 255);\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var maxMinSum = max + min;\r\n var h;\r\n var s;\r\n var l = maxMinSum / 2;\r\n if (max === min) {\r\n h = s = 0\r\n } else {\r\n var delta = max - min;\r\n if (l > .5) {\r\n s = delta / (2 - maxMinSum)\r\n } else {\r\n s = delta / maxMinSum\r\n }\r\n h = calculateHue(r, g, b, delta);\r\n h /= 6\r\n }\r\n return {\r\n h: _round(360 * h),\r\n s: _round(100 * s),\r\n l: _round(100 * l)\r\n }\r\n}\r\n\r\nfunction makeColorTint(colorPart, h) {\r\n var colorTint = h;\r\n if (\"r\" === colorPart) {\r\n colorTint = h + 1 / 3\r\n }\r\n if (\"b\" === colorPart) {\r\n colorTint = h - 1 / 3\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction modifyColorTint(colorTint) {\r\n if (colorTint < 0) {\r\n colorTint += 1\r\n }\r\n if (colorTint > 1) {\r\n colorTint -= 1\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction hueToRgb(p, q, colorTint) {\r\n colorTint = modifyColorTint(colorTint);\r\n if (colorTint < 1 / 6) {\r\n return p + 6 * (q - p) * colorTint\r\n }\r\n if (colorTint < .5) {\r\n return q\r\n }\r\n if (colorTint < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - colorTint) * 6\r\n }\r\n return p\r\n}\r\n\r\nfunction hslToRgb(h, s, l) {\r\n var r;\r\n var g;\r\n var b;\r\n h = convertTo01Bounds(h, 360);\r\n s = convertTo01Bounds(s, 100);\r\n l = convertTo01Bounds(l, 100);\r\n if (0 === s) {\r\n r = g = b = l\r\n } else {\r\n var q = l < .5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hueToRgb(p, q, makeColorTint(\"r\", h));\r\n g = hueToRgb(p, q, makeColorTint(\"g\", h));\r\n b = hueToRgb(p, q, makeColorTint(\"b\", h))\r\n }\r\n return [_round(255 * r), _round(255 * g), _round(255 * b)]\r\n}\r\n\r\nfunction convertTo01Bounds(n, max) {\r\n n = Math.min(max, Math.max(0, parseFloat(n)));\r\n if (Math.abs(n - max) < 1e-6) {\r\n return 1\r\n }\r\n return n % max / parseFloat(max)\r\n}\r\n\r\nfunction isIntegerBetweenMinAndMax(number, min, max) {\r\n min = min || 0;\r\n max = max || 255;\r\n if (number % 1 !== 0 || number < min || number > max || \"number\" !== typeof number || isNaN(number)) {\r\n return false\r\n }\r\n return true\r\n}\r\nColor.prototype = {\r\n constructor: Color,\r\n highlight: function(step) {\r\n step = step || 10;\r\n return this.alter(step).toHex()\r\n },\r\n darken: function(step) {\r\n step = step || 10;\r\n return this.alter(-step).toHex()\r\n },\r\n alter: function(step) {\r\n var result = new Color;\r\n result.r = normalize(this.r + step);\r\n result.g = normalize(this.g + step);\r\n result.b = normalize(this.b + step);\r\n return result\r\n },\r\n blend: function(blendColor, opacity) {\r\n var other = blendColor instanceof Color ? blendColor : new Color(blendColor);\r\n var result = new Color;\r\n result.r = normalize(_round(this.r * (1 - opacity) + other.r * opacity));\r\n result.g = normalize(_round(this.g * (1 - opacity) + other.g * opacity));\r\n result.b = normalize(_round(this.b * (1 - opacity) + other.b * opacity));\r\n return result\r\n },\r\n toHex: function() {\r\n return toHexFromRgb(this.r, this.g, this.b)\r\n },\r\n getPureColor: function() {\r\n var rgb = hsvToRgb(this.hsv.h, 100, 100);\r\n return new Color(\"rgb(\" + rgb.join(\",\") + \")\")\r\n },\r\n isValidHex: function(hex) {\r\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex)\r\n },\r\n isValidRGB: function(r, g, b) {\r\n if (!isIntegerBetweenMinAndMax(r) || !isIntegerBetweenMinAndMax(g) || !isIntegerBetweenMinAndMax(b)) {\r\n return false\r\n }\r\n return true\r\n },\r\n isValidAlpha: function(a) {\r\n if (isNaN(a) || a < 0 || a > 1 || \"number\" !== typeof a) {\r\n return false\r\n }\r\n return true\r\n },\r\n colorIsInvalid: false,\r\n fromHSL: function(hsl) {\r\n var color = new Color;\r\n var rgb = hslToRgb(hsl.h, hsl.s, hsl.l);\r\n color.r = rgb[0];\r\n color.g = rgb[1];\r\n color.b = rgb[2];\r\n return color\r\n }\r\n};\r\nexport default Color;\r\n","/**\r\n * DevExtreme (esm/core/class.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"./errors\";\r\nimport {\r\n isWindow\r\n} from \"./utils/type\";\r\nvar wrapOverridden = function(baseProto, methodName, method) {\r\n return function() {\r\n var prevCallBase = this.callBase;\r\n this.callBase = baseProto[methodName];\r\n try {\r\n return method.apply(this, arguments)\r\n } finally {\r\n this.callBase = prevCallBase\r\n }\r\n }\r\n};\r\nvar clonePrototype = function(obj) {\r\n var func = function() {};\r\n func.prototype = obj.prototype;\r\n return new func\r\n};\r\nvar redefine = function(members) {\r\n var overridden;\r\n var memberName;\r\n var member;\r\n if (!members) {\r\n return this\r\n }\r\n for (memberName in members) {\r\n member = members[memberName];\r\n overridden = \"function\" === typeof this.prototype[memberName] && \"function\" === typeof member;\r\n this.prototype[memberName] = overridden ? wrapOverridden(this.parent.prototype, memberName, member) : member\r\n }\r\n return this\r\n};\r\nvar include = function() {\r\n var classObj = this;\r\n var argument;\r\n var name;\r\n var i;\r\n var hasClassObjOwnProperty = Object.prototype.hasOwnProperty.bind(classObj);\r\n var isES6Class = !hasClassObjOwnProperty(\"_includedCtors\") && !hasClassObjOwnProperty(\"_includedPostCtors\");\r\n if (isES6Class) {\r\n classObj._includedCtors = classObj._includedCtors.slice(0);\r\n classObj._includedPostCtors = classObj._includedPostCtors.slice(0)\r\n }\r\n for (i = 0; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument.ctor) {\r\n classObj._includedCtors.push(argument.ctor)\r\n }\r\n if (argument.postCtor) {\r\n classObj._includedPostCtors.push(argument.postCtor)\r\n }\r\n for (name in argument) {\r\n if (\"ctor\" === name || \"postCtor\" === name || \"default\" === name) {\r\n continue\r\n }\r\n classObj.prototype[name] = argument[name]\r\n }\r\n }\r\n return classObj\r\n};\r\nvar subclassOf = function(parentClass) {\r\n var hasParentProperty = Object.prototype.hasOwnProperty.bind(this)(\"parent\");\r\n var isES6Class = !hasParentProperty && this.parent;\r\n if (isES6Class) {\r\n var baseClass = Object.getPrototypeOf(this);\r\n return baseClass === parentClass || baseClass.subclassOf(parentClass)\r\n } else {\r\n if (this.parent === parentClass) {\r\n return true\r\n }\r\n if (!this.parent || !this.parent.subclassOf) {\r\n return false\r\n }\r\n return this.parent.subclassOf(parentClass)\r\n }\r\n};\r\nvar abstract = function() {\r\n throw errors.Error(\"E0001\")\r\n};\r\nvar copyStatic = function() {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n return function(source, destination) {\r\n for (var key in source) {\r\n if (!hasOwn.call(source, key)) {\r\n return\r\n }\r\n destination[key] = source[key]\r\n }\r\n }\r\n}();\r\nvar classImpl = function() {};\r\nclassImpl.inherit = function(members) {\r\n var inheritor = function() {\r\n if (!this || isWindow(this) || \"function\" !== typeof this.constructor) {\r\n throw errors.Error(\"E0003\")\r\n }\r\n var instance = this;\r\n var ctor = instance.ctor;\r\n var includedCtors = instance.constructor._includedCtors;\r\n var includedPostCtors = instance.constructor._includedPostCtors;\r\n var i;\r\n for (i = 0; i < includedCtors.length; i++) {\r\n includedCtors[i].call(instance)\r\n }\r\n if (ctor) {\r\n ctor.apply(instance, arguments)\r\n }\r\n for (i = 0; i < includedPostCtors.length; i++) {\r\n includedPostCtors[i].call(instance)\r\n }\r\n };\r\n inheritor.prototype = clonePrototype(this);\r\n copyStatic(this, inheritor);\r\n inheritor.inherit = this.inherit;\r\n inheritor.abstract = abstract;\r\n inheritor.redefine = redefine;\r\n inheritor.include = include;\r\n inheritor.subclassOf = subclassOf;\r\n inheritor.parent = this;\r\n inheritor._includedCtors = this._includedCtors ? this._includedCtors.slice(0) : [];\r\n inheritor._includedPostCtors = this._includedPostCtors ? this._includedPostCtors.slice(0) : [];\r\n inheritor.prototype.constructor = inheritor;\r\n inheritor.redefine(members);\r\n return inheritor\r\n};\r\nclassImpl.abstract = abstract;\r\nexport default classImpl;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/core/config.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return new Function(\"return \" + optionsString)()\r\n } catch (ex) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n};\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar navigator = getNavigator();\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar uaParsers = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n ios(userAgent) {\r\n if (!/ip(hone|od|ad)/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n if (!/android|htc_|silk/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n var config;\r\n each(uaParsers, (platform, parser) => {\r\n config = parser(ua);\r\n return !config\r\n });\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n element.setAttribute(name, value)\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n isAdd ? element.classList.add(className) : element.classList.remove(className)\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement() {\r\n return this._document.activeElement\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n },\r\n elementsFromPoint(x, y) {\r\n return this._document.elementsFromPoint(x, y)\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/**\r\n * DevExtreme (esm/core/element_data.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport WeakMap from \"./polyfills/weak_map\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nvar dataMap = new WeakMap;\r\nvar strategy;\r\nexport var strategyChanging = new MemorizedCallbacks;\r\nvar beforeCleanDataFunc = function() {};\r\nvar afterCleanDataFunc = function() {};\r\nexport var setDataStrategy = function(value) {\r\n strategyChanging.fire(value);\r\n strategy = value;\r\n var cleanData = strategy.cleanData;\r\n strategy.cleanData = function(nodes) {\r\n beforeCleanDataFunc(nodes);\r\n var result = cleanData.call(this, nodes);\r\n afterCleanDataFunc(nodes);\r\n return result\r\n }\r\n};\r\nsetDataStrategy({\r\n data: function() {\r\n var element = arguments[0];\r\n var key = arguments[1];\r\n var value = arguments[2];\r\n if (!element) {\r\n return\r\n }\r\n var elementData = dataMap.get(element);\r\n if (!elementData) {\r\n elementData = {};\r\n dataMap.set(element, elementData)\r\n }\r\n if (void 0 === key) {\r\n return elementData\r\n }\r\n if (2 === arguments.length) {\r\n return elementData[key]\r\n }\r\n elementData[key] = value;\r\n return value\r\n },\r\n removeData: function(element, key) {\r\n if (!element) {\r\n return\r\n }\r\n if (void 0 === key) {\r\n dataMap.delete(element)\r\n } else {\r\n var elementData = dataMap.get(element);\r\n if (elementData) {\r\n delete elementData[key]\r\n }\r\n }\r\n },\r\n cleanData: function(elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n eventsEngine.off(elements[i]);\r\n dataMap.delete(elements[i])\r\n }\r\n }\r\n});\r\nexport function getDataStrategy() {\r\n return strategy\r\n}\r\nexport function data() {\r\n return strategy.data.apply(this, arguments)\r\n}\r\nexport function beforeCleanData(callback) {\r\n beforeCleanDataFunc = callback\r\n}\r\nexport function afterCleanData(callback) {\r\n afterCleanDataFunc = callback\r\n}\r\nexport function cleanData(nodes) {\r\n return strategy.cleanData.call(this, nodes)\r\n}\r\nexport function removeData(element, key) {\r\n return strategy.removeData.call(this, element, key)\r\n}\r\nexport function cleanDataRecursive(element, cleanSelf) {\r\n if (!domAdapter.isElementNode(element)) {\r\n return\r\n }\r\n var childElements = element.getElementsByTagName(\"*\");\r\n strategy.cleanData(childElements);\r\n if (cleanSelf) {\r\n strategy.cleanData([element])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/errors.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"./utils/error\";\r\nexport default errorUtils({\r\n E0001: \"Method is not implemented\",\r\n E0002: \"Member name collision: {0}\",\r\n E0003: \"A class must be instantiated using the 'new' keyword\",\r\n E0004: \"The NAME property of the component is not specified\",\r\n E0005: \"Unknown device\",\r\n E0006: \"Unknown endpoint key is requested\",\r\n E0007: \"'Invalidate' method is called outside the update transaction\",\r\n E0008: \"Type of the option name is not appropriate to create an action\",\r\n E0009: \"Component '{0}' has not been initialized for an element\",\r\n E0010: \"Animation configuration with the '{0}' type requires '{1}' configuration as {2}\",\r\n E0011: \"Unknown animation type '{0}'\",\r\n E0012: \"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later\",\r\n E0013: \"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later\",\r\n E0014: \"The 'release' method shouldn't be called for an unlocked Lock object\",\r\n E0015: \"Queued task returned an unexpected result\",\r\n E0017: \"Event namespace is not defined\",\r\n E0018: \"DevExpress.ui.DevExpressPopup widget is required\",\r\n E0020: \"Template engine '{0}' is not supported\",\r\n E0021: \"Unknown theme is set: {0}\",\r\n E0022: \"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts\",\r\n E0023: \"Template name is not specified\",\r\n E0024: \"DevExtreme bundle already included\",\r\n E0025: \"Unexpected argument type\",\r\n E0100: \"Unknown validation type is detected\",\r\n E0101: \"Misconfigured range validation rule is detected\",\r\n E0102: \"Misconfigured comparison validation rule is detected\",\r\n E0103: \"validationCallback of an asynchronous rule should return a jQuery or a native promise\",\r\n E0110: \"Unknown validation group is detected\",\r\n E0120: \"Adapter for a DevExpressValidator component cannot be configured\",\r\n E0121: \"The 'customItem' field of the 'onCustomItemCreating' function's parameter should contain a custom item or Promise that is resolved after the item is created.\",\r\n W0000: \"'{0}' is deprecated in {1}. {2}\",\r\n W0001: \"{0} - '{1}' option is deprecated in {2}. {3}\",\r\n W0002: \"{0} - '{1}' method is deprecated in {2}. {3}\",\r\n W0003: \"{0} - '{1}' property is deprecated in {2}. {3}\",\r\n W0004: \"Timeout for theme loading is over: {0}\",\r\n W0005: \"'{0}' event is deprecated in {1}. {2}\",\r\n W0006: \"Invalid recurrence rule: '{0}'\",\r\n W0007: \"'{0}' Globalize culture is not defined\",\r\n W0008: \"Invalid view name: '{0}'\",\r\n W0009: \"Invalid time zone name: '{0}'\",\r\n W0010: \"{0} is deprecated in {1}. {2}\",\r\n W0011: \"Number parsing is invoked while the parser is not defined\",\r\n W0012: \"Date parsing is invoked while the parser is not defined\",\r\n W0013: \"'{0}' file is deprecated in {1}. {2}\",\r\n W0014: \"{0} - '{1}' type is deprecated in {2}. {3}\",\r\n W0015: \"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.\",\r\n W0016: 'The \"{0}\" option does not accept the \"{1}\" value since v{2}. {3}.',\r\n W0017: 'Setting the \"{0}\" property with a function is deprecated since v21.2',\r\n W0018: 'Setting the \"position\" property with a function is deprecated since v21.2'\r\n});\r\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/guid.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"./class\";\r\nvar Guid = Class.inherit({\r\n ctor: function(value) {\r\n if (value) {\r\n value = String(value)\r\n }\r\n this._value = this._normalize(value || this._generate())\r\n },\r\n _normalize: function(value) {\r\n value = value.replace(/[^a-f0-9]/gi, \"\").toLowerCase();\r\n while (value.length < 32) {\r\n value += \"0\"\r\n }\r\n return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join(\"-\")\r\n },\r\n _generate: function() {\r\n var value = \"\";\r\n for (var i = 0; i < 32; i++) {\r\n value += Math.round(15 * Math.random()).toString(16)\r\n }\r\n return value\r\n },\r\n toString: function() {\r\n return this._value\r\n },\r\n valueOf: function() {\r\n return this._value\r\n },\r\n toJSON: function() {\r\n return this._value\r\n }\r\n});\r\nexport default Guid;\r\n","/**\r\n * DevExtreme (esm/core/memorized_callbacks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/polyfills/promise.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar promise = hasWindow() ? getWindow().Promise : Promise;\r\nif (!promise) {\r\n promise = function(resolver) {\r\n var d = new Deferred;\r\n resolver(d.resolve.bind(this), d.reject.bind(this));\r\n return d.promise()\r\n };\r\n promise.resolve = function(val) {\r\n return (new Deferred).resolve(val).promise()\r\n };\r\n promise.reject = function(val) {\r\n return (new Deferred).reject(val).promise()\r\n };\r\n promise.all = function(promises) {\r\n return when.apply(this, promises).then((function() {\r\n return [].slice.call(arguments)\r\n }))\r\n }\r\n}\r\nexport default promise;\r\n","/**\r\n * DevExtreme (esm/core/polyfills/weak_map.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../utils/array\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../utils/window\";\r\nvar weakMap = hasWindow() ? getWindow().WeakMap : WeakMap;\r\nif (!weakMap) {\r\n weakMap = function() {\r\n var keys = [];\r\n var values = [];\r\n this.set = function(key, value) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n keys.push(key);\r\n values.push(value)\r\n } else {\r\n values[index] = value\r\n }\r\n };\r\n this.get = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return\r\n }\r\n return values[index]\r\n };\r\n this.has = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return false\r\n }\r\n return true\r\n };\r\n this.delete = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return\r\n }\r\n keys.splice(index, 1);\r\n values.splice(index, 1)\r\n }\r\n }\r\n}\r\nexport default weakMap;\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getOffset,\r\n getWindowByElement\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n return getOffset(this[0])\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport Promise from \"../polyfills/promise\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr, d)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/array.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\nexport var isEmpty = function(entity) {\r\n return Array.isArray(entity) && !entity.length\r\n};\r\nexport var wrapToArray = function(entity) {\r\n return Array.isArray(entity) ? entity : [entity]\r\n};\r\nexport var inArray = function(value, object) {\r\n if (!object) {\r\n return -1\r\n }\r\n var array = Array.isArray(object) ? object : object.toArray();\r\n return array.indexOf(value)\r\n};\r\nexport var intersection = function(a, b) {\r\n if (!Array.isArray(a) || 0 === a.length || !Array.isArray(b) || 0 === b.length) {\r\n return []\r\n }\r\n var result = [];\r\n each(a, (function(_, value) {\r\n var index = inArray(value, b);\r\n if (-1 !== index) {\r\n result.push(value)\r\n }\r\n }));\r\n return result\r\n};\r\nexport var uniqueValues = function(data) {\r\n return [...new Set(data)]\r\n};\r\nexport var removeDuplicates = function(from, what) {\r\n if (!Array.isArray(from) || 0 === from.length) {\r\n return []\r\n }\r\n var result = from.slice();\r\n if (!Array.isArray(what) || 0 === what.length) {\r\n return result\r\n }\r\n each(what, (function(_, value) {\r\n var index = inArray(value, result);\r\n result.splice(index, 1)\r\n }));\r\n return result\r\n};\r\nexport var normalizeIndexes = function(items, indexParameterName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var parameterIndex = 0;\r\n var useLegacyVisibleIndex = config().useLegacyVisibleIndex;\r\n each(items, (function(index, item) {\r\n index = item[indexParameterName];\r\n if (index >= 0) {\r\n indexedItems[index] = indexedItems[index] || [];\r\n if (item === currentItem) {\r\n indexedItems[index].unshift(item)\r\n } else {\r\n indexedItems[index].push(item)\r\n }\r\n } else {\r\n item[indexParameterName] = void 0\r\n }\r\n }));\r\n if (!useLegacyVisibleIndex) {\r\n each(items, (function() {\r\n if (!isDefined(this[indexParameterName]) && (!needIndexCallback || needIndexCallback(this))) {\r\n while (indexedItems[parameterIndex]) {\r\n parameterIndex++\r\n }\r\n indexedItems[parameterIndex] = [this];\r\n parameterIndex++\r\n }\r\n }))\r\n }\r\n parameterIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n each(items, (function() {\r\n if (index >= 0) {\r\n this[indexParameterName] = parameterIndex++\r\n }\r\n }))\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n each(items, (function() {\r\n if (!isDefined(this[indexParameterName]) && (!needIndexCallback || needIndexCallback(this))) {\r\n this[indexParameterName] = parameterIndex++\r\n }\r\n }))\r\n }\r\n return parameterIndex\r\n};\r\nexport var merge = function(array1, array2) {\r\n for (var i = 0; i < array2.length; i++) {\r\n array1[array1.length] = array2[i]\r\n }\r\n return array1\r\n};\r\nexport var find = function(array, condition) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (condition(array[i])) {\r\n return array[i]\r\n }\r\n }\r\n};\r\nexport var groupBy = (array, cb) => array.reduce((result, item) => _extends({}, result, {\r\n [cb(item)]: [...result[cb(item)] || [], item]\r\n}), {});\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/core/utils/call_once.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar callOnce = function(handler) {\r\n var result;\r\n var _wrappedHandler = function() {\r\n result = handler.apply(this, arguments);\r\n _wrappedHandler = function() {\r\n return result\r\n };\r\n return result\r\n };\r\n return function() {\r\n return _wrappedHandler.apply(this, arguments)\r\n }\r\n};\r\nexport default callOnce;\r\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/common.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar arraysEqualByValue = function(array1, array2, depth) {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (!equalByValue(array1[i], array2[i], depth + 1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar objectsEqualByValue = function(object1, object2, depth, strict) {\r\n for (var propertyName in object1) {\r\n if (Object.prototype.hasOwnProperty.call(object1, propertyName) && !equalByValue(object1[propertyName], object2[propertyName], depth + 1, strict)) {\r\n return false\r\n }\r\n }\r\n for (var _propertyName in object2) {\r\n if (!(_propertyName in object1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar maxEqualityDepth = 3;\r\nexport var equalByValue = function(object1, object2) {\r\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var strict = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n object1 = toComparable(object1, true);\r\n object2 = toComparable(object2, true);\r\n var comparisonResult = strict ? object1 === object2 : object1 == object2;\r\n if (comparisonResult || depth >= maxEqualityDepth) {\r\n return true\r\n }\r\n if (isObject(object1) && isObject(object2)) {\r\n return objectsEqualByValue(object1, object2, depth, strict)\r\n } else if (Array.isArray(object1) && Array.isArray(object2)) {\r\n return arraysEqualByValue(object1, object2, depth)\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/console.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nvar noop = function() {};\r\nvar getConsoleMethod = function(method) {\r\n if (\"undefined\" === typeof console || !isFunction(console[method])) {\r\n return noop\r\n }\r\n return console[method].bind(console)\r\n};\r\nexport var logger = {\r\n info: getConsoleMethod(\"info\"),\r\n warn: getConsoleMethod(\"warn\"),\r\n error: getConsoleMethod(\"error\")\r\n};\r\nexport var debug = function() {\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message)\r\n }\r\n }\r\n return {\r\n assert: assert,\r\n assertParam: function(parameter, message) {\r\n assert(null !== parameter && void 0 !== parameter, message)\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/data.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport Class from \"../class\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"./object\";\r\nimport {\r\n isObject,\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar unwrapVariable = variableWrapper.unwrap;\r\nvar isWrapped = variableWrapper.isWrapped;\r\nvar assign = variableWrapper.assign;\r\nvar bracketsToDots = function(expr) {\r\n return expr.replace(/\\[/g, \".\").replace(/\\]/g, \"\")\r\n};\r\nexport var getPathParts = function(name) {\r\n return bracketsToDots(name).split(\".\")\r\n};\r\nvar readPropValue = function(obj, propName, options) {\r\n options = options || {};\r\n if (\"this\" === propName) {\r\n return unwrap(obj, options)\r\n }\r\n return unwrap(obj[propName], options)\r\n};\r\nvar assignPropValue = function(obj, propName, value, options) {\r\n if (\"this\" === propName) {\r\n throw new errors.Error(\"E4016\")\r\n }\r\n var propValue = obj[propName];\r\n if (options.unwrapObservables && isWrapped(propValue)) {\r\n assign(propValue, value)\r\n } else {\r\n obj[propName] = value\r\n }\r\n};\r\nvar prepareOptions = function(options) {\r\n options = options || {};\r\n options.unwrapObservables = void 0 !== options.unwrapObservables ? options.unwrapObservables : true;\r\n return options\r\n};\r\n\r\nfunction unwrap(value, options) {\r\n return options.unwrapObservables ? unwrapVariable(value) : value\r\n}\r\nexport var compileGetter = function(expr) {\r\n if (arguments.length > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n if (!expr || \"this\" === expr) {\r\n return function(obj) {\r\n return obj\r\n }\r\n }\r\n if (\"string\" === typeof expr) {\r\n var path = getPathParts(expr);\r\n return function(obj, options) {\r\n options = prepareOptions(options);\r\n var functionAsIs = options.functionsAsIs;\r\n var hasDefaultValue = \"defaultValue\" in options;\r\n var current = unwrap(obj, options);\r\n for (var i = 0; i < path.length; i++) {\r\n if (!current) {\r\n if (null == current && hasDefaultValue) {\r\n return options.defaultValue\r\n }\r\n break\r\n }\r\n var pathPart = path[i];\r\n if (hasDefaultValue && isObject(current) && !(pathPart in current)) {\r\n return options.defaultValue\r\n }\r\n var next = unwrap(current[pathPart], options);\r\n if (!functionAsIs && isFunction(next)) {\r\n next = next.call(current)\r\n }\r\n current = next\r\n }\r\n return current\r\n }\r\n }\r\n if (Array.isArray(expr)) {\r\n return combineGetters(expr)\r\n }\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n};\r\n\r\nfunction combineGetters(getters) {\r\n var compiledGetters = {};\r\n for (var i = 0, l = getters.length; i < l; i++) {\r\n var getter = getters[i];\r\n compiledGetters[getter] = compileGetter(getter)\r\n }\r\n return function(obj, options) {\r\n var result;\r\n each(compiledGetters, (function(name) {\r\n var value = this(obj, options);\r\n if (void 0 === value) {\r\n return\r\n }\r\n var current = result || (result = {});\r\n var path = name.split(\".\");\r\n var last = path.length - 1;\r\n for (var _i = 0; _i < last; _i++) {\r\n var pathItem = path[_i];\r\n if (!(pathItem in current)) {\r\n current[pathItem] = {}\r\n }\r\n current = current[pathItem]\r\n }\r\n current[path[last]] = value\r\n }));\r\n return result\r\n }\r\n}\r\nvar ensurePropValueDefined = function(obj, propName, value, options) {\r\n if (isDefined(value)) {\r\n return value\r\n }\r\n var newValue = {};\r\n assignPropValue(obj, propName, newValue, options);\r\n return newValue\r\n};\r\nexport var compileSetter = function(expr) {\r\n expr = getPathParts(expr || \"this\");\r\n var lastLevelIndex = expr.length - 1;\r\n return function(obj, value, options) {\r\n options = prepareOptions(options);\r\n var currentValue = unwrap(obj, options);\r\n expr.forEach((function(propertyName, levelIndex) {\r\n var propertyValue = readPropValue(currentValue, propertyName, options);\r\n var isPropertyFunc = !options.functionsAsIs && isFunction(propertyValue) && !isWrapped(propertyValue);\r\n if (levelIndex === lastLevelIndex) {\r\n if (options.merge && isPlainObject(value) && (!isDefined(propertyValue) || isPlainObject(propertyValue))) {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n deepExtendArraySafe(propertyValue, value, false, true)\r\n } else if (isPropertyFunc) {\r\n currentValue[propertyName](value)\r\n } else {\r\n assignPropValue(currentValue, propertyName, value, options)\r\n }\r\n } else {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n if (isPropertyFunc) {\r\n propertyValue = propertyValue.call(currentValue)\r\n }\r\n currentValue = propertyValue\r\n }\r\n }))\r\n }\r\n};\r\nexport var toComparable = function(value, caseSensitive) {\r\n if (value instanceof Date) {\r\n return value.getTime()\r\n }\r\n if (value && value instanceof Class && value.valueOf) {\r\n return value.valueOf()\r\n }\r\n if (!caseSensitive && \"string\" === typeof value) {\r\n return value.toLowerCase()\r\n }\r\n return value\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject,\r\n isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar toMilliseconds = function toMilliseconds(value) {\r\n switch (value) {\r\n case \"millisecond\":\r\n return 1;\r\n case \"second\":\r\n return 1e3 * toMilliseconds(\"millisecond\");\r\n case \"minute\":\r\n return 60 * toMilliseconds(\"second\");\r\n case \"hour\":\r\n return 60 * toMilliseconds(\"minute\");\r\n case \"day\":\r\n return 24 * toMilliseconds(\"hour\");\r\n case \"week\":\r\n return 7 * toMilliseconds(\"day\");\r\n case \"month\":\r\n return 30 * toMilliseconds(\"day\");\r\n case \"quarter\":\r\n return 3 * toMilliseconds(\"month\");\r\n case \"year\":\r\n return 365 * toMilliseconds(\"day\");\r\n default:\r\n return 0\r\n }\r\n};\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + 7) % 7;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n var result = new Date(date.getTime());\r\n result.setHours(result.getHours() + 1);\r\n result.setMinutes(0);\r\n return result\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDateWithFullYear: createDateWithFullYear\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/core/utils/deferred.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPromise\r\n} from \"../utils/type\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nvar deferredConfig = [{\r\n method: \"resolve\",\r\n handler: \"done\",\r\n state: \"resolved\"\r\n}, {\r\n method: \"reject\",\r\n handler: \"fail\",\r\n state: \"rejected\"\r\n}, {\r\n method: \"notify\",\r\n handler: \"progress\"\r\n}];\r\nvar _DeferredObj = function() {\r\n var that = this;\r\n this._state = \"pending\";\r\n this._promise = {};\r\n deferredConfig.forEach(function(config) {\r\n var methodName = config.method;\r\n this[methodName + \"Callbacks\"] = new Callbacks;\r\n this[methodName] = function() {\r\n return this[methodName + \"With\"](this._promise, arguments)\r\n }.bind(this);\r\n this._promise[config.handler] = function(handler) {\r\n if (!handler) {\r\n return this\r\n }\r\n var callbacks = that[methodName + \"Callbacks\"];\r\n if (callbacks.fired()) {\r\n handler.apply(that[methodName + \"Context\"], that[methodName + \"Args\"])\r\n } else {\r\n callbacks.add(function(context, args) {\r\n handler.apply(context, args)\r\n }.bind(this))\r\n }\r\n return this\r\n }\r\n }.bind(this));\r\n this._promise.always = function(handler) {\r\n return this.done(handler).fail(handler)\r\n };\r\n this._promise.catch = function(handler) {\r\n return this.then(null, handler)\r\n };\r\n this._promise.then = function(resolve, reject) {\r\n var result = new _DeferredObj;\r\n [\"done\", \"fail\"].forEach(function(method) {\r\n var callback = \"done\" === method ? resolve : reject;\r\n this[method]((function() {\r\n if (!callback) {\r\n result[\"done\" === method ? \"resolve\" : \"reject\"].apply(this, arguments);\r\n return\r\n }\r\n var callbackResult = callback && callback.apply(this, arguments);\r\n if (isDeferred(callbackResult)) {\r\n callbackResult.done(result.resolve).fail(result.reject)\r\n } else if (isPromise(callbackResult)) {\r\n callbackResult.then(result.resolve, result.reject)\r\n } else {\r\n result.resolve.apply(this, isDefined(callbackResult) ? [callbackResult] : arguments)\r\n }\r\n }))\r\n }.bind(this));\r\n return result.promise()\r\n };\r\n this._promise.state = function() {\r\n return that._state\r\n };\r\n this._promise.promise = function(args) {\r\n return args ? extend(args, that._promise) : that._promise\r\n };\r\n this._promise.promise(this)\r\n};\r\ndeferredConfig.forEach((function(config) {\r\n var methodName = config.method;\r\n var state = config.state;\r\n _DeferredObj.prototype[methodName + \"With\"] = function(context, args) {\r\n var callbacks = this[methodName + \"Callbacks\"];\r\n if (\"pending\" === this.state()) {\r\n this[methodName + \"Args\"] = args;\r\n this[methodName + \"Context\"] = context;\r\n if (state) {\r\n this._state = state\r\n }\r\n callbacks.fire(context, args)\r\n }\r\n return this\r\n }\r\n}));\r\nexport function fromPromise(promise, context) {\r\n if (isDeferred(promise)) {\r\n return promise\r\n } else if (isPromise(promise)) {\r\n var d = new _DeferredObj;\r\n promise.then((function() {\r\n d.resolveWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }), (function() {\r\n d.rejectWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }));\r\n return d\r\n }\r\n return (new _DeferredObj).resolveWith(context, [promise])\r\n}\r\nvar whenFunc = function() {\r\n if (1 === arguments.length) {\r\n return fromPromise(arguments[0])\r\n }\r\n var values = [].slice.call(arguments);\r\n var contexts = [];\r\n var resolvedCount = 0;\r\n var deferred = new _DeferredObj;\r\n var updateState = function(i) {\r\n return function(value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? [].slice.call(arguments) : value;\r\n resolvedCount++;\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n }\r\n };\r\n for (var i = 0; i < values.length; i++) {\r\n if (isDeferred(values[i])) {\r\n values[i].promise().done(updateState(i)).fail(deferred.reject)\r\n } else {\r\n resolvedCount++\r\n }\r\n }\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n return deferred.promise()\r\n};\r\nexport function setStrategy(value) {\r\n _DeferredObj = value.Deferred;\r\n whenFunc = value.when\r\n}\r\nexport function Deferred() {\r\n return new _DeferredObj\r\n}\r\nexport function when() {\r\n return whenFunc.apply(this, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dependency_injector.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"
    \").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"
    \").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (domAdapter.isTextNode(element)) {\r\n element = element.parentNode\r\n }\r\n if (domAdapter.isDocument(container)) {\r\n return container.documentElement.contains(element)\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"
    \").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/error.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport {\r\n format\r\n} from \"./string\";\r\nimport {\r\n version\r\n} from \"../version\";\r\nvar ERROR_URL = \"http://js.devexpress.com/error/\" + version.split(\".\").slice(0, 2).join(\"_\") + \"/\";\r\nexport default function(baseErrors, errors) {\r\n var exports = {\r\n ERROR_MESSAGES: extend(errors, baseErrors),\r\n Error: function() {\r\n return makeError([].slice.call(arguments))\r\n },\r\n log: function(id) {\r\n var method = \"log\";\r\n if (/^E\\d+$/.test(id)) {\r\n method = \"error\"\r\n } else if (/^W\\d+$/.test(id)) {\r\n method = \"warn\"\r\n }\r\n logger[method](\"log\" === method ? id : combineMessage([].slice.call(arguments)))\r\n }\r\n };\r\n\r\n function combineMessage(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n return formatMessage(id, formatDetails(id, args))\r\n }\r\n\r\n function formatDetails(id, args) {\r\n args = [exports.ERROR_MESSAGES[id]].concat(args);\r\n return format.apply(this, args).replace(/\\.*\\s*?$/, \"\")\r\n }\r\n\r\n function formatMessage(id, details) {\r\n return format.apply(this, [\"{0} - {1}. See:\\n{2}\", id, details, getErrorUrl(id)])\r\n }\r\n\r\n function makeError(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n var details = formatDetails(id, args);\r\n var url = getErrorUrl(id);\r\n var message = formatMessage(id, details);\r\n return extend(new Error(message), {\r\n __id: id,\r\n __details: details,\r\n url: url\r\n })\r\n }\r\n\r\n function getErrorUrl(id) {\r\n return ERROR_URL + id\r\n }\r\n return exports\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/extend.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isPlainObject\r\n} from \"./type\";\r\nexport var extendFromObject = function(target, source, overrideExistingValues) {\r\n target = target || {};\r\n for (var prop in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n var value = source[prop];\r\n if (!(prop in target) || overrideExistingValues) {\r\n target[prop] = value\r\n }\r\n }\r\n }\r\n return target\r\n};\r\nexport var extend = function extend(target) {\r\n target = target || {};\r\n var i = 1;\r\n var deep = false;\r\n if (\"boolean\" === typeof target) {\r\n deep = target;\r\n target = arguments[1] || {};\r\n i++\r\n }\r\n for (; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n if (null == source) {\r\n continue\r\n }\r\n for (var key in source) {\r\n var targetValue = target[key];\r\n var sourceValue = source[key];\r\n var sourceValueIsArray = false;\r\n var clone = void 0;\r\n if (\"__proto__\" === key || \"constructor\" === key || target === sourceValue) {\r\n continue\r\n }\r\n if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {\r\n if (sourceValueIsArray) {\r\n clone = targetValue && Array.isArray(targetValue) ? targetValue : []\r\n } else {\r\n clone = targetValue && isPlainObject(targetValue) ? targetValue : {}\r\n }\r\n target[key] = extend(deep, clone, sourceValue)\r\n } else if (void 0 !== sourceValue) {\r\n target[key] = sourceValue\r\n }\r\n }\r\n }\r\n return target\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n merge\r\n} from \"./array\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"\",\r\n endTags: \"
    \"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"\",\r\n endTags: \"
    \"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
    \"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
    \"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return merge([], container.childNodes)\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/iterator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar map = (values, callback) => {\r\n if (Array.isArray(values)) {\r\n return values.map(callback)\r\n }\r\n var result = [];\r\n for (var key in values) {\r\n result.push(callback(values[key], key))\r\n }\r\n return result\r\n};\r\nvar each = (values, callback) => {\r\n if (!values) {\r\n return\r\n }\r\n if (\"length\" in values) {\r\n for (var i = 0; i < values.length; i++) {\r\n if (false === callback.call(values[i], i, values[i])) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (var key in values) {\r\n if (false === callback.call(values[key], key, values[key])) {\r\n break\r\n }\r\n }\r\n }\r\n return values\r\n};\r\nvar reverseEach = (array, callback) => {\r\n if (!array || !(\"length\" in array) || 0 === array.length) {\r\n return\r\n }\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (false === callback.call(array[i], i, array[i])) {\r\n break\r\n }\r\n }\r\n};\r\nexport {\r\n map,\r\n each,\r\n reverseEach\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/math.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/object.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport WeakMap from \"../polyfills/weak_map\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isString,\r\n isNumeric,\r\n isRenderer\r\n} from \"../utils/type\";\r\nvar window = getWindow();\r\nvar SPECIAL_HEIGHT_VALUES = [\"auto\", \"none\", \"inherit\", \"initial\"];\r\nvar getSizeByStyles = function(elementStyles, styles) {\r\n var result = 0;\r\n styles.forEach((function(style) {\r\n result += parseFloat(elementStyles[style]) || 0\r\n }));\r\n return result\r\n};\r\nexport var getElementBoxParams = function(name, elementStyles) {\r\n var beforeName = \"width\" === name ? \"Left\" : \"Top\";\r\n var afterName = \"width\" === name ? \"Right\" : \"Bottom\";\r\n return {\r\n padding: getSizeByStyles(elementStyles, [\"padding\" + beforeName, \"padding\" + afterName]),\r\n border: getSizeByStyles(elementStyles, [\"border\" + beforeName + \"Width\", \"border\" + afterName + \"Width\"]),\r\n margin: getSizeByStyles(elementStyles, [\"margin\" + beforeName, \"margin\" + afterName])\r\n }\r\n};\r\nvar getElementComputedStyle = function(element) {\r\n var _element$ownerDocumen;\r\n var view = (null === element || void 0 === element ? void 0 : null === (_element$ownerDocumen = element.ownerDocument) || void 0 === _element$ownerDocumen ? void 0 : _element$ownerDocumen.defaultView) || window;\r\n return view.getComputedStyle && view.getComputedStyle(element)\r\n};\r\nvar getCSSProperty = function(element, styles, name, defaultValue) {\r\n var _element$style;\r\n return (null === styles || void 0 === styles ? void 0 : styles[name]) || (null === (_element$style = element.style) || void 0 === _element$style ? void 0 : _element$style[name]) || defaultValue\r\n};\r\nvar boxIndices = {\r\n content: 0,\r\n padding: 1,\r\n border: 2,\r\n margin: 3,\r\n \"content-box\": 0,\r\n \"border-box\": 2\r\n};\r\nvar dimensionComponents = {\r\n width: [\"left\", \"right\"],\r\n height: [\"top\", \"bottom\"]\r\n};\r\n\r\nfunction getComponentThickness(elem, dimension, component, styles) {\r\n var get = (elem, styles, field) => parseFloat(getCSSProperty(elem, styles, field, \"0\")) || 0;\r\n var suffix = \"border\" === component ? \"-width\" : \"\";\r\n return get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][0]).concat(suffix)) + get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][1]).concat(suffix))\r\n}\r\nexport var getSize = function(element, dimension, box) {\r\n var offsetFieldName = \"width\" === dimension ? \"offsetWidth\" : \"offsetHeight\";\r\n var styles = getElementComputedStyle(element);\r\n var result = getCSSProperty(element, styles, dimension);\r\n if (\"\" === result || \"auto\" === result) {\r\n result = element[offsetFieldName]\r\n }\r\n result = parseFloat(result) || 0;\r\n var currentBox = getCSSProperty(element, styles, \"boxSizing\", \"content-box\");\r\n var targetBox = box || currentBox;\r\n var targetBoxIndex = boxIndices[targetBox];\r\n var currentBoxIndex = boxIndices[currentBox];\r\n if (void 0 === targetBoxIndex || void 0 === currentBoxIndex) {\r\n throw new Error\r\n }\r\n if (currentBoxIndex === targetBoxIndex) {\r\n return result\r\n }\r\n var coeff = Math.sign(targetBoxIndex - currentBoxIndex);\r\n var padding = false;\r\n var border = false;\r\n var margin = false;\r\n var scrollThickness = false;\r\n if (1 === coeff) {\r\n targetBoxIndex += 1;\r\n currentBoxIndex += 1\r\n }\r\n for (var boxPart = currentBoxIndex; boxPart !== targetBoxIndex; boxPart += coeff) {\r\n switch (boxPart) {\r\n case boxIndices.content:\r\n break;\r\n case boxIndices.padding:\r\n padding = coeff * getComponentThickness(element, dimension, \"padding\", styles);\r\n break;\r\n case boxIndices.border:\r\n border = coeff * getComponentThickness(element, dimension, \"border\", styles);\r\n break;\r\n case boxIndices.margin:\r\n margin = coeff * getComponentThickness(element, dimension, \"margin\", styles)\r\n }\r\n }\r\n if (padding || border) {\r\n var paddingAndBorder = (false === padding ? coeff * getComponentThickness(element, dimension, \"padding\", styles) : padding) + (false === border ? coeff * getComponentThickness(element, dimension, \"border\", styles) : border);\r\n scrollThickness = coeff * Math.max(0, Math.floor(element[offsetFieldName] - result - coeff * paddingAndBorder)) || 0\r\n }\r\n return result + margin + padding + border + scrollThickness\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nexport var parseHeight = function(value, container) {\r\n if (value.indexOf(\"px\") > 0) {\r\n value = parseInt(value.replace(\"px\", \"\"))\r\n } else if (value.indexOf(\"%\") > 0) {\r\n value = parseInt(value.replace(\"%\", \"\")) * getContainerHeight(container) / 100\r\n } else if (!isNaN(value)) {\r\n value = parseInt(value)\r\n } else if (value.indexOf(\"vh\") > 0) {\r\n value = window.innerHeight / 100 * parseInt(value.replace(\"vh\", \"\"))\r\n }\r\n return value\r\n};\r\nvar getHeightWithOffset = function(value, offset, container) {\r\n if (!value) {\r\n return null\r\n }\r\n if (SPECIAL_HEIGHT_VALUES.indexOf(value) > -1) {\r\n return offset ? null : value\r\n }\r\n if (isString(value)) {\r\n value = parseHeight(value, container)\r\n }\r\n if (isNumeric(value)) {\r\n return Math.max(0, value + offset)\r\n }\r\n var operationString = offset < 0 ? \" - \" : \" \";\r\n return \"calc(\" + value + operationString + Math.abs(offset) + \"px)\"\r\n};\r\nexport var addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nexport var addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nexport var getVerticalOffsets = function(element, withMargins) {\r\n if (!element) {\r\n return 0\r\n }\r\n var boxParams = getElementBoxParams(\"height\", window.getComputedStyle(element));\r\n return boxParams.padding + boxParams.border + (withMargins ? boxParams.margin : 0)\r\n};\r\nexport var getVisibleHeight = function(element) {\r\n if (element) {\r\n var boundingClientRect = element.getBoundingClientRect();\r\n if (boundingClientRect.height) {\r\n return boundingClientRect.height\r\n }\r\n }\r\n return 0\r\n};\r\nexport var implementationsMap = {\r\n getWidth: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n setWidth: function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n getHeight: function() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n setHeight: function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n getOuterWidth: function() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n setOuterWidth: function() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n getOuterHeight: function() {\r\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\r\n args[_key7] = arguments[_key7]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n setOuterHeight: function() {\r\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\r\n args[_key8] = arguments[_key8]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n getInnerWidth: function() {\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n setInnerWidth: function() {\r\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\r\n args[_key10] = arguments[_key10]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n getInnerHeight: function() {\r\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\r\n args[_key11] = arguments[_key11]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n },\r\n setInnerHeight: function() {\r\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\r\n args[_key12] = arguments[_key12]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n }\r\n};\r\n\r\nfunction elementSizeHelper(sizeProperty, el, value) {\r\n return 2 === arguments.length ? elementSize(el, sizeProperty) : elementSize(el, sizeProperty, value)\r\n}\r\nexport var getWidth = el => implementationsMap.getWidth(el);\r\nexport var setWidth = (el, value) => implementationsMap.setWidth(el, value);\r\nexport var getHeight = el => implementationsMap.getHeight(el);\r\nexport var setHeight = (el, value) => implementationsMap.setHeight(el, value);\r\nexport var getOuterWidth = (el, includeMargin) => implementationsMap.getOuterWidth(el, includeMargin || false);\r\nexport var setOuterWidth = (el, value) => implementationsMap.setOuterWidth(el, value);\r\nexport var getOuterHeight = (el, includeMargin) => implementationsMap.getOuterHeight(el, includeMargin || false);\r\nexport var setOuterHeight = (el, value) => implementationsMap.setOuterHeight(el, value);\r\nexport var getInnerWidth = el => implementationsMap.getInnerWidth(el);\r\nexport var setInnerWidth = (el, value) => implementationsMap.setInnerWidth(el, value);\r\nexport var getInnerHeight = el => implementationsMap.getInnerHeight(el);\r\nexport var setInnerHeight = (el, value) => implementationsMap.setInnerHeight(el, value);\r\nvar elementSize = function elementSize(el, sizeProperty, value) {\r\n var partialName = sizeProperty.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === sizeProperty.indexOf(\"outer\");\r\n var isInner = 0 === sizeProperty.indexOf(\"inner\");\r\n var isGetter = 2 === arguments.length || \"boolean\" === typeof value;\r\n if (isRenderer(el)) {\r\n if (el.length > 1 && !isGetter) {\r\n for (var i = 0; i < el.length; i++) {\r\n elementSize(el[i], sizeProperty, value)\r\n }\r\n return\r\n }\r\n el = el[0]\r\n }\r\n if (!el) {\r\n return\r\n }\r\n if (isWindow(el)) {\r\n return isOuter ? el[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(el)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (isGetter) {\r\n var box = \"content\";\r\n if (isOuter) {\r\n box = value ? \"margin\" : \"border\"\r\n }\r\n if (isInner) {\r\n box = \"padding\"\r\n }\r\n return getSize(el, propName, box)\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = getElementComputedStyle(el);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(el, propName, value);\r\n return null\r\n};\r\nexport var getWindowByElement = el => isWindow(el) ? el : el.defaultView;\r\nexport var getOffset = el => {\r\n if (!el.getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = el.getBoundingClientRect();\r\n var win = getWindowByElement(el.ownerDocument);\r\n var docElem = el.ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/string.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"./type\";\r\nexport var encodeHtml = function() {\r\n var encodeRegExp = [new RegExp(\"&\", \"g\"), new RegExp('\"', \"g\"), new RegExp(\"'\", \"g\"), new RegExp(\"<\", \"g\"), new RegExp(\">\", \"g\")];\r\n return function(str) {\r\n return String(str).replace(encodeRegExp[0], \"&\").replace(encodeRegExp[1], \""\").replace(encodeRegExp[2], \"'\").replace(encodeRegExp[3], \"<\").replace(encodeRegExp[4], \">\")\r\n }\r\n}();\r\nvar splitQuad = function(raw) {\r\n switch (typeof raw) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 4);\r\n case \"object\":\r\n return [raw.x || raw.h || raw.left, raw.y || raw.v || raw.top, raw.x || raw.h || raw.right, raw.y || raw.v || raw.bottom];\r\n case \"number\":\r\n return [raw];\r\n default:\r\n return raw\r\n }\r\n};\r\nexport var quadToObject = function(raw) {\r\n var quad = splitQuad(raw);\r\n var left = parseInt(quad && quad[0], 10);\r\n var top = parseInt(quad && quad[1], 10);\r\n var right = parseInt(quad && quad[2], 10);\r\n var bottom = parseInt(quad && quad[3], 10);\r\n if (!isFinite(left)) {\r\n left = 0\r\n }\r\n if (!isFinite(top)) {\r\n top = left\r\n }\r\n if (!isFinite(right)) {\r\n right = left\r\n }\r\n if (!isFinite(bottom)) {\r\n bottom = top\r\n }\r\n return {\r\n top: top,\r\n right: right,\r\n bottom: bottom,\r\n left: left\r\n }\r\n};\r\nexport function format(template) {\r\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n values[_key - 1] = arguments[_key]\r\n }\r\n if (isFunction(template)) {\r\n return template(...values)\r\n }\r\n values.forEach((value, index) => {\r\n if (isString(value)) {\r\n value = value.replace(/\\$/g, \"$$$$\")\r\n }\r\n var placeholderReg = new RegExp(\"\\\\{\" + index + \"\\\\}\", \"gm\");\r\n template = template.replace(placeholderReg, value)\r\n });\r\n return template\r\n}\r\nexport var replaceAll = function(text, searchToken, replacementToken) {\r\n return text.replace(new RegExp(\"(\" + (str = searchToken, (str + \"\").replace(/([+*?.[^\\]$(){}><|=!:])/g, \"\\\\$1\")) + \")\", \"gi\"), replacementToken);\r\n var str\r\n};\r\nexport var isEmpty = function() {\r\n var SPACE_REGEXP = /\\s/g;\r\n return function(text) {\r\n return !text || !text.replace(SPACE_REGEXP, \"\")\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric,\r\n isString\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar parsePixelValue = function(value) {\r\n if (isNumeric(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return Number(value.replace(\"px\", \"\"))\r\n }\r\n return NaN\r\n};\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nexport {\r\n styleProp,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n parsePixelValue,\r\n setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"./array\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n version: version,\r\n mac: isMac\r\n } = devices.real();\r\n var isObsoleteAndroid = version && version[0] < 4 && \"android\" === platform;\r\n var isNativeScrollDevice = !isObsoleteAndroid && inArray(platform, [\"ios\", \"android\"]) > -1 || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","/**\r\n * DevExtreme (esm/core/utils/svg.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nimport $ from \"../../core/renderer\";\r\nvar window = getWindow();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = domAdapter.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n $(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (-1 === markup.indexOf(\"xmlns:xlink\")) {\r\n markup = markup.replace(\" hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","/**\r\n * DevExtreme (esm/core/version.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var version = \"21.2.7\";\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = inArray(emitter, activeEmitters);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"../../core/memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/events/core/hook_touch_props.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\nexport default function(callback) {\r\n touchPropsToHook.forEach((function(name) {\r\n callback(name, (function(event) {\r\n return touchPropHook(name, event)\r\n }))\r\n }), this)\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/events_engine.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerEventCallbacks from \"./event_registrator_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"../../core/utils/dependency_injector\";\r\nimport {\r\n isWindow,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport errors from \"../../core/errors\";\r\nimport WeakMap from \"../../core/polyfills/weak_map\";\r\nimport hookTouchProps from \"../../events/core/hook_touch_props\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\nvar EVENT_PROPERTIES = [\"target\", \"relatedTarget\", \"delegateTarget\", \"altKey\", \"bubbles\", \"cancelable\", \"changedTouches\", \"ctrlKey\", \"detail\", \"eventPhase\", \"metaKey\", \"shiftKey\", \"view\", \"char\", \"code\", \"charCode\", \"key\", \"keyCode\", \"button\", \"buttons\", \"offsetX\", \"offsetY\", \"pointerId\", \"pointerType\", \"targetTouches\", \"toElement\", \"touches\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !isWindow(target) && \"#document\" !== target.nodeName && domAdapter.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new WeakMap;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n registerEventCallbacks.add((function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n }));\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = injector({\r\n on: getHandler(normalizeOnArguments(iterate((function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n })))),\r\n one: getHandler(normalizeOnArguments((function(element, eventName, selector, data, handler) {\r\n eventsEngine.on(element, eventName, selector, data, (function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n }))\r\n }))),\r\n off: getHandler(normalizeOffArguments(iterate((function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n })))),\r\n trigger: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || -1 !== NO_BUBBLE_EVENTS.indexOf(eventName);\r\n if (!noBubble) {\r\n var parents = [];\r\n ! function getParents(element) {\r\n var parent = element.parentNode;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n }(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers(extend(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || isWindow(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n }))),\r\n triggerHandler: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n })))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (domAdapter.isNode(element) || isWindow(element)) {\r\n method.apply(eventsEngine, args)\r\n } else if (!isString(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, (function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n }))\r\n } else {\r\n throw errors.Error(\"E0025\")\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = callOnce(detectPassiveEventHandlersSupport);\r\nvar contains = (container, element) => {\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n },\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = domAdapter.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter((function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n }));\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n eventsEngine.Event = function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n };\r\n _extends(eventsEngine.Event.prototype, {\r\n _propagationStopped: false,\r\n _immediatePropagationStopped: false,\r\n _defaultPrevented: false,\r\n isPropagationStopped: function() {\r\n return !!(this._propagationStopped || this.originalEvent && this.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n this._propagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return this._immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n this._immediatePropagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(this._defaultPrevented || this.originalEvent && this.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n this._defaultPrevented = true;\r\n this.originalEvent && this.originalEvent.preventDefault()\r\n }\r\n });\r\n return eventsEngine.Event\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach((function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n }))\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === typeof eventName) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n if (function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n }(eventName, element)) {\r\n return\r\n }\r\n if (isFunction(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n if (function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n }(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (function(event) {\r\n return !event.which && void 0 !== event.button && /^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(event.type)\r\n }(event)) {\r\n return {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n } [event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments((function(src, config) {\r\n var _src$view;\r\n var srcIsEvent = src instanceof eventsEngine.Event || hasWindow() && src instanceof window.Event || (null === (_src$view = src.view) || void 0 === _src$view ? void 0 : _src$view.Event) && src instanceof src.view.Event;\r\n if (srcIsEvent) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n this.currentTarget = void 0;\r\n if (Object.prototype.hasOwnProperty.call(src, \"isTrusted\")) {\r\n this.isTrusted = src.isTrusted\r\n }\r\n this.timeStamp = src.timeStamp || Date.now()\r\n } else {\r\n _extends(this, src)\r\n }\r\n addProperty(\"which\", calculateWhich, this);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }\r\n _extends(this, config);\r\n this.guid = ++guid\r\n})));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}\r\nEVENT_PROPERTIES.forEach(prop => addProperty(prop, event => event[prop]));\r\nhookTouchProps(addProperty);\r\nvar beforeSetStrategy = Callbacks();\r\nvar afterSetStrategy = Callbacks();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments((function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add((function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n }));\r\n afterSetStrategy.add((function() {\r\n eventsEngine.on.apply(this, args)\r\n }))\r\n })))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nexport default eventsEngine;\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"
    \").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray,\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = -1 !== inArray(element, knownDropTargets);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = inArray(element, knownDropTargets);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (-1 === inArray(selector, knownDropTargetSelectors[index])) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = inArray(element, knownDropTargets);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (-1 !== inArray(void 0, knownDropTargetSelectors[dropTargetIndex])) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n var dropTargets = wrapToArray(e.targetElements || (null === e.targetElements ? [] : knownDropTargets));\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var delegateTarget = this._getDelegateTarget(e);\r\n return this._fireEvent({\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n })\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, device) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = device;\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/events/remove.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable = true;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement() === element\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isDropDown = $target.is(\".dx-dropdownlist-popup-wrapper *, .dx-dropdownlist-popup-wrapper\");\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if ($target.is(\".dx-skip-gesture-event *, .dx-skip-gesture-event\") && !isDropDown) {\r\n return true\r\n }\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var originalKey = key;\r\n var isKeySupported = !!key;\r\n if (key || which) {\r\n if (isKeySupported) {\r\n key = KEY_MAP[key.toLowerCase()]\r\n }\r\n if (!isKeySupported || !key && which) {\r\n key = LEGACY_KEY_CODES[which] || String.fromCharCode(which)\r\n }\r\n return key || originalKey\r\n }\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/parent_locales.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"en-150\": \"en-001\",\r\n \"en-AG\": \"en-001\",\r\n \"en-AI\": \"en-001\",\r\n \"en-AU\": \"en-001\",\r\n \"en-BB\": \"en-001\",\r\n \"en-BM\": \"en-001\",\r\n \"en-BS\": \"en-001\",\r\n \"en-BW\": \"en-001\",\r\n \"en-BZ\": \"en-001\",\r\n \"en-CC\": \"en-001\",\r\n \"en-CK\": \"en-001\",\r\n \"en-CM\": \"en-001\",\r\n \"en-CX\": \"en-001\",\r\n \"en-CY\": \"en-001\",\r\n \"en-DG\": \"en-001\",\r\n \"en-DM\": \"en-001\",\r\n \"en-ER\": \"en-001\",\r\n \"en-FJ\": \"en-001\",\r\n \"en-FK\": \"en-001\",\r\n \"en-FM\": \"en-001\",\r\n \"en-GB\": \"en-001\",\r\n \"en-GD\": \"en-001\",\r\n \"en-GG\": \"en-001\",\r\n \"en-GH\": \"en-001\",\r\n \"en-GI\": \"en-001\",\r\n \"en-GM\": \"en-001\",\r\n \"en-GY\": \"en-001\",\r\n \"en-HK\": \"en-001\",\r\n \"en-IE\": \"en-001\",\r\n \"en-IL\": \"en-001\",\r\n \"en-IM\": \"en-001\",\r\n \"en-IN\": \"en-001\",\r\n \"en-IO\": \"en-001\",\r\n \"en-JE\": \"en-001\",\r\n \"en-JM\": \"en-001\",\r\n \"en-KE\": \"en-001\",\r\n \"en-KI\": \"en-001\",\r\n \"en-KN\": \"en-001\",\r\n \"en-KY\": \"en-001\",\r\n \"en-LC\": \"en-001\",\r\n \"en-LR\": \"en-001\",\r\n \"en-LS\": \"en-001\",\r\n \"en-MG\": \"en-001\",\r\n \"en-MO\": \"en-001\",\r\n \"en-MS\": \"en-001\",\r\n \"en-MT\": \"en-001\",\r\n \"en-MU\": \"en-001\",\r\n \"en-MV\": \"en-001\",\r\n \"en-MW\": \"en-001\",\r\n \"en-MY\": \"en-001\",\r\n \"en-NA\": \"en-001\",\r\n \"en-NF\": \"en-001\",\r\n \"en-NG\": \"en-001\",\r\n \"en-NR\": \"en-001\",\r\n \"en-NU\": \"en-001\",\r\n \"en-NZ\": \"en-001\",\r\n \"en-PG\": \"en-001\",\r\n \"en-PK\": \"en-001\",\r\n \"en-PN\": \"en-001\",\r\n \"en-PW\": \"en-001\",\r\n \"en-RW\": \"en-001\",\r\n \"en-SB\": \"en-001\",\r\n \"en-SC\": \"en-001\",\r\n \"en-SD\": \"en-001\",\r\n \"en-SG\": \"en-001\",\r\n \"en-SH\": \"en-001\",\r\n \"en-SL\": \"en-001\",\r\n \"en-SS\": \"en-001\",\r\n \"en-SX\": \"en-001\",\r\n \"en-SZ\": \"en-001\",\r\n \"en-TC\": \"en-001\",\r\n \"en-TK\": \"en-001\",\r\n \"en-TO\": \"en-001\",\r\n \"en-TT\": \"en-001\",\r\n \"en-TV\": \"en-001\",\r\n \"en-TZ\": \"en-001\",\r\n \"en-UG\": \"en-001\",\r\n \"en-VC\": \"en-001\",\r\n \"en-VG\": \"en-001\",\r\n \"en-VU\": \"en-001\",\r\n \"en-WS\": \"en-001\",\r\n \"en-ZA\": \"en-001\",\r\n \"en-ZM\": \"en-001\",\r\n \"en-ZW\": \"en-001\",\r\n \"en-AT\": \"en-150\",\r\n \"en-BE\": \"en-150\",\r\n \"en-CH\": \"en-150\",\r\n \"en-DE\": \"en-150\",\r\n \"en-DK\": \"en-150\",\r\n \"en-FI\": \"en-150\",\r\n \"en-NL\": \"en-150\",\r\n \"en-SE\": \"en-150\",\r\n \"en-SI\": \"en-150\",\r\n \"hi-Latn\": \"en-IN\",\r\n \"es-AR\": \"es-419\",\r\n \"es-BO\": \"es-419\",\r\n \"es-BR\": \"es-419\",\r\n \"es-BZ\": \"es-419\",\r\n \"es-CL\": \"es-419\",\r\n \"es-CO\": \"es-419\",\r\n \"es-CR\": \"es-419\",\r\n \"es-CU\": \"es-419\",\r\n \"es-DO\": \"es-419\",\r\n \"es-EC\": \"es-419\",\r\n \"es-GT\": \"es-419\",\r\n \"es-HN\": \"es-419\",\r\n \"es-MX\": \"es-419\",\r\n \"es-NI\": \"es-419\",\r\n \"es-PA\": \"es-419\",\r\n \"es-PE\": \"es-419\",\r\n \"es-PR\": \"es-419\",\r\n \"es-PY\": \"es-419\",\r\n \"es-SV\": \"es-419\",\r\n \"es-US\": \"es-419\",\r\n \"es-UY\": \"es-419\",\r\n \"es-VE\": \"es-419\",\r\n nb: \"no\",\r\n nn: \"no\",\r\n \"pt-AO\": \"pt-PT\",\r\n \"pt-CH\": \"pt-PT\",\r\n \"pt-CV\": \"pt-PT\",\r\n \"pt-FR\": \"pt-PT\",\r\n \"pt-GQ\": \"pt-PT\",\r\n \"pt-GW\": \"pt-PT\",\r\n \"pt-LU\": \"pt-PT\",\r\n \"pt-MO\": \"pt-PT\",\r\n \"pt-MZ\": \"pt-PT\",\r\n \"pt-ST\": \"pt-PT\",\r\n \"pt-TL\": \"pt-PT\",\r\n \"az-Arab\": \"und\",\r\n \"az-Cyrl\": \"und\",\r\n \"bal-Latn\": \"und\",\r\n \"blt-Latn\": \"und\",\r\n \"bm-Nkoo\": \"und\",\r\n \"bs-Cyrl\": \"und\",\r\n \"byn-Latn\": \"und\",\r\n \"cu-Glag\": \"und\",\r\n \"dje-Arab\": \"und\",\r\n \"dyo-Arab\": \"und\",\r\n \"en-Dsrt\": \"und\",\r\n \"en-Shaw\": \"und\",\r\n \"ff-Adlm\": \"und\",\r\n \"ff-Arab\": \"und\",\r\n \"ha-Arab\": \"und\",\r\n \"iu-Latn\": \"und\",\r\n \"kk-Arab\": \"und\",\r\n \"ks-Deva\": \"und\",\r\n \"ku-Arab\": \"und\",\r\n \"ky-Arab\": \"und\",\r\n \"ky-Latn\": \"und\",\r\n \"ml-Arab\": \"und\",\r\n \"mn-Mong\": \"und\",\r\n \"mni-Mtei\": \"und\",\r\n \"ms-Arab\": \"und\",\r\n \"pa-Arab\": \"und\",\r\n \"sat-Deva\": \"und\",\r\n \"sd-Deva\": \"und\",\r\n \"sd-Khoj\": \"und\",\r\n \"sd-Sind\": \"und\",\r\n \"shi-Latn\": \"und\",\r\n \"so-Arab\": \"und\",\r\n \"sr-Latn\": \"und\",\r\n \"sw-Arab\": \"und\",\r\n \"tg-Arab\": \"und\",\r\n \"ug-Cyrl\": \"und\",\r\n \"uz-Arab\": \"und\",\r\n \"uz-Cyrl\": \"und\",\r\n \"vai-Latn\": \"und\",\r\n \"wo-Arab\": \"und\",\r\n \"yo-Arab\": \"und\",\r\n \"yue-Hans\": \"und\",\r\n \"zh-Hant\": \"und\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar PARENT_LOCALE_SEPARATOR = \"-\";\r\nexport default (parentLocales, locale) => {\r\n var parentLocale = parentLocales[locale];\r\n if (parentLocale) {\r\n return \"root\" !== parentLocale && parentLocale\r\n }\r\n return locale.substr(0, locale.lastIndexOf(PARENT_LOCALE_SEPARATOR))\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/core.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport parentLocales from \"./cldr-data/parent_locales\";\r\nimport getParentLocale from \"./parentLocale\";\r\nvar DEFAULT_LOCALE = \"en\";\r\nexport default dependencyInjector({\r\n locale: (() => {\r\n var currentLocale = DEFAULT_LOCALE;\r\n return locale => {\r\n if (!locale) {\r\n return currentLocale\r\n }\r\n currentLocale = locale\r\n }\r\n })(),\r\n getValueByClosestLocale: function(getter) {\r\n var locale = this.locale();\r\n var value = getter(locale);\r\n var isRootLocale;\r\n while (!value && !isRootLocale) {\r\n locale = getParentLocale(parentLocales, locale);\r\n if (locale) {\r\n value = getter(locale)\r\n } else {\r\n isRootLocale = true\r\n }\r\n }\r\n if (void 0 === value && locale !== DEFAULT_LOCALE) {\r\n return getter(DEFAULT_LOCALE)\r\n }\r\n return value\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization/currency.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nexport default {\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"currency\" === format) {\r\n formatConfig.precision = formatConfig.precision || 0;\r\n var result = this.format(value, extend({}, formatConfig, {\r\n type: \"fixedpoint\"\r\n }));\r\n var currencyPart = this.getCurrencySymbol().symbol.replace(/\\$/g, \"$$$$\");\r\n result = result.replace(/^(\\D*)(\\d.*)/, \"$1\" + currencyPart + \"$2\");\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getCurrencySymbol: function() {\r\n return {\r\n symbol: \"$\"\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function() {\r\n return \"$#,##0{0}_);\\\\($#,##0{0}\\\\)\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (inArray(formatPart, possiblePatterns) > -1) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign\r\n} from \"../core/utils/math\";\r\nvar DECIMAL_BASE = 10;\r\n\r\nfunction roundByAbs(value) {\r\n var valueSign = sign(value);\r\n return valueSign * Math.round(Math.abs(value))\r\n}\r\n\r\nfunction adjustValue(value, precision) {\r\n var precisionMultiplier = Math.pow(DECIMAL_BASE, precision);\r\n var roundMultiplier = precisionMultiplier * DECIMAL_BASE;\r\n var intermediateValue = value * roundMultiplier / DECIMAL_BASE;\r\n return roundByAbs(intermediateValue) / precisionMultiplier\r\n}\r\nexport function toFixed(value, precision) {\r\n var valuePrecision = precision || 0;\r\n var adjustedValue = valuePrecision > 0 ? adjustValue(...arguments) : value;\r\n return adjustedValue.toFixed(valuePrecision)\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/ldml/number.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n var singleQuotesLeft = 0;\r\n return str.split(\"\").filter((function(char, index) {\r\n singleQuotesLeft += \"'\" === char;\r\n var isDigit = \"#\" === char || \"0\" === char;\r\n var isInStub = singleQuotesLeft % 2;\r\n return isDigit && !isInStub\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n if (isPercentFormat(numberFormat)) {\r\n value *= 100\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(\"%\", \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/open_xml_currency_format.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default (currencySymbol, accountingFormat) => {\r\n if (!accountingFormat) {\r\n return\r\n }\r\n var encodedCurrencySymbol = currencySymbol;\r\n if (\"string\" === typeof currencySymbol) {\r\n encodedCurrencySymbol = \"\";\r\n for (var i = 0; i < currencySymbol.length; i++) {\r\n if (\"$\" !== currencySymbol[i]) {\r\n encodedCurrencySymbol += \"\\\\\"\r\n }\r\n encodedCurrencySymbol += currencySymbol[i]\r\n }\r\n }\r\n var encodeSymbols = {\r\n \".00\": \"{0}\",\r\n \"'\": \"\\\\'\",\r\n \"\\\\(\": \"\\\\(\",\r\n \"\\\\)\": \"\\\\)\",\r\n \" \": \"\\\\ \",\r\n '\"': \""\",\r\n \"\\\\\\xa4\": encodedCurrencySymbol\r\n };\r\n var result = accountingFormat.split(\";\");\r\n for (var _i = 0; _i < result.length; _i++) {\r\n for (var symbol in encodeSymbols) {\r\n if (Object.prototype.hasOwnProperty.call(encodeSymbols, symbol)) {\r\n result[_i] = result[_i].replace(new RegExp(symbol, \"g\"), encodeSymbols[symbol])\r\n }\r\n }\r\n }\r\n return 2 === result.length ? result[0] + \"_);\" + result[1] : result[0]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/accounting_formats.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n af: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"af-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n agq: \"#,##0.00\\xa4\",\r\n ak: \"\\xa4#,##0.00\",\r\n am: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ar: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-BH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IQ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-JO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-OM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-PS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-QA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-YE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n as: \"\\xa4\\xa0#,##,##0.00\",\r\n asa: \"#,##0.00\\xa0\\xa4\",\r\n ast: \"#,##0.00\\xa0\\xa4\",\r\n az: \"#,##0.00\\xa0\\xa4\",\r\n \"az-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"az-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n bas: \"#,##0.00\\xa0\\xa4\",\r\n be: \"#,##0.00\\xa0\\xa4\",\r\n \"be-tarask\": \"#,##0.00\\xa0\\xa4\",\r\n bem: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bez: \"#,##0.00\\xa4\",\r\n bg: \"0.00\\xa0\\xa4;(0.00\\xa0\\xa4)\",\r\n bm: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bn: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"bn-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n bo: \"\\xa4\\xa0#,##0.00\",\r\n \"bo-IN\": \"\\xa4\\xa0#,##0.00\",\r\n br: \"#,##0.00\\xa0\\xa4\",\r\n brx: \"\\xa4\\xa0#,##,##0.00\",\r\n bs: \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n ca: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-AD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-ES-valencia\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-FR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-IT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ccp: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"ccp-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n ce: \"#,##0.00\\xa0\\xa4\",\r\n ceb: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n cgg: \"\\xa4#,##0.00\",\r\n chr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ckb: \"\\xa4\\xa0#,##0.00\",\r\n \"ckb-IR\": \"\\xa4\\xa0#,##0.00\",\r\n cs: \"#,##0.00\\xa0\\xa4\",\r\n cy: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n da: \"#,##0.00\\xa0\\xa4\",\r\n \"da-GL\": \"#,##0.00\\xa0\\xa4\",\r\n dav: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n de: \"#,##0.00\\xa0\\xa4\",\r\n \"de-AT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-IT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LI\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LU\": \"#,##0.00\\xa0\\xa4\",\r\n dje: \"#,##0.00\\xa4\",\r\n doi: \"\\xa4#,##0.00\",\r\n dsb: \"#,##0.00\\xa0\\xa4\",\r\n dua: \"#,##0.00\\xa0\\xa4\",\r\n dyo: \"#,##0.00\\xa0\\xa4\",\r\n dz: \"\\xa4#,##,##0.00\",\r\n ebu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ee: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ee-TG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n el: \"#,##0.00\\xa0\\xa4\",\r\n \"el-CY\": \"#,##0.00\\xa0\\xa4\",\r\n en: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-001\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-150\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AT\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-AU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-BI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CH\": \"\\xa4\\xa0#,##0.00;\\xa4-#,##0.00\",\r\n \"en-CK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DK\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-FJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MV\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-MW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NF\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NL\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"en-NR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-RW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"en-SL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TV\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-WS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n eo: \"\\xa4\\xa0#,##0.00\",\r\n es: \"#,##0.00\\xa0\\xa4\",\r\n \"es-419\": \"\\xa4#,##0.00\",\r\n \"es-AR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-BO\": \"\\xa4#,##0.00\",\r\n \"es-BR\": \"\\xa4#,##0.00\",\r\n \"es-BZ\": \"\\xa4#,##0.00\",\r\n \"es-CL\": \"\\xa4#,##0.00\",\r\n \"es-CO\": \"\\xa4#,##0.00\",\r\n \"es-CR\": \"\\xa4#,##0.00\",\r\n \"es-CU\": \"\\xa4#,##0.00\",\r\n \"es-DO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"es-EA\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-EC\": \"\\xa4#,##0.00\",\r\n \"es-GQ\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-GT\": \"\\xa4#,##0.00\",\r\n \"es-HN\": \"\\xa4#,##0.00\",\r\n \"es-IC\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-MX\": \"\\xa4#,##0.00\",\r\n \"es-NI\": \"\\xa4#,##0.00\",\r\n \"es-PA\": \"\\xa4#,##0.00\",\r\n \"es-PE\": \"\\xa4#,##0.00\",\r\n \"es-PH\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-PR\": \"\\xa4#,##0.00\",\r\n \"es-PY\": \"\\xa4#,##0.00\",\r\n \"es-SV\": \"\\xa4#,##0.00\",\r\n \"es-US\": \"\\xa4#,##0.00\",\r\n \"es-UY\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-VE\": \"\\xa4#,##0.00\",\r\n et: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n eu: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ewo: \"#,##0.00\\xa0\\xa4\",\r\n fa: \"\\u200e\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n \"fa-AF\": \"\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n ff: \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Adlm\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-BF\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-CM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GW\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-LR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-MR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NE\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NG\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SL\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SN\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-BF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-CM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GH\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GN\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GW\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-LR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-MR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NE\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-SL\": \"#,##0.00\\xa0\\xa4\",\r\n fi: \"#,##0.00\\xa0\\xa4\",\r\n fil: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n fo: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fo-DK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GP\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-HT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-KM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-ML\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SY\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-VU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-WF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-YT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fur: \"\\xa4\\xa0#,##0.00\",\r\n fy: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n ga: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ga-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gl: \"#,##0.00\\xa0\\xa4\",\r\n gsw: \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-FR\": \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-LI\": \"#,##0.00\\xa0\\xa4\",\r\n gu: \"\\xa4#,##,##0.00;(\\xa4#,##,##0.00)\",\r\n guz: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gv: \"\\xa4#,##0.00\",\r\n ha: \"\\xa4\\xa0#,##0.00\",\r\n \"ha-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ha-NE\": \"\\xa4\\xa0#,##0.00\",\r\n haw: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n he: \"#,##0.00\\xa0\\xa4\",\r\n hi: \"\\xa4#,##,##0.00\",\r\n \"hi-Latn\": \"\\xa4#,##,##0.00\",\r\n hr: \"#,##0.00\\xa0\\xa4\",\r\n \"hr-BA\": \"#,##0.00\\xa0\\xa4\",\r\n hsb: \"#,##0.00\\xa0\\xa4\",\r\n hu: \"#,##0.00\\xa0\\xa4\",\r\n hy: \"#,##0.00\\xa0\\xa4\",\r\n ia: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n id: \"\\xa4#,##0.00\",\r\n ig: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ii: \"\\xa4\\xa0#,##0.00\",\r\n is: \"#,##0.00\\xa0\\xa4\",\r\n it: \"#,##0.00\\xa0\\xa4\",\r\n \"it-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-SM\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-VA\": \"#,##0.00\\xa0\\xa4\",\r\n ja: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n jgo: \"\\xa4\\xa0#,##0.00\",\r\n jmc: \"\\xa4#,##0.00\",\r\n jv: \"\\xa4\\xa0#,##0.00\",\r\n ka: \"#,##0.00\\xa0\\xa4\",\r\n kab: \"#,##0.00\\xa4\",\r\n kam: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kde: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kea: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kgp: \"\\xa4\\xa0#,##0.00\",\r\n khq: \"#,##0.00\\xa4\",\r\n ki: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kk: \"#,##0.00\\xa0\\xa4\",\r\n kkj: \"\\xa4\\xa0#,##0.00\",\r\n kl: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n kln: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n km: \"#,##0.00\\xa4;(#,##0.00\\xa4)\",\r\n kn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ko: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ko-KP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kok: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ks: \"\\xa4#,##0.00\",\r\n \"ks-Arab\": \"\\xa4#,##0.00\",\r\n \"ks-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n ksb: \"#,##0.00\\xa4\",\r\n ksf: \"#,##0.00\\xa0\\xa4\",\r\n ksh: \"#,##0.00\\xa0\\xa4\",\r\n ku: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kw: \"\\xa4#,##0.00\",\r\n ky: \"#,##0.00\\xa0\\xa4\",\r\n lag: \"\\xa4\\xa0#,##0.00\",\r\n lb: \"#,##0.00\\xa0\\xa4\",\r\n lg: \"#,##0.00\\xa4\",\r\n lkt: \"\\xa4\\xa0#,##0.00\",\r\n ln: \"#,##0.00\\xa0\\xa4\",\r\n \"ln-AO\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CG\": \"#,##0.00\\xa0\\xa4\",\r\n lo: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n lrc: \"\\xa4\\xa0#,##0.00\",\r\n \"lrc-IQ\": \"\\xa4\\xa0#,##0.00\",\r\n lt: \"#,##0.00\\xa0\\xa4\",\r\n lu: \"#,##0.00\\xa4\",\r\n luo: \"#,##0.00\\xa4\",\r\n luy: \"\\xa4#,##0.00;\\xa4-\\xa0#,##0.00\",\r\n lv: \"#,##0.00\\xa0\\xa4\",\r\n mai: \"\\xa4\\xa0#,##0.00\",\r\n mas: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"mas-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mer: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mfe: \"\\xa4\\xa0#,##0.00\",\r\n mg: \"\\xa4#,##0.00\",\r\n mgh: \"\\xa4\\xa0#,##0.00\",\r\n mgo: \"\\xa4\\xa0#,##0.00\",\r\n mi: \"\\xa4\\xa0#,##0.00\",\r\n mk: \"#,##0.00\\xa0\\xa4\",\r\n ml: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mn: \"\\xa4\\xa0#,##0.00\",\r\n mni: \"\\xa4\\xa0#,##0.00\",\r\n \"mni-Beng\": \"\\xa4\\xa0#,##0.00\",\r\n mr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ms: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-BN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-ID\": \"\\xa4#,##0.00\",\r\n \"ms-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mt: \"\\xa4#,##0.00\",\r\n mua: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n my: \"\\xa4\\xa0#,##0.00\",\r\n mzn: \"\\xa4\\xa0#,##0.00\",\r\n naq: \"\\xa4#,##0.00\",\r\n nb: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nb-SJ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nds: \"\\xa4\\xa0#,##0.00\",\r\n \"nds-NL\": \"\\xa4\\xa0#,##0.00\",\r\n ne: \"\\xa4\\xa0#,##,##0.00\",\r\n \"ne-IN\": \"\\xa4\\xa0#,##,##0.00\",\r\n nl: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-AW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BE\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BQ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-CW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SX\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nmg: \"#,##0.00\\xa0\\xa4\",\r\n nn: \"#,##0.00\\xa0\\xa4\",\r\n nnh: \"\\xa4\\xa0#,##0.00\",\r\n no: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nus: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nyn: \"\\xa4#,##0.00\",\r\n om: \"\\xa4#,##0.00\",\r\n \"om-KE\": \"\\xa4#,##0.00\",\r\n or: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n os: \"\\xa4\\xa0#,##0.00\",\r\n \"os-RU\": \"\\xa4\\xa0#,##0.00\",\r\n pa: \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Guru\": \"\\xa4\\xa0#,##0.00\",\r\n pcm: \"\\xa4#,##0.00\",\r\n pl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ps: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ps-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n pt: \"\\xa4\\xa0#,##0.00\",\r\n \"pt-AO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CV\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-PT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-ST\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-TL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n qu: \"\\xa4\\xa0#,##0.00\",\r\n \"qu-BO\": \"\\xa4\\xa0#,##0.00\",\r\n \"qu-EC\": \"\\xa4\\xa0#,##0.00\",\r\n rm: \"#,##0.00\\xa0\\xa4\",\r\n rn: \"#,##0.00\\xa4\",\r\n ro: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ro-MD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n rof: \"\\xa4#,##0.00\",\r\n ru: \"#,##0.00\\xa0\\xa4\",\r\n \"ru-BY\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KZ\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-MD\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-UA\": \"#,##0.00\\xa0\\xa4\",\r\n rw: \"\\xa4\\xa0#,##0.00\",\r\n rwk: \"#,##0.00\\xa4\",\r\n sa: \"\\xa4\\xa0#,##0.00\",\r\n sah: \"#,##0.00\\xa0\\xa4\",\r\n saq: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sat: \"\\xa4\\xa0#,##0.00\",\r\n \"sat-Olck\": \"\\xa4\\xa0#,##0.00\",\r\n sbp: \"#,##0.00\\xa4\",\r\n sc: \"#,##0.00\\xa0\\xa4\",\r\n sd: \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n se: \"#,##0.00\\xa0\\xa4\",\r\n \"se-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"se-SE\": \"#,##0.00\\xa0\\xa4\",\r\n seh: \"#,##0.00\\xa4\",\r\n ses: \"#,##0.00\\xa4\",\r\n sg: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n shi: \"#,##0.00\\xa4\",\r\n \"shi-Latn\": \"#,##0.00\\xa4\",\r\n \"shi-Tfng\": \"#,##0.00\\xa4\",\r\n si: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sk: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n smn: \"#,##0.00\\xa0\\xa4\",\r\n sn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n so: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-ET\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sq: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-MK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n su: \"\\xa4#,##0.00\",\r\n \"su-Latn\": \"\\xa4#,##0.00\",\r\n sv: \"#,##0.00\\xa0\\xa4\",\r\n \"sv-AX\": \"#,##0.00\\xa0\\xa4\",\r\n \"sv-FI\": \"#,##0.00\\xa0\\xa4\",\r\n sw: \"\\xa4\\xa0#,##0.00\",\r\n \"sw-CD\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-KE\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-UG\": \"\\xa4\\xa0#,##0.00\",\r\n ta: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-LK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n te: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n teo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"teo-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tg: \"#,##0.00\\xa0\\xa4\",\r\n th: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ti: \"\\xa4#,##0.00\",\r\n \"ti-ER\": \"\\xa4#,##0.00\",\r\n tk: \"#,##0.00\\xa0\\xa4\",\r\n to: \"\\xa4\\xa0#,##0.00\",\r\n tr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"tr-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tt: \"#,##0.00\\xa0\\xa4\",\r\n twq: \"#,##0.00\\xa4\",\r\n tzm: \"#,##0.00\\xa0\\xa4\",\r\n ug: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uk: \"#,##0.00\\xa0\\xa4\",\r\n und: \"\\xa4\\xa0#,##0.00\",\r\n ur: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ur-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uz: \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"uz-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n vai: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Latn\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Vaii\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n vi: \"#,##0.00\\xa0\\xa4\",\r\n vun: \"\\xa4#,##0.00\",\r\n wae: \"\\xa4\\xa0#,##0.00\",\r\n wo: \"\\xa4\\xa0#,##0.00\",\r\n xh: \"\\xa4#,##0.00\",\r\n xog: \"#,##0.00\\xa0\\xa4\",\r\n yav: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n yi: \"\\xa4\\xa0#,##0.00\",\r\n yo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yo-BJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n yrl: \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-CO\": \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-VE\": \"\\xa4\\xa0#,##0.00\",\r\n yue: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zgh: \"#,##0.00\\xa4\",\r\n zh: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/number.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxConfig from \"../../core/config\";\r\nimport localizationCoreUtils from \"../core\";\r\nimport openXmlCurrencyFormat from \"../open_xml_currency_format\";\r\nimport accountingFormats from \"../cldr-data/accounting_formats\";\r\nvar detectCurrencySymbolRegex = /([^\\s0]+)?(\\s*)0*[.,]*0*(\\s*)([^\\s0]+)?/;\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.NumberFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\nvar getCurrencyFormatter = currency => new Intl.NumberFormat(localizationCoreUtils.locale(), {\r\n style: \"currency\",\r\n currency: currency\r\n});\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getFormatter(this._normalizeFormatConfig(format, formatConfig, value))(value)\r\n },\r\n _normalizeFormatConfig: function(format, formatConfig, value) {\r\n var config;\r\n if (\"decimal\" === format) {\r\n config = {\r\n minimumIntegerDigits: formatConfig.precision || void 0,\r\n useGrouping: false,\r\n maximumFractionDigits: String(value).length,\r\n round: value < 0 ? \"ceil\" : \"floor\"\r\n }\r\n } else {\r\n config = this._getPrecisionConfig(formatConfig.precision)\r\n }\r\n if (\"percent\" === format) {\r\n config.style = \"percent\"\r\n } else if (\"currency\" === format) {\r\n config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency\r\n }\r\n return config\r\n },\r\n _getPrecisionConfig: function(precision) {\r\n var config;\r\n if (null === precision) {\r\n config = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 20\r\n }\r\n } else {\r\n config = {\r\n minimumFractionDigits: precision || 0,\r\n maximumFractionDigits: precision || 0\r\n }\r\n }\r\n return config\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (\"default\" === _format.currency) {\r\n _format.currency = dxConfig().defaultCurrency\r\n }\r\n if (!_format || \"function\" !== typeof _format && !_format.type && !_format.formatter) {\r\n return getFormatter(_format)(value)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getCurrencySymbolInfo: function(currency) {\r\n var formatter = getCurrencyFormatter(currency);\r\n return this._extractCurrencySymbolInfo(formatter.format(0))\r\n },\r\n _extractCurrencySymbolInfo: function(currencyValueString) {\r\n var match = detectCurrencySymbolRegex.exec(currencyValueString) || [];\r\n var position = match[1] ? \"before\" : \"after\";\r\n var symbol = match[1] || match[4] || \"\";\r\n var delimiter = match[2] || match[3] || \"\";\r\n return {\r\n position: position,\r\n symbol: symbol,\r\n delimiter: delimiter\r\n }\r\n },\r\n getCurrencySymbol: function(currency) {\r\n if (!currency) {\r\n currency = dxConfig().defaultCurrency\r\n }\r\n var symbolInfo = this._getCurrencySymbolInfo(currency);\r\n return {\r\n symbol: symbolInfo.symbol\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function(currency) {\r\n var targetCurrency = currency || dxConfig().defaultCurrency;\r\n var currencySymbol = this._getCurrencySymbolInfo(targetCurrency).symbol;\r\n var closestAccountingFormat = localizationCoreUtils.getValueByClosestLocale(locale => accountingFormats[locale]);\r\n return openXmlCurrencyFormat(currencySymbol, closestAccountingFormat)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/number.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n inArray,\r\n find\r\n} from \"../core/utils/array\";\r\nimport {\r\n escapeRegExp\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormatter\r\n} from \"./ldml/number\";\r\nimport config from \"../core/config\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n toFixed\r\n} from \"./utils\";\r\nimport currencyLocalization from \"./currency\";\r\nimport intlNumberLocalization from \"./intl/number\";\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar MAX_LARGE_NUMBER_POWER = 4;\r\nvar DECIMAL_BASE = 10;\r\nvar NUMERIC_FORMATS = [\"currency\", \"fixedpoint\", \"exponential\", \"percent\", \"decimal\"];\r\nvar LargeNumberFormatPostfixes = {\r\n 1: \"K\",\r\n 2: \"M\",\r\n 3: \"B\",\r\n 4: \"T\"\r\n};\r\nvar LargeNumberFormatPowers = {\r\n largenumber: \"auto\",\r\n thousands: 1,\r\n millions: 2,\r\n billions: 3,\r\n trillions: 4\r\n};\r\nvar numberLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n numericFormats: NUMERIC_FORMATS,\r\n defaultLargeNumberFormatPostfixes: LargeNumberFormatPostfixes,\r\n _parseNumberFormatString: function(formatType) {\r\n var formatObject = {};\r\n if (!formatType || \"string\" !== typeof formatType) {\r\n return\r\n }\r\n var formatList = formatType.toLowerCase().split(\" \");\r\n each(formatList, (index, value) => {\r\n if (inArray(value, NUMERIC_FORMATS) > -1) {\r\n formatObject.formatType = value\r\n } else if (value in LargeNumberFormatPowers) {\r\n formatObject.power = LargeNumberFormatPowers[value]\r\n }\r\n });\r\n if (formatObject.power && !formatObject.formatType) {\r\n formatObject.formatType = \"fixedpoint\"\r\n }\r\n if (formatObject.formatType) {\r\n return formatObject\r\n }\r\n },\r\n _calculateNumberPower: function(value, base, minPower, maxPower) {\r\n var number = Math.abs(value);\r\n var power = 0;\r\n if (number > 1) {\r\n while (number && number >= base && (void 0 === maxPower || power < maxPower)) {\r\n power++;\r\n number /= base\r\n }\r\n } else if (number > 0 && number < 1) {\r\n while (number < 1 && (void 0 === minPower || power > minPower)) {\r\n power--;\r\n number *= base\r\n }\r\n }\r\n return power\r\n },\r\n _getNumberByPower: function(number, power, base) {\r\n var result = number;\r\n while (power > 0) {\r\n result /= base;\r\n power--\r\n }\r\n while (power < 0) {\r\n result *= base;\r\n power++\r\n }\r\n return result\r\n },\r\n _formatNumber: function(value, formatObject, formatConfig) {\r\n if (\"auto\" === formatObject.power) {\r\n formatObject.power = this._calculateNumberPower(value, 1e3, 0, MAX_LARGE_NUMBER_POWER)\r\n }\r\n if (formatObject.power) {\r\n value = this._getNumberByPower(value, formatObject.power, 1e3)\r\n }\r\n var powerPostfix = this.defaultLargeNumberFormatPostfixes[formatObject.power] || \"\";\r\n var result = this._formatNumberCore(value, formatObject.formatType, formatConfig);\r\n result = result.replace(/(\\d|.$)(\\D*)$/, \"$1\" + powerPostfix + \"$2\");\r\n return result\r\n },\r\n _formatNumberExponential: function(value, formatConfig) {\r\n var power = this._calculateNumberPower(value, DECIMAL_BASE);\r\n var number = this._getNumberByPower(value, power, DECIMAL_BASE);\r\n if (void 0 === formatConfig.precision) {\r\n formatConfig.precision = 1\r\n }\r\n if (number.toFixed(formatConfig.precision || 0) >= DECIMAL_BASE) {\r\n power++;\r\n number /= DECIMAL_BASE\r\n }\r\n var powString = (power >= 0 ? \"+\" : \"\") + power.toString();\r\n return this._formatNumberCore(number, \"fixedpoint\", formatConfig) + \"E\" + powString\r\n },\r\n _addZeroes: function(value, precision) {\r\n var multiplier = Math.pow(10, precision);\r\n var sign = value < 0 ? \"-\" : \"\";\r\n value = (Math.abs(value) * multiplier >>> 0) / multiplier;\r\n var result = value.toString();\r\n while (result.length < precision) {\r\n result = \"0\" + result\r\n }\r\n return sign + result\r\n },\r\n _addGroupSeparators: function(value) {\r\n var parts = value.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, config().thousandsSeparator) + (parts[1] ? config().decimalSeparator + parts[1] : \"\")\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this._formatNumberExponential(value, formatConfig)\r\n }\r\n if (\"decimal\" !== format && null !== formatConfig.precision) {\r\n formatConfig.precision = formatConfig.precision || 0\r\n }\r\n if (\"percent\" === format) {\r\n value *= 100\r\n }\r\n if (void 0 !== formatConfig.precision) {\r\n if (\"decimal\" === format) {\r\n value = this._addZeroes(value, formatConfig.precision)\r\n } else {\r\n value = null === formatConfig.precision ? value.toPrecision() : toFixed(value, formatConfig.precision)\r\n }\r\n }\r\n if (\"decimal\" !== format) {\r\n value = this._addGroupSeparators(value)\r\n } else {\r\n value = value.toString().replace(\".\", config().decimalSeparator)\r\n }\r\n if (\"percent\" === format) {\r\n value += \"%\"\r\n }\r\n return value\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!format) {\r\n return {}\r\n }\r\n if (\"function\" === typeof format) {\r\n return format\r\n }\r\n if (!isPlainObject(format)) {\r\n format = {\r\n type: format\r\n }\r\n }\r\n return format\r\n },\r\n _getSeparators: function() {\r\n return {\r\n decimalSeparator: this.getDecimalSeparator(),\r\n thousandsSeparator: this.getThousandsSeparator()\r\n }\r\n },\r\n getThousandsSeparator: function() {\r\n return this.format(1e4, \"fixedPoint\")[2]\r\n },\r\n getDecimalSeparator: function() {\r\n return this.format(1.2, {\r\n type: \"fixedPoint\",\r\n precision: 1\r\n })[1]\r\n },\r\n convertDigits: function(value, toStandard) {\r\n var digits = this.format(90, \"decimal\");\r\n if (\"string\" !== typeof value || \"0\" === digits[1]) {\r\n return value\r\n }\r\n var fromFirstDigit = toStandard ? digits[1] : \"0\";\r\n var toFirstDigit = toStandard ? \"0\" : digits[1];\r\n var fromLastDigit = toStandard ? digits[0] : \"9\";\r\n var regExp = new RegExp(\"[\" + fromFirstDigit + \"-\" + fromLastDigit + \"]\", \"g\");\r\n return value.replace(regExp, char => String.fromCharCode(char.charCodeAt(0) + (toFirstDigit.charCodeAt(0) - fromFirstDigit.charCodeAt(0))))\r\n },\r\n getNegativeEtalonRegExp: function(format) {\r\n var separators = this._getSeparators();\r\n var digitalRegExp = new RegExp(\"[0-9\" + escapeRegExp(separators.decimalSeparator + separators.thousandsSeparator) + \"]+\", \"g\");\r\n var negativeEtalon = this.format(-1, format).replace(digitalRegExp, \"1\");\r\n [\"\\\\\", \"(\", \")\", \"[\", \"]\", \"*\", \"+\", \"$\", \"^\", \"?\", \"|\", \"{\", \"}\"].forEach(char => {\r\n negativeEtalon = negativeEtalon.replaceAll(char, \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replaceAll(\" \", \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replaceAll(\"1\", \".+\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (!format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n return 1\r\n }\r\n var negativeEtalon = this.getNegativeEtalonRegExp(format);\r\n return text.match(negativeEtalon) ? -1 : 1\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n if (\"number\" === typeof _format) {\r\n return value\r\n }\r\n _format = _format && _format.formatter || _format;\r\n if (\"function\" === typeof _format) {\r\n return _format(value)\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (!_format.type) {\r\n _format.type = \"decimal\"\r\n }\r\n var numberConfig = this._parseNumberFormatString(_format.type);\r\n if (!numberConfig) {\r\n var formatterConfig = this._getSeparators();\r\n formatterConfig.unlimitedIntegerDigits = _format.unlimitedIntegerDigits;\r\n return this.convertDigits(getFormatter(_format.type, formatterConfig)(value))\r\n }\r\n return this._formatNumber(value, numberConfig, _format)\r\n },\r\n parse: function(text, format) {\r\n if (!text) {\r\n return\r\n }\r\n if (format && format.parser) {\r\n return format.parser(text)\r\n }\r\n text = this.convertDigits(text, true);\r\n if (format && \"string\" !== typeof format) {\r\n errors.log(\"W0011\")\r\n }\r\n var decimalSeparator = this.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var cleanedText = text.replace(regExp, \"\").replace(decimalSeparator, \".\").replace(/\\.$/g, \"\");\r\n if (\".\" === cleanedText || \"\" === cleanedText) {\r\n return null\r\n }\r\n if (this._calcSignificantDigits(cleanedText) > 15) {\r\n return NaN\r\n }\r\n var parsed = +cleanedText * this.getSign(text, format);\r\n format = this._normalizeFormat(format);\r\n var formatConfig = this._parseNumberFormatString(format.type);\r\n var power = null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.power;\r\n if (power) {\r\n if (\"auto\" === power) {\r\n var match = text.match(/\\d(K|M|B|T)/);\r\n if (match) {\r\n power = find(Object.keys(LargeNumberFormatPostfixes), power => LargeNumberFormatPostfixes[power] === match[1])\r\n }\r\n }\r\n parsed *= Math.pow(10, 3 * power)\r\n }\r\n if (\"percent\" === (null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.formatType)) {\r\n parsed /= 100\r\n }\r\n return parsed\r\n },\r\n _calcSignificantDigits: function(text) {\r\n var [integer, fractional] = text.split(\".\");\r\n var calcDigitsAfterLeadingZeros = digits => {\r\n var index = -1;\r\n for (var i = 0; i < digits.length; i++) {\r\n if (\"0\" !== digits[i]) {\r\n index = i;\r\n break\r\n }\r\n }\r\n return index > -1 ? digits.length - index : 0\r\n };\r\n var result = 0;\r\n if (integer) {\r\n result += calcDigitsAfterLeadingZeros(integer.split(\"\"))\r\n }\r\n if (fractional) {\r\n result += calcDigitsAfterLeadingZeros(fractional.split(\"\").reverse())\r\n }\r\n return result\r\n }\r\n});\r\nnumberLocalization.inject(currencyLocalization);\r\nif (hasIntl) {\r\n numberLocalization.inject(intlNumberLocalization)\r\n}\r\nexport default numberLocalization;\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created because of an internal error: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" must be earlier than the \"endDayHour\"',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1015: 'The \"cellDuration\" should divide the range from the \"startDayHour\" to the \"endDayHour\" into even intervals',\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\"\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/axes/axes_constants.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map as _map\r\n} from \"../core/utils\";\r\nexport default {\r\n logarithmic: \"logarithmic\",\r\n discrete: \"discrete\",\r\n numeric: \"numeric\",\r\n left: \"left\",\r\n right: \"right\",\r\n top: \"top\",\r\n bottom: \"bottom\",\r\n center: \"center\",\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\",\r\n convertTicksToValues: function(ticks) {\r\n return _map(ticks || [], (function(item) {\r\n return item.value\r\n }))\r\n },\r\n validateOverlappingMode: function(mode) {\r\n return \"ignore\" === mode || \"none\" === mode ? mode : \"hide\"\r\n },\r\n getTicksCountInRange: function(ticks, valueKey, range) {\r\n var i = 1;\r\n if (ticks.length > 1) {\r\n for (; i < ticks.length; i++) {\r\n if (Math.abs(ticks[i].coords[valueKey] - ticks[0].coords[valueKey]) >= range) {\r\n break\r\n }\r\n }\r\n }\r\n return i\r\n },\r\n areLabelsOverlap: function(bBox1, bBox2, spacing, alignment) {\r\n var horizontalInverted = bBox1.x > bBox2.x;\r\n var verticalInverted = bBox1.y > bBox2.y;\r\n var x1 = bBox1.x;\r\n var x2 = bBox2.x;\r\n var width1 = bBox1.width;\r\n var width2 = bBox2.width;\r\n if (\"left\" === alignment) {\r\n x1 += width1 / 2;\r\n x2 += width2 / 2\r\n } else if (\"right\" === alignment) {\r\n x1 -= width1 / 2;\r\n x2 -= width2 / 2\r\n }\r\n var hasHorizontalOverlapping = horizontalInverted ? x2 + width2 + spacing > x1 : x1 + width1 + spacing > x2;\r\n var hasVerticalOverlapping = verticalInverted ? bBox2.y + bBox2.height > bBox1.y : bBox1.y + bBox1.height > bBox2.y;\r\n return hasHorizontalOverlapping && hasVerticalOverlapping\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/tick.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction getPathStyle(options) {\r\n return {\r\n stroke: options.color,\r\n \"stroke-width\": options.width,\r\n \"stroke-opacity\": options.opacity,\r\n opacity: 1\r\n }\r\n}\r\n\r\nfunction createTick(axis, renderer, tickOptions, gridOptions, skippedCategory, skipLabels, offset) {\r\n var tickOffset = offset || axis._tickOffset;\r\n var lineGroup = axis._axisLineGroup;\r\n var elementsGroup = axis._axisElementsGroup;\r\n var tickStyle = getPathStyle(tickOptions);\r\n var gridStyle = getPathStyle(gridOptions);\r\n var emptyStrRegExp = /^\\s+$/;\r\n var axisOptions = axis.getOptions();\r\n var labelOptions = axisOptions.label;\r\n var labelStyle = axis._textOptions;\r\n\r\n function getLabelFontStyle(tick) {\r\n var fontStyle = axis._textFontStyles;\r\n var customizeColor = labelOptions.customizeColor;\r\n if (customizeColor && customizeColor.call) {\r\n fontStyle = extend({}, axis._textFontStyles, {\r\n fill: customizeColor.call(tick, tick)\r\n })\r\n }\r\n return fontStyle\r\n }\r\n\r\n function createLabelHint(tick, range) {\r\n var labelHint = axis.formatHint(tick.value, labelOptions, range);\r\n if (isDefined(labelHint) && \"\" !== labelHint) {\r\n tick.getContentContainer().setTitle(labelHint)\r\n }\r\n }\r\n return function(value) {\r\n var tick = {\r\n value: value,\r\n updateValue(newValue) {\r\n this.value = value = newValue\r\n },\r\n initCoords: function() {\r\n this.coords = axis._getTranslatedValue(value, tickOffset);\r\n this.labelCoords = axis._getTranslatedValue(value)\r\n },\r\n saveCoords() {\r\n this._lastStoredCoordinates = {\r\n coords: this._storedCoords,\r\n labelCoords: this._storedLabelsCoords\r\n };\r\n this._storedCoords = this.coords;\r\n this._storedLabelsCoords = this.templateContainer ? this._getTemplateCoords() : this.labelCoords\r\n },\r\n resetCoordinates() {\r\n if (this._lastStoredCoordinates) {\r\n this._storedCoords = this._lastStoredCoordinates.coords;\r\n this._storedLabelsCoords = this._lastStoredCoordinates.labelCoords\r\n }\r\n },\r\n drawMark(options) {\r\n if (!tickOptions.visible || skippedCategory === value) {\r\n return\r\n }\r\n if (axis.areCoordsOutsideAxis(this.coords)) {\r\n return\r\n }\r\n if (this.mark) {\r\n this.mark.append(lineGroup);\r\n axis.sharp(this.mark, axis.getSharpDirectionByCoords(this.coords));\r\n this.updateTickPosition(options)\r\n } else {\r\n this.mark = axis._createPathElement([], tickStyle, axis.getSharpDirectionByCoords(this.coords)).append(lineGroup);\r\n this.updateTickPosition(options)\r\n }\r\n },\r\n setSkippedCategory(category) {\r\n skippedCategory = category\r\n },\r\n _updateLine(lineElement, settings, storedSettings, animate, isGridLine) {\r\n if (!lineElement) {\r\n return\r\n }\r\n if (null === settings.points || null === settings.r) {\r\n lineElement.remove();\r\n return\r\n }\r\n if (animate && storedSettings && null !== storedSettings.points) {\r\n settings.opacity = 1;\r\n lineElement.attr(storedSettings);\r\n lineElement.animate(settings)\r\n } else {\r\n settings.opacity = animate ? 0 : 1;\r\n lineElement.attr(settings);\r\n animate && lineElement.animate({\r\n opacity: 1\r\n }, {\r\n delay: .5,\r\n partitionDuration: .5\r\n })\r\n }\r\n this.coords.angle && axis._rotateTick(lineElement, this.coords, isGridLine)\r\n },\r\n updateTickPosition: function(options, animate) {\r\n this._updateLine(this.mark, {\r\n points: axis._getTickMarkPoints(tick.coords, tickOptions.length, options)\r\n }, this._storedCoords && {\r\n points: axis._getTickMarkPoints(tick._storedCoords, tickOptions.length, options)\r\n }, animate, false)\r\n },\r\n drawLabel: function(range, template) {\r\n if (this.templateContainer && axis.isRendered()) {\r\n this.updateLabelPosition();\r\n return\r\n }\r\n var labelIsVisible = labelOptions.visible && !skipLabels && !axis.getTranslator().getBusinessRange().isEmpty() && !axis.areCoordsOutsideAxis(this.labelCoords);\r\n if (!labelIsVisible) {\r\n if (this.label) {\r\n this.removeLabel()\r\n }\r\n return\r\n }\r\n var templateOption = labelOptions.template;\r\n var text = axis.formatLabel(value, labelOptions, range);\r\n if (this.label) {\r\n this.label.attr({\r\n text: text,\r\n rotate: 0\r\n }).append(elementsGroup);\r\n createLabelHint(this, range);\r\n this.updateLabelPosition();\r\n return\r\n }\r\n if (templateOption) {\r\n this.templateContainer = renderer.g().append(elementsGroup);\r\n this._templateDef && this._templateDef.reject();\r\n this._templateDef = new Deferred;\r\n template.render({\r\n model: {\r\n valueText: text,\r\n value: this.value,\r\n labelFontStyle: getLabelFontStyle(this),\r\n labelStyle: labelStyle\r\n },\r\n container: this.templateContainer.element,\r\n onRendered: () => {\r\n this.updateLabelPosition();\r\n this._templateDef && this._templateDef.resolve()\r\n }\r\n })\r\n } else if (isDefined(text) && \"\" !== text && !emptyStrRegExp.test(text)) {\r\n this.label = renderer.text(text).css(getLabelFontStyle(this)).attr(labelStyle).append(elementsGroup);\r\n this.updateLabelPosition();\r\n createLabelHint(this, range)\r\n }\r\n var containerForData = this.getContentContainer();\r\n containerForData && containerForData.data(\"chart-data-argument\", this.value);\r\n this.templateContainer && createLabelHint(this, range)\r\n },\r\n getTemplateDeferred() {\r\n return this._templateDef\r\n },\r\n getContentContainer() {\r\n return this.templateContainer || this.label\r\n },\r\n fadeOutElements() {\r\n var startSettings = {\r\n opacity: 1\r\n };\r\n var endSettings = {\r\n opacity: 0\r\n };\r\n var animationSettings = {\r\n partitionDuration: .5\r\n };\r\n if (this.getContentContainer()) {\r\n this._fadeOutLabel()\r\n }\r\n if (this.grid) {\r\n this.grid.append(axis._axisGridGroup).attr(startSettings).animate(endSettings, animationSettings)\r\n }\r\n if (this.mark) {\r\n this.mark.append(axis._axisLineGroup).attr(startSettings).animate(endSettings, animationSettings)\r\n }\r\n },\r\n _fadeInLabel() {\r\n var group = axis._renderer.g().attr({\r\n opacity: 0\r\n }).append(axis._axisElementsGroup).animate({\r\n opacity: 1\r\n }, {\r\n delay: .5,\r\n partitionDuration: .5\r\n });\r\n this.getContentContainer().append(group)\r\n },\r\n _fadeOutLabel() {\r\n var group = axis._renderer.g().attr({\r\n opacity: 1\r\n }).animate({\r\n opacity: 0\r\n }, {\r\n partitionDuration: .5\r\n }).append(axis._axisElementsGroup).toBackground();\r\n this.getContentContainer().append(group)\r\n },\r\n _getTemplateCoords() {\r\n return axis._getLabelAdjustedCoord(this, (axis._constantLabelOffset || 0) + (tick.labelOffset || 0))\r\n },\r\n updateLabelPosition: function(animate) {\r\n var templateContainer = this.templateContainer;\r\n if (!this.getContentContainer()) {\r\n return\r\n }\r\n if (animate && this._storedLabelsCoords) {\r\n if (templateContainer) {\r\n templateContainer.attr(this._storedLabelsCoords);\r\n var lCoords = this._getTemplateCoords();\r\n templateContainer.animate(lCoords)\r\n } else {\r\n this.label.attr({\r\n x: this._storedLabelsCoords.x,\r\n y: this._storedLabelsCoords.y\r\n });\r\n this.label.animate({\r\n x: this.labelCoords.x,\r\n y: this.labelCoords.y\r\n })\r\n }\r\n } else {\r\n if (templateContainer) {\r\n var _lCoords = this._getTemplateCoords();\r\n templateContainer.attr(_lCoords)\r\n } else {\r\n this.label.attr({\r\n x: this.labelCoords.x,\r\n y: this.labelCoords.y\r\n })\r\n }\r\n if (animate) {\r\n this._fadeInLabel()\r\n }\r\n }\r\n },\r\n updateMultilineTextAlignment() {\r\n if (labelOptions.template || !this.label) {\r\n return\r\n }\r\n this.label.attr({\r\n textsAlignment: this.labelAlignment || axis.getOptions().label.alignment\r\n })\r\n },\r\n drawGrid: function(drawLine) {\r\n if (gridOptions.visible && skippedCategory !== this.value) {\r\n if (this.grid) {\r\n this.grid.append(axis._axisGridGroup);\r\n axis.sharp(this.grid, axis.getSharpDirectionByCoords(this.coords));\r\n this.updateGridPosition()\r\n } else {\r\n this.grid = drawLine(this, gridStyle);\r\n this.grid && this.grid.append(axis._axisGridGroup)\r\n }\r\n }\r\n },\r\n updateGridPosition: function(animate) {\r\n this._updateLine(this.grid, axis._getGridPoints(tick.coords), this._storedCoords && axis._getGridPoints(this._storedCoords), animate, true)\r\n },\r\n removeLabel() {\r\n var contentContainer = this.getContentContainer();\r\n contentContainer && contentContainer.remove();\r\n this._templateDef && this._templateDef.reject();\r\n this._templateDef = this.templateContainer = this.label = null\r\n }\r\n };\r\n return tick\r\n }\r\n}\r\nexport {\r\n createTick as tick\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/datetime_breaks.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar days = [0, 1, 2, 3, 4, 5, 6];\r\n\r\nfunction getWeekendDays(workdays) {\r\n return days.filter((function(day) {\r\n return !workdays.some((function(workDay) {\r\n return workDay === day\r\n }))\r\n }))\r\n}\r\n\r\nfunction getNextDayIndex(dayIndex) {\r\n return (dayIndex + 1) % 7\r\n}\r\n\r\nfunction dayBetweenWeekend(weekend, day) {\r\n var start = weekend.start;\r\n var end = weekend.end;\r\n while (start !== end) {\r\n if (start === day) {\r\n return true\r\n }\r\n start = getNextDayIndex(start)\r\n }\r\n return false\r\n}\r\n\r\nfunction getDaysDistance(day, end) {\r\n var length = 0;\r\n while (day !== end) {\r\n day = getNextDayIndex(day);\r\n length++\r\n }\r\n return length\r\n}\r\n\r\nfunction separateBreak(scaleBreak, day) {\r\n var result = [];\r\n var dayEnd = new Date(day);\r\n dayEnd.setDate(day.getDate() + 1);\r\n if (day > scaleBreak.from) {\r\n result.push({\r\n from: scaleBreak.from,\r\n to: day\r\n })\r\n }\r\n if (dayEnd < scaleBreak.to) {\r\n result.push({\r\n from: dayEnd,\r\n to: scaleBreak.to\r\n })\r\n }\r\n return result\r\n}\r\n\r\nfunction getWeekEndDayIndices(workDays) {\r\n var indices = getWeekendDays(workDays);\r\n if (indices.length < 7) {\r\n while (getNextDayIndex(indices[indices.length - 1]) === indices[0]) {\r\n indices.unshift(indices.pop())\r\n }\r\n }\r\n return indices\r\n}\r\n\r\nfunction generateDateBreaksForWeekend(min, max, weekendDayIndices) {\r\n var day = min.getDate();\r\n var breaks = [];\r\n var weekends = weekendDayIndices.reduce((function(obj, day) {\r\n var currentWeekEnd = obj[1];\r\n if (void 0 === currentWeekEnd.start) {\r\n currentWeekEnd = {\r\n start: day,\r\n end: getNextDayIndex(day)\r\n };\r\n obj[0].push(currentWeekEnd);\r\n return [obj[0], currentWeekEnd]\r\n } else if (currentWeekEnd.end === day) {\r\n currentWeekEnd.end = getNextDayIndex(day);\r\n return obj\r\n }\r\n currentWeekEnd = {\r\n start: day,\r\n end: getNextDayIndex(day)\r\n };\r\n obj[0].push(currentWeekEnd);\r\n return [obj[0], currentWeekEnd]\r\n }), [\r\n [], {}\r\n ]);\r\n weekends[0].forEach((function(weekend) {\r\n var currentDate = new Date(min);\r\n currentDate = dateUtils.trimTime(currentDate);\r\n while (currentDate < max) {\r\n day = currentDate.getDay();\r\n var date = currentDate.getDate();\r\n if (dayBetweenWeekend(weekend, day)) {\r\n var from = new Date(currentDate);\r\n currentDate.setDate(date + getDaysDistance(day, weekend.end));\r\n var to = new Date(currentDate);\r\n breaks.push({\r\n from: from,\r\n to: to\r\n })\r\n }\r\n currentDate.setDate(currentDate.getDate() + 1)\r\n }\r\n }));\r\n return breaks\r\n}\r\n\r\nfunction excludeWorkDaysFromWeekEndBreaks(breaks, exactWorkDays) {\r\n var result = breaks.slice();\r\n var i;\r\n var processWorkDay = function(workday) {\r\n workday = dateUtils.trimTime(new Date(workday));\r\n if (result[i].from <= workday && result[i].to > workday) {\r\n var separatedBreak = separateBreak(result[i], workday);\r\n if (2 === separatedBreak.length) {\r\n result.splice(i, 1, separatedBreak[0], separatedBreak[1])\r\n } else if (1 === separatedBreak.length) {\r\n result.splice(i, 1, separatedBreak[0])\r\n } else {\r\n result.splice(i, 1)\r\n }\r\n }\r\n };\r\n for (i = 0; i < result.length; i++) {\r\n exactWorkDays.forEach(processWorkDay)\r\n }\r\n return result\r\n}\r\n\r\nfunction generateBreaksForHolidays(min, max, holidays, weekendDayIndices) {\r\n var day;\r\n var dayInWeekend = function(dayIndex) {\r\n return dayIndex === day\r\n };\r\n var adjustedMin = dateUtils.trimTime(min);\r\n var adjustedMax = dateUtils.trimTime(max);\r\n adjustedMax.setDate(max.getDate() + 1);\r\n return holidays.reduce((function(breaks, holiday) {\r\n var holidayStart;\r\n var holidayEnd;\r\n holiday = new Date(holiday);\r\n day = holiday.getDay();\r\n if (!weekendDayIndices.some(dayInWeekend) && holiday >= adjustedMin && holiday <= adjustedMax) {\r\n holidayStart = dateUtils.trimTime(holiday);\r\n holidayEnd = new Date(holidayStart);\r\n holidayEnd.setDate(holidayStart.getDate() + 1);\r\n breaks.push({\r\n from: holidayStart,\r\n to: holidayEnd\r\n })\r\n }\r\n return breaks\r\n }), [])\r\n}\r\n\r\nfunction calculateGaps(breaks) {\r\n return breaks.map((function(b) {\r\n return {\r\n from: b.from,\r\n to: b.to,\r\n gapSize: dateUtils.convertMillisecondsToDateUnits(b.to - b.from)\r\n }\r\n }))\r\n}\r\nexport function generateDateBreaks(min, max, workWeek, singleWorkdays, holidays) {\r\n var weekendDayIndices = getWeekEndDayIndices(workWeek);\r\n var breaks = generateDateBreaksForWeekend(min, max, weekendDayIndices);\r\n breaks.push.apply(breaks, generateBreaksForHolidays(min, max, holidays || [], weekendDayIndices));\r\n return calculateGaps(excludeWorkDaysFromWeekEndBreaks(breaks, singleWorkdays || []))\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/xy_axes.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n generateDateBreaks\r\n} from \"./datetime_breaks\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getLog,\r\n patchFontOptions,\r\n getCosAndSin\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport constants from \"./axes_constants\";\r\nvar getNextDateUnit = dateUtils.getNextDateUnit;\r\nvar correctDateWithUnitBeginning = dateUtils.correctDateWithUnitBeginning;\r\nvar _math = Math;\r\nvar _max = _math.max;\r\nvar TOP = constants.top;\r\nvar BOTTOM = constants.bottom;\r\nvar LEFT = constants.left;\r\nvar RIGHT = constants.right;\r\nvar CENTER = constants.center;\r\nvar SCALE_BREAK_OFFSET = 3;\r\nvar RANGE_RATIO = .3;\r\nvar WAVED_LINE_CENTER = 2;\r\nvar WAVED_LINE_TOP = 0;\r\nvar WAVED_LINE_BOTTOM = 4;\r\nvar WAVED_LINE_LENGTH = 24;\r\nvar TICKS_CORRECTIONS = {\r\n left: -1,\r\n top: -1,\r\n right: 0,\r\n bottom: 0,\r\n center: -.5\r\n};\r\n\r\nfunction prepareDatesDifferences(datesDifferences, tickInterval) {\r\n var dateUnitInterval;\r\n var i;\r\n if (\"week\" === tickInterval) {\r\n tickInterval = \"day\"\r\n }\r\n if (\"quarter\" === tickInterval) {\r\n tickInterval = \"month\"\r\n }\r\n if (datesDifferences[tickInterval]) {\r\n for (i = 0; i < dateUtils.dateUnitIntervals.length; i++) {\r\n dateUnitInterval = dateUtils.dateUnitIntervals[i];\r\n if (datesDifferences[dateUnitInterval]) {\r\n datesDifferences[dateUnitInterval] = false;\r\n datesDifferences.count--\r\n }\r\n if (dateUnitInterval === tickInterval) {\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction sortingBreaks(breaks) {\r\n return breaks.sort((function(a, b) {\r\n return a.from - b.from\r\n }))\r\n}\r\n\r\nfunction getMarkerDates(min, max, markerInterval) {\r\n var origMin = min;\r\n var dates;\r\n min = correctDateWithUnitBeginning(min, markerInterval);\r\n max = correctDateWithUnitBeginning(max, markerInterval);\r\n dates = dateUtils.getSequenceByInterval(min, max, markerInterval);\r\n if (dates.length && origMin > dates[0]) {\r\n dates = dates.slice(1)\r\n }\r\n return dates\r\n}\r\n\r\nfunction getStripHorizontalAlignmentPosition(alignment) {\r\n var position = \"start\";\r\n if (\"center\" === alignment) {\r\n position = \"center\"\r\n }\r\n if (\"right\" === alignment) {\r\n position = \"end\"\r\n }\r\n return position\r\n}\r\n\r\nfunction getStripVerticalAlignmentPosition(alignment) {\r\n var position = \"start\";\r\n if (\"center\" === alignment) {\r\n position = \"center\"\r\n }\r\n if (\"bottom\" === alignment) {\r\n position = \"end\"\r\n }\r\n return position\r\n}\r\n\r\nfunction getMarkerInterval(tickInterval) {\r\n var markerInterval = getNextDateUnit(tickInterval);\r\n if (\"quarter\" === markerInterval) {\r\n markerInterval = getNextDateUnit(markerInterval)\r\n }\r\n return markerInterval\r\n}\r\n\r\nfunction getMarkerFormat(curDate, prevDate, tickInterval, markerInterval) {\r\n var format = markerInterval;\r\n var datesDifferences = prevDate && dateUtils.getDatesDifferences(prevDate, curDate);\r\n if (prevDate && \"year\" !== tickInterval) {\r\n prepareDatesDifferences(datesDifferences, tickInterval);\r\n format = formatHelper.getDateFormatByDifferences(datesDifferences)\r\n }\r\n return format\r\n}\r\n\r\nfunction getMaxSide(act, boxes) {\r\n return boxes.reduce((function(prevValue, box) {\r\n return _max(prevValue, act(box))\r\n }), 0)\r\n}\r\n\r\nfunction getDistanceByAngle(bBox, rotationAngle) {\r\n rotationAngle = _math.abs(rotationAngle);\r\n rotationAngle = rotationAngle % 180 >= 90 ? 90 - rotationAngle % 90 : rotationAngle % 90;\r\n var a = rotationAngle * (_math.PI / 180);\r\n if (a >= _math.atan(bBox.height / bBox.width)) {\r\n return bBox.height / _math.abs(_math.sin(a))\r\n } else {\r\n return bBox.width\r\n }\r\n}\r\n\r\nfunction getMaxConstantLinePadding(constantLines) {\r\n return constantLines.reduce((function(padding, options) {\r\n return _max(padding, options.paddingTopBottom)\r\n }), 0)\r\n}\r\n\r\nfunction getConstantLineLabelMarginForVerticalAlignment(constantLines, alignment, labelHeight) {\r\n return constantLines.some((function(options) {\r\n return options.label.verticalAlignment === alignment\r\n })) && labelHeight || 0\r\n}\r\n\r\nfunction getLeftMargin(bBox) {\r\n return _math.abs(bBox.x) || 0\r\n}\r\n\r\nfunction getRightMargin(bBox) {\r\n return _math.abs(bBox.width - _math.abs(bBox.x)) || 0\r\n}\r\n\r\nfunction generateRangesOnPoints(points, edgePoints, getRange) {\r\n var i;\r\n var length;\r\n var maxRange = null;\r\n var ranges = [];\r\n var curValue;\r\n var prevValue;\r\n var curRange;\r\n for (i = 1, length = points.length; i < length; i++) {\r\n curValue = points[i];\r\n prevValue = points[i - 1];\r\n curRange = getRange(curValue, prevValue);\r\n if (edgePoints.indexOf(curValue) >= 0) {\r\n if (!maxRange || curRange > maxRange.length) {\r\n maxRange = {\r\n start: curValue,\r\n end: prevValue,\r\n length: curRange\r\n }\r\n }\r\n } else {\r\n if (maxRange && curRange < maxRange.length) {\r\n ranges.push(maxRange)\r\n } else {\r\n ranges.push({\r\n start: curValue,\r\n end: prevValue,\r\n length: curRange\r\n })\r\n }\r\n maxRange = null\r\n }\r\n }\r\n if (maxRange) {\r\n ranges.push(maxRange)\r\n }\r\n return ranges\r\n}\r\n\r\nfunction generateAutoBreaks(_ref, series, _ref2) {\r\n var {\r\n logarithmBase: logarithmBase,\r\n type: type,\r\n maxAutoBreakCount: maxAutoBreakCount\r\n } = _ref;\r\n var {\r\n minVisible: minVisible,\r\n maxVisible: maxVisible\r\n } = _ref2;\r\n var breaks = [];\r\n var getRange = \"logarithmic\" === type ? (min, max) => getLog(max / min, logarithmBase) : (min, max) => max - min;\r\n var visibleRange = getRange(minVisible, maxVisible);\r\n var points = series.reduce((result, s) => {\r\n var points = s.getPointsInViewPort();\r\n result[0] = result[0].concat(points[0]);\r\n result[1] = result[1].concat(points[1]);\r\n return result\r\n }, [\r\n [],\r\n []\r\n ]);\r\n var sortedAllPoints = points[0].concat(points[1]).sort((a, b) => b - a);\r\n var edgePoints = points[1].filter(p => points[0].indexOf(p) < 0);\r\n var minDiff = RANGE_RATIO * visibleRange;\r\n var ranges = generateRangesOnPoints(sortedAllPoints, edgePoints, getRange).sort((a, b) => b.length - a.length);\r\n var epsilon = _math.min.apply(null, ranges.map(r => r.length)) / 1e3;\r\n var _maxAutoBreakCount = isDefined(maxAutoBreakCount) ? _math.min(maxAutoBreakCount, ranges.length) : ranges.length;\r\n for (var i = 0; i < _maxAutoBreakCount; i++) {\r\n if (ranges[i].length >= minDiff) {\r\n if (visibleRange <= ranges[i].length) {\r\n break\r\n }\r\n visibleRange -= ranges[i].length;\r\n if (visibleRange > epsilon || visibleRange < -epsilon) {\r\n breaks.push({\r\n from: ranges[i].start,\r\n to: ranges[i].end\r\n });\r\n minDiff = RANGE_RATIO * visibleRange\r\n }\r\n } else {\r\n break\r\n }\r\n }\r\n sortingBreaks(breaks);\r\n return breaks\r\n}\r\nexport default {\r\n linear: {\r\n _getStep: function(boxes, rotationAngle) {\r\n var spacing = this._options.label.minSpacing;\r\n var func = this._isHorizontal ? function(box) {\r\n return box.width + spacing\r\n } : function(box) {\r\n return box.height\r\n };\r\n var maxLabelLength = getMaxSide(func, boxes);\r\n if (rotationAngle) {\r\n maxLabelLength = getDistanceByAngle({\r\n width: maxLabelLength,\r\n height: this._getMaxLabelHeight(boxes, 0)\r\n }, rotationAngle)\r\n }\r\n return constants.getTicksCountInRange(this._majorTicks, this._isHorizontal ? \"x\" : \"y\", maxLabelLength)\r\n },\r\n _getMaxLabelHeight: function(boxes, spacing) {\r\n return getMaxSide((function(box) {\r\n return box.height\r\n }), boxes) + spacing\r\n },\r\n _validateOverlappingMode: function(mode, displayMode) {\r\n if (this._isHorizontal && (\"rotate\" === displayMode || \"stagger\" === displayMode) || !this._isHorizontal) {\r\n return constants.validateOverlappingMode(mode)\r\n }\r\n return mode\r\n },\r\n _validateDisplayMode: function(mode) {\r\n return this._isHorizontal ? mode : \"standard\"\r\n },\r\n getMarkerTrackers: function() {\r\n return this._markerTrackers\r\n },\r\n _getSharpParam: function(opposite) {\r\n return this._isHorizontal ^ opposite ? \"h\" : \"v\"\r\n },\r\n _createAxisElement: function() {\r\n return this._renderer.path([], \"line\")\r\n },\r\n _updateAxisElementPosition: function() {\r\n var axisCoord = this._axisPosition;\r\n var canvas = this._getCanvasStartEnd();\r\n this._axisElement.attr({\r\n points: this._isHorizontal ? [canvas.start, axisCoord, canvas.end, axisCoord] : [axisCoord, canvas.start, axisCoord, canvas.end]\r\n })\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset)\r\n },\r\n _initAxisPositions() {\r\n if (this.customPositionIsAvailable()) {\r\n this._customBoundaryPosition = this.getCustomBoundaryPosition()\r\n }\r\n if (!this.customPositionIsAvailable() || this.customPositionIsBoundary()) {\r\n this._axisPosition = this.getPredefinedPosition(this.getResolvedBoundaryPosition())\r\n } else {\r\n this._axisPosition = this.getCustomPosition()\r\n }\r\n },\r\n _getTickMarkPoints(coords, length, tickOptions) {\r\n var isHorizontal = this._isHorizontal;\r\n var tickOrientation = this._options.tickOrientation;\r\n var labelPosition = this._options.label.position;\r\n var tickStartCoord;\r\n if (isDefined(tickOrientation)) {\r\n tickStartCoord = TICKS_CORRECTIONS[tickOrientation] * length\r\n } else {\r\n var shift = tickOptions.shift || 0;\r\n if (!isHorizontal && labelPosition === LEFT || isHorizontal && labelPosition !== BOTTOM) {\r\n shift = -shift\r\n }\r\n tickStartCoord = shift + this.getTickStartPositionShift(length)\r\n }\r\n return [coords.x + (isHorizontal ? 0 : tickStartCoord), coords.y + (isHorizontal ? tickStartCoord : 0), coords.x + (isHorizontal ? 0 : tickStartCoord + length), coords.y + (isHorizontal ? tickStartCoord + length : 0)]\r\n },\r\n getTickStartPositionShift(length) {\r\n var width = this._options.width;\r\n var position = this.getResolvedBoundaryPosition();\r\n return length % 2 === 1 ? width % 2 === 0 && (position === LEFT || position === TOP) || width % 2 === 1 && (position === RIGHT || position === BOTTOM) && !this.hasNonBoundaryPosition() ? Math.floor(-length / 2) : -Math.floor(length / 2) : -length / 2 + (width % 2 === 0 ? 0 : position === BOTTOM || position === RIGHT ? -1 : 1)\r\n },\r\n _getTitleCoords: function() {\r\n var horizontal = this._isHorizontal;\r\n var x = this._axisPosition;\r\n var y = this._axisPosition;\r\n var align = this._options.title.alignment;\r\n var canvas = this._getCanvasStartEnd();\r\n var fromStartToEnd = horizontal || this._options.position === LEFT;\r\n var canvasStart = fromStartToEnd ? canvas.start : canvas.end;\r\n var canvasEnd = fromStartToEnd ? canvas.end : canvas.start;\r\n var coord = align === LEFT ? canvasStart : align === RIGHT ? canvasEnd : canvas.start + (canvas.end - canvas.start) / 2;\r\n if (horizontal) {\r\n x = coord\r\n } else {\r\n y = coord\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _drawTitleText: function(group, coords) {\r\n var options = this._options;\r\n var titleOptions = options.title;\r\n var attrs = {\r\n opacity: titleOptions.opacity,\r\n align: titleOptions.alignment,\r\n class: titleOptions.cssClass\r\n };\r\n if (!titleOptions.text || !group) {\r\n return\r\n }\r\n coords = coords || this._getTitleCoords();\r\n if (!this._isHorizontal) {\r\n attrs.rotate = options.position === LEFT ? 270 : 90\r\n }\r\n var text = this._renderer.text(titleOptions.text, coords.x, coords.y).css(patchFontOptions(titleOptions.font)).attr(attrs).append(group);\r\n this._checkTitleOverflow(text);\r\n return text\r\n },\r\n _updateTitleCoords: function() {\r\n this._title && this._title.element.attr(this._getTitleCoords())\r\n },\r\n _drawTitle: function() {\r\n var title = this._drawTitleText(this._axisTitleGroup);\r\n if (title) {\r\n this._title = {\r\n element: title\r\n }\r\n }\r\n },\r\n _measureTitle: function() {\r\n if (this._title) {\r\n if (this._title.bBox && !this._title.originalSize) {\r\n this._title.originalSize = this._title.bBox\r\n }\r\n this._title.bBox = this._title.element.getBBox()\r\n }\r\n },\r\n _drawDateMarker: function(date, options, range) {\r\n var markerOptions = this._options.marker;\r\n var invert = this._translator.getBusinessRange().invert;\r\n var textIndent = markerOptions.width + markerOptions.textLeftIndent;\r\n var pathElement;\r\n if (null === options.x) {\r\n return\r\n }\r\n if (!options.withoutStick) {\r\n pathElement = this._renderer.path([options.x, options.y, options.x, options.y + markerOptions.separatorHeight], \"line\").attr({\r\n \"stroke-width\": markerOptions.width,\r\n stroke: markerOptions.color,\r\n \"stroke-opacity\": markerOptions.opacity,\r\n sharp: \"h\"\r\n }).append(this._axisElementsGroup)\r\n }\r\n var text = String(this.formatLabel(date, options.labelOptions, range));\r\n return {\r\n date: date,\r\n x: options.x,\r\n y: options.y,\r\n cropped: options.withoutStick,\r\n label: this._renderer.text(text, options.x, options.y).css(patchFontOptions(markerOptions.label.font)).append(this._axisElementsGroup),\r\n line: pathElement,\r\n getContentContainer() {\r\n return this.label\r\n },\r\n getEnd: function() {\r\n return this.x + (invert ? -1 : 1) * (textIndent + this.labelBBox.width)\r\n },\r\n setTitle: function() {\r\n this.title = text\r\n },\r\n hideLabel: function() {\r\n this.label.dispose();\r\n this.label = null;\r\n this.title = text\r\n },\r\n hide: function() {\r\n if (pathElement) {\r\n pathElement.dispose();\r\n pathElement = null\r\n }\r\n this.label.dispose();\r\n this.label = null;\r\n this.hidden = true\r\n }\r\n }\r\n },\r\n _drawDateMarkers: function() {\r\n var that = this;\r\n var options = that._options;\r\n var translator = that._translator;\r\n var viewport = that._getViewportRange();\r\n var minBound = viewport.minVisible;\r\n var dateMarkers = [];\r\n var dateMarker;\r\n\r\n function draw(markerDate, format, withoutStick) {\r\n return that._drawDateMarker(markerDate, {\r\n x: translator.translate(markerDate),\r\n y: markersAreaTop,\r\n labelOptions: that._getLabelFormatOptions(format),\r\n withoutStick: withoutStick\r\n }, viewport)\r\n }\r\n if (viewport.isEmpty() || !options.marker.visible || \"datetime\" !== options.argumentType || \"discrete\" === options.type || that._majorTicks.length <= 1) {\r\n return []\r\n }\r\n var markersAreaTop = that._axisPosition + options.marker.topIndent;\r\n var tickInterval = dateUtils.getDateUnitInterval(this._tickInterval);\r\n var markerInterval = getMarkerInterval(tickInterval);\r\n var markerDates = getMarkerDates(minBound, viewport.maxVisible, markerInterval);\r\n if (markerDates.length > 1 || 1 === markerDates.length && minBound < markerDates[0]) {\r\n dateMarkers = markerDates.reduce((function(markers, curDate, i, dates) {\r\n var marker = draw(curDate, getMarkerFormat(curDate, dates[i - 1] || minBound < curDate && minBound, tickInterval, markerInterval));\r\n marker && markers.push(marker);\r\n return markers\r\n }), []);\r\n if (minBound < markerDates[0]) {\r\n dateMarker = draw(minBound, getMarkerFormat(minBound, markerDates[0], tickInterval, markerInterval), true);\r\n dateMarker && dateMarkers.unshift(dateMarker)\r\n }\r\n }\r\n return dateMarkers\r\n },\r\n _adjustDateMarkers: function(offset) {\r\n offset = offset || 0;\r\n var that = this;\r\n var markerOptions = this._options.marker;\r\n var textIndent = markerOptions.width + markerOptions.textLeftIndent;\r\n var invert = this._translator.getBusinessRange().invert;\r\n var canvas = that._getCanvasStartEnd();\r\n var dateMarkers = this._dateMarkers;\r\n if (!dateMarkers.length) {\r\n return offset\r\n }\r\n if (dateMarkers[0].cropped) {\r\n if (!this._checkMarkersPosition(invert, dateMarkers[1], dateMarkers[0])) {\r\n dateMarkers[0].hideLabel()\r\n }\r\n }\r\n var prevDateMarker;\r\n dateMarkers.forEach((function(marker, i, markers) {\r\n if (marker.cropped) {\r\n return\r\n }\r\n if (invert ? marker.getEnd() < canvas.end : marker.getEnd() > canvas.end) {\r\n marker.hideLabel()\r\n } else if (that._checkMarkersPosition(invert, marker, prevDateMarker)) {\r\n prevDateMarker = marker\r\n } else {\r\n marker.hide()\r\n }\r\n }));\r\n this._dateMarkers.forEach((function(marker) {\r\n if (marker.label) {\r\n var labelBBox = marker.labelBBox;\r\n var dy = marker.y + markerOptions.textTopIndent - labelBBox.y;\r\n marker.label.attr({\r\n translateX: invert ? marker.x - textIndent - labelBBox.x - labelBBox.width : marker.x + textIndent - labelBBox.x,\r\n translateY: dy + offset\r\n })\r\n }\r\n if (marker.line) {\r\n marker.line.attr({\r\n translateY: offset\r\n })\r\n }\r\n }));\r\n that._initializeMarkersTrackers(offset);\r\n return offset + markerOptions.topIndent + markerOptions.separatorHeight\r\n },\r\n _checkMarkersPosition: function(invert, dateMarker, prevDateMarker) {\r\n if (void 0 === prevDateMarker) {\r\n return true\r\n }\r\n return invert ? dateMarker.x < prevDateMarker.getEnd() : dateMarker.x > prevDateMarker.getEnd()\r\n },\r\n _initializeMarkersTrackers: function(offset) {\r\n var separatorHeight = this._options.marker.separatorHeight;\r\n var renderer = this._renderer;\r\n var businessRange = this._translator.getBusinessRange();\r\n var canvas = this._getCanvasStartEnd();\r\n var group = this._axisElementsGroup;\r\n this._markerTrackers = this._dateMarkers.filter((function(marker) {\r\n return !marker.hidden\r\n })).map((function(marker, i, markers) {\r\n var nextMarker = markers[i + 1] || {\r\n x: canvas.end,\r\n date: businessRange.max\r\n };\r\n var x = marker.x;\r\n var y = marker.y + offset;\r\n var markerTracker = renderer.path([x, y, x, y + separatorHeight, nextMarker.x, y + separatorHeight, nextMarker.x, y, x, y], \"area\").attr({\r\n \"stroke-width\": 1,\r\n stroke: \"grey\",\r\n fill: \"grey\",\r\n opacity: 1e-4\r\n }).append(group);\r\n markerTracker.data(\"range\", {\r\n startValue: marker.date,\r\n endValue: nextMarker.date\r\n });\r\n if (marker.title) {\r\n markerTracker.setTitle(marker.title)\r\n }\r\n return markerTracker\r\n }))\r\n },\r\n _getLabelFormatOptions: function(formatString) {\r\n var markerLabelOptions = this._markerLabelOptions;\r\n if (!markerLabelOptions) {\r\n this._markerLabelOptions = markerLabelOptions = extend(true, {}, this._options.marker.label)\r\n }\r\n if (!isDefined(this._options.marker.label.format)) {\r\n markerLabelOptions.format = formatString\r\n }\r\n return markerLabelOptions\r\n },\r\n _adjustConstantLineLabels: function(constantLines) {\r\n var that = this;\r\n var axisPosition = that._options.position;\r\n var canvas = that.getCanvas();\r\n var canvasLeft = canvas.left;\r\n var canvasRight = canvas.width - canvas.right;\r\n var canvasTop = canvas.top;\r\n var canvasBottom = canvas.height - canvas.bottom;\r\n var verticalCenter = canvasTop + (canvasBottom - canvasTop) / 2;\r\n var horizontalCenter = canvasLeft + (canvasRight - canvasLeft) / 2;\r\n var maxLabel = 0;\r\n constantLines.forEach((function(item) {\r\n var isHorizontal = that._isHorizontal;\r\n var linesOptions = item.options;\r\n var paddingTopBottom = linesOptions.paddingTopBottom;\r\n var paddingLeftRight = linesOptions.paddingLeftRight;\r\n var labelOptions = linesOptions.label;\r\n var labelVerticalAlignment = labelOptions.verticalAlignment;\r\n var labelHorizontalAlignment = labelOptions.horizontalAlignment;\r\n var labelIsInside = \"inside\" === labelOptions.position;\r\n var label = item.label;\r\n var box = item.labelBBox;\r\n var translateX;\r\n var translateY;\r\n if (null === label || box.isEmpty) {\r\n return\r\n }\r\n if (isHorizontal) {\r\n if (labelIsInside) {\r\n if (labelHorizontalAlignment === LEFT) {\r\n translateX = item.coord - paddingLeftRight - box.x - box.width\r\n } else {\r\n translateX = item.coord + paddingLeftRight - box.x\r\n }\r\n switch (labelVerticalAlignment) {\r\n case CENTER:\r\n translateY = verticalCenter - box.y - box.height / 2;\r\n break;\r\n case BOTTOM:\r\n translateY = canvasBottom - paddingTopBottom - box.y - box.height;\r\n break;\r\n default:\r\n translateY = canvasTop + paddingTopBottom - box.y\r\n }\r\n } else {\r\n if (axisPosition === labelVerticalAlignment) {\r\n maxLabel = _max(maxLabel, box.height + paddingTopBottom)\r\n }\r\n translateX = item.coord - box.x - box.width / 2;\r\n if (labelVerticalAlignment === BOTTOM) {\r\n translateY = canvasBottom + paddingTopBottom - box.y\r\n } else {\r\n translateY = canvasTop - paddingTopBottom - box.y - box.height\r\n }\r\n }\r\n } else if (labelIsInside) {\r\n if (labelVerticalAlignment === BOTTOM) {\r\n translateY = item.coord + paddingTopBottom - box.y\r\n } else {\r\n translateY = item.coord - paddingTopBottom - box.y - box.height\r\n }\r\n switch (labelHorizontalAlignment) {\r\n case CENTER:\r\n translateX = horizontalCenter - box.x - box.width / 2;\r\n break;\r\n case RIGHT:\r\n translateX = canvasRight - paddingLeftRight - box.x - box.width;\r\n break;\r\n default:\r\n translateX = canvasLeft + paddingLeftRight - box.x\r\n }\r\n } else {\r\n if (axisPosition === labelHorizontalAlignment) {\r\n maxLabel = _max(maxLabel, box.width + paddingLeftRight)\r\n }\r\n translateY = item.coord - box.y - box.height / 2;\r\n if (labelHorizontalAlignment === RIGHT) {\r\n translateX = canvasRight + paddingLeftRight - box.x\r\n } else {\r\n translateX = canvasLeft - paddingLeftRight - box.x - box.width\r\n }\r\n }\r\n label.attr({\r\n translateX: translateX,\r\n translateY: translateY\r\n })\r\n }));\r\n return maxLabel\r\n },\r\n _drawConstantLinesForEstimating: function(constantLines) {\r\n var that = this;\r\n var renderer = this._renderer;\r\n var group = renderer.g();\r\n constantLines.forEach((function(options) {\r\n that._drawConstantLineLabelText(options.label.text, 0, 0, options.label, group).attr({\r\n align: \"center\"\r\n })\r\n }));\r\n return group.append(renderer.root)\r\n },\r\n _estimateLabelHeight: function(bBox, labelOptions) {\r\n var height = bBox.height;\r\n var drawingType = labelOptions.drawingType;\r\n if (\"stagger\" === this._validateDisplayMode(drawingType) || \"stagger\" === this._validateOverlappingMode(labelOptions.overlappingBehavior, drawingType)) {\r\n height = 2 * height + labelOptions.staggeringSpacing\r\n }\r\n if (\"rotate\" === this._validateDisplayMode(drawingType) || \"rotate\" === this._validateOverlappingMode(labelOptions.overlappingBehavior, drawingType)) {\r\n var sinCos = getCosAndSin(labelOptions.rotationAngle);\r\n height = height * sinCos.cos + bBox.width * sinCos.sin\r\n }\r\n return height && (height + labelOptions.indentFromAxis || 0) || 0\r\n },\r\n estimateMargins: function(canvas) {\r\n this.updateCanvas(canvas);\r\n var range = this._getViewportRange();\r\n var ticksData = this._createTicksAndLabelFormat(range);\r\n var ticks = ticksData.ticks;\r\n var tickInterval = ticksData.tickInterval;\r\n var options = this._options;\r\n var constantLineOptions = this._outsideConstantLines.filter(l => l.labelOptions.visible).map(l => l.options);\r\n var rootElement = this._renderer.root;\r\n var labelIsVisible = options.label.visible && !range.isEmpty() && ticks.length;\r\n var labelValue = labelIsVisible && this.formatLabel(ticks[ticks.length - 1], options.label, void 0, void 0, tickInterval, ticks);\r\n var labelElement = labelIsVisible && this._renderer.text(labelValue, 0, 0).css(this._textFontStyles).attr(this._textOptions).append(rootElement);\r\n var titleElement = this._drawTitleText(rootElement, {\r\n x: 0,\r\n y: 0\r\n });\r\n var constantLinesLabelsElement = this._drawConstantLinesForEstimating(constantLineOptions);\r\n var labelBox = !options.label.template && labelElement && labelElement.getBBox() || {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n var titleBox = titleElement && titleElement.getBBox() || {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n var constantLinesBox = constantLinesLabelsElement.getBBox();\r\n var titleHeight = titleBox.height ? titleBox.height + options.title.margin : 0;\r\n var labelHeight = this._estimateLabelHeight(labelBox, options.label);\r\n var constantLinesHeight = constantLinesBox.height ? constantLinesBox.height + getMaxConstantLinePadding(constantLineOptions) : 0;\r\n var height = labelHeight + titleHeight;\r\n var margins = {\r\n left: _max(getLeftMargin(labelBox), getLeftMargin(constantLinesBox)),\r\n right: _max(getRightMargin(labelBox), getRightMargin(constantLinesBox)),\r\n top: (\"top\" === options.position ? height : 0) + getConstantLineLabelMarginForVerticalAlignment(constantLineOptions, \"top\", constantLinesHeight),\r\n bottom: (\"top\" !== options.position ? height : 0) + getConstantLineLabelMarginForVerticalAlignment(constantLineOptions, \"bottom\", constantLinesHeight)\r\n };\r\n labelElement && labelElement.remove();\r\n titleElement && titleElement.remove();\r\n constantLinesLabelsElement && constantLinesLabelsElement.remove();\r\n return margins\r\n },\r\n _checkAlignmentConstantLineLabels: function(labelOptions) {\r\n var position = labelOptions.position;\r\n var verticalAlignment = (labelOptions.verticalAlignment || \"\").toLowerCase();\r\n var horizontalAlignment = (labelOptions.horizontalAlignment || \"\").toLowerCase();\r\n if (this._isHorizontal) {\r\n if (\"outside\" === position) {\r\n verticalAlignment = verticalAlignment === BOTTOM ? BOTTOM : TOP;\r\n horizontalAlignment = CENTER\r\n } else {\r\n verticalAlignment = verticalAlignment === CENTER ? CENTER : verticalAlignment === BOTTOM ? BOTTOM : TOP;\r\n horizontalAlignment = horizontalAlignment === LEFT ? LEFT : RIGHT\r\n }\r\n } else if (\"outside\" === position) {\r\n verticalAlignment = CENTER;\r\n horizontalAlignment = horizontalAlignment === LEFT ? LEFT : RIGHT\r\n } else {\r\n verticalAlignment = verticalAlignment === BOTTOM ? BOTTOM : TOP;\r\n horizontalAlignment = horizontalAlignment === RIGHT ? RIGHT : horizontalAlignment === CENTER ? CENTER : LEFT\r\n }\r\n labelOptions.verticalAlignment = verticalAlignment;\r\n labelOptions.horizontalAlignment = horizontalAlignment\r\n },\r\n _getConstantLineLabelsCoords: function(value, lineLabelOptions) {\r\n var x = value;\r\n var y = value;\r\n if (this._isHorizontal) {\r\n y = this._orthogonalPositions[\"top\" === lineLabelOptions.verticalAlignment ? \"start\" : \"end\"]\r\n } else {\r\n x = this._orthogonalPositions[\"right\" === lineLabelOptions.horizontalAlignment ? \"end\" : \"start\"]\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getAdjustedStripLabelCoords: function(strip) {\r\n var stripOptions = strip.options;\r\n var paddingTopBottom = stripOptions.paddingTopBottom;\r\n var paddingLeftRight = stripOptions.paddingLeftRight;\r\n var horizontalAlignment = stripOptions.label.horizontalAlignment;\r\n var verticalAlignment = stripOptions.label.verticalAlignment;\r\n var box = strip.labelBBox;\r\n var labelHeight = box.height;\r\n var labelWidth = box.width;\r\n var labelCoords = strip.labelCoords;\r\n var y = labelCoords.y - box.y;\r\n var x = labelCoords.x - box.x;\r\n if (verticalAlignment === TOP) {\r\n y += paddingTopBottom\r\n } else if (verticalAlignment === CENTER) {\r\n y -= labelHeight / 2\r\n } else if (verticalAlignment === BOTTOM) {\r\n y -= paddingTopBottom + labelHeight\r\n }\r\n if (horizontalAlignment === LEFT) {\r\n x += paddingLeftRight\r\n } else if (horizontalAlignment === CENTER) {\r\n x -= labelWidth / 2\r\n } else if (horizontalAlignment === RIGHT) {\r\n x -= paddingLeftRight + labelWidth\r\n }\r\n return {\r\n translateX: x,\r\n translateY: y\r\n }\r\n },\r\n _adjustTitle: function(offset) {\r\n offset = offset || 0;\r\n if (!this._title) {\r\n return\r\n }\r\n var options = this._options;\r\n var position = options.position;\r\n var margin = options.title.margin;\r\n var title = this._title;\r\n var boxTitle = title.bBox;\r\n var x = boxTitle.x;\r\n var y = boxTitle.y;\r\n var width = boxTitle.width;\r\n var height = boxTitle.height;\r\n var axisPosition = this._axisPosition;\r\n var loCoord = axisPosition - margin - offset;\r\n var hiCoord = axisPosition + margin + offset;\r\n var params = {};\r\n if (this._isHorizontal) {\r\n if (position === TOP) {\r\n params.translateY = loCoord - (y + height)\r\n } else {\r\n params.translateY = hiCoord - y\r\n }\r\n } else if (position === LEFT) {\r\n params.translateX = loCoord - (x + width)\r\n } else {\r\n params.translateX = hiCoord - x\r\n }\r\n title.element.attr(params)\r\n },\r\n _checkTitleOverflow: function(titleElement) {\r\n if (!this._title && !titleElement) {\r\n return\r\n }\r\n var canvasLength = this._getScreenDelta();\r\n var title = titleElement ? {\r\n bBox: titleElement.getBBox(),\r\n element: titleElement\r\n } : this._title;\r\n var titleOptions = this._options.title;\r\n var boxTitle = title.bBox;\r\n if ((this._isHorizontal ? boxTitle.width : boxTitle.height) > canvasLength) {\r\n title.element.setMaxSize(canvasLength, void 0, {\r\n wordWrap: titleOptions.wordWrap || \"none\",\r\n textOverflow: titleOptions.textOverflow || \"ellipsis\"\r\n });\r\n this._wrapped = titleOptions.wordWrap && \"none\" !== titleOptions.wordWrap\r\n } else {\r\n var moreThanOriginalSize = title.originalSize && canvasLength > (this._isHorizontal ? title.originalSize.width : title.originalSize.height);\r\n !this._wrapped && moreThanOriginalSize && title.element.restoreText()\r\n }\r\n },\r\n coordsIn: function(x, y) {\r\n var canvas = this.getCanvas();\r\n var isHorizontal = this._options.isHorizontal;\r\n var position = this._options.position;\r\n var coord = isHorizontal ? y : x;\r\n if (isHorizontal && (x < canvas.left || x > canvas.width - canvas.right) || !isHorizontal && (y < canvas.top || y > canvas.height - canvas.bottom)) {\r\n return false\r\n }\r\n if (isHorizontal && position === constants.top || !isHorizontal && position === constants.left) {\r\n return coord < canvas[position]\r\n }\r\n return coord > canvas[isHorizontal ? \"height\" : \"width\"] - canvas[position]\r\n },\r\n _boundaryTicksVisibility: {\r\n min: true,\r\n max: true\r\n },\r\n adjust() {\r\n var seriesData = this._seriesData;\r\n var viewport = this._series.filter(s => s.isVisible()).reduce((range, s) => {\r\n var seriesRange = s.getViewport();\r\n range.min = isDefined(seriesRange.min) ? range.min < seriesRange.min ? range.min : seriesRange.min : range.min;\r\n range.max = isDefined(seriesRange.max) ? range.max > seriesRange.max ? range.max : seriesRange.max : range.max;\r\n if (s.showZero) {\r\n range = new Range(range);\r\n range.correctValueZeroLevel()\r\n }\r\n return range\r\n }, {});\r\n if (isDefined(viewport.min) && isDefined(viewport.max)) {\r\n seriesData.minVisible = viewport.min;\r\n seriesData.maxVisible = viewport.max\r\n }\r\n seriesData.userBreaks = this._getScaleBreaks(this._options, {\r\n minVisible: seriesData.minVisible,\r\n maxVisible: seriesData.maxVisible\r\n }, this._series, this.isArgumentAxis);\r\n this._translator.updateBusinessRange(this._getViewportRange())\r\n },\r\n hasWrap() {\r\n return this._wrapped\r\n },\r\n getAxisPosition() {\r\n return this._axisPosition\r\n },\r\n _getStick: function() {\r\n return !this._options.valueMarginsEnabled\r\n },\r\n _getStripLabelCoords: function(from, to, stripLabelOptions) {\r\n var orthogonalPositions = this._orthogonalPositions;\r\n var isHorizontal = this._isHorizontal;\r\n var horizontalAlignment = stripLabelOptions.horizontalAlignment;\r\n var verticalAlignment = stripLabelOptions.verticalAlignment;\r\n var x;\r\n var y;\r\n if (isHorizontal) {\r\n if (horizontalAlignment === CENTER) {\r\n x = from + (to - from) / 2\r\n } else if (horizontalAlignment === LEFT) {\r\n x = from\r\n } else if (horizontalAlignment === RIGHT) {\r\n x = to\r\n }\r\n y = orthogonalPositions[getStripVerticalAlignmentPosition(verticalAlignment)]\r\n } else {\r\n x = orthogonalPositions[getStripHorizontalAlignmentPosition(horizontalAlignment)];\r\n if (verticalAlignment === TOP) {\r\n y = from\r\n } else if (verticalAlignment === CENTER) {\r\n y = to + (from - to) / 2\r\n } else if (verticalAlignment === BOTTOM) {\r\n y = to\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getTranslatedValue: function(value, offset) {\r\n var pos1 = this._translator.translate(value, offset, \"semidiscrete\" === this._options.type && this._options.tickInterval);\r\n var pos2 = this._axisPosition;\r\n var isHorizontal = this._isHorizontal;\r\n return {\r\n x: isHorizontal ? pos1 : pos2,\r\n y: isHorizontal ? pos2 : pos1\r\n }\r\n },\r\n areCoordsOutsideAxis: function(coords) {\r\n var coord = this._isHorizontal ? coords.x : coords.y;\r\n var visibleArea = this.getVisibleArea();\r\n if (coord < visibleArea[0] || coord > visibleArea[1]) {\r\n return true\r\n }\r\n return false\r\n },\r\n _getSkippedCategory: function(ticks) {\r\n var skippedCategory;\r\n if (this._options.type === constants.discrete && this._tickOffset && 0 !== ticks.length) {\r\n skippedCategory = ticks[ticks.length - 1]\r\n }\r\n return skippedCategory\r\n },\r\n _filterBreaks: function(breaks, viewport, breakStyle) {\r\n var minVisible = viewport.minVisible;\r\n var maxVisible = viewport.maxVisible;\r\n var breakSize = breakStyle ? breakStyle.width : 0;\r\n return breaks.reduce((function(result, currentBreak) {\r\n var from = currentBreak.from;\r\n var to = currentBreak.to;\r\n var lastResult = result[result.length - 1];\r\n var newBreak;\r\n if (!isDefined(from) || !isDefined(to)) {\r\n return result\r\n }\r\n if (from > to) {\r\n to = [from, from = to][0]\r\n }\r\n if (result.length && from < lastResult.to) {\r\n if (to > lastResult.to) {\r\n lastResult.to = to > maxVisible ? maxVisible : to;\r\n if (lastResult.gapSize) {\r\n lastResult.gapSize = void 0;\r\n lastResult.cumulativeWidth += breakSize\r\n }\r\n }\r\n } else if (from >= minVisible && from < maxVisible || to <= maxVisible && to > minVisible) {\r\n from = from >= minVisible ? from : minVisible;\r\n to = to <= maxVisible ? to : maxVisible;\r\n if (to - from < maxVisible - minVisible) {\r\n var _lastResult$cumulativ;\r\n newBreak = {\r\n from: from,\r\n to: to,\r\n cumulativeWidth: (null !== (_lastResult$cumulativ = null === lastResult || void 0 === lastResult ? void 0 : lastResult.cumulativeWidth) && void 0 !== _lastResult$cumulativ ? _lastResult$cumulativ : 0) + breakSize\r\n };\r\n if (currentBreak.gapSize) {\r\n var _lastResult$cumulativ2;\r\n newBreak.gapSize = dateUtils.convertMillisecondsToDateUnits(to - from);\r\n newBreak.cumulativeWidth = null !== (_lastResult$cumulativ2 = null === lastResult || void 0 === lastResult ? void 0 : lastResult.cumulativeWidth) && void 0 !== _lastResult$cumulativ2 ? _lastResult$cumulativ2 : 0\r\n }\r\n result.push(newBreak)\r\n }\r\n }\r\n return result\r\n }), [])\r\n },\r\n _getScaleBreaks: function(axisOptions, viewport, series, isArgumentAxis) {\r\n var that = this;\r\n var breaks = (axisOptions.breaks || []).map((function(b) {\r\n return {\r\n from: that.parser(b.startValue),\r\n to: that.parser(b.endValue)\r\n }\r\n }));\r\n if (\"discrete\" !== axisOptions.type && \"datetime\" === axisOptions.dataType && axisOptions.workdaysOnly) {\r\n breaks = breaks.concat(generateDateBreaks(viewport.minVisible, viewport.maxVisible, axisOptions.workWeek, axisOptions.singleWorkdays, axisOptions.holidays))\r\n }\r\n if (!isArgumentAxis && \"discrete\" !== axisOptions.type && \"datetime\" !== axisOptions.dataType && axisOptions.autoBreaksEnabled && 0 !== axisOptions.maxAutoBreakCount) {\r\n breaks = breaks.concat(generateAutoBreaks(axisOptions, series, viewport))\r\n }\r\n return sortingBreaks(breaks)\r\n },\r\n _drawBreak: function(translatedEnd, positionFrom, positionTo, width, options, group) {\r\n var breakStart = translatedEnd - (!this._translator.isInverted() ? width + 1 : 0);\r\n var attr = {\r\n \"stroke-width\": 1,\r\n stroke: options.borderColor,\r\n sharp: !options.isWaved ? options.isHorizontal ? \"h\" : \"v\" : void 0\r\n };\r\n var spaceAttr = {\r\n stroke: options.color,\r\n \"stroke-width\": width\r\n };\r\n var getPoints = this._isHorizontal ? rotateLine : function(p) {\r\n return p\r\n };\r\n var drawer = getLineDrawer(this._renderer, group, getPoints, positionFrom, breakStart, positionTo, options.isWaved);\r\n drawer(width / 2, spaceAttr);\r\n drawer(0, attr);\r\n drawer(width, attr)\r\n },\r\n _createBreakClipRect: function(from, to) {\r\n var canvas = this._canvas;\r\n var clipWidth = to - from;\r\n var clipRect;\r\n if (this._isHorizontal) {\r\n clipRect = this._renderer.clipRect(canvas.left, from, canvas.width, clipWidth)\r\n } else {\r\n clipRect = this._renderer.clipRect(from, canvas.top, clipWidth, canvas.height)\r\n }\r\n this._breaksElements = this._breaksElements || [];\r\n this._breaksElements.push(clipRect);\r\n return clipRect.id\r\n },\r\n _createBreaksGroup: function(clipFrom, clipTo) {\r\n var group = this._renderer.g().attr({\r\n class: this._axisCssPrefix + \"breaks\",\r\n \"clip-path\": this._createBreakClipRect(clipFrom, clipTo)\r\n }).append(this._scaleBreaksGroup);\r\n this._breaksElements = this._breaksElements || [];\r\n this._breaksElements.push(group);\r\n return group\r\n },\r\n _disposeBreaksGroup: function() {\r\n (this._breaksElements || []).forEach((function(clipRect) {\r\n clipRect.dispose()\r\n }));\r\n this._breaksElements = null\r\n },\r\n drawScaleBreaks: function(customCanvas) {\r\n var that = this;\r\n var options = that._options;\r\n var breakStyle = options.breakStyle;\r\n var position = options.position;\r\n var positionFrom;\r\n var positionTo;\r\n var breaks = that._translator.getBusinessRange().breaks || [];\r\n var additionGroup;\r\n var additionBreakFrom;\r\n var additionBreakTo;\r\n that._disposeBreaksGroup();\r\n if (!(breaks && breaks.length)) {\r\n return\r\n }\r\n var breakOptions = {\r\n color: that._options.containerColor,\r\n borderColor: breakStyle.color,\r\n isHorizontal: that._isHorizontal,\r\n isWaved: \"straight\" !== breakStyle.line.toLowerCase()\r\n };\r\n if (customCanvas) {\r\n positionFrom = customCanvas.start;\r\n positionTo = customCanvas.end\r\n } else {\r\n positionFrom = that._orthogonalPositions.start - (options.visible && !that._axisShift && (position === LEFT || position === TOP) ? SCALE_BREAK_OFFSET : 0);\r\n positionTo = that._orthogonalPositions.end + (options.visible && (position === RIGHT || position === BOTTOM) ? SCALE_BREAK_OFFSET : 0)\r\n }\r\n var mainGroup = that._createBreaksGroup(positionFrom, positionTo);\r\n if (that._axisShift && options.visible) {\r\n additionBreakFrom = that._axisPosition - that._axisShift - SCALE_BREAK_OFFSET;\r\n additionBreakTo = additionBreakFrom + 2 * SCALE_BREAK_OFFSET;\r\n additionGroup = that._createBreaksGroup(additionBreakFrom, additionBreakTo)\r\n }\r\n breaks.forEach((function(br) {\r\n if (!br.gapSize) {\r\n var breakCoord = that._getTranslatedCoord(br.to);\r\n that._drawBreak(breakCoord, positionFrom, positionTo, breakStyle.width, breakOptions, mainGroup);\r\n if (that._axisShift && options.visible) {\r\n that._drawBreak(breakCoord, additionBreakFrom, additionBreakTo, breakStyle.width, breakOptions, additionGroup)\r\n }\r\n }\r\n }))\r\n },\r\n _getSpiderCategoryOption: noop,\r\n shift: function(margins) {\r\n var options = this._options;\r\n var isHorizontal = options.isHorizontal;\r\n var axesSpacing = this.getMultipleAxesSpacing();\r\n var constantLinesGroups = this._axisConstantLineGroups;\r\n\r\n function shiftGroup(side, group) {\r\n var attr = {\r\n translateX: 0,\r\n translateY: 0\r\n };\r\n var shift = margins[side] ? margins[side] + axesSpacing : 0;\r\n attr[isHorizontal ? \"translateY\" : \"translateX\"] = (side === LEFT || side === TOP ? -1 : 1) * shift;\r\n (group[side] || group).attr(attr);\r\n return shift\r\n }\r\n this._axisShift = shiftGroup(options.position, this._axisGroup);\r\n shiftGroup(options.position, this._axisElementsGroup);\r\n (isHorizontal ? [TOP, BOTTOM] : [LEFT, RIGHT]).forEach(side => {\r\n shiftGroup(side, constantLinesGroups.above);\r\n shiftGroup(side, constantLinesGroups.under)\r\n })\r\n },\r\n getCustomPosition(position) {\r\n var orthogonalAxis = this.getOrthogonalAxis();\r\n var resolvedPosition = null !== position && void 0 !== position ? position : this.getResolvedPositionOption();\r\n var offset = this.getOptions().offset;\r\n var orthogonalTranslator = orthogonalAxis.getTranslator();\r\n var orthogonalAxisType = orthogonalAxis.getOptions().type;\r\n var validPosition = orthogonalAxis.validateUnit(resolvedPosition);\r\n var currentPosition;\r\n if (\"discrete\" === orthogonalAxisType && (!orthogonalTranslator._categories || orthogonalTranslator._categories.indexOf(validPosition) < 0)) {\r\n validPosition = void 0\r\n }\r\n if (this.positionIsBoundary(resolvedPosition)) {\r\n currentPosition = this.getPredefinedPosition(resolvedPosition)\r\n } else if (!isDefined(validPosition)) {\r\n currentPosition = this.getPredefinedPosition(this.getOptions().position)\r\n } else {\r\n currentPosition = orthogonalTranslator.to(validPosition, -1)\r\n }\r\n if (isFinite(currentPosition) && isFinite(offset)) {\r\n currentPosition += offset\r\n }\r\n return currentPosition\r\n },\r\n getCustomBoundaryPosition(position) {\r\n var {\r\n customPosition: customPosition,\r\n offset: offset\r\n } = this.getOptions();\r\n var resolvedPosition = null !== position && void 0 !== position ? position : this.getResolvedPositionOption();\r\n var orthogonalAxis = this.getOrthogonalAxis();\r\n var orthogonalTranslator = orthogonalAxis.getTranslator();\r\n var visibleArea = orthogonalTranslator.getCanvasVisibleArea();\r\n if (!isDefined(orthogonalAxis._orthogonalPositions) || 0 === orthogonalTranslator.canvasLength) {\r\n return\r\n }\r\n var currentPosition = this.getCustomPosition(resolvedPosition);\r\n if (!isDefined(currentPosition)) {\r\n return this.getResolvedBoundaryPosition()\r\n } else if (isDefined(customPosition)) {\r\n if (currentPosition <= visibleArea.min) {\r\n return this._isHorizontal ? TOP : LEFT\r\n } else if (currentPosition >= visibleArea.max) {\r\n return this._isHorizontal ? BOTTOM : RIGHT\r\n }\r\n } else if (isDefined(offset)) {\r\n if (currentPosition <= this._orthogonalPositions.start) {\r\n return this._isHorizontal ? TOP : LEFT\r\n } else if (currentPosition >= this._orthogonalPositions.end) {\r\n return this._isHorizontal ? BOTTOM : RIGHT\r\n }\r\n }\r\n return currentPosition\r\n },\r\n getResolvedPositionOption() {\r\n var _options$customPositi;\r\n var options = this.getOptions();\r\n return null !== (_options$customPositi = options.customPosition) && void 0 !== _options$customPositi ? _options$customPositi : options.position\r\n },\r\n customPositionIsAvailable() {\r\n var options = this.getOptions();\r\n return isDefined(this.getOrthogonalAxis()) && (isDefined(options.customPosition) || isFinite(options.offset))\r\n },\r\n hasNonBoundaryPosition() {\r\n return this.customPositionIsAvailable() && !this.customPositionIsBoundary()\r\n },\r\n getResolvedBoundaryPosition() {\r\n return this.customPositionIsBoundary() ? this._customBoundaryPosition : this.getOptions().position\r\n },\r\n customPositionEqualsToPredefined() {\r\n return this.customPositionIsBoundary() && this._customBoundaryPosition === this.getOptions().position\r\n },\r\n customPositionIsBoundary() {\r\n return this.positionIsBoundary(this._customBoundaryPosition)\r\n },\r\n positionIsBoundary: position => [TOP, LEFT, BOTTOM, RIGHT].indexOf(position) >= 0,\r\n getPredefinedPosition(position) {\r\n var _this$_orthogonalPosi;\r\n return null === (_this$_orthogonalPosi = this._orthogonalPositions) || void 0 === _this$_orthogonalPosi ? void 0 : _this$_orthogonalPosi[position === TOP || position === LEFT ? \"start\" : \"end\"]\r\n },\r\n resolveOverlappingForCustomPositioning(oppositeAxes) {\r\n var that = this;\r\n if (!that.hasNonBoundaryPosition() && !that.customPositionIsBoundary() && !oppositeAxes.some(a => a.hasNonBoundaryPosition())) {\r\n return\r\n }\r\n var overlappingObj = {\r\n axes: [],\r\n ticks: []\r\n };\r\n oppositeAxes.filter(orthogonalAxis => orthogonalAxis.pane === that.pane).forEach(orthogonalAxis => {\r\n for (var i = 0; i < that._majorTicks.length; i++) {\r\n var tick = that._majorTicks[i];\r\n var label = tick.label;\r\n if (label) {\r\n if (overlappingObj.axes.indexOf(orthogonalAxis) < 0 && that._detectElementsOverlapping(label, orthogonalAxis._axisElement)) {\r\n overlappingObj.axes.push(orthogonalAxis);\r\n that._shiftThroughOrthogonalAxisOverlappedTick(label, orthogonalAxis)\r\n }\r\n for (var j = 0; j < orthogonalAxis._majorTicks.length; j++) {\r\n var oppositeTick = orthogonalAxis._majorTicks[j];\r\n var oppositeLabel = oppositeTick.label;\r\n if (oppositeLabel && that._detectElementsOverlapping(label, oppositeLabel)) {\r\n overlappingObj.ticks.push(tick);\r\n that._shiftThroughAxisOverlappedTick(tick);\r\n i = that._majorTicks.length;\r\n break\r\n }\r\n }\r\n }\r\n if (tick.mark && overlappingObj.ticks.indexOf(tick) < 0) {\r\n if (that._isHorizontal && tick.mark.attr(\"translateY\")) {\r\n tick.mark.attr({\r\n translateY: 0\r\n })\r\n } else if (!that._isHorizontal && tick.mark.attr(\"translateX\")) {\r\n tick.mark.attr({\r\n translateX: 0\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _shiftThroughOrthogonalAxisOverlappedTick(label, orthogonalAxis) {\r\n var labelBBox = label.getBBox();\r\n var orthogonalAxisPosition = orthogonalAxis.getAxisPosition();\r\n var orthogonalAxisLabelOptions = orthogonalAxis.getOptions().label;\r\n var orthogonalAxisLabelPosition = orthogonalAxisLabelOptions.position;\r\n var orthogonalAxisLabelIndent = orthogonalAxisLabelOptions.indentFromAxis / 2;\r\n var translateCoordName = this._isHorizontal ? \"translateX\" : \"translateY\";\r\n var defaultOrthogonalAxisLabelPosition = this._isHorizontal ? LEFT : TOP;\r\n var translate = label.attr(translateCoordName);\r\n var labelCoord = (this._isHorizontal ? labelBBox.x : labelBBox.y) + translate;\r\n var labelSize = this._isHorizontal ? labelBBox.width : labelBBox.height;\r\n var outsidePart = orthogonalAxisPosition - labelCoord;\r\n var insidePart = labelCoord + labelSize - orthogonalAxisPosition;\r\n var attr = {};\r\n attr[translateCoordName] = translate;\r\n if (outsidePart > 0 && insidePart > 0) {\r\n if (insidePart - outsidePart > 1) {\r\n attr[translateCoordName] += outsidePart + orthogonalAxisLabelIndent\r\n } else if (outsidePart - insidePart > 1) {\r\n attr[translateCoordName] -= insidePart + orthogonalAxisLabelIndent\r\n } else {\r\n attr[translateCoordName] += orthogonalAxisLabelPosition === defaultOrthogonalAxisLabelPosition ? outsidePart + orthogonalAxisLabelIndent : -(insidePart + orthogonalAxisLabelIndent)\r\n }\r\n label.attr(attr)\r\n }\r\n },\r\n _shiftThroughAxisOverlappedTick(tick) {\r\n var _tick$mark;\r\n var label = tick.label;\r\n if (!label) {\r\n return\r\n }\r\n var labelBBox = label.getBBox();\r\n var tickMarkBBox = null === (_tick$mark = tick.mark) || void 0 === _tick$mark ? void 0 : _tick$mark.getBBox();\r\n var axisPosition = this.getAxisPosition();\r\n var labelOptions = this.getOptions().label;\r\n var labelIndent = labelOptions.indentFromAxis;\r\n var labelPosition = labelOptions.position;\r\n var defaultLabelPosition = this._isHorizontal ? TOP : LEFT;\r\n var translateCoordName = this._isHorizontal ? \"translateY\" : \"translateX\";\r\n var translate = label.attr(translateCoordName);\r\n var labelCoord = (this._isHorizontal ? labelBBox.y : labelBBox.x) + translate;\r\n var labelSize = this._isHorizontal ? labelBBox.height : labelBBox.width;\r\n var attr = {};\r\n attr[translateCoordName] = translate + (labelPosition === defaultLabelPosition ? axisPosition - labelCoord + labelIndent : -(labelCoord - axisPosition + labelSize + labelIndent));\r\n label.attr(attr);\r\n if (tick.mark) {\r\n var markerSize = this._isHorizontal ? tickMarkBBox.height : tickMarkBBox.width;\r\n var dir = labelPosition === defaultLabelPosition ? 1 : -1;\r\n attr[translateCoordName] = dir * (markerSize - 1);\r\n tick.mark.attr(attr)\r\n }\r\n },\r\n _detectElementsOverlapping(element1, element2) {\r\n if (!element1 || !element2) {\r\n return false\r\n }\r\n var bBox1 = element1.getBBox();\r\n var x1 = bBox1.x + element1.attr(\"translateX\");\r\n var y1 = bBox1.y + element1.attr(\"translateY\");\r\n var bBox2 = element2.getBBox();\r\n var x2 = bBox2.x + element2.attr(\"translateX\");\r\n var y2 = bBox2.y + element2.attr(\"translateY\");\r\n return (x2 >= x1 && x2 <= x1 + bBox1.width || x1 >= x2 && x1 <= x2 + bBox2.width) && (y2 >= y1 && y2 <= y1 + bBox1.height || y1 >= y2 && y1 <= y2 + bBox2.height)\r\n }\r\n }\r\n};\r\n\r\nfunction getLineDrawer(renderer, root, rotatePoints, positionFrom, breakStart, positionTo, isWaved) {\r\n var elementType = isWaved ? \"bezier\" : \"line\";\r\n var group = renderer.g().append(root);\r\n return function(offset, attr) {\r\n renderer.path(rotatePoints(getPoints(positionFrom, breakStart, positionTo, offset, isWaved)), elementType).attr(attr).append(group)\r\n }\r\n}\r\n\r\nfunction getPoints(positionFrom, breakStart, positionTo, offset, isWaved) {\r\n if (!isWaved) {\r\n return [positionFrom, breakStart + offset, positionTo, breakStart + offset]\r\n }\r\n breakStart += offset;\r\n var currentPosition;\r\n var topPoint = breakStart + WAVED_LINE_TOP;\r\n var centerPoint = breakStart + WAVED_LINE_CENTER;\r\n var bottomPoint = breakStart + WAVED_LINE_BOTTOM;\r\n var points = [\r\n [positionFrom, centerPoint]\r\n ];\r\n for (currentPosition = positionFrom; currentPosition < positionTo + WAVED_LINE_LENGTH; currentPosition += WAVED_LINE_LENGTH) {\r\n points.push([currentPosition + 6, topPoint, currentPosition + 6, topPoint, currentPosition + 12, centerPoint, currentPosition + 18, bottomPoint, currentPosition + 18, bottomPoint, currentPosition + 24, centerPoint])\r\n }\r\n return [].concat.apply([], points)\r\n}\r\n\r\nfunction rotateLine(lineCoords) {\r\n var points = [];\r\n var i;\r\n for (i = 0; i < lineCoords.length; i += 2) {\r\n points.push(lineCoords[i + 1]);\r\n points.push(lineCoords[i])\r\n }\r\n return points\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/axes_utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _max = Math.max;\r\nexport var calculateCanvasMargins = function(bBoxes, canvas) {\r\n var cLeft = canvas.left;\r\n var cTop = canvas.top;\r\n var cRight = canvas.width - canvas.right;\r\n var cBottom = canvas.height - canvas.bottom;\r\n return bBoxes.reduce((function(margins, bBox) {\r\n if (!bBox || bBox.isEmpty) {\r\n return margins\r\n }\r\n return {\r\n left: _max(margins.left, cLeft - bBox.x),\r\n top: _max(margins.top, cTop - bBox.y),\r\n right: _max(margins.right, bBox.x + bBox.width - cRight),\r\n bottom: _max(margins.bottom, bBox.y + bBox.height - cBottom)\r\n }\r\n }), {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n })\r\n};\r\nexport var measureLabels = function(items) {\r\n items.forEach((function(item) {\r\n var label = item.getContentContainer();\r\n item.labelBBox = label ? label.getBBox() : {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n }\r\n }))\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/polar_axes.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map as _map,\r\n convertPolarToXY,\r\n convertXYToPolar,\r\n normalizeAngle,\r\n getVizRangeObject,\r\n getCosAndSin,\r\n getDistance\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport constants from \"./axes_constants\";\r\nimport xyAxes from \"./xy_axes\";\r\nimport {\r\n tick\r\n} from \"./tick\";\r\nimport {\r\n calculateCanvasMargins,\r\n measureLabels\r\n} from \"./axes_utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar {\r\n PI: PI,\r\n abs: abs,\r\n atan: atan,\r\n round: round\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar xyAxesLinear = xyAxes.linear;\r\nvar HALF_PI_ANGLE = 90;\r\n\r\nfunction getPolarQuarter(angle) {\r\n var quarter;\r\n angle = normalizeAngle(angle);\r\n if (angle >= 315 && angle <= 360 || angle < 45 && angle >= 0) {\r\n quarter = 1\r\n } else if (angle >= 45 && angle < 135) {\r\n quarter = 2\r\n } else if (angle >= 135 && angle < 225) {\r\n quarter = 3\r\n } else if (angle >= 225 && angle < 315) {\r\n quarter = 4\r\n }\r\n return quarter\r\n}\r\nvar circularAxes = {\r\n _calculateValueMargins(ticks) {\r\n var {\r\n minVisible: minVisible,\r\n maxVisible: maxVisible\r\n } = this._getViewportRange();\r\n if (ticks && ticks.length > 1) {\r\n minVisible = minVisible < ticks[0].value ? minVisible : ticks[0].value;\r\n maxVisible = minVisible > ticks[ticks.length - 1].value ? maxVisible : ticks[ticks.length - 1].value\r\n }\r\n return {\r\n minValue: minVisible,\r\n maxValue: maxVisible\r\n }\r\n },\r\n applyMargins() {\r\n var margins = this._calculateValueMargins(this._majorTicks);\r\n var br = this._translator.getBusinessRange();\r\n br.addRange({\r\n minVisible: margins.minValue,\r\n maxVisible: margins.maxValue,\r\n interval: this._calculateRangeInterval(br.interval)\r\n });\r\n this._translator.updateBusinessRange(br)\r\n },\r\n _getTranslatorOptions: function() {\r\n return {\r\n isHorizontal: true,\r\n conversionValue: true,\r\n addSpiderCategory: this._getSpiderCategoryOption(),\r\n stick: this._getStick()\r\n }\r\n },\r\n getCenter: function() {\r\n return this._center\r\n },\r\n getRadius: function() {\r\n return this._radius\r\n },\r\n getAngles: function() {\r\n var options = this._options;\r\n return [options.startAngle, options.endAngle]\r\n },\r\n _updateRadius(canvas) {\r\n var rad = _min(canvas.width - canvas.left - canvas.right, canvas.height - canvas.top - canvas.bottom) / 2;\r\n this._radius = rad < 0 ? 0 : rad\r\n },\r\n _updateCenter: function(canvas) {\r\n this._center = {\r\n x: canvas.left + (canvas.width - canvas.right - canvas.left) / 2,\r\n y: canvas.top + (canvas.height - canvas.top - canvas.bottom) / 2\r\n }\r\n },\r\n _processCanvas: function(canvas) {\r\n this._updateRadius(canvas);\r\n this._updateCenter(canvas);\r\n return {\r\n left: 0,\r\n right: 0,\r\n width: this._getScreenDelta()\r\n }\r\n },\r\n _createAxisElement: function() {\r\n return this._renderer.circle()\r\n },\r\n _updateAxisElementPosition: function() {\r\n var center = this.getCenter();\r\n this._axisElement.attr({\r\n cx: center.x,\r\n cy: center.y,\r\n r: this.getRadius()\r\n })\r\n },\r\n _boundaryTicksVisibility: {\r\n min: true\r\n },\r\n _getSpiderCategoryOption: function() {\r\n return this._options.firstPointOnStartAngle\r\n },\r\n _validateOptions(options) {\r\n var originValue = options.originValue;\r\n var wholeRange = options.wholeRange = {};\r\n var period = options.period;\r\n if (isDefined(originValue)) {\r\n originValue = this.validateUnit(originValue)\r\n }\r\n if (period > 0 && options.argumentType === constants.numeric) {\r\n originValue = originValue || 0;\r\n wholeRange.endValue = originValue + period;\r\n this._viewport = getVizRangeObject([originValue, wholeRange.endValue])\r\n }\r\n if (isDefined(originValue)) {\r\n wholeRange.startValue = originValue\r\n }\r\n },\r\n getMargins() {\r\n var tickOptions = this._options.tick;\r\n var tickOuterLength = _max(tickOptions.visible ? tickOptions.length / 2 + tickOptions.shift : 0, 0);\r\n var radius = this.getRadius();\r\n var {\r\n x: x,\r\n y: y\r\n } = this._center;\r\n var labelBoxes = this._majorTicks.map(t => t.label && t.label.getBBox()).filter(b => b);\r\n var canvas = extend({}, this._canvas, {\r\n left: x - radius,\r\n top: y - radius,\r\n right: this._canvas.width - (x + radius),\r\n bottom: this._canvas.height - (y + radius)\r\n });\r\n var margins = calculateCanvasMargins(labelBoxes, canvas);\r\n Object.keys(margins).forEach(k => margins[k] = margins[k] < tickOuterLength ? tickOuterLength : margins[k]);\r\n return margins\r\n },\r\n _updateLabelsPosition() {\r\n measureLabels(this._majorTicks);\r\n this._adjustLabelsCoord(0, 0, true);\r\n this._checkBoundedLabelsOverlapping(this._majorTicks, this._majorTicks.map(t => t.labelBBox))\r\n },\r\n _setVisualRange: _noop,\r\n applyVisualRangeSetter: _noop,\r\n _getStick: function() {\r\n return this._options.firstPointOnStartAngle || this._options.type !== constants.discrete\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset) - HALF_PI_ANGLE\r\n },\r\n _getCanvasStartEnd: function() {\r\n return {\r\n start: 0 - HALF_PI_ANGLE,\r\n end: 360 - HALF_PI_ANGLE\r\n }\r\n },\r\n _getStripGraphicAttributes: function(fromAngle, toAngle) {\r\n var center = this.getCenter();\r\n var angle = this.getAngles()[0];\r\n var r = this.getRadius();\r\n return {\r\n x: center.x,\r\n y: center.y,\r\n innerRadius: 0,\r\n outerRadius: r,\r\n startAngle: -toAngle - angle,\r\n endAngle: -fromAngle - angle\r\n }\r\n },\r\n _createStrip: function(coords) {\r\n return this._renderer.arc(coords.x, coords.y, coords.innerRadius, coords.outerRadius, coords.startAngle, coords.endAngle)\r\n },\r\n _getStripLabelCoords: function(from, to) {\r\n var coords = this._getStripGraphicAttributes(from, to);\r\n var angle = coords.startAngle + (coords.endAngle - coords.startAngle) / 2;\r\n var cosSin = getCosAndSin(angle);\r\n var halfRad = this.getRadius() / 2;\r\n var center = this.getCenter();\r\n var x = round(center.x + halfRad * cosSin.cos);\r\n var y = round(center.y - halfRad * cosSin.sin);\r\n return {\r\n x: x,\r\n y: y,\r\n align: constants.center\r\n }\r\n },\r\n _getConstantLineGraphicAttributes: function(value) {\r\n var center = this.getCenter();\r\n var r = this.getRadius();\r\n return {\r\n points: [center.x, center.y, center.x + r, center.y]\r\n }\r\n },\r\n _createConstantLine: function(value, attr) {\r\n return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr)\r\n },\r\n _rotateConstantLine(line, value) {\r\n var {\r\n x: x,\r\n y: y\r\n } = this.getCenter();\r\n line.rotate(value + this.getAngles()[0], x, y)\r\n },\r\n _getConstantLineLabelsCoords: function(value) {\r\n var cosSin = getCosAndSin(-value - this.getAngles()[0]);\r\n var halfRad = this.getRadius() / 2;\r\n var center = this.getCenter();\r\n var x = round(center.x + halfRad * cosSin.cos);\r\n var y = round(center.y - halfRad * cosSin.sin);\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _checkAlignmentConstantLineLabels: _noop,\r\n _adjustDivisionFactor: function(val) {\r\n return 180 * val / (this.getRadius() * PI)\r\n },\r\n _getScreenDelta: function() {\r\n var angles = this.getAngles();\r\n return abs(angles[0] - angles[1])\r\n },\r\n _getTickMarkPoints: function(coords, length, _ref) {\r\n var {\r\n shift: shift = 0\r\n } = _ref;\r\n var center = this.getCenter();\r\n var radiusWithTicks = this.getRadius() + length * {\r\n inside: -1,\r\n center: -.5,\r\n outside: 0\r\n } [this._options.tickOrientation || \"center\"];\r\n return [center.x + radiusWithTicks + shift, center.y, center.x + radiusWithTicks + length + shift, center.y]\r\n },\r\n _getLabelAdjustedCoord: function(tick, _offset, _maxWidth, checkCanvas) {\r\n var labelCoords = tick.labelCoords;\r\n var labelY = labelCoords.y;\r\n var labelAngle = labelCoords.angle;\r\n var cosSin = getCosAndSin(labelAngle);\r\n var cos = cosSin.cos;\r\n var sin = cosSin.sin;\r\n var box = tick.labelBBox;\r\n var halfWidth = box.width / 2;\r\n var halfHeight = box.height / 2;\r\n var indentFromAxis = this._options.label.indentFromAxis || 0;\r\n var x = labelCoords.x + indentFromAxis * cos;\r\n var y = labelY + (labelY - box.y - halfHeight) + indentFromAxis * sin;\r\n var shiftX = 0;\r\n var shiftY = 0;\r\n switch (getPolarQuarter(labelAngle)) {\r\n case 1:\r\n shiftX = halfWidth;\r\n shiftY = halfHeight * sin;\r\n break;\r\n case 2:\r\n shiftX = halfWidth * cos;\r\n shiftY = halfHeight;\r\n break;\r\n case 3:\r\n shiftX = -halfWidth;\r\n shiftY = halfHeight * sin;\r\n break;\r\n case 4:\r\n shiftX = halfWidth * cos;\r\n shiftY = -halfHeight\r\n }\r\n if (checkCanvas) {\r\n var canvas = this._canvas;\r\n var boxShiftX = x - labelCoords.x + shiftX;\r\n var boxShiftY = y - labelCoords.y + shiftY;\r\n if (box.x + boxShiftX < canvas.originalLeft) {\r\n shiftX -= box.x + boxShiftX - canvas.originalLeft\r\n }\r\n if (box.x + box.width + boxShiftX > canvas.width - canvas.originalRight) {\r\n shiftX -= box.x + box.width + boxShiftX - (canvas.width - canvas.originalRight)\r\n }\r\n if (box.y + boxShiftY < canvas.originalTop) {\r\n shiftY -= box.y + boxShiftY - canvas.originalTop\r\n }\r\n if (box.y + box.height + boxShiftY > canvas.height - canvas.originalBottom) {\r\n shiftY -= box.y + box.height + boxShiftY - (canvas.height - canvas.originalBottom)\r\n }\r\n }\r\n return {\r\n x: x + shiftX,\r\n y: y + shiftY\r\n }\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n var center = that.getCenter();\r\n return that._createPathElement(that._getGridPoints().points, gridStyle).rotate(tick.coords.angle, center.x, center.y)\r\n }\r\n },\r\n _getGridPoints: function() {\r\n var r = this.getRadius();\r\n var center = this.getCenter();\r\n return {\r\n points: [center.x, center.y, center.x + r, center.y]\r\n }\r\n },\r\n _getTranslatedValue: function(value, offset) {\r\n var startAngle = this.getAngles()[0];\r\n var angle = this._translator.translate(value, -offset);\r\n var coords = convertPolarToXY(this.getCenter(), startAngle, angle, this.getRadius());\r\n return {\r\n x: coords.x,\r\n y: coords.y,\r\n angle: this.getTranslatedAngle(angle)\r\n }\r\n },\r\n _getAdjustedStripLabelCoords: function(strip) {\r\n var box = strip.labelBBox;\r\n return {\r\n translateY: strip.label.attr(\"y\") - box.y - box.height / 2\r\n }\r\n },\r\n coordsIn: function(x, y) {\r\n return convertXYToPolar(this.getCenter(), x, y).r > this.getRadius()\r\n },\r\n _rotateTick: function(element, coords) {\r\n var center = this.getCenter();\r\n element.rotate(coords.angle, center.x, center.y)\r\n },\r\n _validateOverlappingMode: function(mode) {\r\n return constants.validateOverlappingMode(mode)\r\n },\r\n _validateDisplayMode: function() {\r\n return \"standard\"\r\n },\r\n _getStep: function(boxes) {\r\n var radius = this.getRadius() + (this._options.label.indentFromAxis || 0);\r\n var maxLabelBox = boxes.reduce((function(prevValue, box) {\r\n var curValue = prevValue;\r\n if (prevValue.width < box.width) {\r\n curValue.width = box.width\r\n }\r\n if (prevValue.height < box.height) {\r\n curValue.height = box.height\r\n }\r\n return curValue\r\n }), {\r\n width: 0,\r\n height: 0\r\n });\r\n var angle1 = abs(2 * atan(maxLabelBox.height / (2 * radius - maxLabelBox.width)) * 180 / PI);\r\n var angle2 = abs(2 * atan(maxLabelBox.width / (2 * radius - maxLabelBox.height)) * 180 / PI);\r\n return constants.getTicksCountInRange(this._majorTicks, \"angle\", _max(angle1, angle2))\r\n },\r\n _checkBoundedLabelsOverlapping: function(majorTicks, boxes, mode) {\r\n var labelOpt = this._options.label;\r\n mode = mode || this._validateOverlappingMode(labelOpt.overlappingBehavior);\r\n if (\"hide\" !== mode) {\r\n return\r\n }\r\n var lastVisibleLabelIndex = majorTicks.reduce((lastVisibleLabelIndex, tick, index) => tick.label ? index : lastVisibleLabelIndex, null);\r\n if (!lastVisibleLabelIndex) {\r\n return\r\n }\r\n if (constants.areLabelsOverlap(boxes[0], boxes[lastVisibleLabelIndex], labelOpt.minSpacing, constants.center)) {\r\n \"first\" === labelOpt.hideFirstOrLast ? majorTicks[0].removeLabel() : majorTicks[lastVisibleLabelIndex].removeLabel()\r\n }\r\n },\r\n shift: function(margins) {\r\n this._axisGroup.attr({\r\n translateX: margins.right,\r\n translateY: margins.bottom\r\n });\r\n this._axisElementsGroup.attr({\r\n translateX: margins.right,\r\n translateY: margins.bottom\r\n })\r\n },\r\n getTranslatedAngle(angle) {\r\n var startAngle = this.getAngles()[0];\r\n return angle + startAngle - HALF_PI_ANGLE\r\n }\r\n};\r\nexport var circular = circularAxes;\r\nexport var circularSpider = extend({}, circularAxes, {\r\n _createAxisElement: function() {\r\n return this._renderer.path([], \"area\")\r\n },\r\n _updateAxisElementPosition: function() {\r\n this._axisElement.attr({\r\n points: _map(this.getSpiderTicks(), (function(tick) {\r\n return {\r\n x: tick.coords.x,\r\n y: tick.coords.y\r\n }\r\n }))\r\n })\r\n },\r\n _getStick: function() {\r\n return true\r\n },\r\n _getSpiderCategoryOption: function() {\r\n return true\r\n },\r\n getSpiderTicks: function() {\r\n var ticks = this.getFullTicks();\r\n this._spiderTicks = ticks.map(tick(this, this.renderer, {}, {}, this._getSkippedCategory(ticks), true));\r\n this._spiderTicks.forEach((function(tick) {\r\n tick.initCoords()\r\n }));\r\n return this._spiderTicks\r\n },\r\n _getStripGraphicAttributes: function(fromAngle, toAngle) {\r\n var center = this.getCenter();\r\n var spiderTicks = this.getSpiderTicks();\r\n var firstTick;\r\n var lastTick;\r\n var nextTick;\r\n var tick;\r\n var points = [];\r\n var i = 0;\r\n var len = spiderTicks.length;\r\n while (i < len) {\r\n tick = spiderTicks[i].coords;\r\n if (tick.angle >= fromAngle && tick.angle <= toAngle) {\r\n if (!firstTick) {\r\n firstTick = (spiderTicks[i - 1] || spiderTicks[spiderTicks.length - 1]).coords;\r\n points.push((tick.x + firstTick.x) / 2, (tick.y + firstTick.y) / 2)\r\n }\r\n points.push(tick.x, tick.y);\r\n nextTick = (spiderTicks[i + 1] || spiderTicks[0]).coords;\r\n lastTick = {\r\n x: (tick.x + nextTick.x) / 2,\r\n y: (tick.y + nextTick.y) / 2\r\n }\r\n }\r\n i++\r\n }\r\n points.push(lastTick.x, lastTick.y);\r\n points.push(center.x, center.y);\r\n return {\r\n points: points\r\n }\r\n },\r\n _createStrip: function(_ref2) {\r\n var {\r\n points: points\r\n } = _ref2;\r\n return this._renderer.path(points, \"area\")\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset) - HALF_PI_ANGLE\r\n },\r\n _setTickOffset: function() {\r\n this._tickOffset = false\r\n }\r\n});\r\nexport var linear = {\r\n _resetMargins() {\r\n this._reinitTranslator(this._getViewportRange())\r\n },\r\n _getStick: xyAxesLinear._getStick,\r\n _getSpiderCategoryOption: _noop,\r\n _getTranslatorOptions: function() {\r\n return {\r\n isHorizontal: true,\r\n stick: this._getStick()\r\n }\r\n },\r\n getRadius: circularAxes.getRadius,\r\n getCenter: circularAxes.getCenter,\r\n getAngles: circularAxes.getAngles,\r\n _updateRadius: circularAxes._updateRadius,\r\n _updateCenter: circularAxes._updateCenter,\r\n _processCanvas(canvas) {\r\n this._updateRadius(canvas);\r\n this._updateCenter(canvas);\r\n return {\r\n left: 0,\r\n right: 0,\r\n startPadding: canvas.startPadding,\r\n endPadding: canvas.endPadding,\r\n width: this.getRadius()\r\n }\r\n },\r\n _createAxisElement: xyAxesLinear._createAxisElement,\r\n _updateAxisElementPosition: function() {\r\n var centerCoord = this.getCenter();\r\n this._axisElement.attr({\r\n points: [centerCoord.x, centerCoord.y, centerCoord.x + this.getRadius(), centerCoord.y]\r\n }).rotate(this.getAngles()[0] - HALF_PI_ANGLE, centerCoord.x, centerCoord.y)\r\n },\r\n _getScreenDelta: function() {\r\n return this.getRadius()\r\n },\r\n _getTickMarkPoints: function(coords, length) {\r\n return [coords.x - length / 2, coords.y, coords.x + length / 2, coords.y]\r\n },\r\n _getLabelAdjustedCoord: function(tick) {\r\n var labelCoords = tick.labelCoords;\r\n var labelY = labelCoords.y;\r\n var cosSin = getCosAndSin(labelCoords.angle);\r\n var indentFromAxis = this._options.label.indentFromAxis || 0;\r\n var box = tick.labelBBox;\r\n var x = labelCoords.x - abs(indentFromAxis * cosSin.sin) + abs(box.width / 2 * cosSin.cos) - box.width / 2;\r\n var y = labelY + (labelY - box.y) - abs(box.height / 2 * cosSin.sin) + abs(indentFromAxis * cosSin.cos);\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n var grid = that._getGridPoints(tick.coords);\r\n return that._renderer.circle(grid.cx, grid.cy, grid.r).attr(gridStyle).sharp()\r\n }\r\n },\r\n _getGridPoints: function(coords) {\r\n var pos = this.getCenter();\r\n var radius = getDistance(pos.x, pos.y, coords.x, coords.y);\r\n if (radius > this.getRadius()) {\r\n return {\r\n cx: null,\r\n cy: null,\r\n r: null\r\n }\r\n }\r\n return {\r\n cx: pos.x,\r\n cy: pos.y,\r\n r: radius\r\n }\r\n },\r\n _getTranslatedValue: function(value, offset) {\r\n var startAngle = this.getAngles()[0];\r\n var xy = convertPolarToXY(this.getCenter(), startAngle, 0, this._translator.translate(value, offset));\r\n return {\r\n x: xy.x,\r\n y: xy.y,\r\n angle: startAngle - HALF_PI_ANGLE\r\n }\r\n },\r\n _getTranslatedCoord: function(value, offset) {\r\n return this._translator.translate(value, offset)\r\n },\r\n _getCanvasStartEnd() {\r\n var invert = this.getTranslator().getBusinessRange().invert;\r\n var coords = [0, this.getRadius()];\r\n invert && coords.reverse();\r\n return {\r\n start: coords[0],\r\n end: coords[1]\r\n }\r\n },\r\n _getStripGraphicAttributes: function(fromPoint, toPoint) {\r\n var center = this.getCenter();\r\n return {\r\n x: center.x,\r\n y: center.y,\r\n innerRadius: fromPoint,\r\n outerRadius: toPoint\r\n }\r\n },\r\n _createStrip: function(attrs) {\r\n return this._renderer.arc(attrs.x, attrs.y, attrs.innerRadius, attrs.outerRadius, 0, 360)\r\n },\r\n _getAdjustedStripLabelCoords: circularAxes._getAdjustedStripLabelCoords,\r\n _getStripLabelCoords: function(from, to) {\r\n var labelPos = from + (to - from) / 2;\r\n var center = this.getCenter();\r\n var y = round(center.y - labelPos);\r\n return {\r\n x: center.x,\r\n y: y,\r\n align: constants.center\r\n }\r\n },\r\n _getConstantLineGraphicAttributes: function(value) {\r\n var center = this.getCenter();\r\n return {\r\n cx: center.x,\r\n cy: center.y,\r\n r: value\r\n }\r\n },\r\n _createConstantLine: function(value, attr) {\r\n var attrs = this._getConstantLineGraphicAttributes(value);\r\n return this._renderer.circle(attrs.cx, attrs.cy, attrs.r).attr(attr).sharp()\r\n },\r\n _getConstantLineLabelsCoords: function(value) {\r\n var center = this.getCenter();\r\n var y = round(center.y - value);\r\n return {\r\n x: center.x,\r\n y: y\r\n }\r\n },\r\n _checkAlignmentConstantLineLabels: _noop,\r\n _rotateTick: function(element, coords, isGridLine) {\r\n !isGridLine && element.rotate(coords.angle + HALF_PI_ANGLE, coords.x, coords.y)\r\n },\r\n _validateOverlappingMode: circularAxes._validateOverlappingMode,\r\n _validateDisplayMode: circularAxes._validateDisplayMode,\r\n _getStep: function(boxes) {\r\n var quarter = getPolarQuarter(this.getAngles()[0]);\r\n var spacing = this._options.label.minSpacing;\r\n var func = 2 === quarter || 4 === quarter ? function(box) {\r\n return box.width + spacing\r\n } : function(box) {\r\n return box.height\r\n };\r\n var maxLabelLength = boxes.reduce((prevValue, box) => _max(prevValue, func(box)), 0);\r\n return constants.getTicksCountInRange(this._majorTicks, 2 === quarter || 4 === quarter ? \"x\" : \"y\", maxLabelLength)\r\n }\r\n};\r\nexport var linearSpider = extend({}, linear, {\r\n _createPathElement: function(points, attr) {\r\n return this._renderer.path(points, \"area\").attr(attr).sharp()\r\n },\r\n setSpiderTicks: function(ticks) {\r\n this._spiderTicks = ticks\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n return that._createPathElement(that._getGridPoints(tick.coords).points, gridStyle)\r\n }\r\n },\r\n _getGridPoints: function(coords) {\r\n var pos = this.getCenter();\r\n var radius = getDistance(pos.x, pos.y, coords.x, coords.y);\r\n return this._getGridPointsByRadius(radius)\r\n },\r\n _getGridPointsByRadius: function(radius) {\r\n var pos = this.getCenter();\r\n if (radius > this.getRadius()) {\r\n return {\r\n points: null\r\n }\r\n }\r\n return {\r\n points: _map(this._spiderTicks, (function(tick) {\r\n var cosSin = getCosAndSin(tick.coords.angle);\r\n return {\r\n x: round(pos.x + radius * cosSin.cos),\r\n y: round(pos.y + radius * cosSin.sin)\r\n }\r\n }))\r\n }\r\n },\r\n _getStripGraphicAttributes: function(fromPoint, toPoint) {\r\n var innerPoints = this._getGridPointsByRadius(toPoint).points;\r\n var outerPoints = this._getGridPointsByRadius(fromPoint).points;\r\n return {\r\n points: [outerPoints, innerPoints.reverse()]\r\n }\r\n },\r\n _createStrip: circularSpider._createStrip,\r\n _getConstantLineGraphicAttributes: function(value) {\r\n return this._getGridPointsByRadius(value)\r\n },\r\n _createConstantLine: function(value, attr) {\r\n return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/axes/base_axis.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n smartFormatter as _format,\r\n formatRange\r\n} from \"./smart_formatter\";\r\nimport {\r\n patchFontOptions,\r\n getVizRangeObject,\r\n getLogExt as getLog,\r\n raiseToExt as raiseTo,\r\n valueOf,\r\n rotateBBox,\r\n getCategoriesInfo,\r\n adjustVisualRange,\r\n getAddFunction,\r\n convertVisualRangeObject\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport constants from \"./axes_constants\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n getParser\r\n} from \"../components/parse_utils\";\r\nimport {\r\n tickGenerator\r\n} from \"./tick_generator\";\r\nimport {\r\n Translator2D\r\n} from \"../translators/translator2d\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n tick\r\n} from \"./tick\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport xyMethods from \"./xy_axes\";\r\nimport * as polarMethods from \"./polar_axes\";\r\nimport createConstantLine from \"./constant_line\";\r\nimport createStrip from \"./strip\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n calculateCanvasMargins,\r\n measureLabels\r\n} from \"./axes_utils\";\r\nvar convertTicksToValues = constants.convertTicksToValues;\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _max = _math.max;\r\nvar _min = _math.min;\r\nvar _isArray = Array.isArray;\r\nvar DEFAULT_AXIS_LABEL_SPACING = 5;\r\nvar MAX_GRID_BORDER_ADHENSION = 4;\r\nvar TOP = constants.top;\r\nvar BOTTOM = constants.bottom;\r\nvar LEFT = constants.left;\r\nvar RIGHT = constants.right;\r\nvar CENTER = constants.center;\r\nvar KEEP = \"keep\";\r\nvar SHIFT = \"shift\";\r\nvar RESET = \"reset\";\r\nvar ROTATE = \"rotate\";\r\nvar DEFAULT_AXIS_DIVISION_FACTOR = 50;\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 15;\r\nvar SCROLL_THRESHOLD = 5;\r\nvar MIN_BAR_MARGIN = 5;\r\nvar MAX_MARGIN_VALUE = .8;\r\nvar dateIntervals = {\r\n day: 864e5,\r\n week: 6048e5\r\n};\r\n\r\nfunction getTickGenerator(options, incidentOccurred, skipTickGeneration, rangeIsEmpty, adjustDivisionFactor, _ref) {\r\n var _options$workWeek;\r\n var {\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold\r\n } = _ref;\r\n return tickGenerator({\r\n axisType: options.type,\r\n dataType: options.dataType,\r\n logBase: options.logarithmBase,\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold,\r\n axisDivisionFactor: adjustDivisionFactor(options.axisDivisionFactor || DEFAULT_AXIS_DIVISION_FACTOR),\r\n minorAxisDivisionFactor: adjustDivisionFactor(options.minorAxisDivisionFactor || DEFAULT_MINOR_AXIS_DIVISION_FACTOR),\r\n numberMultipliers: options.numberMultipliers,\r\n calculateMinors: options.minorTick.visible || options.minorGrid.visible || options.calculateMinors,\r\n allowDecimals: options.allowDecimals,\r\n endOnTick: options.endOnTick,\r\n incidentOccurred: incidentOccurred,\r\n firstDayOfWeek: null === (_options$workWeek = options.workWeek) || void 0 === _options$workWeek ? void 0 : _options$workWeek[0],\r\n skipTickGeneration: skipTickGeneration,\r\n skipCalculationLimits: options.skipCalculationLimits,\r\n generateExtraTick: options.generateExtraTick,\r\n minTickInterval: options.minTickInterval,\r\n rangeIsEmpty: rangeIsEmpty\r\n })\r\n}\r\n\r\nfunction createMajorTick(axis, renderer, skippedCategory) {\r\n var options = axis.getOptions();\r\n return tick(axis, renderer, options.tick, options.grid, skippedCategory, false)\r\n}\r\n\r\nfunction createMinorTick(axis, renderer) {\r\n var options = axis.getOptions();\r\n return tick(axis, renderer, options.minorTick, options.minorGrid)\r\n}\r\n\r\nfunction createBoundaryTick(axis, renderer, isFirst) {\r\n var options = axis.getOptions();\r\n return tick(axis, renderer, extend({}, options.tick, {\r\n visible: options.showCustomBoundaryTicks\r\n }), options.grid, void 0, false, isFirst ? -1 : 1)\r\n}\r\n\r\nfunction callAction(elements, action, actionArgument1, actionArgument2) {\r\n (elements || []).forEach(e => e[action](actionArgument1, actionArgument2))\r\n}\r\n\r\nfunction initTickCoords(ticks) {\r\n callAction(ticks, \"initCoords\")\r\n}\r\n\r\nfunction drawTickMarks(ticks, options) {\r\n callAction(ticks, \"drawMark\", options)\r\n}\r\n\r\nfunction drawGrids(ticks, drawLine) {\r\n callAction(ticks, \"drawGrid\", drawLine)\r\n}\r\n\r\nfunction updateTicksPosition(ticks, options, animate) {\r\n callAction(ticks, \"updateTickPosition\", options, animate)\r\n}\r\n\r\nfunction updateGridsPosition(ticks, animate) {\r\n callAction(ticks, \"updateGridPosition\", animate)\r\n}\r\n\r\nfunction cleanUpInvalidTicks(ticks) {\r\n var i = ticks.length - 1;\r\n for (i; i >= 0; i--) {\r\n if (!removeInvalidTick(ticks, i)) {\r\n break\r\n }\r\n }\r\n for (i = 0; i < ticks.length; i++) {\r\n if (removeInvalidTick(ticks, i)) {\r\n i--\r\n } else {\r\n break\r\n }\r\n }\r\n}\r\n\r\nfunction removeInvalidTick(ticks, i) {\r\n if (null === ticks[i].coords.x || null === ticks[i].coords.y) {\r\n ticks.splice(i, 1);\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nfunction validateAxisOptions(options) {\r\n var _labelOptions$minSpac;\r\n var labelOptions = options.label;\r\n var position = options.position;\r\n var defaultPosition = options.isHorizontal ? BOTTOM : LEFT;\r\n var secondaryPosition = options.isHorizontal ? TOP : RIGHT;\r\n var labelPosition = labelOptions.position;\r\n if (position !== defaultPosition && position !== secondaryPosition) {\r\n position = defaultPosition\r\n }\r\n if (!labelPosition || \"outside\" === labelPosition) {\r\n labelPosition = position\r\n } else if (\"inside\" === labelPosition) {\r\n labelPosition = {\r\n [TOP]: BOTTOM,\r\n [BOTTOM]: TOP,\r\n [LEFT]: RIGHT,\r\n [RIGHT]: LEFT\r\n } [position]\r\n }\r\n if (labelPosition !== defaultPosition && labelPosition !== secondaryPosition) {\r\n labelPosition = position\r\n }\r\n if (labelOptions.alignment !== CENTER && !labelOptions.userAlignment) {\r\n labelOptions.alignment = {\r\n [TOP]: CENTER,\r\n [BOTTOM]: CENTER,\r\n [LEFT]: RIGHT,\r\n [RIGHT]: LEFT\r\n } [labelPosition]\r\n }\r\n options.position = position;\r\n labelOptions.position = labelPosition;\r\n options.hoverMode = options.hoverMode ? options.hoverMode.toLowerCase() : \"none\";\r\n labelOptions.minSpacing = null !== (_labelOptions$minSpac = labelOptions.minSpacing) && void 0 !== _labelOptions$minSpac ? _labelOptions$minSpac : DEFAULT_AXIS_LABEL_SPACING;\r\n options.type && (options.type = options.type.toLowerCase());\r\n options.argumentType && (options.argumentType = options.argumentType.toLowerCase());\r\n options.valueType && (options.valueType = options.valueType.toLowerCase())\r\n}\r\n\r\nfunction getOptimalAngle(boxes, labelOpt) {\r\n var angle = 180 * _math.asin((boxes[0].height + labelOpt.minSpacing) / (boxes[1].x - boxes[0].x)) / _math.PI;\r\n return angle < 45 ? -45 : -90\r\n}\r\n\r\nfunction updateLabels(ticks, step, func) {\r\n ticks.forEach((function(tick, index) {\r\n if (tick.getContentContainer()) {\r\n if (index % step !== 0) {\r\n tick.removeLabel()\r\n } else if (func) {\r\n func(tick, index)\r\n }\r\n }\r\n }))\r\n}\r\n\r\nfunction getZoomBoundValue(optionValue, dataValue) {\r\n if (void 0 === optionValue) {\r\n return dataValue\r\n } else if (null === optionValue) {\r\n return\r\n } else {\r\n return optionValue\r\n }\r\n}\r\n\r\nfunction configureGenerator(options, axisDivisionFactor, viewPort, screenDelta, minTickInterval) {\r\n var tickGeneratorOptions = extend({}, options, {\r\n endOnTick: true,\r\n axisDivisionFactor: axisDivisionFactor,\r\n skipCalculationLimits: true,\r\n generateExtraTick: true,\r\n minTickInterval: minTickInterval\r\n });\r\n return function(tickInterval, skipTickGeneration, min, max, breaks) {\r\n return getTickGenerator(tickGeneratorOptions, _noop, skipTickGeneration, viewPort.isEmpty(), v => v, viewPort)({\r\n min: min,\r\n max: max,\r\n categories: viewPort.categories,\r\n isSpacedMargin: viewPort.isSpacedMargin\r\n }, screenDelta, tickInterval, isDefined(tickInterval), void 0, void 0, void 0, breaks)\r\n }\r\n}\r\n\r\nfunction getConstantLineSharpDirection(coord, axisCanvas) {\r\n return Math.max(axisCanvas.start, axisCanvas.end) !== coord ? 1 : -1\r\n}\r\nexport var Axis = function(renderSettings) {\r\n this._renderer = renderSettings.renderer;\r\n this._incidentOccurred = renderSettings.incidentOccurred;\r\n this._eventTrigger = renderSettings.eventTrigger;\r\n this._stripsGroup = renderSettings.stripsGroup;\r\n this._stripLabelAxesGroup = renderSettings.stripLabelAxesGroup;\r\n this._labelsAxesGroup = renderSettings.labelsAxesGroup;\r\n this._constantLinesGroup = renderSettings.constantLinesGroup;\r\n this._scaleBreaksGroup = renderSettings.scaleBreaksGroup;\r\n this._axesContainerGroup = renderSettings.axesContainerGroup;\r\n this._gridContainerGroup = renderSettings.gridGroup;\r\n this._axisCssPrefix = renderSettings.widgetClass + \"-\" + (renderSettings.axisClass ? renderSettings.axisClass + \"-\" : \"\");\r\n this._setType(renderSettings.axisType, renderSettings.drawingType);\r\n this._createAxisGroups();\r\n this._translator = this._createTranslator();\r\n this.isArgumentAxis = renderSettings.isArgumentAxis;\r\n this._viewport = {};\r\n this._prevDataInfo = {};\r\n this._firstDrawing = true;\r\n this._initRange = {};\r\n this._getTemplate = renderSettings.getTemplate\r\n};\r\nAxis.prototype = {\r\n constructor: Axis,\r\n _drawAxis() {\r\n var options = this._options;\r\n if (!options.visible) {\r\n return\r\n }\r\n this._axisElement = this._createAxisElement();\r\n this._updateAxisElementPosition();\r\n this._axisElement.attr({\r\n \"stroke-width\": options.width,\r\n stroke: options.color,\r\n \"stroke-opacity\": options.opacity\r\n }).sharp(this._getSharpParam(true), this.getAxisSharpDirection()).append(this._axisLineGroup)\r\n },\r\n _createPathElement(points, attr, sharpDirection) {\r\n return this.sharp(this._renderer.path(points, \"line\").attr(attr), sharpDirection)\r\n },\r\n sharp(svgElement) {\r\n var sharpDirection = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\r\n return svgElement.sharp(this._getSharpParam(), sharpDirection)\r\n },\r\n customPositionIsAvailable: () => false,\r\n getOrthogonalAxis: _noop,\r\n getCustomPosition: _noop,\r\n getCustomBoundaryPosition: _noop,\r\n resolveOverlappingForCustomPositioning: _noop,\r\n hasNonBoundaryPosition: () => false,\r\n customPositionIsBoundaryOrthogonalAxis: () => false,\r\n getResolvedBoundaryPosition() {\r\n return this.getOptions().position\r\n },\r\n getAxisSharpDirection() {\r\n var position = this.getResolvedBoundaryPosition();\r\n return this.hasNonBoundaryPosition() || position !== BOTTOM && position !== RIGHT ? 1 : -1\r\n },\r\n getSharpDirectionByCoords(coords) {\r\n var canvas = this._getCanvasStartEnd();\r\n var maxCoord = Math.max(canvas.start, canvas.end);\r\n return this.getRadius ? 0 : maxCoord !== coords[this._isHorizontal ? \"x\" : \"y\"] ? 1 : -1\r\n },\r\n _getGridLineDrawer: function() {\r\n var that = this;\r\n return function(tick, gridStyle) {\r\n var grid = that._getGridPoints(tick.coords);\r\n if (grid.points) {\r\n return that._createPathElement(grid.points, gridStyle, that.getSharpDirectionByCoords(tick.coords))\r\n }\r\n return null\r\n }\r\n },\r\n _getGridPoints: function(coords) {\r\n var isHorizontal = this._isHorizontal;\r\n var tickPositionField = isHorizontal ? \"x\" : \"y\";\r\n var orthogonalPositions = this._orthogonalPositions;\r\n var positionFrom = orthogonalPositions.start;\r\n var positionTo = orthogonalPositions.end;\r\n var borderOptions = this.borderOptions;\r\n var canvasStart = isHorizontal ? LEFT : TOP;\r\n var canvasEnd = isHorizontal ? RIGHT : BOTTOM;\r\n var axisCanvas = this.getCanvas();\r\n var canvas = {\r\n left: axisCanvas.left,\r\n right: axisCanvas.width - axisCanvas.right,\r\n top: axisCanvas.top,\r\n bottom: axisCanvas.height - axisCanvas.bottom\r\n };\r\n var firstBorderLinePosition = borderOptions.visible && borderOptions[canvasStart] ? canvas[canvasStart] : void 0;\r\n var lastBorderLinePosition = borderOptions.visible && borderOptions[canvasEnd] ? canvas[canvasEnd] : void 0;\r\n var minDelta = MAX_GRID_BORDER_ADHENSION + firstBorderLinePosition;\r\n var maxDelta = lastBorderLinePosition - MAX_GRID_BORDER_ADHENSION;\r\n if (this.areCoordsOutsideAxis(coords) || void 0 === coords[tickPositionField] || coords[tickPositionField] < minDelta || coords[tickPositionField] > maxDelta) {\r\n return {\r\n points: null\r\n }\r\n }\r\n return {\r\n points: isHorizontal ? null !== coords[tickPositionField] ? [coords[tickPositionField], positionFrom, coords[tickPositionField], positionTo] : null : null !== coords[tickPositionField] ? [positionFrom, coords[tickPositionField], positionTo, coords[tickPositionField]] : null\r\n }\r\n },\r\n _getConstantLinePos: function(parsedValue, canvasStart, canvasEnd) {\r\n var value = this._getTranslatedCoord(parsedValue);\r\n if (!isDefined(value) || value < _min(canvasStart, canvasEnd) || value > _max(canvasStart, canvasEnd)) {\r\n return\r\n }\r\n return value\r\n },\r\n _getConstantLineGraphicAttributes: function(value) {\r\n var positionFrom = this._orthogonalPositions.start;\r\n var positionTo = this._orthogonalPositions.end;\r\n return {\r\n points: this._isHorizontal ? [value, positionFrom, value, positionTo] : [positionFrom, value, positionTo, value]\r\n }\r\n },\r\n _createConstantLine: function(value, attr) {\r\n return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr, getConstantLineSharpDirection(value, this._getCanvasStartEnd()))\r\n },\r\n _drawConstantLineLabelText: function(text, x, y, _ref2, group) {\r\n var {\r\n font: font,\r\n cssClass: cssClass\r\n } = _ref2;\r\n return this._renderer.text(text, x, y).css(patchFontOptions(extend({}, this._options.label.font, font))).attr({\r\n align: \"center\",\r\n class: cssClass\r\n }).append(group)\r\n },\r\n _drawConstantLineLabels: function(parsedValue, lineLabelOptions, value, group) {\r\n var _text;\r\n var text = lineLabelOptions.text;\r\n var options = this._options;\r\n var labelOptions = options.label;\r\n this._checkAlignmentConstantLineLabels(lineLabelOptions);\r\n text = null !== (_text = text) && void 0 !== _text ? _text : this.formatLabel(parsedValue, labelOptions);\r\n var coords = this._getConstantLineLabelsCoords(value, lineLabelOptions);\r\n return this._drawConstantLineLabelText(text, coords.x, coords.y, lineLabelOptions, group)\r\n },\r\n _getStripPos: function(startValue, endValue, canvasStart, canvasEnd, range) {\r\n var isContinuous = !!(range.minVisible || range.maxVisible);\r\n var categories = (range.categories || []).reduce((function(result, cat) {\r\n result.push(cat.valueOf());\r\n return result\r\n }), []);\r\n var start;\r\n var end;\r\n var swap;\r\n var startCategoryIndex;\r\n var endCategoryIndex;\r\n if (!isContinuous) {\r\n if (isDefined(startValue) && isDefined(endValue)) {\r\n var parsedStartValue = this.parser(startValue);\r\n var parsedEndValue = this.parser(endValue);\r\n startCategoryIndex = inArray(isDefined(parsedStartValue) ? parsedStartValue.valueOf() : void 0, categories);\r\n endCategoryIndex = inArray(isDefined(parsedEndValue) ? parsedEndValue.valueOf() : void 0, categories);\r\n if (-1 === startCategoryIndex || -1 === endCategoryIndex) {\r\n return {\r\n from: 0,\r\n to: 0,\r\n outOfCanvas: true\r\n }\r\n }\r\n if (startCategoryIndex > endCategoryIndex) {\r\n swap = endValue;\r\n endValue = startValue;\r\n startValue = swap\r\n }\r\n }\r\n }\r\n if (isDefined(startValue)) {\r\n startValue = this.validateUnit(startValue, \"E2105\", \"strip\");\r\n start = this._getTranslatedCoord(startValue, -1)\r\n } else {\r\n start = canvasStart\r\n }\r\n if (isDefined(endValue)) {\r\n endValue = this.validateUnit(endValue, \"E2105\", \"strip\");\r\n end = this._getTranslatedCoord(endValue, 1)\r\n } else {\r\n end = canvasEnd\r\n }\r\n var stripPosition = start < end ? {\r\n from: start,\r\n to: end\r\n } : {\r\n from: end,\r\n to: start\r\n };\r\n var visibleArea = this.getVisibleArea();\r\n if (stripPosition.from <= visibleArea[0] && stripPosition.to <= visibleArea[0] || stripPosition.from >= visibleArea[1] && stripPosition.to >= visibleArea[1]) {\r\n stripPosition.outOfCanvas = true\r\n }\r\n return stripPosition\r\n },\r\n _getStripGraphicAttributes: function(fromPoint, toPoint) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var orthogonalPositions = this._orthogonalPositions;\r\n var positionFrom = orthogonalPositions.start;\r\n var positionTo = orthogonalPositions.end;\r\n if (this._isHorizontal) {\r\n x = fromPoint;\r\n y = _min(positionFrom, positionTo);\r\n width = toPoint - fromPoint;\r\n height = _abs(positionFrom - positionTo)\r\n } else {\r\n x = _min(positionFrom, positionTo);\r\n y = fromPoint;\r\n width = _abs(positionFrom - positionTo);\r\n height = _abs(fromPoint - toPoint)\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n _createStrip: function(attrs) {\r\n return this._renderer.rect(attrs.x, attrs.y, attrs.width, attrs.height)\r\n },\r\n _adjustStripLabels: function() {\r\n var that = this;\r\n this._strips.forEach((function(strip) {\r\n if (strip.label) {\r\n strip.label.attr(that._getAdjustedStripLabelCoords(strip))\r\n }\r\n }))\r\n },\r\n _adjustLabelsCoord(offset, maxWidth, checkCanvas) {\r\n var getContainerAttrs = tick => this._getLabelAdjustedCoord(tick, offset + (tick.labelOffset || 0), maxWidth, checkCanvas);\r\n this._majorTicks.forEach((function(tick) {\r\n if (tick.label) {\r\n tick.updateMultilineTextAlignment();\r\n tick.label.attr(getContainerAttrs(tick))\r\n } else {\r\n tick.templateContainer && tick.templateContainer.attr(getContainerAttrs(tick))\r\n }\r\n }))\r\n },\r\n _adjustLabels: function(offset) {\r\n var options = this.getOptions();\r\n var positionsAreConsistent = options.position === options.label.position;\r\n var maxSize = this._majorTicks.reduce((function(size, tick) {\r\n if (!tick.getContentContainer()) {\r\n return size\r\n }\r\n var bBox = tick.labelRotationAngle ? rotateBBox(tick.labelBBox, [tick.labelCoords.x, tick.labelCoords.y], -tick.labelRotationAngle) : tick.labelBBox;\r\n return {\r\n width: _max(size.width || 0, bBox.width),\r\n height: _max(size.height || 0, bBox.height),\r\n offset: _max(size.offset || 0, tick.labelOffset || 0)\r\n }\r\n }), {});\r\n var additionalOffset = positionsAreConsistent ? this._isHorizontal ? maxSize.height : maxSize.width : 0;\r\n this._adjustLabelsCoord(offset, maxSize.width);\r\n return offset + additionalOffset + (additionalOffset && this._options.label.indentFromAxis) + (positionsAreConsistent ? maxSize.offset : 0)\r\n },\r\n _getLabelAdjustedCoord: function(tick, offset, maxWidth) {\r\n offset = offset || 0;\r\n var options = this._options;\r\n var templateBox = tick.templateContainer && tick.templateContainer.getBBox();\r\n var box = templateBox || rotateBBox(tick.labelBBox, [tick.labelCoords.x, tick.labelCoords.y], -tick.labelRotationAngle || 0);\r\n var textAlign = tick.labelAlignment || options.label.alignment;\r\n var isDiscrete = \"discrete\" === this._options.type;\r\n var isFlatLabel = tick.labelRotationAngle % 90 === 0;\r\n var indentFromAxis = options.label.indentFromAxis;\r\n var labelPosition = options.label.position;\r\n var axisPosition = this._axisPosition;\r\n var labelCoords = tick.labelCoords;\r\n var labelX = labelCoords.x;\r\n var translateX;\r\n var translateY;\r\n if (this._isHorizontal) {\r\n if (labelPosition === BOTTOM) {\r\n translateY = axisPosition + indentFromAxis - box.y + offset\r\n } else {\r\n translateY = axisPosition - indentFromAxis - (box.y + box.height) - offset\r\n }\r\n if (textAlign === RIGHT) {\r\n translateX = isDiscrete && isFlatLabel ? tick.coords.x - (box.x + box.width) : labelX - box.x - box.width\r\n } else if (textAlign === LEFT) {\r\n translateX = isDiscrete && isFlatLabel ? labelX - box.x - (tick.coords.x - labelX) : labelX - box.x\r\n } else {\r\n translateX = labelX - box.x - box.width / 2\r\n }\r\n } else {\r\n translateY = labelCoords.y - box.y - box.height / 2;\r\n if (labelPosition === LEFT) {\r\n if (textAlign === LEFT) {\r\n translateX = axisPosition - indentFromAxis - maxWidth - box.x\r\n } else if (textAlign === CENTER) {\r\n translateX = axisPosition - indentFromAxis - maxWidth / 2 - box.x - box.width / 2\r\n } else {\r\n translateX = axisPosition - indentFromAxis - box.x - box.width\r\n }\r\n translateX -= offset\r\n } else {\r\n if (textAlign === RIGHT) {\r\n translateX = axisPosition + indentFromAxis + maxWidth - box.x - box.width\r\n } else if (textAlign === CENTER) {\r\n translateX = axisPosition + indentFromAxis + maxWidth / 2 - box.x - box.width / 2\r\n } else {\r\n translateX = axisPosition + indentFromAxis - box.x\r\n }\r\n translateX += offset\r\n }\r\n }\r\n return {\r\n translateX: translateX,\r\n translateY: translateY\r\n }\r\n },\r\n _createAxisConstantLineGroups: function() {\r\n var renderer = this._renderer;\r\n var classSelector = this._axisCssPrefix;\r\n var constantLinesClass = classSelector + \"constant-lines\";\r\n var insideGroup = renderer.g().attr({\r\n class: constantLinesClass\r\n });\r\n var outsideGroup1 = renderer.g().attr({\r\n class: constantLinesClass\r\n });\r\n var outsideGroup2 = renderer.g().attr({\r\n class: constantLinesClass\r\n });\r\n return {\r\n inside: insideGroup,\r\n outside1: outsideGroup1,\r\n left: outsideGroup1,\r\n top: outsideGroup1,\r\n outside2: outsideGroup2,\r\n right: outsideGroup2,\r\n bottom: outsideGroup2,\r\n remove: function() {\r\n this.inside.remove();\r\n this.outside1.remove();\r\n this.outside2.remove()\r\n },\r\n clear: function() {\r\n this.inside.clear();\r\n this.outside1.clear();\r\n this.outside2.clear()\r\n }\r\n }\r\n },\r\n _createAxisGroups: function() {\r\n var renderer = this._renderer;\r\n var classSelector = this._axisCssPrefix;\r\n this._axisGroup = renderer.g().attr({\r\n class: classSelector + \"axis\"\r\n }).enableLinks();\r\n this._axisStripGroup = renderer.g().attr({\r\n class: classSelector + \"strips\"\r\n });\r\n this._axisGridGroup = renderer.g().attr({\r\n class: classSelector + \"grid\"\r\n });\r\n this._axisElementsGroup = renderer.g().attr({\r\n class: classSelector + \"elements\"\r\n });\r\n this._axisLineGroup = renderer.g().attr({\r\n class: classSelector + \"line\"\r\n }).linkOn(this._axisGroup, \"axisLine\").linkAppend();\r\n this._axisTitleGroup = renderer.g().attr({\r\n class: classSelector + \"title\"\r\n }).append(this._axisGroup);\r\n this._axisConstantLineGroups = {\r\n above: this._createAxisConstantLineGroups(),\r\n under: this._createAxisConstantLineGroups()\r\n };\r\n this._axisStripLabelGroup = renderer.g().attr({\r\n class: classSelector + \"axis-labels\"\r\n })\r\n },\r\n _clearAxisGroups: function() {\r\n this._axisGroup.remove();\r\n this._axisStripGroup.remove();\r\n this._axisStripLabelGroup.remove();\r\n this._axisConstantLineGroups.above.remove();\r\n this._axisConstantLineGroups.under.remove();\r\n this._axisGridGroup.remove();\r\n this._axisTitleGroup.clear();\r\n if (!this._options.label.template || !this.isRendered()) {\r\n this._axisElementsGroup.remove();\r\n this._axisElementsGroup.clear()\r\n }\r\n this._axisLineGroup && this._axisLineGroup.clear();\r\n this._axisStripGroup && this._axisStripGroup.clear();\r\n this._axisGridGroup && this._axisGridGroup.clear();\r\n this._axisConstantLineGroups.above.clear();\r\n this._axisConstantLineGroups.under.clear();\r\n this._axisStripLabelGroup && this._axisStripLabelGroup.clear()\r\n },\r\n _getLabelFormatObject: function(value, labelOptions, range, point, tickInterval, ticks) {\r\n range = range || this._getViewportRange();\r\n var formatObject = {\r\n value: value,\r\n valueText: _format(value, {\r\n labelOptions: labelOptions,\r\n ticks: ticks || convertTicksToValues(this._majorTicks),\r\n tickInterval: null !== tickInterval && void 0 !== tickInterval ? tickInterval : this._tickInterval,\r\n dataType: this._options.dataType,\r\n logarithmBase: this._options.logarithmBase,\r\n type: this._options.type,\r\n showTransition: !this._options.marker.visible,\r\n point: point\r\n }) || \"\",\r\n min: range.minVisible,\r\n max: range.maxVisible\r\n };\r\n if (point) {\r\n formatObject.point = point\r\n }\r\n return formatObject\r\n },\r\n formatLabel: function(value, labelOptions, range, point, tickInterval, ticks) {\r\n var formatObject = this._getLabelFormatObject(value, labelOptions, range, point, tickInterval, ticks);\r\n return isFunction(labelOptions.customizeText) ? labelOptions.customizeText.call(formatObject, formatObject) : formatObject.valueText\r\n },\r\n formatHint: function(value, labelOptions, range) {\r\n var formatObject = this._getLabelFormatObject(value, labelOptions, range);\r\n return isFunction(labelOptions.customizeHint) ? labelOptions.customizeHint.call(formatObject, formatObject) : void 0\r\n },\r\n formatRange(startValue, endValue, interval, argumentFormat) {\r\n return formatRange({\r\n startValue: startValue,\r\n endValue: endValue,\r\n tickInterval: interval,\r\n argumentFormat: argumentFormat,\r\n axisOptions: this.getOptions()\r\n })\r\n },\r\n _setTickOffset: function() {\r\n var options = this._options;\r\n var discreteAxisDivisionMode = options.discreteAxisDivisionMode;\r\n this._tickOffset = +(\"crossLabels\" !== discreteAxisDivisionMode || !discreteAxisDivisionMode)\r\n },\r\n aggregatedPointBetweenTicks() {\r\n return \"crossTicks\" === this._options.aggregatedPointsPosition\r\n },\r\n resetApplyingAnimation: function(isFirstDrawing) {\r\n this._resetApplyingAnimation = true;\r\n if (isFirstDrawing) {\r\n this._firstDrawing = true\r\n }\r\n },\r\n isFirstDrawing() {\r\n return this._firstDrawing\r\n },\r\n getMargins: function() {\r\n var that = this;\r\n var {\r\n position: position,\r\n offset: offset,\r\n customPosition: customPosition,\r\n placeholderSize: placeholderSize,\r\n grid: grid,\r\n tick: tick,\r\n crosshairMargin: crosshairMargin\r\n } = that._options;\r\n var isDefinedCustomPositionOption = isDefined(customPosition);\r\n var boundaryPosition = that.getResolvedBoundaryPosition();\r\n var canvas = that.getCanvas();\r\n var cLeft = canvas.left;\r\n var cTop = canvas.top;\r\n var cRight = canvas.width - canvas.right;\r\n var cBottom = canvas.height - canvas.bottom;\r\n var edgeMarginCorrection = _max(grid.visible && grid.width || 0, tick.visible && tick.width || 0);\r\n var constantLineAboveSeries = that._axisConstantLineGroups.above;\r\n var constantLineUnderSeries = that._axisConstantLineGroups.under;\r\n var boxes = [that._axisElementsGroup, constantLineAboveSeries.outside1, constantLineAboveSeries.outside2, constantLineUnderSeries.outside1, constantLineUnderSeries.outside2, that._axisLineGroup].map(group => group && group.getBBox()).concat(function(group) {\r\n var box = group && group.getBBox();\r\n if (!box || box.isEmpty) {\r\n return box\r\n }\r\n if (that._isHorizontal) {\r\n box.x = cLeft;\r\n box.width = cRight - cLeft\r\n } else {\r\n box.y = cTop;\r\n box.height = cBottom - cTop\r\n }\r\n return box\r\n }(that._axisTitleGroup));\r\n var margins = calculateCanvasMargins(boxes, canvas);\r\n margins[position] += crosshairMargin;\r\n if (that.hasNonBoundaryPosition() && isDefinedCustomPositionOption) {\r\n margins[boundaryPosition] = 0\r\n }\r\n if (placeholderSize) {\r\n margins[position] = placeholderSize\r\n }\r\n if (edgeMarginCorrection) {\r\n if (that._isHorizontal && canvas.right < edgeMarginCorrection && margins.right < edgeMarginCorrection) {\r\n margins.right = edgeMarginCorrection\r\n }\r\n if (!that._isHorizontal && canvas.bottom < edgeMarginCorrection && margins.bottom < edgeMarginCorrection) {\r\n margins.bottom = edgeMarginCorrection\r\n }\r\n }\r\n if (!isDefinedCustomPositionOption && isDefined(offset)) {\r\n var moveByOffset = that.customPositionIsBoundary() && (offset > 0 && (boundaryPosition === LEFT || boundaryPosition === TOP) || offset < 0 && (boundaryPosition === RIGHT || boundaryPosition === BOTTOM));\r\n margins[boundaryPosition] -= moveByOffset ? offset : 0\r\n }\r\n return margins\r\n },\r\n validateUnit: function(unit, idError, parameters) {\r\n unit = this.parser(unit);\r\n if (void 0 === unit && idError) {\r\n this._incidentOccurred(idError, [parameters])\r\n }\r\n return unit\r\n },\r\n _setType: function(axisType, drawingType) {\r\n var axisTypeMethods;\r\n switch (axisType) {\r\n case \"xyAxes\":\r\n axisTypeMethods = xyMethods;\r\n break;\r\n case \"polarAxes\":\r\n axisTypeMethods = polarMethods\r\n }\r\n extend(this, axisTypeMethods[drawingType])\r\n },\r\n _getSharpParam: function() {\r\n return true\r\n },\r\n _disposeBreaksGroup: _noop,\r\n dispose: function() {\r\n [this._axisElementsGroup, this._axisStripGroup, this._axisGroup].forEach((function(g) {\r\n g.dispose()\r\n }));\r\n this._strips = this._title = null;\r\n this._axisStripGroup = this._axisConstantLineGroups = this._axisStripLabelGroup = this._axisBreaksGroup = null;\r\n this._axisLineGroup = this._axisElementsGroup = this._axisGridGroup = null;\r\n this._axisGroup = this._axisTitleGroup = null;\r\n this._axesContainerGroup = this._stripsGroup = this._constantLinesGroup = this._labelsAxesGroup = null;\r\n this._renderer = this._options = this._textOptions = this._textFontStyles = null;\r\n this._translator = null;\r\n this._majorTicks = this._minorTicks = null;\r\n this._disposeBreaksGroup();\r\n this._templatesRendered && this._templatesRendered.reject()\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n setPane: function(pane) {\r\n this.pane = pane;\r\n this._options.pane = pane\r\n },\r\n setTypes: function(type, axisType, typeSelector) {\r\n this._options.type = type || this._options.type;\r\n this._options[typeSelector] = axisType || this._options[typeSelector];\r\n this._updateTranslator()\r\n },\r\n resetTypes: function(typeSelector) {\r\n this._options.type = this._initTypes.type;\r\n this._options[typeSelector] = this._initTypes[typeSelector]\r\n },\r\n getTranslator: function() {\r\n return this._translator\r\n },\r\n updateOptions: function(options) {\r\n var that = this;\r\n var labelOpt = options.label;\r\n validateAxisOptions(options);\r\n that._options = options;\r\n options.tick = options.tick || {};\r\n options.minorTick = options.minorTick || {};\r\n options.grid = options.grid || {};\r\n options.minorGrid = options.minorGrid || {};\r\n options.title = options.title || {};\r\n options.marker = options.marker || {};\r\n that._initTypes = {\r\n type: options.type,\r\n argumentType: options.argumentType,\r\n valueType: options.valueType\r\n };\r\n that._setTickOffset();\r\n that._isHorizontal = options.isHorizontal;\r\n that.pane = options.pane;\r\n that.name = options.name;\r\n that.priority = options.priority;\r\n that._hasLabelFormat = \"\" !== labelOpt.format && isDefined(labelOpt.format);\r\n that._textOptions = {\r\n opacity: labelOpt.opacity,\r\n align: \"center\",\r\n class: labelOpt.cssClass\r\n };\r\n that._textFontStyles = patchFontOptions(labelOpt.font);\r\n if (options.type === constants.logarithmic) {\r\n if (options.logarithmBaseError) {\r\n that._incidentOccurred(\"E2104\");\r\n delete options.logarithmBaseError\r\n }\r\n }\r\n that._updateTranslator();\r\n that._createConstantLines();\r\n that._strips = (options.strips || []).map(o => createStrip(that, o));\r\n that._majorTicks = that._minorTicks = null;\r\n that._firstDrawing = true\r\n },\r\n calculateInterval: function(value, prevValue) {\r\n var options = this._options;\r\n if (!options || options.type !== constants.logarithmic) {\r\n return _abs(value - prevValue)\r\n }\r\n var {\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold\r\n } = new Range(this.getTranslator().getBusinessRange());\r\n return _abs(getLog(value, options.logarithmBase, allowNegatives, linearThreshold) - getLog(prevValue, options.logarithmBase, allowNegatives, linearThreshold))\r\n },\r\n getCanvasRange() {\r\n var translator = this._translator;\r\n return {\r\n startValue: translator.from(translator.translate(\"canvas_position_start\")),\r\n endValue: translator.from(translator.translate(\"canvas_position_end\"))\r\n }\r\n },\r\n _processCanvas: function(canvas) {\r\n return canvas\r\n },\r\n updateCanvas: function(canvas, canvasRedesign) {\r\n if (!canvasRedesign) {\r\n var positions = this._orthogonalPositions = {\r\n start: !this._isHorizontal ? canvas.left : canvas.top,\r\n end: !this._isHorizontal ? canvas.width - canvas.right : canvas.height - canvas.bottom\r\n };\r\n positions.center = positions.start + (positions.end - positions.start) / 2\r\n } else {\r\n this._orthogonalPositions = null\r\n }\r\n this._canvas = canvas;\r\n this._translator.updateCanvas(this._processCanvas(canvas));\r\n this._initAxisPositions()\r\n },\r\n getCanvas: function() {\r\n return this._canvas\r\n },\r\n getAxisShift() {\r\n return this._axisShift || 0\r\n },\r\n hideTitle: function() {\r\n if (this._options.title.text) {\r\n this._incidentOccurred(\"W2105\", [this._isHorizontal ? \"horizontal\" : \"vertical\"]);\r\n this._axisTitleGroup.clear()\r\n }\r\n },\r\n getTitle: function() {\r\n return this._title\r\n },\r\n hideOuterElements: function() {\r\n var options = this._options;\r\n if ((options.label.visible || this._outsideConstantLines.length) && !this._translator.getBusinessRange().isEmpty()) {\r\n this._incidentOccurred(\"W2106\", [this._isHorizontal ? \"horizontal\" : \"vertical\"]);\r\n this._axisElementsGroup.clear();\r\n callAction(this._outsideConstantLines, \"removeLabel\")\r\n }\r\n },\r\n _resolveLogarithmicOptionsForRange(range) {\r\n var options = this._options;\r\n if (options.type === constants.logarithmic) {\r\n range.addRange({\r\n allowNegatives: void 0 !== options.allowNegatives ? options.allowNegatives : range.min <= 0\r\n });\r\n if (!isNaN(options.linearThreshold)) {\r\n range.linearThreshold = options.linearThreshold\r\n }\r\n }\r\n },\r\n adjustViewport(businessRange) {\r\n var options = this._options;\r\n var isDiscrete = options.type === constants.discrete;\r\n var categories = this._seriesData && this._seriesData.categories || [];\r\n var wholeRange = this.adjustRange(getVizRangeObject(options.wholeRange));\r\n var visualRange = this.getViewport() || {};\r\n var result = new Range(businessRange);\r\n this._addConstantLinesToRange(result, \"minVisible\", \"maxVisible\");\r\n var minDefined = isDefined(visualRange.startValue);\r\n var maxDefined = isDefined(visualRange.endValue);\r\n if (!isDiscrete) {\r\n minDefined = minDefined && (!isDefined(wholeRange.endValue) || visualRange.startValue < wholeRange.endValue);\r\n maxDefined = maxDefined && (!isDefined(wholeRange.startValue) || visualRange.endValue > wholeRange.startValue)\r\n }\r\n var minVisible = minDefined ? visualRange.startValue : result.minVisible;\r\n var maxVisible = maxDefined ? visualRange.endValue : result.maxVisible;\r\n if (!isDiscrete) {\r\n var _wholeRange$startValu, _wholeRange$endValue;\r\n result.min = null !== (_wholeRange$startValu = wholeRange.startValue) && void 0 !== _wholeRange$startValu ? _wholeRange$startValu : result.min;\r\n result.max = null !== (_wholeRange$endValue = wholeRange.endValue) && void 0 !== _wholeRange$endValue ? _wholeRange$endValue : result.max\r\n } else {\r\n var categoriesInfo = getCategoriesInfo(categories, wholeRange.startValue, wholeRange.endValue);\r\n categories = categoriesInfo.categories;\r\n result.categories = categories\r\n }\r\n var adjustedVisualRange = adjustVisualRange({\r\n axisType: options.type,\r\n dataType: options.dataType,\r\n base: options.logarithmBase\r\n }, {\r\n startValue: minDefined ? visualRange.startValue : void 0,\r\n endValue: maxDefined ? visualRange.endValue : void 0,\r\n length: visualRange.length\r\n }, {\r\n categories: categories,\r\n min: wholeRange.startValue,\r\n max: wholeRange.endValue\r\n }, {\r\n categories: categories,\r\n min: minVisible,\r\n max: maxVisible\r\n });\r\n result.minVisible = adjustedVisualRange.startValue;\r\n result.maxVisible = adjustedVisualRange.endValue;\r\n !isDefined(result.min) && (result.min = result.minVisible);\r\n !isDefined(result.max) && (result.max = result.maxVisible);\r\n result.addRange({});\r\n this._resolveLogarithmicOptionsForRange(result);\r\n return result\r\n },\r\n adjustRange(range) {\r\n range = range || {};\r\n var isDiscrete = this._options.type === constants.discrete;\r\n var isLogarithmic = this._options.type === constants.logarithmic;\r\n var disabledNegatives = false === this._options.allowNegatives;\r\n if (isLogarithmic) {\r\n range.startValue = disabledNegatives && range.startValue <= 0 ? null : range.startValue;\r\n range.endValue = disabledNegatives && range.endValue <= 0 ? null : range.endValue\r\n }\r\n if (!isDiscrete && isDefined(range.startValue) && isDefined(range.endValue) && range.startValue > range.endValue) {\r\n var tmp = range.endValue;\r\n range.endValue = range.startValue;\r\n range.startValue = tmp\r\n }\r\n return range\r\n },\r\n _getVisualRangeUpdateMode(viewport, newRange, oppositeValue) {\r\n var value = this._options.visualRangeUpdateMode;\r\n var translator = this._translator;\r\n var range = this._seriesData;\r\n var prevDataInfo = this._prevDataInfo;\r\n if (prevDataInfo.isEmpty && !prevDataInfo.containsConstantLine) {\r\n return KEEP\r\n }\r\n if (!this.isArgumentAxis) {\r\n var _viewport = this.getViewport();\r\n if (!isDefined(_viewport.startValue) && !isDefined(_viewport.endValue) && !isDefined(_viewport.length)) {\r\n return RESET\r\n }\r\n }\r\n if (this.isArgumentAxis) {\r\n if (-1 === [SHIFT, KEEP, RESET].indexOf(value)) {\r\n if (range.axisType === constants.discrete) {\r\n var categories = range.categories;\r\n var newCategories = newRange.categories;\r\n var visualRange = this.visualRange();\r\n if (categories && newCategories && categories.length && -1 !== newCategories.map(c => c.valueOf()).join(\",\").indexOf(categories.map(c => c.valueOf()).join(\",\")) && (visualRange.startValue.valueOf() !== categories[0].valueOf() || visualRange.endValue.valueOf() !== categories[categories.length - 1].valueOf())) {\r\n value = KEEP\r\n } else {\r\n value = RESET\r\n }\r\n } else {\r\n var minPoint = translator.translate(range.min);\r\n var minVisiblePoint = translator.translate(viewport.startValue);\r\n var maxPoint = translator.translate(range.max);\r\n var maxVisiblePoint = translator.translate(viewport.endValue);\r\n if (minPoint === minVisiblePoint && maxPoint === maxVisiblePoint) {\r\n value = RESET\r\n } else if (minPoint !== minVisiblePoint && maxPoint === maxVisiblePoint) {\r\n value = SHIFT\r\n } else {\r\n value = KEEP\r\n }\r\n }\r\n if (value === KEEP && prevDataInfo.isEmpty && prevDataInfo.containsConstantLine) {\r\n value = RESET\r\n }\r\n }\r\n } else if (-1 === [KEEP, RESET].indexOf(value)) {\r\n if (oppositeValue === KEEP) {\r\n value = KEEP\r\n } else {\r\n value = RESET\r\n }\r\n }\r\n return value\r\n },\r\n _handleBusinessRangeChanged(oppositeVisualRangeUpdateMode, axisReinitialized, newRange) {\r\n var visualRange = this.visualRange();\r\n if (axisReinitialized || this._translator.getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n var visualRangeUpdateMode = this._lastVisualRangeUpdateMode = this._getVisualRangeUpdateMode(visualRange, newRange, oppositeVisualRangeUpdateMode);\r\n if (visualRangeUpdateMode === KEEP) {\r\n this._setVisualRange([visualRange.startValue, visualRange.endValue])\r\n } else if (visualRangeUpdateMode === RESET) {\r\n this._setVisualRange([null, null])\r\n } else if (visualRangeUpdateMode === SHIFT) {\r\n this._setVisualRange({\r\n length: this.getVisualRangeLength()\r\n })\r\n }\r\n },\r\n getVisualRangeLength(range) {\r\n var currentBusinessRange = range || this._translator.getBusinessRange();\r\n var {\r\n type: type\r\n } = this._options;\r\n var length;\r\n if (type === constants.logarithmic) {\r\n length = adjust(this.calculateInterval(currentBusinessRange.maxVisible, currentBusinessRange.minVisible))\r\n } else if (type === constants.discrete) {\r\n var categoriesInfo = getCategoriesInfo(currentBusinessRange.categories, currentBusinessRange.minVisible, currentBusinessRange.maxVisible);\r\n length = categoriesInfo.categories.length\r\n } else {\r\n length = currentBusinessRange.maxVisible - currentBusinessRange.minVisible\r\n }\r\n return length\r\n },\r\n getVisualRangeCenter(range, useMerge) {\r\n var translator = this.getTranslator();\r\n var businessRange = translator.getBusinessRange();\r\n var currentBusinessRange = useMerge ? extend(true, {}, businessRange, range || {}) : range || businessRange;\r\n var {\r\n type: type,\r\n logarithmBase: logarithmBase\r\n } = this._options;\r\n var center;\r\n if (!isDefined(currentBusinessRange.minVisible) || !isDefined(currentBusinessRange.maxVisible)) {\r\n return\r\n }\r\n if (type === constants.logarithmic) {\r\n var {\r\n allowNegatives: allowNegatives,\r\n linearThreshold: linearThreshold,\r\n minVisible: minVisible,\r\n maxVisible: maxVisible\r\n } = currentBusinessRange;\r\n center = raiseTo(adjust(getLog(maxVisible, logarithmBase, allowNegatives, linearThreshold) + getLog(minVisible, logarithmBase, allowNegatives, linearThreshold)) / 2, logarithmBase, allowNegatives, linearThreshold)\r\n } else if (type === constants.discrete) {\r\n var categoriesInfo = getCategoriesInfo(currentBusinessRange.categories, currentBusinessRange.minVisible, currentBusinessRange.maxVisible);\r\n var index = Math.ceil(categoriesInfo.categories.length / 2) - 1;\r\n center = businessRange.categories.indexOf(categoriesInfo.categories[index])\r\n } else {\r\n center = translator.toValue((currentBusinessRange.maxVisible.valueOf() + currentBusinessRange.minVisible.valueOf()) / 2)\r\n }\r\n return center\r\n },\r\n setBusinessRange(range, axisReinitialized, oppositeVisualRangeUpdateMode, argCategories) {\r\n var _that$_seriesData$min, _that$_seriesData$max;\r\n var options = this._options;\r\n var isDiscrete = options.type === constants.discrete;\r\n this._handleBusinessRangeChanged(oppositeVisualRangeUpdateMode, axisReinitialized, range);\r\n this._seriesData = new Range(range);\r\n var dataIsEmpty = this._seriesData.isEmpty();\r\n var rangeWithConstantLines = new Range(this._seriesData);\r\n this._addConstantLinesToRange(rangeWithConstantLines, \"minVisible\", \"maxVisible\");\r\n this._prevDataInfo = {\r\n isEmpty: dataIsEmpty,\r\n containsConstantLine: rangeWithConstantLines.containsConstantLine\r\n };\r\n this._seriesData.addRange({\r\n categories: options.categories,\r\n dataType: options.dataType,\r\n axisType: options.type,\r\n base: options.logarithmBase,\r\n invert: options.inverted\r\n });\r\n this._resolveLogarithmicOptionsForRange(this._seriesData);\r\n if (!isDiscrete) {\r\n if (!isDefined(this._seriesData.min) && !isDefined(this._seriesData.max)) {\r\n var visualRange = this.getViewport();\r\n visualRange && this._seriesData.addRange({\r\n min: visualRange.startValue,\r\n max: visualRange.endValue\r\n })\r\n }\r\n var synchronizedValue = options.synchronizedValue;\r\n if (isDefined(synchronizedValue)) {\r\n this._seriesData.addRange({\r\n min: synchronizedValue,\r\n max: synchronizedValue\r\n })\r\n }\r\n }\r\n this._seriesData.minVisible = null !== (_that$_seriesData$min = this._seriesData.minVisible) && void 0 !== _that$_seriesData$min ? _that$_seriesData$min : this._seriesData.min;\r\n this._seriesData.maxVisible = null !== (_that$_seriesData$max = this._seriesData.maxVisible) && void 0 !== _that$_seriesData$max ? _that$_seriesData$max : this._seriesData.max;\r\n if (!this.isArgumentAxis && options.showZero) {\r\n this._seriesData.correctValueZeroLevel()\r\n }\r\n this._seriesData.sortCategories(this.getCategoriesSorter(argCategories));\r\n this._seriesData.userBreaks = this._seriesData.isEmpty() ? [] : this._getScaleBreaks(options, this._seriesData, this._series, this.isArgumentAxis);\r\n this._translator.updateBusinessRange(this._getViewportRange())\r\n },\r\n _addConstantLinesToRange(dataRange, minValueField, maxValueField) {\r\n this._outsideConstantLines.concat(this._insideConstantLines || []).forEach(cl => {\r\n if (cl.options.extendAxis) {\r\n var value = cl.getParsedValue();\r\n dataRange.addRange({\r\n containsConstantLine: true,\r\n [minValueField]: value,\r\n [maxValueField]: value\r\n })\r\n }\r\n })\r\n },\r\n setGroupSeries: function(series) {\r\n this._series = series\r\n },\r\n getLabelsPosition: function() {\r\n var options = this._options;\r\n var position = options.position;\r\n var labelShift = options.label.indentFromAxis + (this._axisShift || 0) + this._constantLabelOffset;\r\n var axisPosition = this._axisPosition;\r\n return position === TOP || position === LEFT ? axisPosition - labelShift : axisPosition + labelShift\r\n },\r\n getFormattedValue: function(value, options, point) {\r\n var labelOptions = this._options.label;\r\n return isDefined(value) ? this.formatLabel(value, extend(true, {}, labelOptions, options), void 0, point) : null\r\n },\r\n _getBoundaryTicks: function(majors, viewPort) {\r\n var length = majors.length;\r\n var options = this._options;\r\n var customBounds = options.customBoundTicks;\r\n var min = viewPort.minVisible;\r\n var max = viewPort.maxVisible;\r\n var addMinMax = options.showCustomBoundaryTicks ? this._boundaryTicksVisibility : {};\r\n var boundaryTicks = [];\r\n if (options.type === constants.discrete) {\r\n if (this._tickOffset && 0 !== majors.length) {\r\n boundaryTicks = [majors[0], majors[majors.length - 1]]\r\n }\r\n } else if (customBounds) {\r\n if (addMinMax.min && isDefined(customBounds[0])) {\r\n boundaryTicks.push(customBounds[0])\r\n }\r\n if (addMinMax.max && isDefined(customBounds[1])) {\r\n boundaryTicks.push(customBounds[1])\r\n }\r\n } else {\r\n if (addMinMax.min && (0 === length || majors[0] > min)) {\r\n boundaryTicks.push(min)\r\n }\r\n if (addMinMax.max && (0 === length || majors[length - 1] < max)) {\r\n boundaryTicks.push(max)\r\n }\r\n }\r\n return boundaryTicks\r\n },\r\n setPercentLabelFormat: function() {\r\n if (!this._hasLabelFormat) {\r\n this._options.label.format = \"percent\"\r\n }\r\n },\r\n resetAutoLabelFormat: function() {\r\n if (!this._hasLabelFormat) {\r\n delete this._options.label.format\r\n }\r\n },\r\n getMultipleAxesSpacing: function() {\r\n return this._options.multipleAxesSpacing || 0\r\n },\r\n getTicksValues: function() {\r\n return {\r\n majorTicksValues: convertTicksToValues(this._majorTicks),\r\n minorTicksValues: convertTicksToValues(this._minorTicks)\r\n }\r\n },\r\n estimateTickInterval: function(canvas) {\r\n this.updateCanvas(canvas);\r\n return this._tickInterval !== this._getTicks(this._getViewportRange(), _noop, true).tickInterval\r\n },\r\n setTicks: function(ticks) {\r\n var majors = ticks.majorTicks || [];\r\n this._majorTicks = majors.map(createMajorTick(this, this._renderer, this._getSkippedCategory(majors)));\r\n this._minorTicks = (ticks.minorTicks || []).map(createMinorTick(this, this._renderer));\r\n this._isSynchronized = true\r\n },\r\n _adjustDivisionFactor: function(val) {\r\n return val\r\n },\r\n _getTicks: function(viewPort, incidentOccurred, skipTickGeneration) {\r\n var options = this._options;\r\n var customTicks = options.customTicks;\r\n var customMinorTicks = options.customMinorTicks;\r\n return getTickGenerator(options, incidentOccurred || this._incidentOccurred, skipTickGeneration, this._translator.getBusinessRange().isEmpty(), this._adjustDivisionFactor.bind(this), viewPort)({\r\n min: viewPort.minVisible,\r\n max: viewPort.maxVisible,\r\n categories: viewPort.categories,\r\n isSpacedMargin: viewPort.isSpacedMargin\r\n }, this._getScreenDelta(), options.tickInterval, \"ignore\" === options.label.overlappingBehavior || options.forceUserTickInterval, {\r\n majors: customTicks,\r\n minors: customMinorTicks\r\n }, options.minorTickInterval, options.minorTickCount, this._initialBreaks)\r\n },\r\n _createTicksAndLabelFormat: function(range, incidentOccurred) {\r\n var options = this._options;\r\n var ticks = this._getTicks(range, incidentOccurred, false);\r\n if (!range.isEmpty() && options.type === constants.discrete && \"datetime\" === options.dataType && !this._hasLabelFormat && ticks.ticks.length) {\r\n options.label.format = formatHelper.getDateFormatByTicks(ticks.ticks)\r\n }\r\n return ticks\r\n },\r\n getAggregationInfo(useAllAggregatedPoints, range) {\r\n var _visualRange$startVal, _visualRange$endValue, _that$_seriesData;\r\n var options = this._options;\r\n var marginOptions = this._marginOptions;\r\n var businessRange = new Range(this.getTranslator().getBusinessRange()).addRange(range);\r\n var visualRange = this.getViewport();\r\n var minVisible = null !== (_visualRange$startVal = null === visualRange || void 0 === visualRange ? void 0 : visualRange.startValue) && void 0 !== _visualRange$startVal ? _visualRange$startVal : businessRange.minVisible;\r\n var maxVisible = null !== (_visualRange$endValue = null === visualRange || void 0 === visualRange ? void 0 : visualRange.endValue) && void 0 !== _visualRange$endValue ? _visualRange$endValue : businessRange.maxVisible;\r\n var ticks = [];\r\n if (options.type === constants.discrete && options.aggregateByCategory) {\r\n return {\r\n aggregateByCategory: true\r\n }\r\n }\r\n var aggregationInterval = options.aggregationInterval;\r\n var aggregationGroupWidth = options.aggregationGroupWidth;\r\n if (!aggregationGroupWidth && marginOptions) {\r\n if (marginOptions.checkInterval) {\r\n aggregationGroupWidth = options.axisDivisionFactor\r\n }\r\n if (marginOptions.sizePointNormalState) {\r\n aggregationGroupWidth = Math.min(marginOptions.sizePointNormalState, options.axisDivisionFactor)\r\n }\r\n }\r\n var minInterval = !options.aggregationGroupWidth && !aggregationInterval && range.interval;\r\n var generateTicks = configureGenerator(options, aggregationGroupWidth, businessRange, this._getScreenDelta(), minInterval);\r\n var tickInterval = generateTicks(aggregationInterval, true, minVisible, maxVisible, null === (_that$_seriesData = this._seriesData) || void 0 === _that$_seriesData ? void 0 : _that$_seriesData.breaks).tickInterval;\r\n if (options.type !== constants.discrete) {\r\n var min = useAllAggregatedPoints ? businessRange.min : minVisible;\r\n var max = useAllAggregatedPoints ? businessRange.max : maxVisible;\r\n if (isDefined(min) && isDefined(max)) {\r\n var add = getAddFunction({\r\n base: options.logarithmBase,\r\n axisType: options.type,\r\n dataType: options.dataType\r\n }, false);\r\n var start = min;\r\n var end = max;\r\n if (!useAllAggregatedPoints) {\r\n var maxMinDistance = Math.max(this.calculateInterval(max, min), \"datetime\" === options.dataType ? dateUtils.dateToMilliseconds(tickInterval) : tickInterval);\r\n start = add(min, maxMinDistance, -1);\r\n end = add(max, maxMinDistance)\r\n }\r\n start = start < businessRange.min ? businessRange.min : start;\r\n end = end > businessRange.max ? businessRange.max : end;\r\n var breaks = this._getScaleBreaks(options, {\r\n minVisible: start,\r\n maxVisible: end\r\n }, this._series, this.isArgumentAxis);\r\n var filteredBreaks = this._filterBreaks(breaks, {\r\n minVisible: start,\r\n maxVisible: end\r\n }, options.breakStyle);\r\n ticks = generateTicks(tickInterval, false, start, end, filteredBreaks).ticks\r\n }\r\n }\r\n this._aggregationInterval = tickInterval;\r\n return {\r\n interval: tickInterval,\r\n ticks: ticks\r\n }\r\n },\r\n getTickInterval() {\r\n return this._tickInterval\r\n },\r\n getAggregationInterval() {\r\n return this._aggregationInterval\r\n },\r\n createTicks: function(canvas) {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var options = that._options;\r\n if (!canvas) {\r\n return\r\n }\r\n that._isSynchronized = false;\r\n that.updateCanvas(canvas);\r\n var range = that._getViewportRange();\r\n that._initialBreaks = range.breaks = this._seriesData.breaks = that._filterBreaks(this._seriesData.userBreaks, range, options.breakStyle);\r\n that._estimatedTickInterval = that._getTicks(that.adjustViewport(this._seriesData), _noop, true).tickInterval;\r\n var margins = this._calculateValueMargins();\r\n range.addRange({\r\n minVisible: margins.minValue,\r\n maxVisible: margins.maxValue,\r\n isSpacedMargin: margins.isSpacedMargin\r\n });\r\n var ticks = that._createTicksAndLabelFormat(range);\r\n var boundaryTicks = that._getBoundaryTicks(ticks.ticks, that._getViewportRange());\r\n if (options.showCustomBoundaryTicks && boundaryTicks.length) {\r\n that._boundaryTicks = [boundaryTicks[0]].map(createBoundaryTick(that, renderer, true));\r\n if (boundaryTicks.length > 1) {\r\n that._boundaryTicks = that._boundaryTicks.concat([boundaryTicks[1]].map(createBoundaryTick(that, renderer, false)))\r\n }\r\n } else {\r\n that._boundaryTicks = []\r\n }\r\n var minors = (ticks.minorTicks || []).filter((function(minor) {\r\n return !boundaryTicks.some((function(boundary) {\r\n return valueOf(boundary) === valueOf(minor)\r\n }))\r\n }));\r\n that._tickInterval = ticks.tickInterval;\r\n that._minorTickInterval = ticks.minorTickInterval;\r\n var oldMajorTicks = that._majorTicks || [];\r\n var majorTicksByValues = oldMajorTicks.reduce((r, t) => {\r\n r[t.value.valueOf()] = t;\r\n return r\r\n }, {});\r\n var sameType = type(ticks.ticks[0]) === type(oldMajorTicks[0] && oldMajorTicks[0].value);\r\n var skippedCategory = that._getSkippedCategory(ticks.ticks);\r\n var majorTicks = ticks.ticks.map(v => {\r\n var tick = majorTicksByValues[v.valueOf()];\r\n if (tick && sameType) {\r\n delete majorTicksByValues[v.valueOf()];\r\n tick.setSkippedCategory(skippedCategory);\r\n return tick\r\n } else {\r\n return createMajorTick(that, renderer, skippedCategory)(v)\r\n }\r\n });\r\n that._majorTicks = majorTicks;\r\n var oldMinorTicks = that._minorTicks || [];\r\n that._minorTicks = minors.map((v, i) => {\r\n var minorTick = oldMinorTicks[i];\r\n if (minorTick) {\r\n minorTick.updateValue(v);\r\n return minorTick\r\n }\r\n return createMinorTick(that, renderer)(v)\r\n });\r\n that._ticksToRemove = Object.keys(majorTicksByValues).map(k => majorTicksByValues[k]).concat(oldMinorTicks.slice(that._minorTicks.length, oldMinorTicks.length));\r\n that._ticksToRemove.forEach(t => {\r\n var _t$label;\r\n return null === (_t$label = t.label) || void 0 === _t$label ? void 0 : _t$label.removeTitle()\r\n });\r\n if (ticks.breaks) {\r\n that._seriesData.breaks = ticks.breaks\r\n }\r\n that._reinitTranslator(that._getViewportRange())\r\n },\r\n _reinitTranslator: function(range) {\r\n var translator = this._translator;\r\n if (this._isSynchronized) {\r\n return\r\n }\r\n translator.updateBusinessRange(range)\r\n },\r\n _getViewportRange() {\r\n return this.adjustViewport(this._seriesData)\r\n },\r\n setMarginOptions: function(options) {\r\n this._marginOptions = options\r\n },\r\n getMarginOptions() {\r\n var _this$_marginOptions;\r\n return null !== (_this$_marginOptions = this._marginOptions) && void 0 !== _this$_marginOptions ? _this$_marginOptions : {}\r\n },\r\n _calculateRangeInterval: function(interval) {\r\n var isDateTime = \"datetime\" === this._options.dataType;\r\n var minArgs = [];\r\n var addToArgs = function(value) {\r\n isDefined(value) && minArgs.push(isDateTime ? dateUtils.dateToMilliseconds(value) : value)\r\n };\r\n addToArgs(this._tickInterval);\r\n addToArgs(this._estimatedTickInterval);\r\n isDefined(interval) && minArgs.push(interval);\r\n addToArgs(this._aggregationInterval);\r\n return this._calculateWorkWeekInterval(_min.apply(this, minArgs))\r\n },\r\n _calculateWorkWeekInterval(businessInterval) {\r\n var options = this._options;\r\n if (\"datetime\" === options.dataType && options.workdaysOnly && businessInterval) {\r\n var workWeek = options.workWeek.length * dateIntervals.day;\r\n var weekend = dateIntervals.week - workWeek;\r\n if (workWeek !== businessInterval && weekend < businessInterval) {\r\n var weekendsCount = Math.ceil(businessInterval / dateIntervals.week);\r\n businessInterval -= weekend * weekendsCount\r\n } else if (weekend >= businessInterval && businessInterval > dateIntervals.day) {\r\n businessInterval = dateIntervals.day\r\n }\r\n }\r\n return businessInterval\r\n },\r\n _getConvertIntervalCoefficient(intervalInPx, screenDelta) {\r\n var ratioOfCanvasRange = this._translator.ratioOfCanvasRange();\r\n return ratioOfCanvasRange / (ratioOfCanvasRange * screenDelta / (intervalInPx + screenDelta))\r\n },\r\n _calculateValueMargins(ticks) {\r\n this._resetMargins();\r\n var margins = this.getMarginOptions();\r\n var marginSize = (margins.size || 0) / 2;\r\n var options = this._options;\r\n var dataRange = this._getViewportRange();\r\n var viewPort = this.getViewport();\r\n var screenDelta = this._getScreenDelta();\r\n var isDiscrete = -1 !== (options.type || \"\").indexOf(constants.discrete);\r\n var valueMarginsEnabled = options.valueMarginsEnabled && !isDiscrete && !this.customPositionIsBoundaryOrthogonalAxis();\r\n var translator = this._translator;\r\n var minValueMargin = options.minValueMargin;\r\n var maxValueMargin = options.maxValueMargin;\r\n var minPadding = 0;\r\n var maxPadding = 0;\r\n var interval = 0;\r\n var rangeInterval;\r\n if (dataRange.stubData || !screenDelta) {\r\n return {\r\n startPadding: 0,\r\n endPadding: 0\r\n }\r\n }\r\n if (this.isArgumentAxis && margins.checkInterval) {\r\n rangeInterval = this._calculateRangeInterval(dataRange.interval);\r\n var pxInterval = translator.getInterval(rangeInterval);\r\n if (isFinite(pxInterval)) {\r\n interval = Math.ceil(pxInterval / (2 * this._getConvertIntervalCoefficient(pxInterval, screenDelta)))\r\n } else {\r\n rangeInterval = 0\r\n }\r\n }\r\n var minPercentPadding;\r\n var maxPercentPadding;\r\n var maxPaddingValue = screenDelta * MAX_MARGIN_VALUE / 2;\r\n if (valueMarginsEnabled) {\r\n if (isDefined(minValueMargin)) {\r\n minPercentPadding = isFinite(minValueMargin) ? minValueMargin : 0\r\n } else if (!this.isArgumentAxis && margins.checkInterval && valueOf(dataRange.minVisible) > 0 && valueOf(dataRange.minVisible) === valueOf(dataRange.min)) {\r\n minPadding = MIN_BAR_MARGIN\r\n } else {\r\n minPadding = Math.max(marginSize, interval);\r\n minPadding = Math.min(maxPaddingValue, minPadding)\r\n }\r\n if (isDefined(maxValueMargin)) {\r\n maxPercentPadding = isFinite(maxValueMargin) ? maxValueMargin : 0\r\n } else if (!this.isArgumentAxis && margins.checkInterval && valueOf(dataRange.maxVisible) < 0 && valueOf(dataRange.maxVisible) === valueOf(dataRange.max)) {\r\n maxPadding = MIN_BAR_MARGIN\r\n } else {\r\n maxPadding = Math.max(marginSize, interval);\r\n maxPadding = Math.min(maxPaddingValue, maxPadding)\r\n }\r\n }\r\n var percentStick = margins.percentStick && !this.isArgumentAxis;\r\n if (percentStick) {\r\n if (1 === _abs(dataRange.max)) {\r\n maxPadding = 0\r\n }\r\n if (1 === _abs(dataRange.min)) {\r\n minPadding = 0\r\n }\r\n }\r\n var canvasStartEnd = this._getCanvasStartEnd();\r\n var commonMargin = 1 + (minPercentPadding || 0) + (maxPercentPadding || 0);\r\n var screenDeltaWithMargins = (screenDelta - minPadding - maxPadding) / commonMargin || screenDelta;\r\n if (void 0 !== minPercentPadding || void 0 !== maxPercentPadding) {\r\n if (void 0 !== minPercentPadding) {\r\n minPadding = screenDeltaWithMargins * minPercentPadding\r\n }\r\n if (void 0 !== maxPercentPadding) {\r\n maxPadding = screenDeltaWithMargins * maxPercentPadding\r\n }\r\n }\r\n var minValue;\r\n var maxValue;\r\n if (options.type !== constants.discrete && ticks && ticks.length > 1 && !options.skipViewportExtending && !viewPort.action && false !== options.endOnTick) {\r\n var length = ticks.length;\r\n var firstTickPosition = translator.translate(ticks[0].value);\r\n var lastTickPosition = translator.translate(ticks[length - 1].value);\r\n var invertMultiplier = firstTickPosition > lastTickPosition ? -1 : 1;\r\n var minTickPadding = _max(invertMultiplier * (canvasStartEnd.start - firstTickPosition), 0);\r\n var maxTickPadding = _max(invertMultiplier * (lastTickPosition - canvasStartEnd.end), 0);\r\n if (minTickPadding > minPadding || maxTickPadding > maxPadding) {\r\n var commonPadding = maxTickPadding + minTickPadding;\r\n var coeff = this._getConvertIntervalCoefficient(commonPadding, screenDelta);\r\n if (minTickPadding >= minPadding) {\r\n minValue = ticks[0].value\r\n }\r\n if (maxTickPadding >= maxPadding) {\r\n maxValue = ticks[length - 1].value\r\n }\r\n minPadding = _max(minTickPadding, minPadding) / coeff;\r\n maxPadding = _max(maxTickPadding, maxPadding) / coeff\r\n }\r\n }\r\n minPercentPadding = void 0 === minPercentPadding ? minPadding / screenDeltaWithMargins : minPercentPadding;\r\n maxPercentPadding = void 0 === maxPercentPadding ? maxPadding / screenDeltaWithMargins : maxPercentPadding;\r\n if (!isDiscrete) {\r\n if (this._translator.isInverted()) {\r\n var _minValue, _maxValue;\r\n minValue = null !== (_minValue = minValue) && void 0 !== _minValue ? _minValue : translator.from(canvasStartEnd.start + screenDelta * minPercentPadding, -1);\r\n maxValue = null !== (_maxValue = maxValue) && void 0 !== _maxValue ? _maxValue : translator.from(canvasStartEnd.end - screenDelta * maxPercentPadding, 1)\r\n } else {\r\n var _minValue2, _maxValue2;\r\n minValue = null !== (_minValue2 = minValue) && void 0 !== _minValue2 ? _minValue2 : translator.from(canvasStartEnd.start - screenDelta * minPercentPadding, -1);\r\n maxValue = null !== (_maxValue2 = maxValue) && void 0 !== _maxValue2 ? _maxValue2 : translator.from(canvasStartEnd.end + screenDelta * maxPercentPadding, 1)\r\n }\r\n }\r\n var {\r\n correctedMin: correctedMin,\r\n correctedMax: correctedMax,\r\n start: start,\r\n end: end\r\n } = this.getCorrectedValuesToZero(minValue, maxValue);\r\n minPadding = null !== start && void 0 !== start ? start : minPadding;\r\n maxPadding = null !== end && void 0 !== end ? end : maxPadding;\r\n return {\r\n startPadding: translator.isInverted() ? maxPadding : minPadding,\r\n endPadding: translator.isInverted() ? minPadding : maxPadding,\r\n minValue: null !== correctedMin && void 0 !== correctedMin ? correctedMin : minValue,\r\n maxValue: null !== correctedMax && void 0 !== correctedMax ? correctedMax : maxValue,\r\n interval: rangeInterval,\r\n isSpacedMargin: minPadding === maxPadding && 0 !== minPadding\r\n }\r\n },\r\n getCorrectedValuesToZero(minValue, maxValue) {\r\n var that = this;\r\n var translator = that._translator;\r\n var canvasStartEnd = that._getCanvasStartEnd();\r\n var dataRange = that._getViewportRange();\r\n var screenDelta = that._getScreenDelta();\r\n var options = that._options;\r\n var start;\r\n var end;\r\n var correctedMin;\r\n var correctedMax;\r\n var correctZeroLevel = (minPoint, maxPoint) => {\r\n var minExpectedPadding = _abs(canvasStartEnd.start - minPoint);\r\n var maxExpectedPadding = _abs(canvasStartEnd.end - maxPoint);\r\n var coeff = that._getConvertIntervalCoefficient(minExpectedPadding + maxExpectedPadding, screenDelta);\r\n start = minExpectedPadding / coeff;\r\n end = maxExpectedPadding / coeff\r\n };\r\n if (!that.isArgumentAxis && \"datetime\" !== options.dataType) {\r\n if (minValue * dataRange.min <= 0 && minValue * dataRange.minVisible <= 0) {\r\n correctZeroLevel(translator.translate(0), translator.translate(maxValue));\r\n correctedMin = 0\r\n }\r\n if (maxValue * dataRange.max <= 0 && maxValue * dataRange.maxVisible <= 0) {\r\n correctZeroLevel(translator.translate(minValue), translator.translate(0));\r\n correctedMax = 0\r\n }\r\n }\r\n return {\r\n start: isFinite(start) ? start : null,\r\n end: isFinite(end) ? end : null,\r\n correctedMin: correctedMin,\r\n correctedMax: correctedMax\r\n }\r\n },\r\n applyMargins() {\r\n if (this._isSynchronized) {\r\n return\r\n }\r\n var margins = this._calculateValueMargins(this._majorTicks);\r\n var canvas = extend({}, this._canvas, {\r\n startPadding: margins.startPadding,\r\n endPadding: margins.endPadding\r\n });\r\n this._translator.updateCanvas(this._processCanvas(canvas));\r\n if (isFinite(margins.interval)) {\r\n var br = this._translator.getBusinessRange();\r\n br.addRange({\r\n interval: margins.interval\r\n });\r\n this._translator.updateBusinessRange(br)\r\n }\r\n },\r\n _resetMargins: function() {\r\n this._reinitTranslator(this._getViewportRange());\r\n if (this._canvas) {\r\n this._translator.updateCanvas(this._processCanvas(this._canvas))\r\n }\r\n },\r\n _createConstantLines() {\r\n var constantLines = (this._options.constantLines || []).map(o => createConstantLine(this, o));\r\n this._outsideConstantLines = constantLines.filter(l => \"outside\" === l.labelPosition);\r\n this._insideConstantLines = constantLines.filter(l => \"inside\" === l.labelPosition)\r\n },\r\n draw: function(canvas, borderOptions) {\r\n var that = this;\r\n var options = this._options;\r\n that.borderOptions = borderOptions || {\r\n visible: false\r\n };\r\n that._resetMargins();\r\n that.createTicks(canvas);\r\n that.applyMargins();\r\n that._clearAxisGroups();\r\n initTickCoords(that._majorTicks);\r\n initTickCoords(that._minorTicks);\r\n initTickCoords(that._boundaryTicks);\r\n that._axisGroup.append(that._axesContainerGroup);\r\n that._drawAxis();\r\n that._drawTitle();\r\n drawTickMarks(that._majorTicks, options.tick);\r\n drawTickMarks(that._minorTicks, options.minorTick);\r\n drawTickMarks(that._boundaryTicks, options.tick);\r\n var drawGridLine = that._getGridLineDrawer();\r\n drawGrids(that._majorTicks, drawGridLine);\r\n drawGrids(that._minorTicks, drawGridLine);\r\n callAction(that._majorTicks, \"drawLabel\", that._getViewportRange(), that._getTemplate(options.label.template));\r\n that._templatesRendered && that._templatesRendered.reject();\r\n that._templatesRendered = new Deferred;\r\n that._majorTicks.forEach((function(tick) {\r\n tick.labelRotationAngle = 0;\r\n tick.labelAlignment = void 0;\r\n tick.labelOffset = 0\r\n }));\r\n callAction(that._outsideConstantLines.concat(that._insideConstantLines), \"draw\");\r\n callAction(that._strips, \"draw\");\r\n that._dateMarkers = that._drawDateMarkers() || [];\r\n that._stripLabelAxesGroup && that._axisStripLabelGroup.append(that._stripLabelAxesGroup);\r\n that._gridContainerGroup && that._axisGridGroup.append(that._gridContainerGroup);\r\n that._stripsGroup && that._axisStripGroup.append(that._stripsGroup);\r\n that._labelsAxesGroup && that._axisElementsGroup.append(that._labelsAxesGroup);\r\n if (that._constantLinesGroup) {\r\n that._axisConstantLineGroups.above.inside.append(that._constantLinesGroup.above);\r\n that._axisConstantLineGroups.above.outside1.append(that._constantLinesGroup.above);\r\n that._axisConstantLineGroups.above.outside2.append(that._constantLinesGroup.above);\r\n that._axisConstantLineGroups.under.inside.append(that._constantLinesGroup.under);\r\n that._axisConstantLineGroups.under.outside1.append(that._constantLinesGroup.under);\r\n that._axisConstantLineGroups.under.outside2.append(that._constantLinesGroup.under)\r\n }\r\n that._measureTitle();\r\n measureLabels(that._majorTicks);\r\n !options.label.template && that._applyWordWrap();\r\n measureLabels(that._outsideConstantLines);\r\n measureLabels(that._insideConstantLines);\r\n measureLabels(that._strips);\r\n measureLabels(that._dateMarkers);\r\n that._adjustConstantLineLabels(that._insideConstantLines);\r\n that._adjustStripLabels();\r\n var offset = that._constantLabelOffset = that._adjustConstantLineLabels(that._outsideConstantLines);\r\n if (!that._translator.getBusinessRange().isEmpty()) {\r\n that._setLabelsPlacement();\r\n offset = that._adjustLabels(offset)\r\n }\r\n when.apply(this, that._majorTicks.map(tick => tick.getTemplateDeferred())).done(() => {\r\n that._templatesRendered.resolve()\r\n });\r\n offset = that._adjustDateMarkers(offset);\r\n that._adjustTitle(offset)\r\n },\r\n getTemplatesDef() {\r\n return this._templatesRendered\r\n },\r\n setRenderedState(state) {\r\n this._drawn = state\r\n },\r\n isRendered() {\r\n return this._drawn\r\n },\r\n _applyWordWrap() {\r\n var convertedTickInterval;\r\n var textWidth;\r\n var textHeight;\r\n var options = this._options;\r\n var tickInterval = this._tickInterval;\r\n if (isDefined(tickInterval)) {\r\n convertedTickInterval = this.getTranslator().getInterval(\"datetime\" === options.dataType ? dateUtils.dateToMilliseconds(tickInterval) : tickInterval)\r\n }\r\n var displayMode = this._validateDisplayMode(options.label.displayMode);\r\n var overlappingMode = this._validateOverlappingMode(options.label.overlappingBehavior, displayMode);\r\n var wordWrapMode = options.label.wordWrap || \"none\";\r\n var overflowMode = options.label.textOverflow || \"none\";\r\n if ((\"none\" !== wordWrapMode || \"none\" !== overflowMode) && displayMode !== ROTATE && overlappingMode !== ROTATE && \"auto\" !== overlappingMode) {\r\n var usefulSpace = isDefined(options.placeholderSize) ? options.placeholderSize - options.label.indentFromAxis : void 0;\r\n if (this._isHorizontal) {\r\n textWidth = convertedTickInterval;\r\n textHeight = usefulSpace\r\n } else {\r\n textWidth = usefulSpace;\r\n textHeight = convertedTickInterval\r\n }\r\n var correctByWidth = false;\r\n var correctByHeight = false;\r\n if (textWidth) {\r\n if (this._majorTicks.some(tick => tick.labelBBox.width > textWidth)) {\r\n correctByWidth = true\r\n }\r\n }\r\n if (textHeight) {\r\n if (this._majorTicks.some(tick => tick.labelBBox.height > textHeight)) {\r\n correctByHeight = true\r\n }\r\n }\r\n if (correctByWidth || correctByHeight) {\r\n this._majorTicks.forEach(tick => {\r\n tick.label && tick.label.setMaxSize(textWidth, textHeight, options.label)\r\n });\r\n measureLabels(this._majorTicks)\r\n }\r\n }\r\n },\r\n _measureTitle: _noop,\r\n animate() {\r\n callAction(this._majorTicks, \"animateLabels\")\r\n },\r\n updateSize(canvas, animate) {\r\n var updateTitle = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n this.updateCanvas(canvas);\r\n if (updateTitle) {\r\n this._checkTitleOverflow();\r\n this._measureTitle();\r\n this._updateTitleCoords()\r\n }\r\n this._reinitTranslator(this._getViewportRange());\r\n this.applyMargins();\r\n var animationEnabled = !this._firstDrawing && animate;\r\n var options = this._options;\r\n initTickCoords(this._majorTicks);\r\n initTickCoords(this._minorTicks);\r\n initTickCoords(this._boundaryTicks);\r\n if (this._resetApplyingAnimation && !this._firstDrawing) {\r\n this._resetStartCoordinates()\r\n }\r\n cleanUpInvalidTicks(this._majorTicks);\r\n cleanUpInvalidTicks(this._minorTicks);\r\n cleanUpInvalidTicks(this._boundaryTicks);\r\n if (this._axisElement) {\r\n this._updateAxisElementPosition()\r\n }\r\n updateTicksPosition(this._majorTicks, options.tick, animationEnabled);\r\n updateTicksPosition(this._minorTicks, options.minorTick, animationEnabled);\r\n updateTicksPosition(this._boundaryTicks, options.tick);\r\n callAction(this._majorTicks, \"updateLabelPosition\", animationEnabled);\r\n this._outsideConstantLines.concat(this._insideConstantLines || []).forEach(l => l.updatePosition(animationEnabled));\r\n callAction(this._strips, \"updatePosition\", animationEnabled);\r\n updateGridsPosition(this._majorTicks, animationEnabled);\r\n updateGridsPosition(this._minorTicks, animationEnabled);\r\n if (animationEnabled) {\r\n callAction(this._ticksToRemove || [], \"fadeOutElements\")\r\n }\r\n this.prepareAnimation();\r\n this._ticksToRemove = null;\r\n if (!this._translator.getBusinessRange().isEmpty()) {\r\n this._firstDrawing = false\r\n }\r\n this._resetApplyingAnimation = false;\r\n this._updateLabelsPosition()\r\n },\r\n _updateLabelsPosition: _noop,\r\n prepareAnimation() {\r\n var action = \"saveCoords\";\r\n callAction(this._majorTicks, action);\r\n callAction(this._minorTicks, action);\r\n callAction(this._insideConstantLines, action);\r\n callAction(this._outsideConstantLines, action);\r\n callAction(this._strips, action)\r\n },\r\n _resetStartCoordinates() {\r\n var action = \"resetCoordinates\";\r\n callAction(this._majorTicks, action);\r\n callAction(this._minorTicks, action);\r\n callAction(this._insideConstantLines, action);\r\n callAction(this._outsideConstantLines, action);\r\n callAction(this._strips, action)\r\n },\r\n applyClipRects: function(elementsClipID, canvasClipID) {\r\n this._axisGroup.attr({\r\n \"clip-path\": canvasClipID\r\n });\r\n this._axisStripGroup.attr({\r\n \"clip-path\": elementsClipID\r\n });\r\n this._axisElementsGroup.attr({\r\n \"clip-path\": canvasClipID\r\n })\r\n },\r\n _validateVisualRange(optionValue) {\r\n var range = getVizRangeObject(optionValue);\r\n if (void 0 !== range.startValue) {\r\n range.startValue = this.validateUnit(range.startValue)\r\n }\r\n if (void 0 !== range.endValue) {\r\n range.endValue = this.validateUnit(range.endValue)\r\n }\r\n return convertVisualRangeObject(range, !_isArray(optionValue))\r\n },\r\n _validateOptions(options) {\r\n options.wholeRange = this._validateVisualRange(options.wholeRange);\r\n options.visualRange = options._customVisualRange = this._validateVisualRange(options._customVisualRange);\r\n this._setVisualRange(options._customVisualRange)\r\n },\r\n validate() {\r\n var options = this._options;\r\n var dataType = this.isArgumentAxis ? options.argumentType : options.valueType;\r\n var parser = dataType ? getParser(dataType) : function(unit) {\r\n return unit\r\n };\r\n this.parser = parser;\r\n options.dataType = dataType;\r\n this._validateOptions(options)\r\n },\r\n resetVisualRange(isSilent) {\r\n this._seriesData.minVisible = this._seriesData.min;\r\n this._seriesData.maxVisible = this._seriesData.max;\r\n this.handleZooming([null, null], {\r\n start: !!isSilent,\r\n end: !!isSilent\r\n })\r\n },\r\n _setVisualRange(visualRange, allowPartialUpdate) {\r\n var range = this.adjustRange(getVizRangeObject(visualRange));\r\n if (allowPartialUpdate) {\r\n isDefined(range.startValue) && (this._viewport.startValue = range.startValue);\r\n isDefined(range.endValue) && (this._viewport.endValue = range.endValue)\r\n } else {\r\n this._viewport = range\r\n }\r\n },\r\n _applyZooming(visualRange, allowPartialUpdate) {\r\n this._resetVisualRangeOption();\r\n this._setVisualRange(visualRange, allowPartialUpdate);\r\n var viewPort = this.getViewport();\r\n this._seriesData.userBreaks = this._getScaleBreaks(this._options, {\r\n minVisible: viewPort.startValue,\r\n maxVisible: viewPort.endValue\r\n }, this._series, this.isArgumentAxis);\r\n this._translator.updateBusinessRange(this._getViewportRange())\r\n },\r\n getZoomStartEventArg(event, actionType) {\r\n return {\r\n axis: this,\r\n range: this.visualRange(),\r\n cancel: false,\r\n event: event,\r\n actionType: actionType\r\n }\r\n },\r\n _getZoomEndEventArg(previousRange, event, actionType, zoomFactor, shift) {\r\n var newRange = this.visualRange();\r\n return {\r\n axis: this,\r\n previousRange: previousRange,\r\n range: newRange,\r\n cancel: false,\r\n event: event,\r\n actionType: actionType,\r\n zoomFactor: zoomFactor,\r\n shift: shift,\r\n rangeStart: newRange.startValue,\r\n rangeEnd: newRange.endValue\r\n }\r\n },\r\n getZoomBounds() {\r\n var wholeRange = getVizRangeObject(this._options.wholeRange);\r\n var range = this.getTranslator().getBusinessRange();\r\n var secondPriorityRange = {\r\n startValue: getZoomBoundValue(this._initRange.startValue, range.min),\r\n endValue: getZoomBoundValue(this._initRange.endValue, range.max)\r\n };\r\n return {\r\n startValue: getZoomBoundValue(wholeRange.startValue, secondPriorityRange.startValue),\r\n endValue: getZoomBoundValue(wholeRange.endValue, secondPriorityRange.endValue)\r\n }\r\n },\r\n setInitRange() {\r\n this._initRange = {};\r\n if (0 === Object.keys(this._options.wholeRange || {}).length) {\r\n this._initRange = this.getZoomBounds()\r\n }\r\n },\r\n _resetVisualRangeOption() {\r\n this._options._customVisualRange = {}\r\n },\r\n getTemplatesGroups() {\r\n var ticks = this._majorTicks;\r\n if (ticks) {\r\n return this._majorTicks.map(tick => tick.templateContainer).filter(item => isDefined(item))\r\n } else {\r\n return []\r\n }\r\n },\r\n setCustomVisualRange(range) {\r\n this._options._customVisualRange = range\r\n },\r\n visualRange() {\r\n var args = arguments;\r\n var visualRange;\r\n if (0 === args.length) {\r\n var adjustedRange = this._getAdjustedBusinessRange();\r\n var startValue = adjustedRange.minVisible;\r\n var endValue = adjustedRange.maxVisible;\r\n if (this._options.type === constants.discrete) {\r\n var _startValue, _endValue;\r\n startValue = null !== (_startValue = startValue) && void 0 !== _startValue ? _startValue : adjustedRange.categories[0];\r\n endValue = null !== (_endValue = endValue) && void 0 !== _endValue ? _endValue : adjustedRange.categories[adjustedRange.categories.length - 1];\r\n return {\r\n startValue: startValue,\r\n endValue: endValue,\r\n categories: getCategoriesInfo(adjustedRange.categories, startValue, endValue).categories\r\n }\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n } else if (_isArray(args[0])) {\r\n visualRange = args[0]\r\n } else if (isPlainObject(args[0])) {\r\n visualRange = extend({}, args[0])\r\n } else {\r\n visualRange = [args[0], args[1]]\r\n }\r\n var zoomResults = this.handleZooming(visualRange, args[1]);\r\n if (!zoomResults.isPrevented) {\r\n this._visualRange(this, zoomResults)\r\n }\r\n },\r\n handleZooming(visualRange, preventEvents, domEvent, action) {\r\n preventEvents = preventEvents || {};\r\n if (isDefined(visualRange)) {\r\n visualRange = this._validateVisualRange(visualRange);\r\n visualRange.action = action\r\n }\r\n var zoomStartEvent = this.getZoomStartEventArg(domEvent, action);\r\n var previousRange = zoomStartEvent.range;\r\n !preventEvents.start && this._eventTrigger(\"zoomStart\", zoomStartEvent);\r\n var zoomResults = {\r\n isPrevented: zoomStartEvent.cancel,\r\n skipEventRising: preventEvents.skipEventRising,\r\n range: visualRange || zoomStartEvent.range\r\n };\r\n if (!zoomStartEvent.cancel) {\r\n isDefined(visualRange) && this._applyZooming(visualRange, preventEvents.allowPartialUpdate);\r\n if (!isDefined(this._storedZoomEndParams)) {\r\n this._storedZoomEndParams = {\r\n startRange: previousRange,\r\n type: this.getOptions().type\r\n }\r\n }\r\n this._storedZoomEndParams.event = domEvent;\r\n this._storedZoomEndParams.action = action;\r\n this._storedZoomEndParams.prevent = !!preventEvents.end\r\n }\r\n return zoomResults\r\n },\r\n handleZoomEnd() {\r\n if (isDefined(this._storedZoomEndParams) && !this._storedZoomEndParams.prevent) {\r\n var previousRange = this._storedZoomEndParams.startRange;\r\n var domEvent = this._storedZoomEndParams.event;\r\n var action = this._storedZoomEndParams.action;\r\n var previousBusinessRange = {\r\n minVisible: previousRange.startValue,\r\n maxVisible: previousRange.endValue,\r\n categories: previousRange.categories\r\n };\r\n var typeIsNotChanged = this.getOptions().type === this._storedZoomEndParams.type;\r\n var shift = typeIsNotChanged ? adjust(this.getVisualRangeCenter() - this.getVisualRangeCenter(previousBusinessRange, false)) : NaN;\r\n var zoomFactor = typeIsNotChanged ? +(Math.round(this.getVisualRangeLength(previousBusinessRange) / (this.getVisualRangeLength() || 1) + \"e+2\") + \"e-2\") : NaN;\r\n var zoomEndEvent = this._getZoomEndEventArg(previousRange, domEvent, action, zoomFactor, shift);\r\n zoomEndEvent.cancel = this.checkZoomingLowerLimitOvercome(1 === zoomFactor ? \"pan\" : \"zoom\", zoomFactor).stopInteraction;\r\n this._eventTrigger(\"zoomEnd\", zoomEndEvent);\r\n if (zoomEndEvent.cancel) {\r\n this._restorePreviousVisualRange(previousRange)\r\n }\r\n this._storedZoomEndParams = null\r\n }\r\n },\r\n _restorePreviousVisualRange(previousRange) {\r\n this._storedZoomEndParams = null;\r\n this._applyZooming(previousRange);\r\n this._visualRange(this, previousRange)\r\n },\r\n checkZoomingLowerLimitOvercome(actionType, zoomFactor, range) {\r\n var options = this._options;\r\n var translator = this._translator;\r\n var minZoom = options.minVisualRangeLength;\r\n var correctedRange = range;\r\n var visualRange;\r\n var isOvercoming = \"zoom\" === actionType && zoomFactor >= 1;\r\n var businessRange = translator.getBusinessRange();\r\n if (range) {\r\n visualRange = this.adjustRange(getVizRangeObject(range));\r\n visualRange = {\r\n minVisible: visualRange.startValue,\r\n maxVisible: visualRange.endValue,\r\n categories: businessRange.categories\r\n }\r\n }\r\n var beforeVisualRangeLength = this.getVisualRangeLength(businessRange);\r\n var afterVisualRangeLength = this.getVisualRangeLength(visualRange);\r\n if (isDefined(minZoom) || \"discrete\" === options.type) {\r\n minZoom = translator.convert(minZoom);\r\n if (visualRange && minZoom < beforeVisualRangeLength && minZoom >= afterVisualRangeLength) {\r\n correctedRange = getVizRangeObject(translator.getRangeByMinZoomValue(minZoom, visualRange));\r\n isOvercoming = false\r\n } else {\r\n isOvercoming &= minZoom > afterVisualRangeLength\r\n }\r\n } else {\r\n var canvasLength = this._translator.canvasLength;\r\n var fullRange = {\r\n minVisible: businessRange.min,\r\n maxVisible: businessRange.max,\r\n categories: businessRange.categories\r\n };\r\n isOvercoming &= this.getVisualRangeLength(fullRange) / canvasLength >= afterVisualRangeLength\r\n }\r\n return {\r\n stopInteraction: !!isOvercoming,\r\n correctedRange: correctedRange\r\n }\r\n },\r\n isExtremePosition(isMax) {\r\n var extremeDataValue;\r\n var seriesData;\r\n if (\"discrete\" === this._options.type) {\r\n seriesData = this._translator.getBusinessRange();\r\n extremeDataValue = isMax ? seriesData.categories[seriesData.categories.length - 1] : seriesData.categories[0]\r\n } else {\r\n seriesData = this.getZoomBounds();\r\n extremeDataValue = isMax ? seriesData.endValue : seriesData.startValue\r\n }\r\n var translator = this.getTranslator();\r\n var extremePoint = translator.translate(extremeDataValue);\r\n var visualRange = this.visualRange();\r\n var visualRangePoint = isMax ? translator.translate(visualRange.endValue) : translator.translate(visualRange.startValue);\r\n return _abs(visualRangePoint - extremePoint) < SCROLL_THRESHOLD\r\n },\r\n getViewport() {\r\n return this._viewport\r\n },\r\n getFullTicks: function() {\r\n var majors = this._majorTicks || [];\r\n if (this._options.type === constants.discrete) {\r\n return convertTicksToValues(majors)\r\n } else {\r\n return convertTicksToValues(majors.concat(this._minorTicks, this._boundaryTicks)).sort((function(a, b) {\r\n return valueOf(a) - valueOf(b)\r\n }))\r\n }\r\n },\r\n measureLabels: function(canvas, withIndents) {\r\n var that = this;\r\n var options = that._options;\r\n var widthAxis = options.visible ? options.width : 0;\r\n var ticks;\r\n var indent = withIndents ? options.label.indentFromAxis + .5 * options.tick.length : 0;\r\n var tickInterval;\r\n var viewportRange = that._getViewportRange();\r\n if (viewportRange.isEmpty() || !options.label.visible || !that._axisElementsGroup) {\r\n return {\r\n height: widthAxis,\r\n width: widthAxis,\r\n x: 0,\r\n y: 0\r\n }\r\n }\r\n if (that._majorTicks) {\r\n ticks = convertTicksToValues(that._majorTicks)\r\n } else {\r\n that.updateCanvas(canvas);\r\n ticks = that._createTicksAndLabelFormat(viewportRange, _noop);\r\n tickInterval = ticks.tickInterval;\r\n ticks = ticks.ticks\r\n }\r\n var maxText = ticks.reduce((function(prevLabel, tick, index) {\r\n var label = that.formatLabel(tick, options.label, viewportRange, void 0, tickInterval, ticks);\r\n if (prevLabel.length < label.length) {\r\n return label\r\n } else {\r\n return prevLabel\r\n }\r\n }), that.formatLabel(ticks[0], options.label, viewportRange, void 0, tickInterval, ticks));\r\n var text = that._renderer.text(maxText, 0, 0).css(that._textFontStyles).attr(that._textOptions).append(that._renderer.root);\r\n var box = text.getBBox();\r\n text.remove();\r\n return {\r\n x: box.x,\r\n y: box.y,\r\n width: box.width + indent,\r\n height: box.height + indent\r\n }\r\n },\r\n _setLabelsPlacement: function() {\r\n if (!this._options.label.visible) {\r\n return\r\n }\r\n var labelOpt = this._options.label;\r\n var displayMode = this._validateDisplayMode(labelOpt.displayMode);\r\n var overlappingMode = this._validateOverlappingMode(labelOpt.overlappingBehavior, displayMode);\r\n var ignoreOverlapping = \"none\" === overlappingMode || \"ignore\" === overlappingMode;\r\n var behavior = {\r\n rotationAngle: labelOpt.rotationAngle,\r\n staggeringSpacing: labelOpt.staggeringSpacing\r\n };\r\n var notRecastStep;\r\n var boxes = this._majorTicks.map((function(tick) {\r\n return tick.labelBBox\r\n }));\r\n var step = this._getStep(boxes);\r\n switch (displayMode) {\r\n case ROTATE:\r\n if (ignoreOverlapping) {\r\n notRecastStep = true;\r\n step = 1\r\n }\r\n this._applyLabelMode(displayMode, step, boxes, labelOpt, notRecastStep);\r\n break;\r\n case \"stagger\":\r\n if (ignoreOverlapping) {\r\n step = 2\r\n }\r\n this._applyLabelMode(displayMode, _max(step, 2), boxes, labelOpt);\r\n break;\r\n default:\r\n this._applyLabelOverlapping(boxes, overlappingMode, step, behavior)\r\n }\r\n },\r\n _applyLabelOverlapping: function(boxes, mode, step, behavior) {\r\n var labelOpt = this._options.label;\r\n var majorTicks = this._majorTicks;\r\n if (\"none\" === mode || \"ignore\" === mode) {\r\n return\r\n }\r\n if (step > 1 && boxes.some((function(box, index, array) {\r\n if (0 === index) {\r\n return false\r\n }\r\n return constants.areLabelsOverlap(box, array[index - 1], labelOpt.minSpacing, labelOpt.alignment)\r\n }))) {\r\n this._applyLabelMode(mode, step, boxes, behavior)\r\n }\r\n this._checkBoundedLabelsOverlapping(majorTicks, boxes, mode);\r\n this._checkShiftedLabels(majorTicks, boxes, labelOpt.minSpacing, labelOpt.alignment)\r\n },\r\n _applyLabelMode: function(mode, step, boxes, behavior, notRecastStep) {\r\n var majorTicks = this._majorTicks;\r\n var labelOpt = this._options.label;\r\n var angle = behavior.rotationAngle;\r\n var labelHeight;\r\n var alignment;\r\n var func;\r\n switch (mode) {\r\n case ROTATE:\r\n if (!labelOpt.userAlignment) {\r\n alignment = angle < 0 ? RIGHT : LEFT;\r\n if (angle % 90 === 0) {\r\n alignment = CENTER\r\n }\r\n }\r\n step = notRecastStep ? step : this._getStep(boxes, angle);\r\n func = function(tick) {\r\n var contentContainer = tick.getContentContainer();\r\n if (!contentContainer) {\r\n return\r\n }\r\n contentContainer.rotate(angle);\r\n tick.labelRotationAngle = angle;\r\n alignment && (tick.labelAlignment = alignment)\r\n };\r\n updateLabels(majorTicks, step, func);\r\n break;\r\n case \"stagger\":\r\n labelHeight = this._getMaxLabelHeight(boxes, behavior.staggeringSpacing);\r\n func = function(tick, index) {\r\n if (index / (step - 1) % 2 !== 0) {\r\n tick.labelOffset = labelHeight\r\n }\r\n };\r\n updateLabels(majorTicks, step - 1, func);\r\n break;\r\n case \"auto\":\r\n case \"_auto\":\r\n if (2 === step) {\r\n this._applyLabelMode(\"stagger\", step, boxes, behavior)\r\n } else {\r\n this._applyLabelMode(ROTATE, step, boxes, {\r\n rotationAngle: getOptimalAngle(boxes, labelOpt)\r\n })\r\n }\r\n break;\r\n default:\r\n updateLabels(majorTicks, step)\r\n }\r\n },\r\n getMarkerTrackers: _noop,\r\n _drawDateMarkers: _noop,\r\n _adjustDateMarkers: _noop,\r\n coordsIn: _noop,\r\n areCoordsOutsideAxis: _noop,\r\n _getSkippedCategory: _noop,\r\n _initAxisPositions: _noop,\r\n _drawTitle: _noop,\r\n _updateTitleCoords: _noop,\r\n _adjustConstantLineLabels: _noop,\r\n _createTranslator: function() {\r\n return new Translator2D({}, {}, {})\r\n },\r\n _updateTranslator: function() {\r\n var translator = this._translator;\r\n translator.update(translator.getBusinessRange(), this._canvas || {}, this._getTranslatorOptions())\r\n },\r\n _getTranslatorOptions: function() {\r\n var _options$workWeek2, _options$breakStyle$w, _options$breakStyle;\r\n var options = this._options;\r\n return {\r\n isHorizontal: this._isHorizontal,\r\n shiftZeroValue: !this.isArgumentAxis,\r\n interval: options.semiDiscreteInterval,\r\n firstDayOfWeek: null === (_options$workWeek2 = options.workWeek) || void 0 === _options$workWeek2 ? void 0 : _options$workWeek2[0],\r\n stick: this._getStick(),\r\n breaksSize: null !== (_options$breakStyle$w = null === (_options$breakStyle = options.breakStyle) || void 0 === _options$breakStyle ? void 0 : _options$breakStyle.width) && void 0 !== _options$breakStyle$w ? _options$breakStyle$w : 0\r\n }\r\n },\r\n getVisibleArea() {\r\n var canvas = this._getCanvasStartEnd();\r\n return [canvas.start, canvas.end].sort((a, b) => a - b)\r\n },\r\n _getCanvasStartEnd: function() {\r\n var isHorizontal = this._isHorizontal;\r\n var canvas = this._canvas || {};\r\n var invert = this._translator.getBusinessRange().invert;\r\n var coords = isHorizontal ? [canvas.left, canvas.width - canvas.right] : [canvas.height - canvas.bottom, canvas.top];\r\n invert && coords.reverse();\r\n return {\r\n start: coords[0],\r\n end: coords[1]\r\n }\r\n },\r\n _getScreenDelta: function() {\r\n var canvas = this._getCanvasStartEnd();\r\n var breaks = this._seriesData ? this._seriesData.breaks || [] : [];\r\n var breaksLength = breaks.length;\r\n var screenDelta = _abs(canvas.start - canvas.end);\r\n return screenDelta - (breaksLength ? breaks[breaksLength - 1].cumulativeWidth : 0)\r\n },\r\n _getScaleBreaks: function() {\r\n return []\r\n },\r\n _filterBreaks: function() {\r\n return []\r\n },\r\n _adjustTitle: _noop,\r\n _checkTitleOverflow: _noop,\r\n getSpiderTicks: _noop,\r\n setSpiderTicks: _noop,\r\n _checkBoundedLabelsOverlapping: _noop,\r\n _checkShiftedLabels: _noop,\r\n drawScaleBreaks: _noop,\r\n _visualRange: _noop,\r\n _rotateConstantLine: _noop,\r\n applyVisualRangeSetter(visualRangeSetter) {\r\n this._visualRange = visualRangeSetter\r\n },\r\n getCategoriesSorter(argCategories) {\r\n var sort;\r\n if (this.isArgumentAxis) {\r\n sort = argCategories\r\n } else {\r\n var categoriesSortingMethod = this._options.categoriesSortingMethod;\r\n sort = null !== categoriesSortingMethod && void 0 !== categoriesSortingMethod ? categoriesSortingMethod : this._options.categories\r\n }\r\n return sort\r\n },\r\n _getAdjustedBusinessRange() {\r\n return this.adjustViewport(this._translator.getBusinessRange())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/axes/strip.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default function createStrip(axis, options) {\r\n var storedCoord;\r\n var lastStoredCoordinates;\r\n var labelOptions = options.label || {};\r\n return {\r\n options: options,\r\n label: null,\r\n rect: null,\r\n _getCoord() {\r\n var canvas = axis._getCanvasStartEnd();\r\n var range = axis._translator.getBusinessRange();\r\n return axis._getStripPos(options.startValue, options.endValue, canvas.start, canvas.end, range)\r\n },\r\n _drawLabel: coords => axis._renderer.text(labelOptions.text, coords.x, coords.y).css(patchFontOptions(extend({}, axis.getOptions().label.font, labelOptions.font))).attr({\r\n align: \"center\",\r\n class: labelOptions.cssClass\r\n }).append(axis._axisStripLabelGroup),\r\n draw() {\r\n if (axis._translator.getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n if ((isDefined(options.startValue) || isDefined(options.endValue)) && isDefined(options.color)) {\r\n var stripPos = this._getCoord();\r\n this.labelCoords = labelOptions.text ? axis._getStripLabelCoords(stripPos.from, stripPos.to, labelOptions) : null;\r\n if (stripPos.outOfCanvas || !isDefined(stripPos.to) || !isDefined(stripPos.from)) {\r\n return\r\n }\r\n this.rect = axis._createStrip(axis._getStripGraphicAttributes(stripPos.from, stripPos.to)).attr({\r\n fill: options.color\r\n }).append(axis._axisStripGroup);\r\n this.label = labelOptions.text ? this._drawLabel(this.labelCoords) : null\r\n }\r\n },\r\n getContentContainer() {\r\n return this.label\r\n },\r\n removeLabel() {},\r\n updatePosition(animate) {\r\n var stripPos = this._getCoord();\r\n if (animate && storedCoord) {\r\n this.label && this.label.attr(axis._getStripLabelCoords(storedCoord.from, storedCoord.to, options.label));\r\n this.rect && this.rect.attr(axis._getStripGraphicAttributes(storedCoord.from, storedCoord.to));\r\n this.label && this.label.animate(axis._getStripLabelCoords(stripPos.from, stripPos.to, options.label));\r\n this.rect && this.rect.animate(axis._getStripGraphicAttributes(stripPos.from, stripPos.to))\r\n } else {\r\n this.label && this.label.attr(axis._getStripLabelCoords(stripPos.from, stripPos.to, options.label));\r\n this.rect && this.rect.attr(axis._getStripGraphicAttributes(stripPos.from, stripPos.to))\r\n }\r\n },\r\n saveCoords() {\r\n lastStoredCoordinates = storedCoord;\r\n storedCoord = this._getCoord()\r\n },\r\n resetCoordinates() {\r\n storedCoord = lastStoredCoordinates\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/constant_line.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport default function createConstantLine(axis, options) {\r\n var labelOptions = options.label || {};\r\n var labelPosition = labelOptions.position || \"inside\";\r\n var parsedValue;\r\n var valueIsParsed = false;\r\n var lastStoredCoordinates;\r\n axis._checkAlignmentConstantLineLabels(labelOptions);\r\n var storedCoord;\r\n return {\r\n options: options,\r\n labelOptions: labelOptions,\r\n labelPosition: labelPosition,\r\n label: null,\r\n line: null,\r\n getParsedValue() {\r\n if (!valueIsParsed) {\r\n parsedValue = axis.validateUnit(options.value, \"E2105\", \"constantLine\");\r\n valueIsParsed = true;\r\n return parsedValue\r\n }\r\n return parsedValue\r\n },\r\n draw() {\r\n if (!isDefined(options.value) || axis._translator.getBusinessRange().isEmpty()) {\r\n return this\r\n }\r\n var canvas = axis._getCanvasStartEnd();\r\n var parsedValue = this.getParsedValue();\r\n this.coord = axis._getConstantLinePos(parsedValue, canvas.start, canvas.end);\r\n var rootGroup = options.displayBehindSeries ? axis._axisConstantLineGroups.under : axis._axisConstantLineGroups.above;\r\n var group = rootGroup[labelPosition];\r\n if (!group) {\r\n var side = axis._isHorizontal ? labelOptions.verticalAlignment : labelOptions.horizontalAlignment;\r\n group = rootGroup[side]\r\n }\r\n if (!isDefined(this.coord)) {\r\n return this\r\n }\r\n var path = axis._createConstantLine(this.coord, {\r\n stroke: options.color,\r\n \"stroke-width\": options.width,\r\n dashStyle: options.dashStyle\r\n });\r\n this.line = path.append(rootGroup.inside);\r\n this.label = labelOptions.visible ? axis._drawConstantLineLabels(parsedValue, labelOptions, this.coord, group) : null;\r\n this.updatePosition();\r\n return this\r\n },\r\n getContentContainer() {\r\n return this.label\r\n },\r\n removeLabel() {\r\n this.label && this.label.remove()\r\n },\r\n updatePosition(animate) {\r\n var canvas = axis._getCanvasStartEnd();\r\n var coord = axis._getConstantLinePos(this.getParsedValue(), canvas.start, canvas.end);\r\n if (!isDefined(coord)) {\r\n return\r\n }\r\n this.coord = coord;\r\n if (animate && storedCoord) {\r\n this.label && this.label.attr(axis._getConstantLineLabelsCoords(storedCoord, this.labelOptions));\r\n this.line && this.line.attr(axis._getConstantLineGraphicAttributes(storedCoord));\r\n this.label && this.label.animate(axis._getConstantLineLabelsCoords(this.coord, this.labelOptions));\r\n this.line && this.line.animate(axis._getConstantLineGraphicAttributes(this.coord))\r\n } else {\r\n this.label && this.label.attr(axis._getConstantLineLabelsCoords(this.coord, this.labelOptions));\r\n this.line && this.line.attr(axis._getConstantLineGraphicAttributes(this.coord));\r\n axis._rotateConstantLine(this.line, this.coord)\r\n }\r\n },\r\n saveCoords() {\r\n lastStoredCoordinates = storedCoord;\r\n storedCoord = this.coord\r\n },\r\n resetCoordinates() {\r\n storedCoord = lastStoredCoordinates\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/smart_formatter.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isExponential,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n adjust,\r\n getPrecision,\r\n getExponent\r\n} from \"../../core/utils/math\";\r\nimport {\r\n getAdjustedLog10 as log10\r\n} from \"../core/utils\";\r\nvar _format = formatHelper.format;\r\nvar {\r\n abs: abs,\r\n floor: floor\r\n} = Math;\r\nvar EXPONENTIAL = \"exponential\";\r\nvar formats = [\"fixedPoint\", \"thousands\", \"millions\", \"billions\", \"trillions\", EXPONENTIAL];\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n\r\nfunction getDatesDifferences(prevDate, curDate, nextDate, tickFormat) {\r\n var prevDifferences;\r\n var nextDifferences;\r\n var dateUnitInterval;\r\n var dateUnitsLength = dateUnitIntervals.length;\r\n var i;\r\n var j;\r\n if (\"week\" === tickFormat) {\r\n tickFormat = \"day\"\r\n } else if (\"quarter\" === tickFormat) {\r\n tickFormat = \"month\"\r\n } else if (\"shorttime\" === tickFormat) {\r\n tickFormat = \"hour\"\r\n } else if (\"longtime\" === tickFormat) {\r\n tickFormat = \"second\"\r\n }\r\n var tickFormatIndex = dateUnitIntervals.indexOf(tickFormat);\r\n if (nextDate) {\r\n nextDifferences = dateUtils.getDatesDifferences(curDate, nextDate);\r\n prevDifferences = dateUtils.getDatesDifferences(curDate, prevDate);\r\n if (nextDifferences[tickFormat]) {\r\n for (i = dateUnitsLength - 1; i >= tickFormatIndex; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n if (i === tickFormatIndex) {\r\n setDateUnitInterval(nextDifferences, tickFormatIndex + (nextDifferences.millisecond ? 2 : 1))\r\n } else if (nextDifferences[dateUnitInterval]) {\r\n resetDateUnitInterval(nextDifferences, i);\r\n break\r\n }\r\n }\r\n }\r\n } else {\r\n prevDifferences = dateUtils.getDatesDifferences(prevDate, curDate);\r\n for (i = dateUnitsLength - 1; i >= tickFormatIndex; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n if (prevDifferences[dateUnitInterval]) {\r\n if (i - tickFormatIndex > 1) {\r\n for (j = tickFormatIndex + 1; j >= 0; j--) {\r\n resetDateUnitInterval(prevDifferences, j)\r\n }\r\n break\r\n } else if (isDateTimeStart(curDate, dateUnitInterval)) {\r\n for (j = i - 1; j > 0; j--) {\r\n resetDateUnitInterval(prevDifferences, j)\r\n }\r\n break\r\n }\r\n }\r\n }\r\n }\r\n return nextDate ? nextDifferences : prevDifferences\r\n}\r\n\r\nfunction isDateTimeStart(date, dateUnitInterval) {\r\n var unitNumbers = [date.getMilliseconds(), date.getSeconds(), date.getMinutes(), date.getHours(), date.getDate(), date.getMonth()];\r\n var unitIndex = dateUnitIntervals.indexOf(dateUnitInterval);\r\n var i;\r\n for (i = 0; i < unitIndex; i++) {\r\n if (4 === i && 1 !== unitNumbers[i] || 4 !== i && 0 !== unitNumbers[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction resetDateUnitInterval(differences, intervalIndex) {\r\n var dateUnitInterval = dateUnitIntervals[intervalIndex];\r\n if (differences[dateUnitInterval]) {\r\n differences[dateUnitInterval] = false;\r\n differences.count--\r\n }\r\n}\r\n\r\nfunction setDateUnitInterval(differences, intervalIndex) {\r\n var dateUnitInterval = dateUnitIntervals[intervalIndex];\r\n if (false === differences[dateUnitInterval]) {\r\n differences[dateUnitInterval] = true;\r\n differences.count++\r\n }\r\n}\r\n\r\nfunction getNoZeroIndex(str) {\r\n return str.length - parseInt(str).toString().length\r\n}\r\n\r\nfunction getTransitionTickIndex(ticks, value) {\r\n var i;\r\n var curDiff;\r\n var minDiff;\r\n var nearestTickIndex = 0;\r\n minDiff = abs(value - ticks[0]);\r\n for (i = 1; i < ticks.length; i++) {\r\n curDiff = abs(value - ticks[i]);\r\n if (curDiff < minDiff) {\r\n minDiff = curDiff;\r\n nearestTickIndex = i\r\n }\r\n }\r\n return nearestTickIndex\r\n}\r\n\r\nfunction splitDecimalNumber(value) {\r\n return value.toString().split(\".\")\r\n}\r\n\r\nfunction createFormat(type) {\r\n var formatter;\r\n if (isFunction(type)) {\r\n formatter = type;\r\n type = null\r\n }\r\n return {\r\n type: type,\r\n formatter: formatter\r\n }\r\n}\r\nexport function smartFormatter(tick, options) {\r\n var tickInterval = options.tickInterval;\r\n var tickIntervalIndex;\r\n var tickIndex;\r\n var actualIndex;\r\n var stringTick = abs(tick).toString();\r\n var precision = 0;\r\n var typeFormat;\r\n var offset = 0;\r\n var separatedTickInterval;\r\n var indexOfFormat = 0;\r\n var indexOfTick = -1;\r\n var datesDifferences;\r\n var format = options.labelOptions.format;\r\n var ticks = options.ticks;\r\n var log10Tick;\r\n var prevDateIndex;\r\n var nextDateIndex;\r\n var isLogarithmic = \"logarithmic\" === options.type;\r\n if (1 === ticks.length && 0 === ticks.indexOf(tick) && !isDefined(tickInterval)) {\r\n tickInterval = abs(tick) >= 1 ? 1 : adjust(1 - abs(tick), tick)\r\n }\r\n if (!isDefined(format) && \"discrete\" !== options.type && tick && (10 === options.logarithmBase || !isLogarithmic)) {\r\n if (\"datetime\" !== options.dataType && isDefined(tickInterval)) {\r\n if (ticks.length && -1 === ticks.indexOf(tick)) {\r\n indexOfTick = getTransitionTickIndex(ticks, tick);\r\n tickInterval = adjust(abs(tick - ticks[indexOfTick]), tick)\r\n }\r\n separatedTickInterval = splitDecimalNumber(tickInterval);\r\n if (separatedTickInterval < 2) {\r\n separatedTickInterval = splitDecimalNumber(tick)\r\n }\r\n if (isLogarithmic) {\r\n log10Tick = log10(abs(tick));\r\n if (log10Tick > 0) {\r\n typeFormat = formats[floor(log10Tick / 3)] || EXPONENTIAL\r\n } else if (log10Tick < -4) {\r\n typeFormat = EXPONENTIAL\r\n } else {\r\n return _format(adjust(tick))\r\n }\r\n } else if (separatedTickInterval.length > 1 && !isExponential(tickInterval)) {\r\n precision = separatedTickInterval[1].length;\r\n typeFormat = formats[indexOfFormat]\r\n } else if (isExponential(tickInterval) && (-1 !== stringTick.indexOf(\".\") || isExponential(tick))) {\r\n typeFormat = EXPONENTIAL;\r\n if (!isExponential(tick)) {\r\n precision = abs(getNoZeroIndex(stringTick.split(\".\")[1]) - getExponent(tickInterval) + 1)\r\n } else {\r\n precision = Math.max(abs(getExponent(tick) - getExponent(tickInterval)), abs(getPrecision(tick) - getPrecision(tickInterval)))\r\n }\r\n } else {\r\n tickIntervalIndex = floor(log10(tickInterval));\r\n actualIndex = tickIndex = floor(log10(abs(tick)));\r\n if (tickIndex - tickIntervalIndex >= 2) {\r\n actualIndex = tickIntervalIndex\r\n }\r\n indexOfFormat = floor(actualIndex / 3);\r\n offset = 3 * indexOfFormat;\r\n if (indexOfFormat < 5) {\r\n if (tickIntervalIndex - offset === 2 && tickIndex >= 3) {\r\n indexOfFormat++;\r\n offset = 3 * indexOfFormat\r\n }\r\n typeFormat = formats[indexOfFormat]\r\n } else {\r\n typeFormat = formats[formats.length - 1]\r\n }\r\n if (offset > 0) {\r\n separatedTickInterval = splitDecimalNumber(tickInterval / Math.pow(10, offset));\r\n if (separatedTickInterval[1]) {\r\n precision = separatedTickInterval[1].length\r\n }\r\n }\r\n }\r\n if (void 0 !== typeFormat || void 0 !== precision) {\r\n format = {\r\n type: typeFormat,\r\n precision: precision\r\n }\r\n }\r\n } else if (\"datetime\" === options.dataType) {\r\n typeFormat = dateUtils.getDateFormatByTickInterval(tickInterval);\r\n if (options.showTransition && ticks.length) {\r\n indexOfTick = ticks.map(Number).indexOf(+tick);\r\n if (1 === ticks.length && 0 === indexOfTick) {\r\n typeFormat = formatHelper.getDateFormatByTicks(ticks)\r\n } else {\r\n if (-1 === indexOfTick) {\r\n prevDateIndex = getTransitionTickIndex(ticks, tick)\r\n } else {\r\n prevDateIndex = 0 === indexOfTick ? ticks.length - 1 : indexOfTick - 1;\r\n nextDateIndex = 0 === indexOfTick ? 1 : -1\r\n }\r\n datesDifferences = getDatesDifferences(ticks[prevDateIndex], tick, ticks[nextDateIndex], typeFormat);\r\n typeFormat = formatHelper.getDateFormatByDifferences(datesDifferences, typeFormat)\r\n }\r\n }\r\n format = createFormat(typeFormat)\r\n }\r\n }\r\n return _format(tick, format)\r\n}\r\n\r\nfunction getHighDiffFormat(diff) {\r\n var stop = false;\r\n for (var i in diff) {\r\n if (true === diff[i] || \"hour\" === i || stop) {\r\n diff[i] = false;\r\n stop = true\r\n } else if (false === diff[i]) {\r\n diff[i] = true\r\n }\r\n }\r\n return createFormat(formatHelper.getDateFormatByDifferences(diff))\r\n}\r\n\r\nfunction getHighAndSelfDiffFormat(diff, interval) {\r\n var stop = false;\r\n for (var i in diff) {\r\n if (stop) {\r\n diff[i] = false\r\n } else if (i === interval) {\r\n stop = true\r\n } else {\r\n diff[i] = true\r\n }\r\n }\r\n return createFormat(formatHelper.getDateFormatByDifferences(diff))\r\n}\r\n\r\nfunction formatDateRange(startValue, endValue, tickInterval) {\r\n var diff = getDatesDifferences(startValue, endValue);\r\n var typeFormat = dateUtils.getDateFormatByTickInterval(tickInterval);\r\n var diffFormatType = formatHelper.getDateFormatByDifferences(diff, typeFormat);\r\n var diffFormat = createFormat(diffFormatType);\r\n var values = [];\r\n if (tickInterval in diff) {\r\n var rangeFormat = getHighAndSelfDiffFormat(getDatesDifferences(startValue, endValue), tickInterval);\r\n var value = _format(startValue, rangeFormat);\r\n if (value) {\r\n values.push(value)\r\n }\r\n } else {\r\n var _rangeFormat = getHighDiffFormat(getDatesDifferences(startValue, endValue));\r\n var highValue = _format(startValue, _rangeFormat);\r\n if (highValue) {\r\n values.push(highValue)\r\n }\r\n values.push(\"\".concat(_format(startValue, diffFormat), \" - \").concat(_format(endValue, diffFormat)))\r\n }\r\n return values.join(\", \")\r\n}\r\n\r\nfunction processDateInterval(interval) {\r\n if (isObject(interval)) {\r\n var dateUnits = Object.keys(interval);\r\n var sum = dateUnits.reduce((sum, k) => interval[k] + sum, 0);\r\n if (1 === sum) {\r\n var dateUnit = dateUnits.filter(k => 1 === interval[k])[0];\r\n return dateUnit.slice(0, dateUnit.length - 1)\r\n }\r\n }\r\n return interval\r\n}\r\nexport function formatRange(_ref) {\r\n var {\r\n startValue: startValue,\r\n endValue: endValue,\r\n tickInterval: tickInterval,\r\n argumentFormat: argumentFormat,\r\n axisOptions: {\r\n dataType: dataType,\r\n type: type,\r\n logarithmBase: logarithmBase\r\n }\r\n } = _ref;\r\n if (\"discrete\" === type) {\r\n return \"\"\r\n }\r\n if (\"datetime\" === dataType) {\r\n return formatDateRange(startValue, endValue, processDateInterval(tickInterval))\r\n }\r\n var formatOptions = {\r\n ticks: [],\r\n type: type,\r\n dataType: dataType,\r\n tickInterval: tickInterval,\r\n logarithmBase: logarithmBase,\r\n labelOptions: {\r\n format: argumentFormat\r\n }\r\n };\r\n return \"\".concat(smartFormatter(startValue, formatOptions), \" - \").concat(smartFormatter(endValue, formatOptions))\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/axes/tick_generator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getLogExt as getLog,\r\n getCategoriesInfo,\r\n raiseToExt,\r\n getLog as mathLog,\r\n raiseTo as mathRaise\r\n} from \"../core/utils\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar convertDateUnitToMilliseconds = dateUtils.convertDateUnitToMilliseconds;\r\nvar dateToMilliseconds = dateUtils.dateToMilliseconds;\r\nvar math = Math;\r\nvar mathAbs = math.abs;\r\nvar mathFloor = math.floor;\r\nvar mathCeil = math.ceil;\r\nvar mathPow = math.pow;\r\nvar NUMBER_MULTIPLIERS = [1, 2, 2.5, 5];\r\nvar LOGARITHMIC_MULTIPLIERS = [1, 2, 3, 5];\r\nvar DATETIME_MULTIPLIERS = {\r\n millisecond: [1, 2, 5, 10, 25, 50, 100, 250, 500],\r\n second: [1, 2, 3, 5, 10, 15, 20, 30],\r\n minute: [1, 2, 3, 5, 10, 15, 20, 30],\r\n hour: [1, 2, 3, 4, 6, 8, 12],\r\n day: [1, 2],\r\n week: [1, 2],\r\n month: [1, 2, 3, 6]\r\n};\r\nvar DATETIME_MULTIPLIERS_WITH_BIG_WEEKEND = extend({}, DATETIME_MULTIPLIERS, {\r\n day: [1]\r\n});\r\nvar DATETIME_MINOR_MULTIPLIERS = {\r\n millisecond: [1, 2, 5, 10, 25, 50, 100, 250, 500],\r\n second: [1, 2, 3, 5, 10, 15, 20, 30],\r\n minute: [1, 2, 3, 5, 10, 15, 20, 30],\r\n hour: [1, 2, 3, 4, 6, 8, 12],\r\n day: [1, 2, 3, 7, 14],\r\n month: [1, 2, 3, 6]\r\n};\r\nvar MINOR_DELIMITERS = [2, 4, 5, 8, 10];\r\nvar VISIBILITY_DELIMITER = 3;\r\nvar MINUTE = 6e4;\r\n\r\nfunction dummyGenerator(options) {\r\n return function(data, screenDelta, tickInterval, forceTickInterval) {\r\n var count = mathFloor(screenDelta / options.axisDivisionFactor);\r\n count = count < 1 ? 1 : count;\r\n var interval = screenDelta / count;\r\n return {\r\n ticks: interval > 0 ? Array.apply(null, new Array(count + 1)).map((_, i) => interval * i) : [],\r\n tickInterval: interval\r\n }\r\n }\r\n}\r\n\r\nfunction discreteGenerator(options) {\r\n return function(data, screenDelta, tickInterval, forceTickInterval) {\r\n var categories = getCategoriesInfo(data.categories, data.min, data.max).categories;\r\n return {\r\n ticks: categories,\r\n tickInterval: mathCeil(categories.length * options.axisDivisionFactor / screenDelta)\r\n }\r\n }\r\n}\r\nvar getValue = value => value;\r\nvar getLogValue = (base, allowNegatives, linearThreshold) => value => getLog(value, base, allowNegatives, linearThreshold);\r\nvar raiseTo = (base, allowNegatives, linearThreshold) => value => raiseToExt(value, base, allowNegatives, linearThreshold);\r\nvar mathRaiseTo = base => value => mathRaise(value, base);\r\nvar logAbsValue = base => value => 0 === value ? 0 : mathLog(mathAbs(value), base);\r\nvar correctValueByInterval = (post, round, getValue) => (value, interval) => adjust(post(round(adjust(getValue(value) / interval)) * interval));\r\n\r\nfunction correctMinValueByEndOnTick(floorFunc, ceilFunc, resolveEndOnTick, endOnTick) {\r\n if (isDefined(endOnTick)) {\r\n return endOnTick ? floorFunc : ceilFunc\r\n }\r\n return function(value, interval, businessViewInfo, forceEndOnTick) {\r\n var floorTickValue = floorFunc(value, interval);\r\n if (value - floorTickValue === 0 || !isDefined(businessViewInfo) || resolveEndOnTick(value, floorTickValue, interval, businessViewInfo) || forceEndOnTick) {\r\n return floorTickValue\r\n }\r\n return ceilFunc(value, interval)\r\n }\r\n}\r\n\r\nfunction resolveEndOnTick(curValue, tickValue, interval, businessViewInfo) {\r\n var prevTickDataDiff = interval - mathAbs(tickValue - curValue);\r\n var intervalCount = math.max(mathCeil(businessViewInfo.businessDelta / interval), 2);\r\n var businessRatio = businessViewInfo.screenDelta / (intervalCount * interval);\r\n var potentialTickScreenDiff = math.round(businessRatio * prevTickDataDiff);\r\n var delimiterFactor = getLog(businessRatio * interval / businessViewInfo.axisDivisionFactor, 2) + 1;\r\n var delimiterMultiplier = (businessViewInfo.isSpacedMargin ? 2 : 1) * delimiterFactor;\r\n var screenDelimiter = math.round(VISIBILITY_DELIMITER * delimiterMultiplier);\r\n return businessViewInfo.businessDelta > businessViewInfo.interval && potentialTickScreenDiff >= screenDelimiter\r\n}\r\n\r\nfunction resolveEndOnTickLog(base) {\r\n return function(curValue, tickValue, interval, businessViewInfo) {\r\n return resolveEndOnTick(getLog(curValue, base), getLog(tickValue, base), interval, businessViewInfo)\r\n }\r\n}\r\n\r\nfunction resolveEndOnTickDate(curValue, tickValue, interval, businessViewInfo) {\r\n return resolveEndOnTick(curValue.valueOf(), tickValue.valueOf(), dateToMilliseconds(interval), businessViewInfo)\r\n}\r\n\r\nfunction getBusinessDelta(data, breaks) {\r\n var spacing = 0;\r\n if (breaks) {\r\n spacing = breaks.reduce((prev, item) => prev + (item.to - item.from), 0)\r\n }\r\n return mathAbs(data.max - data.min - spacing)\r\n}\r\n\r\nfunction getBusinessDeltaLog(base, allowNegatives, linearThreshold) {\r\n var getLog = getLogValue(base, allowNegatives, linearThreshold);\r\n return function(data, breaks) {\r\n var spacing = 0;\r\n if (breaks) {\r\n spacing = breaks.reduce((prev, item) => prev + mathAbs(getLog(item.to / item.from)), 0)\r\n }\r\n return mathCeil(mathAbs(getLog(data.max) - getLog(data.min)) - spacing)\r\n }\r\n}\r\n\r\nfunction getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor, addTickCount) {\r\n var count = screenDelta / axisDivisionFactor - (addTickCount || 0);\r\n count = count < 1 ? 1 : count;\r\n return businessDelta / count\r\n}\r\n\r\nfunction getMultiplierFactor(interval, factorDelta) {\r\n return mathPow(10, mathFloor(getLog(interval, 10)) + (factorDelta || 0))\r\n}\r\n\r\nfunction calculateTickInterval(businessDelta, screenDelta, tickInterval, forceTickInterval, axisDivisionFactor, multipliers, allowDecimals, addTickCount, _, minTickInterval) {\r\n var interval = getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor, addTickCount);\r\n var result = 1;\r\n var onlyIntegers = false === allowDecimals;\r\n if (!forceTickInterval || !tickInterval) {\r\n if (interval >= 1 || !onlyIntegers && interval > 0) {\r\n result = adjustInterval(interval, multipliers, onlyIntegers)\r\n }\r\n if (!tickInterval || !forceTickInterval && tickInterval < result) {\r\n tickInterval = result\r\n }\r\n }\r\n if (!forceTickInterval && minTickInterval) {\r\n minTickInterval = adjustInterval(minTickInterval, multipliers, onlyIntegers);\r\n if (minTickInterval > tickInterval) {\r\n tickInterval = minTickInterval\r\n }\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction adjustInterval(interval, multipliers, onlyIntegers) {\r\n var factor = getMultiplierFactor(interval, -1);\r\n var result = 1;\r\n multipliers = multipliers || NUMBER_MULTIPLIERS;\r\n if (interval > 0) {\r\n interval /= factor;\r\n result = multipliers.concat(10 * multipliers[0]).map(m => 10 * m).reduce((r, m) => {\r\n if (.1 === factor && onlyIntegers && 25 === m) {\r\n return r\r\n }\r\n return r < interval ? m : r\r\n }, 0);\r\n result = adjust(result * factor, factor)\r\n }\r\n return result\r\n}\r\n\r\nfunction calculateMinorTickInterval(businessDelta, screenDelta, tickInterval, axisDivisionFactor) {\r\n var interval = getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor);\r\n return tickInterval || MINOR_DELIMITERS.reduce((r, d) => {\r\n var cur = businessDelta / d;\r\n return cur >= interval ? cur : r\r\n }, 0)\r\n}\r\n\r\nfunction getCalculateTickIntervalLog(skipCalculationLimits) {\r\n return function(businessDelta, screenDelta, tickInterval, forceTickInterval, axisDivisionFactor, multipliers, allowDecimals, _, __, minTickInterval) {\r\n var interval = getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor);\r\n var result = 0;\r\n var adjustInterval = getAdjustIntervalLog(skipCalculationLimits);\r\n if (!forceTickInterval || !tickInterval) {\r\n if (interval > 0) {\r\n result = adjustInterval(interval, multipliers)\r\n }\r\n if (!tickInterval || !forceTickInterval && tickInterval < result) {\r\n tickInterval = result\r\n }\r\n }\r\n if (!forceTickInterval && minTickInterval) {\r\n minTickInterval = adjustInterval(minTickInterval, multipliers);\r\n if (minTickInterval > tickInterval) {\r\n tickInterval = minTickInterval\r\n }\r\n }\r\n return tickInterval\r\n }\r\n}\r\n\r\nfunction getAdjustIntervalLog(skipCalculationLimits) {\r\n return function(interval, multipliers) {\r\n var factor = getMultiplierFactor(interval);\r\n multipliers = multipliers || LOGARITHMIC_MULTIPLIERS;\r\n if (!skipCalculationLimits && factor < 1) {\r\n factor = 1\r\n }\r\n return multipliers.concat(10 * multipliers[0]).reduce((r, m) => r < interval ? m * factor : r, 0)\r\n }\r\n}\r\n\r\nfunction getDataTimeMultipliers(gapSize) {\r\n if (gapSize && gapSize > 2) {\r\n return DATETIME_MULTIPLIERS_WITH_BIG_WEEKEND\r\n } else {\r\n return DATETIME_MULTIPLIERS\r\n }\r\n}\r\n\r\nfunction numbersReducer(interval, key) {\r\n return function(r, m) {\r\n if (!r && interval <= convertDateUnitToMilliseconds(key, m)) {\r\n r = {};\r\n r[key + \"s\"] = m\r\n }\r\n return r\r\n }\r\n}\r\n\r\nfunction yearsReducer(interval, factor) {\r\n return function(r, m) {\r\n var years = factor * m;\r\n if (!r && interval <= convertDateUnitToMilliseconds(\"year\", years) && 2.5 !== years) {\r\n r = {\r\n years: years\r\n }\r\n }\r\n return r\r\n }\r\n}\r\n\r\nfunction calculateTickIntervalDateTime(businessDelta, screenDelta, tickInterval, forceTickInterval, axisDivisionFactor, multipliers, allowDecimals, addTickCount, gapSize, minTickInterval) {\r\n if (!forceTickInterval || !tickInterval) {\r\n var result = adjustIntervalDateTime(getIntervalByFactor(businessDelta, screenDelta, axisDivisionFactor), multipliers, null, gapSize);\r\n if (!tickInterval || !forceTickInterval && dateToMilliseconds(tickInterval) <= dateToMilliseconds(result)) {\r\n tickInterval = result\r\n }\r\n }\r\n if (!forceTickInterval && minTickInterval) {\r\n minTickInterval = adjustIntervalDateTime(minTickInterval, multipliers, null, gapSize);\r\n if (dateToMilliseconds(minTickInterval) > dateToMilliseconds(tickInterval)) {\r\n tickInterval = minTickInterval\r\n }\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction adjustIntervalDateTime(interval, multipliers, _, gapSize) {\r\n var result;\r\n multipliers = multipliers || getDataTimeMultipliers(gapSize);\r\n for (var key in multipliers) {\r\n result = multipliers[key].reduce(numbersReducer(interval, key), result);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!result) {\r\n for (var factor = 1;; factor *= 10) {\r\n result = NUMBER_MULTIPLIERS.reduce(yearsReducer(interval, factor), result);\r\n if (result) {\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction calculateMinorTickIntervalDateTime(businessDelta, screenDelta, tickInterval, axisDivisionFactor) {\r\n return calculateTickIntervalDateTime(businessDelta, screenDelta, tickInterval, true, axisDivisionFactor, DATETIME_MINOR_MULTIPLIERS)\r\n}\r\n\r\nfunction getTickIntervalByCustomTicks(getValue, postProcess) {\r\n return ticks => ticks ? postProcess(mathAbs(adjust(getValue(ticks[1]) - getValue(ticks[0])))) || void 0 : void 0\r\n}\r\n\r\nfunction addInterval(value, interval, isNegative) {\r\n return dateUtils.addInterval(value, interval, isNegative)\r\n}\r\n\r\nfunction addIntervalLog(log, raise) {\r\n return (value, interval, isNegative) => raise(addInterval(log(value), interval, isNegative))\r\n}\r\n\r\nfunction addIntervalDate(value, interval, isNegative) {\r\n return addInterval(value, interval, isNegative)\r\n}\r\n\r\nfunction addIntervalWithBreaks(addInterval, breaks, correctValue) {\r\n breaks = breaks.filter(b => !b.gapSize);\r\n return function(value, interval, isNegative) {\r\n var breakSize;\r\n value = addInterval(value, interval, isNegative);\r\n if (!breaks.every(item => {\r\n if (value >= addInterval(item.from, interval) && addInterval(value, interval) < item.to) {\r\n breakSize = item.to - item.from - 2 * (addInterval(item.from, interval) - item.from)\r\n }\r\n return !breakSize\r\n })) {\r\n value = correctValue(addInterval(value, breakSize), interval)\r\n }\r\n return value\r\n }\r\n}\r\n\r\nfunction calculateTicks(addInterval, correctMinValue, adjustInterval, resolveEndOnTick) {\r\n return function(data, tickInterval, endOnTick, gaps, breaks, businessDelta, screenDelta, axisDivisionFactor, generateExtraTick) {\r\n var correctTickValue = correctTickValueOnGapSize(addInterval, gaps);\r\n var min = data.min;\r\n var max = data.max;\r\n var businessViewInfo = {\r\n screenDelta: screenDelta,\r\n businessDelta: businessDelta,\r\n axisDivisionFactor: axisDivisionFactor,\r\n isSpacedMargin: data.isSpacedMargin,\r\n interval: tickInterval\r\n };\r\n var cur = correctMinValue(min, tickInterval, businessViewInfo);\r\n var ticks = [];\r\n if (null !== breaks && void 0 !== breaks && breaks.length) {\r\n addInterval = addIntervalWithBreaks(addInterval, breaks, correctMinValue)\r\n }\r\n if (cur > max) {\r\n cur = correctMinValue(min, adjustInterval(businessDelta / 2), businessViewInfo);\r\n if (cur > max) {\r\n endOnTick = true;\r\n cur = correctMinValue(min, tickInterval, businessViewInfo, endOnTick)\r\n }\r\n }\r\n cur = correctTickValue(cur);\r\n var prev;\r\n while (cur < max && cur !== prev || generateExtraTick && cur <= max) {\r\n ticks.push(cur);\r\n prev = cur;\r\n cur = correctTickValue(addInterval(cur, tickInterval))\r\n }\r\n if (endOnTick || cur - max === 0 || !isDefined(endOnTick) && resolveEndOnTick(max, cur, tickInterval, businessViewInfo)) {\r\n ticks.push(cur)\r\n }\r\n return ticks\r\n }\r\n}\r\n\r\nfunction calculateMinorTicks(updateTickInterval, addInterval, correctMinValue, correctTickValue, ceil) {\r\n return function(min, max, majorTicks, minorTickInterval, tickInterval, breaks, maxCount) {\r\n var factor = tickInterval / minorTickInterval;\r\n var lastMajor = majorTicks[majorTicks.length - 1];\r\n var firstMajor = majorTicks[0];\r\n var tickBalance = maxCount - 1;\r\n if (null !== breaks && void 0 !== breaks && breaks.length) {\r\n addInterval = addIntervalWithBreaks(addInterval, breaks, correctMinValue)\r\n }\r\n minorTickInterval = updateTickInterval(minorTickInterval, firstMajor, firstMajor, factor);\r\n if (0 === minorTickInterval) {\r\n return []\r\n }\r\n var cur = correctTickValue(correctMinValue(min, tickInterval, min), minorTickInterval);\r\n minorTickInterval = updateTickInterval(minorTickInterval, firstMajor, cur, factor);\r\n var ticks = [];\r\n while (cur < firstMajor && (!tickBalance || tickBalance > 0)) {\r\n cur >= min && ticks.push(cur);\r\n tickBalance--;\r\n cur = addInterval(cur, minorTickInterval)\r\n }\r\n var middleTicks = majorTicks.reduce((r, tick) => {\r\n tickBalance = maxCount - 1;\r\n if (null === r.prevTick) {\r\n r.prevTick = tick;\r\n return r\r\n }\r\n minorTickInterval = updateTickInterval(minorTickInterval, tick, r.prevTick, factor);\r\n var cur = correctTickValue(r.prevTick, minorTickInterval);\r\n while (cur < tick && (!tickBalance || tickBalance > 0)) {\r\n cur !== r.prevTick && r.minors.push(cur);\r\n tickBalance--;\r\n cur = addInterval(cur, minorTickInterval)\r\n }\r\n r.prevTick = tick;\r\n return r\r\n }, {\r\n prevTick: null,\r\n minors: []\r\n });\r\n ticks = ticks.concat(middleTicks.minors);\r\n var maxValue = ceil(max, tickInterval, min);\r\n minorTickInterval = updateTickInterval(minorTickInterval, maxValue, maxValue, factor);\r\n cur = correctTickValue(lastMajor, minorTickInterval);\r\n var prev;\r\n while (cur < max && cur !== prev) {\r\n ticks.push(cur);\r\n prev = cur;\r\n cur = addInterval(cur, minorTickInterval)\r\n }\r\n if (lastMajor - max !== 0 && cur - max === 0) {\r\n ticks.push(cur)\r\n }\r\n return ticks\r\n }\r\n}\r\n\r\nfunction filterTicks(ticks, breaks) {\r\n if (breaks.length) {\r\n var result = breaks.reduce((result, b) => {\r\n var tmpTicks = [];\r\n var i;\r\n for (i = result[1]; i < ticks.length; i++) {\r\n var tickValue = ticks[i];\r\n if (tickValue < b.from) {\r\n tmpTicks.push(tickValue)\r\n }\r\n if (tickValue >= b.to) {\r\n break\r\n }\r\n }\r\n return [result[0].concat(tmpTicks), i]\r\n }, [\r\n [], 0\r\n ]);\r\n return result[0].concat(ticks.slice(result[1]))\r\n }\r\n return ticks\r\n}\r\n\r\nfunction correctTickValueOnGapSize(addInterval, breaks) {\r\n return function(value) {\r\n var gapSize;\r\n if (!breaks.every(item => {\r\n if (value >= item.from && value < item.to) {\r\n gapSize = item.gapSize\r\n }\r\n return !gapSize\r\n })) {\r\n value = addInterval(value, gapSize)\r\n }\r\n return value\r\n }\r\n}\r\n\r\nfunction generator(options, getBusinessDelta, calculateTickInterval, calculateMinorTickInterval, getMajorTickIntervalByCustomTicks, getMinorTickIntervalByCustomTicks, convertTickInterval, calculateTicks, calculateMinorTicks, processScaleBreaks) {\r\n function correctUserTickInterval(tickInterval, businessDelta, limit) {\r\n if (tickInterval && businessDelta / convertTickInterval(tickInterval) >= limit + 1) {\r\n options.incidentOccurred(\"W2003\");\r\n tickInterval = void 0\r\n }\r\n return tickInterval\r\n }\r\n return function(data, screenDelta, tickInterval, forceTickInterval, customTicks, minorTickInterval, minorTickCount, breaks) {\r\n customTicks = customTicks || {};\r\n var businessDelta = getBusinessDelta(data, breaks);\r\n var result = function(customTicks) {\r\n return {\r\n tickInterval: getMajorTickIntervalByCustomTicks(customTicks.majors),\r\n ticks: customTicks.majors || [],\r\n minorTickInterval: getMinorTickIntervalByCustomTicks(customTicks.minors),\r\n minorTicks: customTicks.minors || []\r\n }\r\n }(customTicks);\r\n if (!isNaN(businessDelta)) {\r\n if (0 === businessDelta && !customTicks.majors) {\r\n result.ticks = [data.min]\r\n } else {\r\n result = function(ticks, data, businessDelta, screenDelta, tickInterval, forceTickInterval, customTicks, breaks) {\r\n if (customTicks.majors) {\r\n ticks.breaks = breaks;\r\n return ticks\r\n }\r\n var gaps = breaks.filter(b => b.gapSize);\r\n var majorTicks;\r\n tickInterval = options.skipCalculationLimits ? tickInterval : correctUserTickInterval(tickInterval, businessDelta, screenDelta);\r\n tickInterval = calculateTickInterval(businessDelta, screenDelta, tickInterval, forceTickInterval, options.axisDivisionFactor, options.numberMultipliers, options.allowDecimals, breaks.length, gaps[0] && gaps[0].gapSize.days, options.minTickInterval);\r\n if (!options.skipTickGeneration) {\r\n majorTicks = calculateTicks(data, tickInterval, options.endOnTick, gaps, breaks, businessDelta, screenDelta, options.axisDivisionFactor, options.generateExtraTick);\r\n breaks = processScaleBreaks(breaks, majorTicks, tickInterval);\r\n majorTicks = filterTicks(majorTicks, breaks);\r\n ticks.breaks = breaks;\r\n ticks.ticks = ticks.ticks.concat(majorTicks)\r\n }\r\n ticks.tickInterval = tickInterval;\r\n return ticks\r\n }(result, data, businessDelta, screenDelta, tickInterval, forceTickInterval, customTicks, breaks || []);\r\n if (!options.skipTickGeneration && businessDelta > 0) {\r\n result = function(ticks, data, businessDelta, screenDelta, minorTickInterval, minorTickCount, customTicks) {\r\n if (!options.calculateMinors) {\r\n return ticks\r\n }\r\n if (customTicks.minors) {\r\n return ticks\r\n }\r\n var minorBusinessDelta = convertTickInterval(ticks.tickInterval);\r\n var minorScreenDelta = screenDelta * minorBusinessDelta / businessDelta;\r\n var breaks = ticks.breaks;\r\n if (!minorTickInterval && minorTickCount) {\r\n minorTickInterval = getMinorTickIntervalByCustomTicks([minorBusinessDelta / (minorTickCount + 1), minorBusinessDelta / (minorTickCount + 1) * 2])\r\n } else {\r\n minorTickCount = void 0\r\n }\r\n minorTickInterval = correctUserTickInterval(minorTickInterval, minorBusinessDelta, minorScreenDelta);\r\n minorTickInterval = calculateMinorTickInterval(minorBusinessDelta, minorScreenDelta, minorTickInterval, options.minorAxisDivisionFactor);\r\n ticks.minorTicks = filterTicks(ticks.minorTicks.concat(calculateMinorTicks(data.min, data.max, ticks.ticks, minorTickInterval, ticks.tickInterval, breaks, minorTickCount)), breaks);\r\n ticks.minorTickInterval = minorTickInterval;\r\n return ticks\r\n }(result, data, businessDelta, screenDelta, minorTickInterval, minorTickCount, customTicks)\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n}\r\n\r\nfunction getBaseTick(breakValue, _ref, interval, getValue) {\r\n var [tick, insideTick] = _ref;\r\n if (!isDefined(tick) || mathAbs(getValue(breakValue) - getValue(tick)) / interval > .25) {\r\n if (isDefined(insideTick) && mathAbs(getValue(insideTick) - getValue(tick)) / interval < 2) {\r\n tick = insideTick\r\n } else if (!isDefined(tick)) {\r\n tick = breakValue\r\n }\r\n }\r\n return tick\r\n}\r\n\r\nfunction getScaleBreaksProcessor(convertTickInterval, getValue, addCorrection) {\r\n return function(breaks, ticks, tickInterval) {\r\n var interval = convertTickInterval(tickInterval);\r\n var correction = .5 * interval;\r\n return breaks.reduce((result, b) => {\r\n var breakTicks = ticks.filter(tick => tick <= b.from);\r\n var from = addCorrection(getBaseTick(b.from, [].concat(breakTicks[breakTicks.length - 1], ticks[breakTicks.length]), interval, getValue), correction);\r\n breakTicks = ticks.filter(tick => tick >= b.to);\r\n var to = addCorrection(getBaseTick(b.to, [].concat(breakTicks[0], ticks[ticks.length - breakTicks.length - 1]), interval, getValue), -correction);\r\n if (getValue(to) - getValue(from) < interval && !b.gapSize) {\r\n return result\r\n }\r\n if (b.gapSize) {\r\n return result.concat([b])\r\n }\r\n return result.concat([{\r\n from: from,\r\n to: to,\r\n cumulativeWidth: b.cumulativeWidth\r\n }])\r\n }, [])\r\n }\r\n}\r\n\r\nfunction numericGenerator(options) {\r\n var floor = correctValueByInterval(getValue, mathFloor, getValue);\r\n var ceil = correctValueByInterval(getValue, mathCeil, getValue);\r\n var calculateTickIntervalByCustomTicks = getTickIntervalByCustomTicks(getValue, getValue);\r\n return generator(options, getBusinessDelta, calculateTickInterval, calculateMinorTickInterval, calculateTickIntervalByCustomTicks, calculateTickIntervalByCustomTicks, getValue, calculateTicks(addInterval, correctMinValueByEndOnTick(floor, ceil, resolveEndOnTick, options.endOnTick), adjustInterval, resolveEndOnTick), calculateMinorTicks(getValue, addInterval, floor, addInterval, getValue), getScaleBreaksProcessor(getValue, getValue, (value, correction) => value + correction))\r\n}\r\nvar correctValueByIntervalLog = (post, getRound, getValue) => (value, interval) => sign(value) * adjust(post(getRound(value)(adjust(getValue(value) / interval)) * interval));\r\n\r\nfunction logarithmicGenerator(options) {\r\n var base = options.logBase;\r\n var raise = raiseTo(base, options.allowNegatives, options.linearThreshold);\r\n var log = getLogValue(base, options.allowNegatives, options.linearThreshold);\r\n var absLog = logAbsValue(base);\r\n var absRaise = mathRaiseTo(base);\r\n var floor = correctValueByIntervalLog(absRaise, value => value < 0 ? mathCeil : mathFloor, absLog);\r\n var ceil = correctValueByIntervalLog(absRaise, value => value < 0 ? mathFloor : mathCeil, absLog);\r\n var ceilNumber = correctValueByInterval(getValue, mathCeil, getValue);\r\n return generator(options, getBusinessDeltaLog(base, options.allowNegatives, options.linearThreshold), getCalculateTickIntervalLog(options.skipCalculationLimits), calculateMinorTickInterval, getTickIntervalByCustomTicks(log, getValue), getTickIntervalByCustomTicks(getValue, getValue), getValue, calculateTicks(addIntervalLog(log, raise), correctMinValueByEndOnTick(floor, ceil, resolveEndOnTickLog(base), options.endOnTick), getAdjustIntervalLog(options.skipCalculationLimits), resolveEndOnTickLog(base)), calculateMinorTicks((_, tick, prevTick, factor) => Math.max(Math.abs(tick), Math.abs(prevTick)) / factor, addInterval, floor, ceilNumber, ceil), getScaleBreaksProcessor(getValue, log, (value, correction) => raise(log(value) + correction)))\r\n}\r\n\r\nfunction dateGenerator(options) {\r\n function floor(value, interval) {\r\n var floorNumber = correctValueByInterval(getValue, mathFloor, getValue);\r\n var intervalObject = isString(interval) ? dateUtils.getDateIntervalByString(interval.toLowerCase()) : interval;\r\n var divider = dateToMilliseconds(interval);\r\n if (intervalObject.days % 7 === 0 || interval.quarters) {\r\n intervalObject = adjustIntervalDateTime(divider)\r\n }\r\n var correctDateWithUnitBeginning = v => dateUtils.correctDateWithUnitBeginning(v, intervalObject, null, options.firstDayOfWeek);\r\n var floorAtStartDate = v => new Date(mathFloor((v.getTime() - v.getTimezoneOffset() * MINUTE) / divider) * divider + v.getTimezoneOffset() * MINUTE);\r\n value = correctDateWithUnitBeginning(value);\r\n if (\"years\" in intervalObject) {\r\n value.setFullYear(floorNumber(value.getFullYear(), intervalObject.years))\r\n } else if (\"quarters\" in intervalObject) {\r\n value = correctDateWithUnitBeginning(floorAtStartDate(value))\r\n } else if (\"months\" in intervalObject) {\r\n value.setMonth(floorNumber(value.getMonth(), intervalObject.months))\r\n } else if (\"weeks\" in intervalObject || \"days\" in intervalObject) {\r\n value = correctDateWithUnitBeginning(floorAtStartDate(value))\r\n } else if (\"hours\" in intervalObject) {\r\n value.setHours(floorNumber(value.getHours(), intervalObject.hours))\r\n } else if (\"minutes\" in intervalObject) {\r\n value.setMinutes(floorNumber(value.getMinutes(), intervalObject.minutes))\r\n } else if (\"seconds\" in intervalObject) {\r\n value.setSeconds(floorNumber(value.getSeconds(), intervalObject.seconds))\r\n } else if (\"milliseconds\" in intervalObject) {\r\n value = floorAtStartDate(value)\r\n }\r\n return value\r\n }\r\n var calculateTickIntervalByCustomTicks = getTickIntervalByCustomTicks(getValue, dateUtils.convertMillisecondsToDateUnits);\r\n return generator(options, getBusinessDelta, calculateTickIntervalDateTime, calculateMinorTickIntervalDateTime, calculateTickIntervalByCustomTicks, calculateTickIntervalByCustomTicks, dateToMilliseconds, calculateTicks(addIntervalDate, correctMinValueByEndOnTick(floor, (function(value, interval) {\r\n var newValue = floor(value, interval);\r\n while (value - newValue > 0) {\r\n newValue = addIntervalDate(newValue, interval)\r\n }\r\n return newValue\r\n }), resolveEndOnTickDate, options.endOnTick), adjustIntervalDateTime, resolveEndOnTickDate), calculateMinorTicks(getValue, addIntervalDate, floor, addIntervalDate, getValue), getScaleBreaksProcessor(dateToMilliseconds, getValue, (value, correction) => new Date(value.getTime() + correction)))\r\n}\r\nexport var tickGenerator = function(options) {\r\n var result;\r\n if (options.rangeIsEmpty) {\r\n result = dummyGenerator(options)\r\n } else if (\"discrete\" === options.axisType) {\r\n result = discreteGenerator(options)\r\n } else if (\"logarithmic\" === options.axisType) {\r\n result = logarithmicGenerator(options)\r\n } else if (\"datetime\" === options.dataType) {\r\n result = dateGenerator(options)\r\n } else {\r\n result = numericGenerator(options)\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/multi_axes_synchronizer.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n debug\r\n} from \"../../core/utils/console\";\r\nimport {\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getLogExt,\r\n raiseToExt\r\n} from \"../core/utils\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar _math = Math;\r\nvar _floor = _math.floor;\r\nvar _max = _math.max;\r\nvar _abs = _math.abs;\r\n\r\nfunction getValueAxesPerPanes(valueAxes) {\r\n var result = {};\r\n valueAxes.forEach(axis => {\r\n var pane = axis.pane;\r\n if (!result[pane]) {\r\n result[pane] = []\r\n }\r\n result[pane].push(axis)\r\n });\r\n return result\r\n}\r\nvar linearConverter = br => ({\r\n transform: function(v, b) {\r\n return adjust(getLogExt(v, b, br.allowNegatives, br.linearThreshold))\r\n },\r\n getTicks: function(interval, tickValues, base) {\r\n var ticks = [];\r\n var tick = this.transform(tickValues[0], base);\r\n while (ticks.length < tickValues.length) {\r\n ticks.push(tick);\r\n tick = adjust(tick + interval)\r\n }\r\n return ticks\r\n }\r\n});\r\nvar logConverter = br => ({\r\n transform: function(v, b) {\r\n return adjust(raiseToExt(v, b, br.allowNegatives, br.linearThreshold))\r\n },\r\n getTicks: function(interval, tickValues, base) {\r\n var ticks = [];\r\n var tick;\r\n for (var i = 0; i < tickValues.length; i += 1) {\r\n tick = this.transform(tickValues[i], base);\r\n ticks.push(tick)\r\n }\r\n return ticks\r\n }\r\n});\r\n\r\nfunction convertAxisInfo(axisInfo, converter) {\r\n if (!axisInfo.isLogarithmic) {\r\n return\r\n }\r\n var base = axisInfo.logarithmicBase;\r\n var tickValues = axisInfo.tickValues;\r\n axisInfo.minValue = converter.transform(axisInfo.minValue, base);\r\n axisInfo.oldMinValue = converter.transform(axisInfo.oldMinValue, base);\r\n axisInfo.maxValue = converter.transform(axisInfo.maxValue, base);\r\n axisInfo.oldMaxValue = converter.transform(axisInfo.oldMaxValue, base);\r\n axisInfo.tickInterval = _math.round(axisInfo.tickInterval);\r\n if (axisInfo.tickInterval < 1) {\r\n axisInfo.tickInterval = 1\r\n }\r\n var ticks = converter.getTicks(axisInfo.tickInterval, tickValues, base);\r\n ticks.tickInterval = axisInfo.tickInterval;\r\n axisInfo.tickValues = ticks\r\n}\r\n\r\nfunction populateAxesInfo(axes) {\r\n return axes.reduce((function(result, axis) {\r\n var ticksValues = axis.getTicksValues();\r\n var majorTicks = ticksValues.majorTicksValues;\r\n var options = axis.getOptions();\r\n var businessRange = axis.getTranslator().getBusinessRange();\r\n var visibleArea = axis.getVisibleArea();\r\n var axisInfo;\r\n var tickInterval = axis._tickInterval;\r\n var synchronizedValue = options.synchronizedValue;\r\n var action = axis.getViewport().action;\r\n if (majorTicks && majorTicks.length > 0 && isNumeric(majorTicks[0]) && \"discrete\" !== options.type && !businessRange.isEmpty() && !(businessRange.breaks && businessRange.breaks.length) && \"zoom\" !== action && \"pan\" !== action) {\r\n axis.applyMargins();\r\n var startValue = axis.getTranslator().from(visibleArea[0]);\r\n var endValue = axis.getTranslator().from(visibleArea[1]);\r\n var minValue = startValue < endValue ? startValue : endValue;\r\n var maxValue = startValue < endValue ? endValue : startValue;\r\n if (minValue === maxValue && isDefined(synchronizedValue)) {\r\n tickInterval = _abs(majorTicks[0] - synchronizedValue) || 1;\r\n minValue = majorTicks[0] - tickInterval;\r\n maxValue = majorTicks[0] + tickInterval\r\n }\r\n axisInfo = {\r\n axis: axis,\r\n isLogarithmic: \"logarithmic\" === options.type,\r\n logarithmicBase: businessRange.base,\r\n tickValues: majorTicks,\r\n minorValues: ticksValues.minorTicksValues,\r\n minorTickInterval: axis._minorTickInterval,\r\n minValue: minValue,\r\n oldMinValue: minValue,\r\n maxValue: maxValue,\r\n oldMaxValue: maxValue,\r\n inverted: businessRange.invert,\r\n tickInterval: tickInterval,\r\n synchronizedValue: synchronizedValue\r\n };\r\n convertAxisInfo(axisInfo, linearConverter(axis.getTranslator().getBusinessRange()));\r\n result.push(axisInfo)\r\n }\r\n return result\r\n }), [])\r\n}\r\n\r\nfunction updateTickValues(axesInfo) {\r\n var maxTicksCount = axesInfo.reduce((max, axisInfo) => _max(max, axisInfo.tickValues.length), 0);\r\n axesInfo.forEach(axisInfo => {\r\n var ticksMultiplier;\r\n var ticksCount;\r\n var additionalStartTicksCount = 0;\r\n var synchronizedValue = axisInfo.synchronizedValue;\r\n var tickValues = axisInfo.tickValues;\r\n var tickInterval = axisInfo.tickInterval;\r\n if (isDefined(synchronizedValue)) {\r\n axisInfo.baseTickValue = axisInfo.invertedBaseTickValue = synchronizedValue;\r\n axisInfo.tickValues = [axisInfo.baseTickValue]\r\n } else {\r\n if (tickValues.length > 1 && tickInterval) {\r\n ticksMultiplier = _floor((maxTicksCount + 1) / tickValues.length);\r\n ticksCount = ticksMultiplier > 1 ? _floor((maxTicksCount + 1) / ticksMultiplier) : maxTicksCount;\r\n additionalStartTicksCount = _floor((ticksCount - tickValues.length) / 2);\r\n while (additionalStartTicksCount > 0 && 0 !== tickValues[0]) {\r\n tickValues.unshift(adjust(tickValues[0] - tickInterval));\r\n additionalStartTicksCount--\r\n }\r\n while (tickValues.length < ticksCount) {\r\n tickValues.push(adjust(tickValues[tickValues.length - 1] + tickInterval))\r\n }\r\n axisInfo.tickInterval = tickInterval / ticksMultiplier\r\n }\r\n axisInfo.baseTickValue = tickValues[0];\r\n axisInfo.invertedBaseTickValue = tickValues[tickValues.length - 1]\r\n }\r\n })\r\n}\r\n\r\nfunction getAxisRange(axisInfo) {\r\n return axisInfo.maxValue - axisInfo.minValue || 1\r\n}\r\n\r\nfunction getMainAxisInfo(axesInfo) {\r\n for (var i = 0; i < axesInfo.length; i++) {\r\n if (!axesInfo[i].stubData) {\r\n return axesInfo[i]\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction correctMinMaxValues(axesInfo) {\r\n var mainAxisInfo = getMainAxisInfo(axesInfo);\r\n var mainAxisInfoTickInterval = mainAxisInfo.tickInterval;\r\n axesInfo.forEach(axisInfo => {\r\n var scale;\r\n var move;\r\n var mainAxisBaseValueOffset;\r\n var valueFromAxisInfo;\r\n if (axisInfo !== mainAxisInfo) {\r\n if (mainAxisInfoTickInterval && axisInfo.tickInterval) {\r\n if (axisInfo.stubData && isDefined(axisInfo.synchronizedValue)) {\r\n axisInfo.oldMinValue = axisInfo.minValue = axisInfo.baseTickValue - (mainAxisInfo.baseTickValue - mainAxisInfo.minValue) / mainAxisInfoTickInterval * axisInfo.tickInterval;\r\n axisInfo.oldMaxValue = axisInfo.maxValue = axisInfo.baseTickValue - (mainAxisInfo.baseTickValue - mainAxisInfo.maxValue) / mainAxisInfoTickInterval * axisInfo.tickInterval\r\n }\r\n scale = mainAxisInfoTickInterval / getAxisRange(mainAxisInfo) / axisInfo.tickInterval * getAxisRange(axisInfo);\r\n axisInfo.maxValue = axisInfo.minValue + getAxisRange(axisInfo) / scale\r\n }\r\n if (mainAxisInfo.inverted && !axisInfo.inverted || !mainAxisInfo.inverted && axisInfo.inverted) {\r\n mainAxisBaseValueOffset = mainAxisInfo.maxValue - mainAxisInfo.invertedBaseTickValue\r\n } else {\r\n mainAxisBaseValueOffset = mainAxisInfo.baseTickValue - mainAxisInfo.minValue\r\n }\r\n valueFromAxisInfo = getAxisRange(axisInfo);\r\n move = (mainAxisBaseValueOffset / getAxisRange(mainAxisInfo) - (axisInfo.baseTickValue - axisInfo.minValue) / valueFromAxisInfo) * valueFromAxisInfo;\r\n axisInfo.minValue -= move;\r\n axisInfo.maxValue -= move\r\n }\r\n })\r\n}\r\n\r\nfunction calculatePaddings(axesInfo) {\r\n var minPadding;\r\n var maxPadding;\r\n var startPadding = 0;\r\n var endPadding = 0;\r\n axesInfo.forEach(axisInfo => {\r\n var inverted = axisInfo.inverted;\r\n minPadding = axisInfo.minValue > axisInfo.oldMinValue ? (axisInfo.minValue - axisInfo.oldMinValue) / getAxisRange(axisInfo) : 0;\r\n maxPadding = axisInfo.maxValue < axisInfo.oldMaxValue ? (axisInfo.oldMaxValue - axisInfo.maxValue) / getAxisRange(axisInfo) : 0;\r\n startPadding = _max(startPadding, inverted ? maxPadding : minPadding);\r\n endPadding = _max(endPadding, inverted ? minPadding : maxPadding)\r\n });\r\n return {\r\n start: startPadding,\r\n end: endPadding\r\n }\r\n}\r\n\r\nfunction correctMinMaxValuesByPaddings(axesInfo, paddings) {\r\n axesInfo.forEach(info => {\r\n var range = getAxisRange(info);\r\n var inverted = info.inverted;\r\n info.minValue = adjust(info.minValue - paddings[inverted ? \"end\" : \"start\"] * range);\r\n info.maxValue = adjust(info.maxValue + paddings[inverted ? \"start\" : \"end\"] * range)\r\n })\r\n}\r\n\r\nfunction updateTickValuesIfSynchronizedValueUsed(axesInfo) {\r\n var hasSynchronizedValue = false;\r\n axesInfo.forEach(info => {\r\n hasSynchronizedValue = hasSynchronizedValue || isDefined(info.synchronizedValue)\r\n });\r\n axesInfo.forEach(info => {\r\n var tickInterval = info.tickInterval;\r\n var tickValues = info.tickValues;\r\n var maxValue = info.maxValue;\r\n var minValue = info.minValue;\r\n var tick;\r\n if (hasSynchronizedValue && tickInterval) {\r\n while ((tick = adjust(tickValues[0] - tickInterval)) >= minValue) {\r\n tickValues.unshift(tick)\r\n }\r\n tick = tickValues[tickValues.length - 1];\r\n while ((tick = adjust(tick + tickInterval)) <= maxValue) {\r\n tickValues.push(tick)\r\n }\r\n }\r\n while (tickValues[0] + tickInterval / 10 < minValue) {\r\n tickValues.shift()\r\n }\r\n while (tickValues[tickValues.length - 1] - tickInterval / 10 > maxValue) {\r\n tickValues.pop()\r\n }\r\n })\r\n}\r\n\r\nfunction applyMinMaxValues(axesInfo) {\r\n axesInfo.forEach(info => {\r\n var axis = info.axis;\r\n var range = axis.getTranslator().getBusinessRange();\r\n if (range.min === range.minVisible) {\r\n range.min = info.minValue\r\n }\r\n if (range.max === range.maxVisible) {\r\n range.max = info.maxValue\r\n }\r\n range.minVisible = info.minValue;\r\n range.maxVisible = info.maxValue;\r\n if (range.min > range.minVisible) {\r\n range.min = range.minVisible\r\n }\r\n if (range.max < range.maxVisible) {\r\n range.max = range.maxVisible\r\n }\r\n axis.getTranslator().updateBusinessRange(range);\r\n axis.setTicks({\r\n majorTicks: info.tickValues,\r\n minorTicks: info.minorValues\r\n })\r\n })\r\n}\r\n\r\nfunction correctAfterSynchronize(axesInfo) {\r\n var invalidAxisInfo = [];\r\n var correctValue;\r\n axesInfo.forEach(info => {\r\n if (info.oldMaxValue - info.oldMinValue === 0) {\r\n invalidAxisInfo.push(info)\r\n } else if (!isDefined(correctValue) && !isDefined(info.synchronizedValue)) {\r\n correctValue = _abs((info.maxValue - info.minValue) / (info.tickValues[_floor(info.tickValues.length / 2)] - info.minValue || info.maxValue))\r\n }\r\n });\r\n if (!isDefined(correctValue)) {\r\n return\r\n }\r\n invalidAxisInfo.forEach(info => {\r\n var firstTick = info.tickValues[0];\r\n var correctedTick = firstTick * correctValue;\r\n if (firstTick > 0) {\r\n info.maxValue = correctedTick;\r\n info.minValue = 0\r\n } else if (firstTick < 0) {\r\n info.minValue = correctedTick;\r\n info.maxValue = 0\r\n }\r\n })\r\n}\r\n\r\nfunction updateMinorTicks(axesInfo) {\r\n axesInfo.forEach((function(axisInfo) {\r\n if (!axisInfo.minorTickInterval) {\r\n return\r\n }\r\n var ticks = [];\r\n var interval = axisInfo.minorTickInterval;\r\n var tickCount = axisInfo.tickInterval / interval - 1;\r\n for (var i = 1; i < axisInfo.tickValues.length; i++) {\r\n var tick = axisInfo.tickValues[i - 1];\r\n for (var j = 0; j < tickCount; j++) {\r\n tick += interval;\r\n ticks.push(tick)\r\n }\r\n }\r\n axisInfo.minorValues = ticks\r\n }))\r\n}\r\n\r\nfunction correctPaddings(axesInfo, paddings) {\r\n return axesInfo.reduce((prev, info) => {\r\n var inverted = info.inverted;\r\n var {\r\n start: start,\r\n end: end\r\n } = info.axis.getCorrectedValuesToZero(info.minValue, info.maxValue);\r\n if (isDefined(start) || isDefined(end)) {\r\n return inverted ? {\r\n start: prev.start,\r\n end: Math.min(prev.end, end)\r\n } : {\r\n start: Math.min(prev.start, start),\r\n end: prev.end\r\n }\r\n }\r\n return prev\r\n }, paddings)\r\n}\r\nvar multiAxesSynchronizer = {\r\n synchronize: function(valueAxes) {\r\n each(getValueAxesPerPanes(valueAxes), (function(_, axes) {\r\n var axesInfo;\r\n var paddings;\r\n if (axes.length > 1) {\r\n axesInfo = populateAxesInfo(axes);\r\n if (axesInfo.length < 2 || !getMainAxisInfo(axesInfo)) {\r\n return\r\n }\r\n updateTickValues(axesInfo);\r\n correctMinMaxValues(axesInfo);\r\n paddings = calculatePaddings(axesInfo);\r\n paddings = correctPaddings(axesInfo, paddings);\r\n correctMinMaxValuesByPaddings(axesInfo, paddings);\r\n correctAfterSynchronize(axesInfo);\r\n updateTickValuesIfSynchronizedValueUsed(axesInfo);\r\n updateMinorTicks(axesInfo);\r\n axesInfo.forEach(info => {\r\n convertAxisInfo(info, logConverter(info.axis.getTranslator().getBusinessRange()))\r\n });\r\n applyMinMaxValues(axesInfo)\r\n }\r\n }))\r\n }\r\n};\r\nexport default multiAxesSynchronizer;\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/advanced_chart.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each as _each,\r\n reverseEach as _reverseEach\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n Axis\r\n} from \"../axes/base_axis\";\r\nimport {\r\n SeriesFamily\r\n} from \"../core/series_family\";\r\nimport {\r\n BaseChart\r\n} from \"./base_chart\";\r\nimport rangeDataCalculator from \"../series/helpers/range_data_calculator\";\r\nimport {\r\n isDefined as _isDefined,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n convertVisualRangeObject,\r\n rangesAreEqual,\r\n map as _map,\r\n mergeMarginOptions,\r\n setCanvasValues,\r\n unique\r\n} from \"../core/utils\";\r\nvar _isArray = Array.isArray;\r\nvar DEFAULT_AXIS_NAME = \"defaultAxisName\";\r\nvar FONT = \"font\";\r\nvar COMMON_AXIS_SETTINGS = \"commonAxisSettings\";\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar VISUAL_RANGE = \"VISUAL_RANGE\";\r\n\r\nfunction prepareAxis(axisOptions) {\r\n return _isArray(axisOptions) ? 0 === axisOptions.length ? [{}] : axisOptions : [axisOptions]\r\n}\r\n\r\nfunction processBubbleMargin(opt, bubbleSize) {\r\n if (opt.processBubbleSize) {\r\n opt.size = bubbleSize\r\n }\r\n return opt\r\n}\r\n\r\nfunction estimateBubbleSize(size, panesCount, maxSize, rotated) {\r\n var width = rotated ? size.width / panesCount : size.width;\r\n var height = rotated ? size.height : size.height / panesCount;\r\n return Math.min(width, height) * maxSize\r\n}\r\n\r\nfunction setAxisVisualRangeByOption(arg, axis, isDirectOption, index) {\r\n var options;\r\n var visualRange;\r\n if (isDirectOption) {\r\n visualRange = arg.value;\r\n options = {\r\n skipEventRising: true\r\n };\r\n var wrappedVisualRange = wrapVisualRange(arg.fullName, visualRange);\r\n if (wrappedVisualRange) {\r\n options = {\r\n allowPartialUpdate: true\r\n };\r\n visualRange = wrappedVisualRange\r\n }\r\n } else {\r\n visualRange = (_isDefined(index) ? arg.value[index] : arg.value).visualRange\r\n }\r\n axis.visualRange(visualRange, options)\r\n}\r\n\r\nfunction getAxisTypes(groupsData, axis, isArgumentAxes) {\r\n if (isArgumentAxes) {\r\n return {\r\n argumentAxisType: groupsData.argumentAxisType,\r\n argumentType: groupsData.argumentType\r\n }\r\n }\r\n var {\r\n valueAxisType: valueAxisType,\r\n valueType: valueType\r\n } = groupsData.groups.filter(g => g.valueAxis === axis)[0];\r\n return {\r\n valueAxisType: valueAxisType,\r\n valueType: valueType\r\n }\r\n}\r\n\r\nfunction wrapVisualRange(fullName, value) {\r\n var pathElements = fullName.split(\".\");\r\n var destElem = pathElements[pathElements.length - 1];\r\n if (\"endValue\" === destElem || \"startValue\" === destElem) {\r\n return {\r\n [destElem]: value\r\n }\r\n }\r\n}\r\nexport var AdvancedChart = BaseChart.inherit({\r\n _fontFields: [COMMON_AXIS_SETTINGS + \".label.\" + FONT, COMMON_AXIS_SETTINGS + \".title.\" + FONT],\r\n _partialOptionChangesMap: {\r\n visualRange: VISUAL_RANGE,\r\n _customVisualRange: VISUAL_RANGE,\r\n strips: \"REFRESH_AXES\",\r\n constantLines: \"REFRESH_AXES\"\r\n },\r\n _partialOptionChangesPath: {\r\n argumentAxis: [\"strips\", \"constantLines\", \"visualRange\", \"_customVisualRange\"],\r\n valueAxis: [\"strips\", \"constantLines\", \"visualRange\", \"_customVisualRange\"]\r\n },\r\n _initCore() {\r\n this._panesClipRects = {};\r\n this.callBase()\r\n },\r\n _disposeCore() {\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n var panesClipRects = this._panesClipRects;\r\n this.callBase();\r\n disposeObjectsInArray.call(panesClipRects, \"fixed\");\r\n disposeObjectsInArray.call(panesClipRects, \"base\");\r\n disposeObjectsInArray.call(panesClipRects, \"wide\");\r\n this._panesClipRects = null;\r\n this._labelsAxesGroup.linkOff();\r\n this._labelsAxesGroup.dispose();\r\n this._labelsAxesGroup = null\r\n },\r\n _dispose: function() {\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n this.callBase();\r\n this.panes = null;\r\n if (this._legend) {\r\n this._legend.dispose();\r\n this._legend = null\r\n }\r\n disposeObjectsInArray.call(this, \"panesBackground\");\r\n disposeObjectsInArray.call(this, \"seriesFamilies\");\r\n this._disposeAxes()\r\n },\r\n _createPanes: function() {\r\n this._cleanPanesClipRects(\"fixed\");\r\n this._cleanPanesClipRects(\"base\");\r\n this._cleanPanesClipRects(\"wide\")\r\n },\r\n _cleanPanesClipRects(clipArrayName) {\r\n var clipArray = this._panesClipRects[clipArrayName];\r\n (clipArray || []).forEach(clipRect => clipRect && clipRect.dispose());\r\n this._panesClipRects[clipArrayName] = []\r\n },\r\n _getElementsClipRectID(paneName) {\r\n var clipShape = this._panesClipRects.fixed[this._getPaneIndex(paneName)];\r\n return clipShape && clipShape.id\r\n },\r\n _getPaneIndex(paneName) {\r\n var paneIndex;\r\n var name = paneName || DEFAULT_PANE_NAME;\r\n _each(this.panes, (index, pane) => {\r\n if (pane.name === name) {\r\n paneIndex = index;\r\n return false\r\n }\r\n });\r\n return paneIndex\r\n },\r\n _updateSize() {\r\n this.callBase();\r\n setCanvasValues(this._canvas)\r\n },\r\n _reinitAxes: function() {\r\n this.panes = this._createPanes();\r\n this._populateAxes();\r\n this._axesReinitialized = true\r\n },\r\n _populateAxes() {\r\n var that = this;\r\n var panes = that.panes;\r\n var rotated = that._isRotated();\r\n var argumentAxesOptions = prepareAxis(that.option(\"argumentAxis\") || {})[0];\r\n var valueAxisOption = that.option(\"valueAxis\");\r\n var valueAxesOptions = prepareAxis(valueAxisOption || {});\r\n var argumentAxesPopulatedOptions;\r\n var valueAxesPopulatedOptions = [];\r\n var axisNames = [];\r\n var valueAxesCounter = 0;\r\n var paneWithNonVirtualAxis;\r\n var crosshairMargins = that._getCrosshairMargins();\r\n if (rotated) {\r\n paneWithNonVirtualAxis = \"right\" === argumentAxesOptions.position ? panes[panes.length - 1].name : panes[0].name\r\n } else {\r\n paneWithNonVirtualAxis = \"top\" === argumentAxesOptions.position ? panes[0].name : panes[panes.length - 1].name\r\n }\r\n argumentAxesPopulatedOptions = _map(panes, pane => {\r\n var virtual = pane.name !== paneWithNonVirtualAxis;\r\n return that._populateAxesOptions(\"argumentAxis\", argumentAxesOptions, {\r\n pane: pane.name,\r\n name: null,\r\n optionPath: \"argumentAxis\",\r\n crosshairMargin: rotated ? crosshairMargins.x : crosshairMargins.y\r\n }, rotated, virtual)\r\n });\r\n _each(valueAxesOptions, (priority, axisOptions) => {\r\n var _axisOptions$panes;\r\n var axisPanes = [];\r\n var name = axisOptions.name;\r\n if (name && -1 !== inArray(name, axisNames)) {\r\n that._incidentOccurred(\"E2102\");\r\n return\r\n }\r\n name && axisNames.push(name);\r\n if (axisOptions.pane) {\r\n axisPanes.push(axisOptions.pane)\r\n }\r\n if (null !== (_axisOptions$panes = axisOptions.panes) && void 0 !== _axisOptions$panes && _axisOptions$panes.length) {\r\n axisPanes = axisPanes.concat(axisOptions.panes.slice(0))\r\n }\r\n axisPanes = unique(axisPanes);\r\n if (!axisPanes.length) {\r\n axisPanes.push(void 0)\r\n }\r\n _each(axisPanes, (_, pane) => {\r\n var optionPath = _isArray(valueAxisOption) ? \"valueAxis[\".concat(priority, \"]\") : \"valueAxis\";\r\n valueAxesPopulatedOptions.push(that._populateAxesOptions(\"valueAxis\", axisOptions, {\r\n name: name || DEFAULT_AXIS_NAME + valueAxesCounter++,\r\n pane: pane,\r\n priority: priority,\r\n optionPath: optionPath,\r\n crosshairMargin: rotated ? crosshairMargins.y : crosshairMargins.x\r\n }, rotated))\r\n })\r\n });\r\n that._redesignAxes(argumentAxesPopulatedOptions, true, paneWithNonVirtualAxis);\r\n that._redesignAxes(valueAxesPopulatedOptions, false)\r\n },\r\n _redesignAxes(options, isArgumentAxes, paneWithNonVirtualAxis) {\r\n var that = this;\r\n var axesBasis = [];\r\n var axes = isArgumentAxes ? that._argumentAxes : that._valueAxes;\r\n _each(options, (_, opt) => {\r\n var curAxes = axes && axes.filter(a => a.name === opt.name && (!_isDefined(opt.pane) && that.panes.some(p => p.name === a.pane) || a.pane === opt.pane));\r\n if (curAxes && curAxes.length > 0) {\r\n _each(curAxes, (_, axis) => {\r\n var axisTypes = getAxisTypes(that._groupsData, axis, isArgumentAxes);\r\n axis.updateOptions(opt);\r\n if (isArgumentAxes) {\r\n axis.setTypes(axisTypes.argumentAxisType, axisTypes.argumentType, \"argumentType\")\r\n } else {\r\n axis.setTypes(axisTypes.valueAxisType, axisTypes.valueType, \"valueType\")\r\n }\r\n axis.validate();\r\n axesBasis.push({\r\n axis: axis\r\n })\r\n })\r\n } else {\r\n axesBasis.push({\r\n options: opt\r\n })\r\n }\r\n });\r\n if (axes) {\r\n _reverseEach(axes, (index, axis) => {\r\n if (!axesBasis.some(basis => basis.axis && basis.axis === axis)) {\r\n that._disposeAxis(index, isArgumentAxes)\r\n }\r\n })\r\n } else if (isArgumentAxes) {\r\n axes = that._argumentAxes = []\r\n } else {\r\n axes = that._valueAxes = []\r\n }\r\n _each(axesBasis, (_, basis) => {\r\n var axis = basis.axis;\r\n if (basis.axis && isArgumentAxes) {\r\n basis.axis.isVirtual = basis.axis.pane !== paneWithNonVirtualAxis\r\n } else if (basis.options) {\r\n axis = that._createAxis(isArgumentAxes, basis.options, isArgumentAxes ? basis.options.pane !== paneWithNonVirtualAxis : void 0);\r\n axes.push(axis)\r\n }\r\n axis.applyVisualRangeSetter(that._getVisualRangeSetter())\r\n })\r\n },\r\n _disposeAxis(index, isArgumentAxis) {\r\n var axes = isArgumentAxis ? this._argumentAxes : this._valueAxes;\r\n var axis = axes[index];\r\n if (!axis) {\r\n return\r\n }\r\n axis.dispose();\r\n axes.splice(index, 1)\r\n },\r\n _disposeAxes: function() {\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n disposeObjectsInArray.call(this, \"_argumentAxes\");\r\n disposeObjectsInArray.call(this, \"_valueAxes\")\r\n },\r\n _appendAdditionalSeriesGroups: function() {\r\n this._crosshairCursorGroup.linkAppend();\r\n this._scrollBar && this._scrollBarGroup.linkAppend()\r\n },\r\n _getLegendTargets: function() {\r\n return (this.series || []).map(s => {\r\n var item = this._getLegendOptions(s);\r\n item.legendData.series = s;\r\n if (!s.getOptions().showInLegend) {\r\n item.legendData.visible = false\r\n }\r\n return item\r\n })\r\n },\r\n _legendItemTextField: \"name\",\r\n _seriesPopulatedHandlerCore: function() {\r\n this._processSeriesFamilies();\r\n this._processValueAxisFormat()\r\n },\r\n _renderTrackers: function() {\r\n var i;\r\n for (i = 0; i < this.series.length; ++i) {\r\n this.series[i].drawTrackers()\r\n }\r\n },\r\n _specialProcessSeries: function() {\r\n this._processSeriesFamilies()\r\n },\r\n _processSeriesFamilies: function() {\r\n var _that$seriesFamilies;\r\n var that = this;\r\n var types = [];\r\n var families = [];\r\n var paneSeries;\r\n var themeManager = that._themeManager;\r\n var negativesAsZeroes = themeManager.getOptions(\"negativesAsZeroes\");\r\n var negativesAsZeros = themeManager.getOptions(\"negativesAsZeros\");\r\n var familyOptions = {\r\n minBubbleSize: themeManager.getOptions(\"minBubbleSize\"),\r\n maxBubbleSize: themeManager.getOptions(\"maxBubbleSize\"),\r\n barGroupPadding: themeManager.getOptions(\"barGroupPadding\"),\r\n barGroupWidth: themeManager.getOptions(\"barGroupWidth\"),\r\n negativesAsZeroes: _isDefined(negativesAsZeroes) ? negativesAsZeroes : negativesAsZeros\r\n };\r\n if (null !== (_that$seriesFamilies = that.seriesFamilies) && void 0 !== _that$seriesFamilies && _that$seriesFamilies.length) {\r\n _each(that.seriesFamilies, (function(_, family) {\r\n family.updateOptions(familyOptions);\r\n family.adjustSeriesValues()\r\n }));\r\n return\r\n }\r\n _each(that.series, (function(_, item) {\r\n if (-1 === inArray(item.type, types)) {\r\n types.push(item.type)\r\n }\r\n }));\r\n _each(that._getLayoutTargets(), (function(_, pane) {\r\n paneSeries = that._getSeriesForPane(pane.name);\r\n _each(types, (function(_, type) {\r\n var family = new SeriesFamily({\r\n type: type,\r\n pane: pane.name,\r\n minBubbleSize: familyOptions.minBubbleSize,\r\n maxBubbleSize: familyOptions.maxBubbleSize,\r\n barGroupPadding: familyOptions.barGroupPadding,\r\n barGroupWidth: familyOptions.barGroupWidth,\r\n negativesAsZeroes: familyOptions.negativesAsZeroes,\r\n rotated: that._isRotated()\r\n });\r\n family.add(paneSeries);\r\n family.adjustSeriesValues();\r\n families.push(family)\r\n }))\r\n }));\r\n that.seriesFamilies = families\r\n },\r\n _updateSeriesDimensions: function() {\r\n var i;\r\n var seriesFamilies = this.seriesFamilies || [];\r\n for (i = 0; i < seriesFamilies.length; i++) {\r\n var family = seriesFamilies[i];\r\n family.updateSeriesValues();\r\n family.adjustSeriesDimensions()\r\n }\r\n },\r\n _getLegendCallBack: function(series) {\r\n return this._legend && this._legend.getActionCallback(series)\r\n },\r\n _appendAxesGroups: function() {\r\n this._stripsGroup.linkAppend();\r\n this._gridGroup.linkAppend();\r\n this._axesGroup.linkAppend();\r\n this._labelsAxesGroup.linkAppend();\r\n this._constantLinesGroup.linkAppend();\r\n this._stripLabelAxesGroup.linkAppend();\r\n this._scaleBreaksGroup.linkAppend()\r\n },\r\n _populateMarginOptions() {\r\n var that = this;\r\n var bubbleSize = estimateBubbleSize(that.getSize(), that.panes.length, that._themeManager.getOptions(\"maxBubbleSize\"), that._isRotated());\r\n var argumentMarginOptions = {};\r\n that._valueAxes.forEach(valueAxis => {\r\n var groupSeries = that.series.filter((function(series) {\r\n return series.getValueAxis() === valueAxis\r\n }));\r\n var marginOptions = {};\r\n groupSeries.forEach(series => {\r\n if (series.isVisible()) {\r\n var seriesMarginOptions = processBubbleMargin(series.getMarginOptions(), bubbleSize);\r\n marginOptions = mergeMarginOptions(marginOptions, seriesMarginOptions);\r\n argumentMarginOptions = mergeMarginOptions(argumentMarginOptions, seriesMarginOptions)\r\n }\r\n });\r\n valueAxis.setMarginOptions(marginOptions)\r\n });\r\n that._argumentAxes.forEach(a => a.setMarginOptions(argumentMarginOptions))\r\n },\r\n _populateBusinessRange(updatedAxis, keepRange) {\r\n var that = this;\r\n var rotated = that._isRotated();\r\n var series = that._getVisibleSeries();\r\n var argRanges = {};\r\n var commonArgRange = new Range({\r\n rotated: !!rotated\r\n });\r\n var getPaneName = axis => axis.pane || DEFAULT_PANE_NAME;\r\n that.panes.forEach(p => argRanges[p.name] = new Range({\r\n rotated: !!rotated\r\n }));\r\n that._valueAxes.forEach(valueAxis => {\r\n var groupRange = new Range({\r\n rotated: !!rotated,\r\n pane: valueAxis.pane,\r\n axis: valueAxis.name\r\n });\r\n var groupSeries = series.filter(series => series.getValueAxis() === valueAxis);\r\n groupSeries.forEach(series => {\r\n var seriesRange = series.getRangeData();\r\n groupRange.addRange(seriesRange.val);\r\n argRanges[getPaneName(valueAxis)].addRange(seriesRange.arg)\r\n });\r\n if (!updatedAxis || updatedAxis && groupSeries.length && valueAxis === updatedAxis) {\r\n valueAxis.setGroupSeries(groupSeries);\r\n valueAxis.setBusinessRange(groupRange, that._axesReinitialized || keepRange, that._argumentAxes[0]._lastVisualRangeUpdateMode)\r\n }\r\n });\r\n if (!updatedAxis || updatedAxis && series.length) {\r\n Object.keys(argRanges).forEach(p => commonArgRange.addRange(argRanges[p]));\r\n var commonInterval = commonArgRange.interval;\r\n that._argumentAxes.forEach(a => {\r\n var _argRanges$getPaneNam;\r\n var currentInterval = null !== (_argRanges$getPaneNam = argRanges[getPaneName(a)].interval) && void 0 !== _argRanges$getPaneNam ? _argRanges$getPaneNam : commonInterval;\r\n a.setBusinessRange(new Range(_extends({}, commonArgRange, {\r\n interval: currentInterval\r\n })), that._axesReinitialized, void 0, that._groupsData.categories)\r\n })\r\n }\r\n that._populateMarginOptions()\r\n },\r\n getArgumentAxis: function() {\r\n return (this._argumentAxes || []).filter(a => !a.isVirtual)[0]\r\n },\r\n getValueAxis: function(name) {\r\n return (this._valueAxes || []).filter(_isDefined(name) ? a => a.name === name : a => a.pane === this.defaultPane)[0]\r\n },\r\n _getGroupsData: function() {\r\n var that = this;\r\n var groups = [];\r\n that._valueAxes.forEach((function(axis) {\r\n groups.push({\r\n series: that.series.filter((function(series) {\r\n return series.getValueAxis() === axis\r\n })),\r\n valueAxis: axis,\r\n valueOptions: axis.getOptions()\r\n })\r\n }));\r\n return {\r\n groups: groups,\r\n argumentAxes: that._argumentAxes,\r\n argumentOptions: that._argumentAxes[0].getOptions()\r\n }\r\n },\r\n _groupSeries: function() {\r\n this._correctValueAxes(false);\r\n this._groupsData = this._getGroupsData()\r\n },\r\n _processValueAxisFormat: function() {\r\n var axesWithFullStackedFormat = [];\r\n this.series.forEach((function(series) {\r\n var axis = series.getValueAxis();\r\n if (series.isFullStackedSeries()) {\r\n axis.setPercentLabelFormat();\r\n axesWithFullStackedFormat.push(axis)\r\n }\r\n }));\r\n this._valueAxes.forEach((function(axis) {\r\n if (-1 === axesWithFullStackedFormat.indexOf(axis)) {\r\n axis.resetAutoLabelFormat()\r\n }\r\n }))\r\n },\r\n _populateAxesOptions(typeSelector, userOptions, axisOptions, rotated, virtual) {\r\n var preparedUserOptions = this._prepareStripsAndConstantLines(typeSelector, userOptions, rotated);\r\n var options = _extend(true, {}, preparedUserOptions, axisOptions, this._prepareAxisOptions(typeSelector, preparedUserOptions, rotated));\r\n if (virtual) {\r\n options.visible = options.tick.visible = options.minorTick.visible = options.label.visible = false;\r\n options.title = {}\r\n }\r\n return options\r\n },\r\n _getValFilter: series => rangeDataCalculator.getViewPortFilter(series.getValueAxis().visualRange() || {}),\r\n _createAxis(isArgumentAxes, options, virtual) {\r\n var that = this;\r\n var typeSelector = isArgumentAxes ? \"argumentAxis\" : \"valueAxis\";\r\n var renderingSettings = _extend({\r\n renderer: that._renderer,\r\n incidentOccurred: that._incidentOccurred,\r\n eventTrigger: that._eventTrigger,\r\n axisClass: isArgumentAxes ? \"arg\" : \"val\",\r\n widgetClass: \"dxc\",\r\n stripsGroup: that._stripsGroup,\r\n stripLabelAxesGroup: that._stripLabelAxesGroup,\r\n constantLinesGroup: that._constantLinesGroup,\r\n scaleBreaksGroup: that._scaleBreaksGroup,\r\n axesContainerGroup: that._axesGroup,\r\n labelsAxesGroup: that._labelsAxesGroup,\r\n gridGroup: that._gridGroup,\r\n isArgumentAxis: isArgumentAxes,\r\n getTemplate: template => that._getTemplate(template)\r\n }, that._getAxisRenderingOptions(typeSelector));\r\n var axis = new Axis(renderingSettings);\r\n axis.updateOptions(options);\r\n axis.isVirtual = virtual;\r\n return axis\r\n },\r\n _applyVisualRangeByVirtualAxes: (axis, range) => false,\r\n _applyCustomVisualRangeOption(axis, range) {\r\n if (axis.getOptions().optionPath) {\r\n this._parseVisualRangeOption(\"\".concat(axis.getOptions().optionPath, \".visualRange\"), range)\r\n }\r\n },\r\n _getVisualRangeSetter() {\r\n var chart = this;\r\n return function(axis, _ref) {\r\n var {\r\n skipEventRising: skipEventRising,\r\n range: range\r\n } = _ref;\r\n chart._applyCustomVisualRangeOption(axis, range);\r\n axis.setCustomVisualRange(range);\r\n axis.skipEventRising = skipEventRising;\r\n if (!chart._applyVisualRangeByVirtualAxes(axis, range)) {\r\n if (chart._applyingChanges) {\r\n chart._change_VISUAL_RANGE()\r\n } else {\r\n chart._requestChange([VISUAL_RANGE])\r\n }\r\n }\r\n }\r\n },\r\n _getTrackerSettings: function() {\r\n return _extend(this.callBase(), {\r\n argumentAxis: this.getArgumentAxis()\r\n })\r\n },\r\n _prepareStripsAndConstantLines: function(typeSelector, userOptions, rotated) {\r\n userOptions = this._themeManager.getOptions(typeSelector, userOptions, rotated);\r\n if (userOptions.strips) {\r\n _each(userOptions.strips, (function(i) {\r\n userOptions.strips[i] = _extend(true, {}, userOptions.stripStyle, userOptions.strips[i])\r\n }))\r\n }\r\n if (userOptions.constantLines) {\r\n _each(userOptions.constantLines, (function(i, line) {\r\n userOptions.constantLines[i] = _extend(true, {}, userOptions.constantLineStyle, line)\r\n }))\r\n }\r\n return userOptions\r\n },\r\n refresh: function() {\r\n this._disposeAxes();\r\n this.callBase()\r\n },\r\n _layoutAxes(drawAxes) {\r\n drawAxes();\r\n var needSpace = this.checkForMoreSpaceForPanesCanvas();\r\n if (needSpace) {\r\n var rect = this._rect.slice();\r\n var size = this._layout.backward(rect, rect, [needSpace.width, needSpace.height]);\r\n needSpace.width = Math.max(0, size[0]);\r\n needSpace.height = Math.max(0, size[1]);\r\n this._canvas = this._createCanvasFromRect(rect);\r\n drawAxes(needSpace)\r\n }\r\n },\r\n checkForMoreSpaceForPanesCanvas() {\r\n return this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), this._isRotated())\r\n },\r\n _parseVisualRangeOption(fullName, value) {\r\n var that = this;\r\n var name = fullName.split(/[.[]/)[0];\r\n var index = fullName.match(/\\d+/g);\r\n index = _isDefined(index) ? parseInt(index[0]) : index;\r\n if (fullName.indexOf(\"visualRange\") > 0) {\r\n if (\"object\" !== type(value)) {\r\n value = wrapVisualRange(fullName, value) || value\r\n }\r\n that._setCustomVisualRange(name, index, value)\r\n } else if ((\"object\" === type(value) || _isArray(value)) && name.indexOf(\"Axis\") > 0 && JSON.stringify(value).indexOf(\"visualRange\") > 0) {\r\n if (_isDefined(value.visualRange)) {\r\n that._setCustomVisualRange(name, index, value.visualRange)\r\n } else if (_isArray(value)) {\r\n value.forEach((a, i) => _isDefined(a.visualRange) && that._setCustomVisualRange(name, i, a.visualRange))\r\n }\r\n }\r\n },\r\n _setCustomVisualRange(axesName, index, value) {\r\n var options = this._options.silent(axesName);\r\n if (!options) {\r\n return\r\n }\r\n if (!_isDefined(index)) {\r\n options._customVisualRange = value\r\n } else {\r\n options[index]._customVisualRange = value\r\n }\r\n this._axesReinitialized = true\r\n },\r\n _raiseZoomEndHandlers() {\r\n this._valueAxes.forEach(axis => axis.handleZoomEnd())\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n _extend(this._optionsByReference, {\r\n \"valueAxis.visualRange\": true\r\n })\r\n },\r\n _notifyOptionChanged(option, value, previousValue) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._optionChangedLocker) {\r\n this._parseVisualRangeOption(option, value)\r\n }\r\n },\r\n _notifyVisualRange() {\r\n var that = this;\r\n that._valueAxes.forEach(axis => {\r\n var axisPath = axis.getOptions().optionPath;\r\n if (axisPath) {\r\n var path = \"\".concat(axisPath, \".visualRange\");\r\n var visualRange = convertVisualRangeObject(axis.visualRange(), !_isArray(that.option(path)));\r\n if (!axis.skipEventRising || !rangesAreEqual(visualRange, that.option(path))) {\r\n if (!that.option(axisPath) && \"valueAxis\" !== axisPath) {\r\n that.option(axisPath, {\r\n name: axis.name,\r\n visualRange: visualRange\r\n })\r\n } else {\r\n that.option(path, visualRange)\r\n }\r\n } else {\r\n axis.skipEventRising = null\r\n }\r\n }\r\n })\r\n },\r\n _notify() {\r\n this.callBase();\r\n this._axesReinitialized = false;\r\n if (true !== this.option(\"disableTwoWayBinding\")) {\r\n this.skipOptionsRollBack = true;\r\n this._notifyVisualRange();\r\n this.skipOptionsRollBack = false\r\n }\r\n },\r\n _getAxesForScaling() {\r\n return this._valueAxes\r\n },\r\n _getAxesByOptionPath(arg, isDirectOption, optionName) {\r\n var sourceAxes = this._getAxesForScaling();\r\n var axes = [];\r\n if (isDirectOption) {\r\n var axisPath;\r\n if (arg.fullName) {\r\n axisPath = arg.fullName.slice(0, arg.fullName.indexOf(\".\"))\r\n }\r\n axes = sourceAxes.filter(a => a.getOptions().optionPath === axisPath)\r\n } else if (\"object\" === type(arg.value)) {\r\n axes = sourceAxes.filter(a => a.getOptions().optionPath === arg.name)\r\n } else if (_isArray(arg.value)) {\r\n arg.value.forEach((v, index) => {\r\n var axis = sourceAxes.filter(a => a.getOptions().optionPath === \"\".concat(arg.name, \"[\").concat(index, \"]\"))[0];\r\n _isDefined(v[optionName]) && _isDefined(axis) && (axes[index] = axis)\r\n })\r\n }\r\n return axes\r\n },\r\n _optionChanged(arg) {\r\n if (!this._optionChangedLocker) {\r\n var axes;\r\n var isDirectOption = arg.fullName.indexOf(\"visualRange\") > 0 ? true : this.getPartialChangeOptionsName(arg).indexOf(\"visualRange\") > -1 ? false : void 0;\r\n if (_isDefined(isDirectOption)) {\r\n axes = this._getAxesByOptionPath(arg, isDirectOption, \"visualRange\");\r\n if (axes) {\r\n if (axes.length > 1 || _isArray(arg.value)) {\r\n axes.forEach((a, index) => setAxisVisualRangeByOption(arg, a, isDirectOption, index))\r\n } else if (1 === axes.length) {\r\n setAxisVisualRangeByOption(arg, axes[0], isDirectOption)\r\n }\r\n }\r\n }\r\n }\r\n this.callBase(arg)\r\n },\r\n _change_VISUAL_RANGE: function() {\r\n this._recreateSizeDependentObjects(false);\r\n if (!this._changes.has(\"FULL_RENDER\")) {\r\n var resizePanesOnZoom = this.option(\"resizePanesOnZoom\");\r\n this._doRender({\r\n force: true,\r\n drawTitle: false,\r\n drawLegend: false,\r\n adjustAxes: null !== resizePanesOnZoom && void 0 !== resizePanesOnZoom ? resizePanesOnZoom : this.option(\"adjustAxesOnZoom\") || false,\r\n animate: false\r\n });\r\n this._raiseZoomEndHandlers()\r\n }\r\n },\r\n resetVisualRange() {\r\n var that = this;\r\n that._valueAxes.forEach(axis => {\r\n axis.resetVisualRange(false);\r\n that._applyCustomVisualRangeOption(axis)\r\n });\r\n that._requestChange([VISUAL_RANGE])\r\n },\r\n _getCrosshairMargins: () => ({\r\n x: 0,\r\n y: 0\r\n }),\r\n _legendDataField: \"series\",\r\n _adjustSeriesLabels: _noop,\r\n _correctValueAxes: _noop\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/scroll_bar.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n fireEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Translator2D\r\n} from \"../translators/translator2d\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar MIN_SCROLL_BAR_SIZE = 2;\r\nexport var ScrollBar = function(renderer, group) {\r\n this._translator = new Translator2D({}, {}, {});\r\n this._scroll = renderer.rect().append(group);\r\n this._addEvents()\r\n};\r\n\r\nfunction _getXCoord(canvas, pos, offset, width) {\r\n var x = 0;\r\n if (\"right\" === pos) {\r\n x = canvas.width - canvas.right + offset\r\n } else if (\"left\" === pos) {\r\n x = canvas.left - offset - width\r\n }\r\n return x\r\n}\r\n\r\nfunction _getYCoord(canvas, pos, offset, width) {\r\n var y = 0;\r\n if (\"top\" === pos) {\r\n y = canvas.top - offset\r\n } else if (\"bottom\" === pos) {\r\n y = canvas.height - canvas.bottom + width + offset\r\n }\r\n return y\r\n}\r\nScrollBar.prototype = {\r\n _addEvents: function() {\r\n var scrollElement = this._scroll.element;\r\n eventsEngine.on(scrollElement, dragEventStart, e => {\r\n fireEvent({\r\n type: \"dxc-scroll-start\",\r\n originalEvent: e,\r\n target: scrollElement\r\n })\r\n });\r\n eventsEngine.on(scrollElement, dragEventMove, e => {\r\n var dX = -e.offset.x * this._scale;\r\n var dY = -e.offset.y * this._scale;\r\n var lx = this._offset - (this._layoutOptions.vertical ? dY : dX) / this._scale;\r\n this._applyPosition(lx, lx + this._translator.canvasLength / this._scale);\r\n fireEvent({\r\n type: \"dxc-scroll-move\",\r\n originalEvent: e,\r\n target: scrollElement,\r\n offset: {\r\n x: dX,\r\n y: dY\r\n }\r\n })\r\n });\r\n eventsEngine.on(scrollElement, dragEventEnd, e => {\r\n fireEvent({\r\n type: \"dxc-scroll-end\",\r\n originalEvent: e,\r\n target: scrollElement,\r\n offset: {\r\n x: -e.offset.x * this._scale,\r\n y: -e.offset.y * this._scale\r\n }\r\n })\r\n })\r\n },\r\n update: function(options) {\r\n var position = options.position;\r\n var isVertical = options.rotated;\r\n var defaultPosition = isVertical ? \"right\" : \"top\";\r\n var secondaryPosition = isVertical ? \"left\" : \"bottom\";\r\n if (position !== defaultPosition && position !== secondaryPosition) {\r\n position = defaultPosition\r\n }\r\n this._scroll.attr({\r\n rotate: !options.rotated ? -90 : 0,\r\n rotateX: 0,\r\n rotateY: 0,\r\n fill: options.color,\r\n width: options.width,\r\n opacity: options.opacity\r\n });\r\n this._layoutOptions = {\r\n width: options.width,\r\n offset: options.offset,\r\n vertical: isVertical,\r\n position: position\r\n };\r\n return this\r\n },\r\n init: function(range, stick) {\r\n var isDiscrete = \"discrete\" === range.axisType;\r\n this._translateWithOffset = isDiscrete && !stick ? 1 : 0;\r\n this._translator.update(extend({}, range, {\r\n minVisible: null,\r\n maxVisible: null,\r\n visibleCategories: null\r\n }, isDiscrete && {\r\n min: null,\r\n max: null\r\n } || {}), this._canvas, {\r\n isHorizontal: !this._layoutOptions.vertical,\r\n stick: stick\r\n });\r\n return this\r\n },\r\n getOptions: function() {\r\n return this._layoutOptions\r\n },\r\n setPane: function(panes) {\r\n var position = this._layoutOptions.position;\r\n var pane;\r\n if (\"left\" === position || \"top\" === position) {\r\n pane = panes[0]\r\n } else {\r\n pane = panes[panes.length - 1]\r\n }\r\n this.pane = pane.name;\r\n return this\r\n },\r\n updateSize: function(canvas) {\r\n this._canvas = extend({}, canvas);\r\n var options = this._layoutOptions;\r\n var pos = options.position;\r\n var offset = options.offset;\r\n var width = options.width;\r\n this._scroll.attr({\r\n translateX: _getXCoord(canvas, pos, offset, width),\r\n translateY: _getYCoord(canvas, pos, offset, width)\r\n })\r\n },\r\n getMultipleAxesSpacing: function() {\r\n return 0\r\n },\r\n estimateMargins: function() {\r\n return this.getMargins()\r\n },\r\n getMargins: function() {\r\n var options = this._layoutOptions;\r\n var margins = {\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0\r\n };\r\n margins[options.position] = options.width + options.offset;\r\n return margins\r\n },\r\n shift: function(margins) {\r\n var _that$_scroll$attr, _that$_scroll$attr2;\r\n var options = this._layoutOptions;\r\n var side = options.position;\r\n var isVertical = options.vertical;\r\n var attr = {\r\n translateX: null !== (_that$_scroll$attr = this._scroll.attr(\"translateX\")) && void 0 !== _that$_scroll$attr ? _that$_scroll$attr : 0,\r\n translateY: null !== (_that$_scroll$attr2 = this._scroll.attr(\"translateY\")) && void 0 !== _that$_scroll$attr2 ? _that$_scroll$attr2 : 0\r\n };\r\n var shift = margins[side];\r\n attr[isVertical ? \"translateX\" : \"translateY\"] += (\"left\" === side || \"top\" === side ? -1 : 1) * shift;\r\n this._scroll.attr(attr)\r\n },\r\n hideTitle: noop,\r\n hideOuterElements: noop,\r\n setPosition: function(min, max) {\r\n var translator = this._translator;\r\n var minPoint = isDefined(min) ? translator.translate(min, -this._translateWithOffset) : translator.translate(\"canvas_position_start\");\r\n var maxPoint = isDefined(max) ? translator.translate(max, this._translateWithOffset) : translator.translate(\"canvas_position_end\");\r\n this._offset = _min(minPoint, maxPoint);\r\n this._scale = translator.getScale(min, max);\r\n this._applyPosition(_min(minPoint, maxPoint), _max(minPoint, maxPoint))\r\n },\r\n customPositionIsAvailable: () => false,\r\n dispose: function() {\r\n this._scroll.dispose();\r\n this._scroll = this._translator = null\r\n },\r\n _applyPosition: function(x1, x2) {\r\n var visibleArea = this._translator.getCanvasVisibleArea();\r\n x1 = _max(x1, visibleArea.min);\r\n x1 = _min(x1, visibleArea.max);\r\n x2 = _min(x2, visibleArea.max);\r\n x2 = _max(x2, visibleArea.min);\r\n var height = Math.abs(x2 - x1);\r\n this._scroll.attr({\r\n y: x1,\r\n height: height < MIN_SCROLL_BAR_SIZE ? MIN_SCROLL_BAR_SIZE : height\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/crosshair.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nvar mathAbs = math.abs;\r\nvar mathMin = math.min;\r\nvar mathMax = math.max;\r\nvar mathFloor = math.floor;\r\nvar HORIZONTAL = \"horizontal\";\r\nvar VERTICAL = \"vertical\";\r\nvar LABEL_BACKGROUND_PADDING_X = 8;\r\nvar LABEL_BACKGROUND_PADDING_Y = 4;\r\nvar CENTER = \"center\";\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\nexport function getMargins() {\r\n return {\r\n x: LABEL_BACKGROUND_PADDING_X,\r\n y: LABEL_BACKGROUND_PADDING_Y\r\n }\r\n}\r\n\r\nfunction getRectangleBBox(bBox) {\r\n return {\r\n x: bBox.x - LABEL_BACKGROUND_PADDING_X,\r\n y: bBox.y - LABEL_BACKGROUND_PADDING_Y,\r\n width: bBox.width + 2 * LABEL_BACKGROUND_PADDING_X,\r\n height: bBox.height + 2 * LABEL_BACKGROUND_PADDING_Y\r\n }\r\n}\r\n\r\nfunction getLabelCheckerPosition(x, y, isHorizontal, canvas) {\r\n var params = isHorizontal ? [\"x\", \"width\", \"y\", \"height\", y, 0] : [\"y\", \"height\", \"x\", \"width\", x, 1];\r\n return function(bBox, position, coord) {\r\n var labelCoord = {\r\n x: coord.x,\r\n y: coord.y\r\n };\r\n var rectangleBBox = getRectangleBBox(bBox);\r\n var delta = isHorizontal ? coord.y - bBox.y - bBox.height / 2 : coord.y - bBox.y;\r\n labelCoord.y = isHorizontal || !isHorizontal && position === BOTTOM ? coord.y + delta : coord.y;\r\n if (rectangleBBox[params[0]] < 0) {\r\n labelCoord[params[0]] -= rectangleBBox[params[0]]\r\n } else if (rectangleBBox[params[0]] + rectangleBBox[params[1]] + delta * params[5] > canvas[params[1]]) {\r\n labelCoord[params[0]] -= rectangleBBox[params[0]] + rectangleBBox[params[1]] + delta * params[5] - canvas[params[1]]\r\n }\r\n if (params[4] - rectangleBBox[params[3]] / 2 < 0) {\r\n labelCoord[params[2]] -= params[4] - rectangleBBox[params[3]] / 2\r\n } else if (params[4] + rectangleBBox[params[3]] / 2 > canvas[params[3]]) {\r\n labelCoord[params[2]] -= params[4] + rectangleBBox[params[3]] / 2 - canvas[params[3]]\r\n }\r\n return labelCoord\r\n }\r\n}\r\nexport function Crosshair(renderer, options, params, group) {\r\n this._renderer = renderer;\r\n this._crosshairGroup = group;\r\n this._options = {};\r\n this.update(options, params)\r\n}\r\nCrosshair.prototype = {\r\n constructor: Crosshair,\r\n update: function(options, params) {\r\n var canvas = params.canvas;\r\n this._canvas = {\r\n top: canvas.top,\r\n bottom: canvas.height - canvas.bottom,\r\n left: canvas.left,\r\n right: canvas.width - canvas.right,\r\n width: canvas.width,\r\n height: canvas.height\r\n };\r\n this._axes = params.axes;\r\n this._panes = params.panes;\r\n this._prepareOptions(options, HORIZONTAL);\r\n this._prepareOptions(options, VERTICAL)\r\n },\r\n dispose: function() {\r\n this._renderer = this._crosshairGroup = this._options = this._axes = this._canvas = this._horizontalGroup = this._verticalGroup = this._horizontal = this._vertical = this._circle = this._panes = null\r\n },\r\n _prepareOptions: function(options, direction) {\r\n var lineOptions = options[direction + \"Line\"];\r\n this._options[direction] = {\r\n visible: lineOptions.visible,\r\n line: {\r\n stroke: lineOptions.color || options.color,\r\n \"stroke-width\": lineOptions.width || options.width,\r\n dashStyle: lineOptions.dashStyle || options.dashStyle,\r\n opacity: lineOptions.opacity || options.opacity,\r\n \"stroke-linecap\": \"butt\"\r\n },\r\n label: extend(true, {}, options.label, lineOptions.label)\r\n }\r\n },\r\n _createLines: function(options, sharpParam, group) {\r\n var lines = [];\r\n var canvas = this._canvas;\r\n var points = [canvas.left, canvas.top, canvas.left, canvas.top];\r\n for (var i = 0; i < 2; i++) {\r\n lines.push(this._renderer.path(points, \"line\").attr(options).sharp(sharpParam).append(group))\r\n }\r\n return lines\r\n },\r\n render: function() {\r\n var renderer = this._renderer;\r\n var options = this._options;\r\n var verticalOptions = options.vertical;\r\n var horizontalOptions = options.horizontal;\r\n var extraOptions = horizontalOptions.visible ? horizontalOptions.line : verticalOptions.line;\r\n var circleOptions = {\r\n stroke: extraOptions.stroke,\r\n \"stroke-width\": extraOptions[\"stroke-width\"],\r\n dashStyle: extraOptions.dashStyle,\r\n opacity: extraOptions.opacity\r\n };\r\n var canvas = this._canvas;\r\n this._horizontal = {};\r\n this._vertical = {};\r\n this._circle = renderer.circle(canvas.left, canvas.top, 0).attr(circleOptions).append(this._crosshairGroup);\r\n this._horizontalGroup = renderer.g().append(this._crosshairGroup);\r\n this._verticalGroup = renderer.g().append(this._crosshairGroup);\r\n if (verticalOptions.visible) {\r\n this._vertical.lines = this._createLines(verticalOptions.line, \"h\", this._verticalGroup);\r\n this._vertical.labels = this._createLabels(this._axes[0], verticalOptions, false, this._verticalGroup)\r\n }\r\n if (horizontalOptions.visible) {\r\n this._horizontal.lines = this._createLines(horizontalOptions.line, \"v\", this._horizontalGroup);\r\n this._horizontal.labels = this._createLabels(this._axes[1], horizontalOptions, true, this._horizontalGroup)\r\n }\r\n this.hide()\r\n },\r\n _createLabels: function(axes, options, isHorizontal, group) {\r\n var canvas = this._canvas;\r\n var renderer = this._renderer;\r\n var x;\r\n var y;\r\n var text;\r\n var labels = [];\r\n var background;\r\n var currentLabelPos;\r\n var labelOptions = options.label;\r\n if (labelOptions.visible) {\r\n axes.forEach((function(axis) {\r\n var position = axis.getOptions().position;\r\n if (axis.getTranslator().getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n currentLabelPos = axis.getLabelsPosition();\r\n if (isHorizontal) {\r\n y = canvas.top;\r\n x = currentLabelPos\r\n } else {\r\n x = canvas.left;\r\n y = currentLabelPos\r\n }\r\n var align = position === TOP || position === BOTTOM ? CENTER : position === RIGHT ? LEFT : RIGHT;\r\n background = renderer.rect(0, 0, 0, 0).attr({\r\n fill: labelOptions.backgroundColor || options.line.stroke\r\n }).append(group);\r\n text = renderer.text(\"0\", 0, 0).css(patchFontOptions(options.label.font)).attr({\r\n align: align,\r\n class: labelOptions.cssClass\r\n }).append(group);\r\n labels.push({\r\n text: text,\r\n background: background,\r\n axis: axis,\r\n options: labelOptions,\r\n pos: {\r\n coord: currentLabelPos,\r\n side: position\r\n },\r\n startXY: {\r\n x: x,\r\n y: y\r\n }\r\n })\r\n }))\r\n }\r\n return labels\r\n },\r\n _updateText: function(value, axisName, labels, point, func) {\r\n var that = this;\r\n labels.forEach((function(label) {\r\n var axis = label.axis;\r\n var coord = label.startXY;\r\n var textElement = label.text;\r\n var backgroundElement = label.background;\r\n var text = \"\";\r\n if (!axis.name || axis.name === axisName) {\r\n text = axis.getFormattedValue(value, label.options, point)\r\n }\r\n if (text) {\r\n textElement.attr({\r\n text: text,\r\n x: coord.x,\r\n y: coord.y\r\n });\r\n textElement.attr(func(textElement.getBBox(), label.pos.side, coord));\r\n that._updateLinesCanvas(label);\r\n backgroundElement.attr(getRectangleBBox(textElement.getBBox()))\r\n } else {\r\n textElement.attr({\r\n text: \"\"\r\n });\r\n backgroundElement.attr({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n })\r\n }\r\n }))\r\n },\r\n hide: function() {\r\n this._crosshairGroup.attr({\r\n visibility: \"hidden\"\r\n })\r\n },\r\n _updateLinesCanvas: function(label) {\r\n var position = label.pos.side;\r\n var labelCoord = label.pos.coord;\r\n var coords = this._linesCanvas;\r\n var canvas = this._canvas;\r\n coords[position] = coords[position] !== canvas[position] && mathAbs(coords[position] - canvas[position]) < mathAbs(labelCoord - canvas[position]) ? coords[position] : labelCoord\r\n },\r\n _updateLines: function(lines, x, y, r, isHorizontal) {\r\n var coords = this._linesCanvas;\r\n var canvas = this._canvas;\r\n var points = isHorizontal ? [\r\n [mathMin(x - r, coords.left), canvas.top, x - r, canvas.top],\r\n [x + r, canvas.top, mathMax(coords.right, x + r), canvas.top]\r\n ] : [\r\n [canvas.left, mathMin(coords.top, y - r), canvas.left, y - r],\r\n [canvas.left, y + r, canvas.left, mathMax(coords.bottom, y + r)]\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n lines[i].attr({\r\n points: points[i]\r\n }).sharp(isHorizontal ? \"v\" : \"h\", isHorizontal ? y === canvas.bottom ? -1 : 1 : x === canvas.right ? -1 : 1)\r\n }\r\n },\r\n _resetLinesCanvas: function() {\r\n var canvas = this._canvas;\r\n this._linesCanvas = {\r\n left: canvas.left,\r\n right: canvas.right,\r\n top: canvas.top,\r\n bottom: canvas.bottom\r\n }\r\n },\r\n _getClipRectForPane: function(x, y) {\r\n var panes = this._panes;\r\n var i;\r\n var coords;\r\n for (i = 0; i < panes.length; i++) {\r\n coords = panes[i].coords;\r\n if (coords.left <= x && coords.right >= x && coords.top <= y && coords.bottom >= y) {\r\n return panes[i].clipRect\r\n }\r\n }\r\n return {\r\n id: null\r\n }\r\n },\r\n show: function(data) {\r\n var point = data.point;\r\n var pointData = point.getCrosshairData(data.x, data.y);\r\n var r = point.getPointRadius();\r\n var horizontal = this._horizontal;\r\n var vertical = this._vertical;\r\n var rad = !r ? 0 : r + 3;\r\n var canvas = this._canvas;\r\n var x = mathFloor(pointData.x);\r\n var y = mathFloor(pointData.y);\r\n if (x >= canvas.left && x <= canvas.right && y >= canvas.top && y <= canvas.bottom) {\r\n this._crosshairGroup.attr({\r\n visibility: \"visible\"\r\n });\r\n this._resetLinesCanvas();\r\n this._circle.attr({\r\n cx: x,\r\n cy: y,\r\n r: rad,\r\n \"clip-path\": this._getClipRectForPane(x, y).id\r\n });\r\n if (horizontal.lines) {\r\n this._updateText(pointData.yValue, pointData.axis, horizontal.labels, point, getLabelCheckerPosition(x, y, true, canvas));\r\n this._updateLines(horizontal.lines, x, y, rad, true);\r\n this._horizontalGroup.attr({\r\n translateY: y - canvas.top\r\n })\r\n }\r\n if (vertical.lines) {\r\n this._updateText(pointData.xValue, pointData.axis, vertical.labels, point, getLabelCheckerPosition(x, y, false, canvas));\r\n this._updateLines(vertical.lines, x, y, rad, false);\r\n this._verticalGroup.attr({\r\n translateX: x - canvas.left\r\n })\r\n }\r\n } else {\r\n this.hide()\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/shutter_zoom.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nvar SHUTTER_EVENTS_NS = \".shutter-zoom\";\r\nvar DRAG_START_EVENT_NAME = dragEventStart + SHUTTER_EVENTS_NS;\r\nvar DRAG_UPDATE_EVENT_NAME = dragEventMove + SHUTTER_EVENTS_NS;\r\nvar DRAG_END_EVENT_NAME = dragEventEnd + SHUTTER_EVENTS_NS;\r\n\r\nfunction getPointerCoord(rootOffset, canvas, rotated, e) {\r\n var coord = Math.floor(rotated ? e.pageY - rootOffset.top : e.pageX - rootOffset.left);\r\n var min = rotated ? canvas.y1 : canvas.x1;\r\n var max = rotated ? canvas.y2 : canvas.x2;\r\n if (coord < min) {\r\n coord = min\r\n } else if (coord > max) {\r\n coord = max\r\n }\r\n return coord\r\n}\r\n\r\nfunction checkCoords(rootOffset, canvas, e) {\r\n var x = e.pageX - rootOffset.left;\r\n var y = e.pageY - rootOffset.top;\r\n return x >= canvas.x1 && x <= canvas.x2 && y >= canvas.y1 && y <= canvas.y2\r\n}\r\n\r\nfunction dragStartHandler(ctx) {\r\n return function(e) {\r\n var offset = ctx.getRootOffset();\r\n var canvas = ctx.getCanvas();\r\n if (!checkCoords(offset, canvas, e)) {\r\n e.cancel = true;\r\n return\r\n }\r\n ctx.rootOffset = offset;\r\n ctx.canvas = canvas;\r\n ctx.startCoord = getPointerCoord(offset, canvas, ctx.rotated, e);\r\n ctx.triggerStart();\r\n ctx.rect.attr({\r\n x: canvas.x1,\r\n y: canvas.y1,\r\n width: canvas.width,\r\n height: canvas.height\r\n }).append(ctx.root)\r\n }\r\n}\r\n\r\nfunction dragHandler(ctx) {\r\n return function(e) {\r\n var curCoord = getPointerCoord(ctx.rootOffset, ctx.canvas, ctx.rotated, e);\r\n var attr = {};\r\n ctx.curCoord = curCoord;\r\n attr[ctx.rotated ? \"y\" : \"x\"] = Math.min(ctx.startCoord, curCoord);\r\n attr[ctx.rotated ? \"height\" : \"width\"] = Math.abs(ctx.startCoord - curCoord);\r\n ctx.rect.attr(attr)\r\n }\r\n}\r\n\r\nfunction dragEndHandler(ctx) {\r\n return function(e) {\r\n ctx.triggerEnd();\r\n ctx.rect.remove()\r\n }\r\n}\r\n\r\nfunction shutterZoom(options) {\r\n var chart = options.chart;\r\n var renderer = options.renderer;\r\n var rotated = options.rotated;\r\n var rect = renderer.rect(0, 0, 0, 0).attr(options.shutterOptions);\r\n var shutter = {\r\n rect: rect,\r\n root: renderer.root,\r\n rotated: rotated,\r\n triggerStart: function() {\r\n chart._eventTrigger(\"zoomStart\")\r\n },\r\n triggerEnd: function() {\r\n var tr = chart._argumentAxes[0].getTranslator();\r\n var rangeStart = Math.min(this.startCoord, this.curCoord);\r\n var rangeEnd = Math.max(this.startCoord, this.curCoord);\r\n chart._eventTrigger(\"zoomEnd\", {\r\n rangeStart: tr.from(rangeStart),\r\n rangeEnd: tr.from(rangeEnd)\r\n })\r\n },\r\n dispose: function() {\r\n renderer.root.off(SHUTTER_EVENTS_NS);\r\n rect.dispose()\r\n },\r\n getRootOffset: function() {\r\n return renderer.getRootOffset()\r\n },\r\n getCanvas: function() {\r\n var canvas = chart._canvas;\r\n var panes = chart.panes;\r\n var firstPane = panes[0].canvas;\r\n var lastPane = panes[panes.length - 1].canvas;\r\n return {\r\n x1: firstPane.left,\r\n y1: firstPane.top,\r\n x2: canvas.width - lastPane.right,\r\n y2: canvas.height - lastPane.bottom,\r\n width: canvas.width - firstPane.left - lastPane.right,\r\n height: canvas.height - firstPane.top - lastPane.bottom\r\n }\r\n }\r\n };\r\n renderer.root.off(SHUTTER_EVENTS_NS).on(DRAG_START_EVENT_NAME, {\r\n direction: rotated ? \"vertical\" : \"horizontal\",\r\n immediate: true\r\n }, dragStartHandler(shutter)).on(DRAG_UPDATE_EVENT_NAME, dragHandler(shutter)).on(DRAG_END_EVENT_NAME, dragEndHandler(shutter));\r\n return shutter\r\n}\r\nexport default {\r\n name: \"shutter_zoom\",\r\n init: function() {\r\n var options = this.option(\"shutterZoom\") || {};\r\n if (!options.enabled) {\r\n return\r\n }\r\n this._shutterZoom = shutterZoom({\r\n chart: this,\r\n renderer: this._renderer,\r\n rotated: this.option(\"rotated\"),\r\n shutterOptions: options\r\n })\r\n },\r\n dispose: function() {\r\n this._shutterZoom && this._shutterZoom.dispose()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/events/transform.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign as mathSign,\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n hasTouches\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DX_PREFIX = \"dx\";\r\nvar TRANSFORM = \"transform\";\r\nvar TRANSLATE = \"translate\";\r\nvar PINCH = \"pinch\";\r\nvar ROTATE = \"rotate\";\r\nvar START_POSTFIX = \"start\";\r\nvar UPDATE_POSTFIX = \"\";\r\nvar END_POSTFIX = \"end\";\r\nvar eventAliases = [];\r\nvar addAlias = function(eventName, eventArgs) {\r\n eventAliases.push({\r\n name: eventName,\r\n args: eventArgs\r\n })\r\n};\r\naddAlias(TRANSFORM, {\r\n scale: true,\r\n deltaScale: true,\r\n rotation: true,\r\n deltaRotation: true,\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(TRANSLATE, {\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(PINCH, {\r\n scale: true,\r\n deltaScale: true\r\n});\r\naddAlias(ROTATE, {\r\n rotation: true,\r\n deltaRotation: true\r\n});\r\nvar getVector = function(first, second) {\r\n return {\r\n x: second.pageX - first.pageX,\r\n y: -second.pageY + first.pageY,\r\n centerX: .5 * (second.pageX + first.pageX),\r\n centerY: .5 * (second.pageY + first.pageY)\r\n }\r\n};\r\nvar getEventVector = function(e) {\r\n var pointers = e.pointers;\r\n return getVector(pointers[0], pointers[1])\r\n};\r\nvar getDistance = function(vector) {\r\n return Math.sqrt(vector.x * vector.x + vector.y * vector.y)\r\n};\r\nvar getScale = function(firstVector, secondVector) {\r\n return getDistance(firstVector) / getDistance(secondVector)\r\n};\r\nvar getRotation = function(firstVector, secondVector) {\r\n var scalarProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;\r\n var distanceProduct = getDistance(firstVector) * getDistance(secondVector);\r\n if (0 === distanceProduct) {\r\n return 0\r\n }\r\n var sign = mathSign(firstVector.x * secondVector.y - secondVector.x * firstVector.y);\r\n var angle = Math.acos(fitIntoRange(scalarProduct / distanceProduct, -1, 1));\r\n return sign * angle\r\n};\r\nvar getTranslation = function(firstVector, secondVector) {\r\n return {\r\n x: firstVector.centerX - secondVector.centerX,\r\n y: firstVector.centerY - secondVector.centerY\r\n }\r\n};\r\nvar TransformEmitter = Emitter.inherit({\r\n validatePointers: function(e) {\r\n return hasTouches(e) > 1\r\n },\r\n start: function(e) {\r\n this._accept(e);\r\n var startVector = getEventVector(e);\r\n this._startVector = startVector;\r\n this._prevVector = startVector;\r\n this._fireEventAliases(START_POSTFIX, e)\r\n },\r\n move: function(e) {\r\n var currentVector = getEventVector(e);\r\n var eventArgs = this._getEventArgs(currentVector);\r\n this._fireEventAliases(UPDATE_POSTFIX, e, eventArgs);\r\n this._prevVector = currentVector\r\n },\r\n end: function(e) {\r\n var eventArgs = this._getEventArgs(this._prevVector);\r\n this._fireEventAliases(END_POSTFIX, e, eventArgs)\r\n },\r\n _getEventArgs: function(vector) {\r\n return {\r\n scale: getScale(vector, this._startVector),\r\n deltaScale: getScale(vector, this._prevVector),\r\n rotation: getRotation(vector, this._startVector),\r\n deltaRotation: getRotation(vector, this._prevVector),\r\n translation: getTranslation(vector, this._startVector),\r\n deltaTranslation: getTranslation(vector, this._prevVector)\r\n }\r\n },\r\n _fireEventAliases: function(eventPostfix, originalEvent, eventArgs) {\r\n eventArgs = eventArgs || {};\r\n iteratorUtils.each(eventAliases, function(_, eventAlias) {\r\n var args = {};\r\n iteratorUtils.each(eventAlias.args, (function(name) {\r\n if (name in eventArgs) {\r\n args[name] = eventArgs[name]\r\n }\r\n }));\r\n this._fireEvent(DX_PREFIX + eventAlias.name + eventPostfix, originalEvent, args)\r\n }.bind(this))\r\n }\r\n});\r\nvar eventNames = eventAliases.reduce((result, eventAlias) => {\r\n [START_POSTFIX, UPDATE_POSTFIX, END_POSTFIX].forEach(eventPostfix => {\r\n result.push(DX_PREFIX + eventAlias.name + eventPostfix)\r\n });\r\n return result\r\n}, []);\r\nregisterEmitter({\r\n emitter: TransformEmitter,\r\n events: eventNames\r\n});\r\nvar exportNames = {};\r\niteratorUtils.each(eventNames, (function(_, eventName) {\r\n exportNames[eventName.substring(DX_PREFIX.length)] = eventName\r\n}));\r\nexport var {\r\n transformstart: transformstart,\r\n transform: transform,\r\n transformend: transformend,\r\n translatestart: translatestart,\r\n translate: translate,\r\n translateend: translateend,\r\n zoomstart: zoomstart,\r\n zoom: zoom,\r\n zoomend: zoomend,\r\n pinchstart: pinchstart,\r\n pinch: pinch,\r\n pinchend: pinchend,\r\n rotatestart: rotatestart,\r\n rotate: rotate,\r\n rotateend: rotateend\r\n} = exportNames;\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/zoom_and_pan.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeEnum,\r\n getVizRangeObject\r\n} from \"../core/utils\";\r\nimport {\r\n name as wheelEvent\r\n} from \"../../events/core/wheel\";\r\nimport * as transformEvents from \"../../events/transform\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nvar EVENTS_NS = \".zoomAndPanNS\";\r\nvar DRAG_START_EVENT_NAME = dragEventStart + EVENTS_NS;\r\nvar DRAG_EVENT_NAME = dragEventMove + EVENTS_NS;\r\nvar DRAG_END_EVENT_NAME = dragEventEnd + EVENTS_NS;\r\nvar PINCH_START_EVENT_NAME = transformEvents.pinchstart + EVENTS_NS;\r\nvar PINCH_EVENT_NAME = transformEvents.pinch + EVENTS_NS;\r\nvar PINCH_END_EVENT_NAME = transformEvents.pinchend + EVENTS_NS;\r\nvar SCROLL_BAR_START_EVENT_NAME = \"dxc-scroll-start\" + EVENTS_NS;\r\nvar SCROLL_BAR_MOVE_EVENT_NAME = \"dxc-scroll-move\" + EVENTS_NS;\r\nvar SCROLL_BAR_END_EVENT_NAME = \"dxc-scroll-end\" + EVENTS_NS;\r\nvar GESTURE_TIMEOUT = 300;\r\nvar MIN_DRAG_DELTA = 5;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _abs = Math.abs;\r\n\r\nfunction canvasToRect(canvas) {\r\n return {\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvas.width - canvas.left - canvas.right,\r\n height: canvas.height - canvas.top - canvas.bottom\r\n }\r\n}\r\n\r\nfunction checkCoords(rect, coords) {\r\n var x = coords.x;\r\n var y = coords.y;\r\n return x >= rect.x && x <= rect.width + rect.x && y >= rect.y && y <= rect.height + rect.y\r\n}\r\n\r\nfunction sortAxes(axes, onlyAxisToNotify) {\r\n if (onlyAxisToNotify) {\r\n axes = axes.sort((a, b) => {\r\n if (a === onlyAxisToNotify) {\r\n return -1\r\n }\r\n if (b === onlyAxisToNotify) {\r\n return 1\r\n }\r\n return 0\r\n })\r\n }\r\n return axes\r\n}\r\n\r\nfunction isNotEmptyAxisBusinessRange(axis) {\r\n return !axis.getTranslator().getBusinessRange().isEmpty()\r\n}\r\n\r\nfunction axisZoom(axis, onlyAxisToNotify, getRange, getParameters, actionField, scale, e) {\r\n var silent = onlyAxisToNotify && axis !== onlyAxisToNotify;\r\n var range = getRange(axis);\r\n var {\r\n stopInteraction: stopInteraction,\r\n correctedRange: correctedRange\r\n } = axis.checkZoomingLowerLimitOvercome(actionField, scale, range);\r\n var result = axis.handleZooming(stopInteraction ? null : correctedRange, getParameters(silent), e, actionField);\r\n stopInteraction && axis.handleZoomEnd();\r\n return {\r\n stopInteraction: stopInteraction,\r\n result: result\r\n }\r\n}\r\nexport default {\r\n name: \"zoom_and_pan\",\r\n init: function() {\r\n var chart = this;\r\n var renderer = this._renderer;\r\n\r\n function cancelEvent(e) {\r\n if (e.originalEvent) {\r\n cancelEvent(e.originalEvent)\r\n }\r\n if (false !== e.cancelable) {\r\n e.cancel = true\r\n }\r\n }\r\n\r\n function startAxesViewportChanging(zoomAndPan, actionField, e) {\r\n var options = zoomAndPan.options;\r\n var actionData = zoomAndPan.actionData;\r\n var axes = [];\r\n if (options.argumentAxis[actionField]) {\r\n axes.push(chart.getArgumentAxis())\r\n }\r\n if (options.valueAxis[actionField]) {\r\n axes = axes.concat(actionData.valueAxes)\r\n }\r\n axes.reduce((isPrevented, axis) => {\r\n if (isPrevented) {\r\n return isPrevented\r\n }\r\n if (isNotEmptyAxisBusinessRange(axis)) {\r\n return axis.handleZooming(null, {\r\n end: true\r\n }, e, actionField).isPrevented\r\n }\r\n return isPrevented\r\n }, false) && cancelEvent(e)\r\n }\r\n\r\n function axesViewportChanging(zoomAndPan, actionField, e, offsetCalc, centerCalc) {\r\n function zoomAxes(axes, criteria, coordField, e, actionData) {\r\n var zoom = {\r\n zoomed: false\r\n };\r\n criteria && axes.filter(isNotEmptyAxisBusinessRange).forEach(axis => {\r\n var options = axis.getOptions();\r\n var viewport = axis.visualRange();\r\n var scale = axis.getTranslator().getEventScale(e);\r\n var translate = -offsetCalc(e, actionData, coordField, scale);\r\n zoom = extend(true, zoom, axis.getTranslator().zoom(translate, scale, axis.getZoomBounds()));\r\n var range = axis.adjustRange(getVizRangeObject([zoom.min, zoom.max]));\r\n var {\r\n stopInteraction: stopInteraction,\r\n correctedRange: correctedRange\r\n } = axis.checkZoomingLowerLimitOvercome(actionField, scale, range);\r\n if (!isDefined(viewport) || viewport.startValue.valueOf() !== correctedRange.startValue.valueOf() || viewport.endValue.valueOf() !== correctedRange.endValue.valueOf()) {\r\n axis.handleZooming(stopInteraction ? null : correctedRange, {\r\n start: true,\r\n end: true\r\n }, e, actionField);\r\n if (!stopInteraction) {\r\n zoom.zoomed = true;\r\n zoom.deltaTranslate = translate - zoom.translate\r\n }\r\n } else if (\"touch\" === e.pointerType && \"discrete\" === options.type) {\r\n var isMinPosition = axis.isExtremePosition(false);\r\n var isMaxPosition = axis.isExtremePosition(true);\r\n var zoomInEnabled = scale > 1 && !stopInteraction;\r\n var zoomOutEnabled = scale < 1 && (!isMinPosition || !isMaxPosition);\r\n var panningEnabled = 1 === scale && !(isMinPosition && (translate < 0 && !options.inverted || translate > 0 && options.inverted) || isMaxPosition && (translate > 0 && !options.inverted || translate < 0 && options.inverted));\r\n zoom.enabled = zoomInEnabled || zoomOutEnabled || panningEnabled\r\n }\r\n });\r\n return zoom\r\n }\r\n\r\n function storeOffset(e, actionData, zoom, coordField) {\r\n if (zoom.zoomed) {\r\n actionData.offset[coordField] = (e.offset ? e.offset[coordField] : actionData.offset[coordField]) + zoom.deltaTranslate\r\n }\r\n }\r\n\r\n function storeCenter(center, actionData, zoom, coordField) {\r\n if (zoom.zoomed) {\r\n actionData.center[coordField] = center[coordField] + zoom.deltaTranslate\r\n }\r\n }\r\n var rotated = chart.option(\"rotated\");\r\n var actionData = zoomAndPan.actionData;\r\n var options = zoomAndPan.options;\r\n var argZoom = {};\r\n var valZoom = {};\r\n if (!actionData.fallback) {\r\n argZoom = zoomAxes(chart._argumentAxes, options.argumentAxis[actionField], rotated ? \"y\" : \"x\", e, actionData);\r\n valZoom = zoomAxes(actionData.valueAxes, options.valueAxis[actionField], rotated ? \"x\" : \"y\", e, actionData);\r\n chart._requestChange([\"VISUAL_RANGE\"]);\r\n storeOffset(e, actionData, argZoom, rotated ? \"y\" : \"x\");\r\n storeOffset(e, actionData, valZoom, rotated ? \"x\" : \"y\")\r\n }\r\n var center = centerCalc(e);\r\n storeCenter(center, actionData, argZoom, rotated ? \"y\" : \"x\");\r\n storeCenter(center, actionData, valZoom, rotated ? \"x\" : \"y\");\r\n if (!argZoom.zoomed && !valZoom.zoomed) {\r\n actionData.center = center\r\n }\r\n return argZoom.zoomed || valZoom.zoomed || actionData.fallback || argZoom.enabled || valZoom.enabled\r\n }\r\n\r\n function finishAxesViewportChanging(zoomAndPan, actionField, e, offsetCalc) {\r\n function zoomAxes(axes, criteria, coordField, actionData, onlyAxisToNotify) {\r\n var zoomStarted = false;\r\n var scale = e.scale || 1;\r\n var getRange = axis => {\r\n var zoom = axis.getTranslator().zoom(-offsetCalc(e, actionData, coordField, scale), scale, axis.getZoomBounds());\r\n return {\r\n startValue: zoom.min,\r\n endValue: zoom.max\r\n }\r\n };\r\n var getParameters = silent => ({\r\n start: true,\r\n end: silent\r\n });\r\n criteria && axes.forEach(axis => {\r\n zoomStarted = !axisZoom(axis, onlyAxisToNotify, getRange, getParameters, actionField, scale, e).stopInteraction\r\n });\r\n return zoomStarted\r\n }\r\n var rotated = chart.option(\"rotated\");\r\n var actionData = zoomAndPan.actionData;\r\n var options = zoomAndPan.options;\r\n var zoomStarted = true;\r\n if (actionData.fallback) {\r\n zoomStarted &= zoomAxes(chart._argumentAxes, options.argumentAxis[actionField], rotated ? \"y\" : \"x\", actionData, chart.getArgumentAxis());\r\n zoomStarted |= zoomAxes(actionData.valueAxes, options.valueAxis[actionField], rotated ? \"x\" : \"y\", actionData)\r\n } else {\r\n var axes = [];\r\n if (options.argumentAxis[actionField]) {\r\n axes.push(chart.getArgumentAxis())\r\n }\r\n if (options.valueAxis[actionField]) {\r\n axes = axes.concat(actionData.valueAxes)\r\n }\r\n axes.filter(isNotEmptyAxisBusinessRange).forEach(axis => {\r\n axis.handleZooming(null, {\r\n start: true\r\n }, e, actionField)\r\n });\r\n zoomStarted = axes.length\r\n }\r\n zoomStarted && chart._requestChange([\"VISUAL_RANGE\"])\r\n }\r\n\r\n function prepareActionData(coords, action) {\r\n var axes = chart._argumentAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), coords));\r\n return {\r\n fallback: chart._lastRenderingTime > GESTURE_TIMEOUT,\r\n cancel: !axes.length || !isDefined(action),\r\n action: action,\r\n curAxisRect: axes.length && canvasToRect(axes[0].getCanvas()),\r\n valueAxes: axes.length && chart._valueAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), coords)),\r\n offset: {\r\n x: 0,\r\n y: 0\r\n },\r\n center: coords,\r\n startCenter: coords\r\n }\r\n }\r\n\r\n function getPointerCoord(rect, e) {\r\n var rootOffset = renderer.getRootOffset();\r\n return {\r\n x: _min(_max(e.pageX - rootOffset.left, rect.x), rect.width + rect.x),\r\n y: _min(_max(e.pageY - rootOffset.top, rect.y), rect.height + rect.y)\r\n }\r\n }\r\n\r\n function calcCenterForPinch(e) {\r\n var rootOffset = renderer.getRootOffset();\r\n var x1 = e.pointers[0].pageX;\r\n var x2 = e.pointers[1].pageX;\r\n var y1 = e.pointers[0].pageY;\r\n var y2 = e.pointers[1].pageY;\r\n return {\r\n x: _min(x1, x2) + _abs(x2 - x1) / 2 - rootOffset.left,\r\n y: _min(y1, y2) + _abs(y2 - y1) / 2 - rootOffset.top\r\n }\r\n }\r\n\r\n function calcCenterForDrag(e) {\r\n var rootOffset = renderer.getRootOffset();\r\n return {\r\n x: e.pageX - rootOffset.left,\r\n y: e.pageY - rootOffset.top\r\n }\r\n }\r\n\r\n function calcOffsetForDrag(e, actionData, coordField) {\r\n return e.offset[coordField] - actionData.offset[coordField]\r\n }\r\n\r\n function preventDefaults(e) {\r\n if (false !== e.cancelable) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n chart._stopCurrentHandling()\r\n }\r\n var zoomAndPan = {\r\n dragStartHandler: function(e) {\r\n var options = zoomAndPan.options;\r\n var isTouch = \"touch\" === e.pointerType;\r\n var wantPan = options.argumentAxis.pan || options.valueAxis.pan;\r\n var wantZoom = options.argumentAxis.zoom || options.valueAxis.zoom;\r\n var panKeyPressed = isDefined(options.panKey) && e[normalizeEnum(options.panKey) + \"Key\"];\r\n var dragToZoom = options.dragToZoom;\r\n var action;\r\n e._cancelPreventDefault = true;\r\n if (isTouch) {\r\n if (options.allowTouchGestures && wantPan) {\r\n var cancelPanning = !zoomAndPan.panningVisualRangeEnabled() || zoomAndPan.skipEvent;\r\n action = cancelPanning ? null : \"pan\"\r\n }\r\n } else if (dragToZoom && wantPan && panKeyPressed) {\r\n action = \"pan\"\r\n } else if (!dragToZoom && wantPan) {\r\n action = \"pan\"\r\n } else if (dragToZoom && wantZoom) {\r\n action = \"zoom\"\r\n }\r\n var actionData = prepareActionData(calcCenterForDrag(e), action);\r\n if (actionData.cancel) {\r\n zoomAndPan.skipEvent = false;\r\n if (false !== e.cancelable) {\r\n e.cancel = true\r\n }\r\n return\r\n }\r\n zoomAndPan.actionData = actionData;\r\n if (\"zoom\" === action) {\r\n actionData.startCoords = getPointerCoord(actionData.curAxisRect, e);\r\n actionData.rect = renderer.rect(0, 0, 0, 0).attr(options.dragBoxStyle).append(renderer.root)\r\n } else {\r\n startAxesViewportChanging(zoomAndPan, \"pan\", e)\r\n }\r\n },\r\n dragHandler: function(e) {\r\n var rotated = chart.option(\"rotated\");\r\n var options = zoomAndPan.options;\r\n var actionData = zoomAndPan.actionData;\r\n var isTouch = \"touch\" === e.pointerType;\r\n e._cancelPreventDefault = true;\r\n if (!actionData || isTouch && !zoomAndPan.panningVisualRangeEnabled()) {\r\n return\r\n }\r\n if (\"zoom\" === actionData.action) {\r\n preventDefaults(e);\r\n var curCanvas = actionData.curAxisRect;\r\n var startCoords = actionData.startCoords;\r\n var curCoords = getPointerCoord(curCanvas, e);\r\n var zoomArg = options.argumentAxis.zoom;\r\n var zoomVal = options.valueAxis.zoom;\r\n var rect = {\r\n x: _min(startCoords.x, curCoords.x),\r\n y: _min(startCoords.y, curCoords.y),\r\n width: _abs(startCoords.x - curCoords.x),\r\n height: _abs(startCoords.y - curCoords.y)\r\n };\r\n if (!zoomArg || !zoomVal) {\r\n if (!zoomArg && !rotated || !zoomVal && rotated) {\r\n rect.x = curCanvas.x;\r\n rect.width = curCanvas.width\r\n } else {\r\n rect.y = curCanvas.y;\r\n rect.height = curCanvas.height\r\n }\r\n }\r\n actionData.rect.attr(rect)\r\n } else if (\"pan\" === actionData.action) {\r\n axesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag, e => e.offset);\r\n var deltaOffsetY = Math.abs(e.offset.y - actionData.offset.y);\r\n var deltaOffsetX = Math.abs(e.offset.x - actionData.offset.x);\r\n if (isTouch && (deltaOffsetY > MIN_DRAG_DELTA && deltaOffsetY > Math.abs(actionData.offset.x) || deltaOffsetX > MIN_DRAG_DELTA && deltaOffsetX > Math.abs(actionData.offset.y))) {\r\n return\r\n }\r\n preventDefaults(e)\r\n }\r\n },\r\n dragEndHandler: function(e) {\r\n var rotated = chart.option(\"rotated\");\r\n var options = zoomAndPan.options;\r\n var actionData = zoomAndPan.actionData;\r\n var isTouch = \"touch\" === e.pointerType;\r\n var panIsEmpty = actionData && \"pan\" === actionData.action && !actionData.fallback && 0 === actionData.offset.x && 0 === actionData.offset.y;\r\n if (!actionData || isTouch && !zoomAndPan.panningVisualRangeEnabled() || panIsEmpty) {\r\n return\r\n }(!isTouch || !zoomAndPan.actionData.isNative) && preventDefaults(e);\r\n if (\"zoom\" === actionData.action) {\r\n var zoomAxes = (axes, criteria, coordField, startCoords, curCoords, onlyAxisToNotify) => {\r\n axes = sortAxes(axes, onlyAxisToNotify);\r\n var curCoord = curCoords[coordField];\r\n var startCoord = startCoords[coordField];\r\n var zoomStarted = false;\r\n var getParameters = silent => ({\r\n start: !!silent,\r\n end: !!silent\r\n });\r\n if (criteria && _abs(curCoord - startCoord) > MIN_DRAG_DELTA) {\r\n axes.some(axis => {\r\n var tr = axis.getTranslator();\r\n if (tr.getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n var {\r\n stopInteraction: stopInteraction,\r\n result: result\r\n } = axisZoom(axis, onlyAxisToNotify, () => [tr.from(startCoord), tr.from(curCoord)], getParameters, actionData.action, tr.getMinScale(true), e);\r\n zoomStarted = !stopInteraction;\r\n return onlyAxisToNotify && result.isPrevented\r\n })\r\n }\r\n return zoomStarted\r\n };\r\n var curCoords = getPointerCoord(actionData.curAxisRect, e);\r\n var argumentAxesZoomed = zoomAxes(chart._argumentAxes, options.argumentAxis.zoom, rotated ? \"y\" : \"x\", actionData.startCoords, curCoords, chart.getArgumentAxis());\r\n var valueAxesZoomed = zoomAxes(actionData.valueAxes, options.valueAxis.zoom, rotated ? \"x\" : \"y\", actionData.startCoords, curCoords);\r\n if (valueAxesZoomed || argumentAxesZoomed) {\r\n chart._requestChange([\"VISUAL_RANGE\"])\r\n }\r\n actionData.rect.dispose()\r\n } else if (\"pan\" === actionData.action) {\r\n finishAxesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag)\r\n }\r\n zoomAndPan.actionData = null\r\n },\r\n pinchStartHandler: function(e) {\r\n var actionData = prepareActionData(calcCenterForPinch(e), \"zoom\");\r\n actionData.isNative = !zoomAndPan.panningVisualRangeEnabled();\r\n if (actionData.cancel) {\r\n cancelEvent(e);\r\n return\r\n }\r\n zoomAndPan.actionData = actionData;\r\n startAxesViewportChanging(zoomAndPan, \"zoom\", e)\r\n },\r\n pinchHandler: function(e) {\r\n if (!zoomAndPan.actionData) {\r\n return\r\n }\r\n var viewportChanged = axesViewportChanging(zoomAndPan, \"zoom\", e, (e, actionData, coordField, scale) => calcCenterForPinch(e)[coordField] - actionData.center[coordField] + (actionData.center[coordField] - actionData.center[coordField] * scale), calcCenterForPinch);\r\n zoomAndPan.defineTouchBehavior(!viewportChanged, e);\r\n !viewportChanged && (zoomAndPan.actionData = null)\r\n },\r\n pinchEndHandler: function(e) {\r\n if (!zoomAndPan.actionData) {\r\n return\r\n }\r\n finishAxesViewportChanging(zoomAndPan, \"zoom\", e, (e, actionData, coordField, scale) => actionData.center[coordField] - actionData.startCenter[coordField] + (actionData.startCenter[coordField] - actionData.startCenter[coordField] * scale));\r\n zoomAndPan.actionData = null\r\n },\r\n cleanup: function() {\r\n renderer.root.off(EVENTS_NS);\r\n zoomAndPan.actionData && zoomAndPan.actionData.rect && zoomAndPan.actionData.rect.dispose();\r\n zoomAndPan.actionData = null;\r\n renderer.root.css({\r\n \"touch-action\": \"\",\r\n \"-ms-touch-action\": \"\"\r\n })\r\n },\r\n setup: function(options) {\r\n zoomAndPan.cleanup();\r\n if (!options.argumentAxis.pan) {\r\n renderer.root.on(SCROLL_BAR_START_EVENT_NAME, cancelEvent)\r\n }\r\n if (options.argumentAxis.none && options.valueAxis.none) {\r\n return\r\n }\r\n zoomAndPan.options = options;\r\n var rotated = chart.option(\"rotated\");\r\n if ((options.argumentAxis.zoom || options.valueAxis.zoom) && options.allowMouseWheel) {\r\n renderer.root.on(wheelEvent + EVENTS_NS, (function(e) {\r\n function zoomAxes(axes, coord, delta, onlyAxisToNotify) {\r\n axes = sortAxes(axes, onlyAxisToNotify);\r\n var zoomStarted = false;\r\n var getParameters = silent => ({\r\n start: !!silent,\r\n end: !!silent\r\n });\r\n axes.some(axis => {\r\n var translator = axis.getTranslator();\r\n if (translator.getBusinessRange().isEmpty()) {\r\n return\r\n }\r\n var scale = translator.getMinScale(delta > 0);\r\n var {\r\n stopInteraction: stopInteraction,\r\n result: result\r\n } = axisZoom(axis, onlyAxisToNotify, () => {\r\n var zoom = translator.zoom(-(coord - coord * scale), scale, axis.getZoomBounds());\r\n return {\r\n startValue: zoom.min,\r\n endValue: zoom.max\r\n }\r\n }, getParameters, \"zoom\", scale, e);\r\n zoomStarted = !stopInteraction;\r\n return onlyAxisToNotify && result.isPrevented\r\n });\r\n return zoomStarted\r\n }\r\n var coords = calcCenterForDrag(e);\r\n var axesZoomed = false;\r\n var targetAxes;\r\n if (options.valueAxis.zoom) {\r\n targetAxes = chart._valueAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), coords));\r\n if (0 === targetAxes.length) {\r\n var targetCanvas = chart._valueAxes.reduce((r, axis) => {\r\n if (!r && axis.coordsIn(coords.x, coords.y)) {\r\n r = axis.getCanvas()\r\n }\r\n return r\r\n }, null);\r\n if (targetCanvas) {\r\n targetAxes = chart._valueAxes.filter(axis => checkCoords(canvasToRect(axis.getCanvas()), {\r\n x: targetCanvas.left,\r\n y: targetCanvas.top\r\n }))\r\n }\r\n }\r\n axesZoomed |= zoomAxes(targetAxes, rotated ? coords.x : coords.y, e.delta)\r\n }\r\n if (options.argumentAxis.zoom) {\r\n var canZoom = chart._argumentAxes.some(axis => {\r\n if (checkCoords(canvasToRect(axis.getCanvas()), coords) || axis.coordsIn(coords.x, coords.y)) {\r\n return true\r\n }\r\n return false\r\n });\r\n axesZoomed |= canZoom && zoomAxes(chart._argumentAxes, rotated ? coords.y : coords.x, e.delta, chart.getArgumentAxis())\r\n }\r\n if (axesZoomed) {\r\n chart._requestChange([\"VISUAL_RANGE\"]);\r\n zoomAndPan.panningVisualRangeEnabled(targetAxes) && preventDefaults(e)\r\n }\r\n }))\r\n }\r\n if (options.allowTouchGestures) {\r\n if (options.argumentAxis.zoom || options.valueAxis.zoom) {\r\n renderer.root.on(PINCH_START_EVENT_NAME, {\r\n passive: false\r\n }, zoomAndPan.pinchStartHandler).on(PINCH_EVENT_NAME, {\r\n passive: false\r\n }, zoomAndPan.pinchHandler).on(PINCH_END_EVENT_NAME, zoomAndPan.pinchEndHandler)\r\n }\r\n }\r\n renderer.root.on(DRAG_START_EVENT_NAME, {\r\n immediate: true,\r\n passive: false\r\n }, zoomAndPan.dragStartHandler).on(DRAG_EVENT_NAME, {\r\n immediate: true,\r\n passive: false\r\n }, zoomAndPan.dragHandler).on(DRAG_END_EVENT_NAME, zoomAndPan.dragEndHandler);\r\n if (options.argumentAxis.pan) {\r\n renderer.root.on(SCROLL_BAR_START_EVENT_NAME, (function(e) {\r\n zoomAndPan.actionData = {\r\n valueAxes: [],\r\n offset: {\r\n x: 0,\r\n y: 0\r\n },\r\n center: {\r\n x: 0,\r\n y: 0\r\n }\r\n };\r\n preventDefaults(e);\r\n startAxesViewportChanging(zoomAndPan, \"pan\", e)\r\n })).on(SCROLL_BAR_MOVE_EVENT_NAME, (function(e) {\r\n preventDefaults(e);\r\n axesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag, e => e.offset)\r\n })).on(SCROLL_BAR_END_EVENT_NAME, (function(e) {\r\n preventDefaults(e);\r\n finishAxesViewportChanging(zoomAndPan, \"pan\", e, calcOffsetForDrag);\r\n zoomAndPan.actionData = null\r\n }))\r\n }\r\n },\r\n defineTouchBehavior: function(isDefault, e) {\r\n zoomAndPan.actionData && (zoomAndPan.actionData.isNative = isDefault);\r\n if (!isDefault) {\r\n preventDefaults(e)\r\n }\r\n },\r\n panningVisualRangeEnabled: function(targetAxes) {\r\n if (null !== targetAxes && void 0 !== targetAxes && targetAxes.length) {\r\n return targetAxes.some(axis => !axis.isExtremePosition(false) || !axis.isExtremePosition(true))\r\n }\r\n var enablePanByValueAxis = chart._valueAxes.some(axis => !axis.isExtremePosition(false) || !axis.isExtremePosition(true));\r\n var enablePanByArgumentAxis = chart._argumentAxes.some(axis => !axis.isExtremePosition(false) || !axis.isExtremePosition(true));\r\n return enablePanByValueAxis || enablePanByArgumentAxis\r\n }\r\n };\r\n this._zoomAndPan = zoomAndPan\r\n },\r\n members: {\r\n _setupZoomAndPan: function() {\r\n this._zoomAndPan.setup(this._themeManager.getOptions(\"zoomAndPan\"))\r\n }\r\n },\r\n dispose: function() {\r\n this._zoomAndPan.cleanup()\r\n },\r\n customize: function(constructor) {\r\n constructor.addChange({\r\n code: \"ZOOM_AND_PAN\",\r\n handler: function() {\r\n this._setupZoomAndPan()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"zoomAndPan\"\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend as _extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n each as _each\r\n} from \"../core/utils/iterator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n prepareSegmentRectPoints\r\n} from \"./utils\";\r\nimport {\r\n map as _map,\r\n getLog,\r\n getCategoriesInfo,\r\n updatePanesCanvases,\r\n convertVisualRangeObject,\r\n PANE_PADDING,\r\n normalizePanesHeight,\r\n rangesAreEqual,\r\n isRelativeHeightPane\r\n} from \"./core/utils\";\r\nimport {\r\n type,\r\n isDefined as _isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n getPrecision\r\n} from \"../core/utils/math\";\r\nimport {\r\n overlapping\r\n} from \"./chart_components/base_chart\";\r\nimport multiAxesSynchronizer from \"./chart_components/multi_axes_synchronizer\";\r\nimport {\r\n AdvancedChart\r\n} from \"./chart_components/advanced_chart\";\r\nimport {\r\n ScrollBar\r\n} from \"./chart_components/scroll_bar\";\r\nimport {\r\n Crosshair,\r\n getMargins\r\n} from \"./chart_components/crosshair\";\r\nimport rangeDataCalculator from \"./series/helpers/range_data_calculator\";\r\nimport {\r\n LayoutManager\r\n} from \"./chart_components/layout_manager\";\r\nimport {\r\n Range\r\n} from \"./translators/range\";\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar VISUAL_RANGE = \"VISUAL_RANGE\";\r\nvar DEFAULT_PANES = [{\r\n name: DEFAULT_PANE_NAME,\r\n border: {}\r\n}];\r\nvar DISCRETE = \"discrete\";\r\nvar _isArray = Array.isArray;\r\n\r\nfunction getFirstAxisNameForPane(axes, paneName, defaultPane) {\r\n var result;\r\n for (var i = 0; i < axes.length; i++) {\r\n if (axes[i].pane === paneName || void 0 === axes[i].pane && paneName === defaultPane) {\r\n result = axes[i].name;\r\n break\r\n }\r\n }\r\n if (!result) {\r\n result = axes[0].name\r\n }\r\n return result\r\n}\r\n\r\nfunction changeVisibilityAxisGrids(axis, gridVisibility, minorGridVisibility) {\r\n var gridOpt = axis.getOptions().grid;\r\n var minorGridOpt = axis.getOptions().minorGrid;\r\n gridOpt.visible = gridVisibility;\r\n minorGridOpt && (minorGridOpt.visible = minorGridVisibility)\r\n}\r\n\r\nfunction hideGridsOnNonFirstValueAxisForPane(axesForPane) {\r\n var axisShown = false;\r\n var hiddenStubAxis = [];\r\n var minorGridVisibility = axesForPane.some((function(axis) {\r\n var minorGridOptions = axis.getOptions().minorGrid;\r\n return minorGridOptions && minorGridOptions.visible\r\n }));\r\n var gridVisibility = axesForPane.some((function(axis) {\r\n var gridOptions = axis.getOptions().grid;\r\n return gridOptions && gridOptions.visible\r\n }));\r\n if (axesForPane.length > 1) {\r\n axesForPane.forEach((function(axis) {\r\n var gridOpt = axis.getOptions().grid;\r\n if (axisShown) {\r\n changeVisibilityAxisGrids(axis, false, false)\r\n } else if (gridOpt && gridOpt.visible) {\r\n if (axis.getTranslator().getBusinessRange().isEmpty()) {\r\n changeVisibilityAxisGrids(axis, false, false);\r\n hiddenStubAxis.push(axis)\r\n } else {\r\n axisShown = true;\r\n changeVisibilityAxisGrids(axis, gridVisibility, minorGridVisibility)\r\n }\r\n }\r\n }));\r\n !axisShown && hiddenStubAxis.length && changeVisibilityAxisGrids(hiddenStubAxis[0], gridVisibility, minorGridVisibility)\r\n }\r\n}\r\n\r\nfunction findAxisOptions(valueAxes, valueAxesOptions, axisName) {\r\n var result;\r\n var axInd;\r\n for (axInd = 0; axInd < valueAxesOptions.length; axInd++) {\r\n if (valueAxesOptions[axInd].name === axisName) {\r\n result = valueAxesOptions[axInd];\r\n result.priority = axInd;\r\n break\r\n }\r\n }\r\n if (!result) {\r\n for (axInd = 0; axInd < valueAxes.length; axInd++) {\r\n if (valueAxes[axInd].name === axisName) {\r\n result = valueAxes[axInd].getOptions();\r\n result.priority = valueAxes[axInd].priority;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction findAxis(paneName, axisName, axes) {\r\n var axis;\r\n var i;\r\n for (i = 0; i < axes.length; i++) {\r\n axis = axes[i];\r\n if (axis.name === axisName && axis.pane === paneName) {\r\n return axis\r\n }\r\n }\r\n if (paneName) {\r\n return findAxis(void 0, axisName, axes)\r\n }\r\n}\r\n\r\nfunction compareAxes(a, b) {\r\n return a.priority - b.priority\r\n}\r\n\r\nfunction doesPaneExist(panes, paneName) {\r\n var found = false;\r\n _each(panes, (function(_, pane) {\r\n if (pane.name === paneName) {\r\n found = true;\r\n return false\r\n }\r\n }));\r\n return found\r\n}\r\n\r\nfunction accumulate(field, src1, src2, auxSpacing) {\r\n var val1 = src1[field] || 0;\r\n var val2 = src2[field] || 0;\r\n return val1 + val2 + (val1 && val2 ? auxSpacing : 0)\r\n}\r\n\r\nfunction pickMax(field, src1, src2) {\r\n return pickMaxValue(src1[field], src2[field])\r\n}\r\n\r\nfunction pickMaxValue(val1, val2) {\r\n return Math.max(val1 || 0, val2 || 0)\r\n}\r\n\r\nfunction getAxisMargins(axis) {\r\n return axis.getMargins()\r\n}\r\n\r\nfunction getHorizontalAxesMargins(axes, getMarginsFunc) {\r\n return axes.reduce((function(margins, axis) {\r\n var _axis$getOrthogonalAx;\r\n var axisMargins = getMarginsFunc(axis);\r\n var paneMargins = margins.panes[axis.pane] = margins.panes[axis.pane] || {};\r\n var spacing = axis.getMultipleAxesSpacing();\r\n paneMargins.top = accumulate(\"top\", paneMargins, axisMargins, spacing);\r\n paneMargins.bottom = accumulate(\"bottom\", paneMargins, axisMargins, spacing);\r\n paneMargins.left = pickMax(\"left\", paneMargins, axisMargins);\r\n paneMargins.right = pickMax(\"right\", paneMargins, axisMargins);\r\n margins.top = pickMax(\"top\", paneMargins, margins);\r\n margins.bottom = pickMax(\"bottom\", paneMargins, margins);\r\n margins.left = pickMax(\"left\", paneMargins, margins);\r\n margins.right = pickMax(\"right\", paneMargins, margins);\r\n var orthogonalAxis = null === (_axis$getOrthogonalAx = axis.getOrthogonalAxis) || void 0 === _axis$getOrthogonalAx ? void 0 : _axis$getOrthogonalAx.call(axis);\r\n if (orthogonalAxis && orthogonalAxis.customPositionIsAvailable() && (!axis.customPositionIsBoundaryOrthogonalAxis() || !orthogonalAxis.customPositionEqualsToPredefined())) {\r\n margins[orthogonalAxis.getResolvedBoundaryPosition()] = 0\r\n }\r\n return margins\r\n }), {\r\n panes: {}\r\n })\r\n}\r\n\r\nfunction getVerticalAxesMargins(axes) {\r\n return axes.reduce((function(margins, axis) {\r\n var axisMargins = axis.getMargins();\r\n var paneMargins = margins.panes[axis.pane] = margins.panes[axis.pane] || {};\r\n var spacing = axis.getMultipleAxesSpacing();\r\n paneMargins.top = pickMax(\"top\", paneMargins, axisMargins);\r\n paneMargins.bottom = pickMax(\"bottom\", paneMargins, axisMargins);\r\n paneMargins.left = accumulate(\"left\", paneMargins, axisMargins, spacing);\r\n paneMargins.right = accumulate(\"right\", paneMargins, axisMargins, spacing);\r\n margins.top = pickMax(\"top\", paneMargins, margins);\r\n margins.bottom = pickMax(\"bottom\", paneMargins, margins);\r\n margins.left = pickMax(\"left\", paneMargins, margins);\r\n margins.right = pickMax(\"right\", paneMargins, margins);\r\n return margins\r\n }), {\r\n panes: {}\r\n })\r\n}\r\n\r\nfunction performActionOnAxes(axes, action, actionArgument1, actionArgument2, actionArgument3) {\r\n axes.forEach((function(axis) {\r\n axis[action](actionArgument1 && actionArgument1[axis.pane], actionArgument2 && actionArgument2[axis.pane] || actionArgument2, actionArgument3)\r\n }))\r\n}\r\n\r\nfunction shrinkCanvases(isRotated, canvases, sizes, verticalMargins, horizontalMargins) {\r\n function getMargin(side, margins, pane) {\r\n var m = -1 === (isRotated ? [\"left\", \"right\"] : [\"top\", \"bottom\"]).indexOf(side) ? margins : margins.panes[pane] || {};\r\n return m[side]\r\n }\r\n\r\n function getMaxMargin(side, margins1, margins2, pane) {\r\n return pickMaxValue(getMargin(side, margins1, pane), getMargin(side, margins2, pane))\r\n }\r\n var getOriginalField = field => \"original\".concat(field[0].toUpperCase()).concat(field.slice(1));\r\n\r\n function shrink(canvases, paneNames, sizeField, startMargin, endMargin, oppositeMargins) {\r\n paneNames = paneNames.sort((p1, p2) => canvases[p2][startMargin] - canvases[p1][startMargin]);\r\n paneNames.forEach(pane => {\r\n var canvas = canvases[pane];\r\n oppositeMargins.forEach(margin => {\r\n canvas[margin] = canvas[getOriginalField(margin)] + getMaxMargin(margin, verticalMargins, horizontalMargins, pane)\r\n })\r\n });\r\n var firstPane = canvases[paneNames[0]];\r\n var emptySpace = paneNames.reduce((space, paneName) => {\r\n space -= getMaxMargin(startMargin, verticalMargins, horizontalMargins, paneName) + getMaxMargin(endMargin, verticalMargins, horizontalMargins, paneName);\r\n return space\r\n }, firstPane[sizeField] - firstPane[getOriginalField(endMargin)] - canvases[paneNames[paneNames.length - 1]][getOriginalField(startMargin)]) - PANE_PADDING * (paneNames.length - 1);\r\n emptySpace -= Object.keys(sizes).reduce((prev, key) => prev + (!isRelativeHeightPane(sizes[key]) ? sizes[key].height : 0), 0);\r\n paneNames.reduce((offset, pane) => {\r\n var canvas = canvases[pane];\r\n var paneSize = sizes[pane];\r\n offset -= getMaxMargin(endMargin, verticalMargins, horizontalMargins, pane);\r\n canvas[endMargin] = firstPane[sizeField] - offset;\r\n offset -= !isRelativeHeightPane(paneSize) ? paneSize.height : Math.floor(emptySpace * paneSize.height);\r\n canvas[startMargin] = offset;\r\n offset -= getMaxMargin(startMargin, verticalMargins, horizontalMargins, pane) + PANE_PADDING;\r\n return offset\r\n }, firstPane[sizeField] - firstPane[getOriginalField(endMargin)] - (emptySpace < 0 ? emptySpace : 0))\r\n }\r\n var paneNames = Object.keys(canvases);\r\n if (!isRotated) {\r\n shrink(canvases, paneNames, \"height\", \"top\", \"bottom\", [\"left\", \"right\"])\r\n } else {\r\n shrink(canvases, paneNames, \"width\", \"left\", \"right\", [\"top\", \"bottom\"])\r\n }\r\n return canvases\r\n}\r\n\r\nfunction drawAxesWithTicks(axes, condition, canvases, panesBorderOptions) {\r\n if (condition) {\r\n performActionOnAxes(axes, \"createTicks\", canvases);\r\n multiAxesSynchronizer.synchronize(axes)\r\n }\r\n performActionOnAxes(axes, \"draw\", !condition && canvases, panesBorderOptions)\r\n}\r\n\r\nfunction shiftAxis(side1, side2) {\r\n var shifts = {};\r\n return function(axis) {\r\n if (!axis.customPositionIsAvailable() || axis.customPositionEqualsToPredefined()) {\r\n var shift = shifts[axis.pane] = shifts[axis.pane] || {\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n };\r\n var spacing = axis.getMultipleAxesSpacing();\r\n var margins = axis.getMargins();\r\n axis.shift(shift);\r\n shift[side1] = accumulate(side1, shift, margins, spacing);\r\n shift[side2] = accumulate(side2, shift, margins, spacing)\r\n } else {\r\n axis.shift({\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction getCommonSize(side, margins) {\r\n var size = 0;\r\n var pane;\r\n var paneMargins;\r\n for (pane in margins.panes) {\r\n paneMargins = margins.panes[pane];\r\n size += \"height\" === side ? paneMargins.top + paneMargins.bottom : paneMargins.left + paneMargins.right\r\n }\r\n return size\r\n}\r\n\r\nfunction checkUsedSpace(sizeShortage, side, axes, getMarginFunc) {\r\n var size = 0;\r\n if (sizeShortage[side] > 0) {\r\n size = getCommonSize(side, getMarginFunc(axes, getAxisMargins));\r\n performActionOnAxes(axes, \"hideTitle\");\r\n sizeShortage[side] -= size - getCommonSize(side, getMarginFunc(axes, getAxisMargins))\r\n }\r\n if (sizeShortage[side] > 0) {\r\n performActionOnAxes(axes, \"hideOuterElements\")\r\n }\r\n}\r\n\r\nfunction axisAnimationEnabled(drawOptions, pointsToAnimation) {\r\n var pointsCount = pointsToAnimation.reduce((sum, count) => sum + count, 0) / pointsToAnimation.length;\r\n return drawOptions.animate && pointsCount <= drawOptions.animationPointsLimit\r\n}\r\n\r\nfunction collectMarkersInfoBySeries(allSeries, filteredSeries, argAxis) {\r\n var series = [];\r\n var overloadedSeries = {};\r\n var argVisualRange = argAxis.visualRange();\r\n var argTranslator = argAxis.getTranslator();\r\n var argViewPortFilter = rangeDataCalculator.getViewPortFilter(argVisualRange || {});\r\n filteredSeries.forEach(s => {\r\n var valAxis = s.getValueAxis();\r\n var valVisualRange = valAxis.getCanvasRange();\r\n var valTranslator = valAxis.getTranslator();\r\n var seriesIndex = allSeries.indexOf(s);\r\n var valViewPortFilter = rangeDataCalculator.getViewPortFilter(valVisualRange || {});\r\n overloadedSeries[seriesIndex] = {};\r\n filteredSeries.forEach(sr => overloadedSeries[seriesIndex][allSeries.indexOf(sr)] = 0);\r\n var seriesPoints = [];\r\n s.getPoints().filter(p => p.getOptions().visible && argViewPortFilter(p.argument) && (valViewPortFilter(p.getMinValue(true)) || valViewPortFilter(p.getMaxValue(true)))).forEach(p => {\r\n var tp = {\r\n seriesIndex: seriesIndex,\r\n argument: p.argument,\r\n value: p.getMaxValue(true),\r\n size: p.bubbleSize || p.getOptions().size\r\n };\r\n if (p.getMinValue(true) !== p.getMaxValue(true)) {\r\n var mp = _extend({}, tp);\r\n mp.value = p.getMinValue(true);\r\n mp.x = argTranslator.to(mp.argument, 1);\r\n mp.y = valTranslator.to(mp.value, 1);\r\n seriesPoints.push(mp)\r\n }\r\n tp.x = argTranslator.to(tp.argument, 1);\r\n tp.y = valTranslator.to(tp.value, 1);\r\n seriesPoints.push(tp)\r\n });\r\n overloadedSeries[seriesIndex].pointsCount = seriesPoints.length;\r\n overloadedSeries[seriesIndex].total = 0;\r\n overloadedSeries[seriesIndex].continuousSeries = 0;\r\n series.push({\r\n name: s.name,\r\n index: seriesIndex,\r\n points: seriesPoints\r\n })\r\n });\r\n return {\r\n series: series,\r\n overloadedSeries: overloadedSeries\r\n }\r\n}\r\n\r\nfunction applyAutoHidePointMarkers(allSeries, filteredSeries, overloadedSeries, argAxis) {\r\n var argAxisType = argAxis.getOptions().type;\r\n filteredSeries.forEach(s => {\r\n var seriesIndex = allSeries.indexOf(s);\r\n s.autoHidePointMarkers = false;\r\n var tickCount = argAxis.getTicksValues().majorTicksValues.length;\r\n if (s.autoHidePointMarkersEnabled() && (argAxisType === DISCRETE || overloadedSeries[seriesIndex].pointsCount > tickCount)) {\r\n for (var index in overloadedSeries[seriesIndex]) {\r\n var i = parseInt(index);\r\n if (isNaN(i) || overloadedSeries[seriesIndex].total / overloadedSeries[seriesIndex].continuousSeries < 3) {\r\n continue\r\n }\r\n if (i === seriesIndex) {\r\n if (2 * overloadedSeries[i][i] >= overloadedSeries[i].pointsCount) {\r\n s.autoHidePointMarkers = true;\r\n break\r\n }\r\n } else if (overloadedSeries[seriesIndex].total >= overloadedSeries[seriesIndex].pointsCount) {\r\n s.autoHidePointMarkers = true;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\nfunction fastHidingPointMarkersByArea(canvas, markersInfo, series) {\r\n var area = canvas.width * canvas.height;\r\n var seriesPoints = markersInfo.series;\r\n var _loop = function(i) {\r\n var currentSeries = series.filter(s => s.name === seriesPoints[i].name)[0];\r\n var points = seriesPoints[i].points;\r\n var pointSize = points.length ? points[0].size : 0;\r\n var pointsArea = pointSize * pointSize * points.length;\r\n if (currentSeries.autoHidePointMarkersEnabled() && pointsArea >= area / seriesPoints.length) {\r\n var index = seriesPoints[i].index;\r\n currentSeries.autoHidePointMarkers = true;\r\n seriesPoints.splice(i, 1);\r\n series.splice(series.indexOf(currentSeries), 1);\r\n delete markersInfo.overloadedSeries[index]\r\n }\r\n };\r\n for (var i = seriesPoints.length - 1; i >= 0; i--) {\r\n _loop(i)\r\n }\r\n}\r\n\r\nfunction updateMarkersInfo(points, overloadedSeries) {\r\n var isContinuousSeries = false;\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var curPoint = points[i];\r\n var size = curPoint.size;\r\n if (_isDefined(curPoint.x) && _isDefined(curPoint.y)) {\r\n for (var j = i + 1; j < points.length; j++) {\r\n var nextPoint = points[j];\r\n var next_x = null === nextPoint || void 0 === nextPoint ? void 0 : nextPoint.x;\r\n var next_y = null === nextPoint || void 0 === nextPoint ? void 0 : nextPoint.y;\r\n if (!_isDefined(next_x) || Math.abs(curPoint.x - next_x) >= size) {\r\n isContinuousSeries &= j !== i + 1;\r\n break\r\n } else {\r\n var distance = _isDefined(next_x) && _isDefined(next_y) && Math.sqrt(Math.pow(curPoint.x - next_x, 2) + Math.pow(curPoint.y - next_y, 2));\r\n if (distance && distance < size) {\r\n overloadedSeries[curPoint.seriesIndex][nextPoint.seriesIndex]++;\r\n overloadedSeries[curPoint.seriesIndex].total++;\r\n if (!isContinuousSeries) {\r\n overloadedSeries[curPoint.seriesIndex].continuousSeries++;\r\n isContinuousSeries = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\nvar dxChart = AdvancedChart.inherit({\r\n _themeSection: \"chart\",\r\n _fontFields: [\"crosshair.label.font\"],\r\n _initCore: function() {\r\n this.paneAxis = {};\r\n this.callBase()\r\n },\r\n _init() {\r\n this._containerInitialHeight = hasWindow() ? getHeight(this._$element) : 0;\r\n this.callBase()\r\n },\r\n _correctAxes: function() {\r\n this._correctValueAxes(true)\r\n },\r\n _getExtraOptions: noop,\r\n _createPanes: function() {\r\n var panes = this.option(\"panes\");\r\n var panesNameCounter = 0;\r\n var defaultPane;\r\n if (!panes || _isArray(panes) && !panes.length) {\r\n panes = DEFAULT_PANES\r\n }\r\n this.callBase();\r\n defaultPane = this.option(\"defaultPane\");\r\n panes = _extend(true, [], _isArray(panes) ? panes : [panes]);\r\n _each(panes, (function(_, pane) {\r\n pane.name = !_isDefined(pane.name) ? DEFAULT_PANE_NAME + panesNameCounter++ : pane.name\r\n }));\r\n if (_isDefined(defaultPane)) {\r\n if (!doesPaneExist(panes, defaultPane)) {\r\n this._incidentOccurred(\"W2101\", [defaultPane]);\r\n defaultPane = panes[panes.length - 1].name\r\n }\r\n } else {\r\n defaultPane = panes[panes.length - 1].name\r\n }\r\n this.defaultPane = defaultPane;\r\n panes = this._isRotated() ? panes.reverse() : panes;\r\n return panes\r\n },\r\n _getAxisRenderingOptions: function() {\r\n return {\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\"\r\n }\r\n },\r\n _prepareAxisOptions: function(typeSelector, userOptions, rotated) {\r\n return {\r\n isHorizontal: \"argumentAxis\" === typeSelector !== rotated,\r\n containerColor: this._themeManager.getOptions(\"containerBackgroundColor\")\r\n }\r\n },\r\n _checkPaneName: function(seriesTheme) {\r\n var paneList = _map(this.panes, (function(pane) {\r\n return pane.name\r\n }));\r\n seriesTheme.pane = seriesTheme.pane || this.defaultPane;\r\n return -1 !== inArray(seriesTheme.pane, paneList)\r\n },\r\n _initCustomPositioningAxes() {\r\n var that = this;\r\n var argumentAxis = that.getArgumentAxis();\r\n var valueAxisName = argumentAxis.getOptions().customPositionAxis;\r\n var valueAxis = that._valueAxes.filter(v => v.pane === argumentAxis.pane && (!valueAxisName || valueAxisName === v.name))[0];\r\n that._valueAxes.forEach(v => {\r\n if (argumentAxis !== v.getOrthogonalAxis()) {\r\n v.getOrthogonalAxis = () => argumentAxis;\r\n v.customPositionIsBoundaryOrthogonalAxis = () => argumentAxis.customPositionIsBoundary()\r\n }\r\n });\r\n if (_isDefined(valueAxis) && valueAxis !== argumentAxis.getOrthogonalAxis()) {\r\n argumentAxis.getOrthogonalAxis = () => valueAxis;\r\n argumentAxis.customPositionIsBoundaryOrthogonalAxis = () => that._valueAxes.some(v => v.customPositionIsBoundary())\r\n } else if (_isDefined(argumentAxis.getOrthogonalAxis()) && !_isDefined(valueAxis)) {\r\n argumentAxis.getOrthogonalAxis = noop\r\n }\r\n },\r\n _getAllAxes() {\r\n return this._argumentAxes.concat(this._valueAxes)\r\n },\r\n _resetAxesAnimation(isFirstDrawing, isHorizontal) {\r\n var axes = _isDefined(isHorizontal) ? isHorizontal ^ this._isRotated() ? this._argumentAxes : this._valueAxes : this._getAllAxes();\r\n axes.forEach(a => {\r\n a.resetApplyingAnimation(isFirstDrawing)\r\n })\r\n },\r\n _axesBoundaryPositioning() {\r\n var allAxes = this._getAllAxes();\r\n var boundaryStateChanged = false;\r\n allAxes.forEach(a => {\r\n if (!a.customPositionIsAvailable()) {\r\n return false\r\n }\r\n var prevBoundaryState = a.customPositionIsBoundary();\r\n a._customBoundaryPosition = a.getCustomBoundaryPosition();\r\n boundaryStateChanged |= prevBoundaryState !== a.customPositionIsBoundary()\r\n });\r\n return boundaryStateChanged\r\n },\r\n _getCrosshairMargins: function() {\r\n var crosshairOptions = this._getCrosshairOptions() || {};\r\n var crosshairEnabled = crosshairOptions.enabled;\r\n var margins = getMargins();\r\n var horizontalLabel = _extend(true, {}, crosshairOptions.label, crosshairOptions.horizontalLine.label);\r\n var verticalLabel = _extend(true, {}, crosshairOptions.label, crosshairOptions.verticalLine.label);\r\n return {\r\n x: crosshairEnabled && crosshairOptions.horizontalLine.visible && horizontalLabel.visible ? margins.x : 0,\r\n y: crosshairEnabled && crosshairOptions.verticalLine.visible && verticalLabel.visible ? margins.y : 0\r\n }\r\n },\r\n _getValueAxis: function(paneName, axisName) {\r\n var valueAxes = this._valueAxes;\r\n var valueAxisOptions = this.option(\"valueAxis\") || {};\r\n var valueAxesOptions = _isArray(valueAxisOptions) ? valueAxisOptions : [valueAxisOptions];\r\n var rotated = this._isRotated();\r\n var crosshairMargins = this._getCrosshairMargins();\r\n var axisOptions;\r\n var axis;\r\n axisName = axisName || getFirstAxisNameForPane(valueAxes, paneName, this.defaultPane);\r\n axis = findAxis(paneName, axisName, valueAxes);\r\n if (!axis) {\r\n axisOptions = findAxisOptions(valueAxes, valueAxesOptions, axisName);\r\n if (!axisOptions) {\r\n this._incidentOccurred(\"W2102\", [axisName]);\r\n axisOptions = {\r\n name: axisName,\r\n priority: valueAxes.length\r\n }\r\n }\r\n axis = this._createAxis(false, this._populateAxesOptions(\"valueAxis\", axisOptions, {\r\n pane: paneName,\r\n name: axisName,\r\n optionPath: _isArray(valueAxisOptions) ? \"valueAxis[\".concat(axisOptions.priority, \"]\") : \"valueAxis\",\r\n crosshairMargin: rotated ? crosshairMargins.y : crosshairMargins.x\r\n }, rotated));\r\n axis.applyVisualRangeSetter(this._getVisualRangeSetter());\r\n valueAxes.push(axis)\r\n }\r\n axis.setPane(paneName);\r\n return axis\r\n },\r\n _correctValueAxes: function(needHideGrids) {\r\n var that = this;\r\n var synchronizeMultiAxes = that._themeManager.getOptions(\"synchronizeMultiAxes\");\r\n var valueAxes = that._valueAxes;\r\n var paneWithAxis = {};\r\n that.series.forEach((function(series) {\r\n var axis = series.getValueAxis();\r\n paneWithAxis[axis.pane] = true\r\n }));\r\n that.panes.forEach((function(pane) {\r\n var paneName = pane.name;\r\n if (!paneWithAxis[paneName]) {\r\n that._getValueAxis(paneName)\r\n }\r\n if (needHideGrids && synchronizeMultiAxes) {\r\n hideGridsOnNonFirstValueAxisForPane(valueAxes.filter((function(axis) {\r\n return axis.pane === paneName\r\n })))\r\n }\r\n }));\r\n that._valueAxes = valueAxes.filter((function(axis) {\r\n if (!axis.pane) {\r\n axis.setPane(that.defaultPane)\r\n }\r\n var paneExists = doesPaneExist(that.panes, axis.pane);\r\n if (!paneExists) {\r\n axis.dispose();\r\n axis = null\r\n }\r\n return paneExists\r\n })).sort(compareAxes);\r\n var defaultAxis = this.getValueAxis();\r\n that._valueAxes.forEach(axis => {\r\n var optionPath = axis.getOptions().optionPath;\r\n if (optionPath) {\r\n var axesWithSamePath = that._valueAxes.filter(a => a.getOptions().optionPath === optionPath);\r\n if (axesWithSamePath.length > 1) {\r\n if (axesWithSamePath.some(a => a === defaultAxis)) {\r\n axesWithSamePath.forEach(a => {\r\n if (a !== defaultAxis) {\r\n a.getOptions().optionPath = null\r\n }\r\n })\r\n } else {\r\n axesWithSamePath.forEach((a, i) => {\r\n if (0 !== i) {\r\n a.getOptions().optionPath = null\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getSeriesForPane: function(paneName) {\r\n var paneSeries = [];\r\n _each(this.series, (function(_, oneSeries) {\r\n if (oneSeries.pane === paneName) {\r\n paneSeries.push(oneSeries)\r\n }\r\n }));\r\n return paneSeries\r\n },\r\n _createPanesBorderOptions: function() {\r\n var commonBorderOptions = this._themeManager.getOptions(\"commonPaneSettings\").border;\r\n var panesBorderOptions = {};\r\n this.panes.forEach(pane => panesBorderOptions[pane.name] = _extend(true, {}, commonBorderOptions, pane.border));\r\n return panesBorderOptions\r\n },\r\n _createScrollBar: function() {\r\n var scrollBarOptions = this._themeManager.getOptions(\"scrollBar\") || {};\r\n var scrollBarGroup = this._scrollBarGroup;\r\n if (scrollBarOptions.visible) {\r\n scrollBarOptions.rotated = this._isRotated();\r\n this._scrollBar = (this._scrollBar || new ScrollBar(this._renderer, scrollBarGroup)).update(scrollBarOptions)\r\n } else {\r\n scrollBarGroup.linkRemove();\r\n this._scrollBar && this._scrollBar.dispose();\r\n this._scrollBar = null\r\n }\r\n },\r\n _executeAppendAfterSeries(append) {\r\n append()\r\n },\r\n _prepareToRender(drawOptions) {\r\n var panesBorderOptions = this._createPanesBorderOptions();\r\n this._createPanesBackground();\r\n this._appendAxesGroups();\r\n this._adjustViewport();\r\n return panesBorderOptions\r\n },\r\n _adjustViewport() {\r\n var adjustOnZoom = this._themeManager.getOptions(\"adjustOnZoom\");\r\n if (!adjustOnZoom) {\r\n return\r\n }\r\n this._valueAxes.forEach(axis => axis.adjust())\r\n },\r\n _recreateSizeDependentObjects(isCanvasChanged) {\r\n var that = this;\r\n var series = that._getVisibleSeries();\r\n var useAggregation = series.some(s => s.useAggregation());\r\n var zoomChanged = that._isZooming();\r\n if (!useAggregation) {\r\n return\r\n }\r\n that._argumentAxes.forEach((function(axis) {\r\n axis.updateCanvas(that._canvas, true)\r\n }));\r\n series.forEach((function(series) {\r\n if (series.useAggregation() && (isCanvasChanged || zoomChanged || !series._useAllAggregatedPoints)) {\r\n series.createPoints()\r\n }\r\n }));\r\n that._processSeriesFamilies()\r\n },\r\n _isZooming() {\r\n var argumentAxis = this.getArgumentAxis();\r\n if (!argumentAxis || !argumentAxis.getTranslator()) {\r\n return false\r\n }\r\n var businessRange = argumentAxis.getTranslator().getBusinessRange();\r\n var zoomRange = argumentAxis.getViewport();\r\n var min = zoomRange ? zoomRange.min : 0;\r\n var max = zoomRange ? zoomRange.max : 0;\r\n if (\"logarithmic\" === businessRange.axisType) {\r\n min = getLog(min, businessRange.base);\r\n max = getLog(max, businessRange.base)\r\n }\r\n var viewportDistance = businessRange.axisType === DISCRETE ? getCategoriesInfo(businessRange.categories, min, max).categories.length : Math.abs(max - min);\r\n var precision = getPrecision(viewportDistance);\r\n precision = precision > 1 ? Math.pow(10, precision - 2) : 1;\r\n var zoomChanged = Math.round((this._zoomLength - viewportDistance) * precision) / precision !== 0;\r\n this._zoomLength = viewportDistance;\r\n return zoomChanged\r\n },\r\n _handleSeriesDataUpdated: function() {\r\n var that = this;\r\n var viewport = new Range;\r\n that.series.forEach((function(s) {\r\n viewport.addRange(s.getArgumentRange())\r\n }));\r\n that._argumentAxes.forEach((function(axis) {\r\n axis.updateCanvas(that._canvas, true);\r\n axis.setBusinessRange(viewport, that._axesReinitialized)\r\n }));\r\n that.callBase()\r\n },\r\n _isLegendInside: function() {\r\n return this._legend && \"inside\" === this._legend.getPosition()\r\n },\r\n _isRotated: function() {\r\n return this._themeManager.getOptions(\"rotated\")\r\n },\r\n _getLayoutTargets: function() {\r\n return this.panes\r\n },\r\n _applyClipRects: function(panesBorderOptions) {\r\n this._drawPanesBorders(panesBorderOptions);\r\n this._createClipRectsForPanes();\r\n this._applyClipRectsForAxes();\r\n this._fillPanesBackground()\r\n },\r\n _updateLegendPosition: function(drawOptions, legendHasInsidePosition) {\r\n if (drawOptions.drawLegend && this._legend && legendHasInsidePosition) {\r\n var panes = this.panes;\r\n var newCanvas = _extend({}, panes[0].canvas);\r\n var layoutManager = new LayoutManager;\r\n newCanvas.right = panes[panes.length - 1].canvas.right;\r\n newCanvas.bottom = panes[panes.length - 1].canvas.bottom;\r\n layoutManager.layoutInsideLegend(this._legend, newCanvas)\r\n }\r\n },\r\n _allowLegendInsidePosition: () => true,\r\n _applyExtraSettings: function(series) {\r\n var paneIndex = this._getPaneIndex(series.pane);\r\n var panesClipRects = this._panesClipRects;\r\n var wideClipRect = panesClipRects.wide[paneIndex];\r\n series.setClippingParams(panesClipRects.base[paneIndex].id, wideClipRect && wideClipRect.id, this._getPaneBorderVisibility(paneIndex))\r\n },\r\n _updatePanesCanvases: function(drawOptions) {\r\n if (!drawOptions.recreateCanvas) {\r\n return\r\n }\r\n updatePanesCanvases(this.panes, this._canvas, this._isRotated())\r\n },\r\n _normalizePanesHeight: function() {\r\n normalizePanesHeight(this.panes)\r\n },\r\n _renderScaleBreaks: function() {\r\n this._valueAxes.concat(this._argumentAxes).forEach((function(axis) {\r\n axis.drawScaleBreaks()\r\n }))\r\n },\r\n _getArgFilter() {\r\n return rangeDataCalculator.getViewPortFilter(this.getArgumentAxis().visualRange() || {})\r\n },\r\n _applyPointMarkersAutoHiding() {\r\n var that = this;\r\n var allSeries = that.series;\r\n if (!that._themeManager.getOptions(\"autoHidePointMarkers\")) {\r\n allSeries.forEach(s => s.autoHidePointMarkers = false);\r\n return\r\n }\r\n that.panes.forEach(_ref => {\r\n var {\r\n borderCoords: borderCoords,\r\n name: name\r\n } = _ref;\r\n var series = allSeries.filter(s => s.pane === name && s.usePointsToDefineAutoHiding());\r\n var argAxis = that.getArgumentAxis();\r\n var markersInfo = collectMarkersInfoBySeries(allSeries, series, argAxis);\r\n fastHidingPointMarkersByArea(borderCoords, markersInfo, series);\r\n if (markersInfo.series.length) {\r\n var argVisualRange = argAxis.visualRange();\r\n var argAxisIsDiscrete = argAxis.getOptions().type === DISCRETE;\r\n var sortingCallback = argAxisIsDiscrete ? (p1, p2) => argVisualRange.categories.indexOf(p1.argument) - argVisualRange.categories.indexOf(p2.argument) : (p1, p2) => p1.argument - p2.argument;\r\n var points = [];\r\n markersInfo.series.forEach(s => points = points.concat(s.points));\r\n points.sort(sortingCallback);\r\n updateMarkersInfo(points, markersInfo.overloadedSeries);\r\n applyAutoHidePointMarkers(allSeries, series, markersInfo.overloadedSeries, argAxis)\r\n }\r\n })\r\n },\r\n _renderAxes: function(drawOptions, panesBorderOptions) {\r\n function calculateTitlesWidth(axes) {\r\n return axes.map(axis => {\r\n if (!axis.getTitle) {\r\n return 0\r\n }\r\n var title = axis.getTitle();\r\n return title ? title.bBox.width : 0\r\n })\r\n }\r\n var that = this;\r\n var rotated = that._isRotated();\r\n var synchronizeMultiAxes = that._themeManager.getOptions(\"synchronizeMultiAxes\");\r\n var scrollBar = that._scrollBar ? [that._scrollBar] : [];\r\n var extendedArgAxes = that._isArgumentAxisBeforeScrollBar() ? that._argumentAxes.concat(scrollBar) : scrollBar.concat(that._argumentAxes);\r\n var verticalAxes = rotated ? that._argumentAxes : that._valueAxes;\r\n var verticalElements = rotated ? extendedArgAxes : that._valueAxes;\r\n var horizontalAxes = rotated ? that._valueAxes : that._argumentAxes;\r\n var horizontalElements = rotated ? that._valueAxes : extendedArgAxes;\r\n var allAxes = verticalAxes.concat(horizontalAxes);\r\n var allElements = allAxes.concat(scrollBar);\r\n var verticalAxesFirstDrawing = verticalAxes.some(v => v.isFirstDrawing());\r\n that._normalizePanesHeight();\r\n that._updatePanesCanvases(drawOptions);\r\n var panesCanvases = that.panes.reduce((function(canvases, pane) {\r\n canvases[pane.name] = _extend({}, pane.canvas);\r\n return canvases\r\n }), {});\r\n var paneSizes = that.panes.reduce((sizes, pane) => {\r\n sizes[pane.name] = {\r\n height: pane.height,\r\n unit: pane.unit\r\n };\r\n return sizes\r\n }, {});\r\n var cleanPanesCanvases = _extend(true, {}, panesCanvases);\r\n that._initCustomPositioningAxes();\r\n var needCustomAdjustAxes = that._axesBoundaryPositioning();\r\n if (!drawOptions.adjustAxes && !needCustomAdjustAxes) {\r\n drawAxesWithTicks(verticalAxes, !rotated && synchronizeMultiAxes, panesCanvases, panesBorderOptions);\r\n drawAxesWithTicks(horizontalAxes, rotated && synchronizeMultiAxes, panesCanvases, panesBorderOptions);\r\n performActionOnAxes(allAxes, \"prepareAnimation\");\r\n that._renderScaleBreaks();\r\n horizontalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(verticalAxes));\r\n verticalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(horizontalAxes));\r\n return false\r\n }\r\n if (needCustomAdjustAxes) {\r\n allAxes.forEach(a => a.customPositionIsAvailable() && a.shift({\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n }))\r\n }\r\n if (that._scrollBar) {\r\n that._scrollBar.setPane(that.panes)\r\n }\r\n var vAxesMargins = {\r\n panes: {}\r\n };\r\n var hAxesMargins = getHorizontalAxesMargins(horizontalElements, axis => axis.estimateMargins(panesCanvases[axis.pane]));\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins);\r\n var drawAxesAndSetCanvases = isHorizontal => {\r\n var axes = isHorizontal ? horizontalAxes : verticalAxes;\r\n var condition = (isHorizontal ? rotated : !rotated) && synchronizeMultiAxes;\r\n drawAxesWithTicks(axes, condition, panesCanvases, panesBorderOptions);\r\n if (isHorizontal) {\r\n hAxesMargins = getHorizontalAxesMargins(horizontalElements, getAxisMargins)\r\n } else {\r\n vAxesMargins = getVerticalAxesMargins(verticalElements)\r\n }\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins)\r\n };\r\n drawAxesAndSetCanvases(false);\r\n drawAxesAndSetCanvases(true);\r\n if (!that._changesApplying && that._estimateTickIntervals(verticalAxes, panesCanvases)) {\r\n drawAxesAndSetCanvases(false)\r\n }\r\n var oldTitlesWidth = calculateTitlesWidth(verticalAxes);\r\n var visibleSeries = that._getVisibleSeries();\r\n var pointsToAnimation = that._getPointsToAnimation(visibleSeries);\r\n var axesIsAnimated = axisAnimationEnabled(drawOptions, pointsToAnimation);\r\n performActionOnAxes(allElements, \"updateSize\", panesCanvases, axesIsAnimated);\r\n horizontalElements.forEach(shiftAxis(\"top\", \"bottom\"));\r\n verticalElements.forEach(shiftAxis(\"left\", \"right\"));\r\n that._renderScaleBreaks();\r\n that.panes.forEach((function(pane) {\r\n _extend(pane.canvas, panesCanvases[pane.name])\r\n }));\r\n that._valueAxes.forEach(axis => {\r\n axis.setInitRange()\r\n });\r\n verticalAxes.forEach((axis, i) => {\r\n var _axis$hasWrap;\r\n if (null !== (_axis$hasWrap = axis.hasWrap) && void 0 !== _axis$hasWrap && _axis$hasWrap.call(axis)) {\r\n var title = axis.getTitle();\r\n var newTitleWidth = title ? title.bBox.width : 0;\r\n var offset = newTitleWidth - oldTitlesWidth[i];\r\n if (\"right\" === axis.getOptions().position) {\r\n vAxesMargins.right += offset\r\n } else {\r\n vAxesMargins.left += offset;\r\n that.panes.forEach(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return vAxesMargins.panes[name].left += offset\r\n })\r\n }\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins);\r\n performActionOnAxes(allElements, \"updateSize\", panesCanvases, false, false);\r\n oldTitlesWidth = calculateTitlesWidth(verticalAxes)\r\n }\r\n });\r\n if (verticalAxes.some(v => v.customPositionIsAvailable() && v.getCustomPosition() !== v._axisPosition)) {\r\n axesIsAnimated && that._resetAxesAnimation(verticalAxesFirstDrawing, false);\r\n performActionOnAxes(verticalAxes, \"updateSize\", panesCanvases, axesIsAnimated)\r\n }\r\n horizontalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(verticalAxes));\r\n verticalAxes.forEach(a => a.resolveOverlappingForCustomPositioning(horizontalAxes));\r\n return cleanPanesCanvases\r\n },\r\n _getExtraTemplatesItems() {\r\n var allAxes = (this._argumentAxes || []).concat(this._valueAxes || []);\r\n var elements = this._collectTemplatesFromItems(allAxes);\r\n return {\r\n items: elements.items,\r\n groups: elements.groups,\r\n launchRequest() {\r\n allAxes.forEach((function(a) {\r\n a.setRenderedState(true)\r\n }))\r\n },\r\n doneRequest() {\r\n allAxes.forEach((function(a) {\r\n a.setRenderedState(false)\r\n }))\r\n }\r\n }\r\n },\r\n _estimateTickIntervals: (axes, canvases) => axes.some(axis => axis.estimateTickInterval(canvases[axis.pane])),\r\n checkForMoreSpaceForPanesCanvas() {\r\n var rotated = this._isRotated();\r\n var panesAreCustomSized = this.panes.filter(p => p.unit).length === this.panes.length;\r\n var needSpace = false;\r\n if (panesAreCustomSized) {\r\n var needHorizontalSpace = 0;\r\n var needVerticalSpace = 0;\r\n if (rotated) {\r\n var argAxisRightMargin = this.getArgumentAxis().getMargins().right;\r\n var rightPanesIndent = Math.min.apply(Math, this.panes.map(p => p.canvas.right));\r\n needHorizontalSpace = this._canvas.right + argAxisRightMargin - rightPanesIndent\r\n } else {\r\n var argAxisBottomMargin = this.getArgumentAxis().getMargins().bottom;\r\n var bottomPanesIndent = Math.min.apply(Math, this.panes.map(p => p.canvas.bottom));\r\n needVerticalSpace = this._canvas.bottom + argAxisBottomMargin - bottomPanesIndent\r\n }\r\n needSpace = needHorizontalSpace > 0 || needVerticalSpace > 0 ? {\r\n width: needHorizontalSpace,\r\n height: needVerticalSpace\r\n } : false;\r\n if (0 !== needVerticalSpace) {\r\n var realSize = this.getSize();\r\n var customSize = this.option(\"size\");\r\n var container = this._$element[0];\r\n var containerHasStyledHeight = !!parseInt(container.style.height) || 0 !== this._containerInitialHeight;\r\n if (!rotated && !(customSize && customSize.height) && !containerHasStyledHeight) {\r\n this._forceResize(realSize.width, realSize.height + needVerticalSpace);\r\n needSpace = false\r\n }\r\n }\r\n } else {\r\n needSpace = this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), rotated, pane => ({\r\n width: rotated && !!pane.unit,\r\n height: !rotated && !!pane.unit\r\n }))\r\n }\r\n return needSpace\r\n },\r\n _forceResize(width, height) {\r\n this._renderer.resize(width, height);\r\n this._updateSize();\r\n this._setContentSize();\r\n this._preserveOriginalCanvas();\r\n this._updateCanvasClipRect(this._canvas)\r\n },\r\n _shrinkAxes(sizeShortage, panesCanvases) {\r\n if (!sizeShortage || !panesCanvases) {\r\n return\r\n }\r\n this._renderer.stopAllAnimations(true);\r\n var rotated = this._isRotated();\r\n var scrollBar = this._scrollBar ? [this._scrollBar] : [];\r\n var extendedArgAxes = this._isArgumentAxisBeforeScrollBar() ? this._argumentAxes.concat(scrollBar) : scrollBar.concat(this._argumentAxes);\r\n var verticalAxes = rotated ? extendedArgAxes : this._valueAxes;\r\n var horizontalAxes = rotated ? this._valueAxes : extendedArgAxes;\r\n var allAxes = verticalAxes.concat(horizontalAxes);\r\n if (sizeShortage.width || sizeShortage.height) {\r\n checkUsedSpace(sizeShortage, \"height\", horizontalAxes, getHorizontalAxesMargins);\r\n checkUsedSpace(sizeShortage, \"width\", verticalAxes, getVerticalAxesMargins);\r\n performActionOnAxes(allAxes, \"updateSize\", panesCanvases);\r\n var paneSizes = this.panes.reduce((sizes, pane) => {\r\n sizes[pane.name] = {\r\n height: pane.height,\r\n unit: pane.unit\r\n };\r\n return sizes\r\n }, {});\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, getVerticalAxesMargins(verticalAxes), getHorizontalAxesMargins(horizontalAxes, getAxisMargins));\r\n performActionOnAxes(allAxes, \"updateSize\", panesCanvases);\r\n horizontalAxes.forEach(shiftAxis(\"top\", \"bottom\"));\r\n verticalAxes.forEach(shiftAxis(\"left\", \"right\"));\r\n this.panes.forEach(pane => _extend(pane.canvas, panesCanvases[pane.name]))\r\n }\r\n },\r\n _isArgumentAxisBeforeScrollBar() {\r\n var argumentAxis = this.getArgumentAxis();\r\n if (this._scrollBar) {\r\n var _argumentAxis$getOpti;\r\n var argAxisPosition = argumentAxis.getResolvedBoundaryPosition();\r\n var argAxisLabelPosition = null === (_argumentAxis$getOpti = argumentAxis.getOptions().label) || void 0 === _argumentAxis$getOpti ? void 0 : _argumentAxis$getOpti.position;\r\n var scrollBarPosition = this._scrollBar.getOptions().position;\r\n return argumentAxis.hasNonBoundaryPosition() || scrollBarPosition === argAxisPosition && argAxisLabelPosition !== scrollBarPosition\r\n }\r\n return false\r\n },\r\n _getPanesParameters: function() {\r\n var panes = this.panes;\r\n var i;\r\n var params = [];\r\n for (i = 0; i < panes.length; i++) {\r\n if (this._getPaneBorderVisibility(i)) {\r\n params.push({\r\n coords: panes[i].borderCoords,\r\n clipRect: this._panesClipRects.fixed[i]\r\n })\r\n }\r\n }\r\n return params\r\n },\r\n _createCrosshairCursor: function() {\r\n var options = this._themeManager.getOptions(\"crosshair\") || {};\r\n var argumentAxis = this.getArgumentAxis();\r\n var axes = !this._isRotated() ? [\r\n [argumentAxis], this._valueAxes\r\n ] : [this._valueAxes, [argumentAxis]];\r\n var parameters = {\r\n canvas: this._getCommonCanvas(),\r\n panes: this._getPanesParameters(),\r\n axes: axes\r\n };\r\n if (!options || !options.enabled) {\r\n return\r\n }\r\n if (!this._crosshair) {\r\n this._crosshair = new Crosshair(this._renderer, options, parameters, this._crosshairCursorGroup)\r\n } else {\r\n this._crosshair.update(options, parameters)\r\n }\r\n this._crosshair.render()\r\n },\r\n _getCommonCanvas: function() {\r\n var i;\r\n var canvas;\r\n var commonCanvas;\r\n var panes = this.panes;\r\n for (i = 0; i < panes.length; i++) {\r\n canvas = panes[i].canvas;\r\n if (!commonCanvas) {\r\n commonCanvas = _extend({}, canvas)\r\n } else {\r\n commonCanvas.right = canvas.right;\r\n commonCanvas.bottom = canvas.bottom\r\n }\r\n }\r\n return commonCanvas\r\n },\r\n _createPanesBackground: function() {\r\n var defaultBackgroundColor = this._themeManager.getOptions(\"commonPaneSettings\").backgroundColor;\r\n var backgroundColor;\r\n var renderer = this._renderer;\r\n var rect;\r\n var i;\r\n var rects = [];\r\n this._panesBackgroundGroup.clear();\r\n for (i = 0; i < this.panes.length; i++) {\r\n backgroundColor = this.panes[i].backgroundColor || defaultBackgroundColor;\r\n if (!backgroundColor || \"none\" === backgroundColor) {\r\n rects.push(null);\r\n continue\r\n }\r\n rect = renderer.rect(0, 0, 0, 0).attr({\r\n fill: backgroundColor,\r\n \"stroke-width\": 0\r\n }).append(this._panesBackgroundGroup);\r\n rects.push(rect)\r\n }\r\n this.panesBackground = rects\r\n },\r\n _fillPanesBackground: function() {\r\n var that = this;\r\n var bc;\r\n _each(that.panes, (function(i, pane) {\r\n bc = pane.borderCoords;\r\n if (null !== that.panesBackground[i]) {\r\n that.panesBackground[i].attr({\r\n x: bc.left,\r\n y: bc.top,\r\n width: bc.width,\r\n height: bc.height\r\n })\r\n }\r\n }))\r\n },\r\n _calcPaneBorderCoords: function(pane) {\r\n var canvas = pane.canvas;\r\n var bc = pane.borderCoords = pane.borderCoords || {};\r\n bc.left = canvas.left;\r\n bc.top = canvas.top;\r\n bc.right = canvas.width - canvas.right;\r\n bc.bottom = canvas.height - canvas.bottom;\r\n bc.width = Math.max(bc.right - bc.left, 0);\r\n bc.height = Math.max(bc.bottom - bc.top, 0)\r\n },\r\n _drawPanesBorders: function(panesBorderOptions) {\r\n var that = this;\r\n var rotated = that._isRotated();\r\n that._panesBorderGroup.linkRemove().clear();\r\n _each(that.panes, (function(i, pane) {\r\n var borderOptions = panesBorderOptions[pane.name];\r\n var attr = {\r\n fill: \"none\",\r\n stroke: borderOptions.color,\r\n \"stroke-opacity\": borderOptions.opacity,\r\n \"stroke-width\": borderOptions.width,\r\n dashStyle: borderOptions.dashStyle,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n that._calcPaneBorderCoords(pane, rotated);\r\n if (!borderOptions.visible) {\r\n return\r\n }\r\n var bc = pane.borderCoords;\r\n var segmentRectParams = prepareSegmentRectPoints(bc.left, bc.top, bc.width, bc.height, borderOptions);\r\n that._renderer.path(segmentRectParams.points, segmentRectParams.pathType).attr(attr).append(that._panesBorderGroup)\r\n }));\r\n that._panesBorderGroup.linkAppend()\r\n },\r\n _createClipRect: function(clipArray, index, left, top, width, height) {\r\n var clipRect = clipArray[index];\r\n if (!clipRect) {\r\n clipRect = this._renderer.clipRect(left, top, width, height);\r\n clipArray[index] = clipRect\r\n } else {\r\n clipRect.attr({\r\n x: left,\r\n y: top,\r\n width: width,\r\n height: height\r\n })\r\n }\r\n },\r\n _createClipRectsForPanes: function() {\r\n var that = this;\r\n var canvas = that._canvas;\r\n _each(that.panes, (function(i, pane) {\r\n var needWideClipRect = false;\r\n var bc = pane.borderCoords;\r\n var left = bc.left;\r\n var top = bc.top;\r\n var width = bc.width;\r\n var height = bc.height;\r\n var panesClipRects = that._panesClipRects;\r\n that._createClipRect(panesClipRects.fixed, i, left, top, width, height);\r\n that._createClipRect(panesClipRects.base, i, left, top, width, height);\r\n _each(that.series, (function(_, series) {\r\n if (series.pane === pane.name && (series.isFinancialSeries() || series.areErrorBarsVisible())) {\r\n needWideClipRect = true\r\n }\r\n }));\r\n if (needWideClipRect) {\r\n if (that._isRotated()) {\r\n top = 0;\r\n height = canvas.height\r\n } else {\r\n left = 0;\r\n width = canvas.width\r\n }\r\n that._createClipRect(panesClipRects.wide, i, left, top, width, height)\r\n } else {\r\n panesClipRects.wide[i] = null\r\n }\r\n }))\r\n },\r\n _applyClipRectsForAxes() {\r\n var axes = this._getAllAxes();\r\n var chartCanvasClipRectID = this._getCanvasClipRectID();\r\n for (var i = 0; i < axes.length; i++) {\r\n var elementsClipRectID = this._getElementsClipRectID(axes[i].pane);\r\n axes[i].applyClipRects(elementsClipRectID, chartCanvasClipRectID)\r\n }\r\n },\r\n _getPaneBorderVisibility: function(paneIndex) {\r\n var commonPaneBorderVisible = this._themeManager.getOptions(\"commonPaneSettings\").border.visible;\r\n var pane = this.panes[paneIndex] || {};\r\n var paneBorder = pane.border || {};\r\n return \"visible\" in paneBorder ? paneBorder.visible : commonPaneBorderVisible\r\n },\r\n _getCanvasForPane: function(paneName) {\r\n var panes = this.panes;\r\n var panesNumber = panes.length;\r\n var i;\r\n for (i = 0; i < panesNumber; i++) {\r\n if (panes[i].name === paneName) {\r\n return panes[i].canvas\r\n }\r\n }\r\n },\r\n _getTrackerSettings: function() {\r\n var themeManager = this._themeManager;\r\n return _extend(this.callBase(), {\r\n chart: this,\r\n rotated: this._isRotated(),\r\n crosshair: this._getCrosshairOptions().enabled ? this._crosshair : null,\r\n stickyHovering: themeManager.getOptions(\"stickyHovering\")\r\n })\r\n },\r\n _resolveLabelOverlappingStack: function() {\r\n var that = this;\r\n var isRotated = that._isRotated();\r\n var shiftDirection = isRotated ? function(box, length) {\r\n return {\r\n x: box.x - length,\r\n y: box.y\r\n }\r\n } : function(box, length) {\r\n return {\r\n x: box.x,\r\n y: box.y - length\r\n }\r\n };\r\n _each(that._getStackPoints(), (function(_, stacks) {\r\n _each(stacks, (function(_, points) {\r\n var isInverted = points[0].series.getValueAxis().getOptions().inverted;\r\n overlapping.resolveLabelOverlappingInOneDirection(points, that._getCommonCanvas(), isRotated, isInverted, shiftDirection, (a, b) => {\r\n var coordPosition = isRotated ? 1 : 0;\r\n var figureCenter1 = a.labels[0].getFigureCenter()[coordPosition];\r\n var figureCenter12 = b.labels[0].getFigureCenter()[coordPosition];\r\n if (figureCenter1 - figureCenter12 === 0) {\r\n return (a.value() - b.value()) * (a.labels[0].getPoint().series.getValueAxis().getTranslator().isInverted() ? -1 : 1)\r\n }\r\n return 0\r\n })\r\n }))\r\n }))\r\n },\r\n _getStackPoints: function() {\r\n var stackPoints = {};\r\n var visibleSeries = this._getVisibleSeries();\r\n _each(visibleSeries, (function(_, singleSeries) {\r\n var points = singleSeries.getPoints();\r\n var stackName = singleSeries.getStackName() || null;\r\n _each(points, (function(_, point) {\r\n var argument = point.argument;\r\n if (!stackPoints[argument]) {\r\n stackPoints[argument] = {}\r\n }\r\n if (!stackPoints[argument][stackName]) {\r\n stackPoints[argument][stackName] = []\r\n }\r\n stackPoints[argument][stackName].push(point)\r\n }))\r\n }));\r\n return stackPoints\r\n },\r\n _getCrosshairOptions: function() {\r\n return this._getOption(\"crosshair\")\r\n },\r\n zoomArgument(min, max) {\r\n if (!this._initialized || !_isDefined(min) && !_isDefined(max)) {\r\n return\r\n }\r\n this.getArgumentAxis().visualRange([min, max])\r\n },\r\n resetVisualRange() {\r\n var that = this;\r\n var axes = that._argumentAxes;\r\n var nonVirtualArgumentAxis = that.getArgumentAxis();\r\n axes.forEach(axis => {\r\n axis.resetVisualRange(nonVirtualArgumentAxis !== axis);\r\n that._applyCustomVisualRangeOption(axis)\r\n });\r\n that.callBase()\r\n },\r\n getVisibleArgumentBounds: function() {\r\n var translator = this._argumentAxes[0].getTranslator();\r\n var range = translator.getBusinessRange();\r\n var isDiscrete = range.axisType === DISCRETE;\r\n var categories = range.categories;\r\n return {\r\n minVisible: isDiscrete ? range.minVisible || categories[0] : range.minVisible,\r\n maxVisible: isDiscrete ? range.maxVisible || categories[categories.length - 1] : range.maxVisible\r\n }\r\n },\r\n _change_FULL_RENDER() {\r\n this.callBase();\r\n if (this._changes.has(VISUAL_RANGE)) {\r\n this._raiseZoomEndHandlers()\r\n }\r\n },\r\n _getAxesForScaling() {\r\n return [this.getArgumentAxis()].concat(this._valueAxes)\r\n },\r\n _applyVisualRangeByVirtualAxes(axis, range) {\r\n if (axis.isArgumentAxis) {\r\n if (axis !== this.getArgumentAxis()) {\r\n return true\r\n }\r\n this._argumentAxes.filter(a => a !== axis).forEach(a => a.visualRange(range, {\r\n start: true,\r\n end: true\r\n }))\r\n }\r\n return false\r\n },\r\n _raiseZoomEndHandlers() {\r\n this._argumentAxes.forEach(axis => axis.handleZoomEnd());\r\n this.callBase()\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n _extend(this._optionsByReference, {\r\n \"argumentAxis.visualRange\": true\r\n })\r\n },\r\n option() {\r\n var option = this.callBase.apply(this, arguments);\r\n var valueAxis = this._options.silent(\"valueAxis\");\r\n if (\"array\" === type(valueAxis)) {\r\n for (var i = 0; i < valueAxis.length; i++) {\r\n var optionPath = \"valueAxis[\".concat(i, \"].visualRange\");\r\n this._optionsByReference[optionPath] = true\r\n }\r\n }\r\n return option\r\n },\r\n _notifyVisualRange() {\r\n var argAxis = this._argumentAxes[0];\r\n var argumentVisualRange = convertVisualRangeObject(argAxis.visualRange(), !_isArray(this.option(\"argumentAxis.visualRange\")));\r\n if (!argAxis.skipEventRising || !rangesAreEqual(argumentVisualRange, this.option(\"argumentAxis.visualRange\"))) {\r\n this.option(\"argumentAxis.visualRange\", argumentVisualRange)\r\n } else {\r\n argAxis.skipEventRising = null\r\n }\r\n this.callBase()\r\n }\r\n});\r\nimport shutterZoom from \"./chart_components/shutter_zoom\";\r\nimport zoomAndPan from \"./chart_components/zoom_and_pan\";\r\nimport {\r\n plugins\r\n} from \"./core/annotations\";\r\ndxChart.addPlugin(shutterZoom);\r\ndxChart.addPlugin(zoomAndPan);\r\ndxChart.addPlugin(plugins.core);\r\ndxChart.addPlugin(plugins.chart);\r\nregisterComponent(\"dxChart\", dxChart);\r\nexport default dxChart;\r\n","/**\r\n * DevExtreme (esm/viz/utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n refreshPaths\r\n} from \"./core/renderers/renderer\";\r\nimport {\r\n each as _each\r\n} from \"../core/utils/iterator\";\r\nexport var prepareSegmentRectPoints = function(left, top, width, height, borderOptions) {\r\n var maxSW = ~~((width < height ? width : height) / 2);\r\n var sw = borderOptions.width || 0;\r\n var newSW = sw < maxSW ? sw : maxSW;\r\n left += newSW / 2;\r\n top += newSW / 2;\r\n width -= newSW;\r\n height -= newSW;\r\n var right = left + width;\r\n var bottom = top + height;\r\n var points = [];\r\n var segments = [];\r\n var segmentSequence;\r\n var visiblyOpt = 0;\r\n var prevSegmentVisibility = 0;\r\n var allSegment = {\r\n top: [\r\n [left, top],\r\n [right, top]\r\n ],\r\n right: [\r\n [right, top],\r\n [right, bottom]\r\n ],\r\n bottom: [\r\n [right, bottom],\r\n [left, bottom]\r\n ],\r\n left: [\r\n [left, bottom],\r\n [left, top]\r\n ]\r\n };\r\n _each(allSegment, (function(seg) {\r\n var visibility = !!borderOptions[seg];\r\n visiblyOpt = 2 * visiblyOpt + ~~visibility\r\n }));\r\n switch (visiblyOpt) {\r\n case 13:\r\n case 9:\r\n segmentSequence = [\"left\", \"top\", \"right\", \"bottom\"];\r\n break;\r\n case 11:\r\n segmentSequence = [\"bottom\", \"left\", \"top\", \"right\"];\r\n break;\r\n default:\r\n segmentSequence = [\"top\", \"right\", \"bottom\", \"left\"]\r\n }\r\n _each(segmentSequence, (function(_, seg) {\r\n var segmentVisibility = !!borderOptions[seg];\r\n if (!prevSegmentVisibility && segments.length) {\r\n points.push(segments);\r\n segments = []\r\n }\r\n if (segmentVisibility) {\r\n _each(allSegment[seg].slice(prevSegmentVisibility), (function(_, segment) {\r\n segments = segments.concat(segment)\r\n }))\r\n }\r\n prevSegmentVisibility = ~~segmentVisibility\r\n }));\r\n segments.length && points.push(segments);\r\n 1 === points.length && (points = points[0]);\r\n return {\r\n points: points,\r\n pathType: 15 === visiblyOpt ? \"area\" : \"line\"\r\n }\r\n};\r\nexport {\r\n refreshPaths\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/legend.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n enumParser,\r\n normalizeEnum,\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n LayoutElement,\r\n WrapperLayoutElement\r\n} from \"../core/layout_element\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Title\r\n} from \"../core/title\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n processHatchingAttrs,\r\n getFuncIri\r\n} from \"../core/renderers/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar _Number = Number;\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _max = _math.max;\r\nvar _min = _math.min;\r\nvar _ceil = _math.ceil;\r\nvar _isDefined = isDefined;\r\nvar _isFunction = isFunction;\r\nvar _enumParser = enumParser;\r\nvar _normalizeEnum = normalizeEnum;\r\nvar _extend = extend;\r\nvar DEFAULT_MARGIN = 10;\r\nvar DEFAULT_MARKER_HATCHING_WIDTH = 2;\r\nvar DEFAULT_MARKER_HATCHING_STEP = 5;\r\nvar CENTER = \"center\";\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar VERTICAL = \"vertical\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\nvar NONE = \"none\";\r\nvar HEIGHT = \"height\";\r\nvar WIDTH = \"width\";\r\nvar parseHorizontalAlignment = _enumParser([LEFT, CENTER, RIGHT]);\r\nvar parseVerticalAlignment = _enumParser([TOP, BOTTOM]);\r\nvar parseOrientation = _enumParser([VERTICAL, HORIZONTAL]);\r\nvar parseItemTextPosition = _enumParser([LEFT, RIGHT, TOP, BOTTOM]);\r\nvar parsePosition = _enumParser([OUTSIDE, INSIDE]);\r\nvar parseItemsAlignment = _enumParser([LEFT, CENTER, RIGHT]);\r\n\r\nfunction getState(state, color, stateName) {\r\n if (!state) {\r\n return\r\n }\r\n var colorFromAction = state.fill;\r\n return extend({}, {\r\n state: stateName,\r\n fill: colorFromAction === NONE ? color : colorFromAction,\r\n opacity: state.opacity,\r\n hatching: _extend({}, state.hatching, {\r\n step: DEFAULT_MARKER_HATCHING_STEP,\r\n width: DEFAULT_MARKER_HATCHING_WIDTH\r\n })\r\n })\r\n}\r\n\r\nfunction getAttributes(item, state, size) {\r\n var attrs = processHatchingAttrs(item, state);\r\n if (attrs.fill && 0 === attrs.fill.indexOf(\"DevExpress\")) {\r\n attrs.fill = getFuncIri(attrs.fill)\r\n }\r\n attrs.opacity = attrs.opacity >= 0 ? attrs.opacity : 1;\r\n return extend({}, attrs, {\r\n size: size\r\n })\r\n}\r\n\r\nfunction parseMargins(options) {\r\n var margin = options.margin;\r\n if (margin >= 0) {\r\n margin = _Number(options.margin);\r\n margin = {\r\n top: margin,\r\n bottom: margin,\r\n left: margin,\r\n right: margin\r\n }\r\n } else {\r\n margin = {\r\n top: margin.top >= 0 ? _Number(margin.top) : DEFAULT_MARGIN,\r\n bottom: margin.bottom >= 0 ? _Number(margin.bottom) : DEFAULT_MARGIN,\r\n left: margin.left >= 0 ? _Number(margin.left) : DEFAULT_MARGIN,\r\n right: margin.right >= 0 ? _Number(margin.right) : DEFAULT_MARGIN\r\n }\r\n }\r\n options.margin = margin\r\n}\r\n\r\nfunction getSizeItem(options, markerBBox, labelBBox) {\r\n var width;\r\n var height;\r\n switch (options.itemTextPosition) {\r\n case LEFT:\r\n case RIGHT:\r\n width = markerBBox.width + 7 + labelBBox.width;\r\n height = _max(markerBBox.height, labelBBox.height);\r\n break;\r\n case TOP:\r\n case BOTTOM:\r\n width = _max(markerBBox.width, labelBBox.width);\r\n height = markerBBox.height + 4 + labelBBox.height\r\n }\r\n return {\r\n width: width,\r\n height: height\r\n }\r\n}\r\n\r\nfunction calculateBBoxLabelAndMarker(markerBBox, labelBBox) {\r\n var bBox = {};\r\n bBox.left = _min(markerBBox.x, labelBBox.x);\r\n bBox.top = _min(markerBBox.y, labelBBox.y);\r\n bBox.right = _max(markerBBox.x + markerBBox.width, labelBBox.x + labelBBox.width);\r\n bBox.bottom = _max(markerBBox.y + markerBBox.height, labelBBox.y + labelBBox.height);\r\n return bBox\r\n}\r\n\r\nfunction applyMarkerState(id, idToIndexMap, items, stateName) {\r\n var item = idToIndexMap && items[idToIndexMap[id]];\r\n if (item) {\r\n item.renderMarker(item.states[stateName])\r\n }\r\n}\r\n\r\nfunction parseOptions(options, textField, allowInsidePosition) {\r\n if (!options) {\r\n return null\r\n }\r\n parseMargins(options);\r\n options.horizontalAlignment = parseHorizontalAlignment(options.horizontalAlignment, RIGHT);\r\n options.verticalAlignment = parseVerticalAlignment(options.verticalAlignment, options.horizontalAlignment === CENTER ? BOTTOM : TOP);\r\n options.orientation = parseOrientation(options.orientation, options.horizontalAlignment === CENTER ? HORIZONTAL : VERTICAL);\r\n options.itemTextPosition = parseItemTextPosition(options.itemTextPosition, options.orientation === HORIZONTAL ? BOTTOM : RIGHT);\r\n options.position = allowInsidePosition ? parsePosition(options.position, OUTSIDE) : OUTSIDE;\r\n options.itemsAlignment = parseItemsAlignment(options.itemsAlignment, null);\r\n options.hoverMode = _normalizeEnum(options.hoverMode);\r\n options.customizeText = _isFunction(options.customizeText) ? options.customizeText : function() {\r\n return this[textField]\r\n };\r\n options.customizeHint = _isFunction(options.customizeHint) ? options.customizeHint : noop;\r\n options._incidentOccurred = options._incidentOccurred || noop;\r\n return options\r\n}\r\n\r\nfunction createSquareMarker(renderer, size) {\r\n return renderer.rect(0, 0, size, size)\r\n}\r\n\r\nfunction createCircleMarker(renderer, size) {\r\n return renderer.circle(size / 2, size / 2, size / 2)\r\n}\r\n\r\nfunction isCircle(type) {\r\n return \"circle\" === _normalizeEnum(type)\r\n}\r\n\r\nfunction inRect(rect, x, y) {\r\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom\r\n}\r\n\r\nfunction checkLinesSize(lines, layoutOptions, countItems, margins) {\r\n var position = {\r\n x: 0,\r\n y: 0\r\n };\r\n var maxMeasureLength = 0;\r\n var maxAltMeasureLength = 0;\r\n var margin = 0;\r\n if (\"y\" === layoutOptions.direction) {\r\n margin = margins.top + margins.bottom\r\n } else {\r\n margin = margins.left + margins.right\r\n }\r\n lines.forEach((function(line, i) {\r\n var firstItem = line[0];\r\n var lineLength = line.length;\r\n line.forEach((function(item, index) {\r\n var offset = item.offset || layoutOptions.spacing;\r\n position[layoutOptions.direction] += item[layoutOptions.measure] + (index !== lineLength - 1 ? offset : 0);\r\n maxMeasureLength = _max(maxMeasureLength, position[layoutOptions.direction])\r\n }));\r\n position[layoutOptions.direction] = 0;\r\n position[layoutOptions.altDirection] += firstItem[layoutOptions.altMeasure] + firstItem.altOffset || layoutOptions.altSpacing;\r\n maxAltMeasureLength = _max(maxAltMeasureLength, position[layoutOptions.altDirection])\r\n }));\r\n if (maxMeasureLength + margin > layoutOptions.length) {\r\n layoutOptions.countItem = decreaseItemCount(layoutOptions, countItems);\r\n return true\r\n }\r\n}\r\n\r\nfunction decreaseItemCount(layoutOptions, countItems) {\r\n layoutOptions.altCountItem++;\r\n return _ceil(countItems / layoutOptions.altCountItem)\r\n}\r\n\r\nfunction getLineLength(line, layoutOptions) {\r\n return line.reduce((lineLength, item) => {\r\n var offset = item.offset || layoutOptions.spacing;\r\n return lineLength + item[layoutOptions.measure] + offset\r\n }, 0)\r\n}\r\n\r\nfunction getMaxLineLength(lines, layoutOptions) {\r\n return lines.reduce((maxLineLength, line) => _max(maxLineLength, getLineLength(line, layoutOptions)), 0)\r\n}\r\n\r\nfunction getInitPositionForDirection(line, layoutOptions, maxLineLength) {\r\n var lineLength = getLineLength(line, layoutOptions);\r\n var initPosition;\r\n switch (layoutOptions.itemsAlignment) {\r\n case RIGHT:\r\n initPosition = maxLineLength - lineLength;\r\n break;\r\n case CENTER:\r\n initPosition = (maxLineLength - lineLength) / 2;\r\n break;\r\n default:\r\n initPosition = 0\r\n }\r\n return initPosition\r\n}\r\n\r\nfunction getPos(layoutOptions) {\r\n switch (layoutOptions.itemTextPosition) {\r\n case BOTTOM:\r\n return {\r\n horizontal: CENTER, vertical: TOP\r\n };\r\n case TOP:\r\n return {\r\n horizontal: CENTER, vertical: BOTTOM\r\n };\r\n case LEFT:\r\n return {\r\n horizontal: RIGHT, vertical: CENTER\r\n };\r\n case RIGHT:\r\n return {\r\n horizontal: LEFT, vertical: CENTER\r\n }\r\n }\r\n}\r\n\r\nfunction getLines(lines, layoutOptions, itemIndex) {\r\n var tableLine = {};\r\n if (itemIndex % layoutOptions.countItem === 0) {\r\n if (layoutOptions.markerOffset) {\r\n lines.push([], [])\r\n } else {\r\n lines.push([])\r\n }\r\n }\r\n if (layoutOptions.markerOffset) {\r\n tableLine.firstLine = lines[lines.length - 1];\r\n tableLine.secondLine = lines[lines.length - 2]\r\n } else {\r\n tableLine.firstLine = tableLine.secondLine = lines[lines.length - 1]\r\n }\r\n return tableLine\r\n}\r\n\r\nfunction setMaxInLine(line, measure) {\r\n var maxLineSize = line.reduce((maxLineSize, item) => {\r\n var itemMeasure = item ? item[measure] : maxLineSize;\r\n return _max(maxLineSize, itemMeasure)\r\n }, 0);\r\n line.forEach(item => {\r\n if (item) {\r\n item[measure] = maxLineSize\r\n }\r\n })\r\n}\r\n\r\nfunction transpose(array) {\r\n var width = array.length;\r\n var height = array[0].length;\r\n var i;\r\n var j;\r\n var transposeArray = [];\r\n for (i = 0; i < height; i++) {\r\n transposeArray[i] = [];\r\n for (j = 0; j < width; j++) {\r\n transposeArray[i][j] = array[j][i]\r\n }\r\n }\r\n return transposeArray\r\n}\r\n\r\nfunction getAlign(position) {\r\n switch (position) {\r\n case TOP:\r\n case BOTTOM:\r\n return CENTER;\r\n case LEFT:\r\n return RIGHT;\r\n case RIGHT:\r\n return LEFT\r\n }\r\n}\r\nvar getMarkerCreator = function(type) {\r\n return isCircle(type) ? createCircleMarker : createSquareMarker\r\n};\r\n\r\nfunction getTitleHorizontalAlignment(options) {\r\n if (options.horizontalAlignment === CENTER) {\r\n return CENTER\r\n } else if (options.itemTextPosition === RIGHT) {\r\n return LEFT\r\n } else if (options.itemTextPosition === LEFT) {\r\n return RIGHT\r\n } else {\r\n return CENTER\r\n }\r\n}\r\nexport var Legend = function(settings) {\r\n this._renderer = settings.renderer;\r\n this._legendGroup = settings.group;\r\n this._backgroundClass = settings.backgroundClass;\r\n this._itemGroupClass = settings.itemGroupClass;\r\n this._textField = settings.textField;\r\n this._getCustomizeObject = settings.getFormatObject;\r\n this._titleGroupClass = settings.titleGroupClass;\r\n this._allowInsidePosition = settings.allowInsidePosition;\r\n this._widget = settings.widget;\r\n this._updated = false\r\n};\r\nvar _Legend = Legend;\r\nvar legendPrototype = _Legend.prototype = clone(LayoutElement.prototype);\r\nextend(legendPrototype, {\r\n constructor: _Legend,\r\n getOptions: function() {\r\n return this._options\r\n },\r\n update: function() {\r\n var data = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var options = arguments.length > 1 ? arguments[1] : void 0;\r\n var themeManagerTitleOptions = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n options = that._options = parseOptions(options, that._textField, that._allowInsidePosition) || {};\r\n var initMarkerSize = options.markerSize;\r\n this._updated = true;\r\n this._data = data.map(dataItem => {\r\n dataItem.size = _Number(dataItem.size > 0 ? dataItem.size : initMarkerSize);\r\n dataItem.marker = getAttributes(dataItem, dataItem.states.normal);\r\n Object.defineProperty(dataItem.marker, \"size\", {\r\n get: () => dataItem.size,\r\n set(value) {\r\n dataItem.size = value\r\n }\r\n });\r\n Object.defineProperty(dataItem.marker, \"opacity\", {\r\n get: () => dataItem.states.normal.opacity,\r\n set(value) {\r\n dataItem.states.normal.opacity = dataItem.states.hover.opacity = dataItem.states.selection.opacity = value\r\n }\r\n });\r\n return dataItem\r\n });\r\n if (options.customizeItems) {\r\n that._data = options.customizeItems(data.slice()) || data\r\n }\r\n that._boundingRect = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n if (that.isVisible() && !that._title) {\r\n that._title = new Title({\r\n renderer: that._renderer,\r\n cssClass: that._titleGroupClass,\r\n root: that._legendGroup\r\n })\r\n }\r\n if (that._title) {\r\n var titleOptions = options.title;\r\n themeManagerTitleOptions.horizontalAlignment = getTitleHorizontalAlignment(options);\r\n that._title.update(themeManagerTitleOptions, titleOptions)\r\n }\r\n this.erase();\r\n return that\r\n },\r\n isVisible: function() {\r\n return this._options && this._options.visible\r\n },\r\n draw: function(width, height) {\r\n var items = this._getItemData();\r\n this.erase();\r\n if (!(this.isVisible() && items && items.length)) {\r\n return this\r\n }\r\n this._insideLegendGroup = this._renderer.g().enableLinks().append(this._legendGroup);\r\n this._title.changeLink(this._insideLegendGroup);\r\n this._createBackground();\r\n if (this._title.hasText()) {\r\n var horizontalPadding = this._background ? 2 * this._options.paddingLeftRight : 0;\r\n this._title.draw(width - horizontalPadding, height)\r\n }\r\n this._markersGroup = this._renderer.g().attr({\r\n class: this._itemGroupClass\r\n }).append(this._insideLegendGroup);\r\n this._createItems(items);\r\n this._updateElementsPosition(width, height);\r\n return this\r\n },\r\n _measureElements: function() {\r\n var options = this._options;\r\n var maxBBoxHeight = 0;\r\n this._items.forEach(item => {\r\n var labelBBox = item.label.getBBox();\r\n var markerBBox = item.marker.getBBox();\r\n item.markerBBox = markerBBox;\r\n item.markerSize = Math.max(markerBBox.width, markerBBox.height);\r\n var bBox = getSizeItem(options, markerBBox, labelBBox);\r\n item.labelBBox = labelBBox;\r\n item.bBox = bBox;\r\n maxBBoxHeight = _max(maxBBoxHeight, bBox.height)\r\n });\r\n if (options.equalRowHeight) {\r\n this._items.forEach(item => item.bBox.height = maxBBoxHeight)\r\n }\r\n },\r\n _updateElementsPosition: function(width, height) {\r\n var options = this._options;\r\n this._size = {\r\n width: width,\r\n height: height\r\n };\r\n this._measureElements();\r\n this._locateElements(options);\r\n this._finalUpdate(options);\r\n var size = this.getLayoutOptions();\r\n if (size.width > width || size.height > height) {\r\n this.freeSpace()\r\n }\r\n },\r\n _createItems: function(items) {\r\n var that = this;\r\n var options = that._options;\r\n var renderer = that._renderer;\r\n var createMarker = getMarkerCreator(options.markerShape);\r\n that._markersId = {};\r\n var templateFunction = !options.markerTemplate ? (dataItem, group) => {\r\n var attrs = dataItem.marker;\r\n createMarker(renderer, attrs.size).attr({\r\n fill: attrs.fill,\r\n opacity: attrs.opacity\r\n }).append({\r\n element: group\r\n })\r\n } : options.markerTemplate;\r\n var template = that._widget._getTemplate(templateFunction);\r\n var markersGroup = that._markersGroup;\r\n markersGroup.css(patchFontOptions(options.font));\r\n that._deferredItems = [];\r\n that._templatesGroups = [];\r\n that._items = (items || []).map((dataItem, i) => {\r\n var stateOfDataItem = dataItem.states;\r\n var normalState = stateOfDataItem.normal;\r\n var normalStateFill = normalState.fill;\r\n dataItem.size = dataItem.marker.size;\r\n var states = {\r\n normal: extend(normalState, {\r\n fill: normalStateFill || options.markerColor || options.defaultColor,\r\n state: \"normal\"\r\n }),\r\n hover: getState(stateOfDataItem.hover, normalStateFill, \"hovered\"),\r\n selection: getState(stateOfDataItem.selection, normalStateFill, \"selected\")\r\n };\r\n dataItem.states = states;\r\n var itemGroup = renderer.g().append(markersGroup);\r\n var markerGroup = renderer.g().attr({\r\n class: \"dxl-marker\"\r\n }).append(itemGroup);\r\n that._deferredItems[i] = new Deferred;\r\n that._templatesGroups.push(markerGroup);\r\n var item = {\r\n label: that._createLabel(dataItem, itemGroup),\r\n marker: markerGroup,\r\n renderer: renderer,\r\n group: itemGroup,\r\n tracker: {\r\n id: dataItem.id,\r\n argument: dataItem.argument,\r\n argumentIndex: dataItem.argumentIndex\r\n },\r\n states: states,\r\n itemTextPosition: options.itemTextPosition,\r\n markerOffset: 0,\r\n bBoxes: [],\r\n renderMarker(state) {\r\n dataItem.marker = getAttributes(item, state, dataItem.size);\r\n markerGroup.clear();\r\n template.render({\r\n model: dataItem,\r\n container: markerGroup.element,\r\n onRendered: that._deferredItems[i].resolve\r\n })\r\n }\r\n };\r\n item.renderMarker(states.normal);\r\n that._createHint(dataItem, itemGroup);\r\n if (void 0 !== dataItem.id) {\r\n that._markersId[dataItem.id] = i\r\n }\r\n return item\r\n })\r\n },\r\n getTemplatesGroups: function() {\r\n return this._templatesGroups || []\r\n },\r\n getTemplatesDef: function() {\r\n return this._deferredItems || []\r\n },\r\n _getItemData: function() {\r\n var items = this._data || [];\r\n var options = this._options || {};\r\n if (options.inverted) {\r\n items = items.slice().reverse()\r\n }\r\n return items.filter(i => i.visible)\r\n },\r\n _finalUpdate: function(options) {\r\n this._adjustBackgroundSettings(options);\r\n this._setBoundingRect(options.margin)\r\n },\r\n erase: function() {\r\n var insideLegendGroup = this._insideLegendGroup;\r\n insideLegendGroup && insideLegendGroup.dispose();\r\n this._insideLegendGroup = this._markersGroup = this._x1 = this._x2 = this._y2 = this._y2 = null;\r\n return this\r\n },\r\n _locateElements: function(locationOptions) {\r\n this._moveInInitialValues();\r\n this._locateRowsColumns(locationOptions)\r\n },\r\n _moveInInitialValues: function() {\r\n this._title.hasText() && this._title.move([0, 0]);\r\n this._legendGroup && this._legendGroup.move(0, 0);\r\n this._background && this._background.attr({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n })\r\n },\r\n applySelected: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"selection\");\r\n return this\r\n },\r\n applyHover: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"hover\");\r\n return this\r\n },\r\n resetItem: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"normal\");\r\n return this\r\n },\r\n _createLabel: function(data, group) {\r\n var labelFormatObject = this._getCustomizeObject(data);\r\n var options = this._options;\r\n var align = getAlign(options.itemTextPosition);\r\n var text = options.customizeText.call(labelFormatObject, labelFormatObject);\r\n var fontStyle = _isDefined(data.textOpacity) ? {\r\n color: options.font.color,\r\n opacity: data.textOpacity\r\n } : {};\r\n return this._renderer.text(text, 0, 0).css(patchFontOptions(fontStyle)).attr({\r\n align: align,\r\n class: options.cssClass\r\n }).append(group)\r\n },\r\n _createHint: function(data, group) {\r\n var labelFormatObject = this._getCustomizeObject(data);\r\n var text = this._options.customizeHint.call(labelFormatObject, labelFormatObject);\r\n if (_isDefined(text) && \"\" !== text) {\r\n group.setTitle(text)\r\n }\r\n },\r\n _createBackground: function() {\r\n var isInside = this._options.position === INSIDE;\r\n var color = this._options.backgroundColor;\r\n var fill = color || (isInside ? this._options.containerBackgroundColor : NONE);\r\n if (this._options.border.visible || (isInside || color) && color !== NONE) {\r\n this._background = this._renderer.rect(0, 0, 0, 0).attr({\r\n fill: fill,\r\n class: this._backgroundClass\r\n }).append(this._insideLegendGroup)\r\n }\r\n },\r\n _locateRowsColumns: function(options) {\r\n var iteration = 0;\r\n var layoutOptions = this._getItemsLayoutOptions();\r\n var countItems = this._items.length;\r\n var lines;\r\n do {\r\n lines = [];\r\n this._createLines(lines, layoutOptions);\r\n this._alignLines(lines, layoutOptions);\r\n iteration++\r\n } while (checkLinesSize(lines, layoutOptions, countItems, options.margin) && iteration < countItems);\r\n this._applyItemPosition(lines, layoutOptions)\r\n },\r\n _createLines: function(lines, layoutOptions) {\r\n this._items.forEach((item, i) => {\r\n var tableLine = getLines(lines, layoutOptions, i);\r\n var labelBox = {\r\n width: item.labelBBox.width,\r\n height: item.labelBBox.height,\r\n element: item.label,\r\n bBox: item.labelBBox,\r\n pos: getPos(layoutOptions),\r\n itemIndex: i\r\n };\r\n var markerBox = {\r\n width: item.markerBBox.width,\r\n height: item.markerBBox.height,\r\n element: item.marker,\r\n pos: {\r\n horizontal: CENTER,\r\n vertical: CENTER\r\n },\r\n bBox: {\r\n width: item.markerBBox.width,\r\n height: item.markerBBox.height,\r\n x: item.markerBBox.x,\r\n y: item.markerBBox.y\r\n },\r\n itemIndex: i\r\n };\r\n var firstItem;\r\n var secondItem;\r\n var offsetDirection = layoutOptions.markerOffset ? \"altOffset\" : \"offset\";\r\n if (layoutOptions.inverseLabelPosition) {\r\n firstItem = labelBox;\r\n secondItem = markerBox\r\n } else {\r\n firstItem = markerBox;\r\n secondItem = labelBox\r\n }\r\n firstItem[offsetDirection] = layoutOptions.labelOffset;\r\n tableLine.secondLine.push(firstItem);\r\n tableLine.firstLine.push(secondItem)\r\n })\r\n },\r\n _alignLines: function(lines, layoutOptions) {\r\n var i;\r\n var measure = layoutOptions.altMeasure;\r\n lines.forEach(line => setMaxInLine(line, measure));\r\n measure = layoutOptions.measure;\r\n if (layoutOptions.itemsAlignment) {\r\n if (layoutOptions.markerOffset) {\r\n for (i = 0; i < lines.length;) {\r\n transpose([lines[i++], lines[i++]]).forEach(processLine)\r\n }\r\n }\r\n } else {\r\n transpose(lines).forEach(processLine)\r\n }\r\n\r\n function processLine(line) {\r\n setMaxInLine(line, measure)\r\n }\r\n },\r\n _applyItemPosition: function(lines, layoutOptions) {\r\n var that = this;\r\n var position = {\r\n x: 0,\r\n y: 0\r\n };\r\n var maxLineLength = getMaxLineLength(lines, layoutOptions);\r\n lines.forEach(line => {\r\n var firstItem = line[0];\r\n var altOffset = firstItem.altOffset || layoutOptions.altSpacing;\r\n position[layoutOptions.direction] = getInitPositionForDirection(line, layoutOptions, maxLineLength);\r\n line.forEach(item => {\r\n var offset = item.offset || layoutOptions.spacing;\r\n var wrap = new WrapperLayoutElement(item.element, item.bBox);\r\n var itemBBoxOptions = {\r\n x: position.x,\r\n y: position.y,\r\n width: item.width,\r\n height: item.height\r\n };\r\n var itemBBox = new WrapperLayoutElement(null, itemBBoxOptions);\r\n var itemLegend = that._items[item.itemIndex];\r\n wrap.position({\r\n of: itemBBox,\r\n my: item.pos,\r\n at: item.pos\r\n });\r\n itemLegend.bBoxes.push(itemBBox);\r\n position[layoutOptions.direction] += item[layoutOptions.measure] + offset\r\n });\r\n position[layoutOptions.altDirection] += firstItem[layoutOptions.altMeasure] + altOffset\r\n });\r\n this._items.forEach(item => {\r\n var itemBBox = calculateBBoxLabelAndMarker(item.bBoxes[0].getLayoutOptions(), item.bBoxes[1].getLayoutOptions());\r\n var horizontal = that._options.columnItemSpacing / 2;\r\n var vertical = that._options.rowItemSpacing / 2;\r\n item.tracker.left = itemBBox.left - horizontal;\r\n item.tracker.right = itemBBox.right + horizontal;\r\n item.tracker.top = itemBBox.top - vertical;\r\n item.tracker.bottom = itemBBox.bottom + vertical\r\n })\r\n },\r\n _getItemsLayoutOptions: function() {\r\n var options = this._options;\r\n var orientation = options.orientation;\r\n var layoutOptions = {\r\n itemsAlignment: options.itemsAlignment,\r\n orientation: options.orientation\r\n };\r\n var width = this._size.width - (this._background ? 2 * options.paddingLeftRight : 0);\r\n var height = this._size.height - (this._background ? 2 * options.paddingTopBottom : 0);\r\n if (orientation === HORIZONTAL) {\r\n layoutOptions.length = width;\r\n layoutOptions.spacing = options.columnItemSpacing;\r\n layoutOptions.direction = \"x\";\r\n layoutOptions.measure = WIDTH;\r\n layoutOptions.altMeasure = HEIGHT;\r\n layoutOptions.altDirection = \"y\";\r\n layoutOptions.altSpacing = options.rowItemSpacing;\r\n layoutOptions.countItem = options.columnCount;\r\n layoutOptions.altCountItem = options.rowCount;\r\n layoutOptions.marginTextLabel = 4;\r\n layoutOptions.labelOffset = 7;\r\n if (options.itemTextPosition === BOTTOM || options.itemTextPosition === TOP) {\r\n layoutOptions.labelOffset = 4;\r\n layoutOptions.markerOffset = true\r\n }\r\n } else {\r\n layoutOptions.length = height;\r\n layoutOptions.spacing = options.rowItemSpacing;\r\n layoutOptions.direction = \"y\";\r\n layoutOptions.measure = HEIGHT;\r\n layoutOptions.altMeasure = WIDTH;\r\n layoutOptions.altDirection = \"x\";\r\n layoutOptions.altSpacing = options.columnItemSpacing;\r\n layoutOptions.countItem = options.rowCount;\r\n layoutOptions.altCountItem = options.columnCount;\r\n layoutOptions.marginTextLabel = 7;\r\n layoutOptions.labelOffset = 4;\r\n if (options.itemTextPosition === RIGHT || options.itemTextPosition === LEFT) {\r\n layoutOptions.labelOffset = 7;\r\n layoutOptions.markerOffset = true\r\n }\r\n }\r\n if (!layoutOptions.countItem) {\r\n if (layoutOptions.altCountItem) {\r\n layoutOptions.countItem = _ceil(this._items.length / layoutOptions.altCountItem)\r\n } else {\r\n layoutOptions.countItem = this._items.length\r\n }\r\n }\r\n if (options.itemTextPosition === TOP || options.itemTextPosition === LEFT) {\r\n layoutOptions.inverseLabelPosition = true\r\n }\r\n layoutOptions.itemTextPosition = options.itemTextPosition;\r\n layoutOptions.altCountItem = layoutOptions.altCountItem || _ceil(this._items.length / layoutOptions.countItem);\r\n return layoutOptions\r\n },\r\n _adjustBackgroundSettings: function(locationOptions) {\r\n if (!this._background) {\r\n return\r\n }\r\n var border = locationOptions.border;\r\n var legendBox = this._calculateTotalBox();\r\n var backgroundSettings = {\r\n x: _round(legendBox.x - locationOptions.paddingLeftRight),\r\n y: _round(legendBox.y - locationOptions.paddingTopBottom),\r\n width: _round(legendBox.width) + 2 * locationOptions.paddingLeftRight,\r\n height: _round(legendBox.height),\r\n opacity: locationOptions.backgroundOpacity\r\n };\r\n if (border.visible && border.width && border.color && border.color !== NONE) {\r\n backgroundSettings[\"stroke-width\"] = border.width;\r\n backgroundSettings.stroke = border.color;\r\n backgroundSettings[\"stroke-opacity\"] = border.opacity;\r\n backgroundSettings.dashStyle = border.dashStyle;\r\n backgroundSettings.rx = border.cornerRadius || 0;\r\n backgroundSettings.ry = border.cornerRadius || 0\r\n }\r\n this._background.attr(backgroundSettings)\r\n },\r\n _setBoundingRect: function(margin) {\r\n if (!this._insideLegendGroup) {\r\n return\r\n }\r\n var box = this._calculateTotalBox();\r\n box.height += margin.top + margin.bottom;\r\n box.widthWithoutMargins = box.width;\r\n box.width += margin.left + margin.right;\r\n box.x -= margin.left;\r\n box.y -= margin.top;\r\n this._boundingRect = box\r\n },\r\n _calculateTotalBox: function() {\r\n var markerBox = this._markersGroup.getBBox();\r\n var titleBox = this._title.getCorrectedLayoutOptions();\r\n var box = this._insideLegendGroup.getBBox();\r\n var verticalPadding = this._background ? 2 * this._options.paddingTopBottom : 0;\r\n box.height = markerBox.height + titleBox.height + verticalPadding;\r\n titleBox.width > box.width && (box.width = titleBox.width);\r\n return box\r\n },\r\n getActionCallback: function(point) {\r\n var that = this;\r\n if (that._options.visible) {\r\n return function(act) {\r\n that[act](point.index)\r\n }\r\n } else {\r\n return noop\r\n }\r\n },\r\n getLayoutOptions: function() {\r\n var options = this._options;\r\n var boundingRect = this._insideLegendGroup ? this._boundingRect : {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n if (options) {\r\n boundingRect.verticalAlignment = options.verticalAlignment;\r\n boundingRect.horizontalAlignment = options.horizontalAlignment;\r\n if (options.orientation === HORIZONTAL) {\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\"\r\n } else if (options.horizontalAlignment === CENTER) {\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\"\r\n } else {\r\n boundingRect.cutLayoutSide = options.horizontalAlignment;\r\n boundingRect.cutSide = \"horizontal\"\r\n }\r\n boundingRect.position = {\r\n horizontal: options.horizontalAlignment,\r\n vertical: options.verticalAlignment\r\n };\r\n return boundingRect\r\n }\r\n return null\r\n },\r\n shift: function(x, y) {\r\n var box = {};\r\n if (this._insideLegendGroup) {\r\n this._insideLegendGroup.attr({\r\n translateX: x - this._boundingRect.x,\r\n translateY: y - this._boundingRect.y\r\n })\r\n }\r\n this._title && this._shiftTitle(this._boundingRect.widthWithoutMargins);\r\n this._markersGroup && this._shiftMarkers();\r\n if (this._insideLegendGroup) {\r\n box = this._legendGroup.getBBox()\r\n }\r\n this._x1 = box.x;\r\n this._y1 = box.y;\r\n this._x2 = box.x + box.width;\r\n this._y2 = box.y + box.height;\r\n return this\r\n },\r\n _shiftTitle: function(boxWidth) {\r\n var title = this._title;\r\n var titleBox = title.getCorrectedLayoutOptions();\r\n if (!titleBox || !title.hasText()) {\r\n return\r\n }\r\n var width = boxWidth - (this._background ? 2 * this._options.paddingLeftRight : 0);\r\n var titleOptions = title.getOptions();\r\n var titleY = titleBox.y + titleOptions.margin.top;\r\n var titleX = 0;\r\n if (titleOptions.verticalAlignment === BOTTOM && this._markersGroup) {\r\n titleY += this._markersGroup.getBBox().height\r\n }\r\n if (titleOptions.horizontalAlignment === RIGHT) {\r\n titleX = width - titleBox.width\r\n } else if (titleOptions.horizontalAlignment === CENTER) {\r\n titleX = (width - titleBox.width) / 2\r\n }\r\n title.shift(titleX, titleY)\r\n },\r\n _shiftMarkers: function() {\r\n var titleBox = this._title.getLayoutOptions();\r\n var markerBox = this._markersGroup.getBBox();\r\n var titleOptions = this._title.getOptions() || {};\r\n var center = 0;\r\n var y = 0;\r\n if (titleBox.width > markerBox.width && this._options.horizontalAlignment === CENTER) {\r\n center = titleBox.width / 2 - markerBox.width / 2\r\n }\r\n if (titleOptions.verticalAlignment === TOP) {\r\n y = titleBox.height\r\n }\r\n if (0 !== center || 0 !== y) {\r\n this._markersGroup.attr({\r\n translateX: center,\r\n translateY: y\r\n });\r\n this._items.forEach(item => {\r\n item.tracker.left += center;\r\n item.tracker.right += center;\r\n item.tracker.top += y;\r\n item.tracker.bottom += y\r\n })\r\n }\r\n },\r\n getPosition: function() {\r\n return this._options.position\r\n },\r\n coordsIn: function(x, y) {\r\n return x >= this._x1 && x <= this._x2 && y >= this._y1 && y <= this._y2\r\n },\r\n getItemByCoord: function(x, y) {\r\n var items = this._items;\r\n var legendGroup = this._insideLegendGroup;\r\n x -= legendGroup.attr(\"translateX\");\r\n y -= legendGroup.attr(\"translateY\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (inRect(items[i].tracker, x, y)) {\r\n return items[i].tracker\r\n }\r\n }\r\n return null\r\n },\r\n dispose: function() {\r\n this._title && this._title.dispose();\r\n this._legendGroup = this._insideLegendGroup = this._title = this._renderer = this._options = this._data = this._items = null;\r\n return this\r\n },\r\n layoutOptions: function() {\r\n if (!this.isVisible()) {\r\n return null\r\n }\r\n var pos = this.getLayoutOptions();\r\n return {\r\n horizontalAlignment: this._options.horizontalAlignment,\r\n verticalAlignment: this._options.verticalAlignment,\r\n side: pos.cutSide,\r\n priority: 1,\r\n position: this.getPosition()\r\n }\r\n },\r\n measure: function(size) {\r\n if (this._updated || !this._insideLegendGroup) {\r\n this.draw(size[0], size[1]);\r\n this._updated = false\r\n } else {\r\n this._items.forEach(item => {\r\n item.bBoxes = []\r\n });\r\n this._updateElementsPosition(size[0], size[1])\r\n }\r\n var rect = this.getLayoutOptions();\r\n return [rect.width, rect.height]\r\n },\r\n move: function(rect) {\r\n this.shift(rect[0], rect[1])\r\n },\r\n freeSpace: function() {\r\n this._options._incidentOccurred(\"W2104\");\r\n this.erase()\r\n }\r\n});\r\nexport var plugin = {\r\n name: \"legend\",\r\n init: function() {\r\n var group = this._renderer.g().attr({\r\n class: this._rootClassPrefix + \"-legend\"\r\n }).enableLinks().append(this._renderer.root);\r\n this._legend = new Legend({\r\n renderer: this._renderer,\r\n group: group,\r\n widget: this,\r\n itemGroupClass: this._rootClassPrefix + \"-item\",\r\n titleGroupClass: this._rootClassPrefix + \"-title\",\r\n textField: \"text\",\r\n getFormatObject: function(data) {\r\n return {\r\n item: data.item,\r\n text: data.text\r\n }\r\n }\r\n });\r\n this._layout.add(this._legend)\r\n },\r\n extenders: {\r\n _applyTilesAppearance: function() {\r\n var that = this;\r\n this._items.forEach((function(item) {\r\n that._applyLegendItemStyle(item.id, item.getState())\r\n }))\r\n },\r\n _buildNodes: function() {\r\n this._createLegendItems()\r\n }\r\n },\r\n members: {\r\n _applyLegendItemStyle: function(id, state) {\r\n var legend = this._legend;\r\n switch (state) {\r\n case \"hover\":\r\n legend.applyHover(id);\r\n break;\r\n case \"selection\":\r\n legend.applySelected(id);\r\n break;\r\n default:\r\n legend.resetItem(id)\r\n }\r\n },\r\n _createLegendItems: function() {\r\n if (this._legend.update(this._getLegendData(), this._getOption(\"legend\"), this._themeManager.theme(\"legend\").title)) {\r\n this._requestChange([\"LAYOUT\"])\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._legend.dispose()\r\n },\r\n customize: function(constructor) {\r\n constructor.prototype._proxyData.push((function(x, y) {\r\n if (this._legend.coordsIn(x, y)) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n if (item) {\r\n return {\r\n id: item.id,\r\n type: \"legend\"\r\n }\r\n }\r\n }\r\n }));\r\n constructor.addChange({\r\n code: \"LEGEND\",\r\n handler: function() {\r\n this._createLegendItems()\r\n },\r\n isThemeDependent: true,\r\n option: \"legend\",\r\n isOptionChange: true\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/event_nodes_disposing.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement,\r\n contains,\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n eventDelta,\r\n eventData\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../core/utils/version\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar TOUCH_BOUNDARY = 10;\r\nvar abs = Math.abs;\r\nvar isInput = function(element) {\r\n return $(element).is(\"input, textarea, select, button ,:focus, :focus *\")\r\n};\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this._makeElementClickable($(element))\r\n },\r\n _makeElementClickable: function($element) {\r\n if (!$element.attr(\"onclick\")) {\r\n $element.attr(\"onclick\", \"void(0)\")\r\n }\r\n },\r\n start: function(e) {\r\n this._blurPrevented = e.isDefaultPrevented();\r\n this._startTarget = e.target;\r\n this._startEventData = eventData(e)\r\n },\r\n end: function(e) {\r\n if (this._eventOutOfElement(e, this.getElement().get(0)) || e.type === pointerEvents.cancel) {\r\n this._cancel(e);\r\n return\r\n }\r\n if (!isInput(e.target) && !this._blurPrevented) {\r\n resetActiveElement()\r\n }\r\n this._accept(e);\r\n this._clickAnimationFrame = misc.requestAnimationFrame(function() {\r\n this._fireClickEvent(e)\r\n }.bind(this))\r\n },\r\n _eventOutOfElement: function(e, element) {\r\n var target = e.target;\r\n var targetChanged = !contains(element, target) && element !== target;\r\n var gestureDelta = eventDelta(eventData(e), this._startEventData);\r\n var boundsExceeded = abs(gestureDelta.x) > TOUCH_BOUNDARY || abs(gestureDelta.y) > TOUCH_BOUNDARY;\r\n return targetChanged || boundsExceeded\r\n },\r\n _fireClickEvent: function(e) {\r\n this._fireEvent(CLICK_EVENT_NAME, e, {\r\n target: closestCommonParent(this._startTarget, e.target)\r\n })\r\n },\r\n dispose: function() {\r\n misc.cancelAnimationFrame(this._clickAnimationFrame)\r\n }\r\n});\r\nvar realDevice = devices.real();\r\nvar useNativeClick = realDevice.generic || realDevice.ios && compareVersions(realDevice.version, [9, 3]) >= 0 || realDevice.android && compareVersions(realDevice.version, [5]) >= 0;\r\n! function() {\r\n var isNativeClickEvent = function(target) {\r\n return useNativeClick || $(target).closest(\".dx-native-click\").length\r\n };\r\n var prevented = null;\r\n var lastFiredEvent = null;\r\n\r\n function onNodeRemove() {\r\n lastFiredEvent = null\r\n }\r\n var clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && isNativeClickEvent(e.target) && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n };\r\n ClickEmitter = ClickEmitter.inherit({\r\n _makeElementClickable: function($element) {\r\n if (!isNativeClickEvent($element)) {\r\n this.callBase($element)\r\n }\r\n eventsEngine.on($element, \"click\", clickHandler)\r\n },\r\n configure: function(data) {\r\n this.callBase(data);\r\n if (data.useNative) {\r\n this.getElement().addClass(\"dx-native-click\")\r\n }\r\n },\r\n start: function(e) {\r\n prevented = null;\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n end: function(e) {\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n })\r\n}();\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = $(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && isInput($target)) {\r\n resetActiveElement()\r\n }\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/tracker.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport consts from \"../components/consts\";\r\nimport {\r\n getDistance,\r\n pointInCanvas as inCanvas,\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar _floor = Math.floor;\r\nvar eventsConsts = consts.events;\r\nvar statesConsts = consts.states;\r\nvar HOVER_STATE = statesConsts.hoverMark;\r\nvar NORMAL_STATE = statesConsts.normalMark;\r\nvar EVENT_NS = \"dxChartTracker\";\r\nvar DOT_EVENT_NS = \".\" + EVENT_NS;\r\nvar POINTER_ACTION = addNamespace([pointerEvents.down, pointerEvents.move], EVENT_NS);\r\nvar LEGEND_CLICK = \"legendClick\";\r\nvar SERIES_CLICK = \"seriesClick\";\r\nvar POINT_CLICK = \"pointClick\";\r\nvar POINT_DATA = \"chart-data-point\";\r\nvar SERIES_DATA = \"chart-data-series\";\r\nvar ARG_DATA = \"chart-data-argument\";\r\nvar DELAY = 100;\r\nvar HOLD_TIMEOUT = 300;\r\nvar NONE_MODE = \"none\";\r\nvar ALL_ARGUMENT_POINTS_MODE = \"allargumentpoints\";\r\nvar INCLUDE_POINTS_MODE = \"includepoints\";\r\nvar EXLUDE_POINTS_MODE = \"excludepoints\";\r\nvar LEGEND_HOVER_MODES = [INCLUDE_POINTS_MODE, EXLUDE_POINTS_MODE, NONE_MODE];\r\n\r\nfunction getData(event, dataKey, tryCheckParent) {\r\n var target = event.target;\r\n if (\"tspan\" === target.tagName) {\r\n return target.parentNode[dataKey]\r\n }\r\n var data = target[dataKey];\r\n if (tryCheckParent && !isDefined(data)) {\r\n return function getParentData(node) {\r\n if (node.parentNode) {\r\n if (isDefined(node.parentNode[dataKey])) {\r\n return node.parentNode[dataKey]\r\n } else {\r\n return getParentData(node.parentNode)\r\n }\r\n }\r\n return\r\n }(target)\r\n }\r\n return data\r\n}\r\n\r\nfunction eventCanceled(event, target) {\r\n return event.cancel || !target.getOptions()\r\n}\r\n\r\nfunction correctLegendHoverMode(mode) {\r\n if (LEGEND_HOVER_MODES.indexOf(mode) > -1) {\r\n return mode\r\n } else {\r\n return INCLUDE_POINTS_MODE\r\n }\r\n}\r\n\r\nfunction correctHoverMode(target) {\r\n var mode = target.getOptions().hoverMode;\r\n return mode === NONE_MODE ? mode : ALL_ARGUMENT_POINTS_MODE\r\n}\r\nvar baseTrackerPrototype = {\r\n ctor: function(options) {\r\n var that = this;\r\n var data = {\r\n tracker: that\r\n };\r\n that._renderer = options.renderer;\r\n that._legend = options.legend;\r\n that._tooltip = options.tooltip;\r\n that._eventTrigger = options.eventTrigger;\r\n that._seriesGroup = options.seriesGroup;\r\n options.seriesGroup.off(DOT_EVENT_NS).on(addNamespace(eventsConsts.showPointTooltip, EVENT_NS), data, that._showPointTooltip).on(addNamespace(eventsConsts.hidePointTooltip, EVENT_NS), data, that._hidePointTooltip);\r\n that._renderer.root.off(DOT_EVENT_NS).on(POINTER_ACTION, data, that._pointerHandler).on(addNamespace(pointerEvents.up, EVENT_NS), () => clearTimeout(that._holdTimer)).on(addNamespace(clickEventName, EVENT_NS), data, that._clickHandler)\r\n },\r\n update: function(options) {\r\n this._chart = options.chart\r\n },\r\n updateSeries(series, resetDecorations) {\r\n var that = this;\r\n var noHoveredSeries = !(null !== series && void 0 !== series && series.some(s => s === that.hoveredSeries) || that._hoveredPoint && that._hoveredPoint.series);\r\n if (that._storedSeries !== series) {\r\n that._storedSeries = series || []\r\n }\r\n if (noHoveredSeries) {\r\n that._clean();\r\n that._renderer.initHatching()\r\n }\r\n if (resetDecorations) {\r\n that.clearSelection();\r\n if (!noHoveredSeries) {\r\n that._hideTooltip(that.pointAtShownTooltip);\r\n that.clearHover()\r\n }\r\n }\r\n },\r\n setCanvases: function(mainCanvas, paneCanvases) {\r\n this._mainCanvas = mainCanvas;\r\n this._canvases = paneCanvases\r\n },\r\n repairTooltip: function() {\r\n var point = this.pointAtShownTooltip;\r\n if (!point || !point.series || !point.isVisible()) {\r\n this._hideTooltip(point, true)\r\n } else {\r\n this._showTooltip(point)\r\n }\r\n },\r\n _setHoveredPoint: function(point) {\r\n if (point === this._hoveredPoint) {\r\n return\r\n }\r\n this._releaseHoveredPoint();\r\n point.hover();\r\n this._hoveredPoint = point\r\n },\r\n _releaseHoveredPoint: function(isPointerOut) {\r\n if (this._hoveredPoint && this._hoveredPoint.getOptions()) {\r\n this._hoveredPoint.clearHover();\r\n this._hoveredPoint = null;\r\n if (this._tooltip.isEnabled()) {\r\n this._hideTooltip(this._hoveredPoint, false, isPointerOut)\r\n }\r\n }\r\n },\r\n _setHoveredSeries: function(series, mode) {\r\n this._releaseHoveredSeries();\r\n this._releaseHoveredPoint();\r\n series.hover(mode);\r\n this.hoveredSeries = series\r\n },\r\n _releaseHoveredSeries() {\r\n if (this.hoveredSeries) {\r\n this.hoveredSeries.clearHover();\r\n this.hoveredSeries = null\r\n }\r\n },\r\n clearSelection() {\r\n this._storedSeries.forEach(series => {\r\n if (series) {\r\n series.clearSelection();\r\n series.getPoints().forEach(point => point.clearSelection())\r\n }\r\n })\r\n },\r\n _clean: function() {\r\n this.hoveredPoint = this.hoveredSeries = this._hoveredArgumentPoints = null;\r\n this._hideTooltip(this.pointAtShownTooltip)\r\n },\r\n clearHover: function(isPointerOut) {\r\n this._resetHoveredArgument();\r\n this._releaseHoveredSeries();\r\n this._releaseHoveredPoint(isPointerOut)\r\n },\r\n _hideTooltip: function(point, silent, isPointerOut) {\r\n if (!this._tooltip || point && this.pointAtShownTooltip !== point) {\r\n return\r\n }\r\n if (!silent && this.pointAtShownTooltip) {\r\n this.pointAtShownTooltip = null\r\n }\r\n this._tooltip.hide(!!isPointerOut)\r\n },\r\n _showTooltip: function(point) {\r\n var that = this;\r\n var tooltipFormatObject;\r\n var eventData = {\r\n target: point\r\n };\r\n if (null !== point && void 0 !== point && point.getOptions()) {\r\n tooltipFormatObject = point.getTooltipFormatObject(that._tooltip, that._tooltip.isShared() && that._chart.getStackedPoints(point));\r\n if (!isDefined(tooltipFormatObject.valueText) && !tooltipFormatObject.points || !point.isVisible()) {\r\n return\r\n }\r\n var coords = point.getTooltipParams(that._tooltip.getLocation());\r\n var rootOffset = that._renderer.getRootOffset();\r\n coords.x += rootOffset.left;\r\n coords.y += rootOffset.top;\r\n var callback = result => {\r\n result && (that.pointAtShownTooltip = point)\r\n };\r\n callback(that._tooltip.show(tooltipFormatObject, coords, eventData, void 0, callback))\r\n }\r\n },\r\n _showPointTooltip: function(event, point) {\r\n var that = event.data.tracker;\r\n var pointWithTooltip = that.pointAtShownTooltip;\r\n if (pointWithTooltip && pointWithTooltip !== point) {\r\n that._hideTooltip(pointWithTooltip)\r\n }\r\n that._showTooltip(point)\r\n },\r\n _hidePointTooltip: function(event, point) {\r\n event.data.tracker._hideTooltip(point, false, true)\r\n },\r\n _enableOutHandler: function() {\r\n if (this._outHandler) {\r\n return\r\n }\r\n var that = this;\r\n var handler = function(e) {\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = _floor(e.pageX - rootOffset.left);\r\n var y = _floor(e.pageY - rootOffset.top);\r\n if (!inCanvas(that._mainCanvas, x, y) && !that._isCursorOnTooltip(e)) {\r\n that._pointerOut();\r\n that._disableOutHandler()\r\n }\r\n };\r\n eventsEngine.on(domAdapter.getDocument(), POINTER_ACTION, handler);\r\n this._outHandler = handler\r\n },\r\n _isCursorOnTooltip: function(e) {\r\n return this._tooltip.isEnabled() && this._tooltip.isCursorOnTooltip(e.pageX, e.pageY)\r\n },\r\n _disableOutHandler: function() {\r\n this._outHandler && eventsEngine.off(domAdapter.getDocument(), POINTER_ACTION, this._outHandler);\r\n this._outHandler = null\r\n },\r\n stopCurrentHandling: function() {\r\n this._pointerOut(true)\r\n },\r\n _pointerOut: function(force) {\r\n this.clearHover(true);\r\n (force || this._tooltip.isEnabled()) && this._hideTooltip(this.pointAtShownTooltip, false, true)\r\n },\r\n _triggerLegendClick: function(eventArgs, elementClick) {\r\n var eventTrigger = this._eventTrigger;\r\n eventTrigger(LEGEND_CLICK, eventArgs, (function() {\r\n !eventCanceled(eventArgs.event, eventArgs.target) && eventTrigger(elementClick, eventArgs)\r\n }))\r\n },\r\n _hoverLegendItem: function(x, y) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n var series;\r\n var legendHoverMode = correctLegendHoverMode(this._legend.getOptions().hoverMode);\r\n if (item) {\r\n series = this._storedSeries[item.id];\r\n if (!series.isHovered() || series.lastHoverMode !== legendHoverMode) {\r\n this._setHoveredSeries(series, legendHoverMode)\r\n }\r\n this._tooltip.isEnabled() && this._hideTooltip(this.pointAtShownTooltip)\r\n } else {\r\n this.clearHover()\r\n }\r\n },\r\n _hoverArgument: function(argument, argumentIndex) {\r\n var hoverMode = this._getArgumentHoverMode();\r\n if (isDefined(argument)) {\r\n this._releaseHoveredPoint();\r\n this._hoveredArgument = argument;\r\n this._argumentIndex = argumentIndex;\r\n this._notifySeries({\r\n action: \"pointHover\",\r\n notifyLegend: this._notifyLegendOnHoverArgument,\r\n target: {\r\n argument: argument,\r\n fullState: HOVER_STATE,\r\n argumentIndex: argumentIndex,\r\n getOptions: function() {\r\n return {\r\n hoverMode: hoverMode\r\n }\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _resetHoveredArgument: function() {\r\n var hoverMode;\r\n if (isDefined(this._hoveredArgument)) {\r\n hoverMode = this._getArgumentHoverMode();\r\n this._notifySeries({\r\n action: \"clearPointHover\",\r\n notifyLegend: this._notifyLegendOnHoverArgument,\r\n target: {\r\n fullState: NORMAL_STATE,\r\n argumentIndex: this._argumentIndex,\r\n argument: this._hoveredArgument,\r\n getOptions: function() {\r\n return {\r\n hoverMode: hoverMode\r\n }\r\n }\r\n }\r\n });\r\n this._hoveredArgument = null\r\n }\r\n },\r\n _notifySeries: function(data) {\r\n this._storedSeries.forEach((function(series) {\r\n series.notify(data)\r\n }))\r\n },\r\n _pointerHandler: function(e) {\r\n var _series;\r\n var that = e.data.tracker;\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = _floor(e.pageX - rootOffset.left);\r\n var y = _floor(e.pageY - rootOffset.top);\r\n var canvas = that._getCanvas(x, y);\r\n var series = getData(e, SERIES_DATA);\r\n var point = getData(e, POINT_DATA) || (null === (_series = series) || void 0 === _series ? void 0 : _series.getPointByCoord(x, y));\r\n that._isHolding = false;\r\n clearTimeout(that._holdTimer);\r\n if (e.type === pointerEvents.down) {\r\n that._holdTimer = setTimeout(() => that._isHolding = true, HOLD_TIMEOUT)\r\n }\r\n if (point && !point.getMarkerVisibility()) {\r\n point = void 0\r\n }\r\n that._enableOutHandler();\r\n if (that._legend.coordsIn(x, y)) {\r\n that._hoverLegendItem(x, y);\r\n return\r\n }\r\n if (that.hoveredSeries && that.hoveredSeries !== that._stuckSeries) {\r\n that._releaseHoveredSeries()\r\n }\r\n if (that._hoverArgumentAxis(x, y, e)) {\r\n return\r\n }\r\n if (that._isPointerOut(canvas, point)) {\r\n that._pointerOut()\r\n }\r\n if (!canvas && !point) {\r\n return\r\n }\r\n if (series && !point) {\r\n point = series.getNeighborPoint(x, y);\r\n if (!that._stickyHovering && point && !point.coordsIn(x, y)) {\r\n point = null\r\n }\r\n if (series !== that.hoveredSeries) {\r\n that._setTimeout((function() {\r\n that._setHoveredSeries(series);\r\n that._setStuckSeries(e, series, x, y);\r\n that._pointerComplete(point, x, y)\r\n }), series);\r\n return\r\n }\r\n } else if (point) {\r\n if (e.type !== pointerEvents.move && \"touch\" !== e.pointerType) {\r\n return\r\n }\r\n if (that.hoveredSeries) {\r\n that._setTimeout(() => that._pointerOnPoint(point, x, y, e), point)\r\n } else {\r\n that._pointerOnPoint(point, x, y, e)\r\n }\r\n return\r\n } else if (that._setStuckSeries(e, void 0, x, y) && that._stickyHovering) {\r\n var _point;\r\n series = that._stuckSeries;\r\n point = series.getNeighborPoint(x, y);\r\n that._releaseHoveredSeries();\r\n (null === (_point = point) || void 0 === _point ? void 0 : _point.getMarkerVisibility()) && that._setHoveredPoint(point)\r\n } else if (!that._stickyHovering) {\r\n that._pointerOut()\r\n }\r\n that._pointerComplete(point, x, y)\r\n },\r\n _pointerOnPoint: function(point, x, y) {\r\n this._resetHoveredArgument();\r\n this._setHoveredPoint(point);\r\n this._pointerComplete(point, x, y)\r\n },\r\n _pointerComplete: function(point) {\r\n this.pointAtShownTooltip !== point && this._tooltip.isEnabled() && this._showTooltip(point)\r\n },\r\n _clickHandler: function(e) {\r\n var _point2;\r\n var that = e.data.tracker;\r\n if (that._isHolding) {\r\n return\r\n }\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = _floor(e.pageX - rootOffset.left);\r\n var y = _floor(e.pageY - rootOffset.top);\r\n var point = getData(e, POINT_DATA);\r\n var series = that._stuckSeries || getData(e, SERIES_DATA) || (null === (_point2 = point) || void 0 === _point2 ? void 0 : _point2.series);\r\n var axis = that._argumentAxis;\r\n if (that._legend.coordsIn(x, y)) {\r\n var item = that._legend.getItemByCoord(x, y);\r\n if (item) {\r\n that._legendClick(item, e)\r\n }\r\n } else if (null !== axis && void 0 !== axis && axis.coordsIn(x, y)) {\r\n var argument = getData(e, ARG_DATA, true);\r\n if (isDefined(argument)) {\r\n that._eventTrigger(\"argumentAxisClick\", {\r\n argument: argument,\r\n event: e\r\n })\r\n }\r\n } else if (series) {\r\n var _point3;\r\n point = point || series.getPointByCoord(x, y);\r\n if (null !== (_point3 = point) && void 0 !== _point3 && _point3.getMarkerVisibility()) {\r\n that._pointClick(point, e)\r\n } else {\r\n getData(e, SERIES_DATA) && that._eventTrigger(SERIES_CLICK, {\r\n target: series,\r\n event: e\r\n })\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._disableOutHandler();\r\n this._renderer.root.off(DOT_EVENT_NS);\r\n this._seriesGroup.off(DOT_EVENT_NS)\r\n }\r\n};\r\nexport var ChartTracker = function(options) {\r\n this.ctor(options)\r\n};\r\nextend(ChartTracker.prototype, baseTrackerPrototype, {\r\n _pointClick: function(point, event) {\r\n var eventTrigger = this._eventTrigger;\r\n var series = point.series;\r\n eventTrigger(POINT_CLICK, {\r\n target: point,\r\n event: event\r\n }, (function() {\r\n !eventCanceled(event, series) && eventTrigger(SERIES_CLICK, {\r\n target: series,\r\n event: event\r\n })\r\n }))\r\n },\r\n update: function(options) {\r\n baseTrackerPrototype.update.call(this, options);\r\n this._argumentAxis = options.argumentAxis || {};\r\n this._axisHoverEnabled = this._argumentAxis && _normalizeEnum(this._argumentAxis.getOptions().hoverMode) === ALL_ARGUMENT_POINTS_MODE;\r\n this._rotated = options.rotated;\r\n this._crosshair = options.crosshair;\r\n this._stickyHovering = options.stickyHovering\r\n },\r\n _getCanvas: function(x, y) {\r\n var canvases = this._canvases || [];\r\n for (var i = 0; i < canvases.length; i++) {\r\n var c = canvases[i];\r\n if (inCanvas(c, x, y)) {\r\n return c\r\n }\r\n }\r\n return null\r\n },\r\n _isPointerOut: function(canvas) {\r\n return !canvas && this._stuckSeries\r\n },\r\n _hideCrosshair: function() {\r\n var _this$_crosshair;\r\n null === (_this$_crosshair = this._crosshair) || void 0 === _this$_crosshair ? void 0 : _this$_crosshair.hide()\r\n },\r\n _moveCrosshair: function(point, x, y) {\r\n if (this._crosshair && null !== point && void 0 !== point && point.isVisible()) {\r\n this._crosshair.show({\r\n point: point,\r\n x: x,\r\n y: y\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n baseTrackerPrototype._clean.call(this);\r\n this._resetTimer();\r\n this._stuckSeries = null\r\n },\r\n _getSeriesForShared: function(x, y) {\r\n var _point4;\r\n var points = [];\r\n var point = null;\r\n var distance = 1 / 0;\r\n if (this._tooltip.isShared() && !this.hoveredSeries) {\r\n _each(this._storedSeries, (function(_, series) {\r\n var point = series.getNeighborPoint(x, y);\r\n point && points.push(point)\r\n }));\r\n _each(points, (function(_, p) {\r\n var coords = p.getCrosshairData(x, y);\r\n var d = getDistance(x, y, coords.x, coords.y);\r\n if (d < distance) {\r\n point = p;\r\n distance = d\r\n }\r\n }))\r\n }\r\n return null === (_point4 = point) || void 0 === _point4 ? void 0 : _point4.series\r\n },\r\n _setTimeout: function(callback, keeper) {\r\n var that = this;\r\n if (that._timeoutKeeper !== keeper) {\r\n that._resetTimer();\r\n that._hoverTimeout = setTimeout((function() {\r\n callback();\r\n that._timeoutKeeper = null\r\n }), DELAY);\r\n that._timeoutKeeper = keeper\r\n }\r\n },\r\n _resetTimer: function() {\r\n clearTimeout(this._hoverTimeout);\r\n this._timeoutKeeper = this._hoverTimeout = null\r\n },\r\n _stopEvent: function(e) {\r\n if (!isDefined(e.cancelable) || e.cancelable) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n },\r\n _setStuckSeries: function(e, series, x, y) {\r\n if (\"mouse\" !== e.pointerType) {\r\n this._stuckSeries = null\r\n } else {\r\n this._stuckSeries = series || this._stuckSeries || this._getSeriesForShared(x, y)\r\n }\r\n return !!this._stuckSeries\r\n },\r\n _pointerOut: function() {\r\n var that = this;\r\n that._stuckSeries = null;\r\n that._hideCrosshair();\r\n that._resetTimer();\r\n baseTrackerPrototype._pointerOut.apply(that, arguments)\r\n },\r\n _hoverArgumentAxis: function(x, y, e) {\r\n this._resetHoveredArgument();\r\n if (this._axisHoverEnabled && this._argumentAxis.coordsIn(x, y)) {\r\n this._hoverArgument(getData(e, ARG_DATA, true));\r\n return true\r\n }\r\n },\r\n _pointerComplete: function(point, x, y) {\r\n this.hoveredSeries && this.hoveredSeries.updateHover(x, y);\r\n this._resetTimer();\r\n this._moveCrosshair(point, x, y);\r\n baseTrackerPrototype._pointerComplete.call(this, point)\r\n },\r\n _legendClick: function(item, e) {\r\n var series = this._storedSeries[item.id];\r\n this._triggerLegendClick({\r\n target: series,\r\n event: e\r\n }, SERIES_CLICK)\r\n },\r\n _hoverLegendItem: function(x, y) {\r\n this._stuckSeries = null;\r\n this._hideCrosshair();\r\n baseTrackerPrototype._hoverLegendItem.call(this, x, y)\r\n },\r\n _pointerOnPoint: function(point, x, y, e) {\r\n this._setStuckSeries(e, point.series, x, y);\r\n this._releaseHoveredSeries();\r\n baseTrackerPrototype._pointerOnPoint.call(this, point, x, y, e)\r\n },\r\n _notifyLegendOnHoverArgument: false,\r\n _getArgumentHoverMode: function() {\r\n return correctHoverMode(this._argumentAxis)\r\n },\r\n dispose: function() {\r\n this._resetTimer();\r\n baseTrackerPrototype.dispose.call(this)\r\n }\r\n});\r\nexport var PieTracker = function(options) {\r\n this.ctor(options)\r\n};\r\nextend(PieTracker.prototype, baseTrackerPrototype, {\r\n _isPointerOut: function(_, point) {\r\n return !point\r\n },\r\n _legendClick: function(item, e) {\r\n var points = [];\r\n this._storedSeries.forEach(s => points.push.apply(points, s.getPointsByKeys(item.argument, item.argumentIndex)));\r\n this._eventTrigger(LEGEND_CLICK, {\r\n target: item.argument,\r\n points: points,\r\n event: e\r\n })\r\n },\r\n _pointClick: function(point, e) {\r\n this._eventTrigger(POINT_CLICK, {\r\n target: point,\r\n event: e\r\n })\r\n },\r\n _hoverLegendItem: function(x, y) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n if (item && this._hoveredArgument !== item.argument) {\r\n this._resetHoveredArgument();\r\n this._hoverArgument(item.argument, item.argumentIndex)\r\n } else if (!item) {\r\n this.clearHover()\r\n }\r\n },\r\n _getArgumentHoverMode: function() {\r\n return correctHoverMode(this._legend)\r\n },\r\n _hoverArgumentAxis: _noop,\r\n _setStuckSeries: _noop,\r\n _getCanvas: _noop,\r\n _notifyLegendOnHoverArgument: true\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/base_chart.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop,\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined as _isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each as _each,\r\n reverseEach as _reverseEach\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isTouchEvent,\r\n isPointerEvent\r\n} from \"../../events/utils/index\";\r\nimport BaseWidget from \"../core/base_widget\";\r\nimport {\r\n Legend\r\n} from \"../components/legend\";\r\nimport {\r\n validateData\r\n} from \"../components/data_validator\";\r\nimport {\r\n Series\r\n} from \"../series/base_series\";\r\nimport {\r\n ThemeManager\r\n} from \"../components/chart_theme_manager\";\r\nimport {\r\n LayoutManager\r\n} from \"./layout_manager\";\r\nimport * as trackerModule from \"./tracker\";\r\nimport {\r\n map as _map,\r\n setCanvasValues as _setCanvasValues,\r\n processSeriesTemplate\r\n} from \"../core/utils\";\r\nvar _isArray = Array.isArray;\r\nvar REINIT_REFRESH_ACTION = \"_reinit\";\r\nvar REINIT_DATA_SOURCE_REFRESH_ACTION = \"_updateDataSource\";\r\nvar DATA_INIT_REFRESH_ACTION = \"_dataInit\";\r\nvar FORCE_RENDER_REFRESH_ACTION = \"_forceRender\";\r\nvar RESIZE_REFRESH_ACTION = \"_resize\";\r\nvar ACTIONS_BY_PRIORITY = [REINIT_REFRESH_ACTION, REINIT_DATA_SOURCE_REFRESH_ACTION, DATA_INIT_REFRESH_ACTION, FORCE_RENDER_REFRESH_ACTION, RESIZE_REFRESH_ACTION];\r\nvar DEFAULT_OPACITY = .3;\r\nvar REFRESH_SERIES_DATA_INIT_ACTION_OPTIONS = [\"series\", \"commonSeriesSettings\", \"dataPrepareSettings\", \"seriesSelectionMode\", \"pointSelectionMode\", \"synchronizeMultiAxes\", \"resolveLabelsOverlapping\"];\r\nvar REFRESH_SERIES_FAMILIES_ACTION_OPTIONS = [\"minBubbleSize\", \"maxBubbleSize\", \"barGroupPadding\", \"barGroupWidth\", \"negativesAsZeroes\", \"negativesAsZeros\"];\r\nvar FORCE_RENDER_REFRESH_ACTION_OPTIONS = [\"adaptiveLayout\", \"crosshair\", \"resolveLabelOverlapping\", \"adjustOnZoom\", \"stickyHovering\"];\r\nvar FONT = \"font\";\r\n\r\nfunction checkHeightRollingStock(rollingStocks, stubCanvas) {\r\n var canvasSize = stubCanvas.end - stubCanvas.start;\r\n var size = 0;\r\n rollingStocks.forEach((function(rollingStock) {\r\n size += rollingStock.getBoundingRect().width\r\n }));\r\n while (canvasSize < size) {\r\n size -= findAndKillSmallValue(rollingStocks)\r\n }\r\n}\r\n\r\nfunction findAndKillSmallValue(rollingStocks) {\r\n var smallestObject = rollingStocks.reduce((function(prev, rollingStock, index) {\r\n if (!rollingStock) {\r\n return prev\r\n }\r\n var value = rollingStock.value();\r\n return value < prev.value ? {\r\n value: value,\r\n rollingStock: rollingStock,\r\n index: index\r\n } : prev\r\n }), {\r\n rollingStock: void 0,\r\n value: 1 / 0,\r\n index: void 0\r\n });\r\n smallestObject.rollingStock.getLabels()[0].draw(false);\r\n var width = smallestObject.rollingStock.getBoundingRect().width;\r\n rollingStocks[smallestObject.index] = null;\r\n return width\r\n}\r\n\r\nfunction checkStackOverlap(rollingStocks) {\r\n var i;\r\n var j;\r\n var iLength;\r\n var jLength;\r\n var overlap = false;\r\n for (i = 0, iLength = rollingStocks.length - 1; i < iLength; i++) {\r\n for (j = i + 1, jLength = rollingStocks.length; j < jLength; j++) {\r\n if (i !== j && checkStacksOverlapping(rollingStocks[i], rollingStocks[j], true)) {\r\n overlap = true;\r\n break\r\n }\r\n }\r\n if (overlap) {\r\n break\r\n }\r\n }\r\n return overlap\r\n}\r\n\r\nfunction resolveLabelOverlappingInOneDirection(points, canvas, isRotated, isInverted, shiftFunction) {\r\n var customSorting = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : () => 0;\r\n var rollingStocks = [];\r\n var stubCanvas = {\r\n start: isRotated ? canvas.left : canvas.top,\r\n end: isRotated ? canvas.width - canvas.right : canvas.height - canvas.bottom\r\n };\r\n var hasStackedSeries = false;\r\n points.forEach((function(p) {\r\n if (!p) {\r\n return\r\n }\r\n hasStackedSeries = hasStackedSeries || p.series.isStackedSeries() || p.series.isFullStackedSeries();\r\n p.getLabels().forEach((function(l) {\r\n l.isVisible() && rollingStocks.push(new RollingStock(l, isRotated, shiftFunction))\r\n }))\r\n }));\r\n if (hasStackedSeries) {\r\n !isRotated ^ isInverted && rollingStocks.reverse()\r\n } else {\r\n var rollingStocksTmp = rollingStocks.slice();\r\n rollingStocks.sort((function(a, b) {\r\n return customSorting(a, b) || a.getInitialPosition() - b.getInitialPosition() || rollingStocksTmp.indexOf(a) - rollingStocksTmp.indexOf(b)\r\n }))\r\n }\r\n if (!checkStackOverlap(rollingStocks)) {\r\n return false\r\n }\r\n checkHeightRollingStock(rollingStocks, stubCanvas);\r\n prepareOverlapStacks(rollingStocks);\r\n rollingStocks.reverse();\r\n moveRollingStock(rollingStocks, stubCanvas);\r\n return true\r\n}\r\n\r\nfunction checkStacksOverlapping(firstRolling, secondRolling, inTwoSides) {\r\n if (!firstRolling || !secondRolling) {\r\n return\r\n }\r\n var firstRect = firstRolling.getBoundingRect();\r\n var secondRect = secondRolling.getBoundingRect();\r\n var oppositeOverlapping = inTwoSides ? firstRect.oppositeStart <= secondRect.oppositeStart && firstRect.oppositeEnd > secondRect.oppositeStart || secondRect.oppositeStart <= firstRect.oppositeStart && secondRect.oppositeEnd > firstRect.oppositeStart : true;\r\n return firstRect.end > secondRect.start && oppositeOverlapping\r\n}\r\n\r\nfunction prepareOverlapStacks(rollingStocks) {\r\n var i;\r\n var currentRollingStock;\r\n var root;\r\n for (i = 0; i < rollingStocks.length - 1; i++) {\r\n currentRollingStock = root || rollingStocks[i];\r\n if (checkStacksOverlapping(currentRollingStock, rollingStocks[i + 1])) {\r\n currentRollingStock.toChain(rollingStocks[i + 1]);\r\n rollingStocks[i + 1] = null;\r\n root = currentRollingStock\r\n } else {\r\n root = rollingStocks[i + 1] || currentRollingStock\r\n }\r\n }\r\n}\r\n\r\nfunction moveRollingStock(rollingStocks, canvas) {\r\n var i;\r\n var j;\r\n var currentRollingStock;\r\n var nextRollingStock;\r\n var currentBBox;\r\n var nextBBox;\r\n for (i = 0; i < rollingStocks.length; i++) {\r\n currentRollingStock = rollingStocks[i];\r\n if (rollingStocksIsOut(currentRollingStock, canvas)) {\r\n currentBBox = currentRollingStock.getBoundingRect();\r\n for (j = i + 1; j < rollingStocks.length; j++) {\r\n nextRollingStock = rollingStocks[j];\r\n if (!nextRollingStock) {\r\n continue\r\n }\r\n nextBBox = nextRollingStock.getBoundingRect();\r\n if (nextBBox.end > currentBBox.start - (currentBBox.end - canvas.end)) {\r\n nextRollingStock.toChain(currentRollingStock);\r\n rollingStocks[i] = currentRollingStock = null;\r\n break\r\n }\r\n }\r\n }\r\n currentRollingStock && currentRollingStock.setRollingStockInCanvas(canvas)\r\n }\r\n}\r\n\r\nfunction rollingStocksIsOut(rollingStock, canvas) {\r\n return rollingStock && rollingStock.getBoundingRect().end > canvas.end\r\n}\r\n\r\nfunction RollingStock(label, isRotated, shiftFunction) {\r\n var bBox = label.getBoundingRect();\r\n var x = bBox.x;\r\n var y = bBox.y;\r\n var endX = bBox.x + bBox.width;\r\n var endY = bBox.y + bBox.height;\r\n this.labels = [label];\r\n this.shiftFunction = shiftFunction;\r\n this._bBox = {\r\n start: isRotated ? x : y,\r\n width: isRotated ? bBox.width : bBox.height,\r\n end: isRotated ? endX : endY,\r\n oppositeStart: isRotated ? y : x,\r\n oppositeEnd: isRotated ? endY : endX\r\n };\r\n this._initialPosition = isRotated ? bBox.x : bBox.y;\r\n return this\r\n}\r\nRollingStock.prototype = {\r\n toChain: function(nextRollingStock) {\r\n var nextRollingStockBBox = nextRollingStock.getBoundingRect();\r\n nextRollingStock.shift(nextRollingStockBBox.start - this._bBox.end);\r\n this._changeBoxWidth(nextRollingStockBBox.width);\r\n this.labels = this.labels.concat(nextRollingStock.labels)\r\n },\r\n getBoundingRect: function() {\r\n return this._bBox\r\n },\r\n shift: function(shiftLength) {\r\n var shiftFunction = this.shiftFunction;\r\n _each(this.labels, (function(index, label) {\r\n var bBox = label.getBoundingRect();\r\n var coords = shiftFunction(bBox, shiftLength);\r\n if (!label.hideInsideLabel(coords)) {\r\n label.shift(coords.x, coords.y)\r\n }\r\n }));\r\n this._bBox.end -= shiftLength;\r\n this._bBox.start -= shiftLength\r\n },\r\n setRollingStockInCanvas: function(canvas) {\r\n if (this._bBox.end > canvas.end) {\r\n this.shift(this._bBox.end - canvas.end)\r\n }\r\n },\r\n getLabels: function() {\r\n return this.labels\r\n },\r\n value() {\r\n return this.labels[0].getData().value\r\n },\r\n getInitialPosition: function() {\r\n return this._initialPosition\r\n },\r\n _changeBoxWidth: function(width) {\r\n this._bBox.end += width;\r\n this._bBox.width += width\r\n }\r\n};\r\n\r\nfunction getLegendFields(name) {\r\n return {\r\n nameField: name + \"Name\",\r\n colorField: name + \"Color\",\r\n indexField: name + \"Index\"\r\n }\r\n}\r\n\r\nfunction getLegendSettings(legendDataField) {\r\n var formatObjectFields = getLegendFields(legendDataField);\r\n return {\r\n getFormatObject: function(data) {\r\n var res = {};\r\n res[formatObjectFields.indexField] = data.id;\r\n res[formatObjectFields.colorField] = data.states.normal.fill;\r\n res[formatObjectFields.nameField] = data.text;\r\n return res\r\n },\r\n textField: formatObjectFields.nameField\r\n }\r\n}\r\n\r\nfunction checkOverlapping(firstRect, secondRect) {\r\n return (firstRect.x <= secondRect.x && secondRect.x <= firstRect.x + firstRect.width || firstRect.x >= secondRect.x && firstRect.x <= secondRect.x + secondRect.width) && (firstRect.y <= secondRect.y && secondRect.y <= firstRect.y + firstRect.height || firstRect.y >= secondRect.y && firstRect.y <= secondRect.y + secondRect.height)\r\n}\r\nexport var overlapping = {\r\n resolveLabelOverlappingInOneDirection: resolveLabelOverlappingInOneDirection\r\n};\r\nexport var BaseChart = BaseWidget.inherit({\r\n _eventsMap: {\r\n onSeriesClick: {\r\n name: \"seriesClick\"\r\n },\r\n onPointClick: {\r\n name: \"pointClick\"\r\n },\r\n onArgumentAxisClick: {\r\n name: \"argumentAxisClick\"\r\n },\r\n onLegendClick: {\r\n name: \"legendClick\"\r\n },\r\n onSeriesSelectionChanged: {\r\n name: \"seriesSelectionChanged\"\r\n },\r\n onPointSelectionChanged: {\r\n name: \"pointSelectionChanged\"\r\n },\r\n onSeriesHoverChanged: {\r\n name: \"seriesHoverChanged\"\r\n },\r\n onPointHoverChanged: {\r\n name: \"pointHoverChanged\"\r\n },\r\n onDone: {\r\n name: \"done\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n },\r\n onZoomStart: {\r\n name: \"zoomStart\"\r\n },\r\n onZoomEnd: {\r\n name: \"zoomEnd\"\r\n }\r\n },\r\n _fontFields: [\"legend.\" + FONT, \"legend.title.\" + FONT, \"legend.title.subtitle.\" + FONT, \"commonSeriesSettings.label.\" + FONT],\r\n _rootClassPrefix: \"dxc\",\r\n _rootClass: \"dxc-chart\",\r\n _initialChanges: [\"INIT\"],\r\n _themeDependentChanges: [\"REFRESH_SERIES_REINIT\"],\r\n _getThemeManagerOptions() {\r\n var themeOptions = this.callBase.apply(this, arguments);\r\n themeOptions.options = this.option();\r\n return themeOptions\r\n },\r\n _createThemeManager: function() {\r\n var chartOption = this.option();\r\n var themeManager = new ThemeManager(this._getThemeManagerOptions());\r\n themeManager.setTheme(chartOption.theme, chartOption.rtlEnabled);\r\n return themeManager\r\n },\r\n _initCore: function() {\r\n this._canvasClipRect = this._renderer.clipRect();\r\n this._createHtmlStructure();\r\n this._createLegend();\r\n this._createTracker();\r\n this._needHandleRenderComplete = true;\r\n this.layoutManager = new LayoutManager;\r\n this._createScrollBar();\r\n eventsEngine.on(this._$element, \"contextmenu\", (function(event) {\r\n if (isTouchEvent(event) || isPointerEvent(event)) {\r\n event.preventDefault()\r\n }\r\n }));\r\n eventsEngine.on(this._$element, \"MSHoldVisual\", (function(event) {\r\n event.preventDefault()\r\n }))\r\n },\r\n _getLayoutItems: noop,\r\n _layoutManagerOptions: function() {\r\n return this._themeManager.getOptions(\"adaptiveLayout\")\r\n },\r\n _reinit() {\r\n _setCanvasValues(this._canvas);\r\n this._reinitAxes();\r\n this._requestChange([\"DATA_SOURCE\", \"DATA_INIT\", \"CORRECT_AXIS\", \"FULL_RENDER\"])\r\n },\r\n _correctAxes: noop,\r\n _createHtmlStructure: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var root = renderer.root;\r\n var createConstantLinesGroup = function() {\r\n return renderer.g().attr({\r\n class: \"dxc-constant-lines-group\"\r\n }).linkOn(root, \"constant-lines\")\r\n };\r\n that._constantLinesGroup = {\r\n dispose: function() {\r\n this.under.dispose();\r\n this.above.dispose()\r\n },\r\n linkOff: function() {\r\n this.under.linkOff();\r\n this.above.linkOff()\r\n },\r\n clear: function() {\r\n this.under.linkRemove().clear();\r\n this.above.linkRemove().clear()\r\n },\r\n linkAppend: function() {\r\n this.under.linkAppend();\r\n this.above.linkAppend()\r\n }\r\n };\r\n that._labelsAxesGroup = renderer.g().attr({\r\n class: \"dxc-elements-axes-group\"\r\n });\r\n var appendLabelsAxesGroup = () => {\r\n that._labelsAxesGroup.linkOn(root, \"elements\")\r\n };\r\n that._backgroundRect = renderer.rect().attr({\r\n fill: \"gray\",\r\n opacity: 1e-4\r\n }).append(root);\r\n that._panesBackgroundGroup = renderer.g().attr({\r\n class: \"dxc-background\"\r\n }).append(root);\r\n that._stripsGroup = renderer.g().attr({\r\n class: \"dxc-strips-group\"\r\n }).linkOn(root, \"strips\");\r\n that._gridGroup = renderer.g().attr({\r\n class: \"dxc-grids-group\"\r\n }).linkOn(root, \"grids\");\r\n that._panesBorderGroup = renderer.g().attr({\r\n class: \"dxc-border\"\r\n }).linkOn(root, \"border\");\r\n that._axesGroup = renderer.g().attr({\r\n class: \"dxc-axes-group\"\r\n }).linkOn(root, \"axes\");\r\n that._executeAppendBeforeSeries(appendLabelsAxesGroup);\r\n that._stripLabelAxesGroup = renderer.g().attr({\r\n class: \"dxc-strips-labels-group\"\r\n }).linkOn(root, \"strips-labels\");\r\n that._constantLinesGroup.under = createConstantLinesGroup();\r\n that._seriesGroup = renderer.g().attr({\r\n class: \"dxc-series-group\"\r\n }).linkOn(root, \"series\");\r\n that._executeAppendAfterSeries(appendLabelsAxesGroup);\r\n that._constantLinesGroup.above = createConstantLinesGroup();\r\n that._scaleBreaksGroup = renderer.g().attr({\r\n class: \"dxc-scale-breaks\"\r\n }).linkOn(root, \"scale-breaks\");\r\n that._labelsGroup = renderer.g().attr({\r\n class: \"dxc-labels-group\"\r\n }).linkOn(root, \"labels\");\r\n that._crosshairCursorGroup = renderer.g().attr({\r\n class: \"dxc-crosshair-cursor\"\r\n }).linkOn(root, \"crosshair\");\r\n that._legendGroup = renderer.g().attr({\r\n class: \"dxc-legend\",\r\n \"clip-path\": that._getCanvasClipRectID()\r\n }).linkOn(root, \"legend\").linkAppend(root).enableLinks();\r\n that._scrollBarGroup = renderer.g().attr({\r\n class: \"dxc-scroll-bar\"\r\n }).linkOn(root, \"scroll-bar\")\r\n },\r\n _executeAppendBeforeSeries() {},\r\n _executeAppendAfterSeries() {},\r\n _disposeObjectsInArray: function(propName, fieldNames) {\r\n _each(this[propName] || [], (function(_, item) {\r\n if (fieldNames && item) {\r\n _each(fieldNames, (function(_, field) {\r\n item[field] && item[field].dispose()\r\n }))\r\n } else {\r\n item && item.dispose()\r\n }\r\n }));\r\n this[propName] = null\r\n },\r\n _disposeCore: function() {\r\n var that = this;\r\n var disposeObject = function(propName) {\r\n if (that[propName]) {\r\n that[propName].dispose();\r\n that[propName] = null\r\n }\r\n };\r\n var unlinkGroup = function(name) {\r\n that[name].linkOff()\r\n };\r\n var disposeObjectsInArray = this._disposeObjectsInArray;\r\n that._renderer.stopAllAnimations();\r\n disposeObjectsInArray.call(that, \"series\");\r\n disposeObject(\"_tracker\");\r\n disposeObject(\"_crosshair\");\r\n that.layoutManager = that._userOptions = that._canvas = that._groupsData = null;\r\n unlinkGroup(\"_stripsGroup\");\r\n unlinkGroup(\"_gridGroup\");\r\n unlinkGroup(\"_axesGroup\");\r\n unlinkGroup(\"_constantLinesGroup\");\r\n unlinkGroup(\"_stripLabelAxesGroup\");\r\n unlinkGroup(\"_panesBorderGroup\");\r\n unlinkGroup(\"_seriesGroup\");\r\n unlinkGroup(\"_labelsGroup\");\r\n unlinkGroup(\"_crosshairCursorGroup\");\r\n unlinkGroup(\"_legendGroup\");\r\n unlinkGroup(\"_scrollBarGroup\");\r\n unlinkGroup(\"_scaleBreaksGroup\");\r\n disposeObject(\"_canvasClipRect\");\r\n disposeObject(\"_panesBackgroundGroup\");\r\n disposeObject(\"_backgroundRect\");\r\n disposeObject(\"_stripsGroup\");\r\n disposeObject(\"_gridGroup\");\r\n disposeObject(\"_axesGroup\");\r\n disposeObject(\"_constantLinesGroup\");\r\n disposeObject(\"_stripLabelAxesGroup\");\r\n disposeObject(\"_panesBorderGroup\");\r\n disposeObject(\"_seriesGroup\");\r\n disposeObject(\"_labelsGroup\");\r\n disposeObject(\"_crosshairCursorGroup\");\r\n disposeObject(\"_legendGroup\");\r\n disposeObject(\"_scrollBarGroup\");\r\n disposeObject(\"_scaleBreaksGroup\")\r\n },\r\n _getAnimationOptions: function() {\r\n return this._themeManager.getOptions(\"animation\")\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 400\r\n }\r\n },\r\n _getOption: function(name) {\r\n return this._themeManager.getOptions(name)\r\n },\r\n _applySize: function(rect) {\r\n this._rect = rect.slice();\r\n if (!this._changes.has(\"FULL_RENDER\")) {\r\n this._processRefreshData(RESIZE_REFRESH_ACTION)\r\n }\r\n },\r\n _resize: function() {\r\n this._doRender(this.__renderOptions || {\r\n animate: false,\r\n isResize: true\r\n })\r\n },\r\n _trackerType: \"ChartTracker\",\r\n _createTracker: function() {\r\n this._tracker = new trackerModule[this._trackerType]({\r\n seriesGroup: this._seriesGroup,\r\n renderer: this._renderer,\r\n tooltip: this._tooltip,\r\n legend: this._legend,\r\n eventTrigger: this._eventTrigger\r\n })\r\n },\r\n _getTrackerSettings: function() {\r\n return extend({\r\n chart: this\r\n }, this._getSelectionModes())\r\n },\r\n _getSelectionModes: function() {\r\n var themeManager = this._themeManager;\r\n return {\r\n seriesSelectionMode: themeManager.getOptions(\"seriesSelectionMode\"),\r\n pointSelectionMode: themeManager.getOptions(\"pointSelectionMode\")\r\n }\r\n },\r\n _updateTracker: function(trackerCanvases) {\r\n this._tracker.update(this._getTrackerSettings());\r\n this._tracker.setCanvases({\r\n left: 0,\r\n right: this._canvas.width,\r\n top: 0,\r\n bottom: this._canvas.height\r\n }, trackerCanvases)\r\n },\r\n _createCanvasFromRect(rect) {\r\n var currentCanvas = this._canvas;\r\n return _setCanvasValues({\r\n left: rect[0],\r\n top: rect[1],\r\n right: currentCanvas.width - rect[2],\r\n bottom: currentCanvas.height - rect[3],\r\n width: currentCanvas.width,\r\n height: currentCanvas.height\r\n })\r\n },\r\n _doRender: function(_options) {\r\n if (0 === this._canvas.width && 0 === this._canvas.height) {\r\n return\r\n }\r\n this._resetIsReady();\r\n var drawOptions = this._prepareDrawOptions(_options);\r\n var recreateCanvas = drawOptions.recreateCanvas;\r\n this._preserveOriginalCanvas();\r\n if (recreateCanvas) {\r\n this.__currentCanvas = this._canvas\r\n } else {\r\n this._canvas = this.__currentCanvas\r\n }\r\n recreateCanvas && this._updateCanvasClipRect(this._canvas);\r\n this._canvas = this._createCanvasFromRect(this._rect);\r\n this._renderer.stopAllAnimations(true);\r\n this._cleanGroups();\r\n var startTime = new Date;\r\n this._renderElements(drawOptions);\r\n this._lastRenderingTime = new Date - startTime\r\n },\r\n _preserveOriginalCanvas() {\r\n this.__originalCanvas = this._canvas;\r\n this._canvas = extend({}, this._canvas)\r\n },\r\n _layoutAxes: noop,\r\n _renderElements: function(drawOptions) {\r\n var that = this;\r\n var preparedOptions = that._prepareToRender(drawOptions);\r\n var isRotated = that._isRotated();\r\n var isLegendInside = that._isLegendInside();\r\n var trackerCanvases = [];\r\n extend({}, that._canvas);\r\n var argBusinessRange;\r\n var zoomMinArg;\r\n var zoomMaxArg;\r\n that._renderer.lock();\r\n if (drawOptions.drawLegend && that._legend) {\r\n that._legendGroup.linkAppend()\r\n }\r\n that.layoutManager.setOptions(that._layoutManagerOptions());\r\n var layoutTargets = that._getLayoutTargets();\r\n this._layoutAxes(needSpace => {\r\n var axisDrawOptions = needSpace ? extend({}, drawOptions, {\r\n animate: false,\r\n recreateCanvas: true\r\n }) : drawOptions;\r\n var canvas = that._renderAxes(axisDrawOptions, preparedOptions);\r\n that._shrinkAxes(needSpace, canvas)\r\n });\r\n that._applyClipRects(preparedOptions);\r\n that._appendSeriesGroups();\r\n that._createCrosshairCursor();\r\n layoutTargets.forEach(_ref => {\r\n var {\r\n canvas: canvas\r\n } = _ref;\r\n trackerCanvases.push({\r\n left: canvas.left,\r\n right: canvas.width - canvas.right,\r\n top: canvas.top,\r\n bottom: canvas.height - canvas.bottom\r\n })\r\n });\r\n if (that._scrollBar) {\r\n argBusinessRange = that._argumentAxes[0].getTranslator().getBusinessRange();\r\n if (\"discrete\" === argBusinessRange.axisType && argBusinessRange.categories && argBusinessRange.categories.length <= 1 || \"discrete\" !== argBusinessRange.axisType && argBusinessRange.min === argBusinessRange.max) {\r\n zoomMinArg = zoomMaxArg = void 0\r\n } else {\r\n zoomMinArg = argBusinessRange.minVisible;\r\n zoomMaxArg = argBusinessRange.maxVisible\r\n }\r\n that._scrollBar.init(argBusinessRange, !that._argumentAxes[0].getOptions().valueMarginsEnabled).setPosition(zoomMinArg, zoomMaxArg)\r\n }\r\n that._updateTracker(trackerCanvases);\r\n that._updateLegendPosition(drawOptions, isLegendInside);\r\n that._applyPointMarkersAutoHiding();\r\n that._renderSeries(drawOptions, isRotated, isLegendInside);\r\n that._renderer.unlock()\r\n },\r\n _updateLegendPosition: noop,\r\n _createCrosshairCursor: noop,\r\n _appendSeriesGroups: function() {\r\n this._seriesGroup.linkAppend();\r\n this._labelsGroup.linkAppend();\r\n this._appendAdditionalSeriesGroups()\r\n },\r\n _renderSeries: function(drawOptions, isRotated, isLegendInside) {\r\n this._calculateSeriesLayout(drawOptions, isRotated);\r\n this._renderSeriesElements(drawOptions, isLegendInside)\r\n },\r\n _calculateSeriesLayout: function(drawOptions, isRotated) {\r\n drawOptions.hideLayoutLabels = this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), isRotated) && !this._themeManager.getOptions(\"adaptiveLayout\").keepLabels;\r\n this._updateSeriesDimensions(drawOptions)\r\n },\r\n _getArgFilter: () => () => true,\r\n _getValFilter: series => () => true,\r\n _getPointsToAnimation(series) {\r\n var argViewPortFilter = this._getArgFilter();\r\n return series.map(s => {\r\n var valViewPortFilter = this._getValFilter(s);\r\n return s.getPoints().filter(p => p.getOptions().visible && argViewPortFilter(p.argument) && (valViewPortFilter(p.getMinValue(true)) || valViewPortFilter(p.getMaxValue(true)))).length\r\n })\r\n },\r\n _renderSeriesElements: function(drawOptions, isLegendInside) {\r\n var i;\r\n var series = this.series;\r\n var singleSeries;\r\n var seriesLength = series.length;\r\n var resolveLabelOverlapping = this._themeManager.getOptions(\"resolveLabelOverlapping\");\r\n var pointsToAnimation = this._getPointsToAnimation(series);\r\n for (i = 0; i < seriesLength; i++) {\r\n singleSeries = series[i];\r\n this._applyExtraSettings(singleSeries, drawOptions);\r\n singleSeries.draw(drawOptions.animate && pointsToAnimation[i] <= drawOptions.animationPointsLimit && this._renderer.animationEnabled(), drawOptions.hideLayoutLabels, this._getLegendCallBack(singleSeries))\r\n }\r\n if (\"none\" === resolveLabelOverlapping) {\r\n this._adjustSeriesLabels(false)\r\n } else {\r\n this._locateLabels(resolveLabelOverlapping)\r\n }\r\n this._renderTrackers(isLegendInside);\r\n this._tracker.repairTooltip();\r\n this._renderExtraElements();\r\n this._clearCanvas();\r\n this._seriesElementsDrawn = true\r\n },\r\n _changesApplied() {\r\n if (this._seriesElementsDrawn) {\r\n this._seriesElementsDrawn = false;\r\n this._drawn();\r\n this._renderCompleteHandler()\r\n }\r\n },\r\n _locateLabels(resolveLabelOverlapping) {\r\n this._resolveLabelOverlapping(resolveLabelOverlapping)\r\n },\r\n _renderExtraElements() {},\r\n _clearCanvas: function() {\r\n this._canvas = this.__originalCanvas\r\n },\r\n _resolveLabelOverlapping: function(resolveLabelOverlapping) {\r\n var func;\r\n switch (resolveLabelOverlapping) {\r\n case \"stack\":\r\n func = this._resolveLabelOverlappingStack;\r\n break;\r\n case \"hide\":\r\n func = this._resolveLabelOverlappingHide;\r\n break;\r\n case \"shift\":\r\n func = this._resolveLabelOverlappingShift\r\n }\r\n return isFunction(func) && func.call(this)\r\n },\r\n _getVisibleSeries: function() {\r\n return grep(this.getAllSeries(), (function(series) {\r\n return series.isVisible()\r\n }))\r\n },\r\n _resolveLabelOverlappingHide: function() {\r\n var labels = [];\r\n var currentLabel;\r\n var nextLabel;\r\n var currentLabelRect;\r\n var nextLabelRect;\r\n var i;\r\n var j;\r\n var points;\r\n var series = this._getVisibleSeries();\r\n for (i = 0; i < series.length; i++) {\r\n points = series[i].getVisiblePoints();\r\n for (j = 0; j < points.length; j++) {\r\n labels.push.apply(labels, points[j].getLabels())\r\n }\r\n }\r\n for (i = 0; i < labels.length; i++) {\r\n currentLabel = labels[i];\r\n if (!currentLabel.isVisible()) {\r\n continue\r\n }\r\n currentLabelRect = currentLabel.getBoundingRect();\r\n for (j = i + 1; j < labels.length; j++) {\r\n nextLabel = labels[j];\r\n nextLabelRect = nextLabel.getBoundingRect();\r\n if (checkOverlapping(currentLabelRect, nextLabelRect)) {\r\n nextLabel.draw(false)\r\n }\r\n }\r\n }\r\n },\r\n _cleanGroups: function() {\r\n this._stripsGroup.linkRemove().clear();\r\n this._gridGroup.linkRemove().clear();\r\n this._axesGroup.linkRemove().clear();\r\n this._constantLinesGroup.above.clear();\r\n this._stripLabelAxesGroup.linkRemove().clear();\r\n this._labelsGroup.linkRemove().clear();\r\n this._crosshairCursorGroup.linkRemove().clear();\r\n this._scaleBreaksGroup.linkRemove().clear()\r\n },\r\n _allowLegendInsidePosition: () => false,\r\n _createLegend: function() {\r\n var legendSettings = getLegendSettings(this._legendDataField);\r\n this._legend = new Legend({\r\n renderer: this._renderer,\r\n widget: this,\r\n group: this._legendGroup,\r\n backgroundClass: \"dxc-border\",\r\n itemGroupClass: \"dxc-item\",\r\n titleGroupClass: \"dxc-title\",\r\n textField: legendSettings.textField,\r\n getFormatObject: legendSettings.getFormatObject,\r\n allowInsidePosition: this._allowLegendInsidePosition()\r\n });\r\n this._updateLegend();\r\n this._layout.add(this._legend)\r\n },\r\n _updateLegend: function() {\r\n var themeManager = this._themeManager;\r\n var legendOptions = themeManager.getOptions(\"legend\");\r\n var legendData = this._getLegendData();\r\n legendOptions.containerBackgroundColor = themeManager.getOptions(\"containerBackgroundColor\");\r\n legendOptions._incidentOccurred = this._incidentOccurred;\r\n this._legend.update(legendData, legendOptions, themeManager.theme(\"legend\").title);\r\n this._change([\"LAYOUT\"])\r\n },\r\n _prepareDrawOptions: function(drawOptions) {\r\n var animationOptions = this._getAnimationOptions();\r\n var options = extend({}, {\r\n force: false,\r\n adjustAxes: true,\r\n drawLegend: true,\r\n drawTitle: true,\r\n animate: animationOptions.enabled,\r\n animationPointsLimit: animationOptions.maxPointCountSupported\r\n }, drawOptions, this.__renderOptions);\r\n if (!_isDefined(options.recreateCanvas)) {\r\n options.recreateCanvas = options.adjustAxes && options.drawLegend && options.drawTitle\r\n }\r\n return options\r\n },\r\n _processRefreshData: function(newRefreshAction) {\r\n var currentRefreshActionPosition = inArray(this._currentRefreshData, ACTIONS_BY_PRIORITY);\r\n var newRefreshActionPosition = inArray(newRefreshAction, ACTIONS_BY_PRIORITY);\r\n if (!this._currentRefreshData || currentRefreshActionPosition >= 0 && newRefreshActionPosition < currentRefreshActionPosition) {\r\n this._currentRefreshData = newRefreshAction\r\n }\r\n this._requestChange([\"REFRESH\"])\r\n },\r\n _getLegendData: function() {\r\n return _map(this._getLegendTargets(), (function(item) {\r\n var legendData = item.legendData;\r\n var style = item.getLegendStyles;\r\n var opacity = style.normal.opacity;\r\n if (!item.visible) {\r\n if (!_isDefined(opacity) || opacity > DEFAULT_OPACITY) {\r\n opacity = DEFAULT_OPACITY\r\n }\r\n legendData.textOpacity = DEFAULT_OPACITY\r\n }\r\n var opacityStyle = {\r\n opacity: opacity\r\n };\r\n legendData.states = {\r\n hover: extend({}, style.hover, opacityStyle),\r\n selection: extend({}, style.selection, opacityStyle),\r\n normal: extend({}, style.normal, opacityStyle)\r\n };\r\n return legendData\r\n }))\r\n },\r\n _getLegendOptions: function(item) {\r\n return {\r\n legendData: {\r\n text: item[this._legendItemTextField],\r\n id: item.index,\r\n visible: true\r\n },\r\n getLegendStyles: item.getLegendStyles(),\r\n visible: item.isVisible()\r\n }\r\n },\r\n _disposeSeries(seriesIndex) {\r\n var _that$series;\r\n if (this.series) {\r\n if (_isDefined(seriesIndex)) {\r\n this.series[seriesIndex].dispose();\r\n this.series.splice(seriesIndex, 1)\r\n } else {\r\n _each(this.series, (_, s) => s.dispose());\r\n this.series.length = 0\r\n }\r\n }\r\n if (!(null !== (_that$series = this.series) && void 0 !== _that$series && _that$series.length)) {\r\n this.series = []\r\n }\r\n },\r\n _disposeSeriesFamilies() {\r\n _each(this.seriesFamilies || [], (function(_, family) {\r\n family.dispose()\r\n }));\r\n this.seriesFamilies = null;\r\n this._needHandleRenderComplete = true\r\n },\r\n _optionChanged: function(arg) {\r\n this._themeManager.resetOptions(arg.name);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyChanges() {\r\n this._themeManager.update(this._options.silent());\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChangesMap: {\r\n animation: \"ANIMATION\",\r\n dataSource: \"DATA_SOURCE\",\r\n palette: \"PALETTE\",\r\n paletteExtensionMode: \"PALETTE\",\r\n legend: \"FORCE_DATA_INIT\",\r\n seriesTemplate: \"FORCE_DATA_INIT\",\r\n export: \"FORCE_RENDER\",\r\n valueAxis: \"AXES_AND_PANES\",\r\n argumentAxis: \"AXES_AND_PANES\",\r\n commonAxisSettings: \"AXES_AND_PANES\",\r\n panes: \"AXES_AND_PANES\",\r\n commonPaneSettings: \"AXES_AND_PANES\",\r\n defaultPane: \"AXES_AND_PANES\",\r\n containerBackgroundColor: \"AXES_AND_PANES\",\r\n rotated: \"ROTATED\",\r\n autoHidePointMarkers: \"REFRESH_SERIES_REINIT\",\r\n customizePoint: \"REFRESH_SERIES_REINIT\",\r\n customizeLabel: \"REFRESH_SERIES_REINIT\",\r\n scrollBar: \"SCROLL_BAR\"\r\n },\r\n _optionChangesOrder: [\"ROTATED\", \"PALETTE\", \"REFRESH_SERIES_REINIT\", \"USE_SPIDER_WEB\", \"AXES_AND_PANES\", \"INIT\", \"REINIT\", \"DATA_SOURCE\", \"REFRESH_SERIES_DATA_INIT\", \"DATA_INIT\", \"FORCE_DATA_INIT\", \"REFRESH_AXES\", \"CORRECT_AXIS\"],\r\n _customChangesOrder: [\"ANIMATION\", \"REFRESH_SERIES_FAMILIES\", \"FORCE_FIRST_DRAWING\", \"FORCE_DRAWING\", \"FORCE_RENDER\", \"VISUAL_RANGE\", \"SCROLL_BAR\", \"REINIT\", \"REFRESH\", \"FULL_RENDER\"],\r\n _change_ANIMATION: function() {\r\n this._renderer.updateAnimationOptions(this._getAnimationOptions())\r\n },\r\n _change_DATA_SOURCE: function() {\r\n this._needHandleRenderComplete = true;\r\n this._updateDataSource()\r\n },\r\n _change_PALETTE: function() {\r\n this._themeManager.updatePalette();\r\n this._refreshSeries(\"DATA_INIT\")\r\n },\r\n _change_REFRESH_SERIES_DATA_INIT: function() {\r\n this._refreshSeries(\"DATA_INIT\")\r\n },\r\n _change_DATA_INIT: function() {\r\n if ((!this.series || this.needToPopulateSeries) && !this._changes.has(\"FORCE_DATA_INIT\")) {\r\n this._dataInit()\r\n }\r\n },\r\n _change_FORCE_DATA_INIT: function() {\r\n this._dataInit()\r\n },\r\n _change_REFRESH_SERIES_FAMILIES: function() {\r\n this._processSeriesFamilies();\r\n this._populateBusinessRange();\r\n this._processRefreshData(FORCE_RENDER_REFRESH_ACTION)\r\n },\r\n _change_FORCE_RENDER: function() {\r\n this._processRefreshData(FORCE_RENDER_REFRESH_ACTION)\r\n },\r\n _change_AXES_AND_PANES: function() {\r\n this._refreshSeries(\"INIT\")\r\n },\r\n _change_ROTATED: function() {\r\n this._createScrollBar();\r\n this._refreshSeries(\"INIT\")\r\n },\r\n _change_REFRESH_SERIES_REINIT: function() {\r\n this._refreshSeries(\"INIT\")\r\n },\r\n _change_REFRESH_AXES() {\r\n _setCanvasValues(this._canvas);\r\n this._reinitAxes();\r\n this._requestChange([\"CORRECT_AXIS\", \"FULL_RENDER\"])\r\n },\r\n _change_SCROLL_BAR: function() {\r\n this._createScrollBar();\r\n this._processRefreshData(FORCE_RENDER_REFRESH_ACTION)\r\n },\r\n _change_REINIT: function() {\r\n this._processRefreshData(REINIT_REFRESH_ACTION)\r\n },\r\n _change_FORCE_DRAWING: function() {\r\n this._resetComponentsAnimation()\r\n },\r\n _change_FORCE_FIRST_DRAWING: function() {\r\n this._resetComponentsAnimation(true)\r\n },\r\n _resetComponentsAnimation: function(isFirstDrawing) {\r\n this.series.forEach(s => {\r\n s.resetApplyingAnimation(isFirstDrawing)\r\n });\r\n this._resetAxesAnimation(isFirstDrawing)\r\n },\r\n _resetAxesAnimation: noop,\r\n _refreshSeries: function(actionName) {\r\n this.needToPopulateSeries = true;\r\n this._requestChange([actionName])\r\n },\r\n _change_CORRECT_AXIS() {\r\n this._correctAxes()\r\n },\r\n _doRefresh: function() {\r\n var methodName = this._currentRefreshData;\r\n if (methodName) {\r\n this._currentRefreshData = null;\r\n this._renderer.stopAllAnimations(true);\r\n this[methodName]()\r\n }\r\n },\r\n _updateCanvasClipRect: function(canvas) {\r\n var width = Math.max(canvas.width - canvas.left - canvas.right, 0);\r\n var height = Math.max(canvas.height - canvas.top - canvas.bottom, 0);\r\n this._canvasClipRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: width,\r\n height: height\r\n });\r\n this._backgroundRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _getCanvasClipRectID: function() {\r\n return this._canvasClipRect.id\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (this._changes.has(\"INIT\")) {\r\n this._requestChange([\"DATA_INIT\"])\r\n } else {\r\n this._requestChange([\"FORCE_DATA_INIT\"])\r\n }\r\n },\r\n _dataInit: function() {\r\n this._dataSpecificInit(true)\r\n },\r\n _processSingleSeries: function(singleSeries) {\r\n singleSeries.createPoints(false)\r\n },\r\n _handleSeriesDataUpdated() {\r\n if (this._getVisibleSeries().some(s => s.useAggregation())) {\r\n this._populateMarginOptions()\r\n }\r\n this.series.forEach(s => this._processSingleSeries(s), this)\r\n },\r\n _dataSpecificInit(needRedraw) {\r\n if (!this.series || this.needToPopulateSeries) {\r\n this.series = this._populateSeries()\r\n }\r\n this._repopulateSeries();\r\n this._seriesPopulatedHandlerCore();\r\n this._populateBusinessRange();\r\n this._tracker.updateSeries(this.series, this._changes.has(\"INIT\"));\r\n this._updateLegend();\r\n if (needRedraw) {\r\n this._requestChange([\"FULL_RENDER\"])\r\n }\r\n },\r\n _forceRender: function() {\r\n this._doRender({\r\n force: true\r\n })\r\n },\r\n _repopulateSeries: function() {\r\n var themeManager = this._themeManager;\r\n var data = this._dataSourceItems();\r\n var dataValidatorOptions = themeManager.getOptions(\"dataPrepareSettings\");\r\n var seriesTemplate = themeManager.getOptions(\"seriesTemplate\");\r\n if (seriesTemplate) {\r\n this._populateSeries(data)\r\n }\r\n this._groupSeries();\r\n var parsedData = validateData(data, this._groupsData, this._incidentOccurred, dataValidatorOptions);\r\n themeManager.resetPalette();\r\n this.series.forEach((function(singleSeries) {\r\n singleSeries.updateData(parsedData[singleSeries.getArgumentField()])\r\n }));\r\n this._handleSeriesDataUpdated()\r\n },\r\n _renderCompleteHandler: function() {\r\n var allSeriesInited = true;\r\n if (this._needHandleRenderComplete) {\r\n _each(this.series, (function(_, s) {\r\n allSeriesInited = allSeriesInited && s.canRenderCompleteHandle()\r\n }));\r\n if (allSeriesInited) {\r\n this._needHandleRenderComplete = false;\r\n this._eventTrigger(\"done\", {\r\n target: this\r\n })\r\n }\r\n }\r\n },\r\n _dataIsReady: function() {\r\n return _isDefined(this.option(\"dataSource\")) && this._dataIsLoaded()\r\n },\r\n _populateSeriesOptions(data) {\r\n var that = this;\r\n var themeManager = that._themeManager;\r\n var seriesTemplate = themeManager.getOptions(\"seriesTemplate\");\r\n var seriesOptions = seriesTemplate ? processSeriesTemplate(seriesTemplate, data || []) : that.option(\"series\");\r\n var allSeriesOptions = _isArray(seriesOptions) ? seriesOptions : seriesOptions ? [seriesOptions] : [];\r\n var extraOptions = that._getExtraOptions();\r\n var particularSeriesOptions;\r\n var seriesTheme;\r\n var seriesThemes = [];\r\n var seriesVisibilityChanged = target => {\r\n that._specialProcessSeries();\r\n that._populateBusinessRange(target && target.getValueAxis(), true);\r\n that._renderer.stopAllAnimations(true);\r\n that._updateLegend();\r\n that._requestChange([\"FULL_RENDER\"])\r\n };\r\n for (var i = 0; i < allSeriesOptions.length; i++) {\r\n particularSeriesOptions = extend(true, {}, allSeriesOptions[i], extraOptions);\r\n if (!_isDefined(particularSeriesOptions.name) || \"\" === particularSeriesOptions.name) {\r\n particularSeriesOptions.name = \"Series \" + (i + 1).toString()\r\n }\r\n particularSeriesOptions.rotated = that._isRotated();\r\n particularSeriesOptions.customizePoint = themeManager.getOptions(\"customizePoint\");\r\n particularSeriesOptions.customizeLabel = themeManager.getOptions(\"customizeLabel\");\r\n particularSeriesOptions.visibilityChanged = seriesVisibilityChanged;\r\n particularSeriesOptions.incidentOccurred = that._incidentOccurred;\r\n seriesTheme = themeManager.getOptions(\"series\", particularSeriesOptions, allSeriesOptions.length);\r\n if (that._checkPaneName(seriesTheme)) {\r\n seriesThemes.push(seriesTheme)\r\n }\r\n }\r\n return seriesThemes\r\n },\r\n _populateSeries(data) {\r\n var _that$series2;\r\n var that = this;\r\n var seriesBasis = [];\r\n var incidentOccurred = that._incidentOccurred;\r\n var seriesThemes = that._populateSeriesOptions(data);\r\n var particularSeries;\r\n var disposeSeriesFamilies = false;\r\n that.needToPopulateSeries = false;\r\n _each(seriesThemes, (_, theme) => {\r\n var curSeries = that.series && that.series.filter(s => s.name === theme.name && -1 === seriesBasis.map(sb => sb.series).indexOf(s))[0];\r\n if (curSeries && curSeries.type === theme.type) {\r\n seriesBasis.push({\r\n series: curSeries,\r\n options: theme\r\n })\r\n } else {\r\n seriesBasis.push({\r\n options: theme\r\n });\r\n disposeSeriesFamilies = true\r\n }\r\n });\r\n 0 !== (null === (_that$series2 = that.series) || void 0 === _that$series2 ? void 0 : _that$series2.length) && that._tracker.clearHover();\r\n _reverseEach(that.series, (index, series) => {\r\n if (!seriesBasis.some(s => series === s.series)) {\r\n that._disposeSeries(index);\r\n disposeSeriesFamilies = true\r\n }\r\n });\r\n !disposeSeriesFamilies && (disposeSeriesFamilies = seriesBasis.some(sb => sb.series.name !== seriesThemes[sb.series.index].name));\r\n that.series = [];\r\n disposeSeriesFamilies && that._disposeSeriesFamilies();\r\n that._themeManager.resetPalette();\r\n var eventPipe = function(data) {\r\n that.series.forEach((function(currentSeries) {\r\n currentSeries.notify(data)\r\n }))\r\n };\r\n _each(seriesBasis, (_, basis) => {\r\n var _that$_argumentAxes$f, _that$_argumentAxes;\r\n var seriesTheme = basis.options;\r\n var argumentAxis = null !== (_that$_argumentAxes$f = null === (_that$_argumentAxes = that._argumentAxes) || void 0 === _that$_argumentAxes ? void 0 : _that$_argumentAxes.filter(a => a.pane === seriesTheme.pane)[0]) && void 0 !== _that$_argumentAxes$f ? _that$_argumentAxes$f : that.getArgumentAxis();\r\n var renderSettings = {\r\n commonSeriesModes: that._getSelectionModes(),\r\n argumentAxis: argumentAxis,\r\n valueAxis: that._getValueAxis(seriesTheme.pane, seriesTheme.axis)\r\n };\r\n if (basis.series) {\r\n particularSeries = basis.series;\r\n particularSeries.updateOptions(seriesTheme, renderSettings)\r\n } else {\r\n particularSeries = new Series(extend({\r\n renderer: that._renderer,\r\n seriesGroup: that._seriesGroup,\r\n labelsGroup: that._labelsGroup,\r\n eventTrigger: that._eventTrigger,\r\n eventPipe: eventPipe,\r\n incidentOccurred: incidentOccurred\r\n }, renderSettings), seriesTheme)\r\n }\r\n if (!particularSeries.isUpdated) {\r\n incidentOccurred(\"E2101\", [seriesTheme.type])\r\n } else {\r\n particularSeries.index = that.series.length;\r\n that.series.push(particularSeries)\r\n }\r\n });\r\n return that.series\r\n },\r\n getStackedPoints: function(point) {\r\n var stackName = point.series.getStackName();\r\n return this._getVisibleSeries().reduce((stackPoints, series) => {\r\n if (!_isDefined(series.getStackName()) || !_isDefined(stackName) || stackName === series.getStackName()) {\r\n stackPoints = stackPoints.concat(series.getPointsByArg(point.argument))\r\n }\r\n return stackPoints\r\n }, [])\r\n },\r\n getAllSeries: function() {\r\n return (this.series || []).slice()\r\n },\r\n getSeriesByName: function(name) {\r\n var found = null;\r\n _each(this.series, (function(i, singleSeries) {\r\n if (singleSeries.name === name) {\r\n found = singleSeries;\r\n return false\r\n }\r\n }));\r\n return found\r\n },\r\n getSeriesByPos: function(pos) {\r\n return (this.series || [])[pos]\r\n },\r\n clearSelection: function() {\r\n this._tracker.clearSelection()\r\n },\r\n hideTooltip: function() {\r\n this._tracker._hideTooltip()\r\n },\r\n clearHover() {\r\n this._tracker.clearHover()\r\n },\r\n render: function(renderOptions) {\r\n var that = this;\r\n that.__renderOptions = renderOptions;\r\n that.__forceRender = renderOptions && renderOptions.force;\r\n that.callBase.apply(that, arguments);\r\n that.__renderOptions = that.__forceRender = null;\r\n return that\r\n },\r\n refresh: function() {\r\n this._disposeSeries();\r\n this._disposeSeriesFamilies();\r\n this._requestChange([\"CONTAINER_SIZE\", \"REFRESH_SERIES_REINIT\"])\r\n },\r\n _getMinSize() {\r\n var adaptiveLayout = this._layoutManagerOptions();\r\n return [adaptiveLayout.width, adaptiveLayout.height]\r\n },\r\n _change_REFRESH() {\r\n if (!this._changes.has(\"INIT\")) {\r\n this._doRefresh()\r\n } else {\r\n this._currentRefreshData = null\r\n }\r\n },\r\n _change_FULL_RENDER() {\r\n this._forceRender()\r\n },\r\n _change_INIT() {\r\n this._reinit()\r\n },\r\n _stopCurrentHandling: function() {\r\n this._tracker.stopCurrentHandling()\r\n }\r\n});\r\nREFRESH_SERIES_DATA_INIT_ACTION_OPTIONS.forEach((function(name) {\r\n BaseChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_DATA_INIT\"\r\n}));\r\nFORCE_RENDER_REFRESH_ACTION_OPTIONS.forEach((function(name) {\r\n BaseChart.prototype._optionChangesMap[name] = \"FORCE_RENDER\"\r\n}));\r\nREFRESH_SERIES_FAMILIES_ACTION_OPTIONS.forEach((function(name) {\r\n BaseChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_FAMILIES\"\r\n}));\r\nimport {\r\n plugin as exportPlugin\r\n} from \"../core/export\";\r\nimport {\r\n plugin as titlePlugin\r\n} from \"../core/title\";\r\nimport {\r\n plugin as dataSourcePlugin\r\n} from \"../core/data_source\";\r\nimport {\r\n plugin as tooltipPlugin\r\n} from \"../core/tooltip\";\r\nimport {\r\n plugin as loadingIndicatorPlugin\r\n} from \"../core/loading_indicator\";\r\nBaseChart.addPlugin(exportPlugin);\r\nBaseChart.addPlugin(titlePlugin);\r\nBaseChart.addPlugin(dataSourcePlugin);\r\nBaseChart.addPlugin(tooltipPlugin);\r\nBaseChart.addPlugin(loadingIndicatorPlugin);\r\nvar _change_TITLE = BaseChart.prototype._change_TITLE;\r\nBaseChart.prototype._change_TITLE = function() {\r\n _change_TITLE.apply(this, arguments);\r\n this._change([\"FORCE_RENDER\"])\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/chart_components/layout_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric as _isNumber\r\n} from \"../../core/utils/type\";\r\nimport consts from \"../components/consts\";\r\nimport {\r\n WrapperLayoutElement\r\n} from \"../core/layout_element\";\r\nvar {\r\n floor: floor,\r\n sqrt: sqrt\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar DEFAULT_INNER_RADIUS = .5;\r\nvar RADIAL_LABEL_INDENT = consts.radialLabelIndent;\r\n\r\nfunction getNearestCoord(firstCoord, secondCoord, pointCenterCoord) {\r\n var nearestCoord;\r\n if (pointCenterCoord < firstCoord) {\r\n nearestCoord = firstCoord\r\n } else if (secondCoord < pointCenterCoord) {\r\n nearestCoord = secondCoord\r\n } else {\r\n nearestCoord = pointCenterCoord\r\n }\r\n return nearestCoord\r\n}\r\n\r\nfunction getLabelLayout(point) {\r\n if (point._label.isVisible() && \"inside\" !== point._label.getLayoutOptions().position) {\r\n return point._label.getBoundingRect()\r\n }\r\n}\r\n\r\nfunction getPieRadius(series, paneCenterX, paneCenterY, accessibleRadius, minR) {\r\n series.some((function(singleSeries) {\r\n return singleSeries.getVisiblePoints().reduce((function(radiusIsFound, point) {\r\n var labelBBox = getLabelLayout(point);\r\n if (labelBBox) {\r\n var xCoords = getNearestCoord(labelBBox.x, labelBBox.x + labelBBox.width, paneCenterX);\r\n var yCoords = getNearestCoord(labelBBox.y, labelBBox.y + labelBBox.height, paneCenterY);\r\n accessibleRadius = _min(_max(getLengthFromCenter(xCoords, yCoords, paneCenterX, paneCenterY) - RADIAL_LABEL_INDENT, minR), accessibleRadius);\r\n radiusIsFound = true\r\n }\r\n return radiusIsFound\r\n }), false)\r\n }));\r\n return accessibleRadius\r\n}\r\n\r\nfunction getSizeLabels(series) {\r\n return series.reduce((function(res, singleSeries) {\r\n var maxWidth = singleSeries.getVisiblePoints().reduce((function(width, point) {\r\n var labelBBox = getLabelLayout(point);\r\n if (labelBBox && labelBBox.width > width) {\r\n width = labelBBox.width\r\n }\r\n return width\r\n }), 0);\r\n var rWidth = maxWidth;\r\n if (maxWidth) {\r\n res.outerLabelsCount++;\r\n if (res.outerLabelsCount > 1) {\r\n maxWidth += consts.pieLabelSpacing\r\n }\r\n rWidth += consts.pieLabelSpacing\r\n }\r\n res.sizes.push(maxWidth);\r\n res.rSizes.push(rWidth);\r\n res.common += maxWidth;\r\n return res\r\n }), {\r\n sizes: [],\r\n rSizes: [],\r\n common: 0,\r\n outerLabelsCount: 0\r\n })\r\n}\r\n\r\nfunction correctLabelRadius(labelSizes, radius, series, canvas, averageWidthLabels, centerX) {\r\n var curRadius;\r\n var i;\r\n var runningWidth = 0;\r\n var sizes = labelSizes.sizes;\r\n var rSizes = labelSizes.rSizes;\r\n for (i = 0; i < series.length; i++) {\r\n if (0 === sizes[i]) {\r\n curRadius && (curRadius += rSizes[i - 1]);\r\n continue\r\n }\r\n curRadius = floor(curRadius ? curRadius + rSizes[i - 1] : radius);\r\n series[i].correctLabelRadius(curRadius);\r\n runningWidth += averageWidthLabels || sizes[i];\r\n rSizes[i] = averageWidthLabels || rSizes[i];\r\n series[i].setVisibleArea({\r\n left: floor(centerX - radius - runningWidth),\r\n right: floor(canvas.width - (centerX + radius + runningWidth)),\r\n top: canvas.top,\r\n bottom: canvas.bottom,\r\n width: canvas.width,\r\n height: canvas.height\r\n })\r\n }\r\n}\r\n\r\nfunction getLengthFromCenter(x, y, paneCenterX, paneCenterY) {\r\n return sqrt((x - paneCenterX) * (x - paneCenterX) + (y - paneCenterY) * (y - paneCenterY))\r\n}\r\n\r\nfunction getInnerRadius(_ref) {\r\n var {\r\n type: type,\r\n innerRadius: innerRadius\r\n } = _ref;\r\n return \"pie\" === type ? 0 : _isNumber(innerRadius) ? Number(innerRadius) : DEFAULT_INNER_RADIUS\r\n}\r\n\r\nfunction LayoutManager() {}\r\n\r\nfunction getAverageLabelWidth(centerX, radius, canvas, sizeLabels) {\r\n return (centerX - radius - RADIAL_LABEL_INDENT - canvas.left) / sizeLabels.outerLabelsCount\r\n}\r\n\r\nfunction getFullRadiusWithLabels(centerX, canvas, sizeLabels) {\r\n return centerX - canvas.left - (sizeLabels.outerLabelsCount > 0 ? sizeLabels.common + RADIAL_LABEL_INDENT : 0)\r\n}\r\n\r\nfunction correctAvailableRadius(availableRadius, canvas, series, minR, paneCenterX, paneCenterY) {\r\n var sizeLabels = getSizeLabels(series);\r\n var averageWidthLabels;\r\n var fullRadiusWithLabels = getFullRadiusWithLabels(paneCenterX, canvas, sizeLabels);\r\n if (fullRadiusWithLabels < minR) {\r\n availableRadius = minR;\r\n averageWidthLabels = getAverageLabelWidth(paneCenterX, availableRadius, canvas, sizeLabels)\r\n } else {\r\n availableRadius = _min(getPieRadius(series, paneCenterX, paneCenterY, availableRadius, minR), fullRadiusWithLabels)\r\n }\r\n correctLabelRadius(sizeLabels, availableRadius + RADIAL_LABEL_INDENT, series, canvas, averageWidthLabels, paneCenterX);\r\n return availableRadius\r\n}\r\n\r\nfunction toLayoutElementCoords(canvas) {\r\n return new WrapperLayoutElement(null, {\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvas.width - canvas.left - canvas.right,\r\n height: canvas.height - canvas.top - canvas.bottom\r\n })\r\n}\r\nLayoutManager.prototype = {\r\n constructor: LayoutManager,\r\n setOptions: function(options) {\r\n this._options = options\r\n },\r\n applyPieChartSeriesLayout: function(canvas, series, hideLayoutLabels) {\r\n var paneSpaceHeight = canvas.height - canvas.top - canvas.bottom;\r\n var paneSpaceWidth = canvas.width - canvas.left - canvas.right;\r\n var paneCenterX = paneSpaceWidth / 2 + canvas.left;\r\n var paneCenterY = paneSpaceHeight / 2 + canvas.top;\r\n var piePercentage = this._options.piePercentage;\r\n var availableRadius;\r\n var minR;\r\n if (_isNumber(piePercentage)) {\r\n availableRadius = minR = piePercentage * _min(canvas.height, canvas.width) / 2\r\n } else {\r\n availableRadius = _min(paneSpaceWidth, paneSpaceHeight) / 2;\r\n minR = this._options.minPiePercentage * availableRadius\r\n }\r\n if (!hideLayoutLabels) {\r\n availableRadius = correctAvailableRadius(availableRadius, canvas, series, minR, paneCenterX, paneCenterY)\r\n }\r\n return {\r\n centerX: floor(paneCenterX),\r\n centerY: floor(paneCenterY),\r\n radiusInner: floor(availableRadius * getInnerRadius(series[0])),\r\n radiusOuter: floor(availableRadius)\r\n }\r\n },\r\n applyEqualPieChartLayout: function(series, layout) {\r\n var radius = layout.radius;\r\n return {\r\n centerX: floor(layout.x),\r\n centerY: floor(layout.y),\r\n radiusInner: floor(radius * getInnerRadius(series[0])),\r\n radiusOuter: floor(radius)\r\n }\r\n },\r\n correctPieLabelRadius: function(series, layout, canvas) {\r\n var sizeLabels = getSizeLabels(series);\r\n var averageWidthLabels;\r\n var radius = layout.radiusOuter + RADIAL_LABEL_INDENT;\r\n var availableLabelWidth = layout.centerX - canvas.left - radius;\r\n if (sizeLabels.common + RADIAL_LABEL_INDENT > availableLabelWidth) {\r\n averageWidthLabels = getAverageLabelWidth(layout.centerX, layout.radiusOuter, canvas, sizeLabels)\r\n }\r\n correctLabelRadius(sizeLabels, radius, series, canvas, averageWidthLabels, layout.centerX)\r\n },\r\n needMoreSpaceForPanesCanvas(panes, rotated, fixedSizeCallback) {\r\n var options = this._options;\r\n var width = options.width;\r\n var height = options.height;\r\n var piePercentage = options.piePercentage;\r\n var percentageIsValid = _isNumber(piePercentage);\r\n var needHorizontalSpace = 0;\r\n var needVerticalSpace = 0;\r\n panes.forEach(pane => {\r\n var paneCanvas = pane.canvas;\r\n var minSize = percentageIsValid ? _min(paneCanvas.width, paneCanvas.height) * piePercentage : void 0;\r\n var paneSized = fixedSizeCallback ? fixedSizeCallback(pane) : {\r\n width: false,\r\n height: false\r\n };\r\n var needPaneHorizontalSpace = !paneSized.width ? (percentageIsValid ? minSize : width) - (paneCanvas.width - paneCanvas.left - paneCanvas.right) : 0;\r\n var needPaneVerticalSpace = !paneSized.height ? (percentageIsValid ? minSize : height) - (paneCanvas.height - paneCanvas.top - paneCanvas.bottom) : 0;\r\n if (rotated) {\r\n needHorizontalSpace += needPaneHorizontalSpace > 0 ? needPaneHorizontalSpace : 0;\r\n needVerticalSpace = _max(needPaneVerticalSpace > 0 ? needPaneVerticalSpace : 0, needVerticalSpace)\r\n } else {\r\n needHorizontalSpace = _max(needPaneHorizontalSpace > 0 ? needPaneHorizontalSpace : 0, needHorizontalSpace);\r\n needVerticalSpace += needPaneVerticalSpace > 0 ? needPaneVerticalSpace : 0\r\n }\r\n });\r\n return needHorizontalSpace > 0 || needVerticalSpace > 0 ? {\r\n width: needHorizontalSpace,\r\n height: needVerticalSpace\r\n } : false\r\n },\r\n layoutInsideLegend: function(legend, canvas) {\r\n var layoutOptions = legend.getLayoutOptions();\r\n if (!layoutOptions) {\r\n return\r\n }\r\n var position = layoutOptions.position;\r\n var cutSide = layoutOptions.cutSide;\r\n var my = {\r\n horizontal: position.horizontal,\r\n vertical: position.vertical\r\n };\r\n canvas[layoutOptions.cutLayoutSide] += \"horizontal\" === layoutOptions.cutSide ? layoutOptions.width : layoutOptions.height;\r\n my[cutSide] = {\r\n left: \"right\",\r\n right: \"left\",\r\n top: \"bottom\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n } [my[cutSide]];\r\n legend.position({\r\n of: toLayoutElementCoords(canvas),\r\n my: my,\r\n at: position\r\n })\r\n }\r\n};\r\nexport {\r\n LayoutManager\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/chart_theme_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isString as _isString,\r\n isDefined as _isDefined,\r\n isNumeric,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n BaseThemeManager\r\n} from \"../core/base_theme_manager\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nexport var ThemeManager = BaseThemeManager.inherit(function() {\r\n var processAxisOptions = function(axisOptions) {\r\n if (!axisOptions) {\r\n return {}\r\n }\r\n axisOptions = extend(true, {}, axisOptions);\r\n axisOptions.title = (options = axisOptions.title, _isString(options) ? {\r\n text: options\r\n } : options);\r\n var options;\r\n if (\"logarithmic\" === axisOptions.type && axisOptions.logarithmBase <= 0 || axisOptions.logarithmBase && !isNumeric(axisOptions.logarithmBase)) {\r\n axisOptions.logarithmBase = void 0;\r\n axisOptions.logarithmBaseError = true\r\n }\r\n if (axisOptions.label) {\r\n if (axisOptions.label.alignment) {\r\n axisOptions.label.userAlignment = true\r\n }\r\n }\r\n return axisOptions\r\n };\r\n var applyParticularAxisOptions = function(name, userOptions, rotated) {\r\n var theme = this._theme;\r\n var position = !(rotated ^ \"valueAxis\" === name) ? \"horizontalAxis\" : \"verticalAxis\";\r\n var processedUserOptions = processAxisOptions(userOptions);\r\n var commonAxisSettings = processAxisOptions(this._userOptions.commonAxisSettings);\r\n var mergeOptions = extend(true, {}, theme.commonAxisSettings, theme[position], theme[name], commonAxisSettings, processedUserOptions);\r\n mergeOptions.workWeek = processedUserOptions.workWeek || theme[name].workWeek;\r\n mergeOptions.forceUserTickInterval |= _isDefined(processedUserOptions.tickInterval) && !_isDefined(processedUserOptions.axisDivisionFactor);\r\n return mergeOptions\r\n };\r\n var mergeOptions = function(name, userOptions) {\r\n userOptions = userOptions || this._userOptions[name];\r\n var theme = this._theme[name];\r\n var result = this._mergedSettings[name];\r\n if (result) {\r\n return result\r\n }\r\n if (isPlainObject(theme) && isPlainObject(userOptions)) {\r\n result = extend(true, {}, theme, userOptions)\r\n } else {\r\n result = _isDefined(userOptions) ? userOptions : theme\r\n }\r\n this._mergedSettings[name] = result;\r\n return result\r\n };\r\n var applyParticularTheme = {\r\n base: mergeOptions,\r\n argumentAxis: applyParticularAxisOptions,\r\n valueAxisRangeSelector: function() {\r\n return mergeOptions.call(this, \"valueAxis\")\r\n },\r\n valueAxis: applyParticularAxisOptions,\r\n series: function(name, userOptions, seriesCount) {\r\n var that = this;\r\n var theme = that._theme;\r\n var userCommonSettings = that._userOptions.commonSeriesSettings || {};\r\n var themeCommonSettings = theme.commonSeriesSettings;\r\n var widgetType = that._themeSection.split(\".\").slice(-1)[0];\r\n var type = _normalizeEnum(userOptions.type || userCommonSettings.type || themeCommonSettings.type || \"pie\" === widgetType && theme.type);\r\n var palette = that.palette;\r\n var isBar = ~type.indexOf(\"bar\");\r\n var isLine = ~type.indexOf(\"line\");\r\n var isArea = ~type.indexOf(\"area\");\r\n var isBubble = \"bubble\" === type;\r\n var mainSeriesColor;\r\n var resolveLabelsOverlapping = that.getOptions(\"resolveLabelsOverlapping\");\r\n var containerBackgroundColor = that.getOptions(\"containerBackgroundColor\");\r\n var seriesTemplate = applyParticularTheme.seriesTemplate.call(this);\r\n var seriesVisibility;\r\n if (isBar || isBubble) {\r\n userOptions = extend(true, {}, userCommonSettings, userCommonSettings[type], userOptions);\r\n seriesVisibility = userOptions.visible;\r\n userCommonSettings = {\r\n type: {}\r\n };\r\n extend(true, userOptions, userOptions.point);\r\n userOptions.visible = seriesVisibility\r\n }\r\n var settings = extend(true, {\r\n aggregation: {}\r\n }, themeCommonSettings, themeCommonSettings[type], userCommonSettings, userCommonSettings[type], userOptions);\r\n settings.aggregation.enabled = \"chart\" === widgetType && !!settings.aggregation.enabled;\r\n settings.type = type;\r\n settings.widgetType = widgetType;\r\n settings.containerBackgroundColor = containerBackgroundColor;\r\n if (\"pie\" !== widgetType) {\r\n mainSeriesColor = settings.color || palette.getNextColor(seriesCount)\r\n } else {\r\n mainSeriesColor = function(argument, index, count) {\r\n var cat = \"\".concat(argument, \"-\").concat(index);\r\n if (!that._multiPieColors[cat]) {\r\n that._multiPieColors[cat] = palette.getNextColor(count)\r\n }\r\n return that._multiPieColors[cat]\r\n }\r\n }\r\n settings.mainSeriesColor = mainSeriesColor;\r\n settings.resolveLabelsOverlapping = resolveLabelsOverlapping;\r\n if (settings.label && (isLine || isArea && \"rangearea\" !== type || \"scatter\" === type)) {\r\n settings.label.position = \"outside\"\r\n }\r\n if (seriesTemplate) {\r\n settings.nameField = seriesTemplate.nameField\r\n }\r\n return settings\r\n },\r\n animation: function(name) {\r\n var userOptions = this._userOptions[name];\r\n userOptions = isPlainObject(userOptions) ? userOptions : _isDefined(userOptions) ? {\r\n enabled: !!userOptions\r\n } : {};\r\n return mergeOptions.call(this, name, userOptions)\r\n },\r\n seriesTemplate() {\r\n var value = mergeOptions.call(this, \"seriesTemplate\");\r\n if (value) {\r\n value.nameField = value.nameField || \"series\"\r\n }\r\n return value\r\n },\r\n zoomAndPan() {\r\n function parseOption(option) {\r\n option = _normalizeEnum(option);\r\n var pan = \"pan\" === option || \"both\" === option;\r\n var zoom = \"zoom\" === option || \"both\" === option;\r\n return {\r\n pan: pan,\r\n zoom: zoom,\r\n none: !pan && !zoom\r\n }\r\n }\r\n var options = mergeOptions.call(this, \"zoomAndPan\");\r\n return {\r\n valueAxis: parseOption(options.valueAxis),\r\n argumentAxis: parseOption(options.argumentAxis),\r\n dragToZoom: !!options.dragToZoom,\r\n dragBoxStyle: {\r\n class: \"dxc-shutter\",\r\n fill: options.dragBoxStyle.color,\r\n opacity: options.dragBoxStyle.opacity\r\n },\r\n panKey: options.panKey,\r\n allowMouseWheel: !!options.allowMouseWheel,\r\n allowTouchGestures: !!options.allowTouchGestures\r\n }\r\n }\r\n };\r\n return {\r\n _themeSection: \"chart\",\r\n ctor: function(params) {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n var options = params.options || {};\r\n that._userOptions = options;\r\n that._mergeAxisTitleOptions = [];\r\n that._multiPieColors = {};\r\n that._callback = noop\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that.palette && that.palette.dispose();\r\n that.palette = that._userOptions = that._mergedSettings = that._multiPieColors = null;\r\n return that.callBase.apply(that, arguments)\r\n },\r\n resetPalette: function() {\r\n this.palette.reset();\r\n this._multiPieColors = {}\r\n },\r\n getOptions: function(name) {\r\n return (applyParticularTheme[name] || applyParticularTheme.base).apply(this, arguments)\r\n },\r\n refresh: function() {\r\n this._mergedSettings = {};\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that.updatePalette()\r\n },\r\n resetOptions: function(name) {\r\n this._mergedSettings[name] = null\r\n },\r\n update: function(options) {\r\n this._userOptions = options\r\n },\r\n updatePalette: function() {\r\n this.palette = this.createPalette(this.getOptions(\"palette\"), {\r\n useHighlight: true,\r\n extensionMode: this.getOptions(\"paletteExtensionMode\")\r\n })\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/viz/components/consts.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n events: {\r\n mouseover: \"mouseover\",\r\n mouseout: \"mouseout\",\r\n mousemove: \"mousemove\",\r\n touchstart: \"touchstart\",\r\n touchmove: \"touchmove\",\r\n touchend: \"touchend\",\r\n mousedown: \"mousedown\",\r\n mouseup: \"mouseup\",\r\n click: \"click\",\r\n selectSeries: \"selectseries\",\r\n deselectSeries: \"deselectseries\",\r\n selectPoint: \"selectpoint\",\r\n deselectPoint: \"deselectpoint\",\r\n showPointTooltip: \"showpointtooltip\",\r\n hidePointTooltip: \"hidepointtooltip\"\r\n },\r\n states: {\r\n hover: \"hover\",\r\n normal: \"normal\",\r\n selection: \"selection\",\r\n normalMark: 0,\r\n hoverMark: 1,\r\n selectedMark: 2,\r\n applyHover: \"applyHover\",\r\n applySelected: \"applySelected\",\r\n resetItem: \"resetItem\"\r\n },\r\n radialLabelIndent: 30,\r\n pieLabelSpacing: 10,\r\n pieSeriesSpacing: 4\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/data_validator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined as _isDefined,\r\n isFunction as _isFunction,\r\n isString as _isString,\r\n isDate as _isDate,\r\n isNumeric as _isNumber,\r\n isObject as _isObject\r\n} from \"../../core/utils/type\";\r\nvar STRING = \"string\";\r\nvar NUMERIC = \"numeric\";\r\nvar DATETIME = \"datetime\";\r\nvar DISCRETE = \"discrete\";\r\nvar SEMIDISCRETE = \"semidiscrete\";\r\nvar CONTINUOUS = \"continuous\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar VALUE_TYPE = \"valueType\";\r\nvar ARGUMENT_TYPE = \"argumentType\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n enumParser\r\n} from \"../core/utils\";\r\nvar axisTypeParser = enumParser([STRING, NUMERIC, DATETIME]);\r\nimport {\r\n getParser as _getParser\r\n} from \"./parse_utils\";\r\nvar _isArray = Array.isArray;\r\n\r\nfunction groupingValues(data, others, valueField, index) {\r\n if (index >= 0) {\r\n data.slice(index).forEach((function(cell) {\r\n if (_isDefined(cell[valueField])) {\r\n others[valueField] += cell[valueField];\r\n cell[valueField] = void 0\r\n }\r\n }))\r\n }\r\n}\r\n\r\nfunction processGroups(groups) {\r\n groups.forEach((function(group) {\r\n group.valueType = group.valueAxisType = null;\r\n group.series.forEach((function(series) {\r\n series.updateDataType({})\r\n }));\r\n group.valueAxis && group.valueAxis.resetTypes(VALUE_TYPE)\r\n }))\r\n}\r\n\r\nfunction sortValues(data, asc, selector) {\r\n var func = asc ? function(a, b) {\r\n return a - b\r\n } : function(a, b) {\r\n return b - a\r\n };\r\n data.sort((function(a, b) {\r\n var valA = selector(a);\r\n var valB = selector(b);\r\n var aa = _isDefined(valA) ? 1 : 0;\r\n var bb = _isDefined(valB) ? 1 : 0;\r\n return aa && bb ? func(valA, valB) : func(aa, bb)\r\n }));\r\n return data\r\n}\r\n\r\nfunction resetArgumentAxes(axes) {\r\n axes && axes.forEach((function(axis) {\r\n axis.resetTypes(ARGUMENT_TYPE)\r\n }))\r\n}\r\n\r\nfunction parseCategories(categories, parser) {\r\n var newArray = [];\r\n categories.forEach((function(category) {\r\n var parsedCategory = parser(category);\r\n void 0 !== parsedCategory && newArray.push(parsedCategory)\r\n }));\r\n return newArray\r\n}\r\n\r\nfunction parseAxisCategories(groupsData, parsers) {\r\n var argumentCategories = groupsData.argumentOptions && groupsData.argumentOptions.categories;\r\n groupsData.groups.forEach((function(valueGroup, i) {\r\n var categories = valueGroup.valueOptions && valueGroup.valueOptions.categories;\r\n if (categories) {\r\n valueGroup.valueOptions.categories = parseCategories(categories, parsers[i + 1])\r\n }\r\n }));\r\n if (argumentCategories) {\r\n groupsData.argumentOptions.categories = parseCategories(argumentCategories, parsers[0])\r\n }\r\n}\r\n\r\nfunction eigen(x) {\r\n return x\r\n}\r\n\r\nfunction getType(unit, type) {\r\n var result = type;\r\n if (type === STRING || _isString(unit)) {\r\n result = STRING\r\n } else if (type === DATETIME || _isDate(unit)) {\r\n result = DATETIME\r\n } else if (_isNumber(unit)) {\r\n result = NUMERIC\r\n }\r\n return result\r\n}\r\n\r\nfunction correctAxisType(type, axisType, hasCategories, incidentOccurred) {\r\n if (type === STRING && (axisType === CONTINUOUS || axisType === LOGARITHMIC || axisType === SEMIDISCRETE)) {\r\n incidentOccurred(\"E2002\")\r\n }\r\n return axisType === LOGARITHMIC ? LOGARITHMIC : hasCategories || axisType === DISCRETE || type === STRING ? DISCRETE : axisType === SEMIDISCRETE ? SEMIDISCRETE : CONTINUOUS\r\n}\r\n\r\nfunction validUnit(unit, field, incidentOccurred) {\r\n if (unit) {\r\n incidentOccurred(!_isNumber(unit) && !_isDate(unit) && !_isString(unit) ? \"E2003\" : \"E2004\", [field])\r\n }\r\n}\r\n\r\nfunction createParserUnit(type, axisType, incidentOccurred) {\r\n var parser = type ? _getParser(type) : eigen;\r\n var filterInfinity = axisType !== DISCRETE ? function(x) {\r\n return isFinite(x) || void 0 === x ? x : null\r\n } : eigen;\r\n return function(unit, field) {\r\n var parseUnit = filterInfinity(parser(unit));\r\n if (void 0 === parseUnit) {\r\n validUnit(unit, field, incidentOccurred)\r\n }\r\n return parseUnit\r\n }\r\n}\r\n\r\nfunction prepareParsers(groupsData, incidentOccurred) {\r\n var argumentParser = createParserUnit(groupsData.argumentType, groupsData.argumentAxisType, incidentOccurred);\r\n var sizeParser;\r\n var valueParser;\r\n var categoryParsers = [argumentParser];\r\n var cache = {};\r\n var list = [];\r\n groupsData.groups.forEach((function(group, groupIndex) {\r\n group.series.forEach((function(series) {\r\n valueParser = createParserUnit(group.valueType, group.valueAxisType, incidentOccurred);\r\n sizeParser = createParserUnit(NUMERIC, CONTINUOUS, incidentOccurred);\r\n cache[series.getArgumentField()] = argumentParser;\r\n series.getValueFields().forEach((function(field) {\r\n categoryParsers[groupIndex + 1] = valueParser;\r\n cache[field] = valueParser\r\n }));\r\n if (series.getSizeField()) {\r\n cache[series.getSizeField()] = sizeParser\r\n }\r\n }))\r\n }));\r\n for (var field in cache) {\r\n list.push([field, cache[field]])\r\n }\r\n list.length && parseAxisCategories(groupsData, categoryParsers);\r\n return list\r\n}\r\n\r\nfunction getParsedCell(cell, parsers) {\r\n var i;\r\n var ii = parsers.length;\r\n var obj = extend({}, cell);\r\n var field;\r\n var value;\r\n for (i = 0; i < ii; ++i) {\r\n field = parsers[i][0];\r\n value = cell[field];\r\n obj[field] = parsers[i][1](value, field)\r\n }\r\n return obj\r\n}\r\n\r\nfunction parse(data, parsers) {\r\n var parsedData = [];\r\n var i;\r\n var ii = data.length;\r\n parsedData.length = ii;\r\n for (i = 0; i < ii; ++i) {\r\n parsedData[i] = getParsedCell(data[i], parsers)\r\n }\r\n return parsedData\r\n}\r\n\r\nfunction findIndexByThreshold(data, valueField, threshold) {\r\n var i;\r\n var ii = data.length;\r\n var value;\r\n for (i = 0; i < ii; ++i) {\r\n value = data[i][valueField];\r\n if (_isDefined(value) && threshold > value) {\r\n break\r\n }\r\n }\r\n return i\r\n}\r\n\r\nfunction groupMinSlices(originalData, argumentField, valueField, smallValuesGrouping) {\r\n smallValuesGrouping = smallValuesGrouping || {};\r\n var mode = smallValuesGrouping.mode;\r\n var others = {};\r\n if (!mode || \"none\" === mode) {\r\n return\r\n }\r\n others[argumentField] = String(smallValuesGrouping.groupName || \"others\");\r\n others[valueField] = 0;\r\n var data = sortValues(originalData.slice(), false, (function(a) {\r\n return a[valueField]\r\n }));\r\n groupingValues(data, others, valueField, \"smallValueThreshold\" === mode ? findIndexByThreshold(data, valueField, smallValuesGrouping.threshold) : smallValuesGrouping.topCount);\r\n others[valueField] && originalData.push(others)\r\n}\r\n\r\nfunction groupPieData(data, groupsData) {\r\n var firstSeries = groupsData.groups[0] && groupsData.groups[0].series[0];\r\n var isPie = firstSeries && (\"pie\" === firstSeries.type || \"doughnut\" === firstSeries.type || \"donut\" === firstSeries.type);\r\n if (!isPie) {\r\n return\r\n }\r\n groupsData.groups.forEach((function(group) {\r\n group.series.forEach((function(series) {\r\n groupMinSlices(data, series.getArgumentField(), series.getValueFields()[0], series.getOptions().smallValuesGrouping)\r\n }))\r\n }))\r\n}\r\n\r\nfunction addUniqueItemToCollection(item, collection, itemsHash) {\r\n if (!itemsHash[item]) {\r\n collection.push(item);\r\n itemsHash[item] = true\r\n }\r\n}\r\n\r\nfunction getUniqueArgumentFields(groupsData) {\r\n var uniqueArgumentFields = [];\r\n var hash = {};\r\n groupsData.groups.forEach((function(group) {\r\n group.series.forEach((function(series) {\r\n addUniqueItemToCollection(series.getArgumentField(), uniqueArgumentFields, hash)\r\n }))\r\n }));\r\n return uniqueArgumentFields\r\n}\r\n\r\nfunction sort(a, b) {\r\n var result = a - b;\r\n if (isNaN(result)) {\r\n if (!_isDefined(a)) {\r\n return 1\r\n }\r\n if (!_isDefined(b)) {\r\n return -1\r\n }\r\n return 0\r\n }\r\n return result\r\n}\r\n\r\nfunction sortByArgument(data, argumentField) {\r\n return data.slice().sort((function(a, b) {\r\n return sort(a[argumentField], b[argumentField])\r\n }))\r\n}\r\n\r\nfunction sortByCallback(data, callback) {\r\n return data.slice().sort(callback)\r\n}\r\n\r\nfunction checkValueTypeOfGroup(group, cell) {\r\n group.series.forEach((function(series) {\r\n series.getValueFields().forEach((function(field) {\r\n group.valueType = getType(cell[field], group.valueType)\r\n }))\r\n }));\r\n return group.valueType\r\n}\r\n\r\nfunction getSortByCategories(categories) {\r\n var hash = {};\r\n categories.forEach((function(value, i) {\r\n hash[value] = i\r\n }));\r\n return function(data, argumentField) {\r\n return sortValues(data.slice(), true, (function(a) {\r\n return hash[a[argumentField]]\r\n }))\r\n }\r\n}\r\n\r\nfunction sortData(data, groupsData, options, uniqueArgumentFields) {\r\n var dataByArguments = {};\r\n var isDiscrete = groupsData.argumentAxisType === DISCRETE;\r\n var userCategories = isDiscrete && groupsData.argumentOptions && groupsData.argumentOptions.categories;\r\n var sortFunction = function(data) {\r\n return data\r\n };\r\n var sortingMethodOption = options.sortingMethod;\r\n var reSortCategories;\r\n if (!userCategories && _isFunction(sortingMethodOption)) {\r\n data = sortByCallback(data, sortingMethodOption)\r\n }\r\n if (isDiscrete) {\r\n groupsData.categories = getCategories(data, uniqueArgumentFields, userCategories)\r\n }\r\n if (userCategories || !_isFunction(sortingMethodOption) && groupsData.argumentType === STRING && !options._skipArgumentSorting) {\r\n sortFunction = getSortByCategories(groupsData.categories)\r\n } else if (true === sortingMethodOption && groupsData.argumentType !== STRING) {\r\n sortFunction = sortByArgument;\r\n reSortCategories = isDiscrete\r\n }\r\n uniqueArgumentFields.forEach((function(field) {\r\n dataByArguments[field] = sortFunction(data, field)\r\n }));\r\n if (reSortCategories) {\r\n groupsData.categories = groupsData.categories.sort(sort)\r\n }\r\n return dataByArguments\r\n}\r\n\r\nfunction checkItemExistence(collection, item) {\r\n return -1 === collection.map((function(collectionItem) {\r\n return collectionItem.valueOf()\r\n })).indexOf(item.valueOf())\r\n}\r\n\r\nfunction getCategories(data, uniqueArgumentFields, userCategories) {\r\n var categories = userCategories ? userCategories.slice() : [];\r\n uniqueArgumentFields.forEach((function(field) {\r\n data.forEach((function(item) {\r\n var dataItem = item[field];\r\n _isDefined(dataItem) && checkItemExistence(categories, dataItem) && categories.push(dataItem)\r\n }))\r\n }));\r\n return categories\r\n}\r\n\r\nfunction checkArgumentTypeOfGroup(series, cell, groupsData) {\r\n series.forEach((function(currentSeries) {\r\n groupsData.argumentType = getType(cell[currentSeries.getArgumentField()], groupsData.argumentType)\r\n }));\r\n return groupsData.argumentType\r\n}\r\n\r\nfunction checkType(data, groupsData, checkTypeForAllData) {\r\n var groupsWithUndefinedValueType = [];\r\n var groupsWithUndefinedArgumentType = [];\r\n var argumentTypeGroup = groupsData.argumentOptions && axisTypeParser(groupsData.argumentOptions.argumentType);\r\n var groupsIndexes;\r\n groupsData.groups.forEach((function(group) {\r\n if (!group.series.length) {\r\n return\r\n }\r\n var valueTypeGroup = group.valueOptions && axisTypeParser(group.valueOptions.valueType);\r\n group.valueType = valueTypeGroup;\r\n groupsData.argumentType = argumentTypeGroup;\r\n !valueTypeGroup && groupsWithUndefinedValueType.push(group);\r\n !argumentTypeGroup && groupsWithUndefinedArgumentType.push(group)\r\n }));\r\n if (groupsWithUndefinedValueType.length || groupsWithUndefinedArgumentType.length) {\r\n groupsIndexes = groupsWithUndefinedValueType.map((function(_, index) {\r\n return index\r\n }));\r\n data.some((function(cell) {\r\n var defineArg;\r\n groupsWithUndefinedValueType.forEach((function(group, groupIndex) {\r\n if (checkValueTypeOfGroup(group, cell) && groupsIndexes.indexOf(groupIndex) >= 0) {\r\n groupsIndexes.splice(groupIndex, 1)\r\n }\r\n }));\r\n if (!defineArg) {\r\n groupsWithUndefinedArgumentType.forEach((function(group) {\r\n defineArg = checkArgumentTypeOfGroup(group.series, cell, groupsData)\r\n }))\r\n }\r\n if (!checkTypeForAllData && defineArg && 0 === groupsIndexes.length) {\r\n return true\r\n }\r\n }))\r\n }\r\n}\r\n\r\nfunction checkAxisType(groupsData, incidentOccurred) {\r\n var argumentOptions = groupsData.argumentOptions || {};\r\n var userArgumentCategories = argumentOptions && argumentOptions.categories || [];\r\n var argumentAxisType = correctAxisType(groupsData.argumentType, argumentOptions.type, !!userArgumentCategories.length, incidentOccurred);\r\n groupsData.groups.forEach((function(group) {\r\n var valueOptions = group.valueOptions || {};\r\n var valueCategories = valueOptions.categories || [];\r\n var valueAxisType = correctAxisType(group.valueType, valueOptions.type, !!valueCategories.length, incidentOccurred);\r\n group.series.forEach((function(series) {\r\n var optionsSeries = {};\r\n optionsSeries.argumentAxisType = argumentAxisType;\r\n optionsSeries.valueAxisType = valueAxisType;\r\n groupsData.argumentAxisType = groupsData.argumentAxisType || optionsSeries.argumentAxisType;\r\n group.valueAxisType = group.valueAxisType || optionsSeries.valueAxisType;\r\n optionsSeries.argumentType = groupsData.argumentType;\r\n optionsSeries.valueType = group.valueType;\r\n optionsSeries.showZero = valueOptions.showZero;\r\n series.updateDataType(optionsSeries)\r\n }));\r\n group.valueAxisType = group.valueAxisType || valueAxisType;\r\n if (group.valueAxis) {\r\n group.valueAxis.setTypes(group.valueAxisType, group.valueType, VALUE_TYPE);\r\n group.valueAxis.validate()\r\n }\r\n }));\r\n groupsData.argumentAxisType = groupsData.argumentAxisType || argumentAxisType;\r\n if (groupsData.argumentAxes) {\r\n groupsData.argumentAxes.forEach((function(axis) {\r\n axis.setTypes(groupsData.argumentAxisType, groupsData.argumentType, ARGUMENT_TYPE);\r\n axis.validate()\r\n }))\r\n }\r\n}\r\n\r\nfunction verifyData(source, incidentOccurred) {\r\n var data = [];\r\n var sourceIsDefined = _isDefined(source);\r\n var hasError = sourceIsDefined && !_isArray(source);\r\n var i;\r\n var ii;\r\n var k;\r\n var item;\r\n if (sourceIsDefined && !hasError) {\r\n for (i = 0, ii = source.length, k = 0; i < ii; ++i) {\r\n item = source[i];\r\n if (_isObject(item)) {\r\n data[k++] = item\r\n } else if (item) {\r\n hasError = true\r\n }\r\n }\r\n }\r\n if (hasError) {\r\n incidentOccurred(\"E2001\")\r\n }\r\n return data\r\n}\r\nexport function validateData(data, groupsData, incidentOccurred, options) {\r\n data = verifyData(data, incidentOccurred);\r\n groupsData.argumentType = groupsData.argumentAxisType = null;\r\n processGroups(groupsData.groups);\r\n resetArgumentAxes(groupsData.argumentAxes);\r\n checkType(data, groupsData, options.checkTypeForAllData);\r\n checkAxisType(groupsData, incidentOccurred);\r\n if (options.convertToAxisDataType) {\r\n data = parse(data, prepareParsers(groupsData, incidentOccurred))\r\n }\r\n groupPieData(data, groupsData);\r\n var dataByArgumentFields = sortData(data, groupsData, options, getUniqueArgumentFields(groupsData));\r\n return dataByArgumentFields\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/components/parse_utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar parsers = {\r\n string: function(val) {\r\n return isDefined(val) ? \"\" + val : val\r\n },\r\n numeric: function(val) {\r\n if (!isDefined(val)) {\r\n return val\r\n }\r\n var parsedVal = Number(val);\r\n if (isNaN(parsedVal)) {\r\n parsedVal = void 0\r\n }\r\n return parsedVal\r\n },\r\n datetime: function(val) {\r\n if (!isDefined(val)) {\r\n return val\r\n }\r\n var parsedVal;\r\n var numVal = Number(val);\r\n if (!isNaN(numVal)) {\r\n parsedVal = new Date(numVal)\r\n } else {\r\n parsedVal = dateSerialization.deserializeDate(val)\r\n }\r\n if (isNaN(Number(parsedVal))) {\r\n parsedVal = void 0\r\n }\r\n return parsedVal\r\n }\r\n};\r\nexport function correctValueType(type) {\r\n return \"numeric\" === type || \"datetime\" === type || \"string\" === type ? type : \"\"\r\n}\r\nexport var getParser = function(valueType) {\r\n return parsers[correctValueType(valueType)] || noop\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/annotations.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Tooltip\r\n} from \"../core/tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n patchFontOptions\r\n} from \"./utils\";\r\nimport {\r\n Plaque\r\n} from \"./plaque\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nvar getDocument = domAdapter.getDocument;\r\nvar EVENT_NS = \"annotations\";\r\nvar DOT_EVENT_NS = \".\" + EVENT_NS;\r\nvar POINTER_ACTION = addNamespace([pointerEvents.down, pointerEvents.move], EVENT_NS);\r\nvar POINTER_UP_EVENT_NAME = addNamespace(pointerEvents.up, EVENT_NS);\r\nvar DRAG_START_EVENT_NAME = dragEventStart + DOT_EVENT_NS;\r\nvar DRAG_EVENT_NAME = dragEventMove + DOT_EVENT_NS;\r\nvar DRAG_END_EVENT_NAME = dragEventEnd + DOT_EVENT_NS;\r\n\r\nfunction coreAnnotation(options, contentTemplate) {\r\n return {\r\n draw: function(widget, group) {\r\n var annotationGroup = widget._renderer.g().append(group).css(patchFontOptions(options.font));\r\n if (this.plaque) {\r\n this.plaque.clear()\r\n }\r\n this.plaque = new Plaque(extend(true, {}, options, {\r\n cornerRadius: (options.border || {}).cornerRadius\r\n }), widget, annotationGroup, contentTemplate, widget._isAnnotationBounded(options));\r\n this.plaque.draw(widget._getAnnotationCoords(this));\r\n if (options.allowDragging) {\r\n annotationGroup.on(DRAG_START_EVENT_NAME, {\r\n immediate: true\r\n }, e => {\r\n this._dragOffsetX = this.plaque.x - e.pageX;\r\n this._dragOffsetY = this.plaque.y - e.pageY\r\n }).on(DRAG_EVENT_NAME, e => {\r\n this.plaque.move(e.pageX + this._dragOffsetX, e.pageY + this._dragOffsetY)\r\n }).on(DRAG_END_EVENT_NAME, e => {\r\n this.offsetX = (this.offsetX || 0) + e.offset.x;\r\n this.offsetY = (this.offsetY || 0) + e.offset.y\r\n })\r\n }\r\n },\r\n hitTest(x, y) {\r\n return this.plaque.hitTest(x, y)\r\n },\r\n showTooltip(tooltip, _ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var that = this;\r\n var options = that.options;\r\n if (tooltip.annotation !== that) {\r\n tooltip.setTemplate(options.tooltipTemplate);\r\n var callback = result => {\r\n result && (tooltip.annotation = that)\r\n };\r\n callback(tooltip.show(options, {\r\n x: x,\r\n y: y\r\n }, {\r\n target: options\r\n }, options.customizeTooltip, callback))\r\n } else if (!tooltip.isCursorOnTooltip(x, y)) {\r\n tooltip.move(x, y)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTemplateFunction(options, widget) {\r\n var template;\r\n if (\"text\" === options.type) {\r\n template = function(item, groupElement) {\r\n var text = widget._renderer.text(item.text).attr({\r\n class: item.cssClass\r\n }).append({\r\n element: groupElement\r\n });\r\n if (item.width > 0 || item.height > 0) {\r\n text.setMaxSize(item.width, item.height, {\r\n wordWrap: item.wordWrap,\r\n textOverflow: item.textOverflow\r\n })\r\n }\r\n }\r\n } else if (\"image\" === options.type) {\r\n template = function(item, groupElement) {\r\n var {\r\n width: width,\r\n height: height,\r\n url: url,\r\n location: location\r\n } = item.image || {};\r\n var {\r\n width: outerWidth,\r\n height: outerHeight\r\n } = item;\r\n var imageWidth = outerWidth > 0 ? Math.min(width, outerWidth) : width;\r\n var imageHeight = outerHeight > 0 ? Math.min(height, outerHeight) : height;\r\n widget._renderer.image(0, 0, imageWidth, imageHeight, url, location || \"center\").append({\r\n element: groupElement\r\n })\r\n }\r\n } else if (\"custom\" === options.type) {\r\n template = options.template\r\n }\r\n return template\r\n}\r\n\r\nfunction getImageObject(image) {\r\n return \"string\" === typeof image ? {\r\n url: image\r\n } : image\r\n}\r\nexport var createAnnotations = function(widget, items) {\r\n var commonAnnotationSettings = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var customizeAnnotation = arguments.length > 3 ? arguments[3] : void 0;\r\n var pullOptions = arguments.length > 4 ? arguments[4] : void 0;\r\n var commonImageOptions = getImageObject(commonAnnotationSettings.image);\r\n return items.reduce((arr, item) => {\r\n var currentImageOptions = getImageObject(item.image);\r\n var customizedItem = isFunction(customizeAnnotation) ? customizeAnnotation(item) : {};\r\n if (customizedItem) {\r\n customizedItem.image = getImageObject(customizedItem.image)\r\n }\r\n var options = extend(true, {}, commonAnnotationSettings, item, {\r\n image: commonImageOptions\r\n }, {\r\n image: currentImageOptions\r\n }, customizedItem);\r\n var templateFunction = getTemplateFunction(options, widget);\r\n var annotation = templateFunction && extend(true, pullOptions(options), coreAnnotation(options, widget._getTemplate(templateFunction)));\r\n annotation && arr.push(annotation);\r\n return arr\r\n }, [])\r\n};\r\nvar chartPlugin = {\r\n name: \"annotations_chart\",\r\n init() {},\r\n dispose() {},\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var _axis, _axis2;\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY\r\n };\r\n var argCoordName = this._options.silent(\"rotated\") ? \"y\" : \"x\";\r\n var valCoordName = this._options.silent(\"rotated\") ? \"x\" : \"y\";\r\n var argAxis = this.getArgumentAxis();\r\n var argument = argAxis.validateUnit(annotation.argument);\r\n var axis = this.getValueAxis(annotation.axis);\r\n var series;\r\n var pane = null === (_axis = axis) || void 0 === _axis ? void 0 : _axis.pane;\r\n if (annotation.series) {\r\n var _series;\r\n series = this.series.filter(s => s.name === annotation.series)[0];\r\n axis = null === (_series = series) || void 0 === _series ? void 0 : _series.getValueAxis();\r\n isDefined(axis) && (pane = axis.pane)\r\n }\r\n if (isDefined(argument)) {\r\n if (series) {\r\n var center = series.getPointCenterByArg(argument);\r\n center && (coords[argCoordName] = center[argCoordName])\r\n } else {\r\n coords[argCoordName] = argAxis.getTranslator().translate(argument)\r\n }!isDefined(pane) && (pane = argAxis.pane)\r\n }\r\n var value = null === (_axis2 = axis) || void 0 === _axis2 ? void 0 : _axis2.validateUnit(annotation.value);\r\n if (isDefined(value)) {\r\n var _axis3;\r\n coords[valCoordName] = null === (_axis3 = axis) || void 0 === _axis3 ? void 0 : _axis3.getTranslator().translate(value);\r\n !isDefined(pane) && isDefined(axis) && (pane = axis.pane)\r\n }\r\n coords.canvas = this._getCanvasForPane(pane);\r\n if (isDefined(coords[argCoordName]) && !isDefined(value)) {\r\n var _series2;\r\n if (!isDefined(axis) && !isDefined(series)) {\r\n coords[valCoordName] = argAxis.getAxisPosition()\r\n } else if (isDefined(axis) && !isDefined(series)) {\r\n coords[valCoordName] = this._argumentAxes.filter(a => a.pane === axis.pane)[0].getAxisPosition()\r\n } else if (null !== (_series2 = series) && void 0 !== _series2 && _series2.checkSeriesViewportCoord(argAxis, coords[argCoordName])) {\r\n coords[valCoordName] = series.getSeriesPairCoord(coords[argCoordName], true)\r\n }\r\n }\r\n if (!isDefined(argument) && isDefined(coords[valCoordName])) {\r\n if (isDefined(axis) && !isDefined(series)) {\r\n coords[argCoordName] = axis.getAxisPosition()\r\n } else if (isDefined(series)) {\r\n if (series.checkSeriesViewportCoord(axis, coords[valCoordName])) {\r\n coords[argCoordName] = series.getSeriesPairCoord(coords[valCoordName], false)\r\n }\r\n }\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler(event) {\r\n if (this._disposed) {\r\n return\r\n }\r\n var originalEvent = event.originalEvent || {};\r\n var touch = originalEvent.touches && originalEvent.touches[0] || {};\r\n var rootOffset = this._renderer.getRootOffset();\r\n var coords = {\r\n x: touch.pageX || originalEvent.pageX || event.pageX,\r\n y: touch.pageY || originalEvent.pageY || event.pageY\r\n };\r\n var annotation = this._annotations.items.filter(a => a.hitTest(coords.x - rootOffset.left, coords.y - rootOffset.top))[0];\r\n if (!annotation || !annotation.options.tooltipEnabled) {\r\n this._annotations.hideTooltip();\r\n return\r\n }\r\n this._clear();\r\n if (annotation.options.allowDragging && event.type === pointerEvents.down) {\r\n this._annotations._hideToolTipForDrag = true\r\n }\r\n if (!this._annotations._hideToolTipForDrag) {\r\n annotation.showTooltip(this._annotations.tooltip, coords);\r\n event.stopPropagation()\r\n }\r\n },\r\n _isAnnotationBounded: options => isDefined(options.value) || isDefined(options.argument),\r\n _pullOptions: options => ({\r\n type: options.type,\r\n name: options.name,\r\n x: options.x,\r\n y: options.y,\r\n value: options.value,\r\n argument: options.argument,\r\n axis: options.axis,\r\n series: options.series,\r\n options: options,\r\n offsetX: options.offsetX,\r\n offsetY: options.offsetY\r\n }),\r\n _forceAnnotationRender() {\r\n this._change([\"FORCE_RENDER\"])\r\n },\r\n _clear() {\r\n this.hideTooltip();\r\n this.clearHover()\r\n }\r\n }\r\n};\r\nvar polarChartPlugin = {\r\n name: \"annotations_polar_chart\",\r\n init() {},\r\n dispose() {},\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY,\r\n canvas: this._calcCanvas()\r\n };\r\n var argAxis = this.getArgumentAxis();\r\n var argument = argAxis.validateUnit(annotation.argument);\r\n var value = this.getValueAxis().validateUnit(annotation.value);\r\n var radius = annotation.radius;\r\n var angle = annotation.angle;\r\n var pointCoords;\r\n var series;\r\n if (annotation.series) {\r\n series = this.series.filter(s => s.name === annotation.series)[0]\r\n }\r\n extend(true, coords, this.getXYFromPolar(angle, radius, argument, value));\r\n if (isDefined(series)) {\r\n if (isDefined(coords.angle) && !isDefined(value) && !isDefined(radius)) {\r\n if (!isDefined(argument)) {\r\n argument = argAxis.getTranslator().from(isFinite(angle) ? this.getActualAngle(angle) : coords.angle)\r\n }\r\n pointCoords = series.getSeriesPairCoord({\r\n argument: argument,\r\n angle: -coords.angle\r\n }, true)\r\n } else if (isDefined(coords.radius) && !isDefined(argument) && !isDefined(angle)) {\r\n pointCoords = series.getSeriesPairCoord({\r\n radius: coords.radius\r\n }, false)\r\n }\r\n if (isDefined(pointCoords)) {\r\n coords.x = pointCoords.x;\r\n coords.y = pointCoords.y\r\n }\r\n }\r\n if (annotation.series && !isDefined(pointCoords)) {\r\n coords.x = coords.y = void 0\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _isAnnotationBounded: chartPlugin.members._isAnnotationBounded,\r\n _pullOptions(options) {\r\n var polarOptions = extend({}, {\r\n radius: options.radius,\r\n angle: options.angle\r\n }, chartPlugin.members._pullOptions(options));\r\n delete polarOptions.axis;\r\n return polarOptions\r\n },\r\n _forceAnnotationRender: chartPlugin.members._forceAnnotationRender,\r\n _clear: chartPlugin.members._clear\r\n }\r\n};\r\nvar vectorMapPlugin = {\r\n name: \"annotations_vector_map\",\r\n init() {},\r\n dispose() {\r\n this._annotations._offTracker();\r\n this._annotations._offTracker = null\r\n },\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY\r\n };\r\n coords.canvas = this._projection.getCanvas();\r\n if (annotation.coordinates) {\r\n var data = this._projection.toScreenPoint(annotation.coordinates);\r\n coords.x = data[0];\r\n coords.y = data[1]\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _isAnnotationBounded: options => isDefined(options.coordinates),\r\n _pullOptions(options) {\r\n var vectorMapOptions = extend({}, {\r\n coordinates: options.coordinates\r\n }, chartPlugin.members._pullOptions(options));\r\n delete vectorMapOptions.axis;\r\n delete vectorMapOptions.series;\r\n delete vectorMapOptions.argument;\r\n delete vectorMapOptions.value;\r\n return vectorMapOptions\r\n },\r\n _forceAnnotationRender() {\r\n this._change([\"EXTRA_ELEMENTS\"])\r\n },\r\n _getAnnotationStyles: () => ({\r\n \"text-anchor\": \"start\"\r\n }),\r\n _clear() {}\r\n },\r\n extenders: {\r\n _prepareExtraElements() {\r\n var that = this;\r\n var renderElements = () => {\r\n that._renderExtraElements()\r\n };\r\n that._annotations._offTracker = that._tracker.on({\r\n move: renderElements,\r\n zoom: renderElements,\r\n end: renderElements\r\n })\r\n }\r\n }\r\n};\r\nvar pieChartPlugin = {\r\n name: \"annotations_pie_chart\",\r\n init() {},\r\n dispose() {},\r\n members: {\r\n _getAnnotationCoords(annotation) {\r\n var series;\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY,\r\n canvas: this._canvas\r\n };\r\n if (annotation.argument) {\r\n if (annotation.series) {\r\n series = this.getSeriesByName(annotation.series)\r\n } else {\r\n series = this.series[0]\r\n }\r\n var argument = series.getPointsByArg(annotation.argument)[0];\r\n var {\r\n x: x,\r\n y: y\r\n } = argument.getAnnotationCoords(annotation.location);\r\n coords.x = x;\r\n coords.y = y\r\n }\r\n return coords\r\n },\r\n _isAnnotationBounded: options => options.argument,\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _pullOptions(options) {\r\n var pieChartOptions = extend({}, {\r\n location: options.location\r\n }, chartPlugin.members._pullOptions(options));\r\n delete pieChartOptions.axis;\r\n return pieChartOptions\r\n },\r\n _clear: chartPlugin.members._clear,\r\n _forceAnnotationRender: chartPlugin.members._forceAnnotationRender\r\n }\r\n};\r\nvar corePlugin = {\r\n name: \"annotations_core\",\r\n init() {\r\n this._annotations = {\r\n items: [],\r\n _hideToolTipForDrag: false,\r\n tooltip: new Tooltip({\r\n cssClass: \"\".concat(this._rootClassPrefix, \"-annotation-tooltip\"),\r\n eventTrigger: this._eventTrigger,\r\n widgetRoot: this.element(),\r\n widget: this\r\n }),\r\n hideTooltip() {\r\n this.tooltip.annotation = null;\r\n this.tooltip.hide()\r\n },\r\n clearItems() {\r\n this.items.forEach(i => i.plaque.clear());\r\n this.items = []\r\n }\r\n };\r\n this._annotations.tooltip.setRendererOptions(this._getRendererOptions())\r\n },\r\n dispose() {\r\n this._annotationsGroup.linkRemove().linkOff();\r\n eventsEngine.off(getDocument(), DOT_EVENT_NS);\r\n this._annotationsGroup.off(DOT_EVENT_NS);\r\n this._annotations.tooltip && this._annotations.tooltip.dispose()\r\n },\r\n extenders: {\r\n _createHtmlStructure() {\r\n this._annotationsGroup = this._renderer.g().attr({\r\n class: \"\".concat(this._rootClassPrefix, \"-annotations\")\r\n }).css(this._getAnnotationStyles()).linkOn(this._renderer.root, \"annotations\").linkAppend();\r\n eventsEngine.on(getDocument(), POINTER_ACTION, e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!this._annotations.tooltip.isCursorOnTooltip(e.pageX, e.pageY)) {\r\n this._annotations.hideTooltip()\r\n }\r\n });\r\n eventsEngine.on(getDocument(), POINTER_UP_EVENT_NAME, event => {\r\n this._annotations._hideToolTipForDrag = false;\r\n this._annotationsPointerEventHandler(event)\r\n });\r\n this._annotationsGroup.on(POINTER_ACTION, this._annotationsPointerEventHandler.bind(this))\r\n },\r\n _renderExtraElements() {\r\n this._annotationsGroup.clear();\r\n this._annotations.items.forEach(item => item.draw(this, this._annotationsGroup))\r\n },\r\n _stopCurrentHandling() {\r\n this._annotations.hideTooltip()\r\n }\r\n },\r\n members: {\r\n _buildAnnotations() {\r\n this._annotations.clearItems();\r\n var items = this._getOption(\"annotations\", true);\r\n if (!(null !== items && void 0 !== items && items.length)) {\r\n return\r\n }\r\n this._annotations.items = createAnnotations(this, items, this._getOption(\"commonAnnotationSettings\"), this._getOption(\"customizeAnnotation\", true), this._pullOptions)\r\n },\r\n _setAnnotationTooltipOptions() {\r\n var tooltipOptions = extend({}, this._getOption(\"tooltip\"));\r\n tooltipOptions.contentTemplate = tooltipOptions.customizeTooltip = void 0;\r\n this._annotations.tooltip.update(tooltipOptions)\r\n },\r\n _getAnnotationCoords: () => ({}),\r\n _pullOptions: () => ({}),\r\n _getAnnotationStyles: () => ({})\r\n },\r\n customize(constructor) {\r\n constructor.addChange({\r\n code: \"ANNOTATIONITEMS\",\r\n handler() {\r\n this._requestChange([\"ANNOTATIONS\"])\r\n },\r\n isOptionChange: true,\r\n option: \"annotations\"\r\n });\r\n constructor.addChange({\r\n code: \"ANNOTATIONSSETTINGS\",\r\n handler() {\r\n this._requestChange([\"ANNOTATIONS\"])\r\n },\r\n isOptionChange: true,\r\n option: \"commonAnnotationSettings\"\r\n });\r\n constructor.addChange({\r\n code: \"ANNOTATIONS\",\r\n handler() {\r\n this._buildAnnotations();\r\n this._setAnnotationTooltipOptions();\r\n this._forceAnnotationRender()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true\r\n })\r\n },\r\n fontFields: [\"commonAnnotationSettings.font\"]\r\n};\r\nexport var plugins = {\r\n core: corePlugin,\r\n chart: chartPlugin,\r\n polarChart: polarChartPlugin,\r\n vectorMap: vectorMapPlugin,\r\n pieChart: pieChartPlugin\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/palette.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar _floor = Math.floor;\r\nvar _ceil = Math.ceil;\r\nimport _Color from \"../color\";\r\nvar _isArray = Array.isArray;\r\nimport {\r\n isString as _isString\r\n} from \"../core/utils/type\";\r\nvar HIGHLIGHTING_STEP = 50;\r\nvar DEFAULT_PALETTE = \"material\";\r\nvar officePalette = {\r\n simpleSet: [\"#5f8b95\", \"#ba4d51\", \"#af8a53\", \"#955f71\", \"#859666\", \"#7e688c\"],\r\n indicatingSet: [\"#a3b97c\", \"#e1b676\", \"#ec7f83\"],\r\n gradientSet: [\"#5f8b95\", \"#ba4d51\"],\r\n accentColor: \"#ba4d51\"\r\n};\r\nvar palettes = {\r\n [DEFAULT_PALETTE]: {\r\n simpleSet: [\"#1db2f5\", \"#f5564a\", \"#97c95c\", \"#ffc720\", \"#eb3573\", \"#a63db8\"],\r\n indicatingSet: [\"#97c95c\", \"#ffc720\", \"#f5564a\"],\r\n gradientSet: [\"#1db2f5\", \"#97c95c\"],\r\n accentColor: \"#1db2f5\"\r\n },\r\n office: officePalette,\r\n \"harmony light\": {\r\n simpleSet: [\"#fcb65e\", \"#679ec5\", \"#ad79ce\", \"#7abd5c\", \"#e18e92\", \"#b6d623\", \"#b7abea\", \"#85dbd5\"],\r\n indicatingSet: [\"#b6d623\", \"#fcb65e\", \"#e18e92\"],\r\n gradientSet: [\"#7abd5c\", \"#fcb65e\"],\r\n accentColor: \"#679ec5\"\r\n },\r\n \"soft pastel\": {\r\n simpleSet: [\"#60a69f\", \"#78b6d9\", \"#6682bb\", \"#a37182\", \"#eeba69\", \"#90ba58\", \"#456c68\", \"#7565a4\"],\r\n indicatingSet: [\"#90ba58\", \"#eeba69\", \"#a37182\"],\r\n gradientSet: [\"#78b6d9\", \"#eeba69\"],\r\n accentColor: \"#60a69f\"\r\n },\r\n pastel: {\r\n simpleSet: [\"#bb7862\", \"#70b3a1\", \"#bb626a\", \"#057d85\", \"#ab394b\", \"#dac599\", \"#153459\", \"#b1d2c6\"],\r\n indicatingSet: [\"#70b3a1\", \"#dac599\", \"#bb626a\"],\r\n gradientSet: [\"#bb7862\", \"#70b3a1\"],\r\n accentColor: \"#bb7862\"\r\n },\r\n bright: {\r\n simpleSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\", \"#e97f02\", \"#9d419c\", \"#7e4452\", \"#9ab57e\", \"#36a3a6\"],\r\n indicatingSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\"],\r\n gradientSet: [\"#e97f02\", \"#f8ca00\"],\r\n accentColor: \"#e97f02\"\r\n },\r\n soft: {\r\n simpleSet: [\"#cbc87b\", \"#9ab57e\", \"#e55253\", \"#7e4452\", \"#e8c267\", \"#565077\", \"#6babac\", \"#ad6082\"],\r\n indicatingSet: [\"#9ab57e\", \"#e8c267\", \"#e55253\"],\r\n gradientSet: [\"#9ab57e\", \"#e8c267\"],\r\n accentColor: \"#565077\"\r\n },\r\n ocean: {\r\n simpleSet: [\"#75c099\", \"#acc371\", \"#378a8a\", \"#5fa26a\", \"#064970\", \"#38c5d2\", \"#00a7c6\", \"#6f84bb\"],\r\n indicatingSet: [\"#c8e394\", \"#7bc59d\", \"#397c8b\"],\r\n gradientSet: [\"#acc371\", \"#38c5d2\"],\r\n accentColor: \"#378a8a\"\r\n },\r\n vintage: {\r\n simpleSet: [\"#dea484\", \"#efc59c\", \"#cb715e\", \"#eb9692\", \"#a85c4c\", \"#f2c0b5\", \"#c96374\", \"#dd956c\"],\r\n indicatingSet: [\"#ffe5c6\", \"#f4bb9d\", \"#e57660\"],\r\n gradientSet: [\"#efc59c\", \"#cb715e\"],\r\n accentColor: \"#cb715e\"\r\n },\r\n violet: {\r\n simpleSet: [\"#d1a1d1\", \"#eeacc5\", \"#7b5685\", \"#7e7cad\", \"#a13d73\", \"#5b41ab\", \"#e287e2\", \"#689cc1\"],\r\n indicatingSet: [\"#d8e2f6\", \"#d0b2da\", \"#d56a8a\"],\r\n gradientSet: [\"#eeacc5\", \"#7b5685\"],\r\n accentColor: \"#7b5685\"\r\n },\r\n carmine: {\r\n simpleSet: [\"#fb7764\", \"#73d47f\", \"#fed85e\", \"#d47683\", \"#dde392\", \"#757ab2\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#fb7764\", \"#73d47f\"],\r\n accentColor: \"#f05b41\"\r\n },\r\n \"dark moon\": {\r\n simpleSet: [\"#4ddac1\", \"#f4c99a\", \"#80dd9b\", \"#f998b3\", \"#4aaaa0\", \"#a5aef1\"],\r\n indicatingSet: [\"#59d8a4\", \"#f0ad4e\", \"#f9517e\"],\r\n gradientSet: [\"#4ddac1\", \"#f4c99a\"],\r\n accentColor: \"#3debd3\"\r\n },\r\n \"soft blue\": {\r\n simpleSet: [\"#7ab8eb\", \"#97da97\", \"#facb86\", \"#e78683\", \"#839bda\", \"#4db7be\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#7ab8eb\", \"#97da97\"],\r\n accentColor: \"#7ab8eb\"\r\n },\r\n \"dark violet\": {\r\n simpleSet: [\"#9c63ff\", \"#64c064\", \"#eead51\", \"#d2504b\", \"#4b6bbf\", \"#2da7b0\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#9c63ff\", \"#64c064\"],\r\n accentColor: \"#9c63ff\"\r\n },\r\n \"green mist\": {\r\n simpleSet: [\"#3cbab2\", \"#8ed962\", \"#5b9d95\", \"#efcc7c\", \"#f1929f\", \"#4d8dab\"],\r\n indicatingSet: [\"#72d63c\", \"#ffc852\", \"#f74a5e\"],\r\n gradientSet: [\"#3cbab2\", \"#8ed962\"],\r\n accentColor: \"#3cbab2\"\r\n }\r\n};\r\nvar currentPaletteName;\r\nexport function currentPalette(name) {\r\n if (void 0 === name) {\r\n return currentPaletteName || DEFAULT_PALETTE\r\n } else {\r\n name = normalizeEnum(name);\r\n currentPaletteName = name in palettes ? name : void 0\r\n }\r\n}\r\nexport function generateColors(palette, count) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\r\n keepLastColorInEnd: false\r\n };\r\n options.type = options.baseColorSet;\r\n options.extensionMode = options.paletteExtensionMode;\r\n return createPalette(palette, options).generateColors(count)\r\n}\r\nexport function getPalette(palette, parameters) {\r\n parameters = parameters || {};\r\n palette = palette || (void 0 === currentPaletteName ? parameters.themeDefault : currentPalette());\r\n var result;\r\n var type = parameters.type;\r\n if (_isArray(palette)) {\r\n return palette.slice(0)\r\n } else {\r\n if (_isString(palette)) {\r\n result = palettes[normalizeEnum(palette)]\r\n }\r\n if (!result) {\r\n result = palettes[currentPalette()]\r\n }\r\n }\r\n return type ? result[type].slice(0) : result\r\n}\r\nexport function registerPalette(name, palette) {\r\n var item = {};\r\n var paletteName;\r\n if (_isArray(palette)) {\r\n item.simpleSet = palette.slice(0)\r\n } else if (palette) {\r\n item.simpleSet = _isArray(palette.simpleSet) ? palette.simpleSet.slice(0) : void 0;\r\n item.indicatingSet = _isArray(palette.indicatingSet) ? palette.indicatingSet.slice(0) : void 0;\r\n item.gradientSet = _isArray(palette.gradientSet) ? palette.gradientSet.slice(0) : void 0;\r\n item.accentColor = palette.accentColor\r\n }\r\n if (!item.accentColor) {\r\n item.accentColor = item.simpleSet && item.simpleSet[0]\r\n }\r\n if (item.simpleSet || item.indicatingSet || item.gradientSet) {\r\n paletteName = normalizeEnum(name);\r\n extend(palettes[paletteName] = palettes[paletteName] || {}, item)\r\n }\r\n}\r\nexport function getAccentColor(palette, themeDefault) {\r\n palette = getPalette(palette, {\r\n themeDefault: themeDefault\r\n });\r\n return palette.accentColor || palette[0]\r\n}\r\n\r\nfunction RingBuf(buf) {\r\n var ind = 0;\r\n this.next = function() {\r\n var res = buf[ind++];\r\n if (ind === buf.length) {\r\n this.reset()\r\n }\r\n return res\r\n };\r\n this.reset = function() {\r\n ind = 0\r\n }\r\n}\r\n\r\nfunction getAlternateColorsStrategy(palette, parameters) {\r\n var stepHighlight = parameters.useHighlight ? HIGHLIGHTING_STEP : 0;\r\n var paletteSteps = new RingBuf([0, stepHighlight, -stepHighlight]);\r\n var currentPalette = [];\r\n\r\n function _reset() {\r\n var step = paletteSteps.next();\r\n currentPalette = step ? getAlteredPalette(palette, step) : palette.slice(0)\r\n }\r\n return {\r\n getColor: function(index) {\r\n var color = currentPalette[index % palette.length];\r\n if (index % palette.length === palette.length - 1) {\r\n _reset()\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i))\r\n }\r\n return colors\r\n },\r\n reset: function() {\r\n paletteSteps.reset();\r\n _reset()\r\n }\r\n }\r\n}\r\n\r\nfunction getExtrapolateColorsStrategy(palette, parameters) {\r\n return {\r\n getColor: function(index, count) {\r\n var paletteCount = palette.length;\r\n var cycles = _floor((count - 1) / paletteCount + 1);\r\n var color = palette[index % paletteCount];\r\n if (cycles > 1) {\r\n return function(color, cycleIndex, cycleCount) {\r\n var hsl = new _Color(color).hsl;\r\n var l = hsl.l / 100;\r\n var diapason = cycleCount - 1 / cycleCount;\r\n var minL = l - .5 * diapason;\r\n var maxL = l + .5 * diapason;\r\n var cycleMiddle = (cycleCount - 1) / 2;\r\n var cycleDiff = cycleIndex - cycleMiddle;\r\n if (minL < Math.min(.5, .9 * l)) {\r\n minL = Math.min(.5, .9 * l)\r\n }\r\n if (maxL > Math.max(.8, l + .15 * (1 - l))) {\r\n maxL = Math.max(.8, l + .15 * (1 - l))\r\n }\r\n if (cycleDiff < 0) {\r\n l -= (minL - l) * cycleDiff / cycleMiddle\r\n } else {\r\n l += cycleDiff / cycleMiddle * (maxL - l)\r\n }\r\n hsl.l = 100 * l;\r\n return _Color.prototype.fromHSL(hsl).toHex()\r\n }(color, _floor(index / paletteCount), cycles)\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i, count))\r\n }\r\n return colors\r\n },\r\n reset: function() {}\r\n }\r\n}\r\n\r\nfunction getColorMixer(palette, parameters) {\r\n var paletteCount = palette.length;\r\n var extendedPalette = [];\r\n\r\n function distributeColors(count, colorsCount, startIndex, distribution) {\r\n var groupSize = Math.floor(count / colorsCount);\r\n var extraItems = count - colorsCount * groupSize;\r\n var i = startIndex;\r\n var middleIndex;\r\n var size;\r\n while (i < startIndex + count) {\r\n size = groupSize;\r\n if (extraItems > 0) {\r\n size += 1;\r\n extraItems--\r\n }\r\n middleIndex = size > 2 ? Math.floor(size / 2) : 0;\r\n distribution.push(i + middleIndex);\r\n i += size\r\n }\r\n return distribution.sort((function(a, b) {\r\n return a - b\r\n }))\r\n }\r\n\r\n function getColorAndDistance(arr, startIndex, count) {\r\n startIndex = (count + startIndex) % count;\r\n var distance = 0;\r\n for (var i = startIndex; i < 2 * count; i += 1) {\r\n var index = (count + i) % count;\r\n if (arr[index]) {\r\n return [arr[index], distance]\r\n }\r\n distance++\r\n }\r\n }\r\n\r\n function extendPalette(count) {\r\n if (count <= paletteCount) {\r\n return palette\r\n }\r\n var result = [];\r\n var colorInGroups = paletteCount - 2;\r\n var currentColorIndex = 0;\r\n var cleanColorIndices = [];\r\n if (parameters.keepLastColorInEnd) {\r\n cleanColorIndices = distributeColors(count - 2, colorInGroups, 1, [0, count - 1])\r\n } else {\r\n cleanColorIndices = distributeColors(count - 1, paletteCount - 1, 1, [0])\r\n }\r\n for (var i = 0; i < count; i++) {\r\n if (cleanColorIndices.indexOf(i) > -1) {\r\n result[i] = palette[currentColorIndex++]\r\n }\r\n }\r\n result = function(paletteWithEmptyColors, paletteLength) {\r\n for (var i = 0; i < paletteLength; i++) {\r\n var color = paletteWithEmptyColors[i];\r\n if (!color) {\r\n var color1 = paletteWithEmptyColors[i - 1];\r\n if (!color1) {\r\n continue\r\n } else {\r\n var c2 = getColorAndDistance(paletteWithEmptyColors, i, paletteLength);\r\n var color2 = new _Color(c2[0]);\r\n color1 = new _Color(color1);\r\n for (var j = 0; j < c2[1]; j++, i++) {\r\n paletteWithEmptyColors[i] = color1.blend(color2, (j + 1) / (c2[1] + 1)).toHex()\r\n }\r\n }\r\n }\r\n }\r\n return paletteWithEmptyColors\r\n }(result, count);\r\n return result\r\n }\r\n return {\r\n getColor: function(index, count) {\r\n count = count || parameters.count || paletteCount;\r\n if (extendedPalette.length !== count) {\r\n extendedPalette = extendPalette(count)\r\n }\r\n return extendedPalette[index % count]\r\n },\r\n generateColors: function(count, repeat) {\r\n count = count || parameters.count || paletteCount;\r\n if (repeat && count > paletteCount) {\r\n var colors = extendPalette(paletteCount);\r\n for (var i = 0; i < count - paletteCount; i++) {\r\n colors.push(colors[i])\r\n }\r\n return colors\r\n } else {\r\n return paletteCount > 0 ? extendPalette(count).slice(0, count) : []\r\n }\r\n },\r\n reset: function() {}\r\n }\r\n}\r\nexport function createPalette(palette, parameters, themeDefaultPalette) {\r\n var paletteObj = {\r\n dispose() {\r\n this._extensionStrategy = null\r\n },\r\n getNextColor(count) {\r\n return this._extensionStrategy.getColor(this._currentColor++, count)\r\n },\r\n generateColors(count, parameters) {\r\n return this._extensionStrategy.generateColors(count, (parameters || {}).repeat)\r\n },\r\n reset() {\r\n this._currentColor = 0;\r\n this._extensionStrategy.reset();\r\n return this\r\n }\r\n };\r\n parameters = parameters || {};\r\n var extensionMode = (parameters.extensionMode || \"\").toLowerCase();\r\n var colors = getPalette(palette, {\r\n type: parameters.type || \"simpleSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n if (\"alternate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getAlternateColorsStrategy(colors, parameters)\r\n } else if (\"extrapolate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getExtrapolateColorsStrategy(colors, parameters)\r\n } else {\r\n paletteObj._extensionStrategy = getColorMixer(colors, parameters)\r\n }\r\n paletteObj.reset();\r\n return paletteObj\r\n}\r\n\r\nfunction getAlteredPalette(originalPalette, step) {\r\n var palette = [];\r\n var i;\r\n var ii = originalPalette.length;\r\n for (i = 0; i < ii; ++i) {\r\n palette.push(getNewColor(originalPalette[i], step))\r\n }\r\n return palette\r\n}\r\n\r\nfunction getNewColor(currentColor, step) {\r\n var newColor = new _Color(currentColor).alter(step);\r\n var lightness = getLightness(newColor);\r\n if (lightness > 200 || lightness < 55) {\r\n newColor = new _Color(currentColor).alter(-step / 2)\r\n }\r\n return newColor.toHex()\r\n}\r\n\r\nfunction getLightness(color) {\r\n return .3 * color.r + .59 * color.g + .11 * color.b\r\n}\r\nexport function getDiscretePalette(source, size, themeDefaultPalette) {\r\n var palette = size > 0 ? createDiscreteColors(getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n }), size) : [];\r\n return {\r\n getColor: function(index) {\r\n return palette[index] || null\r\n }\r\n }\r\n}\r\n\r\nfunction createDiscreteColors(source, count) {\r\n var colorCount = count - 1;\r\n var sourceCount = source.length - 1;\r\n var colors = [];\r\n var gradient = [];\r\n var i;\r\n\r\n function addColor(pos) {\r\n var k = sourceCount * pos;\r\n var kl = _floor(k);\r\n var kr = _ceil(k);\r\n gradient.push(colors[kl].blend(colors[kr], k - kl).toHex())\r\n }\r\n for (i = 0; i <= sourceCount; ++i) {\r\n colors.push(new _Color(source[i]))\r\n }\r\n if (colorCount > 0) {\r\n for (i = 0; i <= colorCount; ++i) {\r\n addColor(i / colorCount)\r\n }\r\n } else {\r\n addColor(.5)\r\n }\r\n return gradient\r\n}\r\nexport function getGradientPalette(source, themeDefaultPalette) {\r\n var palette = getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n var color1 = new _Color(palette[0]);\r\n var color2 = new _Color(palette[1]);\r\n return {\r\n getColor: function(ratio) {\r\n return 0 <= ratio && ratio <= 1 ? color1.blend(color2, ratio).toHex() : null\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/base_theme_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n createPalette as getPalette,\r\n getDiscretePalette,\r\n getGradientPalette,\r\n getAccentColor as accentColor\r\n} from \"../palette\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"./utils\";\r\nimport {\r\n getTheme,\r\n addCacheItem,\r\n removeCacheItem\r\n} from \"../themes\";\r\nvar _getTheme = getTheme;\r\nvar _addCacheItem = addCacheItem;\r\nvar _removeCacheItem = removeCacheItem;\r\nvar _extend = extend;\r\nvar _each = each;\r\n\r\nfunction getThemePart(theme, path) {\r\n var _theme = theme;\r\n path && _each(path.split(\".\"), (function(_, pathItem) {\r\n return _theme = _theme[pathItem]\r\n }));\r\n return _theme\r\n}\r\nexport var BaseThemeManager = Class.inherit({\r\n ctor: function(options) {\r\n this._themeSection = options.themeSection;\r\n this._fontFields = options.fontFields || [];\r\n _addCacheItem(this)\r\n },\r\n dispose: function() {\r\n _removeCacheItem(this);\r\n this._callback = this._theme = this._font = null;\r\n return this\r\n },\r\n setCallback: function(callback) {\r\n this._callback = callback;\r\n return this\r\n },\r\n setTheme: function(theme, rtl) {\r\n this._current = theme;\r\n this._rtl = rtl;\r\n return this.refresh()\r\n },\r\n refresh: function() {\r\n var current = this._current || {};\r\n var theme = _getTheme(current.name || current);\r\n this._themeName = theme.name;\r\n this._defaultPalette = theme.defaultPalette;\r\n this._font = _extend({}, theme.font, current.font);\r\n this._themeSection && _each(this._themeSection.split(\".\"), (function(_, path) {\r\n theme = _extend(true, {}, theme[path])\r\n }));\r\n this._theme = _extend(true, {}, theme, _isString(current) ? {} : current);\r\n this._initializeTheme();\r\n if (_parseScalar(this._rtl, this._theme.rtlEnabled)) {\r\n _extend(true, this._theme, this._theme._rtl)\r\n }\r\n this._callback();\r\n return this\r\n },\r\n theme: function(path) {\r\n return getThemePart(this._theme, path)\r\n },\r\n themeName: function() {\r\n return this._themeName\r\n },\r\n createPalette: function(palette, options) {\r\n return getPalette(palette, options, this._defaultPalette)\r\n },\r\n createDiscretePalette: function(palette, count) {\r\n return getDiscretePalette(palette, count, this._defaultPalette)\r\n },\r\n createGradientPalette: function(palette) {\r\n return getGradientPalette(palette, this._defaultPalette)\r\n },\r\n getAccentColor: function(palette) {\r\n return accentColor(palette, this._defaultPalette)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n _each(that._fontFields || [], (function(_, path) {\r\n that._initializeFont(getThemePart(that._theme, path))\r\n }))\r\n },\r\n _initializeFont: function(font) {\r\n _extend(font, this._font, _extend({}, font))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/comparator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Config from \"./config\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend(config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option()[optionName]\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result = this._renderCore(options);\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engine_registry.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engines.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extractTemplateMarkup\r\n} from \"../utils/dom\";\r\nimport {\r\n registerTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"jquery-tmpl\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => jQuery.tmpl(template, data)\r\n});\r\nregisterTemplateEngine(\"jsrender\", {\r\n compile: element => (jQuery ? jQuery : jsrender).templates(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"mustache\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => Mustache.render(template, data)\r\n});\r\nregisterTemplateEngine(\"hogan\", {\r\n compile: element => Hogan.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"underscore\", {\r\n compile: element => _.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"handlebars\", {\r\n compile: element => Handlebars.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"doT\", {\r\n compile: element => doT.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nimport \"./template_engines\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"
    \").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase) && !isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"
    \");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar strategy = function(element) {\r\n return element && element.get(0)\r\n};\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && inArray(e.target, $(this._focusTarget)) < 0;\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut)\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace))\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n inArray\r\n} from \"./utils/array\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options)\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers()\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (inArray(name, synchronizableOptions) >= 0) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/viz/core/helpers.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction Flags() {\r\n this.reset()\r\n}\r\nFlags.prototype = {\r\n constructor: Flags,\r\n add: function(codes) {\r\n var i;\r\n var ii = codes.length;\r\n var flags = this._flags;\r\n for (i = 0; i < ii; ++i) {\r\n flags[codes[i]] = 1\r\n }\r\n },\r\n has: function(code) {\r\n return this._flags[code] > 0\r\n },\r\n count: function() {\r\n return Object.keys(this._flags).length\r\n },\r\n reset: function() {\r\n this._flags = {}\r\n }\r\n};\r\n\r\nfunction combineMaps(baseMap, thisMap) {\r\n return baseMap !== thisMap ? _extend({}, baseMap, thisMap) : _extend({}, baseMap)\r\n}\r\n\r\nfunction combineLists(baseList, thisList) {\r\n return baseList !== thisList ? baseList.concat(thisList) : baseList.slice()\r\n}\r\n\r\nfunction buildTotalChanges(proto) {\r\n proto._totalChangesOrder = proto._optionChangesOrder.concat(proto._layoutChangesOrder, proto._customChangesOrder)\r\n}\r\n\r\nfunction addChange(settings) {\r\n var proto = this.prototype;\r\n var code = settings.code;\r\n proto[\"_change_\" + code] = settings.handler;\r\n if (settings.isThemeDependent) {\r\n proto._themeDependentChanges.push(code)\r\n }\r\n if (settings.option) {\r\n proto._optionChangesMap[settings.option] = code\r\n }(settings.isOptionChange ? proto._optionChangesOrder : proto._customChangesOrder).push(code);\r\n buildTotalChanges(proto)\r\n}\r\n\r\nfunction createChainExecutor() {\r\n var executeChain = function executeChain() {\r\n var i;\r\n var ii = executeChain._chain.length;\r\n var result;\r\n for (i = 0; i < ii; ++i) {\r\n result = executeChain._chain[i].apply(this, arguments)\r\n }\r\n return result\r\n };\r\n executeChain._chain = [];\r\n executeChain.add = function(item) {\r\n executeChain._chain.push(item)\r\n };\r\n executeChain.copy = function(executor) {\r\n executeChain._chain = executor._chain.slice()\r\n };\r\n return executeChain\r\n}\r\nexport function expand(target, name, expander) {\r\n var current = target[name];\r\n if (!current) {\r\n current = expander\r\n } else if (!current.add) {\r\n current = createChainExecutor();\r\n current.add(target[name]);\r\n current.add(expander)\r\n } else {\r\n if (false === Object.prototype.hasOwnProperty.call(target, name)) {\r\n current = createChainExecutor();\r\n current.copy(target[name])\r\n }\r\n current.add(expander)\r\n }\r\n target[name] = current\r\n}\r\n\r\nfunction addPlugin(plugin) {\r\n var proto = this.prototype;\r\n proto._plugins.push(plugin);\r\n plugin.fontFields && proto._fontFields.push.apply(proto._fontFields, plugin.fontFields);\r\n if (plugin.members) {\r\n _extend(this.prototype, plugin.members)\r\n }\r\n if (plugin.customize) {\r\n plugin.customize(this)\r\n }\r\n if (plugin.extenders) {\r\n Object.keys(plugin.extenders).forEach((function(key) {\r\n var func = plugin.extenders[key];\r\n expand(proto, key, func)\r\n }), this)\r\n }\r\n}\r\nexport var replaceInherit = isServerSide ? function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var result = _inherit.apply(this, arguments);\r\n var proto = result.prototype;\r\n [\"_plugins\", \"_eventsMap\", \"_initialChanges\", \"_themeDependentChanges\", \"_optionChangesMap\", \"_optionChangesOrder\", \"_layoutChangesOrder\", \"_customChangesOrder\", \"_totalChangesOrder\"].forEach((function(key) {\r\n proto[key] = {}\r\n }));\r\n result.addPlugin = noop;\r\n return result\r\n };\r\n widget.addChange = noop;\r\n widget.addPlugin = noop\r\n} : function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var proto = this.prototype;\r\n var plugins = proto._plugins;\r\n var fontFields = proto._fontFields;\r\n var eventsMap = proto._eventsMap;\r\n var initialChanges = proto._initialChanges;\r\n var themeDependentChanges = proto._themeDependentChanges;\r\n var optionChangesMap = proto._optionChangesMap;\r\n var partialOptionChangesMap = proto._partialOptionChangesMap;\r\n var partialOptionChangesPath = proto._partialOptionChangesPath;\r\n var optionChangesOrder = proto._optionChangesOrder;\r\n var layoutChangesOrder = proto._layoutChangesOrder;\r\n var customChangesOrder = proto._customChangesOrder;\r\n var result = _inherit.apply(this, arguments);\r\n proto = result.prototype;\r\n proto._plugins = combineLists(plugins, proto._plugins);\r\n proto._fontFields = combineLists(fontFields, proto._fontFields);\r\n proto._eventsMap = combineMaps(eventsMap, proto._eventsMap);\r\n proto._initialChanges = combineLists(initialChanges, proto._initialChanges);\r\n proto._themeDependentChanges = combineLists(themeDependentChanges, proto._themeDependentChanges);\r\n proto._optionChangesMap = combineMaps(optionChangesMap, proto._optionChangesMap);\r\n proto._partialOptionChangesMap = combineMaps(partialOptionChangesMap, proto._partialOptionChangesMap);\r\n proto._partialOptionChangesPath = combineMaps(partialOptionChangesPath, proto._partialOptionChangesPath);\r\n proto._optionChangesOrder = combineLists(optionChangesOrder, proto._optionChangesOrder);\r\n proto._layoutChangesOrder = combineLists(layoutChangesOrder, proto._layoutChangesOrder);\r\n proto._customChangesOrder = combineLists(customChangesOrder, proto._customChangesOrder);\r\n buildTotalChanges(proto);\r\n result.addPlugin = addPlugin;\r\n return result\r\n };\r\n widget.prototype._plugins = [];\r\n widget.prototype._fontFields = [];\r\n widget.addChange = addChange;\r\n widget.addPlugin = addPlugin\r\n};\r\nexport function changes() {\r\n return new Flags\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/errors_warnings.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E2001: \"Invalid data source\",\r\n E2002: \"Axis type and data type are incompatible\",\r\n E2003: 'The \"{0}\" data source field contains data of unsupported type',\r\n E2004: 'The \"{0}\" data source field is inconsistent',\r\n E2005: 'The value field \"{0}\" is absent in the data source or all its values are negative',\r\n E2006: \"A cycle is detected in provided data\",\r\n E2007: 'The value field \"{0}\" is absent in the data source',\r\n E2008: 'The value field \"{0}\" must be a string',\r\n E2009: 'The value field \"{0}\" must be a positive numeric value',\r\n E2101: \"Unknown series type: {0}\",\r\n E2102: \"Ambiguity occurred between two value axes with the same name\",\r\n E2103: 'The \"{0}\" option is given an invalid value. Assign a function instead',\r\n E2104: \"Invalid logarithm base\",\r\n E2105: 'Invalid value of a \"{0}\"',\r\n E2202: \"Invalid {0} scale value\",\r\n E2203: \"The range you are trying to set is invalid\",\r\n W2002: \"The {0} series cannot be drawn because the {1} data field is missing\",\r\n W2003: \"Tick interval is too small\",\r\n W2101: 'The \"{0}\" pane does not exist; the last pane is used by default',\r\n W2102: 'A value axis with the \"{0}\" name was created automatically',\r\n W2103: \"The chart title was hidden due to the container size\",\r\n W2104: \"The legend was hidden due to the container size\",\r\n W2105: 'The title of the \"{0}\" axis was hidden due to the container size',\r\n W2106: 'The labels of the \"{0}\" axis were hidden due to the container size',\r\n W2107: \"The export menu was hidden due to the container size\",\r\n W2108: \"The browser does not support exporting images to {0} format.\",\r\n W2301: \"Invalid value range\"\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/layout.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"./utils\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\nvar ALIGN_START = 0;\r\nvar ALIGN_MIDDLE = 1;\r\nvar ALIGN_END = 2;\r\nvar horizontalAlignmentMap = {\r\n left: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n right: ALIGN_END\r\n};\r\nvar verticalAlignmentMap = {\r\n top: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n bottom: ALIGN_END\r\n};\r\nvar sideMap = {\r\n horizontal: 0,\r\n vertical: 1\r\n};\r\nvar slicersMap = {};\r\nvar BBOX_CEIL_CORRECTION = 2;\r\nslicersMap[ALIGN_START] = function(a, b, size) {\r\n return [a, _min(b, a + size)]\r\n};\r\nslicersMap[ALIGN_MIDDLE] = function(a, b, size) {\r\n return [_max(a, (a + b - size) / 2), _min(b, (a + b + size) / 2)]\r\n};\r\nslicersMap[ALIGN_END] = function(a, b, size) {\r\n return [_max(a, b - size), b]\r\n};\r\n\r\nfunction pickValue(value, map, defaultValue) {\r\n var val = _normalizeEnum(value);\r\n return val in map ? map[val] : defaultValue\r\n}\r\n\r\nfunction normalizeLayoutOptions(options) {\r\n var side = pickValue(options.side, sideMap, 1);\r\n var alignment = [pickValue(options.horizontalAlignment, horizontalAlignmentMap, ALIGN_MIDDLE), pickValue(options.verticalAlignment, verticalAlignmentMap, ALIGN_START)];\r\n return {\r\n side: side,\r\n primary: bringToEdge(alignment[side]),\r\n secondary: alignment[1 - side],\r\n weak: options.weak,\r\n priority: options.priority || 0,\r\n header: options.header,\r\n position: options.position\r\n }\r\n}\r\n\r\nfunction bringToEdge(primary) {\r\n return primary < 2 ? 0 : 2\r\n}\r\n\r\nfunction getConjugateSide(side) {\r\n return 1 - side\r\n}\r\n\r\nfunction getSlice(alignment, a, b, size) {\r\n return slicersMap[alignment](a, b, size)\r\n}\r\n\r\nfunction getShrink(alignment, size) {\r\n return (alignment > 0 ? -1 : 1) * size\r\n}\r\n\r\nfunction processForward(item, rect, minSize) {\r\n var side = item.side;\r\n var size = item.element.measure([rect[2] - rect[0], rect[3] - rect[1]]);\r\n var minSide = \"indside\" === item.position ? 0 : minSize[side];\r\n var isValid = size[side] < rect[2 + side] - rect[side] - minSide;\r\n if (isValid) {\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + side] += getShrink(item.primary, size[side])\r\n }\r\n item.size = size\r\n }\r\n return isValid\r\n}\r\n\r\nfunction processRectBackward(item, rect, alignmentRect) {\r\n var primarySide = item.side;\r\n var secondarySide = getConjugateSide(primarySide);\r\n var itemRect = [];\r\n var secondary = getSlice(item.secondary, alignmentRect[secondarySide], alignmentRect[2 + secondarySide], item.size[secondarySide]);\r\n itemRect[primarySide] = _round(itemRect[2 + primarySide] = rect[item.primary + primarySide] + (\"inside\" === item.position ? getShrink(item.primary, item.size[primarySide]) : 0));\r\n itemRect[item.primary + primarySide] = _round(rect[item.primary + primarySide] - getShrink(item.primary, item.size[primarySide]));\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + primarySide] = itemRect[item.primary + primarySide]\r\n }\r\n itemRect[secondarySide] = _round(secondary[0]);\r\n itemRect[2 + secondarySide] = _round(secondary[1]);\r\n return itemRect\r\n}\r\n\r\nfunction processBackward(item, rect, alignmentRect, fitRect, size, targetRect) {\r\n var itemRect = processRectBackward(item, rect, alignmentRect);\r\n var itemFitRect = processRectBackward(item, fitRect, fitRect);\r\n if (size[item.side] > 0) {\r\n size[item.side] -= item.size[item.side];\r\n targetRect[item.primary + item.side] = itemRect[item.primary + item.side];\r\n item.element.freeSpace()\r\n } else {\r\n item.element.move(itemRect, itemFitRect)\r\n }\r\n}\r\n\r\nfunction Layout() {\r\n this._targets = []\r\n}\r\nLayout.prototype = {\r\n constructor: Layout,\r\n dispose: function() {\r\n this._targets = null\r\n },\r\n add: function(target) {\r\n this._targets.push(target)\r\n },\r\n forward: function(targetRect, minSize) {\r\n var rect = targetRect.slice();\r\n var targets = createTargets(this._targets);\r\n var i;\r\n var ii = targets.length;\r\n var cache = [];\r\n for (i = 0; i < ii; ++i) {\r\n if (processForward(targets[i], rect, minSize)) {\r\n cache.push(targets[i])\r\n } else {\r\n targets[i].element.freeSpace()\r\n }\r\n }\r\n this._cache = cache.reverse();\r\n return rect\r\n },\r\n backward: function(targetRect, alignmentRect) {\r\n var size = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [0, 0];\r\n var backwardRect = targetRect.slice();\r\n var fitRect = targetRect.slice();\r\n var targets = this._cache;\r\n var targetSide = 0;\r\n var target;\r\n var i;\r\n var ii = targets.length;\r\n for (i = 0; i < ii; ++i) {\r\n target = targets[i];\r\n if (target.side !== targetSide) {\r\n backwardRect = targetRect.slice()\r\n }\r\n processBackward(target, backwardRect, alignmentRect, fitRect, size, targetRect);\r\n targetSide = target.side\r\n }\r\n return size\r\n }\r\n};\r\n\r\nfunction createTargets(targets) {\r\n var i;\r\n var ii = targets.length;\r\n var collection = [];\r\n var layout;\r\n for (i = 0; i < ii; ++i) {\r\n layout = targets[i].layoutOptions();\r\n if (layout) {\r\n layout = normalizeLayoutOptions(layout);\r\n layout.element = targets[i];\r\n collection.push(layout)\r\n }\r\n }\r\n collection.sort((function(a, b) {\r\n return b.side - a.side || a.priority - b.priority\r\n }));\r\n collection = processWeakItems(collection);\r\n return collection\r\n}\r\n\r\nfunction processWeakItems(collection) {\r\n var weakItem = collection.filter((function(item) {\r\n return true === item.weak\r\n }))[0];\r\n var headerItem;\r\n if (weakItem) {\r\n headerItem = collection.filter((function(item) {\r\n return weakItem.primary === item.primary && item.side === weakItem.side && item !== weakItem\r\n }))[0]\r\n }\r\n if (weakItem && headerItem) {\r\n return [makeHeader(headerItem, weakItem)].concat(collection.filter((function(item) {\r\n return !(item === headerItem || item === weakItem)\r\n })))\r\n }\r\n return collection\r\n}\r\n\r\nfunction processBackwardHeaderRect(element, rect) {\r\n var rectCopy = rect.slice();\r\n var itemRect = processRectBackward(element, rectCopy, rectCopy);\r\n itemRect[element.side] = rect[element.side];\r\n itemRect[2 + element.side] = rect[2 + element.side];\r\n return itemRect\r\n}\r\n\r\nfunction makeHeader(header, weakElement) {\r\n var side = header.side;\r\n var primary = header.primary;\r\n var secondary = header.secondary;\r\n return {\r\n side: side,\r\n primary: primary,\r\n secondary: secondary,\r\n priority: 0,\r\n element: {\r\n measure: function(targetSize) {\r\n var result = targetSize.slice();\r\n var weakSize = weakElement.element.measure(targetSize.slice());\r\n targetSize[primary] -= weakSize[primary];\r\n var headerSize = header.element.measure(targetSize.slice());\r\n result[side] = weakSize[side] = headerSize[side] = Math.max(headerSize[side], weakSize[side]);\r\n weakElement.size = weakSize;\r\n header.size = headerSize;\r\n return result\r\n },\r\n move: function(rect, fitRect) {\r\n if (fitRect[2] - fitRect[0] < header.size[0] + weakElement.size[0] - BBOX_CEIL_CORRECTION) {\r\n this.freeSpace();\r\n return\r\n }\r\n var weakRect = processBackwardHeaderRect(weakElement, fitRect);\r\n fitRect[2 + weakElement.primary] = weakRect[weakElement.primary];\r\n var headerFitReact = processBackwardHeaderRect(header, fitRect);\r\n if (fitRect[2 + weakElement.primary] < rect[2 + weakElement.primary] && header.size[header.primary] > rect[2 + header.primary] - rect[header.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary]\r\n }\r\n var headerRect = processBackwardHeaderRect(header, rect);\r\n if (headerRect[2 + weakElement.primary] > fitRect[2 + weakElement.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary];\r\n headerRect = processBackwardHeaderRect(header, rect)\r\n }\r\n weakElement.element.move(weakRect);\r\n header.element.move(headerRect, headerFitReact)\r\n },\r\n freeSpace: function() {\r\n header.element.freeSpace();\r\n weakElement.element.freeSpace()\r\n }\r\n }\r\n }\r\n}\r\nexport default Layout;\r\n","/**\r\n * DevExtreme (esm/viz/core/base_widget.utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../../core/version\";\r\nimport {\r\n format as _stringFormat\r\n} from \"../../core/utils/string\";\r\nimport warnings from \"./errors_warnings\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nvar ERROR_MESSAGES = warnings.ERROR_MESSAGES;\r\nexport function createEventTrigger(eventsMap, callbackGetter) {\r\n var triggers = {};\r\n each(eventsMap, (function(name, info) {\r\n if (info.name) {\r\n createEvent(name)\r\n }\r\n }));\r\n var changes;\r\n triggerEvent.change = function(name) {\r\n var eventInfo = eventsMap[name];\r\n if (eventInfo) {\r\n (changes = changes || {})[name] = eventInfo\r\n }\r\n return !!eventInfo\r\n };\r\n triggerEvent.applyChanges = function() {\r\n if (changes) {\r\n each(changes, (function(name, eventInfo) {\r\n createEvent(eventInfo.newName || name)\r\n }));\r\n changes = null\r\n }\r\n };\r\n triggerEvent.dispose = function() {\r\n eventsMap = callbackGetter = triggers = null\r\n };\r\n return triggerEvent;\r\n\r\n function createEvent(name) {\r\n var eventInfo = eventsMap[name];\r\n triggers[eventInfo.name] = callbackGetter(name, eventInfo.actionSettings)\r\n }\r\n\r\n function triggerEvent(name, arg, complete) {\r\n triggers[name](arg);\r\n complete && complete()\r\n }\r\n}\r\nexport var createIncidentOccurred = function(widgetName, eventTrigger) {\r\n return function(id, args) {\r\n eventTrigger(\"incidentOccurred\", {\r\n target: {\r\n id: id,\r\n type: \"E\" === id[0] ? \"error\" : \"warning\",\r\n args: args,\r\n text: _stringFormat.apply(null, [ERROR_MESSAGES[id]].concat(args || [])),\r\n widget: widgetName,\r\n version: version\r\n }\r\n })\r\n }\r\n};\r\nexport function createResizeHandler(callback) {\r\n var timeout;\r\n var handler = function() {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(callback, 100)\r\n };\r\n handler.dispose = function() {\r\n clearTimeout(timeout);\r\n return this\r\n };\r\n return handler\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/base_widget.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isObject as _isObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport _windowResizeCallbacks from \"../../core/utils/resize_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n BaseThemeManager\r\n} from \"../core/base_theme_manager\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n changes,\r\n replaceInherit\r\n} from \"./helpers\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"./utils\";\r\nimport warnings from \"./errors_warnings\";\r\nimport {\r\n Renderer\r\n} from \"./renderers/renderer\";\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport _Layout from \"./layout\";\r\nimport devices from \"../../core/devices\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n createEventTrigger,\r\n createResizeHandler,\r\n createIncidentOccurred\r\n} from \"./base_widget.utils\";\r\nvar _floor = Math.floor;\r\nvar _log = warnings.log;\r\nvar OPTION_RTL_ENABLED = \"rtlEnabled\";\r\nvar SIZED_ELEMENT_CLASS = \"dx-sized-element\";\r\nvar _option = DOMComponent.prototype.option;\r\n\r\nfunction getTrue() {\r\n return true\r\n}\r\n\r\nfunction getFalse() {\r\n return false\r\n}\r\n\r\nfunction areCanvasesDifferent(canvas1, canvas2) {\r\n return !(canvas1.width === canvas2.width && canvas1.height === canvas2.height && canvas1.left === canvas2.left && canvas1.top === canvas2.top && canvas1.right === canvas2.right && canvas1.bottom === canvas2.bottom)\r\n}\r\n\r\nfunction defaultOnIncidentOccurred(e) {\r\n if (!e.component._eventsStrategy.hasEvent(\"incidentOccurred\")) {\r\n _log.apply(null, [e.target.id].concat(e.target.args || []))\r\n }\r\n}\r\n\r\nfunction pickPositiveValue(values) {\r\n return values.reduce((function(result, value) {\r\n return value > 0 && !result ? value : result\r\n }), 0)\r\n}\r\nvar getEmptyComponent = function() {\r\n var emptyComponentConfig = {\r\n _initTemplates() {},\r\n ctor(element, options) {\r\n this.callBase(element, options);\r\n var sizedElement = domAdapter.createElement(\"div\");\r\n var width = options && isNumeric(options.width) ? options.width + \"px\" : \"100%\";\r\n var height = options && isNumeric(options.height) ? options.height + \"px\" : this._getDefaultSize().height + \"px\";\r\n domAdapter.setStyle(sizedElement, \"width\", width);\r\n domAdapter.setStyle(sizedElement, \"height\", height);\r\n domAdapter.setClass(sizedElement, SIZED_ELEMENT_CLASS);\r\n domAdapter.insertElement(element, sizedElement)\r\n }\r\n };\r\n var EmptyComponent = DOMComponent.inherit(emptyComponentConfig);\r\n var originalInherit = EmptyComponent.inherit;\r\n EmptyComponent.inherit = function(config) {\r\n for (var field in config) {\r\n if (isFunction(config[field]) && \"_\" !== field.substr(0, 1) && \"option\" !== field || \"_dispose\" === field || \"_optionChanged\" === field) {\r\n config[field] = noop\r\n }\r\n }\r\n return originalInherit.call(this, config)\r\n };\r\n return EmptyComponent\r\n};\r\n\r\nfunction callForEach(functions) {\r\n functions.forEach(c => c())\r\n}\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction sizeIsValid(value) {\r\n return isDefined(value) && value > 0\r\n}\r\nvar baseWidget = isServerSide ? getEmptyComponent() : DOMComponent.inherit({\r\n _eventsMap: {\r\n onIncidentOccurred: {\r\n name: \"incidentOccurred\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n },\r\n onDrawn: {\r\n name: \"drawn\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onIncidentOccurred: defaultOnIncidentOccurred\r\n })\r\n },\r\n _useLinks: true,\r\n _init: function() {\r\n var that = this;\r\n that._$element.children(\".\" + SIZED_ELEMENT_CLASS).remove();\r\n that.callBase.apply(that, arguments);\r\n that._changesLocker = 0;\r\n that._optionChangedLocker = 0;\r\n that._asyncFirstDrawing = true;\r\n that._changes = changes();\r\n that._suspendChanges();\r\n that._themeManager = that._createThemeManager();\r\n that._themeManager.setCallback((function() {\r\n that._requestChange(that._themeDependentChanges)\r\n }));\r\n that._renderElementAttributes();\r\n that._initRenderer();\r\n var linkTarget = that._useLinks && that._renderer.root;\r\n linkTarget && linkTarget.enableLinks().virtualLink(\"core\").virtualLink(\"peripheral\");\r\n that._renderVisibilityChange();\r\n that._attachVisibilityChangeHandlers();\r\n that._toggleParentsScrollSubscription(this._isVisible());\r\n that._initEventTrigger();\r\n that._incidentOccurred = createIncidentOccurred(that.NAME, that._eventTrigger);\r\n that._layout = new _Layout;\r\n linkTarget && linkTarget.linkAfter(\"core\");\r\n that._initPlugins();\r\n that._initCore();\r\n linkTarget && linkTarget.linkAfter();\r\n that._change(that._initialChanges)\r\n },\r\n _createThemeManager() {\r\n return new BaseThemeManager(this._getThemeManagerOptions())\r\n },\r\n _getThemeManagerOptions() {\r\n return {\r\n themeSection: this._themeSection,\r\n fontFields: this._fontFields\r\n }\r\n },\r\n _initialChanges: [\"LAYOUT\", \"RESIZE_HANDLER\", \"THEME\", \"DISABLED\"],\r\n _initPlugins: function() {\r\n var that = this;\r\n each(that._plugins, (function(_, plugin) {\r\n plugin.init.call(that)\r\n }))\r\n },\r\n _disposePlugins: function() {\r\n var that = this;\r\n each(that._plugins.slice().reverse(), (function(_, plugin) {\r\n plugin.dispose.call(that)\r\n }))\r\n },\r\n _change: function(codes) {\r\n this._changes.add(codes)\r\n },\r\n _suspendChanges: function() {\r\n ++this._changesLocker\r\n },\r\n _resumeChanges: function() {\r\n if (0 === --this._changesLocker && this._changes.count() > 0 && !this._applyingChanges) {\r\n this._renderer.lock();\r\n this._applyingChanges = true;\r\n this._applyChanges();\r\n this._changes.reset();\r\n this._applyingChanges = false;\r\n this._changesApplied();\r\n this._renderer.unlock();\r\n if (this._optionsQueue) {\r\n this._applyQueuedOptions()\r\n }\r\n this.resolveItemsDeferred(this._legend ? [this._legend] : []);\r\n this._optionChangedLocker++;\r\n this._notify();\r\n this._optionChangedLocker--\r\n }\r\n },\r\n resolveItemsDeferred(items) {\r\n this._resolveDeferred(this._getTemplatesItems(items))\r\n },\r\n _collectTemplatesFromItems: items => items.reduce((prev, i) => ({\r\n items: prev.items.concat(i.getTemplatesDef()),\r\n groups: prev.groups.concat(i.getTemplatesGroups())\r\n }), {\r\n items: [],\r\n groups: []\r\n }),\r\n _getTemplatesItems(items) {\r\n var elements = this._collectTemplatesFromItems(items);\r\n var extraItems = this._getExtraTemplatesItems();\r\n return {\r\n items: extraItems.items.concat(elements.items),\r\n groups: extraItems.groups.concat(elements.groups),\r\n launchRequest: [extraItems.launchRequest],\r\n doneRequest: [extraItems.doneRequest]\r\n }\r\n },\r\n _getExtraTemplatesItems: () => ({\r\n items: [],\r\n groups: [],\r\n launchRequest: () => {},\r\n doneRequest: () => {}\r\n }),\r\n _resolveDeferred(_ref) {\r\n var {\r\n items: items,\r\n launchRequest: launchRequest,\r\n doneRequest: doneRequest,\r\n groups: groups\r\n } = _ref;\r\n var that = this;\r\n that._setGroupsVisibility(groups, \"hidden\");\r\n if (that._changesApplying) {\r\n that._changesApplying = false;\r\n callForEach(doneRequest);\r\n return\r\n }\r\n var syncRendering = true;\r\n when.apply(that, items).done(() => {\r\n if (syncRendering) {\r\n that._setGroupsVisibility(groups, \"visible\");\r\n return\r\n }\r\n callForEach(launchRequest);\r\n that._changesApplying = true;\r\n var changes = [\"LAYOUT\", \"FULL_RENDER\"];\r\n if (that._asyncFirstDrawing) {\r\n changes.push(\"FORCE_FIRST_DRAWING\");\r\n that._asyncFirstDrawing = false\r\n } else {\r\n changes.push(\"FORCE_DRAWING\")\r\n }\r\n that._requestChange(changes);\r\n that._setGroupsVisibility(groups, \"visible\")\r\n });\r\n syncRendering = false\r\n },\r\n _setGroupsVisibility(groups, visibility) {\r\n groups.forEach(g => g.attr({\r\n visibility: visibility\r\n }))\r\n },\r\n _applyQueuedOptions: function() {\r\n var queue = this._optionsQueue;\r\n this._optionsQueue = null;\r\n this.beginUpdate();\r\n each(queue, (function(_, action) {\r\n action()\r\n }));\r\n this.endUpdate()\r\n },\r\n _requestChange: function(codes) {\r\n this._suspendChanges();\r\n this._change(codes);\r\n this._resumeChanges()\r\n },\r\n _applyChanges: function() {\r\n var changes = this._changes;\r\n var order = this._totalChangesOrder;\r\n var i;\r\n var ii = order.length;\r\n for (i = 0; i < ii; ++i) {\r\n if (changes.has(order[i])) {\r\n this[\"_change_\" + order[i]]()\r\n }\r\n }\r\n },\r\n _optionChangesOrder: [\"EVENTS\", \"THEME\", \"RENDERER\", \"RESIZE_HANDLER\"],\r\n _layoutChangesOrder: [\"ELEMENT_ATTR\", \"CONTAINER_SIZE\", \"LAYOUT\"],\r\n _customChangesOrder: [\"DISABLED\"],\r\n _change_EVENTS: function() {\r\n this._eventTrigger.applyChanges()\r\n },\r\n _change_THEME: function() {\r\n this._setThemeAndRtl()\r\n },\r\n _change_RENDERER: function() {\r\n this._setRendererOptions()\r\n },\r\n _change_RESIZE_HANDLER: function() {\r\n this._setupResizeHandler()\r\n },\r\n _change_ELEMENT_ATTR: function() {\r\n this._renderElementAttributes();\r\n this._change([\"CONTAINER_SIZE\"])\r\n },\r\n _change_CONTAINER_SIZE: function() {\r\n this._updateSize()\r\n },\r\n _change_LAYOUT: function() {\r\n this._setContentSize()\r\n },\r\n _change_DISABLED: function() {\r\n var renderer = this._renderer;\r\n var root = renderer.root;\r\n if (this.option(\"disabled\")) {\r\n this._initDisabledState = root.attr(\"pointer-events\");\r\n root.attr({\r\n \"pointer-events\": \"none\",\r\n filter: renderer.getGrayScaleFilter().id\r\n })\r\n } else if (\"none\" === root.attr(\"pointer-events\")) {\r\n root.attr({\r\n \"pointer-events\": isDefined(this._initDisabledState) ? this._initDisabledState : null,\r\n filter: null\r\n })\r\n }\r\n },\r\n _themeDependentChanges: [\"RENDERER\"],\r\n _initRenderer: function() {\r\n this._canvas = this._calculateCanvas();\r\n this._renderer = new Renderer({\r\n cssClass: this._rootClassPrefix + \" \" + this._rootClass,\r\n pathModified: this.option(\"pathModified\"),\r\n container: this._$element[0]\r\n });\r\n this._renderer.resize(this._canvas.width, this._canvas.height)\r\n },\r\n _disposeRenderer: function() {\r\n this._renderer.dispose()\r\n },\r\n _getAnimationOptions: noop,\r\n render: function() {\r\n this._requestChange([\"CONTAINER_SIZE\"]);\r\n var visible = this._isVisible();\r\n this._toggleParentsScrollSubscription(visible);\r\n !visible && this._stopCurrentHandling()\r\n },\r\n _toggleParentsScrollSubscription: function(subscribe) {\r\n var $parents = $(this._renderer.root.element).parents();\r\n if (\"generic\" === devices.real().platform) {\r\n $parents = $parents.add(getWindow())\r\n }\r\n this._proxiedTargetParentsScrollHandler = this._proxiedTargetParentsScrollHandler || function() {\r\n this._stopCurrentHandling()\r\n }.bind(this);\r\n eventsEngine.off($().add(this._$prevRootParents), \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n if (subscribe) {\r\n eventsEngine.on($parents, \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n this._$prevRootParents = $parents\r\n }\r\n },\r\n _stopCurrentHandling: noop,\r\n _dispose: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._toggleParentsScrollSubscription(false);\r\n that._removeResizeHandler();\r\n that._layout.dispose();\r\n that._eventTrigger.dispose();\r\n that._disposeCore();\r\n that._disposePlugins();\r\n that._disposeRenderer();\r\n that._themeManager.dispose();\r\n that._themeManager = that._renderer = that._eventTrigger = null\r\n },\r\n _initEventTrigger: function() {\r\n var that = this;\r\n that._eventTrigger = createEventTrigger(that._eventsMap, (function(name, actionSettings) {\r\n return that._createActionByOption(name, actionSettings)\r\n }))\r\n },\r\n _calculateCanvas: function() {\r\n var that = this;\r\n var size = that.option(\"size\") || {};\r\n var margin = that.option(\"margin\") || {};\r\n var defaultCanvas = that._getDefaultSize() || {};\r\n var getSizeOfSide = (size, side, getter) => {\r\n if (sizeIsValid(size[side]) || !hasWindow()) {\r\n return 0\r\n }\r\n var elementSize = getter(that._$element);\r\n return elementSize <= 1 ? 0 : elementSize\r\n };\r\n var elementWidth = getSizeOfSide(size, \"width\", x => getWidth(x));\r\n var elementHeight = getSizeOfSide(size, \"height\", x => getHeight(x));\r\n var canvas = {\r\n width: size.width <= 0 ? 0 : _floor(pickPositiveValue([size.width, elementWidth, defaultCanvas.width])),\r\n height: size.height <= 0 ? 0 : _floor(pickPositiveValue([size.height, elementHeight, defaultCanvas.height])),\r\n left: pickPositiveValue([margin.left, defaultCanvas.left]),\r\n top: pickPositiveValue([margin.top, defaultCanvas.top]),\r\n right: pickPositiveValue([margin.right, defaultCanvas.right]),\r\n bottom: pickPositiveValue([margin.bottom, defaultCanvas.bottom])\r\n };\r\n if (canvas.width - canvas.left - canvas.right <= 0 || canvas.height - canvas.top - canvas.bottom <= 0) {\r\n canvas = {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return canvas\r\n },\r\n _updateSize: function() {\r\n var canvas = this._calculateCanvas();\r\n this._renderer.fixPlacement();\r\n if (areCanvasesDifferent(this._canvas, canvas) || this.__forceRender) {\r\n this._canvas = canvas;\r\n this._recreateSizeDependentObjects(true);\r\n this._renderer.resize(canvas.width, canvas.height);\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n _recreateSizeDependentObjects: noop,\r\n _getMinSize: function() {\r\n return [0, 0]\r\n },\r\n _getAlignmentRect: noop,\r\n _setContentSize: function() {\r\n var canvas = this._canvas;\r\n var layout = this._layout;\r\n var rect = canvas.width > 0 && canvas.height > 0 ? [canvas.left, canvas.top, canvas.width - canvas.right, canvas.height - canvas.bottom] : [0, 0, 0, 0];\r\n rect = layout.forward(rect, this._getMinSize());\r\n var nextRect = this._applySize(rect) || rect;\r\n layout.backward(nextRect, this._getAlignmentRect() || nextRect)\r\n },\r\n _getOption: function(name, isScalar) {\r\n var theme = this._themeManager.theme(name);\r\n var option = this.option(name);\r\n return isScalar ? void 0 !== option ? option : theme : extend(true, {}, theme, option)\r\n },\r\n _setupResizeHandler: function() {\r\n var that = this;\r\n var redrawOnResize = _parseScalar(this._getOption(\"redrawOnResize\", true), true);\r\n if (that._resizeHandler) {\r\n that._removeResizeHandler()\r\n }\r\n that._resizeHandler = createResizeHandler((function() {\r\n if (redrawOnResize) {\r\n that._requestChange([\"CONTAINER_SIZE\"])\r\n } else {\r\n that._renderer.fixPlacement()\r\n }\r\n }));\r\n _windowResizeCallbacks.add(that._resizeHandler)\r\n },\r\n _removeResizeHandler: function() {\r\n if (this._resizeHandler) {\r\n _windowResizeCallbacks.remove(this._resizeHandler);\r\n this._resizeHandler.dispose();\r\n this._resizeHandler = null\r\n }\r\n },\r\n _onBeginUpdate: noop,\r\n beginUpdate: function() {\r\n var that = this;\r\n if (that._initialized && that._isUpdateAllowed()) {\r\n that._onBeginUpdate();\r\n that._suspendChanges()\r\n }\r\n that.callBase.apply(that, arguments);\r\n return that\r\n },\r\n endUpdate: function() {\r\n this.callBase();\r\n this._isUpdateAllowed() && this._resumeChanges();\r\n return this\r\n },\r\n option: function(name) {\r\n var that = this;\r\n if (that._initialized && that._applyingChanges && (arguments.length > 1 || _isObject(name))) {\r\n that._optionsQueue = that._optionsQueue || [];\r\n that._optionsQueue.push(that._getActionForUpdating(arguments))\r\n } else {\r\n return _option.apply(that, arguments)\r\n }\r\n },\r\n _getActionForUpdating: function(args) {\r\n var that = this;\r\n return function() {\r\n _option.apply(that, args)\r\n }\r\n },\r\n _clean: noop,\r\n _render: noop,\r\n _optionChanged: function(arg) {\r\n var that = this;\r\n if (that._optionChangedLocker) {\r\n return\r\n }\r\n var partialChanges = that.getPartialChangeOptionsName(arg);\r\n var changes = [];\r\n if (partialChanges.length > 0) {\r\n partialChanges.forEach(pc => changes.push(that._partialOptionChangesMap[pc]))\r\n } else {\r\n changes.push(that._optionChangesMap[arg.name])\r\n }\r\n changes = changes.filter(c => !!c);\r\n if (that._eventTrigger.change(arg.name)) {\r\n that._change([\"EVENTS\"])\r\n } else if (changes.length > 0) {\r\n that._change(changes)\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n _notify: noop,\r\n _changesApplied: noop,\r\n _optionChangesMap: {\r\n size: \"CONTAINER_SIZE\",\r\n margin: \"CONTAINER_SIZE\",\r\n redrawOnResize: \"RESIZE_HANDLER\",\r\n theme: \"THEME\",\r\n rtlEnabled: \"THEME\",\r\n encodeHtml: \"THEME\",\r\n elementAttr: \"ELEMENT_ATTR\",\r\n disabled: \"DISABLED\"\r\n },\r\n _partialOptionChangesMap: {},\r\n _partialOptionChangesPath: {},\r\n getPartialChangeOptionsName: function(changedOption) {\r\n var that = this;\r\n var fullName = changedOption.fullName;\r\n var sections = fullName.split(/[.]/);\r\n var name = changedOption.name;\r\n var value = changedOption.value;\r\n var options = this._partialOptionChangesPath[name];\r\n var partialChangeOptionsName = [];\r\n if (options) {\r\n if (true === options) {\r\n partialChangeOptionsName.push(name)\r\n } else {\r\n options.forEach(op => {\r\n fullName.indexOf(op) >= 0 && partialChangeOptionsName.push(op)\r\n });\r\n if (1 === sections.length) {\r\n if (\"object\" === type(value)) {\r\n that._addOptionsNameForPartialUpdate(value, options, partialChangeOptionsName)\r\n } else if (\"array\" === type(value)) {\r\n if (value.length > 0 && value.every(item => that._checkOptionsForPartialUpdate(item, options))) {\r\n value.forEach(item => that._addOptionsNameForPartialUpdate(item, options, partialChangeOptionsName))\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return partialChangeOptionsName.filter((value, index, self) => self.indexOf(value) === index)\r\n },\r\n _checkOptionsForPartialUpdate: function(optionObject, options) {\r\n return !Object.keys(optionObject).some(key => -1 === options.indexOf(key))\r\n },\r\n _addOptionsNameForPartialUpdate: function(optionObject, options, partialChangeOptionsName) {\r\n var optionKeys = Object.keys(optionObject);\r\n if (this._checkOptionsForPartialUpdate(optionObject, options)) {\r\n optionKeys.forEach(key => options.indexOf(key) > -1 && partialChangeOptionsName.push(key))\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.render()\r\n },\r\n _setThemeAndRtl: function() {\r\n this._themeManager.setTheme(this.option(\"theme\"), this.option(OPTION_RTL_ENABLED))\r\n },\r\n _getRendererOptions: function() {\r\n return {\r\n rtl: this.option(OPTION_RTL_ENABLED),\r\n encodeHtml: this.option(\"encodeHtml\"),\r\n animation: this._getAnimationOptions()\r\n }\r\n },\r\n _setRendererOptions: function() {\r\n this._renderer.setOptions(this._getRendererOptions())\r\n },\r\n svg: function() {\r\n return this._renderer.svg()\r\n },\r\n getSize: function() {\r\n var canvas = this._canvas || {};\r\n return {\r\n width: canvas.width,\r\n height: canvas.height\r\n }\r\n },\r\n isReady: getFalse,\r\n _dataIsReady: getTrue,\r\n _resetIsReady: function() {\r\n this.isReady = getFalse\r\n },\r\n _drawn: function() {\r\n var that = this;\r\n that.isReady = getFalse;\r\n if (that._dataIsReady()) {\r\n that._renderer.onEndAnimation((function() {\r\n that.isReady = getTrue\r\n }))\r\n }\r\n that._eventTrigger(\"drawn\", {})\r\n }\r\n});\r\nexport default baseWidget;\r\nreplaceInherit(baseWidget);\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], 0, false)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, 0, false)\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n var lastArgs;\r\n return function() {\r\n lastArgs = arguments;\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n if (lastArgs) {\r\n func.call(this, lastArgs)\r\n }\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isPlainObject,\r\n isEmptyObject,\r\n isDefined,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend,\r\n extendFromObject\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstance(instance, clonedInstances) {\r\n clonedInstances = clonedInstances || new WeakMap;\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n if (instance) {\r\n clonedInstances.set(instance, result)\r\n }\r\n var instanceWithoutPrototype = extendFromObject({}, instance);\r\n for (var name in instanceWithoutPrototype) {\r\n var prop = instanceWithoutPrototype[name];\r\n if (isObject(prop) && !isPlainObject(prop) && !clonedInstances.has(prop)) {\r\n instanceWithoutPrototype[name] = cloneInstance(prop, clonedInstances)\r\n }\r\n }\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n for (var _name in result) {\r\n var _prop = result[_name];\r\n if (isObject(_prop) && clonedInstances.has(_prop)) {\r\n result[_name] = clonedInstances.get(_prop)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstance(target);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue) {\r\n xValue = toComparable(xValue);\r\n yValue = toComparable(yValue);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap)\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || defaultCompare;\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var toString = function(value) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit) {\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1]);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = toComparable(value);\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) > value\r\n };\r\n case \"<\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) < value\r\n };\r\n case \">=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) >= value\r\n };\r\n case \"<=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) <= value\r\n };\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.criteria = compileCriteria(criteria)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n options = options || {};\r\n var filter = options.filter;\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePush\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(createUserFuncFailureHandler(pendingDeferred))\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n delete this.__rawData\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/data/query_adapters.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {};\r\n","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/array\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePush\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePush\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n if (!isDefined(data) || isEmpty(data)) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n this._eventsStrategy.fireEvent(\"changing\", [{\r\n changes: changes\r\n }]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n if (store instanceof CustomStore) {\r\n store.clearRawDataCache()\r\n }\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isPlainObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers()\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n if (this._dataSource) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/viz/core/data_source.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nvar postCtor = DataHelperMixin.postCtor;\r\nvar name;\r\nvar members = {\r\n _dataSourceLoadErrorHandler: function() {\r\n this._dataSourceChangedHandler()\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _updateDataSource: function() {\r\n this._refreshDataSource();\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSourceChangedHandler()\r\n }\r\n },\r\n _dataIsLoaded: function() {\r\n return !this._dataSource || this._dataSource.isLoaded()\r\n },\r\n _dataSourceItems: function() {\r\n return this._dataSource && this._dataSource.items()\r\n }\r\n};\r\nfor (name in DataHelperMixin) {\r\n if (\"postCtor\" === name) {\r\n continue\r\n }\r\n members[name] = DataHelperMixin[name]\r\n}\r\nexport var plugin = {\r\n name: \"data_source\",\r\n init: function() {\r\n postCtor.call(this)\r\n },\r\n dispose: noop,\r\n members: members\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/file_saver.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../ui/widget/ui.errors\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n logger\r\n} from \"../core/utils/console\";\r\nvar window = getWindow();\r\nvar navigator = getNavigator();\r\nvar FILE_EXTESIONS = {\r\n EXCEL: \"xlsx\",\r\n CSS: \"css\",\r\n PNG: \"png\",\r\n JPEG: \"jpeg\",\r\n GIF: \"gif\",\r\n SVG: \"svg\",\r\n PDF: \"pdf\"\r\n};\r\nexport var MIME_TYPES = {\r\n CSS: \"text/css\",\r\n EXCEL: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n PNG: \"image/png\",\r\n JPEG: \"image/jpeg\",\r\n GIF: \"image/gif\",\r\n SVG: \"image/svg+xml\",\r\n PDF: \"application/pdf\"\r\n};\r\nexport var fileSaver = {\r\n _revokeObjectURLTimeout: 3e4,\r\n _getDataUri: function(format, data) {\r\n var mimeType = this._getMimeType(format);\r\n return \"data:\".concat(mimeType, \";base64,\").concat(data)\r\n },\r\n _getMimeType: function(format) {\r\n return MIME_TYPES[format] || \"application/octet-stream\"\r\n },\r\n _linkDownloader: function(fileName, href) {\r\n var exportLinkElement = domAdapter.createElement(\"a\");\r\n exportLinkElement.download = fileName;\r\n exportLinkElement.href = href;\r\n exportLinkElement.target = \"_blank\";\r\n return exportLinkElement\r\n },\r\n _formDownloader: function(proxyUrl, fileName, contentType, data) {\r\n var formAttributes = {\r\n method: \"post\",\r\n action: proxyUrl,\r\n enctype: \"multipart/form-data\"\r\n };\r\n var exportForm = $(\"\").css({\r\n display: \"none\"\r\n }).attr(formAttributes);\r\n\r\n function setAttributes(element, attributes) {\r\n for (var key in attributes) {\r\n element.setAttribute(key, attributes[key])\r\n }\r\n return element\r\n }\r\n exportForm.append(setAttributes(domAdapter.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"fileName\",\r\n value: fileName\r\n }));\r\n exportForm.append(setAttributes(domAdapter.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"contentType\",\r\n value: contentType\r\n }));\r\n exportForm.append(setAttributes(domAdapter.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"data\",\r\n value: data\r\n }));\r\n exportForm.appendTo(\"body\");\r\n eventsEngine.trigger(exportForm, \"submit\");\r\n if (eventsEngine.trigger(exportForm, \"submit\")) {\r\n exportForm.remove()\r\n }\r\n },\r\n _saveByProxy: function(proxyUrl, fileName, format, data) {\r\n var contentType = this._getMimeType(format);\r\n return this._formDownloader(proxyUrl, fileName, contentType, data)\r\n },\r\n _winJSBlobSave: function(blob, fileName, format) {\r\n var savePicker = new Windows.Storage.Pickers.FileSavePicker;\r\n savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n var mimeType = this._getMimeType(format);\r\n savePicker.fileTypeChoices.insert(mimeType, [\".\" + fileExtension])\r\n }\r\n savePicker.suggestedFileName = fileName;\r\n savePicker.pickSaveFileAsync().then((function(file) {\r\n if (file) {\r\n file.openAsync(Windows.Storage.FileAccessMode.readWrite).then((function(outputStream) {\r\n var inputStream = blob.msDetachStream();\r\n Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, outputStream).then((function() {\r\n outputStream.flushAsync().done((function() {\r\n inputStream.close();\r\n outputStream.close()\r\n }))\r\n }))\r\n }))\r\n }\r\n }))\r\n },\r\n _click: function(link) {\r\n try {\r\n link.dispatchEvent(new MouseEvent(\"click\", {\r\n cancelable: true\r\n }))\r\n } catch (e) {\r\n var event = domAdapter.getDocument().createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n link.dispatchEvent(event)\r\n }\r\n },\r\n _saveBlobAs: function(fileName, format, data) {\r\n this._blobSaved = false;\r\n if (isDefined(navigator.msSaveOrOpenBlob)) {\r\n navigator.msSaveOrOpenBlob(data, fileName);\r\n this._blobSaved = true\r\n } else if (isDefined(window.WinJS)) {\r\n this._winJSBlobSave(data, fileName, format);\r\n this._blobSaved = true\r\n } else {\r\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL;\r\n if (isDefined(URL)) {\r\n var objectURL = URL.createObjectURL(data);\r\n var downloadLink = this._linkDownloader(fileName, objectURL);\r\n setTimeout(() => {\r\n URL.revokeObjectURL(objectURL);\r\n this._objectUrlRevoked = true\r\n }, this._revokeObjectURLTimeout);\r\n this._click(downloadLink)\r\n } else {\r\n logger.warn(\"window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL is not defined\")\r\n }\r\n }\r\n },\r\n saveAs: function(fileName, format, data, proxyURL, forceProxy) {\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n fileName += \".\" + fileExtension\r\n }\r\n if (isDefined(proxyURL)) {\r\n errors.log(\"W0001\", \"Export\", \"proxyURL\", \"19.2\", \"This option is no longer required\")\r\n }\r\n if (forceProxy) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else if (isFunction(window.Blob)) {\r\n this._saveBlobAs(fileName, format, data)\r\n } else if (isDefined(proxyURL) && !isDefined(navigator.userAgent.match(/iPad/i))) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else {\r\n if (!isDefined(navigator.userAgent.match(/iPad/i))) {\r\n errors.log(\"E1034\")\r\n }\r\n var downloadLink = this._linkDownloader(fileName, this._getDataUri(format, data));\r\n this._click(downloadLink)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport localizationCoreUtils from \"./core\";\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\nexport function getLanguageId() {\r\n return LANGUAGE_CODES[localizationCoreUtils.locale()]\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/excel_format_converter.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport numberFormatter from \"../localization/number\";\r\nimport dateLocalization from \"../localization/date\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormat\r\n} from \"../localization/ldml/date.format\";\r\nimport {\r\n getLanguageId\r\n} from \"../localization/language_codes\";\r\nimport \"../localization/currency\";\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\nvar excelFormatConverter = {\r\n _applyPrecision: function(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n },\r\n _hasArabicDigits: function(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _convertDateFormatToOpenXml: function(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map((function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n })).join(\"\")\r\n },\r\n _convertDateFormat: function(format) {\r\n var formattedValue = (dateLocalization.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = getFormat(value => dateLocalization.format(value, format));\r\n if (result) {\r\n result = this._convertDateFormatToOpenXml(result);\r\n result = this._getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n },\r\n _getLanguageInfo: function(defaultPattern) {\r\n var languageID = getLanguageId();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (this._hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n return languageInfo\r\n },\r\n _convertNumberFormat: function(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = numberFormatter.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = stringFormat(excelFormat, this._applyPrecision(format, precision))\r\n }\r\n return result\r\n },\r\n convertFormat: function(format, precision, type, currency) {\r\n if (isDefined(format)) {\r\n if (\"date\" === type) {\r\n return excelFormatConverter._convertDateFormat(format)\r\n } else if (isString(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return excelFormatConverter._convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n }\r\n};\r\nexport default excelFormatConverter;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.tag_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar tagHelper = {\r\n toXml: function(tagName, attributes, content) {\r\n var result = [\"<\", tagName];\r\n for (var attributeName in attributes) {\r\n var attributeValue = attributes[attributeName];\r\n if (isDefined(attributeValue)) {\r\n result.push(\" \", attributeName, '=\"', attributeValue, '\"')\r\n }\r\n }\r\n if (isDefined(content) && \"\" !== content) {\r\n result.push(\">\", content, \"\")\r\n } else {\r\n result.push(\" />\")\r\n }\r\n return result.join(\"\")\r\n }\r\n};\r\nexport default tagHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.cell_alignment_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar cellAlignmentHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n vertical: sourceObj.vertical,\r\n wrapText: sourceObj.wrapText,\r\n horizontal: sourceObj.horizontal\r\n };\r\n if (cellAlignmentHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.horizontal) {\r\n result.horizontal = source.horizontal\r\n }\r\n if (void 0 !== source.vertical) {\r\n result.vertical = source.vertical\r\n }\r\n if (void 0 !== source.wrapText) {\r\n result.wrapText = source.wrapText\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellAlignmentHelper.isEmpty(leftTag) && cellAlignmentHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.vertical === rightTag.vertical && leftTag.wrapText === rightTag.wrapText && leftTag.horizontal === rightTag.horizontal\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.vertical) && !isDefined(tag.wrapText) && !isDefined(tag.horizontal)\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"alignment\", {\r\n vertical: tag.vertical,\r\n wrapText: isDefined(tag.wrapText) ? Number(tag.wrapText) : void 0,\r\n horizontal: tag.horizontal\r\n })\r\n }\r\n};\r\nexport default cellAlignmentHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.color_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar colorHelper = {\r\n _tryConvertColor: function(source) {\r\n if (\"string\" !== typeof source) {\r\n return source\r\n }\r\n var result;\r\n if (source.length > 0 && \"#\" === source[0]) {\r\n var colorCode = source.substr(1, source.length);\r\n if (6 === colorCode.length) {\r\n result = \"FF\" + colorCode\r\n } else if (8 === colorCode.length) {\r\n result = colorCode[6] + colorCode[7] + colorCode.substr(0, 6)\r\n } else {\r\n result = colorCode\r\n }\r\n } else {\r\n result = source\r\n }\r\n return result\r\n },\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj)\r\n }\r\n } else {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj.rgb),\r\n theme: sourceObj.theme\r\n }\r\n }\r\n if (colorHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n if (\"string\" === typeof source) {\r\n result = source\r\n } else {\r\n result = {};\r\n if (void 0 !== source.rgb) {\r\n result.rgb = source.rgb\r\n }\r\n if (void 0 !== source.theme) {\r\n result.theme = source.theme\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.rgb) && !isDefined(tag.theme)\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return colorHelper.isEmpty(leftTag) && colorHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.rgb === rightTag.rgb && leftTag.theme === rightTag.theme\r\n },\r\n toXml: function(tagName, tag) {\r\n return tagHelper.toXml(tagName, {\r\n rgb: tag.rgb,\r\n theme: tag.theme\r\n })\r\n }\r\n};\r\nexport default colorHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.pattern_fill_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport colorHelper from \"./excel.color_helper\";\r\nvar patternFillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n patternType: sourceObj.patternType,\r\n backgroundColor: colorHelper.tryCreateTag(sourceObj.backgroundColor),\r\n foregroundColor: colorHelper.tryCreateTag(sourceObj.foregroundColor)\r\n };\r\n if (patternFillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.patternType) {\r\n result.patternType = source.patternType\r\n }\r\n if (void 0 !== source.backgroundColor) {\r\n result.backgroundColor = colorHelper.copy(source.backgroundColor)\r\n }\r\n if (void 0 !== source.foregroundColor) {\r\n result.foregroundColor = colorHelper.copy(source.foregroundColor)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return patternFillHelper.isEmpty(leftTag) && patternFillHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.patternType === rightTag.patternType && colorHelper.areEqual(leftTag.backgroundColor, rightTag.backgroundColor) && colorHelper.areEqual(leftTag.foregroundColor, rightTag.foregroundColor)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.patternType)\r\n },\r\n toXml: function(tag) {\r\n var content = [isDefined(tag.foregroundColor) ? colorHelper.toXml(\"fgColor\", tag.foregroundColor) : \"\", isDefined(tag.backgroundColor) ? colorHelper.toXml(\"bgColor\", tag.backgroundColor) : \"\"].join(\"\");\r\n return tagHelper.toXml(\"patternFill\", {\r\n patternType: tag.patternType\r\n }, content)\r\n }\r\n};\r\nexport default patternFillHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.fill_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport patternFillHelper from \"./excel.pattern_fill_helper\";\r\nvar fillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n patternFill: patternFillHelper.tryCreateTag(sourceObj.patternFill)\r\n };\r\n if (fillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n tryCreateFillFromSimpleFormat: function() {\r\n var {\r\n backgroundColor: backgroundColor,\r\n fillPatternType: fillPatternType,\r\n fillPatternColor: fillPatternColor\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n if (isDefined(backgroundColor) && !(isDefined(fillPatternType) && isDefined(fillPatternColor))) {\r\n return {\r\n patternFill: {\r\n patternType: \"solid\",\r\n foregroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n } else if (isDefined(fillPatternType) && isDefined(fillPatternColor)) {\r\n return {\r\n patternFill: {\r\n patternType: fillPatternType,\r\n foregroundColor: {\r\n rgb: fillPatternColor\r\n },\r\n backgroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n }\r\n },\r\n copySimpleFormat: function(source, target) {\r\n if (void 0 !== source.backgroundColor) {\r\n target.backgroundColor = source.backgroundColor\r\n }\r\n if (void 0 !== source.fillPatternType) {\r\n target.fillPatternType = source.fillPatternType\r\n }\r\n if (void 0 !== source.fillPatternColor) {\r\n target.fillPatternColor = source.fillPatternColor\r\n }\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.patternFill) {\r\n result.patternFill = patternFillHelper.copy(source.patternFill)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fillHelper.isEmpty(leftTag) && fillHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && patternFillHelper.areEqual(leftTag.patternFill, rightTag.patternFill)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || patternFillHelper.isEmpty(tag.patternFill)\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"fill\", {}, patternFillHelper.toXml(tag.patternFill))\r\n }\r\n};\r\nexport default fillHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.font_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport colorHelper from \"./excel.color_helper\";\r\nvar fontHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n size: sourceObj.size,\r\n name: sourceObj.name,\r\n family: sourceObj.family,\r\n scheme: sourceObj.scheme,\r\n bold: sourceObj.bold,\r\n italic: sourceObj.italic,\r\n underline: sourceObj.underline,\r\n color: colorHelper.tryCreateTag(sourceObj.color)\r\n };\r\n if (fontHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.size) {\r\n result.size = source.size\r\n }\r\n if (void 0 !== source.name) {\r\n result.name = source.name\r\n }\r\n if (void 0 !== source.family) {\r\n result.family = source.family\r\n }\r\n if (void 0 !== source.scheme) {\r\n result.scheme = source.scheme\r\n }\r\n if (void 0 !== source.bold) {\r\n result.bold = source.bold\r\n }\r\n if (void 0 !== source.italic) {\r\n result.italic = source.italic\r\n }\r\n if (void 0 !== source.underline) {\r\n result.underline = source.underline\r\n }\r\n if (void 0 !== source.color) {\r\n result.color = colorHelper.copy(source.color)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fontHelper.isEmpty(leftTag) && fontHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.size === rightTag.size && leftTag.name === rightTag.name && leftTag.family === rightTag.family && leftTag.scheme === rightTag.scheme && (leftTag.bold === rightTag.bold || !leftTag.bold === !rightTag.bold) && (leftTag.italic === rightTag.italic || !leftTag.italic === !rightTag.italic) && leftTag.underline === rightTag.underline && colorHelper.areEqual(leftTag.color, rightTag.color)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.size) && !isDefined(tag.name) && !isDefined(tag.family) && !isDefined(tag.scheme) && (!isDefined(tag.bold) || !tag.bold) && (!isDefined(tag.italic) || !tag.italic) && !isDefined(tag.underline) && colorHelper.isEmpty(tag.color)\r\n },\r\n toXml: function(tag) {\r\n var content = [isDefined(tag.bold) && tag.bold ? tagHelper.toXml(\"b\", {}) : \"\", isDefined(tag.size) ? tagHelper.toXml(\"sz\", {\r\n val: tag.size\r\n }) : \"\", isDefined(tag.color) ? colorHelper.toXml(\"color\", tag.color) : \"\", isDefined(tag.name) ? tagHelper.toXml(\"name\", {\r\n val: tag.name\r\n }) : \"\", isDefined(tag.family) ? tagHelper.toXml(\"family\", {\r\n val: tag.family\r\n }) : \"\", isDefined(tag.scheme) ? tagHelper.toXml(\"scheme\", {\r\n val: tag.scheme\r\n }) : \"\", isDefined(tag.italic) && tag.italic ? tagHelper.toXml(\"i\", {}) : \"\", isDefined(tag.underline) ? tagHelper.toXml(\"u\", {\r\n val: tag.underline\r\n }) : \"\"].join(\"\");\r\n return tagHelper.toXml(\"font\", {}, content)\r\n }\r\n};\r\nexport default fontHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.cell_format_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport cellAlignmentHelper from \"./excel.cell_alignment_helper\";\r\nimport fillHelper from \"./excel.fill_helper\";\r\nimport fontHelper from \"./excel.font_helper\";\r\nvar cellFormatHelper = {\r\n tryCreateTag: function(sourceObj, sharedItemsContainer) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n var numberFormatId;\r\n if (\"number\" === typeof sourceObj.numberFormat) {\r\n numberFormatId = sourceObj.numberFormat\r\n } else {\r\n numberFormatId = sharedItemsContainer.registerNumberFormat(sourceObj.numberFormat)\r\n }\r\n var fill = sourceObj.fill;\r\n if (!isDefined(fill)) {\r\n fill = fillHelper.tryCreateFillFromSimpleFormat(sourceObj)\r\n }\r\n result = {\r\n numberFormatId: numberFormatId,\r\n alignment: cellAlignmentHelper.tryCreateTag(sourceObj.alignment),\r\n fontId: sharedItemsContainer.registerFont(sourceObj.font),\r\n fillId: sharedItemsContainer.registerFill(fill)\r\n };\r\n if (cellFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result;\r\n if (null === source) {\r\n result = null\r\n } else if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.numberFormat) {\r\n result.numberFormat = source.numberFormat\r\n }\r\n if (void 0 !== source.fill) {\r\n result.fill = fillHelper.copy(source.fill)\r\n } else {\r\n fillHelper.copySimpleFormat(source, result)\r\n }\r\n if (void 0 !== source.alignment) {\r\n result.alignment = cellAlignmentHelper.copy(source.alignment)\r\n }\r\n if (void 0 !== source.font) {\r\n result.font = fontHelper.copy(source.font)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellFormatHelper.isEmpty(leftTag) && cellFormatHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.fontId === rightTag.fontId && leftTag.numberFormatId === rightTag.numberFormatId && leftTag.fillId === rightTag.fillId && cellAlignmentHelper.areEqual(leftTag.alignment, rightTag.alignment)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.fontId) && !isDefined(tag.numberFormatId) && !isDefined(tag.fillId) && cellAlignmentHelper.isEmpty(tag.alignment)\r\n },\r\n toXml: function(tag) {\r\n var isAlignmentEmpty = cellAlignmentHelper.isEmpty(tag.alignment);\r\n var applyNumberFormat;\r\n if (isDefined(tag.numberFormatId)) {\r\n applyNumberFormat = tag.numberFormatId > 0 ? 1 : 0\r\n }\r\n return tagHelper.toXml(\"xf\", {\r\n xfId: 0,\r\n applyAlignment: isAlignmentEmpty ? null : 1,\r\n fontId: tag.fontId,\r\n applyNumberFormat: applyNumberFormat,\r\n fillId: tag.fillId,\r\n numFmtId: tag.numberFormatId\r\n }, isAlignmentEmpty ? null : cellAlignmentHelper.toXml(tag.alignment))\r\n }\r\n};\r\nexport default cellFormatHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.number_format_helper.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar numberFormatHelper = {\r\n ID_PROPERTY_NAME: \"id\",\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n formatCode: sourceObj\r\n };\r\n if (numberFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return numberFormatHelper.isEmpty(leftTag) && numberFormatHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.formatCode === rightTag.formatCode\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.formatCode) || \"\" === tag.formatCode\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"numFmt\", {\r\n numFmtId: tag[numberFormatHelper.ID_PROPERTY_NAME],\r\n formatCode: tag.formatCode\r\n })\r\n }\r\n};\r\nexport default numberFormatHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.file.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport cellFormatHelper from \"./excel.cell_format_helper\";\r\nimport fillHelper from \"./excel.fill_helper\";\r\nimport fontHelper from \"./excel.font_helper\";\r\nimport numberFormatHelper from \"./excel.number_format_helper\";\r\nexport default class ExcelFile {\r\n constructor() {\r\n this._cellFormatTags = [];\r\n this._fillTags = [];\r\n this._fontTags = [];\r\n this._numberFormatTags = [];\r\n this._fillTags.push(fillHelper.tryCreateTag({\r\n patternFill: {\r\n patternType: \"none\"\r\n }\r\n }))\r\n }\r\n registerCellFormat(cellFormat) {\r\n var result;\r\n var cellFormatTag = cellFormatHelper.tryCreateTag(cellFormat, {\r\n registerFill: this.registerFill.bind(this),\r\n registerFont: this.registerFont.bind(this),\r\n registerNumberFormat: this.registerNumberFormat.bind(this)\r\n });\r\n if (isDefined(cellFormatTag)) {\r\n for (var i = 0; i < this._cellFormatTags.length; i++) {\r\n if (cellFormatHelper.areEqual(this._cellFormatTags[i], cellFormatTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._cellFormatTags.push(cellFormatTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n static copyCellFormat(source) {\r\n return cellFormatHelper.copy(source)\r\n }\r\n generateCellFormatsXml() {\r\n var cellFormatTagsAsXmlStringsArray = this._cellFormatTags.map(tag => cellFormatHelper.toXml(tag));\r\n return tagHelper.toXml(\"cellXfs\", {\r\n count: cellFormatTagsAsXmlStringsArray.length\r\n }, cellFormatTagsAsXmlStringsArray.join(\"\"))\r\n }\r\n registerFill(fill) {\r\n var result;\r\n var fillTag = fillHelper.tryCreateTag(fill);\r\n if (isDefined(fillTag)) {\r\n for (var i = 0; i < this._fillTags.length; i++) {\r\n if (fillHelper.areEqual(this._fillTags[i], fillTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n if (this._fillTags.length < 2) {\r\n this._fillTags.push(fillHelper.tryCreateTag({\r\n patternFill: {\r\n patternType: \"Gray125\"\r\n }\r\n }))\r\n }\r\n result = this._fillTags.push(fillTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n generateFillsXml() {\r\n var tagsAsXmlStringsArray = this._fillTags.map(tag => fillHelper.toXml(tag));\r\n return tagHelper.toXml(\"fills\", {\r\n count: tagsAsXmlStringsArray.length\r\n }, tagsAsXmlStringsArray.join(\"\"))\r\n }\r\n registerFont(font) {\r\n var result;\r\n var fontTag = fontHelper.tryCreateTag(font);\r\n if (isDefined(fontTag)) {\r\n for (var i = 0; i < this._fontTags.length; i++) {\r\n if (fontHelper.areEqual(this._fontTags[i], fontTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._fontTags.push(fontTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n generateFontsXml() {\r\n var xmlStringsArray = this._fontTags.map(tag => fontHelper.toXml(tag));\r\n return tagHelper.toXml(\"fonts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n }\r\n _convertNumberFormatIndexToId(index) {\r\n return 165 + index\r\n }\r\n registerNumberFormat(numberFormat) {\r\n var result;\r\n var tag = numberFormatHelper.tryCreateTag(numberFormat);\r\n if (isDefined(tag)) {\r\n for (var i = 0; i < this._numberFormatTags.length; i++) {\r\n if (numberFormatHelper.areEqual(this._numberFormatTags[i], tag)) {\r\n result = this._numberFormatTags[i][numberFormatHelper.ID_PROPERTY_NAME];\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n tag[numberFormatHelper.ID_PROPERTY_NAME] = this._convertNumberFormatIndexToId(this._numberFormatTags.length);\r\n result = tag[numberFormatHelper.ID_PROPERTY_NAME];\r\n this._numberFormatTags.push(tag)\r\n }\r\n }\r\n return result\r\n }\r\n generateNumberFormatsXml() {\r\n if (this._numberFormatTags.length > 0) {\r\n var xmlStringsArray = this._numberFormatTags.map(tag => numberFormatHelper.toXml(tag));\r\n return tagHelper.toXml(\"numFmts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n } else {\r\n return \"\"\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/excel_creator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport errors from \"../ui/widget/ui.errors\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport JSZip from \"jszip\";\r\nimport {\r\n MIME_TYPES\r\n} from \"./file_saver\";\r\nimport excelFormatConverter from \"./excel_format_converter\";\r\nimport ExcelFile from \"./excel/excel.file\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar XML_TAG = '';\r\nvar GROUP_SHEET_PR_XML = '';\r\nvar SINGLE_SHEET_PR_XML = \"\";\r\nvar BASE_STYLE_XML2 = '';\r\nvar OPEN_XML_FORMAT_URL = \"http://schemas.openxmlformats.org\";\r\nvar RELATIONSHIP_PART_NAME = \"rels\";\r\nvar XL_FOLDER_NAME = \"xl\";\r\nvar WORKBOOK_FILE_NAME = \"workbook.xml\";\r\nvar CONTENTTYPES_FILE_NAME = \"[Content_Types].xml\";\r\nvar SHAREDSTRING_FILE_NAME = \"sharedStrings.xml\";\r\nvar STYLE_FILE_NAME = \"styles.xml\";\r\nvar WORKSHEETS_FOLDER = \"worksheets\";\r\nvar WORKSHEET_FILE_NAME = \"sheet1.xml\";\r\nvar WORKSHEET_HEADER_XML = '';\r\nvar VALID_TYPES = {\r\n boolean: \"b\",\r\n date: \"d\",\r\n number: \"n\",\r\n string: \"s\"\r\n};\r\nvar EXCEL_START_TIME = Date.UTC(1899, 11, 30);\r\nvar DAYS_COUNT_BEFORE_29_FEB_1900 = 60;\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar UNSUPPORTED_FORMAT_MAPPING = {\r\n quarter: \"shortDate\",\r\n quarterAndYear: \"shortDate\",\r\n minute: \"longTime\",\r\n millisecond: \"longTime\"\r\n};\r\nexport var ExcelCreator = Class.inherit({\r\n _getXMLTag: function(tagName, attributes, content) {\r\n var result = \"<\" + tagName;\r\n var i;\r\n var length = attributes.length;\r\n var attr;\r\n for (i = 0; i < length; i++) {\r\n attr = attributes[i];\r\n if (void 0 !== attr.value) {\r\n result = result + \" \" + attr.name + '=\"' + attr.value + '\"'\r\n }\r\n }\r\n return isDefined(content) ? result + \">\" + content + \"\" : result + \" />\"\r\n },\r\n _convertToExcelCellRef: function(zeroBasedRowIndex, zeroBasedCellIndex) {\r\n var columnName = \"\";\r\n var charCode;\r\n var isCellIndexFound;\r\n while (!isCellIndexFound) {\r\n charCode = 65 + (zeroBasedCellIndex >= 26 ? zeroBasedCellIndex % 26 : Math.ceil(zeroBasedCellIndex));\r\n columnName = String.fromCharCode(charCode) + columnName;\r\n if (zeroBasedCellIndex >= 26) {\r\n zeroBasedCellIndex = Math.floor(zeroBasedCellIndex / 26) - 1\r\n } else {\r\n isCellIndexFound = true\r\n }\r\n }\r\n return columnName + (zeroBasedRowIndex + 1)\r\n },\r\n _convertToExcelCellRefAndTrackMaxIndex: function(rowIndex, cellIndex) {\r\n if (this._maxRowIndex < Number(rowIndex)) {\r\n this._maxRowIndex = Number(rowIndex)\r\n }\r\n if (this._maxColumnIndex < Number(cellIndex)) {\r\n this._maxColumnIndex = Number(cellIndex)\r\n }\r\n return this._convertToExcelCellRef(rowIndex, cellIndex)\r\n },\r\n _getDataType: function(dataType) {\r\n return VALID_TYPES[dataType] || VALID_TYPES.string\r\n },\r\n _tryGetExcelCellDataType: function(object) {\r\n if (isDefined(object)) {\r\n if (\"number\" === typeof object) {\r\n if (isFinite(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n return VALID_TYPES.string\r\n }\r\n } else if (isString(object)) {\r\n return VALID_TYPES.string\r\n } else if (isDate(object)) {\r\n return VALID_TYPES.number\r\n } else if (isBoolean(object)) {\r\n return VALID_TYPES.boolean\r\n }\r\n }\r\n },\r\n _formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if (isObject(format)) {\r\n return extend(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n _tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = this._formatObjectConverter(format, dataType);\r\n format = newFormat.format;\r\n var currency = newFormat.currency;\r\n dataType = newFormat.dataType;\r\n if (isDefined(format) && \"date\" === dataType) {\r\n format = UNSUPPORTED_FORMAT_MAPPING[format && format.type || format] || format\r\n }\r\n return excelFormatConverter.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n _appendString: function(value) {\r\n if (isDefined(value)) {\r\n value = String(value);\r\n if (value.length) {\r\n value = encodeHtml(value);\r\n if (void 0 === this._stringHash[value]) {\r\n this._stringHash[value] = this._stringArray.length;\r\n this._stringArray.push(value)\r\n }\r\n return this._stringHash[value]\r\n }\r\n }\r\n },\r\n _tryGetExcelDateValue: function(date) {\r\n var days;\r\n var totalTime;\r\n if (isDate(date)) {\r\n days = Math.floor((Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - EXCEL_START_TIME) / 864e5);\r\n if (days < DAYS_COUNT_BEFORE_29_FEB_1900) {\r\n days--\r\n }\r\n totalTime = (3600 * date.getHours() + 60 * date.getMinutes() + date.getSeconds()) / 86400;\r\n return days + totalTime\r\n }\r\n },\r\n _prepareValue: function(rowIndex, cellIndex) {\r\n var dataProvider = this._dataProvider;\r\n var {\r\n cellSourceData: cellSourceData\r\n } = dataProvider.getCellData(rowIndex, cellIndex) || {};\r\n var {\r\n value: value\r\n } = dataProvider.getCellData(rowIndex, cellIndex) || {};\r\n var sourceValue;\r\n var type = this._getDataType(dataProvider.getCellType(rowIndex, cellIndex));\r\n if (type === VALID_TYPES.date && !isDate(value)) {\r\n type = VALID_TYPES.string\r\n }\r\n switch (type) {\r\n case VALID_TYPES.string:\r\n sourceValue = value;\r\n value = this._appendString(value);\r\n break;\r\n case VALID_TYPES.date:\r\n sourceValue = value;\r\n value = this._tryGetExcelDateValue(value);\r\n type = VALID_TYPES.number\r\n }\r\n return {\r\n value: value,\r\n type: type,\r\n sourceValue: sourceValue,\r\n cellSourceData: cellSourceData\r\n }\r\n },\r\n _callCustomizeExcelCell: function(_ref) {\r\n var {\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: style,\r\n sourceData: sourceData\r\n } = _ref;\r\n var styleCopy = ExcelFile.copyCellFormat(style);\r\n var args = {\r\n value: value,\r\n numberFormat: styleCopy.numberFormat,\r\n clearStyle: function() {\r\n this.horizontalAlignment = null;\r\n this.verticalAlignment = null;\r\n this.wrapTextEnabled = null;\r\n this.font = null;\r\n this.numberFormat = null\r\n }\r\n };\r\n if (isDefined(styleCopy)) {\r\n if (isDefined(styleCopy.alignment)) {\r\n args.horizontalAlignment = styleCopy.alignment.horizontal;\r\n args.verticalAlignment = styleCopy.alignment.vertical;\r\n args.wrapTextEnabled = styleCopy.alignment.wrapText\r\n }\r\n args.backgroundColor = styleCopy.backgroundColor;\r\n args.fillPatternType = styleCopy.fillPatternType;\r\n args.fillPatternColor = styleCopy.fillPatternColor;\r\n args.font = styleCopy.font\r\n }\r\n dataProvider.customizeExcelCell(args, sourceData);\r\n var newStyle = styleCopy || {};\r\n newStyle.font = args.font;\r\n newStyle.alignment = newStyle.alignment || {};\r\n newStyle.alignment.horizontal = args.horizontalAlignment;\r\n newStyle.alignment.vertical = args.verticalAlignment;\r\n newStyle.alignment.wrapText = args.wrapTextEnabled;\r\n newStyle.backgroundColor = args.backgroundColor;\r\n newStyle.fillPatternType = args.fillPatternType;\r\n newStyle.fillPatternColor = args.fillPatternColor;\r\n newStyle.numberFormat = args.numberFormat;\r\n return {\r\n value: args.value,\r\n style: newStyle\r\n }\r\n },\r\n _getDataArray: function() {\r\n var rowIndex;\r\n var cellIndex;\r\n var cellsArray;\r\n var cellData;\r\n var result = [];\r\n var dataProvider = this._dataProvider;\r\n var rowsLength = dataProvider.getRowsCount();\r\n var columns = dataProvider.getColumns();\r\n var cellsLength;\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n cellsArray = [];\r\n cellsLength = columns.length;\r\n for (cellIndex = 0; cellIndex !== cellsLength; cellIndex++) {\r\n cellData = this._prepareValue(rowIndex, cellIndex);\r\n var styleArrayIndex = dataProvider.getStyleId(rowIndex, cellIndex);\r\n var cellStyleId = this._styleArrayIndexToCellStyleIdMap[styleArrayIndex];\r\n if (dataProvider.hasCustomizeExcelCell && dataProvider.hasCustomizeExcelCell()) {\r\n var value = cellData.sourceValue || cellData.value;\r\n var modifiedExcelCell = this._callCustomizeExcelCell({\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: this._styleArray[styleArrayIndex],\r\n sourceData: cellData.cellSourceData\r\n });\r\n if (modifiedExcelCell.value !== value) {\r\n if (typeof modifiedExcelCell.value !== typeof value || \"number\" === typeof modifiedExcelCell.value && !isFinite(modifiedExcelCell.value)) {\r\n var cellDataType = this._tryGetExcelCellDataType(modifiedExcelCell.value);\r\n if (isDefined(cellDataType)) {\r\n cellData.type = cellDataType\r\n }\r\n }\r\n switch (cellData.type) {\r\n case VALID_TYPES.string:\r\n cellData.value = this._appendString(modifiedExcelCell.value);\r\n break;\r\n case VALID_TYPES.date:\r\n cellData.value = modifiedExcelCell.value;\r\n break;\r\n case VALID_TYPES.number:\r\n var newValue = modifiedExcelCell.value;\r\n var excelDateValue = this._tryGetExcelDateValue(newValue);\r\n if (isDefined(excelDateValue)) {\r\n newValue = excelDateValue\r\n }\r\n cellData.value = newValue;\r\n break;\r\n default:\r\n cellData.value = modifiedExcelCell.value\r\n }\r\n }\r\n cellStyleId = this._excelFile.registerCellFormat(modifiedExcelCell.style)\r\n }\r\n cellsArray.push({\r\n style: cellStyleId,\r\n value: cellData.value,\r\n type: cellData.type\r\n })\r\n }\r\n if (!this._needSheetPr && dataProvider.getGroupLevel(rowIndex) > 0) {\r\n this._needSheetPr = true\r\n }\r\n result.push(cellsArray)\r\n }\r\n return result\r\n },\r\n _calculateWidth: function(pixelsWidth) {\r\n pixelsWidth = parseInt(pixelsWidth, 10);\r\n if (!pixelsWidth || pixelsWidth < 5) {\r\n pixelsWidth = 100\r\n }\r\n return Math.min(255, Math.floor((pixelsWidth - 5) / MAX_DIGIT_WIDTH_IN_PIXELS * 100 + .5) / 100)\r\n },\r\n _prepareStyleData: function() {\r\n var that = this;\r\n var styles = that._dataProvider.getStyles();\r\n that._dataProvider.getColumns().forEach((function(column) {\r\n that._colsArray.push(that._calculateWidth(column.width))\r\n }));\r\n var fonts = [{\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: false\r\n }, {\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: true\r\n }];\r\n this._excelFile.registerFont(fonts[0]);\r\n this._excelFile.registerFont(fonts[1]);\r\n styles.forEach((function(style) {\r\n var numberFormat = that._tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (!isDefined(numberFormat)) {\r\n numberFormat = 0\r\n }\r\n that._styleArray.push({\r\n font: fonts[Number(!!style.bold)],\r\n numberFormat: numberFormat,\r\n alignment: {\r\n vertical: \"top\",\r\n wrapText: !!style.wrapText,\r\n horizontal: style.alignment || \"left\"\r\n }\r\n })\r\n }));\r\n that._styleArrayIndexToCellStyleIdMap = that._styleArray.map(item => this._excelFile.registerCellFormat(item))\r\n },\r\n _prepareCellData: function() {\r\n this._cellsArray = this._getDataArray()\r\n },\r\n _createXMLRelationships: function(xmlRelationships) {\r\n return this._getXMLTag(\"Relationships\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/package/2006/relationships\"\r\n }], xmlRelationships)\r\n },\r\n _createXMLRelationship: function(id, type, target) {\r\n return this._getXMLTag(\"Relationship\", [{\r\n name: \"Id\",\r\n value: \"rId\" + id\r\n }, {\r\n name: \"Type\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships/\" + type\r\n }, {\r\n name: \"Target\",\r\n value: target\r\n }])\r\n },\r\n _getWorkbookContent: function() {\r\n return XML_TAG + this._getXMLTag(\"workbook\", [{\r\n name: \"xmlns:r\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships\"\r\n }, {\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], 'Sheet!$1:$1')\r\n },\r\n _getContentTypesContent: function() {\r\n return XML_TAG + ''\r\n },\r\n _generateStylesXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var XML = \"\";\r\n XML += this._excelFile.generateNumberFormatsXml();\r\n XML += this._excelFile.generateFontsXml();\r\n XML += this._excelFile.generateFillsXml();\r\n XML += BASE_STYLE_XML2;\r\n XML += this._excelFile.generateCellFormatsXml();\r\n XML += this._getXMLTag(\"cellStyles\", [{\r\n name: \"count\",\r\n value: 1\r\n }], this._getXMLTag(\"cellStyle\", [{\r\n name: \"name\",\r\n value: \"Normal\"\r\n }, {\r\n name: \"xfId\",\r\n value: 0\r\n }, {\r\n name: \"builtinId\",\r\n value: 0\r\n }]));\r\n XML = XML_TAG + this._getXMLTag(\"styleSheet\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], XML);\r\n folder.file(STYLE_FILE_NAME, XML);\r\n this._styleArray = []\r\n },\r\n _generateStringsXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var stringIndex;\r\n var stringsLength = this._stringArray.length;\r\n var sharedStringXml = XML_TAG;\r\n for (stringIndex = 0; stringIndex < stringsLength; stringIndex++) {\r\n this._stringArray[stringIndex] = this._getXMLTag(\"si\", [], this._getXMLTag(\"t\", [], this._stringArray[stringIndex]))\r\n }\r\n sharedStringXml += this._getXMLTag(\"sst\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }, {\r\n name: \"count\",\r\n value: this._stringArray.length\r\n }, {\r\n name: \"uniqueCount\",\r\n value: this._stringArray.length\r\n }], this._stringArray.join(\"\"));\r\n folder.file(SHAREDSTRING_FILE_NAME, sharedStringXml);\r\n this._stringArray = []\r\n },\r\n _getPaneXML: function() {\r\n var attributes = [{\r\n name: \"activePane\",\r\n value: \"bottomLeft\"\r\n }, {\r\n name: \"state\",\r\n value: \"frozen\"\r\n }];\r\n var frozenArea = this._dataProvider.getFrozenArea();\r\n if (!(frozenArea.x || frozenArea.y)) {\r\n return \"\"\r\n }\r\n if (frozenArea.x) {\r\n attributes.push({\r\n name: \"xSplit\",\r\n value: frozenArea.x\r\n })\r\n }\r\n if (frozenArea.y) {\r\n attributes.push({\r\n name: \"ySplit\",\r\n value: frozenArea.y\r\n })\r\n }\r\n attributes.push({\r\n name: \"topLeftCell\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(frozenArea.y, frozenArea.x)\r\n });\r\n return this._getXMLTag(\"pane\", attributes)\r\n },\r\n _getAutoFilterXML: function(maxCellIndex) {\r\n if (this._options.autoFilterEnabled) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _getIgnoredErrorsXML: function(maxCellIndex) {\r\n if (this._options.ignoreErrors) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _generateWorksheetXML: function() {\r\n var colIndex;\r\n var rowIndex;\r\n var cellData;\r\n var xmlCells;\r\n var xmlRows = [];\r\n var rowsLength = this._cellsArray.length;\r\n var cellsLength;\r\n var colsLength = this._colsArray.length;\r\n var rSpans = \"1:\" + colsLength;\r\n var headerRowCount = this._dataProvider.getHeaderRowCount ? this._dataProvider.getHeaderRowCount() : 1;\r\n var xmlResult = [WORKSHEET_HEADER_XML];\r\n xmlResult.push(this._needSheetPr ? GROUP_SHEET_PR_XML : SINGLE_SHEET_PR_XML);\r\n xmlResult.push('');\r\n xmlResult.push(\"');\r\n xmlResult.push(this._getPaneXML());\r\n xmlResult.push(\"\");\r\n xmlResult.push(' 0 ? this._dataProvider.getGroupLevel(0) : 0) + '\"');\r\n xmlResult.push(' x14ac:dyDescent=\"0.25\"/>');\r\n for (colIndex = 0; colIndex < colsLength; colIndex++) {\r\n this._colsArray[colIndex] = this._getXMLTag(\"col\", [{\r\n name: \"width\",\r\n value: this._colsArray[colIndex]\r\n }, {\r\n name: \"min\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"max\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"customWidth\",\r\n value: 1\r\n }])\r\n }\r\n xmlResult.push(this._getXMLTag(\"cols\", [], this._colsArray.join(\"\")) + \"\");\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n xmlCells = [];\r\n cellsLength = this._cellsArray[rowIndex].length;\r\n for (colIndex = 0; colIndex < cellsLength; colIndex++) {\r\n rowIndex = Number(rowIndex);\r\n cellData = this._cellsArray[rowIndex][colIndex];\r\n xmlCells.push(this._getXMLTag(\"c\", [{\r\n name: \"r\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, colIndex)\r\n }, {\r\n name: \"s\",\r\n value: cellData.style\r\n }, {\r\n name: \"t\",\r\n value: cellData.type\r\n }], isDefined(cellData.value) ? this._getXMLTag(\"v\", [], cellData.value) : null))\r\n }\r\n xmlRows.push(this._getXMLTag(\"row\", [{\r\n name: \"r\",\r\n value: Number(rowIndex) + 1\r\n }, {\r\n name: \"spans\",\r\n value: rSpans\r\n }, {\r\n name: \"outlineLevel\",\r\n value: rowIndex >= headerRowCount ? this._dataProvider.getGroupLevel(rowIndex) : 0\r\n }, {\r\n name: \"x14ac:dyDescent\",\r\n value: \"0.25\"\r\n }], xmlCells.join(\"\")));\r\n this._cellsArray[rowIndex] = null;\r\n if (xmlRows.length > 1e4) {\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = []\r\n }\r\n }\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = [];\r\n var rightBottomCellRef = this._convertToExcelCellRef(this._maxRowIndex, this._maxColumnIndex);\r\n xmlResult.push(\"\" + this._getAutoFilterXML(rightBottomCellRef) + this._generateMergingXML() + this._getIgnoredErrorsXML(rightBottomCellRef) + \"\");\r\n this._zip.folder(XL_FOLDER_NAME).folder(WORKSHEETS_FOLDER).file(WORKSHEET_FILE_NAME, xmlResult.join(\"\"));\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n xmlResult = []\r\n },\r\n _generateMergingXML: function() {\r\n var k;\r\n var l;\r\n var cellIndex;\r\n var rowIndex;\r\n var rowsLength = isDefined(this._dataProvider.getHeaderRowCount) ? this._dataProvider.getHeaderRowCount() : this._dataProvider.getRowsCount();\r\n var columnsLength = this._dataProvider.getColumns().length;\r\n var usedArea = [];\r\n var mergeArray = [];\r\n var mergeIndex;\r\n var mergeXML = \"\";\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n for (cellIndex = 0; cellIndex !== columnsLength; cellIndex++) {\r\n if (!isDefined(usedArea[rowIndex]) || !isDefined(usedArea[rowIndex][cellIndex])) {\r\n var cellMerge = this._dataProvider.getCellMerging(rowIndex, cellIndex);\r\n if (cellMerge.colspan || cellMerge.rowspan) {\r\n mergeArray.push({\r\n start: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, cellIndex),\r\n end: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex + (cellMerge.rowspan || 0), cellIndex + (cellMerge.colspan || 0))\r\n });\r\n for (k = rowIndex; k <= rowIndex + cellMerge.rowspan || 0; k++) {\r\n for (l = cellIndex; l <= cellIndex + cellMerge.colspan || 0; l++) {\r\n if (!isDefined(usedArea[k])) {\r\n usedArea[k] = []\r\n }\r\n usedArea[k][l] = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var mergeArrayLength = mergeArray.length;\r\n for (mergeIndex = 0; mergeIndex < mergeArrayLength; mergeIndex++) {\r\n mergeXML += this._getXMLTag(\"mergeCell\", [{\r\n name: \"ref\",\r\n value: mergeArray[mergeIndex].start + \":\" + mergeArray[mergeIndex].end\r\n }])\r\n }\r\n return mergeXML.length ? this._getXMLTag(\"mergeCells\", [{\r\n name: \"count\",\r\n value: mergeArrayLength\r\n }], mergeXML) : \"\"\r\n },\r\n _generateCommonXML: function() {\r\n var relsFileContent = XML_TAG + this._createXMLRelationships(this._createXMLRelationship(1, \"officeDocument\", \"xl/\" + WORKBOOK_FILE_NAME));\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var relsXML = XML_TAG;\r\n this._zip.folder(\"_\" + RELATIONSHIP_PART_NAME).file(\".\" + RELATIONSHIP_PART_NAME, relsFileContent);\r\n var xmlRelationships = this._createXMLRelationship(1, \"worksheet\", \"worksheets/\" + WORKSHEET_FILE_NAME) + this._createXMLRelationship(2, \"styles\", STYLE_FILE_NAME) + this._createXMLRelationship(3, \"sharedStrings\", SHAREDSTRING_FILE_NAME);\r\n relsXML += this._createXMLRelationships(xmlRelationships);\r\n folder.folder(\"_\" + RELATIONSHIP_PART_NAME).file(WORKBOOK_FILE_NAME + \".rels\", relsXML);\r\n folder.file(WORKBOOK_FILE_NAME, this._getWorkbookContent());\r\n this._zip.file(CONTENTTYPES_FILE_NAME, this._getContentTypesContent())\r\n },\r\n _generateContent: function() {\r\n this._prepareStyleData();\r\n this._prepareCellData();\r\n this._generateWorkXML();\r\n this._generateCommonXML()\r\n },\r\n _generateWorkXML: function() {\r\n this._generateStylesXML();\r\n this._generateStringsXML();\r\n this._generateWorksheetXML()\r\n },\r\n ctor: function(dataProvider, options) {\r\n this._rtlEnabled = options && !!options.rtlEnabled;\r\n this._options = options;\r\n this._maxRowIndex = 0;\r\n this._maxColumnIndex = 0;\r\n this._stringArray = [];\r\n this._stringHash = {};\r\n this._styleArray = [];\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n this._needSheetPr = false;\r\n this._dataProvider = dataProvider;\r\n this._excelFile = new ExcelFile;\r\n if (isDefined(ExcelCreator.JSZip)) {\r\n this._zip = new ExcelCreator.JSZip\r\n } else {\r\n this._zip = null\r\n }\r\n },\r\n _checkZipState: function() {\r\n if (!this._zip) {\r\n throw errors.Error(\"E1041\", \"JSZip\")\r\n }\r\n },\r\n ready: function() {\r\n return this._dataProvider.ready()\r\n },\r\n getData: function(isBlob) {\r\n var options = {\r\n type: isBlob ? \"blob\" : \"base64\",\r\n compression: \"DEFLATE\",\r\n mimeType: MIME_TYPES.EXCEL\r\n };\r\n var deferred = new Deferred;\r\n this._checkZipState();\r\n this._generateContent();\r\n if (this._zip.generateAsync) {\r\n this._zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(this._zip.generate(options))\r\n }\r\n return deferred\r\n }\r\n});\r\nExcelCreator.JSZip = JSZip;\r\nexport function getData(data, options) {\r\n var excelCreator = new ExcelCreator(data, options);\r\n excelCreator._checkZipState();\r\n return excelCreator.ready().then(() => excelCreator.getData(isFunction(getWindow().Blob)))\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/image_creator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Color from \"../color\";\r\nimport {\r\n isFunction,\r\n isPromise,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n getSvgElement,\r\n HIDDEN_FOR_EXPORT\r\n} from \"../core/utils/svg\";\r\nimport {\r\n each as _each,\r\n map as _map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n camelize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar _math = Math;\r\nvar PI = _math.PI;\r\nvar _min = _math.min;\r\nvar _abs = _math.abs;\r\nvar _sqrt = _math.sqrt;\r\nvar _pow = _math.pow;\r\nvar _atan2 = _math.atan2;\r\nvar _cos = _math.cos;\r\nvar _sin = _math.sin;\r\nvar _number = Number;\r\nvar IMAGE_QUALITY = 1;\r\nvar TEXT_DECORATION_LINE_WIDTH_COEFF = .05;\r\nvar DEFAULT_FONT_SIZE = \"10px\";\r\nvar DEFAULT_FONT_FAMILY = \"sans-serif\";\r\nvar DEFAULT_TEXT_COLOR = \"#000\";\r\nvar parseAttributes;\r\n\r\nfunction getStringFromCanvas(canvas, mimeType) {\r\n var dataURL = canvas.toDataURL(mimeType, IMAGE_QUALITY);\r\n var imageData = window.atob(dataURL.substring((\"data:\" + mimeType + \";base64,\").length));\r\n return imageData\r\n}\r\n\r\nfunction arcTo(x1, y1, x2, y2, radius, largeArcFlag, clockwise, context) {\r\n var cBx = (x1 + x2) / 2;\r\n var cBy = (y1 + y2) / 2;\r\n var aB = _atan2(y1 - y2, x1 - x2);\r\n var k = largeArcFlag ? 1 : -1;\r\n aB += PI / 180 * 90 * (clockwise ? 1 : -1);\r\n var opSide = _sqrt(_pow(x2 - x1, 2) + _pow(y2 - y1, 2)) / 2;\r\n var adjSide = _sqrt(_abs(_pow(radius, 2) - _pow(opSide, 2)));\r\n var centerX = cBx + k * (adjSide * _cos(aB));\r\n var centerY = cBy + k * (adjSide * _sin(aB));\r\n var startAngle = _atan2(y1 - centerY, x1 - centerX);\r\n var endAngle = _atan2(y2 - centerY, x2 - centerX);\r\n context.arc(centerX, centerY, radius, startAngle, endAngle, !clockwise)\r\n}\r\n\r\nfunction getElementOptions(element, rootAppended) {\r\n var attr = parseAttributes(element.attributes || {});\r\n var options = extend({}, attr, {\r\n text: element.textContent.replace(/\\s+/g, \" \"),\r\n textAlign: \"middle\" === attr[\"text-anchor\"] ? \"center\" : attr[\"text-anchor\"]\r\n });\r\n var transform = attr.transform;\r\n var coords;\r\n if (transform) {\r\n coords = transform.match(/translate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.translateX = _number(coords[0]);\r\n options.translateY = coords[1] ? _number(coords[1]) : 0\r\n }\r\n coords = transform.match(/rotate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.rotationAngle = _number(coords[0]);\r\n options.rotationX = coords[1] && _number(coords[1]);\r\n options.rotationY = coords[2] && _number(coords[2])\r\n }\r\n coords = transform.match(/scale\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.scaleX = _number(coords[0]);\r\n if (coords.length > 1) {\r\n options.scaleY = _number(coords[1])\r\n } else {\r\n options.scaleY = options.scaleX\r\n }\r\n }\r\n }\r\n parseStyles(element, options, rootAppended);\r\n return options\r\n}\r\n\r\nfunction drawRect(context, options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var width = options.width;\r\n var height = options.height;\r\n var cornerRadius = options.rx;\r\n if (!cornerRadius) {\r\n context.rect(x, y, width, height)\r\n } else {\r\n cornerRadius = _min(cornerRadius, width / 2, height / 2);\r\n context.save();\r\n context.translate(x, y);\r\n context.moveTo(width / 2, 0);\r\n context.arcTo(width, 0, width, height, cornerRadius);\r\n context.arcTo(width, height, 0, height, cornerRadius);\r\n context.arcTo(0, height, 0, 0, cornerRadius);\r\n context.arcTo(0, 0, cornerRadius, 0, cornerRadius);\r\n context.lineTo(width / 2, 0);\r\n context.restore()\r\n }\r\n}\r\n\r\nfunction drawImage(context, options, shared) {\r\n var d = new Deferred;\r\n var image = new window.Image;\r\n image.onload = function() {\r\n context.save();\r\n context.globalAlpha = options.globalAlpha;\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n context.drawImage(image, options.x || 0, options.y || 0, options.width, options.height);\r\n context.restore();\r\n d.resolve()\r\n };\r\n image.onerror = function() {\r\n d.resolve()\r\n };\r\n image.setAttribute(\"crossOrigin\", \"anonymous\");\r\n image.src = options.href || options[\"xlink:href\"];\r\n return d\r\n}\r\n\r\nfunction drawPath(context, dAttr) {\r\n var dArray = dAttr.replace(/,/g, \" \").split(/([A-Z])/i).filter(item => \"\" !== item.trim());\r\n var i = 0;\r\n var params;\r\n var prevParams;\r\n var prevParamsLen;\r\n do {\r\n params = (dArray[i + 1] || \"\").trim().split(\" \");\r\n switch (dArray[i]) {\r\n case \"M\":\r\n context.moveTo(_number(params[0]), _number(params[1]));\r\n i += 2;\r\n break;\r\n case \"L\":\r\n for (var j = 0; j < params.length / 2; j++) {\r\n context.lineTo(_number(params[2 * j]), _number(params[2 * j + 1]))\r\n }\r\n i += 2;\r\n break;\r\n case \"C\":\r\n context.bezierCurveTo(_number(params[0]), _number(params[1]), _number(params[2]), _number(params[3]), _number(params[4]), _number(params[5]));\r\n i += 2;\r\n break;\r\n case \"a\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(prevParams[prevParamsLen - 1]) + _number(params[5]), _number(prevParams[prevParamsLen]) + _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"A\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(params[5]), _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"Z\":\r\n context.closePath();\r\n i += 1;\r\n break;\r\n default:\r\n i++\r\n }\r\n } while (i < dArray.length)\r\n}\r\n\r\nfunction parseStyles(element, options, rootAppended) {\r\n var style = element.style || {};\r\n var field;\r\n for (field in style) {\r\n if (\"\" !== style[field]) {\r\n options[camelize(field)] = style[field]\r\n }\r\n }\r\n if (rootAppended && domAdapter.isElementNode(element)) {\r\n style = window.getComputedStyle(element);\r\n [\"fill\", \"stroke\", \"stroke-width\", \"font-family\", \"font-size\", \"font-style\", \"font-weight\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop]) {\r\n options[camelize(prop)] = style[prop]\r\n }\r\n }));\r\n [\"opacity\", \"fill-opacity\", \"stroke-opacity\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop] && \"1\" !== style[prop]) {\r\n options[prop] = _number(style[prop])\r\n }\r\n }))\r\n }\r\n options.textDecoration = options.textDecoration || options.textDecorationLine;\r\n options.globalAlpha = isDefined(options.opacity) ? options.opacity : options.globalAlpha\r\n}\r\n\r\nfunction parseUrl(urlString) {\r\n var matches = urlString && urlString.match(/url\\(.*#(.*?)[\"']?\\)/i);\r\n return matches && matches[1]\r\n}\r\n\r\nfunction setFontStyle(context, options) {\r\n var fontParams = [];\r\n options.fontSize = options.fontSize || DEFAULT_FONT_SIZE;\r\n options.fontFamily = options.fontFamily || DEFAULT_FONT_FAMILY;\r\n options.fill = options.fill || DEFAULT_TEXT_COLOR;\r\n options.fontStyle && fontParams.push(options.fontStyle);\r\n options.fontWeight && fontParams.push(options.fontWeight);\r\n fontParams.push(options.fontSize);\r\n fontParams.push(options.fontFamily);\r\n context.font = fontParams.join(\" \");\r\n context.textAlign = options.textAlign;\r\n context.fillStyle = options.fill;\r\n context.globalAlpha = options.globalAlpha\r\n}\r\n\r\nfunction drawText(context, options, shared) {\r\n setFontStyle(context, options);\r\n applyFilter(context, options, shared);\r\n options.text && context.fillText(options.text, options.x || 0, options.y || 0);\r\n strokeElement(context, options, true);\r\n drawTextDecoration(context, options, shared)\r\n}\r\n\r\nfunction drawTextDecoration(context, options, shared) {\r\n if (!options.textDecoration || \"none\" === options.textDecoration) {\r\n return\r\n }\r\n var x = options.x;\r\n var textWidth = context.measureText(options.text).width;\r\n var textHeight = parseInt(options.fontSize, 10);\r\n var lineHeight = textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF < 1 ? 1 : textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF;\r\n var y = options.y;\r\n switch (options.textDecoration) {\r\n case \"line-through\":\r\n y -= textHeight / 3 + lineHeight / 2;\r\n break;\r\n case \"overline\":\r\n y -= textHeight - lineHeight;\r\n break;\r\n case \"underline\":\r\n y += lineHeight\r\n }\r\n context.rect(x, y, textWidth, lineHeight);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n}\r\n\r\nfunction aggregateOpacity(options) {\r\n options.strokeOpacity = void 0 !== options[\"stroke-opacity\"] ? options[\"stroke-opacity\"] : 1;\r\n options.fillOpacity = void 0 !== options[\"fill-opacity\"] ? options[\"fill-opacity\"] : 1;\r\n if (void 0 !== options.opacity) {\r\n options.strokeOpacity *= options.opacity;\r\n options.fillOpacity *= options.opacity\r\n }\r\n}\r\n\r\nfunction hasTspan(element) {\r\n var nodes = element.childNodes;\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (\"tspan\" === nodes[i].tagName) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction drawTextElement(childNodes, context, options, shared) {\r\n var lines = [];\r\n var line;\r\n var offset = 0;\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var element = childNodes[i];\r\n if (void 0 === element.tagName) {\r\n drawElement(element, context, options, shared)\r\n } else if (\"tspan\" === element.tagName || \"text\" === element.tagName) {\r\n var elementOptions = getElementOptions(element, shared.rootAppended);\r\n var mergedOptions = extend({}, options, elementOptions);\r\n if (\"tspan\" === element.tagName && hasTspan(element)) {\r\n drawTextElement(element.childNodes, context, mergedOptions, shared);\r\n continue\r\n }\r\n mergedOptions.textAlign = \"start\";\r\n if (!line || void 0 !== elementOptions.x) {\r\n line = {\r\n elements: [],\r\n options: [],\r\n widths: [],\r\n offsets: []\r\n };\r\n lines.push(line)\r\n }\r\n if (void 0 !== elementOptions.y) {\r\n offset = 0\r\n }\r\n if (void 0 !== elementOptions.dy) {\r\n offset += parseFloat(elementOptions.dy)\r\n }\r\n line.elements.push(element);\r\n line.options.push(mergedOptions);\r\n line.offsets.push(offset);\r\n setFontStyle(context, mergedOptions);\r\n line.widths.push(context.measureText(mergedOptions.text).width)\r\n }\r\n }\r\n lines.forEach((function(line) {\r\n var commonWidth = line.widths.reduce((function(commonWidth, width) {\r\n return commonWidth + width\r\n }), 0);\r\n var xDiff = 0;\r\n var currentOffset = 0;\r\n if (\"center\" === options.textAlign) {\r\n xDiff = commonWidth / 2\r\n }\r\n if (\"end\" === options.textAlign) {\r\n xDiff = commonWidth\r\n }\r\n line.options.forEach((function(o, index) {\r\n var width = line.widths[index];\r\n o.x = o.x - xDiff + currentOffset;\r\n o.y += line.offsets[index];\r\n currentOffset += width\r\n }));\r\n line.elements.forEach((function(element, index) {\r\n drawTextElement(element.childNodes, context, line.options[index], shared)\r\n }))\r\n }))\r\n}\r\n\r\nfunction drawElement(element, context, parentOptions, shared) {\r\n var tagName = element.tagName;\r\n var isText = \"text\" === tagName || \"tspan\" === tagName || void 0 === tagName;\r\n var isImage = \"image\" === tagName;\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n if (\"hidden\" === options.visibility || options[HIDDEN_FOR_EXPORT]) {\r\n return\r\n }\r\n context.save();\r\n !isImage && transformElement(context, options);\r\n clipElement(context, options, shared);\r\n aggregateOpacity(options);\r\n var promise;\r\n context.beginPath();\r\n switch (element.tagName) {\r\n case void 0:\r\n drawText(context, options, shared);\r\n break;\r\n case \"text\":\r\n case \"tspan\":\r\n drawTextElement(element.childNodes, context, options, shared);\r\n break;\r\n case \"image\":\r\n promise = drawImage(context, options, shared);\r\n break;\r\n case \"path\":\r\n drawPath(context, options.d);\r\n break;\r\n case \"rect\":\r\n drawRect(context, options);\r\n context.closePath();\r\n break;\r\n case \"circle\":\r\n context.arc(options.cx, options.cy, options.r, 0, 2 * PI, 1)\r\n }\r\n if (!isText) {\r\n applyFilter(context, options, shared);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n }\r\n applyGradient(context, options, shared, element);\r\n context.restore();\r\n return promise\r\n}\r\n\r\nfunction applyGradient(context, options, _ref, element) {\r\n var {\r\n gradients: gradients\r\n } = _ref;\r\n if (0 === gradients.length) {\r\n return\r\n }\r\n var id = parseUrl(options.fill);\r\n if (id && gradients[id]) {\r\n var box = element.getBBox();\r\n var gradient = context.createLinearGradient(box.x, 0, box.x + box.width, 0);\r\n gradients[id].forEach(opt => {\r\n var offset = parseInt(opt.offset.replace(/%/, \"\"));\r\n gradient.addColorStop(offset / 100, opt.stopColor)\r\n });\r\n context.globalAlpha = options.opacity;\r\n context.fillStyle = gradient;\r\n context.fill()\r\n }\r\n}\r\n\r\nfunction applyFilter(context, options, shared) {\r\n var filterOptions;\r\n var id = parseUrl(options.filter);\r\n if (id) {\r\n filterOptions = shared.filters[id];\r\n if (!filterOptions) {\r\n filterOptions = {\r\n offsetX: 0,\r\n offsetY: 0,\r\n blur: 0,\r\n color: \"#000\"\r\n }\r\n }\r\n context.shadowOffsetX = filterOptions.offsetX;\r\n context.shadowOffsetY = filterOptions.offsetY;\r\n context.shadowColor = filterOptions.color;\r\n context.shadowBlur = filterOptions.blur\r\n }\r\n}\r\n\r\nfunction transformElement(context, options) {\r\n context.translate(options.translateX || 0, options.translateY || 0);\r\n options.translateX = void 0;\r\n options.translateY = void 0;\r\n if (options.rotationAngle) {\r\n context.translate(options.rotationX || 0, options.rotationY || 0);\r\n context.rotate(options.rotationAngle * PI / 180);\r\n context.translate(-(options.rotationX || 0), -(options.rotationY || 0));\r\n options.rotationAngle = void 0;\r\n options.rotationX = void 0;\r\n options.rotationY = void 0\r\n }\r\n if (isFinite(options.scaleX)) {\r\n context.scale(options.scaleX, options.scaleY);\r\n options.scaleX = void 0;\r\n options.scaleY = void 0\r\n }\r\n}\r\n\r\nfunction clipElement(context, options, shared) {\r\n if (options[\"clip-path\"]) {\r\n drawElement(shared.clipPaths[parseUrl(options[\"clip-path\"])], context, {}, shared);\r\n context.clip();\r\n options[\"clip-path\"] = void 0\r\n }\r\n}\r\n\r\nfunction hex2rgba(hexColor, alpha) {\r\n var color = new Color(hexColor);\r\n return \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + alpha + \")\"\r\n}\r\n\r\nfunction createGradient(element) {\r\n var options = [];\r\n _each(element.childNodes, (_, _ref2) => {\r\n var {\r\n attributes: attributes\r\n } = _ref2;\r\n options.push({\r\n offset: attributes.offset.value,\r\n stopColor: attributes[\"stop-color\"].value\r\n })\r\n });\r\n return options\r\n}\r\n\r\nfunction createFilter(element) {\r\n var color;\r\n var opacity;\r\n var filterOptions = {};\r\n _each(element.childNodes, (function(_, node) {\r\n var attr = node.attributes;\r\n if (!attr.result) {\r\n return\r\n }\r\n switch (attr.result.value) {\r\n case \"gaussianBlurResult\":\r\n filterOptions.blur = _number(attr.stdDeviation.value);\r\n break;\r\n case \"offsetResult\":\r\n filterOptions.offsetX = _number(attr.dx.value);\r\n filterOptions.offsetY = _number(attr.dy.value);\r\n break;\r\n case \"floodResult\":\r\n color = attr[\"flood-color\"] ? attr[\"flood-color\"].value : \"#000\";\r\n opacity = attr[\"flood-opacity\"] ? attr[\"flood-opacity\"].value : 1;\r\n filterOptions.color = hex2rgba(color, opacity)\r\n }\r\n }));\r\n return filterOptions\r\n}\r\n\r\nfunction asyncEach(array, callback) {\r\n var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Deferred;\r\n var i = 0;\r\n for (; i < array.length; i++) {\r\n var result = callback(array[i]);\r\n if (isPromise(result)) {\r\n result.then(() => {\r\n asyncEach(Array.prototype.slice.call(array, i + 1), callback, d)\r\n });\r\n break\r\n }\r\n }\r\n if (i === array.length) {\r\n d.resolve()\r\n }\r\n return d\r\n}\r\n\r\nfunction drawCanvasElements(elements, context, parentOptions, shared) {\r\n return asyncEach(elements, (function(element) {\r\n switch (element.tagName && element.tagName.toLowerCase()) {\r\n case \"g\":\r\n case \"svg\":\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n context.save();\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n var onDone = () => {\r\n context.restore()\r\n };\r\n var d = drawCanvasElements(element.childNodes, context, options, shared);\r\n if (isPromise(d)) {\r\n d.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return d;\r\n case \"defs\":\r\n return drawCanvasElements(element.childNodes, context, {}, shared);\r\n case \"clippath\":\r\n shared.clipPaths[element.attributes.id.textContent] = element.childNodes[0];\r\n break;\r\n case \"pattern\":\r\n shared.patterns[element.attributes.id.textContent] = element;\r\n break;\r\n case \"filter\":\r\n shared.filters[element.id] = createFilter(element);\r\n break;\r\n case \"lineargradient\":\r\n shared.gradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n default:\r\n return drawElement(element, context, parentOptions, shared)\r\n }\r\n }))\r\n}\r\n\r\nfunction setLineDash(context, options) {\r\n var matches = options[\"stroke-dasharray\"] && options[\"stroke-dasharray\"].match(/(\\d+)/g);\r\n if (matches && matches.length) {\r\n matches = _map(matches, (function(item) {\r\n return _number(item)\r\n }));\r\n context.setLineDash(matches)\r\n }\r\n}\r\n\r\nfunction strokeElement(context, options, isText) {\r\n var stroke = options.stroke;\r\n if (stroke && \"none\" !== stroke && 0 !== options[\"stroke-width\"]) {\r\n setLineDash(context, options);\r\n context.lineJoin = options[\"stroke-linejoin\"];\r\n context.lineWidth = options[\"stroke-width\"];\r\n context.globalAlpha = options.strokeOpacity;\r\n context.strokeStyle = stroke;\r\n isText ? context.strokeText(options.text, options.x, options.y) : context.stroke();\r\n context.globalAlpha = 1\r\n }\r\n}\r\n\r\nfunction getPattern(context, pattern, shared) {\r\n var options = getElementOptions(pattern, shared.rootAppended);\r\n var patternCanvas = imageCreator._createCanvas(options.width, options.height, 0);\r\n var patternContext = patternCanvas.getContext(\"2d\");\r\n drawCanvasElements(pattern.childNodes, patternContext, options, shared);\r\n return context.createPattern(patternCanvas, \"repeat\")\r\n}\r\n\r\nfunction fillElement(context, options, shared) {\r\n var fill = options.fill;\r\n if (fill && \"none\" !== fill) {\r\n if (-1 === fill.search(/url/)) {\r\n context.fillStyle = fill\r\n } else {\r\n var pattern = shared.patterns[parseUrl(fill)];\r\n if (!pattern) {\r\n return\r\n }\r\n context.fillStyle = getPattern(context, pattern, shared)\r\n }\r\n context.globalAlpha = options.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n }\r\n}\r\nparseAttributes = function(attributes) {\r\n var newAttributes = {};\r\n var attr;\r\n _each(attributes, (function(index, item) {\r\n attr = item.textContent;\r\n if (isFinite(attr)) {\r\n attr = _number(attr)\r\n }\r\n newAttributes[item.name.toLowerCase()] = attr\r\n }));\r\n return newAttributes\r\n};\r\n\r\nfunction drawBackground(context, width, height, backgroundColor, margin) {\r\n context.fillStyle = backgroundColor || \"#ffffff\";\r\n context.fillRect(-margin, -margin, width + 2 * margin, height + 2 * margin)\r\n}\r\n\r\nfunction createInvisibleDiv() {\r\n var invisibleDiv = domAdapter.createElement(\"div\");\r\n invisibleDiv.style.left = \"-9999px\";\r\n invisibleDiv.style.position = \"absolute\";\r\n return invisibleDiv\r\n}\r\n\r\nfunction convertSvgToCanvas(svg, canvas, rootAppended) {\r\n return drawCanvasElements(svg.childNodes, canvas.getContext(\"2d\"), {}, {\r\n clipPaths: {},\r\n patterns: {},\r\n filters: {},\r\n gradients: {},\r\n rootAppended: rootAppended\r\n })\r\n}\r\n\r\nfunction getCanvasFromSvg(markup, _ref3) {\r\n var {\r\n width: width,\r\n height: height,\r\n backgroundColor: backgroundColor,\r\n margin: margin,\r\n svgToCanvas: svgToCanvas = convertSvgToCanvas\r\n } = _ref3;\r\n var scaledScreenInfo = calcScaledInfo(width, height);\r\n var canvas = imageCreator._createCanvas(scaledScreenInfo.width, scaledScreenInfo.height, margin);\r\n var context = canvas.getContext(\"2d\");\r\n context.setTransform(scaledScreenInfo.pixelRatio, 0, 0, scaledScreenInfo.pixelRatio, 0, 0);\r\n var svgElem = getSvgElement(markup);\r\n var invisibleDiv;\r\n var markupIsDomElement = domAdapter.isElementNode(markup);\r\n context.translate(margin, margin);\r\n domAdapter.getBody().appendChild(canvas);\r\n if (!markupIsDomElement) {\r\n invisibleDiv = createInvisibleDiv();\r\n invisibleDiv.appendChild(svgElem);\r\n domAdapter.getBody().appendChild(invisibleDiv)\r\n }\r\n if (svgElem.attributes.direction) {\r\n canvas.dir = svgElem.attributes.direction.textContent\r\n }\r\n drawBackground(context, width, height, backgroundColor, margin);\r\n return fromPromise(svgToCanvas(svgElem, canvas, markupIsDomElement && contains(domAdapter.getBody(), markup))).then(() => canvas).always(() => {\r\n invisibleDiv && domAdapter.getBody().removeChild(invisibleDiv);\r\n domAdapter.getBody().removeChild(canvas)\r\n })\r\n}\r\nexport var imageCreator = {\r\n getImageData: function(markup, options) {\r\n var mimeType = \"image/\" + options.format;\r\n if (isFunction(options.__parseAttributesFn)) {\r\n parseAttributes = options.__parseAttributesFn\r\n }\r\n return getCanvasFromSvg(markup, options).then(canvas => getStringFromCanvas(canvas, mimeType))\r\n },\r\n getData: function(markup, options) {\r\n var that = this;\r\n return imageCreator.getImageData(markup, options).then(binaryData => {\r\n var mimeType = \"image/\" + options.format;\r\n var data = isFunction(window.Blob) && !options.forceProxy ? that._getBlob(binaryData, mimeType) : that._getBase64(binaryData);\r\n return data\r\n })\r\n },\r\n _getBlob: function(binaryData, mimeType) {\r\n var i;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (i = 0; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: mimeType\r\n })\r\n },\r\n _getBase64: function(binaryData) {\r\n return window.btoa(binaryData)\r\n },\r\n _createCanvas(width, height, margin) {\r\n var canvas = $(\"\")[0];\r\n canvas.width = width + 2 * margin;\r\n canvas.height = height + 2 * margin;\r\n canvas.hidden = true;\r\n return canvas\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getData(data, options)\r\n}\r\nexport function testFormats(formats) {\r\n var canvas = imageCreator._createCanvas(100, 100, 0);\r\n return formats.reduce((function(r, f) {\r\n var mimeType = (\"image/\" + f).toLowerCase();\r\n if (-1 !== canvas.toDataURL(mimeType).indexOf(mimeType)) {\r\n r.supported.push(f)\r\n } else {\r\n r.unsupported.push(f)\r\n }\r\n return r\r\n }), {\r\n supported: [],\r\n unsupported: []\r\n })\r\n}\r\nexport function calcScaledInfo(width, height) {\r\n var pixelRatio = window.devicePixelRatio || 1;\r\n return {\r\n pixelRatio: pixelRatio,\r\n width: width * pixelRatio,\r\n height: height * pixelRatio\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/svg_creator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport ajax from \"../core/utils/ajax\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getSvgElement,\r\n getSvgMarkup,\r\n HIDDEN_FOR_EXPORT\r\n} from \"../core/utils/svg\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nexport var svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n ajax.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail((function() {\r\n callback(false)\r\n }))\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n each(that._imageArray, (function(src) {\r\n var deferred = new Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, (function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n }))\r\n }))\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = $(element).attr(\"href\") || $(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }\r\n each(element.childNodes, (function(_, element) {\r\n that._parseImages(element)\r\n }))\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return when.apply($, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var svgElem = getSvgElement(data);\r\n var $svgObject = $(svgElem);\r\n $svgObject.find(\"[\".concat(HIDDEN_FOR_EXPORT, \"]\")).remove();\r\n markup = '' + getSvgMarkup($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(() => {\r\n each(that._imageArray, (function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n }));\r\n return isFunction(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/pdf_creator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../core/version\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n imageCreator,\r\n calcScaledInfo\r\n} from \"./image_creator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<>\\r\\nendobj\\r\\n7 0 obj\\r\\n<>\\r\\nendobj\\r\\n1 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var {\r\n width: width,\r\n height: height\r\n } = calcScaledInfo(options.width, options.height);\r\n width += margin;\r\n height += margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", version);\r\n var image = imageStartTemplate.replace(\"_width_\", width).replace(\"_height_\", height).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getImageData(data, extend({}, options, {\r\n format: \"JPEG\"\r\n })).then(imageString => {\r\n var binaryData = composePdfString(imageString, options, getCurDate());\r\n var pdfData = isFunction(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fileSaver\r\n} from \"./exporter/file_saver\";\r\nimport {\r\n ExcelCreator,\r\n getData as getExcelData\r\n} from \"./exporter/excel_creator\";\r\nimport {\r\n imageCreator,\r\n testFormats,\r\n getData as getImageData\r\n} from \"./exporter/image_creator\";\r\nimport {\r\n svgCreator,\r\n getData as getSvgData\r\n} from \"./exporter/svg_creator\";\r\nimport {\r\n isFunction as _isFunction\r\n} from \"./core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"./core/utils/deferred\";\r\nimport formatConverter from \"./exporter/excel_format_converter\";\r\nimport {\r\n getData\r\n} from \"./exporter/pdf_creator\";\r\n\r\nfunction _export(data, options, getData) {\r\n if (!data) {\r\n return (new Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n _isFunction(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(blob => {\r\n _isFunction(exportedAction) && exportedAction();\r\n if (_isFunction(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)\r\n }\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n}\r\nexport {\r\n _export as\r\n export, fileSaver\r\n};\r\nexport var excel = {\r\n creator: ExcelCreator,\r\n getData: getExcelData,\r\n formatConverter: formatConverter\r\n};\r\nexport var image = {\r\n creator: imageCreator,\r\n getData: getImageData,\r\n testFormats: testFormats\r\n};\r\nexport var pdf = {\r\n getData: getData\r\n};\r\nexport var svg = {\r\n creator: svgCreator,\r\n getData: getSvgData\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/message.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport {\r\n humanize\r\n} from \"../core/utils/inflector\";\r\nimport coreLocalization from \"./core\";\r\nimport {\r\n defaultMessages\r\n} from \"./default_messages\";\r\nvar baseDictionary = extend(true, {}, defaultMessages);\r\nvar getDataByLocale = (localeData, locale) => localeData[locale] || {};\r\nvar newMessages = {};\r\nvar messageLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _dictionary: baseDictionary,\r\n load: function(messages) {\r\n extend(true, this._dictionary, messages)\r\n },\r\n _localizablePrefix: \"@\",\r\n setup: function(localizablePrefix) {\r\n this._localizablePrefix = localizablePrefix\r\n },\r\n localizeString: function(text) {\r\n var that = this;\r\n var regex = new RegExp(\"(^|[^a-zA-Z_0-9\" + that._localizablePrefix + \"-]+)(\" + that._localizablePrefix + \"{1,2})([a-zA-Z_0-9-]+)\", \"g\");\r\n var escapeString = that._localizablePrefix + that._localizablePrefix;\r\n return text.replace(regex, (str, prefix, escape, localizationKey) => {\r\n var defaultResult = that._localizablePrefix + localizationKey;\r\n var result;\r\n if (escape !== escapeString) {\r\n result = that.format(localizationKey)\r\n }\r\n if (!result) {\r\n newMessages[localizationKey] = humanize(localizationKey)\r\n }\r\n return prefix + (result || defaultResult)\r\n })\r\n },\r\n localizeNode: function(node) {\r\n var that = this;\r\n $(node).each((index, nodeItem) => {\r\n if (!nodeItem.nodeType) {\r\n return\r\n }\r\n if (3 === nodeItem.nodeType) {\r\n nodeItem.nodeValue = that.localizeString(nodeItem.nodeValue)\r\n } else if (!$(nodeItem).is(\"iframe\")) {\r\n each(nodeItem.attributes || [], (index, attr) => {\r\n if (\"string\" === typeof attr.value) {\r\n var localizedValue = that.localizeString(attr.value);\r\n if (attr.value !== localizedValue) {\r\n attr.value = localizedValue\r\n }\r\n }\r\n });\r\n $(nodeItem).contents().each((index, node) => {\r\n that.localizeNode(node)\r\n })\r\n }\r\n })\r\n },\r\n getMessagesByLocales: function() {\r\n return this._dictionary\r\n },\r\n getDictionary: function(onlyNew) {\r\n if (onlyNew) {\r\n return newMessages\r\n }\r\n return extend({}, newMessages, this.getMessagesByLocales()[coreLocalization.locale()])\r\n },\r\n getFormatter: function(key) {\r\n return this._getFormatterBase(key) || this._getFormatterBase(key, \"en\")\r\n },\r\n _getFormatterBase: function(key, locale) {\r\n var message = coreLocalization.getValueByClosestLocale(locale => getDataByLocale(this._dictionary, locale)[key]);\r\n if (message) {\r\n return function() {\r\n var args = 1 === arguments.length && Array.isArray(arguments[0]) ? arguments[0].slice(0) : Array.prototype.slice.call(arguments, 0);\r\n args.unshift(message);\r\n return stringFormat.apply(this, args)\r\n }\r\n }\r\n },\r\n format: function(key) {\r\n var formatter = this.getFormatter(key);\r\n var values = Array.prototype.slice.call(arguments, 1);\r\n return formatter && formatter.apply(this, values) || \"\"\r\n }\r\n});\r\nexport default messageLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/default_messages.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var defaultMessages = {\r\n en: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxCollectionWidget-noDataText\": \"No data to display\",\r\n \"dxDropDownEditor-selectLabel\": \"Select\",\r\n \"validation-required\": \"Required\",\r\n \"validation-required-formatted\": \"{0} is required\",\r\n \"validation-numeric\": \"Value must be a number\",\r\n \"validation-numeric-formatted\": \"{0} must be a number\",\r\n \"validation-range\": \"Value is out of range\",\r\n \"validation-range-formatted\": \"{0} is out of range\",\r\n \"validation-stringLength\": \"The length of the value is not correct\",\r\n \"validation-stringLength-formatted\": \"The length of {0} is not correct\",\r\n \"validation-custom\": \"Value is invalid\",\r\n \"validation-custom-formatted\": \"{0} is invalid\",\r\n \"validation-async\": \"Value is invalid\",\r\n \"validation-async-formatted\": \"{0} is invalid\",\r\n \"validation-compare\": \"Values do not match\",\r\n \"validation-compare-formatted\": \"{0} does not match\",\r\n \"validation-pattern\": \"Value does not match pattern\",\r\n \"validation-pattern-formatted\": \"{0} does not match pattern\",\r\n \"validation-email\": \"Email is invalid\",\r\n \"validation-email-formatted\": \"{0} is invalid\",\r\n \"validation-mask\": \"Value is invalid\",\r\n \"dxLookup-searchPlaceholder\": \"Minimum character number: {0}\",\r\n \"dxList-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxList-pulledDownText\": \"Release to refresh...\",\r\n \"dxList-refreshingText\": \"Refreshing...\",\r\n \"dxList-pageLoadingText\": \"Loading...\",\r\n \"dxList-nextButtonText\": \"More\",\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxListEditDecorator-delete\": \"Delete\",\r\n \"dxListEditDecorator-more\": \"More\",\r\n \"dxScrollView-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxScrollView-pulledDownText\": \"Release to refresh...\",\r\n \"dxScrollView-refreshingText\": \"Refreshing...\",\r\n \"dxScrollView-reachBottomText\": \"Loading...\",\r\n \"dxDateBox-simulatedDataPickerTitleTime\": \"Select time\",\r\n \"dxDateBox-simulatedDataPickerTitleDate\": \"Select date\",\r\n \"dxDateBox-simulatedDataPickerTitleDateTime\": \"Select date and time\",\r\n \"dxDateBox-validation-datetime\": \"Value must be a date or time\",\r\n \"dxFileUploader-selectFile\": \"Select file\",\r\n \"dxFileUploader-dropFile\": \"or Drop file here\",\r\n \"dxFileUploader-bytes\": \"bytes\",\r\n \"dxFileUploader-kb\": \"kb\",\r\n \"dxFileUploader-Mb\": \"Mb\",\r\n \"dxFileUploader-Gb\": \"Gb\",\r\n \"dxFileUploader-upload\": \"Upload\",\r\n \"dxFileUploader-uploaded\": \"Uploaded\",\r\n \"dxFileUploader-readyToUpload\": \"Ready to upload\",\r\n \"dxFileUploader-uploadAbortedMessage\": \"Upload cancelled\",\r\n \"dxFileUploader-uploadFailedMessage\": \"Upload failed\",\r\n \"dxFileUploader-invalidFileExtension\": \"File type is not allowed\",\r\n \"dxFileUploader-invalidMaxFileSize\": \"File is too large\",\r\n \"dxFileUploader-invalidMinFileSize\": \"File is too small\",\r\n \"dxRangeSlider-ariaFrom\": \"From\",\r\n \"dxRangeSlider-ariaTill\": \"Till\",\r\n \"dxSwitch-switchedOnText\": \"ON\",\r\n \"dxSwitch-switchedOffText\": \"OFF\",\r\n \"dxForm-optionalMark\": \"optional\",\r\n \"dxForm-requiredMessage\": \"{0} is required\",\r\n \"dxNumberBox-invalidValueMessage\": \"Value must be a number\",\r\n \"dxNumberBox-noDataText\": \"No data\",\r\n \"dxDataGrid-columnChooserTitle\": \"Column Chooser\",\r\n \"dxDataGrid-columnChooserEmptyText\": \"Drag a column here to hide it\",\r\n \"dxDataGrid-groupContinuesMessage\": \"Continues on the next page\",\r\n \"dxDataGrid-groupContinuedMessage\": \"Continued from the previous page\",\r\n \"dxDataGrid-groupHeaderText\": \"Group by This Column\",\r\n \"dxDataGrid-ungroupHeaderText\": \"Ungroup\",\r\n \"dxDataGrid-ungroupAllText\": \"Ungroup All\",\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDataGrid-groupPanelEmptyText\": \"Drag a column header here to group by that column\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-filterRowShowAllText\": \"(All)\",\r\n \"dxDataGrid-filterRowResetOperationText\": \"Reset\",\r\n \"dxDataGrid-filterRowOperationEquals\": \"Equals\",\r\n \"dxDataGrid-filterRowOperationNotEquals\": \"Does not equal\",\r\n \"dxDataGrid-filterRowOperationLess\": \"Less than\",\r\n \"dxDataGrid-filterRowOperationLessOrEquals\": \"Less than or equal to\",\r\n \"dxDataGrid-filterRowOperationGreater\": \"Greater than\",\r\n \"dxDataGrid-filterRowOperationGreaterOrEquals\": \"Greater than or equal to\",\r\n \"dxDataGrid-filterRowOperationStartsWith\": \"Starts with\",\r\n \"dxDataGrid-filterRowOperationContains\": \"Contains\",\r\n \"dxDataGrid-filterRowOperationNotContains\": \"Does not contain\",\r\n \"dxDataGrid-filterRowOperationEndsWith\": \"Ends with\",\r\n \"dxDataGrid-filterRowOperationBetween\": \"Between\",\r\n \"dxDataGrid-filterRowOperationBetweenStartText\": \"Start\",\r\n \"dxDataGrid-filterRowOperationBetweenEndText\": \"End\",\r\n \"dxDataGrid-applyFilterText\": \"Apply filter\",\r\n \"dxDataGrid-trueText\": \"true\",\r\n \"dxDataGrid-falseText\": \"false\",\r\n \"dxDataGrid-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxDataGrid-sortingDescendingText\": \"Sort Descending\",\r\n \"dxDataGrid-sortingClearText\": \"Clear Sorting\",\r\n \"dxDataGrid-editingSaveAllChanges\": \"Save changes\",\r\n \"dxDataGrid-editingCancelAllChanges\": \"Discard changes\",\r\n \"dxDataGrid-editingAddRow\": \"Add a row\",\r\n \"dxDataGrid-summaryMin\": \"Min: {0}\",\r\n \"dxDataGrid-summaryMinOtherColumn\": \"Min of {1} is {0}\",\r\n \"dxDataGrid-summaryMax\": \"Max: {0}\",\r\n \"dxDataGrid-summaryMaxOtherColumn\": \"Max of {1} is {0}\",\r\n \"dxDataGrid-summaryAvg\": \"Avg: {0}\",\r\n \"dxDataGrid-summaryAvgOtherColumn\": \"Avg of {1} is {0}\",\r\n \"dxDataGrid-summarySum\": \"Sum: {0}\",\r\n \"dxDataGrid-summarySumOtherColumn\": \"Sum of {1} is {0}\",\r\n \"dxDataGrid-summaryCount\": \"Count: {0}\",\r\n \"dxDataGrid-columnFixingFix\": \"Fix\",\r\n \"dxDataGrid-columnFixingUnfix\": \"Unfix\",\r\n \"dxDataGrid-columnFixingLeftPosition\": \"To the left\",\r\n \"dxDataGrid-columnFixingRightPosition\": \"To the right\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows\",\r\n \"dxDataGrid-exportAll\": \"Export all data\",\r\n \"dxDataGrid-headerFilterEmptyValue\": \"(Blanks)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n \"dxDataGrid-ariaAdaptiveCollapse\": \"Hide additional data\",\r\n \"dxDataGrid-ariaAdaptiveExpand\": \"Display additional data\",\r\n \"dxDataGrid-ariaColumn\": \"Column\",\r\n \"dxDataGrid-ariaValue\": \"Value\",\r\n \"dxDataGrid-ariaFilterCell\": \"Filter cell\",\r\n \"dxDataGrid-ariaCollapse\": \"Collapse\",\r\n \"dxDataGrid-ariaExpand\": \"Expand\",\r\n \"dxDataGrid-ariaDataGrid\": \"Data grid\",\r\n \"dxDataGrid-ariaSearchInGrid\": \"Search in the data grid\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select all\",\r\n \"dxDataGrid-ariaSelectRow\": \"Select row\",\r\n \"dxDataGrid-ariaToolbar\": \"Data grid toolbar\",\r\n \"dxDataGrid-filterBuilderPopupTitle\": \"Filter Builder\",\r\n \"dxDataGrid-filterPanelCreateFilter\": \"Create Filter\",\r\n \"dxDataGrid-filterPanelClearFilter\": \"Clear\",\r\n \"dxDataGrid-filterPanelFilterEnabledHint\": \"Enable the filter\",\r\n \"dxTreeList-ariaTreeList\": \"Tree list\",\r\n \"dxTreeList-ariaSearchInGrid\": \"Search in the tree list\",\r\n \"dxTreeList-ariaToolbar\": \"Tree list toolbar\",\r\n \"dxTreeList-editingAddRowToNode\": \"Add\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxPager-pagesCountText\": \"of\",\r\n \"dxPager-pageSizesAllText\": \"All\",\r\n \"dxPivotGrid-grandTotal\": \"Grand Total\",\r\n \"dxPivotGrid-total\": \"{0} Total\",\r\n \"dxPivotGrid-fieldChooserTitle\": \"Field Chooser\",\r\n \"dxPivotGrid-showFieldChooser\": \"Show Field Chooser\",\r\n \"dxPivotGrid-expandAll\": \"Expand All\",\r\n \"dxPivotGrid-collapseAll\": \"Collapse All\",\r\n \"dxPivotGrid-sortColumnBySummary\": 'Sort \"{0}\" by This Column',\r\n \"dxPivotGrid-sortRowBySummary\": 'Sort \"{0}\" by This Row',\r\n \"dxPivotGrid-removeAllSorting\": \"Remove All Sorting\",\r\n \"dxPivotGrid-dataNotAvailable\": \"N/A\",\r\n \"dxPivotGrid-rowFields\": \"Row Fields\",\r\n \"dxPivotGrid-columnFields\": \"Column Fields\",\r\n \"dxPivotGrid-dataFields\": \"Data Fields\",\r\n \"dxPivotGrid-filterFields\": \"Filter Fields\",\r\n \"dxPivotGrid-allFields\": \"All Fields\",\r\n \"dxPivotGrid-columnFieldArea\": \"Drop Column Fields Here\",\r\n \"dxPivotGrid-dataFieldArea\": \"Drop Data Fields Here\",\r\n \"dxPivotGrid-rowFieldArea\": \"Drop Row Fields Here\",\r\n \"dxPivotGrid-filterFieldArea\": \"Drop Filter Fields Here\",\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n \"dxCalendar-todayButtonText\": \"Today\",\r\n \"dxCalendar-ariaWidgetName\": \"Calendar\",\r\n \"dxColorView-ariaRed\": \"Red\",\r\n \"dxColorView-ariaGreen\": \"Green\",\r\n \"dxColorView-ariaBlue\": \"Blue\",\r\n \"dxColorView-ariaAlpha\": \"Transparency\",\r\n \"dxColorView-ariaHex\": \"Color code\",\r\n \"dxTagBox-selected\": \"{0} selected\",\r\n \"dxTagBox-allSelected\": \"All selected ({0})\",\r\n \"dxTagBox-moreSelected\": \"{0} more\",\r\n \"vizExport-printingButtonText\": \"Print\",\r\n \"vizExport-titleMenuText\": \"Exporting/Printing\",\r\n \"vizExport-exportButtonText\": \"{0} file\",\r\n \"dxFilterBuilder-and\": \"And\",\r\n \"dxFilterBuilder-or\": \"Or\",\r\n \"dxFilterBuilder-notAnd\": \"Not And\",\r\n \"dxFilterBuilder-notOr\": \"Not Or\",\r\n \"dxFilterBuilder-addCondition\": \"Add Condition\",\r\n \"dxFilterBuilder-addGroup\": \"Add Group\",\r\n \"dxFilterBuilder-enterValueText\": \"\",\r\n \"dxFilterBuilder-filterOperationEquals\": \"Equals\",\r\n \"dxFilterBuilder-filterOperationNotEquals\": \"Does not equal\",\r\n \"dxFilterBuilder-filterOperationLess\": \"Is less than\",\r\n \"dxFilterBuilder-filterOperationLessOrEquals\": \"Is less than or equal to\",\r\n \"dxFilterBuilder-filterOperationGreater\": \"Is greater than\",\r\n \"dxFilterBuilder-filterOperationGreaterOrEquals\": \"Is greater than or equal to\",\r\n \"dxFilterBuilder-filterOperationStartsWith\": \"Starts with\",\r\n \"dxFilterBuilder-filterOperationContains\": \"Contains\",\r\n \"dxFilterBuilder-filterOperationNotContains\": \"Does not contain\",\r\n \"dxFilterBuilder-filterOperationEndsWith\": \"Ends with\",\r\n \"dxFilterBuilder-filterOperationIsBlank\": \"Is blank\",\r\n \"dxFilterBuilder-filterOperationIsNotBlank\": \"Is not blank\",\r\n \"dxFilterBuilder-filterOperationBetween\": \"Is between\",\r\n \"dxFilterBuilder-filterOperationAnyOf\": \"Is any of\",\r\n \"dxFilterBuilder-filterOperationNoneOf\": \"Is none of\",\r\n \"dxHtmlEditor-dialogColorCaption\": \"Change Font Color\",\r\n \"dxHtmlEditor-dialogBackgroundCaption\": \"Change Background Color\",\r\n \"dxHtmlEditor-dialogLinkCaption\": \"Add Link\",\r\n \"dxHtmlEditor-dialogLinkUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogLinkTextField\": \"Text\",\r\n \"dxHtmlEditor-dialogLinkTargetField\": \"Open link in new window\",\r\n \"dxHtmlEditor-dialogImageCaption\": \"Add Image\",\r\n \"dxHtmlEditor-dialogImageUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogImageAltField\": \"Alternate text\",\r\n \"dxHtmlEditor-dialogImageWidthField\": \"Width (px)\",\r\n \"dxHtmlEditor-dialogImageHeightField\": \"Height (px)\",\r\n \"dxHtmlEditor-dialogInsertTableRowsField\": \"Rows\",\r\n \"dxHtmlEditor-dialogInsertTableColumnsField\": \"Columns\",\r\n \"dxHtmlEditor-dialogInsertTableCaption\": \"Insert Table\",\r\n \"dxHtmlEditor-heading\": \"Heading\",\r\n \"dxHtmlEditor-normalText\": \"Normal text\",\r\n \"dxHtmlEditor-background\": \"Background Color\",\r\n \"dxHtmlEditor-bold\": \"Bold\",\r\n \"dxHtmlEditor-color\": \"Font Color\",\r\n \"dxHtmlEditor-font\": \"Font\",\r\n \"dxHtmlEditor-italic\": \"Italic\",\r\n \"dxHtmlEditor-link\": \"Add Link\",\r\n \"dxHtmlEditor-image\": \"Add Image\",\r\n \"dxHtmlEditor-size\": \"Size\",\r\n \"dxHtmlEditor-strike\": \"Strikethrough\",\r\n \"dxHtmlEditor-subscript\": \"Subscript\",\r\n \"dxHtmlEditor-superscript\": \"Superscript\",\r\n \"dxHtmlEditor-underline\": \"Underline\",\r\n \"dxHtmlEditor-blockquote\": \"Blockquote\",\r\n \"dxHtmlEditor-header\": \"Header\",\r\n \"dxHtmlEditor-increaseIndent\": \"Increase Indent\",\r\n \"dxHtmlEditor-decreaseIndent\": \"Decrease Indent\",\r\n \"dxHtmlEditor-orderedList\": \"Ordered List\",\r\n \"dxHtmlEditor-bulletList\": \"Bullet List\",\r\n \"dxHtmlEditor-alignLeft\": \"Align Left\",\r\n \"dxHtmlEditor-alignCenter\": \"Align Center\",\r\n \"dxHtmlEditor-alignRight\": \"Align Right\",\r\n \"dxHtmlEditor-alignJustify\": \"Align Justify\",\r\n \"dxHtmlEditor-codeBlock\": \"Code Block\",\r\n \"dxHtmlEditor-variable\": \"Add Variable\",\r\n \"dxHtmlEditor-undo\": \"Undo\",\r\n \"dxHtmlEditor-redo\": \"Redo\",\r\n \"dxHtmlEditor-clear\": \"Clear Formatting\",\r\n \"dxHtmlEditor-insertTable\": \"Insert Table\",\r\n \"dxHtmlEditor-insertHeaderRow\": \"Insert Header Row\",\r\n \"dxHtmlEditor-insertRowAbove\": \"Insert Row Above\",\r\n \"dxHtmlEditor-insertRowBelow\": \"Insert Row Below\",\r\n \"dxHtmlEditor-insertColumnLeft\": \"Insert Column Left\",\r\n \"dxHtmlEditor-insertColumnRight\": \"Insert Column Right\",\r\n \"dxHtmlEditor-deleteColumn\": \"Delete Column\",\r\n \"dxHtmlEditor-deleteRow\": \"Delete Row\",\r\n \"dxHtmlEditor-deleteTable\": \"Delete Table\",\r\n \"dxHtmlEditor-cellProperties\": \"Cell Properties\",\r\n \"dxHtmlEditor-tableProperties\": \"Table Properties\",\r\n \"dxHtmlEditor-insert\": \"Insert\",\r\n \"dxHtmlEditor-delete\": \"Delete\",\r\n \"dxHtmlEditor-border\": \"Border\",\r\n \"dxHtmlEditor-style\": \"Style\",\r\n \"dxHtmlEditor-width\": \"Width\",\r\n \"dxHtmlEditor-height\": \"Height\",\r\n \"dxHtmlEditor-borderColor\": \"Color\",\r\n \"dxHtmlEditor-tableBackground\": \"Background\",\r\n \"dxHtmlEditor-dimensions\": \"Dimensions\",\r\n \"dxHtmlEditor-alignment\": \"Alignment\",\r\n \"dxHtmlEditor-horizontal\": \"Horizontal\",\r\n \"dxHtmlEditor-vertical\": \"Vertical\",\r\n \"dxHtmlEditor-paddingVertical\": \"Vertical Padding\",\r\n \"dxHtmlEditor-paddingHorizontal\": \"Horizontal Padding\",\r\n \"dxHtmlEditor-pixels\": \"Pixels\",\r\n \"dxHtmlEditor-list\": \"List\",\r\n \"dxHtmlEditor-ordered\": \"Ordered\",\r\n \"dxHtmlEditor-bullet\": \"Bullet\",\r\n \"dxHtmlEditor-align\": \"Align\",\r\n \"dxHtmlEditor-center\": \"Center\",\r\n \"dxHtmlEditor-left\": \"Left\",\r\n \"dxHtmlEditor-right\": \"Right\",\r\n \"dxHtmlEditor-indent\": \"Indent\",\r\n \"dxHtmlEditor-justify\": \"Justify\",\r\n \"dxFileManager-newDirectoryName\": \"Untitled directory\",\r\n \"dxFileManager-rootDirectoryName\": \"Files\",\r\n \"dxFileManager-errorNoAccess\": \"Access Denied. Operation could not be completed.\",\r\n \"dxFileManager-errorDirectoryExistsFormat\": \"Directory '{0}' already exists.\",\r\n \"dxFileManager-errorFileExistsFormat\": \"File '{0}' already exists.\",\r\n \"dxFileManager-errorFileNotFoundFormat\": \"File '{0}' not found.\",\r\n \"dxFileManager-errorDirectoryNotFoundFormat\": \"Directory '{0}' not found.\",\r\n \"dxFileManager-errorWrongFileExtension\": \"File extension is not allowed.\",\r\n \"dxFileManager-errorMaxFileSizeExceeded\": \"File size exceeds the maximum allowed size.\",\r\n \"dxFileManager-errorInvalidSymbols\": \"This name contains invalid characters.\",\r\n \"dxFileManager-errorDefault\": \"Unspecified error.\",\r\n \"dxFileManager-errorDirectoryOpenFailed\": \"The directory cannot be opened\",\r\n \"dxFileManager-commandCreate\": \"New directory\",\r\n \"dxFileManager-commandRename\": \"Rename\",\r\n \"dxFileManager-commandMove\": \"Move to\",\r\n \"dxFileManager-commandCopy\": \"Copy to\",\r\n \"dxFileManager-commandDelete\": \"Delete\",\r\n \"dxFileManager-commandDownload\": \"Download\",\r\n \"dxFileManager-commandUpload\": \"Upload files\",\r\n \"dxFileManager-commandRefresh\": \"Refresh\",\r\n \"dxFileManager-commandThumbnails\": \"Thumbnails View\",\r\n \"dxFileManager-commandDetails\": \"Details View\",\r\n \"dxFileManager-commandClearSelection\": \"Clear selection\",\r\n \"dxFileManager-commandShowNavPane\": \"Toggle navigation pane\",\r\n \"dxFileManager-dialogDirectoryChooserMoveTitle\": \"Move to\",\r\n \"dxFileManager-dialogDirectoryChooserMoveButtonText\": \"Move\",\r\n \"dxFileManager-dialogDirectoryChooserCopyTitle\": \"Copy to\",\r\n \"dxFileManager-dialogDirectoryChooserCopyButtonText\": \"Copy\",\r\n \"dxFileManager-dialogRenameItemTitle\": \"Rename\",\r\n \"dxFileManager-dialogRenameItemButtonText\": \"Save\",\r\n \"dxFileManager-dialogCreateDirectoryTitle\": \"New directory\",\r\n \"dxFileManager-dialogCreateDirectoryButtonText\": \"Create\",\r\n \"dxFileManager-dialogDeleteItemTitle\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemButtonText\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemSingleItemConfirmation\": \"Are you sure you want to delete {0}?\",\r\n \"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\": \"Are you sure you want to delete {0} items?\",\r\n \"dxFileManager-dialogButtonCancel\": \"Cancel\",\r\n \"dxFileManager-editingCreateSingleItemProcessingMessage\": \"Creating a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemSuccessMessage\": \"Created a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingCreateCommonErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingRenameSingleItemProcessingMessage\": \"Renaming an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemSuccessMessage\": \"Renamed an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingRenameCommonErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingDeleteSingleItemProcessingMessage\": \"Deleting an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsProcessingMessage\": \"Deleting {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemSuccessMessage\": \"Deleted an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsSuccessMessage\": \"Deleted {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemErrorMessage\": \"Item was not deleted\",\r\n \"dxFileManager-editingDeleteMultipleItemsErrorMessage\": \"{0} items were not deleted\",\r\n \"dxFileManager-editingDeleteCommonErrorMessage\": \"Some items were not deleted\",\r\n \"dxFileManager-editingMoveSingleItemProcessingMessage\": \"Moving an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsProcessingMessage\": \"Moving {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemSuccessMessage\": \"Moved an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsSuccessMessage\": \"Moved {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemErrorMessage\": \"Item was not moved\",\r\n \"dxFileManager-editingMoveMultipleItemsErrorMessage\": \"{0} items were not moved\",\r\n \"dxFileManager-editingMoveCommonErrorMessage\": \"Some items were not moved\",\r\n \"dxFileManager-editingCopySingleItemProcessingMessage\": \"Copying an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsProcessingMessage\": \"Copying {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemSuccessMessage\": \"Copied an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsSuccessMessage\": \"Copied {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemErrorMessage\": \"Item was not copied\",\r\n \"dxFileManager-editingCopyMultipleItemsErrorMessage\": \"{0} items were not copied\",\r\n \"dxFileManager-editingCopyCommonErrorMessage\": \"Some items were not copied\",\r\n \"dxFileManager-editingUploadSingleItemProcessingMessage\": \"Uploading an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsProcessingMessage\": \"Uploading {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemSuccessMessage\": \"Uploaded an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsSuccessMessage\": \"Uploaded {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemErrorMessage\": \"Item was not uploaded\",\r\n \"dxFileManager-editingUploadMultipleItemsErrorMessage\": \"{0} items were not uploaded\",\r\n \"dxFileManager-editingUploadCanceledMessage\": \"Canceled\",\r\n \"dxFileManager-listDetailsColumnCaptionName\": \"Name\",\r\n \"dxFileManager-listDetailsColumnCaptionDateModified\": \"Date Modified\",\r\n \"dxFileManager-listDetailsColumnCaptionFileSize\": \"File Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextSize\": \"Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextDateModified\": \"Date Modified\",\r\n \"dxFileManager-notificationProgressPanelTitle\": \"Progress\",\r\n \"dxFileManager-notificationProgressPanelEmptyListText\": \"No operations\",\r\n \"dxFileManager-notificationProgressPanelOperationCanceled\": \"Canceled\",\r\n \"dxDiagram-categoryGeneral\": \"General\",\r\n \"dxDiagram-categoryFlowchart\": \"Flowchart\",\r\n \"dxDiagram-categoryOrgChart\": \"Org Chart\",\r\n \"dxDiagram-categoryContainers\": \"Containers\",\r\n \"dxDiagram-categoryCustom\": \"Custom\",\r\n \"dxDiagram-commandExportToSvg\": \"Export to SVG\",\r\n \"dxDiagram-commandExportToPng\": \"Export to PNG\",\r\n \"dxDiagram-commandExportToJpg\": \"Export to JPEG\",\r\n \"dxDiagram-commandUndo\": \"Undo\",\r\n \"dxDiagram-commandRedo\": \"Redo\",\r\n \"dxDiagram-commandFontName\": \"Font Name\",\r\n \"dxDiagram-commandFontSize\": \"Font Size\",\r\n \"dxDiagram-commandBold\": \"Bold\",\r\n \"dxDiagram-commandItalic\": \"Italic\",\r\n \"dxDiagram-commandUnderline\": \"Underline\",\r\n \"dxDiagram-commandTextColor\": \"Font Color\",\r\n \"dxDiagram-commandLineColor\": \"Line Color\",\r\n \"dxDiagram-commandLineWidth\": \"Line Width\",\r\n \"dxDiagram-commandLineStyle\": \"Line Style\",\r\n \"dxDiagram-commandLineStyleSolid\": \"Solid\",\r\n \"dxDiagram-commandLineStyleDotted\": \"Dotted\",\r\n \"dxDiagram-commandLineStyleDashed\": \"Dashed\",\r\n \"dxDiagram-commandFillColor\": \"Fill Color\",\r\n \"dxDiagram-commandAlignLeft\": \"Align Left\",\r\n \"dxDiagram-commandAlignCenter\": \"Align Center\",\r\n \"dxDiagram-commandAlignRight\": \"Align Right\",\r\n \"dxDiagram-commandConnectorLineType\": \"Connector Line Type\",\r\n \"dxDiagram-commandConnectorLineStraight\": \"Straight\",\r\n \"dxDiagram-commandConnectorLineOrthogonal\": \"Orthogonal\",\r\n \"dxDiagram-commandConnectorLineStart\": \"Connector Line Start\",\r\n \"dxDiagram-commandConnectorLineEnd\": \"Connector Line End\",\r\n \"dxDiagram-commandConnectorLineNone\": \"None\",\r\n \"dxDiagram-commandConnectorLineArrow\": \"Arrow\",\r\n \"dxDiagram-commandFullscreen\": \"Full Screen\",\r\n \"dxDiagram-commandUnits\": \"Units\",\r\n \"dxDiagram-commandPageSize\": \"Page Size\",\r\n \"dxDiagram-commandPageOrientation\": \"Page Orientation\",\r\n \"dxDiagram-commandPageOrientationLandscape\": \"Landscape\",\r\n \"dxDiagram-commandPageOrientationPortrait\": \"Portrait\",\r\n \"dxDiagram-commandPageColor\": \"Page Color\",\r\n \"dxDiagram-commandShowGrid\": \"Show Grid\",\r\n \"dxDiagram-commandSnapToGrid\": \"Snap to Grid\",\r\n \"dxDiagram-commandGridSize\": \"Grid Size\",\r\n \"dxDiagram-commandZoomLevel\": \"Zoom Level\",\r\n \"dxDiagram-commandAutoZoom\": \"Auto Zoom\",\r\n \"dxDiagram-commandFitToContent\": \"Fit to Content\",\r\n \"dxDiagram-commandFitToWidth\": \"Fit to Width\",\r\n \"dxDiagram-commandAutoZoomByContent\": \"Auto Zoom by Content\",\r\n \"dxDiagram-commandAutoZoomByWidth\": \"Auto Zoom by Width\",\r\n \"dxDiagram-commandSimpleView\": \"Simple View\",\r\n \"dxDiagram-commandCut\": \"Cut\",\r\n \"dxDiagram-commandCopy\": \"Copy\",\r\n \"dxDiagram-commandPaste\": \"Paste\",\r\n \"dxDiagram-commandSelectAll\": \"Select All\",\r\n \"dxDiagram-commandDelete\": \"Delete\",\r\n \"dxDiagram-commandBringToFront\": \"Bring to Front\",\r\n \"dxDiagram-commandSendToBack\": \"Send to Back\",\r\n \"dxDiagram-commandLock\": \"Lock\",\r\n \"dxDiagram-commandUnlock\": \"Unlock\",\r\n \"dxDiagram-commandInsertShapeImage\": \"Insert Image...\",\r\n \"dxDiagram-commandEditShapeImage\": \"Change Image...\",\r\n \"dxDiagram-commandDeleteShapeImage\": \"Delete Image\",\r\n \"dxDiagram-commandLayoutLeftToRight\": \"Left-to-right\",\r\n \"dxDiagram-commandLayoutRightToLeft\": \"Right-to-left\",\r\n \"dxDiagram-commandLayoutTopToBottom\": \"Top-to-bottom\",\r\n \"dxDiagram-commandLayoutBottomToTop\": \"Bottom-to-top\",\r\n \"dxDiagram-unitIn\": \"in\",\r\n \"dxDiagram-unitCm\": \"cm\",\r\n \"dxDiagram-unitPx\": \"px\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDiagram-dialogInsertShapeImageTitle\": \"Insert Image\",\r\n \"dxDiagram-dialogEditShapeImageTitle\": \"Change Image\",\r\n \"dxDiagram-dialogEditShapeImageSelectButton\": \"Select image\",\r\n \"dxDiagram-dialogEditShapeImageLabelText\": \"or drop file here\",\r\n \"dxDiagram-uiExport\": \"Export\",\r\n \"dxDiagram-uiProperties\": \"Properties\",\r\n \"dxDiagram-uiSettings\": \"Settings\",\r\n \"dxDiagram-uiShowToolbox\": \"Show Toolbox\",\r\n \"dxDiagram-uiSearch\": \"Search\",\r\n \"dxDiagram-uiStyle\": \"Style\",\r\n \"dxDiagram-uiLayout\": \"Layout\",\r\n \"dxDiagram-uiLayoutTree\": \"Tree\",\r\n \"dxDiagram-uiLayoutLayered\": \"Layered\",\r\n \"dxDiagram-uiDiagram\": \"Diagram\",\r\n \"dxDiagram-uiText\": \"Text\",\r\n \"dxDiagram-uiObject\": \"Object\",\r\n \"dxDiagram-uiConnector\": \"Connector\",\r\n \"dxDiagram-uiPage\": \"Page\",\r\n \"dxDiagram-shapeText\": \"Text\",\r\n \"dxDiagram-shapeRectangle\": \"Rectangle\",\r\n \"dxDiagram-shapeEllipse\": \"Ellipse\",\r\n \"dxDiagram-shapeCross\": \"Cross\",\r\n \"dxDiagram-shapeTriangle\": \"Triangle\",\r\n \"dxDiagram-shapeDiamond\": \"Diamond\",\r\n \"dxDiagram-shapeHeart\": \"Heart\",\r\n \"dxDiagram-shapePentagon\": \"Pentagon\",\r\n \"dxDiagram-shapeHexagon\": \"Hexagon\",\r\n \"dxDiagram-shapeOctagon\": \"Octagon\",\r\n \"dxDiagram-shapeStar\": \"Star\",\r\n \"dxDiagram-shapeArrowLeft\": \"Left Arrow\",\r\n \"dxDiagram-shapeArrowUp\": \"Up Arrow\",\r\n \"dxDiagram-shapeArrowRight\": \"Right Arrow\",\r\n \"dxDiagram-shapeArrowDown\": \"Down Arrow\",\r\n \"dxDiagram-shapeArrowUpDown\": \"Up Down Arrow\",\r\n \"dxDiagram-shapeArrowLeftRight\": \"Left Right Arrow\",\r\n \"dxDiagram-shapeProcess\": \"Process\",\r\n \"dxDiagram-shapeDecision\": \"Decision\",\r\n \"dxDiagram-shapeTerminator\": \"Terminator\",\r\n \"dxDiagram-shapePredefinedProcess\": \"Predefined Process\",\r\n \"dxDiagram-shapeDocument\": \"Document\",\r\n \"dxDiagram-shapeMultipleDocuments\": \"Multiple Documents\",\r\n \"dxDiagram-shapeManualInput\": \"Manual Input\",\r\n \"dxDiagram-shapePreparation\": \"Preparation\",\r\n \"dxDiagram-shapeData\": \"Data\",\r\n \"dxDiagram-shapeDatabase\": \"Database\",\r\n \"dxDiagram-shapeHardDisk\": \"Hard Disk\",\r\n \"dxDiagram-shapeInternalStorage\": \"Internal Storage\",\r\n \"dxDiagram-shapePaperTape\": \"Paper Tape\",\r\n \"dxDiagram-shapeManualOperation\": \"Manual Operation\",\r\n \"dxDiagram-shapeDelay\": \"Delay\",\r\n \"dxDiagram-shapeStoredData\": \"Stored Data\",\r\n \"dxDiagram-shapeDisplay\": \"Display\",\r\n \"dxDiagram-shapeMerge\": \"Merge\",\r\n \"dxDiagram-shapeConnector\": \"Connector\",\r\n \"dxDiagram-shapeOr\": \"Or\",\r\n \"dxDiagram-shapeSummingJunction\": \"Summing Junction\",\r\n \"dxDiagram-shapeContainerDefaultText\": \"Container\",\r\n \"dxDiagram-shapeVerticalContainer\": \"Vertical Container\",\r\n \"dxDiagram-shapeHorizontalContainer\": \"Horizontal Container\",\r\n \"dxDiagram-shapeCardDefaultText\": \"Person's Name\",\r\n \"dxDiagram-shapeCardWithImageOnLeft\": \"Card with Image on the Left\",\r\n \"dxDiagram-shapeCardWithImageOnTop\": \"Card with Image on the Top\",\r\n \"dxDiagram-shapeCardWithImageOnRight\": \"Card with Image on the Right\",\r\n \"dxGantt-dialogTitle\": \"Title\",\r\n \"dxGantt-dialogStartTitle\": \"Start\",\r\n \"dxGantt-dialogEndTitle\": \"End\",\r\n \"dxGantt-dialogProgressTitle\": \"Progress\",\r\n \"dxGantt-dialogResourcesTitle\": \"Resources\",\r\n \"dxGantt-dialogResourceManagerTitle\": \"Resource Manager\",\r\n \"dxGantt-dialogTaskDetailsTitle\": \"Task Details\",\r\n \"dxGantt-dialogEditResourceListHint\": \"Edit Resource List\",\r\n \"dxGantt-dialogEditNoResources\": \"No resources\",\r\n \"dxGantt-dialogButtonAdd\": \"Add\",\r\n \"dxGantt-contextMenuNewTask\": \"New Task\",\r\n \"dxGantt-contextMenuNewSubtask\": \"New Subtask\",\r\n \"dxGantt-contextMenuDeleteTask\": \"Delete Task\",\r\n \"dxGantt-contextMenuDeleteDependency\": \"Delete Dependency\",\r\n \"dxGantt-dialogTaskDeleteConfirmation\": \"Deleting a task also deletes all its dependencies and subtasks. Are you sure you want to delete this task?\",\r\n \"dxGantt-dialogDependencyDeleteConfirmation\": \"Are you sure you want to delete the dependency from the task?\",\r\n \"dxGantt-dialogResourcesDeleteConfirmation\": \"Deleting a resource also deletes it from tasks to which this resource is assigned. Are you sure you want to delete these resources? Resources: {0}\",\r\n \"dxGantt-dialogConstraintCriticalViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. How would you like to proceed?\",\r\n \"dxGantt-dialogCancelOperationMessage\": \"Cancel the operation\",\r\n \"dxGantt-dialogDeleteDependencyMessage\": \"Delete the dependency\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\": \"Move the task and keep the dependency\",\r\n \"dxGantt-undo\": \"Undo\",\r\n \"dxGantt-redo\": \"Redo\",\r\n \"dxGantt-expandAll\": \"Expand All\",\r\n \"dxGantt-collapseAll\": \"Collapse All\",\r\n \"dxGantt-addNewTask\": \"Add New Task\",\r\n \"dxGantt-deleteSelectedTask\": \"Delete Selected Task\",\r\n \"dxGantt-zoomIn\": \"Zoom In\",\r\n \"dxGantt-zoomOut\": \"Zoom Out\",\r\n \"dxGantt-fullScreen\": \"Full Screen\",\r\n \"dxGantt-quarter\": \"Q{0}\",\r\n \"dxGantt-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxGantt-sortingDescendingText\": \"Sort Descending\",\r\n \"dxGantt-sortingClearText\": \"Clear Sorting\",\r\n \"dxGantt-showResources\": \"Show Resources\",\r\n \"dxGantt-showDependencies\": \"Show Dependencies\",\r\n \"dxGantt-dialogStartDateValidation\": \"Start date must be after {0}\",\r\n \"dxGantt-dialogEndDateValidation\": \"End date must be after {0}\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/export.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n patchFontOptions\r\n} from \"./utils\";\r\nimport {\r\n HIDDEN_FOR_EXPORT\r\n} from \"../../core/utils/svg\";\r\nimport {\r\n export as _export,\r\n image as imageExporter,\r\n svg as svgExporter,\r\n pdf as pdfExporter\r\n} from \"../../exporter\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getTheme\r\n} from \"../themes\";\r\nimport {\r\n start as hoverEventStart,\r\n end as hoverEventEnd\r\n} from \"../../events/hover\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar pointerActions = [pointerEvents.down, pointerEvents.move].join(\" \");\r\nvar BUTTON_SIZE = 35;\r\nvar ICON_COORDS = [\r\n [9, 12, 26, 12, 26, 14, 9, 14],\r\n [9, 17, 26, 17, 26, 19, 9, 19],\r\n [9, 22, 26, 22, 26, 24, 9, 24]\r\n];\r\nvar LIST_PADDING_TOP = 4;\r\nvar LIST_WIDTH = 120;\r\nvar VERTICAL_TEXT_MARGIN = 8;\r\nvar HORIZONTAL_TEXT_MARGIN = 15;\r\nvar MENU_ITEM_HEIGHT = 30;\r\nvar LIST_STROKE_WIDTH = 1;\r\nvar MARGIN = 10;\r\nvar SHADOW_OFFSET = 2;\r\nvar SHADOW_BLUR = 3;\r\nvar DEFAULT_EXPORT_FORMAT = \"PNG\";\r\nvar ALLOWED_IMAGE_FORMATS = [DEFAULT_EXPORT_FORMAT, \"JPEG\", \"GIF\"];\r\nvar ALLOWED_EXTRA_FORMATS = [\"PDF\", \"SVG\"];\r\nvar EXPORT_CSS_CLASS = \"dx-export-menu\";\r\nvar A4WidthCm = \"21cm\";\r\nvar EXPORT_DATA_KEY = \"export-element-type\";\r\nvar FORMAT_DATA_KEY = \"export-element-format\";\r\nvar GET_COLOR_REGEX = /data-backgroundcolor=\"([^\"]*)\"/;\r\n\r\nfunction getValidFormats() {\r\n var imageFormats = imageExporter.testFormats(ALLOWED_IMAGE_FORMATS);\r\n return {\r\n unsupported: imageFormats.unsupported,\r\n supported: imageFormats.supported.concat(ALLOWED_EXTRA_FORMATS)\r\n }\r\n}\r\n\r\nfunction validateFormat(format, incidentOccurred, validFormats) {\r\n validFormats = validFormats || getValidFormats();\r\n format = String(format).toUpperCase();\r\n if (-1 !== validFormats.supported.indexOf(format)) {\r\n return format\r\n }\r\n if (-1 !== validFormats.unsupported.indexOf(format)) {\r\n incidentOccurred && incidentOccurred(\"W2108\", [format])\r\n }\r\n}\r\n\r\nfunction getCreatorFunc(format) {\r\n if (\"SVG\" === format) {\r\n return svgExporter.getData\r\n } else if (\"PDF\" === format) {\r\n return pdfExporter.getData\r\n } else {\r\n return imageExporter.getData\r\n }\r\n}\r\n\r\nfunction print(imageSrc, options) {\r\n var document = getWindow().document;\r\n var iFrame = document.createElement(\"iframe\");\r\n iFrame.onload = setPrint(imageSrc, options);\r\n iFrame.style.position = \"fixed\";\r\n iFrame.style.width = \"0\";\r\n iFrame.style.height = \"0\";\r\n iFrame.style.right = \"0\";\r\n iFrame.style.bottom = \"0\";\r\n document.body.appendChild(iFrame)\r\n}\r\n\r\nfunction calculatePrintPageWidth(iFrameBody) {\r\n iFrameBody.style.width = A4WidthCm;\r\n var width = getWidth(iFrameBody);\r\n iFrameBody.style.width = \"\";\r\n return width\r\n}\r\n\r\nfunction setPrint(imageSrc, options) {\r\n return function() {\r\n var window = this.contentWindow;\r\n var img = window.document.createElement(\"img\");\r\n window.document.body.appendChild(img);\r\n var widthRatio = calculatePrintPageWidth(window.document.body) / options.width;\r\n if (widthRatio < 1) {\r\n window.document.body.style.transform = \"scale(\".concat(widthRatio, \")\");\r\n window.document.body.style[\"transform-origin\"] = \"0 0\"\r\n }\r\n var removeFrame = () => {\r\n this.parentElement.removeChild(this)\r\n };\r\n img.addEventListener(\"load\", () => {\r\n window.focus();\r\n window.print()\r\n });\r\n img.addEventListener(\"error\", removeFrame);\r\n window.addEventListener(\"afterprint\", () => {\r\n setTimeout(removeFrame, 0)\r\n });\r\n img.src = imageSrc\r\n }\r\n}\r\n\r\nfunction getItemAttributes(options, type, itemIndex) {\r\n var x = BUTTON_SIZE - LIST_WIDTH;\r\n var y = BUTTON_SIZE + LIST_PADDING_TOP + LIST_STROKE_WIDTH + itemIndex * MENU_ITEM_HEIGHT;\r\n var attr = {\r\n rect: {\r\n width: LIST_WIDTH - 2 * LIST_STROKE_WIDTH,\r\n height: MENU_ITEM_HEIGHT,\r\n x: x + LIST_STROKE_WIDTH,\r\n y: y\r\n },\r\n text: {\r\n x: x + (options.rtl ? LIST_WIDTH - HORIZONTAL_TEXT_MARGIN : HORIZONTAL_TEXT_MARGIN),\r\n y: y + MENU_ITEM_HEIGHT - VERTICAL_TEXT_MARGIN\r\n }\r\n };\r\n if (\"printing\" === type) {\r\n attr.separator = {\r\n stroke: options.button.default.borderColor,\r\n \"stroke-width\": LIST_STROKE_WIDTH,\r\n cursor: \"pointer\",\r\n sharp: \"v\",\r\n d: \"M \" + x + \" \" + (y + MENU_ITEM_HEIGHT - LIST_STROKE_WIDTH) + \" L \" + (x + LIST_WIDTH) + \" \" + (y + MENU_ITEM_HEIGHT - LIST_STROKE_WIDTH)\r\n }\r\n }\r\n return attr\r\n}\r\n\r\nfunction createMenuItem(renderer, options, settings) {\r\n var itemData = {};\r\n var type = settings.type;\r\n var format = settings.format;\r\n var attr = getItemAttributes(options, type, settings.itemIndex);\r\n var fontStyle = patchFontOptions(options.font);\r\n fontStyle[\"pointer-events\"] = \"none\";\r\n var menuItem = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS + \"-list-item\"\r\n });\r\n itemData[EXPORT_DATA_KEY] = type;\r\n if (format) {\r\n itemData[FORMAT_DATA_KEY] = format\r\n }\r\n var rect = renderer.rect();\r\n rect.attr(attr.rect).css({\r\n cursor: \"pointer\",\r\n \"pointer-events\": \"all\"\r\n }).data(itemData);\r\n rect.on(hoverEventStart + \".export\", () => rect.attr({\r\n fill: options.button.hover.backgroundColor\r\n })).on(hoverEventEnd + \".export\", () => rect.attr({\r\n fill: null\r\n }));\r\n rect.append(menuItem);\r\n var text = renderer.text(settings.text).css(fontStyle).attr(attr.text).append(menuItem);\r\n if (\"printing\" === type) {\r\n renderer.path(null, \"line\").attr(attr.separator).append(menuItem)\r\n }\r\n return {\r\n g: menuItem,\r\n rect: rect,\r\n resetState: () => rect.attr({\r\n fill: null\r\n }),\r\n fixPosition: () => {\r\n var textBBox = text.getBBox();\r\n text.move(attr.text.x - textBBox.x - (options.rtl ? textBBox.width : 0))\r\n }\r\n }\r\n}\r\n\r\nfunction createMenuItems(renderer, options) {\r\n var items = [];\r\n if (options.printingEnabled) {\r\n items.push(createMenuItem(renderer, options, {\r\n type: \"printing\",\r\n text: messageLocalization.format(\"vizExport-printingButtonText\"),\r\n itemIndex: items.length\r\n }))\r\n }\r\n items = options.formats.reduce((r, format) => {\r\n r.push(createMenuItem(renderer, options, {\r\n type: \"exporting\",\r\n text: messageLocalization.getFormatter(\"vizExport-exportButtonText\")(format),\r\n format: format,\r\n itemIndex: r.length\r\n }));\r\n return r\r\n }, items);\r\n return items\r\n}\r\n\r\nfunction getBackgroundColorFromMarkup(markup) {\r\n var parsedMarkup = GET_COLOR_REGEX.exec(markup);\r\n return null === parsedMarkup || void 0 === parsedMarkup ? void 0 : parsedMarkup[1]\r\n}\r\nexport var exportFromMarkup = function(markup, options) {\r\n options.format = validateFormat(options.format) || DEFAULT_EXPORT_FORMAT;\r\n options.fileName = options.fileName || \"file\";\r\n options.exportingAction = options.onExporting;\r\n options.exportedAction = options.onExported;\r\n options.fileSavingAction = options.onFileSaving;\r\n options.margin = isDefined(options.margin) ? options.margin : MARGIN;\r\n options.backgroundColor = isDefined(options.backgroundColor) ? options.backgroundColor : getBackgroundColorFromMarkup(markup) || getTheme().backgroundColor;\r\n _export(markup, options, getCreatorFunc(options.format))\r\n};\r\nexport var getMarkup = widgets => combineMarkups(widgets).markup;\r\nexport var exportWidgets = function(widgets, options) {\r\n options = options || {};\r\n var markupInfo = combineMarkups(widgets, {\r\n gridLayout: options.gridLayout,\r\n verticalAlignment: options.verticalAlignment,\r\n horizontalAlignment: options.horizontalAlignment\r\n });\r\n options.width = markupInfo.width;\r\n options.height = markupInfo.height;\r\n exportFromMarkup(markupInfo.markup, options)\r\n};\r\nexport var combineMarkups = function(widgets) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n if (!Array.isArray(widgets)) {\r\n widgets = [\r\n [widgets]\r\n ]\r\n } else if (!Array.isArray(widgets[0])) {\r\n widgets = widgets.map(item => [item])\r\n }\r\n var compactView = !options.gridLayout;\r\n var exportItems = widgets.reduce((r, row, rowIndex) => {\r\n var rowInfo = row.reduce((r, item, colIndex) => {\r\n var size = item.getSize();\r\n var backgroundColor = item.option(\"backgroundColor\") || getTheme(item.option(\"theme\")).backgroundColor;\r\n backgroundColor && -1 === r.backgroundColors.indexOf(backgroundColor) && r.backgroundColors.push(backgroundColor);\r\n r.hOffset = r.width;\r\n r.width += size.width;\r\n r.height = Math.max(r.height, size.height);\r\n r.itemWidth = Math.max(r.itemWidth, size.width);\r\n r.items.push({\r\n markup: item.svg(),\r\n width: size.width,\r\n height: size.height,\r\n c: colIndex,\r\n r: rowIndex,\r\n hOffset: r.hOffset\r\n });\r\n return r\r\n }, {\r\n items: [],\r\n height: 0,\r\n itemWidth: 0,\r\n hOffset: 0,\r\n width: 0,\r\n backgroundColors: r.backgroundColors\r\n });\r\n r.rowOffsets.push(r.totalHeight);\r\n r.rowHeights.push(rowInfo.height);\r\n r.totalHeight += rowInfo.height;\r\n r.items = r.items.concat(rowInfo.items);\r\n r.itemWidth = Math.max(r.itemWidth, rowInfo.itemWidth);\r\n r.maxItemLen = Math.max(r.maxItemLen, rowInfo.items.length);\r\n r.totalWidth = compactView ? Math.max(r.totalWidth, rowInfo.width) : r.maxItemLen * r.itemWidth;\r\n return r\r\n }, {\r\n items: [],\r\n rowOffsets: [],\r\n rowHeights: [],\r\n itemWidth: 0,\r\n totalHeight: 0,\r\n maxItemLen: 0,\r\n totalWidth: 0,\r\n backgroundColors: []\r\n });\r\n var backgroundColor = 'data-backgroundcolor=\"'.concat(1 === exportItems.backgroundColors.length ? exportItems.backgroundColors[0] : \"\", '\" ');\r\n var getVOffset = item => {\r\n var align = options.verticalAlignment;\r\n var dy = exportItems.rowHeights[item.r] - item.height;\r\n return exportItems.rowOffsets[item.r] + (\"bottom\" === align ? dy : \"center\" === align ? dy / 2 : 0)\r\n };\r\n var getHOffset = item => {\r\n if (compactView) {\r\n return item.hOffset\r\n }\r\n var align = options.horizontalAlignment;\r\n var colWidth = exportItems.itemWidth;\r\n var dx = colWidth - item.width;\r\n return item.c * colWidth + (\"right\" === align ? dx : \"center\" === align ? dx / 2 : 0)\r\n };\r\n var totalHeight = exportItems.totalHeight;\r\n var totalWidth = exportItems.totalWidth;\r\n return {\r\n markup: \"' + exportItems.items.map(item => '').concat(item.markup, \"\")).join(\"\") + \"\",\r\n width: totalWidth,\r\n height: totalHeight\r\n }\r\n};\r\nexport var ExportMenu = function(params) {\r\n var renderer = this._renderer = params.renderer;\r\n this._incidentOccurred = params.incidentOccurred;\r\n this._exportTo = params.exportTo;\r\n this._print = params.print;\r\n this._shadow = renderer.shadowFilter(\"-50%\", \"-50%\", \"200%\", \"200%\", SHADOW_OFFSET, 6, SHADOW_BLUR);\r\n this._shadow.attr({\r\n opacity: .8\r\n });\r\n this._group = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS,\r\n [HIDDEN_FOR_EXPORT]: true\r\n }).linkOn(renderer.root, {\r\n name: \"export-menu\",\r\n after: \"peripheral\"\r\n });\r\n this._buttonGroup = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS + \"-button\"\r\n }).append(this._group);\r\n this._listGroup = renderer.g().attr({\r\n class: EXPORT_CSS_CLASS + \"-list\"\r\n }).append(this._group);\r\n this._overlay = renderer.rect(-LIST_WIDTH + BUTTON_SIZE, BUTTON_SIZE + LIST_PADDING_TOP, LIST_WIDTH, 0);\r\n this._overlay.attr({\r\n \"stroke-width\": LIST_STROKE_WIDTH,\r\n cursor: \"pointer\",\r\n rx: 4,\r\n ry: 4,\r\n filter: this._shadow.id\r\n });\r\n this._overlay.data({\r\n \"export-element-type\": \"list\"\r\n });\r\n this.validFormats = getValidFormats();\r\n this._subscribeEvents()\r\n};\r\nextend(ExportMenu.prototype, {\r\n getLayoutOptions() {\r\n if (this._hiddenDueToLayout) {\r\n return {\r\n width: 0,\r\n height: 0,\r\n cutSide: \"vertical\",\r\n cutLayoutSide: \"top\"\r\n }\r\n }\r\n var bBox = this._buttonGroup.getBBox();\r\n bBox.cutSide = \"vertical\";\r\n bBox.cutLayoutSide = \"top\";\r\n bBox.height += MARGIN;\r\n bBox.position = {\r\n vertical: \"top\",\r\n horizontal: \"right\"\r\n };\r\n bBox.verticalAlignment = \"top\";\r\n bBox.horizontalAlignment = \"right\";\r\n return bBox\r\n },\r\n shift(_, y) {\r\n this._group.attr({\r\n translateY: this._group.attr(\"translateY\") + y\r\n })\r\n },\r\n draw(width, height, canvas) {\r\n this._group.move(width - BUTTON_SIZE - SHADOW_OFFSET - SHADOW_BLUR + canvas.left, Math.floor(height / 2 - BUTTON_SIZE / 2));\r\n var layoutOptions = this.getLayoutOptions();\r\n if (layoutOptions.width > width || layoutOptions.height > height) {\r\n this.freeSpace()\r\n }\r\n return this\r\n },\r\n show() {\r\n this._group.linkAppend()\r\n },\r\n hide() {\r\n this._group.linkRemove()\r\n },\r\n setOptions(options) {\r\n this._options = options;\r\n if (options.formats) {\r\n options.formats = options.formats.reduce((r, format) => {\r\n format = validateFormat(format, this._incidentOccurred, this.validFormats);\r\n format && r.push(format);\r\n return r\r\n }, [])\r\n } else {\r\n options.formats = this.validFormats.supported.slice()\r\n }\r\n options.printingEnabled = void 0 === options.printingEnabled ? true : options.printingEnabled;\r\n if (options.enabled && (options.formats.length || options.printingEnabled)) {\r\n this.show();\r\n this._updateButton();\r\n this._updateList();\r\n this._hideList()\r\n } else {\r\n this.hide()\r\n }\r\n },\r\n dispose() {\r\n this._unsubscribeEvents();\r\n this._group.linkRemove().linkOff();\r\n this._group.dispose();\r\n this._shadow.dispose()\r\n },\r\n layoutOptions() {\r\n return this._options.enabled && {\r\n horizontalAlignment: \"right\",\r\n verticalAlignment: \"top\",\r\n weak: true\r\n }\r\n },\r\n measure() {\r\n this._fillSpace();\r\n var margin = this._options.button.margin;\r\n return [BUTTON_SIZE + margin.left + margin.right, BUTTON_SIZE + margin.top + margin.bottom]\r\n },\r\n move(rect) {\r\n var margin = this._options.button.margin;\r\n this._group.attr({\r\n translateX: Math.round(rect[0]) + margin.left,\r\n translateY: Math.round(rect[1]) + margin.top\r\n })\r\n },\r\n _fillSpace() {\r\n this._hiddenDueToLayout = false;\r\n this.show()\r\n },\r\n freeSpace() {\r\n this._incidentOccurred(\"W2107\");\r\n this._hiddenDueToLayout = true;\r\n this.hide()\r\n },\r\n _hideList() {\r\n this._listGroup.remove();\r\n this._listShown = false;\r\n this._setButtonState(\"default\");\r\n this._menuItems.forEach(item => item.resetState())\r\n },\r\n _showList() {\r\n this._listGroup.append(this._group);\r\n this._listShown = true;\r\n this._menuItems.forEach(item => item.fixPosition())\r\n },\r\n _setButtonState(state) {\r\n var style = this._options.button[state];\r\n this._button.attr({\r\n stroke: style.borderColor,\r\n fill: style.backgroundColor\r\n });\r\n this._icon.attr({\r\n fill: style.color\r\n })\r\n },\r\n _subscribeEvents() {\r\n this._renderer.root.on(pointerEvents.up + \".export\", e => {\r\n var elementType = e.target[EXPORT_DATA_KEY];\r\n if (!elementType) {\r\n if (this._button) {\r\n this._hideList()\r\n }\r\n return\r\n }\r\n if (\"button\" === elementType) {\r\n if (this._listShown) {\r\n this._setButtonState(\"default\");\r\n this._hideList()\r\n } else {\r\n this._setButtonState(\"focus\");\r\n this._showList()\r\n }\r\n } else if (\"printing\" === elementType) {\r\n this._print();\r\n this._hideList()\r\n } else if (\"exporting\" === elementType) {\r\n this._exportTo(e.target[FORMAT_DATA_KEY]);\r\n this._hideList()\r\n }\r\n });\r\n this._listGroup.on(pointerActions, e => e.stopPropagation());\r\n this._buttonGroup.on(pointerEvents.enter, () => this._setButtonState(\"hover\"));\r\n this._buttonGroup.on(pointerEvents.leave, () => this._setButtonState(this._listShown ? \"focus\" : \"default\"));\r\n this._buttonGroup.on(pointerEvents.down + \".export\", () => this._setButtonState(\"active\"))\r\n },\r\n _unsubscribeEvents() {\r\n this._renderer.root.off(\".export\");\r\n this._listGroup.off();\r\n this._buttonGroup.off()\r\n },\r\n _updateButton() {\r\n var renderer = this._renderer;\r\n var options = this._options;\r\n var exportData = {\r\n \"export-element-type\": \"button\"\r\n };\r\n if (!this._button) {\r\n this._button = renderer.rect(0, 0, BUTTON_SIZE, BUTTON_SIZE).append(this._buttonGroup);\r\n this._button.attr({\r\n rx: 4,\r\n ry: 4,\r\n fill: options.button.default.backgroundColor,\r\n stroke: options.button.default.borderColor,\r\n \"stroke-width\": 1,\r\n cursor: \"pointer\"\r\n });\r\n this._button.data(exportData);\r\n this._icon = renderer.path(ICON_COORDS).append(this._buttonGroup);\r\n this._icon.attr({\r\n fill: options.button.default.color,\r\n cursor: \"pointer\"\r\n });\r\n this._icon.data(exportData);\r\n this._buttonGroup.setTitle(messageLocalization.format(\"vizExport-titleMenuText\"))\r\n }\r\n },\r\n _updateList() {\r\n var options = this._options;\r\n var buttonDefault = options.button.default;\r\n var listGroup = this._listGroup;\r\n var items = createMenuItems(this._renderer, options);\r\n this._shadow.attr({\r\n color: options.shadowColor\r\n });\r\n this._overlay.attr({\r\n height: items.length * MENU_ITEM_HEIGHT + 2 * LIST_STROKE_WIDTH,\r\n fill: buttonDefault.backgroundColor,\r\n stroke: buttonDefault.borderColor\r\n });\r\n listGroup.clear();\r\n this._overlay.append(listGroup);\r\n items.forEach(item => item.g.append(listGroup));\r\n this._menuItems = items\r\n }\r\n});\r\n\r\nfunction getExportOptions(widget, exportOptions, fileName, format) {\r\n if (format || exportOptions.format) {\r\n format = validateFormat(format || exportOptions.format, widget._incidentOccurred)\r\n }\r\n var {\r\n width: width,\r\n height: height\r\n } = widget.getSize();\r\n return {\r\n format: format || DEFAULT_EXPORT_FORMAT,\r\n fileName: fileName || exportOptions.fileName || \"file\",\r\n proxyUrl: exportOptions.proxyUrl,\r\n backgroundColor: exportOptions.backgroundColor,\r\n width: width,\r\n height: height,\r\n margin: exportOptions.margin,\r\n svgToCanvas: exportOptions.svgToCanvas,\r\n forceProxy: exportOptions.forceProxy,\r\n exportingAction: widget._createActionByOption(\"onExporting\", {\r\n excludeValidators: [\"disabled\"]\r\n }),\r\n exportedAction: widget._createActionByOption(\"onExported\", {\r\n excludeValidators: [\"disabled\"]\r\n }),\r\n fileSavingAction: widget._createActionByOption(\"onFileSaving\", {\r\n excludeValidators: [\"disabled\"]\r\n })\r\n }\r\n}\r\nexport var plugin = {\r\n name: \"export\",\r\n init() {\r\n this._exportMenu = new ExportMenu({\r\n renderer: this._renderer,\r\n incidentOccurred: this._incidentOccurred,\r\n print: () => this.print(),\r\n exportTo: format => this.exportTo(void 0, format)\r\n });\r\n this._layout.add(this._exportMenu)\r\n },\r\n dispose() {\r\n this._exportMenu.dispose()\r\n },\r\n members: {\r\n _getExportMenuOptions() {\r\n return extend({}, this._getOption(\"export\"), {\r\n rtl: this._getOption(\"rtlEnabled\", true)\r\n })\r\n },\r\n _disablePointerEvents() {\r\n var pointerEventsValue = this._renderer.root.attr(\"pointer-events\");\r\n this._renderer.root.attr({\r\n \"pointer-events\": \"none\"\r\n });\r\n return pointerEventsValue\r\n },\r\n exportTo(fileName, format) {\r\n var menu = this._exportMenu;\r\n var options = getExportOptions(this, this._getOption(\"export\") || {}, fileName, format);\r\n menu && menu.hide();\r\n var pointerEventsValue = this._disablePointerEvents();\r\n var promise = _export(this._renderer.root.element, options, getCreatorFunc(options.format)).fail(logger.error).always(() => {\r\n this._renderer.root.attr({\r\n \"pointer-events\": pointerEventsValue\r\n })\r\n });\r\n menu && menu.show();\r\n return promise\r\n },\r\n print() {\r\n var menu = this._exportMenu;\r\n var options = getExportOptions(this, this._getOption(\"export\") || {});\r\n options.exportingAction = null;\r\n options.exportedAction = null;\r\n options.margin = 0;\r\n options.format = \"PNG\";\r\n options.forceProxy = true;\r\n options.fileSavingAction = eventArgs => {\r\n print(\"data:image/png;base64,\".concat(eventArgs.data), {\r\n width: options.width,\r\n __test: options.__test\r\n });\r\n eventArgs.cancel = true\r\n };\r\n var pointerEventsValue = this._disablePointerEvents();\r\n menu && menu.hide();\r\n var promise = _export(this._renderer.root.element, options, getCreatorFunc(options.format)).fail(logger.error).always(() => {\r\n this._renderer.root.attr({\r\n \"pointer-events\": pointerEventsValue\r\n })\r\n });\r\n menu && menu.show();\r\n return promise\r\n }\r\n },\r\n customize(constructor) {\r\n var proto = constructor.prototype;\r\n constructor.addChange({\r\n code: \"EXPORT\",\r\n handler() {\r\n this._exportMenu.setOptions(this._getExportMenuOptions());\r\n this._change([\"LAYOUT\"])\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"export\"\r\n });\r\n proto._optionChangesMap.onExporting = \"EXPORT\";\r\n proto._optionChangesMap.onExported = \"EXPORT\";\r\n proto._optionChangesMap.onFileSaving = \"EXPORT\"\r\n },\r\n fontFields: [\"export.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/layout_element.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar _round = Math.round;\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nvar defaultOffset = {\r\n horizontal: 0,\r\n vertical: 0\r\n};\r\nvar alignFactors = {\r\n center: .5,\r\n right: 1,\r\n bottom: 1,\r\n left: 0,\r\n top: 0\r\n};\r\n\r\nfunction LayoutElement(options) {\r\n this._options = options\r\n}\r\nLayoutElement.prototype = {\r\n constructor: LayoutElement,\r\n position: function(options) {\r\n var ofBBox = options.of.getLayoutOptions();\r\n var myBBox = this.getLayoutOptions();\r\n var at = options.at;\r\n var my = options.my;\r\n var offset = options.offset || defaultOffset;\r\n var shiftX = -alignFactors[my.horizontal] * myBBox.width + ofBBox.x + alignFactors[at.horizontal] * ofBBox.width + parseInt(offset.horizontal);\r\n var shiftY = -alignFactors[my.vertical] * myBBox.height + ofBBox.y + alignFactors[at.vertical] * ofBBox.height + parseInt(offset.vertical);\r\n this.shift(_round(shiftX), _round(shiftY))\r\n },\r\n getLayoutOptions: noop\r\n};\r\n\r\nfunction WrapperLayoutElement(renderElement, bBox) {\r\n this._renderElement = renderElement;\r\n this._cacheBBox = bBox\r\n}\r\nvar wrapperLayoutElementPrototype = WrapperLayoutElement.prototype = clone(LayoutElement.prototype);\r\nwrapperLayoutElementPrototype.constructor = WrapperLayoutElement;\r\nwrapperLayoutElementPrototype.getLayoutOptions = function() {\r\n return this._cacheBBox || this._renderElement.getBBox()\r\n};\r\nwrapperLayoutElementPrototype.shift = function(shiftX, shiftY) {\r\n var bBox = this.getLayoutOptions();\r\n this._renderElement.move(_round(shiftX - bBox.x), _round(shiftY - bBox.y))\r\n};\r\nexport {\r\n LayoutElement,\r\n WrapperLayoutElement\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/loading_indicator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions as _patchFontOptions\r\n} from \"./utils\";\r\nvar STATE_HIDDEN = 0;\r\nvar STATE_SHOWN = 1;\r\nvar ANIMATION_EASING = \"linear\";\r\nvar ANIMATION_DURATION = 400;\r\nvar LOADING_INDICATOR_READY = \"loadingIndicatorReady\";\r\nexport var LoadingIndicator = function(parameters) {\r\n var renderer = parameters.renderer;\r\n this._group = renderer.g().attr({\r\n class: \"dx-loading-indicator\"\r\n }).linkOn(renderer.root, {\r\n name: \"loading-indicator\",\r\n after: \"peripheral\"\r\n });\r\n this._rect = renderer.rect().attr({\r\n opacity: 0\r\n }).append(this._group);\r\n this._text = renderer.text().attr({\r\n align: \"center\"\r\n }).append(this._group);\r\n this._createStates(parameters.eventTrigger, this._group, renderer.root, parameters.notify)\r\n};\r\nLoadingIndicator.prototype = {\r\n constructor: LoadingIndicator,\r\n _createStates: function(eventTrigger, group, root, notify) {\r\n this._states = [{\r\n opacity: 0,\r\n start: function() {\r\n notify(false)\r\n },\r\n complete: function() {\r\n group.linkRemove();\r\n root.css({\r\n \"pointer-events\": \"\"\r\n });\r\n eventTrigger(LOADING_INDICATOR_READY)\r\n }\r\n }, {\r\n opacity: .85,\r\n start: function() {\r\n group.linkAppend();\r\n root.css({\r\n \"pointer-events\": \"none\"\r\n });\r\n notify(true)\r\n },\r\n complete: function() {\r\n eventTrigger(LOADING_INDICATOR_READY)\r\n }\r\n }];\r\n this._state = STATE_HIDDEN\r\n },\r\n setSize: function(size) {\r\n var width = size.width;\r\n var height = size.height;\r\n this._rect.attr({\r\n width: width,\r\n height: height\r\n });\r\n this._text.attr({\r\n x: width / 2,\r\n y: height / 2\r\n })\r\n },\r\n setOptions: function(options) {\r\n this._rect.attr({\r\n fill: options.backgroundColor\r\n });\r\n this._text.css(_patchFontOptions(options.font)).attr({\r\n text: options.text,\r\n class: options.cssClass\r\n });\r\n this[options.show ? \"show\" : \"hide\"]()\r\n },\r\n dispose: function() {\r\n this._group.linkRemove().linkOff();\r\n this._group = this._rect = this._text = this._states = null\r\n },\r\n _transit: function(stateId) {\r\n var state;\r\n if (this._state !== stateId) {\r\n this._state = stateId;\r\n this._isHiding = false;\r\n state = this._states[stateId];\r\n this._rect.stopAnimation().animate({\r\n opacity: state.opacity\r\n }, {\r\n complete: state.complete,\r\n easing: ANIMATION_EASING,\r\n duration: ANIMATION_DURATION,\r\n unstoppable: true\r\n });\r\n this._noHiding = true;\r\n state.start();\r\n this._noHiding = false\r\n }\r\n },\r\n show: function() {\r\n this._transit(STATE_SHOWN)\r\n },\r\n hide: function() {\r\n this._transit(STATE_HIDDEN)\r\n },\r\n scheduleHiding: function() {\r\n if (!this._noHiding) {\r\n this._isHiding = true\r\n }\r\n },\r\n fulfillHiding: function() {\r\n if (this._isHiding) {\r\n this.hide()\r\n }\r\n }\r\n};\r\nexport var plugin = {\r\n name: \"loading_indicator\",\r\n init: function() {\r\n var that = this;\r\n that._loadingIndicator = new LoadingIndicator({\r\n eventTrigger: that._eventTrigger,\r\n renderer: that._renderer,\r\n notify: function(state) {\r\n that._skipLoadingIndicatorOptions = true;\r\n that.option(\"loadingIndicator\", {\r\n show: state\r\n });\r\n that._skipLoadingIndicatorOptions = false;\r\n if (state) {\r\n that._stopCurrentHandling()\r\n }\r\n }\r\n });\r\n that._scheduleLoadingIndicatorHiding()\r\n },\r\n dispose: function() {\r\n this._loadingIndicator.dispose();\r\n this._loadingIndicator = null\r\n },\r\n members: {\r\n _scheduleLoadingIndicatorHiding: function() {\r\n this._loadingIndicator.scheduleHiding()\r\n },\r\n _fulfillLoadingIndicatorHiding: function() {\r\n this._loadingIndicator.fulfillHiding()\r\n },\r\n showLoadingIndicator: function() {\r\n this._loadingIndicator.show()\r\n },\r\n hideLoadingIndicator: function() {\r\n this._loadingIndicator.hide()\r\n },\r\n _onBeginUpdate: function() {\r\n if (!this._optionChangedLocker) {\r\n this._scheduleLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n extenders: {\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n if (isLoading && (this._options.silent(\"loadingIndicator\") || {}).enabled) {\r\n this._loadingIndicator.show()\r\n }\r\n },\r\n _setContentSize() {\r\n this._loadingIndicator.setSize(this._canvas)\r\n },\r\n endUpdate() {\r\n if (this._initialized && this._dataIsReady()) {\r\n this._fulfillLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n if (proto._dataSourceChangedHandler) {\r\n var _dataSourceChangedHandler = proto._dataSourceChangedHandler;\r\n proto._dataSourceChangedHandler = function() {\r\n this._scheduleLoadingIndicatorHiding();\r\n _dataSourceChangedHandler.apply(this, arguments)\r\n }\r\n }\r\n constructor.addChange({\r\n code: \"LOADING_INDICATOR\",\r\n handler: function() {\r\n if (!this._skipLoadingIndicatorOptions) {\r\n this._loadingIndicator.setOptions(this._getOption(\"loadingIndicator\"))\r\n }\r\n this._scheduleLoadingIndicatorHiding()\r\n },\r\n isThemeDependent: true,\r\n option: \"loadingIndicator\",\r\n isOptionChange: true\r\n });\r\n proto._eventsMap.onLoadingIndicatorReady = {\r\n name: \"loadingIndicatorReady\"\r\n };\r\n var _drawn = proto._drawn;\r\n proto._drawn = function() {\r\n _drawn.apply(this, arguments);\r\n if (this._dataIsReady()) {\r\n this._fulfillLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n fontFields: [\"loadingIndicator.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/plaque.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"x\", \"y\", \"canvas\", \"offsetX\", \"offsetY\", \"offset\"];\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar math = Math;\r\nvar round = math.round;\r\nvar max = math.max;\r\nvar min = math.min;\r\nvar sin = math.sin;\r\nvar cos = math.cos;\r\nvar asin = math.asin;\r\nvar PI = math.PI;\r\nvar buildPath = function() {\r\n for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {\r\n points[_key] = arguments[_key]\r\n }\r\n return points.join(\"\")\r\n};\r\n\r\nfunction getArc(cornerRadius, xDirection, yDirection) {\r\n return \"a \".concat(cornerRadius, \" \").concat(cornerRadius, \" 0 0 1 \").concat(xDirection * cornerRadius, \" \").concat(yDirection * cornerRadius)\r\n}\r\n\r\nfunction getAbsoluteArc(cornerRadius, x, y) {\r\n return \"A \".concat(cornerRadius, \" \").concat(cornerRadius, \" 0 0 1 \").concat(x, \" \").concat(y)\r\n}\r\n\r\nfunction rotateX(x, y, angle, x0, y0) {\r\n return (x - x0) * round(cos(angle)) + (y - y0) * round(sin(angle)) + x0\r\n}\r\n\r\nfunction rotateY(x, y, angle, x0, y0) {\r\n return -(x - x0) * round(sin(angle)) + (y - y0) * round(cos(angle)) + y0\r\n}\r\n\r\nfunction rotateSize(options, angle) {\r\n if (angle % 90 === 0 && angle % 180 !== 0) {\r\n return {\r\n width: options.height,\r\n height: options.width\r\n }\r\n }\r\n return options\r\n}\r\n\r\nfunction getCloudAngle(_ref, x, y, anchorX, anchorY) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref;\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var xr = Math.ceil(x + halfWidth);\r\n var xl = Math.floor(x - halfWidth);\r\n var yt = Math.floor(y - halfHeight);\r\n var yb = Math.ceil(y + halfHeight);\r\n if (anchorX < xl && anchorY < yt || anchorX >= xl && anchorX <= xr && anchorY < yt) {\r\n return 270\r\n }\r\n if (anchorX > xr && anchorY > yb || anchorX >= xl && anchorX <= xr && anchorY > yb) {\r\n return 90\r\n } else if (anchorX < xl && anchorY > yb || anchorX < xl && anchorY >= yt && anchorY <= yb) {\r\n return 180\r\n }\r\n return 0\r\n}\r\n\r\nfunction getCloudPoints(_ref2, x, y, anchorX, anchorY, _ref3, bounded) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref2;\r\n var {\r\n arrowWidth: arrowWidth,\r\n cornerRadius: cornerRadius = 0\r\n } = _ref3;\r\n var halfArrowWidth = arrowWidth / 2;\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var xr = Math.ceil(x + halfWidth);\r\n var xl = Math.floor(x - halfWidth);\r\n var yt = Math.floor(y - halfHeight);\r\n var yb = Math.ceil(y + halfHeight);\r\n var leftTopCorner = [xl, yt];\r\n var rightTopCorner = [xr, yt];\r\n var rightBottomCorner = [xr, yb];\r\n var leftBottomCorner = [xl, yb];\r\n var arrowX = anchorX <= xl ? xl : xr <= anchorX ? xr : anchorX;\r\n var arrowY = anchorY <= yt ? yt : yb <= anchorY ? yb : anchorY;\r\n var arrowBaseBottom = min(arrowY + halfArrowWidth, yb);\r\n var arrowBaseTop = max(arrowY - halfArrowWidth, yt);\r\n var arrowBaseLeft = max(arrowX - halfArrowWidth, xl);\r\n cornerRadius = Math.min(width / 2, height / 2, cornerRadius);\r\n var points;\r\n leftTopCorner[1] += cornerRadius;\r\n rightTopCorner[0] -= cornerRadius;\r\n rightBottomCorner[1] -= cornerRadius;\r\n leftBottomCorner[0] += cornerRadius;\r\n if (!bounded || xl <= anchorX && anchorX <= xr && yt <= anchorY && anchorY <= yb) {\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), \"L\", rightTopCorner, getArc(cornerRadius, 1, 1), \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1), \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n } else if (anchorX > xr && anchorY < yt) {\r\n var arrowAngle = arrowWidth / cornerRadius || 0;\r\n var angle = PI / 4 + arrowAngle / 2;\r\n var endAngle = PI / 4 - arrowAngle / 2;\r\n var arrowEndPointX = rightTopCorner[0] + cos(endAngle) * cornerRadius;\r\n var arrowEndPointY = rightTopCorner[1] + (1 - sin(endAngle)) * cornerRadius;\r\n var arrowArc = buildPath(\"L\", rightTopCorner, getArc(cornerRadius, cos(angle), 1 - sin(angle)), \"L\", [anchorX, anchorY, arrowEndPointX, arrowEndPointY], getAbsoluteArc(cornerRadius, rightTopCorner[0] + cornerRadius, rightTopCorner[1] + cornerRadius));\r\n if (Math.abs(angle) > PI / 2) {\r\n arrowArc = buildPath(\"L\", [arrowBaseLeft, yt, anchorX, anchorY, xr, arrowBaseBottom])\r\n }\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), arrowArc, \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1), \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n } else if (anchorX > xr && anchorY >= yt && anchorY <= yb) {\r\n var _arrowArc;\r\n if (arrowBaseTop >= rightTopCorner[1] + cornerRadius && arrowBaseBottom <= rightBottomCorner[1]) {\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", [xr, arrowBaseTop, anchorX, anchorY, xr, arrowBaseBottom], \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else if (arrowBaseTop < rightTopCorner[1] + cornerRadius && arrowBaseBottom >= rightTopCorner[1] + cornerRadius && arrowBaseBottom <= rightBottomCorner[1]) {\r\n var arrowWidthRest = rightTopCorner[1] + cornerRadius - arrowBaseTop;\r\n var _angle = arrowWidthRest / cornerRadius;\r\n var arrowBaseTopX = rightTopCorner[0] + cos(_angle) * cornerRadius;\r\n var arrowBaseTopY = rightTopCorner[1] + (1 - sin(_angle)) * cornerRadius;\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(_angle), 1 - sin(_angle)), \"L\", [arrowBaseTopX, arrowBaseTopY, anchorX, anchorY, xr, arrowBaseBottom], \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else if (arrowBaseTop < rightTopCorner[1] + cornerRadius && arrowBaseBottom < rightTopCorner[1] + cornerRadius) {\r\n var _arrowWidthRest = rightTopCorner[1] + cornerRadius - arrowBaseTop;\r\n var _arrowAngle = _arrowWidthRest / cornerRadius;\r\n var _angle2 = _arrowAngle;\r\n var _arrowBaseTopX = rightTopCorner[0] + cos(_angle2) * cornerRadius;\r\n var _arrowBaseTopY = rightTopCorner[1] + (1 - sin(_angle2)) * cornerRadius;\r\n var bottomAngle = Math.sin((rightTopCorner[1] + cornerRadius - arrowBaseBottom) / cornerRadius);\r\n var arrowBaseBottomX = rightTopCorner[0] + cornerRadius * cos(bottomAngle);\r\n var arrowBaseBottomY = rightTopCorner[1] + cornerRadius * (1 - sin(bottomAngle));\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(_angle2), 1 - sin(_angle2)), \"L\", [_arrowBaseTopX, _arrowBaseTopY, anchorX, anchorY, arrowBaseBottomX, arrowBaseBottomY], getAbsoluteArc(cornerRadius, rightTopCorner[0] + cornerRadius, rightTopCorner[1] + cornerRadius), \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else if (arrowBaseTop <= rightTopCorner[1] + cornerRadius && arrowBaseBottom >= rightBottomCorner[1]) {\r\n var topAngle = asin((rightTopCorner[1] + cornerRadius - arrowBaseTop) / cornerRadius);\r\n var _arrowBaseTopX2 = rightTopCorner[0] + cornerRadius * cos(topAngle);\r\n var _arrowBaseTopY2 = rightTopCorner[1] + cornerRadius * (1 - sin(topAngle));\r\n var _bottomAngle = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle) - 1);\r\n var _arrowBaseBottomY = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle);\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(topAngle), 1 - sin(topAngle)), \"L\", [_arrowBaseTopX2, _arrowBaseTopY2, anchorX, anchorY, _arrowBaseBottomX, _arrowBaseBottomY], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n } else if (arrowBaseTop > rightTopCorner[1] + cornerRadius && arrowBaseTop <= rightBottomCorner[1] && arrowBaseBottom > rightBottomCorner[1]) {\r\n var _bottomAngle2 = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX2 = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle2) - 1);\r\n var _arrowBaseBottomY2 = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle2);\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", [xr, arrowBaseTop, anchorX, anchorY, _arrowBaseBottomX2, _arrowBaseBottomY2], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n } else if (arrowBaseTop > rightTopCorner[1] + cornerRadius && arrowBaseBottom > rightBottomCorner[1]) {\r\n var _bottomAngle3 = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX3 = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle3) - 1);\r\n var _arrowBaseBottomY3 = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle3);\r\n var _topAngle = asin((arrowBaseTop - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseTopX3 = rightBottomCorner[0] + cornerRadius * (cos(_topAngle) - 1);\r\n var _arrowBaseTopY3 = rightBottomCorner[1] + cornerRadius * sin(_topAngle);\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", rightBottomCorner, getArc(cornerRadius, cos(_topAngle) - 1, sin(_topAngle)), \"L\", [_arrowBaseTopX3, _arrowBaseTopY3, anchorX, anchorY, _arrowBaseBottomX3, _arrowBaseBottomY3], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n }\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), \"L\", rightTopCorner, _arrowArc, \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n }\r\n return buildPath(\"M\", points, \"Z\")\r\n}\r\nexport class Plaque {\r\n constructor(options, widget, root, contentTemplate) {\r\n var bounded = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : true;\r\n var measureContent = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : (_, g) => g.getBBox();\r\n var moveContentGroup = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : (_, g, x, y) => g.move(x, y);\r\n this.widget = widget;\r\n this.options = options;\r\n this.root = root;\r\n this.contentTemplate = contentTemplate;\r\n this.bonded = bounded;\r\n this.measureContent = measureContent;\r\n this.moveContentGroup = moveContentGroup\r\n }\r\n draw(_ref4) {\r\n var {\r\n x: anchorX,\r\n y: anchorY,\r\n canvas: canvas = {},\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n offset: offset = 0\r\n } = _ref4, restProps = _objectWithoutPropertiesLoose(_ref4, _excluded);\r\n var options = this.options;\r\n var {\r\n x: x,\r\n y: y\r\n } = options;\r\n var bounds_xl = canvas.left,\r\n bounds_xr = canvas.width - canvas.right,\r\n bounds_width = canvas.width - canvas.right - canvas.left,\r\n bounds_yt = canvas.top,\r\n bounds_yb = canvas.height - canvas.bottom,\r\n bounds_height = canvas.height - canvas.bottom - canvas.top;\r\n if (!(isDefined(anchorX) && isDefined(anchorY)) && !(isDefined(x) && isDefined(y))) {\r\n return false\r\n }\r\n if (isDefined(anchorX) && (anchorX < bounds_xl || bounds_xr < anchorX || anchorY < bounds_yt || bounds_yb < anchorY)) {\r\n return false\r\n }\r\n if (!this._root) {\r\n this._draw()\r\n }\r\n var shadowSettings = extend({\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n width: \"200%\",\r\n height: \"200%\"\r\n }, options.shadow);\r\n var contentWidth = options.width > 0 ? options.width : null;\r\n var contentHeight = options.height > 0 ? options.height : null;\r\n var onRender = () => {\r\n var _this$_root;\r\n var bBox = this._contentBBox = this.measureContent(this.widget, this._contentGroup);\r\n var size = this._size = {\r\n width: max(contentWidth, bBox.width) + 2 * options.paddingLeftRight,\r\n height: max(contentHeight, bBox.height) + 2 * options.paddingTopBottom,\r\n offset: offset\r\n };\r\n var xOff = shadowSettings.offsetX;\r\n var yOff = shadowSettings.offsetY;\r\n var blur = 2 * shadowSettings.blur + 1;\r\n var lm = max(blur - xOff, 0);\r\n var rm = max(blur + xOff, 0);\r\n var tm = max(blur - yOff, 0);\r\n var bm = max(blur + yOff, 0);\r\n this.margins = {\r\n lm: lm,\r\n rm: rm,\r\n tm: tm,\r\n bm: bm\r\n };\r\n if (!isDefined(x)) {\r\n if (isDefined(offsetX)) {\r\n x = anchorX + offsetX\r\n } else if (bounds_width < size.width) {\r\n x = round(bounds_xl + bounds_width / 2)\r\n } else {\r\n x = min(max(anchorX, Math.ceil(bounds_xl + size.width / 2 + lm)), Math.floor(bounds_xr - size.width / 2 - rm))\r\n }\r\n } else {\r\n x += offsetX || 0;\r\n if (!isDefined(anchorX)) {\r\n anchorX = x\r\n }\r\n }\r\n if (!isDefined(y)) {\r\n if (isDefined(offsetY)) {\r\n y = anchorY + offsetY\r\n } else {\r\n var y_top = anchorY - options.arrowLength - size.height / 2 - offset;\r\n var y_bottom = anchorY + options.arrowLength + size.height / 2 + offset;\r\n if (bounds_height < size.height + options.arrowLength) {\r\n y = round(bounds_yt + size.height / 2)\r\n } else if (y_top - size.height / 2 - tm < bounds_yt) {\r\n if (y_bottom + size.height / 2 + bm < bounds_yb) {\r\n y = y_bottom;\r\n anchorY += offset\r\n } else {\r\n y = round(bounds_yt + size.height / 2)\r\n }\r\n } else {\r\n y = y_top;\r\n anchorY -= offset\r\n }\r\n }\r\n } else {\r\n y += offsetY || 0;\r\n if (!isDefined(anchorY)) {\r\n anchorY = y + size.height / 2\r\n }\r\n }\r\n this.anchorX = anchorX;\r\n this.anchorY = anchorY;\r\n this.move(x, y);\r\n null === (_this$_root = this._root) || void 0 === _this$_root ? void 0 : _this$_root.append(this.root)\r\n };\r\n if (this.contentTemplate.render) {\r\n this.contentTemplate.render({\r\n model: options,\r\n container: this._contentGroup.element,\r\n onRendered: onRender\r\n })\r\n } else {\r\n return this.contentTemplate(_extends({\r\n group: this._contentGroup,\r\n onRender: onRender\r\n }, restProps))\r\n }\r\n return true\r\n }\r\n _draw() {\r\n var renderer = this.widget._renderer;\r\n var options = this.options;\r\n var shadowSettings = extend({\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n width: \"200%\",\r\n height: \"200%\"\r\n }, options.shadow);\r\n var shadow = this._shadow = renderer.shadowFilter().attr(shadowSettings);\r\n var cloudSettings = {\r\n opacity: options.opacity,\r\n \"stroke-width\": 0,\r\n fill: options.color\r\n };\r\n var borderOptions = options.border || {};\r\n if (borderOptions.visible) {\r\n extend(cloudSettings, {\r\n \"stroke-width\": borderOptions.width,\r\n stroke: borderOptions.color,\r\n \"stroke-opacity\": borderOptions.opacity,\r\n dashStyle: borderOptions.dashStyle\r\n })\r\n }\r\n var group = this._root = renderer.g().append(this.root);\r\n if (options.type) {\r\n group.attr({\r\n class: \"dxc-\".concat(options.type, \"-annotation\")\r\n })\r\n }\r\n var cloudGroup = renderer.g().attr({\r\n filter: shadow.id\r\n }).append(group);\r\n this._cloud = renderer.path([], \"area\").attr(cloudSettings).sharp().append(cloudGroup);\r\n this._contentGroup = renderer.g().append(group)\r\n }\r\n getBBox() {\r\n var size = this._size || {};\r\n var margins = this.margins || {};\r\n var rotationAngle = getCloudAngle(size, this.x, this.y, this.anchorX, this.anchorY);\r\n return {\r\n x: Math.floor(this.x - size.width / 2 - margins.lm),\r\n y: Math.floor(this.y - size.height / 2 - margins.tm - (270 === rotationAngle ? this.options.arrowLength : 0)),\r\n width: size.width + margins.lm + margins.rm,\r\n height: size.height + margins.tm + margins.bm + (90 === rotationAngle || 270 === rotationAngle ? this.options.arrowLength : 0)\r\n }\r\n }\r\n clear() {\r\n if (this._root) {\r\n this._root.remove();\r\n this._shadow.remove();\r\n this._root = null\r\n }\r\n return this\r\n }\r\n customizeCloud(attr) {\r\n if (this._cloud) {\r\n this._cloud.attr(attr)\r\n }\r\n }\r\n moveRoot(x, y) {\r\n if (this._root) {\r\n this._root.move(x, y)\r\n }\r\n }\r\n move(x, y) {\r\n x = round(x);\r\n y = round(y);\r\n this.x = x;\r\n this.y = y;\r\n var rotationAngle = getCloudAngle(this._size, x, y, this.anchorX, this.anchorY);\r\n var radRotationAngle = rotationAngle * PI / 180;\r\n this._cloud.attr({\r\n d: getCloudPoints(rotateSize(this._size, rotationAngle), x, y, rotateX(this.anchorX, this.anchorY, radRotationAngle, x, y), rotateY(this.anchorX, this.anchorY, radRotationAngle, x, y), this.options, this.bonded)\r\n }).rotate(rotationAngle, x, y);\r\n this.moveContentGroup(this.widget, this._contentGroup, x - this._contentBBox.x - this._contentBBox.width / 2, y - this._contentBBox.y - this._contentBBox.height / 2)\r\n }\r\n hitTest(x, y) {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._size || {};\r\n return Math.abs(x - this.x) <= width / 2 && Math.abs(y - this.y) <= height / 2\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/animation.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../../animation/frame\";\r\nvar noop = function() {};\r\nexport var easingFunctions = {\r\n easeOutCubic: function(pos, start, end) {\r\n return 1 === pos ? end : (1 - Math.pow(1 - pos, 3)) * (end - start) + +start\r\n },\r\n linear: function(pos, start, end) {\r\n return 1 === pos ? end : pos * (end - start) + +start\r\n }\r\n};\r\nexport var animationSvgStep = {\r\n segments: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var curSeg;\r\n var seg;\r\n var i;\r\n var j;\r\n var segments = [];\r\n for (i = 0; i < from.length; i++) {\r\n curSeg = from[i];\r\n seg = [curSeg[0]];\r\n if (curSeg.length > 1) {\r\n for (j = 1; j < curSeg.length; j++) {\r\n seg.push(easing(progress, curSeg[j], to[i][j]))\r\n }\r\n }\r\n segments.push(seg)\r\n }\r\n currentParams.segments = params.end && 1 === progress ? params.end : segments;\r\n elem.attr({\r\n segments: segments\r\n })\r\n },\r\n arc: function(elem, params, progress, easing) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n transform: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = currentParams[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n base: function(elem, params, progress, easing, currentParams, attributeName) {\r\n var obj = {};\r\n obj[attributeName] = currentParams[attributeName] = easing(progress, params.from, params.to);\r\n elem.attr(obj)\r\n },\r\n _: noop,\r\n complete: function(element, currentSettings) {\r\n element.attr(currentSettings)\r\n }\r\n};\r\n\r\nfunction step(now) {\r\n var animateStep = this._animateStep;\r\n var attrName;\r\n this._progress = this._calcProgress(now);\r\n for (attrName in this.params) {\r\n var anim = animateStep[attrName] || animateStep.base;\r\n anim(this.element, this.params[attrName], this._progress, this._easing, this._currentParams, attrName)\r\n }\r\n this.options.step && this.options.step(this._easing(this._progress, 0, 1), this._progress);\r\n if (1 === this._progress) {\r\n return this.stop()\r\n }\r\n return true\r\n}\r\n\r\nfunction delayTick(now) {\r\n if (now - this._startTime >= this.delay) {\r\n this.tick = step\r\n }\r\n return true\r\n}\r\n\r\nfunction start(now) {\r\n this._startTime = now;\r\n this.tick = this.delay ? delayTick : step;\r\n return true\r\n}\r\n\r\nfunction Animation(element, params, options) {\r\n this._progress = 0;\r\n this.element = element;\r\n this.params = params;\r\n this.options = options;\r\n this.duration = options.partitionDuration ? options.duration * options.partitionDuration : options.duration;\r\n this.delay = options.delay && options.duration * options.delay || 0;\r\n this._animateStep = options.animateStep || animationSvgStep;\r\n this._easing = easingFunctions[options.easing] || easingFunctions.easeOutCubic;\r\n this._currentParams = {};\r\n this.tick = start\r\n}\r\nAnimation.prototype = {\r\n _calcProgress: function(now) {\r\n return Math.min(1, (now - this.delay - this._startTime) / this.duration)\r\n },\r\n stop: function(disableComplete) {\r\n var options = this.options;\r\n var animateStep = this._animateStep;\r\n this.stop = this.tick = noop;\r\n animateStep.complete && animateStep.complete(this.element, this._currentParams);\r\n options.complete && !disableComplete && options.complete()\r\n }\r\n};\r\nexport function AnimationController(element) {\r\n this._animationCount = 0;\r\n this._timerId = null;\r\n this._animations = {};\r\n this.element = element\r\n}\r\nAnimationController.prototype = {\r\n _loop: function() {\r\n var that = this;\r\n var animations = that._animations;\r\n var activeAnimation = 0;\r\n var now = (new Date).getTime();\r\n var an;\r\n var endAnimation = that._endAnimation;\r\n for (an in animations) {\r\n if (!animations[an].tick(now)) {\r\n delete animations[an]\r\n }\r\n activeAnimation++\r\n }\r\n if (0 === activeAnimation) {\r\n that.stop();\r\n that._endAnimationTimer = endAnimation && setTimeout((function() {\r\n if (0 === that._animationCount) {\r\n endAnimation();\r\n that._endAnimation = null\r\n }\r\n }));\r\n return\r\n }\r\n that._timerId = requestAnimationFrame.call(null, (function() {\r\n that._loop()\r\n }), that.element)\r\n },\r\n addAnimation: function(animation) {\r\n var that = this;\r\n that._animations[that._animationCount++] = animation;\r\n clearTimeout(that._endAnimationTimer);\r\n if (!that._timerId) {\r\n clearTimeout(that._startDelay);\r\n that._startDelay = setTimeout((function() {\r\n that._timerId = 1;\r\n that._loop()\r\n }), 0)\r\n }\r\n },\r\n animateElement: function(elem, params, options) {\r\n if (elem && params && options) {\r\n elem.animation && elem.animation.stop();\r\n this.addAnimation(elem.animation = new Animation(elem, params, options))\r\n }\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationCount ? this._endAnimation = endAnimation : endAnimation()\r\n },\r\n dispose: function() {\r\n this.stop();\r\n this.element = null\r\n },\r\n stop: function() {\r\n this._animations = {};\r\n this._animationCount = 0;\r\n cancelAnimationFrame(this._timerId);\r\n clearTimeout(this._startDelay);\r\n clearTimeout(this._endAnimationTimer);\r\n this._timerId = null\r\n },\r\n lock: function() {\r\n var an;\r\n var animations = this._animations;\r\n var unstoppable;\r\n var hasUnstoppableInAnimations;\r\n for (an in animations) {\r\n unstoppable = animations[an].options.unstoppable;\r\n hasUnstoppableInAnimations = hasUnstoppableInAnimations || unstoppable;\r\n if (!unstoppable) {\r\n animations[an].stop(true);\r\n delete animations[an]\r\n }\r\n }!hasUnstoppableInAnimations && this.stop()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/renderer.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport callOnce from \"../../../core/utils/call_once\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n getSvgMarkup\r\n} from \"../../../core/utils/svg\";\r\nimport {\r\n AnimationController\r\n} from \"./animation\";\r\nimport {\r\n normalizeBBox,\r\n rotateBBox,\r\n normalizeEnum\r\n} from \"../utils\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nvar window = getWindow();\r\nvar {\r\n max: max,\r\n min: min,\r\n floor: floor,\r\n round: round,\r\n sin: sin,\r\n cos: cos,\r\n abs: abs,\r\n PI: PI\r\n} = Math;\r\nvar PI_DIV_180 = PI / 180;\r\nvar SHARPING_CORRECTION = .5;\r\nvar ARC_COORD_PREC = 5;\r\nvar pxAddingExceptions = {\r\n \"column-count\": true,\r\n \"fill-opacity\": true,\r\n \"flex-grow\": true,\r\n \"flex-shrink\": true,\r\n \"font-weight\": true,\r\n \"line-height\": true,\r\n opacity: true,\r\n order: true,\r\n orphans: true,\r\n widows: true,\r\n \"z-index\": true,\r\n zoom: true\r\n};\r\nvar KEY_TEXT = \"text\";\r\nvar KEY_STROKE = \"stroke\";\r\nvar KEY_STROKE_WIDTH = \"stroke-width\";\r\nvar KEY_STROKE_OPACITY = \"stroke-opacity\";\r\nvar KEY_FONT_SIZE = \"font-size\";\r\nvar KEY_FONT_STYLE = \"font-style\";\r\nvar KEY_FONT_WEIGHT = \"font-weight\";\r\nvar KEY_TEXT_DECORATION = \"text-decoration\";\r\nvar KEY_TEXTS_ALIGNMENT = \"textsAlignment\";\r\nvar NONE = \"none\";\r\nvar DEFAULT_FONT_SIZE = 12;\r\nvar ELLIPSIS = \"...\";\r\nvar objectCreate = function() {\r\n if (!Object.create) {\r\n return function(proto) {\r\n var F = function() {};\r\n F.prototype = proto;\r\n return new F\r\n }\r\n } else {\r\n return function(proto) {\r\n return Object.create(proto)\r\n }\r\n }\r\n}();\r\nvar DEFAULTS = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n \"pointer-events\": null\r\n};\r\nvar getBackup = callOnce((function() {\r\n var backupContainer = domAdapter.createElement(\"div\");\r\n backupContainer.style.left = \"-9999px\";\r\n backupContainer.style.position = \"absolute\";\r\n return {\r\n backupContainer: backupContainer,\r\n backupCounter: 0\r\n }\r\n}));\r\n\r\nfunction backupRoot(root) {\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().appendChild(getBackup().backupContainer)\r\n }++getBackup().backupCounter;\r\n root.append({\r\n element: getBackup().backupContainer\r\n })\r\n}\r\n\r\nfunction restoreRoot(root, container) {\r\n root.append({\r\n element: container\r\n });\r\n --getBackup().backupCounter;\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().removeChild(getBackup().backupContainer)\r\n }\r\n}\r\nvar getNextDefsSvgId = function() {\r\n var numDefsSvgElements = 1;\r\n return function() {\r\n return \"DevExpress_\" + numDefsSvgElements++\r\n }\r\n}();\r\n\r\nfunction isObjectArgument(value) {\r\n return value && \"string\" !== typeof value\r\n}\r\n\r\nfunction createElement(tagName) {\r\n return domAdapter.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\r\n}\r\nexport function getFuncIri(id, pathModified) {\r\n return null !== id ? \"url(\" + (pathModified ? window.location.href.split(\"#\")[0] : \"\") + \"#\" + id + \")\" : id\r\n}\r\n\r\nfunction extend(target, source) {\r\n var key;\r\n for (key in source) {\r\n target[key] = source[key]\r\n }\r\n return target\r\n}\r\n\r\nfunction roundValue(value, exp) {\r\n value = value.toString().split(\"e\");\r\n value = round(+(value[0] + \"e\" + (value[1] ? +value[1] + exp : exp)));\r\n value = value.toString().split(\"e\");\r\n return +(value[0] + \"e\" + (value[1] ? +value[1] - exp : -exp))\r\n}\r\n\r\nfunction getBoundingClientRect(element) {\r\n var box;\r\n try {\r\n box = element.getBoundingClientRect()\r\n } catch (e) {}\r\n return box || {\r\n left: 0,\r\n top: 0\r\n }\r\n}\r\nvar preserveAspectRatioMap = {\r\n full: NONE,\r\n lefttop: \"xMinYMin\",\r\n leftcenter: \"xMinYMid\",\r\n leftbottom: \"xMinYMax\",\r\n centertop: \"xMidYMin\",\r\n center: \"xMidYMid\",\r\n centerbottom: \"xMidYMax\",\r\n righttop: \"xMaxYMin\",\r\n rightcenter: \"xMaxYMid\",\r\n rightbottom: \"xMaxYMax\"\r\n};\r\nexport function processHatchingAttrs(element, attrs) {\r\n if (attrs.hatching && \"none\" !== normalizeEnum(attrs.hatching.direction)) {\r\n attrs = extend({}, attrs);\r\n attrs.fill = element._hatching = element.renderer.lockHatching(attrs.fill, attrs.hatching, element._hatching);\r\n delete attrs.hatching\r\n } else if (element._hatching) {\r\n element.renderer.releaseHatching(element._hatching);\r\n element._hatching = null\r\n }\r\n return attrs\r\n}\r\n\r\nfunction normalizeArcParams(x, y, innerR, outerR, startAngle, endAngle) {\r\n var isCircle;\r\n var noArc = true;\r\n var angleDiff = roundValue(endAngle, 3) - roundValue(startAngle, 3);\r\n if (angleDiff) {\r\n if (abs(angleDiff) % 360 === 0) {\r\n startAngle = 0;\r\n endAngle = 360;\r\n isCircle = true;\r\n endAngle -= .01\r\n }\r\n if (startAngle > 360) {\r\n startAngle %= 360\r\n }\r\n if (endAngle > 360) {\r\n endAngle %= 360\r\n }\r\n if (startAngle > endAngle) {\r\n startAngle -= 360\r\n }\r\n noArc = false\r\n }\r\n startAngle *= PI_DIV_180;\r\n endAngle *= PI_DIV_180;\r\n return [x, y, min(outerR, innerR), max(outerR, innerR), cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle), isCircle, floor(abs(endAngle - startAngle) / PI) % 2 ? \"1\" : \"0\", noArc]\r\n}\r\nvar buildArcPath = function(x, y, innerR, outerR, startAngleCos, startAngleSin, endAngleCos, endAngleSin, isCircle, longFlag) {\r\n return [\"M\", (x + outerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * startAngleSin).toFixed(ARC_COORD_PREC), \"A\", outerR.toFixed(ARC_COORD_PREC), outerR.toFixed(ARC_COORD_PREC), 0, longFlag, 0, (x + outerR * endAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * endAngleSin).toFixed(ARC_COORD_PREC), isCircle ? \"M\" : \"L\", (x + innerR * endAngleCos).toFixed(5), (y - innerR * endAngleSin).toFixed(ARC_COORD_PREC), \"A\", innerR.toFixed(ARC_COORD_PREC), innerR.toFixed(ARC_COORD_PREC), 0, longFlag, 1, (x + innerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - innerR * startAngleSin).toFixed(ARC_COORD_PREC), \"Z\"].join(\" \")\r\n};\r\n\r\nfunction buildPathSegments(points, type) {\r\n var list = [\r\n [\"M\", 0, 0]\r\n ];\r\n switch (type) {\r\n case \"line\":\r\n list = buildLineSegments(points);\r\n break;\r\n case \"area\":\r\n list = buildLineSegments(points, true);\r\n break;\r\n case \"bezier\":\r\n list = buildCurveSegments(points);\r\n break;\r\n case \"bezierarea\":\r\n list = buildCurveSegments(points, true)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildLineSegments(points, close) {\r\n return buildSegments(points, buildSimpleLineSegment, close)\r\n}\r\n\r\nfunction buildCurveSegments(points, close) {\r\n return buildSegments(points, buildSimpleCurveSegment, close)\r\n}\r\n\r\nfunction buildSegments(points, buildSimpleSegment, close) {\r\n var _points$;\r\n var i;\r\n var ii;\r\n var list = [];\r\n if (null !== (_points$ = points[0]) && void 0 !== _points$ && _points$.length) {\r\n for (i = 0, ii = points.length; i < ii; ++i) {\r\n buildSimpleSegment(points[i], close, list)\r\n }\r\n } else {\r\n buildSimpleSegment(points, close, list)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildSimpleLineSegment(points, close, list) {\r\n var i = 0;\r\n var k0 = list.length;\r\n var k = k0;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i].x, points[i++].y]\r\n }\r\n } else {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i++], points[i++]]\r\n }\r\n }\r\n list[k0][0] = \"M\"\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction buildSimpleCurveSegment(points, close, list) {\r\n var i;\r\n var k = list.length;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n list[k++] = [\"M\", points[0].x, points[0].y];\r\n for (i = 1; i < ii;) {\r\n list[k++] = [\"C\", points[i].x, points[i++].y, points[i].x, points[i++].y, points[i].x, points[i++].y]\r\n }\r\n } else {\r\n list[k++] = [\"M\", points[0], points[1]];\r\n for (i = 2; i < ii;) {\r\n list[k++] = [\"C\", points[i++], points[i++], points[i++], points[i++], points[i++], points[i++]]\r\n }\r\n }\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction combinePathParam(segments) {\r\n var d = [];\r\n var k = 0;\r\n var i;\r\n var ii = segments.length;\r\n var segment;\r\n var j;\r\n var jj;\r\n for (i = 0; i < ii; ++i) {\r\n segment = segments[i];\r\n for (j = 0, jj = segment.length; j < jj; ++j) {\r\n d[k++] = segment[j]\r\n }\r\n }\r\n return d.join(\" \")\r\n}\r\n\r\nfunction compensateSegments(oldSegments, newSegments, type) {\r\n var oldLength = oldSegments.length;\r\n var newLength = newSegments.length;\r\n var i;\r\n var originalNewSegments;\r\n var makeEqualSegments = -1 !== type.indexOf(\"area\") ? makeEqualAreaSegments : makeEqualLineSegments;\r\n if (0 === oldLength) {\r\n for (i = 0; i < newLength; i++) {\r\n oldSegments.push(newSegments[i].slice(0))\r\n }\r\n } else if (oldLength < newLength) {\r\n makeEqualSegments(oldSegments, newSegments, type)\r\n } else if (oldLength > newLength) {\r\n originalNewSegments = newSegments.slice(0);\r\n makeEqualSegments(newSegments, oldSegments, type)\r\n }\r\n return originalNewSegments\r\n}\r\n\r\nfunction prepareConstSegment(constSeg, type) {\r\n var x = constSeg[constSeg.length - 2];\r\n var y = constSeg[constSeg.length - 1];\r\n switch (type) {\r\n case \"line\":\r\n case \"area\":\r\n constSeg[0] = \"L\";\r\n break;\r\n case \"bezier\":\r\n case \"bezierarea\":\r\n constSeg[0] = \"C\";\r\n constSeg[1] = constSeg[3] = constSeg[5] = x;\r\n constSeg[2] = constSeg[4] = constSeg[6] = y\r\n }\r\n}\r\n\r\nfunction makeEqualLineSegments(short, long, type) {\r\n var constSeg = short[short.length - 1].slice();\r\n var i = short.length;\r\n prepareConstSegment(constSeg, type);\r\n for (; i < long.length; i++) {\r\n short[i] = constSeg.slice(0)\r\n }\r\n}\r\n\r\nfunction makeEqualAreaSegments(short, long, type) {\r\n var i;\r\n var head;\r\n var shortLength = short.length;\r\n var longLength = long.length;\r\n var constsSeg1;\r\n var constsSeg2;\r\n if ((shortLength - 1) % 2 === 0 && (longLength - 1) % 2 === 0) {\r\n i = (shortLength - 1) / 2 - 1;\r\n head = short.slice(0, i + 1);\r\n constsSeg1 = head[head.length - 1].slice(0);\r\n constsSeg2 = short.slice(i + 1)[0].slice(0);\r\n prepareConstSegment(constsSeg1, type);\r\n prepareConstSegment(constsSeg2, type);\r\n for (var j = i; j < (longLength - 1) / 2 - 1; j++) {\r\n short.splice(j + 1, 0, constsSeg1);\r\n short.splice(j + 3, 0, constsSeg2)\r\n }\r\n }\r\n}\r\n\r\nfunction baseCss(that, styles) {\r\n var elemStyles = that._styles;\r\n var key;\r\n var value;\r\n styles = styles || {};\r\n for (key in styles) {\r\n value = styles[key];\r\n if (isDefined(value)) {\r\n value += \"number\" === typeof value && !pxAddingExceptions[key] ? \"px\" : \"\";\r\n elemStyles[key] = \"\" !== value ? value : null\r\n }\r\n }\r\n for (key in elemStyles) {\r\n value = elemStyles[key];\r\n if (value) {\r\n that.element.style[key] = value\r\n } else if (null === value) {\r\n that.element.style[key] = \"\"\r\n }\r\n }\r\n return that\r\n}\r\n\r\nfunction fixFuncIri(wrapper, attribute) {\r\n var element = wrapper.element;\r\n var id = wrapper.attr(attribute);\r\n if (id && -1 !== id.indexOf(\"DevExpress\")) {\r\n element.removeAttribute(attribute);\r\n element.setAttribute(attribute, getFuncIri(id, wrapper.renderer.pathModified))\r\n }\r\n}\r\n\r\nfunction baseAttr(that, attrs) {\r\n attrs = attrs || {};\r\n var settings = that._settings;\r\n var attributes = {};\r\n var key;\r\n var value;\r\n var elem = that.element;\r\n var renderer = that.renderer;\r\n var rtl = renderer.rtl;\r\n var hasTransformations;\r\n var recalculateDashStyle;\r\n var sw;\r\n var i;\r\n if (!isObjectArgument(attrs)) {\r\n if (attrs in settings) {\r\n return settings[attrs]\r\n }\r\n if (attrs in DEFAULTS) {\r\n return DEFAULTS[attrs]\r\n }\r\n return 0\r\n }\r\n extend(attributes, attrs);\r\n for (key in attributes) {\r\n value = attributes[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n settings[key] = value;\r\n if (\"align\" === key) {\r\n key = \"text-anchor\";\r\n value = {\r\n left: rtl ? \"end\" : \"start\",\r\n center: \"middle\",\r\n right: rtl ? \"start\" : \"end\"\r\n } [value] || null\r\n } else if (\"dashStyle\" === key) {\r\n recalculateDashStyle = true;\r\n continue\r\n } else if (key === KEY_STROKE_WIDTH) {\r\n recalculateDashStyle = true\r\n } else if (value && (\"fill\" === key || \"clip-path\" === key || \"filter\" === key) && 0 === value.indexOf(\"DevExpress\")) {\r\n that._addFixIRICallback();\r\n value = getFuncIri(value, renderer.pathModified)\r\n } else if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y)|sharp|sharpDirection)$/i.test(key)) {\r\n hasTransformations = true;\r\n continue\r\n } else if (/^(x|y|d)$/i.test(key)) {\r\n hasTransformations = true\r\n }\r\n if (null === value) {\r\n elem.removeAttribute(key)\r\n } else {\r\n elem.setAttribute(key, value)\r\n }\r\n }\r\n if (recalculateDashStyle && \"dashStyle\" in settings) {\r\n value = settings.dashStyle;\r\n sw = (\"_originalSW\" in that ? that._originalSW : settings[KEY_STROKE_WIDTH]) || 1;\r\n key = \"stroke-dasharray\";\r\n value = null === value ? \"\" : normalizeEnum(value);\r\n if (\"\" === value || \"solid\" === value || value === NONE) {\r\n that.element.removeAttribute(key)\r\n } else {\r\n value = value.replace(/longdash/g, \"8,3,\").replace(/dash/g, \"4,3,\").replace(/dot/g, \"1,3,\").replace(/,$/, \"\").split(\",\");\r\n i = value.length;\r\n while (i--) {\r\n value[i] = parseInt(value[i]) * sw\r\n }\r\n that.element.setAttribute(key, value.join(\",\"))\r\n }\r\n }\r\n if (hasTransformations) {\r\n that._applyTransformation()\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAttr(attrs) {\r\n var segments;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n segments = attrs.segments;\r\n if (\"points\" in attrs) {\r\n segments = buildPathSegments(attrs.points, this.type);\r\n delete attrs.points\r\n }\r\n if (segments) {\r\n attrs.d = combinePathParam(segments);\r\n this.segments = segments;\r\n delete attrs.segments\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction arcAttr(attrs) {\r\n var settings = this._settings;\r\n var x;\r\n var y;\r\n var innerRadius;\r\n var outerRadius;\r\n var startAngle;\r\n var endAngle;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (\"x\" in attrs || \"y\" in attrs || \"innerRadius\" in attrs || \"outerRadius\" in attrs || \"startAngle\" in attrs || \"endAngle\" in attrs) {\r\n settings.x = x = \"x\" in attrs ? attrs.x : settings.x;\r\n delete attrs.x;\r\n settings.y = y = \"y\" in attrs ? attrs.y : settings.y;\r\n delete attrs.y;\r\n settings.innerRadius = innerRadius = \"innerRadius\" in attrs ? attrs.innerRadius : settings.innerRadius;\r\n delete attrs.innerRadius;\r\n settings.outerRadius = outerRadius = \"outerRadius\" in attrs ? attrs.outerRadius : settings.outerRadius;\r\n delete attrs.outerRadius;\r\n settings.startAngle = startAngle = \"startAngle\" in attrs ? attrs.startAngle : settings.startAngle;\r\n delete attrs.startAngle;\r\n settings.endAngle = endAngle = \"endAngle\" in attrs ? attrs.endAngle : settings.endAngle;\r\n delete attrs.endAngle;\r\n attrs.d = buildArcPath.apply(null, normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle))\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction rectAttr(attrs) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var sw;\r\n var maxSW;\r\n var newSW;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (void 0 !== attrs.x || void 0 !== attrs.y || void 0 !== attrs.width || void 0 !== attrs.height || void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n void 0 !== attrs.x ? x = this._originalX = attrs.x : x = this._originalX || 0;\r\n void 0 !== attrs.y ? y = this._originalY = attrs.y : y = this._originalY || 0;\r\n void 0 !== attrs.width ? width = this._originalWidth = attrs.width : width = this._originalWidth || 0;\r\n void 0 !== attrs.height ? height = this._originalHeight = attrs.height : height = this._originalHeight || 0;\r\n void 0 !== attrs[KEY_STROKE_WIDTH] ? sw = this._originalSW = attrs[KEY_STROKE_WIDTH] : sw = this._originalSW;\r\n maxSW = ~~((width < height ? width : height) / 2);\r\n newSW = (sw || 0) < maxSW ? sw || 0 : maxSW;\r\n attrs.x = x + newSW / 2;\r\n attrs.y = y + newSW / 2;\r\n attrs.width = width - newSW;\r\n attrs.height = height - newSW;\r\n ((sw || 0) !== newSW || !(0 === newSW && void 0 === sw)) && (attrs[KEY_STROKE_WIDTH] = newSW)\r\n }\r\n if (\"sharp\" in attrs) {\r\n delete attrs.sharp\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction textAttr(attrs) {\r\n var isResetRequired;\r\n if (!isObjectArgument(attrs)) {\r\n return baseAttr(this, attrs)\r\n }\r\n attrs = extend({}, attrs);\r\n var settings = this._settings;\r\n var wasStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n if (void 0 !== attrs[KEY_TEXT]) {\r\n settings[KEY_TEXT] = attrs[KEY_TEXT];\r\n delete attrs[KEY_TEXT];\r\n isResetRequired = true\r\n }\r\n if (void 0 !== attrs[KEY_STROKE]) {\r\n settings[KEY_STROKE] = attrs[KEY_STROKE];\r\n delete attrs[KEY_STROKE]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n settings[KEY_STROKE_WIDTH] = attrs[KEY_STROKE_WIDTH];\r\n delete attrs[KEY_STROKE_WIDTH]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_OPACITY]) {\r\n settings[KEY_STROKE_OPACITY] = attrs[KEY_STROKE_OPACITY];\r\n delete attrs[KEY_STROKE_OPACITY]\r\n }\r\n if (void 0 !== attrs[KEY_TEXTS_ALIGNMENT]) {\r\n alignTextNodes(this, attrs[KEY_TEXTS_ALIGNMENT]);\r\n delete attrs[KEY_TEXTS_ALIGNMENT]\r\n }\r\n var isStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n baseAttr(this, attrs);\r\n isResetRequired = isResetRequired || isStroked !== wasStroked && settings[KEY_TEXT];\r\n if (isResetRequired) {\r\n createTextNodes(this, settings.text, isStroked);\r\n this._hasEllipsis = false\r\n }\r\n if (isResetRequired || void 0 !== attrs.x || void 0 !== attrs.y) {\r\n locateTextNodes(this)\r\n }\r\n if (isStroked) {\r\n strokeTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction textCss(styles) {\r\n styles = styles || {};\r\n baseCss(this, styles);\r\n if (KEY_FONT_SIZE in styles) {\r\n locateTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction orderHtmlTree(list, line, node, parentStyle, parentClassName) {\r\n var style;\r\n var realStyle;\r\n var i;\r\n var ii;\r\n var nodes;\r\n if (void 0 !== node.wholeText) {\r\n list.push({\r\n value: node.wholeText,\r\n style: parentStyle,\r\n className: parentClassName,\r\n line: line,\r\n height: parentStyle[KEY_FONT_SIZE] || 0\r\n })\r\n } else if (\"BR\" === node.tagName) {\r\n ++line\r\n } else if (domAdapter.isElementNode(node)) {\r\n extend(style = {}, parentStyle);\r\n switch (node.tagName) {\r\n case \"B\":\r\n case \"STRONG\":\r\n style[KEY_FONT_WEIGHT] = \"bold\";\r\n break;\r\n case \"I\":\r\n case \"EM\":\r\n style[KEY_FONT_STYLE] = \"italic\";\r\n break;\r\n case \"U\":\r\n style[KEY_TEXT_DECORATION] = \"underline\"\r\n }\r\n realStyle = node.style;\r\n realStyle.color && (style.fill = realStyle.color);\r\n realStyle.fontSize && (style[KEY_FONT_SIZE] = realStyle.fontSize);\r\n realStyle.fontStyle && (style[KEY_FONT_STYLE] = realStyle.fontStyle);\r\n realStyle.fontWeight && (style[KEY_FONT_WEIGHT] = realStyle.fontWeight);\r\n realStyle.textDecoration && (style[KEY_TEXT_DECORATION] = realStyle.textDecoration);\r\n for (i = 0, nodes = node.childNodes, ii = nodes.length; i < ii; ++i) {\r\n line = orderHtmlTree(list, line, nodes[i], style, node.className || parentClassName)\r\n }\r\n }\r\n return line\r\n}\r\n\r\nfunction adjustLineHeights(items) {\r\n var i;\r\n var ii;\r\n var currentItem = items[0];\r\n var item;\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (item.line === currentItem.line) {\r\n currentItem.height = maxLengthFontSize(currentItem.height, item.height);\r\n currentItem.inherits = currentItem.inherits || 0 === parseFloat(item.height);\r\n item.height = NaN\r\n } else {\r\n currentItem = item\r\n }\r\n }\r\n}\r\n\r\nfunction removeExtraAttrs(html) {\r\n var findStyleAndClassAttrs = /(style|class)\\s*=\\s*([\"'])(?:(?!\\2).)*\\2\\s?/gi;\r\n return html.replace(/(?:(<[a-z0-9]+\\s*))([\\s\\S]*?)(>|\\/>)/gi, (function(allTagAttrs, p1, p2, p3) {\r\n p2 = (p2 && p2.match(findStyleAndClassAttrs) || []).map((function(str) {\r\n return str\r\n })).join(\" \");\r\n return p1 + p2 + p3\r\n }))\r\n}\r\n\r\nfunction parseHTML(text) {\r\n var items = [];\r\n var div = domAdapter.createElement(\"div\");\r\n div.innerHTML = text.replace(/\\r/g, \"\").replace(/\\n/g, \"
    \");\r\n orderHtmlTree(items, 0, div, {}, \"\");\r\n adjustLineHeights(items);\r\n return items\r\n}\r\n\r\nfunction parseMultiline(text) {\r\n var texts = text.replace(/\\r/g, \"\").split(/\\n/g);\r\n var i = 0;\r\n var items = [];\r\n for (; i < texts.length; i++) {\r\n items.push({\r\n value: texts[i].trim(),\r\n height: 0,\r\n line: i\r\n })\r\n }\r\n return items\r\n}\r\n\r\nfunction createTspans(items, element, fieldName) {\r\n var i;\r\n var ii;\r\n var item;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n item[fieldName] = createElement(\"tspan\");\r\n item[fieldName].appendChild(domAdapter.createTextNode(item.value));\r\n item.style && baseCss({\r\n element: item[fieldName],\r\n _styles: {}\r\n }, item.style);\r\n item.className && item[fieldName].setAttribute(\"class\", item.className);\r\n element.appendChild(item[fieldName])\r\n }\r\n}\r\n\r\nfunction restoreText() {\r\n if (this._hasEllipsis) {\r\n this.attr({\r\n text: this._settings.text\r\n })\r\n }\r\n}\r\n\r\nfunction applyEllipsis(maxWidth) {\r\n var lines;\r\n var hasEllipsis = false;\r\n var i;\r\n var ii;\r\n var lineParts;\r\n var j;\r\n var jj;\r\n var text;\r\n restoreText.call(this);\r\n var ellipsis = this.renderer.text(ELLIPSIS).attr(this._styles).append(this.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n if (this._getElementBBox().width > maxWidth) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n maxWidth = 0\r\n } else {\r\n maxWidth -= ellipsisWidth\r\n }\r\n lines = prepareLines(this.element, this._texts, maxWidth);\r\n for (i = 0, ii = lines.length; i < ii; ++i) {\r\n lineParts = lines[i].parts;\r\n if (1 === lines[i].commonLength) {\r\n continue\r\n }\r\n for (j = 0, jj = lineParts.length; j < jj; ++j) {\r\n text = lineParts[j];\r\n if (isDefined(text.endIndex)) {\r\n setNewText(text, text.endIndex);\r\n hasEllipsis = true\r\n } else if (text.startBox > maxWidth) {\r\n removeTextSpan(text)\r\n }\r\n }\r\n }\r\n }\r\n ellipsis.remove();\r\n this._hasEllipsis = hasEllipsis;\r\n return hasEllipsis\r\n}\r\n\r\nfunction cloneAndRemoveAttrs(node) {\r\n var clone;\r\n if (node) {\r\n clone = node.cloneNode();\r\n clone.removeAttribute(\"y\");\r\n clone.removeAttribute(\"x\")\r\n }\r\n return clone || node\r\n}\r\n\r\nfunction detachTitleElements(element) {\r\n var titleElements = domAdapter.querySelectorAll(element, \"title\");\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.removeChild(titleElements[i])\r\n }\r\n return titleElements\r\n}\r\n\r\nfunction detachAndStoreTitleElements(element) {\r\n var titleElements = detachTitleElements(element);\r\n return () => {\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.appendChild(titleElements[i])\r\n }\r\n }\r\n}\r\n\r\nfunction setMaxSize(maxWidth, maxHeight) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n var lines = [];\r\n var textChanged = false;\r\n var textIsEmpty = false;\r\n var ellipsisMaxWidth = maxWidth;\r\n restoreText.call(that);\r\n var restoreTitleElement = detachAndStoreTitleElements(this.element);\r\n var ellipsis = that.renderer.text(ELLIPSIS).attr(that._styles).append(that.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n var {\r\n width: width,\r\n height: height\r\n } = that._getElementBBox();\r\n if ((width || height) && (width > maxWidth || maxHeight && height > maxHeight)) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n ellipsisMaxWidth = 0\r\n } else {\r\n ellipsisMaxWidth -= ellipsisWidth\r\n }\r\n lines = applyOverflowRules(that.element, that._texts, maxWidth, ellipsisMaxWidth, options);\r\n lines = setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, parseFloat(this._getLineHeight()));\r\n this._texts = lines.reduce((texts, line) => texts.concat(line.parts), []).filter(t => \"\" !== t.value).map(t => {\r\n t.stroke && t.tspan.parentNode.appendChild(t.stroke);\r\n return t\r\n }).map(t => {\r\n t.tspan.parentNode.appendChild(t.tspan);\r\n return t\r\n });\r\n !this._texts.length && (this._texts = null);\r\n textChanged = true;\r\n if (this._texts) {\r\n locateTextNodes(this)\r\n } else {\r\n this.element.textContent = \"\";\r\n textIsEmpty = true\r\n }\r\n }\r\n ellipsis.remove();\r\n that._hasEllipsis = textChanged;\r\n restoreTitleElement();\r\n return {\r\n rowCount: lines.length,\r\n textChanged: textChanged,\r\n textIsEmpty: textIsEmpty\r\n }\r\n}\r\n\r\nfunction getIndexForEllipsis(text, maxWidth, startBox, endBox) {\r\n var k;\r\n var kk;\r\n if (startBox <= maxWidth && endBox > maxWidth) {\r\n for (k = 1, kk = text.value.length; k <= kk; ++k) {\r\n if (startBox + text.tspan.getSubStringLength(0, k) > maxWidth) {\r\n return k - 1\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTextWidth(text) {\r\n return text.value.length ? text.tspan.getSubStringLength(0, text.value.length) : 0\r\n}\r\n\r\nfunction prepareLines(element, texts, maxWidth) {\r\n var lines = [];\r\n var i;\r\n var ii;\r\n var text;\r\n var startBox;\r\n var endBox;\r\n if (texts) {\r\n for (i = 0, ii = texts.length; i < ii; ++i) {\r\n text = texts[i];\r\n if (!lines[text.line]) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n lines[text.line].parts.push(text);\r\n lines[text.line].commonLength += text.value.length\r\n }\r\n endBox = startBox + text.tspan.getSubStringLength(0, text.value.length);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n startBox = endBox\r\n }\r\n } else {\r\n text = {\r\n value: element.textContent,\r\n tspan: element\r\n };\r\n text.startBox = startBox = 0;\r\n endBox = startBox + getTextWidth(text);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n lines = [{\r\n commonLength: element.textContent.length,\r\n parts: [text]\r\n }]\r\n }\r\n return lines\r\n}\r\n\r\nfunction getSpaceBreakIndex(text, maxWidth) {\r\n var initialIndices = text.startBox > 0 ? [0] : [];\r\n var spaceIndices = text.value.split(\"\").reduce((indices, char, index) => {\r\n if (\" \" === char) {\r\n indices.push(index)\r\n }\r\n return indices\r\n }, initialIndices);\r\n var spaceIndex = 0;\r\n while (void 0 !== spaceIndices[spaceIndex + 1] && text.startBox + text.tspan.getSubStringLength(0, spaceIndices[spaceIndex + 1]) < maxWidth) {\r\n spaceIndex++\r\n }\r\n return spaceIndices[spaceIndex]\r\n}\r\n\r\nfunction getWordBreakIndex(text, maxWidth) {\r\n for (var i = 0; i < text.value.length - 1; i++) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i + 1) > maxWidth) {\r\n return i\r\n }\r\n }\r\n}\r\n\r\nfunction getEllipsisString(ellipsisMaxWidth, _ref) {\r\n var {\r\n hideOverflowEllipsis: hideOverflowEllipsis\r\n } = _ref;\r\n return hideOverflowEllipsis && 0 === ellipsisMaxWidth ? \"\" : ELLIPSIS\r\n}\r\n\r\nfunction setEllipsis(text, ellipsisMaxWidth, options) {\r\n var ellipsis = getEllipsisString(ellipsisMaxWidth, options);\r\n if (text.value.length && text.tspan.parentNode) {\r\n for (var i = text.value.length - 1; i >= 1; i--) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i) < ellipsisMaxWidth) {\r\n setNewText(text, i, ellipsis);\r\n break\r\n } else if (1 === i) {\r\n setNewText(text, 0, ellipsis)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction wordWrap(text, maxWidth, ellipsisMaxWidth, options, lastStepBreakIndex) {\r\n var wholeText = text.value;\r\n var breakIndex;\r\n if (\"none\" !== options.wordWrap) {\r\n breakIndex = \"normal\" === options.wordWrap ? getSpaceBreakIndex(text, maxWidth) : getWordBreakIndex(text, maxWidth)\r\n }\r\n var restLines = [];\r\n var restText;\r\n if (isFinite(breakIndex) && !(0 === lastStepBreakIndex && 0 === breakIndex)) {\r\n setNewText(text, breakIndex, \"\");\r\n var newTextOffset = \" \" === wholeText[breakIndex] ? 1 : 0;\r\n var restString = wholeText.slice(breakIndex + newTextOffset);\r\n if (restString.length) {\r\n var restTspan = cloneAndRemoveAttrs(text.tspan);\r\n restTspan.textContent = restString;\r\n text.tspan.parentNode.appendChild(restTspan);\r\n restText = extend(extend({}, text), {\r\n value: restString,\r\n startBox: 0,\r\n height: 0,\r\n tspan: restTspan,\r\n stroke: cloneAndRemoveAttrs(text.stroke),\r\n endBox: restTspan.getSubStringLength(0, restString.length)\r\n });\r\n restText.stroke && (restText.stroke.textContent = restString);\r\n if (restText.endBox > maxWidth) {\r\n restLines = wordWrap(restText, maxWidth, ellipsisMaxWidth, options, breakIndex);\r\n if (!restLines.length) {\r\n return []\r\n }\r\n }\r\n }\r\n }\r\n if (text.value.length) {\r\n if (\"ellipsis\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n if (\"hide\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n return []\r\n }\r\n } else {\r\n text.tspan.parentNode.removeChild(text.tspan)\r\n }\r\n var parts = [];\r\n if (restText) {\r\n parts.push(restText)\r\n }\r\n return [{\r\n commonLength: wholeText.length,\r\n parts: parts\r\n }].concat(restLines)\r\n}\r\n\r\nfunction calculateLineHeight(line, lineHeight) {\r\n return line.parts.reduce((height, text) => max(height, getItemLineHeight(text, lineHeight)), 0)\r\n}\r\n\r\nfunction setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, lineHeight) {\r\n var textOverflow = options.textOverflow;\r\n if (!isFinite(maxHeight) || 0 === Number(maxHeight) || \"none\" === textOverflow) {\r\n return lines\r\n }\r\n var result = lines.reduce((_ref2, l, index, arr) => {\r\n var [lines, commonHeight] = _ref2;\r\n var height = calculateLineHeight(l, lineHeight);\r\n commonHeight += height;\r\n if (commonHeight < maxHeight) {\r\n lines.push(l)\r\n } else {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n });\r\n if (\"ellipsis\" === textOverflow) {\r\n var prevLine = arr[index - 1];\r\n if (prevLine) {\r\n var text = prevLine.parts[prevLine.parts.length - 1];\r\n if (!text.hasEllipsis) {\r\n if (0 === ellipsisMaxWidth || text.endBox < ellipsisMaxWidth) {\r\n setNewText(text, text.value.length, getEllipsisString(ellipsisMaxWidth, options))\r\n } else {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return [lines, commonHeight]\r\n }, [\r\n [], 0\r\n ]);\r\n if (\"hide\" === textOverflow && result[1] > maxHeight) {\r\n result[0].forEach(l => {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n })\r\n });\r\n return []\r\n }\r\n return result[0]\r\n}\r\n\r\nfunction applyOverflowRules(element, texts, maxWidth, ellipsisMaxWidth, options) {\r\n if (!texts) {\r\n var textValue = element.textContent;\r\n var text = {\r\n value: textValue,\r\n height: 0,\r\n line: 0\r\n };\r\n element.textContent = \"\";\r\n createTspans([text], element, \"tspan\");\r\n texts = [text]\r\n }\r\n return texts.reduce((_ref3, text) => {\r\n var [lines, startBox, endBox, stop, lineNumber] = _ref3;\r\n var line = lines[lines.length - 1];\r\n if (stop) {\r\n return [lines, startBox, endBox, stop]\r\n }\r\n if (!line || text.line !== lineNumber) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n if (startBox > ellipsisMaxWidth && \"none\" === options.wordWrap && \"ellipsis\" === options.textOverflow) {\r\n removeTextSpan(text);\r\n return [lines, startBox, endBox, stop, lineNumber]\r\n }\r\n line.parts.push(text);\r\n line.commonLength += text.value.length\r\n }\r\n text.endBox = endBox = startBox + getTextWidth(text);\r\n startBox = endBox;\r\n if (isDefined(maxWidth) && endBox > maxWidth) {\r\n var wordWrapLines = wordWrap(text, maxWidth, ellipsisMaxWidth, options);\r\n if (!wordWrapLines.length) {\r\n lines = [];\r\n stop = true\r\n } else {\r\n lines = lines.concat(wordWrapLines.filter(l => l.parts.length > 0))\r\n }\r\n }\r\n return [lines, startBox, endBox, stop, text.line]\r\n }, [\r\n [], 0, 0, false, 0\r\n ])[0]\r\n}\r\n\r\nfunction setNewText(text, index) {\r\n var insertString = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ELLIPSIS;\r\n var newText = text.value.substr(0, index) + insertString;\r\n text.value = text.tspan.textContent = newText;\r\n text.stroke && (text.stroke.textContent = newText);\r\n if (insertString === ELLIPSIS) {\r\n text.hasEllipsis = true\r\n }\r\n}\r\n\r\nfunction removeTextSpan(text) {\r\n text.tspan.parentNode && text.tspan.parentNode.removeChild(text.tspan);\r\n text.stroke && text.stroke.parentNode && text.stroke.parentNode.removeChild(text.stroke)\r\n}\r\n\r\nfunction createTextNodes(wrapper, text, isStroked) {\r\n var items;\r\n var parsedHtml;\r\n wrapper._texts = null;\r\n wrapper.clear();\r\n if (null === text) {\r\n return\r\n }\r\n text = \"\" + text;\r\n if (!wrapper.renderer.encodeHtml && (/<[a-z][\\s\\S]*>/i.test(text) || -1 !== text.indexOf(\"&\"))) {\r\n parsedHtml = removeExtraAttrs(text);\r\n items = parseHTML(parsedHtml)\r\n } else if (/\\n/g.test(text)) {\r\n items = parseMultiline(text)\r\n } else if (isStroked) {\r\n items = [{\r\n value: text.trim(),\r\n height: 0\r\n }]\r\n }\r\n if (items) {\r\n if (items.length) {\r\n wrapper._texts = items;\r\n if (isStroked) {\r\n createTspans(items, wrapper.element, KEY_STROKE)\r\n }\r\n createTspans(items, wrapper.element, \"tspan\")\r\n }\r\n } else {\r\n wrapper.element.appendChild(domAdapter.createTextNode(text))\r\n }\r\n}\r\n\r\nfunction setTextNodeAttribute(item, name, value) {\r\n item.tspan.setAttribute(name, value);\r\n item.stroke && item.stroke.setAttribute(name, value)\r\n}\r\n\r\nfunction getItemLineHeight(item, defaultValue) {\r\n return item.inherits ? maxLengthFontSize(item.height, defaultValue) : item.height || defaultValue\r\n}\r\n\r\nfunction locateTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var x = wrapper._settings.x;\r\n var lineHeight = wrapper._getLineHeight();\r\n var i;\r\n var ii;\r\n var item = items[0];\r\n setTextNodeAttribute(item, \"x\", x);\r\n setTextNodeAttribute(item, \"y\", wrapper._settings.y);\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (parseFloat(item.height) >= 0) {\r\n setTextNodeAttribute(item, \"x\", x);\r\n var height = getItemLineHeight(item, lineHeight);\r\n setTextNodeAttribute(item, \"dy\", height)\r\n }\r\n }\r\n}\r\n\r\nfunction alignTextNodes(wrapper, alignment) {\r\n if (!wrapper._texts || \"center\" === alignment) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var direction = \"left\" === alignment ? -1 : 1;\r\n var maxTextWidth = Math.max.apply(Math, items.map(t => getTextWidth(t)));\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var textWidth = getTextWidth(item);\r\n if (0 !== maxTextWidth && maxTextWidth !== textWidth) {\r\n setTextNodeAttribute(item, \"dx\", direction * round((maxTextWidth - textWidth) / 2 * 10) / 10)\r\n }\r\n }\r\n}\r\n\r\nfunction maxLengthFontSize(fontSize1, fontSize2) {\r\n var parsedHeight1 = parseFloat(fontSize1);\r\n var parsedHeight2 = parseFloat(fontSize2);\r\n var height1 = parsedHeight1 || DEFAULT_FONT_SIZE;\r\n var height2 = parsedHeight2 || DEFAULT_FONT_SIZE;\r\n return height1 > height2 ? !isNaN(parsedHeight1) ? fontSize1 : height1 : !isNaN(parsedHeight2) ? fontSize2 : height2\r\n}\r\n\r\nfunction strokeTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var stroke = wrapper._settings[KEY_STROKE];\r\n var strokeWidth = wrapper._settings[KEY_STROKE_WIDTH];\r\n var strokeOpacity = wrapper._settings[KEY_STROKE_OPACITY] || 1;\r\n var tspan;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n tspan = items[i].stroke;\r\n tspan.setAttribute(KEY_STROKE, stroke);\r\n tspan.setAttribute(KEY_STROKE_WIDTH, strokeWidth);\r\n tspan.setAttribute(KEY_STROKE_OPACITY, strokeOpacity);\r\n tspan.setAttribute(\"stroke-linejoin\", \"round\")\r\n }\r\n}\r\n\r\nfunction baseAnimate(that, params, options, complete) {\r\n options = options || {};\r\n var key;\r\n var value;\r\n var renderer = that.renderer;\r\n var settings = that._settings;\r\n var animationParams = {};\r\n var defaults = {\r\n translateX: 0,\r\n translateY: 0,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotate: 0,\r\n rotateX: 0,\r\n rotateY: 0\r\n };\r\n if (complete) {\r\n options.complete = complete\r\n }\r\n if (renderer.animationEnabled()) {\r\n for (key in params) {\r\n value = params[key];\r\n if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y))$/i.test(key)) {\r\n animationParams.transform = animationParams.transform || {\r\n from: {},\r\n to: {}\r\n };\r\n animationParams.transform.from[key] = key in settings ? Number(settings[key].toFixed(3)) : defaults[key];\r\n animationParams.transform.to[key] = value\r\n } else if (\"arc\" === key || \"segments\" === key) {\r\n animationParams[key] = value\r\n } else {\r\n animationParams[key] = {\r\n from: key in settings ? settings[key] : parseFloat(that.element.getAttribute(key) || 0),\r\n to: value\r\n }\r\n }\r\n }\r\n renderer.animateElement(that, animationParams, extend(extend({}, renderer._animation), options))\r\n } else {\r\n options.step && options.step.call(that, 1, 1);\r\n options.complete && options.complete.call(that);\r\n that.attr(params)\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAnimate(params, options, complete) {\r\n var curSegments = this.segments || [];\r\n var newSegments;\r\n var endSegments;\r\n if (this.renderer.animationEnabled() && \"points\" in params) {\r\n newSegments = buildPathSegments(params.points, this.type);\r\n endSegments = compensateSegments(curSegments, newSegments, this.type);\r\n params.segments = {\r\n from: curSegments,\r\n to: newSegments,\r\n end: endSegments\r\n };\r\n delete params.points\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction arcAnimate(params, options, complete) {\r\n var settings = this._settings;\r\n var arcParams = {\r\n from: {},\r\n to: {}\r\n };\r\n if (this.renderer.animationEnabled() && (\"x\" in params || \"y\" in params || \"innerRadius\" in params || \"outerRadius\" in params || \"startAngle\" in params || \"endAngle\" in params)) {\r\n arcParams.from.x = settings.x || 0;\r\n arcParams.from.y = settings.y || 0;\r\n arcParams.from.innerRadius = settings.innerRadius || 0;\r\n arcParams.from.outerRadius = settings.outerRadius || 0;\r\n arcParams.from.startAngle = settings.startAngle || 0;\r\n arcParams.from.endAngle = settings.endAngle || 0;\r\n arcParams.to.x = \"x\" in params ? params.x : settings.x;\r\n delete params.x;\r\n arcParams.to.y = \"y\" in params ? params.y : settings.y;\r\n delete params.y;\r\n arcParams.to.innerRadius = \"innerRadius\" in params ? params.innerRadius : settings.innerRadius;\r\n delete params.innerRadius;\r\n arcParams.to.outerRadius = \"outerRadius\" in params ? params.outerRadius : settings.outerRadius;\r\n delete params.outerRadius;\r\n arcParams.to.startAngle = \"startAngle\" in params ? params.startAngle : settings.startAngle;\r\n delete params.startAngle;\r\n arcParams.to.endAngle = \"endAngle\" in params ? params.endAngle : settings.endAngle;\r\n delete params.endAngle;\r\n params.arc = arcParams\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction buildLink(target, parameters) {\r\n var obj = {\r\n is: false,\r\n name: parameters.name || parameters,\r\n after: parameters.after\r\n };\r\n if (target) {\r\n obj.to = target\r\n } else {\r\n obj.virtual = true\r\n }\r\n return obj\r\n}\r\nexport var SvgElement = function(renderer, tagName, type) {\r\n this.renderer = renderer;\r\n this.element = createElement(tagName);\r\n this._settings = {};\r\n this._styles = {};\r\n if (\"path\" === tagName) {\r\n this.type = type || \"line\"\r\n }\r\n};\r\n\r\nfunction removeFuncIriCallback(callback) {\r\n fixFuncIriCallbacks.remove(callback)\r\n}\r\nSvgElement.prototype = {\r\n constructor: SvgElement,\r\n _getJQElement: function() {\r\n return this._$element || (this._$element = $(this.element))\r\n },\r\n _addFixIRICallback: function() {\r\n var that = this;\r\n var fn = function() {\r\n fixFuncIri(that, \"fill\");\r\n fixFuncIri(that, \"clip-path\");\r\n fixFuncIri(that, \"filter\")\r\n };\r\n that.element._fixFuncIri = fn;\r\n fn.renderer = that.renderer;\r\n fixFuncIriCallbacks.add(fn);\r\n that._addFixIRICallback = function() {}\r\n },\r\n _clearChildrenFuncIri: function() {\r\n ! function clearChildren(element) {\r\n var i;\r\n for (i = 0; i < element.childNodes.length; i++) {\r\n removeFuncIriCallback(element.childNodes[i]._fixFuncIri);\r\n clearChildren(element.childNodes[i])\r\n }\r\n }(this.element)\r\n },\r\n dispose: function() {\r\n removeFuncIriCallback(this.element._fixFuncIri);\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().remove();\r\n return this\r\n },\r\n append: function(parent) {\r\n (parent || this.renderer.root).element.appendChild(this.element);\r\n return this\r\n },\r\n remove: function() {\r\n var element = this.element;\r\n element.parentNode && element.parentNode.removeChild(element);\r\n return this\r\n },\r\n enableLinks: function() {\r\n this._links = [];\r\n return this\r\n },\r\n virtualLink: function(parameters) {\r\n linkItem({\r\n _link: buildLink(null, parameters)\r\n }, this);\r\n return this\r\n },\r\n linkAfter: function(name) {\r\n this._linkAfter = name;\r\n return this\r\n },\r\n linkOn: function(target, parameters) {\r\n this._link = buildLink(target, parameters);\r\n linkItem(this, target);\r\n return this\r\n },\r\n linkOff: function() {\r\n unlinkItem(this);\r\n this._link = null;\r\n return this\r\n },\r\n linkAppend: function() {\r\n var link = this._link;\r\n var items = link.to._links;\r\n var i;\r\n var next;\r\n for (i = link.i + 1;\r\n (next = items[i]) && !next._link.is; ++i) {}\r\n this._insert(link.to, next);\r\n link.is = true;\r\n return this\r\n },\r\n _insert: function(parent, next) {\r\n parent.element.insertBefore(this.element, next ? next.element : null)\r\n },\r\n linkRemove: function() {\r\n this.remove();\r\n this._link.is = false;\r\n return this\r\n },\r\n clear: function() {\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().empty();\r\n return this\r\n },\r\n toBackground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.insertBefore(elem, parent.firstChild);\r\n return this\r\n },\r\n toForeground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.appendChild(elem);\r\n return this\r\n },\r\n attr: function(attrs) {\r\n return baseAttr(this, attrs)\r\n },\r\n smartAttr: function(attrs) {\r\n return this.attr(processHatchingAttrs(this, attrs))\r\n },\r\n css: function(styles) {\r\n return baseCss(this, styles)\r\n },\r\n animate: function(params, options, complete) {\r\n return baseAnimate(this, params, options, complete)\r\n },\r\n sharp(pos, sharpDirection) {\r\n return this.attr({\r\n sharp: pos || true,\r\n sharpDirection: sharpDirection\r\n })\r\n },\r\n _applyTransformation() {\r\n var tr = this._settings;\r\n var rotateX;\r\n var rotateY;\r\n var transformations = [];\r\n var sharpMode = tr.sharp;\r\n var trDirection = tr.sharpDirection || 1;\r\n var strokeOdd = tr[KEY_STROKE_WIDTH] % 2;\r\n var correctionX = strokeOdd && (\"h\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n var correctionY = strokeOdd && (\"v\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n transformations.push(\"translate(\" + ((tr.translateX || 0) + correctionX) + \",\" + ((tr.translateY || 0) + correctionY) + \")\");\r\n if (tr.rotate) {\r\n if (\"rotateX\" in tr) {\r\n rotateX = tr.rotateX\r\n } else {\r\n rotateX = tr.x\r\n }\r\n if (\"rotateY\" in tr) {\r\n rotateY = tr.rotateY\r\n } else {\r\n rotateY = tr.y\r\n }\r\n transformations.push(\"rotate(\" + tr.rotate + \",\" + (rotateX || 0) + \",\" + (rotateY || 0) + \")\")\r\n }\r\n var scaleXDefined = isDefined(tr.scaleX);\r\n var scaleYDefined = isDefined(tr.scaleY);\r\n if (scaleXDefined || scaleYDefined) {\r\n transformations.push(\"scale(\" + (scaleXDefined ? tr.scaleX : 1) + \",\" + (scaleYDefined ? tr.scaleY : 1) + \")\")\r\n }\r\n if (transformations.length) {\r\n this.element.setAttribute(\"transform\", transformations.join(\" \"))\r\n }\r\n },\r\n move: function(x, y, animate, animOptions) {\r\n var obj = {};\r\n isDefined(x) && (obj.translateX = x);\r\n isDefined(y) && (obj.translateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n rotate: function(angle, x, y, animate, animOptions) {\r\n var obj = {\r\n rotate: angle || 0\r\n };\r\n isDefined(x) && (obj.rotateX = x);\r\n isDefined(y) && (obj.rotateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n _getElementBBox: function() {\r\n var elem = this.element;\r\n var bBox;\r\n try {\r\n bBox = elem.getBBox && elem.getBBox()\r\n } catch (e) {}\r\n return bBox || {\r\n x: 0,\r\n y: 0,\r\n width: elem.offsetWidth || 0,\r\n height: elem.offsetHeight || 0\r\n }\r\n },\r\n getBBox: function() {\r\n var transformation = this._settings;\r\n var bBox = this._getElementBBox();\r\n if (transformation.rotate) {\r\n bBox = rotateBBox(bBox, [(\"rotateX\" in transformation ? transformation.rotateX : transformation.x) || 0, (\"rotateY\" in transformation ? transformation.rotateY : transformation.y) || 0], -transformation.rotate)\r\n } else {\r\n bBox = normalizeBBox(bBox)\r\n }\r\n return bBox\r\n },\r\n markup: function() {\r\n return getSvgMarkup(this.element)\r\n },\r\n getOffset: function() {\r\n return this._getJQElement().offset()\r\n },\r\n stopAnimation: function(disableComplete) {\r\n var animation = this.animation;\r\n animation && animation.stop(disableComplete);\r\n return this\r\n },\r\n setTitle: function(text) {\r\n var titleElem = createElement(\"title\");\r\n titleElem.textContent = text || \"\";\r\n this.element.appendChild(titleElem)\r\n },\r\n removeTitle() {\r\n detachTitleElements(this.element)\r\n },\r\n data: function(obj, val) {\r\n var elem = this.element;\r\n var key;\r\n if (void 0 !== val) {\r\n elem[obj] = val\r\n } else {\r\n for (key in obj) {\r\n elem[key] = obj[key]\r\n }\r\n }\r\n return this\r\n },\r\n on: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.on.apply(eventsEngine, args);\r\n return this\r\n },\r\n off: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.off.apply(eventsEngine, args);\r\n return this\r\n },\r\n trigger: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.trigger.apply(eventsEngine, args);\r\n return this\r\n }\r\n};\r\nexport var PathSvgElement = function(renderer, type) {\r\n SvgElement.call(this, renderer, \"path\", type)\r\n};\r\nPathSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(PathSvgElement.prototype, {\r\n constructor: PathSvgElement,\r\n attr: pathAttr,\r\n animate: pathAnimate\r\n});\r\nexport var ArcSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"path\", \"arc\")\r\n};\r\nArcSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(ArcSvgElement.prototype, {\r\n constructor: ArcSvgElement,\r\n attr: arcAttr,\r\n animate: arcAnimate\r\n});\r\nexport var RectSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"rect\")\r\n};\r\nRectSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(RectSvgElement.prototype, {\r\n constructor: RectSvgElement,\r\n attr: rectAttr\r\n});\r\nexport var TextSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"text\");\r\n this.css({\r\n \"white-space\": \"pre\"\r\n })\r\n};\r\nTextSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(TextSvgElement.prototype, {\r\n constructor: TextSvgElement,\r\n attr: textAttr,\r\n css: textCss,\r\n applyEllipsis: applyEllipsis,\r\n setMaxSize: setMaxSize,\r\n restoreText: restoreText,\r\n _getLineHeight() {\r\n return !isNaN(parseFloat(this._styles[KEY_FONT_SIZE])) ? this._styles[KEY_FONT_SIZE] : DEFAULT_FONT_SIZE\r\n }\r\n});\r\n\r\nfunction updateIndexes(items, k) {\r\n var i;\r\n var item;\r\n for (i = k; item = items[i]; ++i) {\r\n item._link.i = i\r\n }\r\n}\r\n\r\nfunction linkItem(target, container) {\r\n var items = container._links;\r\n var key = target._link.after = target._link.after || container._linkAfter;\r\n var i;\r\n var item;\r\n if (key) {\r\n for (i = 0;\r\n (item = items[i]) && item._link.name !== key; ++i) {}\r\n if (item) {\r\n for (++i;\r\n (item = items[i]) && item._link.after === key; ++i) {}\r\n }\r\n } else {\r\n i = items.length\r\n }\r\n items.splice(i, 0, target);\r\n updateIndexes(items, i)\r\n}\r\n\r\nfunction unlinkItem(target) {\r\n var i;\r\n var items = target._link.to._links;\r\n for (i = 0; items[i] !== target; ++i) {}\r\n items.splice(i, 1);\r\n updateIndexes(items, i)\r\n}\r\nexport function Renderer(options) {\r\n this.root = this._createElement(\"svg\", {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n version: \"1.1\",\r\n fill: NONE,\r\n stroke: NONE,\r\n \"stroke-width\": 0\r\n }).attr({\r\n class: options.cssClass\r\n }).css({\r\n \"line-height\": \"normal\",\r\n \"-ms-user-select\": NONE,\r\n \"-moz-user-select\": NONE,\r\n \"-webkit-user-select\": NONE,\r\n \"-webkit-tap-highlight-color\": \"rgba(0, 0, 0, 0)\",\r\n display: \"block\",\r\n overflow: \"hidden\"\r\n });\r\n this._init();\r\n this.pathModified = !!options.pathModified;\r\n this._$container = $(options.container);\r\n this.root.append({\r\n element: options.container\r\n });\r\n this.fixPlacement();\r\n this._locker = 0;\r\n this._backed = false\r\n}\r\nRenderer.prototype = {\r\n constructor: Renderer,\r\n _init: function() {\r\n this._defs = this._createElement(\"defs\").append(this.root);\r\n this._animationController = new AnimationController(this.root.element);\r\n this._animation = {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }\r\n },\r\n fixPlacement: function() {\r\n if (!browser.mozilla) {\r\n return\r\n }\r\n var box = getBoundingClientRect(this._$container.get(0));\r\n var dx = roundValue(box.left % 1, 2);\r\n var dy = roundValue(box.top % 1, 2);\r\n if (browser.mozilla) {\r\n this.root.move(-dx, -dy)\r\n }\r\n },\r\n removePlacementFix: function() {\r\n if (!browser.mozilla) {\r\n return\r\n }\r\n if (browser.mozilla) {\r\n this.root.attr({\r\n transform: null\r\n })\r\n }\r\n },\r\n setOptions: function(options) {\r\n this.rtl = !!options.rtl;\r\n this.encodeHtml = !!options.encodeHtml;\r\n this.updateAnimationOptions(options.animation || {});\r\n this.root.attr({\r\n direction: this.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n _createElement: function(tagName, attr, type) {\r\n var elem = new SvgElement(this, tagName, type);\r\n attr && elem.attr(attr);\r\n return elem\r\n },\r\n lock: function() {\r\n if (0 === this._locker) {\r\n this._backed = !this._$container.is(\":visible\");\r\n if (this._backed) {\r\n backupRoot(this.root)\r\n }\r\n }++this._locker;\r\n return this\r\n },\r\n unlock: function() {\r\n --this._locker;\r\n if (0 === this._locker) {\r\n if (this._backed) {\r\n restoreRoot(this.root, this._$container[0]);\r\n this.fixPlacement()\r\n }\r\n this._backed = false\r\n }\r\n return this\r\n },\r\n resize: function(width, height) {\r\n if (width >= 0 && height >= 0) {\r\n this.root.attr({\r\n width: width,\r\n height: height\r\n })\r\n }\r\n return this\r\n },\r\n dispose: function() {\r\n var key;\r\n this.root.dispose();\r\n this._defs.dispose();\r\n this._animationController.dispose();\r\n fixFuncIriCallbacks.removeByRenderer(this);\r\n for (key in this) {\r\n this[key] = null\r\n }\r\n return this\r\n },\r\n animationEnabled: function() {\r\n return !!this._animation.enabled\r\n },\r\n updateAnimationOptions: function(newOptions) {\r\n extend(this._animation, newOptions);\r\n return this\r\n },\r\n stopAllAnimations: function(lock) {\r\n this._animationController[lock ? \"lock\" : \"stop\"]();\r\n return this\r\n },\r\n animateElement: function(element, params, options) {\r\n this._animationController.animateElement(element, params, options);\r\n return this\r\n },\r\n svg: function() {\r\n this.removePlacementFix();\r\n var markup = this.root.markup();\r\n this.fixPlacement();\r\n return markup\r\n },\r\n getRootOffset: function() {\r\n return this.root.getOffset()\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationController.onEndAnimation(endAnimation)\r\n },\r\n rect: function(x, y, width, height) {\r\n var elem = new RectSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n })\r\n },\r\n simpleRect: function() {\r\n return this._createElement(\"rect\")\r\n },\r\n circle: function(x, y, r) {\r\n return this._createElement(\"circle\", {\r\n cx: x || 0,\r\n cy: y || 0,\r\n r: r || 0\r\n })\r\n },\r\n g: function() {\r\n return this._createElement(\"g\")\r\n },\r\n image: function(x, y, w, h, href, location) {\r\n var image = this._createElement(\"image\", {\r\n x: x || 0,\r\n y: y || 0,\r\n width: w || 0,\r\n height: h || 0,\r\n preserveAspectRatio: preserveAspectRatioMap[normalizeEnum(location)] || NONE\r\n });\r\n image.element.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", href || \"\");\r\n return image\r\n },\r\n path: function(points, type) {\r\n var elem = new PathSvgElement(this, type);\r\n return elem.attr({\r\n points: points || []\r\n })\r\n },\r\n arc: function(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var elem = new ArcSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n innerRadius: innerRadius || 0,\r\n outerRadius: outerRadius || 0,\r\n startAngle: startAngle || 0,\r\n endAngle: endAngle || 0\r\n })\r\n },\r\n text: function(_text, x, y) {\r\n var elem = new TextSvgElement(this);\r\n return elem.attr({\r\n text: _text,\r\n x: x || 0,\r\n y: y || 0\r\n })\r\n },\r\n linearGradient: function(stops) {\r\n var id = getNextDefsSvgId();\r\n var that = this;\r\n var gradient = that._createElement(\"linearGradient\", {\r\n id: id\r\n }).append(that._defs);\r\n gradient.id = id;\r\n stops.forEach(stop => {\r\n that._createElement(\"stop\", {\r\n offset: stop.offset,\r\n \"stop-color\": stop[\"stop-color\"]\r\n }).append(gradient)\r\n });\r\n return gradient\r\n },\r\n pattern: function(color, hatching, _id) {\r\n hatching = hatching || {};\r\n var step = hatching.step || 6;\r\n var stepTo2 = step / 2;\r\n var stepBy15 = 1.5 * step;\r\n var id = _id || getNextDefsSvgId();\r\n var d = \"right\" === normalizeEnum(hatching.direction) ? \"M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + -stepTo2 + \" \" + stepTo2 + \" M 0 \" + step + \" L \" + step + \" 0 M \" + stepBy15 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 : \"M 0 0 L \" + step + \" \" + step + \" M \" + -stepTo2 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 + \" M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + stepBy15 + \" \" + stepTo2;\r\n var pattern = this._createElement(\"pattern\", {\r\n id: id,\r\n width: step,\r\n height: step,\r\n patternUnits: \"userSpaceOnUse\"\r\n }).append(this._defs);\r\n pattern.id = id;\r\n this.rect(0, 0, step, step).attr({\r\n fill: color,\r\n opacity: hatching.opacity\r\n }).append(pattern);\r\n new PathSvgElement(this).attr({\r\n d: d,\r\n \"stroke-width\": hatching.width || 1,\r\n stroke: color\r\n }).append(pattern);\r\n return pattern\r\n },\r\n _getPointsWithYOffset: function(points, offset) {\r\n return points.map((function(point, index) {\r\n if (index % 2 !== 0) {\r\n return point + offset\r\n }\r\n return point\r\n }))\r\n },\r\n clipShape: function(method, methodArgs) {\r\n var id = getNextDefsSvgId();\r\n var clipPath = this._createElement(\"clipPath\", {\r\n id: id\r\n }).append(this._defs);\r\n var shape = method.apply(this, methodArgs).append(clipPath);\r\n shape.id = id;\r\n shape.remove = function() {\r\n throw \"Not implemented\"\r\n };\r\n shape.dispose = function() {\r\n clipPath.dispose();\r\n clipPath = null;\r\n return this\r\n };\r\n return shape\r\n },\r\n clipRect(x, y, width, height) {\r\n return this.clipShape(this.rect, arguments)\r\n },\r\n clipCircle(x, y, radius) {\r\n return this.clipShape(this.circle, arguments)\r\n },\r\n shadowFilter: function(x, y, width, height, offsetX, offsetY, blur, color, opacity) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id,\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n }).append(this._defs);\r\n var gaussianBlur = this._createElement(\"feGaussianBlur\", {\r\n in: \"SourceGraphic\",\r\n result: \"gaussianBlurResult\",\r\n stdDeviation: blur || 0\r\n }).append(filter);\r\n var offset = this._createElement(\"feOffset\", {\r\n in: \"gaussianBlurResult\",\r\n result: \"offsetResult\",\r\n dx: offsetX || 0,\r\n dy: offsetY || 0\r\n }).append(filter);\r\n var flood = this._createElement(\"feFlood\", {\r\n result: \"floodResult\",\r\n \"flood-color\": color || \"\",\r\n \"flood-opacity\": opacity\r\n }).append(filter);\r\n var composite = this._createElement(\"feComposite\", {\r\n in: \"floodResult\",\r\n in2: \"offsetResult\",\r\n operator: \"in\",\r\n result: \"compositeResult\"\r\n }).append(filter);\r\n var finalComposite = this._createElement(\"feComposite\", {\r\n in: \"SourceGraphic\",\r\n in2: \"compositeResult\",\r\n operator: \"over\"\r\n }).append(filter);\r\n filter.id = id;\r\n filter.gaussianBlur = gaussianBlur;\r\n filter.offset = offset;\r\n filter.flood = flood;\r\n filter.composite = composite;\r\n filter.finalComposite = finalComposite;\r\n filter.attr = function(attrs) {\r\n var filterAttrs = {};\r\n var offsetAttrs = {};\r\n var floodAttrs = {};\r\n \"x\" in attrs && (filterAttrs.x = attrs.x);\r\n \"y\" in attrs && (filterAttrs.y = attrs.y);\r\n \"width\" in attrs && (filterAttrs.width = attrs.width);\r\n \"height\" in attrs && (filterAttrs.height = attrs.height);\r\n baseAttr(this, filterAttrs);\r\n \"blur\" in attrs && this.gaussianBlur.attr({\r\n stdDeviation: attrs.blur\r\n });\r\n \"offsetX\" in attrs && (offsetAttrs.dx = attrs.offsetX);\r\n \"offsetY\" in attrs && (offsetAttrs.dy = attrs.offsetY);\r\n this.offset.attr(offsetAttrs);\r\n \"color\" in attrs && (floodAttrs[\"flood-color\"] = attrs.color);\r\n \"opacity\" in attrs && (floodAttrs[\"flood-opacity\"] = attrs.opacity);\r\n this.flood.attr(floodAttrs);\r\n return this\r\n };\r\n return filter\r\n },\r\n brightFilter: function(type, slope) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n var componentTransferElement = this._createElement(\"feComponentTransfer\").append(filter);\r\n var attrs = {\r\n type: type,\r\n slope: slope\r\n };\r\n filter.id = id;\r\n this._createElement(\"feFuncR\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncG\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncB\", attrs).append(componentTransferElement);\r\n return filter\r\n },\r\n getGrayScaleFilter: function() {\r\n if (this._grayScaleFilter) {\r\n return this._grayScaleFilter\r\n }\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createElement(\"feColorMatrix\").attr({\r\n type: \"matrix\",\r\n values: \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 0.6 0\"\r\n }).append(filter);\r\n filter.id = id;\r\n this._grayScaleFilter = filter;\r\n return filter\r\n },\r\n initHatching: function() {\r\n var storage = this._hatchingStorage = this._hatchingStorage || {\r\n byHash: {},\r\n baseId: getNextDefsSvgId()\r\n };\r\n var byHash = storage.byHash;\r\n var name;\r\n for (name in byHash) {\r\n byHash[name].pattern.dispose()\r\n }\r\n storage.byHash = {};\r\n storage.refToHash = {};\r\n storage.nextId = 0\r\n },\r\n lockHatching: function(color, hatching, ref) {\r\n var storage = this._hatchingStorage;\r\n var hash = getHatchingHash(color, hatching);\r\n var storageItem;\r\n var pattern;\r\n if (storage.refToHash[ref] !== hash) {\r\n if (ref) {\r\n this.releaseHatching(ref)\r\n }\r\n storageItem = storage.byHash[hash];\r\n if (!storageItem) {\r\n pattern = this.pattern(color, hatching, storage.baseId + \"-hatching-\" + storage.nextId++);\r\n storageItem = storage.byHash[hash] = {\r\n pattern: pattern,\r\n count: 0\r\n };\r\n storage.refToHash[pattern.id] = hash\r\n }++storageItem.count;\r\n ref = storageItem.pattern.id\r\n }\r\n return ref\r\n },\r\n releaseHatching: function(ref) {\r\n var storage = this._hatchingStorage;\r\n var hash = storage.refToHash[ref];\r\n var storageItem = storage.byHash[hash];\r\n if (storageItem && 0 === --storageItem.count) {\r\n storageItem.pattern.dispose();\r\n delete storage.byHash[hash];\r\n delete storage.refToHash[ref]\r\n }\r\n }\r\n};\r\n\r\nfunction getHatchingHash(color, hatching) {\r\n return \"@\" + color + \"::\" + hatching.step + \":\" + hatching.width + \":\" + hatching.opacity + \":\" + hatching.direction\r\n}\r\nvar fixFuncIriCallbacks = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(fn) {\r\n callbacks.push(fn)\r\n },\r\n remove: function(fn) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el !== fn\r\n }))\r\n },\r\n removeByRenderer: function(renderer) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el.renderer !== renderer\r\n }))\r\n },\r\n fire: function() {\r\n callbacks.forEach((function(fn) {\r\n fn()\r\n }))\r\n }\r\n }\r\n}();\r\nexport var refreshPaths = function() {\r\n fixFuncIriCallbacks.fire()\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/series_family.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n map as _map,\r\n normalizeEnum as _normalizeEnum\r\n} from \"./utils\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar {\r\n round: round,\r\n abs: abs,\r\n pow: pow,\r\n sqrt: sqrt\r\n} = Math;\r\nvar _min = Math.min;\r\nvar DEFAULT_BAR_GROUP_PADDING = .3;\r\n\r\nfunction validateBarPadding(barPadding) {\r\n return barPadding < 0 || barPadding > 1 ? void 0 : barPadding\r\n}\r\n\r\nfunction validateBarGroupPadding(barGroupPadding) {\r\n return barGroupPadding < 0 || barGroupPadding > 1 ? DEFAULT_BAR_GROUP_PADDING : barGroupPadding\r\n}\r\n\r\nfunction isStackExist(series, arg) {\r\n return series.some((function(s) {\r\n return !s.getOptions().ignoreEmptyPoints || s.getPointsByArg(arg, true).some((function(point) {\r\n return point.hasValue()\r\n }))\r\n }))\r\n}\r\n\r\nfunction correctStackCoordinates(series, currentStacks, arg, stack, parameters, barsArea, seriesStackIndexCallback) {\r\n series.forEach((function(series) {\r\n var stackIndex = seriesStackIndexCallback(currentStacks.indexOf(stack), currentStacks.length);\r\n var points = series.getPointsByArg(arg, true);\r\n var barPadding = validateBarPadding(series.getOptions().barPadding);\r\n var barWidth = series.getOptions().barWidth;\r\n var offset = getOffset(stackIndex, parameters);\r\n var width = parameters.width;\r\n var extraParameters;\r\n if (-1 === stackIndex) {\r\n return\r\n }\r\n if (isDefined(barPadding) || isDefined(barWidth)) {\r\n extraParameters = calculateParams(barsArea, currentStacks.length, 1 - barPadding, barWidth);\r\n width = extraParameters.width;\r\n if (!series.getBarOverlapGroup()) {\r\n offset = getOffset(stackIndex, extraParameters)\r\n }\r\n }\r\n correctPointCoordinates(points, width, offset)\r\n }))\r\n}\r\n\r\nfunction getStackName(series) {\r\n return series.getStackName() || series.getBarOverlapGroup()\r\n}\r\n\r\nfunction adjustBarSeriesDimensionsCore(series, options, seriesStackIndexCallback) {\r\n var _series$, _series$2;\r\n var commonStacks = [];\r\n var allArguments = [];\r\n var seriesInStacks = {};\r\n var barGroupWidth = options.barGroupWidth;\r\n var argumentAxis = null === (_series$ = series[0]) || void 0 === _series$ ? void 0 : _series$.getArgumentAxis();\r\n var interval;\r\n if (null !== (_series$2 = series[0]) && void 0 !== _series$2 && _series$2.useAggregation()) {\r\n var _series$3;\r\n var isDateArgAxis = \"datetime\" === (null === (_series$3 = series[0]) || void 0 === _series$3 ? void 0 : _series$3.argumentType);\r\n var tickInterval = argumentAxis.getTickInterval();\r\n var aggregationInterval = argumentAxis.getAggregationInterval();\r\n tickInterval = isDateArgAxis ? dateUtils.dateToMilliseconds(tickInterval) : tickInterval;\r\n aggregationInterval = isDateArgAxis ? dateUtils.dateToMilliseconds(aggregationInterval) : aggregationInterval;\r\n interval = aggregationInterval < tickInterval ? aggregationInterval : tickInterval\r\n }\r\n interval = null === argumentAxis || void 0 === argumentAxis ? void 0 : argumentAxis.getTranslator().getInterval(interval);\r\n var barsArea = barGroupWidth ? interval > barGroupWidth ? barGroupWidth : interval : interval * (1 - validateBarGroupPadding(options.barGroupPadding));\r\n series.forEach((function(s, i) {\r\n var stackName = getStackName(s) || i.toString();\r\n var argument;\r\n for (argument in s.pointsByArgument) {\r\n if (-1 === allArguments.indexOf(argument.valueOf())) {\r\n allArguments.push(argument.valueOf())\r\n }\r\n }\r\n if (-1 === commonStacks.indexOf(stackName)) {\r\n commonStacks.push(stackName);\r\n seriesInStacks[stackName] = []\r\n }\r\n seriesInStacks[stackName].push(s)\r\n }));\r\n allArguments.forEach((function(arg) {\r\n var currentStacks = commonStacks.reduce((stacks, stack) => {\r\n if (isStackExist(seriesInStacks[stack], arg)) {\r\n stacks.push(stack)\r\n }\r\n return stacks\r\n }, []);\r\n var parameters = calculateParams(barsArea, currentStacks.length);\r\n commonStacks.forEach(stack => {\r\n correctStackCoordinates(seriesInStacks[stack], currentStacks, arg, stack, parameters, barsArea, seriesStackIndexCallback)\r\n })\r\n }))\r\n}\r\n\r\nfunction calculateParams(barsArea, count, percentWidth, fixedBarWidth) {\r\n var spacing;\r\n var width;\r\n if (fixedBarWidth) {\r\n width = _min(fixedBarWidth, barsArea / count);\r\n spacing = count > 1 ? round((barsArea - round(width) * count) / (count - 1)) : 0\r\n } else if (isDefined(percentWidth)) {\r\n width = barsArea * percentWidth / count;\r\n spacing = count > 1 ? round((barsArea - barsArea * percentWidth) / (count - 1)) : 0\r\n } else {\r\n spacing = round(barsArea / count * .2);\r\n width = (barsArea - spacing * (count - 1)) / count\r\n }\r\n return {\r\n width: width > 1 ? round(width) : 1,\r\n spacing: spacing,\r\n middleIndex: count / 2,\r\n rawWidth: width\r\n }\r\n}\r\n\r\nfunction getOffset(stackIndex, parameters) {\r\n var width = parameters.rawWidth < 1 ? parameters.rawWidth : parameters.width;\r\n return (stackIndex - parameters.middleIndex + .5) * width - (parameters.middleIndex - stackIndex - .5) * parameters.spacing\r\n}\r\n\r\nfunction correctPointCoordinates(points, width, offset) {\r\n _each(points, (function(_, point) {\r\n point.correctCoordinates({\r\n width: width,\r\n offset: offset\r\n })\r\n }))\r\n}\r\n\r\nfunction getValueType(value) {\r\n return value >= 0 ? \"positive\" : \"negative\"\r\n}\r\n\r\nfunction getVisibleSeries(that) {\r\n return that.series.filter((function(s) {\r\n return s.isVisible()\r\n }))\r\n}\r\n\r\nfunction getAbsStackSumByArg(stackKeepers, stackName, argument) {\r\n var positiveStackValue = (stackKeepers.positive[stackName] || {})[argument] || 0;\r\n var negativeStackValue = -(stackKeepers.negative[stackName] || {})[argument] || 0;\r\n return positiveStackValue + negativeStackValue\r\n}\r\n\r\nfunction getStackSumByArg(stackKeepers, stackName, argument) {\r\n var positiveStackValue = (stackKeepers.positive[stackName] || {})[argument] || 0;\r\n var negativeStackValue = (stackKeepers.negative[stackName] || {})[argument] || 0;\r\n return positiveStackValue + negativeStackValue\r\n}\r\n\r\nfunction getSeriesStackIndexCallback(inverted) {\r\n if (!inverted) {\r\n return function(index) {\r\n return index\r\n }\r\n } else {\r\n return function(index, stackCount) {\r\n return stackCount - index - 1\r\n }\r\n }\r\n}\r\n\r\nfunction isInverted(series) {\r\n return series[0] && series[0].getArgumentAxis().getTranslator().isInverted()\r\n}\r\n\r\nfunction adjustBarSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n adjustBarSeriesDimensionsCore(series, this._options, getSeriesStackIndexCallback(isInverted(series)))\r\n}\r\n\r\nfunction getFirstValueSign(series) {\r\n var points = series.getPoints();\r\n var value;\r\n for (var i = 0; i < points.length; i++) {\r\n var point = points[i];\r\n value = point.initialValue && point.initialValue.valueOf();\r\n if (abs(value) > 0) {\r\n break\r\n }\r\n }\r\n return sign(value)\r\n}\r\n\r\nfunction adjustStackedSeriesValues() {\r\n var negativesAsZeroes = this._options.negativesAsZeroes;\r\n var series = getVisibleSeries(this);\r\n var stackKeepers = {\r\n positive: {},\r\n negative: {}\r\n };\r\n var holesStack = {\r\n left: {},\r\n right: {}\r\n };\r\n var lastSeriesInPositiveStack = {};\r\n var lastSeriesInNegativeStack = {};\r\n series.forEach((function(singleSeries) {\r\n var stackName = getStackName(singleSeries);\r\n var hole = false;\r\n var stack = getFirstValueSign(singleSeries) < 0 ? lastSeriesInNegativeStack : lastSeriesInPositiveStack;\r\n singleSeries._prevSeries = stack[stackName];\r\n stack[stackName] = singleSeries;\r\n singleSeries.holes = extend(true, {}, holesStack);\r\n singleSeries.getPoints().forEach((function(point, index, points) {\r\n var value = point.initialValue && point.initialValue.valueOf();\r\n var argument = point.argument.valueOf();\r\n var stacks = value >= 0 ? stackKeepers.positive : stackKeepers.negative;\r\n var isNotBarSeries = \"bar\" !== singleSeries.type;\r\n if (negativesAsZeroes && value < 0) {\r\n stacks = stackKeepers.positive;\r\n value = 0;\r\n point.resetValue()\r\n }\r\n stacks[stackName] = stacks[stackName] || {};\r\n var currentStack = stacks[stackName];\r\n if (currentStack[argument]) {\r\n if (isNotBarSeries) {\r\n point.correctValue(currentStack[argument])\r\n }\r\n currentStack[argument] += value\r\n } else {\r\n currentStack[argument] = value;\r\n if (isNotBarSeries) {\r\n point.resetCorrection()\r\n }\r\n }\r\n if (!point.hasValue()) {\r\n var prevPoint = points[index - 1];\r\n if (!hole && prevPoint && prevPoint.hasValue()) {\r\n argument = prevPoint.argument.valueOf();\r\n prevPoint._skipSetRightHole = true;\r\n holesStack.right[argument] = (holesStack.right[argument] || 0) + (prevPoint.value.valueOf() - (isFinite(prevPoint.minValue) ? prevPoint.minValue.valueOf() : 0))\r\n }\r\n hole = true\r\n } else if (hole) {\r\n hole = false;\r\n holesStack.left[argument] = (holesStack.left[argument] || 0) + (point.value.valueOf() - (isFinite(point.minValue) ? point.minValue.valueOf() : 0));\r\n point._skipSetLeftHole = true\r\n }\r\n }))\r\n }));\r\n series.forEach((function(singleSeries) {\r\n var holes = singleSeries.holes;\r\n singleSeries.getPoints().forEach((function(point) {\r\n var argument = point.argument.valueOf();\r\n point.resetHoles();\r\n !point._skipSetLeftHole && point.setHole(holes.left[argument] || holesStack.left[argument] && 0, \"left\");\r\n !point._skipSetRightHole && point.setHole(holes.right[argument] || holesStack.right[argument] && 0, \"right\");\r\n point._skipSetLeftHole = null;\r\n point._skipSetRightHole = null\r\n }))\r\n }));\r\n this._stackKeepers = stackKeepers;\r\n series.forEach((function(singleSeries) {\r\n singleSeries.getPoints().forEach((function(point) {\r\n var argument = point.argument.valueOf();\r\n var stackName = getStackName(singleSeries);\r\n var absTotal = getAbsStackSumByArg(stackKeepers, stackName, argument);\r\n var total = getStackSumByArg(stackKeepers, stackName, argument);\r\n point.setPercentValue(absTotal, total, holesStack.left[argument], holesStack.right[argument])\r\n }))\r\n }))\r\n}\r\n\r\nfunction updateStackedSeriesValues() {\r\n var that = this;\r\n var series = getVisibleSeries(that);\r\n var stack = that._stackKeepers;\r\n var stackKeepers = {\r\n positive: {},\r\n negative: {}\r\n };\r\n _each(series, (function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n var stackName = singleSeries.getStackName();\r\n _each(singleSeries.getPoints(), (function(index, point) {\r\n if (!point.hasValue()) {\r\n return\r\n }\r\n var value = point.initialValue && point.initialValue.valueOf();\r\n var argument = point.argument.valueOf();\r\n if (that.fullStacked) {\r\n value = value / getAbsStackSumByArg(stack, stackName, argument) || 0\r\n }\r\n var updateValue = valueAxisTranslator.checkMinBarSize(value, minShownBusinessValue, point.value);\r\n var valueType = getValueType(updateValue);\r\n var currentStack = stackKeepers[valueType][stackName] = stackKeepers[valueType][stackName] || {};\r\n if (currentStack[argument]) {\r\n point.minValue = currentStack[argument];\r\n currentStack[argument] += updateValue\r\n } else {\r\n currentStack[argument] = updateValue\r\n }\r\n point.value = currentStack[argument]\r\n }))\r\n }));\r\n if (that.fullStacked) {\r\n updateFullStackedSeriesValues(series, stackKeepers)\r\n }\r\n}\r\n\r\nfunction updateFullStackedSeriesValues(series, stackKeepers) {\r\n _each(series, (function(_, singleSeries) {\r\n var stackName = singleSeries.getStackName ? singleSeries.getStackName() : \"default\";\r\n _each(singleSeries.getPoints(), (function(index, point) {\r\n var stackSum = getAbsStackSumByArg(stackKeepers, stackName, point.argument.valueOf());\r\n if (0 !== stackSum) {\r\n point.value = point.value / stackSum;\r\n if (isNumeric(point.minValue)) {\r\n point.minValue = point.minValue / stackSum\r\n }\r\n }\r\n }))\r\n }))\r\n}\r\n\r\nfunction updateBarSeriesValues() {\r\n _each(this.series, (function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n if (minShownBusinessValue) {\r\n _each(singleSeries.getPoints(), (function(index, point) {\r\n if (point.hasValue()) {\r\n point.value = valueAxisTranslator.checkMinBarSize(point.initialValue, minShownBusinessValue)\r\n }\r\n }))\r\n }\r\n }))\r\n}\r\n\r\nfunction adjustCandlestickSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n adjustBarSeriesDimensionsCore(series, {\r\n barGroupPadding: .3\r\n }, getSeriesStackIndexCallback(isInverted(series)))\r\n}\r\n\r\nfunction adjustBubbleSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n if (!series.length) {\r\n return\r\n }\r\n var options = this._options;\r\n var visibleAreaX = series[0].getArgumentAxis().getVisibleArea();\r\n var visibleAreaY = series[0].getValueAxis().getVisibleArea();\r\n var min = _min(visibleAreaX[1] - visibleAreaX[0], visibleAreaY[1] - visibleAreaY[0]);\r\n var minBubbleArea = pow(options.minBubbleSize, 2);\r\n var maxBubbleArea = pow(min * options.maxBubbleSize, 2);\r\n var equalBubbleSize = (min * options.maxBubbleSize + options.minBubbleSize) / 2;\r\n var minPointSize = 1 / 0;\r\n var maxPointSize = -1 / 0;\r\n var pointSize;\r\n var bubbleArea;\r\n var sizeProportion;\r\n _each(series, (function(_, seriesItem) {\r\n _each(seriesItem.getPoints(), (function(_, point) {\r\n maxPointSize = maxPointSize > point.size ? maxPointSize : point.size;\r\n minPointSize = minPointSize < point.size ? minPointSize : point.size\r\n }))\r\n }));\r\n var sizeDispersion = maxPointSize - minPointSize;\r\n var areaDispersion = abs(maxBubbleArea - minBubbleArea);\r\n _each(series, (function(_, seriesItem) {\r\n _each(seriesItem.getPoints(), (function(_, point) {\r\n if (maxPointSize === minPointSize) {\r\n pointSize = round(equalBubbleSize)\r\n } else {\r\n sizeProportion = abs(point.size - minPointSize) / sizeDispersion;\r\n bubbleArea = areaDispersion * sizeProportion + minBubbleArea;\r\n pointSize = round(sqrt(bubbleArea))\r\n }\r\n point.correctCoordinates(pointSize)\r\n }))\r\n }))\r\n}\r\nexport function SeriesFamily(options) {\r\n this.type = _normalizeEnum(options.type);\r\n this.pane = options.pane;\r\n this.series = [];\r\n this.updateOptions(options);\r\n switch (this.type) {\r\n case \"bar\":\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.updateSeriesValues = updateBarSeriesValues;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"rangebar\":\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n break;\r\n case \"fullstackedbar\":\r\n this.fullStacked = true;\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n this.updateSeriesValues = updateStackedSeriesValues;\r\n break;\r\n case \"stackedbar\":\r\n this.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n this.updateSeriesValues = updateStackedSeriesValues;\r\n break;\r\n case \"fullstackedarea\":\r\n case \"fullstackedline\":\r\n case \"fullstackedspline\":\r\n case \"fullstackedsplinearea\":\r\n this.fullStacked = true;\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"stackedarea\":\r\n case \"stackedsplinearea\":\r\n case \"stackedline\":\r\n case \"stackedspline\":\r\n this.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"candlestick\":\r\n case \"stock\":\r\n this.adjustSeriesDimensions = adjustCandlestickSeriesDimensions;\r\n break;\r\n case \"bubble\":\r\n this.adjustSeriesDimensions = adjustBubbleSeriesDimensions\r\n }\r\n}\r\nSeriesFamily.prototype = {\r\n constructor: SeriesFamily,\r\n adjustSeriesDimensions: _noop,\r\n adjustSeriesValues: _noop,\r\n updateSeriesValues: _noop,\r\n updateOptions: function(options) {\r\n this._options = options\r\n },\r\n dispose: function() {\r\n this.series = null\r\n },\r\n add: function(series) {\r\n var type = this.type;\r\n this.series = _map(series, singleSeries => singleSeries.type === type ? singleSeries : null)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/title.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n patchFontOptions as _patchFontOptions,\r\n enumParser\r\n} from \"./utils\";\r\nimport {\r\n LayoutElement\r\n} from \"./layout_element\";\r\nvar _Number = Number;\r\nvar parseHorizontalAlignment = enumParser([\"left\", \"center\", \"right\"]);\r\nvar parseVerticalAlignment = enumParser([\"top\", \"bottom\"]);\r\nvar DEFAULT_MARGIN = 10;\r\n\r\nfunction hasText(text) {\r\n return !!(text && String(text).length > 0)\r\n}\r\n\r\nfunction processTitleLength(elem, text, width, options, placeholderSize) {\r\n if (elem.attr({\r\n text: text\r\n }).setMaxSize(width, placeholderSize, options).textChanged) {\r\n elem.setTitle(text)\r\n }\r\n}\r\n\r\nfunction pickMarginValue(value) {\r\n return value >= 0 ? _Number(value) : DEFAULT_MARGIN\r\n}\r\n\r\nfunction validateMargin(margin) {\r\n var result;\r\n if (margin >= 0) {\r\n result = {\r\n left: _Number(margin),\r\n top: _Number(margin),\r\n right: _Number(margin),\r\n bottom: _Number(margin)\r\n }\r\n } else {\r\n margin = margin || {};\r\n result = {\r\n left: pickMarginValue(margin.left),\r\n top: pickMarginValue(margin.top),\r\n right: pickMarginValue(margin.right),\r\n bottom: pickMarginValue(margin.bottom)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction checkRect(rect, boundingRect) {\r\n return rect[2] - rect[0] < boundingRect.width || rect[3] - rect[1] < boundingRect.height\r\n}\r\nexport var Title = function(params) {\r\n this._params = params;\r\n this._group = params.renderer.g().attr({\r\n class: params.cssClass\r\n }).linkOn(params.root || params.renderer.root, \"title\");\r\n this._hasText = false\r\n};\r\nextend(Title.prototype, LayoutElement.prototype, {\r\n dispose: function() {\r\n this._group.linkRemove();\r\n this._group.linkOff();\r\n if (this._titleElement) {\r\n this._clipRect.dispose();\r\n this._titleElement = this._subtitleElement = this._clipRect = null\r\n }\r\n this._params = this._group = this._options = null\r\n },\r\n _updateOptions: function(options) {\r\n this._options = options;\r\n this._options.horizontalAlignment = parseHorizontalAlignment(options.horizontalAlignment, \"center\");\r\n this._options.verticalAlignment = parseVerticalAlignment(options.verticalAlignment, \"top\");\r\n this._options.margin = validateMargin(options.margin)\r\n },\r\n _updateStructure: function() {\r\n var renderer = this._params.renderer;\r\n var group = this._group;\r\n var options = this._options;\r\n var align = options.horizontalAlignment;\r\n if (!this._titleElement) {\r\n this._titleElement = renderer.text().append(group);\r\n this._subtitleElement = renderer.text();\r\n this._clipRect = renderer.clipRect();\r\n group.attr({\r\n \"clip-path\": this._clipRect.id\r\n })\r\n }\r\n this._titleElement.attr({\r\n align: align,\r\n class: options.cssClass\r\n });\r\n this._subtitleElement.attr({\r\n align: align,\r\n class: options.subtitle.cssClass\r\n });\r\n group.linkAppend();\r\n hasText(options.subtitle.text) ? this._subtitleElement.append(group) : this._subtitleElement.remove()\r\n },\r\n _updateTexts: function() {\r\n var options = this._options;\r\n var subtitleOptions = options.subtitle;\r\n var titleElement = this._titleElement;\r\n var subtitleElement = this._subtitleElement;\r\n var titleBox;\r\n titleElement.attr({\r\n text: \"A\",\r\n y: 0\r\n }).css(_patchFontOptions(options.font));\r\n titleBox = titleElement.getBBox();\r\n this._baseLineCorrection = titleBox.height + titleBox.y;\r\n titleElement.attr({\r\n text: options.text\r\n });\r\n titleBox = titleElement.getBBox();\r\n var y = -titleBox.y;\r\n titleElement.attr({\r\n y: y\r\n });\r\n if (hasText(subtitleOptions.text)) {\r\n subtitleElement.attr({\r\n text: subtitleOptions.text,\r\n y: 0\r\n }).css(_patchFontOptions(subtitleOptions.font))\r\n }\r\n },\r\n _shiftSubtitle() {\r\n var titleBox = this._titleElement.getBBox();\r\n var element = this._subtitleElement;\r\n var offset = this._options.subtitle.offset;\r\n element.move(0, titleBox.y + titleBox.height - element.getBBox().y - offset)\r\n },\r\n _updateBoundingRectAlignment: function() {\r\n var boundingRect = this._boundingRect;\r\n var options = this._options;\r\n boundingRect.verticalAlignment = options.verticalAlignment;\r\n boundingRect.horizontalAlignment = options.horizontalAlignment;\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\";\r\n boundingRect.position = {\r\n horizontal: options.horizontalAlignment,\r\n vertical: options.verticalAlignment\r\n }\r\n },\r\n hasText: function() {\r\n return this._hasText\r\n },\r\n update: function(themeOptions, userOptions) {\r\n var options = extend(true, {}, themeOptions, processTitleOptions(userOptions));\r\n var _hasText = hasText(options.text);\r\n var isLayoutChanged = _hasText || _hasText !== this._hasText;\r\n this._baseLineCorrection = 0;\r\n this._updateOptions(options);\r\n this._boundingRect = {};\r\n if (_hasText) {\r\n this._updateStructure();\r\n this._updateTexts()\r\n } else {\r\n this._group.linkRemove()\r\n }\r\n this._updateBoundingRect();\r\n this._updateBoundingRectAlignment();\r\n this._hasText = _hasText;\r\n return isLayoutChanged\r\n },\r\n draw: function(width, height) {\r\n if (this._hasText) {\r\n this._group.linkAppend();\r\n this._correctTitleLength(width);\r\n if (this._group.getBBox().height > height) {\r\n this.freeSpace()\r\n }\r\n }\r\n return this\r\n },\r\n _correctTitleLength: function(width) {\r\n var options = this._options;\r\n var margin = options.margin;\r\n var maxWidth = width - margin.left - margin.right;\r\n var placeholderSize = options.placeholderSize;\r\n processTitleLength(this._titleElement, options.text, maxWidth, options, placeholderSize);\r\n if (this._subtitleElement) {\r\n if (_Number(placeholderSize) > 0) {\r\n placeholderSize -= this._titleElement.getBBox().height\r\n }\r\n processTitleLength(this._subtitleElement, options.subtitle.text, maxWidth, options.subtitle, placeholderSize);\r\n this._shiftSubtitle()\r\n }\r\n this._updateBoundingRect();\r\n var {\r\n x: x,\r\n y: y,\r\n height: height\r\n } = this.getCorrectedLayoutOptions();\r\n this._clipRect.attr({\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n })\r\n },\r\n getLayoutOptions: function() {\r\n return this._boundingRect || null\r\n },\r\n shift: function(x, y) {\r\n var box = this.getLayoutOptions();\r\n this._group.move(x - box.x, y - box.y);\r\n return this\r\n },\r\n _updateBoundingRect: function() {\r\n var options = this._options;\r\n var margin = options.margin;\r\n var boundingRect = this._boundingRect;\r\n var box = this._hasText ? this._group.getBBox() : {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0,\r\n isEmpty: true\r\n };\r\n if (!box.isEmpty) {\r\n box.height += margin.top + margin.bottom - this._baseLineCorrection;\r\n box.width += margin.left + margin.right;\r\n box.x -= margin.left;\r\n box.y += this._baseLineCorrection - margin.top\r\n }\r\n if (options.placeholderSize > 0) {\r\n box.height = options.placeholderSize\r\n }\r\n boundingRect.height = box.height;\r\n boundingRect.width = box.width;\r\n boundingRect.x = box.x;\r\n boundingRect.y = box.y\r\n },\r\n getCorrectedLayoutOptions() {\r\n var srcBox = this.getLayoutOptions();\r\n var correction = this._baseLineCorrection;\r\n return extend({}, srcBox, {\r\n y: srcBox.y - correction,\r\n height: srcBox.height + correction\r\n })\r\n },\r\n layoutOptions: function() {\r\n if (!this._hasText) {\r\n return null\r\n }\r\n return {\r\n horizontalAlignment: this._boundingRect.horizontalAlignment,\r\n verticalAlignment: this._boundingRect.verticalAlignment,\r\n priority: 0\r\n }\r\n },\r\n measure: function(size) {\r\n this.draw(size[0], size[1]);\r\n return [this._boundingRect.width, this._boundingRect.height]\r\n },\r\n move: function(rect, fitRect) {\r\n var boundingRect = this._boundingRect;\r\n if (checkRect(rect, boundingRect)) {\r\n this.shift(fitRect[0], fitRect[1])\r\n } else {\r\n this.shift(Math.round(rect[0]), Math.round(rect[1]))\r\n }\r\n },\r\n freeSpace: function() {\r\n this._params.incidentOccurred(\"W2103\");\r\n this._group.linkRemove();\r\n this._boundingRect.width = this._boundingRect.height = 0\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n changeLink: function(root) {\r\n this._group.linkRemove();\r\n this._group.linkOn(root, \"title\")\r\n }\r\n});\r\n\r\nfunction processTitleOptions(options) {\r\n var newOptions = _isString(options) ? {\r\n text: options\r\n } : options || {};\r\n newOptions.subtitle = _isString(newOptions.subtitle) ? {\r\n text: newOptions.subtitle\r\n } : newOptions.subtitle || {};\r\n return newOptions\r\n}\r\nexport var plugin = {\r\n name: \"title\",\r\n init: function() {\r\n this._title = new Title({\r\n renderer: this._renderer,\r\n cssClass: this._rootClassPrefix + \"-title\",\r\n incidentOccurred: this._incidentOccurred\r\n });\r\n this._layout.add(this._title)\r\n },\r\n dispose: function() {\r\n this._title.dispose();\r\n this._title = null\r\n },\r\n customize: function(constructor) {\r\n constructor.addChange({\r\n code: \"TITLE\",\r\n handler: function() {\r\n if (this._title.update(this._themeManager.theme(\"title\"), this.option(\"title\"))) {\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n isThemeDependent: true,\r\n option: \"title\",\r\n isOptionChange: true\r\n })\r\n },\r\n fontFields: [\"title.font\", \"title.subtitle.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/tooltip.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n replaceWith\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Renderer\r\n} from \"./renderers/renderer\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n patchFontOptions,\r\n normalizeEnum\r\n} from \"./utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n Plaque\r\n} from \"./plaque\";\r\nvar format = formatHelper.format;\r\nvar mathCeil = Math.ceil;\r\nvar mathMax = Math.max;\r\nvar mathMin = Math.min;\r\nvar window = getWindow();\r\nvar DEFAULT_HTML_GROUP_WIDTH = 3e3;\r\n\r\nfunction hideElement($element) {\r\n $element.css({\r\n left: \"-9999px\"\r\n }).detach()\r\n}\r\n\r\nfunction getSpecialFormatOptions(options, specialFormat) {\r\n var result = options;\r\n switch (specialFormat) {\r\n case \"argument\":\r\n result = {\r\n format: options.argumentFormat\r\n };\r\n break;\r\n case \"percent\":\r\n result = {\r\n format: {\r\n type: \"percent\",\r\n precision: options.format && options.format.percentPrecision\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createTextHtml() {\r\n return $(\"
    \").css({\r\n position: \"relative\",\r\n display: \"inline-block\",\r\n padding: 0,\r\n margin: 0,\r\n border: \"0px solid transparent\"\r\n })\r\n}\r\n\r\nfunction removeElements(elements) {\r\n elements.forEach(el => el.remove())\r\n}\r\nexport var Tooltip = function(params) {\r\n this._eventTrigger = params.eventTrigger;\r\n this._widgetRoot = params.widgetRoot;\r\n this._widget = params.widget;\r\n this._textHtmlContainers = [];\r\n this._wrapper = $(\"
    \").css({\r\n position: \"absolute\",\r\n overflow: \"hidden\",\r\n pointerEvents: \"none\"\r\n }).addClass(params.cssClass);\r\n var renderer = this._renderer = new Renderer({\r\n pathModified: params.pathModified,\r\n container: this._wrapper[0]\r\n });\r\n var root = renderer.root;\r\n root.attr({\r\n \"pointer-events\": \"none\"\r\n });\r\n this._text = renderer.text(void 0, 0, 0);\r\n this._textGroupHtml = $(\"
    \").css({\r\n position: \"absolute\",\r\n padding: 0,\r\n margin: 0,\r\n border: \"0px solid transparent\"\r\n }).appendTo(this._wrapper);\r\n this._textHtml = createTextHtml().appendTo(this._textGroupHtml)\r\n};\r\nTooltip.prototype = {\r\n constructor: Tooltip,\r\n dispose: function() {\r\n this._wrapper.remove();\r\n this._renderer.dispose();\r\n this._options = this._widgetRoot = null\r\n },\r\n _getContainer: function() {\r\n var options = this._options;\r\n var container = $(this._widgetRoot).closest(options.container);\r\n if (0 === container.length) {\r\n container = $(options.container)\r\n }\r\n return (container.length ? container : $(\"body\")).get(0)\r\n },\r\n setTemplate(contentTemplate) {\r\n this._template = contentTemplate ? this._widget._getTemplate(contentTemplate) : null\r\n },\r\n setOptions: function(options) {\r\n options = options || {};\r\n var that = this;\r\n that._options = options;\r\n that._textFontStyles = patchFontOptions(options.font);\r\n that._textFontStyles.color = that._textFontStyles.fill;\r\n that._wrapper.css({\r\n zIndex: options.zIndex\r\n });\r\n that._customizeTooltip = options.customizeTooltip;\r\n var textGroupHtml = that._textGroupHtml;\r\n if (this.plaque) {\r\n this.plaque.clear()\r\n }\r\n this.setTemplate(options.contentTemplate);\r\n var pointerEvents = options.interactive ? \"auto\" : \"none\";\r\n if (options.interactive) {\r\n this._renderer.root.css({\r\n \"-ms-user-select\": \"auto\",\r\n \"-moz-user-select\": \"auto\",\r\n \"-webkit-user-select\": \"auto\"\r\n })\r\n }\r\n this.plaque = new Plaque({\r\n opacity: that._options.opacity,\r\n color: that._options.color,\r\n border: that._options.border,\r\n paddingLeftRight: that._options.paddingLeftRight,\r\n paddingTopBottom: that._options.paddingTopBottom,\r\n arrowLength: that._options.arrowLength,\r\n arrowWidth: 20,\r\n shadow: that._options.shadow,\r\n cornerRadius: that._options.cornerRadius\r\n }, that, that._renderer.root, _ref => {\r\n var {\r\n group: group,\r\n onRender: onRender,\r\n eventData: eventData,\r\n isMoving: isMoving,\r\n templateCallback: templateCallback = (() => {})\r\n } = _ref;\r\n var state = that._state;\r\n if (!isMoving) {\r\n var template = that._template;\r\n var useTemplate = template && !state.formatObject.skipTemplate;\r\n if (state.html || useTemplate) {\r\n textGroupHtml.css({\r\n color: state.textColor,\r\n width: DEFAULT_HTML_GROUP_WIDTH,\r\n pointerEvents: pointerEvents\r\n });\r\n if (useTemplate) {\r\n var htmlContainers = that._textHtmlContainers;\r\n var containerToTemplateRender = createTextHtml();\r\n htmlContainers.push(containerToTemplateRender);\r\n template.render({\r\n model: state.formatObject,\r\n container: containerToTemplateRender,\r\n onRendered: () => {\r\n removeElements(htmlContainers.splice(0, htmlContainers.length - 1));\r\n var containerWithContent = htmlContainers[0];\r\n replaceWith(that._textHtml, containerWithContent);\r\n that._textHtml = containerWithContent;\r\n state.html = containerWithContent.html();\r\n if (0 === getWidth(containerWithContent) && 0 === getHeight(containerWithContent)) {\r\n this.plaque.clear();\r\n templateCallback(false);\r\n return\r\n }\r\n onRender();\r\n that._riseEvents(eventData);\r\n that._moveWrapper();\r\n that.plaque.customizeCloud({\r\n fill: state.color,\r\n stroke: state.borderColor,\r\n \"pointer-events\": pointerEvents\r\n });\r\n templateCallback(true);\r\n that._textHtmlContainers = []\r\n }\r\n });\r\n return\r\n } else {\r\n that._text.attr({\r\n text: \"\"\r\n });\r\n that._textHtml.html(state.html)\r\n }\r\n } else {\r\n that._text.css({\r\n fill: state.textColor\r\n }).attr({\r\n text: state.text,\r\n class: options.cssClass,\r\n \"pointer-events\": pointerEvents\r\n }).append(group.attr({\r\n align: options.textAlignment\r\n }))\r\n }\r\n that._riseEvents(eventData);\r\n that.plaque.customizeCloud({\r\n fill: state.color,\r\n stroke: state.borderColor,\r\n \"pointer-events\": pointerEvents\r\n })\r\n }\r\n onRender();\r\n that._moveWrapper();\r\n return true\r\n }, true, (tooltip, g) => {\r\n var state = tooltip._state;\r\n if (state.html) {\r\n var bBox;\r\n var getComputedStyle = window.getComputedStyle;\r\n if (getComputedStyle) {\r\n bBox = getComputedStyle(that._textHtml.get(0));\r\n bBox = {\r\n x: 0,\r\n y: 0,\r\n width: mathCeil(parseFloat(bBox.width)),\r\n height: mathCeil(parseFloat(bBox.height))\r\n }\r\n } else {\r\n bBox = that._textHtml.get(0).getBoundingClientRect();\r\n bBox = {\r\n x: 0,\r\n y: 0,\r\n width: mathCeil(bBox.width ? bBox.width : bBox.right - bBox.left),\r\n height: mathCeil(bBox.height ? bBox.height : bBox.bottom - bBox.top)\r\n }\r\n }\r\n return bBox\r\n }\r\n return g.getBBox()\r\n }, (tooltip, g, x, y) => {\r\n var state = tooltip._state;\r\n if (state.html) {\r\n that._textGroupHtml.css({\r\n left: x,\r\n top: y\r\n })\r\n } else {\r\n g.move(x, y)\r\n }\r\n });\r\n return that\r\n },\r\n _riseEvents: function(eventData) {\r\n this._eventData && this._eventTrigger(\"tooltipHidden\", this._eventData);\r\n this._eventData = eventData;\r\n this._eventTrigger(\"tooltipShown\", this._eventData)\r\n },\r\n setRendererOptions: function(options) {\r\n this._renderer.setOptions(options);\r\n this._textGroupHtml.css({\r\n direction: options.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n update: function(options) {\r\n this.setOptions(options);\r\n hideElement(this._wrapper);\r\n var normalizedCSS = {};\r\n for (var name in this._textFontStyles) {\r\n normalizedCSS[camelize(name)] = this._textFontStyles[name]\r\n }\r\n this._textGroupHtml.css(normalizedCSS);\r\n this._text.css(this._textFontStyles);\r\n this._eventData = null;\r\n return this\r\n },\r\n _prepare: function(formatObject, state) {\r\n var customizeTooltip = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this._customizeTooltip;\r\n var options = this._options;\r\n var customize = {};\r\n if (isFunction(customizeTooltip)) {\r\n customize = customizeTooltip.call(formatObject, formatObject);\r\n customize = isPlainObject(customize) ? customize : {};\r\n if (\"text\" in customize) {\r\n state.text = isDefined(customize.text) ? String(customize.text) : \"\"\r\n }\r\n if (\"html\" in customize) {\r\n state.html = isDefined(customize.html) ? String(customize.html) : \"\"\r\n }\r\n }\r\n if (!(\"text\" in state) && !(\"html\" in state)) {\r\n state.text = formatObject.valueText || formatObject.description || \"\"\r\n }\r\n state.color = customize.color || options.color;\r\n state.borderColor = customize.borderColor || (options.border || {}).color;\r\n state.textColor = customize.fontColor || (this._textFontStyles || {}).color;\r\n return !!state.text || !!state.html || !!this._template\r\n },\r\n show: function(formatObject, params, eventData, customizeTooltip, templateCallback) {\r\n if (this._options.forceEvents) {\r\n eventData.x = params.x;\r\n eventData.y = params.y - params.offset;\r\n this._riseEvents(eventData);\r\n return true\r\n }\r\n var state = {\r\n formatObject: formatObject,\r\n eventData: eventData,\r\n templateCallback: templateCallback\r\n };\r\n if (!this._prepare(formatObject, state, customizeTooltip)) {\r\n return false\r\n }\r\n this._state = state;\r\n this._wrapper.appendTo(this._getContainer());\r\n this._clear();\r\n var parameters = extend({}, this._options, {\r\n canvas: this._getCanvas()\r\n }, state, {\r\n x: params.x,\r\n y: params.y,\r\n offset: params.offset\r\n });\r\n return this.plaque.clear().draw(parameters)\r\n },\r\n isCursorOnTooltip: function(x, y) {\r\n if (this._options.interactive) {\r\n var box = this.plaque.getBBox();\r\n return x > box.x && x < box.x + box.width && y > box.y && y < box.y + box.height\r\n }\r\n return false\r\n },\r\n hide: function(isPointerOut) {\r\n hideElement(this._wrapper);\r\n if (this._eventData) {\r\n this._eventTrigger(\"tooltipHidden\", this._options.forceEvents ? extend({\r\n isPointerOut: isPointerOut\r\n }, this._eventData) : this._eventData);\r\n this._clear();\r\n this._eventData = null\r\n }\r\n },\r\n _clear() {\r\n this._textHtml.empty()\r\n },\r\n move: function(x, y, offset) {\r\n this.plaque.draw({\r\n x: x,\r\n y: y,\r\n offset: offset,\r\n canvas: this._getCanvas(),\r\n isMoving: true\r\n })\r\n },\r\n _moveWrapper: function() {\r\n var plaqueBBox = this.plaque.getBBox();\r\n this._renderer.resize(plaqueBBox.width, plaqueBBox.height);\r\n var offset = this._wrapper.css({\r\n left: 0,\r\n top: 0\r\n }).offset();\r\n var left = plaqueBBox.x;\r\n var top = plaqueBBox.y;\r\n this._wrapper.css({\r\n left: left - offset.left,\r\n top: top - offset.top\r\n });\r\n this.plaque.moveRoot(-left, -top);\r\n if (this._state.html) {\r\n this._textHtml.css({\r\n left: -left,\r\n top: -top\r\n });\r\n this._textGroupHtml.css({\r\n width: mathCeil(getWidth(this._textHtml))\r\n })\r\n }\r\n },\r\n formatValue: function(value, _specialFormat) {\r\n var options = _specialFormat ? getSpecialFormatOptions(this._options, _specialFormat) : this._options;\r\n return format(value, options.format)\r\n },\r\n getOptions() {\r\n return this._options\r\n },\r\n getLocation: function() {\r\n return normalizeEnum(this._options.location)\r\n },\r\n isEnabled: function() {\r\n return !!this._options.enabled || !!this._options.forceEvents\r\n },\r\n isShared: function() {\r\n return !!this._options.shared\r\n },\r\n _getCanvas: function() {\r\n var container = this._getContainer();\r\n var containerBox = container.getBoundingClientRect();\r\n var html = domAdapter.getDocumentElement();\r\n var document = domAdapter.getDocument();\r\n var left = window.pageXOffset || html.scrollLeft || 0;\r\n var top = window.pageYOffset || html.scrollTop || 0;\r\n var box = {\r\n left: left,\r\n top: top,\r\n width: mathMax(html.clientWidth, document.body.clientWidth) + left,\r\n height: mathMax(document.body.scrollHeight, html.scrollHeight, document.body.offsetHeight, html.offsetHeight, document.body.clientHeight, html.clientHeight),\r\n right: 0,\r\n bottom: 0\r\n };\r\n if (container !== domAdapter.getBody()) {\r\n left = mathMax(box.left, box.left + containerBox.left);\r\n top = mathMax(box.top, box.top + containerBox.top);\r\n box.width = mathMin(containerBox.width, box.width) + left + box.left;\r\n box.height = mathMin(containerBox.height, box.height) + top + box.top;\r\n box.left = left;\r\n box.top = top\r\n }\r\n return box\r\n }\r\n};\r\nexport var plugin = {\r\n name: \"tooltip\",\r\n init: function() {\r\n this._initTooltip()\r\n },\r\n dispose: function() {\r\n this._disposeTooltip()\r\n },\r\n members: {\r\n _initTooltip: function() {\r\n this._tooltip = new Tooltip({\r\n cssClass: this._rootClassPrefix + \"-tooltip\",\r\n eventTrigger: this._eventTrigger,\r\n pathModified: this.option(\"pathModified\"),\r\n widgetRoot: this.element(),\r\n widget: this\r\n })\r\n },\r\n _disposeTooltip: function() {\r\n this._tooltip.dispose();\r\n this._tooltip = null\r\n },\r\n _setTooltipRendererOptions: function() {\r\n this._tooltip.setRendererOptions(this._getRendererOptions())\r\n },\r\n _setTooltipOptions: function() {\r\n this._tooltip.update(this._getOption(\"tooltip\"))\r\n }\r\n },\r\n extenders: {\r\n _stopCurrentHandling() {\r\n this._tooltip && this._tooltip.hide()\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n proto._eventsMap.onTooltipShown = {\r\n name: \"tooltipShown\"\r\n };\r\n proto._eventsMap.onTooltipHidden = {\r\n name: \"tooltipHidden\"\r\n };\r\n constructor.addChange({\r\n code: \"TOOLTIP_RENDERER\",\r\n handler: function() {\r\n this._setTooltipRendererOptions()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true\r\n });\r\n constructor.addChange({\r\n code: \"TOOLTIP\",\r\n handler: function() {\r\n this._setTooltipOptions()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"tooltip\"\r\n })\r\n },\r\n fontFields: [\"tooltip.font\"]\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/utils.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isExponential,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n adjust,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Color from \"../../color\";\r\nvar {\r\n PI: PI,\r\n LN10: LN10,\r\n abs: abs,\r\n log: log,\r\n floor: floor,\r\n ceil: ceil,\r\n pow: pow,\r\n sqrt: sqrt,\r\n atan2: atan2\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _cos = Math.cos;\r\nvar _sin = Math.sin;\r\nvar _round = Math.round;\r\nvar dateToMilliseconds = dateUtils.dateToMilliseconds;\r\nvar MAX_PIXEL_COUNT = 1e10;\r\nvar PI_DIV_180 = PI / 180;\r\nvar _isNaN = isNaN;\r\nvar _Number = Number;\r\nvar _NaN = NaN;\r\nexport var PANE_PADDING = 10;\r\nexport var getLog = function(value, base) {\r\n if (!value) {\r\n return _NaN\r\n }\r\n return log(value) / log(base)\r\n};\r\nexport var getAdjustedLog10 = function(value) {\r\n return adjust(getLog(value, 10))\r\n};\r\nexport var raiseTo = function(power, base) {\r\n return pow(base, power)\r\n};\r\nexport var normalizeAngle = function(angle) {\r\n return (angle % 360 + 360) % 360\r\n};\r\nexport var convertAngleToRendererSpace = function(angle) {\r\n return 90 - angle\r\n};\r\nexport var degreesToRadians = function(value) {\r\n return PI * value / 180\r\n};\r\nexport var getCosAndSin = function(angle) {\r\n var angleInRadians = degreesToRadians(angle);\r\n return {\r\n cos: _cos(angleInRadians),\r\n sin: _sin(angleInRadians)\r\n }\r\n};\r\nvar DECIMAL_ORDER_THRESHOLD = 1e-14;\r\nexport var getDistance = function(x1, y1, x2, y2) {\r\n var diffX = x2 - x1;\r\n var diffY = y2 - y1;\r\n return sqrt(diffY * diffY + diffX * diffX)\r\n};\r\nexport var getDecimalOrder = function(number) {\r\n var n = abs(number);\r\n var cn;\r\n if (!_isNaN(n)) {\r\n if (n > 0) {\r\n n = log(n) / LN10;\r\n cn = ceil(n);\r\n return cn - n < DECIMAL_ORDER_THRESHOLD ? cn : floor(n)\r\n }\r\n return 0\r\n }\r\n return _NaN\r\n};\r\nexport var getAppropriateFormat = function(start, end, count) {\r\n var order = _max(getDecimalOrder(start), getDecimalOrder(end));\r\n var precision = -getDecimalOrder(abs(end - start) / count);\r\n var format;\r\n if (!_isNaN(order) && !_isNaN(precision)) {\r\n if (abs(order) <= 4) {\r\n format = \"fixedPoint\";\r\n precision < 0 && (precision = 0);\r\n precision > 4 && (precision = 4)\r\n } else {\r\n format = \"exponential\";\r\n precision += order - 1;\r\n precision > 3 && (precision = 3)\r\n }\r\n return {\r\n type: format,\r\n precision: precision\r\n }\r\n }\r\n return null\r\n};\r\nexport var roundValue = function(value, precision) {\r\n if (precision > 20) {\r\n precision = 20\r\n }\r\n if (isNumeric(value)) {\r\n if (isExponential(value)) {\r\n return _Number(value.toExponential(precision))\r\n } else {\r\n return _Number(value.toFixed(precision))\r\n }\r\n }\r\n};\r\nexport var getPower = function(value) {\r\n return value.toExponential().split(\"e\")[1]\r\n};\r\nexport function map(array, callback) {\r\n var i = 0;\r\n var len = array.length;\r\n var result = [];\r\n var value;\r\n while (i < len) {\r\n value = callback(array[i], i);\r\n if (null !== value) {\r\n result.push(value)\r\n }\r\n i++\r\n }\r\n return result\r\n}\r\n\r\nfunction selectByKeys(object, keys) {\r\n return map(keys, key => object[key] ? object[key] : null)\r\n}\r\n\r\nfunction decreaseFields(object, keys, eachDecrease, decrease) {\r\n var dec = decrease;\r\n each(keys, (_, key) => {\r\n if (object[key]) {\r\n object[key] -= eachDecrease;\r\n dec -= eachDecrease\r\n }\r\n });\r\n return dec\r\n}\r\nexport function normalizeEnum(value) {\r\n return String(value).toLowerCase()\r\n}\r\nexport function setCanvasValues(canvas) {\r\n if (canvas) {\r\n canvas.originalTop = canvas.top;\r\n canvas.originalBottom = canvas.bottom;\r\n canvas.originalLeft = canvas.left;\r\n canvas.originalRight = canvas.right\r\n }\r\n return canvas\r\n}\r\n\r\nfunction normalizeBBoxField(value) {\r\n return -MAX_PIXEL_COUNT < value && value < +MAX_PIXEL_COUNT ? value : 0\r\n}\r\nexport function normalizeBBox(bBox) {\r\n var xl = normalizeBBoxField(floor(bBox.x));\r\n var yt = normalizeBBoxField(floor(bBox.y));\r\n var xr = normalizeBBoxField(ceil(bBox.width + bBox.x));\r\n var yb = normalizeBBoxField(ceil(bBox.height + bBox.y));\r\n var result = {\r\n x: xl,\r\n y: yt,\r\n width: xr - xl,\r\n height: yb - yt\r\n };\r\n result.isEmpty = !result.x && !result.y && !result.width && !result.height;\r\n return result\r\n}\r\nexport function rotateBBox(bBox, center, angle) {\r\n var cos = _Number(_cos(angle * PI_DIV_180).toFixed(3));\r\n var sin = _Number(_sin(angle * PI_DIV_180).toFixed(3));\r\n var w2 = bBox.width / 2;\r\n var h2 = bBox.height / 2;\r\n var centerX = bBox.x + w2;\r\n var centerY = bBox.y + h2;\r\n var w2_ = abs(w2 * cos) + abs(h2 * sin);\r\n var h2_ = abs(w2 * sin) + abs(h2 * cos);\r\n var centerX_ = center[0] + (centerX - center[0]) * cos + (centerY - center[1]) * sin;\r\n var centerY_ = center[1] - (centerX - center[0]) * sin + (centerY - center[1]) * cos;\r\n return normalizeBBox({\r\n x: centerX_ - w2_,\r\n y: centerY_ - h2_,\r\n width: 2 * w2_,\r\n height: 2 * h2_\r\n })\r\n}\r\nexport var decreaseGaps = function(object, keys, decrease) {\r\n var arrayGaps;\r\n do {\r\n arrayGaps = selectByKeys(object, keys);\r\n arrayGaps.push(ceil(decrease / arrayGaps.length));\r\n decrease = decreaseFields(object, keys, _min.apply(null, arrayGaps), decrease)\r\n } while (decrease > 0 && arrayGaps.length > 1);\r\n return decrease\r\n};\r\nexport var parseScalar = function(value, defaultValue) {\r\n return void 0 !== value ? value : defaultValue\r\n};\r\nexport var enumParser = function(values) {\r\n var stored = {};\r\n var i;\r\n var ii;\r\n for (i = 0, ii = values.length; i < ii; ++i) {\r\n stored[normalizeEnum(values[i])] = 1\r\n }\r\n return function(value, defaultValue) {\r\n var _value = normalizeEnum(value);\r\n return stored[_value] ? _value : defaultValue\r\n }\r\n};\r\nexport var patchFontOptions = function(options) {\r\n var fontOptions = {};\r\n each(options || {}, (function(key, value) {\r\n if (/^(cursor)$/i.test(key)) {} else if (\"opacity\" === key) {\r\n value = null\r\n } else if (\"color\" === key) {\r\n key = \"fill\";\r\n if (\"opacity\" in options) {\r\n var color = new Color(value);\r\n value = \"rgba(\".concat(color.r, \",\").concat(color.g, \",\").concat(color.b, \",\").concat(options.opacity, \")\")\r\n }\r\n } else {\r\n key = \"font-\" + key\r\n }\r\n fontOptions[key] = value\r\n }));\r\n return fontOptions\r\n};\r\nexport function convertPolarToXY(centerCoords, startAngle, angle, radius) {\r\n var normalizedRadius = radius > 0 ? radius : 0;\r\n angle = isDefined(angle) ? angle + startAngle - 90 : 0;\r\n var cosSin = getCosAndSin(angle);\r\n return {\r\n x: _round(centerCoords.x + normalizedRadius * cosSin.cos),\r\n y: _round(centerCoords.y + normalizedRadius * cosSin.sin)\r\n }\r\n}\r\nexport var convertXYToPolar = function(centerCoords, x, y) {\r\n var radius = getDistance(centerCoords.x, centerCoords.y, x, y);\r\n var angle = atan2(y - centerCoords.y, x - centerCoords.x);\r\n return {\r\n phi: _round(normalizeAngle(180 * angle / PI)),\r\n r: _round(radius)\r\n }\r\n};\r\nexport var processSeriesTemplate = function(seriesTemplate, items) {\r\n var customizeSeries = isFunction(seriesTemplate.customizeSeries) ? seriesTemplate.customizeSeries : noop;\r\n var nameField = seriesTemplate.nameField;\r\n var generatedSeries = {};\r\n var seriesOrder = [];\r\n var series;\r\n var i = 0;\r\n var length;\r\n var data;\r\n items = items || [];\r\n for (length = items.length; i < length; i++) {\r\n data = items[i];\r\n if (nameField in data) {\r\n series = generatedSeries[data[nameField]];\r\n if (!series) {\r\n series = generatedSeries[data[nameField]] = {\r\n name: data[nameField],\r\n nameFieldValue: data[nameField]\r\n };\r\n seriesOrder.push(series.name)\r\n }\r\n }\r\n }\r\n return map(seriesOrder, (function(orderedName) {\r\n var group = generatedSeries[orderedName];\r\n return extend(group, customizeSeries.call(null, group.name))\r\n }))\r\n};\r\nexport var getCategoriesInfo = function(categories, startValue, endValue) {\r\n if (0 === categories.length) {\r\n return {\r\n categories: []\r\n }\r\n }\r\n startValue = isDefined(startValue) ? startValue : categories[0];\r\n endValue = isDefined(endValue) ? endValue : categories[categories.length - 1];\r\n var categoriesValue = map(categories, category => null === category || void 0 === category ? void 0 : category.valueOf());\r\n var indexStartValue = categoriesValue.indexOf(startValue.valueOf());\r\n var indexEndValue = categoriesValue.indexOf(endValue.valueOf());\r\n var swapBuf;\r\n var inverted = false;\r\n indexStartValue < 0 && (indexStartValue = 0);\r\n indexEndValue < 0 && (indexEndValue = categories.length - 1);\r\n if (indexEndValue < indexStartValue) {\r\n swapBuf = indexEndValue;\r\n indexEndValue = indexStartValue;\r\n indexStartValue = swapBuf;\r\n inverted = true\r\n }\r\n var visibleCategories = categories.slice(indexStartValue, indexEndValue + 1);\r\n var lastIdx = visibleCategories.length - 1;\r\n return {\r\n categories: visibleCategories,\r\n start: visibleCategories[inverted ? lastIdx : 0],\r\n end: visibleCategories[inverted ? 0 : lastIdx],\r\n inverted: inverted\r\n }\r\n};\r\nexport function isRelativeHeightPane(pane) {\r\n return !(pane.unit % 2)\r\n}\r\nexport function normalizePanesHeight(panes) {\r\n panes.forEach(pane => {\r\n var height = pane.height;\r\n var unit = 0;\r\n var parsedHeight = parseFloat(height) || void 0;\r\n if (isString(height) && height.indexOf(\"px\") > -1 || isNumeric(height) && height > 1) {\r\n parsedHeight = _round(parsedHeight);\r\n unit = 1\r\n }\r\n if (!unit && parsedHeight) {\r\n if (isString(height) && height.indexOf(\"%\") > -1) {\r\n parsedHeight /= 100;\r\n unit = 2\r\n } else if (parsedHeight < 0) {\r\n parsedHeight = parsedHeight < -1 ? 1 : abs(parsedHeight)\r\n }\r\n }\r\n pane.height = parsedHeight;\r\n pane.unit = unit\r\n });\r\n var relativeHeightPanes = panes.filter(isRelativeHeightPane);\r\n var weightSum = relativeHeightPanes.reduce((prev, next) => prev + (next.height || 0), 0);\r\n var weightHeightCount = relativeHeightPanes.length;\r\n var emptyHeightPanes = relativeHeightPanes.filter(pane => !pane.height);\r\n var emptyHeightCount = emptyHeightPanes.length;\r\n if (weightSum < 1 && emptyHeightCount) {\r\n emptyHeightPanes.forEach(pane => pane.height = (1 - weightSum) / emptyHeightCount)\r\n } else if (weightSum > 1 || weightSum < 1 && !emptyHeightCount || 1 === weightSum && emptyHeightCount) {\r\n if (emptyHeightCount) {\r\n var weightForEmpty = weightSum / weightHeightCount;\r\n var emptyWeightSum = emptyHeightCount * weightForEmpty;\r\n relativeHeightPanes.filter(pane => pane.height).forEach(pane => pane.height *= (weightSum - emptyWeightSum) / weightSum);\r\n emptyHeightPanes.forEach(pane => pane.height = weightForEmpty)\r\n }\r\n relativeHeightPanes.forEach(pane => pane.height *= 1 / weightSum)\r\n }\r\n}\r\nexport function updatePanesCanvases(panes, canvas, rotated) {\r\n var distributedSpace = 0;\r\n var padding = PANE_PADDING;\r\n var paneSpace = rotated ? canvas.width - canvas.left - canvas.right : canvas.height - canvas.top - canvas.bottom;\r\n var totalCustomSpace = panes.reduce((prev, cur) => prev + (!isRelativeHeightPane(cur) ? cur.height : 0), 0);\r\n var usefulSpace = paneSpace - padding * (panes.length - 1) - totalCustomSpace;\r\n var startName = rotated ? \"left\" : \"top\";\r\n var endName = rotated ? \"right\" : \"bottom\";\r\n panes.forEach(pane => {\r\n var calcLength = !isRelativeHeightPane(pane) ? pane.height : _round(pane.height * usefulSpace);\r\n pane.canvas = pane.canvas || {};\r\n extend(pane.canvas, canvas);\r\n pane.canvas[startName] = canvas[startName] + distributedSpace;\r\n pane.canvas[endName] = canvas[endName] + (paneSpace - calcLength - distributedSpace);\r\n distributedSpace = distributedSpace + calcLength + padding;\r\n setCanvasValues(pane.canvas)\r\n })\r\n}\r\nexport var unique = function(array) {\r\n var values = {};\r\n return map(array, (function(item) {\r\n var result = !values[item] ? item : null;\r\n values[item] = true;\r\n return result\r\n }))\r\n};\r\nexport var getVerticallyShiftedAngularCoords = function(bBox, dy, center) {\r\n var isPositive = bBox.x + bBox.width / 2 >= center.x;\r\n var horizontalOffset1 = (isPositive ? bBox.x : bBox.x + bBox.width) - center.x;\r\n var verticalOffset1 = bBox.y - center.y;\r\n var verticalOffset2 = verticalOffset1 + dy;\r\n var horizontalOffset2 = _round(sqrt(horizontalOffset1 * horizontalOffset1 + verticalOffset1 * verticalOffset1 - verticalOffset2 * verticalOffset2));\r\n var dx = (isPositive ? +horizontalOffset2 : -horizontalOffset2) || horizontalOffset1;\r\n return {\r\n x: center.x + (isPositive ? dx : dx - bBox.width),\r\n y: bBox.y + dy\r\n }\r\n};\r\nexport function mergeMarginOptions(opt1, opt2) {\r\n return {\r\n checkInterval: opt1.checkInterval || opt2.checkInterval,\r\n size: _max(opt1.size || 0, opt2.size || 0),\r\n percentStick: opt1.percentStick || opt2.percentStick,\r\n sizePointNormalState: _max(opt1.sizePointNormalState || 0, opt2.sizePointNormalState || 0)\r\n }\r\n}\r\nexport function getVizRangeObject(value) {\r\n if (Array.isArray(value)) {\r\n return {\r\n startValue: value[0],\r\n endValue: value[1]\r\n }\r\n } else {\r\n return value || {}\r\n }\r\n}\r\nexport function convertVisualRangeObject(visualRange, convertToVisualRange) {\r\n if (convertToVisualRange) {\r\n return visualRange\r\n }\r\n return [visualRange.startValue, visualRange.endValue]\r\n}\r\nexport function getAddFunction(range, correctZeroLevel) {\r\n if (\"datetime\" === range.dataType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n return new Date(rangeValue.getTime() + sign * marginValue)\r\n }\r\n }\r\n if (\"logarithmic\" === range.axisType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var log = getLogExt(rangeValue, range.base) + sign * marginValue;\r\n return raiseToExt(log, range.base)\r\n }\r\n }\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var newValue = rangeValue + sign * marginValue;\r\n return correctZeroLevel && newValue * rangeValue <= 0 ? 0 : newValue\r\n }\r\n}\r\nexport function adjustVisualRange(options, visualRange, wholeRange, dataRange) {\r\n var minDefined = isDefined(visualRange.startValue);\r\n var maxDefined = isDefined(visualRange.endValue);\r\n var nonDiscrete = \"discrete\" !== options.axisType;\r\n dataRange = dataRange || wholeRange;\r\n var add = getAddFunction(options, false);\r\n var min = minDefined ? visualRange.startValue : dataRange.min;\r\n var max = maxDefined ? visualRange.endValue : dataRange.max;\r\n var rangeLength = visualRange.length;\r\n var categories = dataRange.categories;\r\n if (nonDiscrete && !isDefined(min) && !isDefined(max)) {\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n }\r\n if (isDefined(rangeLength)) {\r\n if (nonDiscrete) {\r\n if (\"datetime\" === options.dataType && !isNumeric(rangeLength)) {\r\n rangeLength = dateToMilliseconds(rangeLength)\r\n }\r\n if (maxDefined && !minDefined || !maxDefined && !minDefined) {\r\n isDefined(wholeRange.max) && (max = max > wholeRange.max ? wholeRange.max : max);\r\n min = add(max, rangeLength, -1)\r\n } else if (minDefined && !maxDefined) {\r\n isDefined(wholeRange.min) && (min = min < wholeRange.min ? wholeRange.min : min);\r\n max = add(min, rangeLength)\r\n }\r\n } else {\r\n rangeLength = parseInt(rangeLength);\r\n if (!isNaN(rangeLength) && isFinite(rangeLength)) {\r\n rangeLength--;\r\n if (!maxDefined && !minDefined) {\r\n max = categories[categories.length - 1];\r\n min = categories[categories.length - 1 - rangeLength]\r\n } else if (minDefined && !maxDefined) {\r\n var categoriesInfo = getCategoriesInfo(categories, min, void 0);\r\n max = categoriesInfo.categories[rangeLength]\r\n } else if (!minDefined && maxDefined) {\r\n var _categoriesInfo = getCategoriesInfo(categories, void 0, max);\r\n min = _categoriesInfo.categories[_categoriesInfo.categories.length - 1 - rangeLength]\r\n }\r\n }\r\n }\r\n }\r\n if (nonDiscrete) {\r\n if (isDefined(wholeRange.max) && max > wholeRange.max) {\r\n max = wholeRange.max\r\n }\r\n if (isDefined(wholeRange.min) && min < wholeRange.min) {\r\n min = wholeRange.min\r\n }\r\n }\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n}\r\nexport function getLogExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return getLog(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = getLog(abs(value), base) - (linearThreshold - 1);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return adjust(sign(value) * transformValue, Number(pow(base, linearThreshold - 1).toFixed(abs(linearThreshold))))\r\n}\r\nexport function raiseToExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return raiseTo(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = raiseTo(abs(value) + (linearThreshold - 1), base);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return adjust(sign(value) * transformValue, Number(pow(base, linearThreshold).toFixed(abs(linearThreshold))))\r\n}\r\nexport function rangesAreEqual(range, rangeFromOptions) {\r\n if (Array.isArray(rangeFromOptions)) {\r\n return range.length === rangeFromOptions.length && range.every((item, i) => valueOf(item) === valueOf(rangeFromOptions[i]))\r\n } else {\r\n return valueOf(range.startValue) === valueOf(rangeFromOptions.startValue) && valueOf(range.endValue) === valueOf(rangeFromOptions.endValue)\r\n }\r\n}\r\nexport function valueOf(value) {\r\n return value && value.valueOf()\r\n}\r\nexport function pointInCanvas(canvas, x, y) {\r\n return x >= canvas.left && x <= canvas.right && y >= canvas.top && y <= canvas.bottom\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/translators/translator1d.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _Number = Number;\r\nexport function Translator1D() {\r\n this.setDomain(arguments[0], arguments[1]).setCodomain(arguments[2], arguments[3]).setInverted(false)\r\n}\r\nTranslator1D.prototype = {\r\n constructor: Translator1D,\r\n setDomain: function(domain1, domain2) {\r\n this._domain1 = _Number(domain1);\r\n this._domain2 = _Number(domain2);\r\n this._domainDelta = this._domain2 - this._domain1;\r\n return this\r\n },\r\n setCodomain: function(codomain1, codomain2) {\r\n this._codomain1 = _Number(codomain1);\r\n this._codomain2 = _Number(codomain2);\r\n this._codomainDelta = this._codomain2 - this._codomain1;\r\n return this\r\n },\r\n setInverted(state) {\r\n this.inverted = state\r\n },\r\n getDomain: function() {\r\n return [this._domain1, this._domain2]\r\n },\r\n getCodomain: function() {\r\n return [this._codomain1, this._codomain2]\r\n },\r\n getDomainStart: function() {\r\n return this._domain1\r\n },\r\n getDomainEnd: function() {\r\n return this._domain2\r\n },\r\n getCodomainStart: function() {\r\n return this._codomain1\r\n },\r\n getCodomainEnd: function() {\r\n return this._codomain2\r\n },\r\n getDomainRange: function() {\r\n return this._domainDelta\r\n },\r\n getCodomainRange: function() {\r\n return this._codomainDelta\r\n },\r\n translate: function(value) {\r\n var ratio = (_Number(value) - this._domain1) / this._domainDelta;\r\n this.inverted && (ratio = 1 - ratio);\r\n return 0 <= ratio && ratio <= 1 ? this._codomain1 + ratio * this._codomainDelta : NaN\r\n },\r\n adjust: function(value) {\r\n var ratio = (_Number(value) - this._domain1) / this._domainDelta;\r\n var result = NaN;\r\n if (ratio < 0) {\r\n result = this._domain1\r\n } else if (ratio > 1) {\r\n result = this._domain2\r\n } else if (0 <= ratio && ratio <= 1) {\r\n result = _Number(value)\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/pie_chart.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport consts from \"./components/consts\";\r\nimport {\r\n normalizeAngle,\r\n getVerticallyShiftedAngularCoords as _getVerticallyShiftedAngularCoords,\r\n patchFontOptions\r\n} from \"./core/utils\";\r\nimport {\r\n extend as _extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport {\r\n each as _each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Range\r\n} from \"./translators/range\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n BaseChart,\r\n overlapping\r\n} from \"./chart_components/base_chart\";\r\nimport {\r\n noop as _noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n Translator1D\r\n} from \"./translators/translator1d\";\r\nvar {\r\n states: states\r\n} = consts;\r\nvar seriesSpacing = consts.pieSeriesSpacing;\r\nvar OPTIONS_FOR_REFRESH_SERIES = [\"startAngle\", \"innerRadius\", \"segmentsDirection\", \"type\"];\r\nvar NORMAL_STATE = states.normalMark;\r\nvar HOVER_STATE = states.hoverMark;\r\nvar SELECTED_STATE = states.selectedMark;\r\nvar MAX_RESOLVE_ITERATION_COUNT = 5;\r\nvar LEGEND_ACTIONS = [states.resetItem, states.applyHover, states.applySelected, states.applySelected];\r\n\r\nfunction getLegendItemAction(points) {\r\n var state = NORMAL_STATE;\r\n points.forEach(point => {\r\n var _point$series;\r\n var seriesOptions = null === (_point$series = point.series) || void 0 === _point$series ? void 0 : _point$series.getOptions();\r\n var pointState = point.fullState;\r\n if (\"none\" === (null === seriesOptions || void 0 === seriesOptions ? void 0 : seriesOptions.hoverMode)) {\r\n pointState &= ~HOVER_STATE\r\n }\r\n if (\"none\" === (null === seriesOptions || void 0 === seriesOptions ? void 0 : seriesOptions.selectionMode)) {\r\n pointState &= ~SELECTED_STATE\r\n }\r\n state |= pointState\r\n });\r\n return LEGEND_ACTIONS[state]\r\n}\r\n\r\nfunction correctPercentValue(value) {\r\n if (isNumeric(value)) {\r\n if (value > 1) {\r\n value = 1\r\n } else if (value < 0) {\r\n value = 0\r\n }\r\n } else {\r\n value = void 0\r\n }\r\n return value\r\n}\r\nvar pieSizeEqualizer = function() {\r\n function removeFromList(list, item) {\r\n return list.filter((function(li) {\r\n return li !== item\r\n }))\r\n }\r\n var pies = [];\r\n var timers = {};\r\n return {\r\n queue: function(pie) {\r\n var group = pie.getSizeGroup();\r\n pies = (list = pies, item = pie, removeFromList(list, item).concat(item));\r\n var list, item;\r\n clearTimeout(timers[group]);\r\n timers[group] = setTimeout((function() {\r\n ! function(group, allPies) {\r\n var pies = allPies.filter(p => p._isVisible() && p.getSizeGroup() === group);\r\n var minRadius = Math.min.apply(null, pies.map(p => p.getSizeGroupLayout().radius));\r\n var minPie = pies.filter(p => p.getSizeGroupLayout().radius === minRadius);\r\n pies.forEach(p => p.render({\r\n force: true,\r\n sizeGroupLayout: minPie.length ? minPie[0].getSizeGroupLayout() : {}\r\n }))\r\n }(group, pies)\r\n }))\r\n },\r\n remove: function(pie) {\r\n pies = removeFromList(pies, pie);\r\n if (!pies.length) {\r\n timers = {}\r\n }\r\n }\r\n }\r\n}();\r\nvar dxPieChart = BaseChart.inherit({\r\n _themeSection: \"pie\",\r\n _layoutManagerOptions: function() {\r\n return _extend(true, {}, this.callBase(), {\r\n piePercentage: correctPercentValue(this._themeManager.getOptions(\"diameter\")),\r\n minPiePercentage: correctPercentValue(this._themeManager.getOptions(\"minDiameter\"))\r\n })\r\n },\r\n _customChangesOrder: [\"CENTER_TEMPLATE\"],\r\n _optionChangesMap: {\r\n diameter: \"REINIT\",\r\n minDiameter: \"REINIT\",\r\n sizeGroup: \"REINIT\",\r\n centerTemplate: \"CENTER_TEMPLATE\"\r\n },\r\n _change_CENTER_TEMPLATE() {\r\n this._renderCenterTemplate()\r\n },\r\n _disposeCore: function() {\r\n pieSizeEqualizer.remove(this);\r\n this.callBase();\r\n this._centerTemplateGroup.linkOff().dispose()\r\n },\r\n _groupSeries: function() {\r\n var series = this.series;\r\n this._groupsData = {\r\n groups: [{\r\n series: series,\r\n valueOptions: {\r\n valueType: \"numeric\"\r\n }\r\n }],\r\n argumentOptions: series[0] && series[0].getOptions()\r\n }\r\n },\r\n getArgumentAxis: function() {\r\n return null\r\n },\r\n _getValueAxis: function() {\r\n var translator = (new Translator1D).setCodomain(360, 0);\r\n return {\r\n getTranslator: function() {\r\n return translator\r\n },\r\n setBusinessRange: function(range) {\r\n translator.setDomain(range.min, range.max)\r\n }\r\n }\r\n },\r\n _populateBusinessRange: function() {\r\n this.series.map((function(series) {\r\n var range = new Range;\r\n range.addRange(series.getRangeData().val);\r\n series.getValueAxis().setBusinessRange(range);\r\n return range\r\n }))\r\n },\r\n _specialProcessSeries: function() {\r\n _each(this.series, (function(_, singleSeries) {\r\n singleSeries.arrangePoints()\r\n }))\r\n },\r\n _checkPaneName: function() {\r\n return true\r\n },\r\n _processSingleSeries: function(singleSeries) {\r\n this.callBase(singleSeries);\r\n singleSeries.arrangePoints()\r\n },\r\n _handleSeriesDataUpdated: function() {\r\n var maxPointCount = 0;\r\n this.series.forEach((function(s) {\r\n maxPointCount = Math.max(s.getPointsCount(), maxPointCount)\r\n }));\r\n this.series.forEach((function(s) {\r\n s.setMaxPointsCount(maxPointCount)\r\n }));\r\n this.callBase()\r\n },\r\n _getLegendOptions: function(item) {\r\n var legendItem = this.callBase(item);\r\n var legendData = legendItem.legendData;\r\n legendData.argument = item.argument;\r\n legendData.argumentIndex = item.argumentIndex;\r\n legendData.points = [item];\r\n return legendItem\r\n },\r\n _getLegendTargets: function() {\r\n var that = this;\r\n var itemsByArgument = {};\r\n (that.series || []).forEach((function(series) {\r\n series.getPoints().forEach((function(point) {\r\n var argument = point.argument.valueOf();\r\n var index = series.getPointsByArg(argument).indexOf(point);\r\n var key = argument.valueOf().toString() + index;\r\n itemsByArgument[key] = itemsByArgument[key] || [];\r\n var argumentCount = itemsByArgument[key].push(point);\r\n point.index = itemsByArgument[key][argumentCount - 2] ? itemsByArgument[key][argumentCount - 2].index : Object.keys(itemsByArgument).length - 1;\r\n point.argumentIndex = index\r\n }))\r\n }));\r\n var items = [];\r\n _each(itemsByArgument, (function(_, points) {\r\n points.forEach((function(point, index) {\r\n if (0 === index) {\r\n items.push(that._getLegendOptions(point));\r\n return\r\n }\r\n var item = items[items.length - 1];\r\n item.legendData.points.push(point);\r\n if (!item.visible) {\r\n item.visible = point.isVisible()\r\n }\r\n }))\r\n }));\r\n return items\r\n },\r\n _getLayoutTargets: function() {\r\n return [{\r\n canvas: this._canvas\r\n }]\r\n },\r\n _getLayoutSeries: function(series, drawOptions) {\r\n var layout;\r\n var canvas = this._canvas;\r\n var drawnLabels = false;\r\n layout = this.layoutManager.applyPieChartSeriesLayout(canvas, series, true);\r\n series.forEach((function(singleSeries) {\r\n singleSeries.correctPosition(layout, canvas);\r\n drawnLabels = singleSeries.drawLabelsWOPoints() || drawnLabels\r\n }));\r\n if (drawnLabels) {\r\n layout = this.layoutManager.applyPieChartSeriesLayout(canvas, series, drawOptions.hideLayoutLabels)\r\n }\r\n series.forEach((function(singleSeries) {\r\n singleSeries.hideLabels()\r\n }));\r\n this._sizeGroupLayout = {\r\n x: layout.centerX,\r\n y: layout.centerY,\r\n radius: layout.radiusOuter,\r\n drawOptions: drawOptions\r\n };\r\n return layout\r\n },\r\n _getLayoutSeriesForEqualPies: function(series, sizeGroupLayout) {\r\n var canvas = this._canvas;\r\n var layout = this.layoutManager.applyEqualPieChartLayout(series, sizeGroupLayout);\r\n series.forEach((function(s) {\r\n s.correctPosition(layout, canvas);\r\n s.drawLabelsWOPoints()\r\n }));\r\n this.layoutManager.correctPieLabelRadius(series, layout, canvas);\r\n return layout\r\n },\r\n _updateSeriesDimensions: function(drawOptions) {\r\n var visibleSeries = this._getVisibleSeries();\r\n var lengthVisibleSeries = visibleSeries.length;\r\n var innerRad;\r\n var delta;\r\n var layout;\r\n var sizeGroupLayout = drawOptions.sizeGroupLayout;\r\n if (lengthVisibleSeries) {\r\n layout = sizeGroupLayout ? this._getLayoutSeriesForEqualPies(visibleSeries, sizeGroupLayout) : this._getLayoutSeries(visibleSeries, drawOptions);\r\n delta = (layout.radiusOuter - layout.radiusInner - seriesSpacing * (lengthVisibleSeries - 1)) / lengthVisibleSeries;\r\n innerRad = layout.radiusInner;\r\n this._setGeometry(layout);\r\n visibleSeries.forEach((function(singleSeries) {\r\n singleSeries.correctRadius({\r\n radiusInner: innerRad,\r\n radiusOuter: innerRad + delta\r\n });\r\n innerRad += delta + seriesSpacing\r\n }))\r\n }\r\n },\r\n _renderSeries: function(drawOptions, isRotated, isLegendInside) {\r\n this._calculateSeriesLayout(drawOptions, isRotated);\r\n if (!drawOptions.sizeGroupLayout && this.getSizeGroup()) {\r\n pieSizeEqualizer.queue(this);\r\n this._clearCanvas();\r\n return\r\n }\r\n this._renderSeriesElements(drawOptions, isLegendInside)\r\n },\r\n _createHtmlStructure() {\r\n this.callBase();\r\n this._centerTemplateGroup = this._renderer.g().attr({\r\n class: \"dxc-hole-template\"\r\n }).linkOn(this._renderer.root, \"center-template\").css(patchFontOptions(this._themeManager._font)).linkAppend()\r\n },\r\n _renderExtraElements() {\r\n this._requestChange([\"CENTER_TEMPLATE\"])\r\n },\r\n _renderCenterTemplate() {\r\n var template = this.option(\"centerTemplate\");\r\n var centerTemplateGroup = this._centerTemplateGroup.clear();\r\n if (!template) {\r\n return\r\n }\r\n centerTemplateGroup.attr({\r\n visibility: \"hidden\"\r\n });\r\n template = this._getTemplate(template);\r\n template.render({\r\n model: this,\r\n container: centerTemplateGroup.element,\r\n onRendered: () => {\r\n var group = centerTemplateGroup;\r\n var bBox = group.getBBox();\r\n group.move(this._center.x - (bBox.x + bBox.width / 2), this._center.y - (bBox.y + bBox.height / 2));\r\n group.attr({\r\n visibility: \"visible\"\r\n })\r\n }\r\n })\r\n },\r\n getInnerRadius() {\r\n return this._innerRadius\r\n },\r\n _getLegendCallBack: function() {\r\n var that = this;\r\n var legend = this._legend;\r\n var items = this._getLegendTargets().map((function(i) {\r\n return i.legendData\r\n }));\r\n return function(target) {\r\n items.forEach((function(data) {\r\n var points = [];\r\n var callback = legend.getActionCallback({\r\n index: data.id\r\n });\r\n that.series.forEach((function(series) {\r\n var seriesPoints = series.getPointsByKeys(data.argument, data.argumentIndex);\r\n points.push.apply(points, seriesPoints)\r\n }));\r\n if (target && target.argument === data.argument && target.argumentIndex === data.argumentIndex) {\r\n points.push(target)\r\n }\r\n callback(getLegendItemAction(points))\r\n }))\r\n }\r\n },\r\n _locateLabels(resolveLabelOverlapping) {\r\n var iterationCount = 0;\r\n var labelsWereOverlapped;\r\n var wordWrapApplied;\r\n do {\r\n wordWrapApplied = this._adjustSeriesLabels(\"shift\" === resolveLabelOverlapping);\r\n labelsWereOverlapped = this._resolveLabelOverlapping(resolveLabelOverlapping)\r\n } while ((labelsWereOverlapped || wordWrapApplied) && ++iterationCount < MAX_RESOLVE_ITERATION_COUNT)\r\n },\r\n _adjustSeriesLabels: function(moveLabelsFromCenter) {\r\n return this.series.reduce((r, s) => s.adjustLabels(moveLabelsFromCenter) || r, false)\r\n },\r\n _applyExtraSettings: _noop,\r\n _resolveLabelOverlappingShift: function() {\r\n var that = this;\r\n var inverseDirection = \"anticlockwise\" === that.option(\"segmentsDirection\");\r\n var seriesByPosition = that.series.reduce((function(r, s) {\r\n (r[s.getOptions().label.position] || r.outside).push(s);\r\n return r\r\n }), {\r\n inside: [],\r\n columns: [],\r\n outside: []\r\n });\r\n var labelsOverlapped = false;\r\n if (seriesByPosition.inside.length > 0) {\r\n labelsOverlapped = resolve(seriesByPosition.inside.reduce((function(r, singleSeries) {\r\n return singleSeries.getVisiblePoints().reduce((function(r, point) {\r\n r.left.push(point);\r\n return r\r\n }), r)\r\n }), {\r\n left: [],\r\n right: []\r\n }), shiftInColumnFunction) || labelsOverlapped\r\n }\r\n labelsOverlapped = seriesByPosition.columns.reduce((r, singleSeries) => resolve(dividePoints(singleSeries), shiftInColumnFunction) || r, labelsOverlapped);\r\n if (seriesByPosition.outside.length > 0) {\r\n labelsOverlapped = resolve(seriesByPosition.outside.reduce((function(r, singleSeries) {\r\n return dividePoints(singleSeries, r)\r\n }), null), (function(box, length) {\r\n return _getVerticallyShiftedAngularCoords(box, -length, that._center)\r\n })) || labelsOverlapped\r\n }\r\n return labelsOverlapped;\r\n\r\n function dividePoints(series, points) {\r\n return series.getVisiblePoints().reduce((function(r, point) {\r\n var angle = normalizeAngle(point.middleAngle);\r\n (angle <= 90 || angle >= 270 ? r.right : r.left).push(point);\r\n return r\r\n }), points || {\r\n left: [],\r\n right: []\r\n })\r\n }\r\n\r\n function resolve(points, shiftCallback) {\r\n var overlapped;\r\n if (inverseDirection) {\r\n points.left.reverse();\r\n points.right.reverse()\r\n }\r\n overlapped = overlapping.resolveLabelOverlappingInOneDirection(points.left, that._canvas, false, false, shiftCallback);\r\n return overlapping.resolveLabelOverlappingInOneDirection(points.right, that._canvas, false, false, shiftCallback) || overlapped\r\n }\r\n\r\n function shiftInColumnFunction(box, length) {\r\n return {\r\n x: box.x,\r\n y: box.y - length\r\n }\r\n }\r\n },\r\n _setGeometry: function(_ref) {\r\n var {\r\n centerX: x,\r\n centerY: y,\r\n radiusInner: radiusInner\r\n } = _ref;\r\n this._center = {\r\n x: x,\r\n y: y\r\n };\r\n this._innerRadius = radiusInner\r\n },\r\n _disposeSeries(seriesIndex) {\r\n this.callBase.apply(this, arguments);\r\n this._abstractSeries = null\r\n },\r\n _legendDataField: \"point\",\r\n _legendItemTextField: \"argument\",\r\n _applyPointMarkersAutoHiding: _noop,\r\n _renderTrackers: _noop,\r\n _trackerType: \"PieTracker\",\r\n _createScrollBar: _noop,\r\n _updateAxesLayout: _noop,\r\n _applyClipRects: _noop,\r\n _appendAdditionalSeriesGroups: _noop,\r\n _prepareToRender: _noop,\r\n _isLegendInside: _noop,\r\n _renderAxes: _noop,\r\n _shrinkAxes: _noop,\r\n _isRotated: _noop,\r\n _seriesPopulatedHandlerCore: _noop,\r\n _reinitAxes: _noop,\r\n _correctAxes: _noop,\r\n _getExtraOptions: function() {\r\n return {\r\n startAngle: this.option(\"startAngle\"),\r\n innerRadius: this.option(\"innerRadius\"),\r\n segmentsDirection: this.option(\"segmentsDirection\"),\r\n type: this.option(\"type\")\r\n }\r\n },\r\n getSizeGroup: function() {\r\n return this._themeManager.getOptions(\"sizeGroup\")\r\n },\r\n getSizeGroupLayout: function() {\r\n return this._sizeGroupLayout || {}\r\n }\r\n});\r\n_each(OPTIONS_FOR_REFRESH_SERIES, (function(_, name) {\r\n dxPieChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_DATA_INIT\"\r\n}));\r\nimport {\r\n plugins\r\n} from \"./core/annotations\";\r\ndxPieChart.addPlugin(plugins.core);\r\ndxPieChart.addPlugin(plugins.pieChart);\r\nregisterComponent(\"dxPieChart\", dxPieChart);\r\nexport default dxPieChart;\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/common.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n smartFormatter as _format\r\n} from \"../axes/smart_formatter\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nexport var HEIGHT_COMPACT_MODE = 24;\r\nvar POINTER_SIZE = 4;\r\nvar EMPTY_SLIDER_MARKER_TEXT = \". . .\";\r\nexport var utils = {\r\n trackerSettings: {\r\n fill: \"grey\",\r\n stroke: \"grey\",\r\n opacity: 1e-4\r\n },\r\n animationSettings: {\r\n duration: 250\r\n }\r\n};\r\nexport var consts = {\r\n emptySliderMarkerText: EMPTY_SLIDER_MARKER_TEXT,\r\n pointerSize: POINTER_SIZE\r\n};\r\nexport var formatValue = function(value, formatOptions, tickIntervalsInfo, valueType, type, logarithmBase) {\r\n var formatObject = {\r\n value: value,\r\n valueText: _format(value, {\r\n labelOptions: formatOptions,\r\n ticks: tickIntervalsInfo ? tickIntervalsInfo.ticks : [],\r\n tickInterval: tickIntervalsInfo ? tickIntervalsInfo.tickInterval : void 0,\r\n dataType: valueType,\r\n type: type,\r\n logarithmBase: logarithmBase\r\n })\r\n };\r\n return String(isFunction(formatOptions.customizeText) ? formatOptions.customizeText.call(formatObject, formatObject) : formatObject.valueText)\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/slider_marker.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n patchFontOptions\r\n} from \"../core/utils\";\r\nimport {\r\n consts\r\n} from \"./common\";\r\nvar POINTER_SIZE = consts.pointerSize;\r\nvar SLIDER_MARKER_UPDATE_DELAY = 75;\r\n\r\nfunction SliderMarker(renderer, root, isLeftPointer) {\r\n this._isLeftPointer = isLeftPointer;\r\n this._isOverlapped = false;\r\n this._group = renderer.g().attr({\r\n class: \"slider-marker\"\r\n }).append(root);\r\n this._area = renderer.path(null, \"area\").append(this._group);\r\n this._label = renderer.text().attr({\r\n align: \"left\"\r\n }).append(this._group);\r\n this._tracker = renderer.rect().attr({\r\n class: \"slider-marker-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).css({\r\n cursor: \"pointer\"\r\n }).append(this._group);\r\n this._border = renderer.rect(0, 0, 1, 0)\r\n}\r\nSliderMarker.prototype = {\r\n constructor: SliderMarker,\r\n _getRectSize: function(textSize) {\r\n return {\r\n width: Math.round(2 * this._paddingLeftRight + textSize.width),\r\n height: Math.round(2 * this._paddingTopBottom + textSize.height)\r\n }\r\n },\r\n _getTextSize: function() {\r\n var textSize = this._label.getBBox();\r\n if (!this._textHeight && isFinite(textSize.height)) {\r\n this._textHeight = textSize.height\r\n }\r\n return {\r\n width: textSize.width,\r\n height: this._textHeight,\r\n y: textSize.y\r\n }\r\n },\r\n _getAreaPointsInfo: function(textSize) {\r\n var rectSize = this._getRectSize(textSize);\r\n var rectWidth = rectSize.width;\r\n var rectHeight = rectSize.height;\r\n var rectLeftBorder = -rectWidth;\r\n var rectRightBorder = 0;\r\n var pointerRightPoint = POINTER_SIZE;\r\n var pointerCenterPoint = 0;\r\n var pointerLeftPoint = -POINTER_SIZE;\r\n var position = this._position;\r\n var isLeft = this._isLeftPointer;\r\n var correctCloudBorders = function() {\r\n rectLeftBorder++;\r\n rectRightBorder++;\r\n pointerRightPoint++;\r\n pointerCenterPoint++;\r\n pointerLeftPoint++\r\n };\r\n var checkPointerBorders = function() {\r\n if (pointerRightPoint > rectRightBorder) {\r\n pointerRightPoint = rectRightBorder\r\n } else if (pointerLeftPoint < rectLeftBorder) {\r\n pointerLeftPoint = rectLeftBorder\r\n }\r\n isLeft && correctCloudBorders()\r\n };\r\n var borderPosition = position;\r\n if (isLeft) {\r\n if (position > this._range[1] - rectWidth) {\r\n rectRightBorder = -position + this._range[1];\r\n rectLeftBorder = rectRightBorder - rectWidth;\r\n checkPointerBorders();\r\n borderPosition += rectLeftBorder\r\n } else {\r\n rectLeftBorder = pointerLeftPoint = 0;\r\n rectRightBorder = rectWidth\r\n }\r\n } else if (position - this._range[0] < rectWidth) {\r\n rectLeftBorder = -(position - this._range[0]);\r\n rectRightBorder = rectLeftBorder + rectWidth;\r\n checkPointerBorders();\r\n borderPosition += rectRightBorder\r\n } else {\r\n pointerRightPoint = 0;\r\n correctCloudBorders()\r\n }\r\n this._borderPosition = borderPosition;\r\n return {\r\n offset: rectLeftBorder,\r\n isCut: (!isLeft || pointerCenterPoint !== pointerLeftPoint) && (isLeft || pointerCenterPoint !== pointerRightPoint),\r\n points: [rectLeftBorder, 0, rectRightBorder, 0, rectRightBorder, rectHeight, pointerRightPoint, rectHeight, pointerCenterPoint, rectHeight + POINTER_SIZE, pointerLeftPoint, rectHeight, rectLeftBorder, rectHeight]\r\n }\r\n },\r\n _update: function() {\r\n var that = this;\r\n var textSize;\r\n clearTimeout(that._timeout);\r\n that._label.attr({\r\n text: that._text || \"\"\r\n });\r\n var currentTextSize = that._getTextSize();\r\n var rectSize = that._getRectSize(currentTextSize);\r\n textSize = that._textSize || currentTextSize;\r\n textSize = that._textSize = currentTextSize.width > textSize.width || currentTextSize.height > textSize.height ? currentTextSize : textSize;\r\n that._timeout = setTimeout((function() {\r\n updateSliderMarker(currentTextSize, rectSize);\r\n that._textSize = currentTextSize\r\n }), SLIDER_MARKER_UPDATE_DELAY);\r\n\r\n function updateSliderMarker(size, rectSize) {\r\n rectSize = rectSize || that._getRectSize(size);\r\n that._group.attr({\r\n translateY: -(rectSize.height + POINTER_SIZE)\r\n });\r\n var pointsData = that._getAreaPointsInfo(size);\r\n var points = pointsData.points;\r\n var offset = pointsData.offset;\r\n that._area.attr({\r\n points: points\r\n });\r\n that._border.attr({\r\n x: that._isLeftPointer ? points[0] - 1 : points[2],\r\n height: pointsData.isCut ? rectSize.height : rectSize.height + POINTER_SIZE\r\n });\r\n that._tracker.attr({\r\n translateX: offset,\r\n width: rectSize.width,\r\n height: rectSize.height + POINTER_SIZE\r\n });\r\n that._label.attr({\r\n translateX: that._paddingLeftRight + offset,\r\n translateY: rectSize.height / 2 - (size.y + size.height / 2)\r\n })\r\n }\r\n updateSliderMarker(textSize)\r\n },\r\n setText: function(value) {\r\n this._text = value\r\n },\r\n setPosition: function(position) {\r\n this._position = position;\r\n this._update()\r\n },\r\n applyOptions: function(options, screenRange) {\r\n this._range = screenRange;\r\n this._paddingLeftRight = options.paddingLeftRight;\r\n this._paddingTopBottom = options.paddingTopBottom;\r\n this._textHeight = null;\r\n this._colors = [options.invalidRangeColor, options.color];\r\n this._area.attr({\r\n fill: options.color\r\n });\r\n this._border.attr({\r\n fill: options.borderColor\r\n });\r\n this._label.css(patchFontOptions(options.font));\r\n this._update()\r\n },\r\n getTracker: function() {\r\n return this._tracker\r\n },\r\n setValid: function(isValid) {\r\n this._area.attr({\r\n fill: this._colors[Number(isValid)]\r\n })\r\n },\r\n setColor: function(color) {\r\n this._area.attr({\r\n fill: color\r\n })\r\n },\r\n dispose: function() {\r\n clearTimeout(this._timeout)\r\n },\r\n setOverlapped: function(isOverlapped) {\r\n if (this._isOverlapped !== isOverlapped) {\r\n if (isOverlapped) {\r\n this._border.append(this._group)\r\n } else {\r\n this._isOverlapped && this._border.remove()\r\n }\r\n this._isOverlapped = isOverlapped\r\n }\r\n },\r\n getBorderPosition: function() {\r\n return this._borderPosition\r\n }\r\n};\r\nexport default SliderMarker;\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/slider.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n utils,\r\n formatValue\r\n} from \"./common\";\r\nvar animationSettings = utils.animationSettings;\r\nimport SliderMarker from \"./slider_marker\";\r\nimport {\r\n touchEvents,\r\n pointerEvents\r\n} from \"../../core/utils/support\";\r\nvar SPLITTER_WIDTH = 8;\r\nvar TOUCH_SPLITTER_WIDTH = 20;\r\n\r\nfunction getSliderTrackerWidth(sliderHandleWidth) {\r\n return touchEvents || pointerEvents ? TOUCH_SPLITTER_WIDTH : SPLITTER_WIDTH < sliderHandleWidth ? sliderHandleWidth : SPLITTER_WIDTH\r\n}\r\n\r\nfunction Slider(params, index) {\r\n this._translator = params.translator;\r\n this._sliderGroup = params.renderer.g().attr({\r\n class: \"slider\"\r\n }).append(params.root);\r\n this._line = params.renderer.path(null, \"line\").append(this._sliderGroup);\r\n this._marker = new SliderMarker(params.renderer, this._sliderGroup, 1 === index);\r\n this._tracker = params.renderer.rect().attr({\r\n class: \"slider-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).css({\r\n cursor: \"w-resize\"\r\n }).append(params.trackersGroup)\r\n}\r\nSlider.prototype = {\r\n constructor: Slider,\r\n cancelAnimation: function() {\r\n this._sliderGroup.stopAnimation();\r\n this._tracker.stopAnimation()\r\n },\r\n applyPosition: function(isAnimated) {\r\n var slider = this._sliderGroup;\r\n var tracker = this._tracker;\r\n var attrs = {\r\n translateX: this._position\r\n };\r\n this._marker.setPosition(this._position);\r\n if (isAnimated) {\r\n slider.animate(attrs, animationSettings);\r\n tracker.animate(attrs, animationSettings)\r\n } else {\r\n slider.attr(attrs);\r\n tracker.attr(attrs)\r\n }\r\n },\r\n _setValid: function(isValid) {\r\n this._marker.setValid(isValid);\r\n this._line.attr({\r\n stroke: this._colors[Number(isValid)]\r\n })\r\n },\r\n _setText: function(text) {\r\n this._marker.setText(text)\r\n },\r\n update: function(verticalRange, sliderHandleOptions, sliderMarkerOptions) {\r\n this._formatOptions = {\r\n format: sliderMarkerOptions.format,\r\n customizeText: sliderMarkerOptions.customizeText\r\n };\r\n this._marker.applyOptions(sliderMarkerOptions, this._translator.getScreenRange());\r\n this._colors = [sliderMarkerOptions.invalidRangeColor, sliderHandleOptions.color];\r\n this._sliderGroup.attr({\r\n translateY: verticalRange[0]\r\n });\r\n this._line.attr({\r\n \"stroke-width\": sliderHandleOptions.width,\r\n stroke: sliderHandleOptions.color,\r\n \"stroke-opacity\": sliderHandleOptions.opacity,\r\n sharp: \"h\",\r\n points: [0, 0, 0, verticalRange[1] - verticalRange[0]]\r\n });\r\n var trackerWidth = getSliderTrackerWidth(sliderHandleOptions.width);\r\n this._tracker.attr({\r\n x: -trackerWidth / 2,\r\n y: 0,\r\n width: trackerWidth,\r\n height: verticalRange[1] - verticalRange[0],\r\n translateY: verticalRange[0]\r\n })\r\n },\r\n toForeground: function() {\r\n this._sliderGroup.toForeground()\r\n },\r\n getSliderTracker: function() {\r\n return this._tracker\r\n },\r\n getPosition: function() {\r\n return this._position\r\n },\r\n setDisplayValue: function(value) {\r\n this._value = value;\r\n this._setText(formatValue(value, this._formatOptions))\r\n },\r\n setOverlapped: function(isOverlapped) {\r\n this._marker.setOverlapped(isOverlapped)\r\n },\r\n getValue: function() {\r\n return this._value\r\n },\r\n on: function(event, handler) {\r\n this._tracker.on(event, handler);\r\n this._marker.getTracker().on(event, handler)\r\n },\r\n getCloudBorder: function() {\r\n return this._marker.getBorderPosition()\r\n },\r\n dispose: function() {\r\n this._marker.dispose()\r\n }\r\n};\r\nexport default Slider;\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/sliders_controller.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n utils,\r\n consts\r\n} from \"./common\";\r\nimport Slider from \"./slider\";\r\nimport {\r\n normalizeEnum as _normalizeEnum,\r\n rangesAreEqual,\r\n adjustVisualRange\r\n} from \"../core/utils\";\r\nimport {\r\n isNumeric,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar animationSettings = utils.animationSettings;\r\nvar emptySliderMarkerText = consts.emptySliderMarkerText;\r\n\r\nfunction buildRectPoints(left, top, right, bottom) {\r\n return [left, top, right, top, right, bottom, left, bottom]\r\n}\r\n\r\nfunction isLess(a, b) {\r\n return a < b\r\n}\r\n\r\nfunction isGreater(a, b) {\r\n return a > b\r\n}\r\n\r\nfunction selectClosestValue(target, values) {\r\n var start = 0;\r\n var end = values ? values.length - 1 : 0;\r\n var middle;\r\n var val = target;\r\n while (end - start > 1) {\r\n middle = start + end >> 1;\r\n val = values[middle];\r\n if (val === target) {\r\n return target\r\n } else if (target < val) {\r\n end = middle\r\n } else {\r\n start = middle\r\n }\r\n }\r\n if (values) {\r\n val = values[target - values[start] <= values[end] - target ? start : end]\r\n }\r\n return val\r\n}\r\n\r\nfunction dummyProcessSelectionChanged() {\r\n this._lastSelectedRange = this.getSelectedRange();\r\n delete this._processSelectionChanged\r\n}\r\n\r\nfunction suppressSetSelectedRange(controller) {\r\n controller.setSelectedRange = noop;\r\n if (controller._processSelectionChanged === dummyProcessSelectionChanged) {\r\n controller._processSelectionChanged()\r\n }\r\n}\r\n\r\nfunction restoreSetSelectedRange(controller) {\r\n delete controller.setSelectedRange\r\n}\r\nexport function SlidersController(params) {\r\n var sliderParams = {\r\n renderer: params.renderer,\r\n root: params.root,\r\n trackersGroup: params.trackersGroup,\r\n translator: params.translator\r\n };\r\n this._params = params;\r\n this._areaTracker = params.renderer.path(null, \"area\").attr({\r\n class: \"area-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).append(params.trackersGroup);\r\n this._selectedAreaTracker = params.renderer.path(null, \"area\").attr({\r\n class: \"selected-area-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).append(params.trackersGroup);\r\n this._shutter = params.renderer.path(null, \"area\").append(params.root);\r\n this._sliders = [new Slider(sliderParams, 0), new Slider(sliderParams, 1)];\r\n this._processSelectionChanged = dummyProcessSelectionChanged\r\n}\r\nSlidersController.prototype = {\r\n constructor: SlidersController,\r\n dispose: function() {\r\n this._sliders[0].dispose();\r\n this._sliders[1].dispose()\r\n },\r\n getTrackerTargets: function() {\r\n return {\r\n area: this._areaTracker,\r\n selectedArea: this._selectedAreaTracker,\r\n sliders: this._sliders\r\n }\r\n },\r\n _processSelectionChanged: function(e) {\r\n var selectedRange = this.getSelectedRange();\r\n if (!rangesAreEqual(selectedRange, this._lastSelectedRange)) {\r\n this._params.updateSelectedRange(selectedRange, this._lastSelectedRange, e);\r\n this._lastSelectedRange = selectedRange\r\n }\r\n },\r\n update: function(verticalRange, behavior, isCompactMode, sliderHandleOptions, sliderMarkerOptions, shutterOptions, rangeBounds, fullTicks, selectedRangeColor) {\r\n var screenRange = this._params.translator.getScreenRange();\r\n this._verticalRange = verticalRange;\r\n this._minRange = rangeBounds.minRange;\r\n this._maxRange = rangeBounds.maxRange;\r\n this._animationEnabled = behavior.animationEnabled && this._params.renderer.animationEnabled();\r\n this._allowSlidersSwap = behavior.allowSlidersSwap;\r\n this._sliders[0].update(verticalRange, sliderHandleOptions, sliderMarkerOptions);\r\n this._sliders[1].update(verticalRange, sliderHandleOptions, sliderMarkerOptions);\r\n this._sliders[0]._position = this._sliders[1]._position = screenRange[0];\r\n this._values = !this._params.translator.isValueProlonged && behavior.snapToTicks ? fullTicks : null;\r\n this._areaTracker.attr({\r\n points: buildRectPoints(screenRange[0], verticalRange[0], screenRange[1], verticalRange[1])\r\n });\r\n this._isCompactMode = isCompactMode;\r\n this._shutterOffset = sliderHandleOptions.width / 2;\r\n this._updateSelectedView(shutterOptions, selectedRangeColor);\r\n this._isOnMoving = \"onmoving\" === _normalizeEnum(behavior.callValueChanged);\r\n this._updateSelectedRange();\r\n this._applyTotalPosition(false)\r\n },\r\n _updateSelectedView: function(shutterOptions, selectedRangeColor) {\r\n var settings = {\r\n fill: null,\r\n \"fill-opacity\": null,\r\n stroke: null,\r\n \"stroke-width\": null\r\n };\r\n if (this._isCompactMode) {\r\n settings.stroke = selectedRangeColor;\r\n settings[\"stroke-width\"] = 3;\r\n settings.sharp = \"v\"\r\n } else {\r\n settings.fill = shutterOptions.color;\r\n settings[\"fill-opacity\"] = shutterOptions.opacity\r\n }\r\n this._shutter.attr(settings)\r\n },\r\n _updateSelectedRange: function() {\r\n var sliders = this._sliders;\r\n sliders[0].cancelAnimation();\r\n sliders[1].cancelAnimation();\r\n this._shutter.stopAnimation();\r\n if (this._params.translator.getBusinessRange().isEmpty()) {\r\n sliders[0]._setText(emptySliderMarkerText);\r\n sliders[1]._setText(emptySliderMarkerText);\r\n sliders[0]._value = sliders[1]._value = void 0;\r\n sliders[0]._position = this._params.translator.getScreenRange()[0];\r\n sliders[1]._position = this._params.translator.getScreenRange()[1];\r\n this._applyTotalPosition(false);\r\n suppressSetSelectedRange(this)\r\n } else {\r\n restoreSetSelectedRange(this)\r\n }\r\n },\r\n _applyTotalPosition: function(isAnimated) {\r\n var sliders = this._sliders;\r\n isAnimated = this._animationEnabled && isAnimated;\r\n sliders[0].applyPosition(isAnimated);\r\n sliders[1].applyPosition(isAnimated);\r\n var areOverlapped = sliders[0].getCloudBorder() > sliders[1].getCloudBorder();\r\n sliders[0].setOverlapped(areOverlapped);\r\n sliders[1].setOverlapped(areOverlapped);\r\n this._applyAreaTrackersPosition();\r\n this._applySelectedRangePosition(isAnimated)\r\n },\r\n _applyAreaTrackersPosition: function() {\r\n var position1 = this._sliders[0].getPosition();\r\n var position2 = this._sliders[1].getPosition();\r\n this._selectedAreaTracker.attr({\r\n points: buildRectPoints(position1, this._verticalRange[0], position2, this._verticalRange[1])\r\n }).css({\r\n cursor: Math.abs(this._params.translator.getScreenRange()[1] - this._params.translator.getScreenRange()[0] - position2 + position1) < .001 ? \"default\" : \"pointer\"\r\n })\r\n },\r\n _applySelectedRangePosition: function(isAnimated) {\r\n var verticalRange = this._verticalRange;\r\n var pos1 = this._sliders[0].getPosition();\r\n var pos2 = this._sliders[1].getPosition();\r\n var screenRange;\r\n var points;\r\n if (this._isCompactMode) {\r\n points = [pos1 + Math.ceil(this._shutterOffset), (verticalRange[0] + verticalRange[1]) / 2, pos2 - Math.floor(this._shutterOffset), (verticalRange[0] + verticalRange[1]) / 2]\r\n } else {\r\n screenRange = this._params.axis.getVisibleArea();\r\n points = [buildRectPoints(screenRange[0], verticalRange[0], Math.max(pos1 - Math.floor(this._shutterOffset), screenRange[0]), verticalRange[1]), buildRectPoints(screenRange[1], verticalRange[0], Math.min(pos2 + Math.ceil(this._shutterOffset), screenRange[1]), verticalRange[1])]\r\n }\r\n if (isAnimated) {\r\n this._shutter.animate({\r\n points: points\r\n }, animationSettings)\r\n } else {\r\n this._shutter.attr({\r\n points: points\r\n })\r\n }\r\n },\r\n getSelectedRange: function() {\r\n return {\r\n startValue: this._sliders[0].getValue(),\r\n endValue: this._sliders[1].getValue()\r\n }\r\n },\r\n setSelectedRange: function(visualRange, e) {\r\n visualRange = visualRange || {};\r\n var translator = this._params.translator;\r\n var businessRange = translator.getBusinessRange();\r\n var compare = \"discrete\" === businessRange.axisType ? function(a, b) {\r\n return a < b\r\n } : function(a, b) {\r\n return a <= b\r\n };\r\n var {\r\n startValue: startValue,\r\n endValue: endValue\r\n } = adjustVisualRange({\r\n dataType: businessRange.dataType,\r\n axisType: businessRange.axisType,\r\n base: businessRange.base\r\n }, {\r\n startValue: translator.isValid(visualRange.startValue) ? translator.getCorrectValue(visualRange.startValue, 1) : void 0,\r\n endValue: translator.isValid(visualRange.endValue) ? translator.getCorrectValue(visualRange.endValue, -1) : void 0,\r\n length: visualRange.length\r\n }, {\r\n min: businessRange.minVisible,\r\n max: businessRange.maxVisible,\r\n categories: businessRange.categories\r\n });\r\n startValue = isNumeric(startValue) ? adjust(startValue) : startValue;\r\n endValue = isNumeric(endValue) ? adjust(endValue) : endValue;\r\n var values = compare(translator.to(startValue, -1), translator.to(endValue, 1)) ? [startValue, endValue] : [endValue, startValue];\r\n this._sliders[0].setDisplayValue(values[0]);\r\n this._sliders[1].setDisplayValue(values[1]);\r\n this._sliders[0]._position = translator.to(values[0], -1);\r\n this._sliders[1]._position = translator.to(values[1], 1);\r\n this._applyTotalPosition(true);\r\n this._processSelectionChanged(e)\r\n },\r\n beginSelectedAreaMoving: function(initialPosition) {\r\n var that = this;\r\n var sliders = that._sliders;\r\n var offset = (sliders[0].getPosition() + sliders[1].getPosition()) / 2 - initialPosition;\r\n var currentPosition = initialPosition;\r\n move.complete = function(e) {\r\n that._dockSelectedArea(e)\r\n };\r\n return move;\r\n\r\n function move(position, e) {\r\n if (position !== currentPosition && position > currentPosition === position > (sliders[0].getPosition() + sliders[1].getPosition()) / 2 - offset) {\r\n that._moveSelectedArea(position + offset, false, e)\r\n }\r\n currentPosition = position\r\n }\r\n },\r\n _dockSelectedArea: function(e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n sliders[0]._position = translator.to(sliders[0].getValue(), -1);\r\n sliders[1]._position = translator.to(sliders[1].getValue(), 1);\r\n this._applyTotalPosition(true);\r\n this._processSelectionChanged(e)\r\n },\r\n moveSelectedArea: function(screenPosition, e) {\r\n this._moveSelectedArea(screenPosition, true, e);\r\n this._dockSelectedArea(e)\r\n },\r\n _moveSelectedArea: function(screenPosition, isAnimated, e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n var interval = sliders[1].getPosition() - sliders[0].getPosition();\r\n var startPosition = screenPosition - interval / 2;\r\n var endPosition = screenPosition + interval / 2;\r\n if (startPosition < translator.getScreenRange()[0]) {\r\n startPosition = translator.getScreenRange()[0];\r\n endPosition = startPosition + interval\r\n }\r\n if (endPosition > translator.getScreenRange()[1]) {\r\n endPosition = translator.getScreenRange()[1];\r\n startPosition = endPosition - interval\r\n }\r\n var startValue = selectClosestValue(translator.from(startPosition, -1), this._values);\r\n sliders[0].setDisplayValue(startValue);\r\n sliders[1].setDisplayValue(selectClosestValue(translator.from(translator.to(startValue, -1) + interval, 1), this._values));\r\n sliders[0]._position = startPosition;\r\n sliders[1]._position = endPosition;\r\n this._applyTotalPosition(isAnimated);\r\n if (this._isOnMoving) {\r\n this._processSelectionChanged(e)\r\n }\r\n },\r\n placeSliderAndBeginMoving: function(firstPosition, secondPosition, e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n var index = firstPosition < secondPosition ? 0 : 1;\r\n var dir = index > 0 ? 1 : -1;\r\n var compare = index > 0 ? isGreater : isLess;\r\n var antiCompare = index > 0 ? isLess : isGreater;\r\n var thresholdPosition;\r\n var positions = [];\r\n var values = [];\r\n values[index] = translator.from(firstPosition, dir);\r\n values[1 - index] = translator.from(secondPosition, -dir);\r\n positions[1 - index] = secondPosition;\r\n if (translator.isValueProlonged) {\r\n if (compare(firstPosition, translator.to(values[index], dir))) {\r\n values[index] = translator.from(firstPosition, -dir)\r\n }\r\n if (compare(secondPosition, translator.to(values[index], -dir))) {\r\n values[1 - index] = values[index]\r\n }\r\n }\r\n if (this._minRange) {\r\n thresholdPosition = translator.to(translator.add(selectClosestValue(values[index], this._values), this._minRange, -dir), -dir);\r\n if (compare(secondPosition, thresholdPosition)) {\r\n values[1 - index] = translator.add(values[index], this._minRange, -dir)\r\n }\r\n thresholdPosition = translator.to(translator.add(translator.getRange()[1 - index], this._minRange, dir), -dir);\r\n if (antiCompare(firstPosition, thresholdPosition)) {\r\n values[1 - index] = translator.getRange()[1 - index];\r\n values[index] = translator.add(values[1 - index], this._minRange, dir);\r\n positions[1 - index] = firstPosition\r\n }\r\n }\r\n values[0] = selectClosestValue(values[0], this._values);\r\n values[1] = selectClosestValue(values[1], this._values);\r\n positions[index] = translator.to(values[index], dir);\r\n sliders[0].setDisplayValue(values[0]);\r\n sliders[1].setDisplayValue(values[1]);\r\n sliders[0]._position = positions[0];\r\n sliders[1]._position = positions[1];\r\n this._applyTotalPosition(true);\r\n if (this._isOnMoving) {\r\n this._processSelectionChanged(e)\r\n }\r\n var handler = this.beginSliderMoving(1 - index, secondPosition);\r\n sliders[1 - index]._sliderGroup.stopAnimation();\r\n this._shutter.stopAnimation();\r\n handler(secondPosition);\r\n return handler\r\n },\r\n beginSliderMoving: function(initialIndex, initialPosition) {\r\n var that = this;\r\n var translator = that._params.translator;\r\n var sliders = that._sliders;\r\n var minPosition = translator.getScreenRange()[0];\r\n var maxPosition = translator.getScreenRange()[1];\r\n var index = initialIndex;\r\n var staticPosition = sliders[1 - index].getPosition();\r\n var currentPosition = initialPosition;\r\n var dir = index > 0 ? 1 : -1;\r\n var compareMin = index > 0 ? isLess : isGreater;\r\n var compareMax = index > 0 ? isGreater : isLess;\r\n var moveOffset = sliders[index].getPosition() - initialPosition;\r\n var swapOffset = compareMin(sliders[index].getPosition(), initialPosition) ? -moveOffset : moveOffset;\r\n move.complete = function(e) {\r\n sliders[index]._setValid(true);\r\n that._dockSelectedArea(e)\r\n };\r\n return move;\r\n\r\n function move(position, e) {\r\n var isValid;\r\n var temp;\r\n var pos;\r\n var slider;\r\n var value;\r\n if (position !== currentPosition) {\r\n if (compareMin(position + swapOffset, staticPosition)) {\r\n isValid = that._allowSlidersSwap;\r\n if (isValid && !translator.isValueProlonged && that._minRange) {\r\n isValid = translator.isValid(translator.add(sliders[1 - index].getValue(), that._minRange, -dir))\r\n }\r\n if (isValid) {\r\n that._changeMovingSlider(index);\r\n index = 1 - index;\r\n dir = -dir;\r\n temp = compareMin;\r\n compareMin = compareMax;\r\n compareMax = temp;\r\n moveOffset = -dir * Math.abs(moveOffset);\r\n swapOffset = -moveOffset\r\n }\r\n }\r\n if (compareMax(position + moveOffset, staticPosition)) {\r\n slider = sliders[index];\r\n value = sliders[1 - index].getValue();\r\n pos = Math.max(Math.min(position + moveOffset, maxPosition), minPosition);\r\n isValid = translator.isValueProlonged ? !compareMin(pos, translator.to(value, dir)) : true;\r\n var invalidStateValue;\r\n if (isValid && that._minRange) {\r\n isValid = !compareMin(pos, translator.to(translator.add(value, that._minRange, dir), dir));\r\n if (!isValid) {\r\n invalidStateValue = translator.add(value, that._minRange, dir)\r\n }\r\n }\r\n if (isValid && that._maxRange) {\r\n isValid = !compareMax(pos, translator.to(translator.add(value, that._maxRange, dir), dir));\r\n if (!isValid) {\r\n invalidStateValue = translator.add(value, that._maxRange, dir)\r\n }\r\n }\r\n slider._setValid(isValid);\r\n slider.setDisplayValue(isValid ? selectClosestValue(translator.from(pos, dir), that._values) : isDefined(invalidStateValue) ? invalidStateValue : slider.getValue());\r\n slider._position = pos;\r\n that._applyTotalPosition(false);\r\n slider.toForeground();\r\n if (that._isOnMoving) {\r\n that._processSelectionChanged(e)\r\n }\r\n }\r\n }\r\n currentPosition = position\r\n }\r\n },\r\n _changeMovingSlider: function(index) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n var position = sliders[1 - index].getPosition();\r\n var dir = index > 0 ? 1 : -1;\r\n var newValue;\r\n sliders[index].setDisplayValue(selectClosestValue(translator.from(position, dir), this._values));\r\n newValue = translator.from(position, -dir);\r\n if (translator.isValueProlonged) {\r\n newValue = translator.from(position, dir)\r\n } else if (this._minRange) {\r\n newValue = translator.add(newValue, this._minRange, -dir)\r\n }\r\n sliders[1 - index].setDisplayValue(selectClosestValue(newValue, this._values));\r\n sliders[index]._setValid(true);\r\n sliders[index]._marker._update();\r\n sliders[0]._position = sliders[1]._position = position\r\n },\r\n foregroundSlider: function(index) {\r\n this._sliders[index].toForeground()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/tracker.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n pointerEvents as msPointerEnabled\r\n} from \"../../core/utils/support\";\r\nvar MIN_MANUAL_SELECTING_WIDTH = 10;\r\nvar window = getWindow();\r\n\r\nfunction isLeftButtonPressed(event) {\r\n var e = event || window.event;\r\n var originalEvent = e.originalEvent;\r\n var touches = e.touches;\r\n var pointerType = originalEvent ? originalEvent.pointerType : false;\r\n var eventTouches = originalEvent ? originalEvent.touches : false;\r\n var isMSPointerLeftClick = originalEvent && void 0 !== pointerType && (pointerType === (originalEvent.MSPOINTER_TYPE_TOUCH || \"touch\") || pointerType === (originalEvent.MSPOINTER_TYPE_MOUSE || \"mouse\") && 1 === originalEvent.buttons);\r\n var isTouches = touches && touches.length > 0 || eventTouches && eventTouches.length > 0;\r\n return 1 === e.which || isMSPointerLeftClick || isTouches\r\n}\r\n\r\nfunction isMultiTouches(event) {\r\n var originalEvent = event.originalEvent;\r\n var touches = event.touches;\r\n var eventTouches = originalEvent && originalEvent.touches;\r\n return touches && touches.length > 1 || eventTouches && eventTouches.length > 1 || null\r\n}\r\n\r\nfunction preventDefault(e) {\r\n if (!isMultiTouches(e)) {\r\n e.preventDefault()\r\n }\r\n}\r\n\r\nfunction stopPropagationAndPreventDefault(e) {\r\n if (!isMultiTouches(e)) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n}\r\n\r\nfunction isTouchEventArgs(e) {\r\n return e && e.type && 0 === e.type.indexOf(\"touch\")\r\n}\r\n\r\nfunction getEventPageX(event) {\r\n var originalEvent = event.originalEvent;\r\n var result = 0;\r\n if (event.pageX) {\r\n result = event.pageX\r\n } else if (originalEvent && originalEvent.pageX) {\r\n result = originalEvent.pageX\r\n }\r\n if (originalEvent && originalEvent.touches) {\r\n if (originalEvent.touches.length > 0) {\r\n result = originalEvent.touches[0].pageX\r\n } else if (originalEvent.changedTouches.length > 0) {\r\n result = originalEvent.changedTouches[0].pageX\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction initializeAreaEvents(controller, area, state, getRootOffsetLeft) {\r\n var isTouchEvent;\r\n var isActive = false;\r\n var initialPosition;\r\n var movingHandler = null;\r\n var docEvents = {\r\n [pointerEvents.move](e) {\r\n var position;\r\n var offset;\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n position = getEventPageX(e);\r\n offset = getRootOffsetLeft();\r\n if (movingHandler) {\r\n movingHandler(position - offset, e)\r\n } else if (state.manualRangeSelectionEnabled && Math.abs(initialPosition - position) >= MIN_MANUAL_SELECTING_WIDTH) {\r\n movingHandler = controller.placeSliderAndBeginMoving(initialPosition - offset, position - offset, e)\r\n }\r\n }\r\n },\r\n [pointerEvents.up](e) {\r\n var position;\r\n if (isActive) {\r\n position = getEventPageX(e);\r\n if (!movingHandler && state.moveSelectedRangeByClick && Math.abs(initialPosition - position) < MIN_MANUAL_SELECTING_WIDTH) {\r\n controller.moveSelectedArea(position - getRootOffsetLeft(), e)\r\n }\r\n cancel(e)\r\n }\r\n }\r\n };\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n if (movingHandler) {\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n }\r\n area.on(pointerEvents.down, (function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n initialPosition = getEventPageX(e)\r\n }));\r\n return docEvents\r\n}\r\n\r\nfunction initializeSelectedAreaEvents(controller, area, state, getRootOffsetLeft) {\r\n var isTouchEvent;\r\n var isActive = false;\r\n var movingHandler = null;\r\n var docEvents = {\r\n [pointerEvents.move](e) {\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n preventDefault(e);\r\n movingHandler(getEventPageX(e) - getRootOffsetLeft(), e)\r\n }\r\n },\r\n [pointerEvents.up]: cancel\r\n };\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n area.on(pointerEvents.down, (function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n movingHandler = controller.beginSelectedAreaMoving(getEventPageX(e) - getRootOffsetLeft());\r\n stopPropagationAndPreventDefault(e)\r\n }));\r\n return docEvents\r\n}\r\n\r\nfunction initializeSliderEvents(controller, sliders, state, getRootOffsetLeft) {\r\n var isTouchEvent;\r\n var isActive = false;\r\n var movingHandler = null;\r\n var docEvents = {\r\n [pointerEvents.move](e) {\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n preventDefault(e);\r\n movingHandler(getEventPageX(e) - getRootOffsetLeft(), e)\r\n }\r\n },\r\n [pointerEvents.up]: cancel\r\n };\r\n each(sliders, (function(i, slider) {\r\n slider.on({\r\n [pointerEvents.down](e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n movingHandler = controller.beginSliderMoving(i, getEventPageX(e) - getRootOffsetLeft());\r\n stopPropagationAndPreventDefault(e)\r\n },\r\n [pointerEvents.move]() {\r\n if (!movingHandler) {\r\n controller.foregroundSlider(i)\r\n }\r\n }\r\n })\r\n }));\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n return docEvents\r\n}\r\nexport function Tracker(params) {\r\n var state = this._state = {};\r\n var targets = params.controller.getTrackerTargets();\r\n if (msPointerEnabled) {\r\n params.renderer.root.css({\r\n msTouchAction: \"pinch-zoom\"\r\n })\r\n }\r\n this._docEvents = [initializeSelectedAreaEvents(params.controller, targets.selectedArea, state, getRootOffsetLeft), initializeAreaEvents(params.controller, targets.area, state, getRootOffsetLeft), initializeSliderEvents(params.controller, targets.sliders, state, getRootOffsetLeft)];\r\n each(this._docEvents, (function(_, events) {\r\n eventsEngine.on(domAdapter.getDocument(), events)\r\n }));\r\n\r\n function getRootOffsetLeft() {\r\n return params.renderer.getRootOffset().left\r\n }\r\n}\r\nTracker.prototype = {\r\n constructor: Tracker,\r\n dispose: function() {\r\n each(this._docEvents, (function(_, events) {\r\n eventsEngine.off(domAdapter.getDocument(), events)\r\n }))\r\n },\r\n update: function(enabled, behavior) {\r\n var state = this._state;\r\n state.enabled = enabled;\r\n state.moveSelectedRangeByClick = behavior.moveSelectedRangeByClick;\r\n state.manualRangeSelectionEnabled = behavior.manualRangeSelectionEnabled\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/range_view.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction drawSeriesView(root, seriesDataSource, canvas, isAnimationEnabled) {\r\n var seriesList = seriesDataSource.getSeries();\r\n if (!seriesList.length) {\r\n return\r\n }\r\n var valueAxis = seriesList[0].getValueAxis();\r\n valueAxis.updateCanvas({\r\n top: canvas.top,\r\n bottom: 0,\r\n height: canvas.height + canvas.top\r\n });\r\n seriesDataSource.adjustSeriesDimensions();\r\n var valueRange = seriesDataSource.getBoundRange().val;\r\n valueRange.sortCategories(valueAxis.getCategoriesSorter());\r\n valueAxis.setBusinessRange(valueRange);\r\n seriesList.forEach(series => {\r\n series._extGroups.seriesGroup = series._extGroups.labelsGroup = root;\r\n series.draw(isAnimationEnabled)\r\n })\r\n}\r\n\r\nfunction merge(a, b) {\r\n return void 0 !== a ? a : b\r\n}\r\nexport function RangeView(params) {\r\n this._params = params;\r\n this._clipRect = params.renderer.clipRect();\r\n params.root.attr({\r\n \"clip-path\": this._clipRect.id\r\n })\r\n}\r\nRangeView.prototype = {\r\n constructor: RangeView,\r\n update: function(backgroundOption, backgroundTheme, canvas, isCompactMode, isAnimationEnabled, seriesDataSource) {\r\n var renderer = this._params.renderer;\r\n var root = this._params.root;\r\n var canvasWidth = canvas.width - canvas.left;\r\n var seriesGroup;\r\n backgroundOption = backgroundOption || {};\r\n root.clear();\r\n this._clipRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvasWidth,\r\n height: canvas.height\r\n });\r\n if (!isCompactMode) {\r\n if (merge(backgroundOption.visible, backgroundTheme.visible)) {\r\n if (backgroundOption.color) {\r\n renderer.rect(canvas.left, canvas.top, canvasWidth + 1, canvas.height).attr({\r\n fill: merge(backgroundOption.color, backgroundTheme.color),\r\n class: \"dx-range-selector-background\"\r\n }).append(root)\r\n }\r\n if (backgroundOption.image && backgroundOption.image.url) {\r\n renderer.image(canvas.left, canvas.top, canvasWidth + 1, canvas.height, backgroundOption.image.url, merge(backgroundOption.image.location, backgroundTheme.image.location)).append(root)\r\n }\r\n }\r\n if (seriesDataSource && seriesDataSource.isShowChart()) {\r\n seriesGroup = renderer.g().attr({\r\n class: \"dxrs-series-group\"\r\n }).append(root);\r\n drawSeriesView(seriesGroup, seriesDataSource, canvas, isAnimationEnabled)\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/series_data_source.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Series\r\n} from \"../series/base_series\";\r\nimport {\r\n SeriesFamily\r\n} from \"../core/series_family\";\r\nimport {\r\n isNumeric,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n mergeMarginOptions,\r\n processSeriesTemplate\r\n} from \"../core/utils\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n validateData\r\n} from \"../components/data_validator\";\r\nimport {\r\n ThemeManager as ChartThemeManager\r\n} from \"../components/chart_theme_manager\";\r\nvar createThemeManager = function(chartOptions) {\r\n return new ChartThemeManager({\r\n options: chartOptions,\r\n themeSection: \"rangeSelector.chart\",\r\n fontFields: [\"commonSeriesSettings.label.font\"]\r\n })\r\n};\r\nvar processSeriesFamilies = function(series, minBubbleSize, maxBubbleSize, barOptions, negativesAsZeroes) {\r\n var families = [];\r\n var types = [];\r\n each(series, (function(i, item) {\r\n if (-1 === inArray(item.type, types)) {\r\n types.push(item.type)\r\n }\r\n }));\r\n each(types, (function(_, type) {\r\n var family = new SeriesFamily({\r\n type: type,\r\n minBubbleSize: minBubbleSize,\r\n maxBubbleSize: maxBubbleSize,\r\n barGroupPadding: barOptions.barGroupPadding,\r\n barGroupWidth: barOptions.barGroupWidth,\r\n negativesAsZeroes: negativesAsZeroes\r\n });\r\n family.add(series);\r\n family.adjustSeriesValues();\r\n families.push(family)\r\n }));\r\n return families\r\n};\r\nexport var SeriesDataSource = function(options) {\r\n var themeManager = this._themeManager = createThemeManager(options.chart);\r\n themeManager.setTheme(options.chart.theme);\r\n var topIndent = themeManager.getOptions(\"topIndent\");\r\n var bottomIndent = themeManager.getOptions(\"bottomIndent\");\r\n this._indent = {\r\n top: topIndent >= 0 && topIndent < 1 ? topIndent : 0,\r\n bottom: bottomIndent >= 0 && bottomIndent < 1 ? bottomIndent : 0\r\n };\r\n this._valueAxis = themeManager.getOptions(\"valueAxisRangeSelector\") || {};\r\n this._hideChart = false;\r\n this._series = this._calculateSeries(options);\r\n this._seriesFamilies = []\r\n};\r\nSeriesDataSource.prototype = {\r\n constructor: SeriesDataSource,\r\n _calculateSeries: function(options) {\r\n var series = [];\r\n var particularSeriesOptions;\r\n var seriesTheme;\r\n var data = options.dataSource || [];\r\n var parsedData;\r\n var chartThemeManager = this._themeManager;\r\n var seriesTemplate = chartThemeManager.getOptions(\"seriesTemplate\");\r\n var allSeriesOptions = seriesTemplate ? processSeriesTemplate(seriesTemplate, data) : options.chart.series;\r\n var dataSourceField;\r\n var valueAxis = this._valueAxis;\r\n var i;\r\n var newSeries;\r\n var groupsData;\r\n if (options.dataSource && !allSeriesOptions) {\r\n dataSourceField = options.dataSourceField || \"arg\";\r\n allSeriesOptions = {\r\n argumentField: dataSourceField,\r\n valueField: dataSourceField\r\n };\r\n this._hideChart = true\r\n }\r\n allSeriesOptions = Array.isArray(allSeriesOptions) ? allSeriesOptions : allSeriesOptions ? [allSeriesOptions] : [];\r\n for (i = 0; i < allSeriesOptions.length; i++) {\r\n particularSeriesOptions = extend(true, {}, allSeriesOptions[i]);\r\n particularSeriesOptions.rotated = false;\r\n seriesTheme = chartThemeManager.getOptions(\"series\", particularSeriesOptions, allSeriesOptions.length);\r\n seriesTheme.argumentField = seriesTheme.argumentField || options.dataSourceField;\r\n if (!seriesTheme.name) {\r\n seriesTheme.name = \"Series \" + (i + 1).toString()\r\n }\r\n if (data && data.length > 0) {\r\n newSeries = new Series({\r\n renderer: options.renderer,\r\n argumentAxis: options.argumentAxis,\r\n valueAxis: options.valueAxis,\r\n incidentOccurred: options.incidentOccurred\r\n }, seriesTheme);\r\n series.push(newSeries)\r\n }\r\n }\r\n if (series.length) {\r\n groupsData = {\r\n groups: [{\r\n series: series,\r\n valueAxis: options.valueAxis,\r\n valueOptions: {\r\n type: valueAxis.type,\r\n valueType: dataSourceField ? options.valueType : valueAxis.valueType\r\n }\r\n }],\r\n argumentOptions: {\r\n categories: options.categories,\r\n argumentType: options.valueType,\r\n type: options.axisType\r\n }\r\n };\r\n parsedData = validateData(data, groupsData, options.incidentOccurred, chartThemeManager.getOptions(\"dataPrepareSettings\"));\r\n this.argCategories = groupsData.categories;\r\n for (i = 0; i < series.length; i++) {\r\n series[i].updateData(parsedData[series[i].getArgumentField()])\r\n }\r\n }\r\n return series\r\n },\r\n createPoints() {\r\n if (0 === this._series.length) {\r\n return\r\n }\r\n var series = this._series;\r\n var viewport = new Range;\r\n var axis = series[0].getArgumentAxis();\r\n var themeManager = this._themeManager;\r\n var negativesAsZeroes = themeManager.getOptions(\"negativesAsZeroes\");\r\n var negativesAsZeros = themeManager.getOptions(\"negativesAsZeros\");\r\n series.forEach((function(s) {\r\n viewport.addRange(s.getArgumentRange())\r\n }));\r\n axis.getTranslator().updateBusinessRange(viewport);\r\n series.forEach((function(s) {\r\n s.createPoints()\r\n }));\r\n this._seriesFamilies = processSeriesFamilies(series, themeManager.getOptions(\"minBubbleSize\"), themeManager.getOptions(\"maxBubbleSize\"), {\r\n barGroupPadding: themeManager.getOptions(\"barGroupPadding\"),\r\n barGroupWidth: themeManager.getOptions(\"barGroupWidth\")\r\n }, isDefined(negativesAsZeroes) ? negativesAsZeroes : negativesAsZeros)\r\n },\r\n adjustSeriesDimensions: function() {\r\n each(this._seriesFamilies, (function(_, family) {\r\n family.adjustSeriesDimensions()\r\n }))\r\n },\r\n getBoundRange: function() {\r\n var rangeData;\r\n var valueAxis = this._valueAxis;\r\n var valRange = new Range({\r\n min: valueAxis.min,\r\n minVisible: valueAxis.min,\r\n max: valueAxis.max,\r\n maxVisible: valueAxis.max,\r\n axisType: valueAxis.type,\r\n base: valueAxis.logarithmBase\r\n });\r\n var argRange = new Range({});\r\n var rangeYSize;\r\n var rangeVisibleSizeY;\r\n var minIndent;\r\n var maxIndent;\r\n each(this._series, (function(_, series) {\r\n rangeData = series.getRangeData();\r\n valRange.addRange(rangeData.val);\r\n argRange.addRange(rangeData.arg)\r\n }));\r\n if (!valRange.isEmpty() && !argRange.isEmpty()) {\r\n minIndent = valueAxis.inverted ? this._indent.top : this._indent.bottom;\r\n maxIndent = valueAxis.inverted ? this._indent.bottom : this._indent.top;\r\n rangeYSize = valRange.max - valRange.min;\r\n rangeVisibleSizeY = (isNumeric(valRange.maxVisible) ? valRange.maxVisible : valRange.max) - (isNumeric(valRange.minVisible) ? valRange.minVisible : valRange.min);\r\n if (isDate(valRange.min)) {\r\n valRange.min = new Date(valRange.min.valueOf() - rangeYSize * minIndent)\r\n } else {\r\n valRange.min -= rangeYSize * minIndent\r\n }\r\n if (isDate(valRange.max)) {\r\n valRange.max = new Date(valRange.max.valueOf() + rangeYSize * maxIndent)\r\n } else {\r\n valRange.max += rangeYSize * maxIndent\r\n }\r\n if (isNumeric(rangeVisibleSizeY)) {\r\n valRange.maxVisible = valRange.maxVisible ? valRange.maxVisible + rangeVisibleSizeY * maxIndent : void 0;\r\n valRange.minVisible = valRange.minVisible ? valRange.minVisible - rangeVisibleSizeY * minIndent : void 0\r\n }\r\n valRange.invert = valueAxis.inverted\r\n }\r\n return {\r\n arg: argRange,\r\n val: valRange\r\n }\r\n },\r\n getMarginOptions: function(canvas) {\r\n var bubbleSize = Math.min(canvas.width, canvas.height) * this._themeManager.getOptions(\"maxBubbleSize\");\r\n return this._series.reduce((function(marginOptions, series) {\r\n var seriesOptions = series.getMarginOptions();\r\n if (true === seriesOptions.processBubbleSize) {\r\n seriesOptions.size = bubbleSize\r\n }\r\n return mergeMarginOptions(marginOptions, seriesOptions)\r\n }), {})\r\n },\r\n getSeries: function() {\r\n return this._series\r\n },\r\n isEmpty: function() {\r\n return 0 === this.getSeries().length\r\n },\r\n isShowChart: function() {\r\n return !this._hideChart\r\n },\r\n getCalculatedValueType: function() {\r\n var series = this._series[0];\r\n return null === series || void 0 === series ? void 0 : series.argumentType\r\n },\r\n getThemeManager: function() {\r\n return this._themeManager\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/range_selector/range_selector.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n isDefined as _isDefined,\r\n isNumeric as _isNumber,\r\n isDate as _isDate,\r\n type as _type,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n patchFontOptions,\r\n normalizeEnum as _normalizeEnum,\r\n getVizRangeObject as parseValue,\r\n convertVisualRangeObject,\r\n getCategoriesInfo,\r\n getLog,\r\n rangesAreEqual\r\n} from \"../core/utils\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nimport {\r\n Range\r\n} from \"../translators/range\";\r\nimport {\r\n Axis\r\n} from \"../axes/base_axis\";\r\nimport {\r\n correctValueType,\r\n getParser\r\n} from \"../components/parse_utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n consts,\r\n formatValue,\r\n HEIGHT_COMPACT_MODE\r\n} from \"./common\";\r\nimport {\r\n SlidersController\r\n} from \"./sliders_controller\";\r\nimport {\r\n Tracker\r\n} from \"./tracker\";\r\nimport {\r\n RangeView\r\n} from \"./range_view\";\r\nimport {\r\n SeriesDataSource\r\n} from \"./series_data_source\";\r\nimport {\r\n tickGenerator\r\n} from \"../axes/tick_generator\";\r\nimport constants from \"../axes/axes_constants\";\r\nimport baseWidgetModule from \"../core/base_widget\";\r\nvar _max = Math.max;\r\nvar _ceil = Math.ceil;\r\nvar _floor = Math.floor;\r\nvar START_VALUE = \"startValue\";\r\nvar END_VALUE = \"endValue\";\r\nvar DATETIME = \"datetime\";\r\nvar VALUE = \"value\";\r\nvar DISCRETE = \"discrete\";\r\nvar SEMIDISCRETE = \"semidiscrete\";\r\nvar STRING = \"string\";\r\nvar VALUE_CHANGED = VALUE + \"Changed\";\r\nvar CONTAINER_BACKGROUND_COLOR = \"containerBackgroundColor\";\r\nvar SLIDER_MARKER = \"sliderMarker\";\r\nvar OPTION_BACKGROUND = \"background\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar KEEP = \"keep\";\r\nvar SHIFT = \"shift\";\r\nvar RESET = \"reset\";\r\nvar INVISIBLE_POS = -1e3;\r\nvar SEMIDISCRETE_GRID_SPACING_FACTOR = 50;\r\nvar DEFAULT_AXIS_DIVISION_FACTOR = 30;\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 15;\r\nvar logarithmBase = 10;\r\n\r\nfunction calculateMarkerHeight(renderer, value, sliderMarkerOptions) {\r\n var formattedText = void 0 === value ? consts.emptySliderMarkerText : formatValue(value, sliderMarkerOptions);\r\n var textBBox = getTextBBox(renderer, formattedText, sliderMarkerOptions.font);\r\n return _ceil(textBBox.height) + 2 * sliderMarkerOptions.paddingTopBottom + consts.pointerSize\r\n}\r\n\r\nfunction calculateScaleLabelHalfWidth(renderer, value, scaleOptions, tickIntervalsInfo) {\r\n var formattedText = formatValue(value, scaleOptions.label, tickIntervalsInfo, scaleOptions.valueType, scaleOptions.type, scaleOptions.logarithmBase);\r\n var textBBox = getTextBBox(renderer, formattedText, scaleOptions.label.font);\r\n return _ceil(textBBox.width / 2)\r\n}\r\n\r\nfunction calculateIndents(renderer, scale, sliderMarkerOptions, indentOptions, tickIntervalsInfo) {\r\n var leftMarkerHeight;\r\n var leftScaleLabelWidth = 0;\r\n var rightScaleLabelWidth = 0;\r\n var rightMarkerHeight;\r\n var placeholderWidthLeft;\r\n var placeholderWidthRight;\r\n var placeholderHeight;\r\n var ticks = \"semidiscrete\" === scale.type ? scale.customTicks : tickIntervalsInfo.ticks;\r\n var startTickValue;\r\n var endTickValue;\r\n indentOptions = indentOptions || {};\r\n placeholderWidthLeft = indentOptions.left;\r\n placeholderWidthRight = indentOptions.right;\r\n placeholderHeight = sliderMarkerOptions.placeholderHeight;\r\n if (sliderMarkerOptions.visible) {\r\n leftMarkerHeight = calculateMarkerHeight(renderer, scale.startValue, sliderMarkerOptions);\r\n rightMarkerHeight = calculateMarkerHeight(renderer, scale.endValue, sliderMarkerOptions);\r\n if (void 0 === placeholderHeight) {\r\n placeholderHeight = _max(leftMarkerHeight, rightMarkerHeight)\r\n }\r\n }\r\n if (scale.label.visible) {\r\n startTickValue = _isDefined(scale.startValue) ? ticks[0] : void 0;\r\n endTickValue = _isDefined(scale.endValue) ? ticks[ticks.length - 1] : void 0;\r\n leftScaleLabelWidth = calculateScaleLabelHalfWidth(renderer, startTickValue, scale, tickIntervalsInfo);\r\n rightScaleLabelWidth = calculateScaleLabelHalfWidth(renderer, endTickValue, scale, tickIntervalsInfo)\r\n }\r\n placeholderWidthLeft = void 0 !== placeholderWidthLeft ? placeholderWidthLeft : leftScaleLabelWidth;\r\n placeholderWidthRight = (void 0 !== placeholderWidthRight ? placeholderWidthRight : rightScaleLabelWidth) || 1;\r\n return {\r\n left: placeholderWidthLeft,\r\n right: placeholderWidthRight,\r\n top: placeholderHeight || 0,\r\n bottom: 0\r\n }\r\n}\r\n\r\nfunction calculateValueType(firstValue, secondValue) {\r\n var typeFirstValue = _type(firstValue);\r\n var typeSecondValue = _type(secondValue);\r\n var validType = function(type) {\r\n return typeFirstValue === type || typeSecondValue === type\r\n };\r\n return validType(\"date\") ? DATETIME : validType(\"number\") ? \"numeric\" : validType(STRING) ? STRING : \"\"\r\n}\r\n\r\nfunction showScaleMarkers(scaleOptions) {\r\n return scaleOptions.valueType === DATETIME && scaleOptions.marker.visible\r\n}\r\n\r\nfunction updateTranslatorRangeInterval(translatorRange, scaleOptions) {\r\n var intervalX = scaleOptions.minorTickInterval || scaleOptions.tickInterval;\r\n if (\"datetime\" === scaleOptions.valueType) {\r\n intervalX = dateUtils.dateToMilliseconds(intervalX)\r\n }\r\n translatorRange.addRange({\r\n interval: intervalX\r\n })\r\n}\r\n\r\nfunction checkLogarithmicOptions(options, defaultLogarithmBase, incidentOccurred) {\r\n if (!options) {\r\n return\r\n }\r\n var logarithmBase = options.logarithmBase;\r\n if (options.type === LOGARITHMIC && logarithmBase <= 0 || logarithmBase && !_isNumber(logarithmBase)) {\r\n options.logarithmBase = defaultLogarithmBase;\r\n incidentOccurred(\"E2104\")\r\n } else if (options.type !== LOGARITHMIC) {\r\n options.logarithmBase = void 0\r\n }\r\n}\r\n\r\nfunction calculateScaleAreaHeight(renderer, scaleOptions, visibleMarkers, tickIntervalsInfo) {\r\n var labelScaleOptions = scaleOptions.label;\r\n var markerScaleOptions = scaleOptions.marker;\r\n var placeholderHeight = scaleOptions.placeholderHeight;\r\n var ticks = \"semidiscrete\" === scaleOptions.type ? scaleOptions.customTicks : tickIntervalsInfo.ticks;\r\n var text = formatValue(ticks[0], labelScaleOptions);\r\n if (placeholderHeight) {\r\n return placeholderHeight\r\n } else {\r\n return (labelScaleOptions.visible ? labelScaleOptions.topIndent + getTextBBox(renderer, text, labelScaleOptions.font).height : 0) + (visibleMarkers ? markerScaleOptions.topIndent + markerScaleOptions.separatorHeight : 0)\r\n }\r\n}\r\n\r\nfunction getMinorTickIntervalUnit(tickInterval, minorTickInterval, withCorrection) {\r\n var interval = dateUtils.getDateUnitInterval(minorTickInterval);\r\n var majorUnit = dateUtils.getDateUnitInterval(tickInterval);\r\n var idx = dateUtils.dateUnitIntervals.indexOf(interval);\r\n if (withCorrection && interval === majorUnit && idx > 0) {\r\n interval = dateUtils.dateUnitIntervals[idx - 1]\r\n }\r\n return interval\r\n}\r\n\r\nfunction getNextTickInterval(tickInterval, minorTickInterval, isDateType) {\r\n if (!tickInterval) {\r\n tickInterval = minorTickInterval\r\n } else if (isDateType) {\r\n tickInterval = dateUtils.getNextDateUnit(tickInterval)\r\n } else {\r\n tickInterval += minorTickInterval\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction calculateTickIntervalsForSemidiscreteScale(scaleOptions, min, max, screenDelta) {\r\n var minorTickInterval = scaleOptions.minorTickInterval;\r\n var tickInterval = scaleOptions.tickInterval;\r\n var interval;\r\n var isDateType = \"datetime\" === scaleOptions.valueType;\r\n var gridSpacingFactor = scaleOptions.axisDivisionFactor || {};\r\n var tickCountByInterval;\r\n var tickCountByScreen;\r\n if (!tickInterval) {\r\n do {\r\n interval = getNextTickInterval(tickInterval, minorTickInterval, isDateType);\r\n if (tickInterval !== interval) {\r\n tickInterval = interval\r\n } else {\r\n break\r\n }\r\n if (isDateType) {\r\n interval = dateUtils.dateToMilliseconds(tickInterval)\r\n }\r\n tickCountByInterval = _ceil((max - min) / interval);\r\n tickCountByScreen = _floor(screenDelta / (gridSpacingFactor[tickInterval] || SEMIDISCRETE_GRID_SPACING_FACTOR)) || 1\r\n } while (interval && tickCountByInterval > tickCountByScreen)\r\n }\r\n return {\r\n tickInterval: tickInterval,\r\n minorTickInterval: minorTickInterval,\r\n bounds: {\r\n minVisible: min,\r\n maxVisible: max\r\n },\r\n ticks: []\r\n }\r\n}\r\n\r\nfunction updateTickIntervals(scaleOptions, screenDelta, incidentOccurred, range) {\r\n var result;\r\n var min = _isDefined(range.minVisible) ? range.minVisible : range.min;\r\n var max = _isDefined(range.maxVisible) ? range.maxVisible : range.max;\r\n var categoriesInfo = scaleOptions._categoriesInfo;\r\n var ticksInfo;\r\n var length;\r\n var bounds = {};\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n result = calculateTickIntervalsForSemidiscreteScale(scaleOptions, min, max, screenDelta)\r\n } else {\r\n ticksInfo = tickGenerator({\r\n axisType: scaleOptions.type,\r\n dataType: scaleOptions.valueType,\r\n logBase: scaleOptions.logarithmBase,\r\n allowNegatives: true,\r\n linearThreshold: Math.abs(scaleOptions.linearThreshold || 0),\r\n axisDivisionFactor: scaleOptions.axisDivisionFactor,\r\n minorAxisDivisionFactor: scaleOptions.minorAxisDivisionFactor,\r\n calculateMinors: true,\r\n allowDecimals: scaleOptions.allowDecimals,\r\n endOnTick: scaleOptions.endOnTick,\r\n incidentOccurred: incidentOccurred,\r\n rangeIsEmpty: range.isEmpty()\r\n })({\r\n min: min,\r\n max: max,\r\n categories: _isDefined(categoriesInfo) ? categoriesInfo.categories : []\r\n }, screenDelta, scaleOptions.tickInterval, scaleOptions.forceUserTickInterval, void 0, scaleOptions.minorTickInterval, scaleOptions.minorTickCount);\r\n length = ticksInfo.ticks.length;\r\n bounds.minVisible = ticksInfo.ticks[0] < min ? ticksInfo.ticks[0] : min;\r\n bounds.maxVisible = ticksInfo.ticks[length - 1] > max ? ticksInfo.ticks[length - 1] : max;\r\n result = {\r\n tickInterval: ticksInfo.tickInterval,\r\n minorTickInterval: 0 === scaleOptions.minorTickInterval ? 0 : ticksInfo.minorTickInterval,\r\n bounds: bounds,\r\n ticks: ticksInfo.ticks\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getFirstDayOfWeek(options) {\r\n var _options$workWeek;\r\n return null === (_options$workWeek = options.workWeek) || void 0 === _options$workWeek ? void 0 : _options$workWeek[0]\r\n}\r\n\r\nfunction calculateTranslatorRange(seriesDataSource, scaleOptions) {\r\n var minValue;\r\n var maxValue;\r\n var inverted = false;\r\n var startValue = scaleOptions.startValue;\r\n var endValue = scaleOptions.endValue;\r\n var categories;\r\n var categoriesInfo;\r\n var translatorRange = seriesDataSource ? seriesDataSource.getBoundRange().arg : new Range;\r\n var rangeForCategories;\r\n var isDate = \"datetime\" === scaleOptions.valueType;\r\n var firstDayOfWeek = getFirstDayOfWeek(scaleOptions);\r\n var minRange = scaleOptions.minRange;\r\n if (scaleOptions.type === DISCRETE) {\r\n rangeForCategories = new Range({\r\n minVisible: startValue,\r\n maxVisible: endValue\r\n });\r\n rangeForCategories.addRange(translatorRange);\r\n translatorRange = rangeForCategories;\r\n categories = seriesDataSource ? seriesDataSource.argCategories : scaleOptions.categories || startValue && endValue && [startValue, endValue];\r\n categories = categories || [];\r\n scaleOptions._categoriesInfo = categoriesInfo = getCategoriesInfo(categories, startValue, endValue)\r\n }\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n startValue = scaleOptions.startValue = correctValueByInterval(scaleOptions.startValue, isDate, minRange, firstDayOfWeek);\r\n endValue = scaleOptions.endValue = correctValueByInterval(scaleOptions.endValue, isDate, minRange, firstDayOfWeek);\r\n translatorRange.minVisible = correctValueByInterval(translatorRange.minVisible, isDate, minRange, firstDayOfWeek);\r\n translatorRange.maxVisible = correctValueByInterval(translatorRange.maxVisible, isDate, minRange, firstDayOfWeek);\r\n translatorRange.min = correctValueByInterval(translatorRange.min, isDate, minRange, firstDayOfWeek);\r\n translatorRange.max = correctValueByInterval(translatorRange.max, isDate, minRange, firstDayOfWeek)\r\n }\r\n if (_isDefined(startValue) && _isDefined(endValue)) {\r\n inverted = categoriesInfo ? categoriesInfo.inverted : startValue > endValue;\r\n minValue = categoriesInfo ? categoriesInfo.start : inverted ? endValue : startValue;\r\n maxValue = categoriesInfo ? categoriesInfo.end : inverted ? startValue : endValue\r\n } else if (_isDefined(startValue) || _isDefined(endValue)) {\r\n minValue = startValue;\r\n maxValue = endValue\r\n } else if (categoriesInfo) {\r\n minValue = categoriesInfo.start;\r\n maxValue = categoriesInfo.end\r\n }\r\n translatorRange.addRange({\r\n invert: inverted,\r\n min: minValue,\r\n max: maxValue,\r\n minVisible: minValue,\r\n maxVisible: maxValue,\r\n dataType: scaleOptions.valueType\r\n });\r\n translatorRange.addRange({\r\n categories: !seriesDataSource ? categories : void 0,\r\n base: scaleOptions.logarithmBase,\r\n axisType: scaleOptions.type,\r\n dataType: scaleOptions.valueType\r\n });\r\n seriesDataSource && translatorRange.sortCategories(categories);\r\n return translatorRange\r\n}\r\n\r\nfunction startEndNotDefined(start, end) {\r\n return !_isDefined(start) || !_isDefined(end)\r\n}\r\n\r\nfunction getTextBBox(renderer, text, fontOptions) {\r\n var textElement = renderer.text(text, INVISIBLE_POS, INVISIBLE_POS).css(patchFontOptions(fontOptions)).append(renderer.root);\r\n var textBBox = textElement.getBBox();\r\n textElement.remove();\r\n return textBBox\r\n}\r\n\r\nfunction getDateMarkerVisibilityChecker(screenDelta) {\r\n return function(isDateScale, isMarkerVisible, min, max, tickInterval) {\r\n if (isMarkerVisible && isDateScale) {\r\n if (!_isDefined(tickInterval) || tickInterval.years || tickInterval.months >= 6 || screenDelta / SEMIDISCRETE_GRID_SPACING_FACTOR < _ceil((max - min) / dateUtils.dateToMilliseconds(\"year\")) + 1) {\r\n isMarkerVisible = false\r\n }\r\n }\r\n return isMarkerVisible\r\n }\r\n}\r\n\r\nfunction updateScaleOptions(scaleOptions, seriesDataSource, translatorRange, tickIntervalsInfo, checkDateMarkerVisibility) {\r\n var bounds;\r\n var isEmptyInterval;\r\n var categoriesInfo = scaleOptions._categoriesInfo;\r\n var intervals;\r\n var isDateTime = scaleOptions.valueType === DATETIME;\r\n if (seriesDataSource && !seriesDataSource.isEmpty() && !translatorRange.isEmpty()) {\r\n bounds = tickIntervalsInfo.bounds;\r\n translatorRange.addRange(bounds);\r\n scaleOptions.startValue = translatorRange.invert ? bounds.maxVisible : bounds.minVisible;\r\n scaleOptions.endValue = translatorRange.invert ? bounds.minVisible : bounds.maxVisible\r\n }\r\n scaleOptions.marker.visible = checkDateMarkerVisibility(isDateTime && -1 === scaleOptions.type.indexOf(DISCRETE), scaleOptions.marker.visible, scaleOptions.startValue, scaleOptions.endValue, tickIntervalsInfo.tickInterval);\r\n if (categoriesInfo) {\r\n scaleOptions.startValue = categoriesInfo.start;\r\n scaleOptions.endValue = categoriesInfo.end\r\n }\r\n if (-1 === scaleOptions.type.indexOf(DISCRETE)) {\r\n isEmptyInterval = _isDate(scaleOptions.startValue) && _isDate(scaleOptions.endValue) && scaleOptions.startValue.getTime() === scaleOptions.endValue.getTime() || scaleOptions.startValue === scaleOptions.endValue\r\n }\r\n scaleOptions.isEmpty = startEndNotDefined(scaleOptions.startValue, scaleOptions.endValue) || isEmptyInterval;\r\n if (scaleOptions.isEmpty) {\r\n scaleOptions.startValue = scaleOptions.endValue = void 0\r\n } else {\r\n scaleOptions.minorTickInterval = tickIntervalsInfo.minorTickInterval;\r\n scaleOptions.tickInterval = tickIntervalsInfo.tickInterval;\r\n if (isDateTime && (!_isDefined(scaleOptions.label.format) || scaleOptions.type === SEMIDISCRETE && scaleOptions.minorTickInterval !== scaleOptions.tickInterval)) {\r\n if (scaleOptions.type === DISCRETE) {\r\n scaleOptions.label.format = formatHelper.getDateFormatByTicks(tickIntervalsInfo.ticks)\r\n } else if (!scaleOptions.marker.visible) {\r\n scaleOptions.label.format = formatHelper.getDateFormatByTickInterval(scaleOptions.startValue, scaleOptions.endValue, scaleOptions.tickInterval)\r\n } else {\r\n scaleOptions.label.format = dateUtils.getDateFormatByTickInterval(scaleOptions.tickInterval)\r\n }\r\n }\r\n }\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n intervals = getIntervalCustomTicks(scaleOptions);\r\n scaleOptions.customMinorTicks = intervals.altIntervals;\r\n scaleOptions.customTicks = intervals.intervals;\r\n scaleOptions.customBoundTicks = [scaleOptions.customTicks[0]]\r\n }\r\n}\r\n\r\nfunction prepareScaleOptions(scaleOption, calculatedValueType, incidentOccurred, containerColor) {\r\n var parsedValue = 0;\r\n var valueType = correctValueType(_normalizeEnum(scaleOption.valueType));\r\n var validateStartEndValues = function(field, parser) {\r\n var messageToIncidentOccurred = field === START_VALUE ? \"start\" : \"end\";\r\n if (_isDefined(scaleOption[field])) {\r\n parsedValue = parser(scaleOption[field]);\r\n if (_isDefined(parsedValue)) {\r\n scaleOption[field] = parsedValue\r\n } else {\r\n scaleOption[field] = void 0;\r\n incidentOccurred(\"E2202\", [messageToIncidentOccurred])\r\n }\r\n }\r\n };\r\n valueType = calculatedValueType || valueType;\r\n if (!valueType) {\r\n valueType = calculateValueType(scaleOption.startValue, scaleOption.endValue) || \"numeric\"\r\n }\r\n if (valueType === STRING || scaleOption.categories) {\r\n scaleOption.type = DISCRETE;\r\n valueType = STRING\r\n }\r\n scaleOption.containerColor = containerColor;\r\n scaleOption.valueType = valueType;\r\n scaleOption.dataType = valueType;\r\n var parser = getParser(valueType);\r\n validateStartEndValues(START_VALUE, parser);\r\n validateStartEndValues(END_VALUE, parser);\r\n checkLogarithmicOptions(scaleOption, logarithmBase, incidentOccurred);\r\n if (!scaleOption.type) {\r\n scaleOption.type = \"continuous\"\r\n }\r\n scaleOption.parser = parser;\r\n if (scaleOption.type === SEMIDISCRETE) {\r\n scaleOption.minorTick.visible = false;\r\n scaleOption.minorTickInterval = scaleOption.minRange;\r\n scaleOption.marker.visible = false;\r\n scaleOption.maxRange = void 0\r\n }\r\n scaleOption.forceUserTickInterval |= _isDefined(scaleOption.tickInterval) && !_isDefined(scaleOption.axisDivisionFactor);\r\n scaleOption.axisDivisionFactor = _isDefined(scaleOption.axisDivisionFactor) ? scaleOption.axisDivisionFactor : DEFAULT_AXIS_DIVISION_FACTOR;\r\n scaleOption.minorAxisDivisionFactor = _isDefined(scaleOption.minorAxisDivisionFactor) ? scaleOption.minorAxisDivisionFactor : DEFAULT_MINOR_AXIS_DIVISION_FACTOR;\r\n return scaleOption\r\n}\r\n\r\nfunction correctValueByInterval(value, isDate, interval, firstDayOfWeek) {\r\n if (_isDefined(value)) {\r\n value = isDate ? dateUtils.correctDateWithUnitBeginning(new Date(value), interval, null, firstDayOfWeek) : adjust(_floor(adjust(value / interval)) * interval)\r\n }\r\n return value\r\n}\r\n\r\nfunction getIntervalCustomTicks(options) {\r\n var min = options.startValue;\r\n var max = options.endValue;\r\n var isDate = \"datetime\" === options.valueType;\r\n var firstDayOfWeek = getFirstDayOfWeek(options);\r\n var tickInterval = options.tickInterval;\r\n var res = {\r\n intervals: []\r\n };\r\n if (!_isDefined(min) || !_isDefined(max)) {\r\n return res\r\n }\r\n res.intervals = dateUtils.getSequenceByInterval(min, max, options.minorTickInterval);\r\n if (tickInterval !== options.minorTickInterval) {\r\n res.altIntervals = res.intervals;\r\n min = correctValueByInterval(min, isDate, tickInterval, firstDayOfWeek);\r\n max = correctValueByInterval(max, isDate, tickInterval, firstDayOfWeek);\r\n res.intervals = dateUtils.getSequenceByInterval(min, max, tickInterval);\r\n res.intervals[0] = res.altIntervals[0]\r\n }\r\n return res\r\n}\r\n\r\nfunction getPrecisionForSlider(startValue, endValue, screenDelta) {\r\n var d = Math.abs(endValue - startValue) / screenDelta;\r\n var tail = d - _floor(d);\r\n return tail > 0 ? _ceil(Math.abs(adjust(getLog(tail, 10)))) : 0\r\n}\r\nvar dxRangeSelector = baseWidgetModule.inherit({\r\n _toggleParentsScrollSubscription() {},\r\n _eventsMap: {\r\n onValueChanged: {\r\n name: VALUE_CHANGED\r\n }\r\n },\r\n _rootClassPrefix: \"dxrs\",\r\n _rootClass: \"dxrs-range-selector\",\r\n _dataIsReady: function() {\r\n return this._dataIsLoaded()\r\n },\r\n _initialChanges: [\"DATA_SOURCE\", \"VALUE\"],\r\n _themeDependentChanges: [\"MOSTLY_TOTAL\"],\r\n _themeSection: \"rangeSelector\",\r\n _fontFields: [\"scale.label.font\", \"sliderMarker.font\"],\r\n _initCore: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var root = renderer.root;\r\n root.css({\r\n \"touch-action\": \"pan-y\"\r\n });\r\n that._clipRect = renderer.clipRect();\r\n var rangeViewGroup = renderer.g().attr({\r\n class: \"dxrs-view\"\r\n }).append(root);\r\n var slidersGroup = renderer.g().attr({\r\n class: \"dxrs-slidersContainer\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var scaleGroup = renderer.g().attr({\r\n class: \"dxrs-scale\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var labelsAxesGroup = renderer.g().attr({\r\n class: \"dxrs-scale-elements\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var scaleBreaksGroup = renderer.g().attr({\r\n class: \"dxrs-scale-breaks\"\r\n }).append(root);\r\n var trackersGroup = renderer.g().attr({\r\n class: \"dxrs-trackers\"\r\n }).append(root);\r\n that._axis = new AxisWrapper({\r\n renderer: renderer,\r\n root: scaleGroup,\r\n scaleBreaksGroup: scaleBreaksGroup,\r\n labelsAxesGroup: labelsAxesGroup,\r\n updateSelectedRange: function(range, e) {\r\n that.setValue(convertVisualRangeObject(range), e)\r\n },\r\n incidentOccurred: that._incidentOccurred\r\n });\r\n that._rangeView = new RangeView({\r\n renderer: renderer,\r\n root: rangeViewGroup,\r\n translator: that._axis.getTranslator()\r\n });\r\n that._slidersController = new SlidersController({\r\n renderer: renderer,\r\n root: slidersGroup,\r\n trackersGroup: trackersGroup,\r\n updateSelectedRange: function(range, lastSelectedRange, e) {\r\n if (!that._rangeOption) {\r\n that.option(VALUE, convertVisualRangeObject(range, isPlainObject(that._options.silent(VALUE))))\r\n }\r\n that._eventTrigger(VALUE_CHANGED, {\r\n value: convertVisualRangeObject(range),\r\n previousValue: convertVisualRangeObject(lastSelectedRange),\r\n event: e\r\n })\r\n },\r\n axis: that._axis,\r\n translator: that._axis.getTranslator()\r\n });\r\n that._tracker = new Tracker({\r\n renderer: renderer,\r\n controller: that._slidersController\r\n })\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 160\r\n }\r\n },\r\n _disposeCore: function() {\r\n this._axis.dispose();\r\n this._slidersController.dispose();\r\n this._tracker.dispose()\r\n },\r\n _applySize: function(rect) {\r\n this._clientRect = rect.slice();\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _optionChangesMap: {\r\n scale: \"SCALE\",\r\n value: \"VALUE\",\r\n dataSource: \"DATA_SOURCE\"\r\n },\r\n _optionChangesOrder: [\"SCALE\", \"DATA_SOURCE\"],\r\n _change_SCALE: function() {\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _setValueByDataSource() {\r\n var options = this._options.silent();\r\n var axis = this._axis;\r\n if (options.dataSource) {\r\n var selectedRangeUpdateMode = this.option(\"selectedRangeUpdateMode\");\r\n var value = this.getValue();\r\n var valueIsReady = _isDefined(value[0]) && _isDefined(value[1]);\r\n if (_isDefined(selectedRangeUpdateMode)) {\r\n selectedRangeUpdateMode = _normalizeEnum(selectedRangeUpdateMode);\r\n this.__skipAnimation = true\r\n } else if (valueIsReady && !this._dataSourceIsAsync) {\r\n selectedRangeUpdateMode = RESET\r\n }\r\n if (\"auto\" === selectedRangeUpdateMode && valueIsReady) {\r\n var rangesInfo = axis.allScaleSelected(value);\r\n if (rangesInfo.startValue && rangesInfo.endValue) {\r\n selectedRangeUpdateMode = RESET\r\n } else if (rangesInfo.endValue) {\r\n selectedRangeUpdateMode = SHIFT\r\n } else {\r\n selectedRangeUpdateMode = KEEP\r\n }\r\n }\r\n if (selectedRangeUpdateMode === RESET) {\r\n options[VALUE] = null\r\n } else if (selectedRangeUpdateMode === SHIFT && valueIsReady) {\r\n var _value = this.getValue();\r\n this.__skipAnimation = true;\r\n options[VALUE] = {\r\n length: axis.getVisualRangeLength({\r\n minVisible: _value[0],\r\n maxVisible: _value[1]\r\n })\r\n }\r\n } else if (selectedRangeUpdateMode === KEEP) {\r\n this.__skipAnimation = true\r\n }\r\n }\r\n this._dataSourceIsAsync = void 0\r\n },\r\n _change_DATA_SOURCE: function() {\r\n if (this._options.silent(\"dataSource\")) {\r\n this._updateDataSource()\r\n }\r\n },\r\n _customChangesOrder: [\"MOSTLY_TOTAL\", \"VALUE\", \"SLIDER_SELECTION\"],\r\n _change_MOSTLY_TOTAL: function() {\r\n this._applyMostlyTotalChange()\r\n },\r\n _change_SLIDER_SELECTION: function() {\r\n var value = this._options.silent(VALUE);\r\n this._slidersController.setSelectedRange(value && parseValue(value))\r\n },\r\n _change_VALUE: function() {\r\n var option = this._rangeOption;\r\n this._dataSourceIsAsync = !this._dataIsReady();\r\n if (option) {\r\n this._options.silent(VALUE, option);\r\n this.setValue(option)\r\n }\r\n },\r\n _validateRange: function(start, end) {\r\n var translator = this._axis.getTranslator();\r\n if (_isDefined(start) && !translator.isValid(start) || _isDefined(end) && !translator.isValid(end)) {\r\n this._incidentOccurred(\"E2203\")\r\n }\r\n },\r\n _applyChanges: function() {\r\n var that = this;\r\n var value = that._options.silent(VALUE);\r\n if (that._changes.has(\"VALUE\") && value) {\r\n that._rangeOption = value\r\n }\r\n that.callBase.apply(that, arguments);\r\n that._rangeOption = null;\r\n that.__isResizing = that.__skipAnimation = false\r\n },\r\n _applyMostlyTotalChange: function() {\r\n var renderer = this._renderer;\r\n var rect = this._clientRect;\r\n var currentAnimationEnabled;\r\n var canvas = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n if (this.__isResizing || this.__skipAnimation) {\r\n currentAnimationEnabled = renderer.animationEnabled();\r\n renderer.updateAnimationOptions({\r\n enabled: false\r\n })\r\n }\r\n this._clipRect.attr({\r\n x: rect[0],\r\n y: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n });\r\n this._axis.getTranslator().update(new Range, canvas, {\r\n isHorizontal: true\r\n });\r\n this._updateContent({\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n });\r\n if (this.__isResizing || this.__skipAnimation) {\r\n renderer.updateAnimationOptions({\r\n enabled: currentAnimationEnabled\r\n })\r\n }\r\n this._drawn()\r\n },\r\n _dataSourceChangedHandler: function() {\r\n this._setValueByDataSource();\r\n this._requestChange([\"MOSTLY_TOTAL\"])\r\n },\r\n _completeSeriesDataSourceCreation(scaleOptions, seriesDataSource) {\r\n var rect = this._clientRect;\r\n var canvas = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n this._axis.updateOptions(extend({}, scaleOptions, {\r\n isHorizontal: true,\r\n label: {}\r\n }));\r\n seriesDataSource.isShowChart() && this._axis.setMarginOptions(seriesDataSource.getMarginOptions(canvas));\r\n this._axis.updateCanvas(canvas);\r\n seriesDataSource.createPoints()\r\n },\r\n _updateContent: function(canvas) {\r\n var chartOptions = this.option(\"chart\");\r\n var seriesDataSource = this._createSeriesDataSource(chartOptions);\r\n var isCompactMode = !(seriesDataSource && seriesDataSource.isShowChart() || this.option(\"background.image.url\"));\r\n var scaleOptions = prepareScaleOptions(this._getOption(\"scale\"), seriesDataSource && seriesDataSource.getCalculatedValueType(), this._incidentOccurred, this._getOption(\"containerBackgroundColor\", true));\r\n seriesDataSource && this._completeSeriesDataSourceCreation(scaleOptions, seriesDataSource);\r\n var argTranslatorRange = calculateTranslatorRange(seriesDataSource, scaleOptions);\r\n var tickIntervalsInfo = updateTickIntervals(scaleOptions, canvas.width, this._incidentOccurred, argTranslatorRange);\r\n var chartThemeManager = seriesDataSource && seriesDataSource.isShowChart() && seriesDataSource.getThemeManager();\r\n if (chartThemeManager) {\r\n checkLogarithmicOptions(chartOptions && chartOptions.valueAxis, chartThemeManager.getOptions(\"valueAxis\").logarithmBase, this._incidentOccurred)\r\n }\r\n updateScaleOptions(scaleOptions, seriesDataSource, argTranslatorRange, tickIntervalsInfo, getDateMarkerVisibilityChecker(canvas.width));\r\n updateTranslatorRangeInterval(argTranslatorRange, scaleOptions);\r\n var sliderMarkerOptions = this._prepareSliderMarkersOptions(scaleOptions, canvas.width, tickIntervalsInfo, argTranslatorRange);\r\n var indents = calculateIndents(this._renderer, scaleOptions, sliderMarkerOptions, this.option(\"indent\"), tickIntervalsInfo);\r\n var rangeContainerCanvas = {\r\n left: canvas.left + indents.left,\r\n top: canvas.top + indents.top,\r\n width: canvas.left + indents.left + _max(canvas.width - indents.left - indents.right, 1),\r\n height: _max(!isCompactMode ? canvas.height - indents.top - indents.bottom - calculateScaleAreaHeight(this._renderer, scaleOptions, showScaleMarkers(scaleOptions), tickIntervalsInfo) : HEIGHT_COMPACT_MODE, 0),\r\n right: 0,\r\n bottom: 0\r\n };\r\n this._axis.update(scaleOptions, isCompactMode, rangeContainerCanvas, argTranslatorRange, seriesDataSource);\r\n scaleOptions.minorTickInterval = scaleOptions.isEmpty ? 0 : scaleOptions.minorTickInterval;\r\n this._updateElements(scaleOptions, sliderMarkerOptions, isCompactMode, rangeContainerCanvas, seriesDataSource);\r\n if (chartThemeManager) {\r\n chartThemeManager.dispose()\r\n }\r\n },\r\n _updateElements: function(scaleOptions, sliderMarkerOptions, isCompactMode, canvas, seriesDataSource) {\r\n var behavior = this._getOption(\"behavior\");\r\n var shutterOptions = this._getOption(\"shutter\");\r\n var isNotSemiDiscrete = scaleOptions.type !== SEMIDISCRETE;\r\n shutterOptions.color = shutterOptions.color || this._getOption(CONTAINER_BACKGROUND_COLOR, true);\r\n this._rangeView.update(this.option(\"background\"), this._themeManager.theme(\"background\"), canvas, isCompactMode, behavior.animationEnabled && this._renderer.animationEnabled(), seriesDataSource);\r\n this._isUpdating = true;\r\n this._slidersController.update([canvas.top, canvas.top + canvas.height], behavior, isCompactMode, this._getOption(\"sliderHandle\"), sliderMarkerOptions, shutterOptions, {\r\n minRange: isNotSemiDiscrete ? this.option(\"scale.minRange\") : void 0,\r\n maxRange: isNotSemiDiscrete ? this.option(\"scale.maxRange\") : void 0\r\n }, this._axis.getFullTicks(), this._getOption(\"selectedRangeColor\", true));\r\n this._requestChange([\"SLIDER_SELECTION\"]);\r\n this._isUpdating = false;\r\n this._tracker.update(!this._axis.getTranslator().getBusinessRange().isEmpty(), behavior)\r\n },\r\n _createSeriesDataSource: function(chartOptions) {\r\n var seriesDataSource;\r\n var dataSource = this._dataSourceItems();\r\n var scaleOptions = this._getOption(\"scale\");\r\n var valueType = scaleOptions.valueType || calculateValueType(scaleOptions.startValue, scaleOptions.endValue);\r\n var valueAxis = new Axis({\r\n renderer: this._renderer,\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\"\r\n });\r\n valueAxis.updateOptions({\r\n isHorizontal: false,\r\n label: {},\r\n categoriesSortingMethod: this._getOption(\"chart\").valueAxis.categoriesSortingMethod\r\n });\r\n if (dataSource || chartOptions && chartOptions.series) {\r\n chartOptions = extend({}, chartOptions, {\r\n theme: this.option(\"theme\")\r\n });\r\n seriesDataSource = new SeriesDataSource({\r\n renderer: this._renderer,\r\n dataSource: dataSource,\r\n valueType: _normalizeEnum(valueType),\r\n axisType: scaleOptions.type,\r\n chart: chartOptions,\r\n dataSourceField: this.option(\"dataSourceField\"),\r\n incidentOccurred: this._incidentOccurred,\r\n categories: scaleOptions.categories,\r\n argumentAxis: this._axis,\r\n valueAxis: valueAxis\r\n })\r\n }\r\n return seriesDataSource\r\n },\r\n _prepareSliderMarkersOptions: function(scaleOptions, screenDelta, tickIntervalsInfo, argRange) {\r\n var minorTickInterval = tickIntervalsInfo.minorTickInterval;\r\n var tickInterval = tickIntervalsInfo.tickInterval;\r\n var interval = tickInterval;\r\n var endValue = scaleOptions.endValue;\r\n var startValue = scaleOptions.startValue;\r\n var sliderMarkerOptions = this._getOption(SLIDER_MARKER);\r\n var doNotSnap = !this._getOption(\"behavior\").snapToTicks;\r\n var isTypeDiscrete = scaleOptions.type === DISCRETE;\r\n var isValueTypeDatetime = scaleOptions.valueType === DATETIME;\r\n sliderMarkerOptions.borderColor = this._getOption(CONTAINER_BACKGROUND_COLOR, true);\r\n if (!sliderMarkerOptions.format && !argRange.isEmpty()) {\r\n if (doNotSnap && _isNumber(scaleOptions.startValue)) {\r\n sliderMarkerOptions.format = {\r\n type: \"fixedPoint\",\r\n precision: getPrecisionForSlider(startValue, endValue, screenDelta)\r\n }\r\n }\r\n if (isValueTypeDatetime && !isTypeDiscrete) {\r\n if (_isDefined(minorTickInterval) && 0 !== minorTickInterval) {\r\n interval = getMinorTickIntervalUnit(tickInterval, minorTickInterval, doNotSnap)\r\n }\r\n if (!scaleOptions.marker.visible) {\r\n if (_isDefined(startValue) && _isDefined(endValue)) {\r\n sliderMarkerOptions.format = formatHelper.getDateFormatByTickInterval(startValue, endValue, interval)\r\n }\r\n } else {\r\n sliderMarkerOptions.format = dateUtils.getDateFormatByTickInterval(interval)\r\n }\r\n }\r\n if (isValueTypeDatetime && isTypeDiscrete && tickIntervalsInfo.ticks.length) {\r\n sliderMarkerOptions.format = formatHelper.getDateFormatByTicks(tickIntervalsInfo.ticks)\r\n }\r\n }\r\n return sliderMarkerOptions\r\n },\r\n getValue: function() {\r\n return convertVisualRangeObject(this._slidersController.getSelectedRange())\r\n },\r\n setValue: function(value, e) {\r\n var visualRange = parseValue(value);\r\n if (!this._isUpdating && value) {\r\n this._validateRange(visualRange.startValue, visualRange.endValue);\r\n !rangesAreEqual(visualRange, this._slidersController.getSelectedRange()) && this._slidersController.setSelectedRange(visualRange, e)\r\n }\r\n },\r\n _setContentSize: function() {\r\n this.__isResizing = 2 === this._changes.count();\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\neach([\"selectedRangeColor\", \"containerBackgroundColor\", \"sliderMarker\", \"sliderHandle\", \"shutter\", OPTION_BACKGROUND, \"behavior\", \"chart\", \"indent\"], (function(_, name) {\r\n dxRangeSelector.prototype._optionChangesMap[name] = \"MOSTLY_TOTAL\"\r\n}));\r\n\r\nfunction prepareAxisOptions(scaleOptions, isCompactMode, height, axisPosition) {\r\n scaleOptions.marker.label.font = scaleOptions.label.font;\r\n scaleOptions.color = scaleOptions.marker.color = scaleOptions.tick.color;\r\n scaleOptions.opacity = scaleOptions.marker.opacity = scaleOptions.tick.opacity;\r\n scaleOptions.width = scaleOptions.marker.width = scaleOptions.tick.width;\r\n scaleOptions.placeholderSize = (scaleOptions.placeholderHeight || 0) + axisPosition;\r\n scaleOptions.argumentType = scaleOptions.valueType;\r\n scaleOptions.visible = isCompactMode;\r\n scaleOptions.isHorizontal = true;\r\n scaleOptions.calculateMinors = true;\r\n scaleOptions.semiDiscreteInterval = scaleOptions.minRange;\r\n if (!isCompactMode) {\r\n scaleOptions.minorTick.length = scaleOptions.tick.length = height\r\n }\r\n scaleOptions.label.indentFromAxis = scaleOptions.label.topIndent + axisPosition;\r\n return scaleOptions\r\n}\r\n\r\nfunction createDateMarkersEvent(scaleOptions, markerTrackers, setSelectedRange) {\r\n each(markerTrackers, (function(_, value) {\r\n value.on(\"dxpointerdown\", onPointerDown)\r\n }));\r\n\r\n function onPointerDown(e) {\r\n var range = e.target.range;\r\n var minRange = scaleOptions.minRange ? dateUtils.addInterval(range.startValue, scaleOptions.minRange) : void 0;\r\n var maxRange = scaleOptions.maxRange ? dateUtils.addInterval(range.startValue, scaleOptions.maxRange) : void 0;\r\n if (!(minRange && minRange > range.endValue || maxRange && maxRange < range.endValue)) {\r\n setSelectedRange(range, e)\r\n }\r\n }\r\n}\r\n\r\nfunction getSharpDirection() {\r\n return 1\r\n}\r\n\r\nfunction getTickStartPositionShift(length) {\r\n return length % 2 === 1 ? -_floor(length / 2) : -length / 2\r\n}\r\n\r\nfunction checkShiftedLabels(majorTicks, boxes, minSpacing, alignment) {\r\n function checkLabelsOverlapping(nearestLabelsIndexes) {\r\n if (2 === nearestLabelsIndexes.length && constants.areLabelsOverlap(boxes[nearestLabelsIndexes[0]], boxes[nearestLabelsIndexes[1]], minSpacing, alignment)) {\r\n majorTicks[nearestLabelsIndexes[0]].removeLabel()\r\n }\r\n }\r\n\r\n function getTwoVisibleLabels(startIndex) {\r\n var labels = [];\r\n for (var i = startIndex; labels.length < 2 && i < majorTicks.length; i++) {\r\n majorTicks[i].label && labels.push(i)\r\n }\r\n return labels\r\n }\r\n if (majorTicks.length < 3) {\r\n return\r\n }\r\n checkLabelsOverlapping(getTwoVisibleLabels(0));\r\n checkLabelsOverlapping(getTwoVisibleLabels(majorTicks.length - 2).reverse())\r\n}\r\n\r\nfunction AxisWrapper(params) {\r\n this._axis = new Axis({\r\n renderer: params.renderer,\r\n axesContainerGroup: params.root,\r\n scaleBreaksGroup: params.scaleBreaksGroup,\r\n labelsAxesGroup: params.labelsAxesGroup,\r\n incidentOccurred: params.incidentOccurred,\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\",\r\n widgetClass: \"dxrs\",\r\n axisClass: \"range-selector\",\r\n isArgumentAxis: true,\r\n getTemplate() {}\r\n });\r\n this._updateSelectedRangeCallback = params.updateSelectedRange;\r\n this._axis.getAxisSharpDirection = this._axis.getSharpDirectionByCoords = getSharpDirection;\r\n this._axis.getTickStartPositionShift = getTickStartPositionShift;\r\n this._axis._checkShiftedLabels = checkShiftedLabels\r\n}\r\nAxisWrapper.prototype = {\r\n constructor: AxisWrapper,\r\n update: function(options, isCompactMode, canvas, businessRange, seriesDataSource) {\r\n var axis = this._axis;\r\n axis.updateOptions(prepareAxisOptions(options, isCompactMode, canvas.height, canvas.height / 2 - _ceil(options.width / 2)));\r\n axis.validate();\r\n axis.setBusinessRange(businessRange, true);\r\n if (void 0 !== seriesDataSource && seriesDataSource.isShowChart()) {\r\n axis.setMarginOptions(seriesDataSource.getMarginOptions(canvas))\r\n }\r\n axis.draw(canvas);\r\n axis.shift({\r\n left: 0,\r\n bottom: -canvas.height / 2 + canvas.top\r\n });\r\n if (axis.getMarkerTrackers()) {\r\n createDateMarkersEvent(options, axis.getMarkerTrackers(), this._updateSelectedRangeCallback)\r\n }\r\n axis.drawScaleBreaks({\r\n start: canvas.top,\r\n end: canvas.top + canvas.height\r\n })\r\n },\r\n visualRange: function() {},\r\n getViewport: function() {\r\n return {}\r\n },\r\n allScaleSelected(value) {\r\n var {\r\n startValue: startValue,\r\n endValue: endValue\r\n } = this._axis.visualRange();\r\n return {\r\n startValue: value[0].valueOf() === startValue.valueOf(),\r\n endValue: value[1].valueOf() === endValue.valueOf()\r\n }\r\n },\r\n getOptions() {\r\n return this._axis.getOptions() || {}\r\n }\r\n};\r\neach(Axis.prototype, field => {\r\n if (\"constructor\" !== field && \"_\" !== field[0] && isFunction(Axis.prototype[field]) && !(field in AxisWrapper.prototype)) {\r\n AxisWrapper.prototype[field] = function() {\r\n var axis = this._axis;\r\n return axis[field].apply(axis, arguments)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRangeSelector\", dxRangeSelector);\r\nexport default dxRangeSelector;\r\nimport {\r\n plugin as exportPlugin\r\n} from \"../core/export\";\r\nimport {\r\n plugin as titlePlugin\r\n} from \"../core/title\";\r\nimport {\r\n plugin as LoadingIndicatorPlugin\r\n} from \"../core/loading_indicator\";\r\nimport {\r\n plugin as dataSourcePlugin\r\n} from \"../core/data_source\";\r\ndxRangeSelector.addPlugin(exportPlugin);\r\ndxRangeSelector.addPlugin(titlePlugin);\r\ndxRangeSelector.addPlugin(LoadingIndicatorPlugin);\r\ndxRangeSelector.addPlugin(dataSourcePlugin);\r\n","/**\r\n * DevExtreme (esm/viz/range_selector.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport RangeSelector from \"./range_selector/range_selector\";\r\nexport default RangeSelector;\r\n","/**\r\n * DevExtreme (esm/viz/series/points/label.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport formatHelper from \"../../../format_helper\";\r\nimport {\r\n degreesToRadians as _degreesToRadians,\r\n patchFontOptions as _patchFontOptions,\r\n getCosAndSin as _getCosAndSin,\r\n rotateBBox as _rotateBBox\r\n} from \"../../core/utils\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _format = formatHelper.format;\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _floor = _math.floor;\r\nvar _abs = _math.abs;\r\nvar CONNECTOR_LENGTH = 12;\r\nvar LABEL_BACKGROUND_PADDING_X = 8;\r\nvar LABEL_BACKGROUND_PADDING_Y = 4;\r\n\r\nfunction getClosestCoord(point, coords) {\r\n var closestDistance = 1 / 0;\r\n var closestCoord;\r\n each(coords, (function(_, coord) {\r\n var x = point[0] - coord[0];\r\n var y = point[1] - coord[1];\r\n var distance = x * x + y * y;\r\n if (distance < closestDistance) {\r\n closestDistance = distance;\r\n closestCoord = coord\r\n }\r\n }));\r\n return [_floor(closestCoord[0]), _floor(closestCoord[1])]\r\n}\r\n\r\nfunction getCrossCoord(rect, coord, indexOffset) {\r\n return (coord - rect[0 + indexOffset]) / (rect[2 + indexOffset] - rect[0 + indexOffset]) * (rect[3 - indexOffset] - rect[1 - indexOffset]) + rect[1 - indexOffset]\r\n}\r\nvar barPointStrategy = {\r\n isLabelInside: function(labelPoint, figure) {\r\n var xc = labelPoint.x + labelPoint.width / 2;\r\n var yc = labelPoint.y + labelPoint.height / 2;\r\n return figure.x <= xc && xc <= figure.x + figure.width && figure.y <= yc && yc <= figure.y + figure.height\r\n },\r\n prepareLabelPoints: function(bBox, rotatedBBox, isHorizontal, angle, figureCenter) {\r\n var x1 = rotatedBBox.x;\r\n var xc = x1 + rotatedBBox.width / 2;\r\n var x2 = x1 + rotatedBBox.width - 1;\r\n var y1 = rotatedBBox.y;\r\n var yc = y1 + rotatedBBox.height / 2;\r\n var y2 = y1 + rotatedBBox.height - 1;\r\n var labelPoints;\r\n var isRectangular = _abs(angle) % 90 === 0;\r\n if (figureCenter[0] > x1 && figureCenter[0] < x2) {\r\n if (isRectangular) {\r\n labelPoints = [\r\n [figureCenter[0], _abs(figureCenter[1] - y1) < _abs(figureCenter[1] - y2) ? y1 : y2]\r\n ]\r\n } else {\r\n labelPoints = [\r\n [figureCenter[0], getCrossCoord([x1, y1, x2, y2], figureCenter[0], 0)]\r\n ]\r\n }\r\n } else if (figureCenter[1] > y1 && figureCenter[1] < y2) {\r\n if (isRectangular) {\r\n labelPoints = [\r\n [_abs(figureCenter[0] - x1) < _abs(figureCenter[0] - x2) ? x1 : x2, figureCenter[1]]\r\n ]\r\n } else {\r\n labelPoints = [\r\n [getCrossCoord([x1, y1, x2, y2], figureCenter[1], 1), figureCenter[1]]\r\n ]\r\n }\r\n } else if (isRectangular) {\r\n labelPoints = [\r\n [x1, y1],\r\n [isHorizontal ? x1 : xc, isHorizontal ? yc : y1],\r\n [x2, y1],\r\n [x1, y2],\r\n [isHorizontal ? x2 : xc, isHorizontal ? yc : y2],\r\n [x2, y2]\r\n ]\r\n } else {\r\n labelPoints = [\r\n [xc, yc]\r\n ]\r\n }\r\n return labelPoints\r\n },\r\n isHorizontal: function(bBox, figure) {\r\n return bBox.x > figure.x + figure.width || bBox.x + bBox.width < figure.x\r\n },\r\n getFigureCenter: function(figure) {\r\n return [_floor(figure.x + figure.width / 2), _floor(figure.y + figure.height / 2)]\r\n },\r\n findFigurePoint: function(figure, labelPoint) {\r\n var figureCenter = barPointStrategy.getFigureCenter(figure);\r\n var point = getClosestCoord(labelPoint, [\r\n [figure.x, figureCenter[1]],\r\n [figureCenter[0], figure.y + figure.height],\r\n [figure.x + figure.width, figureCenter[1]],\r\n [figureCenter[0], figure.y]\r\n ]);\r\n return point\r\n },\r\n adjustPoints: function(points) {\r\n var lineIsVertical = _abs(points[1] - points[3]) <= 1;\r\n var lineIsHorizontal = _abs(points[0] - points[2]) <= 1;\r\n if (lineIsHorizontal) {\r\n points[0] = points[2]\r\n }\r\n if (lineIsVertical) {\r\n points[1] = points[3]\r\n }\r\n return points\r\n }\r\n};\r\nvar symbolPointStrategy = {\r\n isLabelInside: function() {\r\n return false\r\n },\r\n prepareLabelPoints: barPointStrategy.prepareLabelPoints,\r\n isHorizontal: function(bBox, figure) {\r\n return bBox.x > figure.x + figure.r || bBox.x + bBox.width < figure.x - figure.r\r\n },\r\n getFigureCenter: function(figure) {\r\n return [figure.x, figure.y]\r\n },\r\n findFigurePoint: function(figure, labelPoint) {\r\n var angle = Math.atan2(figure.y - labelPoint[1], labelPoint[0] - figure.x);\r\n return [_round(figure.x + figure.r * Math.cos(angle)), _round(figure.y - figure.r * Math.sin(angle))]\r\n },\r\n adjustPoints: barPointStrategy.adjustPoints\r\n};\r\nvar piePointStrategy = {\r\n isLabelInside: function(_0, _1, isOutside) {\r\n return !isOutside\r\n },\r\n prepareLabelPoints: function(bBox, rotatedBBox, isHorizontal, angle) {\r\n var xl = bBox.x;\r\n var xr = xl + bBox.width;\r\n var xc = xl + _round(bBox.width / 2);\r\n var yt = bBox.y;\r\n var yb = yt + bBox.height;\r\n var yc = yt + _round(bBox.height / 2);\r\n var points = [\r\n [\r\n [xl, yt],\r\n [xr, yt]\r\n ],\r\n [\r\n [xr, yt],\r\n [xr, yb]\r\n ],\r\n [\r\n [xr, yb],\r\n [xl, yb]\r\n ],\r\n [\r\n [xl, yb],\r\n [xl, yt]\r\n ]\r\n ];\r\n var cosSin = _getCosAndSin(angle);\r\n if (0 === angle) {\r\n points = isHorizontal ? [\r\n [xl, yc],\r\n [xr, yc]\r\n ] : [\r\n [xc, yt],\r\n [xc, yb]\r\n ]\r\n } else {\r\n points = points.map((function(pair) {\r\n return pair.map((function(point) {\r\n return [_round((point[0] - xc) * cosSin.cos + (point[1] - yc) * cosSin.sin + xc), _round(-(point[0] - xc) * cosSin.sin + (point[1] - yc) * cosSin.cos + yc)]\r\n }))\r\n })).reduce((function(r, pair) {\r\n var point1x = pair[0][0];\r\n var point1y = pair[0][1];\r\n var point2x = pair[1][0];\r\n var point2y = pair[1][1];\r\n if (isHorizontal) {\r\n if (point1y >= yc && yc >= point2y || point1y <= yc && yc <= point2y) {\r\n r.push([(yc - point1y) * (point2x - point1x) / (point2y - point1y) + point1x, yc])\r\n }\r\n } else if (point1x >= xc && xc >= point2x || point1x <= xc && xc <= point2x) {\r\n r.push([xc, (xc - point1x) * (point2y - point1y) / (point2x - point1x) + point1y])\r\n }\r\n return r\r\n }), [])\r\n }\r\n return points\r\n },\r\n isHorizontal: function(bBox, figure) {\r\n return bBox.x > figure.x || figure.x > bBox.x + bBox.width\r\n },\r\n getFigureCenter: symbolPointStrategy.getFigureCenter,\r\n findFigurePoint: function(figure, labelPoint, isHorizontal) {\r\n if (!isHorizontal) {\r\n return [figure.x, figure.y]\r\n }\r\n var labelX = labelPoint[0];\r\n var x = _round(figure.x + (figure.y - labelPoint[1]) / Math.tan(_degreesToRadians(figure.angle)));\r\n var points = [figure.x, figure.y, x, labelPoint[1]];\r\n if (!(figure.x <= x && x <= labelX) && !(labelX <= x && x <= figure.x)) {\r\n if (_abs(figure.x - labelX) < CONNECTOR_LENGTH) {\r\n points = [figure.x, figure.y]\r\n } else if (figure.x <= labelX) {\r\n points[2] = figure.x + CONNECTOR_LENGTH\r\n } else {\r\n points[2] = figure.x - CONNECTOR_LENGTH\r\n }\r\n }\r\n return points\r\n },\r\n adjustPoints: function(points) {\r\n return points\r\n }\r\n};\r\n\r\nfunction selectStrategy(figure) {\r\n return void 0 !== figure.angle && piePointStrategy || void 0 !== figure.r && symbolPointStrategy || barPointStrategy\r\n}\r\n\r\nfunction disposeItem(obj, field) {\r\n obj[field] && obj[field].dispose();\r\n obj[field] = null\r\n}\r\n\r\nfunction checkBackground(background) {\r\n return background && (background.fill && \"none\" !== background.fill || background[\"stroke-width\"] > 0 && background.stroke && \"none\" !== background.stroke)\r\n}\r\n\r\nfunction checkConnector(connector) {\r\n return connector && connector[\"stroke-width\"] > 0 && connector.stroke && \"none\" !== connector.stroke\r\n}\r\n\r\nfunction formatText(data, options) {\r\n var format = options.format;\r\n data.valueText = _format(data.value, format);\r\n data.argumentText = _format(data.argument, options.argumentFormat);\r\n if (void 0 !== data.percent) {\r\n data.percentText = _format(data.percent, {\r\n type: \"percent\",\r\n precision: format && format.percentPrecision\r\n })\r\n }\r\n if (void 0 !== data.total) {\r\n data.totalText = _format(data.total, format)\r\n }\r\n if (void 0 !== data.openValue) {\r\n data.openValueText = _format(data.openValue, format)\r\n }\r\n if (void 0 !== data.closeValue) {\r\n data.closeValueText = _format(data.closeValue, format)\r\n }\r\n if (void 0 !== data.lowValue) {\r\n data.lowValueText = _format(data.lowValue, format)\r\n }\r\n if (void 0 !== data.highValue) {\r\n data.highValueText = _format(data.highValue, format)\r\n }\r\n if (void 0 !== data.reductionValue) {\r\n data.reductionValueText = _format(data.reductionValue, format)\r\n }\r\n return options.customizeText ? options.customizeText.call(data, data) : data.valueText\r\n}\r\nexport function Label(renderSettings) {\r\n this._renderer = renderSettings.renderer;\r\n this._container = renderSettings.labelsGroup;\r\n this._point = renderSettings.point;\r\n this._strategy = renderSettings.strategy;\r\n this._rowCount = 1\r\n}\r\nLabel.prototype = {\r\n constructor: Label,\r\n setColor: function(color) {\r\n this._color = color\r\n },\r\n setOptions: function(options) {\r\n this._options = options\r\n },\r\n setData: function(data) {\r\n this._data = data\r\n },\r\n setDataField: function(fieldName, fieldValue) {\r\n this._data = this._data || {};\r\n this._data[fieldName] = fieldValue\r\n },\r\n getData: function() {\r\n return this._data\r\n },\r\n setFigureToDrawConnector: function(figure) {\r\n this._figure = figure\r\n },\r\n dispose: function() {\r\n disposeItem(this, \"_group\");\r\n this._data = this._options = this._textContent = this._visible = this._insideGroup = this._text = this._background = this._connector = this._figure = null\r\n },\r\n _setVisibility: function(value, state) {\r\n this._group && this._group.attr({\r\n visibility: value\r\n });\r\n this._visible = state\r\n },\r\n isVisible: function() {\r\n return this._visible\r\n },\r\n hide: function(holdInvisible) {\r\n this._holdVisibility = !!holdInvisible;\r\n this._hide()\r\n },\r\n _hide: function() {\r\n this._setVisibility(\"hidden\", false)\r\n },\r\n show: function(holdVisible) {\r\n var correctPosition = !this._drawn;\r\n if (this._point.hasValue()) {\r\n this._holdVisibility = !!holdVisible;\r\n this._show();\r\n correctPosition && this._point.correctLabelPosition(this)\r\n }\r\n },\r\n _show: function() {\r\n var renderer = this._renderer;\r\n var container = this._container;\r\n var options = this._options || {};\r\n var text = this._textContent = formatText(this._data, this._options) || null;\r\n if (text) {\r\n if (!this._group) {\r\n this._group = renderer.g().append(container);\r\n this._insideGroup = renderer.g().append(this._group);\r\n this._text = renderer.text(\"\", 0, 0).append(this._insideGroup)\r\n }\r\n this._text.css(options.attributes ? _patchFontOptions(options.attributes.font) : {});\r\n if (checkBackground(options.background)) {\r\n this._background = this._background || renderer.rect().append(this._insideGroup).toBackground();\r\n this._background.attr(options.background);\r\n this._color && this._background.attr({\r\n fill: this._color\r\n })\r\n } else {\r\n disposeItem(this, \"_background\")\r\n }\r\n if (checkConnector(options.connector)) {\r\n this._connector = this._connector || renderer.path([], \"line\").sharp().append(this._group).toBackground();\r\n this._connector.attr(options.connector);\r\n this._color && this._connector.attr({\r\n stroke: this._color\r\n })\r\n } else {\r\n disposeItem(this, \"_connector\")\r\n }\r\n this._text.attr({\r\n text: text,\r\n align: options.textAlignment,\r\n class: options.cssClass\r\n });\r\n this._updateBackground(this._text.getBBox());\r\n this._setVisibility(\"visible\", true);\r\n this._drawn = true\r\n } else {\r\n this._hide()\r\n }\r\n },\r\n _getLabelVisibility: function(isVisible) {\r\n return this._holdVisibility ? this.isVisible() : isVisible\r\n },\r\n draw: function(isVisible) {\r\n if (this._getLabelVisibility(isVisible)) {\r\n this._show();\r\n this._point && this._point.correctLabelPosition(this)\r\n } else {\r\n this._drawn = false;\r\n this._hide()\r\n }\r\n return this\r\n },\r\n _updateBackground: function(bBox) {\r\n if (this._background) {\r\n bBox.x -= LABEL_BACKGROUND_PADDING_X;\r\n bBox.y -= LABEL_BACKGROUND_PADDING_Y;\r\n bBox.width += 2 * LABEL_BACKGROUND_PADDING_X;\r\n bBox.height += 2 * LABEL_BACKGROUND_PADDING_Y;\r\n this._background.attr(bBox)\r\n }\r\n this._bBoxWithoutRotation = extend({}, bBox);\r\n var rotationAngle = this._options.rotationAngle || 0;\r\n this._insideGroup.rotate(rotationAngle, bBox.x + bBox.width / 2, bBox.y + bBox.height / 2);\r\n bBox = _rotateBBox(bBox, [bBox.x + bBox.width / 2, bBox.y + bBox.height / 2], -rotationAngle);\r\n this._bBox = bBox\r\n },\r\n getFigureCenter() {\r\n var figure = this._figure;\r\n var strategy = this._strategy || selectStrategy(figure);\r\n return strategy.getFigureCenter(figure)\r\n },\r\n _getConnectorPoints: function() {\r\n var figure = this._figure;\r\n var options = this._options;\r\n var strategy = this._strategy || selectStrategy(figure);\r\n var bBox = this._shiftBBox(this._bBoxWithoutRotation);\r\n var rotatedBBox = this.getBoundingRect();\r\n var labelPoint;\r\n var points = [];\r\n var isHorizontal;\r\n if (!strategy.isLabelInside(bBox, figure, \"inside\" !== options.position)) {\r\n isHorizontal = strategy.isHorizontal(bBox, figure);\r\n var figureCenter = this.getFigureCenter();\r\n points = strategy.prepareLabelPoints(bBox, rotatedBBox, isHorizontal, -options.rotationAngle || 0, figureCenter);\r\n labelPoint = getClosestCoord(figureCenter, points);\r\n points = strategy.findFigurePoint(figure, labelPoint, isHorizontal);\r\n points = points.concat(labelPoint)\r\n }\r\n return strategy.adjustPoints(points)\r\n },\r\n fit: function(maxWidth) {\r\n var padding = this._background ? 2 * LABEL_BACKGROUND_PADDING_X : 0;\r\n var rowCountChanged = false;\r\n if (this._text) {\r\n var result = this._text.setMaxSize(maxWidth - padding, void 0, this._options);\r\n var rowCount = result.rowCount;\r\n if (0 === rowCount) {\r\n rowCount = 1\r\n }\r\n if (rowCount !== this._rowCount) {\r\n rowCountChanged = true;\r\n this._rowCount = rowCount\r\n }\r\n result.textIsEmpty && disposeItem(this, \"_background\")\r\n }\r\n this._updateBackground(this._text.getBBox());\r\n return rowCountChanged\r\n },\r\n resetEllipsis: function() {\r\n this._text && this._text.restoreText();\r\n this._updateBackground(this._text.getBBox())\r\n },\r\n setTrackerData: function(point) {\r\n this._text.data({\r\n \"chart-data-point\": point\r\n });\r\n this._background && this._background.data({\r\n \"chart-data-point\": point\r\n })\r\n },\r\n hideInsideLabel: function(coords) {\r\n return this._point.hideInsideLabel(this, coords)\r\n },\r\n getPoint() {\r\n return this._point\r\n },\r\n shift: function(x, y) {\r\n if (this._textContent) {\r\n this._insideGroup.attr({\r\n translateX: this._x = _round(x - this._bBox.x),\r\n translateY: this._y = _round(y - this._bBox.y)\r\n });\r\n if (this._connector) {\r\n this._connector.attr({\r\n points: this._getConnectorPoints()\r\n })\r\n }\r\n }\r\n return this\r\n },\r\n getBoundingRect: function() {\r\n return this._shiftBBox(this._bBox)\r\n },\r\n _shiftBBox: function(bBox) {\r\n return this._textContent ? {\r\n x: bBox.x + this._x,\r\n y: bBox.y + this._y,\r\n width: bBox.width,\r\n height: bBox.height\r\n } : {}\r\n },\r\n getLayoutOptions: function() {\r\n var options = this._options;\r\n return {\r\n alignment: options.alignment,\r\n background: checkBackground(options.background),\r\n horizontalOffset: options.horizontalOffset,\r\n verticalOffset: options.verticalOffset,\r\n radialOffset: options.radialOffset,\r\n position: options.position,\r\n connectorOffset: (checkConnector(options.connector) ? CONNECTOR_LENGTH : 0) + (checkBackground(options.background) ? LABEL_BACKGROUND_PADDING_X : 0)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/points/symbol_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n getWindow,\r\n hasProperty\r\n} from \"../../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n Label\r\n} from \"./label\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../../core/utils\";\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _floor = _math.floor;\r\nvar _ceil = _math.ceil;\r\nvar DEFAULT_IMAGE_WIDTH = 20;\r\nvar DEFAULT_IMAGE_HEIGHT = 20;\r\nvar LABEL_OFFSET = 10;\r\nvar CANVAS_POSITION_DEFAULT = \"canvas_position_default\";\r\n\r\nfunction getSquareMarkerCoords(radius) {\r\n return [-radius, -radius, radius, -radius, radius, radius, -radius, radius, -radius, -radius]\r\n}\r\n\r\nfunction getPolygonMarkerCoords(radius) {\r\n var r = _ceil(radius);\r\n return [-r, 0, 0, -r, r, 0, 0, r, -r, 0]\r\n}\r\n\r\nfunction getCrossMarkerCoords(radius) {\r\n var r = _ceil(radius);\r\n var floorHalfRadius = _floor(r / 2);\r\n var ceilHalfRadius = _ceil(r / 2);\r\n return [-r, -floorHalfRadius, -floorHalfRadius, -r, 0, -ceilHalfRadius, floorHalfRadius, -r, r, -floorHalfRadius, ceilHalfRadius, 0, r, floorHalfRadius, floorHalfRadius, r, 0, ceilHalfRadius, -floorHalfRadius, r, -r, floorHalfRadius, -ceilHalfRadius, 0]\r\n}\r\n\r\nfunction getTriangleDownMarkerCoords(radius) {\r\n return [-radius, -radius, radius, -radius, 0, radius, -radius, -radius]\r\n}\r\n\r\nfunction getTriangleUpMarkerCoords(radius) {\r\n return [-radius, radius, radius, radius, 0, -radius, -radius, radius]\r\n}\r\nexport default {\r\n deleteLabel: function() {\r\n this._label.dispose();\r\n this._label = null\r\n },\r\n _hasGraphic: function() {\r\n return this.graphic\r\n },\r\n clearVisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: null\r\n })\r\n }\r\n },\r\n isVisible: function() {\r\n return this.inVisibleArea && this.series.isVisible()\r\n },\r\n setInvisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && \"hidden\" !== graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n this._errorBar && this._errorBar.attr({\r\n visibility: \"hidden\"\r\n });\r\n this._label.draw(false)\r\n },\r\n clearMarker: function() {\r\n var graphic = this.graphic;\r\n graphic && graphic.attr(this._emptySettings)\r\n },\r\n _createLabel: function() {\r\n this._label = new Label({\r\n renderer: this.series._renderer,\r\n labelsGroup: this.series._labelsGroup,\r\n point: this\r\n })\r\n },\r\n _updateLabelData: function() {\r\n this._label.setData(this._getLabelFormatObject())\r\n },\r\n _updateLabelOptions: function() {\r\n !this._label && this._createLabel();\r\n this._label.setOptions(this._options.label)\r\n },\r\n _checkImage: function(image) {\r\n return _isDefined(image) && (\"string\" === typeof image || _isDefined(image.url))\r\n },\r\n _fillStyle: function() {\r\n this._styles = this._options.styles\r\n },\r\n _checkSymbol: function(oldOptions, newOptions) {\r\n var oldSymbol = oldOptions.symbol;\r\n var newSymbol = newOptions.symbol;\r\n var symbolChanged = \"circle\" === oldSymbol && \"circle\" !== newSymbol || \"circle\" !== oldSymbol && \"circle\" === newSymbol;\r\n var imageChanged = this._checkImage(oldOptions.image) !== this._checkImage(newOptions.image);\r\n return !!(symbolChanged || imageChanged)\r\n },\r\n _populatePointShape: function(symbol, radius) {\r\n switch (symbol) {\r\n case \"square\":\r\n return getSquareMarkerCoords(radius);\r\n case \"polygon\":\r\n return getPolygonMarkerCoords(radius);\r\n case \"triangle\":\r\n case \"triangleDown\":\r\n return getTriangleDownMarkerCoords(radius);\r\n case \"triangleUp\":\r\n return getTriangleUpMarkerCoords(radius);\r\n case \"cross\":\r\n return getCrossMarkerCoords(radius)\r\n }\r\n },\r\n hasCoords: function() {\r\n return null !== this.x && null !== this.y\r\n },\r\n correctValue: function(correction) {\r\n var axis = this.series.getValueAxis();\r\n if (this.hasValue()) {\r\n this.value = this.properValue = axis.validateUnit(this.initialValue.valueOf() + correction.valueOf());\r\n this.minValue = axis.validateUnit(correction)\r\n }\r\n },\r\n resetCorrection: function() {\r\n this.value = this.properValue = this.initialValue;\r\n this.minValue = CANVAS_POSITION_DEFAULT\r\n },\r\n resetValue: function() {\r\n if (this.hasValue()) {\r\n this.value = this.properValue = this.initialValue = 0;\r\n this.minValue = 0;\r\n this._label.setDataField(\"value\", this.value)\r\n }\r\n },\r\n _getTranslates: function(animationEnabled) {\r\n var translateX = this.x;\r\n var translateY = this.y;\r\n if (animationEnabled) {\r\n if (this._options.rotated) {\r\n translateX = this.defaultX\r\n } else {\r\n translateY = this.defaultY\r\n }\r\n }\r\n return {\r\n x: translateX,\r\n y: translateY\r\n }\r\n },\r\n _createImageMarker: function(renderer, settings, options) {\r\n var width = options.width || DEFAULT_IMAGE_WIDTH;\r\n var height = options.height || DEFAULT_IMAGE_HEIGHT;\r\n return renderer.image(-_round(.5 * width), -_round(.5 * height), width, height, options.url ? options.url.toString() : options.toString(), \"center\").attr({\r\n translateX: settings.translateX,\r\n translateY: settings.translateY,\r\n visibility: settings.visibility\r\n })\r\n },\r\n _createSymbolMarker: function(renderer, pointSettings) {\r\n var marker;\r\n var symbol = this._options.symbol;\r\n if (\"circle\" === symbol) {\r\n delete pointSettings.points;\r\n marker = renderer.circle().attr(pointSettings)\r\n } else if (\"square\" === symbol || \"polygon\" === symbol || \"triangle\" === symbol || \"triangleDown\" === symbol || \"triangleUp\" === symbol || \"cross\" === symbol) {\r\n marker = renderer.path([], \"area\").attr(pointSettings).sharp()\r\n }\r\n return marker\r\n },\r\n _createMarker: function(renderer, group, image, settings) {\r\n var marker = this._checkImage(image) ? this._createImageMarker(renderer, settings, image) : this._createSymbolMarker(renderer, settings);\r\n if (marker) {\r\n marker.data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n }\r\n return marker\r\n },\r\n _getSymbolBBox: function(x, y, r) {\r\n return {\r\n x: x - r,\r\n y: y - r,\r\n width: 2 * r,\r\n height: 2 * r\r\n }\r\n },\r\n _getImageBBox: function(x, y) {\r\n var image = this._options.image;\r\n var width = image.width || DEFAULT_IMAGE_WIDTH;\r\n var height = image.height || DEFAULT_IMAGE_HEIGHT;\r\n return {\r\n x: x - _round(width / 2),\r\n y: y - _round(height / 2),\r\n width: width,\r\n height: height\r\n }\r\n },\r\n _getGraphicBBox: function() {\r\n var options = this._options;\r\n var x = this.x;\r\n var y = this.y;\r\n var bBox;\r\n if (options.visible) {\r\n bBox = this._checkImage(options.image) ? this._getImageBBox(x, y) : this._getSymbolBBox(x, y, options.styles.normal.r)\r\n } else {\r\n bBox = {\r\n x: x,\r\n y: y,\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return bBox\r\n },\r\n hideInsideLabel: noop,\r\n _getShiftLabelCoords: function(label) {\r\n var coord = this._addLabelAlignmentAndOffset(label, this._getLabelCoords(label));\r\n return this._checkLabelPosition(label, coord)\r\n },\r\n _drawLabel: function() {\r\n var customVisibility = this._getCustomLabelVisibility();\r\n var label = this._label;\r\n var isVisible = this._showForZeroValues() && this.hasValue() && false !== customVisibility && (this.series.getLabelVisibility() || customVisibility);\r\n label.draw(!!isVisible)\r\n },\r\n correctLabelPosition: function(label) {\r\n var coord = this._getShiftLabelCoords(label);\r\n if (!this.hideInsideLabel(label, coord)) {\r\n label.setFigureToDrawConnector(this._getLabelConnector(label.pointPosition));\r\n label.shift(_round(coord.x), _round(coord.y))\r\n }\r\n },\r\n _showForZeroValues: function() {\r\n return true\r\n },\r\n _getLabelConnector: function(pointPosition) {\r\n var bBox = this._getGraphicBBox(pointPosition);\r\n var w2 = bBox.width / 2;\r\n var h2 = bBox.height / 2;\r\n return {\r\n x: bBox.x + w2,\r\n y: bBox.y + h2,\r\n r: this._options.visible ? Math.max(w2, h2) : 0\r\n }\r\n },\r\n _getPositionFromLocation: function() {\r\n return {\r\n x: this.x,\r\n y: this.y\r\n }\r\n },\r\n _isPointInVisibleArea: function(visibleArea, graphicBBox) {\r\n return visibleArea.minX <= graphicBBox.x + graphicBBox.width && visibleArea.maxX >= graphicBBox.x && visibleArea.minY <= graphicBBox.y + graphicBBox.height && visibleArea.maxY >= graphicBBox.y\r\n },\r\n _checkLabelPosition: function(label, coord) {\r\n var visibleArea = this._getVisibleArea();\r\n var labelBBox = label.getBoundingRect();\r\n var graphicBBox = this._getGraphicBBox(label.pointPosition);\r\n var fullGraphicBBox = this._getGraphicBBox();\r\n var isInside = \"inside\" === label.getLayoutOptions().position;\r\n var offset = LABEL_OFFSET;\r\n if (this._isPointInVisibleArea(visibleArea, fullGraphicBBox)) {\r\n if (!this._options.rotated) {\r\n if (visibleArea.minX > coord.x) {\r\n coord.x = visibleArea.minX\r\n }\r\n if (visibleArea.maxX < coord.x + labelBBox.width) {\r\n coord.x = visibleArea.maxX - labelBBox.width\r\n }\r\n if (visibleArea.minY > coord.y) {\r\n coord.y = isInside ? visibleArea.minY : graphicBBox.y + graphicBBox.height + offset\r\n }\r\n if (visibleArea.maxY < coord.y + labelBBox.height) {\r\n coord.y = isInside ? visibleArea.maxY - labelBBox.height : graphicBBox.y - labelBBox.height - offset\r\n }\r\n } else {\r\n if (visibleArea.minX > coord.x) {\r\n coord.x = isInside ? visibleArea.minX : graphicBBox.x + graphicBBox.width + offset\r\n }\r\n if (visibleArea.maxX < coord.x + labelBBox.width) {\r\n coord.x = isInside ? visibleArea.maxX - labelBBox.width : graphicBBox.x - offset - labelBBox.width\r\n }\r\n if (visibleArea.minY > coord.y) {\r\n coord.y = visibleArea.minY\r\n }\r\n if (visibleArea.maxY < coord.y + labelBBox.height) {\r\n coord.y = visibleArea.maxY - labelBBox.height\r\n }\r\n }\r\n }\r\n return coord\r\n },\r\n _addLabelAlignmentAndOffset: function(label, coord) {\r\n var labelBBox = label.getBoundingRect();\r\n var labelOptions = label.getLayoutOptions();\r\n if (!this._options.rotated) {\r\n if (\"left\" === labelOptions.alignment) {\r\n coord.x += labelBBox.width / 2\r\n } else if (\"right\" === labelOptions.alignment) {\r\n coord.x -= labelBBox.width / 2\r\n }\r\n }\r\n coord.x += labelOptions.horizontalOffset;\r\n coord.y += labelOptions.verticalOffset;\r\n return coord\r\n },\r\n _getLabelCoords: function(label) {\r\n return this._getLabelCoordOfPosition(label, this._getLabelPosition(label.pointPosition))\r\n },\r\n _getLabelCoordOfPosition: function(label, position) {\r\n var labelBBox = label.getBoundingRect();\r\n var graphicBBox = this._getGraphicBBox(label.pointPosition);\r\n var offset = LABEL_OFFSET;\r\n var centerY = graphicBBox.height / 2 - labelBBox.height / 2;\r\n var centerX = graphicBBox.width / 2 - labelBBox.width / 2;\r\n var x = graphicBBox.x;\r\n var y = graphicBBox.y;\r\n switch (position) {\r\n case \"left\":\r\n x -= labelBBox.width + offset;\r\n y += centerY;\r\n break;\r\n case \"right\":\r\n x += graphicBBox.width + offset;\r\n y += centerY;\r\n break;\r\n case \"top\":\r\n x += centerX;\r\n y -= labelBBox.height + offset;\r\n break;\r\n case \"bottom\":\r\n x += centerX;\r\n y += graphicBBox.height + offset;\r\n break;\r\n case \"inside\":\r\n x += centerX;\r\n y += centerY\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled) {\r\n var options = this._options;\r\n var translates = this._getTranslates(animationEnabled);\r\n var style = this._getStyle();\r\n this.graphic = this._createMarker(renderer, group, options.image, _extend({\r\n translateX: translates.x,\r\n translateY: translates.y,\r\n points: this._populatePointShape(options.symbol, style.r)\r\n }, style))\r\n },\r\n _getErrorBarSettings: function() {\r\n return {\r\n visibility: \"visible\"\r\n }\r\n },\r\n _getErrorBarBaseEdgeLength() {\r\n return 2 * this.getPointRadius()\r\n },\r\n _drawErrorBar: function(renderer, group) {\r\n if (!this._options.errorBars) {\r\n return\r\n }\r\n var options = this._options;\r\n var errorBarOptions = options.errorBars;\r\n var points = [];\r\n var settings;\r\n var pos = this._errorBarPos;\r\n var high = this._highErrorCoord;\r\n var low = this._lowErrorCoord;\r\n var displayMode = _normalizeEnum(errorBarOptions.displayMode);\r\n var isHighDisplayMode = \"high\" === displayMode;\r\n var isLowDisplayMode = \"low\" === displayMode;\r\n var highErrorOnly = (isHighDisplayMode || !_isDefined(low)) && _isDefined(high) && !isLowDisplayMode;\r\n var lowErrorOnly = (isLowDisplayMode || !_isDefined(high)) && _isDefined(low) && !isHighDisplayMode;\r\n var edgeLength = errorBarOptions.edgeLength;\r\n if (edgeLength <= 1 && edgeLength > 0) {\r\n edgeLength = this._getErrorBarBaseEdgeLength() * errorBarOptions.edgeLength\r\n }\r\n edgeLength = _floor(parseInt(edgeLength) / 2);\r\n highErrorOnly && (low = this._baseErrorBarPos);\r\n lowErrorOnly && (high = this._baseErrorBarPos);\r\n if (\"none\" !== displayMode && _isDefined(high) && _isDefined(low) && _isDefined(pos)) {\r\n !lowErrorOnly && points.push([pos - edgeLength, high, pos + edgeLength, high]);\r\n points.push([pos, high, pos, low]);\r\n !highErrorOnly && points.push([pos + edgeLength, low, pos - edgeLength, low]);\r\n options.rotated && each(points, (function(_, p) {\r\n p.reverse()\r\n }));\r\n settings = this._getErrorBarSettings(errorBarOptions);\r\n if (!this._errorBar) {\r\n this._errorBar = renderer.path(points, \"line\").attr(settings).append(group)\r\n } else {\r\n settings.points = points;\r\n this._errorBar.attr(settings)\r\n }\r\n } else {\r\n this._errorBar && this._errorBar.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n },\r\n getTooltipParams: function() {\r\n var graphic = this.graphic;\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n offset: graphic ? graphic.getBBox().height / 2 : 0\r\n }\r\n },\r\n setPercentValue: function(absTotal, total, leftHoleTotal, rightHoleTotal) {\r\n var valuePercent = this.value / absTotal || 0;\r\n var minValuePercent = this.minValue / absTotal || 0;\r\n var percent = valuePercent - minValuePercent;\r\n this._label.setDataField(\"percent\", percent);\r\n this._label.setDataField(\"total\", total);\r\n if (this.series.isFullStackedSeries() && this.hasValue()) {\r\n if (this.leftHole) {\r\n this.leftHole /= absTotal - leftHoleTotal;\r\n this.minLeftHole /= absTotal - leftHoleTotal\r\n }\r\n if (this.rightHole) {\r\n this.rightHole /= absTotal - rightHoleTotal;\r\n this.minRightHole /= absTotal - rightHoleTotal\r\n }\r\n this.value = this.properValue = valuePercent;\r\n this.minValue = !minValuePercent ? this.minValue : minValuePercent\r\n }\r\n },\r\n _storeTrackerR: function() {\r\n var navigator = window.navigator;\r\n var r = this._options.styles.normal.r;\r\n var minTrackerSize = hasProperty(\"ontouchstart\") || navigator.msPointerEnabled && navigator.msMaxTouchPoints || navigator.pointerEnabled && navigator.maxTouchPoints ? 20 : 6;\r\n this._options.trackerR = r < minTrackerSize ? minTrackerSize : r;\r\n return this._options.trackerR\r\n },\r\n _translateErrorBars: function() {\r\n var options = this._options;\r\n var rotated = options.rotated;\r\n var errorBars = options.errorBars;\r\n var translator = this._getValTranslator();\r\n if (!errorBars) {\r\n return\r\n }\r\n _isDefined(this.lowError) && (this._lowErrorCoord = translator.translate(this.lowError));\r\n _isDefined(this.highError) && (this._highErrorCoord = translator.translate(this.highError));\r\n this._errorBarPos = _floor(rotated ? this.vy : this.vx);\r\n this._baseErrorBarPos = \"stdDeviation\" === errorBars.type ? this._lowErrorCoord + (this._highErrorCoord - this._lowErrorCoord) / 2 : rotated ? this.vx : this.vy\r\n },\r\n _translate: function() {\r\n var valTranslator = this._getValTranslator();\r\n var argTranslator = this._getArgTranslator();\r\n if (this._options.rotated) {\r\n this.vx = this.x = valTranslator.translate(this.value);\r\n this.vy = this.y = argTranslator.translate(this.argument);\r\n this.minX = valTranslator.translate(this.minValue);\r\n this.defaultX = valTranslator.translate(CANVAS_POSITION_DEFAULT)\r\n } else {\r\n this.vy = this.y = valTranslator.translate(this.value);\r\n this.vx = this.x = argTranslator.translate(this.argument);\r\n this.minY = valTranslator.translate(this.minValue);\r\n this.defaultY = valTranslator.translate(CANVAS_POSITION_DEFAULT)\r\n }\r\n this._translateErrorBars();\r\n this._calculateVisibility(this.x, this.y)\r\n },\r\n _updateData: function(data) {\r\n this.value = this.properValue = this.initialValue = this.originalValue = data.value;\r\n this.minValue = this.initialMinValue = this.originalMinValue = _isDefined(data.minValue) ? data.minValue : CANVAS_POSITION_DEFAULT\r\n },\r\n _getImageSettings: function(image) {\r\n return {\r\n href: image.url || image.toString(),\r\n width: image.width || DEFAULT_IMAGE_WIDTH,\r\n height: image.height || DEFAULT_IMAGE_HEIGHT\r\n }\r\n },\r\n getCrosshairData: function() {\r\n var r = this._options.rotated;\r\n var value = this.properValue;\r\n var argument = this.argument;\r\n return {\r\n x: this.vx,\r\n y: this.vy,\r\n xValue: r ? value : argument,\r\n yValue: r ? argument : value,\r\n axis: this.series.axis\r\n }\r\n },\r\n getPointRadius: function() {\r\n var style = this._getStyle();\r\n var options = this._options;\r\n var r = style.r;\r\n var extraSpace;\r\n var symbol = options.symbol;\r\n var isSquare = \"square\" === symbol;\r\n var isTriangle = \"triangle\" === symbol || \"triangleDown\" === symbol || \"triangleUp\" === symbol;\r\n if (options.visible && !options.image && r) {\r\n extraSpace = style[\"stroke-width\"] / 2;\r\n return (isSquare || isTriangle ? 1.4 * r : r) + extraSpace\r\n }\r\n return 0\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n var options = this._options;\r\n var settings;\r\n var image = options.image;\r\n var visibility = !this.isVisible() ? {\r\n visibility: \"hidden\"\r\n } : {};\r\n if (this._checkImage(image)) {\r\n settings = _extend({}, {\r\n visibility: style.visibility\r\n }, visibility, this._getImageSettings(image))\r\n } else {\r\n settings = _extend({}, style, visibility, {\r\n points: this._populatePointShape(options.symbol, style.r)\r\n })\r\n }\r\n if (!animationEnabled) {\r\n settings.translateX = this.x;\r\n settings.translateY = this.y\r\n }\r\n this.graphic.attr(settings).sharp()\r\n },\r\n _getLabelFormatObject: function() {\r\n return {\r\n argument: this.initialArgument,\r\n value: this.initialValue,\r\n originalArgument: this.originalArgument,\r\n originalValue: this.originalValue,\r\n seriesName: this.series.name,\r\n lowErrorValue: this.lowError,\r\n highErrorValue: this.highError,\r\n point: this\r\n }\r\n },\r\n _getLabelPosition: function() {\r\n var rotated = this._options.rotated;\r\n if (this.initialValue > 0) {\r\n return rotated ? \"right\" : \"top\"\r\n } else {\r\n return rotated ? \"left\" : \"bottom\"\r\n }\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var labelFormatObject = this._label.getData();\r\n return _extend({}, labelFormatObject, {\r\n argumentText: tooltip.formatValue(this.initialArgument, \"argument\"),\r\n valueText: tooltip.formatValue(this.initialValue)\r\n }, _isDefined(labelFormatObject.percent) ? {\r\n percentText: tooltip.formatValue(labelFormatObject.percent, \"percent\")\r\n } : {}, _isDefined(labelFormatObject.total) ? {\r\n totalText: tooltip.formatValue(labelFormatObject.total)\r\n } : {})\r\n },\r\n getMarkerVisibility: function() {\r\n return this._options.visible\r\n },\r\n coordsIn: function(x, y) {\r\n var trackerRadius = this._storeTrackerR();\r\n return x >= this.x - trackerRadius && x <= this.x + trackerRadius && y >= this.y - trackerRadius && y <= this.y + trackerRadius\r\n },\r\n getMinValue: function(noErrorBar) {\r\n var errorBarOptions = this._options.errorBars;\r\n if (errorBarOptions && !noErrorBar) {\r\n var displayMode = errorBarOptions.displayMode;\r\n var lowValue = \"high\" !== displayMode && _isDefined(this.lowError) ? this.lowError : this.value;\r\n var highValue = \"low\" !== displayMode && _isDefined(this.highError) ? this.highError : this.value;\r\n return lowValue < highValue ? lowValue : highValue\r\n } else {\r\n return this.value\r\n }\r\n },\r\n getMaxValue: function(noErrorBar) {\r\n var errorBarOptions = this._options.errorBars;\r\n if (errorBarOptions && !noErrorBar) {\r\n var displayMode = errorBarOptions.displayMode;\r\n var lowValue = \"high\" !== displayMode && _isDefined(this.lowError) ? this.lowError : this.value;\r\n var highValue = \"low\" !== displayMode && _isDefined(this.highError) ? this.highError : this.value;\r\n return lowValue > highValue ? lowValue : highValue\r\n } else {\r\n return this.value\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/points/bar_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _extend = extend;\r\nvar _math = Math;\r\nvar _floor = _math.floor;\r\nvar _abs = _math.abs;\r\nimport symbolPoint from \"./symbol_point\";\r\nvar CANVAS_POSITION_DEFAULT = \"canvas_position_default\";\r\nvar DEFAULT_BAR_TRACKER_SIZE = 9;\r\nvar CORRECTING_BAR_TRACKER_VALUE = 4;\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\n\r\nfunction getLabelOrientation(point) {\r\n var initialValue = point.initialValue;\r\n var invert = point._getValTranslator().getBusinessRange().invert;\r\n var isDiscreteValue = \"discrete\" === point.series.valueAxisType;\r\n var isFullStacked = point.series.isFullStackedSeries();\r\n var notAxisInverted = !isDiscreteValue && (initialValue >= 0 && !invert || initialValue < 0 && invert) || isDiscreteValue && !invert || isFullStacked;\r\n return notAxisInverted ? TOP : BOTTOM\r\n}\r\nexport default _extend({}, symbolPoint, {\r\n correctCoordinates(correctOptions) {\r\n var correction = _floor(correctOptions.offset - correctOptions.width / 2);\r\n if (this._options.rotated) {\r\n this.height = correctOptions.width;\r\n this.yCorrection = correction;\r\n this.xCorrection = null\r\n } else {\r\n this.width = correctOptions.width;\r\n this.xCorrection = correction;\r\n this.yCorrection = null\r\n }\r\n },\r\n _getGraphicBBox: function(location) {\r\n var bBox = {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n if (location) {\r\n var isTop = \"top\" === location;\r\n if (!this._options.rotated) {\r\n bBox.y = isTop ? bBox.y : bBox.y + bBox.height;\r\n bBox.height = 0\r\n } else {\r\n bBox.x = isTop ? bBox.x + bBox.width : bBox.x;\r\n bBox.width = 0\r\n }\r\n }\r\n return bBox\r\n },\r\n _getLabelConnector: function(location) {\r\n return this._getGraphicBBox(location)\r\n },\r\n _getLabelPosition: function() {\r\n var position = getLabelOrientation(this);\r\n if (this._options.rotated) {\r\n position = position === TOP ? RIGHT : LEFT\r\n }\r\n return position\r\n },\r\n _getLabelCoords: function(label) {\r\n var coords;\r\n if (0 === this.initialValue && this.series.isFullStackedSeries()) {\r\n if (!this._options.rotated) {\r\n coords = this._getLabelCoordOfPosition(label, TOP)\r\n } else {\r\n coords = this._getLabelCoordOfPosition(label, RIGHT)\r\n }\r\n } else if (\"inside\" === label.getLayoutOptions().position) {\r\n coords = this._getLabelCoordOfPosition(label, \"inside\")\r\n } else {\r\n coords = symbolPoint._getLabelCoords.call(this, label)\r\n }\r\n return coords\r\n },\r\n _drawLabel: function() {\r\n this._label.pointPosition = \"inside\" !== this._label.getLayoutOptions().position && getLabelOrientation(this);\r\n symbolPoint._drawLabel.call(this)\r\n },\r\n hideInsideLabel: function(label, coord) {\r\n var graphicBBox = this._getGraphicBBox();\r\n var labelBBox = label.getBoundingRect();\r\n if (this._options.resolveLabelsOverlapping) {\r\n if ((coord.y <= graphicBBox.y && coord.y + labelBBox.height >= graphicBBox.y + graphicBBox.height || coord.x <= graphicBBox.x && coord.x + labelBBox.width >= graphicBBox.x + graphicBBox.width) && !(coord.y > graphicBBox.y + graphicBBox.height || coord.y + labelBBox.height < graphicBBox.y || coord.x > graphicBBox.x + graphicBBox.width || coord.x + labelBBox.width < graphicBBox.x)) {\r\n label.draw(false);\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _showForZeroValues: function() {\r\n return this._options.label.showForZeroValues || this.initialValue\r\n },\r\n _drawMarker(renderer, group, animationEnabled) {\r\n var style = this._getStyle();\r\n var r = this._options.cornerRadius;\r\n var rotated = this._options.rotated;\r\n var {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n } = this.getMarkerCoords();\r\n if (animationEnabled) {\r\n if (rotated) {\r\n width = 0;\r\n x = this.defaultX\r\n } else {\r\n height = 0;\r\n y = this.defaultY\r\n }\r\n }\r\n this.graphic = renderer.rect(x, y, width, height).attr({\r\n rx: r,\r\n ry: r\r\n }).smartAttr(style).data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n },\r\n _getSettingsForTracker: function() {\r\n var y = this.y;\r\n var height = this.height;\r\n var x = this.x;\r\n var width = this.width;\r\n if (this._options.rotated) {\r\n if (1 === width) {\r\n width = DEFAULT_BAR_TRACKER_SIZE;\r\n x -= CORRECTING_BAR_TRACKER_VALUE\r\n }\r\n } else if (1 === height) {\r\n height = DEFAULT_BAR_TRACKER_SIZE;\r\n y -= CORRECTING_BAR_TRACKER_VALUE\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n getGraphicSettings: function() {\r\n var graphic = this.graphic;\r\n return {\r\n x: graphic.attr(\"x\"),\r\n y: graphic.attr(\"y\"),\r\n height: graphic.attr(\"height\"),\r\n width: graphic.attr(\"width\")\r\n }\r\n },\r\n _getEdgeTooltipParams() {\r\n var isPositive = this.value >= 0;\r\n var xCoord;\r\n var yCoord;\r\n var invertedBusinessRange = this._getValTranslator().getBusinessRange().invert;\r\n var {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n } = this;\r\n if (this._options.rotated) {\r\n yCoord = y + height / 2;\r\n if (invertedBusinessRange) {\r\n xCoord = isPositive ? x : x + width\r\n } else {\r\n xCoord = isPositive ? x + width : x\r\n }\r\n } else {\r\n xCoord = x + width / 2;\r\n if (invertedBusinessRange) {\r\n yCoord = isPositive ? y + height : y\r\n } else {\r\n yCoord = isPositive ? y : y + height\r\n }\r\n }\r\n return {\r\n x: xCoord,\r\n y: yCoord,\r\n offset: 0\r\n }\r\n },\r\n getTooltipParams: function(location) {\r\n if (\"edge\" === location) {\r\n return this._getEdgeTooltipParams()\r\n }\r\n var center = this.getCenterCoord();\r\n center.offset = 0;\r\n return center\r\n },\r\n getCenterCoord() {\r\n var {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y\r\n } = this;\r\n return {\r\n x: x + width / 2,\r\n y: y + height / 2\r\n }\r\n },\r\n _truncateCoord: function(coord, bounds) {\r\n if (null === coord) {\r\n return coord\r\n }\r\n if (coord < bounds[0]) {\r\n return bounds[0]\r\n }\r\n if (coord > bounds[1]) {\r\n return bounds[1]\r\n }\r\n return coord\r\n },\r\n _getErrorBarBaseEdgeLength() {\r\n return this._options.rotated ? this.height : this.width\r\n },\r\n _translateErrorBars: function(argVisibleArea) {\r\n symbolPoint._translateErrorBars.call(this);\r\n if (this._errorBarPos < argVisibleArea[0] || this._errorBarPos > argVisibleArea[1]) {\r\n this._errorBarPos = void 0\r\n }\r\n },\r\n _translate: function() {\r\n var rotated = this._options.rotated;\r\n var valAxis = rotated ? \"x\" : \"y\";\r\n var argAxis = rotated ? \"y\" : \"x\";\r\n var valIntervalName = rotated ? \"width\" : \"height\";\r\n var argIntervalName = rotated ? \"height\" : \"width\";\r\n var argTranslator = this._getArgTranslator();\r\n var valTranslator = this._getValTranslator();\r\n var argVisibleArea = this.series.getArgumentAxis().getVisibleArea();\r\n var valVisibleArea = this.series.getValueAxis().getVisibleArea();\r\n var arg = argTranslator.translate(this.argument);\r\n var val = valTranslator.translate(this.value, 1);\r\n var minVal = valTranslator.translate(this.minValue);\r\n this[argAxis] = arg = null === arg ? arg : arg + (this[argAxis + \"Correction\"] || 0);\r\n this[\"v\" + valAxis] = val;\r\n this[\"v\" + argAxis] = arg + this[argIntervalName] / 2;\r\n val = this._truncateCoord(val, valVisibleArea);\r\n minVal = this._truncateCoord(minVal, valVisibleArea);\r\n this[valIntervalName] = _abs(val - minVal);\r\n val = val < minVal ? val : minVal;\r\n this._calculateVisibility(rotated ? val : arg, rotated ? arg : val, this.width, this.height);\r\n this[valAxis] = null === val ? val : val + (this[valAxis + \"Correction\"] || 0);\r\n this[\"min\" + valAxis.toUpperCase()] = null === minVal ? minVal : minVal + (this[valAxis + \"Correction\"] || 0);\r\n this[\"default\" + valAxis.toUpperCase()] = valTranslator.translate(CANVAS_POSITION_DEFAULT);\r\n this._translateErrorBars(argVisibleArea);\r\n if (this.inVisibleArea && null !== this[argAxis]) {\r\n if (this[argAxis] < argVisibleArea[0]) {\r\n this[argIntervalName] = this[argIntervalName] - (argVisibleArea[0] - this[argAxis]);\r\n this[argAxis] = argVisibleArea[0]\r\n }\r\n if (this[argAxis] + this[argIntervalName] > argVisibleArea[1]) {\r\n this[argIntervalName] = argVisibleArea[1] - this[argAxis]\r\n }\r\n }\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n this.graphic.smartAttr(_extend({}, style, !animationEnabled ? this.getMarkerCoords() : {}))\r\n },\r\n getMarkerCoords: function() {\r\n var x = this.x;\r\n var y = this.y;\r\n var width = this.width;\r\n var height = this.height;\r\n var argAxis = this.series.getArgumentAxis();\r\n var rotated = this._options.rotated;\r\n if (argAxis.getAxisPosition) {\r\n var axisOptions = argAxis.getOptions();\r\n var edgeOffset = Math.round(axisOptions.width / 2);\r\n var argAxisPosition = argAxis.getAxisPosition();\r\n if (axisOptions.visible) {\r\n if (!rotated) {\r\n height -= this.minY === this.defaultY && this.minY === argAxisPosition - argAxis.getAxisShift() ? edgeOffset : 0;\r\n height < 0 && (height = 0)\r\n } else {\r\n var isStartFromAxis = this.minX === this.defaultX && this.minX === argAxisPosition - argAxis.getAxisShift();\r\n x += isStartFromAxis ? edgeOffset : 0;\r\n width -= isStartFromAxis ? edgeOffset : 0;\r\n width < 0 && (width = 0)\r\n }\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n coordsIn: function(x, y) {\r\n return x >= this.x && x <= this.x + this.width && y >= this.y && y <= this.y + this.height\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/bubble_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport symbolPoint from \"./symbol_point\";\r\nvar _extend = extend;\r\nvar MIN_BUBBLE_HEIGHT = 20;\r\nexport default _extend({}, symbolPoint, {\r\n correctCoordinates: function(diameter) {\r\n this.bubbleSize = diameter / 2\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled) {\r\n var attr = _extend({\r\n translateX: this.x,\r\n translateY: this.y\r\n }, this._getStyle());\r\n this.graphic = renderer.circle(0, 0, animationEnabled ? 0 : this.bubbleSize).smartAttr(attr).data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n },\r\n getTooltipParams: function(location) {\r\n var graphic = this.graphic;\r\n if (!graphic) {\r\n return\r\n }\r\n var height = graphic.getBBox().height;\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n offset: height < MIN_BUBBLE_HEIGHT || \"edge\" === location ? height / 2 : 0\r\n }\r\n },\r\n _getLabelFormatObject: function() {\r\n var formatObject = symbolPoint._getLabelFormatObject.call(this);\r\n formatObject.size = this.initialSize;\r\n return formatObject\r\n },\r\n _updateData: function(data) {\r\n symbolPoint._updateData.call(this, data);\r\n this.size = this.initialSize = data.size\r\n },\r\n _getGraphicBBox: function() {\r\n return this._getSymbolBBox(this.x, this.y, this.bubbleSize)\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n if (!animationEnabled) {\r\n style = _extend({\r\n r: this.bubbleSize,\r\n translateX: this.x,\r\n translateY: this.y\r\n }, style)\r\n }\r\n this.graphic.smartAttr(style)\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var formatObject = symbolPoint._getFormatObject.call(this, tooltip);\r\n formatObject.sizeText = tooltip.formatValue(this.initialSize);\r\n return formatObject\r\n },\r\n _storeTrackerR: function() {\r\n return this.bubbleSize\r\n },\r\n _getLabelCoords: function(label) {\r\n var coords;\r\n if (\"inside\" === label.getLayoutOptions().position) {\r\n coords = this._getLabelCoordOfPosition(label, \"inside\")\r\n } else {\r\n coords = symbolPoint._getLabelCoords.call(this, label)\r\n }\r\n return coords\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/pie_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport symbolPoint from \"./symbol_point\";\r\nvar _extend = extend;\r\nvar _round = Math.round;\r\nvar _sqrt = Math.sqrt;\r\nvar _acos = Math.acos;\r\nvar DEG = 180 / Math.PI;\r\nvar _abs = Math.abs;\r\nimport {\r\n getVerticallyShiftedAngularCoords,\r\n normalizeAngle as _normalizeAngle,\r\n getCosAndSin as _getCosAndSin\r\n} from \"../../core/utils\";\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nimport consts from \"../../components/consts\";\r\nvar RADIAL_LABEL_INDENT = consts.radialLabelIndent;\r\nexport default _extend({}, symbolPoint, {\r\n _updateData: function(data, argumentChanged) {\r\n symbolPoint._updateData.call(this, data);\r\n if (argumentChanged || !_isDefined(this._visible)) {\r\n this._visible = true\r\n }\r\n this.minValue = this.initialMinValue = this.originalMinValue = _isDefined(data.minValue) ? data.minValue : 0\r\n },\r\n animate: function(complete, duration, delay) {\r\n this.graphic.animate({\r\n x: this.centerX,\r\n y: this.centerY,\r\n outerRadius: this.radiusOuter,\r\n innerRadius: this.radiusInner,\r\n startAngle: this.toAngle,\r\n endAngle: this.fromAngle\r\n }, {\r\n delay: delay,\r\n partitionDuration: duration\r\n }, complete)\r\n },\r\n correctPosition: function(correction) {\r\n this.correctRadius(correction);\r\n this.correctLabelRadius(correction.radiusOuter + RADIAL_LABEL_INDENT);\r\n this.centerX = correction.centerX;\r\n this.centerY = correction.centerY\r\n },\r\n correctRadius: function(correction) {\r\n this.radiusInner = correction.radiusInner;\r\n this.radiusOuter = correction.radiusOuter\r\n },\r\n correctLabelRadius: function(radiusLabels) {\r\n this.radiusLabels = radiusLabels\r\n },\r\n correctValue: function(correction, percent, base) {\r\n this.value = (base || this.normalInitialValue) + correction;\r\n this.minValue = correction;\r\n this.percent = percent;\r\n this._label.setDataField(\"percent\", percent)\r\n },\r\n _updateLabelData: function() {\r\n this._label.setData(this._getLabelFormatObject())\r\n },\r\n _getShiftLabelCoords: function() {\r\n var bBox = this._label.getBoundingRect();\r\n var coord = this._getLabelCoords(this._label);\r\n var visibleArea = this._getVisibleArea();\r\n if (this._isLabelDrawingWithoutPoints) {\r\n return this._checkLabelPosition(coord, bBox, visibleArea)\r\n } else {\r\n return this._getLabelExtraCoord(coord, this._checkVerticalLabelPosition(coord, bBox, visibleArea), bBox)\r\n }\r\n },\r\n _getLabelPosition: function(options) {\r\n return options.position\r\n },\r\n getAnnotationCoords: function(location) {\r\n return this._getElementCoords(\"edge\" !== location ? \"inside\" : \"outside\", this.radiusOuter, 0)\r\n },\r\n _getElementCoords: function(position, elementRadius, radialOffset) {\r\n var bBox = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n var that = this;\r\n var angleFunctions = _getCosAndSin(that.middleAngle);\r\n var radiusInner = that.radiusInner;\r\n var radiusOuter = that.radiusOuter;\r\n var columnsPosition = \"columns\" === position;\r\n var rad;\r\n var x;\r\n if (\"inside\" === position) {\r\n rad = radiusInner + (radiusOuter - radiusInner) / 2 + radialOffset;\r\n x = that.centerX + rad * angleFunctions.cos - bBox.width / 2\r\n } else {\r\n rad = elementRadius + radialOffset;\r\n if (angleFunctions.cos > .1 || columnsPosition && angleFunctions.cos >= 0) {\r\n x = that.centerX + rad * angleFunctions.cos\r\n } else if (angleFunctions.cos < -.1 || columnsPosition && angleFunctions.cos < 0) {\r\n x = that.centerX + rad * angleFunctions.cos - bBox.width\r\n } else {\r\n x = that.centerX + rad * angleFunctions.cos - bBox.width / 2\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: _round(that.centerY - rad * angleFunctions.sin - bBox.height / 2)\r\n }\r\n },\r\n _getLabelCoords: function(label) {\r\n var bBox = label.getBoundingRect();\r\n var options = label.getLayoutOptions();\r\n var position = this._getLabelPosition(options);\r\n return this._getElementCoords(position, this.radiusLabels, options.radialOffset, bBox)\r\n },\r\n _correctLabelCoord: function(coord, moveLabelsFromCenter) {\r\n var label = this._label;\r\n var bBox = label.getBoundingRect();\r\n var labelWidth = bBox.width;\r\n var options = label.getLayoutOptions();\r\n var visibleArea = this._getVisibleArea();\r\n var rightBorderX = visibleArea.maxX - labelWidth;\r\n var leftBorderX = visibleArea.minX;\r\n var angleOfPoint = _normalizeAngle(this.middleAngle);\r\n var centerX = this.centerX;\r\n var connectorOffset = options.connectorOffset;\r\n var x = coord.x;\r\n if (\"columns\" === options.position) {\r\n if (angleOfPoint <= 90 || angleOfPoint >= 270) {\r\n x = rightBorderX\r\n } else {\r\n x = leftBorderX\r\n }\r\n coord.x = x\r\n } else if (\"inside\" !== options.position && moveLabelsFromCenter) {\r\n if (angleOfPoint <= 90 || angleOfPoint >= 270) {\r\n if (x - connectorOffset < centerX) {\r\n x = centerX + connectorOffset\r\n }\r\n } else if (x + labelWidth + connectorOffset > centerX) {\r\n x = centerX - labelWidth - connectorOffset\r\n }\r\n coord.x = x\r\n }\r\n return coord\r\n },\r\n drawLabel: function() {\r\n this.translate();\r\n this._isLabelDrawingWithoutPoints = true;\r\n this._drawLabel();\r\n this._isLabelDrawingWithoutPoints = false\r\n },\r\n updateLabelCoord: function(moveLabelsFromCenter) {\r\n var bBox = this._label.getBoundingRect();\r\n var coord = this._correctLabelCoord(bBox, moveLabelsFromCenter);\r\n coord = this._checkHorizontalLabelPosition(coord, bBox, this._getVisibleArea());\r\n this._label.shift(_round(coord.x), _round(bBox.y))\r\n },\r\n _checkVerticalLabelPosition: function(coord, box, visibleArea) {\r\n var x = coord.x;\r\n var y = coord.y;\r\n if (coord.y + box.height > visibleArea.maxY) {\r\n y = visibleArea.maxY - box.height\r\n } else if (coord.y < visibleArea.minY) {\r\n y = visibleArea.minY\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getLabelExtraCoord: function(coord, shiftCoord, box) {\r\n return coord.y !== shiftCoord.y ? getVerticallyShiftedAngularCoords({\r\n x: coord.x,\r\n y: coord.y,\r\n width: box.width,\r\n height: box.height\r\n }, shiftCoord.y - coord.y, {\r\n x: this.centerX,\r\n y: this.centerY\r\n }) : coord\r\n },\r\n _checkHorizontalLabelPosition: function(coord, box, visibleArea) {\r\n var x = coord.x;\r\n var y = coord.y;\r\n if (coord.x + box.width > visibleArea.maxX) {\r\n x = visibleArea.maxX - box.width\r\n } else if (coord.x < visibleArea.minX) {\r\n x = visibleArea.minX\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n applyWordWrap: function(moveLabelsFromCenter) {\r\n var label = this._label;\r\n var box = label.getBoundingRect();\r\n var visibleArea = this._getVisibleArea();\r\n var position = label.getLayoutOptions().position;\r\n var width = box.width;\r\n var rowCountChanged = false;\r\n if (\"columns\" === position && this.series.index > 0) {\r\n width = visibleArea.maxX - this.centerX - this.radiusLabels\r\n } else if (\"inside\" === position) {\r\n if (width > visibleArea.maxX - visibleArea.minX) {\r\n width = visibleArea.maxX - visibleArea.minX\r\n }\r\n } else if (moveLabelsFromCenter && box.x < this.centerX && box.width + box.x > this.centerX) {\r\n width = Math.floor((visibleArea.maxX - visibleArea.minX) / 2)\r\n } else if (box.x + width > visibleArea.maxX) {\r\n width = visibleArea.maxX - box.x\r\n } else if (box.x < visibleArea.minX) {\r\n width = box.x + width - visibleArea.minX\r\n }\r\n if (width < box.width) {\r\n rowCountChanged = label.fit(width)\r\n }\r\n return rowCountChanged\r\n },\r\n setLabelTrackerData: function() {\r\n this._label.setTrackerData(this)\r\n },\r\n _checkLabelPosition: function(coord, bBox, visibleArea) {\r\n coord = this._checkHorizontalLabelPosition(coord, bBox, visibleArea);\r\n return this._checkVerticalLabelPosition(coord, bBox, visibleArea)\r\n },\r\n _getLabelConnector: function() {\r\n var rad = this.radiusOuter;\r\n var seriesStyle = this._options.styles.normal;\r\n var strokeWidthBy2 = seriesStyle[\"stroke-width\"] / 2;\r\n var borderWidth = this.series.getOptions().containerBackgroundColor === seriesStyle.stroke ? _round(strokeWidthBy2) : _round(-strokeWidthBy2);\r\n var angleFunctions = _getCosAndSin(_round(this.middleAngle));\r\n return {\r\n x: _round(this.centerX + (rad - borderWidth) * angleFunctions.cos),\r\n y: _round(this.centerY - (rad - borderWidth) * angleFunctions.sin),\r\n angle: this.middleAngle\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled, firstDrawing) {\r\n var radiusOuter = this.radiusOuter;\r\n var radiusInner = this.radiusInner;\r\n var fromAngle = this.fromAngle;\r\n var toAngle = this.toAngle;\r\n if (animationEnabled) {\r\n radiusInner = radiusOuter = 0;\r\n if (!firstDrawing) {\r\n fromAngle = toAngle = this.shiftedAngle\r\n }\r\n }\r\n this.graphic = renderer.arc(this.centerX, this.centerY, radiusInner, radiusOuter, toAngle, fromAngle).attr({\r\n \"stroke-linejoin\": \"round\"\r\n }).smartAttr(this._getStyle()).data({\r\n \"chart-data-point\": this\r\n }).sharp().append(group)\r\n },\r\n getTooltipParams: function() {\r\n var angleFunctions = _getCosAndSin(this.middleAngle);\r\n var radiusInner = this.radiusInner;\r\n var radiusOuter = this.radiusOuter;\r\n return {\r\n x: this.centerX + (radiusInner + (radiusOuter - radiusInner) / 2) * angleFunctions.cos,\r\n y: this.centerY - (radiusInner + (radiusOuter - radiusInner) / 2) * angleFunctions.sin,\r\n offset: 0\r\n }\r\n },\r\n _translate: function() {\r\n var angle = this.shiftedAngle || 0;\r\n var value = this.value;\r\n var minValue = this.minValue;\r\n var translator = this._getValTranslator();\r\n this.fromAngle = translator.translate(minValue) + angle;\r\n this.toAngle = translator.translate(value) + angle;\r\n this.middleAngle = translator.translate((value - minValue) / 2 + minValue) + angle;\r\n if (!this.isVisible()) {\r\n this.middleAngle = this.toAngle = this.fromAngle = this.fromAngle || angle\r\n }\r\n },\r\n getMarkerVisibility: function() {\r\n return true\r\n },\r\n _updateMarker: function(animationEnabled, style, _, callback) {\r\n if (!animationEnabled) {\r\n style = _extend({\r\n x: this.centerX,\r\n y: this.centerY,\r\n outerRadius: this.radiusOuter,\r\n innerRadius: this.radiusInner,\r\n startAngle: this.toAngle,\r\n endAngle: this.fromAngle\r\n }, style)\r\n }\r\n this.graphic.smartAttr(style).sharp();\r\n callback && callback()\r\n },\r\n getLegendStyles: function() {\r\n return this._styles.legendStyles\r\n },\r\n isInVisibleArea: function() {\r\n return true\r\n },\r\n hide: function() {\r\n if (this._visible) {\r\n this._visible = false;\r\n this.hideTooltip();\r\n this._options.visibilityChanged()\r\n }\r\n },\r\n show: function() {\r\n if (!this._visible) {\r\n this._visible = true;\r\n this._options.visibilityChanged()\r\n }\r\n },\r\n setInvisibility: function() {\r\n this._label.draw(false)\r\n },\r\n isVisible: function() {\r\n return this._visible\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var formatObject = symbolPoint._getFormatObject.call(this, tooltip);\r\n var percent = this.percent;\r\n formatObject.percent = percent;\r\n formatObject.percentText = tooltip.formatValue(percent, \"percent\");\r\n return formatObject\r\n },\r\n getColor: function() {\r\n return this._styles.normal.fill\r\n },\r\n coordsIn: function(x, y) {\r\n var lx = x - this.centerX;\r\n var ly = y - this.centerY;\r\n var r = _sqrt(lx * lx + ly * ly);\r\n var fromAngle = this.fromAngle % 360;\r\n var toAngle = this.toAngle % 360;\r\n var angle;\r\n if (r < this.radiusInner || r > this.radiusOuter || 0 === r) {\r\n return false\r\n }\r\n angle = _acos(lx / r) * DEG * (ly > 0 ? -1 : 1);\r\n if (angle < 0) {\r\n angle += 360\r\n }\r\n if (fromAngle === toAngle && _abs(this.toAngle - this.fromAngle) > 1e-4) {\r\n return true\r\n } else {\r\n return fromAngle >= toAngle ? angle <= fromAngle && angle >= toAngle : !(angle >= fromAngle && angle <= toAngle)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/range_symbol_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Label\r\n} from \"./label\";\r\nimport symbolPoint from \"./symbol_point\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _min = _math.min;\r\nvar _max = _math.max;\r\nvar _round = _math.round;\r\nvar DEFAULT_IMAGE_WIDTH = 20;\r\nvar DEFAULT_IMAGE_HEIGHT = 20;\r\nexport default _extend({}, symbolPoint, {\r\n deleteLabel: function() {\r\n this._topLabel.dispose();\r\n this._topLabel = null;\r\n this._bottomLabel.dispose();\r\n this._bottomLabel = null\r\n },\r\n hideMarker: function(type) {\r\n var graphic = this.graphic;\r\n var marker = graphic && graphic[type + \"Marker\"];\r\n var label = this[\"_\" + type + \"Label\"];\r\n if (marker && \"hidden\" !== marker.attr(\"visibility\")) {\r\n marker.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n label.draw(false)\r\n },\r\n setInvisibility: function() {\r\n this.hideMarker(\"top\");\r\n this.hideMarker(\"bottom\")\r\n },\r\n clearVisibility: function() {\r\n var graphic = this.graphic;\r\n var topMarker = graphic && graphic.topMarker;\r\n var bottomMarker = graphic && graphic.bottomMarker;\r\n if (topMarker && topMarker.attr(\"visibility\")) {\r\n topMarker.attr({\r\n visibility: null\r\n })\r\n }\r\n if (bottomMarker && bottomMarker.attr(\"visibility\")) {\r\n bottomMarker.attr({\r\n visibility: null\r\n })\r\n }\r\n },\r\n clearMarker: function() {\r\n var graphic = this.graphic;\r\n var topMarker = graphic && graphic.topMarker;\r\n var bottomMarker = graphic && graphic.bottomMarker;\r\n var emptySettings = this._emptySettings;\r\n topMarker && topMarker.attr(emptySettings);\r\n bottomMarker && bottomMarker.attr(emptySettings)\r\n },\r\n _getLabelPosition: function(markerType) {\r\n var position;\r\n var labelsInside = \"inside\" === this._options.label.position;\r\n if (!this._options.rotated) {\r\n position = \"top\" === markerType ^ labelsInside ? \"top\" : \"bottom\"\r\n } else {\r\n position = \"top\" === markerType ^ labelsInside ? \"right\" : \"left\"\r\n }\r\n return position\r\n },\r\n _getLabelMinFormatObject: function() {\r\n return {\r\n index: 0,\r\n argument: this.initialArgument,\r\n value: this.initialMinValue,\r\n seriesName: this.series.name,\r\n originalValue: this.originalMinValue,\r\n originalArgument: this.originalArgument,\r\n point: this\r\n }\r\n },\r\n _updateLabelData: function() {\r\n var maxFormatObject = this._getLabelFormatObject();\r\n maxFormatObject.index = 1;\r\n this._topLabel.setData(maxFormatObject);\r\n this._bottomLabel.setData(this._getLabelMinFormatObject())\r\n },\r\n _updateLabelOptions: function() {\r\n var options = this._options.label;\r\n (!this._topLabel || !this._bottomLabel) && this._createLabel();\r\n this._topLabel.setOptions(options);\r\n this._bottomLabel.setOptions(options)\r\n },\r\n _createLabel: function() {\r\n var options = {\r\n renderer: this.series._renderer,\r\n labelsGroup: this.series._labelsGroup,\r\n point: this\r\n };\r\n this._topLabel = new Label(options);\r\n this._bottomLabel = new Label(options)\r\n },\r\n _getGraphicBBox: function(location) {\r\n var options = this._options;\r\n var images = this._getImage(options.image);\r\n var image = \"top\" === location ? this._checkImage(images.top) : this._checkImage(images.bottom);\r\n var bBox;\r\n var coord = this._getPositionFromLocation(location);\r\n if (options.visible) {\r\n bBox = image ? this._getImageBBox(coord.x, coord.y) : this._getSymbolBBox(coord.x, coord.y, options.styles.normal.r)\r\n } else {\r\n bBox = {\r\n x: coord.x,\r\n y: coord.y,\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return bBox\r\n },\r\n _getPositionFromLocation: function(location) {\r\n var x;\r\n var y;\r\n var isTop = \"top\" === location;\r\n if (!this._options.rotated) {\r\n x = this.x;\r\n y = isTop ? _min(this.y, this.minY) : _max(this.y, this.minY)\r\n } else {\r\n x = isTop ? _max(this.x, this.minX) : _min(this.x, this.minX);\r\n y = this.y\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _checkOverlay: function(bottomCoord, topCoord, topValue) {\r\n return bottomCoord < topCoord + topValue\r\n },\r\n _getOverlayCorrections: function(topCoords, bottomCoords) {\r\n var rotated = this._options.rotated;\r\n var coordSelector = !rotated ? \"y\" : \"x\";\r\n var valueSelector = !rotated ? \"height\" : \"width\";\r\n var visibleArea = this.series.getValueAxis().getVisibleArea();\r\n var minBound = visibleArea[0];\r\n var maxBound = visibleArea[1];\r\n var delta = _round((topCoords[coordSelector] + topCoords[valueSelector] - bottomCoords[coordSelector]) / 2);\r\n var coord1 = topCoords[coordSelector] - delta;\r\n var coord2 = bottomCoords[coordSelector] + delta;\r\n if (coord1 < minBound) {\r\n delta = minBound - coord1;\r\n coord1 += delta;\r\n coord2 += delta\r\n } else if (coord2 + bottomCoords[valueSelector] > maxBound) {\r\n delta = maxBound - coord2 - bottomCoords[valueSelector];\r\n coord1 += delta;\r\n coord2 += delta\r\n }\r\n return {\r\n coord1: coord1,\r\n coord2: coord2\r\n }\r\n },\r\n _checkLabelsOverlay: function(topLocation) {\r\n var topCoords = this._topLabel.getBoundingRect();\r\n var bottomCoords = this._bottomLabel.getBoundingRect();\r\n var corrections = {};\r\n if (!this._options.rotated) {\r\n if (\"top\" === topLocation) {\r\n if (this._checkOverlay(bottomCoords.y, topCoords.y, topCoords.height)) {\r\n corrections = this._getOverlayCorrections(topCoords, bottomCoords);\r\n this._topLabel.shift(topCoords.x, corrections.coord1);\r\n this._bottomLabel.shift(bottomCoords.x, corrections.coord2)\r\n }\r\n } else if (this._checkOverlay(topCoords.y, bottomCoords.y, bottomCoords.height)) {\r\n corrections = this._getOverlayCorrections(bottomCoords, topCoords);\r\n this._topLabel.shift(topCoords.x, corrections.coord2);\r\n this._bottomLabel.shift(bottomCoords.x, corrections.coord1)\r\n }\r\n } else if (\"top\" === topLocation) {\r\n if (this._checkOverlay(topCoords.x, bottomCoords.x, bottomCoords.width)) {\r\n corrections = this._getOverlayCorrections(bottomCoords, topCoords);\r\n this._topLabel.shift(corrections.coord2, topCoords.y);\r\n this._bottomLabel.shift(corrections.coord1, bottomCoords.y)\r\n }\r\n } else if (this._checkOverlay(bottomCoords.x, topCoords.x, topCoords.width)) {\r\n corrections = this._getOverlayCorrections(topCoords, bottomCoords);\r\n this._topLabel.shift(corrections.coord1, topCoords.y);\r\n this._bottomLabel.shift(corrections.coord2, bottomCoords.y)\r\n }\r\n },\r\n _drawLabel: function() {\r\n var labels = [];\r\n var notInverted = this._options.rotated ? this.x >= this.minX : this.y < this.minY;\r\n var customVisibility = this._getCustomLabelVisibility();\r\n var topLabel = this._topLabel;\r\n var bottomLabel = this._bottomLabel;\r\n topLabel.pointPosition = notInverted ? \"top\" : \"bottom\";\r\n bottomLabel.pointPosition = notInverted ? \"bottom\" : \"top\";\r\n if ((this.series.getLabelVisibility() || customVisibility) && this.hasValue() && false !== customVisibility) {\r\n false !== this.visibleTopMarker && labels.push(topLabel);\r\n false !== this.visibleBottomMarker && labels.push(bottomLabel);\r\n each(labels, (function(_, label) {\r\n label.draw(true)\r\n }));\r\n this._checkLabelsOverlay(this._topLabel.pointPosition)\r\n } else {\r\n topLabel.draw(false);\r\n bottomLabel.draw(false)\r\n }\r\n },\r\n _getImage: function(imageOption) {\r\n var image = {};\r\n if (_isDefined(imageOption)) {\r\n if (\"string\" === typeof imageOption) {\r\n image.top = image.bottom = imageOption\r\n } else {\r\n image.top = {\r\n url: \"string\" === typeof imageOption.url ? imageOption.url : imageOption.url && imageOption.url.rangeMaxPoint,\r\n width: \"number\" === typeof imageOption.width ? imageOption.width : imageOption.width && imageOption.width.rangeMaxPoint,\r\n height: \"number\" === typeof imageOption.height ? imageOption.height : imageOption.height && imageOption.height.rangeMaxPoint\r\n };\r\n image.bottom = {\r\n url: \"string\" === typeof imageOption.url ? imageOption.url : imageOption.url && imageOption.url.rangeMinPoint,\r\n width: \"number\" === typeof imageOption.width ? imageOption.width : imageOption.width && imageOption.width.rangeMinPoint,\r\n height: \"number\" === typeof imageOption.height ? imageOption.height : imageOption.height && imageOption.height.rangeMinPoint\r\n }\r\n }\r\n }\r\n return image\r\n },\r\n _checkSymbol: function(oldOptions, newOptions) {\r\n var oldSymbol = oldOptions.symbol;\r\n var newSymbol = newOptions.symbol;\r\n var symbolChanged = \"circle\" === oldSymbol && \"circle\" !== newSymbol || \"circle\" !== oldSymbol && \"circle\" === newSymbol;\r\n var oldImages = this._getImage(oldOptions.image);\r\n var newImages = this._getImage(newOptions.image);\r\n var topImageChanged = this._checkImage(oldImages.top) !== this._checkImage(newImages.top);\r\n var bottomImageChanged = this._checkImage(oldImages.bottom) !== this._checkImage(newImages.bottom);\r\n return symbolChanged || topImageChanged || bottomImageChanged\r\n },\r\n _getSettingsForTwoMarkers: function(style) {\r\n var options = this._options;\r\n var settings = {};\r\n var x = options.rotated ? _min(this.x, this.minX) : this.x;\r\n var y = options.rotated ? this.y : _min(this.y, this.minY);\r\n var radius = style.r;\r\n var points = this._populatePointShape(options.symbol, radius);\r\n settings.top = _extend({\r\n translateX: x + this.width,\r\n translateY: y,\r\n r: radius\r\n }, style);\r\n settings.bottom = _extend({\r\n translateX: x,\r\n translateY: y + this.height,\r\n r: radius\r\n }, style);\r\n if (points) {\r\n settings.top.points = settings.bottom.points = points\r\n }\r\n return settings\r\n },\r\n _hasGraphic: function() {\r\n return this.graphic && this.graphic.topMarker && this.graphic.bottomMarker\r\n },\r\n _drawOneMarker: function(renderer, markerType, imageSettings, settings) {\r\n var graphic = this.graphic;\r\n if (graphic[markerType]) {\r\n this._updateOneMarker(markerType, settings)\r\n } else {\r\n graphic[markerType] = this._createMarker(renderer, graphic, imageSettings, settings)\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled, firstDrawing, style) {\r\n var settings = this._getSettingsForTwoMarkers(style || this._getStyle());\r\n var image = this._getImage(this._options.image);\r\n if (this._checkImage(image.top)) {\r\n settings.top = this._getImageSettings(settings.top, image.top)\r\n }\r\n if (this._checkImage(image.bottom)) {\r\n settings.bottom = this._getImageSettings(settings.bottom, image.bottom)\r\n }\r\n this.graphic = this.graphic || renderer.g().append(group);\r\n this.visibleTopMarker && this._drawOneMarker(renderer, \"topMarker\", image.top, settings.top);\r\n this.visibleBottomMarker && this._drawOneMarker(renderer, \"bottomMarker\", image.bottom, settings.bottom)\r\n },\r\n _getSettingsForTracker: function(radius) {\r\n var rotated = this._options.rotated;\r\n return {\r\n translateX: rotated ? _min(this.x, this.minX) - radius : this.x - radius,\r\n translateY: rotated ? this.y - radius : _min(this.y, this.minY) - radius,\r\n width: this.width + 2 * radius,\r\n height: this.height + 2 * radius\r\n }\r\n },\r\n isInVisibleArea: function() {\r\n var rotated = this._options.rotated;\r\n var argument = !rotated ? this.x : this.y;\r\n var maxValue = !rotated ? _max(this.minY, this.y) : _max(this.minX, this.x);\r\n var minValue = !rotated ? _min(this.minY, this.y) : _min(this.minX, this.x);\r\n var tmp;\r\n var visibleTopMarker;\r\n var visibleBottomMarker;\r\n var visibleRangeArea = true;\r\n var visibleArgArea = this.series.getArgumentAxis().getVisibleArea();\r\n var visibleValArea = this.series.getValueAxis().getVisibleArea();\r\n var notVisibleByArg = visibleArgArea[1] < argument || visibleArgArea[0] > argument;\r\n var notVisibleByVal = visibleValArea[0] > minValue && visibleValArea[0] > maxValue || visibleValArea[1] < minValue && visibleValArea[1] < maxValue;\r\n if (notVisibleByArg || notVisibleByVal) {\r\n visibleTopMarker = visibleBottomMarker = visibleRangeArea = false\r\n } else {\r\n visibleTopMarker = visibleValArea[0] <= minValue && visibleValArea[1] > minValue;\r\n visibleBottomMarker = visibleValArea[0] < maxValue && visibleValArea[1] >= maxValue;\r\n if (rotated) {\r\n tmp = visibleTopMarker;\r\n visibleTopMarker = visibleBottomMarker;\r\n visibleBottomMarker = tmp\r\n }\r\n }\r\n this.visibleTopMarker = visibleTopMarker;\r\n this.visibleBottomMarker = visibleBottomMarker;\r\n return visibleRangeArea\r\n },\r\n getTooltipParams: function() {\r\n var x;\r\n var y;\r\n var rotated = this._options.rotated;\r\n var minValue = !rotated ? _min(this.y, this.minY) : _min(this.x, this.minX);\r\n var side = !rotated ? \"height\" : \"width\";\r\n var visibleArea = this._getVisibleArea();\r\n var minVisible = rotated ? visibleArea.minX : visibleArea.minY;\r\n var maxVisible = rotated ? visibleArea.maxX : visibleArea.maxY;\r\n var min = _max(minVisible, minValue);\r\n var max = _min(maxVisible, minValue + this[side]);\r\n if (!rotated) {\r\n x = this.x;\r\n y = min + (max - min) / 2\r\n } else {\r\n y = this.y;\r\n x = min + (max - min) / 2\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n offset: 0\r\n }\r\n },\r\n _translate: function() {\r\n var rotated = this._options.rotated;\r\n symbolPoint._translate.call(this);\r\n this.height = rotated ? 0 : _abs(this.minY - this.y);\r\n this.width = rotated ? _abs(this.x - this.minX) : 0\r\n },\r\n hasCoords: function() {\r\n return symbolPoint.hasCoords.call(this) && !(null === this.minX || null === this.minY)\r\n },\r\n _updateData: function(data) {\r\n symbolPoint._updateData.call(this, data);\r\n this.minValue = this.initialMinValue = this.originalMinValue = data.minValue\r\n },\r\n _getImageSettings: function(settings, image) {\r\n return {\r\n href: image.url || image.toString(),\r\n width: image.width || DEFAULT_IMAGE_WIDTH,\r\n height: image.height || DEFAULT_IMAGE_HEIGHT,\r\n translateX: settings.translateX,\r\n translateY: settings.translateY\r\n }\r\n },\r\n getCrosshairData: function(x, y) {\r\n var rotated = this._options.rotated;\r\n var minX = this.minX;\r\n var minY = this.minY;\r\n var vx = this.vx;\r\n var vy = this.vy;\r\n var value = this.value;\r\n var minValue = this.minValue;\r\n var argument = this.argument;\r\n var coords = {\r\n axis: this.series.axis,\r\n x: vx,\r\n y: vy,\r\n yValue: value,\r\n xValue: argument\r\n };\r\n if (rotated) {\r\n coords.yValue = argument;\r\n if (_abs(vx - x) < _abs(minX - x)) {\r\n coords.xValue = value\r\n } else {\r\n coords.x = minX;\r\n coords.xValue = minValue\r\n }\r\n } else if (_abs(vy - y) >= _abs(minY - y)) {\r\n coords.y = minY;\r\n coords.yValue = minValue\r\n }\r\n return coords\r\n },\r\n _updateOneMarker: function(markerType, settings) {\r\n this.graphic && this.graphic[markerType] && this.graphic[markerType].attr(settings)\r\n },\r\n _updateMarker: function(animationEnabled, style) {\r\n this._drawMarker(void 0, void 0, false, false, style)\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var initialMinValue = this.initialMinValue;\r\n var initialValue = this.initialValue;\r\n var initialArgument = this.initialArgument;\r\n var minValue = tooltip.formatValue(initialMinValue);\r\n var value = tooltip.formatValue(initialValue);\r\n return {\r\n argument: initialArgument,\r\n argumentText: tooltip.formatValue(initialArgument, \"argument\"),\r\n valueText: minValue + \" - \" + value,\r\n rangeValue1Text: minValue,\r\n rangeValue2Text: value,\r\n rangeValue1: initialMinValue,\r\n rangeValue2: initialValue,\r\n seriesName: this.series.name,\r\n point: this,\r\n originalMinValue: this.originalMinValue,\r\n originalValue: this.originalValue,\r\n originalArgument: this.originalArgument\r\n }\r\n },\r\n getLabel: function() {\r\n return [this._topLabel, this._bottomLabel]\r\n },\r\n getLabels: function() {\r\n return [this._topLabel, this._bottomLabel]\r\n },\r\n getBoundingRect: noop,\r\n coordsIn: function(x, y) {\r\n var trackerRadius = this._storeTrackerR();\r\n var xCond = x >= this.x - trackerRadius && x <= this.x + trackerRadius;\r\n var yCond = y >= this.y - trackerRadius && y <= this.y + trackerRadius;\r\n if (this._options.rotated) {\r\n return yCond && (xCond || x >= this.minX - trackerRadius && x <= this.minX + trackerRadius)\r\n } else {\r\n return xCond && (yCond || y >= this.minY - trackerRadius && y <= this.minY + trackerRadius)\r\n }\r\n },\r\n getMaxValue: function() {\r\n if (\"discrete\" !== this.series.valueAxisType) {\r\n return this.minValue > this.value ? this.minValue : this.value\r\n }\r\n return this.value\r\n },\r\n getMinValue: function() {\r\n if (\"discrete\" !== this.series.valueAxisType) {\r\n return this.minValue < this.value ? this.minValue : this.value\r\n }\r\n return this.minValue\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/range_bar_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport barPoint from \"./bar_point\";\r\nimport rangeSymbolPointMethods from \"./range_symbol_point\";\r\nvar _extend = extend;\r\nexport default _extend({}, barPoint, {\r\n deleteLabel: rangeSymbolPointMethods.deleteLabel,\r\n _getFormatObject: rangeSymbolPointMethods._getFormatObject,\r\n clearVisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: null\r\n })\r\n }\r\n },\r\n setInvisibility: function() {\r\n var graphic = this.graphic;\r\n if (graphic && \"hidden\" !== graphic.attr(\"visibility\")) {\r\n graphic.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n this._topLabel.draw(false);\r\n this._bottomLabel.draw(false)\r\n },\r\n getTooltipParams: function(location) {\r\n var edgeLocation = \"edge\" === location;\r\n var x;\r\n var y;\r\n if (this._options.rotated) {\r\n x = edgeLocation ? this.x + this.width : this.x + this.width / 2;\r\n y = this.y + this.height / 2\r\n } else {\r\n x = this.x + this.width / 2;\r\n y = edgeLocation ? this.y : this.y + this.height / 2\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n offset: 0\r\n }\r\n },\r\n _translate: function() {\r\n var barMethods = barPoint;\r\n barMethods._translate.call(this);\r\n if (this._options.rotated) {\r\n this.width = this.width || 1\r\n } else {\r\n this.height = this.height || 1\r\n }\r\n },\r\n hasCoords: rangeSymbolPointMethods.hasCoords,\r\n _updateData: rangeSymbolPointMethods._updateData,\r\n _getLabelPosition: rangeSymbolPointMethods._getLabelPosition,\r\n _getLabelMinFormatObject: rangeSymbolPointMethods._getLabelMinFormatObject,\r\n _updateLabelData: rangeSymbolPointMethods._updateLabelData,\r\n _updateLabelOptions: rangeSymbolPointMethods._updateLabelOptions,\r\n getCrosshairData: rangeSymbolPointMethods.getCrosshairData,\r\n _createLabel: rangeSymbolPointMethods._createLabel,\r\n _checkOverlay: rangeSymbolPointMethods._checkOverlay,\r\n _checkLabelsOverlay: rangeSymbolPointMethods._checkLabelsOverlay,\r\n _getOverlayCorrections: rangeSymbolPointMethods._getOverlayCorrections,\r\n _drawLabel: rangeSymbolPointMethods._drawLabel,\r\n _getLabelCoords: rangeSymbolPointMethods._getLabelCoords,\r\n getLabel: rangeSymbolPointMethods.getLabel,\r\n getLabels: rangeSymbolPointMethods.getLabels,\r\n getBoundingRect: noop,\r\n getMinValue: rangeSymbolPointMethods.getMinValue,\r\n getMaxValue: rangeSymbolPointMethods.getMaxValue\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/candlestick_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../../core/utils/extend\";\r\nimport symbolPoint from \"./symbol_point\";\r\nimport barPoint from \"./bar_point\";\r\nvar _math = Math;\r\nvar _abs = _math.abs;\r\nvar _min = _math.min;\r\nvar _max = _math.max;\r\nvar _round = _math.round;\r\nvar DEFAULT_FINANCIAL_TRACKER_MARGIN = 2;\r\nexport default _extend({}, barPoint, {\r\n _getContinuousPoints: function(openCoord, closeCoord) {\r\n var x = this.x;\r\n var createPoint = this._options.rotated ? function(x, y) {\r\n return [y, x]\r\n } : function(x, y) {\r\n return [x, y]\r\n };\r\n var width = this.width;\r\n var highCoord = this.highY;\r\n var max = _abs(highCoord - openCoord) < _abs(highCoord - closeCoord) ? openCoord : closeCoord;\r\n var min = max === closeCoord ? openCoord : closeCoord;\r\n var points;\r\n if (min === max) {\r\n points = [].concat(createPoint(x, this.highY)).concat(createPoint(x, this.lowY)).concat(createPoint(x, this.closeY)).concat(createPoint(x - width / 2, this.closeY)).concat(createPoint(x + width / 2, this.closeY)).concat(createPoint(x, this.closeY))\r\n } else {\r\n points = [].concat(createPoint(x, this.highY)).concat(createPoint(x, max)).concat(createPoint(x + width / 2, max)).concat(createPoint(x + width / 2, min)).concat(createPoint(x, min)).concat(createPoint(x, this.lowY)).concat(createPoint(x, min)).concat(createPoint(x - width / 2, min)).concat(createPoint(x - width / 2, max)).concat(createPoint(x, max))\r\n }\r\n return points\r\n },\r\n _getCrockPoints: function(y) {\r\n var x = this.x;\r\n var createPoint = this._options.rotated ? function(x, y) {\r\n return [y, x]\r\n } : function(x, y) {\r\n return [x, y]\r\n };\r\n return [].concat(createPoint(x, this.highY)).concat(createPoint(x, this.lowY)).concat(createPoint(x, y)).concat(createPoint(x - this.width / 2, y)).concat(createPoint(x + this.width / 2, y)).concat(createPoint(x, y))\r\n },\r\n _getPoints: function() {\r\n var points;\r\n var closeCoord = this.closeY;\r\n var openCoord = this.openY;\r\n if (null !== closeCoord && null !== openCoord) {\r\n points = this._getContinuousPoints(openCoord, closeCoord)\r\n } else if (openCoord === closeCoord) {\r\n points = [this.x, this.highY, this.x, this.lowY]\r\n } else {\r\n points = this._getCrockPoints(null !== openCoord ? openCoord : closeCoord)\r\n }\r\n return points\r\n },\r\n getColor: function() {\r\n return this._isReduction ? this._options.reduction.color : this._styles.normal.stroke || this.series.getColor()\r\n },\r\n _drawMarkerInGroup: function(group, attributes, renderer) {\r\n this.graphic = renderer.path(this._getPoints(), \"area\").attr({\r\n \"stroke-linecap\": \"square\"\r\n }).attr(attributes).data({\r\n \"chart-data-point\": this\r\n }).sharp().append(group)\r\n },\r\n _fillStyle: function() {\r\n var styles = this._options.styles;\r\n if (this._isReduction && this._isPositive) {\r\n this._styles = styles.reductionPositive\r\n } else if (this._isReduction) {\r\n this._styles = styles.reduction\r\n } else if (this._isPositive) {\r\n this._styles = styles.positive\r\n } else {\r\n this._styles = styles\r\n }\r\n },\r\n _getMinTrackerWidth: function() {\r\n return 2 + 2 * this._styles.normal[\"stroke-width\"]\r\n },\r\n correctCoordinates: function(correctOptions) {\r\n var minWidth = this._getMinTrackerWidth();\r\n var width = correctOptions.width;\r\n width = width < minWidth ? minWidth : width > 10 ? 10 : width;\r\n this.width = width + width % 2;\r\n this.xCorrection = correctOptions.offset\r\n },\r\n _getMarkerGroup: function(group) {\r\n var markerGroup;\r\n if (this._isReduction && this._isPositive) {\r\n markerGroup = group.reductionPositiveMarkersGroup\r\n } else if (this._isReduction) {\r\n markerGroup = group.reductionMarkersGroup\r\n } else if (this._isPositive) {\r\n markerGroup = group.defaultPositiveMarkersGroup\r\n } else {\r\n markerGroup = group.defaultMarkersGroup\r\n }\r\n return markerGroup\r\n },\r\n _drawMarker: function(renderer, group) {\r\n this._drawMarkerInGroup(this._getMarkerGroup(group), this._getStyle(), renderer)\r\n },\r\n _getSettingsForTracker: function() {\r\n var highY = this.highY;\r\n var lowY = this.lowY;\r\n var rotated = this._options.rotated;\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (highY === lowY) {\r\n highY = rotated ? highY + DEFAULT_FINANCIAL_TRACKER_MARGIN : highY - DEFAULT_FINANCIAL_TRACKER_MARGIN;\r\n lowY = rotated ? lowY - DEFAULT_FINANCIAL_TRACKER_MARGIN : lowY + DEFAULT_FINANCIAL_TRACKER_MARGIN\r\n }\r\n if (rotated) {\r\n x = _min(lowY, highY);\r\n y = this.x - this.width / 2;\r\n width = _abs(lowY - highY);\r\n height = this.width\r\n } else {\r\n x = this.x - this.width / 2;\r\n y = _min(lowY, highY);\r\n width = this.width;\r\n height = _abs(lowY - highY)\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n },\r\n _getGraphicBBox: function(location) {\r\n var rotated = this._options.rotated;\r\n var x = this.x;\r\n var width = this.width;\r\n var lowY = this.lowY;\r\n var highY = this.highY;\r\n if (location) {\r\n var valVisibleArea = this.series.getValueAxis().getVisibleArea();\r\n highY = this._truncateCoord(highY, valVisibleArea);\r\n lowY = this._truncateCoord(lowY, valVisibleArea)\r\n }\r\n var bBox = {\r\n x: !rotated ? x - _round(width / 2) : lowY,\r\n y: !rotated ? highY : x - _round(width / 2),\r\n width: !rotated ? width : highY - lowY,\r\n height: !rotated ? lowY - highY : width\r\n };\r\n if (location) {\r\n var isTop = \"top\" === location;\r\n if (!this._options.rotated) {\r\n bBox.y = isTop ? bBox.y : bBox.y + bBox.height;\r\n bBox.height = 0\r\n } else {\r\n bBox.x = isTop ? bBox.x + bBox.width : bBox.x;\r\n bBox.width = 0\r\n }\r\n }\r\n return bBox\r\n },\r\n getTooltipParams: function(location) {\r\n if (this.graphic) {\r\n var minValue = _min(this.lowY, this.highY);\r\n var maxValue = _max(this.lowY, this.highY);\r\n var visibleArea = this._getVisibleArea();\r\n var rotated = this._options.rotated;\r\n var minVisible = rotated ? visibleArea.minX : visibleArea.minY;\r\n var maxVisible = rotated ? visibleArea.maxX : visibleArea.maxY;\r\n var min = _max(minVisible, minValue);\r\n var max = _min(maxVisible, maxValue);\r\n var centerCoord = this.getCenterCoord();\r\n if (\"edge\" === location) {\r\n centerCoord[rotated ? \"x\" : \"y\"] = rotated ? max : min\r\n }\r\n centerCoord.offset = 0;\r\n return centerCoord\r\n }\r\n },\r\n getCenterCoord() {\r\n if (this.graphic) {\r\n var x;\r\n var y;\r\n var minValue = _min(this.lowY, this.highY);\r\n var maxValue = _max(this.lowY, this.highY);\r\n var visibleArea = this._getVisibleArea();\r\n var rotated = this._options.rotated;\r\n var minVisible = rotated ? visibleArea.minX : visibleArea.minY;\r\n var maxVisible = rotated ? visibleArea.maxX : visibleArea.maxY;\r\n var min = _max(minVisible, minValue);\r\n var max = _min(maxVisible, maxValue);\r\n var center = min + (max - min) / 2;\r\n if (rotated) {\r\n y = this.x;\r\n x = center\r\n } else {\r\n x = this.x;\r\n y = center\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n }\r\n },\r\n hasValue: function() {\r\n return null !== this.highValue && null !== this.lowValue\r\n },\r\n hasCoords: function() {\r\n return null !== this.x && null !== this.lowY && null !== this.highY\r\n },\r\n _translate: function() {\r\n var rotated = this._options.rotated;\r\n var valTranslator = this._getValTranslator();\r\n var x = this._getArgTranslator().translate(this.argument);\r\n this.vx = this.vy = this.x = null === x ? x : x + (this.xCorrection || 0);\r\n this.openY = null !== this.openValue ? valTranslator.translate(this.openValue) : null;\r\n this.highY = valTranslator.translate(this.highValue);\r\n this.lowY = valTranslator.translate(this.lowValue);\r\n this.closeY = null !== this.closeValue ? valTranslator.translate(this.closeValue) : null;\r\n var centerValue = _min(this.lowY, this.highY) + _abs(this.lowY - this.highY) / 2;\r\n this._calculateVisibility(!rotated ? this.x : centerValue, !rotated ? centerValue : this.x)\r\n },\r\n getCrosshairData: function(x, y) {\r\n var rotated = this._options.rotated;\r\n var origY = rotated ? x : y;\r\n var yValue;\r\n var argument = this.argument;\r\n var coords;\r\n var coord = \"low\";\r\n if (_abs(this.lowY - origY) < _abs(this.closeY - origY)) {\r\n yValue = this.lowY\r\n } else {\r\n yValue = this.closeY;\r\n coord = \"close\"\r\n }\r\n if (_abs(yValue - origY) >= _abs(this.openY - origY)) {\r\n yValue = this.openY;\r\n coord = \"open\"\r\n }\r\n if (_abs(yValue - origY) >= _abs(this.highY - origY)) {\r\n yValue = this.highY;\r\n coord = \"high\"\r\n }\r\n if (rotated) {\r\n coords = {\r\n y: this.vy,\r\n x: yValue,\r\n xValue: this[coord + \"Value\"],\r\n yValue: argument\r\n }\r\n } else {\r\n coords = {\r\n x: this.vx,\r\n y: yValue,\r\n xValue: argument,\r\n yValue: this[coord + \"Value\"]\r\n }\r\n }\r\n coords.axis = this.series.axis;\r\n return coords\r\n },\r\n _updateData: function(data) {\r\n var label = this._label;\r\n var reductionColor = this._options.reduction.color;\r\n this.value = this.initialValue = data.reductionValue;\r\n this.originalValue = data.value;\r\n this.lowValue = this.originalLowValue = data.lowValue;\r\n this.highValue = this.originalHighValue = data.highValue;\r\n this.openValue = this.originalOpenValue = data.openValue;\r\n this.closeValue = this.originalCloseValue = data.closeValue;\r\n this._isPositive = data.openValue < data.closeValue;\r\n this._isReduction = data.isReduction;\r\n if (this._isReduction) {\r\n label.setColor(reductionColor)\r\n }\r\n },\r\n _updateMarker: function(animationEnabled, style, group) {\r\n var graphic = this.graphic;\r\n graphic.attr({\r\n points: this._getPoints()\r\n }).smartAttr(style).sharp();\r\n group && graphic.append(this._getMarkerGroup(group))\r\n },\r\n _getLabelFormatObject: function() {\r\n return {\r\n openValue: this.openValue,\r\n highValue: this.highValue,\r\n lowValue: this.lowValue,\r\n closeValue: this.closeValue,\r\n reductionValue: this.initialValue,\r\n argument: this.initialArgument,\r\n value: this.initialValue,\r\n seriesName: this.series.name,\r\n originalOpenValue: this.originalOpenValue,\r\n originalCloseValue: this.originalCloseValue,\r\n originalLowValue: this.originalLowValue,\r\n originalHighValue: this.originalHighValue,\r\n originalArgument: this.originalArgument,\r\n point: this\r\n }\r\n },\r\n _getFormatObject: function(tooltip) {\r\n var highValue = tooltip.formatValue(this.highValue);\r\n var openValue = tooltip.formatValue(this.openValue);\r\n var closeValue = tooltip.formatValue(this.closeValue);\r\n var lowValue = tooltip.formatValue(this.lowValue);\r\n var symbolMethods = symbolPoint;\r\n var formatObject = symbolMethods._getFormatObject.call(this, tooltip);\r\n return _extend({}, formatObject, {\r\n valueText: \"h: \" + highValue + (\"\" !== openValue ? \" o: \" + openValue : \"\") + (\"\" !== closeValue ? \" c: \" + closeValue : \"\") + \" l: \" + lowValue,\r\n highValueText: highValue,\r\n openValueText: openValue,\r\n closeValueText: closeValue,\r\n lowValueText: lowValue\r\n })\r\n },\r\n getMaxValue: function() {\r\n return this.highValue\r\n },\r\n getMinValue: function() {\r\n return this.lowValue\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/stock_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isNumeric\r\n} from \"../../../core/utils/type\";\r\nimport candlestickPoint from \"./candlestick_point\";\r\nvar _extend = extend;\r\nvar _isNumeric = isNumeric;\r\nexport default _extend({}, candlestickPoint, {\r\n _getPoints: function() {\r\n var createPoint = this._options.rotated ? function(x, y) {\r\n return [y, x]\r\n } : function(x, y) {\r\n return [x, y]\r\n };\r\n var openYExist = _isNumeric(this.openY);\r\n var closeYExist = _isNumeric(this.closeY);\r\n var x = this.x;\r\n var width = this.width;\r\n var points = [].concat(createPoint(x, this.highY));\r\n openYExist && (points = points.concat(createPoint(x, this.openY)));\r\n openYExist && (points = points.concat(createPoint(x - width / 2, this.openY)));\r\n openYExist && (points = points.concat(createPoint(x, this.openY)));\r\n closeYExist && (points = points.concat(createPoint(x, this.closeY)));\r\n closeYExist && (points = points.concat(createPoint(x + width / 2, this.closeY)));\r\n closeYExist && (points = points.concat(createPoint(x, this.closeY)));\r\n points = points.concat(createPoint(x, this.lowY));\r\n return points\r\n },\r\n _drawMarkerInGroup: function(group, attributes, renderer) {\r\n this.graphic = renderer.path(this._getPoints(), \"line\").attr({\r\n \"stroke-linecap\": \"square\"\r\n }).attr(attributes).data({\r\n \"chart-data-point\": this\r\n }).sharp().append(group)\r\n },\r\n _getMinTrackerWidth: function() {\r\n var width = 2 + this._styles.normal[\"stroke-width\"];\r\n return width + width % 2\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/polar_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport symbolPoint from \"./symbol_point\";\r\nimport barPoint from \"./bar_point\";\r\nimport piePoint from \"./pie_point\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n normalizeAngle,\r\n convertPolarToXY,\r\n getCosAndSin,\r\n convertXYToPolar\r\n} from \"../../core/utils\";\r\nvar _math = Math;\r\nvar _max = _math.max;\r\nimport consts from \"../../components/consts\";\r\nvar RADIAL_LABEL_INDENT = consts.radialLabelIndent;\r\nvar ERROR_BARS_ANGLE_OFFSET = 90;\r\nvar CANVAS_POSITION_START = \"canvas_position_start\";\r\nvar CANVAS_POSITION_END = \"canvas_position_end\";\r\nvar CANVAS_POSITION_DEFAULT = \"canvas_position_default\";\r\nexport var polarSymbolPoint = _extend({}, symbolPoint, {\r\n _getLabelCoords: piePoint._getLabelCoords,\r\n _getElementCoords: piePoint._getElementCoords,\r\n _moveLabelOnCanvas: function(coord, visibleArea, labelBBox) {\r\n var x = coord.x;\r\n var y = coord.y;\r\n if (visibleArea.minX > x) {\r\n x = visibleArea.minX\r\n }\r\n if (visibleArea.maxX < x + labelBBox.width) {\r\n x = visibleArea.maxX - labelBBox.width\r\n }\r\n if (visibleArea.minY > y) {\r\n y = visibleArea.minY\r\n }\r\n if (visibleArea.maxY < y + labelBBox.height) {\r\n y = visibleArea.maxY - labelBBox.height\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _getLabelPosition: function() {\r\n return \"outside\"\r\n },\r\n _getCoords: function(argument, value) {\r\n var axis = this.series.getValueAxis();\r\n var startAngle = axis.getAngles()[0];\r\n var angle = this._getArgTranslator().translate(argument);\r\n var radius = this._getValTranslator().translate(value);\r\n var coords = convertPolarToXY(axis.getCenter(), axis.getAngles()[0], angle, radius);\r\n coords.angle = angle + startAngle - 90, coords.radius = radius;\r\n return coords\r\n },\r\n _translate() {\r\n var center = this.series.getValueAxis().getCenter();\r\n var coord = this._getCoords(this.argument, this.value);\r\n var translator = this._getValTranslator();\r\n var maxRadius = translator.isInverted() ? translator.translate(CANVAS_POSITION_START) : translator.translate(CANVAS_POSITION_END);\r\n var normalizedRadius = isDefined(coord.radius) && coord.radius >= 0 ? coord.radius : null;\r\n this.vx = normalizeAngle(coord.angle);\r\n this.vy = this.radiusOuter = this.radiusLabels = normalizedRadius;\r\n this.radiusLabels += RADIAL_LABEL_INDENT;\r\n this.radius = normalizedRadius;\r\n this.middleAngle = -coord.angle;\r\n this.angle = -coord.angle;\r\n this.x = coord.x;\r\n this.y = coord.y;\r\n this.defaultX = this.centerX = center.x;\r\n this.defaultY = this.centerY = center.y;\r\n this._translateErrorBars();\r\n this.inVisibleArea = this._checkRadiusForVisibleArea(normalizedRadius, maxRadius)\r\n },\r\n _checkRadiusForVisibleArea: (radius, maxRadius) => isDefined(radius) && radius <= maxRadius,\r\n _translateErrorBars: function() {\r\n var errorBars = this._options.errorBars;\r\n var translator = this._getValTranslator();\r\n if (!errorBars) {\r\n return\r\n }\r\n isDefined(this.lowError) && (this._lowErrorCoord = this.centerY - translator.translate(this.lowError));\r\n isDefined(this.highError) && (this._highErrorCoord = this.centerY - translator.translate(this.highError));\r\n this._errorBarPos = this.centerX;\r\n this._baseErrorBarPos = \"stdDeviation\" === errorBars.type ? this._lowErrorCoord + (this._highErrorCoord - this._lowErrorCoord) / 2 : this.centerY - this.radius\r\n },\r\n _getTranslates: function(animationEnabled) {\r\n return animationEnabled ? this.getDefaultCoords() : {\r\n x: this.x,\r\n y: this.y\r\n }\r\n },\r\n getDefaultCoords: function() {\r\n var cosSin = getCosAndSin(-this.angle);\r\n var radius = this._getValTranslator().translate(CANVAS_POSITION_DEFAULT);\r\n var x = this.defaultX + radius * cosSin.cos;\r\n var y = this.defaultY + radius * cosSin.sin;\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n },\r\n _addLabelAlignmentAndOffset: function(label, coord) {\r\n return coord\r\n },\r\n _checkLabelPosition: function(label, coord) {\r\n var visibleArea = this._getVisibleArea();\r\n var graphicBBox = this._getGraphicBBox();\r\n if (this._isPointInVisibleArea(visibleArea, graphicBBox)) {\r\n coord = this._moveLabelOnCanvas(coord, visibleArea, label.getBoundingRect())\r\n }\r\n return coord\r\n },\r\n _getErrorBarSettings: function(errorBarOptions, animationEnabled) {\r\n var settings = symbolPoint._getErrorBarSettings.call(this, errorBarOptions, animationEnabled);\r\n settings.rotate = ERROR_BARS_ANGLE_OFFSET - this.angle;\r\n settings.rotateX = this.centerX;\r\n settings.rotateY = this.centerY;\r\n return settings\r\n },\r\n getCoords: function(min) {\r\n return min ? this.getDefaultCoords() : {\r\n x: this.x,\r\n y: this.y\r\n }\r\n }\r\n});\r\nexport var polarBarPoint = _extend({}, barPoint, {\r\n _translateErrorBars: polarSymbolPoint._translateErrorBars,\r\n _getErrorBarSettings: polarSymbolPoint._getErrorBarSettings,\r\n _moveLabelOnCanvas: polarSymbolPoint._moveLabelOnCanvas,\r\n _getLabelCoords: piePoint._getLabelCoords,\r\n _getElementCoords: piePoint._getElementCoords,\r\n _getLabelConnector: piePoint._getLabelConnector,\r\n getTooltipParams: piePoint.getTooltipParams,\r\n _getLabelPosition: piePoint._getLabelPosition,\r\n _getCoords: polarSymbolPoint._getCoords,\r\n _translate() {\r\n var translator = this._getValTranslator();\r\n var businessRange = translator.getBusinessRange();\r\n var maxRadius = translator.isInverted() ? translator.translate(CANVAS_POSITION_START) : translator.translate(CANVAS_POSITION_END);\r\n this.radiusInner = translator.translate(this.minValue);\r\n polarSymbolPoint._translate.call(this);\r\n if (null === this.radiusInner) {\r\n this.radiusInner = this.radius = maxRadius\r\n } else if (null === this.radius) {\r\n this.radius = this.value >= businessRange.minVisible ? maxRadius : 0\r\n } else if (this.radius > maxRadius) {\r\n this.radius = maxRadius\r\n }\r\n this.radiusOuter = this.radiusLabels = _max(this.radiusInner, this.radius);\r\n this.radiusLabels += RADIAL_LABEL_INDENT;\r\n this.radiusInner = this.defaultRadius = _math.min(this.radiusInner, this.radius);\r\n this.middleAngle = this.angle = -normalizeAngle(this.middleAngleCorrection - this.angle)\r\n },\r\n _checkRadiusForVisibleArea(radius) {\r\n return isDefined(radius) || this._getValTranslator().translate(this.minValue) > 0\r\n },\r\n _getErrorBarBaseEdgeLength() {\r\n var coord = this.getMarkerCoords();\r\n return _math.PI * coord.outerRadius * _math.abs(coord.startAngle - coord.endAngle) / 180\r\n },\r\n getMarkerCoords: function() {\r\n return {\r\n x: this.centerX,\r\n y: this.centerY,\r\n outerRadius: this.radiusOuter,\r\n innerRadius: this.defaultRadius,\r\n startAngle: this.middleAngle - this.interval / 2,\r\n endAngle: this.middleAngle + this.interval / 2\r\n }\r\n },\r\n _drawMarker: function(renderer, group, animationEnabled) {\r\n var styles = this._getStyle();\r\n var coords = this.getMarkerCoords();\r\n var innerRadius = coords.innerRadius;\r\n var outerRadius = coords.outerRadius;\r\n var start = this._getCoords(this.argument, CANVAS_POSITION_DEFAULT);\r\n var x = coords.x;\r\n var y = coords.y;\r\n if (animationEnabled) {\r\n innerRadius = 0;\r\n outerRadius = 0;\r\n x = start.x;\r\n y = start.y\r\n }\r\n this.graphic = renderer.arc(x, y, innerRadius, outerRadius, coords.startAngle, coords.endAngle).attr(styles).data({\r\n \"chart-data-point\": this\r\n }).append(group)\r\n },\r\n _checkLabelPosition: function(label, coord) {\r\n var visibleArea = this._getVisibleArea();\r\n var angleFunctions = getCosAndSin(this.middleAngle);\r\n var x = this.centerX + this.defaultRadius * angleFunctions.cos;\r\n var y = this.centerY - this.defaultRadius * angleFunctions.sin;\r\n if (x > visibleArea.minX && x < visibleArea.maxX && y > visibleArea.minY && y < visibleArea.maxY) {\r\n coord = this._moveLabelOnCanvas(coord, visibleArea, label.getBoundingRect())\r\n }\r\n return coord\r\n },\r\n _addLabelAlignmentAndOffset: function(label, coord) {\r\n return coord\r\n },\r\n correctCoordinates: function(correctOptions) {\r\n this.middleAngleCorrection = correctOptions.offset;\r\n this.interval = correctOptions.width\r\n },\r\n coordsIn: function(x, y) {\r\n var val = convertXYToPolar(this.series.getValueAxis().getCenter(), x, y);\r\n var coords = this.getMarkerCoords();\r\n var isBetweenAngles = coords.startAngle < coords.endAngle ? -val.phi >= coords.startAngle && -val.phi <= coords.endAngle : -val.phi <= coords.startAngle && -val.phi >= coords.endAngle;\r\n return val.r >= coords.innerRadius && val.r <= coords.outerRadius && isBetweenAngles\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/points/base_point.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar mixins = {};\r\nimport consts from \"../../components/consts\";\r\nimport symbolPoint from \"./symbol_point\";\r\nimport barPoint from \"./bar_point\";\r\nimport bubblePoint from \"./bubble_point\";\r\nimport piePoint from \"./pie_point\";\r\nimport rangeSymbolPoint from \"./range_symbol_point\";\r\nimport rangeBarPoint from \"./range_bar_point\";\r\nimport candlestickPoint from \"./candlestick_point\";\r\nimport stockPoint from \"./stock_point\";\r\nimport {\r\n polarSymbolPoint,\r\n polarBarPoint\r\n} from \"./polar_point\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n noop as _noop\r\n} from \"../../../core/utils/common\";\r\nvar statesConsts = consts.states;\r\nvar SYMBOL_POINT = \"symbolPoint\";\r\nvar POLAR_SYMBOL_POINT = \"polarSymbolPoint\";\r\nvar BAR_POINT = \"barPoint\";\r\nvar POLAR_BAR_POINT = \"polarBarPoint\";\r\nvar PIE_POINT = \"piePoint\";\r\nvar SELECTED_STATE = statesConsts.selectedMark;\r\nvar HOVER_STATE = statesConsts.hoverMark;\r\nvar NORMAL_STATE = statesConsts.normalMark;\r\nvar HOVER = statesConsts.hover;\r\nvar NORMAL = statesConsts.normal;\r\nvar SELECTION = statesConsts.selection;\r\nvar pointTypes = {\r\n chart: {\r\n scatter: SYMBOL_POINT,\r\n line: SYMBOL_POINT,\r\n spline: SYMBOL_POINT,\r\n stepline: SYMBOL_POINT,\r\n stackedline: SYMBOL_POINT,\r\n fullstackedline: SYMBOL_POINT,\r\n stackedspline: SYMBOL_POINT,\r\n fullstackedspline: SYMBOL_POINT,\r\n stackedsplinearea: SYMBOL_POINT,\r\n fullstackedsplinearea: SYMBOL_POINT,\r\n area: SYMBOL_POINT,\r\n splinearea: SYMBOL_POINT,\r\n steparea: SYMBOL_POINT,\r\n stackedarea: SYMBOL_POINT,\r\n fullstackedarea: SYMBOL_POINT,\r\n rangearea: \"rangeSymbolPoint\",\r\n bar: BAR_POINT,\r\n stackedbar: BAR_POINT,\r\n fullstackedbar: BAR_POINT,\r\n rangebar: \"rangeBarPoint\",\r\n bubble: \"bubblePoint\",\r\n stock: \"stockPoint\",\r\n candlestick: \"candlestickPoint\"\r\n },\r\n pie: {\r\n pie: PIE_POINT,\r\n doughnut: PIE_POINT,\r\n donut: PIE_POINT\r\n },\r\n polar: {\r\n scatter: POLAR_SYMBOL_POINT,\r\n line: POLAR_SYMBOL_POINT,\r\n area: POLAR_SYMBOL_POINT,\r\n bar: POLAR_BAR_POINT,\r\n stackedbar: POLAR_BAR_POINT\r\n }\r\n};\r\n\r\nfunction isNoneMode(mode) {\r\n return \"none\" === _normalizeEnum(mode)\r\n}\r\nexport function Point(series, dataItem, options) {\r\n this.fullState = NORMAL_STATE;\r\n this.series = series;\r\n this.update(dataItem, options);\r\n this._viewCounters = {\r\n hover: 0,\r\n selection: 0\r\n };\r\n this._emptySettings = {\r\n fill: null,\r\n stroke: null,\r\n dashStyle: null\r\n }\r\n}\r\nmixins.symbolPoint = symbolPoint;\r\nmixins.barPoint = barPoint;\r\nmixins.bubblePoint = bubblePoint;\r\nmixins.piePoint = piePoint;\r\nmixins.rangeSymbolPoint = rangeSymbolPoint;\r\nmixins.rangeBarPoint = rangeBarPoint;\r\nmixins.candlestickPoint = candlestickPoint;\r\nmixins.stockPoint = stockPoint;\r\nmixins.polarSymbolPoint = polarSymbolPoint;\r\nmixins.polarBarPoint = polarBarPoint;\r\nPoint.prototype = {\r\n constructor: Point,\r\n getColor: function() {\r\n if (!this.hasValue() && !this._styles.usePointCustomOptions) {\r\n this.series.customizePoint(this, this._dataItem)\r\n }\r\n return this._styles.normal.fill || this.series.getColor()\r\n },\r\n _getStyle: function() {\r\n return this._styles[this._currentStyle || \"normal\"]\r\n },\r\n update: function(dataItem, options) {\r\n this.updateOptions(options);\r\n this.updateData(dataItem)\r\n },\r\n updateData: function(dataItem) {\r\n var argumentWasChanged = this.argument !== dataItem.argument;\r\n this.argument = this.initialArgument = this.originalArgument = dataItem.argument;\r\n this.tag = dataItem.tag;\r\n this.index = dataItem.index;\r\n this._dataItem = dataItem;\r\n this.data = dataItem.data;\r\n this.lowError = dataItem.lowError;\r\n this.highError = dataItem.highError;\r\n this.aggregationInfo = dataItem.aggregationInfo;\r\n this._updateData(dataItem, argumentWasChanged);\r\n !this.hasValue() && this.setInvisibility();\r\n this._fillStyle();\r\n this._updateLabelData()\r\n },\r\n deleteMarker: function() {\r\n if (this.graphic) {\r\n this.graphic.dispose()\r\n }\r\n this.graphic = null\r\n },\r\n draw: function(renderer, groups, animationEnabled, firstDrawing) {\r\n if (this._needDeletingOnDraw || this.series.autoHidePointMarkers && !this.isSelected()) {\r\n this.deleteMarker();\r\n this._needDeletingOnDraw = false\r\n }\r\n if (this._needClearingOnDraw) {\r\n this.clearMarker();\r\n this._needClearingOnDraw = false\r\n }\r\n if (!this._hasGraphic()) {\r\n this.getMarkerVisibility() && !this.series.autoHidePointMarkers && this._drawMarker(renderer, groups.markers, animationEnabled, firstDrawing)\r\n } else {\r\n this._updateMarker(animationEnabled, this._getStyle(), groups.markers)\r\n }\r\n this._drawLabel();\r\n this._drawErrorBar(renderer, groups.errorBars, animationEnabled);\r\n return this\r\n },\r\n _getViewStyle: function() {\r\n var state = NORMAL_STATE;\r\n var fullState = this.fullState;\r\n var styles = [NORMAL, HOVER, SELECTION, SELECTION];\r\n if (this._viewCounters.hover) {\r\n state |= HOVER_STATE\r\n }\r\n if (this._viewCounters.selection) {\r\n state |= SELECTED_STATE\r\n }\r\n if (isNoneMode(this.getOptions().selectionMode)) {\r\n fullState &= ~SELECTED_STATE\r\n }\r\n if (isNoneMode(this.getOptions().hoverMode)) {\r\n fullState &= ~HOVER_STATE\r\n }\r\n state |= fullState;\r\n return styles[state]\r\n },\r\n applyView: function(legendCallback) {\r\n var style = this._getViewStyle();\r\n this._currentStyle = style;\r\n if (!this.graphic && this.getMarkerVisibility() && this.series.autoHidePointMarkers && (style === SELECTION || style === HOVER)) {\r\n this._drawMarker(this.series.getRenderer(), this.series.getMarkersGroup())\r\n }\r\n if (this.graphic) {\r\n if (this.series.autoHidePointMarkers && style !== SELECTION && style !== HOVER) {\r\n this.deleteMarker()\r\n } else {\r\n if (\"normal\" === style) {\r\n this.clearMarker()\r\n } else {\r\n this.graphic.toForeground()\r\n }\r\n this._updateMarker(true, this._styles[style], void 0, legendCallback)\r\n }\r\n }\r\n },\r\n setView: function(style) {\r\n this._viewCounters[style]++;\r\n this.applyView()\r\n },\r\n resetView: function(style) {\r\n var viewCounters = this._viewCounters;\r\n --viewCounters[style];\r\n if (viewCounters[style] < 0) {\r\n viewCounters[style] = 0\r\n }\r\n this.applyView()\r\n },\r\n releaseHoverState: function() {\r\n if (this.graphic && !this.isSelected()) {\r\n this.graphic.toBackground()\r\n }\r\n },\r\n select: function() {\r\n this.series.selectPoint(this)\r\n },\r\n clearSelection: function() {\r\n this.series.deselectPoint(this)\r\n },\r\n hover: function() {\r\n this.series.hoverPoint(this)\r\n },\r\n clearHover: function() {\r\n this.series.clearPointHover()\r\n },\r\n showTooltip: function() {\r\n this.series.showPointTooltip(this)\r\n },\r\n hideTooltip: function() {\r\n this.series.hidePointTooltip(this)\r\n },\r\n _checkLabelsChanging: function(oldType, newType) {\r\n var isNewRange = ~newType.indexOf(\"range\");\r\n var isOldRange = ~oldType.indexOf(\"range\");\r\n return isOldRange && !isNewRange || !isOldRange && isNewRange\r\n },\r\n updateOptions: function(newOptions) {\r\n if (!newOptions) {\r\n return\r\n }\r\n var oldOptions = this._options;\r\n var widgetType = newOptions.widgetType;\r\n var oldType = oldOptions && oldOptions.type;\r\n var newType = newOptions.type;\r\n var newPointTypeMixin = pointTypes[widgetType][newType];\r\n if (oldType !== newType) {\r\n this._needDeletingOnDraw = true;\r\n this._needClearingOnDraw = false;\r\n if (oldType) {\r\n this._checkLabelsChanging(oldType, newType) && this.deleteLabel();\r\n this._resetType(mixins[pointTypes[oldType]])\r\n }\r\n this._setType(mixins[newPointTypeMixin])\r\n } else {\r\n this._needDeletingOnDraw = this._checkSymbol(oldOptions, newOptions);\r\n this._needClearingOnDraw = this._checkCustomize(oldOptions, newOptions)\r\n }\r\n this._options = newOptions;\r\n this._fillStyle();\r\n this._updateLabelOptions(newPointTypeMixin)\r\n },\r\n translate: function() {\r\n if (this.hasValue()) {\r\n this._translate();\r\n this.translated = true\r\n }\r\n },\r\n _checkCustomize: function(oldOptions, newOptions) {\r\n return oldOptions.styles.usePointCustomOptions && !newOptions.styles.usePointCustomOptions\r\n },\r\n _getCustomLabelVisibility: function() {\r\n return this._styles.useLabelCustomOptions ? !!this._options.label.visible : null\r\n },\r\n getBoundingRect: function() {\r\n return this._getGraphicBBox()\r\n },\r\n _resetType: function(methods) {\r\n for (var methodName in methods) {\r\n delete this[methodName]\r\n }\r\n },\r\n _setType: function(methods) {\r\n for (var methodName in methods) {\r\n this[methodName] = methods[methodName]\r\n }\r\n },\r\n isInVisibleArea: function() {\r\n return this.inVisibleArea\r\n },\r\n isSelected: function() {\r\n return !!(this.fullState & SELECTED_STATE)\r\n },\r\n isHovered: function() {\r\n return !!(this.fullState & HOVER_STATE)\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n animate: function(complete, settings, partitionDuration) {\r\n if (!this.graphic) {\r\n complete && complete();\r\n return\r\n }\r\n this.graphic.animate(settings, {\r\n partitionDuration: partitionDuration\r\n }, complete)\r\n },\r\n getCoords: function(min) {\r\n if (!min) {\r\n return {\r\n x: this.x,\r\n y: this.y\r\n }\r\n }\r\n if (!this._options.rotated) {\r\n return {\r\n x: this.x,\r\n y: this.minY + (this.y - this.minY ? 0 : 1)\r\n }\r\n }\r\n return {\r\n x: this.minX - (this.x - this.minX ? 0 : 1),\r\n y: this.y\r\n }\r\n },\r\n getDefaultCoords: function() {\r\n return !this._options.rotated ? {\r\n x: this.x,\r\n y: this.defaultY\r\n } : {\r\n x: this.defaultX,\r\n y: this.y\r\n }\r\n },\r\n setDefaultCoords() {\r\n var coords = this.getDefaultCoords();\r\n this.x = coords.x;\r\n this.y = coords.y\r\n },\r\n _getVisibleArea: function() {\r\n return this.series.getVisibleArea()\r\n },\r\n _getArgTranslator: function() {\r\n return this.series.getArgumentAxis().getTranslator()\r\n },\r\n _getValTranslator: function() {\r\n return this.series.getValueAxis().getTranslator()\r\n },\r\n _calculateVisibility: function(x, y, width, height) {\r\n var visibleArea = this._getVisibleArea();\r\n var rotated = this._options.rotated;\r\n if (visibleArea.minX > x + (width || 0) || visibleArea.maxX < x || visibleArea.minY > y + (height || 0) || visibleArea.maxY < y || rotated && _isDefined(width) && 0 !== width && (visibleArea.minX === x + width || visibleArea.maxX === x) || !rotated && _isDefined(height) && 0 !== height && (visibleArea.minY === y + height || visibleArea.maxY === y)) {\r\n this.inVisibleArea = false\r\n } else {\r\n this.inVisibleArea = true\r\n }\r\n },\r\n isArgumentCorrect() {\r\n return this.series._argumentChecker(this.argument)\r\n },\r\n isValueCorrect() {\r\n var valueChecker = this.series._valueChecker;\r\n return valueChecker(this.getMinValue()) && valueChecker(this.getMaxValue())\r\n },\r\n hasValue: function() {\r\n return null !== this.value && null !== this.minValue && this.isArgumentCorrect() && this.isValueCorrect()\r\n },\r\n hasCoords: _noop,\r\n correctPosition: _noop,\r\n correctRadius: _noop,\r\n correctLabelRadius: _noop,\r\n getCrosshairData: _noop,\r\n getPointRadius: _noop,\r\n _populatePointShape: _noop,\r\n _checkSymbol: _noop,\r\n getMarkerCoords: _noop,\r\n hide: _noop,\r\n show: _noop,\r\n hideMarker: _noop,\r\n setInvisibility: _noop,\r\n clearVisibility: _noop,\r\n isVisible: _noop,\r\n resetCorrection: _noop,\r\n correctValue: _noop,\r\n resetValue: _noop,\r\n setPercentValue: _noop,\r\n correctCoordinates: _noop,\r\n coordsIn: _noop,\r\n getTooltipParams: _noop,\r\n applyWordWrap: _noop,\r\n setLabelTrackerData: _noop,\r\n updateLabelCoord: _noop,\r\n drawLabel: _noop,\r\n correctLabelPosition: _noop,\r\n getMinValue: _noop,\r\n getMaxValue: _noop,\r\n _drawErrorBar: _noop,\r\n getMarkerVisibility: _noop,\r\n dispose: function() {\r\n this.deleteMarker();\r\n this.deleteLabel();\r\n this._errorBar && this._errorBar.dispose();\r\n this._options = this._styles = this.series = this._errorBar = null\r\n },\r\n getTooltipFormatObject: function(tooltip, stackPoints) {\r\n var tooltipFormatObject = this._getFormatObject(tooltip);\r\n var sharedTooltipValuesArray = [];\r\n var tooltipStackPointsFormatObject = [];\r\n if (stackPoints) {\r\n stackPoints.forEach(point => {\r\n if (!point.isVisible()) {\r\n return\r\n }\r\n var formatObject = point._getFormatObject(tooltip);\r\n tooltipStackPointsFormatObject.push(formatObject);\r\n sharedTooltipValuesArray.push(formatObject.seriesName + \": \" + formatObject.valueText)\r\n });\r\n _extend(tooltipFormatObject, {\r\n points: tooltipStackPointsFormatObject,\r\n valueText: sharedTooltipValuesArray.join(\"\\n\"),\r\n stackName: this.series.getStackName() || null\r\n })\r\n }\r\n var aggregationInfo = this.aggregationInfo;\r\n if (aggregationInfo) {\r\n var axis = this.series.getArgumentAxis();\r\n var rangeText = axis.formatRange(aggregationInfo.intervalStart, aggregationInfo.intervalEnd, aggregationInfo.aggregationInterval, tooltip.getOptions().argumentFormat);\r\n if (rangeText) {\r\n tooltipFormatObject.valueText += \"\\n\".concat(rangeText)\r\n }\r\n }\r\n return tooltipFormatObject\r\n },\r\n setHole: function(holeValue, position) {\r\n var minValue = isFinite(this.minValue) ? this.minValue : 0;\r\n if (_isDefined(holeValue)) {\r\n if (\"left\" === position) {\r\n this.leftHole = this.value - holeValue;\r\n this.minLeftHole = minValue - holeValue\r\n } else {\r\n this.rightHole = this.value - holeValue;\r\n this.minRightHole = minValue - holeValue\r\n }\r\n }\r\n },\r\n resetHoles: function() {\r\n this.leftHole = null;\r\n this.minLeftHole = null;\r\n this.rightHole = null;\r\n this.minRightHole = null\r\n },\r\n getLabel: function() {\r\n return this._label\r\n },\r\n getLabels: function() {\r\n return [this._label]\r\n },\r\n getCenterCoord() {\r\n return {\r\n x: this.x,\r\n y: this.y\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/scatter_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport rangeCalculator from \"./helpers/range_data_calculator\";\r\nimport {\r\n isDefined as _isDefined,\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map as _map,\r\n normalizeEnum as _normalizeEnum,\r\n convertXYToPolar\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar math = Math;\r\nvar _abs = math.abs;\r\nvar _sqrt = math.sqrt;\r\nvar _max = math.max;\r\nvar DEFAULT_TRACKER_WIDTH = 12;\r\nvar DEFAULT_DURATION = 400;\r\nvar HIGH_ERROR = \"highError\";\r\nvar LOW_ERROR = \"lowError\";\r\nvar VARIANCE = \"variance\";\r\nvar STANDARD_DEVIATION = \"stddeviation\";\r\nvar STANDARD_ERROR = \"stderror\";\r\nvar PERCENT = \"percent\";\r\nvar FIXED = \"fixed\";\r\nvar UNDEFINED = \"undefined\";\r\nvar DISCRETE = \"discrete\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar DATETIME = \"datetime\";\r\nvar chart = {};\r\nvar polar = {};\r\n\r\nfunction sum(array) {\r\n var result = 0;\r\n _each(array, (function(_, value) {\r\n result += value\r\n }));\r\n return result\r\n}\r\n\r\nfunction isErrorBarTypeCorrect(type) {\r\n return -1 !== inArray(type, [FIXED, PERCENT, VARIANCE, STANDARD_DEVIATION, STANDARD_ERROR])\r\n}\r\n\r\nfunction variance(array, expectedValue) {\r\n return sum(_map(array, (function(value) {\r\n return (value - expectedValue) * (value - expectedValue)\r\n }))) / array.length\r\n}\r\n\r\nfunction calculateAvgErrorBars(result, data, series) {\r\n var errorBarsOptions = series.getOptions().valueErrorBar;\r\n var valueField = series.getValueFields()[0];\r\n var lowValueField = errorBarsOptions.lowValueField || LOW_ERROR;\r\n var highValueField = errorBarsOptions.highValueField || HIGH_ERROR;\r\n if (series.areErrorBarsVisible() && void 0 === errorBarsOptions.type) {\r\n var fusionData = data.reduce((function(result, item) {\r\n if (_isDefined(item[lowValueField])) {\r\n result[0] += item[valueField] - item[lowValueField];\r\n result[1]++\r\n }\r\n if (_isDefined(item[highValueField])) {\r\n result[2] += item[highValueField] - item[valueField];\r\n result[3]++\r\n }\r\n return result\r\n }), [0, 0, 0, 0]);\r\n if (fusionData[1]) {\r\n result[lowValueField] = result[valueField] - fusionData[0] / fusionData[1]\r\n }\r\n if (fusionData[2]) {\r\n result[highValueField] = result[valueField] + fusionData[2] / fusionData[3]\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction calculateSumErrorBars(result, data, series) {\r\n var errorBarsOptions = series.getOptions().valueErrorBar;\r\n var lowValueField = errorBarsOptions.lowValueField || LOW_ERROR;\r\n var highValueField = errorBarsOptions.highValueField || HIGH_ERROR;\r\n if (series.areErrorBarsVisible() && void 0 === errorBarsOptions.type) {\r\n result[lowValueField] = 0;\r\n result[highValueField] = 0;\r\n result = data.reduce((function(result, item) {\r\n result[lowValueField] += item[lowValueField];\r\n result[highValueField] += item[highValueField];\r\n return result\r\n }), result)\r\n }\r\n return result\r\n}\r\n\r\nfunction getMinMaxAggregator(compare) {\r\n return (_ref, series) => {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref;\r\n var valueField = series.getValueFields()[0];\r\n var targetData = data[0];\r\n targetData = data.reduce((result, item) => {\r\n var value = item[valueField];\r\n if (null === result[valueField]) {\r\n result = item\r\n }\r\n if (null !== value && compare(value, result[valueField])) {\r\n return item\r\n }\r\n return result\r\n }, targetData);\r\n return _extend({}, targetData, {\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n })\r\n }\r\n}\r\n\r\nfunction checkFields(data, fieldsToCheck, skippedFields) {\r\n var allFieldsIsValid = true;\r\n for (var field in fieldsToCheck) {\r\n var isArgument = \"argument\" === field;\r\n if (isArgument || \"size\" === field ? !_isDefined(data[field]) : void 0 === data[field]) {\r\n var selector = fieldsToCheck[field];\r\n if (!isArgument) {\r\n skippedFields[selector] = (skippedFields[selector] || 0) + 1\r\n }\r\n allFieldsIsValid = false\r\n }\r\n }\r\n return allFieldsIsValid\r\n}\r\nvar baseScatterMethods = {\r\n _defaultDuration: DEFAULT_DURATION,\r\n _defaultTrackerWidth: DEFAULT_TRACKER_WIDTH,\r\n _applyStyle: _noop,\r\n _updateOptions: _noop,\r\n _parseStyle: _noop,\r\n _prepareSegment: _noop,\r\n _drawSegment: _noop,\r\n _appendInGroup: function() {\r\n this._group.append(this._extGroups.seriesGroup)\r\n },\r\n _createLegendState: function(styleOptions, defaultColor) {\r\n return {\r\n fill: styleOptions.color || defaultColor,\r\n hatching: styleOptions.hatching ? _extend({}, styleOptions.hatching, {\r\n direction: \"right\"\r\n }) : void 0\r\n }\r\n },\r\n _applyElementsClipRect: function(settings) {\r\n settings[\"clip-path\"] = this._paneClipRectID\r\n },\r\n _applyMarkerClipRect: function(settings) {\r\n settings[\"clip-path\"] = this._forceClipping ? this._paneClipRectID : null\r\n },\r\n _createGroup: function(groupName, parent, target, settings) {\r\n var group = parent[groupName] = parent[groupName] || this._renderer.g();\r\n target && group.append(target);\r\n settings && group.attr(settings)\r\n },\r\n _applyClearingSettings: function(settings) {\r\n settings.opacity = null;\r\n settings.scale = null;\r\n if (this._options.rotated) {\r\n settings.translateX = null\r\n } else {\r\n settings.translateY = null\r\n }\r\n },\r\n _createGroups: function() {\r\n this._createGroup(\"_markersGroup\", this, this._group);\r\n this._createGroup(\"_labelsGroup\", this)\r\n },\r\n _setMarkerGroupSettings: function() {\r\n var settings = this._createPointStyles(this._getMarkerGroupOptions()).normal;\r\n settings.class = \"dxc-markers\";\r\n settings.opacity = 1;\r\n this._applyMarkerClipRect(settings);\r\n this._markersGroup.attr(settings)\r\n },\r\n getVisibleArea: function() {\r\n return this._visibleArea\r\n },\r\n areErrorBarsVisible: function() {\r\n var errorBarOptions = this._options.valueErrorBar;\r\n return errorBarOptions && this._errorBarsEnabled() && \"none\" !== errorBarOptions.displayMode && (isErrorBarTypeCorrect(_normalizeEnum(errorBarOptions.type)) || _isDefined(errorBarOptions.lowValueField) || _isDefined(errorBarOptions.highValueField))\r\n },\r\n groupPointsByCoords(rotated) {\r\n var cat = [];\r\n _each(this.getVisiblePoints(), (function(_, p) {\r\n var pointCoord = parseInt(rotated ? p.vy : p.vx);\r\n if (!cat[pointCoord]) {\r\n cat[pointCoord] = p\r\n } else {\r\n Array.isArray(cat[pointCoord]) ? cat[pointCoord].push(p) : cat[pointCoord] = [cat[pointCoord], p]\r\n }\r\n }));\r\n return cat\r\n },\r\n _createErrorBarGroup: function(animationEnabled) {\r\n var errorBarOptions = this._options.valueErrorBar;\r\n var settings;\r\n if (this.areErrorBarsVisible()) {\r\n settings = {\r\n class: \"dxc-error-bars\",\r\n stroke: errorBarOptions.color,\r\n \"stroke-width\": errorBarOptions.lineWidth,\r\n opacity: animationEnabled ? .001 : errorBarOptions.opacity || 1,\r\n \"stroke-linecap\": \"square\",\r\n sharp: true,\r\n \"clip-path\": this._forceClipping ? this._paneClipRectID : this._widePaneClipRectID\r\n };\r\n this._createGroup(\"_errorBarGroup\", this, this._group, settings)\r\n }\r\n },\r\n _setGroupsSettings: function(animationEnabled) {\r\n this._setMarkerGroupSettings();\r\n this._setLabelGroupSettings(animationEnabled);\r\n this._createErrorBarGroup(animationEnabled)\r\n },\r\n _getCreatingPointOptions: function() {\r\n var defaultPointOptions;\r\n var creatingPointOptions = this._predefinedPointOptions;\r\n var normalStyle;\r\n if (!creatingPointOptions) {\r\n defaultPointOptions = this._getPointOptions();\r\n this._predefinedPointOptions = creatingPointOptions = _extend(true, {\r\n styles: {}\r\n }, defaultPointOptions);\r\n normalStyle = defaultPointOptions.styles && defaultPointOptions.styles.normal || {};\r\n creatingPointOptions.styles = creatingPointOptions.styles || {};\r\n creatingPointOptions.styles.normal = {\r\n \"stroke-width\": normalStyle[\"stroke-width\"],\r\n r: normalStyle.r,\r\n opacity: normalStyle.opacity\r\n }\r\n }\r\n return creatingPointOptions\r\n },\r\n _getPointOptions: function() {\r\n return this._parsePointOptions(this._preparePointOptions(), this._options.label)\r\n },\r\n _getOptionsForPoint: function() {\r\n return this._options.point\r\n },\r\n _parsePointStyle: function(style, defaultColor, defaultBorderColor, defaultSize) {\r\n var border = style.border || {};\r\n var sizeValue = void 0 !== style.size ? style.size : defaultSize;\r\n return {\r\n fill: style.color || defaultColor,\r\n stroke: border.color || defaultBorderColor,\r\n \"stroke-width\": border.visible ? border.width : 0,\r\n r: sizeValue / 2 + (border.visible && 0 !== sizeValue ? ~~(border.width / 2) || 0 : 0)\r\n }\r\n },\r\n _createPointStyles: function(pointOptions) {\r\n var mainPointColor = pointOptions.color || this._options.mainSeriesColor;\r\n var containerColor = this._options.containerBackgroundColor;\r\n var normalStyle = this._parsePointStyle(pointOptions, mainPointColor, mainPointColor);\r\n normalStyle.visibility = pointOptions.visible ? \"visible\" : \"hidden\";\r\n return {\r\n normal: normalStyle,\r\n hover: this._parsePointStyle(pointOptions.hoverStyle, containerColor, mainPointColor, pointOptions.size),\r\n selection: this._parsePointStyle(pointOptions.selectionStyle, containerColor, mainPointColor, pointOptions.size)\r\n }\r\n },\r\n _checkData: function(data, skippedFields, fieldsToCheck) {\r\n fieldsToCheck = fieldsToCheck || {\r\n value: this.getValueFields()[0]\r\n };\r\n fieldsToCheck.argument = this.getArgumentField();\r\n return checkFields(data, fieldsToCheck, skippedFields || {}) && data.value === data.value\r\n },\r\n getArgumentRangeInitialValue() {\r\n var points = this.getPoints();\r\n if (this.useAggregation() && points.length) {\r\n var _points$0$aggregation, _points$aggregationIn;\r\n return {\r\n min: null === (_points$0$aggregation = points[0].aggregationInfo) || void 0 === _points$0$aggregation ? void 0 : _points$0$aggregation.intervalStart,\r\n max: null === (_points$aggregationIn = points[points.length - 1].aggregationInfo) || void 0 === _points$aggregationIn ? void 0 : _points$aggregationIn.intervalEnd\r\n }\r\n }\r\n return\r\n },\r\n getValueRangeInitialValue: function() {\r\n return\r\n },\r\n _getRangeData: function() {\r\n return rangeCalculator.getRangeData(this)\r\n },\r\n _getPointDataSelector: function() {\r\n var valueField = this.getValueFields()[0];\r\n var argumentField = this.getArgumentField();\r\n var tagField = this.getTagField();\r\n var areErrorBarsVisible = this.areErrorBarsVisible();\r\n var lowValueField;\r\n var highValueField;\r\n if (areErrorBarsVisible) {\r\n var errorBarOptions = this._options.valueErrorBar;\r\n lowValueField = errorBarOptions.lowValueField || LOW_ERROR;\r\n highValueField = errorBarOptions.highValueField || HIGH_ERROR\r\n }\r\n return data => {\r\n var pointData = {\r\n value: this._processEmptyValue(data[valueField]),\r\n argument: data[argumentField],\r\n tag: data[tagField],\r\n data: data\r\n };\r\n if (areErrorBarsVisible) {\r\n pointData.lowError = data[lowValueField];\r\n pointData.highError = data[highValueField]\r\n }\r\n return pointData\r\n }\r\n },\r\n _errorBarsEnabled: function() {\r\n return this.valueAxisType !== DISCRETE && this.valueAxisType !== LOGARITHMIC && this.valueType !== DATETIME\r\n },\r\n _drawPoint: function(options) {\r\n var point = options.point;\r\n if (point.isInVisibleArea()) {\r\n point.clearVisibility();\r\n point.draw(this._renderer, options.groups, options.hasAnimation, options.firstDrawing);\r\n this._drawnPoints.push(point)\r\n } else {\r\n point.setInvisibility()\r\n }\r\n },\r\n _animateComplete: function() {\r\n var animationSettings = {\r\n duration: this._defaultDuration\r\n };\r\n this._labelsGroup && this._labelsGroup.animate({\r\n opacity: 1\r\n }, animationSettings);\r\n this._errorBarGroup && this._errorBarGroup.animate({\r\n opacity: this._options.valueErrorBar.opacity || 1\r\n }, animationSettings)\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var lastPointIndex = that._drawnPoints.length - 1;\r\n _each(that._drawnPoints || [], (function(i, p) {\r\n p.animate(i === lastPointIndex ? function() {\r\n that._animateComplete()\r\n } : void 0, {\r\n translateX: p.x,\r\n translateY: p.y\r\n })\r\n }))\r\n },\r\n _getIntervalCenter(intervalStart, intervalEnd) {\r\n var argAxis = this.getArgumentAxis();\r\n var axisOptions = argAxis.getOptions();\r\n if (argAxis.aggregatedPointBetweenTicks()) {\r\n return intervalStart\r\n }\r\n return \"discrete\" !== axisOptions.type ? argAxis.getVisualRangeCenter({\r\n minVisible: intervalStart,\r\n maxVisible: intervalEnd\r\n }, true) : intervalStart\r\n },\r\n _defaultAggregator: \"avg\",\r\n _aggregators: {\r\n avg(_ref2, series) {\r\n var {\r\n data: data,\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd\r\n } = _ref2;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueField = series.getValueFields()[0];\r\n var aggregationResult = data.reduce((result, item) => {\r\n var value = item[valueField];\r\n if (_isDefined(value)) {\r\n result[0] += value;\r\n result[1]++\r\n } else if (null === value) {\r\n result[2]++\r\n }\r\n return result\r\n }, [0, 0, 0]);\r\n return calculateAvgErrorBars({\r\n [valueField]: aggregationResult[2] === data.length ? null : aggregationResult[0] / aggregationResult[1],\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n }, data, series)\r\n },\r\n sum(_ref3, series) {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref3;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueField = series.getValueFields()[0];\r\n var aggregationResult = data.reduce((result, item) => {\r\n var value = item[valueField];\r\n if (void 0 !== value) {\r\n result[0] += value\r\n }\r\n if (null === value) {\r\n result[1]++\r\n } else if (void 0 === value) {\r\n result[2]++\r\n }\r\n return result\r\n }, [0, 0, 0]);\r\n var value = aggregationResult[0];\r\n if (aggregationResult[1] === data.length) {\r\n value = null\r\n }\r\n if (aggregationResult[2] === data.length) {\r\n return\r\n }\r\n return calculateSumErrorBars({\r\n [valueField]: value,\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n }, data, series)\r\n },\r\n count(_ref4, series) {\r\n var {\r\n data: data,\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd\r\n } = _ref4;\r\n var valueField = series.getValueFields()[0];\r\n return {\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd),\r\n [valueField]: data.filter(i => void 0 !== i[valueField]).length\r\n }\r\n },\r\n min: getMinMaxAggregator((a, b) => a < b),\r\n max: getMinMaxAggregator((a, b) => a > b)\r\n },\r\n _endUpdateData: function() {\r\n delete this._predefinedPointOptions\r\n },\r\n getArgumentField: function() {\r\n return this._options.argumentField || \"arg\"\r\n },\r\n getValueFields: function() {\r\n var options = this._options;\r\n var errorBarsOptions = options.valueErrorBar;\r\n var valueFields = [options.valueField || \"val\"];\r\n var lowValueField;\r\n var highValueField;\r\n if (errorBarsOptions) {\r\n lowValueField = errorBarsOptions.lowValueField;\r\n highValueField = errorBarsOptions.highValueField;\r\n _isString(lowValueField) && valueFields.push(lowValueField);\r\n _isString(highValueField) && valueFields.push(highValueField)\r\n }\r\n return valueFields\r\n },\r\n _calculateErrorBars: function(data) {\r\n if (!this.areErrorBarsVisible()) {\r\n return\r\n }\r\n var options = this._options;\r\n var errorBarsOptions = options.valueErrorBar;\r\n var errorBarType = _normalizeEnum(errorBarsOptions.type);\r\n var floatErrorValue = parseFloat(errorBarsOptions.value);\r\n var valueField = this.getValueFields()[0];\r\n var value;\r\n var lowValueField = errorBarsOptions.lowValueField || LOW_ERROR;\r\n var highValueField = errorBarsOptions.highValueField || HIGH_ERROR;\r\n var valueArray;\r\n var valueArrayLength;\r\n var meanValue;\r\n var processDataItem;\r\n var addSubError = function(_i, item) {\r\n value = item.value;\r\n item.lowError = value - floatErrorValue;\r\n item.highError = value + floatErrorValue\r\n };\r\n switch (errorBarType) {\r\n case FIXED:\r\n processDataItem = addSubError;\r\n break;\r\n case PERCENT:\r\n processDataItem = function(_, item) {\r\n value = item.value;\r\n var error = value * floatErrorValue / 100;\r\n item.lowError = value - error;\r\n item.highError = value + error\r\n };\r\n break;\r\n case UNDEFINED:\r\n processDataItem = function(_, item) {\r\n item.lowError = item.data[lowValueField];\r\n item.highError = item.data[highValueField]\r\n };\r\n break;\r\n default:\r\n valueArray = _map(data, (function(item) {\r\n return _isDefined(item.data[valueField]) ? item.data[valueField] : null\r\n }));\r\n valueArrayLength = valueArray.length;\r\n floatErrorValue = floatErrorValue || 1;\r\n switch (errorBarType) {\r\n case VARIANCE:\r\n floatErrorValue = variance(valueArray, sum(valueArray) / valueArrayLength) * floatErrorValue;\r\n processDataItem = addSubError;\r\n break;\r\n case STANDARD_DEVIATION:\r\n meanValue = sum(valueArray) / valueArrayLength;\r\n floatErrorValue = _sqrt(variance(valueArray, meanValue)) * floatErrorValue;\r\n processDataItem = function(_, item) {\r\n item.lowError = meanValue - floatErrorValue;\r\n item.highError = meanValue + floatErrorValue\r\n };\r\n break;\r\n case STANDARD_ERROR:\r\n floatErrorValue = _sqrt(variance(valueArray, sum(valueArray) / valueArrayLength) / valueArrayLength) * floatErrorValue;\r\n processDataItem = addSubError\r\n }\r\n }\r\n processDataItem && _each(data, processDataItem)\r\n },\r\n _patchMarginOptions: function(options) {\r\n var pointOptions = this._getCreatingPointOptions();\r\n var styles = pointOptions.styles;\r\n var maxSize = [styles.normal, styles.hover, styles.selection].reduce((function(max, style) {\r\n return _max(max, 2 * style.r + style[\"stroke-width\"])\r\n }), 0);\r\n options.size = pointOptions.visible ? maxSize : 0;\r\n options.sizePointNormalState = pointOptions.visible ? 2 * styles.normal.r + styles.normal[\"stroke-width\"] : 2;\r\n return options\r\n },\r\n usePointsToDefineAutoHiding: () => true\r\n};\r\nchart = _extend({}, baseScatterMethods, {\r\n drawTrackers: function() {\r\n var that = this;\r\n var trackers;\r\n var trackersGroup;\r\n var segments = that._segments || [];\r\n var rotated = that._options.rotated;\r\n if (!that.isVisible()) {\r\n return\r\n }\r\n if (segments.length) {\r\n trackers = that._trackers = that._trackers || [];\r\n trackersGroup = that._trackersGroup = (that._trackersGroup || that._renderer.g().attr({\r\n fill: \"gray\",\r\n opacity: .001,\r\n stroke: \"gray\",\r\n class: \"dxc-trackers\"\r\n })).attr({\r\n \"clip-path\": this._paneClipRectID || null\r\n }).append(that._group);\r\n _each(segments, (function(i, segment) {\r\n if (!trackers[i]) {\r\n trackers[i] = that._drawTrackerElement(segment).data({\r\n \"chart-data-series\": that\r\n }).append(trackersGroup)\r\n } else {\r\n that._updateTrackerElement(segment, trackers[i])\r\n }\r\n }))\r\n }\r\n that._trackersTranslator = that.groupPointsByCoords(rotated)\r\n },\r\n _checkAxisVisibleAreaCoord(isArgument, coord) {\r\n var axis = isArgument ? this.getArgumentAxis() : this.getValueAxis();\r\n var visibleArea = axis.getVisibleArea();\r\n return _isDefined(coord) && visibleArea[0] <= coord && visibleArea[1] >= coord\r\n },\r\n checkSeriesViewportCoord(axis, coord) {\r\n return this.getPoints().length && this.isVisible()\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var isOpposite = !isArgument && !this._options.rotated || isArgument && this._options.rotated;\r\n var coordName = !isOpposite ? \"vx\" : \"vy\";\r\n var oppositeCoordName = !isOpposite ? \"vy\" : \"vx\";\r\n var points = this.getVisiblePoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = p[coordName] === coord ? p[oppositeCoordName] : void 0;\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n },\r\n _getNearestPoints: (point, nextPoint) => [point, nextPoint],\r\n _getBezierPoints: () => [],\r\n _getNearestPointsByCoord(coord, isArgument) {\r\n var that = this;\r\n var rotated = that.getOptions().rotated;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = isOpposite ? \"vy\" : \"vx\";\r\n var allPoints = that.getPoints();\r\n var bezierPoints = that._getBezierPoints();\r\n var nearestPoints = [];\r\n if (allPoints.length > 1) {\r\n allPoints.forEach((point, i) => {\r\n var nextPoint = allPoints[i + 1];\r\n if (nextPoint && (point[coordName] <= coord && nextPoint[coordName] >= coord || point[coordName] >= coord && nextPoint[coordName] <= coord)) {\r\n nearestPoints.push(that._getNearestPoints(point, nextPoint, bezierPoints))\r\n }\r\n })\r\n } else {\r\n nearestPoints.push([allPoints[0], allPoints[0]])\r\n }\r\n return nearestPoints\r\n },\r\n getNeighborPoint: function(x, y) {\r\n var pCoord = this._options.rotated ? y : x;\r\n var nCoord = pCoord;\r\n var cat = this._trackersTranslator;\r\n var point = null;\r\n var minDistance;\r\n var oppositeCoord = this._options.rotated ? x : y;\r\n var oppositeCoordName = this._options.rotated ? \"vx\" : \"vy\";\r\n if (this.isVisible() && cat) {\r\n point = cat[pCoord];\r\n do {\r\n point = cat[nCoord] || cat[pCoord];\r\n pCoord--;\r\n nCoord++\r\n } while ((pCoord >= 0 || nCoord < cat.length) && !point);\r\n if (Array.isArray(point)) {\r\n minDistance = _abs(point[0][oppositeCoordName] - oppositeCoord);\r\n _each(point, (function(i, p) {\r\n var distance = _abs(p[oppositeCoordName] - oppositeCoord);\r\n if (minDistance >= distance) {\r\n minDistance = distance;\r\n point = p\r\n }\r\n }))\r\n }\r\n }\r\n return point\r\n },\r\n _applyVisibleArea: function() {\r\n var rotated = this._options.rotated;\r\n var visibleX = (rotated ? this.getValueAxis() : this.getArgumentAxis()).getVisibleArea();\r\n var visibleY = (rotated ? this.getArgumentAxis() : this.getValueAxis()).getVisibleArea();\r\n this._visibleArea = {\r\n minX: visibleX[0],\r\n maxX: visibleX[1],\r\n minY: visibleY[0],\r\n maxY: visibleY[1]\r\n }\r\n },\r\n getPointCenterByArg(arg) {\r\n var point = this.getPointsByArg(arg)[0];\r\n return point ? point.getCenterCoord() : void 0\r\n }\r\n});\r\npolar = _extend({}, baseScatterMethods, {\r\n drawTrackers: function() {\r\n chart.drawTrackers.call(this);\r\n var cat = this._trackersTranslator;\r\n var index;\r\n if (!this.isVisible()) {\r\n return\r\n }\r\n _each(cat, (function(i, category) {\r\n if (category) {\r\n index = i;\r\n return false\r\n }\r\n }));\r\n cat[index + 360] = cat[index]\r\n },\r\n getNeighborPoint: function(x, y) {\r\n var pos = convertXYToPolar(this.getValueAxis().getCenter(), x, y);\r\n return chart.getNeighborPoint.call(this, pos.phi, pos.r)\r\n },\r\n _applyVisibleArea: function() {\r\n var canvas = this.getValueAxis().getCanvas();\r\n this._visibleArea = {\r\n minX: canvas.left,\r\n maxX: canvas.width - canvas.right,\r\n minY: canvas.top,\r\n maxY: canvas.height - canvas.bottom\r\n }\r\n },\r\n getSeriesPairCoord(params, isArgument) {\r\n var coords = null;\r\n var paramName = isArgument ? \"argument\" : \"radius\";\r\n var points = this.getVisiblePoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpPoint = _isDefined(p[paramName]) && _isDefined(params[paramName]) && p[paramName].valueOf() === params[paramName].valueOf() ? {\r\n x: p.x,\r\n y: p.y\r\n } : void 0;\r\n if (_isDefined(tmpPoint)) {\r\n coords = tmpPoint;\r\n break\r\n }\r\n }\r\n return coords\r\n }\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/line_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n chart as chartScatterSeries,\r\n polar as polarScatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n map,\r\n normalizeAngle,\r\n getCosAndSin\r\n} from \"../core/utils\";\r\nimport {\r\n solveCubicEquation,\r\n trunc\r\n} from \"../../core/utils/math\";\r\nvar DISCRETE = \"discrete\";\r\nvar {\r\n round: round,\r\n sqrt: sqrt,\r\n pow: pow,\r\n min: min,\r\n max: max,\r\n abs: abs\r\n} = Math;\r\nvar chart = {};\r\nvar polar = {};\r\n\r\nfunction clonePoint(point, newX, newY, newAngle) {\r\n var p = clone(point);\r\n p.x = newX;\r\n p.y = newY;\r\n p.angle = newAngle;\r\n return p\r\n}\r\n\r\nfunction getTangentPoint(point, prevPoint, centerPoint, tan, nextStepAngle) {\r\n var correctAngle = point.angle + nextStepAngle;\r\n var cosSin = getCosAndSin(correctAngle);\r\n var x = centerPoint.x + (point.radius + tan * nextStepAngle) * cosSin.cos;\r\n var y = centerPoint.y - (point.radius + tan * nextStepAngle) * cosSin.sin;\r\n return clonePoint(prevPoint, x, y, correctAngle)\r\n}\r\n\r\nfunction obtainCubicBezierTCoef(p, p0, p1, p2, p3) {\r\n var d = p0 - p;\r\n var c = 3 * p1 - 3 * p0;\r\n var b = 3 * p2 - 6 * p1 + 3 * p0;\r\n var a = p3 - 3 * p2 + 3 * p1 - p0;\r\n return solveCubicEquation(a, b, c, d)\r\n}\r\nvar lineMethods = {\r\n autoHidePointMarkersEnabled: () => true,\r\n _applyGroupSettings: function(style, settings, group) {\r\n settings = extend(settings, style);\r\n this._applyElementsClipRect(settings);\r\n group.attr(settings)\r\n },\r\n _setGroupsSettings: function(animationEnabled) {\r\n var style = this._styles.normal;\r\n this._applyGroupSettings(style.elements, {\r\n class: \"dxc-elements\"\r\n }, this._elementsGroup);\r\n this._bordersGroup && this._applyGroupSettings(style.border, {\r\n class: \"dxc-borders\"\r\n }, this._bordersGroup);\r\n chartScatterSeries._setGroupsSettings.call(this, animationEnabled);\r\n animationEnabled && this._markersGroup && this._markersGroup.attr({\r\n opacity: .001\r\n })\r\n },\r\n _createGroups: function() {\r\n this._createGroup(\"_elementsGroup\", this, this._group);\r\n this._areBordersVisible() && this._createGroup(\"_bordersGroup\", this, this._group);\r\n chartScatterSeries._createGroups.call(this)\r\n },\r\n _areBordersVisible: function() {\r\n return false\r\n },\r\n _getDefaultSegment: function(segment) {\r\n return {\r\n line: map(segment.line || [], (function(pt) {\r\n return pt.getDefaultCoords()\r\n }))\r\n }\r\n },\r\n _prepareSegment: function(points) {\r\n return {\r\n line: points\r\n }\r\n },\r\n _parseLineOptions: function(options, defaultColor) {\r\n return {\r\n stroke: options.color || defaultColor,\r\n \"stroke-width\": options.width,\r\n dashStyle: options.dashStyle || \"solid\"\r\n }\r\n },\r\n _parseStyle: function(options, defaultColor) {\r\n return {\r\n elements: this._parseLineOptions(options, defaultColor)\r\n }\r\n },\r\n _applyStyle: function(style) {\r\n this._elementsGroup && this._elementsGroup.attr(style.elements);\r\n each(this._graphics || [], (function(_, graphic) {\r\n graphic.line && graphic.line.attr({\r\n \"stroke-width\": style.elements[\"stroke-width\"]\r\n }).sharp()\r\n }))\r\n },\r\n _drawElement: function(segment, group) {\r\n return {\r\n line: this._createMainElement(segment.line, {\r\n \"stroke-width\": this._styles.normal.elements[\"stroke-width\"]\r\n }).append(group)\r\n }\r\n },\r\n _removeElement: function(element) {\r\n element.line.remove()\r\n },\r\n _updateElement: function(element, segment, animate, animationComplete) {\r\n var params = {\r\n points: segment.line\r\n };\r\n var lineElement = element.line;\r\n animate ? lineElement.animate(params, {}, animationComplete) : lineElement.attr(params)\r\n },\r\n _animateComplete: function() {\r\n chartScatterSeries._animateComplete.call(this);\r\n this._markersGroup && this._markersGroup.animate({\r\n opacity: 1\r\n }, {\r\n duration: this._defaultDuration\r\n })\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var lastIndex = that._graphics.length - 1;\r\n each(that._graphics || [], (function(i, elem) {\r\n var complete;\r\n if (i === lastIndex) {\r\n complete = function() {\r\n that._animateComplete()\r\n }\r\n }\r\n that._updateElement(elem, that._segments[i], true, complete)\r\n }))\r\n },\r\n _drawPoint: function(options) {\r\n chartScatterSeries._drawPoint.call(this, {\r\n point: options.point,\r\n groups: options.groups\r\n })\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"line\").attr(settings)\r\n },\r\n _sortPoints: function(points, rotated) {\r\n return rotated ? points.sort((function(p1, p2) {\r\n return p2.y - p1.y\r\n })) : points.sort((function(p1, p2) {\r\n return p1.x - p2.x\r\n }))\r\n },\r\n _drawSegment: function(points, animationEnabled, segmentCount, lastSegment) {\r\n var rotated = this._options.rotated;\r\n var segment = this._prepareSegment(points, rotated, lastSegment);\r\n this._segments.push(segment);\r\n if (!this._graphics[segmentCount]) {\r\n this._graphics[segmentCount] = this._drawElement(animationEnabled ? this._getDefaultSegment(segment) : segment, this._elementsGroup)\r\n } else if (!animationEnabled) {\r\n this._updateElement(this._graphics[segmentCount], segment)\r\n }\r\n },\r\n _getTrackerSettings: function() {\r\n var defaultTrackerWidth = this._defaultTrackerWidth;\r\n var strokeWidthFromElements = this._styles.normal.elements[\"stroke-width\"];\r\n return {\r\n \"stroke-width\": strokeWidthFromElements > defaultTrackerWidth ? strokeWidthFromElements : defaultTrackerWidth,\r\n fill: \"none\"\r\n }\r\n },\r\n _getMainPointsFromSegment: function(segment) {\r\n return segment.line\r\n },\r\n _drawTrackerElement: function(segment) {\r\n return this._createMainElement(this._getMainPointsFromSegment(segment), this._getTrackerSettings(segment))\r\n },\r\n _updateTrackerElement: function(segment, element) {\r\n var settings = this._getTrackerSettings(segment);\r\n settings.points = this._getMainPointsFromSegment(segment);\r\n element.attr(settings)\r\n },\r\n checkSeriesViewportCoord(axis, coord) {\r\n if (!chartScatterSeries.checkSeriesViewportCoord.call(this)) {\r\n return false\r\n }\r\n var range = axis.isArgumentAxis ? this.getArgumentRange() : this.getViewport();\r\n var min = axis.getTranslator().translate(range.categories ? range.categories[0] : range.min);\r\n var max = axis.getTranslator().translate(range.categories ? range.categories[range.categories.length - 1] : range.max);\r\n var rotated = this.getOptions().rotated;\r\n var inverted = axis.getOptions().inverted;\r\n return axis.isArgumentAxis && (!rotated && !inverted || rotated && inverted) || !axis.isArgumentAxis && (rotated && !inverted || !rotated && inverted) ? coord >= min && coord <= max : coord >= max && coord <= min\r\n }\r\n};\r\nvar lineSeries = chart.line = extend({}, chartScatterSeries, lineMethods, {\r\n getPointCenterByArg(arg) {\r\n var value = this.getArgumentAxis().getTranslator().translate(arg);\r\n return {\r\n x: value,\r\n y: value\r\n }\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var nearestPoints = this._getNearestPointsByCoord(coord, isArgument);\r\n var needValueCoord = isArgument && !this._options.rotated || !isArgument && this._options.rotated;\r\n for (var i = 0; i < nearestPoints.length; i++) {\r\n var p = nearestPoints[i];\r\n var k = (p[1].vy - p[0].vy) / (p[1].vx - p[0].vx);\r\n var b = p[0].vy - p[0].vx * k;\r\n var tmpCoord = void 0;\r\n if (p[1].vx - p[0].vx === 0) {\r\n tmpCoord = needValueCoord ? p[0].vy : p[0].vx\r\n } else {\r\n tmpCoord = needValueCoord ? k * coord + b : (coord - b) / k\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n});\r\nchart.stepline = extend({}, lineSeries, {\r\n _calculateStepLinePoints(points) {\r\n var segment = [];\r\n var coordName = this._options.rotated ? \"x\" : \"y\";\r\n each(points, (function(i, pt) {\r\n var point;\r\n if (!i) {\r\n segment.push(pt);\r\n return\r\n }\r\n var step = segment[segment.length - 1][coordName];\r\n if (step !== pt[coordName]) {\r\n point = clone(pt);\r\n point[coordName] = step;\r\n segment.push(point)\r\n }\r\n segment.push(pt)\r\n }));\r\n return segment\r\n },\r\n _prepareSegment: function(points) {\r\n return lineSeries._prepareSegment(this._calculateStepLinePoints(points))\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord;\r\n var rotated = this._options.rotated;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = !isOpposite ? \"vx\" : \"vy\";\r\n var oppositeCoordName = !isOpposite ? \"vy\" : \"vx\";\r\n var nearestPoints = this._getNearestPointsByCoord(coord, isArgument);\r\n for (var i = 0; i < nearestPoints.length; i++) {\r\n var p = nearestPoints[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = coord !== p[1][coordName] ? p[0][oppositeCoordName] : p[1][oppositeCoordName]\r\n } else {\r\n tmpCoord = coord === p[0][coordName] ? p[0][oppositeCoordName] : p[1][oppositeCoordName]\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n});\r\nchart.spline = extend({}, lineSeries, {\r\n _calculateBezierPoints: function(src, rotated) {\r\n var bezierPoints = [];\r\n var pointsCopy = src;\r\n var checkExtremum = function(otherPointCoord, pointCoord, controlCoord) {\r\n return otherPointCoord > pointCoord && controlCoord > otherPointCoord || otherPointCoord < pointCoord && controlCoord < otherPointCoord ? otherPointCoord : controlCoord\r\n };\r\n if (1 !== pointsCopy.length) {\r\n pointsCopy.forEach((function(curPoint, i) {\r\n var leftControlX;\r\n var leftControlY;\r\n var rightControlX;\r\n var rightControlY;\r\n var prevPoint = pointsCopy[i - 1];\r\n var nextPoint = pointsCopy[i + 1];\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var a;\r\n var b;\r\n var c;\r\n var xc;\r\n var yc;\r\n var shift;\r\n if (!i || i === pointsCopy.length - 1) {\r\n bezierPoints.push(curPoint, curPoint);\r\n return\r\n }\r\n var xCur = curPoint.x;\r\n var yCur = curPoint.y;\r\n x1 = prevPoint.x;\r\n x2 = nextPoint.x;\r\n y1 = prevPoint.y;\r\n y2 = nextPoint.y;\r\n var curIsExtremum = !!(!rotated && (yCur <= prevPoint.y && yCur <= nextPoint.y || yCur >= prevPoint.y && yCur >= nextPoint.y) || rotated && (xCur <= prevPoint.x && xCur <= nextPoint.x || xCur >= prevPoint.x && xCur >= nextPoint.x));\r\n if (curIsExtremum) {\r\n if (!rotated) {\r\n rightControlY = leftControlY = yCur;\r\n rightControlX = (xCur + nextPoint.x) / 2;\r\n leftControlX = (xCur + prevPoint.x) / 2\r\n } else {\r\n rightControlX = leftControlX = xCur;\r\n rightControlY = (yCur + nextPoint.y) / 2;\r\n leftControlY = (yCur + prevPoint.y) / 2\r\n }\r\n } else {\r\n a = y2 - y1;\r\n b = x1 - x2;\r\n c = y1 * x2 - x1 * y2;\r\n if (!rotated) {\r\n if (!b) {\r\n bezierPoints.push(curPoint, curPoint, curPoint);\r\n return\r\n }\r\n xc = xCur;\r\n yc = -1 * (a * xc + c) / b;\r\n shift = yc - yCur;\r\n y1 -= shift;\r\n y2 -= shift\r\n } else {\r\n if (!a) {\r\n bezierPoints.push(curPoint, curPoint, curPoint);\r\n return\r\n }\r\n yc = yCur;\r\n xc = -1 * (b * yc + c) / a;\r\n shift = xc - xCur;\r\n x1 -= shift;\r\n x2 -= shift\r\n }\r\n rightControlX = (xCur + .5 * x2) / 1.5;\r\n rightControlY = (yCur + .5 * y2) / 1.5;\r\n leftControlX = (xCur + .5 * x1) / 1.5;\r\n leftControlY = (yCur + .5 * y1) / 1.5\r\n }\r\n if (!rotated) {\r\n leftControlY = checkExtremum(prevPoint.y, yCur, leftControlY);\r\n rightControlY = checkExtremum(nextPoint.y, yCur, rightControlY)\r\n } else {\r\n leftControlX = checkExtremum(prevPoint.x, xCur, leftControlX);\r\n rightControlX = checkExtremum(nextPoint.x, xCur, rightControlX)\r\n }\r\n var leftPoint = clonePoint(curPoint, leftControlX, leftControlY);\r\n var rightPoint = clonePoint(curPoint, rightControlX, rightControlY);\r\n bezierPoints.push(leftPoint, curPoint, rightPoint)\r\n }))\r\n } else {\r\n bezierPoints.push(pointsCopy[0])\r\n }\r\n return bezierPoints\r\n },\r\n _prepareSegment: function(points, rotated) {\r\n return lineSeries._prepareSegment(this._calculateBezierPoints(points, rotated))\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"bezier\").attr(settings)\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var isOpposite = !isArgument && !this._options.rotated || isArgument && this._options.rotated;\r\n var coordName = !isOpposite ? \"vx\" : \"vy\";\r\n var bezierCoordName = !isOpposite ? \"x\" : \"y\";\r\n var oppositeCoordName = !isOpposite ? \"vy\" : \"vx\";\r\n var bezierOppositeCoordName = !isOpposite ? \"y\" : \"x\";\r\n var axis = !isArgument ? this.getArgumentAxis() : this.getValueAxis();\r\n var visibleArea = axis.getVisibleArea();\r\n var nearestPoints = this._getNearestPointsByCoord(coord, isArgument);\r\n var _loop = function(i) {\r\n var p = nearestPoints[i];\r\n if (1 === p.length) {\r\n visibleArea[0] <= p[0][oppositeCoordName] && visibleArea[1] >= p[0][oppositeCoordName] && (oppositeCoord = p[0][oppositeCoordName])\r\n } else {\r\n var ts = obtainCubicBezierTCoef(coord, p[0][coordName], p[1][bezierCoordName], p[2][bezierCoordName], p[3][coordName]);\r\n ts.forEach(t => {\r\n if (t >= 0 && t <= 1) {\r\n var tmpCoord = Math.pow(1 - t, 3) * p[0][oppositeCoordName] + 3 * Math.pow(1 - t, 2) * t * p[1][bezierOppositeCoordName] + 3 * (1 - t) * t * t * p[2][bezierOppositeCoordName] + t * t * t * p[3][oppositeCoordName];\r\n if (visibleArea[0] <= tmpCoord && visibleArea[1] >= tmpCoord) {\r\n oppositeCoord = tmpCoord\r\n }\r\n }\r\n })\r\n }\r\n if (null !== oppositeCoord) {\r\n return \"break\"\r\n }\r\n };\r\n for (var i = 0; i < nearestPoints.length; i++) {\r\n var _ret = _loop(i);\r\n if (\"break\" === _ret) {\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n },\r\n _getNearestPoints(point, nextPoint, bezierPoints) {\r\n var index = bezierPoints.indexOf(point);\r\n return [point, bezierPoints[index + 1], bezierPoints[index + 2], nextPoint]\r\n },\r\n _getBezierPoints() {\r\n return this._segments.length > 0 ? this._segments.reduce((a, seg) => a.concat(seg.line), []) : []\r\n }\r\n});\r\npolar.line = extend({}, polarScatterSeries, lineMethods, {\r\n _sortPoints: function(points) {\r\n return points\r\n },\r\n _prepareSegment: function(points, rotated, lastSegment) {\r\n var preparedPoints = [];\r\n var centerPoint = this.getValueAxis().getCenter();\r\n var i;\r\n lastSegment && this._closeSegment(points);\r\n if (this.argumentAxisType !== DISCRETE && this.valueAxisType !== DISCRETE) {\r\n for (i = 1; i < points.length; i++) {\r\n preparedPoints = preparedPoints.concat(this._getTangentPoints(points[i], points[i - 1], centerPoint))\r\n }\r\n if (!preparedPoints.length) {\r\n preparedPoints = points\r\n }\r\n } else {\r\n return lineSeries._prepareSegment.call(this, points)\r\n }\r\n return {\r\n line: preparedPoints\r\n }\r\n },\r\n _getRemainingAngle: function(angle) {\r\n var normAngle = normalizeAngle(angle);\r\n return angle >= 0 ? 360 - normAngle : -normAngle\r\n },\r\n _closeSegment(points) {\r\n var point;\r\n if (this._segments.length) {\r\n point = this._segments[0].line[0]\r\n } else {\r\n point = clonePoint(points[0], points[0].x, points[0].y, points[0].angle)\r\n }\r\n point = this._modifyReflectedPoint(point, points[points.length - 1]);\r\n if (point) {\r\n points.push(point)\r\n }\r\n },\r\n _modifyReflectedPoint(point, lastPoint) {\r\n if (lastPoint.angle === point.angle) {\r\n return\r\n }\r\n if (normalizeAngle(round(lastPoint.angle)) === normalizeAngle(round(point.angle))) {\r\n point.angle = lastPoint.angle\r\n } else {\r\n var differenceAngle = lastPoint.angle - point.angle;\r\n point.angle = lastPoint.angle + this._getRemainingAngle(differenceAngle)\r\n }\r\n return point\r\n },\r\n _getTangentPoints: function(point, prevPoint, centerPoint) {\r\n var tangentPoints = [];\r\n var betweenAngle = Math.round(prevPoint.angle - point.angle);\r\n var tan = (prevPoint.radius - point.radius) / betweenAngle;\r\n var i;\r\n if (0 === betweenAngle) {\r\n tangentPoints = [prevPoint, point]\r\n } else if (betweenAngle > 0) {\r\n for (i = betweenAngle; i >= 0; i--) {\r\n tangentPoints.push(getTangentPoint(point, prevPoint, centerPoint, tan, i))\r\n }\r\n } else {\r\n for (i = 0; i >= betweenAngle; i--) {\r\n tangentPoints.push(getTangentPoint(point, prevPoint, centerPoint, tan, betweenAngle - i))\r\n }\r\n }\r\n return tangentPoints\r\n },\r\n getSeriesPairCoord(params, isArgument) {\r\n var argAxis = this.getArgumentAxis();\r\n var paramName = isArgument ? \"angle\" : \"radius\";\r\n var coordParam = params[paramName];\r\n var centerPoint = argAxis.getCenter();\r\n var isInsideInterval = (prevPoint, point, _ref) => {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n return (p1 = {\r\n x: x,\r\n y: y\r\n }, p2 = centerPoint, sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2))) <= argAxis.getRadius() && min(prevPoint.x, point.x) <= x && max(prevPoint.x, point.x) >= x && min(prevPoint.y, point.y) <= y && max(prevPoint.y, point.y) >= y;\r\n var p1, p2\r\n };\r\n var coords;\r\n var neighborPoints = this.getNeighborPoints(coordParam, paramName);\r\n if (1 === neighborPoints.length) {\r\n coords = neighborPoints[0]\r\n } else if (neighborPoints.length > 1) {\r\n var prevPoint = neighborPoints[0];\r\n var point = neighborPoints[1];\r\n if (this.argumentAxisType !== DISCRETE && this.valueAxisType !== DISCRETE) {\r\n var tan;\r\n var stepAngle;\r\n if (isArgument) {\r\n tan = (prevPoint.radius - point.radius) / (prevPoint.angle - point.angle);\r\n stepAngle = coordParam - point.angle\r\n } else {\r\n tan = (prevPoint.radius - point.radius) / (prevPoint.angle - point.angle);\r\n stepAngle = (coordParam - point.radius) / tan\r\n }\r\n coords = getTangentPoint(point, prevPoint, centerPoint, tan, stepAngle)\r\n } else if (isArgument) {\r\n var cosSin = getCosAndSin(-coordParam);\r\n var k1 = (point.y - prevPoint.y) / (point.x - prevPoint.x);\r\n var b1 = prevPoint.y - prevPoint.x * k1;\r\n var k2 = cosSin.sin / cosSin.cos;\r\n var b2 = centerPoint.y - k2 * centerPoint.x;\r\n var x = (b2 - b1) / (k1 - k2);\r\n var y = k1 * x + b1;\r\n if (isInsideInterval(prevPoint, point, {\r\n x: x,\r\n y: y\r\n })) {\r\n var quarter = abs(trunc((360 + coordParam) / 90) % 4);\r\n if (0 === quarter && x >= centerPoint.x && y <= centerPoint.y || 1 === quarter && x <= centerPoint.x && y <= centerPoint.y || 2 === quarter && x <= centerPoint.x && y >= centerPoint.y || 3 === quarter && x >= centerPoint.x && y >= centerPoint.y) {\r\n coords = {\r\n x: x,\r\n y: y\r\n }\r\n }\r\n }\r\n } else {\r\n var k = (point.y - prevPoint.y) / (point.x - prevPoint.x);\r\n var y0 = prevPoint.y - prevPoint.x * k;\r\n var a = 1 + k * k;\r\n var b = -2 * centerPoint.x + 2 * k * y0 - 2 * k * centerPoint.y;\r\n var c = -pow(coordParam, 2) + pow(y0 - centerPoint.y, 2) + pow(centerPoint.x, 2);\r\n var d = b * b - 4 * a * c;\r\n if (d >= 0) {\r\n var x1 = (-b - sqrt(d)) / (2 * a);\r\n var x2 = (-b + sqrt(d)) / (2 * a);\r\n var y1 = k * x1 + y0;\r\n var y2 = k * x2 + y0;\r\n coords = isInsideInterval(prevPoint, point, {\r\n x: x1,\r\n y: y1\r\n }) ? {\r\n x: x1,\r\n y: y1\r\n } : isInsideInterval(prevPoint, point, {\r\n x: x2,\r\n y: y2\r\n }) ? {\r\n x: x2,\r\n y: y2\r\n } : void 0\r\n }\r\n }\r\n }\r\n return coords\r\n },\r\n getNeighborPoints(param, paramName) {\r\n var points = this.getPoints();\r\n var neighborPoints = [];\r\n if (this.getOptions().closed) {\r\n points = extend(true, [], points);\r\n var lastPoint = points[points.length - 1];\r\n var firstPointCopy = clonePoint(points[0], points[0].x, points[0].y, points[0].angle);\r\n var lastPointCopy = clonePoint(lastPoint, lastPoint.x, lastPoint.y, lastPoint.angle);\r\n var rearwardRefPoint = this._modifyReflectedPoint(firstPointCopy, lastPoint);\r\n var forwardRefPoint = this._modifyReflectedPoint(lastPointCopy, points[0]);\r\n if (forwardRefPoint) {\r\n points.unshift(forwardRefPoint)\r\n }\r\n if (rearwardRefPoint) {\r\n points.push(rearwardRefPoint)\r\n }\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n if (points[i - 1][paramName] === param) {\r\n neighborPoints.push(points[i - 1])\r\n } else if (points[i][paramName] === param) {\r\n neighborPoints.push(points[i])\r\n } else if (points[i][paramName] > param && points[i - 1][paramName] < param || points[i - 1][paramName] > param && points[i][paramName] < param) {\r\n neighborPoints.push(points[i - 1]);\r\n neighborPoints.push(points[i])\r\n }\r\n if (neighborPoints.length > 0) {\r\n break\r\n }\r\n }\r\n return neighborPoints\r\n }\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/area_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as lineSeriesChart,\r\n polar as lineSeriesPolar\r\n} from \"./line_series\";\r\nvar chartLineSeries = lineSeriesChart.line;\r\nvar polarLineSeries = lineSeriesPolar.line;\r\nimport {\r\n map as _map\r\n} from \"../core/utils\";\r\nvar _extend = extend;\r\nvar calculateBezierPoints = lineSeriesChart.spline._calculateBezierPoints;\r\nvar chart = {};\r\nvar polar = {};\r\nvar baseAreaMethods = {\r\n _createBorderElement: chartLineSeries._createMainElement,\r\n _createLegendState: function(styleOptions, defaultColor) {\r\n return {\r\n fill: styleOptions.color || defaultColor,\r\n opacity: styleOptions.opacity,\r\n hatching: styleOptions.hatching\r\n }\r\n },\r\n getValueRangeInitialValue: function() {\r\n if (\"logarithmic\" !== this.valueAxisType && \"datetime\" !== this.valueType && false !== this.showZero) {\r\n return 0\r\n } else {\r\n return scatterSeries.getValueRangeInitialValue.call(this)\r\n }\r\n },\r\n _getDefaultSegment: function(segment) {\r\n var defaultSegment = chartLineSeries._getDefaultSegment(segment);\r\n defaultSegment.area = defaultSegment.line.concat(defaultSegment.line.slice().reverse());\r\n return defaultSegment\r\n },\r\n _updateElement: function(element, segment, animate, complete) {\r\n var lineParams = {\r\n points: segment.line\r\n };\r\n var areaParams = {\r\n points: segment.area\r\n };\r\n var borderElement = element.line;\r\n if (animate) {\r\n borderElement && borderElement.animate(lineParams);\r\n element.area.animate(areaParams, {}, complete)\r\n } else {\r\n borderElement && borderElement.attr(lineParams);\r\n element.area.attr(areaParams)\r\n }\r\n },\r\n _removeElement: function(element) {\r\n element.line && element.line.remove();\r\n element.area.remove()\r\n },\r\n _drawElement: function(segment) {\r\n return {\r\n line: this._bordersGroup && this._createBorderElement(segment.line, {\r\n \"stroke-width\": this._styles.normal.border[\"stroke-width\"]\r\n }).append(this._bordersGroup),\r\n area: this._createMainElement(segment.area).append(this._elementsGroup)\r\n }\r\n },\r\n _applyStyle: function(style) {\r\n this._elementsGroup && this._elementsGroup.smartAttr(style.elements);\r\n this._bordersGroup && this._bordersGroup.attr(style.border);\r\n (this._graphics || []).forEach((function(graphic) {\r\n graphic.line && graphic.line.attr({\r\n \"stroke-width\": style.border[\"stroke-width\"]\r\n }).sharp()\r\n }))\r\n },\r\n _parseStyle: function(options, defaultColor, defaultBorderColor) {\r\n var borderOptions = options.border || {};\r\n var borderStyle = chartLineSeries._parseLineOptions(borderOptions, defaultBorderColor);\r\n borderStyle.stroke = borderOptions.visible && borderStyle[\"stroke-width\"] ? borderStyle.stroke : \"none\";\r\n borderStyle[\"stroke-width\"] = borderStyle[\"stroke-width\"] || 1;\r\n return {\r\n border: borderStyle,\r\n elements: {\r\n stroke: \"none\",\r\n fill: options.color || defaultColor,\r\n hatching: options.hatching,\r\n opacity: options.opacity\r\n }\r\n }\r\n },\r\n _areBordersVisible: function() {\r\n var options = this._options;\r\n return options.border.visible || options.hoverStyle.border.visible || options.selectionStyle.border.visible\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"area\").attr(settings)\r\n },\r\n _getTrackerSettings: function(segment) {\r\n return {\r\n \"stroke-width\": segment.singlePointSegment ? this._defaultTrackerWidth : 0\r\n }\r\n },\r\n _getMainPointsFromSegment: function(segment) {\r\n return segment.area\r\n }\r\n};\r\n\r\nfunction createAreaPoints(points) {\r\n return _map(points, (function(pt) {\r\n return pt.getCoords()\r\n })).concat(_map(points.slice().reverse(), (function(pt) {\r\n return pt.getCoords(true)\r\n })))\r\n}\r\nvar areaSeries = chart.area = _extend({}, chartLineSeries, baseAreaMethods, {\r\n _prepareSegment(points, rotated) {\r\n var processedPoints = this._processSinglePointsAreaSegment(points, rotated);\r\n var areaPoints = createAreaPoints(processedPoints);\r\n var argAxis = this.getArgumentAxis();\r\n if (argAxis.getAxisPosition) {\r\n var argAxisPosition = argAxis.getAxisPosition();\r\n var axisOptions = argAxis.getOptions();\r\n var edgeOffset = (!rotated ? -1 : 1) * Math.round(axisOptions.width / 2);\r\n if (axisOptions.visible) {\r\n areaPoints.forEach((p, i) => {\r\n if (p) {\r\n var index = 1 === points.length ? 0 : i < points.length ? i : areaPoints.length - 1 - i;\r\n rotated && p.x === points[index].defaultX && p.x === argAxisPosition - argAxis.getAxisShift() && (p.x += edgeOffset);\r\n !rotated && p.y === points[index].defaultY && p.y === argAxisPosition - argAxis.getAxisShift() && (p.y += edgeOffset)\r\n }\r\n })\r\n }\r\n }\r\n return {\r\n line: processedPoints,\r\n area: areaPoints,\r\n singlePointSegment: processedPoints !== points\r\n }\r\n },\r\n _processSinglePointsAreaSegment: function(points, rotated) {\r\n if (points && 1 === points.length) {\r\n var p = points[0];\r\n var p1 = clone(p);\r\n p1[rotated ? \"y\" : \"x\"] += 1;\r\n p1.argument = null;\r\n return [p, p1]\r\n }\r\n return points\r\n }\r\n});\r\npolar.area = _extend({}, polarLineSeries, baseAreaMethods, {\r\n _prepareSegment: function(points, rotated, lastSegment) {\r\n lastSegment && polarLineSeries._closeSegment.call(this, points);\r\n return areaSeries._prepareSegment.call(this, points)\r\n },\r\n _processSinglePointsAreaSegment: function(points) {\r\n return lineSeriesPolar.line._prepareSegment.call(this, points).line\r\n }\r\n});\r\nchart.steparea = _extend({}, areaSeries, {\r\n _prepareSegment: function(points, rotated) {\r\n var stepLineSeries = lineSeriesChart.stepline;\r\n points = areaSeries._processSinglePointsAreaSegment(points, rotated);\r\n return areaSeries._prepareSegment.call(this, stepLineSeries._calculateStepLinePoints.call(this, points), rotated)\r\n },\r\n getSeriesPairCoord: lineSeriesChart.stepline.getSeriesPairCoord\r\n});\r\nchart.splinearea = _extend({}, areaSeries, {\r\n _areaPointsToSplineAreaPoints: function(areaPoints) {\r\n var previousMiddlePoint = areaPoints[areaPoints.length / 2 - 1];\r\n var middlePoint = areaPoints[areaPoints.length / 2];\r\n areaPoints.splice(areaPoints.length / 2, 0, {\r\n x: previousMiddlePoint.x,\r\n y: previousMiddlePoint.y\r\n }, {\r\n x: middlePoint.x,\r\n y: middlePoint.y\r\n })\r\n },\r\n _prepareSegment: function(points, rotated) {\r\n var processedPoints = areaSeries._processSinglePointsAreaSegment(points, rotated);\r\n var areaSegment = areaSeries._prepareSegment.call(this, calculateBezierPoints(processedPoints, rotated));\r\n this._areaPointsToSplineAreaPoints(areaSegment.area);\r\n areaSegment.singlePointSegment = processedPoints !== points;\r\n return areaSegment\r\n },\r\n _getDefaultSegment: function(segment) {\r\n var areaDefaultSegment = areaSeries._getDefaultSegment(segment);\r\n this._areaPointsToSplineAreaPoints(areaDefaultSegment.area);\r\n return areaDefaultSegment\r\n },\r\n _createMainElement: function(points, settings) {\r\n return this._renderer.path(points, \"bezierarea\").attr(settings)\r\n },\r\n _createBorderElement: lineSeriesChart.spline._createMainElement,\r\n getSeriesPairCoord: lineSeriesChart.spline.getSeriesPairCoord,\r\n _getNearestPoints: lineSeriesChart.spline._getNearestPoints,\r\n _getBezierPoints: lineSeriesChart.spline._getBezierPoints,\r\n obtainCubicBezierTCoef: lineSeriesChart.spline.obtainCubicBezierTCoef\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/bar_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport * as scatterSeries from \"./scatter_series\";\r\nimport {\r\n chart as areaChart\r\n} from \"./area_series\";\r\nvar areaSeries = areaChart.area;\r\nimport {\r\n convertPolarToXY\r\n} from \"../core/utils\";\r\nvar chartSeries = scatterSeries.chart;\r\nvar polarSeries = scatterSeries.polar;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar chart = {};\r\nvar polar = {};\r\nvar baseBarSeriesMethods = {\r\n _createLegendState: function(styleOptions, defaultColor) {\r\n return {\r\n fill: styleOptions.color || defaultColor,\r\n hatching: styleOptions.hatching\r\n }\r\n },\r\n _parsePointStyle: function(style, defaultColor, defaultBorderColor) {\r\n var color = style.color || defaultColor;\r\n var base = chartSeries._parsePointStyle.call(this, style, color, defaultBorderColor);\r\n base.fill = color;\r\n base.hatching = style.hatching;\r\n base.dashStyle = style.border && style.border.dashStyle || \"solid\";\r\n delete base.r;\r\n return base\r\n },\r\n _applyMarkerClipRect: function(settings) {\r\n settings[\"clip-path\"] = null\r\n },\r\n _setGroupsSettings: function(animationEnabled, firstDrawing) {\r\n var that = this;\r\n var settings = {};\r\n chartSeries._setGroupsSettings.apply(that, arguments);\r\n if (animationEnabled && firstDrawing) {\r\n settings = this._getAffineCoordOptions()\r\n } else if (!animationEnabled) {\r\n settings = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n translateX: 0,\r\n translateY: 0\r\n }\r\n }\r\n that._markersGroup.attr(settings)\r\n },\r\n _drawPoint: function(options) {\r\n options.hasAnimation = options.hasAnimation && !options.firstDrawing;\r\n options.firstDrawing = false;\r\n chartSeries._drawPoint.call(this, options)\r\n },\r\n _getMainColor: function() {\r\n return this._options.mainSeriesColor\r\n },\r\n _createPointStyles: function(pointOptions) {\r\n var mainColor = pointOptions.color || this._getMainColor();\r\n return {\r\n normal: this._parsePointStyle(pointOptions, mainColor, mainColor),\r\n hover: this._parsePointStyle(pointOptions.hoverStyle || {}, mainColor, mainColor),\r\n selection: this._parsePointStyle(pointOptions.selectionStyle || {}, mainColor, mainColor)\r\n }\r\n },\r\n _updatePointsVisibility: function() {\r\n var visibility = this._options.visible;\r\n each(this._points, (function(_, point) {\r\n point._options.visible = visibility\r\n }))\r\n },\r\n _getOptionsForPoint: function() {\r\n return this._options\r\n },\r\n _animate: function(firstDrawing) {\r\n var that = this;\r\n that._animatePoints(firstDrawing, (function() {\r\n that._animateComplete()\r\n }), (function(drawnPoints, complete) {\r\n var lastPointIndex = drawnPoints.length - 1;\r\n _each(drawnPoints || [], (function(i, point) {\r\n point.animate(i === lastPointIndex ? complete : void 0, point.getMarkerCoords())\r\n }))\r\n }))\r\n },\r\n getValueRangeInitialValue: areaSeries.getValueRangeInitialValue,\r\n _patchMarginOptions: function(options) {\r\n var _this$getArgumentAxis;\r\n options.checkInterval = !this.useAggregation() || (null === (_this$getArgumentAxis = this.getArgumentAxis()) || void 0 === _this$getArgumentAxis ? void 0 : _this$getArgumentAxis.aggregatedPointBetweenTicks());\r\n return options\r\n },\r\n _defaultAggregator: \"sum\",\r\n _defineDrawingState() {},\r\n usePointsToDefineAutoHiding: () => false\r\n};\r\nchart.bar = _extend({}, chartSeries, baseBarSeriesMethods, {\r\n _getAffineCoordOptions: function() {\r\n var rotated = this._options.rotated;\r\n var direction = rotated ? \"X\" : \"Y\";\r\n var settings = {\r\n scaleX: rotated ? .001 : 1,\r\n scaleY: rotated ? 1 : .001\r\n };\r\n settings[\"translate\" + direction] = this.getValueAxis().getTranslator().translate(\"canvas_position_default\");\r\n return settings\r\n },\r\n _animatePoints: function(firstDrawing, complete, animateFunc) {\r\n this._markersGroup.animate({\r\n scaleX: 1,\r\n scaleY: 1,\r\n translateY: 0,\r\n translateX: 0\r\n }, void 0, complete);\r\n if (!firstDrawing) {\r\n animateFunc(this._drawnPoints, complete)\r\n }\r\n },\r\n checkSeriesViewportCoord(axis, coord) {\r\n if (!chartSeries.checkSeriesViewportCoord.call(this)) {\r\n return false\r\n }\r\n if (axis.isArgumentAxis) {\r\n return true\r\n }\r\n var translator = axis.getTranslator();\r\n var range = this.getViewport();\r\n var min = translator.translate(range.categories ? range.categories[0] : range.min);\r\n var max = translator.translate(range.categories ? range.categories[range.categories.length - 1] : range.max);\r\n var rotated = this.getOptions().rotated;\r\n var inverted = axis.getOptions().inverted;\r\n return rotated && !inverted || !rotated && inverted ? coord >= min && coord <= max : coord >= max && coord <= min\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var {\r\n rotated: rotated\r\n } = this._options;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = isOpposite ? \"vy\" : \"vx\";\r\n var oppositeCoordName = isOpposite ? \"vx\" : \"vy\";\r\n var points = this.getPoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = p.getCenterCoord()[coordName[1]] === coord ? p[oppositeCoordName] : void 0\r\n } else {\r\n tmpCoord = p[coordName] === coord ? p[oppositeCoordName] : void 0\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n});\r\npolar.bar = _extend({}, polarSeries, baseBarSeriesMethods, {\r\n _animatePoints: function(firstDrawing, complete, animateFunc) {\r\n animateFunc(this._drawnPoints, complete)\r\n },\r\n _setGroupsSettings: chartSeries._setGroupsSettings,\r\n _drawPoint: function(point, groups, animationEnabled) {\r\n chartSeries._drawPoint.call(this, point, groups, animationEnabled)\r\n },\r\n _parsePointStyle: function(style) {\r\n var base = baseBarSeriesMethods._parsePointStyle.apply(this, arguments);\r\n base.opacity = style.opacity;\r\n return base\r\n },\r\n _createGroups: chartSeries._createGroups,\r\n _setMarkerGroupSettings: function() {\r\n var markersSettings = this._createPointStyles(this._getMarkerGroupOptions()).normal;\r\n markersSettings.class = \"dxc-markers\";\r\n this._applyMarkerClipRect(markersSettings);\r\n var groupSettings = _extend({}, markersSettings);\r\n delete groupSettings.opacity;\r\n this._markersGroup.attr(groupSettings)\r\n },\r\n getSeriesPairCoord(params, isArgument) {\r\n var coords = null;\r\n var paramName = isArgument ? \"argument\" : \"radius\";\r\n var points = this.getVisiblePoints();\r\n var argAxis = this.getArgumentAxis();\r\n var startAngle = argAxis.getAngles()[0];\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpPoint = _isDefined(p[paramName]) && _isDefined(params[paramName]) && p[paramName].valueOf() === params[paramName].valueOf() ? convertPolarToXY(argAxis.getCenter(), startAngle, -argAxis.getTranslatedAngle(p.angle), p.radius) : void 0;\r\n if (_isDefined(tmpPoint)) {\r\n coords = tmpPoint;\r\n break\r\n }\r\n }\r\n return coords\r\n },\r\n _createLegendState: areaSeries._createLegendState\r\n});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/range_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar _extend = extend;\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map as _map\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as barChart\r\n} from \"./bar_series\";\r\nimport {\r\n chart as areaChart\r\n} from \"./area_series\";\r\nvar barSeries = barChart.bar;\r\nvar areaSeries = areaChart.area;\r\nvar chart = {};\r\nvar baseRangeSeries = {\r\n areErrorBarsVisible: _noop,\r\n _createErrorBarGroup: _noop,\r\n _checkData: function(data, skippedFields) {\r\n var valueFields = this.getValueFields();\r\n return scatterSeries._checkData.call(this, data, skippedFields, {\r\n minValue: valueFields[0],\r\n value: valueFields[1]\r\n }) && data.minValue === data.minValue\r\n },\r\n getValueRangeInitialValue: scatterSeries.getValueRangeInitialValue,\r\n _getPointDataSelector: function(data) {\r\n var valueFields = this.getValueFields();\r\n var val1Field = valueFields[0];\r\n var val2Field = valueFields[1];\r\n var tagField = this.getTagField();\r\n var argumentField = this.getArgumentField();\r\n return data => ({\r\n tag: data[tagField],\r\n minValue: this._processEmptyValue(data[val1Field]),\r\n value: this._processEmptyValue(data[val2Field]),\r\n argument: data[argumentField],\r\n data: data\r\n })\r\n },\r\n _defaultAggregator: \"range\",\r\n _aggregators: {\r\n range(_ref, series) {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueFields = series.getValueFields();\r\n var val1Field = valueFields[0];\r\n var val2Field = valueFields[1];\r\n var result = data.reduce((result, item) => {\r\n var val1 = item[val1Field];\r\n var val2 = item[val2Field];\r\n if (!_isDefined(val1) || !_isDefined(val2)) {\r\n return result\r\n }\r\n result[val1Field] = Math.min(result[val1Field], Math.min(val1, val2));\r\n result[val2Field] = Math.max(result[val2Field], Math.max(val1, val2));\r\n return result\r\n }, {\r\n [val1Field]: 1 / 0,\r\n [val2Field]: -1 / 0,\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n });\r\n if (!isFinite(result[val1Field]) || !isFinite(result[val2Field])) {\r\n if (data.filter(i => null === i[val1Field] && null === i[val2Field]).length === data.length) {\r\n result[val1Field] = result[val2Field] = null\r\n } else {\r\n return\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n getValueFields: function() {\r\n return [this._options.rangeValue1Field || \"val1\", this._options.rangeValue2Field || \"val2\"]\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var {\r\n rotated: rotated\r\n } = this._options;\r\n var isOpposite = !isArgument && !rotated || isArgument && rotated;\r\n var coordName = isOpposite ? \"vy\" : \"vx\";\r\n var minCoordName = rotated ? \"minX\" : \"minY\";\r\n var oppositeCoordName = isOpposite ? \"vx\" : \"vy\";\r\n var points = this.getPoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = p.getCenterCoord()[coordName[1]] === coord ? p[oppositeCoordName] : void 0\r\n } else {\r\n var coords = [Math.min(p[coordName], p[minCoordName]), Math.max(p[coordName], p[minCoordName])];\r\n tmpCoord = coord >= coords[0] && coord <= coords[1] ? p[oppositeCoordName] : void 0\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n }\r\n};\r\nchart.rangebar = _extend({}, barSeries, baseRangeSeries);\r\nchart.rangearea = _extend({}, areaSeries, {\r\n _drawPoint: function(options) {\r\n var point = options.point;\r\n if (point.isInVisibleArea()) {\r\n point.clearVisibility();\r\n point.draw(this._renderer, options.groups);\r\n this._drawnPoints.push(point);\r\n if (!point.visibleTopMarker) {\r\n point.hideMarker(\"top\")\r\n }\r\n if (!point.visibleBottomMarker) {\r\n point.hideMarker(\"bottom\")\r\n }\r\n } else {\r\n point.setInvisibility()\r\n }\r\n },\r\n _prepareSegment: function(points, rotated) {\r\n var processedPoints = this._processSinglePointsAreaSegment(points, rotated);\r\n var processedMinPointsCoords = _map(processedPoints, (function(pt) {\r\n return pt.getCoords(true)\r\n }));\r\n return {\r\n line: processedPoints,\r\n bottomLine: processedMinPointsCoords,\r\n area: _map(processedPoints, (function(pt) {\r\n return pt.getCoords()\r\n })).concat(processedMinPointsCoords.slice().reverse()),\r\n singlePointSegment: processedPoints !== points\r\n }\r\n },\r\n _getDefaultSegment: function(segment) {\r\n var defaultSegment = areaSeries._getDefaultSegment.call(this, segment);\r\n defaultSegment.bottomLine = defaultSegment.line;\r\n return defaultSegment\r\n },\r\n _removeElement: function(element) {\r\n areaSeries._removeElement.call(this, element);\r\n element.bottomLine && element.bottomLine.remove()\r\n },\r\n _drawElement: function(segment, group) {\r\n var drawnElement = areaSeries._drawElement.call(this, segment, group);\r\n drawnElement.bottomLine = this._bordersGroup && this._createBorderElement(segment.bottomLine, {\r\n \"stroke-width\": this._styles.normal.border[\"stroke-width\"]\r\n }).append(this._bordersGroup);\r\n return drawnElement\r\n },\r\n _applyStyle: function(style) {\r\n var elementsGroup = this._elementsGroup;\r\n var bordersGroup = this._bordersGroup;\r\n elementsGroup && elementsGroup.smartAttr(style.elements);\r\n bordersGroup && bordersGroup.attr(style.border);\r\n (this._graphics || []).forEach((function(graphic) {\r\n graphic.line && graphic.line.attr({\r\n \"stroke-width\": style.border[\"stroke-width\"]\r\n });\r\n graphic.bottomLine && graphic.bottomLine.attr({\r\n \"stroke-width\": style.border[\"stroke-width\"]\r\n })\r\n }))\r\n },\r\n _updateElement: function(element, segment, animate, complete) {\r\n var bottomLineParams = {\r\n points: segment.bottomLine\r\n };\r\n var bottomBorderElement = element.bottomLine;\r\n areaSeries._updateElement.apply(this, arguments);\r\n if (bottomBorderElement) {\r\n animate ? bottomBorderElement.animate(bottomLineParams) : bottomBorderElement.attr(bottomLineParams)\r\n }\r\n }\r\n}, baseRangeSeries);\r\nexport {\r\n chart\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/bubble_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n chart as lineChart\r\n} from \"./line_series\";\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as areaChart\r\n} from \"./area_series\";\r\nimport {\r\n chart as barChart,\r\n polar as barPolar\r\n} from \"./bar_series\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar lineSeries = lineChart.line;\r\nvar areaSeries = areaChart.area;\r\nvar chartBarSeries = barChart.bar;\r\nvar polarBarSeries = barPolar.bar;\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar _noop = noop;\r\nvar chart = {};\r\nchart.bubble = _extend({}, scatterSeries, {\r\n _calculateErrorBars: _noop,\r\n _getMainColor: chartBarSeries._getMainColor,\r\n _createPointStyles: chartBarSeries._createPointStyles,\r\n _updatePointsVisibility: chartBarSeries._updatePointsVisibility,\r\n _getOptionsForPoint: chartBarSeries._getOptionsForPoint,\r\n _applyMarkerClipRect: lineSeries._applyElementsClipRect,\r\n _parsePointStyle: polarBarSeries._parsePointStyle,\r\n _createLegendState: areaSeries._createLegendState,\r\n _setMarkerGroupSettings: polarBarSeries._setMarkerGroupSettings,\r\n areErrorBarsVisible: _noop,\r\n _createErrorBarGroup: _noop,\r\n _checkData: function(data, skippedFields) {\r\n return scatterSeries._checkData.call(this, data, skippedFields, {\r\n value: this.getValueFields()[0],\r\n size: this.getSizeField()\r\n })\r\n },\r\n _getPointDataSelector: function(data, options) {\r\n var sizeField = this.getSizeField();\r\n var baseGetter = scatterSeries._getPointDataSelector.call(this);\r\n return data => {\r\n var pointData = baseGetter(data);\r\n pointData.size = data[sizeField];\r\n return pointData\r\n }\r\n },\r\n _aggregators: {\r\n avg(_ref, series) {\r\n var {\r\n data: data,\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd\r\n } = _ref;\r\n if (!data.length) {\r\n return\r\n }\r\n var valueField = series.getValueFields()[0];\r\n var sizeField = series.getSizeField();\r\n var aggregate = data.reduce((result, item) => {\r\n result[0] += item[valueField];\r\n result[1] += item[sizeField];\r\n result[2]++;\r\n return result\r\n }, [0, 0, 0]);\r\n return {\r\n [valueField]: aggregate[0] / aggregate[2],\r\n [sizeField]: aggregate[1] / aggregate[2],\r\n [series.getArgumentField()]: series._getIntervalCenter(intervalStart, intervalEnd)\r\n }\r\n }\r\n },\r\n getValueFields: function() {\r\n return [this._options.valueField || \"val\"]\r\n },\r\n getSizeField: function() {\r\n return this._options.sizeField || \"size\"\r\n },\r\n _animate: function() {\r\n var that = this;\r\n var lastPointIndex = that._drawnPoints.length - 1;\r\n var labelsGroup = that._labelsGroup;\r\n var labelAnimFunc = function() {\r\n labelsGroup && labelsGroup.animate({\r\n opacity: 1\r\n }, {\r\n duration: that._defaultDuration\r\n })\r\n };\r\n _each(that._drawnPoints || [], (function(i, p) {\r\n p.animate(i === lastPointIndex ? labelAnimFunc : void 0, {\r\n r: p.bubbleSize,\r\n translateX: p.x,\r\n translateY: p.y\r\n })\r\n }))\r\n },\r\n _patchMarginOptions: function(options) {\r\n options.processBubbleSize = true;\r\n return options\r\n }\r\n});\r\nexport {\r\n chart\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/pie_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n chart\r\n} from \"./scatter_series\";\r\nimport {\r\n normalizeAngle,\r\n map\r\n} from \"../core/utils\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n chart as barChart\r\n} from \"./bar_series\";\r\nvar chartScatterSeries = chart;\r\nvar barSeries = barChart.bar;\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar _noop = noop;\r\nvar _map = map;\r\nvar _isFinite = isFinite;\r\nvar _max = Math.max;\r\nvar ANIMATION_DURATION = .7;\r\nvar INSIDE = \"inside\";\r\nexport var pie = _extend({}, barSeries, {\r\n _setGroupsSettings: function() {\r\n chartScatterSeries._setGroupsSettings.apply(this, arguments);\r\n this._labelsGroup.attr({\r\n \"pointer-events\": null\r\n })\r\n },\r\n _createErrorBarGroup: _noop,\r\n _drawPoint: function(options) {\r\n var point = options.point;\r\n var legendCallback = this._legendCallback;\r\n chartScatterSeries._drawPoint.call(this, options);\r\n !point.isVisible() && point.setInvisibility();\r\n point.isSelected() && legendCallback()\r\n },\r\n _getOldPoint: function(data, oldPointsByArgument, index) {\r\n var point = (this._points || [])[index];\r\n if (point) {\r\n oldPointsByArgument[point.argument.valueOf()] = oldPointsByArgument[point.argument.valueOf()].filter(p => p !== point)\r\n }\r\n return point\r\n },\r\n adjustLabels: function(moveLabelsFromCenter) {\r\n return (this._points || []).reduce((r, p) => {\r\n if (p._label.isVisible()) {\r\n p.setLabelTrackerData();\r\n r = p.applyWordWrap(moveLabelsFromCenter) || r;\r\n p.updateLabelCoord(moveLabelsFromCenter);\r\n return r\r\n }\r\n }, false)\r\n },\r\n _applyElementsClipRect: _noop,\r\n getColor: _noop,\r\n areErrorBarsVisible: _noop,\r\n drawLabelsWOPoints: function() {\r\n if (this._options.label.position === INSIDE) {\r\n return false\r\n }\r\n this._labelsGroup.append(this._extGroups.labelsGroup);\r\n (this._points || []).forEach((function(point) {\r\n point.drawLabel()\r\n }));\r\n return true\r\n },\r\n getPointsCount: function() {\r\n return this._data.filter(d => this._checkData(d)).length\r\n },\r\n setMaxPointsCount: function(count) {\r\n this._pointsCount = count\r\n },\r\n _getCreatingPointOptions: function(data, dataIndex) {\r\n return this._getPointOptions(data, dataIndex)\r\n },\r\n _updateOptions: function(options) {\r\n this.labelSpace = 0;\r\n this.innerRadius = \"pie\" === this.type ? 0 : options.innerRadius\r\n },\r\n _checkData: function(data, skippedFields) {\r\n var base = barSeries._checkData.call(this, data, skippedFields, {\r\n value: this.getValueFields()[0]\r\n });\r\n return this._options.paintNullPoints ? base : base && null !== data.value\r\n },\r\n _createGroups: chartScatterSeries._createGroups,\r\n _setMarkerGroupSettings: function() {\r\n this._markersGroup.attr({\r\n class: \"dxc-markers\"\r\n })\r\n },\r\n _getMainColor(data, point) {\r\n var pointsByArg = this.getPointsByArg(data.argument);\r\n var argumentIndex = point ? pointsByArg.indexOf(point) : pointsByArg.length;\r\n return this._options.mainSeriesColor(data.argument, argumentIndex, this._pointsCount)\r\n },\r\n _getPointOptions: function(data) {\r\n return this._parsePointOptions(this._preparePointOptions(), this._options.label, data)\r\n },\r\n _getRangeData: function() {\r\n return this._rangeData\r\n },\r\n _createPointStyles: function(pointOptions, data, point) {\r\n var mainColor = pointOptions.color || this._getMainColor(data, point);\r\n return {\r\n normal: this._parsePointStyle(pointOptions, mainColor, mainColor),\r\n hover: this._parsePointStyle(pointOptions.hoverStyle, mainColor, mainColor),\r\n selection: this._parsePointStyle(pointOptions.selectionStyle, mainColor, mainColor),\r\n legendStyles: {\r\n normal: this._createLegendState(pointOptions, mainColor),\r\n hover: this._createLegendState(pointOptions.hoverStyle, mainColor),\r\n selection: this._createLegendState(pointOptions.selectionStyle, mainColor)\r\n }\r\n }\r\n },\r\n _getArrangeMinShownValue: function(points, total) {\r\n var minSegmentSize = this._options.minSegmentSize;\r\n var totalMinSegmentSize = 0;\r\n var totalNotMinValues = 0;\r\n total = total || points.length;\r\n _each(points, (function(_, point) {\r\n if (point.isVisible()) {\r\n if (point.normalInitialValue < minSegmentSize * total / 360) {\r\n totalMinSegmentSize += minSegmentSize\r\n } else {\r\n totalNotMinValues += point.normalInitialValue\r\n }\r\n }\r\n }));\r\n return totalMinSegmentSize < 360 ? minSegmentSize * totalNotMinValues / (360 - totalMinSegmentSize) : 0\r\n },\r\n _applyArrangeCorrection: function(points, minShownValue, total) {\r\n var options = this._options;\r\n var isClockWise = \"anticlockwise\" !== options.segmentsDirection;\r\n var shiftedAngle = _isFinite(options.startAngle) ? normalizeAngle(options.startAngle) : 0;\r\n var minSegmentSize = options.minSegmentSize;\r\n var percent;\r\n var correction = 0;\r\n var zeroTotalCorrection = 0;\r\n if (0 === total) {\r\n total = points.filter((function(el) {\r\n return el.isVisible()\r\n })).length;\r\n zeroTotalCorrection = 1\r\n }\r\n _each(isClockWise ? points : points.concat([]).reverse(), (function(_, point) {\r\n var val = point.isVisible() ? zeroTotalCorrection || point.normalInitialValue : 0;\r\n var updatedZeroValue;\r\n if (minSegmentSize && point.isVisible() && val < minShownValue) {\r\n updatedZeroValue = minShownValue\r\n }\r\n percent = val / total;\r\n point.correctValue(correction, percent, zeroTotalCorrection + (updatedZeroValue || 0));\r\n point.shiftedAngle = shiftedAngle;\r\n correction += updatedZeroValue || val\r\n }));\r\n this._rangeData = {\r\n val: {\r\n min: 0,\r\n max: correction\r\n }\r\n }\r\n },\r\n _removePoint: function(point) {\r\n var points = this.getPointsByArg(point.argument);\r\n points.splice(points.indexOf(point), 1);\r\n point.dispose()\r\n },\r\n arrangePoints: function() {\r\n var that = this;\r\n var originalPoints = that._points || [];\r\n var minSegmentSize = that._options.minSegmentSize;\r\n var minShownValue;\r\n var isAllPointsNegative = true;\r\n var i = 0;\r\n var len = originalPoints.length;\r\n while (i < len && isAllPointsNegative) {\r\n isAllPointsNegative = originalPoints[i].value <= 0;\r\n i++\r\n }\r\n var points = that._points = _map(originalPoints, (function(point) {\r\n if (null === point.value || !isAllPointsNegative && point.value < 0) {\r\n that._removePoint(point);\r\n return null\r\n } else {\r\n return point\r\n }\r\n }));\r\n var maxValue = points.reduce((function(max, p) {\r\n return _max(max, Math.abs(p.initialValue))\r\n }), 0);\r\n points.forEach((function(p) {\r\n p.normalInitialValue = p.initialValue / (0 !== maxValue ? maxValue : 1)\r\n }));\r\n var total = points.reduce((function(total, point) {\r\n return total + (point.isVisible() ? point.normalInitialValue : 0)\r\n }), 0);\r\n if (minSegmentSize) {\r\n minShownValue = this._getArrangeMinShownValue(points, total)\r\n }\r\n that._applyArrangeCorrection(points, minShownValue, total)\r\n },\r\n correctPosition: function(correction, canvas) {\r\n _each(this._points, (function(_, point) {\r\n point.correctPosition(correction)\r\n }));\r\n this.setVisibleArea(canvas)\r\n },\r\n correctRadius: function(correction) {\r\n this._points.forEach((function(point) {\r\n point.correctRadius(correction)\r\n }))\r\n },\r\n correctLabelRadius: function(labelRadius) {\r\n this._points.forEach((function(point) {\r\n point.correctLabelRadius(labelRadius)\r\n }))\r\n },\r\n setVisibleArea: function(canvas) {\r\n this._visibleArea = {\r\n minX: canvas.left,\r\n maxX: canvas.width - canvas.right,\r\n minY: canvas.top,\r\n maxY: canvas.height - canvas.bottom\r\n }\r\n },\r\n _applyVisibleArea: _noop,\r\n _animate: function(firstDrawing) {\r\n var that = this;\r\n var points = that._points;\r\n var pointsCount = points && points.length;\r\n var completeFunc = function() {\r\n that._animateComplete()\r\n };\r\n var animatePoint;\r\n if (firstDrawing) {\r\n animatePoint = function(p, i) {\r\n p.animate(i === pointsCount - 1 ? completeFunc : void 0, ANIMATION_DURATION, (1 - ANIMATION_DURATION) * i / (pointsCount - 1))\r\n }\r\n } else {\r\n animatePoint = function(p, i) {\r\n p.animate(i === pointsCount - 1 ? completeFunc : void 0)\r\n }\r\n }\r\n points.forEach(animatePoint)\r\n },\r\n getVisiblePoints: function() {\r\n return _map(this._points, (function(p) {\r\n return p.isVisible() ? p : null\r\n }))\r\n },\r\n getPointsByKeys: function(arg, argumentIndex) {\r\n var pointsByArg = this.getPointsByArg(arg);\r\n return pointsByArg[argumentIndex] && [pointsByArg[argumentIndex]] || []\r\n }\r\n});\r\nexport var doughnut = pie;\r\nexport var donut = pie;\r\n","/**\r\n * DevExtreme (esm/viz/series/financial_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n chart as scatterSeries\r\n} from \"./scatter_series\";\r\nimport {\r\n chart as barChart\r\n} from \"./bar_series\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined as _isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nvar barSeries = barChart.bar;\r\nvar DEFAULT_FINANCIAL_POINT_SIZE = 10;\r\nexport var stock = _extend({}, scatterSeries, {\r\n _animate: _noop,\r\n _applyMarkerClipRect: function(settings) {\r\n settings[\"clip-path\"] = this._forceClipping ? this._paneClipRectID : this._widePaneClipRectID\r\n },\r\n _updatePointsVisibility: barSeries._updatePointsVisibility,\r\n _getOptionsForPoint: barSeries._getOptionsForPoint,\r\n _createErrorBarGroup: _noop,\r\n areErrorBarsVisible: _noop,\r\n _createGroups: scatterSeries._createGroups,\r\n _setMarkerGroupSettings: function() {\r\n var markersGroup = this._markersGroup;\r\n var styles = this._createPointStyles(this._getMarkerGroupOptions());\r\n var defaultStyle = _extend(styles.normal, {\r\n class: \"default-markers\"\r\n });\r\n var defaultPositiveStyle = _extend(styles.positive.normal, {\r\n class: \"default-positive-markers\"\r\n });\r\n var reductionStyle = _extend(styles.reduction.normal, {\r\n class: \"reduction-markers\"\r\n });\r\n var reductionPositiveStyle = _extend(styles.reductionPositive.normal, {\r\n class: \"reduction-positive-markers\"\r\n });\r\n var markerSettings = {\r\n class: \"dxc-markers\"\r\n };\r\n this._applyMarkerClipRect(markerSettings);\r\n markersGroup.attr(markerSettings);\r\n this._createGroup(\"defaultMarkersGroup\", markersGroup, markersGroup, defaultStyle);\r\n this._createGroup(\"reductionMarkersGroup\", markersGroup, markersGroup, reductionStyle);\r\n this._createGroup(\"defaultPositiveMarkersGroup\", markersGroup, markersGroup, defaultPositiveStyle);\r\n this._createGroup(\"reductionPositiveMarkersGroup\", markersGroup, markersGroup, reductionPositiveStyle)\r\n },\r\n _setGroupsSettings: function() {\r\n scatterSeries._setGroupsSettings.call(this, false)\r\n },\r\n _getCreatingPointOptions: function() {\r\n var defaultPointOptions;\r\n var creatingPointOptions = this._predefinedPointOptions;\r\n if (!creatingPointOptions) {\r\n defaultPointOptions = this._getPointOptions();\r\n this._predefinedPointOptions = creatingPointOptions = _extend(true, {\r\n styles: {}\r\n }, defaultPointOptions);\r\n creatingPointOptions.styles.normal = creatingPointOptions.styles.positive.normal = creatingPointOptions.styles.reduction.normal = creatingPointOptions.styles.reductionPositive.normal = {\r\n \"stroke-width\": defaultPointOptions.styles && defaultPointOptions.styles.normal && defaultPointOptions.styles.normal[\"stroke-width\"]\r\n }\r\n }\r\n return creatingPointOptions\r\n },\r\n _checkData: function(data, skippedFields) {\r\n var valueFields = this.getValueFields();\r\n return scatterSeries._checkData.call(this, data, skippedFields, {\r\n openValue: valueFields[0],\r\n highValue: valueFields[1],\r\n lowValue: valueFields[2],\r\n closeValue: valueFields[3]\r\n }) && data.highValue === data.highValue && data.lowValue === data.lowValue\r\n },\r\n _getPointDataSelector: function(data, options) {\r\n var that = this;\r\n var level;\r\n var valueFields = that.getValueFields();\r\n var argumentField = that.getArgumentField();\r\n var openValueField = valueFields[0];\r\n var highValueField = valueFields[1];\r\n var lowValueField = valueFields[2];\r\n var closeValueField = valueFields[3];\r\n that.level = that._options.reduction.level;\r\n switch (_normalizeEnum(that.level)) {\r\n case \"open\":\r\n level = openValueField;\r\n break;\r\n case \"high\":\r\n level = highValueField;\r\n break;\r\n case \"low\":\r\n level = lowValueField;\r\n break;\r\n default:\r\n level = closeValueField;\r\n that.level = \"close\"\r\n }\r\n var prevLevelValue;\r\n return data => {\r\n var reductionValue = data[level];\r\n var isReduction = false;\r\n if (_isDefined(reductionValue)) {\r\n if (_isDefined(prevLevelValue)) {\r\n isReduction = reductionValue < prevLevelValue\r\n }\r\n prevLevelValue = reductionValue\r\n }\r\n return {\r\n argument: data[argumentField],\r\n highValue: this._processEmptyValue(data[highValueField]),\r\n lowValue: this._processEmptyValue(data[lowValueField]),\r\n closeValue: this._processEmptyValue(data[closeValueField]),\r\n openValue: this._processEmptyValue(data[openValueField]),\r\n reductionValue: reductionValue,\r\n tag: data[that.getTagField()],\r\n isReduction: isReduction,\r\n data: data\r\n }\r\n }\r\n },\r\n _parsePointStyle: function(style, defaultColor, innerColor) {\r\n return {\r\n stroke: style.color || defaultColor,\r\n \"stroke-width\": style.width,\r\n fill: style.color || innerColor\r\n }\r\n },\r\n _getDefaultStyle: function(options) {\r\n var mainPointColor = options.color || this._options.mainSeriesColor;\r\n return {\r\n normal: this._parsePointStyle(options, mainPointColor, mainPointColor),\r\n hover: this._parsePointStyle(options.hoverStyle, mainPointColor, mainPointColor),\r\n selection: this._parsePointStyle(options.selectionStyle, mainPointColor, mainPointColor)\r\n }\r\n },\r\n _getReductionStyle: function(options) {\r\n var reductionColor = options.reduction.color;\r\n return {\r\n normal: this._parsePointStyle({\r\n color: reductionColor,\r\n width: options.width,\r\n hatching: options.hatching\r\n }, reductionColor, reductionColor),\r\n hover: this._parsePointStyle(options.hoverStyle, reductionColor, reductionColor),\r\n selection: this._parsePointStyle(options.selectionStyle, reductionColor, reductionColor)\r\n }\r\n },\r\n _createPointStyles: function(pointOptions) {\r\n var innerColor = this._options.innerColor;\r\n var styles = this._getDefaultStyle(pointOptions);\r\n var positiveStyle = _extend(true, {}, styles);\r\n var reductionStyle = this._getReductionStyle(pointOptions);\r\n var reductionPositiveStyle = _extend(true, {}, reductionStyle);\r\n positiveStyle.normal.fill = positiveStyle.hover.fill = positiveStyle.selection.fill = innerColor;\r\n reductionPositiveStyle.normal.fill = reductionPositiveStyle.hover.fill = reductionPositiveStyle.selection.fill = innerColor;\r\n styles.positive = positiveStyle;\r\n styles.reduction = reductionStyle;\r\n styles.reductionPositive = reductionPositiveStyle;\r\n return styles\r\n },\r\n _endUpdateData: function() {\r\n delete this._predefinedPointOptions\r\n },\r\n _defaultAggregator: \"ohlc\",\r\n _aggregators: {\r\n ohlc: (_ref, series) => {\r\n var {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n data: data\r\n } = _ref;\r\n if (!data.length) {\r\n return\r\n }\r\n var result = {};\r\n var valueFields = series.getValueFields();\r\n var highValueField = valueFields[1];\r\n var lowValueField = valueFields[2];\r\n result[highValueField] = -1 / 0;\r\n result[lowValueField] = 1 / 0;\r\n result = data.reduce((function(result, item) {\r\n if (null !== item[highValueField]) {\r\n result[highValueField] = Math.max(result[highValueField], item[highValueField])\r\n }\r\n if (null !== item[lowValueField]) {\r\n result[lowValueField] = Math.min(result[lowValueField], item[lowValueField])\r\n }\r\n return result\r\n }), result);\r\n result[valueFields[0]] = data[0][valueFields[0]];\r\n result[valueFields[3]] = data[data.length - 1][valueFields[3]];\r\n if (!isFinite(result[highValueField])) {\r\n result[highValueField] = null\r\n }\r\n if (!isFinite(result[lowValueField])) {\r\n result[lowValueField] = null\r\n }\r\n result[series.getArgumentField()] = series._getIntervalCenter(intervalStart, intervalEnd);\r\n return result\r\n }\r\n },\r\n getValueFields: function() {\r\n var options = this._options;\r\n return [options.openValueField || \"open\", options.highValueField || \"high\", options.lowValueField || \"low\", options.closeValueField || \"close\"]\r\n },\r\n getArgumentField: function() {\r\n return this._options.argumentField || \"date\"\r\n },\r\n _patchMarginOptions: function(options) {\r\n var pointOptions = this._getCreatingPointOptions();\r\n var styles = pointOptions.styles;\r\n var border = [styles.normal, styles.hover, styles.selection].reduce((function(max, style) {\r\n return Math.max(max, style[\"stroke-width\"])\r\n }), 0);\r\n options.size = DEFAULT_FINANCIAL_POINT_SIZE + border;\r\n options.sizePointNormalState = DEFAULT_FINANCIAL_POINT_SIZE;\r\n return options\r\n },\r\n getSeriesPairCoord(coord, isArgument) {\r\n var oppositeCoord = null;\r\n var points = this.getVisiblePoints();\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var tmpCoord = void 0;\r\n if (isArgument) {\r\n tmpCoord = p.vx === coord ? (p.openY + p.closeY) / 2 : void 0\r\n } else {\r\n var coords = [Math.min(p.lowY, p.highY), Math.max(p.lowY, p.highY)];\r\n tmpCoord = coord >= coords[0] && coord <= coords[1] ? p.vx : void 0\r\n }\r\n if (this._checkAxisVisibleAreaCoord(!isArgument, tmpCoord)) {\r\n oppositeCoord = tmpCoord;\r\n break\r\n }\r\n }\r\n return oppositeCoord\r\n },\r\n usePointsToDefineAutoHiding: () => false\r\n});\r\nexport var candlestick = _extend({}, stock, {\r\n _parsePointStyle: function(style, defaultColor, innerColor) {\r\n var color = style.color || innerColor;\r\n var base = stock._parsePointStyle.call(this, style, defaultColor, color);\r\n base.fill = color;\r\n base.hatching = style.hatching;\r\n return base\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/series/stacked_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n chart as areaSeries\r\n} from \"./area_series\";\r\nvar chartAreaSeries = areaSeries.area;\r\nimport {\r\n chart as _chart,\r\n polar as _polar\r\n} from \"./bar_series\";\r\nvar chartBarSeries = _chart.bar;\r\nimport {\r\n chart as lineSeries\r\n} from \"./line_series\";\r\nimport {\r\n map\r\n} from \"../core/utils\";\r\nimport {\r\n clone\r\n} from \"../../core/utils/object\";\r\nvar baseStackedSeries = {\r\n _calculateErrorBars: _noop,\r\n _updateOptions: function(options) {\r\n this._stackName = \"axis_\" + (options.axis || \"default\")\r\n }\r\n};\r\nvar chart = {};\r\nvar polar = {};\r\nchart.stackedline = _extend({}, lineSeries.line, baseStackedSeries, {});\r\nchart.stackedspline = _extend({}, lineSeries.spline, baseStackedSeries, {});\r\nchart.fullstackedline = _extend({}, lineSeries.line, baseStackedSeries, {\r\n getValueRangeInitialValue: areaSeries.area.getValueRangeInitialValue\r\n});\r\nchart.fullstackedspline = _extend({}, lineSeries.spline, baseStackedSeries, {\r\n getValueRangeInitialValue: areaSeries.area.getValueRangeInitialValue\r\n});\r\nvar stackedBar = chart.stackedbar = _extend({}, chartBarSeries, baseStackedSeries, {\r\n _updateOptions: function(options) {\r\n baseStackedSeries._updateOptions.call(this, options);\r\n this._stackName = this._stackName + \"_stack_\" + (options.stack || \"default\")\r\n }\r\n});\r\nchart.fullstackedbar = _extend({}, chartBarSeries, baseStackedSeries, {\r\n _updateOptions: stackedBar._updateOptions\r\n});\r\n\r\nfunction clonePoint(point, value, minValue, position) {\r\n point = clone(point);\r\n point.value = value;\r\n point.minValue = minValue;\r\n point.translate();\r\n point.argument = point.argument + position;\r\n return point\r\n}\r\n\r\nfunction preparePointsForStackedAreaSegment(points) {\r\n var i = 0;\r\n var p;\r\n var result = [];\r\n var array;\r\n var len = points.length;\r\n while (i < len) {\r\n p = points[i];\r\n array = [p];\r\n if (p.leftHole) {\r\n array = [clonePoint(p, p.leftHole, p.minLeftHole, \"left\"), p]\r\n }\r\n if (p.rightHole) {\r\n array.push(clonePoint(p, p.rightHole, p.minRightHole, \"right\"))\r\n }\r\n result.push(array);\r\n i++\r\n }\r\n return [].concat.apply([], result)\r\n}\r\nchart.stackedarea = _extend({}, chartAreaSeries, baseStackedSeries, {\r\n _prepareSegment: function(points, rotated) {\r\n return chartAreaSeries._prepareSegment.call(this, preparePointsForStackedAreaSegment(points), rotated)\r\n },\r\n _appendInGroup: function() {\r\n this._group.append(this._extGroups.seriesGroup).toBackground()\r\n }\r\n});\r\n\r\nfunction getPointsByArgFromPrevSeries(prevSeries, argument) {\r\n var result;\r\n while (!result && prevSeries) {\r\n result = prevSeries._segmentByArg && prevSeries._segmentByArg[argument];\r\n prevSeries = prevSeries._prevSeries\r\n }\r\n return result\r\n}\r\nchart.stackedsplinearea = _extend({}, areaSeries.splinearea, baseStackedSeries, {\r\n _prepareSegment: function(points, rotated) {\r\n var that = this;\r\n var areaSegment;\r\n points = preparePointsForStackedAreaSegment(points);\r\n if (!this._prevSeries || 1 === points.length) {\r\n areaSegment = areaSeries.splinearea._prepareSegment.call(this, points, rotated)\r\n } else {\r\n var forwardPoints = lineSeries.spline._calculateBezierPoints(points, rotated);\r\n var backwardPoints = map(points, (function(p) {\r\n var point = p.getCoords(true);\r\n point.argument = p.argument;\r\n return point\r\n }));\r\n var prevSeriesForwardPoints = [];\r\n var pointByArg = {};\r\n var i = 0;\r\n var len = that._prevSeries._segments.length;\r\n while (i < len) {\r\n prevSeriesForwardPoints = prevSeriesForwardPoints.concat(that._prevSeries._segments[i].line);\r\n i++\r\n }\r\n each(prevSeriesForwardPoints, (function(_, p) {\r\n if (null !== p.argument) {\r\n var argument = p.argument.valueOf();\r\n if (!pointByArg[argument]) {\r\n pointByArg[argument] = [p]\r\n } else {\r\n pointByArg[argument].push(p)\r\n }\r\n }\r\n }));\r\n that._prevSeries._segmentByArg = pointByArg;\r\n backwardPoints = lineSeries.spline._calculateBezierPoints(backwardPoints, rotated);\r\n each(backwardPoints, (function(i, p) {\r\n var argument = p.argument.valueOf();\r\n var prevSeriesPoints;\r\n if (i % 3 === 0) {\r\n prevSeriesPoints = pointByArg[argument] || getPointsByArgFromPrevSeries(that._prevSeries, argument);\r\n if (prevSeriesPoints) {\r\n backwardPoints[i - 1] && prevSeriesPoints[0] && (backwardPoints[i - 1] = prevSeriesPoints[0]);\r\n backwardPoints[i + 1] && (backwardPoints[i + 1] = prevSeriesPoints[2] || p)\r\n }\r\n }\r\n }));\r\n areaSegment = {\r\n line: forwardPoints,\r\n area: forwardPoints.concat(backwardPoints.reverse())\r\n };\r\n that._areaPointsToSplineAreaPoints(areaSegment.area)\r\n }\r\n return areaSegment\r\n },\r\n _appendInGroup: chart.stackedarea._appendInGroup\r\n});\r\nchart.fullstackedarea = _extend({}, chartAreaSeries, baseStackedSeries, {\r\n _prepareSegment: chart.stackedarea._prepareSegment,\r\n _appendInGroup: chart.stackedarea._appendInGroup\r\n});\r\nchart.fullstackedsplinearea = _extend({}, areaSeries.splinearea, baseStackedSeries, {\r\n _prepareSegment: chart.stackedsplinearea._prepareSegment,\r\n _appendInGroup: chart.stackedarea._appendInGroup\r\n});\r\npolar.stackedbar = _extend({}, _polar.bar, baseStackedSeries, {});\r\nexport {\r\n chart,\r\n polar\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/series/base_series.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar seriesNS = {};\r\nimport {\r\n isFunction,\r\n isDefined as _isDefined,\r\n isEmptyObject as _isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each as _each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Point\r\n} from \"./points/base_point\";\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"../core/utils\";\r\nimport {\r\n noop as _noop\r\n} from \"../../core/utils/common\";\r\nimport consts from \"../components/consts\";\r\nvar states = consts.states;\r\nimport rangeCalculator from \"./helpers/range_data_calculator\";\r\nimport * as scatterSeries from \"./scatter_series\";\r\nimport * as lineSeries from \"./line_series\";\r\nimport * as areaSeries from \"./area_series\";\r\nimport * as barSeries from \"./bar_series\";\r\nimport {\r\n chart as rangeSeriesChart\r\n} from \"./range_series\";\r\nimport {\r\n chart as bubbleSeriesChart\r\n} from \"./bubble_series\";\r\nimport * as pieSeries from \"./pie_series\";\r\nimport * as financialSeries from \"./financial_series\";\r\nimport * as stackedSeries from \"./stacked_series\";\r\nvar DISCRETE = \"discrete\";\r\nvar SELECTED_STATE = states.selectedMark;\r\nvar HOVER_STATE = states.hoverMark;\r\nvar HOVER = states.hover;\r\nvar NORMAL = states.normal;\r\nvar SELECTION = states.selection;\r\nvar APPLY_SELECTED = states.applySelected;\r\nvar APPLY_HOVER = states.applyHover;\r\nvar RESET_ITEM = states.resetItem;\r\nvar NONE_MODE = \"none\";\r\nvar INCLUDE_POINTS = \"includepoints\";\r\nvar NEAREST_POINT = \"nearestpoint\";\r\nvar SERIES_SELECTION_CHANGED = \"seriesSelectionChanged\";\r\nvar POINT_SELECTION_CHANGED = \"pointSelectionChanged\";\r\nvar SERIES_HOVER_CHANGED = \"seriesHoverChanged\";\r\nvar POINT_HOVER_CHANGED = \"pointHoverChanged\";\r\nvar ALL_SERIES_POINTS = \"allseriespoints\";\r\nvar ALL_ARGUMENT_POINTS = \"allargumentpoints\";\r\nvar POINT_HOVER = \"pointHover\";\r\nvar CLEAR_POINT_HOVER = \"clearPointHover\";\r\nvar SERIES_SELECT = \"seriesSelect\";\r\nvar POINT_SELECT = \"pointSelect\";\r\nvar POINT_DESELECT = \"pointDeselect\";\r\nvar getEmptyBusinessRange = function() {\r\n return {\r\n arg: {},\r\n val: {}\r\n }\r\n};\r\n\r\nfunction triggerEvent(element, event, point) {\r\n element && element.trigger(event, point)\r\n}\r\nseriesNS.mixins = {\r\n chart: {},\r\n pie: {},\r\n polar: {}\r\n};\r\nseriesNS.mixins.chart.scatter = scatterSeries.chart;\r\nseriesNS.mixins.polar.scatter = scatterSeries.polar;\r\n_extend(seriesNS.mixins.pie, pieSeries);\r\n_extend(seriesNS.mixins.chart, lineSeries.chart, areaSeries.chart, barSeries.chart, rangeSeriesChart, bubbleSeriesChart, financialSeries, stackedSeries.chart);\r\n_extend(seriesNS.mixins.polar, lineSeries.polar, areaSeries.polar, barSeries.polar, stackedSeries.polar);\r\n\r\nfunction includePointsMode(mode) {\r\n mode = _normalizeEnum(mode);\r\n return mode === INCLUDE_POINTS || mode === ALL_SERIES_POINTS\r\n}\r\n\r\nfunction getLabelOptions(labelOptions, defaultColor) {\r\n var opt = labelOptions || {};\r\n var labelFont = _extend({}, opt.font) || {};\r\n var labelBorder = opt.border || {};\r\n var labelConnector = opt.connector || {};\r\n var backgroundAttr = {\r\n fill: opt.backgroundColor || defaultColor,\r\n \"stroke-width\": labelBorder.visible ? labelBorder.width || 0 : 0,\r\n stroke: labelBorder.visible && labelBorder.width ? labelBorder.color : \"none\",\r\n dashStyle: labelBorder.dashStyle\r\n };\r\n var connectorAttr = {\r\n stroke: labelConnector.visible && labelConnector.width ? labelConnector.color || defaultColor : \"none\",\r\n \"stroke-width\": labelConnector.visible ? labelConnector.width || 0 : 0\r\n };\r\n labelFont.color = \"none\" === opt.backgroundColor && \"#ffffff\" === _normalizeEnum(labelFont.color) && \"inside\" !== opt.position ? defaultColor : labelFont.color;\r\n return {\r\n alignment: opt.alignment,\r\n format: opt.format,\r\n argumentFormat: opt.argumentFormat,\r\n customizeText: isFunction(opt.customizeText) ? opt.customizeText : void 0,\r\n attributes: {\r\n font: labelFont\r\n },\r\n visible: 0 !== labelFont.size ? opt.visible : false,\r\n showForZeroValues: opt.showForZeroValues,\r\n horizontalOffset: opt.horizontalOffset,\r\n verticalOffset: opt.verticalOffset,\r\n radialOffset: opt.radialOffset,\r\n background: backgroundAttr,\r\n position: opt.position,\r\n connector: connectorAttr,\r\n rotationAngle: opt.rotationAngle,\r\n wordWrap: opt.wordWrap,\r\n textOverflow: opt.textOverflow,\r\n cssClass: opt.cssClass\r\n }\r\n}\r\n\r\nfunction setPointHoverState(point, legendCallback) {\r\n point.fullState |= HOVER_STATE;\r\n point.applyView(legendCallback)\r\n}\r\n\r\nfunction releasePointHoverState(point, legendCallback) {\r\n point.fullState &= ~HOVER_STATE;\r\n point.applyView(legendCallback);\r\n point.releaseHoverState()\r\n}\r\n\r\nfunction setPointSelectedState(point, legendCallback) {\r\n point.fullState |= SELECTED_STATE;\r\n point.applyView(legendCallback)\r\n}\r\n\r\nfunction releasePointSelectedState(point, legendCallback) {\r\n point.fullState &= ~SELECTED_STATE;\r\n point.applyView(legendCallback)\r\n}\r\n\r\nfunction mergePointOptionsCore(base, extra) {\r\n var options = _extend({}, base, extra);\r\n options.border = _extend({}, base && base.border, extra && extra.border);\r\n return options\r\n}\r\n\r\nfunction mergePointOptions(base, extra) {\r\n var options = mergePointOptionsCore(base, extra);\r\n options.image = _extend(true, {}, base.image, extra.image);\r\n options.selectionStyle = mergePointOptionsCore(base.selectionStyle, extra.selectionStyle);\r\n options.hoverStyle = mergePointOptionsCore(base.hoverStyle, extra.hoverStyle);\r\n return options\r\n}\r\nexport function Series(settings, options) {\r\n this.fullState = 0;\r\n this._extGroups = settings;\r\n this._renderer = settings.renderer;\r\n this._group = settings.renderer.g().attr({\r\n class: \"dxc-series\"\r\n });\r\n this._eventTrigger = settings.eventTrigger;\r\n this._eventPipe = settings.eventPipe;\r\n this._incidentOccurred = settings.incidentOccurred;\r\n this._legendCallback = _noop;\r\n this.updateOptions(options, settings)\r\n}\r\n\r\nfunction getData(pointData) {\r\n return pointData.data\r\n}\r\n\r\nfunction getValueChecker(axisType, axis) {\r\n if (!axis || \"logarithmic\" !== axisType || false !== axis.getOptions().allowNegatives) {\r\n return () => true\r\n } else {\r\n return value => value > 0\r\n }\r\n}\r\nSeries.prototype = {\r\n constructor: Series,\r\n _createLegendState: _noop,\r\n getLegendStyles: function() {\r\n return this._styles.legendStyles\r\n },\r\n _createStyles: function(options) {\r\n var mainSeriesColor = options.mainSeriesColor;\r\n this._styles = {\r\n normal: this._parseStyle(options, mainSeriesColor, mainSeriesColor),\r\n hover: this._parseStyle(options.hoverStyle || {}, mainSeriesColor, mainSeriesColor),\r\n selection: this._parseStyle(options.selectionStyle || {}, mainSeriesColor, mainSeriesColor),\r\n legendStyles: {\r\n normal: this._createLegendState(options, mainSeriesColor),\r\n hover: this._createLegendState(options.hoverStyle || {}, mainSeriesColor),\r\n selection: this._createLegendState(options.selectionStyle || {}, mainSeriesColor)\r\n }\r\n }\r\n },\r\n setClippingParams(baseId, wideId, forceClipping) {\r\n var clipLabels = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n this._paneClipRectID = baseId;\r\n this._widePaneClipRectID = wideId;\r\n this._forceClipping = forceClipping;\r\n this._clipLabels = clipLabels\r\n },\r\n applyClip: function() {\r\n this._group.attr({\r\n \"clip-path\": this._paneClipRectID\r\n })\r\n },\r\n resetClip: function() {\r\n this._group.attr({\r\n \"clip-path\": null\r\n })\r\n },\r\n getTagField: function() {\r\n return this._options.tagField || \"tag\"\r\n },\r\n getValueFields: _noop,\r\n getSizeField: _noop,\r\n getArgumentField: _noop,\r\n getPoints: function() {\r\n return this._points\r\n },\r\n getPointsInViewPort: function() {\r\n return rangeCalculator.getPointsInViewPort(this)\r\n },\r\n _createPoint: function(data, index, oldPoint) {\r\n data.index = index;\r\n var pointsByArgument = this.pointsByArgument;\r\n var options = this._getCreatingPointOptions(data);\r\n var arg = data.argument.valueOf();\r\n var point = oldPoint;\r\n if (point) {\r\n point.update(data, options)\r\n } else {\r\n point = new Point(this, data, options);\r\n if (this.isSelected() && includePointsMode(this.lastSelectionMode)) {\r\n point.setView(SELECTION)\r\n }\r\n }\r\n var pointByArgument = pointsByArgument[arg];\r\n if (pointByArgument) {\r\n pointByArgument.push(point)\r\n } else {\r\n pointsByArgument[arg] = [point]\r\n }\r\n if (point.hasValue()) {\r\n this.customizePoint(point, data)\r\n }\r\n return point\r\n },\r\n getRangeData: function() {\r\n return this._visible ? this._getRangeData() : getEmptyBusinessRange()\r\n },\r\n getArgumentRange: function() {\r\n return this._visible ? rangeCalculator.getArgumentRange(this) : getEmptyBusinessRange()\r\n },\r\n getViewport: function() {\r\n return rangeCalculator.getViewport(this)\r\n },\r\n _deleteGroup: function(groupName) {\r\n var group = this[groupName];\r\n if (group) {\r\n group.dispose();\r\n this[groupName] = null\r\n }\r\n },\r\n updateOptions(newOptions, settings) {\r\n var widgetType = newOptions.widgetType;\r\n var oldType = this.type;\r\n var newType = newOptions.type;\r\n this.type = newType && _normalizeEnum(newType.toString());\r\n if (!this._checkType(widgetType) || this._checkPolarBarType(widgetType, newOptions)) {\r\n this.dispose();\r\n this.isUpdated = false;\r\n return\r\n }\r\n if (oldType !== this.type) {\r\n this._firstDrawing = true;\r\n this._resetType(oldType, widgetType);\r\n this._setType(this.type, widgetType)\r\n } else {\r\n this._defineDrawingState()\r\n }\r\n this._options = newOptions;\r\n this._pointOptions = null;\r\n this.name = newOptions.name;\r\n this.pane = newOptions.pane;\r\n this.tag = newOptions.tag;\r\n if (settings) {\r\n this._seriesModes = settings.commonSeriesModes || this._seriesModes;\r\n this._valueAxis = settings.valueAxis || this._valueAxis;\r\n this.axis = this._valueAxis && this._valueAxis.name;\r\n this._argumentAxis = settings.argumentAxis || this._argumentAxis\r\n }\r\n this._createStyles(newOptions);\r\n this._stackName = null;\r\n this._updateOptions(newOptions);\r\n this._visible = newOptions.visible;\r\n this.isUpdated = true;\r\n this.stack = newOptions.stack;\r\n this.barOverlapGroup = newOptions.barOverlapGroup;\r\n this._createGroups();\r\n this._processEmptyValue = newOptions.ignoreEmptyPoints ? x => null === x ? void 0 : x : x => x\r\n },\r\n _defineDrawingState() {\r\n this._firstDrawing = true\r\n },\r\n _disposePoints: function(points) {\r\n _each(points || [], (function(_, p) {\r\n p.dispose()\r\n }))\r\n },\r\n updateDataType: function(settings) {\r\n this.argumentType = settings.argumentType;\r\n this.valueType = settings.valueType;\r\n this.argumentAxisType = settings.argumentAxisType;\r\n this.valueAxisType = settings.valueAxisType;\r\n this.showZero = settings.showZero;\r\n this._argumentChecker = getValueChecker(settings.argumentAxisType, this.getArgumentAxis());\r\n this._valueChecker = getValueChecker(settings.valueAxisType, this.getValueAxis());\r\n return this\r\n },\r\n _argumentChecker: function() {\r\n return true\r\n },\r\n _valueChecker: function() {\r\n return true\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n _getOldPoint: function(data, oldPointsByArgument, index) {\r\n var arg = data.argument && data.argument.valueOf();\r\n var point = (oldPointsByArgument[arg] || [])[0];\r\n if (point) {\r\n oldPointsByArgument[arg].splice(0, 1)\r\n }\r\n return point\r\n },\r\n updateData: function(data) {\r\n var options = this._options;\r\n var nameField = options.nameField;\r\n data = data || [];\r\n if (data.length) {\r\n this._canRenderCompleteHandle = true\r\n }\r\n var dataSelector = this._getPointDataSelector();\r\n var itemsWithoutArgument = 0;\r\n this._data = data.reduce((data, dataItem, index) => {\r\n var pointDataItem = dataSelector(dataItem);\r\n if (_isDefined(pointDataItem.argument)) {\r\n if (!nameField || dataItem[nameField] === options.nameFieldValue) {\r\n pointDataItem.index = index;\r\n data.push(pointDataItem)\r\n }\r\n } else {\r\n itemsWithoutArgument++\r\n }\r\n return data\r\n }, []);\r\n if (itemsWithoutArgument && itemsWithoutArgument === data.length) {\r\n this._incidentOccurred(\"W2002\", [this.name, this.getArgumentField()])\r\n }\r\n this._endUpdateData()\r\n },\r\n _getData() {\r\n var data = this._data || [];\r\n if (this.useAggregation()) {\r\n data = this._resample(this.getArgumentAxis().getAggregationInfo(this._useAllAggregatedPoints, this.argumentAxisType !== DISCRETE ? this.getArgumentRange() : {}), data)\r\n }\r\n return data\r\n },\r\n useAggregation: function() {\r\n var aggregation = this.getOptions().aggregation;\r\n return aggregation && aggregation.enabled\r\n },\r\n autoHidePointMarkersEnabled: _noop,\r\n usePointsToDefineAutoHiding: _noop,\r\n createPoints(useAllAggregatedPoints) {\r\n this._normalizeUsingAllAggregatedPoints(useAllAggregatedPoints);\r\n this._createPoints()\r\n },\r\n _normalizeUsingAllAggregatedPoints: function(useAllAggregatedPoints) {\r\n this._useAllAggregatedPoints = this.useAggregation() && (this.argumentAxisType === DISCRETE || (this._data || []).length > 1 && !!useAllAggregatedPoints)\r\n },\r\n _createPoints: function() {\r\n var that = this;\r\n var oldPointsByArgument = that.pointsByArgument || {};\r\n var data = that._getData();\r\n that.pointsByArgument = {};\r\n that._calculateErrorBars(data);\r\n var skippedFields = {};\r\n var points = data.reduce((points, pointDataItem) => {\r\n if (that._checkData(pointDataItem, skippedFields)) {\r\n var pointIndex = points.length;\r\n var oldPoint = that._getOldPoint(pointDataItem, oldPointsByArgument, pointIndex);\r\n var point = that._createPoint(pointDataItem, pointIndex, oldPoint);\r\n points.push(point)\r\n }\r\n return points\r\n }, []);\r\n for (var field in skippedFields) {\r\n if (skippedFields[field] === data.length) {\r\n that._incidentOccurred(\"W2002\", [that.name, field])\r\n }\r\n }\r\n Object.keys(oldPointsByArgument).forEach(key => that._disposePoints(oldPointsByArgument[key]));\r\n that._points = points\r\n },\r\n _removeOldSegments: function() {\r\n var that = this;\r\n var startIndex = that._segments.length;\r\n _each(that._graphics.splice(startIndex, that._graphics.length) || [], (function(_, elem) {\r\n that._removeElement(elem)\r\n }));\r\n if (that._trackers) {\r\n _each(that._trackers.splice(startIndex, that._trackers.length) || [], (function(_, elem) {\r\n elem.remove()\r\n }))\r\n }\r\n },\r\n _drawElements: function(animationEnabled, firstDrawing, translateAllPoints) {\r\n var that = this;\r\n var points = that._points || [];\r\n var closeSegment = points[0] && points[0].hasValue() && that._options.closed;\r\n var groupForPoint = {\r\n markers: that._markersGroup,\r\n errorBars: that._errorBarGroup\r\n };\r\n that._drawnPoints = [];\r\n that._graphics = that._graphics || [];\r\n that._segments = [];\r\n var segments = points.reduce((function(segments, p) {\r\n var segment = segments[segments.length - 1];\r\n if (!p.translated || translateAllPoints) {\r\n p.translate();\r\n !translateAllPoints && p.setDefaultCoords()\r\n }\r\n if (p.hasValue() && p.hasCoords()) {\r\n translateAllPoints && that._drawPoint({\r\n point: p,\r\n groups: groupForPoint,\r\n hasAnimation: animationEnabled,\r\n firstDrawing: firstDrawing\r\n });\r\n segment.push(p)\r\n } else if (!p.hasValue()) {\r\n segment.length && segments.push([])\r\n } else {\r\n p.setInvisibility()\r\n }\r\n return segments\r\n }), [\r\n []\r\n ]);\r\n segments.forEach((function(segment, index) {\r\n if (segment.length) {\r\n that._drawSegment(segment, animationEnabled, index, closeSegment && index === this.length - 1)\r\n }\r\n }), segments);\r\n that._firstDrawing = !points.length;\r\n that._removeOldSegments();\r\n animationEnabled && that._animate(firstDrawing)\r\n },\r\n draw: function(animationEnabled, hideLayoutLabels, legendCallback) {\r\n var firstDrawing = this._firstDrawing;\r\n this._legendCallback = legendCallback || this._legendCallback;\r\n if (!this._visible) {\r\n this._group.remove();\r\n return\r\n }\r\n this._appendInGroup();\r\n this._applyVisibleArea();\r\n this._setGroupsSettings(animationEnabled, firstDrawing);\r\n !firstDrawing && !this._resetApplyingAnimation && this._drawElements(false, firstDrawing, false);\r\n this._drawElements(animationEnabled, firstDrawing, true);\r\n hideLayoutLabels && this.hideLabels();\r\n if (this.isSelected()) {\r\n this._changeStyle(this.lastSelectionMode, void 0, true)\r\n } else if (this.isHovered()) {\r\n this._changeStyle(this.lastHoverMode, void 0, true)\r\n } else {\r\n this._applyStyle(this._styles.normal)\r\n }\r\n this._resetApplyingAnimation = false\r\n },\r\n _setLabelGroupSettings: function(animationEnabled) {\r\n var settings = {\r\n class: \"dxc-labels\",\r\n \"pointer-events\": \"none\"\r\n };\r\n this._clipLabels && this._applyElementsClipRect(settings);\r\n this._applyClearingSettings(settings);\r\n animationEnabled && (settings.opacity = .001);\r\n this._labelsGroup.attr(settings).append(this._extGroups.labelsGroup)\r\n },\r\n _checkType: function(widgetType) {\r\n return !!seriesNS.mixins[widgetType][this.type]\r\n },\r\n _checkPolarBarType: function(widgetType, options) {\r\n return \"polar\" === widgetType && options.spiderWidget && -1 !== this.type.indexOf(\"bar\")\r\n },\r\n _resetType: function(seriesType, widgetType) {\r\n var methodName;\r\n var methods;\r\n if (seriesType) {\r\n methods = seriesNS.mixins[widgetType][seriesType];\r\n for (methodName in methods) {\r\n delete this[methodName]\r\n }\r\n }\r\n },\r\n _setType: function(seriesType, widgetType) {\r\n var methodName;\r\n var methods = seriesNS.mixins[widgetType][seriesType];\r\n for (methodName in methods) {\r\n this[methodName] = methods[methodName]\r\n }\r\n },\r\n _setPointsView: function(view, target) {\r\n this.getPoints().forEach((function(point) {\r\n if (target !== point) {\r\n point.setView(view)\r\n }\r\n }))\r\n },\r\n _resetPointsView: function(view, target) {\r\n this.getPoints().forEach((function(point) {\r\n if (target !== point) {\r\n point.resetView(view)\r\n }\r\n }))\r\n },\r\n _resetNearestPoint: function() {\r\n this._nearestPoint && null !== this._nearestPoint.series && this._nearestPoint.resetView(HOVER);\r\n this._nearestPoint = null\r\n },\r\n _setSelectedState: function(mode) {\r\n this.lastSelectionMode = _normalizeEnum(mode || this._options.selectionMode);\r\n this.fullState = this.fullState | SELECTED_STATE;\r\n this._resetNearestPoint();\r\n this._changeStyle(this.lastSelectionMode);\r\n if (this.lastSelectionMode !== NONE_MODE && this.isHovered() && includePointsMode(this.lastHoverMode)) {\r\n this._resetPointsView(HOVER)\r\n }\r\n },\r\n _releaseSelectedState: function() {\r\n this.fullState = this.fullState & ~SELECTED_STATE;\r\n this._changeStyle(this.lastSelectionMode, SELECTION);\r\n if (this.lastSelectionMode !== NONE_MODE && this.isHovered() && includePointsMode(this.lastHoverMode)) {\r\n this._setPointsView(HOVER)\r\n }\r\n },\r\n isFullStackedSeries: function() {\r\n return 0 === this.type.indexOf(\"fullstacked\")\r\n },\r\n isStackedSeries: function() {\r\n return 0 === this.type.indexOf(\"stacked\")\r\n },\r\n resetApplyingAnimation: function(isFirstDrawing) {\r\n this._resetApplyingAnimation = true;\r\n if (isFirstDrawing) {\r\n this._firstDrawing = true\r\n }\r\n },\r\n isFinancialSeries: function() {\r\n return \"stock\" === this.type || \"candlestick\" === this.type\r\n },\r\n _canChangeView: function() {\r\n return !this.isSelected() && _normalizeEnum(this._options.hoverMode) !== NONE_MODE\r\n },\r\n _changeStyle: function(mode, resetView, skipPoints) {\r\n var state = this.fullState;\r\n var styles = [NORMAL, HOVER, SELECTION, SELECTION];\r\n if (\"none\" === this.lastHoverMode) {\r\n state &= ~HOVER_STATE\r\n }\r\n if (\"none\" === this.lastSelectionMode) {\r\n state &= ~SELECTED_STATE\r\n }\r\n if (includePointsMode(mode) && !skipPoints) {\r\n if (!resetView) {\r\n this._setPointsView(styles[state])\r\n } else {\r\n this._resetPointsView(resetView)\r\n }\r\n }\r\n this._legendCallback([RESET_ITEM, APPLY_HOVER, APPLY_SELECTED, APPLY_SELECTED][state]);\r\n this._applyStyle(this._styles[styles[state]])\r\n },\r\n updateHover: function(x, y) {\r\n var currentNearestPoint = this._nearestPoint;\r\n var point = this.isHovered() && this.lastHoverMode === NEAREST_POINT && this.getNeighborPoint(x, y);\r\n if (point !== currentNearestPoint && !(this.isSelected() && this.lastSelectionMode !== NONE_MODE)) {\r\n this._resetNearestPoint();\r\n if (point) {\r\n point.setView(HOVER);\r\n this._nearestPoint = point\r\n }\r\n }\r\n },\r\n _getMainAxisName: function() {\r\n return this._options.rotated ? \"X\" : \"Y\"\r\n },\r\n areLabelsVisible: function() {\r\n return !_isDefined(this._options.maxLabelCount) || this._points.length <= this._options.maxLabelCount\r\n },\r\n getLabelVisibility: function() {\r\n return this.areLabelsVisible() && this._options.label && this._options.label.visible\r\n },\r\n customizePoint: function(point, pointData) {\r\n var options = this._options;\r\n var customizePoint = options.customizePoint;\r\n var customizeObject;\r\n var pointOptions;\r\n var customLabelOptions;\r\n var customOptions;\r\n var customizeLabel = options.customizeLabel;\r\n var useLabelCustomOptions;\r\n var usePointCustomOptions;\r\n if (customizeLabel && customizeLabel.call) {\r\n customizeObject = _extend({\r\n seriesName: this.name\r\n }, pointData);\r\n customizeObject.series = this;\r\n customLabelOptions = customizeLabel.call(customizeObject, customizeObject);\r\n useLabelCustomOptions = customLabelOptions && !_isEmptyObject(customLabelOptions);\r\n customLabelOptions = useLabelCustomOptions ? _extend(true, {}, options.label, customLabelOptions) : null\r\n }\r\n if (customizePoint && customizePoint.call) {\r\n customizeObject = customizeObject || _extend({\r\n seriesName: this.name\r\n }, pointData);\r\n customizeObject.series = this;\r\n customOptions = customizePoint.call(customizeObject, customizeObject);\r\n usePointCustomOptions = customOptions && !_isEmptyObject(customOptions)\r\n }\r\n if (useLabelCustomOptions || usePointCustomOptions) {\r\n pointOptions = this._parsePointOptions(this._preparePointOptions(customOptions), customLabelOptions || options.label, pointData, point);\r\n pointOptions.styles.useLabelCustomOptions = useLabelCustomOptions;\r\n pointOptions.styles.usePointCustomOptions = usePointCustomOptions;\r\n point.updateOptions(pointOptions)\r\n }\r\n },\r\n show: function() {\r\n if (!this._visible) {\r\n this._changeVisibility(true)\r\n }\r\n },\r\n hide: function() {\r\n if (this._visible) {\r\n this._changeVisibility(false)\r\n }\r\n },\r\n _changeVisibility: function(visibility) {\r\n this._visible = this._options.visible = visibility;\r\n this._updatePointsVisibility();\r\n this.hidePointTooltip();\r\n this._options.visibilityChanged(this)\r\n },\r\n _updatePointsVisibility: _noop,\r\n hideLabels: function() {\r\n _each(this._points, (function(_, point) {\r\n point._label.draw(false)\r\n }))\r\n },\r\n _parsePointOptions: function(pointOptions, labelOptions, data, point) {\r\n var options = this._options;\r\n var styles = this._createPointStyles(pointOptions, data, point);\r\n var parsedOptions = _extend({}, pointOptions, {\r\n type: options.type,\r\n rotated: options.rotated,\r\n styles: styles,\r\n widgetType: options.widgetType,\r\n visibilityChanged: options.visibilityChanged\r\n });\r\n parsedOptions.label = getLabelOptions(labelOptions, styles.normal.fill);\r\n if (this.areErrorBarsVisible()) {\r\n parsedOptions.errorBars = options.valueErrorBar\r\n }\r\n return parsedOptions\r\n },\r\n _preparePointOptions: function(customOptions) {\r\n var pointOptions = this._getOptionsForPoint();\r\n return customOptions ? mergePointOptions(pointOptions, customOptions) : pointOptions\r\n },\r\n _getMarkerGroupOptions: function() {\r\n return _extend(false, {}, this._getOptionsForPoint(), {\r\n hoverStyle: {},\r\n selectionStyle: {}\r\n })\r\n },\r\n _getAggregationMethod: function(isDiscrete, aggregateByCategory) {\r\n var options = this.getOptions().aggregation;\r\n var method = _normalizeEnum(options.method);\r\n var customAggregator = \"custom\" === method && options.calculate;\r\n var aggregator;\r\n if (isDiscrete && !aggregateByCategory) {\r\n aggregator = _ref => {\r\n var {\r\n data: data\r\n } = _ref;\r\n return data[0]\r\n }\r\n } else {\r\n aggregator = this._aggregators[method] || this._aggregators[this._defaultAggregator]\r\n }\r\n return customAggregator || aggregator\r\n },\r\n _resample(_ref2, data) {\r\n var {\r\n interval: interval,\r\n ticks: ticks,\r\n aggregateByCategory: aggregateByCategory\r\n } = _ref2;\r\n var that = this;\r\n var isDiscrete = that.argumentAxisType === DISCRETE || that.valueAxisType === DISCRETE;\r\n var dataIndex = 0;\r\n var dataSelector = this._getPointDataSelector();\r\n var options = that.getOptions();\r\n var addAggregatedData = (target, data, aggregationInfo) => {\r\n if (!data) {\r\n return\r\n }\r\n var processData = d => {\r\n var pointData = d && dataSelector(d, options);\r\n if (pointData && that._checkData(pointData)) {\r\n pointData.aggregationInfo = aggregationInfo;\r\n target.push(pointData)\r\n }\r\n };\r\n if (Array.isArray(data)) {\r\n data.forEach(processData)\r\n } else {\r\n processData(data)\r\n }\r\n };\r\n var aggregationMethod = this._getAggregationMethod(isDiscrete, aggregateByCategory);\r\n if (isDiscrete) {\r\n if (aggregateByCategory) {\r\n var categories = this.getArgumentAxis().getTranslator().getBusinessRange().categories;\r\n var groups = categories.reduce((g, category) => {\r\n g[category.valueOf()] = [];\r\n return g\r\n }, {});\r\n data.forEach(dataItem => {\r\n groups[dataItem.argument.valueOf()].push(dataItem)\r\n });\r\n return categories.reduce((result, c) => {\r\n addAggregatedData(result, aggregationMethod({\r\n aggregationInterval: null,\r\n intervalStart: c,\r\n intervalEnd: c,\r\n data: groups[c.valueOf()].map(getData)\r\n }, that));\r\n return result\r\n }, [])\r\n } else {\r\n return data.reduce((result, dataItem, index, data) => {\r\n result[1].push(dataItem);\r\n if (index === data.length - 1 || (index + 1) % interval === 0) {\r\n var dataInInterval = result[1];\r\n var aggregationInfo = {\r\n aggregationInterval: interval,\r\n data: dataInInterval.map(getData)\r\n };\r\n addAggregatedData(result[0], aggregationMethod(aggregationInfo, that));\r\n result[1] = []\r\n }\r\n return result\r\n }, [\r\n [],\r\n []\r\n ])[0]\r\n }\r\n }\r\n var aggregatedData = [];\r\n if (1 === ticks.length) {\r\n var aggregationInfo = {\r\n intervalStart: ticks[0],\r\n intervalEnd: ticks[0],\r\n aggregationInterval: null,\r\n data: data.map(getData)\r\n };\r\n addAggregatedData(aggregatedData, aggregationMethod(aggregationInfo, that), aggregationInfo)\r\n } else {\r\n for (var i = 1; i < ticks.length; i++) {\r\n var intervalEnd = ticks[i];\r\n var intervalStart = ticks[i - 1];\r\n var dataInInterval = [];\r\n while (data[dataIndex] && data[dataIndex].argument < intervalEnd) {\r\n if (data[dataIndex].argument >= intervalStart) {\r\n dataInInterval.push(data[dataIndex])\r\n }\r\n dataIndex++\r\n }\r\n var _aggregationInfo = {\r\n intervalStart: intervalStart,\r\n intervalEnd: intervalEnd,\r\n aggregationInterval: interval,\r\n data: dataInInterval.map(getData)\r\n };\r\n addAggregatedData(aggregatedData, aggregationMethod(_aggregationInfo, that), _aggregationInfo)\r\n }\r\n }\r\n that._endUpdateData();\r\n return aggregatedData\r\n },\r\n canRenderCompleteHandle: function() {\r\n var result = this._canRenderCompleteHandle;\r\n delete this._canRenderCompleteHandle;\r\n return !!result\r\n },\r\n isHovered: function() {\r\n return !!(1 & this.fullState)\r\n },\r\n isSelected: function() {\r\n return !!(2 & this.fullState)\r\n },\r\n isVisible: function() {\r\n return this._visible\r\n },\r\n getAllPoints: function() {\r\n this._createAllAggregatedPoints();\r\n return (this._points || []).slice()\r\n },\r\n getPointByPos: function(pos) {\r\n this._createAllAggregatedPoints();\r\n return (this._points || [])[pos]\r\n },\r\n getVisiblePoints: function() {\r\n return (this._drawnPoints || []).slice()\r\n },\r\n selectPoint: function(point) {\r\n if (!point.isSelected()) {\r\n setPointSelectedState(point, this._legendCallback);\r\n this._eventPipe({\r\n action: POINT_SELECT,\r\n target: point\r\n });\r\n this._eventTrigger(POINT_SELECTION_CHANGED, {\r\n target: point\r\n })\r\n }\r\n },\r\n deselectPoint: function(point) {\r\n if (point.isSelected()) {\r\n releasePointSelectedState(point, this._legendCallback);\r\n this._eventPipe({\r\n action: POINT_DESELECT,\r\n target: point\r\n });\r\n this._eventTrigger(POINT_SELECTION_CHANGED, {\r\n target: point\r\n })\r\n }\r\n },\r\n hover: function(mode) {\r\n var eventTrigger = this._eventTrigger;\r\n if (this.isHovered()) {\r\n return\r\n }\r\n this.lastHoverMode = _normalizeEnum(mode || this._options.hoverMode);\r\n this.fullState = this.fullState | HOVER_STATE;\r\n this._changeStyle(this.lastHoverMode, void 0, this.isSelected() && this.lastSelectionMode !== NONE_MODE);\r\n eventTrigger(SERIES_HOVER_CHANGED, {\r\n target: this\r\n })\r\n },\r\n clearHover: function() {\r\n var eventTrigger = this._eventTrigger;\r\n if (!this.isHovered()) {\r\n return\r\n }\r\n this._resetNearestPoint();\r\n this.fullState = this.fullState & ~HOVER_STATE;\r\n this._changeStyle(this.lastHoverMode, HOVER, this.isSelected() && this.lastSelectionMode !== NONE_MODE);\r\n eventTrigger(SERIES_HOVER_CHANGED, {\r\n target: this\r\n })\r\n },\r\n hoverPoint: function(point) {\r\n if (!point.isHovered()) {\r\n point.clearHover();\r\n setPointHoverState(point, this._legendCallback);\r\n this._canChangeView() && this._applyStyle(this._styles.hover);\r\n this._eventPipe({\r\n action: POINT_HOVER,\r\n target: point\r\n });\r\n this._eventTrigger(POINT_HOVER_CHANGED, {\r\n target: point\r\n })\r\n }\r\n },\r\n clearPointHover: function() {\r\n var that = this;\r\n that.getPoints().some((function(currentPoint) {\r\n if (currentPoint.isHovered()) {\r\n releasePointHoverState(currentPoint, that._legendCallback);\r\n that._canChangeView() && that._applyStyle(that._styles.normal);\r\n that._eventPipe({\r\n action: CLEAR_POINT_HOVER,\r\n target: currentPoint\r\n });\r\n that._eventTrigger(POINT_HOVER_CHANGED, {\r\n target: currentPoint\r\n });\r\n return true\r\n }\r\n return false\r\n }))\r\n },\r\n showPointTooltip: function(point) {\r\n triggerEvent(this._extGroups.seriesGroup, \"showpointtooltip\", point)\r\n },\r\n hidePointTooltip: function(point) {\r\n triggerEvent(this._extGroups.seriesGroup, \"hidepointtooltip\", point)\r\n },\r\n select: function() {\r\n if (!this.isSelected()) {\r\n this._setSelectedState(this._options.selectionMode);\r\n this._eventPipe({\r\n action: SERIES_SELECT,\r\n target: this\r\n });\r\n this._group.toForeground();\r\n this._eventTrigger(SERIES_SELECTION_CHANGED, {\r\n target: this\r\n })\r\n }\r\n },\r\n clearSelection: function() {\r\n if (this.isSelected()) {\r\n this._releaseSelectedState();\r\n this._eventTrigger(SERIES_SELECTION_CHANGED, {\r\n target: this\r\n })\r\n }\r\n },\r\n getPointsByArg: function(arg, skipPointsCreation) {\r\n var argValue = arg.valueOf();\r\n var points = this.pointsByArgument[argValue];\r\n if (!points && !skipPointsCreation && this._createAllAggregatedPoints()) {\r\n points = this.pointsByArgument[argValue]\r\n }\r\n return points || []\r\n },\r\n _createAllAggregatedPoints: function() {\r\n if (this.useAggregation() && !this._useAllAggregatedPoints) {\r\n this.createPoints(true);\r\n return true\r\n }\r\n return false\r\n },\r\n getPointsByKeys: function(arg) {\r\n return this.getPointsByArg(arg)\r\n },\r\n notify: function(data) {\r\n var that = this;\r\n var action = data.action;\r\n var seriesModes = that._seriesModes;\r\n var target = data.target;\r\n var targetOptions = target.getOptions();\r\n var pointHoverMode = _normalizeEnum(targetOptions.hoverMode);\r\n var selectionModeOfPoint = _normalizeEnum(targetOptions.selectionMode);\r\n if (action === POINT_HOVER) {\r\n that._hoverPointHandler(target, pointHoverMode, data.notifyLegend)\r\n } else if (action === CLEAR_POINT_HOVER) {\r\n that._clearPointHoverHandler(target, pointHoverMode, data.notifyLegend)\r\n } else if (action === SERIES_SELECT) {\r\n target !== that && \"single\" === seriesModes.seriesSelectionMode && that.clearSelection()\r\n } else if (action === POINT_SELECT) {\r\n if (\"single\" === seriesModes.pointSelectionMode) {\r\n that.getPoints().some((function(currentPoint) {\r\n if (currentPoint !== target && currentPoint.isSelected()) {\r\n that.deselectPoint(currentPoint);\r\n return true\r\n }\r\n return false\r\n }))\r\n }\r\n that._selectPointHandler(target, selectionModeOfPoint)\r\n } else if (action === POINT_DESELECT) {\r\n that._deselectPointHandler(target, selectionModeOfPoint)\r\n }\r\n },\r\n _selectPointHandler: function(target, mode) {\r\n if (mode === ALL_SERIES_POINTS) {\r\n target.series === this && this._setPointsView(SELECTION, target)\r\n } else if (mode === ALL_ARGUMENT_POINTS) {\r\n this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint !== target && currentPoint.setView(SELECTION)\r\n }))\r\n }\r\n },\r\n _deselectPointHandler: function(target, mode) {\r\n if (mode === ALL_SERIES_POINTS) {\r\n target.series === this && this._resetPointsView(SELECTION, target)\r\n } else if (mode === ALL_ARGUMENT_POINTS) {\r\n this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint !== target && currentPoint.resetView(SELECTION)\r\n }))\r\n }\r\n },\r\n _hoverPointHandler: function(target, mode, notifyLegend) {\r\n if (target.series !== this && mode === ALL_ARGUMENT_POINTS) {\r\n this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint.setView(HOVER)\r\n }));\r\n notifyLegend && this._legendCallback(target)\r\n } else if (mode === ALL_SERIES_POINTS && target.series === this) {\r\n this._setPointsView(HOVER, target)\r\n }\r\n },\r\n _clearPointHoverHandler: function(target, mode, notifyLegend) {\r\n if (mode === ALL_ARGUMENT_POINTS) {\r\n target.series !== this && this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {\r\n currentPoint.resetView(HOVER)\r\n }));\r\n notifyLegend && this._legendCallback(target)\r\n } else if (mode === ALL_SERIES_POINTS && target.series === this) {\r\n this._resetPointsView(HOVER, target)\r\n }\r\n },\r\n _deletePoints: function() {\r\n this._disposePoints(this._points);\r\n this._points = this._drawnPoints = null\r\n },\r\n _deleteTrackers: function() {\r\n _each(this._trackers || [], (function(_, tracker) {\r\n tracker.remove()\r\n }));\r\n this._trackersGroup && this._trackersGroup.dispose();\r\n this._trackers = this._trackersGroup = null\r\n },\r\n dispose: function() {\r\n this._deletePoints();\r\n this._group.dispose();\r\n this._labelsGroup && this._labelsGroup.dispose();\r\n this._errorBarGroup && this._errorBarGroup.dispose();\r\n this._deleteTrackers();\r\n this._group = this._extGroups = this._markersGroup = this._elementsGroup = this._bordersGroup = this._labelsGroup = this._errorBarGroup = this._graphics = this._rangeData = this._renderer = this._styles = this._options = this._pointOptions = this._drawnPoints = this.pointsByArgument = this._segments = this._prevSeries = null\r\n },\r\n correctPosition: _noop,\r\n drawTrackers: _noop,\r\n getNeighborPoint: _noop,\r\n areErrorBarsVisible: _noop,\r\n getMarginOptions: function() {\r\n return this._patchMarginOptions({\r\n percentStick: this.isFullStackedSeries()\r\n })\r\n },\r\n getColor: function() {\r\n return this.getLegendStyles().normal.fill\r\n },\r\n getOpacity: function() {\r\n return this._options.opacity\r\n },\r\n getStackName: function() {\r\n return this._stackName\r\n },\r\n getBarOverlapGroup: function() {\r\n return this._options.barOverlapGroup\r\n },\r\n getPointByCoord: function(x, y) {\r\n var point = this.getNeighborPoint(x, y);\r\n return null !== point && void 0 !== point && point.coordsIn(x, y) ? point : null\r\n },\r\n getValueAxis: function() {\r\n return this._valueAxis\r\n },\r\n getArgumentAxis: function() {\r\n return this._argumentAxis\r\n },\r\n getMarkersGroup() {\r\n return this._markersGroup\r\n },\r\n getRenderer() {\r\n return this._renderer\r\n },\r\n removePointElements() {\r\n if (this._markersGroup) {\r\n _each(this._points, (_, p) => p.deleteMarker());\r\n this._markersGroup.dispose();\r\n this._markersGroup = null\r\n }\r\n },\r\n removeGraphicElements() {\r\n var that = this;\r\n if (that._elementsGroup) {\r\n that._elementsGroup.dispose();\r\n that._elementsGroup = null\r\n }\r\n _each(that._graphics || [], (_, elem) => {\r\n that._removeElement(elem)\r\n });\r\n that._graphics = null\r\n },\r\n removeBordersGroup() {\r\n if (this._bordersGroup) {\r\n this._bordersGroup.dispose();\r\n this._bordersGroup = null\r\n }\r\n }\r\n};\r\nexport var mixins = seriesNS.mixins;\r\n","/**\r\n * DevExtreme (esm/viz/series/helpers/range_data_calculator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n unique,\r\n getAddFunction,\r\n getLog\r\n} from \"../../core/utils\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nvar DISCRETE = \"discrete\";\r\nvar {\r\n abs: abs,\r\n floor: floor,\r\n ceil: ceil,\r\n min: min\r\n} = Math;\r\n\r\nfunction continuousRangeCalculator(range, minValue, maxValue) {\r\n range.min = range.min < minValue ? range.min : minValue;\r\n range.max = range.max > maxValue ? range.max : maxValue\r\n}\r\n\r\nfunction createGetLogFunction(axisType, axis) {\r\n if (\"logarithmic\" !== axisType) {\r\n return null\r\n }\r\n var base = axis.getOptions().logarithmBase;\r\n return value => {\r\n var log = getLog(abs(value), base);\r\n var round = log < 0 ? floor : ceil;\r\n return round(log)\r\n }\r\n}\r\n\r\nfunction getRangeCalculator(axisType, axis, getLog) {\r\n var rangeCalculator = continuousRangeCalculator;\r\n if (axisType === DISCRETE) {\r\n rangeCalculator = function(range, minValue, maxValue) {\r\n if (minValue !== maxValue) {\r\n range.categories.push(maxValue)\r\n }\r\n range.categories.push(minValue)\r\n }\r\n } else if (axis) {\r\n rangeCalculator = function(range, value) {\r\n var interval = axis.calculateInterval(value, range.prevValue);\r\n var minInterval = range.interval;\r\n range.interval = (minInterval < interval ? minInterval : interval) || minInterval;\r\n range.prevValue = value;\r\n continuousRangeCalculator(range, value, value)\r\n }\r\n }\r\n if (getLog) {\r\n return (range, minValue, maxValue) => {\r\n var minArgs = [];\r\n rangeCalculator(range, minValue, maxValue);\r\n 0 !== minValue && minArgs.push(getLog(minValue));\r\n 0 !== maxValue && minArgs.push(getLog(maxValue));\r\n var linearThreshold = min.apply(null, minArgs);\r\n range.linearThreshold = range.linearThreshold < linearThreshold ? range.linearThreshold : linearThreshold\r\n }\r\n }\r\n return rangeCalculator\r\n}\r\n\r\nfunction getInitialRange(axisType, dataType, firstValue) {\r\n var range = {\r\n axisType: axisType,\r\n dataType: dataType\r\n };\r\n if (axisType === DISCRETE) {\r\n range.categories = []\r\n } else {\r\n range.min = isObject(firstValue) ? firstValue.min : firstValue;\r\n range.max = isObject(firstValue) ? firstValue.max : firstValue\r\n }\r\n return range\r\n}\r\n\r\nfunction processCategories(range) {\r\n if (range.categories) {\r\n range.categories = unique(range.categories)\r\n }\r\n return range\r\n}\r\n\r\nfunction getValueForArgument(point, extraPoint, x, range) {\r\n if (extraPoint && isDefined(extraPoint.value)) {\r\n var y1 = point.value;\r\n var y2 = extraPoint.value;\r\n var x1 = point.argument;\r\n var x2 = extraPoint.argument;\r\n var r = (x - x1) * (y2 - y1) / (x2 - x1) + y1.valueOf();\r\n return \"datetime\" === range.dataType ? new Date(r) : r\r\n } else {\r\n return point.value\r\n }\r\n}\r\n\r\nfunction calculateRangeBetweenPoints(rangeCalculator, range, point, prevPoint, bound) {\r\n var value = getValueForArgument(point, prevPoint, bound, range);\r\n rangeCalculator(range, value, value)\r\n}\r\n\r\nfunction isLineSeries(series) {\r\n return series.type.toLowerCase().indexOf(\"line\") >= 0 || series.type.toLowerCase().indexOf(\"area\") >= 0\r\n}\r\n\r\nfunction getViewportReducer(series) {\r\n var rangeCalculator = getRangeCalculator(series.valueAxisType);\r\n var argumentAxis = series.getArgumentAxis();\r\n var viewport = argumentAxis && series.getArgumentAxis().visualRange() || {};\r\n var calculatePointBetweenPoints = isLineSeries(series) ? calculateRangeBetweenPoints : noop;\r\n if (argumentAxis && argumentAxis.getMarginOptions().checkInterval) {\r\n var range = series.getArgumentAxis().getTranslator().getBusinessRange();\r\n var add = getAddFunction(range, false);\r\n var interval = range.interval;\r\n if (isFinite(interval) && isDefined(viewport.startValue) && isDefined(viewport.endValue)) {\r\n viewport.startValue = add(viewport.startValue, interval, -1);\r\n viewport.endValue = add(viewport.endValue, interval)\r\n }\r\n }\r\n var viewportFilter = getViewPortFilter(viewport);\r\n return function(range, point, index, points) {\r\n var argument = point.argument;\r\n if (!point.hasValue()) {\r\n return range\r\n }\r\n if (viewportFilter(argument)) {\r\n if (!range.startCalc) {\r\n range.startCalc = true;\r\n calculatePointBetweenPoints(rangeCalculator, range, point, points[index - 1], viewport.startValue)\r\n }\r\n rangeCalculator(range, point.getMinValue(), point.getMaxValue())\r\n } else if (!viewport.categories && isDefined(viewport.startValue) && argument > viewport.startValue) {\r\n if (!range.startCalc) {\r\n calculatePointBetweenPoints(rangeCalculator, range, point, points[index - 1], viewport.startValue)\r\n }\r\n range.endCalc = true;\r\n calculatePointBetweenPoints(rangeCalculator, range, point, points[index - 1], viewport.endValue)\r\n }\r\n return range\r\n }\r\n}\r\n\r\nfunction getViewPortFilter(viewport) {\r\n if (viewport.categories) {\r\n var dictionary = viewport.categories.reduce((result, category) => {\r\n result[category.valueOf()] = true;\r\n return result\r\n }, {});\r\n return argument => isDefined(argument) && dictionary[argument.valueOf()]\r\n }\r\n if (!isDefined(viewport.startValue) && !isDefined(viewport.endValue)) {\r\n return () => true\r\n }\r\n if (!isDefined(viewport.endValue)) {\r\n return argument => argument >= viewport.startValue\r\n }\r\n if (!isDefined(viewport.startValue)) {\r\n return argument => argument <= viewport.endValue\r\n }\r\n return argument => argument >= viewport.startValue && argument <= viewport.endValue\r\n}\r\nexport default {\r\n getViewPortFilter: getViewPortFilter,\r\n getArgumentRange: function(series) {\r\n var data = series._data || [];\r\n var range = {};\r\n if (data.length) {\r\n if (series.argumentAxisType === DISCRETE) {\r\n range = {\r\n categories: data.map(item => item.argument)\r\n }\r\n } else {\r\n var interval;\r\n if (data.length > 1) {\r\n var i1 = series.getArgumentAxis().calculateInterval(data[0].argument, data[1].argument);\r\n var i2 = series.getArgumentAxis().calculateInterval(data[data.length - 1].argument, data[data.length - 2].argument);\r\n interval = min(i1, i2)\r\n }\r\n range = {\r\n min: data[0].argument,\r\n max: data[data.length - 1].argument,\r\n interval: interval\r\n }\r\n }\r\n }\r\n return processCategories(range)\r\n },\r\n getRangeData: function(series) {\r\n var points = series.getPoints();\r\n var useAggregation = series.useAggregation();\r\n var argumentAxis = series.getArgumentAxis();\r\n var argumentCalculator = getRangeCalculator(series.argumentAxisType, points.length > 1 && argumentAxis, createGetLogFunction(series.argumentAxisType, argumentAxis));\r\n var valueRangeCalculator = getRangeCalculator(series.valueAxisType, null, createGetLogFunction(series.valueAxisType, series.getValueAxis()));\r\n var viewportReducer = getViewportReducer(series);\r\n var range = points.reduce((function(range, point, index, points) {\r\n var argument = point.argument;\r\n if (!point.isArgumentCorrect()) {\r\n return range\r\n }\r\n argumentCalculator(range.arg, argument, argument);\r\n if (point.hasValue()) {\r\n valueRangeCalculator(range.val, point.getMinValue(), point.getMaxValue());\r\n viewportReducer(range.viewport, point, index, points)\r\n }\r\n return range\r\n }), {\r\n arg: getInitialRange(series.argumentAxisType, series.argumentType, null !== argumentAxis && void 0 !== argumentAxis && argumentAxis.aggregatedPointBetweenTicks() ? void 0 : series.getArgumentRangeInitialValue()),\r\n val: getInitialRange(series.valueAxisType, series.valueType, points.length ? series.getValueRangeInitialValue() : void 0),\r\n viewport: getInitialRange(series.valueAxisType, series.valueType, points.length ? series.getValueRangeInitialValue() : void 0)\r\n });\r\n if (useAggregation) {\r\n var argumentRange = this.getArgumentRange(series);\r\n if (series.argumentAxisType === DISCRETE) {\r\n range.arg = argumentRange\r\n } else {\r\n var viewport = argumentAxis.getViewport();\r\n if (isDefined(viewport.startValue) || isDefined(viewport.length)) {\r\n argumentCalculator(range.arg, argumentRange.min, argumentRange.min)\r\n }\r\n if (isDefined(viewport.endValue) || isDefined(viewport.length) && isDefined(viewport.startValue)) {\r\n argumentCalculator(range.arg, argumentRange.max, argumentRange.max)\r\n }\r\n }\r\n }\r\n processCategories(range.arg);\r\n processCategories(range.val);\r\n return range\r\n },\r\n getViewport: function(series) {\r\n var points = series.getPoints();\r\n var range;\r\n var reducer = getViewportReducer(series);\r\n range = getInitialRange(series.valueAxisType, series.valueType, points.length ? series.getValueRangeInitialValue() : void 0);\r\n points.some((function(point, index) {\r\n reducer(range, point, index, points);\r\n return range.endCalc\r\n }));\r\n return range\r\n },\r\n getPointsInViewPort: function(series) {\r\n var argumentViewPortFilter = getViewPortFilter(series.getArgumentAxis().visualRange() || {});\r\n var valueViewPort = series.getValueAxis().visualRange() || {};\r\n var valueViewPortFilter = getViewPortFilter(valueViewPort);\r\n var points = series.getPoints();\r\n var addValue = function(values, point, isEdge) {\r\n var minValue = point.getMinValue();\r\n var maxValue = point.getMaxValue();\r\n var isMinValueInViewPort = valueViewPortFilter(minValue);\r\n var isMaxValueInViewPort = valueViewPortFilter(maxValue);\r\n if (isMinValueInViewPort) {\r\n values.push(minValue)\r\n }\r\n if (maxValue !== minValue && isMaxValueInViewPort) {\r\n values.push(maxValue)\r\n }\r\n if (isEdge && !isMinValueInViewPort && !isMaxValueInViewPort) {\r\n if (!values.length) {\r\n values.push(valueViewPort.startValue)\r\n } else {\r\n values.push(valueViewPort.endValue)\r\n }\r\n }\r\n };\r\n var addEdgePoints = isLineSeries(series) ? function(result, points, index) {\r\n var point = points[index];\r\n var prevPoint = points[index - 1];\r\n var nextPoint = points[index + 1];\r\n if (nextPoint && argumentViewPortFilter(nextPoint.argument)) {\r\n addValue(result[1], point, true)\r\n }\r\n if (prevPoint && argumentViewPortFilter(prevPoint.argument)) {\r\n addValue(result[1], point, true)\r\n }\r\n } : noop;\r\n return points.reduce((function(result, point, index) {\r\n if (argumentViewPortFilter(point.argument)) {\r\n addValue(result[0], point)\r\n } else {\r\n addEdgePoints(result, points, index)\r\n }\r\n return result\r\n }), [\r\n [],\r\n []\r\n ])\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Promise from \"../core/polyfills/promise\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"
    \", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterial(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"
    \");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = new Callbacks;\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.light.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar LIGHT_GREY = \"#d3d3d3\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RED = \"#ff0000\";\r\nvar PRIMARY_TITLE_COLOR = \"#232323\";\r\nvar SECONDARY_TITLE_COLOR = \"#767676\";\r\nvar NONE = \"none\";\r\nvar SOLID = \"solid\";\r\nvar TOP = \"top\";\r\nvar RIGHT = \"right\";\r\nvar BOTTOM = \"bottom\";\r\nvar LEFT = \"left\";\r\nvar CENTER = \"center\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.light\",\r\n isDefault: true,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n family: \"'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 400,\r\n size: 12,\r\n cursor: \"default\"\r\n },\r\n redrawOnResize: true,\r\n backgroundColor: WHITE,\r\n primaryTitleColor: PRIMARY_TITLE_COLOR,\r\n secondaryTitleColor: SECONDARY_TITLE_COLOR,\r\n gridColor: LIGHT_GREY,\r\n axisColor: SECONDARY_TITLE_COLOR,\r\n title: {\r\n backgroundColor: WHITE,\r\n font: {\r\n size: 28,\r\n family: \"'Segoe UI Light', 'Helvetica Neue Light', 'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n },\r\n offset: 0,\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n loadingIndicator: {\r\n text: \"Loading...\"\r\n },\r\n export: {\r\n backgroundColor: WHITE,\r\n margin: 10,\r\n font: {\r\n size: 14,\r\n color: PRIMARY_TITLE_COLOR,\r\n weight: 400\r\n },\r\n button: {\r\n margin: {\r\n top: 8,\r\n left: 10,\r\n right: 10,\r\n bottom: 8\r\n },\r\n default: {\r\n color: \"#333\",\r\n borderColor: \"#ddd\",\r\n backgroundColor: WHITE\r\n },\r\n hover: {\r\n color: \"#333\",\r\n borderColor: \"#bebebe\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: BLACK,\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: \"#333\",\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n },\r\n shadowColor: LIGHT_GREY\r\n },\r\n tooltip: {\r\n enabled: false,\r\n border: {\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n font: {\r\n color: PRIMARY_TITLE_COLOR\r\n },\r\n color: WHITE,\r\n arrowLength: 10,\r\n paddingLeftRight: 18,\r\n paddingTopBottom: 15,\r\n textAlignment: \"center\",\r\n shared: false,\r\n location: CENTER,\r\n shadow: {\r\n opacity: .4,\r\n offsetX: 0,\r\n offsetY: 4,\r\n blur: 2,\r\n color: BLACK\r\n },\r\n interactive: false\r\n },\r\n legend: {\r\n hoverMode: \"includePoints\",\r\n verticalAlignment: TOP,\r\n horizontalAlignment: RIGHT,\r\n position: OUTSIDE,\r\n visible: true,\r\n margin: 10,\r\n markerSize: 12,\r\n border: {\r\n visible: false,\r\n width: 1,\r\n cornerRadius: 0,\r\n dashStyle: SOLID\r\n },\r\n paddingLeftRight: 20,\r\n paddingTopBottom: 15,\r\n columnCount: 0,\r\n rowCount: 0,\r\n columnItemSpacing: 20,\r\n rowItemSpacing: 8,\r\n title: {\r\n backgroundColor: WHITE,\r\n margin: {\r\n left: 0,\r\n bottom: 9,\r\n right: 0,\r\n top: 0\r\n },\r\n font: {\r\n size: 18,\r\n weight: 200\r\n },\r\n subtitle: {\r\n offset: 0,\r\n font: {\r\n size: 14\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n \"chart:common\": {\r\n animation: {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\",\r\n maxPointCountSupported: 300\r\n },\r\n commonSeriesSettings: {\r\n border: {\r\n visible: false,\r\n width: 2\r\n },\r\n showInLegend: true,\r\n visible: true,\r\n hoverMode: \"nearestPoint\",\r\n selectionMode: \"includePoints\",\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n valueErrorBar: {\r\n displayMode: \"auto\",\r\n value: 1,\r\n color: BLACK,\r\n lineWidth: 2,\r\n edgeLength: 8\r\n },\r\n label: {\r\n visible: false,\r\n alignment: CENTER,\r\n rotationAngle: 0,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n radialOffset: 0,\r\n showForZeroValues: true,\r\n customizeText: void 0,\r\n maxLabelCount: void 0,\r\n position: OUTSIDE,\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: false,\r\n width: 1\r\n }\r\n }\r\n },\r\n seriesSelectionMode: \"single\",\r\n pointSelectionMode: \"single\",\r\n equalRowHeight: true,\r\n dataPrepareSettings: {\r\n checkTypeForAllData: false,\r\n convertToAxisDataType: true,\r\n sortingMethod: true\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n resolveLabelOverlapping: NONE\r\n },\r\n \"chart:common:axis\": {\r\n visible: true,\r\n valueMarginsEnabled: true,\r\n placeholderSize: null,\r\n logarithmBase: 10,\r\n discreteAxisDivisionMode: \"betweenLabels\",\r\n aggregatedPointsPosition: \"betweenTicks\",\r\n width: 1,\r\n label: {\r\n visible: true\r\n },\r\n grid: {\r\n visible: false,\r\n width: 1\r\n },\r\n minorGrid: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3\r\n },\r\n tick: {\r\n visible: true,\r\n width: 1,\r\n length: 7,\r\n shift: 3\r\n },\r\n minorTick: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3,\r\n length: 7,\r\n shift: 3\r\n },\r\n stripStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 5\r\n },\r\n constantLineStyle: {\r\n width: 1,\r\n color: BLACK,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: true,\r\n position: INSIDE\r\n }\r\n },\r\n marker: {\r\n label: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#333333\"\r\n },\r\n tooltipEnabled: true,\r\n border: {\r\n width: 1,\r\n color: \"#dddddd\",\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n color: WHITE,\r\n opacity: .9,\r\n arrowLength: 14,\r\n arrowWidth: 14,\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10,\r\n shadow: {\r\n opacity: .15,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 4,\r\n color: BLACK\r\n },\r\n image: {\r\n width: 30,\r\n height: 30\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\",\r\n allowDragging: false\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n type: \"line\",\r\n stack: \"default\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stepline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n steparea: {\r\n border: {\r\n visible: true,\r\n width: 2\r\n },\r\n point: {\r\n visible: false\r\n },\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n opacity: .5\r\n },\r\n spline: {\r\n width: 2,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n splinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n stackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n fullstackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n rangebar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n rangearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n rangesplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bubble: {\r\n opacity: .5,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n candlestick: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n },\r\n stock: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n }\r\n },\r\n crosshair: {\r\n enabled: false,\r\n color: \"#f05b41\",\r\n width: 1,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: false,\r\n font: {\r\n color: WHITE,\r\n size: 12\r\n }\r\n },\r\n verticalLine: {\r\n visible: true\r\n },\r\n horizontalLine: {\r\n visible: true\r\n }\r\n },\r\n commonAxisSettings: {\r\n multipleAxesSpacing: 5,\r\n forceUserTickInterval: false,\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n label: {\r\n displayMode: \"standard\",\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 10,\r\n wordWrap: \"normal\",\r\n textOverflow: \"none\"\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 6,\r\n alignment: CENTER\r\n },\r\n constantLineStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10\r\n }\r\n },\r\n horizontalAxis: {\r\n position: BOTTOM,\r\n axisDivisionFactor: 70,\r\n label: {\r\n rotationAngle: 90,\r\n staggeringSpacing: 5,\r\n alignment: CENTER\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: RIGHT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n verticalAxis: {\r\n position: LEFT,\r\n axisDivisionFactor: 40,\r\n label: {\r\n alignment: RIGHT\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: CENTER\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n argumentAxis: {\r\n endOnTick: false,\r\n workWeek: [1, 2, 3, 4, 5]\r\n },\r\n valueAxis: {\r\n grid: {\r\n visible: true\r\n },\r\n autoBreaksEnabled: false,\r\n maxAutoBreakCount: 4\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: NONE,\r\n border: {\r\n color: LIGHT_GREY,\r\n width: 1,\r\n visible: false,\r\n top: true,\r\n bottom: true,\r\n left: true,\r\n right: true,\r\n dashStyle: SOLID\r\n }\r\n },\r\n scrollBar: {\r\n visible: false,\r\n offset: 5,\r\n color: \"gray\",\r\n width: 10\r\n },\r\n adjustOnZoom: true,\r\n autoHidePointMarkers: true,\r\n rotated: false,\r\n synchronizeMultiAxes: true,\r\n stickyHovering: true,\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: \"#2a2a2a\",\r\n opacity: .2\r\n },\r\n panKey: \"shift\",\r\n allowMouseWheel: true,\r\n allowTouchGestures: true\r\n }\r\n },\r\n pie: {\r\n innerRadius: .5,\r\n minDiameter: .5,\r\n type: \"pie\",\r\n dataPrepareSettings: {\r\n _skipArgumentSorting: true\r\n },\r\n commonSeriesSettings: {\r\n pie: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n doughnut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n donut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\"\r\n }\r\n },\r\n legend: {\r\n hoverMode: \"allArgumentPoints\",\r\n backgroundColor: NONE\r\n },\r\n adaptiveLayout: {\r\n keepLabels: false\r\n }\r\n },\r\n gauge: {\r\n scale: {\r\n tick: {\r\n visible: true,\r\n length: 5,\r\n width: 2,\r\n opacity: 1\r\n },\r\n minorTick: {\r\n visible: false,\r\n length: 3,\r\n width: 1,\r\n opacity: 1\r\n },\r\n label: {\r\n visible: true,\r\n alignment: CENTER,\r\n hideFirstOrLast: \"last\",\r\n overlappingBehavior: \"hide\"\r\n },\r\n position: TOP,\r\n endOnTick: false\r\n },\r\n rangeContainer: {\r\n offset: 0,\r\n width: 5,\r\n backgroundColor: \"#808080\"\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: \"#c2c2c2\"\r\n },\r\n rangebar: {\r\n space: 2,\r\n size: 10,\r\n color: \"#cbc5cf\",\r\n backgroundColor: NONE,\r\n text: {\r\n indent: 0,\r\n font: {\r\n size: 14,\r\n color: null\r\n }\r\n }\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#e18e92\"\r\n },\r\n trianglemarker: {\r\n space: 2,\r\n length: 14,\r\n width: 13,\r\n color: \"#8798a5\"\r\n },\r\n textcloud: {\r\n arrowLength: 5,\r\n horizontalOffset: 6,\r\n verticalOffset: 3,\r\n color: \"#679ec5\",\r\n text: {\r\n font: {\r\n color: WHITE,\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n },\r\n _circular: {\r\n scale: {\r\n scaleDivisionFactor: 17,\r\n orientation: OUTSIDE,\r\n label: {\r\n indentFromTick: 10\r\n }\r\n },\r\n rangeContainer: {\r\n orientation: OUTSIDE\r\n },\r\n valueIndicatorType: \"rectangleneedle\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangleneedle\",\r\n _default: {\r\n offset: 20,\r\n indentFromCenter: 0,\r\n width: 2,\r\n spindleSize: 14,\r\n spindleGapSize: 10,\r\n beginAdaptingAtRadius: 50\r\n },\r\n triangleneedle: {\r\n width: 4\r\n },\r\n twocolorneedle: {\r\n space: 2,\r\n secondFraction: .4\r\n },\r\n rangebar: {\r\n offset: 30\r\n },\r\n trianglemarker: {\r\n offset: 6\r\n },\r\n textcloud: {\r\n offset: -6\r\n }\r\n }\r\n },\r\n _linear: {\r\n scale: {\r\n scaleDivisionFactor: 25,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM,\r\n label: {\r\n indentFromTick: -10\r\n }\r\n },\r\n rangeContainer: {\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n valueIndicatorType: \"rangebar\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangle\",\r\n _default: {\r\n offset: 2.5,\r\n length: 15,\r\n width: 15\r\n },\r\n rectangle: {\r\n width: 10\r\n },\r\n rangebar: {\r\n offset: 10,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n trianglemarker: {\r\n offset: 10,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n },\r\n textcloud: {\r\n offset: -1,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#e0e0e0\",\r\n relativeInnerRadius: .3,\r\n barSpacing: 4,\r\n resolveLabelOverlapping: \"hide\",\r\n label: {\r\n indent: 20,\r\n connectorWidth: 2,\r\n font: {\r\n size: 16\r\n }\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n valueMarginsEnabled: true,\r\n width: 1,\r\n color: BLACK,\r\n opacity: .1,\r\n showCustomBoundaryTicks: true,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n alignment: CENTER,\r\n visible: true,\r\n topIndent: 7,\r\n font: {\r\n size: 11\r\n }\r\n },\r\n tick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .17,\r\n visible: true,\r\n length: 12\r\n },\r\n minorTick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .05,\r\n visible: true,\r\n length: 12\r\n },\r\n marker: {\r\n width: 1,\r\n color: \"#000000\",\r\n opacity: .1,\r\n visible: true,\r\n separatorHeight: 33,\r\n topIndent: 10,\r\n textLeftIndent: 7,\r\n textTopIndent: 11,\r\n label: {}\r\n },\r\n logarithmBase: 10,\r\n workWeek: [1, 2, 3, 4, 5],\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n endOnTick: false\r\n },\r\n selectedRangeColor: \"#606060\",\r\n sliderMarker: {\r\n visible: true,\r\n paddingTopBottom: 2,\r\n paddingLeftRight: 4,\r\n color: \"#606060\",\r\n invalidRangeColor: RED,\r\n font: {\r\n color: WHITE,\r\n size: 11\r\n }\r\n },\r\n sliderHandle: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .2\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: \"#c0bae1\",\r\n visible: true,\r\n image: {\r\n location: \"full\"\r\n }\r\n },\r\n behavior: {\r\n snapToTicks: true,\r\n animationEnabled: true,\r\n moveSelectedRangeByClick: true,\r\n manualRangeSelectionEnabled: true,\r\n allowSlidersSwap: true,\r\n callValueChanged: \"onMovingComplete\"\r\n },\r\n redrawOnResize: true,\r\n chart: {\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n topIndent: .1,\r\n bottomIndent: 0,\r\n valueAxis: {\r\n inverted: false,\r\n logarithmBase: 10\r\n },\r\n commonSeriesSettings: {\r\n type: \"area\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: false\r\n },\r\n scatter: {\r\n point: {\r\n visible: true\r\n }\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n title: {\r\n margin: 10\r\n },\r\n background: {\r\n borderWidth: 1,\r\n borderColor: \"#cacaca\"\r\n },\r\n layer: {\r\n label: {\r\n enabled: false,\r\n stroke: WHITE,\r\n \"stroke-width\": 1,\r\n \"stroke-opacity\": .7,\r\n font: {\r\n color: SOME_GREY,\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderWidth: 1,\r\n borderColor: WHITE,\r\n color: \"#d2d2d2\",\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN,\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n borderWidth: 2,\r\n color: \"#ba8365\",\r\n hoveredColor: \"#a94813\",\r\n selectedBorderWidth: 3,\r\n selectedColor: \"#e55100\",\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:marker\": {\r\n label: {\r\n enabled: true,\r\n \"stroke-width\": 1,\r\n font: {\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:marker:dot\": {\r\n borderWidth: 2,\r\n borderColor: WHITE,\r\n size: 8,\r\n selectedStep: 2,\r\n backStep: 18,\r\n backColor: WHITE,\r\n backOpacity: .32,\r\n shadow: true\r\n },\r\n \"layer:marker:bubble\": {\r\n minSize: 20,\r\n maxSize: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:pie\": {\r\n size: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:image\": {\r\n size: 20\r\n },\r\n legend: {\r\n verticalAlignment: BOTTOM,\r\n horizontalAlignment: RIGHT,\r\n position: INSIDE,\r\n backgroundOpacity: .65,\r\n border: {\r\n visible: true\r\n },\r\n paddingLeftRight: 16,\r\n paddingTopBottom: 12\r\n },\r\n controlBar: {\r\n borderColor: \"#5d5d5d\",\r\n borderWidth: 3,\r\n color: WHITE,\r\n margin: 20,\r\n opacity: .3\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n border: {\r\n width: 1,\r\n opacity: .2,\r\n color: \"#000000\"\r\n },\r\n color: \"#5f8b95\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {\r\n opacity: 1\r\n }\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: \"#ffffff\",\r\n weight: 600\r\n },\r\n shadow: {\r\n opacity: .6,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 2,\r\n color: \"#000000\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n group: {\r\n padding: 4,\r\n border: {\r\n width: 1\r\n },\r\n color: \"#eeeeee\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n weight: 600\r\n },\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n title: {\r\n subtitle: {}\r\n },\r\n tooltip: {},\r\n loadingIndicator: {}\r\n },\r\n sparkline: {\r\n lineColor: \"#666666\",\r\n lineWidth: 2,\r\n areaOpacity: .2,\r\n minColor: \"#e8c267\",\r\n maxColor: \"#e55253\",\r\n barPositiveColor: \"#a9a9a9\",\r\n barNegativeColor: \"#d7d7d7\",\r\n winColor: \"#a9a9a9\",\r\n lossColor: \"#d7d7d7\",\r\n firstLastColor: \"#666666\",\r\n pointSymbol: \"circle\",\r\n pointColor: WHITE,\r\n pointSize: 4,\r\n type: \"line\",\r\n argumentField: \"arg\",\r\n valueField: \"val\",\r\n winlossThreshold: 0,\r\n showFirstLast: true,\r\n showMinMax: false,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n bullet: {\r\n color: \"#e8c267\",\r\n targetColor: \"#666666\",\r\n targetWidth: 4,\r\n showTarget: true,\r\n showZeroLevel: true,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n polar: {\r\n commonSeriesSettings: {\r\n type: \"scatter\",\r\n closed: true,\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedline: {\r\n width: 2\r\n },\r\n bar: {\r\n opacity: .8\r\n },\r\n stackedbar: {\r\n opacity: .8\r\n }\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n barGroupPadding: .3,\r\n commonAxisSettings: {\r\n visible: true,\r\n forceUserTickInterval: false,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 5\r\n },\r\n grid: {\r\n visible: true\r\n },\r\n minorGrid: {\r\n visible: true\r\n },\r\n tick: {\r\n visible: true\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 10\r\n }\r\n },\r\n argumentAxis: {\r\n startAngle: 0,\r\n firstPointOnStartAngle: false,\r\n period: void 0\r\n },\r\n valueAxis: {\r\n endOnTick: false,\r\n tick: {\r\n visible: false\r\n }\r\n },\r\n horizontalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 50,\r\n label: {\r\n alignment: CENTER\r\n }\r\n },\r\n verticalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 30,\r\n label: {\r\n alignment: RIGHT\r\n }\r\n }\r\n },\r\n funnel: {\r\n sortData: true,\r\n valueField: \"val\",\r\n colorField: \"color\",\r\n argumentField: \"arg\",\r\n hoverEnabled: true,\r\n selectionMode: \"single\",\r\n item: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n tooltip: {\r\n customizeTooltip: function(info) {\r\n return {\r\n text: info.item.argument + \" \" + info.valueText\r\n }\r\n }\r\n },\r\n inverted: false,\r\n algorithm: \"dynamicSlope\",\r\n neckWidth: 0,\r\n neckHeight: 0,\r\n resolveLabelOverlapping: \"shift\",\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\",\r\n visible: true,\r\n horizontalAlignment: RIGHT,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n showForZeroValues: false,\r\n customizeText: function(info) {\r\n return info.item.argument + \" \" + info.valueText\r\n },\r\n position: \"columns\",\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: true,\r\n width: 1,\r\n opacity: .5\r\n }\r\n }\r\n },\r\n sankey: {\r\n sourceField: \"source\",\r\n targetField: \"target\",\r\n weightField: \"weight\",\r\n hoverEnabled: true,\r\n alignment: CENTER,\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n label: {\r\n visible: true,\r\n horizontalOffset: 8,\r\n verticalOffset: 0,\r\n overlappingBehavior: \"ellipsis\",\r\n useNodeColors: false,\r\n font: {\r\n color: BLACK,\r\n weight: 500\r\n },\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n customizeText: function(info) {\r\n return info.title\r\n },\r\n shadow: {\r\n opacity: .2,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 1,\r\n color: WHITE\r\n }\r\n },\r\n title: {\r\n margin: 10,\r\n font: {\r\n size: 28,\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n tooltip: {\r\n enabled: true\r\n },\r\n node: {\r\n padding: 30,\r\n width: 8,\r\n opacity: 1,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n colorMode: \"none\",\r\n opacity: .3,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n opacity: .5,\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: void 0\r\n}, {\r\n theme: {\r\n name: \"generic.light.compact\"\r\n },\r\n baseThemeName: \"generic.light\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.carmine.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#f05b41\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#8899a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#dee1e3\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.carmine\",\r\n defaultPalette: \"Carmine\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#f5e7e4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f74d61\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.carmine.compact\"\r\n },\r\n baseThemeName: \"generic.carmine\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.dark.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar BORDER_COLOR = \"#494949\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.dark\",\r\n font: {\r\n color: \"#808080\"\r\n },\r\n backgroundColor: \"#2a2a2a\",\r\n primaryTitleColor: \"#dedede\",\r\n secondaryTitleColor: \"#a3a3a3\",\r\n gridColor: \"#555555\",\r\n axisColor: \"#a3a3a3\",\r\n export: {\r\n backgroundColor: \"#2a2a2a\",\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n default: {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: \"#2e2e2e\"\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#444\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#444444\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#555555\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n tooltip: {\r\n color: SOME_GREY,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: \"#929292\"\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#929292\"\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: SOME_GREY,\r\n shadow: {\r\n opacity: .008,\r\n offsetY: 4,\r\n blur: 8\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: GREY_GREEN\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: SOME_GREY,\r\n opacity: .9\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: GREY_GREEN,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: GREY_GREEN\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: GREY_GREEN\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n border: {\r\n color: \"#2a2a2a\"\r\n },\r\n hoverStyle: {\r\n color: \"#bbbbbb\"\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.dark.compact\"\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.contrast.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar CONTRAST_ACTIVE = \"#cf00da\";\r\nvar MARKER_COLOR = \"#f8ca00\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.contrast\",\r\n defaultPalette: \"Bright\",\r\n font: {\r\n color: WHITE\r\n },\r\n backgroundColor: BLACK,\r\n primaryTitleColor: WHITE,\r\n secondaryTitleColor: WHITE,\r\n gridColor: WHITE,\r\n axisColor: WHITE,\r\n export: {\r\n backgroundColor: BLACK,\r\n font: {\r\n color: WHITE\r\n },\r\n button: {\r\n default: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n hover: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: \"#cf00d7\"\r\n },\r\n focus: {\r\n color: WHITE,\r\n borderColor: \"#cf00d7\",\r\n backgroundColor: BLACK\r\n },\r\n active: {\r\n color: BLACK,\r\n borderColor: WHITE,\r\n backgroundColor: WHITE\r\n }\r\n },\r\n borderColor: WHITE,\r\n menuButtonColor: BLACK,\r\n activeBackgroundColor: WHITE,\r\n activeColor: BLACK,\r\n selectedBorderColor: CONTRAST_ACTIVE,\r\n selectedColor: CONTRAST_ACTIVE,\r\n shadowColor: \"none\"\r\n },\r\n tooltip: {\r\n border: {\r\n color: WHITE\r\n },\r\n font: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n valueErrorBar: {\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n },\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n chart: {\r\n commonSeriesSettings: {},\r\n crosshair: {\r\n color: \"#cf00d7\"\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: BLACK,\r\n border: {\r\n color: WHITE\r\n }\r\n },\r\n scrollBar: {\r\n color: WHITE\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE,\r\n opacity: .7\r\n }\r\n }\r\n },\r\n pie: {\r\n commonSeriesSettings: {\r\n pie: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n doughnut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n donut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: WHITE\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: WHITE\r\n },\r\n rangebar: {\r\n color: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n twocolorneedle: {\r\n secondColor: WHITE\r\n },\r\n trianglemarker: {\r\n color: WHITE\r\n },\r\n textcloud: {\r\n color: WHITE,\r\n text: {\r\n font: {\r\n color: BLACK\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .4\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .12\r\n },\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n selectedRangeColor: CONTRAST_ACTIVE,\r\n sliderMarker: {\r\n color: CONTRAST_ACTIVE\r\n },\r\n sliderHandle: {\r\n color: CONTRAST_ACTIVE,\r\n opacity: 1\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: BLACK\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: WHITE\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: BLACK,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE,\r\n label: {\r\n font: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n color: \"#267cff\",\r\n hoveredColor: \"#f613ff\",\r\n selectedColor: WHITE\r\n },\r\n \"layer:marker:dot\": {\r\n borderColor: BLACK,\r\n color: MARKER_COLOR,\r\n backColor: BLACK,\r\n backOpacity: .32\r\n },\r\n \"layer:marker:bubble\": {\r\n color: MARKER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n controlBar: {\r\n borderColor: WHITE,\r\n color: BLACK,\r\n opacity: .3\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n color: \"#70c92f\"\r\n },\r\n group: {\r\n color: \"#797979\",\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BLACK\r\n },\r\n bullet: {},\r\n polar: {\r\n commonSeriesSettings: {}\r\n },\r\n funnel: {\r\n label: {\r\n connector: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n }\r\n },\r\n link: {\r\n opacity: .5,\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n opacity: .9\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.contrast.compact\"\r\n },\r\n baseThemeName: \"generic.contrast\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.darkmoon.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#3debd3\";\r\nvar BACKGROUND_COLOR = \"#465672\";\r\nvar TITLE_COLOR = \"#fff\";\r\nvar SUBTITLE_COLOR = \"#919bac\";\r\nvar TEXT_COLOR = \"#c7ccd4\";\r\nvar BORDER_COLOR = \"#596980\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.darkmoon\",\r\n defaultPalette: \"Dark Moon\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7a889e\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#9da8b8\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#6b80a4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#62789e\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: \"#62789e\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR,\r\n text: {\r\n font: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#526280\"\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f9517e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: BORDER_COLOR\r\n },\r\n \"layer:area\": {\r\n color: \"#97a3b6\",\r\n borderColor: BACKGROUND_COLOR\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#000\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}, {\r\n theme: {\r\n name: \"generic.darkmoon.compact\"\r\n },\r\n baseThemeName: \"generic.darkmoon\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.darkviolet.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#9c63ff\";\r\nvar BACKGROUND_COLOR = \"#17171f\";\r\nvar TITLE_COLOR = \"#f5f6f7\";\r\nvar SUBTITLE_COLOR = \"#fff\";\r\nvar TEXT_COLOR = \"#b2b2b6\";\r\nvar BORDER_COLOR = \"#343840\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.darkviolet\",\r\n defaultPalette: \"Dark Violet\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#414152\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5c5c74\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#3c3c51\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: \"#414152\"\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: \"#414152\"\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#fff\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}, {\r\n theme: {\r\n name: \"generic.darkviolet.compact\"\r\n },\r\n baseThemeName: \"generic.darkviolet\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.greenmist.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#3cbab2\";\r\nvar BACKGROUND_COLOR = \"#f5f5f5\";\r\nvar TITLE_COLOR = \"#28484f\";\r\nvar SUBTITLE_COLOR = \"#7eb2be\";\r\nvar TEXT_COLOR = \"#657c80\";\r\nvar BORDER_COLOR = \"#dedede\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.greenmist\",\r\n defaultPalette: \"Green Mist\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a2b4b8\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7f989e\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.8)\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#ffc852\",\r\n maxColor: \"#f74a5e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.greenmist.compact\"\r\n },\r\n baseThemeName: \"generic.greenmist\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.softblue.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#7ab8eb\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#99a1a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#e8eaeb\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.softblue\",\r\n defaultPalette: \"Soft Blue\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c9d0d4\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a7b2b9\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.softblue.compact\"\r\n },\r\n baseThemeName: \"generic.softblue\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/material.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar FONT_FAMILY = \"'Roboto', 'RobotoFallback', 'Helvetica', 'Arial', sans-serif\";\r\nvar LIGHT_TITLE_COLOR = \"rgba(0,0,0,0.87)\";\r\nvar LIGHT_LABEL_COLOR = \"rgba(0,0,0,0.54)\";\r\nvar DARK_TITLE_COLOR = \"rgba(255,255,255,0.87)\";\r\nvar DARK_LABEL_COLOR = \"rgba(255,255,255,0.54)\";\r\nvar DARK_BACKGROUND_COLOR = \"#363640\";\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar LABEL_BORDER_COLOR = \"#494949\";\r\nvar BREAK_STYLE_COLOR = \"#818181\";\r\nvar themes = [{\r\n theme: {\r\n name: \"material\",\r\n defaultPalette: \"Material\",\r\n font: {\r\n family: FONT_FAMILY\r\n },\r\n title: {\r\n margin: {\r\n top: 20,\r\n bottom: 20,\r\n left: 0,\r\n right: 0\r\n },\r\n font: {\r\n size: 20,\r\n family: FONT_FAMILY,\r\n weight: 500\r\n },\r\n horizontalAlignment: \"left\",\r\n subtitle: {\r\n font: {\r\n size: 14\r\n },\r\n horizontalAlignment: \"left\"\r\n }\r\n },\r\n tooltip: {\r\n shadow: {\r\n opacity: 0\r\n },\r\n border: {\r\n visible: false\r\n },\r\n paddingLeftRight: 8,\r\n paddingTopBottom: 6,\r\n arrowLength: 0,\r\n location: \"edge\",\r\n color: \"#616161\",\r\n font: {\r\n color: WHITE\r\n },\r\n cornerRadius: 4\r\n },\r\n chart: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n },\r\n label: {\r\n font: {\r\n size: 11\r\n }\r\n }\r\n },\r\n commonAnnotationSettings: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: \"#616161\"\r\n },\r\n color: \"#616161\",\r\n arrowLength: 14,\r\n arrowWidth: 0,\r\n shadow: {\r\n opacity: .08,\r\n offsetY: 4,\r\n blur: 8\r\n },\r\n cornerRadius: 4\r\n }\r\n },\r\n pie: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n polar: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n }\r\n },\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n sliderHandle: {\r\n opacity: .5\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n label: {\r\n font: {\r\n weight: 500\r\n }\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"material.light\",\r\n gridColor: \"#e0e0e0\",\r\n axisColor: LIGHT_LABEL_COLOR,\r\n primaryTitleColor: LIGHT_TITLE_COLOR,\r\n legend: {\r\n font: {\r\n color: LIGHT_LABEL_COLOR\r\n }\r\n },\r\n chart: {\r\n scrollBar: {\r\n color: \"#bfbfbf\",\r\n opacity: .7\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: \"rgba(0,0,0,0.2)\"\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#efefef\"\r\n }\r\n },\r\n baseThemeName: \"material\"\r\n}, {\r\n theme: {\r\n name: \"material.dark\",\r\n gridColor: \"#515159\",\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n axisColor: DARK_LABEL_COLOR,\r\n font: {\r\n color: DARK_LABEL_COLOR\r\n },\r\n primaryTitleColor: DARK_TITLE_COLOR,\r\n secondaryTitleColor: DARK_TITLE_COLOR,\r\n tooltip: {\r\n color: \"#000\"\r\n },\r\n export: {\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n default: {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: DARK_BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#3f3f4b\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n border: {\r\n color: \"#000\"\r\n },\r\n color: \"#000\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: WHITE,\r\n opacity: .1\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: DARK_BACKGROUND_COLOR,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: DARK_BACKGROUND_COLOR\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"material\"\r\n}];\r\n\r\nfunction getMaterialColorScheme(accentName, themeName, accentColor) {\r\n return {\r\n theme: {\r\n name: \"material.\" + accentName + \".\" + themeName,\r\n rangeSelector: {\r\n selectedRangeColor: accentColor,\r\n sliderMarker: {\r\n color: accentColor\r\n },\r\n sliderHandle: {\r\n color: accentColor\r\n }\r\n },\r\n map: {\r\n \"layer:marker:dot\": {\r\n color: accentColor\r\n },\r\n \"layer:marker:bubble\": {\r\n color: accentColor\r\n },\r\n legend: {\r\n markerColor: accentColor\r\n }\r\n },\r\n bullet: {\r\n color: accentColor\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: accentColor\r\n },\r\n textcloud: {\r\n color: accentColor\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"material.\" + themeName\r\n }\r\n}\r\nvar materialAccents = {\r\n blue: \"#03a9f4\",\r\n lime: \"#cddc39\",\r\n orange: \"#ff5722\",\r\n purple: \"#9c27b0\",\r\n teal: \"#009688\"\r\n};\r\nfor (var accent in materialAccents) {\r\n if (Object.prototype.hasOwnProperty.call(materialAccents, accent)) {\r\n var color = materialAccents[accent];\r\n themes.push(getMaterialColorScheme(accent, \"light\", color), getMaterialColorScheme(accent, \"dark\", color), {\r\n theme: {\r\n name: \"material.\".concat(accent, \".light.compact\")\r\n },\r\n baseThemeName: \"material.\".concat(accent, \".light\")\r\n }, {\r\n theme: {\r\n name: \"material.\".concat(accent, \".dark.compact\")\r\n },\r\n baseThemeName: \"material.\".concat(accent, \".dark\")\r\n })\r\n }\r\n}\r\nexport default themes;\r\n","/**\r\n * DevExtreme (esm/viz/themes.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n current as getCurrentTheme\r\n} from \"../ui/themes\";\r\nimport {\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport lightThemes from \"./core/themes/generic.light\";\r\nimport carmineThemes from \"./core/themes/generic.carmine\";\r\nimport darkThemes from \"./core/themes/generic.dark\";\r\nimport contrastThemes from \"./core/themes/generic.contrast\";\r\nimport darkMoonThemes from \"./core/themes/generic.darkmoon\";\r\nimport darkVioletThemes from \"./core/themes/generic.darkviolet\";\r\nimport greenMistThemes from \"./core/themes/generic.greenmist\";\r\nimport softBlueThemes from \"./core/themes/generic.softblue\";\r\nimport materialThemes from \"./core/themes/material\";\r\nvar themes = {};\r\nvar themesMapping = {};\r\nvar themesSchemeMapping = {};\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar currentThemeName = null;\r\nvar defaultTheme;\r\nvar nextCacheUid = 0;\r\nvar widgetsCache = {};\r\nexport function getTheme(themeName) {\r\n var name = normalizeEnum(themeName);\r\n return themes[name] || themes[themesMapping[name] || currentTheme()]\r\n}\r\n\r\nfunction findThemeNameByName(name, scheme) {\r\n return themesMapping[name + \".\" + scheme] || themesSchemeMapping[name + \".\" + scheme] || themesMapping[name]\r\n}\r\n\r\nfunction findThemeNameByPlatform(platform, version, scheme) {\r\n return findThemeNameByName(platform + version, scheme) || findThemeNameByName(platform, scheme)\r\n}\r\nexport function currentTheme(themeName, colorScheme) {\r\n if (!arguments.length) {\r\n return currentThemeName || findThemeNameByName(getCurrentTheme()) || defaultTheme\r\n }\r\n var scheme = normalizeEnum(colorScheme);\r\n currentThemeName = (themeName && themeName.platform ? findThemeNameByPlatform(normalizeEnum(themeName.platform), themeName.version, scheme) : findThemeNameByName(normalizeEnum(themeName), scheme)) || currentThemeName;\r\n return this\r\n}\r\n\r\nfunction getThemeInfo(themeName, splitter) {\r\n var k = themeName.indexOf(splitter);\r\n return k > 0 ? {\r\n name: themeName.substring(0, k),\r\n scheme: themeName.substring(k + 1)\r\n } : null\r\n}\r\n\r\nfunction registerThemeName(themeName, targetThemeName) {\r\n var themeInfo = getThemeInfo(themeName, \".\") || {\r\n name: themeName\r\n };\r\n var name = themeInfo.name;\r\n var scheme = themeInfo.scheme;\r\n if (scheme) {\r\n themesMapping[name] = themesMapping[name] || targetThemeName;\r\n themesMapping[name + \".\" + scheme] = targetThemeName\r\n } else {\r\n themesMapping[name] = targetThemeName\r\n }\r\n}\r\nexport function registerTheme(theme, baseThemeName) {\r\n var themeName = normalizeEnum(theme && theme.name);\r\n if (themeName) {\r\n theme.isDefault && (defaultTheme = themeName);\r\n registerThemeName(themeName, themeName);\r\n themes[themeName] = _extend(true, {}, getTheme(baseThemeName), patchTheme(theme))\r\n }\r\n}\r\nexport function registerThemeSchemeAlias(from, to) {\r\n themesSchemeMapping[from] = to\r\n}\r\n\r\nfunction mergeScalar(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value && void 0 === target[field]) {\r\n target[field] = _value\r\n }\r\n}\r\n\r\nfunction mergeObject(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value) {\r\n target[field] = _extend(true, {}, _value, target[field])\r\n }\r\n}\r\n\r\nfunction patchTheme(theme) {\r\n theme = _extend(true, {\r\n loadingIndicator: {\r\n font: {}\r\n },\r\n export: {\r\n font: {}\r\n },\r\n legend: {\r\n font: {},\r\n border: {}\r\n },\r\n title: {\r\n font: {}\r\n },\r\n tooltip: {\r\n font: {}\r\n },\r\n \"chart:common\": {},\r\n \"chart:common:axis\": {\r\n grid: {},\r\n minorGrid: {},\r\n tick: {},\r\n minorTick: {},\r\n title: {\r\n font: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {},\r\n border: {}\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n candlestick: {}\r\n }\r\n },\r\n pie: {},\r\n polar: {},\r\n gauge: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n barGauge: {},\r\n funnel: {},\r\n sankey: {},\r\n map: {\r\n background: {}\r\n },\r\n treeMap: {\r\n tile: {\r\n selectionStyle: {\r\n border: {}\r\n }\r\n },\r\n group: {\r\n border: {},\r\n selectionStyle: {\r\n border: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n },\r\n chart: {}\r\n },\r\n sparkline: {},\r\n bullet: {}\r\n }, theme);\r\n mergeScalar(theme.loadingIndicator, \"backgroundColor\", theme);\r\n mergeScalar(theme.chart.commonSeriesSettings.candlestick, \"innerColor\", null, theme.backgroundColor);\r\n mergeScalar(theme.map.background, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.title.font, \"color\", null, theme.primaryTitleColor);\r\n mergeObject(theme.title, \"subtitle\", null, theme.title);\r\n mergeScalar(theme.legend.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.legend.border, \"color\", null, theme.gridColor);\r\n patchAxes(theme);\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sparkline\", \"bullet\", \"sankey\"], (function(_, section) {\r\n mergeScalar(theme[section], \"redrawOnResize\", theme);\r\n mergeScalar(theme[section], \"containerBackgroundColor\", null, theme.backgroundColor);\r\n mergeObject(theme[section], \"tooltip\", theme);\r\n mergeObject(theme[section], \"export\", theme)\r\n }));\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sankey\"], (function(_, section) {\r\n mergeObject(theme[section], \"loadingIndicator\", theme);\r\n mergeObject(theme[section], \"legend\", theme);\r\n mergeObject(theme[section], \"title\", theme)\r\n }));\r\n _each([\"chart\", \"pie\", \"polar\"], (function(_, section) {\r\n mergeObject(theme, section, null, theme[\"chart:common\"])\r\n }));\r\n _each([\"chart\", \"polar\"], (function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAxisSettings\", null, theme[\"chart:common:axis\"])\r\n }));\r\n _each([\"chart\", \"polar\", \"map\", \"pie\"], (function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAnnotationSettings\", null, theme[\"chart:common:annotation\"])\r\n }));\r\n mergeObject(theme.rangeSelector.chart, \"commonSeriesSettings\", theme.chart);\r\n mergeObject(theme.rangeSelector.chart, \"dataPrepareSettings\", theme.chart);\r\n mergeScalar(theme.treeMap.group.border, \"color\", null, theme.gridColor);\r\n mergeScalar(theme.treeMap.tile.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.treeMap.group.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.map.legend, \"backgroundColor\", theme);\r\n patchMapLayers(theme);\r\n return theme\r\n}\r\n\r\nfunction patchAxes(theme) {\r\n var commonAxisSettings = theme[\"chart:common:axis\"];\r\n _each([commonAxisSettings.grid, commonAxisSettings.minorGrid], (function(_, obj) {\r\n mergeScalar(obj, \"color\", null, theme.gridColor)\r\n }));\r\n _each([commonAxisSettings, commonAxisSettings.tick, commonAxisSettings.minorTick, commonAxisSettings.label.font], (function(_, obj) {\r\n mergeScalar(obj, \"color\", null, theme.axisColor)\r\n }));\r\n mergeScalar(commonAxisSettings.title.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.gauge.scale.label.font, \"color\", null, theme.axisColor);\r\n mergeScalar(theme.gauge.scale.tick, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.gauge.scale.minorTick, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.rangeSelector.scale.label.font, \"color\", null, theme.axisColor)\r\n}\r\n\r\nfunction patchMapLayers(theme) {\r\n var map = theme.map;\r\n _each([\"area\", \"line\", \"marker\"], (function(_, section) {\r\n mergeObject(map, \"layer:\" + section, null, map.layer)\r\n }));\r\n _each([\"dot\", \"bubble\", \"pie\", \"image\"], (function(_, section) {\r\n mergeObject(map, \"layer:marker:\" + section, null, map[\"layer:marker\"])\r\n }))\r\n}\r\nexport function addCacheItem(target) {\r\n var cacheUid = ++nextCacheUid;\r\n target._cache = cacheUid;\r\n widgetsCache[cacheUid] = target\r\n}\r\nexport function removeCacheItem(target) {\r\n delete widgetsCache[target._cache]\r\n}\r\nexport function refreshTheme() {\r\n _each(widgetsCache, (function() {\r\n this.refresh()\r\n }));\r\n return this\r\n}\r\nif (isEmptyObject(themes) && isEmptyObject(themesMapping) && !defaultTheme) {\r\n [].concat(lightThemes, carmineThemes, darkThemes, contrastThemes, darkMoonThemes, darkVioletThemes, greenMistThemes, softBlueThemes, materialThemes).forEach(t => {\r\n registerTheme(t.theme, t.baseThemeName)\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/translators/range.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isDate,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar _isDefined = isDefined;\r\nvar _isDate = isDate;\r\nvar _isFunction = isFunction;\r\nimport {\r\n unique\r\n} from \"../core/utils\";\r\nvar minSelector = \"min\";\r\nvar maxSelector = \"max\";\r\nvar minVisibleSelector = \"minVisible\";\r\nvar maxVisibleSelector = \"maxVisible\";\r\nvar baseSelector = \"base\";\r\nvar axisTypeSelector = \"axisType\";\r\n\r\nfunction otherLessThan(thisValue, otherValue) {\r\n return otherValue < thisValue\r\n}\r\n\r\nfunction otherGreaterThan(thisValue, otherValue) {\r\n return otherValue > thisValue\r\n}\r\n\r\nfunction compareAndReplace(thisValue, otherValue, setValue, compare) {\r\n var otherValueDefined = _isDefined(otherValue);\r\n if (_isDefined(thisValue)) {\r\n if (otherValueDefined && compare(thisValue, otherValue)) {\r\n setValue(otherValue)\r\n }\r\n } else if (otherValueDefined) {\r\n setValue(otherValue)\r\n }\r\n}\r\nexport var Range = function(range) {\r\n range && extend(this, range)\r\n};\r\nvar _Range = Range;\r\n_Range.prototype = {\r\n constructor: _Range,\r\n addRange: function(otherRange) {\r\n var that = this;\r\n var categories = that.categories;\r\n var otherCategories = otherRange.categories;\r\n var isDiscrete = \"discrete\" === that[axisTypeSelector];\r\n var compareAndReplaceByField = function(field, compare) {\r\n compareAndReplace(that[field], otherRange[field], (function(value) {\r\n that[field] = value\r\n }), compare)\r\n };\r\n var controlValuesByVisibleBounds = function(valueField, visibleValueField, compare) {\r\n compareAndReplace(that[valueField], that[visibleValueField], (function(value) {\r\n _isDefined(that[valueField]) && (that[valueField] = value)\r\n }), compare)\r\n };\r\n var checkField = function(field) {\r\n that[field] = that[field] || otherRange[field]\r\n };\r\n checkField(\"invert\");\r\n checkField(\"containsConstantLine\");\r\n checkField(axisTypeSelector);\r\n checkField(\"dataType\");\r\n checkField(\"isSpacedMargin\");\r\n if (\"logarithmic\" === that[axisTypeSelector]) {\r\n checkField(baseSelector)\r\n } else {\r\n that[baseSelector] = void 0\r\n }\r\n compareAndReplaceByField(minSelector, otherLessThan);\r\n compareAndReplaceByField(maxSelector, otherGreaterThan);\r\n if (isDiscrete) {\r\n checkField(minVisibleSelector);\r\n checkField(maxVisibleSelector)\r\n } else {\r\n compareAndReplaceByField(minVisibleSelector, otherLessThan);\r\n compareAndReplaceByField(maxVisibleSelector, otherGreaterThan)\r\n }\r\n compareAndReplaceByField(\"interval\", otherLessThan);\r\n if (!isDiscrete) {\r\n controlValuesByVisibleBounds(minSelector, minVisibleSelector, otherLessThan);\r\n controlValuesByVisibleBounds(minSelector, maxVisibleSelector, otherLessThan);\r\n controlValuesByVisibleBounds(maxSelector, maxVisibleSelector, otherGreaterThan);\r\n controlValuesByVisibleBounds(maxSelector, minVisibleSelector, otherGreaterThan)\r\n }\r\n if (void 0 === categories) {\r\n that.categories = otherCategories\r\n } else {\r\n that.categories = otherCategories ? unique(categories.concat(otherCategories)) : categories\r\n }\r\n if (\"logarithmic\" === that[axisTypeSelector]) {\r\n checkField(\"allowNegatives\");\r\n compareAndReplaceByField(\"linearThreshold\", otherLessThan)\r\n }\r\n return that\r\n },\r\n isEmpty: function() {\r\n return (!_isDefined(this[minSelector]) || !_isDefined(this[maxSelector])) && (!this.categories || 0 === this.categories.length)\r\n },\r\n correctValueZeroLevel: function() {\r\n var that = this;\r\n if (_isDate(that[maxSelector]) || _isDate(that[minSelector])) {\r\n return that\r\n }\r\n\r\n function setZeroLevel(min, max) {\r\n that[min] < 0 && that[max] < 0 && (that[max] = 0);\r\n that[min] > 0 && that[max] > 0 && (that[min] = 0)\r\n }\r\n setZeroLevel(minSelector, maxSelector);\r\n setZeroLevel(minVisibleSelector, maxVisibleSelector);\r\n return that\r\n },\r\n sortCategories(sort) {\r\n if (false === sort || !this.categories) {\r\n return\r\n }\r\n if (Array.isArray(sort)) {\r\n var sortValues = sort.map(item => item.valueOf());\r\n var filteredSeriesCategories = this.categories.filter(item => -1 === sortValues.indexOf(item.valueOf()));\r\n this.categories = sort.concat(filteredSeriesCategories)\r\n } else {\r\n var notAFunction = !_isFunction(sort);\r\n if (notAFunction && \"string\" !== this.dataType) {\r\n sort = (a, b) => a.valueOf() - b.valueOf()\r\n } else if (notAFunction) {\r\n sort = false\r\n }\r\n sort && this.categories.sort(sort)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/category_translator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar round = Math.round;\r\n\r\nfunction getValue(value) {\r\n return value\r\n}\r\nexport default {\r\n translate: function(category, directionOffset) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoryIndex = this._categoriesToPoints[null === category || void 0 === category ? void 0 : category.valueOf()];\r\n var specialValue = this.translateSpecialCase(category);\r\n var startPointIndex = canvasOptions.startPointIndex || 0;\r\n var stickInterval = this._options.stick ? 0 : .5;\r\n if (isDefined(specialValue)) {\r\n return round(specialValue)\r\n }\r\n if (!categoryIndex && 0 !== categoryIndex) {\r\n return null\r\n }\r\n directionOffset = directionOffset || 0;\r\n var stickDelta = categoryIndex + stickInterval - startPointIndex + .5 * directionOffset;\r\n return round(this._calculateProjection(canvasOptions.interval * stickDelta))\r\n },\r\n getInterval: function() {\r\n return this._canvasOptions.interval\r\n },\r\n getEventScale: function(zoomEvent) {\r\n var scale = zoomEvent.deltaScale || 1;\r\n return 1 - (1 - scale) / (.75 + this.visibleCategories.length / this._categories.length)\r\n },\r\n zoom: function(translate, scale) {\r\n var categories = this._categories;\r\n var canvasOptions = this._canvasOptions;\r\n var stick = this._options.stick;\r\n var invert = canvasOptions.invert;\r\n var interval = canvasOptions.interval * scale;\r\n var translateCategories = translate / interval;\r\n var visibleCount = (this.visibleCategories || []).length;\r\n var startCategoryIndex = parseInt((canvasOptions.startPointIndex || 0) + translateCategories + .5);\r\n var categoriesLength = parseInt(adjust(canvasOptions.canvasLength / interval) + (stick ? 1 : 0)) || 1;\r\n var endCategoryIndex;\r\n if (invert) {\r\n startCategoryIndex = parseInt((canvasOptions.startPointIndex || 0) + visibleCount - translateCategories + .5) - categoriesLength\r\n }\r\n if (startCategoryIndex < 0) {\r\n startCategoryIndex = 0\r\n }\r\n endCategoryIndex = startCategoryIndex + categoriesLength;\r\n if (endCategoryIndex > categories.length) {\r\n endCategoryIndex = categories.length;\r\n startCategoryIndex = endCategoryIndex - categoriesLength;\r\n if (startCategoryIndex < 0) {\r\n startCategoryIndex = 0\r\n }\r\n }\r\n var newVisibleCategories = categories.slice(parseInt(startCategoryIndex), parseInt(endCategoryIndex));\r\n var newInterval = this._getDiscreteInterval(newVisibleCategories.length, canvasOptions);\r\n scale = newInterval / canvasOptions.interval;\r\n translate = this.translate(!invert ? newVisibleCategories[0] : newVisibleCategories[newVisibleCategories.length - 1]) * scale - (canvasOptions.startPoint + (stick ? 0 : newInterval / 2));\r\n return {\r\n min: newVisibleCategories[0],\r\n max: newVisibleCategories[newVisibleCategories.length - 1],\r\n translate: translate,\r\n scale: scale\r\n }\r\n },\r\n getMinScale: function(zoom) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoriesLength = (this.visibleCategories || this._categories).length;\r\n categoriesLength += (parseInt(.1 * categoriesLength) || 1) * (zoom ? -2 : 2);\r\n return canvasOptions.canvasLength / (Math.max(categoriesLength, 1) * canvasOptions.interval)\r\n },\r\n getScale: function(min, max) {\r\n var canvasOptions = this._canvasOptions;\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var stickOffset = !this._options.stick && 1;\r\n var minPoint = isDefined(min) ? this.translate(min, -stickOffset) : null;\r\n var maxPoint = isDefined(max) ? this.translate(max, +stickOffset) : null;\r\n if (null === minPoint) {\r\n minPoint = canvasOptions.invert ? visibleArea.max : visibleArea.min\r\n }\r\n if (null === maxPoint) {\r\n maxPoint = canvasOptions.invert ? visibleArea.min : visibleArea.max\r\n }\r\n return this.canvasLength / Math.abs(maxPoint - minPoint)\r\n },\r\n isValid: function(value) {\r\n return isDefined(value) ? this._categoriesToPoints[value.valueOf()] >= 0 : false\r\n },\r\n getCorrectValue: getValue,\r\n to: function(value, direction) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoryIndex = this._categoriesToPoints[null === value || void 0 === value ? void 0 : value.valueOf()];\r\n var startPointIndex = canvasOptions.startPointIndex || 0;\r\n var stickDelta = categoryIndex + (this._options.stick ? 0 : .5) - startPointIndex + (this._businessRange.invert ? -1 : 1) * direction * .5;\r\n return round(this._calculateProjection(canvasOptions.interval * stickDelta))\r\n },\r\n from: function(position) {\r\n var direction = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint;\r\n var categories = this.visibleCategories || this._categories;\r\n var categoriesLength = categories.length;\r\n var stickInterval = this._options.stick ? .5 : 0;\r\n var result = round((position - startPoint) / canvasOptions.interval + stickInterval - .5 - .5 * direction);\r\n if (result >= categoriesLength) {\r\n result = categoriesLength - 1\r\n }\r\n if (result < 0) {\r\n result = 0\r\n }\r\n if (canvasOptions.invert) {\r\n result = categoriesLength - result - 1\r\n }\r\n return categories[result]\r\n },\r\n _add: function() {\r\n return NaN\r\n },\r\n toValue: getValue,\r\n isValueProlonged: true,\r\n getRangeByMinZoomValue(minZoom, visualRange) {\r\n var categories = this._categories;\r\n var minVisibleIndex = categories.indexOf(visualRange.minVisible);\r\n var maxVisibleIndex = categories.indexOf(visualRange.maxVisible);\r\n var startIndex = minVisibleIndex + minZoom - 1;\r\n var endIndex = maxVisibleIndex - minZoom + 1;\r\n if (categories[startIndex]) {\r\n return [visualRange.minVisible, categories[startIndex]]\r\n } else {\r\n return [categories[endIndex], visualRange.maxVisible]\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/interval_translator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric as isNumber,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar floor = Math.floor;\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nexport default {\r\n _intervalize: function(value, interval) {\r\n if (!isDefined(value)) {\r\n return\r\n }\r\n if (\"datetime\" === this._businessRange.dataType) {\r\n if (isNumber(value)) {\r\n value = new Date(value)\r\n } else {\r\n value = new Date(value.getTime())\r\n }\r\n value = dateUtils.correctDateWithUnitBeginning(value, interval, null, this._options.firstDayOfWeek)\r\n } else {\r\n value = adjust(floor(adjust(value / interval)) * interval, interval)\r\n }\r\n return value\r\n },\r\n translate: function(bp, direction, interval) {\r\n var specialValue = this.translateSpecialCase(bp);\r\n if (isDefined(specialValue)) {\r\n return Math.round(specialValue)\r\n }\r\n interval = interval || this._options.interval;\r\n if (!this.isValid(bp, interval)) {\r\n return null\r\n }\r\n return this.to(bp, direction, interval)\r\n },\r\n getInterval: function() {\r\n return Math.round(this._canvasOptions.ratioOfCanvasRange * (this._businessRange.interval || Math.abs(this._canvasOptions.rangeMax - this._canvasOptions.rangeMin)))\r\n },\r\n zoom: function() {},\r\n getMinScale: function() {},\r\n getScale: function() {},\r\n _parse: function(value) {\r\n return \"datetime\" === this._businessRange.dataType ? new Date(value) : Number(value)\r\n },\r\n fromValue: function(value) {\r\n return this._parse(value)\r\n },\r\n toValue: function(value) {\r\n return this._parse(value)\r\n },\r\n isValid: function(value, interval) {\r\n var co = this._canvasOptions;\r\n var rangeMin = co.rangeMin;\r\n var rangeMax = co.rangeMax;\r\n interval = interval || this._options.interval;\r\n if (null === value || isNaN(value)) {\r\n return false\r\n }\r\n value = \"datetime\" === this._businessRange.dataType && isNumber(value) ? new Date(value) : value;\r\n if (interval !== this._options.interval) {\r\n rangeMin = this._intervalize(rangeMin, interval);\r\n rangeMax = this._intervalize(rangeMax, interval)\r\n }\r\n if (value.valueOf() < rangeMin || value.valueOf() >= dateUtils.addInterval(rangeMax, interval)) {\r\n return false\r\n }\r\n return true\r\n },\r\n to: function(bp, direction, interval) {\r\n interval = interval || this._options.interval;\r\n var v1 = this._intervalize(bp, interval);\r\n var v2 = dateUtils.addInterval(v1, interval);\r\n var res = this._to(v1);\r\n var p2 = this._to(v2);\r\n if (!direction) {\r\n res = floor((res + p2) / 2)\r\n } else if (direction > 0) {\r\n res = p2\r\n }\r\n return res\r\n },\r\n _to: function(value) {\r\n var co = this._canvasOptions;\r\n var rMin = co.rangeMinVisible;\r\n var rMax = co.rangeMaxVisible;\r\n var offset = value - rMin;\r\n if (value < rMin) {\r\n offset = 0\r\n } else if (value > rMax) {\r\n offset = dateUtils.addInterval(rMax, this._options.interval) - rMin\r\n }\r\n return this._conversionValue(this._calculateProjection(offset * this._canvasOptions.ratioOfCanvasRange))\r\n },\r\n from: function(position, direction) {\r\n var origInterval = this._options.interval;\r\n var interval = origInterval;\r\n var co = this._canvasOptions;\r\n var rMin = co.rangeMinVisible;\r\n var rMax = co.rangeMaxVisible;\r\n var value;\r\n if (\"datetime\" === this._businessRange.dataType) {\r\n interval = dateUtils.dateToMilliseconds(origInterval)\r\n }\r\n value = this._calculateUnProjection((position - this._canvasOptions.startPoint) / this._canvasOptions.ratioOfCanvasRange);\r\n value = this._intervalize(dateUtils.addInterval(value, interval / 2, direction > 0), origInterval);\r\n if (value < rMin) {\r\n value = rMin\r\n } else if (value > rMax) {\r\n value = rMax\r\n }\r\n return value\r\n },\r\n _add: function() {\r\n return NaN\r\n },\r\n isValueProlonged: true\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/datetime_translator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\n\r\nfunction parse(value) {\r\n return null !== value ? new Date(value) : value\r\n}\r\nexport default {\r\n fromValue: parse,\r\n toValue: parse,\r\n _add: dateUtils.addDateInterval,\r\n convert: dateUtils.dateToMilliseconds\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/logarithmic_translator.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n raiseToExt as raiseTo,\r\n getLogExt as getLog\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport default {\r\n fromValue: function(value) {\r\n return null !== value ? getLog(value, this._canvasOptions.base, this._businessRange.allowNegatives, this._businessRange.linearThreshold) : value\r\n },\r\n toValue: function(value) {\r\n return null !== value ? raiseTo(value, this._canvasOptions.base, this._businessRange.allowNegatives, this._businessRange.linearThreshold) : value\r\n },\r\n getMinBarSize: function(minBarSize) {\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var minValue = this.from(visibleArea.min + minBarSize);\r\n var canvasOptions = this._canvasOptions;\r\n return Math.pow(canvasOptions.base, canvasOptions.rangeMinVisible + this.fromValue(this.from(visibleArea.min)) - this.fromValue(!isDefined(minValue) ? this.from(visibleArea.max) : minValue))\r\n },\r\n checkMinBarSize: function(initialValue, minShownValue, stackValue) {\r\n var canvasOptions = this._canvasOptions;\r\n var prevValue = stackValue - initialValue;\r\n var baseMethod = this.constructor.prototype.checkMinBarSize;\r\n var minBarSize;\r\n var updateValue;\r\n if (isDefined(minShownValue) && prevValue > 0) {\r\n minBarSize = baseMethod(this.fromValue(stackValue / prevValue), this.fromValue(minShownValue) - canvasOptions.rangeMinVisible);\r\n updateValue = Math.pow(canvasOptions.base, this.fromValue(prevValue) + minBarSize) - prevValue\r\n } else {\r\n updateValue = baseMethod(initialValue, minShownValue)\r\n }\r\n return updateValue\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/translators/translator2d.js)\r\n * Version: 21.2.7\r\n * Build date: Mon Apr 11 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Range\r\n} from \"./range\";\r\nimport categoryTranslator from \"./category_translator\";\r\nimport intervalTranslator from \"./interval_translator\";\r\nimport datetimeTranslator from \"./datetime_translator\";\r\nimport logarithmicTranslator from \"./logarithmic_translator\";\r\nimport {\r\n getLogExt as getLog,\r\n getPower,\r\n raiseToExt,\r\n getCategoriesInfo\r\n} from \"../core/utils\";\r\nimport {\r\n isDefined,\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar _abs = Math.abs;\r\nvar CANVAS_PROP = [\"width\", \"height\", \"left\", \"top\", \"bottom\", \"right\"];\r\nvar dummyTranslator = {\r\n to(value) {\r\n var coord = this._canvasOptions.startPoint + (this._options.conversionValue ? value : Math.round(value));\r\n return coord > this._canvasOptions.endPoint ? this._canvasOptions.endPoint : coord\r\n },\r\n from(value) {\r\n return value - this._canvasOptions.startPoint\r\n }\r\n};\r\nvar validateCanvas = function(canvas) {\r\n each(CANVAS_PROP, (function(_, prop) {\r\n canvas[prop] = parseInt(canvas[prop]) || 0\r\n }));\r\n return canvas\r\n};\r\nvar makeCategoriesToPoints = function(categories) {\r\n var categoriesToPoints = {};\r\n categories.forEach((function(item, i) {\r\n categoriesToPoints[item.valueOf()] = i\r\n }));\r\n return categoriesToPoints\r\n};\r\nvar validateBusinessRange = function(businessRange) {\r\n if (!(businessRange instanceof Range)) {\r\n businessRange = new Range(businessRange)\r\n }\r\n\r\n function validate(valueSelector, baseValueSelector) {\r\n if (!isDefined(businessRange[valueSelector]) && isDefined(businessRange[baseValueSelector])) {\r\n businessRange[valueSelector] = businessRange[baseValueSelector]\r\n }\r\n }\r\n validate(\"minVisible\", \"min\");\r\n validate(\"maxVisible\", \"max\");\r\n return businessRange\r\n};\r\n\r\nfunction prepareBreaks(breaks, range) {\r\n var transform = \"logarithmic\" === range.axisType ? function(value) {\r\n return getLog(value, range.base)\r\n } : function(value) {\r\n return value\r\n };\r\n var array = [];\r\n var br;\r\n var transformFrom;\r\n var transformTo;\r\n var i;\r\n var length = breaks.length;\r\n var sum = 0;\r\n for (i = 0; i < length; i++) {\r\n br = breaks[i];\r\n transformFrom = transform(br.from);\r\n transformTo = transform(br.to);\r\n sum += transformTo - transformFrom;\r\n array.push({\r\n trFrom: transformFrom,\r\n trTo: transformTo,\r\n from: br.from,\r\n to: br.to,\r\n length: sum,\r\n cumulativeWidth: br.cumulativeWidth\r\n })\r\n }\r\n return array\r\n}\r\n\r\nfunction getCanvasBounds(range) {\r\n var min = range.min;\r\n var max = range.max;\r\n var minVisible = range.minVisible;\r\n var maxVisible = range.maxVisible;\r\n var isLogarithmic = \"logarithmic\" === range.axisType;\r\n if (isLogarithmic) {\r\n maxVisible = getLog(maxVisible, range.base, range.allowNegatives, range.linearThreshold);\r\n minVisible = getLog(minVisible, range.base, range.allowNegatives, range.linearThreshold);\r\n min = getLog(min, range.base, range.allowNegatives, range.linearThreshold);\r\n max = getLog(max, range.base, range.allowNegatives, range.linearThreshold)\r\n }\r\n return {\r\n base: range.base,\r\n rangeMin: min,\r\n rangeMax: max,\r\n rangeMinVisible: minVisible,\r\n rangeMaxVisible: maxVisible\r\n }\r\n}\r\n\r\nfunction getCheckingMethodsAboutBreaks(inverted) {\r\n return {\r\n isStartSide: !inverted ? function(pos, breaks, start, end) {\r\n return pos < breaks[0][start]\r\n } : function(pos, breaks, start, end) {\r\n return pos <= breaks[breaks.length - 1][end]\r\n },\r\n isEndSide: !inverted ? function(pos, breaks, start, end) {\r\n return pos >= breaks[breaks.length - 1][end]\r\n } : function(pos, breaks, start, end) {\r\n return pos > breaks[0][start]\r\n },\r\n isInBreak: !inverted ? function(pos, br, start, end) {\r\n return pos >= br[start] && pos < br[end]\r\n } : function(pos, br, start, end) {\r\n return pos > br[end] && pos <= br[start]\r\n },\r\n isBetweenBreaks: !inverted ? function(pos, br, prevBreak, start, end) {\r\n return pos < br[start] && pos >= prevBreak[end]\r\n } : function(pos, br, prevBreak, start, end) {\r\n return pos >= br[end] && pos < prevBreak[start]\r\n },\r\n getLength: !inverted ? function(br) {\r\n return br.length\r\n } : function(br, lastBreak) {\r\n return lastBreak.length - br.length\r\n },\r\n getBreaksSize: !inverted ? function(br) {\r\n return br.cumulativeWidth\r\n } : function(br, lastBreak) {\r\n return lastBreak.cumulativeWidth - br.cumulativeWidth\r\n }\r\n }\r\n}\r\nvar _Translator2d = function(businessRange, canvas, options) {\r\n this.update(businessRange, canvas, options)\r\n};\r\n_Translator2d.prototype = {\r\n constructor: _Translator2d,\r\n reinit: function() {\r\n var that = this;\r\n var options = that._options;\r\n var range = that._businessRange;\r\n var categories = range.categories || [];\r\n var script = {};\r\n var canvasOptions = that._prepareCanvasOptions();\r\n var visibleCategories = getCategoriesInfo(categories, range.minVisible, range.maxVisible).categories;\r\n var categoriesLength = visibleCategories.length;\r\n if (range.isEmpty()) {\r\n script = dummyTranslator\r\n } else {\r\n switch (range.axisType) {\r\n case \"logarithmic\":\r\n script = logarithmicTranslator;\r\n break;\r\n case \"semidiscrete\":\r\n script = intervalTranslator;\r\n canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (dateUtils.addInterval(canvasOptions.rangeMaxVisible, options.interval) - canvasOptions.rangeMinVisible);\r\n break;\r\n case \"discrete\":\r\n script = categoryTranslator;\r\n that._categories = categories;\r\n canvasOptions.interval = that._getDiscreteInterval(options.addSpiderCategory ? categoriesLength + 1 : categoriesLength, canvasOptions);\r\n that._categoriesToPoints = makeCategoriesToPoints(categories);\r\n if (categoriesLength) {\r\n canvasOptions.startPointIndex = that._categoriesToPoints[visibleCategories[0].valueOf()];\r\n that.visibleCategories = visibleCategories\r\n }\r\n break;\r\n default:\r\n if (\"datetime\" === range.dataType) {\r\n script = datetimeTranslator\r\n }\r\n }\r\n }(that._oldMethods || []).forEach((function(methodName) {\r\n delete that[methodName]\r\n }));\r\n that._oldMethods = Object.keys(script);\r\n extend(that, script);\r\n that._conversionValue = options.conversionValue ? function(value) {\r\n return value\r\n } : function(value) {\r\n return Math.round(value)\r\n };\r\n that.sc = {};\r\n that._checkingMethodsAboutBreaks = [getCheckingMethodsAboutBreaks(false), getCheckingMethodsAboutBreaks(that.isInverted())];\r\n that._translateBreaks();\r\n that._calculateSpecialValues()\r\n },\r\n _translateBreaks: function() {\r\n var breaks = this._breaks;\r\n var size = this._options.breaksSize;\r\n var i;\r\n var b;\r\n var end;\r\n var length;\r\n if (void 0 === breaks) {\r\n return\r\n }\r\n for (i = 0, length = breaks.length; i < length; i++) {\r\n b = breaks[i];\r\n end = this.translate(b.to);\r\n b.end = end;\r\n b.start = !b.gapSize ? !this.isInverted() ? end - size : end + size : end\r\n }\r\n },\r\n _checkValueAboutBreaks: function(breaks, pos, start, end, methods) {\r\n var i;\r\n var length;\r\n var prop = {\r\n length: 0,\r\n breaksSize: void 0,\r\n inBreak: false\r\n };\r\n var br;\r\n var prevBreak;\r\n var lastBreak = breaks[breaks.length - 1];\r\n if (methods.isStartSide(pos, breaks, start, end)) {\r\n return prop\r\n } else if (methods.isEndSide(pos, breaks, start, end)) {\r\n return {\r\n length: lastBreak.length,\r\n breaksSize: lastBreak.cumulativeWidth,\r\n inBreak: false\r\n }\r\n }\r\n for (i = 0, length = breaks.length; i < length; i++) {\r\n br = breaks[i];\r\n prevBreak = breaks[i - 1];\r\n if (methods.isInBreak(pos, br, start, end)) {\r\n prop.inBreak = true;\r\n prop.break = br;\r\n break\r\n }\r\n if (prevBreak && methods.isBetweenBreaks(pos, br, prevBreak, start, end)) {\r\n prop = {\r\n length: methods.getLength(prevBreak, lastBreak),\r\n breaksSize: methods.getBreaksSize(prevBreak, lastBreak),\r\n inBreak: false\r\n };\r\n break\r\n }\r\n }\r\n return prop\r\n },\r\n isInverted: function() {\r\n return !(this._options.isHorizontal ^ this._businessRange.invert)\r\n },\r\n _getDiscreteInterval: function(categoriesLength, canvasOptions) {\r\n var correctedCategoriesCount = categoriesLength - (this._options.stick ? 1 : 0);\r\n return correctedCategoriesCount > 0 ? canvasOptions.canvasLength / correctedCategoriesCount : canvasOptions.canvasLength\r\n },\r\n _prepareCanvasOptions() {\r\n var businessRange = this._businessRange;\r\n var canvasOptions = this._canvasOptions = getCanvasBounds(businessRange);\r\n var canvas = this._canvas;\r\n var breaks = this._breaks;\r\n var length;\r\n canvasOptions.startPadding = canvas.startPadding || 0;\r\n canvasOptions.endPadding = canvas.endPadding || 0;\r\n if (this._options.isHorizontal) {\r\n canvasOptions.startPoint = canvas.left + canvasOptions.startPadding;\r\n length = canvas.width;\r\n canvasOptions.endPoint = canvas.width - canvas.right - canvasOptions.endPadding;\r\n canvasOptions.invert = businessRange.invert\r\n } else {\r\n canvasOptions.startPoint = canvas.top + canvasOptions.startPadding;\r\n length = canvas.height;\r\n canvasOptions.endPoint = canvas.height - canvas.bottom - canvasOptions.endPadding;\r\n canvasOptions.invert = !businessRange.invert\r\n }\r\n this.canvasLength = canvasOptions.canvasLength = canvasOptions.endPoint - canvasOptions.startPoint;\r\n canvasOptions.rangeDoubleError = Math.pow(10, getPower(canvasOptions.rangeMax - canvasOptions.rangeMin) - getPower(length) - 2);\r\n canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible);\r\n if (void 0 !== breaks) {\r\n canvasOptions.ratioOfCanvasRange = (canvasOptions.canvasLength - breaks[breaks.length - 1].cumulativeWidth) / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible - breaks[breaks.length - 1].length)\r\n }\r\n return canvasOptions\r\n },\r\n updateCanvas: function(canvas) {\r\n this._canvas = validateCanvas(canvas);\r\n this.reinit()\r\n },\r\n updateBusinessRange: function(businessRange) {\r\n var breaks = businessRange.breaks || [];\r\n this._userBreaks = businessRange.userBreaks || [];\r\n this._businessRange = validateBusinessRange(businessRange);\r\n this._breaks = breaks.length ? prepareBreaks(breaks, this._businessRange) : void 0;\r\n this.reinit()\r\n },\r\n update: function(businessRange, canvas, options) {\r\n this._options = extend(this._options || {}, options);\r\n this._canvas = validateCanvas(canvas);\r\n this.updateBusinessRange(businessRange)\r\n },\r\n getBusinessRange: function() {\r\n return this._businessRange\r\n },\r\n getEventScale: function(zoomEvent) {\r\n return zoomEvent.deltaScale || 1\r\n },\r\n getCanvasVisibleArea: function() {\r\n return {\r\n min: this._canvasOptions.startPoint,\r\n max: this._canvasOptions.endPoint\r\n }\r\n },\r\n _calculateSpecialValues: function() {\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint - canvasOptions.startPadding;\r\n var endPoint = canvasOptions.endPoint + canvasOptions.endPadding;\r\n var range = this._businessRange;\r\n var minVisible = range.minVisible;\r\n var maxVisible = range.maxVisible;\r\n var canvas_position_center_middle = startPoint + canvasOptions.canvasLength / 2;\r\n var canvas_position_default;\r\n if (minVisible < 0 && maxVisible > 0 && minVisible !== maxVisible) {\r\n canvas_position_default = this.translate(0, 1)\r\n }\r\n if (!isDefined(canvas_position_default)) {\r\n var invert = range.invert ^ (minVisible < 0 && maxVisible <= 0);\r\n if (this._options.isHorizontal) {\r\n canvas_position_default = invert ? endPoint : startPoint\r\n } else {\r\n canvas_position_default = invert ? startPoint : endPoint\r\n }\r\n }\r\n this.sc = {\r\n canvas_position_default: canvas_position_default,\r\n canvas_position_left: startPoint,\r\n canvas_position_top: startPoint,\r\n canvas_position_center: canvas_position_center_middle,\r\n canvas_position_middle: canvas_position_center_middle,\r\n canvas_position_right: endPoint,\r\n canvas_position_bottom: endPoint,\r\n canvas_position_start: canvasOptions.invert ? endPoint : startPoint,\r\n canvas_position_end: canvasOptions.invert ? startPoint : endPoint\r\n }\r\n },\r\n translateSpecialCase(value) {\r\n return this.sc[value]\r\n },\r\n _calculateProjection: function(distance) {\r\n var canvasOptions = this._canvasOptions;\r\n return canvasOptions.invert ? canvasOptions.endPoint - distance : canvasOptions.startPoint + distance\r\n },\r\n _calculateUnProjection: function(distance) {\r\n var canvasOptions = this._canvasOptions;\r\n \"datetime\" === this._businessRange.dataType && (distance = Math.round(distance));\r\n return canvasOptions.invert ? canvasOptions.rangeMaxVisible.valueOf() - distance : canvasOptions.rangeMinVisible.valueOf() + distance\r\n },\r\n getMinBarSize: function(minBarSize) {\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var minValue = this.from(visibleArea.min + minBarSize);\r\n return _abs(this.from(visibleArea.min) - (!isDefined(minValue) ? this.from(visibleArea.max) : minValue))\r\n },\r\n checkMinBarSize: function(value, minShownValue, stackValue) {\r\n return _abs(value) < minShownValue ? value >= 0 ? minShownValue : -minShownValue : value\r\n },\r\n translate(bp, direction) {\r\n var specialValue = this.translateSpecialCase(bp);\r\n if (isDefined(specialValue)) {\r\n return Math.round(specialValue)\r\n }\r\n if (isNaN(bp)) {\r\n return null\r\n }\r\n return this.to(bp, direction)\r\n },\r\n getInterval: function(interval) {\r\n var _interval;\r\n var canvasOptions = this._canvasOptions;\r\n interval = null !== (_interval = interval) && void 0 !== _interval ? _interval : this._businessRange.interval;\r\n if (interval) {\r\n return Math.round(canvasOptions.ratioOfCanvasRange * interval)\r\n }\r\n return Math.round(canvasOptions.endPoint - canvasOptions.startPoint)\r\n },\r\n zoom(translate, scale, wholeRange) {\r\n var canvasOptions = this._canvasOptions;\r\n if (canvasOptions.rangeMinVisible.valueOf() === canvasOptions.rangeMaxVisible.valueOf() && 0 !== translate) {\r\n return this.zoomZeroLengthRange(translate, scale)\r\n }\r\n var startPoint = canvasOptions.startPoint;\r\n var endPoint = canvasOptions.endPoint;\r\n var isInverted = this.isInverted();\r\n var newStart = (startPoint + translate) / scale;\r\n var newEnd = (endPoint + translate) / scale;\r\n wholeRange = wholeRange || {};\r\n var minPoint = this.to(isInverted ? wholeRange.endValue : wholeRange.startValue);\r\n var maxPoint = this.to(isInverted ? wholeRange.startValue : wholeRange.endValue);\r\n var min;\r\n var max;\r\n if (minPoint > newStart) {\r\n newEnd -= newStart - minPoint;\r\n newStart = minPoint;\r\n min = isInverted ? wholeRange.endValue : wholeRange.startValue\r\n }\r\n if (maxPoint < newEnd) {\r\n newStart -= newEnd - maxPoint;\r\n newEnd = maxPoint;\r\n max = isInverted ? wholeRange.startValue : wholeRange.endValue\r\n }\r\n if (maxPoint - minPoint < newEnd - newStart) {\r\n newStart = minPoint;\r\n newEnd = maxPoint\r\n }\r\n translate = (endPoint - startPoint) * newStart / (newEnd - newStart) - startPoint;\r\n scale = (startPoint + translate) / newStart || 1;\r\n min = isDefined(min) ? min : adjust(this.from(newStart, 1));\r\n max = isDefined(max) ? max : adjust(this.from(newEnd, -1));\r\n if (scale <= 1) {\r\n min = this._correctValueAboutBreaks(min, 1 === scale ? translate : -1);\r\n max = this._correctValueAboutBreaks(max, 1 === scale ? translate : 1)\r\n }\r\n if (min > max) {\r\n min = min > wholeRange.endValue ? wholeRange.endValue : min;\r\n max = max < wholeRange.startValue ? wholeRange.startValue : max\r\n } else {\r\n min = min < wholeRange.startValue ? wholeRange.startValue : min;\r\n max = max > wholeRange.endValue ? wholeRange.endValue : max\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n translate: adjust(translate),\r\n scale: adjust(scale)\r\n }\r\n },\r\n _correctValueAboutBreaks(value, direction) {\r\n var br = this._userBreaks.filter(br => value >= br.from && value <= br.to);\r\n if (br.length) {\r\n return direction > 0 ? br[0].to : br[0].from\r\n } else {\r\n return value\r\n }\r\n },\r\n zoomZeroLengthRange(translate, scale) {\r\n var canvasOptions = this._canvasOptions;\r\n var min = canvasOptions.rangeMin;\r\n var max = canvasOptions.rangeMax;\r\n var correction = (max.valueOf() !== min.valueOf() ? max.valueOf() - min.valueOf() : _abs(canvasOptions.rangeMinVisible.valueOf() - min.valueOf())) / canvasOptions.canvasLength;\r\n var isDateTime = isDate(max) || isDate(min);\r\n var isLogarithmic = \"logarithmic\" === this._businessRange.axisType;\r\n var newMin = canvasOptions.rangeMinVisible.valueOf() - correction;\r\n var newMax = canvasOptions.rangeMaxVisible.valueOf() + correction;\r\n newMin = isLogarithmic ? adjust(raiseToExt(newMin, canvasOptions.base)) : isDateTime ? new Date(newMin) : newMin;\r\n newMax = isLogarithmic ? adjust(raiseToExt(newMax, canvasOptions.base)) : isDateTime ? new Date(newMax) : newMax;\r\n return {\r\n min: newMin,\r\n max: newMax,\r\n translate: translate,\r\n scale: scale\r\n }\r\n },\r\n getMinScale: function(zoom) {\r\n var {\r\n dataType: dataType,\r\n interval: interval\r\n } = this._businessRange;\r\n if (\"datetime\" === dataType && 1 === interval) {\r\n return this.getDateTimeMinScale(zoom)\r\n }\r\n return zoom ? 1.1 : .9\r\n },\r\n getDateTimeMinScale(zoom) {\r\n var canvasOptions = this._canvasOptions;\r\n var length = canvasOptions.canvasLength / canvasOptions.ratioOfCanvasRange;\r\n length += (parseInt(.1 * length) || 1) * (zoom ? -2 : 2);\r\n return canvasOptions.canvasLength / (Math.max(length, 1) * canvasOptions.ratioOfCanvasRange)\r\n },\r\n getScale: function(val1, val2) {\r\n var canvasOptions = this._canvasOptions;\r\n if (canvasOptions.rangeMax === canvasOptions.rangeMin) {\r\n return 1\r\n }\r\n val1 = isDefined(val1) ? this.fromValue(val1) : canvasOptions.rangeMin;\r\n val2 = isDefined(val2) ? this.fromValue(val2) : canvasOptions.rangeMax;\r\n return (canvasOptions.rangeMax - canvasOptions.rangeMin) / Math.abs(val1 - val2)\r\n },\r\n isValid: function(value) {\r\n var co = this._canvasOptions;\r\n value = this.fromValue(value);\r\n return null !== value && !isNaN(value) && value.valueOf() + co.rangeDoubleError >= co.rangeMin && value.valueOf() - co.rangeDoubleError <= co.rangeMax\r\n },\r\n getCorrectValue: function(value, direction) {\r\n var breaks = this._breaks;\r\n var prop;\r\n value = this.fromValue(value);\r\n if (this._breaks) {\r\n prop = this._checkValueAboutBreaks(breaks, value, \"trFrom\", \"trTo\", this._checkingMethodsAboutBreaks[0]);\r\n if (true === prop.inBreak) {\r\n return this.toValue(direction > 0 ? prop.break.trTo : prop.break.trFrom)\r\n }\r\n }\r\n return this.toValue(value)\r\n },\r\n to: function(bp, direction) {\r\n var range = this.getBusinessRange();\r\n if (isDefined(range.maxVisible) && isDefined(range.minVisible) && range.maxVisible.valueOf() === range.minVisible.valueOf()) {\r\n if (!isDefined(bp) || range.maxVisible.valueOf() !== bp.valueOf()) {\r\n return null\r\n }\r\n return this.translateSpecialCase(0 === bp && this._options.shiftZeroValue ? \"canvas_position_default\" : \"canvas_position_middle\")\r\n }\r\n bp = this.fromValue(bp);\r\n var canvasOptions = this._canvasOptions;\r\n var breaks = this._breaks;\r\n var prop = {\r\n length: 0\r\n };\r\n var commonBreakSize = 0;\r\n if (void 0 !== breaks) {\r\n prop = this._checkValueAboutBreaks(breaks, bp, \"trFrom\", \"trTo\", this._checkingMethodsAboutBreaks[0]);\r\n commonBreakSize = isDefined(prop.breaksSize) ? prop.breaksSize : 0\r\n }\r\n if (true === prop.inBreak) {\r\n if (direction > 0) {\r\n return prop.break.start\r\n } else if (direction < 0) {\r\n return prop.break.end\r\n } else {\r\n return null\r\n }\r\n }\r\n return this._conversionValue(this._calculateProjection((bp - canvasOptions.rangeMinVisible - prop.length) * canvasOptions.ratioOfCanvasRange + commonBreakSize))\r\n },\r\n from: function(pos, direction) {\r\n var breaks = this._breaks;\r\n var prop = {\r\n length: 0\r\n };\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint;\r\n var commonBreakSize = 0;\r\n if (void 0 !== breaks) {\r\n prop = this._checkValueAboutBreaks(breaks, pos, \"start\", \"end\", this._checkingMethodsAboutBreaks[1]);\r\n commonBreakSize = isDefined(prop.breaksSize) ? prop.breaksSize : 0\r\n }\r\n if (true === prop.inBreak) {\r\n if (direction > 0) {\r\n return this.toValue(prop.break.trTo)\r\n } else if (direction < 0) {\r\n return this.toValue(prop.break.trFrom)\r\n } else {\r\n return null\r\n }\r\n }\r\n return this.toValue(this._calculateUnProjection((pos - startPoint - commonBreakSize) / canvasOptions.ratioOfCanvasRange + prop.length))\r\n },\r\n isValueProlonged: false,\r\n getRange: function() {\r\n return [this.toValue(this._canvasOptions.rangeMin), this.toValue(this._canvasOptions.rangeMax)]\r\n },\r\n getScreenRange: function() {\r\n return [this._canvasOptions.startPoint, this._canvasOptions.endPoint]\r\n },\r\n add: function(value, diff, dir) {\r\n return this._add(value, diff, (this._businessRange.invert ? -1 : 1) * dir)\r\n },\r\n _add: function(value, diff, coeff) {\r\n return this.toValue(this.fromValue(value) + diff * coeff)\r\n },\r\n fromValue: function(value) {\r\n return null !== value ? Number(value) : null\r\n },\r\n toValue: function(value) {\r\n return null !== value ? Number(value) : null\r\n },\r\n ratioOfCanvasRange() {\r\n return this._canvasOptions.ratioOfCanvasRange\r\n },\r\n convert: value => value,\r\n getRangeByMinZoomValue(minZoom, visualRange) {\r\n if (visualRange.minVisible + minZoom <= this._businessRange.max) {\r\n return [visualRange.minVisible, visualRange.minVisible + minZoom]\r\n } else {\r\n return [visualRange.maxVisible - minZoom, visualRange.maxVisible]\r\n }\r\n }\r\n};\r\nexport {\r\n _Translator2d as Translator2D\r\n};\r\n","/*! ExcelJS 02-06-2020 */\n\n\"use strict\";function _createForOfIteratorHelper2(e){if(\"undefined\"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=_unsupportedIterableToArray2(e))){var t=0,r=function(){};return{s:r,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var n,o,i=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(a)throw o}}}}function _classCallCheck2(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:0;if(n(this,e),r)if(\"string\"==typeof r){var a=i.decodeAddress(r);this.nativeCol=a.col+o,this.nativeColOff=0,this.nativeRow=a.row+o,this.nativeRowOff=0}else void 0!==r.nativeCol?(this.nativeCol=r.nativeCol||0,this.nativeColOff=r.nativeColOff||0,this.nativeRow=r.nativeRow||0,this.nativeRowOff=r.nativeRowOff||0):void 0!==r.col?(this.col=r.col+o,this.row=r.row+o):(this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0);else this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0;this.worksheet=t}var t,r,a;return t=e,a=[{key:\"asInstance\",value:function(t){return t instanceof e||null==t?t:new e(t)}}],(r=[{key:\"col\",get:function(){return this.nativeCol+Math.min(this.colWidth-1,this.nativeColOff)/this.colWidth},set:function(e){this.nativeCol=Math.floor(e),this.nativeColOff=Math.floor((e-this.nativeCol)*this.colWidth)}},{key:\"row\",get:function(){return this.nativeRow+Math.min(this.rowHeight-1,this.nativeRowOff)/this.rowHeight},set:function(e){this.nativeRow=Math.floor(e),this.nativeRowOff=Math.floor((e-this.nativeRow)*this.rowHeight)}},{key:\"colWidth\",get:function(){return this.worksheet&&this.worksheet.getColumn(this.nativeCol+1)&&this.worksheet.getColumn(this.nativeCol+1).isCustomWidth?Math.floor(1e4*this.worksheet.getColumn(this.nativeCol+1).width):64e4}},{key:\"rowHeight\",get:function(){return this.worksheet&&this.worksheet.getRow(this.nativeRow+1)&&this.worksheet.getRow(this.nativeRow+1).height?Math.floor(1e4*this.worksheet.getRow(this.nativeRow+1).height):18e4}},{key:\"model\",get:function(){return{nativeCol:this.nativeCol,nativeColOff:this.nativeColOff,nativeRow:this.nativeRow,nativeRowOff:this.nativeRowOff}},set:function(e){this.nativeCol=e.nativeCol,this.nativeColOff=e.nativeColOff,this.nativeRow=e.nativeRow,this.nativeRowOff=e.nativeRowOff}}])&&o(t.prototype,r),a&&o(t,a),e}();t.exports=a},{\"../utils/col-cache\":17}],3:[function(e,t,r){function n(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(e,t){for(var r=0;r0||this.type===e.Types.Merge}},{key:\"master\",get:function(){return this.type===e.Types.Merge?this._value.master:this}},{key:\"isHyperlink\",get:function(){return this._value.type===e.Types.Hyperlink}},{key:\"hyperlink\",get:function(){return this._value.hyperlink}},{key:\"value\",get:function(){return this._value.value},set:function(t){this.type!==e.Types.Merge?(this._value.release(),this._value=S.create(S.getType(t),this,t)):this._value.master.value=t}},{key:\"note\",get:function(){return this._comment&&this._comment.note},set:function(e){this._comment=new f(e)}},{key:\"text\",get:function(){return this._value.toString()}},{key:\"html\",get:function(){return s.escapeHtml(this.text)}},{key:\"formula\",get:function(){return this._value.formula}},{key:\"result\",get:function(){return this._value.result}},{key:\"formulaType\",get:function(){return this._value.formulaType}},{key:\"fullAddress\",get:function(){return{sheetName:this._row.worksheet.name,address:this.address,row:this.row,col:this.col}}},{key:\"name\",get:function(){return this.names[0]},set:function(e){this.names=[e]}},{key:\"names\",get:function(){return this.workbook.definedNames.getNamesEx(this.fullAddress)},set:function(e){var t=this,r=this.workbook.definedNames;r.removeAllNames(this.fullAddress),e.forEach((function(e){r.addEx(t.fullAddress,e)}))}},{key:\"_dataValidations\",get:function(){return this.worksheet.dataValidations}},{key:\"dataValidation\",get:function(){return this._dataValidations.find(this.address)},set:function(e){this._dataValidations.add(this.address,e)}},{key:\"model\",get:function(){var e=this._value.model;return e.style=this.style,this._comment&&(e.comment=this._comment.model),e},set:function(e){if(this._value.release(),this._value=S.create(e.type,this),this._value.model=e,e.comment)switch(e.comment.type){case\"note\":this._comment=f.fromModel(e.comment)}e.style?this.style=e.style:this.style={}}}]),e}();l.Types=u.ValueType;var h=function(){function e(t){n(this,e),this.model={address:t.address,type:l.Types.Null}}return i(e,[{key:\"toCsvString\",value:function(){return\"\"}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return\"\"}},{key:\"value\",get:function(){return null},set:function(e){}},{key:\"type\",get:function(){return l.Types.Null}},{key:\"effectiveType\",get:function(){return l.Types.Null}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),d=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.Number,value:r}}return i(e,[{key:\"toCsvString\",value:function(){return this.model.value.toString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.Number}},{key:\"effectiveType\",get:function(){return l.Types.Number}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),p=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.String,value:r}}return i(e,[{key:\"toCsvString\",value:function(){return'\"'.concat(this.model.value.replace(/\"/g,'\"\"'),'\"')}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.String}},{key:\"effectiveType\",get:function(){return l.Types.String}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),y=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.String,value:r}}return i(e,[{key:\"toString\",value:function(){return this.model.value.richText.map((function(e){return e.text})).join(\"\")}},{key:\"toCsvString\",value:function(){return'\"'.concat(this.text.replace(/\"/g,'\"\"'),'\"')}},{key:\"release\",value:function(){}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.RichText}},{key:\"effectiveType\",get:function(){return l.Types.RichText}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),m=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.Date,value:r}}return i(e,[{key:\"toCsvString\",value:function(){return this.model.value.toISOString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.Date}},{key:\"effectiveType\",get:function(){return l.Types.Date}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),b=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.Hyperlink,text:r?r.text:void 0,hyperlink:r?r.hyperlink:void 0},r&&r.tooltip&&(this.model.tooltip=r.tooltip)}return i(e,[{key:\"toCsvString\",value:function(){return this.model.hyperlink}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.text}},{key:\"value\",get:function(){var e={text:this.model.text,hyperlink:this.model.hyperlink};return this.model.tooltip&&(e.tooltip=this.model.tooltip),e},set:function(e){this.model={text:e.text,hyperlink:e.hyperlink},e.tooltip&&(this.model.tooltip=e.tooltip)}},{key:\"text\",get:function(){return this.model.text},set:function(e){this.model.text=e}},{key:\"hyperlink\",get:function(){return this.model.hyperlink},set:function(e){this.model.hyperlink=e}},{key:\"type\",get:function(){return l.Types.Hyperlink}},{key:\"effectiveType\",get:function(){return l.Types.Hyperlink}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),v=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.Merge,master:r?r.address:void 0},this._master=r,r&&r.addMergeRef()}return i(e,[{key:\"isMergedTo\",value:function(e){return e===this._master}},{key:\"toCsvString\",value:function(){return\"\"}},{key:\"release\",value:function(){this._master.releaseMergeRef()}},{key:\"toString\",value:function(){return this.value.toString()}},{key:\"value\",get:function(){return this._master.value},set:function(e){e instanceof l?(this._master&&this._master.releaseMergeRef(),e.addMergeRef(),this._master=e):this._master.value=e}},{key:\"master\",get:function(){return this._master}},{key:\"type\",get:function(){return l.Types.Merge}},{key:\"effectiveType\",get:function(){return this._master.effectiveType}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),g=function(){function e(t,r){n(this,e),this.cell=t,this.model={address:t.address,type:l.Types.Formula,shareType:r?r.shareType:void 0,ref:r?r.ref:void 0,formula:r?r.formula:void 0,sharedFormula:r?r.sharedFormula:void 0,result:r?r.result:void 0}}return i(e,[{key:\"_copyModel\",value:function(e){var t={},r=function(r){var n=e[r];n&&(t[r]=n)};return r(\"formula\"),r(\"result\"),r(\"ref\"),r(\"shareType\"),r(\"sharedFormula\"),t}},{key:\"validate\",value:function(e){switch(S.getType(e)){case l.Types.Null:case l.Types.String:case l.Types.Number:case l.Types.Date:break;case l.Types.Hyperlink:case l.Types.Formula:default:throw new Error(\"Cannot process that type of result value\")}}},{key:\"_getTranslatedFormula\",value:function(){if(!this._translatedFormula&&this.model.sharedFormula){var e=this.cell.worksheet.findCell(this.model.sharedFormula);this._translatedFormula=e&&c(e.formula,e.address,this.model.address)}return this._translatedFormula}},{key:\"toCsvString\",value:function(){return\"\".concat(this.model.result||\"\")}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.result?this.model.result.toString():\"\"}},{key:\"value\",get:function(){return this._copyModel(this.model)},set:function(e){this.model=this._copyModel(e)}},{key:\"dependencies\",get:function(){return{ranges:this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g),cells:this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g,\"\").match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g)}}},{key:\"formula\",get:function(){return this.model.formula||this._getTranslatedFormula()},set:function(e){this.model.formula=e}},{key:\"formulaType\",get:function(){return this.model.formula?u.FormulaType.Master:this.model.sharedFormula?u.FormulaType.Shared:u.FormulaType.None}},{key:\"result\",get:function(){return this.model.result},set:function(e){this.model.result=e}},{key:\"type\",get:function(){return l.Types.Formula}},{key:\"effectiveType\",get:function(){var e=this.model.result;return null==e?u.ValueType.Null:e instanceof String||\"string\"==typeof e?u.ValueType.String:\"number\"==typeof e?u.ValueType.Number:e instanceof Date?u.ValueType.Date:e.text&&e.hyperlink?u.ValueType.Hyperlink:e.formula?u.ValueType.Formula:u.ValueType.Null}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),w=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.SharedString,value:r}}return i(e,[{key:\"toCsvString\",value:function(){return this.model.value.toString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.SharedString}},{key:\"effectiveType\",get:function(){return l.Types.SharedString}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),_=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.Boolean,value:r}}return i(e,[{key:\"toCsvString\",value:function(){return this.model.value?1:0}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.Boolean}},{key:\"effectiveType\",get:function(){return l.Types.Boolean}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),k=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.Error,value:r}}return i(e,[{key:\"toCsvString\",value:function(){return this.toString()}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value.error.toString()}},{key:\"value\",get:function(){return this.model.value},set:function(e){this.model.value=e}},{key:\"type\",get:function(){return l.Types.Error}},{key:\"effectiveType\",get:function(){return l.Types.Error}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),x=function(){function e(t,r){n(this,e),this.model={address:t.address,type:l.Types.String,value:JSON.stringify(r),rawValue:r}}return i(e,[{key:\"toCsvString\",value:function(){return this.model.value}},{key:\"release\",value:function(){}},{key:\"toString\",value:function(){return this.model.value}},{key:\"value\",get:function(){return this.model.rawValue},set:function(e){this.model.rawValue=e,this.model.value=JSON.stringify(e)}},{key:\"type\",get:function(){return l.Types.String}},{key:\"effectiveType\",get:function(){return l.Types.String}},{key:\"address\",get:function(){return this.model.address},set:function(e){this.model.address=e}}]),e}(),S={getType:function(e){return null==e?l.Types.Null:e instanceof String||\"string\"==typeof e?l.Types.String:\"number\"==typeof e?l.Types.Number:\"boolean\"==typeof e?l.Types.Boolean:e instanceof Date?l.Types.Date:e.text&&e.hyperlink?l.Types.Hyperlink:e.formula||e.sharedFormula?l.Types.Formula:e.richText?l.Types.RichText:e.sharedString?l.Types.SharedString:e.error?l.Types.Error:l.Types.JSON},types:[{t:l.Types.Null,f:h},{t:l.Types.Number,f:d},{t:l.Types.String,f:p},{t:l.Types.Date,f:m},{t:l.Types.Hyperlink,f:b},{t:l.Types.Formula,f:g},{t:l.Types.Merge,f:v},{t:l.Types.JSON,f:x},{t:l.Types.SharedString,f:w},{t:l.Types.RichText,f:y},{t:l.Types.Boolean,f:_},{t:l.Types.Error,f:k}].reduce((function(e,t){return e[t.t]=t.f,e}),[]),create:function(e,t,r){var n=this.types[e];if(!n)throw new Error(\"Could not create Value of type \".concat(e));return new n(t,r)}};t.exports=l},{\"../utils/col-cache\":17,\"../utils/shared-formula\":20,\"../utils/under-dash\":23,\"./enums\":7,\"./note\":9}],4:[function(e,t,r){function n(e,t){for(var r=0;r=this._worksheet.properties.outlineLevelCol)}},{key:\"isDefault\",get:function(){if(this.isCustomWidth)return!1;if(this.hidden)return!1;if(this.outlineLevel)return!1;var e=this.style;return!e||!(e.font||e.numFmt||e.alignment||e.border||e.fill||e.protection)}},{key:\"headerCount\",get:function(){return this.headers.length}},{key:\"values\",get:function(){var e=[];return this.eachCell((function(t,r){t&&t.type!==i.ValueType.Null&&(e[r]=t.value)})),e},set:function(e){var t=this;if(e){var r=this.number,n=0;e.hasOwnProperty(\"0\")&&(n=1),e.forEach((function(e,o){t._worksheet.getCell(o+n,r).value=e}))}}},{key:\"numFmt\",get:function(){return this.style.numFmt},set:function(e){this._applyStyle(\"numFmt\",e)}},{key:\"font\",get:function(){return this.style.font},set:function(e){this._applyStyle(\"font\",e)}},{key:\"alignment\",get:function(){return this.style.alignment},set:function(e){this._applyStyle(\"alignment\",e)}},{key:\"protection\",get:function(){return this.style.protection},set:function(e){this._applyStyle(\"protection\",e)}},{key:\"border\",get:function(){return this.style.border},set:function(e){this._applyStyle(\"border\",e)}},{key:\"fill\",get:function(){return this.style.fill},set:function(e){this._applyStyle(\"fill\",e)}}])&&n(t.prototype,r),s&&n(t,s),e}();t.exports=s},{\"../utils/col-cache\":17,\"../utils/under-dash\":23,\"./enums\":7}],5:[function(e,t,r){function n(e,t){for(var r=0;rthis.bottom)&&(this.bottom=r),(!this.model.right||n>this.right)&&(this.right=n)}},{key:\"expandRow\",value:function(e){if(e){var t=e.dimensions,r=e.number;t&&this.expand(r,t.min,r,t.max)}}},{key:\"expandToAddress\",value:function(e){var t=i.decodeEx(e);this.expand(t.row,t.col,t.row,t.col)}},{key:\"toString\",value:function(){return this.range}},{key:\"intersects\",value:function(e){return!(e.sheetName&&this.sheetName&&e.sheetName!==this.sheetName||e.bottomthis.bottom||e.rightthis.right)}},{key:\"contains\",value:function(e){var t=i.decodeEx(e);return this.containsEx(t)}},{key:\"containsEx\",value:function(e){return(!e.sheetName||!this.sheetName||e.sheetName===this.sheetName)&&e.row>=this.top&&e.row<=this.bottom&&e.col>=this.left&&e.col<=this.right}},{key:\"forEachAddress\",value:function(e){for(var t=this.left;t<=this.right;t++)for(var r=this.top;r<=this.bottom;r++)e(i.encodeAddress(r,t),r,t)}},{key:\"top\",get:function(){return this.model.top||1},set:function(e){this.model.top=e}},{key:\"left\",get:function(){return this.model.left||1},set:function(e){this.model.left=e}},{key:\"bottom\",get:function(){return this.model.bottom||1},set:function(e){this.model.bottom=e}},{key:\"right\",get:function(){return this.model.right||1},set:function(e){this.model.right=e}},{key:\"sheetName\",get:function(){return this.model.sheetName},set:function(e){this.model.sheetName=e}},{key:\"_serialisedSheetName\",get:function(){var e=this.model.sheetName;return e?/^[a-zA-Z0-9]*$/.test(e)?\"\".concat(e,\"!\"):\"'\".concat(e,\"'!\"):\"\"}},{key:\"tl\",get:function(){return i.n2l(this.left)+this.top}},{key:\"$t$l\",get:function(){return\"$\".concat(i.n2l(this.left),\"$\").concat(this.top)}},{key:\"br\",get:function(){return i.n2l(this.right)+this.bottom}},{key:\"$b$r\",get:function(){return\"$\".concat(i.n2l(this.right),\"$\").concat(this.bottom)}},{key:\"range\",get:function(){return\"\".concat(this._serialisedSheetName+this.tl,\":\").concat(this.br)}},{key:\"$range\",get:function(){return\"\".concat(this._serialisedSheetName+this.$t$l,\":\").concat(this.$b$r)}},{key:\"shortRange\",get:function(){return this.count>1?this.range:this._serialisedSheetName+this.tl}},{key:\"$shortRange\",get:function(){return this.count>1?this.$range:this._serialisedSheetName+this.$t$l}},{key:\"count\",get:function(){return(1+this.bottom-this.top)*(1+this.right-this.left)}}])&&o(t.prototype,r),a&&o(t,a),e}();t.exports=a},{\"./../utils/col-cache\":17}],11:[function(e,t,r){function n(e,t){for(var r=0;r2?n-2:0),i=2;i0)for(a=f;a>=r;a--)(s=this._cells[a-1])?((u=this.getCell(a+c)).value=s.value,u.style=s.style):this._cells[a+c-1]=void 0;for(a=0;ar.col)&&(e=r.col),t0?{min:e,max:t}:null}},{key:\"numFmt\",get:function(){return this.style.numFmt},set:function(e){this._applyStyle(\"numFmt\",e)}},{key:\"font\",get:function(){return this.style.font},set:function(e){this._applyStyle(\"font\",e)}},{key:\"alignment\",get:function(){return this.style.alignment},set:function(e){this._applyStyle(\"alignment\",e)}},{key:\"protection\",get:function(){return this.style.protection},set:function(e){this._applyStyle(\"protection\",e)}},{key:\"border\",get:function(){return this.style.border},set:function(e){this._applyStyle(\"border\",e)}},{key:\"fill\",get:function(){return this.style.fill},set:function(e){this._applyStyle(\"fill\",e)}},{key:\"hidden\",get:function(){return!!this._hidden},set:function(e){this._hidden=e}},{key:\"outlineLevel\",get:function(){return this._outlineLevel||0},set:function(e){this._outlineLevel=e}},{key:\"collapsed\",get:function(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelRow)}},{key:\"model\",get:function(){var e=[],t=0,r=0;return this._cells.forEach((function(n){if(n){var o=n.model;o&&((!t||t>n.col)&&(t=n.col),r0,\"Table must be on valid row\"),n(s>0,\"Table must be on valid col\");var u=this.width,c=this.filterHeight,f=this.tableHeight;t.autoFilterRef=a.encode(i,s,i+c-1,s+u-1),t.tableRef=a.encode(i,s,i+f-1,s+u-1),t.columns.forEach((function(t,o){n(t.name,\"Column \".concat(o,\" must have a name\")),0===o?r(t,\"totalsRowLabel\",\"Total\"):(r(t,\"totalsRowFunction\",\"none\"),t.totalsRowFormula=e.getFormula(t))}))}},{key:\"store\",value:function(){var e=this,t=function(e,t){t&&Object.keys(t).forEach((function(r){e[r]=t[r]}))},r=this.worksheet,n=this.table,o=n.tl,i=o.row,a=o.col,s=0;if(n.headerRow){var u=r.getRow(i+s++);n.columns.forEach((function(e,r){var n=e.style,o=e.name,i=u.getCell(a+r);i.value=o,t(i,n)}))}if(n.rows.forEach((function(e){var o=r.getRow(i+s++);e.forEach((function(e,r){var i=o.getCell(a+r);i.value=e,t(i,n.columns[r].style)}))})),n.totalsRow){var c=r.getRow(i+s++);n.columns.forEach((function(r,n){var o=c.getCell(a+n);if(0===n)o.value=r.totalsRowLabel;else{var i=e.getFormula(r);o.value=i?{formula:r.totalsRowFormula,result:r.totalsRowResult}:null}t(o,r.style)}))}}},{key:\"load\",value:function(e){var t=this,r=this.table,n=r.tl,o=n.row,i=n.col,a=0;if(r.headerRow){var s=e.getRow(o+a++);r.columns.forEach((function(e,t){s.getCell(i+t).value=e.name}))}if(r.rows.forEach((function(t){var r=e.getRow(o+a++);t.forEach((function(e,t){r.getCell(i+t).value=e}))})),r.totalsRow){var u=e.getRow(o+a++);r.columns.forEach((function(e,r){var n=u.getCell(i+r);0===r?n.value=e.totalsRowLabel:t.getFormula(e)&&(n.value={formula:e.totalsRowFormula,result:e.totalsRowResult})}))}}},{key:\"cacheState\",value:function(){this._cache||(this._cache={ref:this.ref,width:this.width,tableHeight:this.tableHeight})}},{key:\"commit\",value:function(){if(this._cache){this.validate();var e=a.decodeAddress(this._cache.ref);if(this.ref!==this._cache.ref)for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.rows.splice(e,t)}},{key:\"getColumn\",value:function(e){var t=this.table.columns[e];return new s(this,t,e)}},{key:\"addColumn\",value:function(e,t,r){this.cacheState(),void 0===r?(this.table.columns.push(e),this.table.rows.forEach((function(e,r){e.push(t[r])}))):(this.table.columns.splice(r,0,e),this.table.rows.forEach((function(e,n){e.splice(r,0,t[n])})))}},{key:\"removeColumns\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.columns.splice(e,t),this.table.rows.forEach((function(r){r.splice(e,t)}))}},{key:\"_assign\",value:function(e,t,r){this.cacheState(),e[t]=r}},{key:\"width\",get:function(){return this.table.columns.length}},{key:\"height\",get:function(){return this.table.rows.length}},{key:\"filterHeight\",get:function(){return this.height+(this.table.headerRow?1:0)}},{key:\"tableHeight\",get:function(){return this.filterHeight+(this.table.totalsRow?1:0)}},{key:\"model\",get:function(){return this.table},set:function(e){this.table=e}},{key:\"ref\",get:function(){return this.table.ref},set:function(e){this._assign(this.table,\"ref\",e)}},{key:\"name\",get:function(){return this.table.name},set:function(e){this.table.name=e}},{key:\"displayName\",get:function(){return this.table.displyName||this.table.name}},{key:\"displayNamename\",set:function(e){this.table.displayName=e}},{key:\"headerRow\",get:function(){return this.table.headerRow},set:function(e){this._assign(this.table,\"headerRow\",e)}},{key:\"totalsRow\",get:function(){return this.table.totalsRow},set:function(e){this._assign(this.table,\"totalsRow\",e)}},{key:\"theme\",get:function(){return this.table.style.name},set:function(e){this.table.style.name=e}},{key:\"showFirstColumn\",get:function(){return this.table.style.showFirstColumn},set:function(e){this.table.style.showFirstColumn=e}},{key:\"showLastColumn\",get:function(){return this.table.style.showLastColumn},set:function(e){this.table.style.showLastColumn=e}},{key:\"showRowStripes\",get:function(){return this.table.style.showRowStripes},set:function(e){this.table.style.showRowStripes=e}},{key:\"showColumnStripes\",get:function(){return this.table.style.showColumnStripes},set:function(e){this.table.style.showColumnStripes=e}}]),e}();t.exports=u},{\"./../utils/col-cache\":17}],13:[function(e,t,r){function n(e,t){for(var r=0;r31&&console.warn(\"Worksheet name \".concat(e,\" exceeds 31 chars. This will be truncated\")),e=(e||\"sheet\".concat(r)).substring(0,31),this._worksheets.find((function(t){return t&&t.name.toLowerCase()===e.toLowerCase()})))throw new Error(\"Worksheet name already exists: \".concat(e));t&&(\"string\"==typeof t?(console.trace('tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { argb: \"rbg value\" } }'),t={properties:{tabColor:{argb:t}}}):(t.argb||t.theme||t.indexed)&&(console.trace(\"tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { ... } }\"),t={properties:{tabColor:t}}));var n=this._worksheets.reduce((function(e,t){return(t&&t.orderNo)>e?t.orderNo:e}),0),i=Object.assign({},t,{id:r,name:e,orderNo:n+1,workbook:this}),a=new o(i);return this._worksheets[r]=a,a}},{key:\"removeWorksheetEx\",value:function(e){delete this._worksheets[e.id]}},{key:\"removeWorksheet\",value:function(e){var t=this.getWorksheet(e);t&&t.destroy()}},{key:\"getWorksheet\",value:function(e){return void 0===e?this._worksheets.find(Boolean):\"number\"==typeof e?this._worksheets[e]:\"string\"==typeof e?this._worksheets.find((function(t){return t&&t.name===e})):void 0}},{key:\"eachSheet\",value:function(e){this.worksheets.forEach((function(t){e(t,t.id)}))}},{key:\"clearThemes\",value:function(){this._themes=void 0}},{key:\"addImage\",value:function(e){var t=this.media.length;return this.media.push(Object.assign({},e,{type:\"image\"})),t}},{key:\"getImage\",value:function(e){return this.media[e]}},{key:\"xlsx\",get:function(){return this._xlsx||(this._xlsx=new a(this)),this._xlsx}},{key:\"csv\",get:function(){return this._csv||(this._csv=new s(this)),this._csv}},{key:\"nextId\",get:function(){for(var e=1;ee.length)&&(t=e.length);for(var r=0,n=new Array(t);rthis._columns.length)for(var r=this._columns.length+1;r<=e;)this._columns.push(new f(this,r++));return this._columns[e-1]}},{key:\"spliceColumns\",value:function(e,t){for(var r=this,n=this._rows,o=n.length,i=arguments.length,a=new Array(i>2?i-2:0),s=2;s0)for(var u=function(n){var o=[e,t];a.forEach((function(e){o.push(e[n]||null)}));var i=r.getRow(n+1);i.splice.apply(i,o)},c=0;c0)for(var p=h;p>=l;p--)this.getColumn(p+f).defn=this.getColumn(p).defn;for(var y=e;y2&&void 0!==arguments[2]&&arguments[2],i=this._rows[e-1],a=new Array(t).fill(i.values);this.spliceRows.apply(this,[e+1,o?0:t].concat(n(a)));for(var s=function(t){var n=r._rows[e+t];n.style=i.style,n.height=i.height,i.eachCell({includeEmpty:!0},(function(e,t){n.getCell(t).style=e.style}))},u=0;u2?o-2:0),a=2;a0)for(s=f;s>=n;s--)(u=this._rows[s-1])?function(){var e=r.getRow(s+c);e.values=u.values,e.style=u.style,e.height=u.height,u.eachCell({includeEmpty:!0},(function(t,r){e.getCell(r).style=t.style}))}():this._rows[s+c-1]=void 0;for(s=0;se.top||o>e.left)&&this.getCell(n,o).merge(r,t);this._merges[r.address]=e}},{key:\"_unMergeMaster\",value:function(e){var t=this._merges[e.address];if(t){for(var r=t.top;r<=t.bottom;r++)for(var n=t.left;n<=t.right;n++)this.getCell(r,n).unmerge();delete this._merges[e.address]}}},{key:\"unMergeCells\",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r3&&void 0!==arguments[3]?arguments[3]:\"shared\",i=s.decode(e),a=i.top,u=i.left,c=i.bottom,f=i.right,l=f-u+1,h=s.encodeAddress(a,u),d=\"shared\"===o;n=\"function\"==typeof r?r:Array.isArray(r)?Array.isArray(r[0])?function(e,t){return r[e-a][t-u]}:function(e,t){return r[(e-a)*l+(t-u)]}:function(){};for(var p=!0,y=a;y<=c;y++)for(var m=u;m<=f;m++)p?(this.getCell(y,m).value={shareType:o,formula:t,ref:e,result:n(y,m)},p=!1):this.getCell(y,m).value=d?{sharedFormula:h,result:n(y,m)}:n(y,m)}},{key:\"addImage\",value:function(e,t){var r={type:\"image\",imageId:e,range:t};this._media.push(new h(this,r))}},{key:\"getImages\",value:function(){return this._media.filter((function(e){return\"image\"===e.type}))}},{key:\"addBackgroundImage\",value:function(e){var t={type:\"background\",imageId:e};this._media.push(new h(this,t))}},{key:\"getBackgroundImageId\",value:function(){var e=this._media.find((function(e){return\"background\"===e.type}));return e&&e.imageId}},{key:\"protect\",value:function(e,t){var r=this;return new Promise((function(n){r.sheetProtection={sheet:!0},t&&\"spinCount\"in t&&(t.spinCount=Number.isFinite(t.spinCount)?Math.round(Math.max(0,t.spinCount)):1e5),e&&(r.sheetProtection.algorithmName=\"SHA-512\",r.sheetProtection.saltValue=y.randomBytes(16).toString(\"base64\"),r.sheetProtection.spinCount=t&&\"spinCount\"in t?t.spinCount:1e5,r.sheetProtection.hashValue=y.convertPasswordToHash(e,\"SHA512\",r.sheetProtection.saltValue,r.sheetProtection.spinCount)),t&&(r.sheetProtection=Object.assign(r.sheetProtection,t),!e&&\"spinCount\"in t&&delete r.sheetProtection.spinCount),n()}))}},{key:\"unprotect\",value:function(){this.sheetProtection=null}},{key:\"addTable\",value:function(e){var t=new d(this,e);return this.tables[e.name]=t,t}},{key:\"getTable\",value:function(e){return this.tables[e]}},{key:\"removeTable\",value:function(e){delete this.tables[e]}},{key:\"getTables\",value:function(){return Object.values(this.tables)}},{key:\"addConditionalFormatting\",value:function(e){this.conditionalFormattings.push(e)}},{key:\"removeConditionalFormatting\",value:function(e){\"number\"==typeof e?this.conditionalFormattings.splice(e,1):this.conditionalFormattings=e instanceof Function?this.conditionalFormattings.filter(e):[]}},{key:\"_parseRows\",value:function(e){var t=this;this._rows=[],e.rows.forEach((function(e){var r=new c(t,e.number);t._rows[r.number-1]=r,r.model=e}))}},{key:\"_parseMergeCells\",value:function(e){var t=this;a.each(e.mergeCells,(function(e){t.mergeCellsWithoutStyle(e)}))}},{key:\"workbook\",get:function(){return this._workbook}},{key:\"dimensions\",get:function(){var e=new u;return this._rows.forEach((function(t){if(t){var r=t.dimensions;r&&e.expand(t.number,r.min,t.number,r.max)}})),e}},{key:\"columns\",get:function(){return this._columns},set:function(e){var t=this;this._headerRowCount=e.reduce((function(e,t){var r=(t.header?1:t.headers&&t.headers.length)||0;return Math.max(e,r)}),0);var r=1,n=this._columns=[];e.forEach((function(e){var o=new f(t,r++,!1);n.push(o),o.defn=e}))}},{key:\"columnCount\",get:function(){var e=0;return this.eachRow((function(t){e=Math.max(e,t.cellCount)})),e}},{key:\"actualColumnCount\",get:function(){var e=[],t=0;return this.eachRow((function(r){r.eachCell((function(r){var n=r.col;e[n]||(e[n]=!0,t++)}))})),t}},{key:\"_lastRowNumber\",get:function(){for(var e=this._rows,t=e.length;t>0&&void 0===e[t-1];)t--;return t}},{key:\"_nextRow\",get:function(){return this._lastRowNumber+1}},{key:\"lastRow\",get:function(){if(this._rows.length)return this._rows[this._rows.length-1]}},{key:\"rowCount\",get:function(){return this._lastRowNumber}},{key:\"actualRowCount\",get:function(){var e=0;return this.eachRow((function(){e++})),e}},{key:\"hasMerges\",get:function(){return a.some(this._merges,Boolean)}},{key:\"tabColor\",get:function(){return console.trace(\"worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor\"),this.properties.tabColor},set:function(e){console.trace(\"worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor\"),this.properties.tabColor=e}},{key:\"model\",get:function(){var e={id:this.id,name:this.name,dataValidations:this.dataValidations.model,properties:this.properties,state:this.state,pageSetup:this.pageSetup,headerFooter:this.headerFooter,rowBreaks:this.rowBreaks,views:this.views,autoFilter:this.autoFilter,media:this._media.map((function(e){return e.model})),sheetProtection:this.sheetProtection,tables:Object.values(this.tables).map((function(e){return e.model})),conditionalFormattings:this.conditionalFormattings};e.cols=f.toModel(this.columns);var t=e.rows=[],r=e.dimensions=new u;return this._rows.forEach((function(e){var n=e&&e.model;n&&(r.expand(n.number,n.min,n.number,n.max),t.push(n))})),e.merges=[],a.each(this._merges,(function(t){e.merges.push(t.range)})),e},set:function(e){var t=this;this.name=e.name,this._columns=f.fromModel(this,e.cols),this._parseRows(e),this._parseMergeCells(e),this.dataValidations=new p(e.dataValidations),this.properties=e.properties,this.pageSetup=e.pageSetup,this.headerFooter=e.headerFooter,this.views=e.views,this.autoFilter=e.autoFilter,this._media=e.media.map((function(e){return new h(t,e)})),this.sheetProtection=e.sheetProtection,this.tables=e.tables.reduce((function(e,t){var r=new d;return r.model=t,e[t.name]=r,e}),{}),this.conditionalFormattings=e.conditionalFormattings}}])&&i(t.prototype,r),o&&i(t,o),e}();t.exports=m},{\"../utils/col-cache\":17,\"../utils/encryptor\":18,\"../utils/under-dash\":23,\"./column\":4,\"./data-validations\":5,\"./enums\":7,\"./image\":8,\"./range\":10,\"./row\":11,\"./table\":12}],15:[function(e,t,r){e(\"core-js/modules/es.promise\"),e(\"core-js/modules/es.object.assign\"),e(\"core-js/modules/es.object.keys\"),e(\"regenerator-runtime/runtime\");var n={Workbook:e(\"./doc/workbook\")},o=e(\"./doc/enums\");Object.keys(o).forEach((function(e){n[e]=o[e]})),t.exports=n},{\"./doc/enums\":7,\"./doc/workbook\":13,\"core-js/modules/es.object.assign\":260,\"core-js/modules/es.object.keys\":261,\"core-js/modules/es.promise\":262,\"regenerator-runtime/runtime\":443}],16:[function(e,t,r){function n(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=1)for(;a<=26;)t=this._dictionary[a-1],this._n2l[a]=t,this._l2n[t]=a,a++;if(e>=2)for(;a<=702;)n=(r=a-27)%26,o=Math.floor(r/26),t=this._dictionary[o]+this._dictionary[n],this._n2l[a]=t,this._l2n[t]=a,a++;if(e>=3)for(;a<=16384;)n=(r=a-703)%26,o=Math.floor(r/26)%26,i=Math.floor(r/676),t=this._dictionary[i]+this._dictionary[o]+this._dictionary[n],this._n2l[a]=t,this._l2n[t]=a,a++},l2n:function(e){if(this._l2n[e]||this._fill(e.length),!this._l2n[e])throw new Error(\"Out of bounds. Invalid column letter: \".concat(e));return this._l2n[e]},n2l:function(e){if(e<1||e>16384)throw new Error(\"\".concat(e,\" is out of bounds. Excel supports columns from 1 to 16384\"));return this._n2l[e]||this._fill(this._level(e)),this._n2l[e]},_hash:{},validateAddress:function(e){if(!e.match(/^[A-Z]+\\d+$/))throw new Error(\"Invalid Address: \".concat(e));return!0},decodeAddress:function(e){var t=this._hash[e];if(t)return t;var r,n,o=e.match(/[A-Z]+/);o&&(r=o[0],n=this.l2n(r));var i,a,s=e.match(/\\d+/);s&&(i=s[0],a=parseInt(i,10));var u={address:e=(r||\"\")+(i||\"\"),col:n,row:a,$col$row:\"$\".concat(r||\"\",\"$\").concat(i||\"\")};return n<=100&&a<=100&&(this._hash[e]=u,this._hash[u.$col$row]=u),u},getAddress:function(e,t){if(t){var r=this.n2l(t)+e;return this.decodeAddress(r)}return this.decodeAddress(e)},decode:function(e){var t=e.split(\":\");if(2===t.length){var r=this.decodeAddress(t[0]),n=this.decodeAddress(t[1]),o={top:Math.min(r.row,n.row),left:Math.min(r.col,n.col),bottom:Math.max(r.row,n.row),right:Math.max(r.col,n.col)};return o.tl=this.n2l(o.left)+o.top,o.br=this.n2l(o.right)+o.bottom,o.dimensions=\"\".concat(o.tl,\":\").concat(o.br),o}return this.decodeAddress(e)},decodeEx:function(e){var t=e.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/),r=t[1]||t[2],n=t[3],o=n.split(\":\");if(o.length>1){var s=this.decodeAddress(o[0]),u=this.decodeAddress(o[1]),c=Math.min(s.row,u.row),f=Math.min(s.col,u.col),l=Math.max(s.row,u.row),h=Math.max(s.col,u.col);return s=this.n2l(f)+c,u=this.n2l(h)+l,{top:c,left:f,bottom:l,right:h,sheetName:r,tl:{address:s,col:f,row:c,$col$row:\"$\".concat(this.n2l(f),\"$\").concat(c),sheetName:r},br:{address:u,col:h,row:l,$col$row:\"$\".concat(this.n2l(h),\"$\").concat(l),sheetName:r},dimensions:\"\".concat(s,\":\").concat(u)}}if(n.startsWith(\"#\"))return r?{sheetName:r,error:n}:{error:n};var d=this.decodeAddress(n);return r?function(e){for(var t=1;t=o&&c<=a&&f>=i&&f<=s}};t.exports=s},{}],18:[function(e,t,r){(function(r){var n=e(\"crypto\"),o={hash:function(e){for(var t=n.createHash(e),o=arguments.length,i=new Array(o>1?o-1:0),a=1;a=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var n,o,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r3||3===l.length&&l>\"XFD\")return e;var p=n.l2n(l),y=parseInt(d,10);return f||(p+=s.col-a.col),h||(y+=s.row-a.row),(t||\"\")+(f||\"\")+n.n2l(p)+(h||\"\")+y}return e}))}}},{\"./col-cache\":17}],21:[function(e,t,r){(function(r,n){function o(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function i(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var a=e.apply(t,r);function s(e){o(a,n,i,s,u,\"next\",e)}function u(e){o(a,n,i,s,u,\"throw\",e)}s(void 0)}))}}function a(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function s(e,t){for(var r=0;r=this.length?(t=this.toBuffer(),this.iRead=this.iWrite,t):(t=n.alloc(e),this.buffer.copy(t,0,this.iRead,e),this.iRead+=e,t)}},{key:\"write\",value:function(e,t,r){var n=Math.min(r,this.size-this.iWrite);return e.copy(this.buffer,this.iWrite,t,t+n),this.iWrite+=n,n}},{key:\"length\",get:function(){return this.iWrite-this.iRead}},{key:\"eod\",get:function(){return this.iRead===this.iWrite}},{key:\"full\",get:function(){return this.iWrite===this.size}}]),e}(),m=function(e){e=e||{},this.bufSize=e.bufSize||1048576,this.buffers=[],this.batch=e.batch||!1,this.corked=!1,this.inPos=0,this.outPos=0,this.pipes=[],this.paused=!1,this.encoding=null};f.inherits(m,c.Duplex,{toBuffer:function(){switch(this.buffers.length){case 0:return null;case 1:return this.buffers[0].toBuffer();default:return n.concat(this.buffers.map((function(e){return e.toBuffer()})))}},_getWritableBuffer:function(){if(this.buffers.length){var e=this.buffers[this.buffers.length-1];if(!e.full)return e}var t=new y(this.bufSize);return this.buffers.push(t),t},_pipe:function(e){var t=this;return i(regeneratorRuntime.mark((function r(){var n;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n=function(t){return new Promise((function(r){t.write(e.toBuffer(),(function(){r()}))}))},r.next=3,Promise.all(t.pipes.map(n));case 3:case\"end\":return r.stop()}}),r)})))()},_writeToBuffers:function(e){for(var t=0,r=e.length;t1;)a._pipe(a.buffers.shift());i.next=29;break;case 21:if(a.corked){i.next=27;break}return i.next=24,a._pipe(s);case 24:o(),i.next=29;break;case 27:a._writeToBuffers(s),r.nextTick(o);case 29:i.next=34;break;case 31:a.paused||a.emit(\"data\",s.toBuffer()),a._writeToBuffers(s),a.emit(\"readable\");case 34:return i.abrupt(\"return\",!0);case 35:case\"end\":return i.stop()}}),i)})))()},cork:function(){this.corked=!0},_flush:function(){if(this.pipes.length)for(;this.buffers.length;)this._pipe(this.buffers.shift())},uncork:function(){this.corked=!1,this._flush()},end:function(e,t,r){var n=this,o=function(e){e?r(e):(n._flush(),n.pipes.forEach((function(e){e.end()})),n.emit(\"finish\"))};e?this.write(e,t,o):o()},read:function(e){var t;if(e){for(t=[];e&&this.buffers.length&&!this.buffers[0].eod;){var r=this.buffers[0],o=r.read(e);e-=o.length,t.push(o),r.eod&&r.full&&this.buffers.shift()}return n.concat(t)}return t=this.buffers.map((function(e){return e.toBuffer()})).filter(Boolean),this.buffers=[],n.concat(t)},setEncoding:function(e){this.encoding=e},pause:function(){this.paused=!0},resume:function(){this.paused=!1},isPaused:function(){return!!this.paused},pipe:function(e){this.pipes.push(e),!this.paused&&this.buffers.length&&this.end()},unpipe:function(e){this.pipes=this.pipes.filter((function(t){return t!==e}))},unshift:function(){throw new Error(\"Not Implemented\")},wrap:function(){throw new Error(\"Not Implemented\")}}),t.exports=m}).call(this,e(\"_process\"),e(\"buffer\").Buffer)},{\"./string-buf\":22,\"./utils\":24,_process:419,buffer:188,\"readable-stream\":442}],22:[function(e,t,r){(function(e){function r(e,t){for(var r=0;r=this._buf.length-4;)this._grow(this._inPos+e.length),t=this._inPos+this._buf.write(e,this._inPos,this._encoding);this._inPos=t}},{key:\"addStringBuf\",value:function(e){e.length&&(this._buffer=void 0,this.length+e.length>this.capacity&&this._grow(this.length+e.length),e._buf.copy(this._buf,this._inPos,0,e.length),this._inPos+=e.length)}},{key:\"length\",get:function(){return this._inPos}},{key:\"capacity\",get:function(){return this._buf.length}},{key:\"buffer\",get:function(){return this._buf}}])&&r(n.prototype,o),i&&r(n,i),t}();t.exports=n}).call(this,e(\"buffer\").Buffer)},{buffer:188}],23:[function(e,t,r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var o=Object.prototype.toString,i={each:function(e,t){e&&(Array.isArray(e)?e.forEach(t):Object.keys(e).forEach((function(r){t(e[r],r)})))},some:function(e,t){return!!e&&(Array.isArray(e)?e.some(t):Object.keys(e).some((function(r){return t(e[r],r)})))},every:function(e,t){return!e||(Array.isArray(e)?e.every(t):Object.keys(e).every((function(r){return t(e[r],r)})))},map:function(e,t){return e?Array.isArray(e)?e.map(t):Object.keys(e).map((function(r){return t(e[r],r)})):[]},keyBy:function(e,t){return e.reduce((function(e,r){return e[r[t]]=r,e}),{})},isEqual:function(e,t){var r=n(e),o=n(t),a=Array.isArray(e),s=Array.isArray(t);if(r!==o)return!1;switch(n(e)){case\"object\":return a||s?!(!a||!s)&&(e.length===t.length&&e.every((function(e,r){var n=t[r];return i.isEqual(e,n)}))):i.every(e,(function(e,r){var n=t[r];return i.isEqual(e,n)}));default:return e===t}},escapeHtml:function(e){return e.replace(/&/g,\"&\").replace(//g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")},strcmp:function(e,t){return et?1:0},isUndefined:function(e){return\"[object Undefined]\"===o.call(e)},isObject:function(e){return\"[object Object]\"===o.call(e)},deepMerge:function(){var e,t,r,n=arguments[0]||{},o=arguments.length;function a(o,a){e=n[a],r=Array.isArray(o),i.isObject(o)||r?(r?(r=!1,t=e&&Array.isArray(e)?e:[]):t=e&&i.isObject(e)?e:{},n[a]=i.deepMerge(t,o)):i.isUndefined(o)||(n[a]=o)}for(var s=0;s&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/g,(function(e){switch(e){case\"<\":return\"<\";case\">\":return\">\";case\"&\":return\"&\";case\"'\":return\"'\";case'\"':return\""\";default:return\"\"}}))},xmlDecode:function(e){return e.replace(/&([a-z]*);/,(function(e){switch(e){case\"<\":return\"<\";case\">\":return\">\";case\"&\":return\"&\";case\"'\":return\"'\";case\""\":return'\"';default:return e}}))},validInt:function(e){var t=parseInt(e,10);return Number.isNaN(t)?0:t},isDateFmt:function(e){return!!e&&null!==(e=(e=e.replace(/\\[[^\\]]*]/g,\"\")).replace(/\"[^\"]*\"/g,\"\")).match(/[ymdhMsb]+/)},fs:{exists:function(e){return new Promise((function(t){o.access(e,o.constants.F_OK,(function(e){t(!e)}))}))}},toIsoDateString:function(e){return e.toIsoString().subsstr(0,10)}};t.exports=i}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"timers\").setImmediate)},{fs:186,timers:471}],25:[function(e,t,r){function n(e,t){for(var r=0;r\\n\")}},{key:\"openNode\",value:function(e,t){var r=this.tos,n=this._xml;r&&this.open&&n.push(\">\"),this._stack.push(e),n.push(\"<\"),n.push(e),s(n,t),this.leaf=!0,this.open=!0}},{key:\"addAttribute\",value:function(e,t){if(!this.open)throw new Error(\"Cannot write attributes to node if it is not open\");void 0!==t&&a(this._xml,e,t)}},{key:\"addAttributes\",value:function(e){if(!this.open)throw new Error(\"Cannot write attributes to node if it is not open\");s(this._xml,e)}},{key:\"writeText\",value:function(e){var t=this._xml;this.open&&(t.push(\">\"),this.open=!1),this.leaf=!1,t.push(i.xmlEncode(e.toString()))}},{key:\"writeXml\",value:function(e){this.open&&(this._xml.push(\">\"),this.open=!1),this.leaf=!1,this._xml.push(e)}},{key:\"closeNode\",value:function(){var e=this._stack.pop(),t=this._xml;this.leaf?t.push(\"/>\"):(t.push(\"\")),this.open=!1,this.leaf=!1}},{key:\"leafNode\",value:function(e,t,r){this.openNode(e,t),void 0!==r&&this.writeText(r),this.closeNode()}},{key:\"closeAll\",value:function(){for(;this._stack.length;)this.closeNode()}},{key:\"addRollback\",value:function(){return this._rollbacks.push({xml:this._xml.length,stack:this._stack.length,leaf:this.leaf,open:this.open}),this.cursor}},{key:\"commit\",value:function(){this._rollbacks.pop()}},{key:\"rollback\",value:function(){var e=this._rollbacks.pop();this._xml.length>e.xml&&this._xml.splice(e.xml,this._xml.length-e.xml),this._stack.length>e.stack&&this._stack.splice(e.stack,this._stack.length-e.stack),this.leaf=e.leaf,this.open=e.open}},{key:\"tos\",get:function(){return this._stack.length?this._stack[this._stack.length-1]:void 0}},{key:\"cursor\",get:function(){return this._xml.length}},{key:\"xml\",get:function(){return this.closeAll(),this._xml.join(\"\")}}])&&n(t.prototype,r),o&&n(t,o),e}();u.StdDocAttributes={version:\"1.0\",encoding:\"UTF-8\",standalone:\"yes\"},t.exports=u},{\"./under-dash\":23,\"./utils\":24}],26:[function(e,t,r){(function(r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function i(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var a=e.apply(t,r);function s(e){o(a,n,i,s,u,\"next\",e)}function u(e){o(a,n,i,s,u,\"throw\",e)}s(void 0)}))}}function a(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function s(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var n,i,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]&&arguments[2];if(void 0===e){if(r)return t}else if(r||e!==t)return e.toString()}},{key:\"toStringAttribute\",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e.toAttribute(t,r,n)}},{key:\"toStringValue\",value:function(e,t){return void 0===e?t:e}},{key:\"toBoolAttribute\",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(void 0===e){if(r)return t}else if(r||e!==t)return e?\"1\":\"0\"}},{key:\"toBoolValue\",value:function(e,t){return void 0===e?t:\"1\"===e}},{key:\"toIntAttribute\",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e.toAttribute(t,r,n)}},{key:\"toIntValue\",value:function(e,t){return void 0===e?t:parseInt(e,10)}},{key:\"toFloatAttribute\",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e.toAttribute(t,r,n)}},{key:\"toFloatValue\",value:function(e,t){return void 0===e?t:parseFloat(e)}}],r&&s(t.prototype,r),o&&s(t,o),e}();t.exports=f},{\"../../utils/sax-stream\":19,\"../../utils/xml-stream\":25}],30:[function(e,t,r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){for(var r=0;rthis.maxItems))throw new Error(\"Max \".concat(this.childXform.tag,\" count exceeded\"));return!0}return!1}},{key:\"reconcile\",value:function(e,t){if(e){var r=this.childXform;e.forEach((function(e){r.reconcile(e,t)}))}}}])&&o(r.prototype,n),c&&o(r,c),l}(e(\"./base-xform\"));t.exports=c},{\"./base-xform\":29}],69:[function(e,t,r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0\");case\"containsErrors\":return\"ISERROR(\".concat(t,\")\");case\"notContainsErrors\":return\"NOT(ISERROR(\".concat(t,\"))\");default:return}}(t);r&&this.formulaXform.render(e,r),e.closeNode()}},{key:\"renderTimePeriod\",value:function(e,t){e.openNode(this.tag,{type:\"timePeriod\",dxfId:t.dxfId,priority:t.priority,timePeriod:t.timePeriod});var r=function(e){if(e.formulae&&e.formulae[0])return e.formulae[0];var t=new d(e.ref).tl;switch(e.timePeriod){case\"thisWeek\":return\"AND(TODAY()-ROUNDDOWN(\".concat(t,\",0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(\").concat(t,\",0)-TODAY()<=7-WEEKDAY(TODAY()))\");case\"lastWeek\":return\"AND(TODAY()-ROUNDDOWN(\".concat(t,\",0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(\").concat(t,\",0)<(WEEKDAY(TODAY())+7))\");case\"nextWeek\":return\"AND(ROUNDDOWN(\".concat(t,\",0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(\").concat(t,\",0)-TODAY()<(15-WEEKDAY(TODAY())))\");case\"yesterday\":return\"FLOOR(\".concat(t,\",1)=TODAY()-1\");case\"today\":return\"FLOOR(\".concat(t,\",1)=TODAY()\");case\"tomorrow\":return\"FLOOR(\".concat(t,\",1)=TODAY()+1\");case\"last7Days\":return\"AND(TODAY()-FLOOR(\".concat(t,\",1)<=6,FLOOR(\").concat(t,\",1)<=TODAY())\");case\"lastMonth\":return\"AND(MONTH(\".concat(t,\")=MONTH(EDATE(TODAY(),0-1)),YEAR(\").concat(t,\")=YEAR(EDATE(TODAY(),0-1)))\");case\"thisMonth\":return\"AND(MONTH(\".concat(t,\")=MONTH(TODAY()),YEAR(\").concat(t,\")=YEAR(TODAY()))\");case\"nextMonth\":return\"AND(MONTH(\".concat(t,\")=MONTH(EDATE(TODAY(),0+1)),YEAR(\").concat(t,\")=YEAR(EDATE(TODAY(),0+1)))\");default:return}}(t);r&&this.formulaXform.render(e,r),e.closeNode()}},{key:\"createNewModel\",value:function(e){var t=e.attributes;return function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r1||s>1){var f=o.row+(i-1),h=o.col+(s-1);return l({},t.dataValidation,{sqref:\"\".concat(t.address,\":\").concat(y.encodeAddress(f,h))})}return l({},t.dataValidation,{sqref:t.address})}return null})).filter(Boolean)}(t);r.length&&(e.openNode(\"dataValidations\",{count:r.length}),r.forEach((function(t){e.openNode(\"dataValidation\"),\"any\"!==t.type&&(e.addAttribute(\"type\",t.type),t.operator&&\"list\"!==t.type&&\"between\"!==t.operator&&e.addAttribute(\"operator\",t.operator),t.allowBlank&&e.addAttribute(\"allowBlank\",\"1\")),t.showInputMessage&&e.addAttribute(\"showInputMessage\",\"1\"),t.promptTitle&&e.addAttribute(\"promptTitle\",t.promptTitle),t.prompt&&e.addAttribute(\"prompt\",t.prompt),t.showErrorMessage&&e.addAttribute(\"showErrorMessage\",\"1\"),t.errorStyle&&e.addAttribute(\"errorStyle\",t.errorStyle),t.errorTitle&&e.addAttribute(\"errorTitle\",t.errorTitle),t.error&&e.addAttribute(\"error\",t.error),e.addAttribute(\"sqref\",t.sqref),(t.formulae||[]).forEach((function(r,n){e.openNode(\"formula\".concat(n+1)),\"date\"===t.type?e.writeText(p.dateToExcel(new Date(r))):e.writeText(r),e.closeNode()})),e.closeNode()})),e.closeNode())}},{key:\"parseOpen\",value:function(e){switch(e.name){case\"dataValidations\":return this.model={},!0;case\"dataValidation\":this._address=e.attributes.sqref;var t={type:e.attributes.type||\"any\",formulae:[]};switch(e.attributes.type&&g(t,e.attributes,\"allowBlank\"),g(t,e.attributes,\"showInputMessage\"),g(t,e.attributes,\"showErrorMessage\"),t.type){case\"any\":case\"list\":case\"custom\":break;default:v(t,e.attributes,\"operator\",\"between\")}return v(t,e.attributes,\"promptTitle\"),v(t,e.attributes,\"prompt\"),v(t,e.attributes,\"errorStyle\"),v(t,e.attributes,\"errorTitle\"),v(t,e.attributes,\"error\"),this._dataValidation=t,!0;case\"formula1\":case\"formula2\":return this._formula=[],!0;default:return!1}}},{key:\"parseText\",value:function(e){this._formula&&this._formula.push(e)}},{key:\"parseClose\",value:function(e){var t=this;switch(e){case\"dataValidations\":return!1;case\"dataValidation\":return this._dataValidation.formulae&&this._dataValidation.formulae.length||(delete this._dataValidation.formulae,delete this._dataValidation.operator),(this._address.split(/\\s+/g)||[]).forEach((function(e){e.includes(\":\")?new b(e).forEachAddress((function(e){t.model[e]=t._dataValidation})):t.model[e]=t._dataValidation})),!0;case\"formula1\":case\"formula2\":var r=this._formula.join(\"\");switch(this._dataValidation.type){case\"whole\":case\"textLength\":r=parseInt(r,10);break;case\"decimal\":r=parseFloat(r);break;case\"date\":r=p.excelToDate(parseFloat(r))}return this._dataValidation.formulae.push(r),this._formula=void 0,!0;default:return!0}}},{key:\"tag\",get:function(){return\"dataValidations\"}}])&&i(r.prototype,n),f&&i(r,f),m}(m);t.exports=w},{\"../../../doc/range\":10,\"../../../utils/col-cache\":17,\"../../../utils/under-dash\":23,\"../../../utils/utils\":24,\"../base-xform\":29}],91:[function(e,t,r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){for(var r=0;r0&&t.max>0&&t.min<=t.max&&e.addAttribute(\"spans\",\"\".concat(t.min,\":\").concat(t.max)),t.styleId&&(e.addAttribute(\"s\",t.styleId),e.addAttribute(\"customFormat\",\"1\")),e.addAttribute(\"x14ac:dyDescent\",\"0.25\"),t.outlineLevel&&e.addAttribute(\"outlineLevel\",t.outlineLevel),t.collapsed&&e.addAttribute(\"collapsed\",\"1\");var n=this.map.c;t.cells.forEach((function(t){n.render(e,t,r)})),e.closeNode()}},{key:\"parseOpen\",value:function(e){if(this.parser)return this.parser.parseOpen(e),!0;if(\"row\"===e.name){this.numRowsSeen+=1;var t=e.attributes.spans?e.attributes.spans.split(\":\").map((function(e){return parseInt(e,10)})):[void 0,void 0],r=this.model={number:parseInt(e.attributes.r,10),min:t[0],max:t[1],cells:[]};return e.attributes.s&&(r.styleId=parseInt(e.attributes.s,10)),!0!==e.attributes.hidden&&\"true\"!==e.attributes.hidden&&1!==e.attributes.hidden&&\"1\"!==e.attributes.hidden||(r.hidden=!0),e.attributes.bestFit&&(r.bestFit=!0),e.attributes.ht&&(r.height=parseFloat(e.attributes.ht)),e.attributes.outlineLevel&&(r.outlineLevel=parseInt(e.attributes.outlineLevel,10)),e.attributes.collapsed&&(r.collapsed=!0),!0}return this.parser=this.map[e.name],!!this.parser&&(this.parser.parseOpen(e),!0)}},{key:\"parseText\",value:function(e){this.parser&&this.parser.parseText(e)}},{key:\"parseClose\",value:function(e){if(this.parser){if(!this.parser.parseClose(e)){if(this.model.cells.push(this.parser.model),this.maxItems&&this.model.cells.length>this.maxItems)throw new Error(\"Max column count exceeded\");this.parser=void 0}return!0}return!1}},{key:\"reconcile\",value:function(e,t){e.style=e.styleId?t.styles.getStyleModel(e.styleId):{},void 0!==e.styleId&&(e.styleId=void 0);var r=this.map.c;e.cells.forEach((function(e){r.reconcile(e,t)}))}},{key:\"tag\",get:function(){return\"row\"}}])&&o(r.prototype,n),c&&o(r,c),h}(c);t.exports=l},{\"../base-xform\":29,\"./cell-xform\":70}],107:[function(e,t,r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){for(var r=0;r0){var i={Id:o(n),Type:h.Comments,Target:\"../comments\".concat(e.id,\".xml\")};n.push(i);var a={Id:o(n),Type:h.VmlDrawing,Target:\"../drawings/vmlDrawing\".concat(e.id,\".vml\")};n.push(a),e.comments.forEach((function(e){e.refAddress=f.decodeAddress(e.ref)})),t.commentRefs.push({commentName:\"comments\".concat(e.id),vmlDrawing:\"vmlDrawing\".concat(e.id)})}var s,u=[];e.media.forEach((function(i){if(\"background\"===i.type){var a=o(n);s=t.media[i.imageId],n.push({Id:a,Type:h.Image,Target:\"../media/\".concat(s.name,\".\").concat(s.extension)}),e.background={rId:a},e.image=t.media[i.imageId]}else if(\"image\"===i.type){var c=e.drawing;s=t.media[i.imageId],c||(c=e.drawing={rId:o(n),name:\"drawing\".concat(++t.drawingsCount),anchors:[],rels:[]},t.drawings.push(c),n.push({Id:c.rId,Type:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",Target:\"../drawings/\".concat(c.name,\".xml\")}));var f=r.preImageId===i.imageId?u[i.imageId]:u[c.rels.length];f||(f=o(c.rels),u[c.rels.length]=f,c.rels.push({Id:f,Type:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",Target:\"../media/\".concat(s.name,\".\").concat(s.extension)}));var l={picture:{rId:f},range:i.range};if(i.hyperlinks&&i.hyperlinks.hyperlink){var d=o(c.rels);u[c.rels.length]=d,l.picture.hyperlinks={tooltip:i.hyperlinks.tooltip,rId:d},c.rels.push({Id:d,Type:h.Hyperlink,Target:i.hyperlinks.hyperlink,TargetMode:\"External\"})}r.preImageId=i.imageId,c.anchors.push(l)}})),e.tables.forEach((function(e){var r=o(n);e.rId=r,n.push({Id:r,Type:h.Table,Target:\"../tables/\".concat(e.target)}),e.columns.forEach((function(e){var r=e.style;r&&(e.dxfId=t.styles.addDxfStyle(r))}))})),this.map.extLst.prepare(e,t)}},{key:\"render\",value:function(e,t){e.openXml(l.StdDocAttributes),e.openNode(\"worksheet\",L.WORKSHEET_ATTRIBUTES);var r=t.properties?{defaultRowHeight:t.properties.defaultRowHeight,dyDescent:t.properties.dyDescent,outlineLevelCol:t.properties.outlineLevelCol,outlineLevelRow:t.properties.outlineLevelRow}:void 0;t.properties&&t.properties.defaultColWidth&&(r.defaultColWidth=t.properties.defaultColWidth);var n={outlineProperties:t.properties&&t.properties.outlineProperties,tabColor:t.properties&&t.properties.tabColor,pageSetup:t.pageSetup&&t.pageSetup.fitToPage?{fitToPage:t.pageSetup.fitToPage}:void 0},o=t.pageSetup&&t.pageSetup.margins,i={showRowColHeaders:t.pageSetup&&t.pageSetup.showRowColHeaders,showGridLines:t.pageSetup&&t.pageSetup.showGridLines,horizontalCentered:t.pageSetup&&t.pageSetup.horizontalCentered,verticalCentered:t.pageSetup&&t.pageSetup.verticalCentered},a=t.sheetProtection;this.map.sheetPr.render(e,n),this.map.dimension.render(e,t.dimensions),this.map.sheetViews.render(e,t.views),this.map.sheetFormatPr.render(e,r),this.map.cols.render(e,t.cols),this.map.sheetData.render(e,t.rows),this.map.sheetProtection.render(e,a),this.map.autoFilter.render(e,t.autoFilter),this.map.mergeCells.render(e,t.mergeCells),this.map.conditionalFormatting.render(e,t.conditionalFormattings),this.map.dataValidations.render(e,t.dataValidations),this.map.hyperlinks.render(e,t.hyperlinks),this.map.printOptions.render(e,i),this.map.pageMargins.render(e,o),this.map.pageSetup.render(e,t.pageSetup),this.map.headerFooter.render(e,t.headerFooter),this.map.rowBreaks.render(e,t.rowBreaks),this.map.drawing.render(e,t.drawing),this.map.picture.render(e,t.background),this.map.tableParts.render(e,t.tables),this.map.extLst.render(e,t),t.rels&&t.rels.forEach((function(t){t.Type===h.VmlDrawing&&e.leafNode(\"legacyDrawing\",{\"r:id\":t.Id})})),e.closeNode()}},{key:\"parseOpen\",value:function(e){return this.parser?(this.parser.parseOpen(e),!0):\"worksheet\"===e.name?(c.each(this.map,(function(e){e.reset()})),!0):(this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e),!0)}},{key:\"parseText\",value:function(e){this.parser&&this.parser.parseText(e)}},{key:\"parseClose\",value:function(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case\"worksheet\":var t=this.map.sheetFormatPr.model||{};this.map.sheetPr.model&&this.map.sheetPr.model.tabColor&&(t.tabColor=this.map.sheetPr.model.tabColor),this.map.sheetPr.model&&this.map.sheetPr.model.outlineProperties&&(t.outlineProperties=this.map.sheetPr.model.outlineProperties);var r={fitToPage:this.map.sheetPr.model&&this.map.sheetPr.model.pageSetup&&this.map.sheetPr.model.pageSetup.fitToPage||!1,margins:this.map.pageMargins.model},n=Object.assign(r,this.map.pageSetup.model,this.map.printOptions.model),o=B(this.map.conditionalFormatting.model,this.map.extLst.model&&this.map.extLst.model[\"x14:conditionalFormattings\"]);return this.model={dimensions:this.map.dimension.model,cols:this.map.cols.model,rows:this.map.sheetData.model,mergeCells:this.map.mergeCells.model,hyperlinks:this.map.hyperlinks.model,dataValidations:this.map.dataValidations.model,properties:t,views:this.map.sheetViews.model,pageSetup:n,headerFooter:this.map.headerFooter.model,background:this.map.picture.model,drawing:this.map.drawing.model,tables:this.map.tableParts.model,conditionalFormattings:o},this.map.autoFilter.model&&(this.model.autoFilter=this.map.autoFilter.model),this.map.sheetProtection.model&&(this.model.sheetProtection=this.map.sheetProtection.model),!1;default:return!0}}},{key:\"reconcile\",value:function(e,t){var r=(e.relationships||[]).reduce((function(r,n){if(r[n.Id]=n,n.Type===h.Comments&&(e.comments=t.comments[n.Target].comments),n.Type===h.VmlDrawing&&e.comments&&e.comments.length){var o=t.vmlDrawings[n.Target].comments;e.comments.forEach((function(e,t){e.note=Object.assign({},e.note,o[t])}))}return r}),{});if(t.commentsMap=(e.comments||[]).reduce((function(e,t){return t.ref&&(e[t.ref]=t),e}),{}),t.hyperlinkMap=(e.hyperlinks||[]).reduce((function(e,t){return t.rId&&(e[t.address]=r[t.rId].Target),e}),{}),t.formulae={},e.rows=e.rows&&e.rows.filter(Boolean)||[],e.rows.forEach((function(e){e.cells=e.cells&&e.cells.filter(Boolean)||[]})),this.map.cols.reconcile(e.cols,t),this.map.sheetData.reconcile(e.rows,t),this.map.conditionalFormatting.reconcile(e.conditionalFormattings,t),e.media=[],e.drawing){var n=r[e.drawing.rId].Target.match(/\\/drawings\\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);if(n){var o=n[1];t.drawings[o].anchors.forEach((function(t){if(t.medium){var r={type:\"image\",imageId:t.medium.index,range:t.range,hyperlinks:t.picture.hyperlinks};e.media.push(r)}}))}}var i=e.background&&r[e.background.rId];if(i){var a=i.Target.split(\"/media/\")[1],s=t.mediaIndex&&t.mediaIndex[a];void 0!==s&&e.media.push({type:\"background\",imageId:s})}e.tables=(e.tables||[]).map((function(e){var n=r[e.rId];return t.tables[n.Target]})),delete e.relationships,delete e.hyperlinks,delete e.comments}}])&&o(r.prototype,n),p&&o(r,p),L}(p);F.WORKSHEET_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x14ac\",\"xmlns:x14ac\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\"},t.exports=F},{\"../../../utils/col-cache\":17,\"../../../utils/under-dash\":23,\"../../../utils/xml-stream\":25,\"../../rel-type\":28,\"../base-xform\":29,\"../list-xform\":68,\"./auto-filter-xform\":69,\"./cf/conditional-formattings-xform\":84,\"./col-xform\":89,\"./data-validations-xform\":90,\"./dimension-xform\":91,\"./drawing-xform\":92,\"./ext-lst-xform\":93,\"./header-footer-xform\":94,\"./hyperlink-xform\":95,\"./merge-cell-xform\":96,\"./merges\":97,\"./page-margins-xform\":100,\"./page-setup-xform\":102,\"./picture-xform\":103,\"./print-options-xform\":104,\"./row-breaks-xform\":105,\"./row-xform\":106,\"./sheet-format-properties-xform\":107,\"./sheet-properties-xform\":108,\"./sheet-protection-xform\":109,\"./sheet-view-xform\":110,\"./table-part-xform\":111}],113:[function(e,t,r){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){for(var r=0;r=-90&&e<=90?e:void 0}},indent:function(e){return e=l.validInt(e),Math.max(0,e)},readingOrder:function(e){switch(e){case\"ltr\":return f.ReadingOrder.LeftToRight;case\"rtl\":return f.ReadingOrder.RightToLeft;default:return}}},p=function(e){if(e=d.textRotation(e)){if(\"vertical\"===e)return 255;var t=Math.round(e);if(t>=0&&t<=90)return t;if(t<0&&t>=-90)return 90-t}},y=function(e){var t=l.validInt(e);if(void 0!==t){if(255===t)return\"vertical\";if(t>=0&&t<=90)return t;if(t>90&&t<=180)return 90-t}},m=function(e){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(h,e);var t,r,n,f,l=(t=h,function(){var e,r=u(t);if(s()){var n=u(this).constructor;e=Reflect.construct(r,arguments,n)}else e=r.apply(this,arguments);return a(this,e)});function h(){return o(this,h),l.apply(this,arguments)}return r=h,(n=[{key:\"render\",value:function(e,t){e.addRollback(),e.openNode(\"alignment\");var r=!1;function n(t,n){n&&(e.addAttribute(t,n),r=!0)}n(\"horizontal\",d.horizontal(t.horizontal)),n(\"vertical\",d.vertical(t.vertical)),n(\"wrapText\",!!d.wrapText(t.wrapText)&&\"1\"),n(\"shrinkToFit\",!!d.shrinkToFit(t.shrinkToFit)&&\"1\"),n(\"indent\",d.indent(t.indent)),n(\"textRotation\",p(t.textRotation)),n(\"readingOrder\",d.readingOrder(t.readingOrder)),e.closeNode(),r?e.commit():e.rollback()}},{key:\"parseOpen\",value:function(e){var t={},r=!1;function n(e,n,o){e&&(t[n]=o,r=!0)}n(e.attributes.horizontal,\"horizontal\",e.attributes.horizontal),n(e.attributes.vertical,\"vertical\",\"center\"===e.attributes.vertical?\"middle\":e.attributes.vertical),n(e.attributes.wrapText,\"wrapText\",!!e.attributes.wrapText),n(e.attributes.shrinkToFit,\"shrinkToFit\",!!e.attributes.shrinkToFit),n(e.attributes.indent,\"indent\",parseInt(e.attributes.indent,10)),n(e.attributes.textRotation,\"textRotation\",y(e.attributes.textRotation)),n(e.attributes.readingOrder,\"readingOrder\",\"2\"===e.attributes.readingOrder?\"rtl\":\"ltr\"),this.model=r?t:null}},{key:\"parseText\",value:function(){}},{key:\"parseClose\",value:function(){return!1}},{key:\"tag\",get:function(){return\"alignment\"}}])&&i(r.prototype,n),f&&i(r,f),h}(h);t.exports=m},{\"../../../doc/enums\":7,\"../../../utils/utils\":24,\"../base-xform\":29}],124:[function(e,t,r){function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e){return(i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function a(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function s(e,t){for(var r=0;r=1)){e.next=6;break}return i=n.substr(o+1),a=n.substr(0,o),e.next=6,new Promise((function(e,o){var s=new u;s.on(\"finish\",(function(){r.mediaIndex[n]=r.media.length,r.mediaIndex[a]=r.media.length;var t={type:\"image\",name:a,extension:i,buffer:s.toBuffer()};r.media.push(t),e()})),t.on(\"error\",(function(e){o(e)})),t.pipe(s)}));case 6:case\"end\":return e.stop()}}),e)}))),function(e,t,r){return V.apply(this,arguments)})},{key:\"_processDrawingEntry\",value:(H=o(regeneratorRuntime.mark((function e(t,r,n){var o,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=new g,e.next=3,o.parseStream(t);case 3:i=e.sent,r.drawings[n]=i;case 5:case\"end\":return e.stop()}}),e)}))),function(e,t,r){return H.apply(this,arguments)})},{key:\"_processDrawingRelsEntry\",value:(U=o(regeneratorRuntime.mark((function e(t,r,n){var o,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=new p,e.next=3,o.parseStream(t);case 3:i=e.sent,r.drawingRels[n]=i;case 5:case\"end\":return e.stop()}}),e)}))),function(e,t,r){return U.apply(this,arguments)})},{key:\"_processVmlDrawingEntry\",value:(z=o(regeneratorRuntime.mark((function e(t,r,n){var o,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=new k,e.next=3,o.parseStream(t);case 3:i=e.sent,r.vmlDrawings[\"../drawings/\".concat(n,\".vml\")]=i;case 5:case\"end\":return e.stop()}}),e)}))),function(e,t,r){return z.apply(this,arguments)})},{key:\"_processThemeEntry\",value:(L=o(regeneratorRuntime.mark((function e(t,r,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,new Promise((function(e,o){var i=new u;t.on(\"error\",o),i.on(\"error\",o),i.on(\"finish\",(function(){r.themes[n]=i.read().toString(),e()})),t.pipe(i)}));case 2:case\"end\":return e.stop()}}),e)}))),function(e,t,r){return L.apply(this,arguments)})},{key:\"createInputStream\",value:function(e){return console.warn(\"`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 4.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\"),this._createInputStream(e)}},{key:\"_createInputStream\",value:function(e){var t=this,r={worksheets:[],worksheetHash:{},worksheetRels:[],themes:{},media:[],mediaIndex:{},drawings:{},drawingRels:{},comments:{},tables:{},vmlDrawings:{}},n=[],i=new s.ZipReader({getEntryType:function(e){return e.match(/xl\\/media\\//)?\"nodebuffer\":\"string\"}});return i.on(\"entry\",(function(i){n.push(o(regeneratorRuntime.mark((function n(){var o,a,s,u,c,f,p;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:n.prev=0,\"/\"===(o=i.path)[0]&&(o=o.substr(1)),n.t0=o,n.next=\"_rels/.rels\"===n.t0?6:\"xl/workbook.xml\"===n.t0?10:\"xl/_rels/workbook.xml.rels\"===n.t0?19:\"xl/sharedStrings.xml\"===n.t0?23:\"xl/styles.xml\"===n.t0?27:\"docProps/app.xml\"===n.t0?31:\"docProps/core.xml\"===n.t0?38:44;break;case 6:return n.next=8,t.parseRels(i);case 8:return r.globalRels=n.sent,n.abrupt(\"break\",90);case 10:return n.next=12,t.parseWorkbook(i);case 12:return a=n.sent,r.sheets=a.sheets,r.definedNames=a.definedNames,r.views=a.views,r.properties=a.properties,r.calcProperties=a.calcProperties,n.abrupt(\"break\",90);case 19:return n.next=21,t.parseRels(i);case 21:return r.workbookRels=n.sent,n.abrupt(\"break\",90);case 23:return r.sharedStrings=new d,n.next=26,r.sharedStrings.parseStream(i);case 26:return n.abrupt(\"break\",90);case 27:return r.styles=new l,n.next=30,r.styles.parseStream(i);case 30:return n.abrupt(\"break\",90);case 31:return s=new m,n.next=34,s.parseStream(i);case 34:return u=n.sent,r.company=u.company,r.manager=u.manager,n.abrupt(\"break\",90);case 38:return c=new h,n.next=41,c.parseStream(i);case 41:return f=n.sent,Object.assign(r,f),n.abrupt(\"break\",90);case 44:if(!(p=i.path.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/))){n.next=49;break}return n.next=48,t._processWorksheetEntry(i,r,p[1],e);case 48:return n.abrupt(\"break\",90);case 49:if(!(p=i.path.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/))){n.next=54;break}return n.next=53,t._processWorksheetRelsEntry(i,r,p[1]);case 53:return n.abrupt(\"break\",90);case 54:if(!(p=i.path.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/))){n.next=59;break}return n.next=58,t._processThemeEntry(i,r,p[1]);case 58:return n.abrupt(\"break\",90);case 59:if(!(p=i.path.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/))){n.next=64;break}return n.next=63,t._processMediaEntry(i,r,p[1]);case 63:return n.abrupt(\"break\",90);case 64:if(!(p=i.path.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/))){n.next=69;break}return n.next=68,t._processDrawingEntry(i,r,p[1]);case 68:return n.abrupt(\"break\",90);case 69:if(!(p=i.path.match(/xl\\/(comments\\d+)[.]xml/))){n.next=74;break}return n.next=73,t._processCommentEntry(i,r,p[1]);case 73:return n.abrupt(\"break\",90);case 74:if(!(p=i.path.match(/xl\\/tables\\/(table\\d+)[.]xml/))){n.next=79;break}return n.next=78,t._processTableEntry(i,r,p[1]);case 78:return n.abrupt(\"break\",90);case 79:if(!(p=i.path.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/))){n.next=84;break}return n.next=83,t._processDrawingRelsEntry(i,r,p[1]);case 83:return n.abrupt(\"break\",90);case 84:if(!(p=i.path.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/))){n.next=89;break}return n.next=88,t._processVmlDrawingEntry(i,r,p[1]);case 88:return n.abrupt(\"break\",90);case 89:i.autodrain();case 90:n.next=95;break;case 92:n.prev=92,n.t1=n.catch(0),t.error=n.t1;case 95:case\"end\":return n.stop()}}),n,null,[[0,92]])})))())})),i.on(\"finished\",o(regeneratorRuntime.mark((function o(){return regeneratorRuntime.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.prev=0,o.next=3,Promise.all(n);case 3:if(!t.error){o.next=5;break}throw t.error;case 5:t.reconcile(r,e),t.workbook.model=r,i.emit(\"done\"),o.next=13;break;case 10:o.prev=10,o.t0=o.catch(0),i.emit(\"error\",o.t0);case 13:case\"end\":return o.stop()}}),o,null,[[0,10]])})))),i}},{key:\"read\",value:function(e,t){var r=this;return new Promise((function(n,o){t=t||{};var i=r._createInputStream(t);i.on(\"done\",(function(){n(r.workbook)})).on(\"error\",(function(e){o(e)})),e.pipe(i)}))}},{key:\"load\",value:function(e,t){var n=this;void 0===t&&(t={});var o=this._createInputStream();return new Promise((function(i,a){if(o.on(\"done\",(function(){i(n.workbook)})).on(\"error\",(function(e){a(e)})),t.base64){var s=r.from(e.toString(),\"base64\");o.write(s)}else o.write(e);o.end()}))}},{key:\"addMedia\",value:(F=o(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(r.media.map(function(){var e=o(regeneratorRuntime.mark((function e(r){var n,o,i,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(\"image\"!==r.type){e.next=13;break}if(n=\"xl/media/\".concat(r.name,\".\").concat(r.extension),!r.filename){e.next=7;break}return e.next=5,S(r.filename);case 5:return o=e.sent,e.abrupt(\"return\",t.append(o,{name:n}));case 7:if(!r.buffer){e.next=9;break}return e.abrupt(\"return\",t.append(r.buffer,{name:n}));case 9:if(!r.base64){e.next=13;break}return i=r.base64,a=i.substring(i.indexOf(\",\")+1),e.abrupt(\"return\",t.append(a,{name:n,base64:!0}));case 13:throw new Error(\"Unsupported media\");case 14:case\"end\":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 2:case\"end\":return e.stop()}}),e)}))),function(e,t){return F.apply(this,arguments)})},{key:\"addDrawings\",value:function(e,t){var r=new g,n=new p;t.worksheets.forEach((function(t){var o=t.drawing;if(o){r.prepare(o,{});var i=r.toXml(o);e.append(i,{name:\"xl/drawings/\".concat(o.name,\".xml\")}),i=n.toXml(o.rels),e.append(i,{name:\"xl/drawings/_rels/\".concat(o.name,\".xml.rels\")})}}))}},{key:\"addTables\",value:function(e,t){var r=new w;t.worksheets.forEach((function(t){t.tables.forEach((function(t){r.prepare(t,{});var n=r.toXml(t);e.append(n,{name:\"xl/tables/\".concat(t.target)})}))}))}},{key:\"addContentTypes\",value:(B=o(regeneratorRuntime.mark((function e(t,r){var n,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new y,o=n.toXml(r),t.append(o,{name:\"[Content_Types].xml\"});case 3:case\"end\":return e.stop()}}),e)}))),function(e,t){return B.apply(this,arguments)})},{key:\"addApp\",value:(D=o(regeneratorRuntime.mark((function e(t,r){var n,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new m,o=n.toXml(r),t.append(o,{name:\"docProps/app.xml\"});case 3:case\"end\":return e.stop()}}),e)}))),function(e,t){return D.apply(this,arguments)})},{key:\"addCore\",value:(N=o(regeneratorRuntime.mark((function e(t,r){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new h,t.append(n.toXml(r),{name:\"docProps/core.xml\"});case 2:case\"end\":return e.stop()}}),e)}))),function(e,t){return N.apply(this,arguments)})},{key:\"addThemes\",value:(I=o(regeneratorRuntime.mark((function e(t,r){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=r.themes||{theme1:x},Object.keys(n).forEach((function(e){var r=n[e],o=\"xl/theme/\".concat(e,\".xml\");t.append(r,{name:o})}));case 2:case\"end\":return e.stop()}}),e)}))),function(e,t){return I.apply(this,arguments)})},{key:\"addOfficeRels\",value:(M=o(regeneratorRuntime.mark((function t(r){var n,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=new p,o=n.toXml([{Id:\"rId1\",Type:e.RelType.OfficeDocument,Target:\"xl/workbook.xml\"},{Id:\"rId2\",Type:e.RelType.CoreProperties,Target:\"docProps/core.xml\"},{Id:\"rId3\",Type:e.RelType.ExtenderProperties,Target:\"docProps/app.xml\"}]),r.append(o,{name:\"_rels/.rels\"});case 3:case\"end\":return t.stop()}}),t)}))),function(e){return M.apply(this,arguments)})},{key:\"addWorkbookRels\",value:(A=o(regeneratorRuntime.mark((function t(r,n){var o,i,a,s;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:o=1,i=[{Id:\"rId\".concat(o++),Type:e.RelType.Styles,Target:\"styles.xml\"},{Id:\"rId\".concat(o++),Type:e.RelType.Theme,Target:\"theme/theme1.xml\"}],n.sharedStrings.count&&i.push({Id:\"rId\".concat(o++),Type:e.RelType.SharedStrings,Target:\"sharedStrings.xml\"}),n.worksheets.forEach((function(t){t.rId=\"rId\".concat(o++),i.push({Id:t.rId,Type:e.RelType.Worksheet,Target:\"worksheets/sheet\".concat(t.id,\".xml\")})})),a=new p,s=a.toXml(i),r.append(s,{name:\"xl/_rels/workbook.xml.rels\"});case 7:case\"end\":return t.stop()}}),t)}))),function(e,t){return A.apply(this,arguments)})},{key:\"addSharedStrings\",value:(P=o(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r.sharedStrings&&r.sharedStrings.count&&t.append(r.sharedStrings.xml,{name:\"xl/sharedStrings.xml\"});case 1:case\"end\":return e.stop()}}),e)}))),function(e,t){return P.apply(this,arguments)})},{key:\"addStyles\",value:(C=o(regeneratorRuntime.mark((function e(t,r){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:(n=r.styles.xml)&&t.append(n,{name:\"xl/styles.xml\"});case 2:case\"end\":return e.stop()}}),e)}))),function(e,t){return C.apply(this,arguments)})},{key:\"addWorkbook\",value:(T=o(regeneratorRuntime.mark((function e(t,r){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new b,t.append(n.toXml(r),{name:\"xl/workbook.xml\"});case 2:case\"end\":return e.stop()}}),e)}))),function(e,t){return T.apply(this,arguments)})},{key:\"addWorksheets\",value:(j=o(regeneratorRuntime.mark((function e(t,r){var n,o,i,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new v,o=new p,i=new _,a=new k,r.worksheets.forEach((function(e){var r=new f;n.render(r,e),t.append(r.xml,{name:\"xl/worksheets/sheet\".concat(e.id,\".xml\")}),e.rels&&e.rels.length&&(r=new f,o.render(r,e.rels),t.append(r.xml,{name:\"xl/worksheets/_rels/sheet\".concat(e.id,\".xml.rels\")})),e.comments.length>0&&(r=new f,i.render(r,e),t.append(r.xml,{name:\"xl/comments\".concat(e.id,\".xml\")}),r=new f,a.render(r,e),t.append(r.xml,{name:\"xl/drawings/vmlDrawing\".concat(e.id,\".vml\")}))}));case 5:case\"end\":return e.stop()}}),e)}))),function(e,t){return j.apply(this,arguments)})},{key:\"_finalize\",value:function(e){var t=this;return new Promise((function(r,n){e.on(\"finish\",(function(){r(t)})),e.on(\"error\",n),e.finalize()}))}},{key:\"prepareModel\",value:function(e,t){e.creator=e.creator||\"ExcelJS\",e.lastModifiedBy=e.lastModifiedBy||\"ExcelJS\",e.created=e.created||new Date,e.modified=e.modified||new Date,e.useSharedStrings=void 0===t.useSharedStrings||t.useSharedStrings,e.useStyles=void 0===t.useStyles||t.useStyles,e.sharedStrings=new d,e.styles=e.useStyles?new l(!0):new l.Mock;var r=new b,n=new v;r.prepare(e);var o={sharedStrings:e.sharedStrings,styles:e.styles,date1904:e.properties.date1904,drawingsCount:0,media:e.media};o.drawings=e.drawings=[],o.commentRefs=e.commentRefs=[];var i=0;e.tables=[],e.worksheets.forEach((function(t){t.tables.forEach((function(t){i++,t.target=\"table\".concat(i,\".xml\"),t.id=i,e.tables.push(t)})),n.prepare(t,o)}))}},{key:\"write\",value:(R=o(regeneratorRuntime.mark((function e(t,r){var n,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=r||{},n=this.workbook.model,(o=new s.ZipWriter(r.zip)).pipe(t),this.prepareModel(n,r),e.next=7,this.addContentTypes(o,n);case 7:return e.next=9,this.addOfficeRels(o,n);case 9:return e.next=11,this.addWorkbookRels(o,n);case 11:return e.next=13,this.addWorksheets(o,n);case 13:return e.next=15,this.addSharedStrings(o,n);case 15:return e.next=17,this.addDrawings(o,n);case 17:return e.next=19,this.addTables(o,n);case 19:return e.next=21,Promise.all([this.addThemes(o,n),this.addStyles(o,n)]);case 21:return e.next=23,this.addMedia(o,n);case 23:return e.next=25,Promise.all([this.addApp(o,n),this.addCore(o,n)]);case 25:return e.next=27,this.addWorkbook(o,n);case 27:return e.abrupt(\"return\",this._finalize(o));case 28:case\"end\":return e.stop()}}),e,this)}))),function(e,t){return R.apply(this,arguments)})},{key:\"writeFile\",value:function(e,t){var r=this,n=a.createWriteStream(e);return new Promise((function(e,o){n.on(\"finish\",(function(){e()})),n.on(\"error\",(function(e){o(e)})),r.write(n,t).then((function(){n.end()}))}))}},{key:\"writeBuffer\",value:(E=o(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new u,e.next=3,this.write(r,t);case 3:return e.abrupt(\"return\",r.read());case 4:case\"end\":return e.stop()}}),e,this)}))),function(e){return E.apply(this,arguments)})}])&&i(t.prototype,n),O&&i(t,O),e}();O.RelType=e(\"./rel-type\"),t.exports=O}).call(this,e(\"buffer\").Buffer)},{\"../utils/stream-buf\":21,\"../utils/utils\":24,\"../utils/xml-stream\":25,\"../utils/zip-stream\":26,\"./rel-type\":28,\"./xform/book/workbook-xform\":35,\"./xform/comment/comments-xform\":37,\"./xform/comment/vml-notes-xform\":42,\"./xform/core/app-xform\":48,\"./xform/core/content-types-xform\":49,\"./xform/core/core-xform\":50,\"./xform/core/relationships-xform\":52,\"./xform/drawing/drawing-xform\":59,\"./xform/sheet/worksheet-xform\":112,\"./xform/strings/shared-strings-xform\":121,\"./xform/style/styles-xform\":132,\"./xform/table/table-xform\":138,\"./xml/theme1.js\":140,buffer:188,fs:186}],140:[function(e,t,r){t.exports='\\n '},{}],141:[function(e,t,r){var n=r;n.bignum=e(\"bn.js\"),n.define=e(\"./asn1/api\").define,n.base=e(\"./asn1/base\"),n.constants=e(\"./asn1/constants\"),n.decoders=e(\"./asn1/decoders\"),n.encoders=e(\"./asn1/encoders\")},{\"./asn1/api\":142,\"./asn1/base\":144,\"./asn1/constants\":148,\"./asn1/decoders\":150,\"./asn1/encoders\":153,\"bn.js\":156}],142:[function(e,t,r){var n=e(\"../asn1\"),o=e(\"inherits\");function i(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}r.define=function(e,t){return new i(e,t)},i.prototype._createNamed=function(t){var r;try{r=e(\"vm\").runInThisContext(\"(function \"+this.name+\"(entity) {\\n this._initNamed(entity);\\n})\")}catch(e){r=function(e){this._initNamed(e)}}return o(r,t),r.prototype._initNamed=function(e){t.call(this,e)},new r(this)},i.prototype._getDecoder=function(e){return e=e||\"der\",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(n.decoders[e])),this.decoders[e]},i.prototype.decode=function(e,t,r){return this._getDecoder(t).decode(e,r)},i.prototype._getEncoder=function(e){return e=e||\"der\",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(n.encoders[e])),this.encoders[e]},i.prototype.encode=function(e,t,r){return this._getEncoder(t).encode(e,r)}},{\"../asn1\":141,inherits:341,vm:481}],143:[function(e,t,r){var n=e(\"inherits\"),o=e(\"../base\").Reporter,i=e(\"buffer\").Buffer;function a(e,t){o.call(this,t),i.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error(\"Input not Buffer\")}function s(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return e instanceof s||(e=new s(e,t)),this.length+=e.length,e}),this);else if(\"number\"==typeof e){if(!(0<=e&&e<=255))return t.error(\"non-byte EncoderBuffer value\");this.value=e,this.length=1}else if(\"string\"==typeof e)this.value=e,this.length=i.byteLength(e);else{if(!i.isBuffer(e))return t.error(\"Unsupported type: \"+_typeof2(e));this.value=e,this.length=e.length}}n(a,o),r.DecoderBuffer=a,a.prototype.save=function(){return{offset:this.offset,reporter:o.prototype.save.call(this)}},a.prototype.restore=function(e){var t=new a(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,o.prototype.restore.call(this,e.reporter),t},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||\"DecoderBuffer overrun\")},a.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||\"DecoderBuffer overrun\");var r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+e,this.offset+=e,r},a.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},r.EncoderBuffer=s,s.prototype.join=function(e,t){return e||(e=new i(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(e,t),t+=r.length})):(\"number\"==typeof this.value?e[t]=this.value:\"string\"==typeof this.value?e.write(this.value,t):i.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},{\"../base\":144,buffer:188,inherits:341}],144:[function(e,t,r){var n=r;n.Reporter=e(\"./reporter\").Reporter,n.DecoderBuffer=e(\"./buffer\").DecoderBuffer,n.EncoderBuffer=e(\"./buffer\").EncoderBuffer,n.Node=e(\"./node\")},{\"./buffer\":143,\"./node\":145,\"./reporter\":146}],145:[function(e,t,r){var n=e(\"../base\").Reporter,o=e(\"../base\").EncoderBuffer,i=e(\"../base\").DecoderBuffer,a=e(\"minimalistic-assert\"),s=[\"seq\",\"seqof\",\"set\",\"setof\",\"objid\",\"bool\",\"gentime\",\"utctime\",\"null_\",\"enum\",\"int\",\"objDesc\",\"bitstr\",\"bmpstr\",\"charstr\",\"genstr\",\"graphstr\",\"ia5str\",\"iso646str\",\"numstr\",\"octstr\",\"printstr\",\"t61str\",\"unistr\",\"utf8str\",\"videostr\"],u=[\"key\",\"obj\",\"use\",\"optional\",\"explicit\",\"implicit\",\"def\",\"choice\",\"any\",\"contains\"].concat(s);function c(e,t){var r={};this._baseState=r,r.enc=e,r.parent=t||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r.default=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}t.exports=c;var f=[\"enc\",\"parent\",\"children\",\"tag\",\"args\",\"reverseArgs\",\"choice\",\"optional\",\"any\",\"obj\",\"use\",\"alteredUse\",\"key\",\"default\",\"explicit\",\"implicit\",\"contains\"];c.prototype.clone=function(){var e=this._baseState,t={};f.forEach((function(r){t[r]=e[r]}));var r=new this.constructor(t.parent);return r._baseState=t,r},c.prototype._wrap=function(){var e=this._baseState;u.forEach((function(t){this[t]=function(){var r=new this.constructor(this);return e.children.push(r),r[t].apply(r,arguments)}}),this)},c.prototype._init=function(e){var t=this._baseState;a(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),a.equal(t.children.length,1,\"Root node can have only one child\")},c.prototype._useArgs=function(e){var t=this._baseState,r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==r.length&&(a(null===t.children),t.children=r,r.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(a(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if(\"object\"!==_typeof2(e)||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach((function(r){r==(0|r)&&(r|=0);var n=e[r];t[n]=r})),t})))},[\"_peekTag\",\"_decodeTag\",\"_use\",\"_decodeStr\",\"_decodeObjid\",\"_decodeTime\",\"_decodeNull\",\"_decodeInt\",\"_decodeBool\",\"_decodeList\",\"_encodeComposite\",\"_encodeStr\",\"_encodeObjid\",\"_encodeTime\",\"_encodeNull\",\"_encodeInt\",\"_encodeBool\"].forEach((function(e){c.prototype[e]=function(){var t=this._baseState;throw new Error(e+\" not implemented for encoding: \"+t.enc)}})),s.forEach((function(e){c.prototype[e]=function(){var t=this._baseState,r=Array.prototype.slice.call(arguments);return a(null===t.tag),t.tag=e,this._useArgs(r),this}})),c.prototype.use=function(e){a(e);var t=this._baseState;return a(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){var t=this._baseState;return a(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){var t=this._baseState;return a(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){var t=this._baseState;return a(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){var t=this._baseState;return a(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){var t=this._baseState;return a(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},c.prototype.contains=function(e){var t=this._baseState;return a(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){var r=this._baseState;if(null===r.parent)return e.wrapResult(r.children[0]._decode(e,t));var n,o=r.default,a=!0,s=null;if(null!==r.key&&(s=e.enterKey(r.key)),r.optional){var u=null;if(null!==r.explicit?u=r.explicit:null!==r.implicit?u=r.implicit:null!==r.tag&&(u=r.tag),null!==u||r.any){if(a=this._peekTag(e,u,r.any),e.isError(a))return a}else{var c=e.save();try{null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),a=!0}catch(e){a=!1}e.restore(c)}}if(r.obj&&a&&(n=e.enterObject()),a){if(null!==r.explicit){var f=this._decodeTag(e,r.explicit);if(e.isError(f))return f;e=f}var l=e.offset;if(null===r.use&&null===r.choice){if(r.any)c=e.save();var h=this._decodeTag(e,null!==r.implicit?r.implicit:r.tag,r.any);if(e.isError(h))return h;r.any?o=e.raw(c):e=h}if(t&&t.track&&null!==r.tag&&t.track(e.path(),l,e.length,\"tagged\"),t&&t.track&&null!==r.tag&&t.track(e.path(),e.offset,e.length,\"content\"),o=r.any?o:null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),e.isError(o))return o;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(e,t)})),r.contains&&(\"octstr\"===r.tag||\"bitstr\"===r.tag)){var d=new i(o);o=this._getUse(r.contains,e._reporterState.obj)._decode(d,t)}}return r.obj&&a&&(o=e.leaveObject(n)),null===r.key||null===o&&!0!==a?null!==s&&e.exitKey(s):e.leaveKey(s,r.key,o),o},c.prototype._decodeGeneric=function(e,t,r){var n=this._baseState;return\"seq\"===e||\"set\"===e?null:\"seqof\"===e||\"setof\"===e?this._decodeList(t,e,n.args[0],r):/str$/.test(e)?this._decodeStr(t,e,r):\"objid\"===e&&n.args?this._decodeObjid(t,n.args[0],n.args[1],r):\"objid\"===e?this._decodeObjid(t,null,null,r):\"gentime\"===e||\"utctime\"===e?this._decodeTime(t,e,r):\"null_\"===e?this._decodeNull(t,r):\"bool\"===e?this._decodeBool(t,r):\"objDesc\"===e?this._decodeStr(t,e,r):\"int\"===e||\"enum\"===e?this._decodeInt(t,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,t._reporterState.obj)._decode(t,r):t.error(\"unknown tag: \"+e)},c.prototype._getUse=function(e,t){var r=this._baseState;return r.useDecoder=this._use(e,t),a(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},c.prototype._decodeChoice=function(e,t){var r=this._baseState,n=null,o=!1;return Object.keys(r.choice).some((function(i){var a=e.save(),s=r.choice[i];try{var u=s._decode(e,t);if(e.isError(u))return!1;n={type:i,value:u},o=!0}catch(t){return e.restore(a),!1}return!0}),this),o?n:e.error(\"Choice not matched\")},c.prototype._createEncoderBuffer=function(e){return new o(e,this.reporter)},c.prototype._encode=function(e,t,r){var n=this._baseState;if(null===n.default||n.default!==e){var o=this._encodeValue(e,t,r);if(void 0!==o&&!this._skipDefault(o,t,r))return o}},c.prototype._encodeValue=function(e,t,r){var o=this._baseState;if(null===o.parent)return o.children[0]._encode(e,t||new n);var i=null;if(this.reporter=t,o.optional&&void 0===e){if(null===o.default)return;e=o.default}var a=null,s=!1;if(o.any)i=this._createEncoderBuffer(e);else if(o.choice)i=this._encodeChoice(e,t);else if(o.contains)a=this._getUse(o.contains,r)._encode(e,t),s=!0;else if(o.children)a=o.children.map((function(r){if(\"null_\"===r._baseState.tag)return r._encode(null,t,e);if(null===r._baseState.key)return t.error(\"Child should have a key\");var n=t.enterKey(r._baseState.key);if(\"object\"!==_typeof2(e))return t.error(\"Child expected, but input is not object\");var o=r._encode(e[r._baseState.key],t,e);return t.leaveKey(n),o}),this).filter((function(e){return e})),a=this._createEncoderBuffer(a);else if(\"seqof\"===o.tag||\"setof\"===o.tag){if(!o.args||1!==o.args.length)return t.error(\"Too many args for : \"+o.tag);if(!Array.isArray(e))return t.error(\"seqof/setof, but data is not Array\");var u=this.clone();u._baseState.implicit=null,a=this._createEncoderBuffer(e.map((function(r){var n=this._baseState;return this._getUse(n.args[0],e)._encode(r,t)}),u))}else null!==o.use?i=this._getUse(o.use,r)._encode(e,t):(a=this._encodePrimitive(o.tag,e),s=!0);if(!o.any&&null===o.choice){var c=null!==o.implicit?o.implicit:o.tag,f=null===o.implicit?\"universal\":\"context\";null===c?null===o.use&&t.error(\"Tag could be omitted only for .use()\"):null===o.use&&(i=this._encodeComposite(c,s,f,a))}return null!==o.explicit&&(i=this._encodeComposite(o.explicit,!1,\"context\",i)),i},c.prototype._encodeChoice=function(e,t){var r=this._baseState,n=r.choice[e.type];return n||a(!1,e.type+\" not found in \"+JSON.stringify(Object.keys(r.choice))),n._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){var r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if(\"objid\"===e&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);if(\"objid\"===e)return this._encodeObjid(t,null,null);if(\"gentime\"===e||\"utctime\"===e)return this._encodeTime(t,e);if(\"null_\"===e)return this._encodeNull();if(\"int\"===e||\"enum\"===e)return this._encodeInt(t,r.args&&r.reverseArgs[0]);if(\"bool\"===e)return this._encodeBool(t);if(\"objDesc\"===e)return this._encodeStr(t,e);throw new Error(\"Unsupported tag: \"+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(e)}},{\"../base\":144,\"minimalistic-assert\":390}],146:[function(e,t,r){var n=e(\"inherits\");function o(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function i(e,t){this.path=e,this.rethrow(t)}r.Reporter=o,o.prototype.isError=function(e){return e instanceof i},o.prototype.save=function(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},o.prototype.restore=function(e){var t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},o.prototype.enterKey=function(e){return this._reporterState.path.push(e)},o.prototype.exitKey=function(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)},o.prototype.leaveKey=function(e,t,r){var n=this._reporterState;this.exitKey(e),null!==n.obj&&(n.obj[t]=r)},o.prototype.path=function(){return this._reporterState.path.join(\"/\")},o.prototype.enterObject=function(){var e=this._reporterState,t=e.obj;return e.obj={},t},o.prototype.leaveObject=function(e){var t=this._reporterState,r=t.obj;return t.obj=e,r},o.prototype.error=function(e){var t,r=this._reporterState,n=e instanceof i;if(t=n?e:new i(r.path.map((function(e){return\"[\"+JSON.stringify(e)+\"]\"})).join(\"\"),e.message||e,e.stack),!r.options.partial)throw t;return n||r.errors.push(t),t},o.prototype.wrapResult=function(e){var t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},n(i,Error),i.prototype.rethrow=function(e){if(this.message=e+\" at: \"+(this.path||\"(shallow)\"),Error.captureStackTrace&&Error.captureStackTrace(this,i),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},{inherits:341}],147:[function(e,t,r){var n=e(\"../constants\");r.tagClass={0:\"universal\",1:\"application\",2:\"context\",3:\"private\"},r.tagClassByName=n._reverse(r.tagClass),r.tag={0:\"end\",1:\"bool\",2:\"int\",3:\"bitstr\",4:\"octstr\",5:\"null_\",6:\"objid\",7:\"objDesc\",8:\"external\",9:\"real\",10:\"enum\",11:\"embed\",12:\"utf8str\",13:\"relativeOid\",16:\"seq\",17:\"set\",18:\"numstr\",19:\"printstr\",20:\"t61str\",21:\"videostr\",22:\"ia5str\",23:\"utctime\",24:\"gentime\",25:\"graphstr\",26:\"iso646str\",27:\"genstr\",28:\"unistr\",29:\"charstr\",30:\"bmpstr\"},r.tagByName=n._reverse(r.tag)},{\"../constants\":148}],148:[function(e,t,r){var n=r;n._reverse=function(e){var t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);var n=e[r];t[n]=r})),t},n.der=e(\"./der\")},{\"./der\":147}],149:[function(e,t,r){var n=e(\"inherits\"),o=e(\"../../asn1\"),i=o.base,a=o.bignum,s=o.constants.der;function u(e){this.enc=\"der\",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){i.Node.call(this,\"der\",e)}function f(e,t){var r=e.readUInt8(t);if(e.isError(r))return r;var n=s.tagClass[r>>6],o=0==(32&r);if(31==(31&r)){var i=r;for(r=0;128==(128&i);){if(i=e.readUInt8(t),e.isError(i))return i;r<<=7,r|=127&i}}else r&=31;return{cls:n,primitive:o,tag:r,tagStr:s.tag[r]}}function l(e,t,r){var n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;var o=127&n;if(o>4)return e.error(\"length octect is too long\");n=0;for(var i=0;i=31)return n.error(\"Multi-octet tag encoding unsupported\");t||(o|=32);return o|=s.tagClassByName[r||\"universal\"]<<6}(e,t,r,this.reporter);if(n.length<128)return(i=new o(2))[0]=a,i[1]=n.length,this._createEncoderBuffer([i,n]);for(var u=1,c=n.length;c>=256;c>>=8)u++;(i=new o(2+u))[0]=a,i[1]=128|u;c=1+u;for(var f=n.length;f>0;c--,f>>=8)i[c]=255&f;return this._createEncoderBuffer([i,n])},c.prototype._encodeStr=function(e,t){if(\"bitstr\"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if(\"bmpstr\"===t){for(var r=new o(2*e.length),n=0;n=40)return this.reporter.error(\"Second objid identifier OOB\");e.splice(0,2,40*e[0]+e[1])}var i=0;for(n=0;n=128;a>>=7)i++}var s=new o(i),u=s.length-1;for(n=e.length-1;n>=0;n--){a=e[n];for(s[u--]=127&a;(a>>=7)>0;)s[u--]=128|127&a}return this._createEncoderBuffer(s)},c.prototype._encodeTime=function(e,t){var r,n=new Date(e);return\"gentime\"===t?r=[f(n.getFullYear()),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),\"Z\"].join(\"\"):\"utctime\"===t?r=[f(n.getFullYear()%100),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),\"Z\"].join(\"\"):this.reporter.error(\"Encoding \"+t+\" time is not supported yet\"),this._encodeStr(r,\"octstr\")},c.prototype._encodeNull=function(){return this._createEncoderBuffer(\"\")},c.prototype._encodeInt=function(e,t){if(\"string\"==typeof e){if(!t)return this.reporter.error(\"String int or enum given, but no values map\");if(!t.hasOwnProperty(e))return this.reporter.error(\"Values map doesn't contain: \"+JSON.stringify(e));e=t[e]}if(\"number\"!=typeof e&&!o.isBuffer(e)){var r=e.toArray();!e.sign&&128&r[0]&&r.unshift(0),e=new o(r)}if(o.isBuffer(e)){var n=e.length;0===e.length&&n++;var i=new o(n);return e.copy(i),0===e.length&&(i[0]=0),this._createEncoderBuffer(i)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);n=1;for(var a=e;a>=256;a>>=8)n++;for(a=(i=new Array(n)).length-1;a>=0;a--)i[a]=255&e,e>>=8;return 128&i[0]&&i.unshift(0),this._createEncoderBuffer(new o(i))},c.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},c.prototype._use=function(e,t){return\"function\"==typeof e&&(e=e(t)),e._getEncoder(\"der\").tree},c.prototype._skipDefault=function(e,t,r){var n,o=this._baseState;if(null===o.default)return!1;var i=e.join();if(void 0===o.defaultBuffer&&(o.defaultBuffer=this._encodeValue(o.default,t,r).join()),i.length!==o.defaultBuffer.length)return!1;for(n=0;n0?a-4:a;for(r=0;r>16&255,u[f++]=t>>8&255,u[f++]=255&t;2===s&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,u[f++]=255&t);1===s&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,u[f++]=t>>8&255,u[f++]=255&t);return u},r.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],a=0,s=r-o;as?s:a+16383));1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+\"==\")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+\"=\"));return i.join(\"\")};for(var n=[],o=[],i=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",s=0,u=a.length;s0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=e.indexOf(\"=\");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function f(e,t,r){for(var o,i,a=[],s=t;s>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return a.join(\"\")}o[\"-\".charCodeAt(0)]=62,o[\"_\".charCodeAt(0)]=63},{}],156:[function(e,t,r){!function(t,r){function n(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&(\"le\"!==t&&\"be\"!==t||(r=t,t=10),this._init(e||0,t||10,r||\"be\"))}var a;\"object\"===_typeof2(t)?t.exports=i:r.BN=i,i.BN=i,i.wordSize=26;try{a=e(\"buffer\").Buffer}catch(e){}function s(e,t,r){for(var n=0,o=Math.min(e.length,r),i=t;i=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&\"object\"===_typeof2(e)&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if(\"number\"==typeof e)return this._initNumber(e,t,r);if(\"object\"===_typeof2(e))return this._initArray(e,t,r);\"hex\"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;\"-\"===(e=e.toString().replace(/\\s+/g,\"\"))[0]&&o++,16===t?this._parseHex(e,o):this._parseBase(e,t,o),\"-\"===e[0]&&(this.negative=1),this.strip(),\"le\"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),\"le\"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n(\"number\"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var o=0;o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if(\"le\"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)o=s(e,r,r+6),this.words[n]|=o<>>26-i&4194303,(i+=24)>=26&&(i-=26,n++);r+6!==t&&(o=s(e,t,r+6),this.words[n]|=o<>>26-i&4194303),this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,c=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?\"\"};var c=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,h=Math.min(c,t.length-1),d=Math.max(0,c-e.length+1);d<=h;d++){var p=c-d|0;f+=(a=(o=0|e.words[p])*(i=0|t.words[d])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||\"hex\"===e){r=\"\";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?c[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}if(e===(0|e)&&e>=2&&e<=36){var h=f[e],d=l[e];r=\"\";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(d).toString(e);r=(p=p.idivn(d)).isZero()?y+r:c[h-y.length]+y+r}for(this.isZero()&&(r=\"0\"+r);r.length%t!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}n(!1,\"Base should be between 2 and 36\")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,\"byte array longer than desired length\"),n(i>0,\"Requested array length <= 0\"),this.strip();var a,s,u=\"le\"===t,c=new e(i),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n(\"number\"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n(\"number\"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,d=0|a[1],p=8191&d,y=d>>>13,m=0|a[2],b=8191&m,v=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],x=8191&k,S=k>>>13,O=0|a[5],E=8191&O,R=O>>>13,j=0|a[6],T=8191&j,C=j>>>13,P=0|a[7],A=8191&P,M=P>>>13,I=0|a[8],N=8191&I,D=I>>>13,B=0|a[9],F=8191&B,L=B>>>13,z=0|s[0],U=8191&z,H=z>>>13,V=0|s[1],W=8191&V,q=V>>>13,$=0|s[2],X=8191&$,K=$>>>13,Y=0|s[3],Z=8191&Y,G=Y>>>13,J=0|s[4],Q=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,fe=0|s[8],le=8191&fe,he=fe>>>13,de=0|s[9],pe=8191&de,ye=de>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(c+(n=Math.imul(l,U))|0)+((8191&(o=(o=Math.imul(l,H))+Math.imul(h,U)|0))<<13)|0;c=((i=Math.imul(h,H))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,U),o=(o=Math.imul(p,H))+Math.imul(y,U)|0,i=Math.imul(y,H);var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,q)|0)+Math.imul(h,W)|0))<<13)|0;c=((i=i+Math.imul(h,q)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(b,U),o=(o=Math.imul(b,H))+Math.imul(v,U)|0,i=Math.imul(v,H),n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,q)|0)+Math.imul(y,W)|0,i=i+Math.imul(y,q)|0;var ve=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(h,X)|0))<<13)|0;c=((i=i+Math.imul(h,K)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(w,U),o=(o=Math.imul(w,H))+Math.imul(_,U)|0,i=Math.imul(_,H),n=n+Math.imul(b,W)|0,o=(o=o+Math.imul(b,q)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(y,X)|0,i=i+Math.imul(y,K)|0;var ge=(c+(n=n+Math.imul(l,Z)|0)|0)+((8191&(o=(o=o+Math.imul(l,G)|0)+Math.imul(h,Z)|0))<<13)|0;c=((i=i+Math.imul(h,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(x,U),o=(o=Math.imul(x,H))+Math.imul(S,U)|0,i=Math.imul(S,H),n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,q)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,q)|0,n=n+Math.imul(b,X)|0,o=(o=o+Math.imul(b,K)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,K)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,G)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(h,Q)|0))<<13)|0;c=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(E,U),o=(o=Math.imul(E,H))+Math.imul(R,U)|0,i=Math.imul(R,H),n=n+Math.imul(x,W)|0,o=(o=o+Math.imul(x,q)|0)+Math.imul(S,W)|0,i=i+Math.imul(S,q)|0,n=n+Math.imul(w,X)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,X)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(b,Z)|0,o=(o=o+Math.imul(b,G)|0)+Math.imul(v,Z)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Q)|0,i=i+Math.imul(y,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(h,re)|0))<<13)|0;c=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(T,U),o=(o=Math.imul(T,H))+Math.imul(C,U)|0,i=Math.imul(C,H),n=n+Math.imul(E,W)|0,o=(o=o+Math.imul(E,q)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,q)|0,n=n+Math.imul(x,X)|0,o=(o=o+Math.imul(x,K)|0)+Math.imul(S,X)|0,i=i+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(b,Q)|0,o=(o=o+Math.imul(b,ee)|0)+Math.imul(v,Q)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var ke=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(h,ie)|0))<<13)|0;c=((i=i+Math.imul(h,ae)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(A,U),o=(o=Math.imul(A,H))+Math.imul(M,U)|0,i=Math.imul(M,H),n=n+Math.imul(T,W)|0,o=(o=o+Math.imul(T,q)|0)+Math.imul(C,W)|0,i=i+Math.imul(C,q)|0,n=n+Math.imul(E,X)|0,o=(o=o+Math.imul(E,K)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,K)|0,n=n+Math.imul(x,Z)|0,o=(o=o+Math.imul(x,G)|0)+Math.imul(S,Z)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(b,re)|0,o=(o=o+Math.imul(b,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var xe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(h,ue)|0))<<13)|0;c=((i=i+Math.imul(h,ce)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(N,U),o=(o=Math.imul(N,H))+Math.imul(D,U)|0,i=Math.imul(D,H),n=n+Math.imul(A,W)|0,o=(o=o+Math.imul(A,q)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,q)|0,n=n+Math.imul(T,X)|0,o=(o=o+Math.imul(T,K)|0)+Math.imul(C,X)|0,i=i+Math.imul(C,K)|0,n=n+Math.imul(E,Z)|0,o=(o=o+Math.imul(E,G)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(x,Q)|0,o=(o=o+Math.imul(x,ee)|0)+Math.imul(S,Q)|0,i=i+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(b,ie)|0,o=(o=o+Math.imul(b,ae)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(y,ue)|0,i=i+Math.imul(y,ce)|0;var Se=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,he)|0)+Math.imul(h,le)|0))<<13)|0;c=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(F,U),o=(o=Math.imul(F,H))+Math.imul(L,U)|0,i=Math.imul(L,H),n=n+Math.imul(N,W)|0,o=(o=o+Math.imul(N,q)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,q)|0,n=n+Math.imul(A,X)|0,o=(o=o+Math.imul(A,K)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(C,Z)|0,i=i+Math.imul(C,G)|0,n=n+Math.imul(E,Q)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(R,Q)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,o=(o=o+Math.imul(x,ne)|0)+Math.imul(S,re)|0,i=i+Math.imul(S,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(b,ue)|0,o=(o=o+Math.imul(b,ce)|0)+Math.imul(v,ue)|0,i=i+Math.imul(v,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(y,le)|0,i=i+Math.imul(y,he)|0;var Oe=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,ye)|0)+Math.imul(h,pe)|0))<<13)|0;c=((i=i+Math.imul(h,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(F,W),o=(o=Math.imul(F,q))+Math.imul(L,W)|0,i=Math.imul(L,q),n=n+Math.imul(N,X)|0,o=(o=o+Math.imul(N,K)|0)+Math.imul(D,X)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(A,Z)|0,o=(o=o+Math.imul(A,G)|0)+Math.imul(M,Z)|0,i=i+Math.imul(M,G)|0,n=n+Math.imul(T,Q)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(C,Q)|0,i=i+Math.imul(C,ee)|0,n=n+Math.imul(E,re)|0,o=(o=o+Math.imul(E,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(x,ie)|0,o=(o=o+Math.imul(x,ae)|0)+Math.imul(S,ie)|0,i=i+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(b,le)|0,o=(o=o+Math.imul(b,he)|0)+Math.imul(v,le)|0,i=i+Math.imul(v,he)|0;var Ee=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;c=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(F,X),o=(o=Math.imul(F,K))+Math.imul(L,X)|0,i=Math.imul(L,K),n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(A,Q)|0,o=(o=o+Math.imul(A,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(C,re)|0,i=i+Math.imul(C,ne)|0,n=n+Math.imul(E,ie)|0,o=(o=o+Math.imul(E,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,o=(o=o+Math.imul(x,ce)|0)+Math.imul(S,ue)|0,i=i+Math.imul(S,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,he)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,he)|0;var Re=(c+(n=n+Math.imul(b,pe)|0)|0)+((8191&(o=(o=o+Math.imul(b,ye)|0)+Math.imul(v,pe)|0))<<13)|0;c=((i=i+Math.imul(v,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(F,Z),o=(o=Math.imul(F,G))+Math.imul(L,Z)|0,i=Math.imul(L,G),n=n+Math.imul(N,Q)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(A,re)|0,o=(o=o+Math.imul(A,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(C,ie)|0,i=i+Math.imul(C,ae)|0,n=n+Math.imul(E,ue)|0,o=(o=o+Math.imul(E,ce)|0)+Math.imul(R,ue)|0,i=i+Math.imul(R,ce)|0,n=n+Math.imul(x,le)|0,o=(o=o+Math.imul(x,he)|0)+Math.imul(S,le)|0,i=i+Math.imul(S,he)|0;var je=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(F,Q),o=(o=Math.imul(F,ee))+Math.imul(L,Q)|0,i=Math.imul(L,ee),n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(A,ie)|0,o=(o=o+Math.imul(A,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(T,ue)|0,o=(o=o+Math.imul(T,ce)|0)+Math.imul(C,ue)|0,i=i+Math.imul(C,ce)|0,n=n+Math.imul(E,le)|0,o=(o=o+Math.imul(E,he)|0)+Math.imul(R,le)|0,i=i+Math.imul(R,he)|0;var Te=(c+(n=n+Math.imul(x,pe)|0)|0)+((8191&(o=(o=o+Math.imul(x,ye)|0)+Math.imul(S,pe)|0))<<13)|0;c=((i=i+Math.imul(S,ye)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(F,re),o=(o=Math.imul(F,ne))+Math.imul(L,re)|0,i=Math.imul(L,ne),n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(A,ue)|0,o=(o=o+Math.imul(A,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(T,le)|0,o=(o=o+Math.imul(T,he)|0)+Math.imul(C,le)|0,i=i+Math.imul(C,he)|0;var Ce=(c+(n=n+Math.imul(E,pe)|0)|0)+((8191&(o=(o=o+Math.imul(E,ye)|0)+Math.imul(R,pe)|0))<<13)|0;c=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(F,ie),o=(o=Math.imul(F,ae))+Math.imul(L,ie)|0,i=Math.imul(L,ae),n=n+Math.imul(N,ue)|0,o=(o=o+Math.imul(N,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(A,le)|0,o=(o=o+Math.imul(A,he)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,he)|0;var Pe=(c+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(C,pe)|0))<<13)|0;c=((i=i+Math.imul(C,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(F,ue),o=(o=Math.imul(F,ce))+Math.imul(L,ue)|0,i=Math.imul(L,ce),n=n+Math.imul(N,le)|0,o=(o=o+Math.imul(N,he)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,he)|0;var Ae=(c+(n=n+Math.imul(A,pe)|0)|0)+((8191&(o=(o=o+Math.imul(A,ye)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(F,le),o=(o=Math.imul(F,he))+Math.imul(L,le)|0,i=Math.imul(L,he);var Me=(c+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ie=(c+(n=Math.imul(F,pe))|0)+((8191&(o=(o=Math.imul(F,ye))+Math.imul(L,pe)|0))<<13)|0;return c=((i=Math.imul(L,ye))+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,u[0]=me,u[1]=be,u[2]=ve,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=xe,u[8]=Se,u[9]=Oe,u[10]=Ee,u[11]=Re,u[12]=je,u[13]=Te,u[14]=Ce,u[15]=Pe,u[16]=Ae,u[17]=Me,u[18]=Ie,0!==c&&(u[19]=c,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(d=h),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?d(this,e,t):r<63?h(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t)},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==f||c>=o);c--){var l=0|this.words[c];this.words[c]=f<<26-i|l>>>i,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n(\"number\"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n(\"number\"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!==(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if(\"mod\"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var h=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(h=Math.min(h/a|0,67108863),n._ishlnsubmul(o,h,l);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=h)}return s&&s.strip(),n.strip(),\"div\"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),\"mod\"!==t&&(o=s.div.neg()),\"div\"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),\"mod\"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),\"div\"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?\"div\"===t?{div:this.divn(e.words[0]),mod:null}:\"mod\"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,\"div\",!1).div},i.prototype.mod=function(e){return this.divmod(e,\"mod\",!1).mod},i.prototype.umod=function(e){return this.divmod(e,\"mod\",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=t.clone();!t.isZero();){for(var h=0,d=1;0==(t.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(f),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,y=1;0==(r.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(t.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,h=1;0==(r.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n(\"number\"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,\"Number is too big\");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new k(e)},i.prototype.toRed=function(e){return n(!this.red,\"Already a number in reduction context\"),n(0===this.negative,\"red works only with positives\"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,\"Already a number in reduction context\"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,\"redAdd works only with red numbers\"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,\"redSub works only with red numbers\"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,\"redISub works only with red numbers\"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,\"redShl works only with red numbers\"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function g(){b.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function w(){b.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function _(){b.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function k(e){if(\"string\"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),\"modulus must be greater than 1\"),this.m=e,this.prime=null}function x(e){k.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):r.strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(v,b),v.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,o=i}o>>>=22,e.words[n-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(m[e])return m[e];var t;if(\"k256\"===e)t=new v;else if(\"p224\"===e)t=new g;else if(\"p192\"===e)t=new w;else{if(\"p25519\"!==e)throw new Error(\"Unknown prime \"+e);t=new _}return m[e]=t,t},k.prototype._verify1=function(e){n(0===e.negative,\"red works only with positives\"),n(e.red,\"red works only with red numbers\")},k.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),\"red works only with positives\"),n(e.red&&e.red===t.red,\"red works only with red numbers\")},k.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},k.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},k.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},k.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},k.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},k.prototype.isqr=function(e){return this.imul(e,e.clone())},k.prototype.sqr=function(e){return this.mul(e,e)},k.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new i(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,o),h=this.pow(e,o.addn(1).iushrn(1)),d=this.pow(e,o),p=a;0!==d.cmp(s);){for(var y=d,m=0;0!==y.cmp(s);m++)y=y.redSqr();n(m=0;n--){for(var c=t.words[n],f=u-1;f>=0;f--){var l=c>>f&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4===++s||0===n&&0===f)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},k.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},k.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new x(e)},o(x,k),x.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},x.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},x.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},x.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},x.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===t||t,this)},{buffer:158}],157:[function(e,t,r){var n;function o(e){this.rand=e}if(t.exports=function(e){return n||(n=new o(null)),n.generate(e)},t.exports.Rand=o,o.prototype.generate=function(e){return this._rand(e)},o.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r>>24]^f[p>>>16&255]^l[y>>>8&255]^h[255&m]^t[b++],a=c[p>>>24]^f[y>>>16&255]^l[m>>>8&255]^h[255&d]^t[b++],s=c[y>>>24]^f[m>>>16&255]^l[d>>>8&255]^h[255&p]^t[b++],u=c[m>>>24]^f[d>>>16&255]^l[p>>>8&255]^h[255&y]^t[b++],d=i,p=a,y=s,m=u;return i=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[y>>>8&255]<<8|n[255&m])^t[b++],a=(n[p>>>24]<<24|n[y>>>16&255]<<16|n[m>>>8&255]<<8|n[255&d])^t[b++],s=(n[y>>>24]<<24|n[m>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^t[b++],u=(n[m>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&y])^t[b++],[i>>>=0,a>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],o=[[],[],[],[]],i=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var c=s^s<<1^s<<2^s<<3^s<<4;c=c>>>8^255&c^99,r[a]=c,n[c]=a;var f=e[a],l=e[f],h=e[l],d=257*e[c]^16843008*c;o[0][a]=d<<24|d>>>8,o[1][a]=d<<16|d>>>16,o[2][a]=d<<8|d>>>24,o[3][a]=d,d=16843009*h^65537*l^257*f^16843008*a,i[0][c]=d<<24|d>>>8,i[1][c]=d<<16|d>>>16,i[2][c]=d<<8|d>>>24,i[3][c]=d,0===a?a=s=1:(a=f^e[e[e[h^f]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:o,INV_SUB_MIX:i}}();function c(e){this._key=o(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),o=[],i=0;i>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[i/t|0]<<24):t>6&&i%t==4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),o[i]=o[i-t]^a}for(var c=[],f=0;f>>24]]^u.INV_SUB_MIX[1][u.SBOX[h>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[h>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&h]]}this._nRounds=r,this._keySchedule=o,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return a(e=o(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},c.prototype.decryptBlock=function(e){var t=(e=o(e))[1];e[1]=e[3],e[3]=t;var r=a(e,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),i=n.allocUnsafe(16);return i.writeUInt32BE(r[0],0),i.writeUInt32BE(r[3],4),i.writeUInt32BE(r[2],8),i.writeUInt32BE(r[1],12),i},c.prototype.scrub=function(){i(this._keySchedule),i(this._invKeySchedule),i(this._key)},t.exports.AES=c},{\"safe-buffer\":445}],160:[function(e,t,r){var n=e(\"./aes\"),o=e(\"safe-buffer\").Buffer,i=e(\"cipher-base\"),a=e(\"inherits\"),s=e(\"./ghash\"),u=e(\"buffer-xor\"),c=e(\"./incr32\");function f(e,t,r,a){i.call(this);var u=o.alloc(4,0);this._cipher=new n.AES(t);var f=this._cipher.encryptBlock(u);this._ghash=new s(f),r=function(e,t,r){if(12===t.length)return e._finID=o.concat([t,o.from([0,0,0,1])]),o.concat([t,o.from([0,0,0,2])]);var n=new s(r),i=t.length,a=i%16;n.update(t),a&&(a=16-a,n.update(o.alloc(a,0))),n.update(o.alloc(8,0));var u=8*i,f=o.alloc(8);f.writeUIntBE(u,0,8),n.update(f),e._finID=n.state;var l=o.from(e._finID);return c(l),l}(this,r,f),this._prev=o.from(r),this._cache=o.allocUnsafe(0),this._secCache=o.allocUnsafe(0),this._decrypt=a,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}a(f,i),f.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=o.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error(\"Unsupported state or unable to authenticate data\");var e=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var n=Math.min(e.length,t.length),o=0;o16)throw new Error(\"unable to decrypt data\");var r=-1;for(;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},r.createDecipher=function(e,t){var r=i[e.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var n=c(t,!1,r.key,r.iv);return h(e,n.key,n.iv)},r.createDecipheriv=h},{\"./aes\":159,\"./authCipher\":160,\"./modes\":172,\"./streamCipher\":175,\"cipher-base\":189,evp_bytestokey:300,inherits:341,\"safe-buffer\":445}],163:[function(e,t,r){var n=e(\"./modes\"),o=e(\"./authCipher\"),i=e(\"safe-buffer\").Buffer,a=e(\"./streamCipher\"),s=e(\"cipher-base\"),u=e(\"./aes\"),c=e(\"evp_bytestokey\");function f(e,t,r){s.call(this),this._cache=new h,this._cipher=new u.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}e(\"inherits\")(f,s),f.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get();)r=this._mode.encrypt(this,t),n.push(r);return i.concat(n)};var l=i.alloc(16,16);function h(){this.cache=i.allocUnsafe(0)}function d(e,t,r){var s=n[e.toLowerCase()];if(!s)throw new TypeError(\"invalid suite type\");if(\"string\"==typeof t&&(t=i.from(t)),t.length!==s.key/8)throw new TypeError(\"invalid key length \"+t.length);if(\"string\"==typeof r&&(r=i.from(r)),\"GCM\"!==s.mode&&r.length!==s.iv)throw new TypeError(\"invalid iv length \"+r.length);return\"stream\"===s.type?new a(s.module,t,r):\"auth\"===s.type?new o(s.module,t,r):new f(s.module,t,r)}f.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(l))throw this._cipher.scrub(),new Error(\"data not multiple of block length\")},f.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},h.prototype.add=function(e){this.cache=i.concat([this.cache,e])},h.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},h.prototype.flush=function(){for(var e=16-this.cache.length,t=i.allocUnsafe(e),r=-1;++r>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function a(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(e){for(var t=-1;++t0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=i(o)},a.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},a.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,o],16)),this.ghash(i([0,e,0,t])),this.state},t.exports=a},{\"safe-buffer\":445}],165:[function(e,t,r){t.exports=function(e){for(var t,r=e.length;r--;){if(255!==(t=e.readUInt8(r))){t++,e.writeUInt8(t,r);break}e.writeUInt8(0,r)}}},{}],166:[function(e,t,r){var n=e(\"buffer-xor\");r.encrypt=function(e,t){var r=n(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev},r.decrypt=function(e,t){var r=e._prev;e._prev=t;var o=e._cipher.decryptBlock(t);return n(o,r)}},{\"buffer-xor\":187}],167:[function(e,t,r){var n=e(\"safe-buffer\").Buffer,o=e(\"buffer-xor\");function i(e,t,r){var i=t.length,a=o(t,e._cache);return e._cache=e._cache.slice(i),e._prev=n.concat([e._prev,r?t:a]),a}r.encrypt=function(e,t,r){for(var o,a=n.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=n.allocUnsafe(0)),!(e._cache.length<=t.length)){a=n.concat([a,i(e,t,r)]);break}o=e._cache.length,a=n.concat([a,i(e,t.slice(0,o),r)]),t=t.slice(o)}return a}},{\"buffer-xor\":187,\"safe-buffer\":445}],168:[function(e,t,r){var n=e(\"safe-buffer\").Buffer;function o(e,t,r){for(var n,o,a=-1,s=0;++a<8;)n=t&1<<7-a?128:0,s+=(128&(o=e._cipher.encryptBlock(e._prev)[0]^n))>>a%8,e._prev=i(e._prev,r?n:o);return s}function i(e,t){var r=e.length,o=-1,i=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++o>7;return i}r.encrypt=function(e,t,r){for(var i=t.length,a=n.allocUnsafe(i),s=-1;++s=0||!r.umod(e.prime1)||!r.umod(e.prime2);)r=new n(o(t));return r}t.exports=i,i.getr=a}).call(this,e(\"buffer\").Buffer)},{\"bn.js\":156,buffer:188,randombytes:426}],180:[function(e,t,r){t.exports=e(\"./browser/algorithms.json\")},{\"./browser/algorithms.json\":181}],181:[function(e,t,r){t.exports={sha224WithRSAEncryption:{sign:\"rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{sign:\"ecdsa/rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},sha256WithRSAEncryption:{sign:\"rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{sign:\"ecdsa/rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},sha384WithRSAEncryption:{sign:\"rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{sign:\"ecdsa/rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},sha512WithRSAEncryption:{sign:\"rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{sign:\"ecdsa/rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{sign:\"rsa\",hash:\"sha1\",id:\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{sign:\"ecdsa\",hash:\"sha1\",id:\"\"},sha256:{sign:\"ecdsa\",hash:\"sha256\",id:\"\"},sha224:{sign:\"ecdsa\",hash:\"sha224\",id:\"\"},sha384:{sign:\"ecdsa\",hash:\"sha384\",id:\"\"},sha512:{sign:\"ecdsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-SHA1\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},DSA:{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-WITH-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-WITH-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-WITH-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-WITH-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-RIPEMD160\":{sign:\"dsa\",hash:\"rmd160\",id:\"\"},ripemd160WithRSA:{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},md5WithRSAEncryption:{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"}}},{}],182:[function(e,t,r){t.exports={\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}},{}],183:[function(e,t,r){(function(r){var n=e(\"create-hash\"),o=e(\"stream\"),i=e(\"inherits\"),a=e(\"./sign\"),s=e(\"./verify\"),u=e(\"./algorithms.json\");function c(e){o.Writable.call(this);var t=u[e];if(!t)throw new Error(\"Unknown message digest\");this._hashType=t.hash,this._hash=n(t.hash),this._tag=t.id,this._signType=t.sign}function f(e){o.Writable.call(this);var t=u[e];if(!t)throw new Error(\"Unknown message digest\");this._hash=n(t.hash),this._tag=t.id,this._signType=t.sign}function l(e){return new c(e)}function h(e){return new f(e)}Object.keys(u).forEach((function(e){u[e].id=new r(u[e].id,\"hex\"),u[e.toLowerCase()]=u[e]})),i(c,o.Writable),c.prototype._write=function(e,t,r){this._hash.update(e),r()},c.prototype.update=function(e,t){return\"string\"==typeof e&&(e=new r(e,t)),this._hash.update(e),this},c.prototype.sign=function(e,t){this.end();var r=this._hash.digest(),n=a(r,e,this._hashType,this._signType,this._tag);return t?n.toString(t):n},i(f,o.Writable),f.prototype._write=function(e,t,r){this._hash.update(e),r()},f.prototype.update=function(e,t){return\"string\"==typeof e&&(e=new r(e,t)),this._hash.update(e),this},f.prototype.verify=function(e,t,n){\"string\"==typeof t&&(t=new r(t,n)),this.end();var o=this._hash.digest();return s(t,o,e,this._signType,this._tag)},t.exports={Sign:l,Verify:h,createSign:l,createVerify:h}}).call(this,e(\"buffer\").Buffer)},{\"./algorithms.json\":181,\"./sign\":184,\"./verify\":185,buffer:188,\"create-hash\":265,inherits:341,stream:456}],184:[function(e,t,r){(function(r){var n=e(\"create-hmac\"),o=e(\"browserify-rsa\"),i=e(\"elliptic\").ec,a=e(\"bn.js\"),s=e(\"parse-asn1\"),u=e(\"./curves.json\");function c(e,t,o,i){if((e=new r(e.toArray())).length0&&r.ishrn(n),r}function l(e,t,o){var i,a;do{for(i=new r(0);8*i.length=t)throw new Error(\"invalid sig\")}t.exports=function(e,t,u,c,f){var l=i(u);if(\"ec\"===l.type){if(\"ecdsa\"!==c&&\"ecdsa/rsa\"!==c)throw new Error(\"wrong public key type\");return function(e,t,r){var n=a[r.data.algorithm.curve.join(\".\")];if(!n)throw new Error(\"unknown curve \"+r.data.algorithm.curve.join(\".\"));var i=new o(n),s=r.data.subjectPrivateKey.data;return i.verify(t,e,s)}(e,t,l)}if(\"dsa\"===l.type){if(\"dsa\"!==c)throw new Error(\"wrong public key type\");return function(e,t,r){var o=r.data.p,a=r.data.q,u=r.data.g,c=r.data.pub_key,f=i.signature.decode(e,\"der\"),l=f.s,h=f.r;s(l,a),s(h,a);var d=n.mont(o),p=l.invm(a);return 0===u.toRed(d).redPow(new n(t).mul(p).mod(a)).fromRed().mul(c.toRed(d).redPow(h.mul(p).mod(a)).fromRed()).mod(o).mod(a).cmp(h)}(e,t,l)}if(\"rsa\"!==c&&\"ecdsa/rsa\"!==c)throw new Error(\"wrong public key type\");t=r.concat([f,t]);for(var h=l.modulus.byteLength(),d=[1],p=0;t.length+d.length+22147483647)throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"');var r=new Uint8Array(e);return Object.setPrototypeOf(r,t.prototype),r}function t(e,t,r){if(\"number\"==typeof e){if(\"string\"==typeof t)throw new TypeError('The \"string\" argument must be of type string. Received type number');return c(e)}return s(e,t,r)}function s(e,r,n){if(\"string\"==typeof e)return function(e,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!t.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r);var n=0|h(e,r),o=a(n),i=o.write(e,r);i!==n&&(o=o.slice(0,i));return o}(e,r);if(ArrayBuffer.isView(e))return f(e);if(null==e)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+_typeof2(e));if(L(e,ArrayBuffer)||e&&L(e.buffer,ArrayBuffer))return function(e,r,n){if(r<0||e.byteLength=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|e}function h(e,r){if(t.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||L(e,ArrayBuffer))return e.byteLength;if(\"string\"!=typeof e)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+_typeof2(e));var n=e.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var i=!1;;)switch(r){case\"ascii\":case\"latin1\":case\"binary\":return n;case\"utf8\":case\"utf-8\":return D(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*n;case\"hex\":return n>>>1;case\"base64\":return B(e).length;default:if(i)return o?-1:D(e).length;r=(\"\"+r).toLowerCase(),i=!0}}function d(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(t>>>=0))return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return R(this,t,r);case\"utf8\":case\"utf-8\":return S(this,t,r);case\"ascii\":return O(this,t,r);case\"latin1\":case\"binary\":return E(this,t,r);case\"base64\":return x(this,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return j(this,t,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,r,n,o,i){if(0===e.length)return-1;if(\"string\"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),z(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if(\"string\"==typeof r&&(r=t.from(r,o)),t.isBuffer(r))return 0===r.length?-1:m(e,r,n,o,i);if(\"number\"==typeof r)return r&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,r,n):Uint8Array.prototype.lastIndexOf.call(e,r,n):m(e,[r],n,o,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(e,t,r,n,o){var i,a=1,s=e.length,u=t.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var f=-1;for(i=r;is&&(r=s-u),i=r;i>=0;i--){for(var l=!0,h=0;ho&&(n=o):n=o;var i=t.length;n>i/2&&(n=i/2);for(var a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function x(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function S(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+l<=r)switch(l){case 1:c<128&&(f=c);break;case 2:128==(192&(i=e[o+1]))&&(u=(31&c)<<6|63&i)>127&&(f=u);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),o+=l}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r=\"\",n=0;for(;nt&&(e+=\" ... \"),\"\"},i&&(t.prototype[i]=t.prototype.inspect),t.prototype.compare=function(e,r,n,o,i){if(L(e,Uint8Array)&&(e=t.from(e,e.offset,e.byteLength)),!t.isBuffer(e))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+_typeof2(e));if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===i&&(i=this.length),r<0||n>e.length||o<0||i>this.length)throw new RangeError(\"out of range index\");if(o>=i&&r>=n)return 0;if(o>=i)return-1;if(r>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(o>>>=0),s=(n>>>=0)-(r>>>=0),u=Math.min(a,s),c=this.slice(o,i),f=e.slice(r,n),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var i=!1;;)switch(n){case\"hex\":return b(this,e,t,r);case\"utf8\":case\"utf-8\":return v(this,e,t,r);case\"ascii\":return g(this,e,t,r);case\"latin1\":case\"binary\":return w(this,e,t,r);case\"base64\":return _(this,e,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return k(this,e,t,r);default:if(i)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),i=!0}},t.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function O(e,t,r){var n=\"\";r=Math.min(e.length,r);for(var o=t;on)&&(r=n);for(var o=\"\",i=t;ir)throw new RangeError(\"Trying to access beyond buffer length\")}function C(e,r,n,o,i,a){if(!t.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>i||re.length)throw new RangeError(\"Index out of range\")}function P(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function A(e,t,r,n,i){return t=+t,r>>>=0,i||P(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function M(e,t,r,n,i){return t=+t,r>>>=0,i||P(e,0,r,8),o.write(e,t,r,n,52,8),r+8}t.prototype.slice=function(e,r){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r>>=0,t>>>=0,r||T(e,t,this.length);for(var n=this[e],o=1,i=0;++i>>=0,t>>>=0,r||T(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},t.prototype.readUInt8=function(e,t){return e>>>=0,t||T(e,1,this.length),this[e]},t.prototype.readUInt16LE=function(e,t){return e>>>=0,t||T(e,2,this.length),this[e]|this[e+1]<<8},t.prototype.readUInt16BE=function(e,t){return e>>>=0,t||T(e,2,this.length),this[e]<<8|this[e+1]},t.prototype.readUInt32LE=function(e,t){return e>>>=0,t||T(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},t.prototype.readUInt32BE=function(e,t){return e>>>=0,t||T(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},t.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||T(e,t,this.length);for(var n=this[e],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*t)),n},t.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||T(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},t.prototype.readInt8=function(e,t){return e>>>=0,t||T(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},t.prototype.readInt16LE=function(e,t){e>>>=0,t||T(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},t.prototype.readInt16BE=function(e,t){e>>>=0,t||T(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},t.prototype.readInt32LE=function(e,t){return e>>>=0,t||T(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},t.prototype.readInt32BE=function(e,t){return e>>>=0,t||T(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},t.prototype.readFloatLE=function(e,t){return e>>>=0,t||T(e,4,this.length),o.read(this,e,!0,23,4)},t.prototype.readFloatBE=function(e,t){return e>>>=0,t||T(e,4,this.length),o.read(this,e,!1,23,4)},t.prototype.readDoubleLE=function(e,t){return e>>>=0,t||T(e,8,this.length),o.read(this,e,!0,52,8)},t.prototype.readDoubleBE=function(e,t){return e>>>=0,t||T(e,8,this.length),o.read(this,e,!1,52,8)},t.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t>>>=0,r>>>=0,n)||C(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,n)||C(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},t.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,1,255,0),this[t]=255&e,t+1},t.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},t.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},t.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},t.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},t.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);C(this,e,t,r,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},t.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);C(this,e,t,r,o-1,-o)}var i=r-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+r},t.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},t.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},t.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},t.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},t.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||C(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},t.prototype.writeFloatLE=function(e,t,r){return A(this,e,t,!0,r)},t.prototype.writeFloatBE=function(e,t,r){return A(this,e,t,!1,r)},t.prototype.writeDoubleLE=function(e,t,r){return M(this,e,t,!0,r)},t.prototype.writeDoubleBE=function(e,t,r){return M(this,e,t,!1,r)},t.prototype.copy=function(e,r,n,o){if(!t.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(n||(n=0),o||0===o||(o=this.length),r>=e.length&&(r=e.length),r||(r=0),o>0&&o=this.length)throw new RangeError(\"Index out of range\");if(o<0)throw new RangeError(\"sourceEnd out of bounds\");o>this.length&&(o=this.length),e.length-r=0;--a)e[a+r]=this[a+n];else Uint8Array.prototype.set.call(e,this.subarray(n,o),r);return i},t.prototype.fill=function(e,r,n,o){if(\"string\"==typeof e){if(\"string\"==typeof r?(o=r,r=0,n=this.length):\"string\"==typeof n&&(o=n,n=this.length),void 0!==o&&\"string\"!=typeof o)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof o&&!t.isEncoding(o))throw new TypeError(\"Unknown encoding: \"+o);if(1===e.length){var i=e.charCodeAt(0);(\"utf8\"===o&&i<128||\"latin1\"===o)&&(e=i)}}else\"number\"==typeof e?e&=255:\"boolean\"==typeof e&&(e=Number(e));if(r<0||this.length>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(a=r;a55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function B(e){return n.toByteArray(function(e){if((e=(e=e.split(\"=\")[0]).trim().replace(I,\"\")).length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}(e))}function F(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function L(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function z(e){return e!=e}}).call(this,e(\"buffer\").Buffer)},{\"base64-js\":155,buffer:188,ieee754:339}],189:[function(e,t,r){var n=e(\"safe-buffer\").Buffer,o=e(\"stream\").Transform,i=e(\"string_decoder\").StringDecoder;function a(e){o.call(this),this.hashMode=\"string\"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}e(\"inherits\")(a,o),a.prototype.update=function(e,t,r){\"string\"==typeof e&&(e=n.from(e,t));var o=this._update(e);return this.hashMode?this:(r&&(o=this._toString(o,r)),o)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error(\"trying to get auth tag in unsupported state\")},a.prototype.setAuthTag=function(){throw new Error(\"trying to set auth tag in unsupported state\")},a.prototype.setAAD=function(){throw new Error(\"trying to set aad in unsupported state\")},a.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},a.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},a.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},a.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new i(t),this._encoding=t),this._encoding!==t)throw new Error(\"can't switch encodings\");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},t.exports=a},{inherits:341,\"safe-buffer\":445,stream:456,string_decoder:470}],190:[function(e,t,r){t.exports=function(e){if(\"function\"!=typeof e)throw TypeError(String(e)+\" is not a function\");return e}},{}],191:[function(e,t,r){t.exports=function(e,t,r){if(!(e instanceof t))throw TypeError(\"Incorrect \"+(r?r+\" \":\"\")+\"invocation\");return e}},{}],192:[function(e,t,r){var n=e(\"../internals/is-object\");t.exports=function(e){if(!n(e))throw TypeError(String(e)+\" is not an object\");return e}},{\"../internals/is-object\":220}],193:[function(e,t,r){var n=e(\"../internals/to-indexed-object\"),o=e(\"../internals/to-length\"),i=e(\"../internals/to-absolute-index\"),a=function(e){return function(t,r,a){var s,u=n(t),c=o(u.length),f=i(a,c);if(e&&r!=r){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((e||f in u)&&u[f]===r)return e||f||0;return!e&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},{\"../internals/to-absolute-index\":251,\"../internals/to-indexed-object\":252,\"../internals/to-length\":254}],194:[function(e,t,r){var n=e(\"../internals/a-function\");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},{\"../internals/a-function\":190}],195:[function(e,t,r){var n=e(\"../internals/an-object\");t.exports=function(e,t,r,o){try{return o?t(n(r)[0],r[1]):t(r)}catch(t){var i=e.return;throw void 0!==i&&n(i.call(e)),t}}},{\"../internals/an-object\":192}],196:[function(e,t,r){var n=e(\"../internals/well-known-symbol\")(\"iterator\"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[n]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}t.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var i={};i[n]=function(){return{next:function(){return{done:r=!0}}}},e(i)}catch(e){}return r}},{\"../internals/well-known-symbol\":259}],197:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],198:[function(e,t,r){var n=e(\"../internals/classof-raw\"),o=e(\"../internals/well-known-symbol\")(\"toStringTag\"),i=\"Arguments\"==n(function(){return arguments}());t.exports=function(e){var t,r,a;return void 0===e?\"Undefined\":null===e?\"Null\":\"string\"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:i?n(t):\"Object\"==(a=n(t))&&\"function\"==typeof t.callee?\"Arguments\":a}},{\"../internals/classof-raw\":197,\"../internals/well-known-symbol\":259}],199:[function(e,t,r){var n=e(\"../internals/has\"),o=e(\"../internals/own-keys\"),i=e(\"../internals/object-get-own-property-descriptor\"),a=e(\"../internals/object-define-property\");t.exports=function(e,t){for(var r=o(t),s=a.f,u=i.f,c=0;cp;p++)if((m=f?v(n(b=e[p])[0],b[1]):v(e[p]))&&m instanceof c)return m;return new c(!1)}h=d.call(e)}for(;!(b=h.next()).done;)if((m=u(h,v,b.value,f))&&m instanceof c)return m;return new c(!1)}).stop=function(e){return new c(!0,e)}},{\"../internals/an-object\":192,\"../internals/bind-context\":194,\"../internals/call-with-safe-iteration-closing\":195,\"../internals/get-iterator-method\":208,\"../internals/is-array-iterator-method\":218,\"../internals/to-length\":254}],223:[function(e,t,r){arguments[4][211][0].apply(r,arguments)},{dup:211}],224:[function(e,t,r){var n,o,i,a,s,u,c,f,l=e(\"../internals/global\"),h=e(\"../internals/object-get-own-property-descriptor\").f,d=e(\"../internals/classof-raw\"),p=e(\"../internals/task\").set,y=e(\"../internals/user-agent\"),m=l.MutationObserver||l.WebKitMutationObserver,b=l.process,v=l.Promise,g=\"process\"==d(b),w=h(l,\"queueMicrotask\"),_=w&&w.value;_||(n=function(){var e,t;for(g&&(e=b.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?a():i=void 0,e}}i=void 0,e&&e.enter()},g?a=function(){b.nextTick(n)}:m&&!/(iphone|ipod|ipad).*applewebkit/i.test(y)?(s=!0,u=document.createTextNode(\"\"),new m(n).observe(u,{characterData:!0}),a=function(){u.data=s=!s}):v&&v.resolve?(c=v.resolve(void 0),f=c.then,a=function(){f.call(c,n)}):a=function(){p.call(l,n)}),t.exports=_||function(e){var t={fn:e,next:void 0};i&&(i.next=t),o||(o=t,a()),i=t}},{\"../internals/classof-raw\":197,\"../internals/global\":209,\"../internals/object-get-own-property-descriptor\":231,\"../internals/task\":250,\"../internals/user-agent\":258}],225:[function(e,t,r){var n=e(\"../internals/global\");t.exports=n.Promise},{\"../internals/global\":209}],226:[function(e,t,r){var n=e(\"../internals/fails\");t.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},{\"../internals/fails\":205}],227:[function(e,t,r){var n=e(\"../internals/global\"),o=e(\"../internals/function-to-string\"),i=n.WeakMap;t.exports=\"function\"==typeof i&&/native code/.test(o.call(i))},{\"../internals/function-to-string\":206,\"../internals/global\":209}],228:[function(e,t,r){var n=e(\"../internals/a-function\"),o=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError(\"Bad Promise constructor\");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};t.exports.f=function(e){return new o(e)}},{\"../internals/a-function\":190}],229:[function(e,t,r){var n=e(\"../internals/descriptors\"),o=e(\"../internals/fails\"),i=e(\"../internals/object-keys\"),a=e(\"../internals/object-get-own-property-symbols\"),s=e(\"../internals/object-property-is-enumerable\"),u=e(\"../internals/to-object\"),c=e(\"../internals/indexed-object\"),f=Object.assign;t.exports=!f||o((function(){var e={},t={},r=Symbol();return e[r]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(e){t[e]=e})),7!=f({},e)[r]||\"abcdefghijklmnopqrst\"!=i(f({},t)).join(\"\")}))?function(e,t){for(var r=u(e),o=arguments.length,f=1,l=a.f,h=s.f;o>f;)for(var d,p=c(arguments[f++]),y=l?i(p).concat(l(p)):i(p),m=y.length,b=0;m>b;)d=y[b++],n&&!h.call(p,d)||(r[d]=p[d]);return r}:f},{\"../internals/descriptors\":201,\"../internals/fails\":205,\"../internals/indexed-object\":216,\"../internals/object-get-own-property-symbols\":233,\"../internals/object-keys\":235,\"../internals/object-property-is-enumerable\":236,\"../internals/to-object\":255}],230:[function(e,t,r){var n=e(\"../internals/descriptors\"),o=e(\"../internals/ie8-dom-define\"),i=e(\"../internals/an-object\"),a=e(\"../internals/to-primitive\"),s=Object.defineProperty;r.f=n?s:function(e,t,r){if(i(e),t=a(t,!0),i(r),o)try{return s(e,t,r)}catch(e){}if(\"get\"in r||\"set\"in r)throw TypeError(\"Accessors not supported\");return\"value\"in r&&(e[t]=r.value),e}},{\"../internals/an-object\":192,\"../internals/descriptors\":201,\"../internals/ie8-dom-define\":215,\"../internals/to-primitive\":256}],231:[function(e,t,r){var n=e(\"../internals/descriptors\"),o=e(\"../internals/object-property-is-enumerable\"),i=e(\"../internals/create-property-descriptor\"),a=e(\"../internals/to-indexed-object\"),s=e(\"../internals/to-primitive\"),u=e(\"../internals/has\"),c=e(\"../internals/ie8-dom-define\"),f=Object.getOwnPropertyDescriptor;r.f=n?f:function(e,t){if(e=a(e),t=s(t,!0),c)try{return f(e,t)}catch(e){}if(u(e,t))return i(!o.f.call(e,t),e[t])}},{\"../internals/create-property-descriptor\":200,\"../internals/descriptors\":201,\"../internals/has\":210,\"../internals/ie8-dom-define\":215,\"../internals/object-property-is-enumerable\":236,\"../internals/to-indexed-object\":252,\"../internals/to-primitive\":256}],232:[function(e,t,r){var n=e(\"../internals/object-keys-internal\"),o=e(\"../internals/enum-bug-keys\").concat(\"length\",\"prototype\");r.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},{\"../internals/enum-bug-keys\":203,\"../internals/object-keys-internal\":234}],233:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],234:[function(e,t,r){var n=e(\"../internals/has\"),o=e(\"../internals/to-indexed-object\"),i=e(\"../internals/array-includes\").indexOf,a=e(\"../internals/hidden-keys\");t.exports=function(e,t){var r,s=o(e),u=0,c=[];for(r in s)!n(a,r)&&n(s,r)&&c.push(r);for(;t.length>u;)n(s,r=t[u++])&&(~i(c,r)||c.push(r));return c}},{\"../internals/array-includes\":193,\"../internals/has\":210,\"../internals/hidden-keys\":211,\"../internals/to-indexed-object\":252}],235:[function(e,t,r){var n=e(\"../internals/object-keys-internal\"),o=e(\"../internals/enum-bug-keys\");t.exports=Object.keys||function(e){return n(e,o)}},{\"../internals/enum-bug-keys\":203,\"../internals/object-keys-internal\":234}],236:[function(e,t,r){var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);r.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:n},{}],237:[function(e,t,r){var n=e(\"../internals/get-built-in\"),o=e(\"../internals/object-get-own-property-names\"),i=e(\"../internals/object-get-own-property-symbols\"),a=e(\"../internals/an-object\");t.exports=n(\"Reflect\",\"ownKeys\")||function(e){var t=o.f(a(e)),r=i.f;return r?t.concat(r(e)):t}},{\"../internals/an-object\":192,\"../internals/get-built-in\":207,\"../internals/object-get-own-property-names\":232,\"../internals/object-get-own-property-symbols\":233}],238:[function(e,t,r){t.exports=e(\"../internals/global\")},{\"../internals/global\":209}],239:[function(e,t,r){t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},{}],240:[function(e,t,r){var n=e(\"../internals/an-object\"),o=e(\"../internals/is-object\"),i=e(\"../internals/new-promise-capability\");t.exports=function(e,t){if(n(e),o(t)&&t.constructor===e)return t;var r=i.f(e);return(0,r.resolve)(t),r.promise}},{\"../internals/an-object\":192,\"../internals/is-object\":220,\"../internals/new-promise-capability\":228}],241:[function(e,t,r){var n=e(\"../internals/redefine\");t.exports=function(e,t,r){for(var o in t)n(e,o,t[o],r);return e}},{\"../internals/redefine\":242}],242:[function(e,t,r){var n=e(\"../internals/global\"),o=e(\"../internals/shared\"),i=e(\"../internals/hide\"),a=e(\"../internals/has\"),s=e(\"../internals/set-global\"),u=e(\"../internals/function-to-string\"),c=e(\"../internals/internal-state\"),f=c.get,l=c.enforce,h=String(u).split(\"toString\");o(\"inspectSource\",(function(e){return u.call(e)})),(t.exports=function(e,t,r,o){var u=!!o&&!!o.unsafe,c=!!o&&!!o.enumerable,f=!!o&&!!o.noTargetGet;\"function\"==typeof r&&(\"string\"!=typeof t||a(r,\"name\")||i(r,\"name\",t),l(r).source=h.join(\"string\"==typeof t?t:\"\")),e!==n?(u?!f&&e[t]&&(c=!0):delete e[t],c?e[t]=r:i(e,t,r)):c?e[t]=r:s(t,r)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&f(this).source||u.call(this)}))},{\"../internals/function-to-string\":206,\"../internals/global\":209,\"../internals/has\":210,\"../internals/hide\":212,\"../internals/internal-state\":217,\"../internals/set-global\":244,\"../internals/shared\":248}],243:[function(e,t,r){t.exports=function(e){if(null==e)throw TypeError(\"Can't call method on \"+e);return e}},{}],244:[function(e,t,r){var n=e(\"../internals/global\"),o=e(\"../internals/hide\");t.exports=function(e,t){try{o(n,e,t)}catch(r){n[e]=t}return t}},{\"../internals/global\":209,\"../internals/hide\":212}],245:[function(e,t,r){var n=e(\"../internals/get-built-in\"),o=e(\"../internals/object-define-property\"),i=e(\"../internals/well-known-symbol\"),a=e(\"../internals/descriptors\"),s=i(\"species\");t.exports=function(e){var t=n(e),r=o.f;a&&t&&!t[s]&&r(t,s,{configurable:!0,get:function(){return this}})}},{\"../internals/descriptors\":201,\"../internals/get-built-in\":207,\"../internals/object-define-property\":230,\"../internals/well-known-symbol\":259}],246:[function(e,t,r){var n=e(\"../internals/object-define-property\").f,o=e(\"../internals/has\"),i=e(\"../internals/well-known-symbol\")(\"toStringTag\");t.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},{\"../internals/has\":210,\"../internals/object-define-property\":230,\"../internals/well-known-symbol\":259}],247:[function(e,t,r){var n=e(\"../internals/shared\"),o=e(\"../internals/uid\"),i=n(\"keys\");t.exports=function(e){return i[e]||(i[e]=o(e))}},{\"../internals/shared\":248,\"../internals/uid\":257}],248:[function(e,t,r){var n=e(\"../internals/global\"),o=e(\"../internals/set-global\"),i=e(\"../internals/is-pure\"),a=n[\"__core-js_shared__\"]||o(\"__core-js_shared__\",{});(t.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:\"3.2.1\",mode:i?\"pure\":\"global\",copyright:\"\\xa9 2019 Denis Pushkarev (zloirock.ru)\"})},{\"../internals/global\":209,\"../internals/is-pure\":221,\"../internals/set-global\":244}],249:[function(e,t,r){var n=e(\"../internals/an-object\"),o=e(\"../internals/a-function\"),i=e(\"../internals/well-known-symbol\")(\"species\");t.exports=function(e,t){var r,a=n(e).constructor;return void 0===a||null==(r=n(a)[i])?t:o(r)}},{\"../internals/a-function\":190,\"../internals/an-object\":192,\"../internals/well-known-symbol\":259}],250:[function(e,t,r){var n,o,i,a=e(\"../internals/global\"),s=e(\"../internals/fails\"),u=e(\"../internals/classof-raw\"),c=e(\"../internals/bind-context\"),f=e(\"../internals/html\"),l=e(\"../internals/document-create-element\"),h=a.location,d=a.setImmediate,p=a.clearImmediate,y=a.process,m=a.MessageChannel,b=a.Dispatch,v=0,g={},w=function(e){if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},_=function(e){return function(){w(e)}},k=function(e){w(e.data)},x=function(e){a.postMessage(e+\"\",h.protocol+\"//\"+h.host)};d&&p||(d=function(e){for(var t=[],r=1;arguments.length>r;)t.push(arguments[r++]);return g[++v]=function(){(\"function\"==typeof e?e:Function(e)).apply(void 0,t)},n(v),v},p=function(e){delete g[e]},\"process\"==u(y)?n=function(e){y.nextTick(_(e))}:b&&b.now?n=function(e){b.now(_(e))}:m?(i=(o=new m).port2,o.port1.onmessage=k,n=c(i.postMessage,i,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||s(x)?n=\"onreadystatechange\"in l(\"script\")?function(e){f.appendChild(l(\"script\")).onreadystatechange=function(){f.removeChild(this),w(e)}}:function(e){setTimeout(_(e),0)}:(n=x,a.addEventListener(\"message\",k,!1))),t.exports={set:d,clear:p}},{\"../internals/bind-context\":194,\"../internals/classof-raw\":197,\"../internals/document-create-element\":202,\"../internals/fails\":205,\"../internals/global\":209,\"../internals/html\":214}],251:[function(e,t,r){var n=e(\"../internals/to-integer\"),o=Math.max,i=Math.min;t.exports=function(e,t){var r=n(e);return r<0?o(r+t,0):i(r,t)}},{\"../internals/to-integer\":253}],252:[function(e,t,r){var n=e(\"../internals/indexed-object\"),o=e(\"../internals/require-object-coercible\");t.exports=function(e){return n(o(e))}},{\"../internals/indexed-object\":216,\"../internals/require-object-coercible\":243}],253:[function(e,t,r){var n=Math.ceil,o=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},{}],254:[function(e,t,r){var n=e(\"../internals/to-integer\"),o=Math.min;t.exports=function(e){return e>0?o(n(e),9007199254740991):0}},{\"../internals/to-integer\":253}],255:[function(e,t,r){var n=e(\"../internals/require-object-coercible\");t.exports=function(e){return Object(n(e))}},{\"../internals/require-object-coercible\":243}],256:[function(e,t,r){var n=e(\"../internals/is-object\");t.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&\"function\"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if(\"function\"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&\"function\"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError(\"Can't convert object to primitive value\")}},{\"../internals/is-object\":220}],257:[function(e,t,r){var n=0,o=Math.random();t.exports=function(e){return\"Symbol(\"+String(void 0===e?\"\":e)+\")_\"+(++n+o).toString(36)}},{}],258:[function(e,t,r){var n=e(\"../internals/get-built-in\");t.exports=n(\"navigator\",\"userAgent\")||\"\"},{\"../internals/get-built-in\":207}],259:[function(e,t,r){var n=e(\"../internals/global\"),o=e(\"../internals/shared\"),i=e(\"../internals/uid\"),a=e(\"../internals/native-symbol\"),s=n.Symbol,u=o(\"wks\");t.exports=function(e){return u[e]||(u[e]=a&&s[e]||(a?s:i)(\"Symbol.\"+e))}},{\"../internals/global\":209,\"../internals/native-symbol\":226,\"../internals/shared\":248,\"../internals/uid\":257}],260:[function(e,t,r){var n=e(\"../internals/export\"),o=e(\"../internals/object-assign\");n({target:\"Object\",stat:!0,forced:Object.assign!==o},{assign:o})},{\"../internals/export\":204,\"../internals/object-assign\":229}],261:[function(e,t,r){var n=e(\"../internals/export\"),o=e(\"../internals/to-object\"),i=e(\"../internals/object-keys\");n({target:\"Object\",stat:!0,forced:e(\"../internals/fails\")((function(){i(1)}))},{keys:function(e){return i(o(e))}})},{\"../internals/export\":204,\"../internals/fails\":205,\"../internals/object-keys\":235,\"../internals/to-object\":255}],262:[function(e,t,r){var n,o,i,a,s=e(\"../internals/export\"),u=e(\"../internals/is-pure\"),c=e(\"../internals/global\"),f=e(\"../internals/path\"),l=e(\"../internals/native-promise-constructor\"),h=e(\"../internals/redefine\"),d=e(\"../internals/redefine-all\"),p=e(\"../internals/set-to-string-tag\"),y=e(\"../internals/set-species\"),m=e(\"../internals/is-object\"),b=e(\"../internals/a-function\"),v=e(\"../internals/an-instance\"),g=e(\"../internals/classof-raw\"),w=e(\"../internals/iterate\"),_=e(\"../internals/check-correctness-of-iteration\"),k=e(\"../internals/species-constructor\"),x=e(\"../internals/task\").set,S=e(\"../internals/microtask\"),O=e(\"../internals/promise-resolve\"),E=e(\"../internals/host-report-errors\"),R=e(\"../internals/new-promise-capability\"),j=e(\"../internals/perform\"),T=e(\"../internals/user-agent\"),C=e(\"../internals/internal-state\"),P=e(\"../internals/is-forced\"),A=e(\"../internals/well-known-symbol\")(\"species\"),M=\"Promise\",I=C.get,N=C.set,D=C.getterFor(M),B=l,F=c.TypeError,L=c.document,z=c.process,U=c.fetch,H=z&&z.versions,V=H&&H.v8||\"\",W=R.f,q=W,$=\"process\"==g(z),X=!!(L&&L.createEvent&&c.dispatchEvent),K=P(M,(function(){var e=B.resolve(1),t=function(){},r=(e.constructor={})[A]=function(e){e(t,t)};return!(($||\"function\"==typeof PromiseRejectionEvent)&&(!u||e.finally)&&e.then(t)instanceof r&&0!==V.indexOf(\"6.6\")&&-1===T.indexOf(\"Chrome/66\"))})),Y=K||!_((function(e){B.all(e).catch((function(){}))})),Z=function(e){var t;return!(!m(e)||\"function\"!=typeof(t=e.then))&&t},G=function(e,t,r){if(!t.notified){t.notified=!0;var n=t.reactions;S((function(){for(var o=t.value,i=1==t.state,a=0;n.length>a;){var s,u,c,f=n[a++],l=i?f.ok:f.fail,h=f.resolve,d=f.reject,p=f.domain;try{l?(i||(2===t.rejection&&te(e,t),t.rejection=1),!0===l?s=o:(p&&p.enter(),s=l(o),p&&(p.exit(),c=!0)),s===f.promise?d(F(\"Promise-chain cycle\")):(u=Z(s))?u.call(s,h,d):h(s)):d(o)}catch(e){p&&!c&&p.exit(),d(e)}}t.reactions=[],t.notified=!1,r&&!t.rejection&&Q(e,t)}))}},J=function(e,t,r){var n,o;X?((n=L.createEvent(\"Event\")).promise=t,n.reason=r,n.initEvent(e,!1,!0),c.dispatchEvent(n)):n={promise:t,reason:r},(o=c[\"on\"+e])?o(n):\"unhandledrejection\"===e&&E(\"Unhandled promise rejection\",r)},Q=function(e,t){x.call(c,(function(){var r,n=t.value;if(ee(t)&&(r=j((function(){$?z.emit(\"unhandledRejection\",n,e):J(\"unhandledrejection\",e,n)})),t.rejection=$||ee(t)?2:1,r.error))throw r.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){x.call(c,(function(){$?z.emit(\"rejectionHandled\",e):J(\"rejectionhandled\",e,t.value)}))},re=function(e,t,r,n){return function(o){e(t,r,o,n)}},ne=function(e,t,r,n){t.done||(t.done=!0,n&&(t=n),t.value=r,t.state=2,G(e,t,!0))},oe=function e(t,r,n,o){if(!r.done){r.done=!0,o&&(r=o);try{if(t===n)throw F(\"Promise can't be resolved itself\");var i=Z(n);i?S((function(){var o={done:!1};try{i.call(n,re(e,t,o,r),re(ne,t,o,r))}catch(e){ne(t,o,e,r)}})):(r.value=n,r.state=1,G(t,r,!1))}catch(e){ne(t,{done:!1},e,r)}}};K&&(B=function(e){v(this,B,M),b(e),n.call(this);var t=I(this);try{e(re(oe,this,t),re(ne,this,t))}catch(e){ne(this,t,e)}},(n=function(e){N(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=d(B.prototype,{then:function(e,t){var r=D(this),n=W(k(this,B));return n.ok=\"function\"!=typeof e||e,n.fail=\"function\"==typeof t&&t,n.domain=$?z.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&G(this,r,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new n,t=I(e);this.promise=e,this.resolve=re(oe,e,t),this.reject=re(ne,e,t)},R.f=W=function(e){return e===B||e===i?new o(e):q(e)},u||\"function\"!=typeof l||(a=l.prototype.then,h(l.prototype,\"then\",(function(e,t){var r=this;return new B((function(e,t){a.call(r,e,t)})).then(e,t)})),\"function\"==typeof U&&s({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return O(B,U.apply(c,arguments))}}))),s({global:!0,wrap:!0,forced:K},{Promise:B}),p(B,M,!1,!0),y(M),i=f[M],s({target:M,stat:!0,forced:K},{reject:function(e){var t=W(this);return t.reject.call(void 0,e),t.promise}}),s({target:M,stat:!0,forced:u||K},{resolve:function(e){return O(u&&this===i?B:this,e)}}),s({target:M,stat:!0,forced:Y},{all:function(e){var t=this,r=W(t),n=r.resolve,o=r.reject,i=j((function(){var r=b(t.resolve),i=[],a=0,s=1;w(e,(function(e){var u=a++,c=!1;i.push(void 0),s++,r.call(t,e).then((function(e){c||(c=!0,i[u]=e,--s||n(i))}),o)})),--s||n(i)}));return i.error&&o(i.value),r.promise},race:function(e){var t=this,r=W(t),n=r.reject,o=j((function(){var o=b(t.resolve);w(e,(function(e){o.call(t,e).then(r.resolve,n)}))}));return o.error&&n(o.value),r.promise}})},{\"../internals/a-function\":190,\"../internals/an-instance\":191,\"../internals/check-correctness-of-iteration\":196,\"../internals/classof-raw\":197,\"../internals/export\":204,\"../internals/global\":209,\"../internals/host-report-errors\":213,\"../internals/internal-state\":217,\"../internals/is-forced\":219,\"../internals/is-object\":220,\"../internals/is-pure\":221,\"../internals/iterate\":222,\"../internals/microtask\":224,\"../internals/native-promise-constructor\":225,\"../internals/new-promise-capability\":228,\"../internals/path\":238,\"../internals/perform\":239,\"../internals/promise-resolve\":240,\"../internals/redefine\":242,\"../internals/redefine-all\":241,\"../internals/set-species\":245,\"../internals/set-to-string-tag\":246,\"../internals/species-constructor\":249,\"../internals/task\":250,\"../internals/user-agent\":258,\"../internals/well-known-symbol\":259}],263:[function(e,t,r){(function(e){function t(e){return Object.prototype.toString.call(e)}r.isArray=function(e){return Array.isArray?Array.isArray(e):\"[object Array]\"===t(e)},r.isBoolean=function(e){return\"boolean\"==typeof e},r.isNull=function(e){return null===e},r.isNullOrUndefined=function(e){return null==e},r.isNumber=function(e){return\"number\"==typeof e},r.isString=function(e){return\"string\"==typeof e},r.isSymbol=function(e){return\"symbol\"===_typeof2(e)},r.isUndefined=function(e){return void 0===e},r.isRegExp=function(e){return\"[object RegExp]\"===t(e)},r.isObject=function(e){return\"object\"===_typeof2(e)&&null!==e},r.isDate=function(e){return\"[object Date]\"===t(e)},r.isError=function(e){return\"[object Error]\"===t(e)||e instanceof Error},r.isFunction=function(e){return\"function\"==typeof e},r.isPrimitive=function(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"===_typeof2(e)||void 0===e},r.isBuffer=e.isBuffer}).call(this,{isBuffer:e(\"../../is-buffer/index.js\")})},{\"../../is-buffer/index.js\":342}],264:[function(e,t,r){(function(r){var n=e(\"elliptic\"),o=e(\"bn.js\");t.exports=function(e){return new a(e)};var i={secp256k1:{name:\"secp256k1\",byteLength:32},secp224r1:{name:\"p224\",byteLength:28},prime256v1:{name:\"p256\",byteLength:32},prime192v1:{name:\"p192\",byteLength:24},ed25519:{name:\"ed25519\",byteLength:32},secp384r1:{name:\"p384\",byteLength:48},secp521r1:{name:\"p521\",byteLength:66}};function a(e){this.curveType=i[e],this.curveType||(this.curveType={name:e}),this.curve=new n.ec(this.curveType.name),this.keys=void 0}function s(e,t,n){Array.isArray(e)||(e=e.toArray());var o=new r(e);if(n&&o.lengthr)?t=(\"rmd160\"===e?new u:c(e)).update(t).digest():t.length64?t=e(t):t.length<64&&(t=o.concat([t,a],64));for(var r=this._ipad=o.allocUnsafe(64),n=this._opad=o.allocUnsafe(64),s=0;s<64;s++)r[s]=54^t[s],n[s]=92^t[s];this._hash=[r]}n(s,i),s.prototype._update=function(e){this._hash.push(e)},s.prototype._final=function(){var e=this._alg(o.concat(this._hash));return this._alg(o.concat([this._opad,e]))},t.exports=s},{\"cipher-base\":189,inherits:341,\"safe-buffer\":445}],269:[function(e,t,r){r.randomBytes=r.rng=r.pseudoRandomBytes=r.prng=e(\"randombytes\"),r.createHash=r.Hash=e(\"create-hash\"),r.createHmac=r.Hmac=e(\"create-hmac\");var n=e(\"browserify-sign/algos\"),o=Object.keys(n),i=[\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"md5\",\"rmd160\"].concat(o);r.getHashes=function(){return i};var a=e(\"pbkdf2\");r.pbkdf2=a.pbkdf2,r.pbkdf2Sync=a.pbkdf2Sync;var s=e(\"browserify-cipher\");r.Cipher=s.Cipher,r.createCipher=s.createCipher,r.Cipheriv=s.Cipheriv,r.createCipheriv=s.createCipheriv,r.Decipher=s.Decipher,r.createDecipher=s.createDecipher,r.Decipheriv=s.Decipheriv,r.createDecipheriv=s.createDecipheriv,r.getCiphers=s.getCiphers,r.listCiphers=s.listCiphers;var u=e(\"diffie-hellman\");r.DiffieHellmanGroup=u.DiffieHellmanGroup,r.createDiffieHellmanGroup=u.createDiffieHellmanGroup,r.getDiffieHellman=u.getDiffieHellman,r.createDiffieHellman=u.createDiffieHellman,r.DiffieHellman=u.DiffieHellman;var c=e(\"browserify-sign\");r.createSign=c.createSign,r.Sign=c.Sign,r.createVerify=c.createVerify,r.Verify=c.Verify,r.createECDH=e(\"create-ecdh\");var f=e(\"public-encrypt\");r.publicEncrypt=f.publicEncrypt,r.privateEncrypt=f.privateEncrypt,r.publicDecrypt=f.publicDecrypt,r.privateDecrypt=f.privateDecrypt;var l=e(\"randomfill\");r.randomFill=l.randomFill,r.randomFillSync=l.randomFillSync,r.createCredentials=function(){throw new Error([\"sorry, createCredentials is not implemented yet\",\"we accept pull requests\",\"https://github.com/crypto-browserify/crypto-browserify\"].join(\"\\n\"))},r.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{\"browserify-cipher\":176,\"browserify-sign\":183,\"browserify-sign/algos\":180,\"create-ecdh\":264,\"create-hash\":265,\"create-hmac\":267,\"diffie-hellman\":279,pbkdf2:413,\"public-encrypt\":420,randombytes:426,randomfill:427}],270:[function(e,t,r){!function(e,n){\"object\"==_typeof2(r)&&void 0!==t?t.exports=n():\"function\"==typeof define&&define.amd?define(n):e.dayjs=n()}(this,(function(){var e=\"millisecond\",t=\"second\",r=\"minute\",n=\"hour\",o=\"day\",i=\"week\",a=\"month\",s=\"quarter\",u=\"year\",c=/^(\\d{4})-?(\\d{1,2})-?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d{1,3})?$/,f=/\\[([^\\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l=function(e,t,r){var n=String(e);return!n||n.length>=t?e:\"\"+Array(t+1-n.length).join(r)+e},h={s:l,z:function(e){var t=-e.utcOffset(),r=Math.abs(t),n=Math.floor(r/60),o=r%60;return(t<=0?\"+\":\"-\")+l(n,2,\"0\")+\":\"+l(o,2,\"0\")},m:function(e,t){var r=12*(t.year()-e.year())+(t.month()-e.month()),n=e.clone().add(r,a),o=t-n<0,i=e.clone().add(r+(o?-1:1),a);return Number(-(r+(t-n)/(o?n-i:i-n))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return{M:a,y:u,w:i,d:o,D:\"date\",h:n,m:r,s:t,ms:e,Q:s}[c]||String(c||\"\").toLowerCase().replace(/s$/,\"\")},u:function(e){return void 0===e}},d={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},p=\"en\",y={};y[p]=d;var m=function(e){return e instanceof w},b=function(e,t,r){var n;if(!e)return p;if(\"string\"==typeof e)y[e]&&(n=e),t&&(y[e]=t,n=e);else{var o=e.name;y[o]=e,n=o}return!r&&n&&(p=n),n||!r&&p},v=function(e,t,r){if(m(e))return e.clone();var n=t?\"string\"==typeof t?{format:t,pl:r}:t:{};return n.date=e,new w(n)},g=h;g.l=b,g.i=m,g.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var w=function(){function l(e){this.$L=this.$L||b(e.locale,null,!0),this.parse(e)}var h=l.prototype;return h.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(g.u(t))return new Date;if(t instanceof Date)return new Date(t);if(\"string\"==typeof t&&!/Z$/i.test(t)){var n=t.match(c);if(n)return r?new Date(Date.UTC(n[1],n[2]-1,n[3]||1,n[4]||0,n[5]||0,n[6]||0,n[7]||0)):new Date(n[1],n[2]-1,n[3]||1,n[4]||0,n[5]||0,n[6]||0,n[7]||0)}return new Date(t)}(e),this.init()},h.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},h.$utils=function(){return g},h.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},h.isSame=function(e,t){var r=v(e);return this.startOf(t)<=r&&r<=this.endOf(t)},h.isAfter=function(e,t){return v(e)68?1900:2e3)}],YYYY:[/\\d{4}/,i(\"year\")],Z:a,ZZ:a},u=function(e,r,n){try{var o=function(e){for(var r=e.match(t),n=r.length,o=0;o0?a-1:p.getMonth(),v=c||0,g=f||0,w=l||0,_=h||0;return n?new Date(Date.UTC(m,b,y,v,g,w,_)):new Date(m,b,y,v,g,w,_)}catch(e){return new Date(\"\")}};return function(t,r,n){var o=r.prototype,i=o.parse;o.parse=function(t){var r=t.date,o=t.format,a=t.pl,s=t.utc;this.$u=s,o?(e=a?n.Ls[a]:this.$locale(),this.$d=u(r,o,s),this.init(t),a&&(this.$L=a)):i.call(this,t)}}}))},{}],272:[function(e,t,r){var n,o;n=this,o=function(){return function(e,t,r){var n=(new Date).getTimezoneOffset(),o=t.prototype;r.utc=function(e,r){return new t({date:e,utc:!0,format:r})},o.utc=function(){return r(this.toDate(),{locale:this.$L,utc:!0})},o.local=function(){return r(this.toDate(),{locale:this.$L,utc:!1})};var i=o.parse;o.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),i.call(this,e)};var a=o.init;o.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else a.call(this)};var s=o.utcOffset;o.utcOffset=function(e){var t=this.$utils().u;if(t(e))return this.$u?0:t(this.$offset)?s.call(this):this.$offset;var r,o=Math.abs(e)<=16?60*e:e;return 0!==e?(r=this.local().add(o+n,\"minute\")).$offset=o:r=this.utc(),r};var u=o.format;o.format=function(e){var t=e||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return u.call(this,t)},o.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+n;return this.$d.valueOf()-6e4*e},o.isUTC=function(){return!!this.$u},o.toISOString=function(){return this.toDate().toISOString()},o.toString=function(){return this.toDate().toUTCString()}}},\"object\"==_typeof2(r)&&void 0!==t?t.exports=o():\"function\"==typeof define&&define.amd?define(o):n.dayjs_plugin_utc=o()},{}],273:[function(e,t,r){r.utils=e(\"./des/utils\"),r.Cipher=e(\"./des/cipher\"),r.DES=e(\"./des/des\"),r.CBC=e(\"./des/cbc\"),r.EDE=e(\"./des/ede\")},{\"./des/cbc\":274,\"./des/cipher\":275,\"./des/des\":276,\"./des/ede\":277,\"./des/utils\":278}],274:[function(e,t,r){var n=e(\"minimalistic-assert\"),o=e(\"inherits\"),i={};function a(e){n.equal(e.length,8,\"Invalid IV length\"),this.iv=new Array(8);for(var t=0;t0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(o,r);return t+=this._buffer(e,t),o},o.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r=\"encrypt\"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},o.prototype._pad=function(e,t){if(0===t)return!1;for(;t>>1];r=a.r28shl(r,s),o=a.r28shl(o,s),a.pc2(r,o,e.keys,i)}},c.prototype._update=function(e,t,r,n){var o=this._desState,i=a.readUInt32BE(e,t),s=a.readUInt32BE(e,t+4);a.ip(i,s,o.tmp,0),i=o.tmp[0],s=o.tmp[1],\"encrypt\"===this.type?this._encrypt(o,i,s,o.tmp,0):this._decrypt(o,i,s,o.tmp,0),i=o.tmp[0],s=o.tmp[1],a.writeUInt32BE(r,i,n),a.writeUInt32BE(r,s,n+4)},c.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n>>0,i=h}a.rip(s,i,n,o)},c.prototype._decrypt=function(e,t,r,n,o){for(var i=r,s=t,u=e.keys.length-2;u>=0;u-=2){var c=e.keys[u],f=e.keys[u+1];a.expand(i,e.tmp,0),c^=e.tmp[0],f^=e.tmp[1];var l=a.substitute(c,f),h=i;i=(s^a.permute(l))>>>0,s=h}a.rip(i,s,n,o)}},{\"../des\":273,inherits:341,\"minimalistic-assert\":390}],277:[function(e,t,r){var n=e(\"minimalistic-assert\"),o=e(\"inherits\"),i=e(\"../des\"),a=i.Cipher,s=i.DES;function u(e,t){n.equal(t.length,24,\"Invalid key length\");var r=t.slice(0,8),o=t.slice(8,16),i=t.slice(16,24);this.ciphers=\"encrypt\"===e?[s.create({type:\"encrypt\",key:r}),s.create({type:\"decrypt\",key:o}),s.create({type:\"encrypt\",key:i})]:[s.create({type:\"decrypt\",key:i}),s.create({type:\"encrypt\",key:o}),s.create({type:\"decrypt\",key:r})]}function c(e){a.call(this,e);var t=new u(this.type,this.options.key);this._edeState=t}o(c,a),t.exports=c,c.create=function(e){return new c(e)},c.prototype._update=function(e,t,r,n){var o=this._edeState;o.ciphers[0]._update(e,t,r,n),o.ciphers[1]._update(r,n,r,n),o.ciphers[2]._update(r,n,r,n)},c.prototype._pad=s.prototype._pad,c.prototype._unpad=s.prototype._unpad},{\"../des\":273,inherits:341,\"minimalistic-assert\":390}],278:[function(e,t,r){r.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},r.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},r.ip=function(e,t,r,n){for(var o=0,i=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)o<<=1,o|=t>>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)i<<=1,i|=t>>>s+a&1;for(s=1;s<=25;s+=8)i<<=1,i|=e>>>s+a&1}r[n+0]=o>>>0,r[n+1]=i>>>0},r.rip=function(e,t,r,n){for(var o=0,i=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)o<<=1,o|=t>>>s+a&1,o<<=1,o|=e>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)i<<=1,i|=t>>>s+a&1,i<<=1,i|=e>>>s+a&1;r[n+0]=o>>>0,r[n+1]=i>>>0},r.pc1=function(e,t,r,n){for(var o=0,i=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;r[n+0]=o>>>0,r[n+1]=i>>>0},r.r28shl=function(e,t){return e<>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];r.pc2=function(e,t,r,o){for(var i=0,a=0,s=n.length>>>1,u=0;u>>n[u]&1;for(u=s;u>>n[u]&1;r[o+0]=i>>>0,r[o+1]=a>>>0},r.expand=function(e,t,r){var n=0,o=0;n=(1&e)<<5|e>>>27;for(var i=23;i>=15;i-=4)n<<=6,n|=e>>>i&63;for(i=11;i>=3;i-=4)o|=e>>>i&63,o<<=6;o|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=o>>>0};var o=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];r.substitute=function(e,t){for(var r=0,n=0;n<4;n++){r<<=4,r|=o[64*n+(e>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=o[256+64*n+(t>>>18-6*n&63)]}return r>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];r.permute=function(e){for(var t=0,r=0;r>>i[r]&1;return t>>>0},r.padSplit=function(e,t,r){for(var n=e.toString(2);n.lengthe;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),t.cmp(u)){if(!t.cmp(c))for(;r.mod(f).cmp(l);)r.iadd(d)}else for(;r.mod(i).cmp(h);)r.iadd(d);if(m(p=r.shrn(1))&&m(r)&&b(p)&&b(r)&&a.test(p)&&a.test(r))return r}}},{\"bn.js\":156,\"miller-rabin\":389,randombytes:426}],282:[function(e,t,r){t.exports={modp1:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},modp2:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},modp5:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},modp14:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},modp15:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},modp16:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},modp17:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},modp18:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}},{}],283:[function(e,t,r){var n=r;n.version=e(\"../package.json\").version,n.utils=e(\"./elliptic/utils\"),n.rand=e(\"brorand\"),n.curve=e(\"./elliptic/curve\"),n.curves=e(\"./elliptic/curves\"),n.ec=e(\"./elliptic/ec\"),n.eddsa=e(\"./elliptic/eddsa\")},{\"../package.json\":298,\"./elliptic/curve\":286,\"./elliptic/curves\":289,\"./elliptic/ec\":290,\"./elliptic/eddsa\":293,\"./elliptic/utils\":297,brorand:157}],284:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"../utils\"),i=o.getNAF,a=o.getJSF,s=o.assert;function u(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4);var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error(\"Not implemented\")},u.prototype.validate=function(){throw new Error(\"Not implemented\")},u.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=i(t,1),o=(1<=u;t--)c=(c<<1)+n[t];a.push(c)}for(var f=this.jpoint(null,null,null),l=this.jpoint(null,null,null),h=o;h>0;h--){for(u=0;u=0;c--){for(t=0;c>=0&&0===a[c];c--)t++;if(c>=0&&t++,u=u.dblp(t),c<0)break;var f=a[c];s(0!==f),u=\"affine\"===e.type?f>0?u.mixedAdd(o[f-1>>1]):u.mixedAdd(o[-f-1>>1].neg()):f>0?u.add(o[f-1>>1]):u.add(o[-f-1>>1].neg())}return\"affine\"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,r,n,o){for(var s=this._wnafT1,u=this._wnafT2,c=this._wnafT3,f=0,l=0;l=1;l-=2){var d=l-1,p=l;if(1===s[d]&&1===s[p]){var y=[t[d],null,null,t[p]];0===t[d].y.cmp(t[p].y)?(y[1]=t[d].add(t[p]),y[2]=t[d].toJ().mixedAdd(t[p].neg())):0===t[d].y.cmp(t[p].y.redNeg())?(y[1]=t[d].toJ().mixedAdd(t[p]),y[2]=t[d].add(t[p].neg())):(y[1]=t[d].toJ().mixedAdd(t[p]),y[2]=t[d].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],b=a(r[d],r[p]);f=Math.max(b[0].length,f),c[d]=new Array(f),c[p]=new Array(f);for(var v=0;v=0;l--){for(var x=0;l>=0;){var S=!0;for(v=0;v=0&&x++,_=_.dblp(x),l<0)break;for(v=0;v0?O=u[v][E-1>>1]:E<0&&(O=u[v][-E-1>>1].neg()),_=\"affine\"===O.type?_.mixedAdd(O):_.add(O))}}for(l=0;l=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o\":\"\"},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),a=i.redSub(r),s=n.redSub(t),u=o.redMul(a),c=i.redMul(s),f=o.redMul(s),l=a.redMul(i);return this.curve.point(u,c,l,f)},c.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),o=this.x.redSqr(),i=this.y.redSqr();if(this.curve.twisted){var a=(c=this.curve._mulA(o)).redAdd(i);if(this.zOne)e=n.redSub(o).redSub(i).redMul(a.redSub(this.curve.two)),t=a.redMul(c.redSub(i)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),u=a.redSub(s).redISub(s);e=n.redSub(o).redISub(i).redMul(u),t=a.redMul(c.redSub(i)),r=a.redMul(u)}}else{var c=o.redAdd(i);s=this.curve._mulC(this.z).redSqr(),u=c.redSub(s).redSub(s);e=this.curve._mulC(n.redISub(c)).redMul(u),t=this.curve._mulC(c).redMul(o.redISub(i)),r=c.redMul(u)}return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),a=o.redSub(n),s=o.redAdd(n),u=r.redAdd(t),c=i.redMul(a),f=s.redMul(u),l=i.redMul(u),h=a.redMul(s);return this.curve.point(c,f,h,l)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),u=o.redSub(s),c=o.redAdd(s),f=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),l=n.redMul(u).redMul(f);return this.curve.twisted?(t=n.redMul(c).redMul(a.redSub(this.curve._mulA(i))),r=u.redMul(c)):(t=n.redMul(c).redMul(a.redSub(i)),r=this.curve._mulC(u).redMul(c)),this.curve.point(l,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},{\"../utils\":297,\"./base\":284,\"bn.js\":156,inherits:341}],286:[function(e,t,r){var n=r;n.base=e(\"./base\"),n.short=e(\"./short\"),n.mont=e(\"./mont\"),n.edwards=e(\"./edwards\")},{\"./base\":284,\"./edwards\":285,\"./mont\":287,\"./short\":288}],287:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"inherits\"),i=e(\"./base\"),a=e(\"../utils\");function s(e){i.call(this,\"mont\",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(e,t,r){i.BasePoint.call(this,e,\"projective\"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}o(s,i),t.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},o(u,i.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new u(this,e,t)},s.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray(\"be\",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?\"\":\"\"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},u.prototype.add=function(){throw new Error(\"Not supported on Montgomery curve\")},u.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),a=o.redMul(n),s=t.z.redMul(i.redAdd(a).redSqr()),u=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error(\"Not supported on Montgomery curve\")},u.prototype.jumlAdd=function(){throw new Error(\"Not supported on Montgomery curve\")},u.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{\"../utils\":297,\"./base\":284,\"bn.js\":156,inherits:341}],288:[function(e,t,r){var n=e(\"../utils\"),o=e(\"bn.js\"),i=e(\"inherits\"),a=e(\"./base\"),s=n.assert;function u(e){a.call(this,\"short\",e),this.a=new o(e.a,16).toRed(this.red),this.b=new o(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){a.BasePoint.call(this,e,\"affine\"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new o(t,16),this.y=new o(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(e,t,r,n){a.BasePoint.call(this,e,\"jacobian\"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new o(0)):(this.x=new o(t,16),this.y=new o(r,16),this.z=new o(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}i(u,a),t.exports=u,u.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new o(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new o(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:(r=i[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new o(e.a,16),b:new o(e.b,16)}})):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:o.mont(e),r=new o(2).toRed(t).redInvm(),n=r.redNeg(),i=new o(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},u.prototype._getEndoBasis=function(e){for(var t,r,n,i,a,s,u,c,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=e,d=this.n.clone(),p=new o(1),y=new o(0),m=new o(0),b=new o(1),v=0;0!==h.cmpn(0);){var g=d.div(h);c=d.sub(g.mul(h)),f=m.sub(g.mul(p));var w=b.sub(g.mul(y));if(!n&&c.cmp(l)<0)t=u.neg(),r=p,n=c.neg(),i=f;else if(n&&2==++v)break;u=c,d=h,h=c,m=p,p=f,b=y,y=w}a=c.neg(),s=f;var _=n.sqr().add(i.sqr());return a.sqr().add(s.sqr()).cmp(_)>=0&&(a=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:i},{a:a,b:s}]},u.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),u=o.mul(r.b),c=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(c).neg()}},u.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error(\"invalid point\");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},u.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},u.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i\":\"\"},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new o(e,16),this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},i(f,a.BasePoint),u.prototype.jpoint=function(e,t,r){return new f(this,e,t,r)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),u=i.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),f=c.redMul(s),l=n.redMul(c),h=u.redSqr().redIAdd(f).redISub(l).redISub(l),d=u.redMul(l.redISub(h)).redISub(i.redMul(f)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(h,d,p)},f.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),c=u.redMul(a),f=r.redMul(u),l=s.redSqr().redIAdd(c).redISub(f).redISub(f),h=s.redMul(f.redISub(l)).redISub(o.redMul(c)),d=this.z.redMul(a);return this.curve.jpoint(l,h,d)},f.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},f.prototype.inspect=function(){return this.isInfinity()?\"\":\"\"},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{\"../utils\":297,\"./base\":284,\"bn.js\":156,inherits:341}],289:[function(e,t,r){var n,o=r,i=e(\"hash.js\"),a=e(\"./curve\"),s=e(\"./utils\").assert;function u(e){\"short\"===e.type?this.curve=new a.short(e):\"edwards\"===e.type?this.curve=new a.edwards(e):this.curve=new a.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),\"Invalid curve\"),s(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}function c(e,t){Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get:function(){var r=new u(t);return Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:r}),r}})}o.PresetCurve=u,c(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:i.sha256,gRed:!1,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]}),c(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:i.sha256,gRed:!1,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]}),c(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:i.sha256,gRed:!1,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]}),c(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:i.sha384,gRed:!1,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]}),c(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:i.sha512,gRed:!1,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"]}),c(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:i.sha256,gRed:!1,g:[\"9\"]}),c(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:i.sha256,gRed:!1,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});try{n=e(\"./precomputed/secp256k1\")}catch(e){n=void 0}c(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:i.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:!1,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",n]})},{\"./curve\":286,\"./precomputed/secp256k1\":296,\"./utils\":297,\"hash.js\":326}],290:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"hmac-drbg\"),i=e(\"../utils\"),a=e(\"../curves\"),s=e(\"brorand\"),u=i.assert,c=e(\"./key\"),f=e(\"./signature\");function l(e){if(!(this instanceof l))return new l(e);\"string\"==typeof e&&(u(a.hasOwnProperty(e),\"Unknown curve \"+e),e=a[e]),e instanceof a.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}t.exports=l,l.prototype.keyPair=function(e){return new c(this,e)},l.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},l.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},l.prototype.genKeyPair=function(e){e||(e={});for(var t=new o({hash:this.hash,pers:e.pers,persEnc:e.persEnc||\"utf8\",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||\"utf8\",nonce:this.n.toArray()}),r=this.n.byteLength(),i=this.n.sub(new n(2));;){var a=new n(t.generate(r));if(!(a.cmp(i)>0))return a.iaddn(1),this.keyFromPrivate(a)}},l.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,r,i){\"object\"===_typeof2(r)&&(i=r,r=null),i||(i={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var a=this.n.byteLength(),s=t.getPrivate().toArray(\"be\",a),u=e.toArray(\"be\",a),c=new o({hash:this.hash,entropy:s,nonce:u,pers:i.pers,persEnc:i.persEnc||\"utf8\"}),l=this.n.sub(new n(1)),h=0;;h++){var d=i.k?i.k(h):new n(c.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var y=p.getX(),m=y.umod(this.n);if(0!==m.cmpn(0)){var b=d.invm(this.n).mul(m.mul(t.getPrivate()).iadd(e));if(0!==(b=b.umod(this.n)).cmpn(0)){var v=(p.getY().isOdd()?1:0)|(0!==y.cmp(m)?2:0);return i.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),v^=1),new f({r:m,s:b,recoveryParam:v})}}}}}},l.prototype.verify=function(e,t,r,o){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,o);var i=(t=new f(t,\"hex\")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),c=u.mul(e).umod(this.n),l=u.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(c,r.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(c,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},l.prototype.recoverPubKey=function(e,t,r,o){u((3&r)===r,\"The recovery param is more than two bits\"),t=new f(t,o);var i=this.n,a=new n(e),s=t.r,c=t.s,l=1&r,h=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error(\"Unable to find sencond key candinate\");s=h?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var d=t.r.invm(i),p=i.sub(a).mul(d).umod(i),y=c.mul(d).umod(i);return this.g.mulAdd(p,s,y)},l.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new f(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(e){continue}if(i.eq(r))return o}throw new Error(\"Unable to find valid recovery factor\")}},{\"../curves\":289,\"../utils\":297,\"./key\":291,\"./signature\":292,\"bn.js\":156,brorand:157,\"hmac-drbg\":338}],291:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"../utils\").assert;function i(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}t.exports=i,i.fromPublic=function(e,t,r){return t instanceof i?t:new i(e,{pub:t,pubEnc:r})},i.fromPrivate=function(e,t,r){return t instanceof i?t:new i(e,{priv:t,privEnc:r})},i.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:\"Invalid public key\"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:\"Public key * N != O\"}:{result:!1,reason:\"Public key is not a point\"}},i.prototype.getPublic=function(e,t){return\"string\"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},i.prototype.getPrivate=function(e){return\"hex\"===e?this.priv.toString(16,2):this.priv},i.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},i.prototype._importPublic=function(e,t){if(e.x||e.y)return\"mont\"===this.ec.curve.type?o(e.x,\"Need x coordinate\"):\"short\"!==this.ec.curve.type&&\"edwards\"!==this.ec.curve.type||o(e.x&&e.y,\"Need both x and y coordinate\"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},i.prototype.derive=function(e){return e.mul(this.priv).getX()},i.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},i.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},i.prototype.inspect=function(){return\"\"}},{\"../utils\":297,\"bn.js\":156}],292:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"../utils\"),i=o.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(i(e.r&&e.s,\"Signature without r or s\"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function u(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,o=0,i=0,a=t.place;i>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}t.exports=a,a.prototype._importDER=function(e,t){e=o.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;if(u(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=u(e,r),a=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var c=u(e,r);if(e.length!==c+r.place)return!1;var f=e.slice(r.place,c+r.place);return 0===a[0]&&128&a[1]&&(a=a.slice(1)),0===f[0]&&128&f[1]&&(f=f.slice(1)),this.r=new n(a),this.s=new n(f),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];f(n,t.length),(n=n.concat(t)).push(2),f(n,r.length);var i=n.concat(r),a=[48];return f(a,i.length),a=a.concat(i),o.encode(a,e)}},{\"../utils\":297,\"bn.js\":156}],293:[function(e,t,r){var n=e(\"hash.js\"),o=e(\"../curves\"),i=e(\"../utils\"),a=i.assert,s=i.parseBytes,u=e(\"./key\"),c=e(\"./signature\");function f(e){if(a(\"ed25519\"===e,\"only tested with ed25519 so far\"),!(this instanceof f))return new f(e);e=o[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}t.exports=f,f.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),a=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:u,Rencoded:i})},f.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},f.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=0;){var i;if(o.isOdd()){var a=o.andln(n-1);i=a>(n>>1)-1?(n>>1)-a:a,o.isubn(i)}else i=0;r.push(i);for(var s=0!==o.cmpn(0)&&0===o.andln(n-1)?t+1:1,u=1;u0||t.cmpn(-o)>0;){var i,a,s,u=e.andln(3)+n&3,c=t.andln(3)+o&3;if(3===u&&(u=-1),3===c&&(c=-1),0==(1&u))i=0;else i=3!==(s=e.andln(7)+n&7)&&5!==s||2!==c?u:-u;if(r[0].push(i),0==(1&c))a=0;else a=3!==(s=t.andln(7)+o&7)&&5!==s||2!==u?c:-c;r[1].push(a),2*n===i+1&&(n=1-n),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n=\"_\"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return\"string\"==typeof e?n.toArray(e,\"hex\"):e},n.intFromLE=function(e){return new o(e,\"hex\",\"le\")}},{\"bn.js\":156,\"minimalistic-assert\":390,\"minimalistic-crypto-utils\":391}],298:[function(e,t,r){t.exports={_from:\"elliptic@^6.0.0\",_id:\"elliptic@6.5.0\",_inBundle:!1,_integrity:\"sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==\",_location:\"/elliptic\",_phantomChildren:{},_requested:{type:\"range\",registry:!0,raw:\"elliptic@^6.0.0\",name:\"elliptic\",escapedName:\"elliptic\",rawSpec:\"^6.0.0\",saveSpec:null,fetchSpec:\"^6.0.0\"},_requiredBy:[\"/browserify-sign\",\"/create-ecdh\"],_resolved:\"https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz\",_shasum:\"2b8ed4c891b7de3200e14412a5b8248c7af505ca\",_spec:\"elliptic@^6.0.0\",_where:\"/mnt/d/dev/git/exceljs/node_modules/browserify-sign\",author:{name:\"Fedor Indutny\",email:\"fedor@indutny.com\"},bugs:{url:\"https://github.com/indutny/elliptic/issues\"},bundleDependencies:!1,dependencies:{\"bn.js\":\"^4.4.0\",brorand:\"^1.0.1\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.0\",inherits:\"^2.0.1\",\"minimalistic-assert\":\"^1.0.0\",\"minimalistic-crypto-utils\":\"^1.0.0\"},deprecated:!1,description:\"EC cryptography\",devDependencies:{brfs:\"^1.4.3\",coveralls:\"^2.11.3\",grunt:\"^0.4.5\",\"grunt-browserify\":\"^5.0.0\",\"grunt-cli\":\"^1.2.0\",\"grunt-contrib-connect\":\"^1.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^1.0.1\",\"grunt-mocha-istanbul\":\"^3.0.1\",\"grunt-saucelabs\":\"^8.6.2\",istanbul:\"^0.4.2\",jscs:\"^2.9.0\",jshint:\"^2.6.0\",mocha:\"^2.1.0\"},files:[\"lib\"],homepage:\"https://github.com/indutny/elliptic\",keywords:[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],license:\"MIT\",main:\"lib/elliptic.js\",name:\"elliptic\",repository:{type:\"git\",url:\"git+ssh://git@github.com/indutny/elliptic.git\"},scripts:{jscs:\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",jshint:\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",lint:\"npm run jscs && npm run jshint\",test:\"npm run lint && npm run unit\",unit:\"istanbul test _mocha --reporter=spec test/index.js\",version:\"grunt dist && git add dist/\"},version:\"6.5.0\"}},{}],299:[function(e,t,r){var n=Object.create||function(e){var t=function(){};return t.prototype=e,new t},o=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return r},i=Function.prototype.bind||function(e){var t=this;return function(){return t.apply(e,arguments)}};function a(){this._events&&Object.prototype.hasOwnProperty.call(this,\"_events\")||(this._events=n(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}t.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._maxListeners=void 0;var s,u=10;try{var c={};Object.defineProperty&&Object.defineProperty(c,\"x\",{value:0}),s=0===c.x}catch(e){s=!1}function f(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function l(e,t,r){if(t)e.call(r);else for(var n=e.length,o=_(e,n),i=0;i0&&s.length>i){s.warned=!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+s.length+' \"'+String(t)+'\" listeners added. Use emitter.setMaxListeners() to increase limit.');u.name=\"MaxListenersExceededWarning\",u.emitter=e,u.type=t,u.count=s.length,\"object\"===(\"undefined\"==typeof console?\"undefined\":_typeof2(console))&&console.warn&&console.warn(\"%s: %s\",u.name,u.message)}}else s=a[t]=r,++e._eventsCount;return e}function b(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t1&&(t=arguments[1]),t instanceof Error)throw t;var u=new Error('Unhandled \"error\" event. ('+t+\")\");throw u.context=t,u}if(!(r=a[e]))return!1;var c=\"function\"==typeof r;switch(n=arguments.length){case 1:l(r,c,this);break;case 2:h(r,c,this,arguments[1]);break;case 3:d(r,c,this,arguments[1],arguments[2]);break;case 4:p(r,c,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(n-1),i=1;i=0;a--)if(r[a]===t||r[a].listener===t){s=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(e,t){for(var r=t,n=r+1,o=e.length;n=0;i--)this.removeListener(e,t[i]);return this},a.prototype.listeners=function(e){return g(this,e,!0)},a.prototype.rawListeners=function(e){return g(this,e,!1)},a.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):w.call(e,t)},a.prototype.listenerCount=w,a.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],300:[function(e,t,r){var n=e(\"safe-buffer\").Buffer,o=e(\"md5.js\");t.exports=function(e,t,r,i){if(n.isBuffer(e)||(e=n.from(e,\"binary\")),t&&(n.isBuffer(t)||(t=n.from(t,\"binary\")),8!==t.length))throw new RangeError(\"salt should be Buffer with 8 byte length\");for(var a=r/8,s=n.alloc(a),u=n.alloc(i||0),c=n.alloc(0);a>0||i>0;){var f=new o;f.update(c),f.update(e),t&&f.update(t),c=f.digest();var l=0;if(a>0){var h=s.length-a;l=Math.min(a,c.length),c.copy(s,h,0,l),a-=l}if(l0){var d=u.length-i,p=Math.min(i,c.length-l);c.copy(u,d,l,l+p),i-=p}}return c.fill(0),{key:s,iv:u}}},{\"md5.js\":388,\"safe-buffer\":445}],301:[function(e,t,r){(function(t){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};n(this,e),this.objectMode=!0,this.delimiter=\",\",this.rowDelimiter=\"\\n\",this.quote='\"',this.escape=this.quote,this.quoteColumns=!1,this.quoteHeaders=this.quoteColumns,this.headers=null,this.includeEndRowDelimiter=!1,this.transform=null,this.writeBOM=!1,this.BOM=\"\\ufeff\",this.alwaysWriteHeaders=!1,Object.assign(this,a||{}),void 0===(null===(t=a)||void 0===t?void 0:t.quoteHeaders)&&(this.quoteHeaders=this.quoteColumns),!0===(null===(r=a)||void 0===r?void 0:r.quote)?this.quote='\"':!1===(null===(o=a)||void 0===o?void 0:o.quote)&&(this.quote=\"\"),\"string\"!=typeof(null===(i=a)||void 0===i?void 0:i.escape)&&(this.escape=this.quote),this.shouldWriteHeaders=!!this.headers,this.headers=Array.isArray(this.headers)?this.headers:null,this.escapedQuote=\"\".concat(this.escape).concat(this.quote)}},{}],303:[function(e,t,r){function n(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{},o=[],i=new s.Writable({write:function(e,t,r){o.push(e),r()}});return new Promise((function(a,s){i.on(\"error\",s).on(\"finish\",(function(){return a(t.concat(o))})),r.write(e,n).pipe(i)}))},r.writeToString=function(e,t){return r.writeToBuffer(e,t).then((function(e){return e.toString()}))},r.writeToPath=function(e,t,n){var o=u.createWriteStream(e,{encoding:\"utf8\"});return r.write(t,n).pipe(o)}}).call(this,e(\"buffer\").Buffer)},{\"./CsvFormatterStream\":301,\"./FormatterOptions\":302,\"./formatter\":305,buffer:188,fs:186,stream:456,util:475}],307:[function(e,t,r){Object.defineProperty(r,\"__esModule\",{value:!0});var n=e(\"util\"),o=e(\"./parser\"),i=e(\"./formatter\");r.format=i.format,r.write=i.write,r.writeToStream=i.writeToStream,r.writeToBuffer=i.writeToBuffer,r.writeToString=i.writeToString,r.writeToPath=i.writeToPath;var a=e(\"./parser\");r.parse=a.parse,r.parseString=a.parseString,r.parseStream=a.parseStream,r.parseFile=a.parseFile,r.fromString=n.deprecate(o.parseString,\"csv.fromString has been deprecated in favor of csv.parseString\"),r.fromStream=n.deprecate(o.parseStream,\"csv.fromStream has been deprecated in favor of csv.parseStream\"),r.fromPath=n.deprecate(o.parseFile,\"csv.fromPath has been deprecated in favor of csv.parseFile\")},{\"./formatter\":306,\"./parser\":310,util:475}],308:[function(e,t,r){(function(t){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){for(var r=0;r1?r-1:0),o=1;o=o||n.hasHitRowLimit)return r();if(n.parsedLineCount+=1,n.shouldSkipLine)return s();var u=e[a];n.rowCount+=1,n.parsedRowCount+=1;var c=n.rowCount;return n.transformRow(u,(function(e,t){if(e)return n.rowCount-=1,s(e);if(!t)return s(new Error(\"expected transform result\"));if(t.isValid){if(t.row)return n.pushRow(t.row,s)}else n.emit(\"data-invalid\",t.row,c,t.reason);return s()}))}(0)}},{key:\"transformRow\",value:function(e,t){var r=this;try{this.headerTransformer.transform(e,(function(n,o){return n?t(n):o?o.isValid?o.row?r.shouldEmitRows?r.rowTransformerValidator.transformAndValidate(o.row,t):(r.rowCount-=1,t(null,{row:null,isValid:!0})):(r.rowCount-=1,r.parsedRowCount-=1,t(null,{row:null,isValid:!0})):t(null,{isValid:!1,row:e}):t(new Error(\"Expected result from header transform\"))}))}catch(e){t(e)}}},{key:\"pushRow\",value:function(e,t){try{this.parserOptions.objectMode?this.push(e):this.push(JSON.stringify(e)),t()}catch(e){t(e)}}},{key:\"hasHitRowLimit\",get:function(){return this.parserOptions.limitRows&&this.rowCount>=this.parserOptions.maxRows}},{key:\"shouldEmitRows\",get:function(){return this.parsedRowCount>this.parserOptions.skipRows}},{key:\"shouldSkipLine\",get:function(){return this.parsedLineCount<=this.parserOptions.skipLines}}])&&o(n.prototype,l),p&&o(n,p),m}(l.Transform);r.default=p}).call(this,e(\"timers\").setImmediate)},{\"./parser\":320,\"./transforms\":323,stream:456,string_decoder:470,timers:471}],309:[function(e,t,r){var n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0});var o=n(e(\"lodash.escaperegexp\")),i=n(e(\"lodash.isnil\"));r.ParserOptions=function e(t){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.objectMode=!0,this.delimiter=\",\",this.ignoreEmpty=!1,this.quote='\"',this.escape=null,this.escapeChar=this.quote,this.comment=null,this.supportsComments=!1,this.ltrim=!1,this.rtrim=!1,this.trim=!1,this.headers=null,this.renameHeaders=!1,this.strictColumnHandling=!1,this.discardUnmappedColumns=!1,this.carriageReturn=\"\\r\",this.encoding=\"utf8\",this.limitRows=!1,this.maxRows=0,this.skipLines=0,this.skipRows=0,Object.assign(this,t||{}),this.delimiter.length>1)throw new Error(\"delimiter option must be one character long\");this.escapedDelimiter=o.default(this.delimiter),this.escapeChar=null!=(r=this.escape)?r:this.quote,this.supportsComments=!i.default(this.comment),this.NEXT_TOKEN_REGEXP=new RegExp(\"([^\\\\s]|\\\\r\\\\n|\\\\n|\\\\r|\".concat(this.escapedDelimiter,\")\")),this.maxRows>0&&(this.limitRows=!0)}},{\"lodash.escaperegexp\":380,\"lodash.isnil\":385}],310:[function(e,t,r){function n(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}var o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},i=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0});var a=o(e(\"fs\")),s=e(\"stream\"),u=e(\"./ParserOptions\"),c=i(e(\"./CsvParserStream\")),f=e(\"./CsvParserStream\");r.CsvParserStream=f.default,n(e(\"./types\")),n(e(\"./ParserOptions\")),n(e(\"./parser\")),n(e(\"./transforms\")),r.parse=function(e){return new c.default(new u.ParserOptions(e))},r.parseStream=function(e,t){return e.pipe(new c.default(new u.ParserOptions(t)))},r.parseFile=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return a.createReadStream(e).pipe(new c.default(new u.ParserOptions(t)))},r.parseString=function(e,t){var r=new s.Readable;return r.push(e),r.push(null),r.pipe(new c.default(new u.ParserOptions(t)))}},{\"./CsvParserStream\":308,\"./ParserOptions\":309,\"./parser\":320,\"./transforms\":323,\"./types\":324,fs:186,stream:456}],311:[function(e,t,r){function n(e,t){for(var r=0;rthis.cursor}},{key:\"nextNonSpaceToken\",get:function(){var e=this.lineFromCursor,t=this.parserOptions.NEXT_TOKEN_REGEXP;if(-1===e.search(t))return null;var r=e.match(t);if(null==r)return null;var n=r[1],i=this.cursor+(r.index||0);return new o.Token({token:n,startCursor:i,endCursor:i+n.length-1})}},{key:\"nextCharacterToken\",get:function(){var e=this.cursor;return this.lineLength<=e?null:new o.Token({token:this.line[e],startCursor:e,endCursor:e})}},{key:\"lineFromCursor\",get:function(){return this.line.substr(this.cursor)}}])&&n(t.prototype,r),a&&n(t,a),e}();r.Scanner=a},{\"./Token\":314}],314:[function(e,t,r){function n(e,t){for(var r=0;rthis.headersLength){if(!t.strictColumnHandling)throw new Error(\"Unexpected Error: column header mismatch expected: \".concat(this.headersLength,\" columns got: \").concat(e.length));return{row:e,isValid:!1,reason:\"Column header mismatch expected: \".concat(this.headersLength,\" columns got: \").concat(e.length)}}return t.strictColumnHandling&&e.length1}));throw new Error(\"Duplicate headers found \".concat(JSON.stringify(o)))}this.headers=e,this.receivedHeaders=!0,this.headersLength=(null===(t=this.headers)||void 0===t?void 0:t.length)||0}}])&&n(t.prototype,r),o&&n(t,o),e}();r.default=c},{\"lodash.groupby\":381,\"lodash.isfunction\":384,\"lodash.isundefined\":386,\"lodash.uniq\":387}],322:[function(e,t,r){function n(e,t){for(var r=0;r=this._blockSize;){for(var i=this._blockOffset;i0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},i.prototype._update=function(){throw new Error(\"_update is not implemented\")},i.prototype.digest=function(e){if(this._finalized)throw new Error(\"Digest already called\");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},i.prototype._digest=function(){throw new Error(\"_digest is not implemented\")},t.exports=i},{inherits:341,\"safe-buffer\":445,stream:456}],326:[function(e,t,r){var n=r;n.utils=e(\"./hash/utils\"),n.common=e(\"./hash/common\"),n.sha=e(\"./hash/sha\"),n.ripemd=e(\"./hash/ripemd\"),n.hmac=e(\"./hash/hmac\"),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},{\"./hash/common\":327,\"./hash/hmac\":328,\"./hash/ripemd\":329,\"./hash/sha\":330,\"./hash/utils\":337}],327:[function(e,t,r){var n=e(\"./utils\"),o=e(\"minimalistic-assert\");function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=\"big\",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}r.BlockHash=i,i.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var o=0;o>>24&255,n[o++]=e>>>16&255,n[o++]=e>>>8&255,n[o++]=255&e}else for(n[o++]=255&e,n[o++]=e>>>8&255,n[o++]=e>>>16&255,n[o++]=e>>>24&255,n[o++]=0,n[o++]=0,n[o++]=0,n[o++]=0,i=8;ithis.blockSize&&(e=(new this.Hash).update(e).digest()),o(e.length<=this.blockSize);for(var t=e.length;t>>3},r.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},{\"../utils\":337}],337:[function(e,t,r){var n=e(\"minimalistic-assert\"),o=e(\"inherits\");function i(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?\"0\"+e:e}function u(e){return 7===e.length?\"0\"+e:6===e.length?\"00\"+e:5===e.length?\"000\"+e:4===e.length?\"0000\"+e:3===e.length?\"00000\"+e:2===e.length?\"000000\"+e:1===e.length?\"0000000\"+e:e}r.inherits=o,r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(\"string\"==typeof e)if(t){if(\"hex\"===t)for((e=e.replace(/[^a-z0-9]+/gi,\"\")).length%2!=0&&(e=\"0\"+e),o=0;o>6|192,r[n++]=63&a|128):i(e,o)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++o)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(o=0;o>>0}return a},r.split32=function(e,t){for(var r=new Array(4*e.length),n=0,o=0;n>>24,r[o+1]=i>>>16&255,r[o+2]=i>>>8&255,r[o+3]=255&i):(r[o+3]=i>>>24,r[o+2]=i>>>16&255,r[o+1]=i>>>8&255,r[o]=255&i)}return r},r.rotr32=function(e,t){return e>>>t|e<<32-t},r.rotl32=function(e,t){return e<>>32-t},r.sum32=function(e,t){return e+t>>>0},r.sum32_3=function(e,t,r){return e+t+r>>>0},r.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},r.sum32_5=function(e,t,r,n,o){return e+t+r+n+o>>>0},r.sum64=function(e,t,r,n){var o=e[t],i=n+e[t+1]>>>0,a=(i>>0,e[t+1]=i},r.sum64_hi=function(e,t,r,n){return(t+n>>>0>>0},r.sum64_lo=function(e,t,r,n){return t+n>>>0},r.sum64_4_hi=function(e,t,r,n,o,i,a,s){var u=0,c=t;return u+=(c=c+n>>>0)>>0)>>0)>>0},r.sum64_4_lo=function(e,t,r,n,o,i,a,s){return t+n+i+s>>>0},r.sum64_5_hi=function(e,t,r,n,o,i,a,s,u,c){var f=0,l=t;return f+=(l=l+n>>>0)>>0)>>0)>>0)>>0},r.sum64_5_lo=function(e,t,r,n,o,i,a,s,u,c){return t+n+i+s+c>>>0},r.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},r.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},r.shr64_hi=function(e,t,r){return e>>>r},r.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},{inherits:341,\"minimalistic-assert\":390}],338:[function(e,t,r){var n=e(\"hash.js\"),o=e(\"minimalistic-crypto-utils\"),i=e(\"minimalistic-assert\");function a(e){if(!(this instanceof a))return new a(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=o.toArray(e.entropy,e.entropyEnc||\"hex\"),r=o.toArray(e.nonce,e.nonceEnc||\"hex\"),n=o.toArray(e.pers,e.persEnc||\"hex\");i(t.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._init(t,r,n)}t.exports=a,a.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._update(e.concat(r||[])),this._reseed=1},a.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error(\"Reseed is required\");\"string\"!=typeof t&&(n=r,r=t,t=null),r&&(r=o.toArray(r,n||\"hex\"),this._update(r));for(var i=[];i.length>1,f=-7,l=r?o-1:0,h=r?-1:1,d=e[t+l];for(l+=h,i=d&(1<<-f)-1,d>>=-f,f+=s;f>0;i=256*i+e[t+l],l+=h,f-=8);for(a=i&(1<<-f)-1,i>>=-f,f+=n;f>0;a=256*a+e[t+l],l+=h,f-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),i-=c}return(d?-1:1)*a*Math.pow(2,i-n)},r.write=function(e,t,r,n,o,i){var a,s,u,c=8*i-o-1,f=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,p=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+l>=1?h/u:h*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(t*u-1)*Math.pow(2,o),a+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,o),a=0));o>=8;e[r+d]=255&s,d+=p,s/=256,o-=8);for(a=a<0;e[r+d]=255&a,d+=p,a/=256,c-=8);e[r+d-p]|=128*y}},{}],340:[function(e,t,r){(function(e){var r,n,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var i=0,a=new o(f),s=e.document.createTextNode(\"\");a.observe(s,{characterData:!0}),r=function(){s.data=i=++i%2}}else if(e.setImmediate||void 0===e.MessageChannel)r=\"document\"in e&&\"onreadystatechange\"in e.document.createElement(\"script\")?function(){var t=e.document.createElement(\"script\");t.onreadystatechange=function(){f(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(f,0)};else{var u=new e.MessageChannel;u.port1.onmessage=f,r=function(){u.port2.postMessage(0)}}var c=[];function f(){var e,t;n=!0;for(var r=c.length;r;){for(t=c,c=[],e=-1;++e\n * @license MIT\n */\nt.exports=function(e){return null!=e&&(n(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},{}],343:[function(e,t,r){var n={}.toString;t.exports=Array.isArray||function(e){return\"[object Array]\"==n.call(e)}},{}],344:[function(e,t,r){var n=e(\"./utils\"),o=e(\"./support\"),i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,o,a,s,u,c,f=[],l=0,h=e.length,d=h,p=\"string\"!==n.getTypeOf(e);l>2,s=(3&t)<<4|r>>4,u=d>1?(15&r)<<2|o>>6:64,c=d>2?63&o:64,f.push(i.charAt(a)+i.charAt(s)+i.charAt(u)+i.charAt(c));return f.join(\"\")},r.decode=function(e){var t,r,n,a,s,u,c=0,f=0;if(\"data:\"===e.substr(0,\"data:\".length))throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,h=3*(e=e.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\")).length/4;if(e.charAt(e.length-1)===i.charAt(64)&&h--,e.charAt(e.length-2)===i.charAt(64)&&h--,h%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=o.uint8array?new Uint8Array(0|h):new Array(0|h);c>4,r=(15&a)<<4|(s=i.indexOf(e.charAt(c++)))>>2,n=(3&s)<<6|(u=i.indexOf(e.charAt(c++))),l[f++]=t,64!==s&&(l[f++]=r),64!==u&&(l[f++]=n);return l}},{\"./support\":373,\"./utils\":375}],345:[function(e,t,r){var n=e(\"./external\"),o=e(\"./stream/DataWorker\"),i=e(\"./stream/DataLengthProbe\"),a=e(\"./stream/Crc32Probe\");i=e(\"./stream/DataLengthProbe\");function s(e,t,r,n,o){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=o}s.prototype={getContentWorker:function(){var e=new o(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new i(\"data_length\")),t=this;return e.on(\"end\",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")})),e},getCompressedWorker:function(){return new o(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},s.createWorkerFrom=function(e,t,r){return e.pipe(new a).pipe(new i(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new i(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=s},{\"./external\":349,\"./stream/Crc32Probe\":368,\"./stream/DataLengthProbe\":369,\"./stream/DataWorker\":370}],346:[function(e,t,r){var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(e){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":350,\"./stream/GenericWorker\":371}],347:[function(e,t,r){var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,a=n+r;e^=-1;for(var s=n;s>>8^i[255&(e^t[s])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,a=n+r;e^=-1;for(var s=n;s>>8^i[255&(e^t.charCodeAt(s))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":375}],348:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],349:[function(e,t,r){var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:379}],350:[function(e,t,r){var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,o=e(\"pako\"),i=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),s=n?\"uint8array\":\"array\";function u(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",i.inherits(u,a),u.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(i.transformTo(s,e.data),!1)},u.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},u.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},u.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(e){return new u(\"Deflate\",e)},r.uncompressWorker=function(){return new u(\"Inflate\",{})}},{\"./stream/GenericWorker\":371,\"./utils\":375,pako:392}],351:[function(e,t,r){var n=e(\"../utils\"),o=e(\"../stream/GenericWorker\"),i=e(\"../utf8\"),a=e(\"../crc32\"),s=e(\"../signature\"),u=function(e,t){var r,n=\"\";for(r=0;r>>=8;return n},c=function(e,t,r,o,c,f){var l,h,d=e.file,p=e.compression,y=f!==i.utf8encode,m=n.transformTo(\"string\",f(d.name)),b=n.transformTo(\"string\",i.utf8encode(d.name)),v=d.comment,g=n.transformTo(\"string\",f(v)),w=n.transformTo(\"string\",i.utf8encode(v)),_=b.length!==d.name.length,k=w.length!==v.length,x=\"\",S=\"\",O=\"\",E=d.dir,R=d.date,j={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(j.crc32=e.crc32,j.compressedSize=e.compressedSize,j.uncompressedSize=e.uncompressedSize);var T=0;t&&(T|=8),y||!_&&!k||(T|=2048);var C,P,A,M=0,I=0;E&&(M|=16),\"UNIX\"===c?(I=798,M|=(C=d.unixPermissions,P=E,A=C,C||(A=P?16893:33204),(65535&A)<<16)):(I=20,M|=63&(d.dosPermissions||0)),l=R.getUTCHours(),l<<=6,l|=R.getUTCMinutes(),l<<=5,l|=R.getUTCSeconds()/2,h=R.getUTCFullYear()-1980,h<<=4,h|=R.getUTCMonth()+1,h<<=5,h|=R.getUTCDate(),_&&(S=u(1,1)+u(a(m),4)+b,x+=\"up\"+u(S.length,2)+S),k&&(O=u(1,1)+u(a(g),4)+w,x+=\"uc\"+u(O.length,2)+O);var N=\"\";return N+=\"\\n\\0\",N+=u(T,2),N+=p.magic,N+=u(l,2),N+=u(h,2),N+=u(j.crc32,4),N+=u(j.compressedSize,4),N+=u(j.uncompressedSize,4),N+=u(m.length,2),N+=u(x.length,2),{fileRecord:s.LOCAL_FILE_HEADER+N+m+x,dirRecord:s.CENTRAL_FILE_HEADER+u(I,2)+N+u(g.length,2)+\"\\0\\0\\0\\0\"+u(M,4)+u(o,4)+m+x+g}},f=function(e){return s.DATA_DESCRIPTOR+u(e.crc32,4)+u(e.compressedSize,4)+u(e.uncompressedSize,4)};function l(e,t,r,n){o.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}n.inherits(l,o),l.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,o.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},l.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=c(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},l.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=c(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:f(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},l.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t0?e.substring(0,t):\"\"},y=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},m=function(e,t){return t=void 0!==t?t:s.createFolders,e=y(e),this.files[e]||d.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function b(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var v={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)this.files.hasOwnProperty(t)&&(n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n))},filter:function(e){var t=[];return this.forEach((function(r,n){e(r,n)&&t.push(n)})),t},file:function(e,t,r){if(1===arguments.length){if(b(e)){var n=e;return this.filter((function(e,t){return!t.dir&&n.test(e)}))}var o=this.files[this.root+e];return o&&!o.dir?o:null}return e=this.root+e,d.call(this,e,t,r),this},folder:function(e){if(!e)return this;if(b(e))return this.filter((function(t,r){return r.dir&&e.test(t)}));var t=this.root+e,r=m.call(this,t),n=this.clone();return n.root=r.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||(\"/\"!==e.slice(-1)&&(e+=\"/\"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var r=this.filter((function(t,r){return r.name.slice(0,e.length)===e})),n=0;n=0;--i)if(this.data[i]===t&&this.data[i+1]===r&&this.data[i+2]===n&&this.data[i+3]===o)return i-this.zero;return-1},o.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),o=e.charCodeAt(3),i=this.readData(4);return t===i[0]&&r===i[1]&&n===i[2]&&o===i[3]},o.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{\"../utils\":375,\"./DataReader\":361}],361:[function(e,t,r){var n=e(\"../utils\");function o(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readAndCheckSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=o},{\"../utils\":375}],362:[function(e,t,r){var n=e(\"./Uint8ArrayReader\");function o(e){n.call(this,e)}e(\"../utils\").inherits(o,n),o.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{\"../utils\":375,\"./Uint8ArrayReader\":364}],363:[function(e,t,r){var n=e(\"./DataReader\");function o(e){n.call(this,e)}e(\"../utils\").inherits(o,n),o.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},o.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},o.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},o.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{\"../utils\":375,\"./DataReader\":361}],364:[function(e,t,r){var n=e(\"./ArrayReader\");function o(e){n.call(this,e)}e(\"../utils\").inherits(o,n),o.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{\"../utils\":375,\"./ArrayReader\":360}],365:[function(e,t,r){var n=e(\"../utils\"),o=e(\"../support\"),i=e(\"./ArrayReader\"),a=e(\"./StringReader\"),s=e(\"./NodeBufferReader\"),u=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||o.uint8array?\"nodebuffer\"===t?new s(e):o.uint8array?new u(n.transformTo(\"uint8array\",e)):new i(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":373,\"../utils\":375,\"./ArrayReader\":360,\"./NodeBufferReader\":362,\"./StringReader\":363,\"./Uint8ArrayReader\":364}],366:[function(e,t,r){r.LOCAL_FILE_HEADER=\"PK\\x03\\x04\",r.CENTRAL_FILE_HEADER=\"PK\\x01\\x02\",r.CENTRAL_DIRECTORY_END=\"PK\\x05\\x06\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\\x06\\x07\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\\x06\\x06\",r.DATA_DESCRIPTOR=\"PK\\x07\\b\"},{}],367:[function(e,t,r){var n=e(\"./GenericWorker\"),o=e(\"../utils\");function i(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}o.inherits(i,n),i.prototype.processChunk=function(e){this.push({data:o.transformTo(this.destType,e.data),meta:e.meta})},t.exports=i},{\"../utils\":375,\"./GenericWorker\":371}],368:[function(e,t,r){var n=e(\"./GenericWorker\"),o=e(\"../crc32\");function i(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(i,n),i.prototype.processChunk=function(e){this.streamInfo.crc32=o(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=i},{\"../crc32\":347,\"../utils\":375,\"./GenericWorker\":371}],369:[function(e,t,r){var n=e(\"../utils\"),o=e(\"./GenericWorker\");function i(e){o.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(i,o),i.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}o.prototype.processChunk.call(this,e)},t.exports=i},{\"../utils\":375,\"./GenericWorker\":371}],370:[function(e,t,r){var n=e(\"../utils\"),o=e(\"./GenericWorker\");function i(e){o.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}n.inherits(i,o),i.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},i.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},i.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},i.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=i},{\"../utils\":375,\"./GenericWorker\":371}],371:[function(e,t,r){function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],372:[function(e,t,r){(function(r){var n=e(\"../utils\"),o=e(\"./ConvertWorker\"),i=e(\"./GenericWorker\"),a=e(\"../base64\"),s=e(\"../support\"),u=e(\"../external\"),c=null;if(s.nodestream)try{c=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function f(e,t){return new u.Promise((function(o,i){var s=[],u=e._internalType,c=e._outputType,f=e._mimeType;e.on(\"data\",(function(e,r){s.push(e),t&&t(r)})).on(\"error\",(function(e){s=[],i(e)})).on(\"end\",(function(){try{var e=function(e,t,r){switch(e){case\"blob\":return n.newBlob(n.transformTo(\"arraybuffer\",t),r);case\"base64\":return a.encode(t);default:return n.transformTo(e,t)}}(c,function(e,t){var n,o=0,i=null,a=0;for(n=0;n=252?6:u>=248?5:u>=240?4:u>=224?3:u>=192?2:1;s[254]=s[254]=1;function c(){a.call(this,\"utf-8 decode\"),this.leftOver=null}function f(){a.call(this,\"utf-8 encode\")}r.utf8encode=function(e){return o.nodebuffer?i.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,a,s=e.length,u=0;for(i=0;i>>6,t[a++]=128|63&r):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|63&r):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|63&r);return t}(e)},r.utf8decode=function(e){return o.nodebuffer?n.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,o,i,a=e.length,u=new Array(2*a);for(r=0,t=0;t4)u[r++]=65533,t+=i-1;else{for(o&=2===i?31:3===i?15:7;i>1&&t1?u[r++]=65533:o<65536?u[r++]=o:(o-=65536,u[r++]=55296|o>>10&1023,u[r++]=56320|1023&o)}return u.length!==r&&(u.subarray?u=u.subarray(0,r):u.length=r),n.applyFromCharCode(u)}(e=n.transformTo(o.uint8array?\"uint8array\":\"array\",e))},n.inherits(c,a),c.prototype.processChunk=function(e){var t=n.transformTo(o.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var i=t;(t=new Uint8Array(i.length+this.leftOver.length)).set(this.leftOver,0),t.set(i,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var a=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+s[e[r]]>t?r:t}(t),u=t;a!==t.length&&(o.uint8array?(u=t.subarray(0,a),this.leftOver=t.subarray(a,t.length)):(u=t.slice(0,a),this.leftOver=t.slice(a,t.length))),this.push({data:r.utf8decode(u),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=c,n.inherits(f,a),f.prototype.processChunk=function(e){this.push({data:r.utf8encode(e.data),meta:e.meta})},r.Utf8EncodeWorker=f},{\"./nodejsUtils\":357,\"./stream/GenericWorker\":371,\"./support\":373,\"./utils\":375}],375:[function(e,t,r){var n=e(\"./support\"),o=e(\"./base64\"),i=e(\"./nodejsUtils\"),a=e(\"set-immediate-shim\"),s=e(\"./external\");function u(e){return e}function c(e,t){for(var r=0;r1;)try{return f.stringifyByChunk(e,n,t)}catch(e){t=Math.floor(t/2)}return f.stringifyByChar(e)}function h(e,t){for(var r=0;r1)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e0)this.isSignature(t,i.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=u},{\"./reader/readerFor\":365,\"./signature\":366,\"./support\":373,\"./utf8\":374,\"./utils\":375,\"./zipEntry\":377}],377:[function(e,t,r){var n=e(\"./reader/readerFor\"),o=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),s=e(\"./utf8\"),u=e(\"./compressions\"),c=e(\"./support\");function f(e,t){this.options=e,this.loadOptions=t}f.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in u)if(u.hasOwnProperty(t)&&u[t].magic===e)return u[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+o.pretty(this.compressionMethod)+\" unknown (inner file : \"+o.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===e&&(this.dosPermissions=63&this.externalFileAttributes),3===e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(e){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(e){var t,r,n,o=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index-1},ae.prototype.set=function(e,t){var r=this.__data__,n=le(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},se.prototype.clear=function(){this.__data__={hash:new ie,map:new($||ae),string:new ie}},se.prototype.delete=function(e){return Oe(this,e).delete(e)},se.prototype.get=function(e){return Oe(this,e).get(e)},se.prototype.has=function(e){return Oe(this,e).has(e)},se.prototype.set=function(e,t){return Oe(this,e).set(e,t),this},ue.prototype.add=ue.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},ue.prototype.has=function(e){return this.__data__.has(e)},ce.prototype.clear=function(){this.__data__=new ae},ce.prototype.delete=function(e){return this.__data__.delete(e)},ce.prototype.get=function(e){return this.__data__.get(e)},ce.prototype.has=function(e){return this.__data__.has(e)},ce.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ae){var n=r.__data__;if(!$||n.length<199)return n.push([e,t]),this;r=this.__data__=new se(n)}return r.set(e,t),this};var de,pe,ye=(de=function(e,t){return e&&me(e,t,Ye)},function(e,t){if(null==e)return e;if(!He(e))return de(e,t);for(var r=e.length,n=pe?r:-1,o=Object(e);(pe?n--:++ns))return!1;var c=i.get(e);if(c&&i.get(t))return c==t;var f=-1,l=!0,h=1&o?new ue:void 0;for(i.set(e,t),i.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function qe(e){var t=_typeof2(e);return!!e&&(\"object\"==t||\"function\"==t)}function $e(e){return!!e&&\"object\"==_typeof2(e)}function Xe(e){return\"symbol\"==_typeof2(e)||$e(e)&&\"[object Symbol]\"==F.call(e)}var Ke=k?function(e){return function(t){return e(t)}}(k):function(e){return $e(e)&&We(e.length)&&!!p[F.call(e)]};function Ye(e){return He(e)?fe(e):ke(e)}function Ze(e){return e}t.exports=Be}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],382:[function(e,t,r){var n=Object.prototype.toString;t.exports=function(e){return!0===e||!1===e||function(e){return!!e&&\"object\"==_typeof2(e)}(e)&&\"[object Boolean]\"==n.call(e)}},{}],383:[function(e,t,r){(function(e){var n=\"[object Arguments]\",o=\"[object Map]\",i=\"[object Object]\",a=\"[object Set]\",s=/^\\[object .+?Constructor\\]$/,u=/^(?:0|[1-9]\\d*)$/,c={};c[\"[object Float32Array]\"]=c[\"[object Float64Array]\"]=c[\"[object Int8Array]\"]=c[\"[object Int16Array]\"]=c[\"[object Int32Array]\"]=c[\"[object Uint8Array]\"]=c[\"[object Uint8ClampedArray]\"]=c[\"[object Uint16Array]\"]=c[\"[object Uint32Array]\"]=!0,c[n]=c[\"[object Array]\"]=c[\"[object ArrayBuffer]\"]=c[\"[object Boolean]\"]=c[\"[object DataView]\"]=c[\"[object Date]\"]=c[\"[object Error]\"]=c[\"[object Function]\"]=c[o]=c[\"[object Number]\"]=c[i]=c[\"[object RegExp]\"]=c[a]=c[\"[object String]\"]=c[\"[object WeakMap]\"]=!1;var f=\"object\"==_typeof2(e)&&e&&e.Object===Object&&e,l=\"object\"==(\"undefined\"==typeof self?\"undefined\":_typeof2(self))&&self&&self.Object===Object&&self,h=f||l||Function(\"return this\")(),d=\"object\"==_typeof2(r)&&r&&!r.nodeType&&r,p=d&&\"object\"==_typeof2(t)&&t&&!t.nodeType&&t,y=p&&p.exports===d,m=y&&f.process,b=function(){try{return m&&m.binding&&m.binding(\"util\")}catch(e){}}(),v=b&&b.isTypedArray;function g(e,t){for(var r=-1,n=null==e?0:e.length;++rs))return!1;var c=i.get(e);if(c&&i.get(t))return c==t;var f=-1,l=!0,h=2&r?new ie:void 0;for(i.set(e,t),i.set(t,e);++f-1},ne.prototype.set=function(e,t){var r=this.__data__,n=ue(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},oe.prototype.clear=function(){this.size=0,this.__data__={hash:new re,map:new(W||ne),string:new re}},oe.prototype.delete=function(e){var t=me(this,e).delete(e);return this.size-=t?1:0,t},oe.prototype.get=function(e){return me(this,e).get(e)},oe.prototype.has=function(e){return me(this,e).has(e)},oe.prototype.set=function(e,t){var r=me(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},ie.prototype.add=ie.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},ie.prototype.has=function(e){return this.__data__.has(e)},ae.prototype.clear=function(){this.__data__=new ne,this.size=0},ae.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},ae.prototype.get=function(e){return this.__data__.get(e)},ae.prototype.has=function(e){return this.__data__.has(e)},ae.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ne){var n=r.__data__;if(!W||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new oe(n)}return r.set(e,t),this.size=r.size,this};var ve=z?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,i=[];++r-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function je(e){var t=_typeof2(e);return null!=e&&(\"object\"==t||\"function\"==t)}function Te(e){return null!=e&&\"object\"==_typeof2(e)}var Ce=v?function(e){return function(t){return e(t)}}(v):function(e){return Te(e)&&Re(e.length)&&!!c[ce(e)]};function Pe(e){return null!=(t=e)&&Re(t.length)&&!Ee(t)?se(e):de(e);var t}t.exports=function(e,t){return le(e,t)}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],384:[function(e,t,r){(function(e){var r=\"object\"==_typeof2(e)&&e&&e.Object===Object&&e,n=\"object\"==(\"undefined\"==typeof self?\"undefined\":_typeof2(self))&&self&&self.Object===Object&&self,o=r||n||Function(\"return this\")(),i=Object.prototype,a=i.hasOwnProperty,s=i.toString,u=o.Symbol,c=u?u.toStringTag:void 0;function f(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":c&&c in Object(e)?function(e){var t=a.call(e,c),r=e[c];try{e[c]=void 0;var n=!0}catch(e){}var o=s.call(e);n&&(t?e[c]=r:delete e[c]);return o}(e):function(e){return s.call(e)}(e)}t.exports=function(e){if(!function(e){var t=_typeof2(e);return null!=e&&(\"object\"==t||\"function\"==t)}(e))return!1;var t=f(e);return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],385:[function(e,t,r){t.exports=function(e){return null==e}},{}],386:[function(e,t,r){t.exports=function(e){return void 0===e}},{}],387:[function(e,t,r){(function(e){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==_typeof2(e)&&e&&e.Object===Object&&e,o=\"object\"==(\"undefined\"==typeof self?\"undefined\":_typeof2(self))&&self&&self.Object===Object&&self,i=n||o||Function(\"return this\")();function a(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var o=e.length,i=r+(n?1:-1);for(;n?i--:++i-1}function s(e,t,r){for(var n=-1,o=e?e.length:0;++n-1},E.prototype.set=function(e,t){var r=this.__data__,n=T(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new O,map:new(k||E),string:new O}},R.prototype.delete=function(e){return A(this,e).delete(e)},R.prototype.get=function(e){return A(this,e).get(e)},R.prototype.has=function(e){return A(this,e).has(e)},R.prototype.set=function(e,t){return A(this,e).set(e,t),this},j.prototype.add=j.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},j.prototype.has=function(e){return this.__data__.has(e)};var P=x&&1/f(new x([,-0]))[1]==1/0?function(e){return new x(e)}:function(){};function A(e,t){var r,n,o=e.__data__;return(\"string\"==(n=_typeof2(r=t))||\"number\"==n||\"symbol\"==n||\"boolean\"==n?\"__proto__\"!==r:null===r)?o[\"string\"==typeof t?\"string\":\"hash\"]:o.map}function M(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return C(r)?r:void 0}function I(e){var t=_typeof2(e);return!!e&&(\"object\"==t||\"function\"==t)}t.exports=function(e){return e&&e.length?function(e,t,r){var n=-1,o=a,i=e.length,u=!0,l=[],h=l;if(r)u=!1,o=s;else if(i>=200){var d=t?null:P(e);if(d)return f(d);u=!1,o=c,h=new j}else h=t?[]:l;e:for(;++n>>32-t}function c(e,t,r,n,o,i,a){return u(e+(t&r|~t&n)+o+i|0,a)+t|0}function f(e,t,r,n,o,i,a){return u(e+(t&n|r&~n)+o+i|0,a)+t|0}function l(e,t,r,n,o,i,a){return u(e+(t^r^n)+o+i|0,a)+t|0}function h(e,t,r,n,o,i,a){return u(e+(r^(t|~n))+o+i|0,a)+t|0}n(s,o),s.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,o=this._c,i=this._d;r=c(r,n,o,i,e[0],3614090360,7),i=c(i,r,n,o,e[1],3905402710,12),o=c(o,i,r,n,e[2],606105819,17),n=c(n,o,i,r,e[3],3250441966,22),r=c(r,n,o,i,e[4],4118548399,7),i=c(i,r,n,o,e[5],1200080426,12),o=c(o,i,r,n,e[6],2821735955,17),n=c(n,o,i,r,e[7],4249261313,22),r=c(r,n,o,i,e[8],1770035416,7),i=c(i,r,n,o,e[9],2336552879,12),o=c(o,i,r,n,e[10],4294925233,17),n=c(n,o,i,r,e[11],2304563134,22),r=c(r,n,o,i,e[12],1804603682,7),i=c(i,r,n,o,e[13],4254626195,12),o=c(o,i,r,n,e[14],2792965006,17),r=f(r,n=c(n,o,i,r,e[15],1236535329,22),o,i,e[1],4129170786,5),i=f(i,r,n,o,e[6],3225465664,9),o=f(o,i,r,n,e[11],643717713,14),n=f(n,o,i,r,e[0],3921069994,20),r=f(r,n,o,i,e[5],3593408605,5),i=f(i,r,n,o,e[10],38016083,9),o=f(o,i,r,n,e[15],3634488961,14),n=f(n,o,i,r,e[4],3889429448,20),r=f(r,n,o,i,e[9],568446438,5),i=f(i,r,n,o,e[14],3275163606,9),o=f(o,i,r,n,e[3],4107603335,14),n=f(n,o,i,r,e[8],1163531501,20),r=f(r,n,o,i,e[13],2850285829,5),i=f(i,r,n,o,e[2],4243563512,9),o=f(o,i,r,n,e[7],1735328473,14),r=l(r,n=f(n,o,i,r,e[12],2368359562,20),o,i,e[5],4294588738,4),i=l(i,r,n,o,e[8],2272392833,11),o=l(o,i,r,n,e[11],1839030562,16),n=l(n,o,i,r,e[14],4259657740,23),r=l(r,n,o,i,e[1],2763975236,4),i=l(i,r,n,o,e[4],1272893353,11),o=l(o,i,r,n,e[7],4139469664,16),n=l(n,o,i,r,e[10],3200236656,23),r=l(r,n,o,i,e[13],681279174,4),i=l(i,r,n,o,e[0],3936430074,11),o=l(o,i,r,n,e[3],3572445317,16),n=l(n,o,i,r,e[6],76029189,23),r=l(r,n,o,i,e[9],3654602809,4),i=l(i,r,n,o,e[12],3873151461,11),o=l(o,i,r,n,e[15],530742520,16),r=h(r,n=l(n,o,i,r,e[2],3299628645,23),o,i,e[0],4096336452,6),i=h(i,r,n,o,e[7],1126891415,10),o=h(o,i,r,n,e[14],2878612391,15),n=h(n,o,i,r,e[5],4237533241,21),r=h(r,n,o,i,e[12],1700485571,6),i=h(i,r,n,o,e[3],2399980690,10),o=h(o,i,r,n,e[10],4293915773,15),n=h(n,o,i,r,e[1],2240044497,21),r=h(r,n,o,i,e[8],1873313359,6),i=h(i,r,n,o,e[15],4264355552,10),o=h(o,i,r,n,e[6],2734768916,15),n=h(n,o,i,r,e[13],1309151649,21),r=h(r,n,o,i,e[4],4149444226,6),i=h(i,r,n,o,e[11],3174756917,10),o=h(o,i,r,n,e[2],718787259,15),n=h(n,o,i,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+o|0,this._d=this._d+i|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=i.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},t.exports=s},{\"hash-base\":325,inherits:341,\"safe-buffer\":445}],389:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"brorand\");function i(e){this.rand=e||new o.Rand}t.exports=i,i.create=function(e){return new i(e)},i.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var o=new n(this.rand.generate(r))}while(o.cmp(e)>=0);return o},i.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},i.prototype.test=function(e,t,r){var o=e.bitLength(),i=n.mont(e),a=new n(1).toRed(i);t||(t=Math.max(1,o/48|0));for(var s=e.subn(1),u=0;!s.testn(u);u++);for(var c=e.shrn(u),f=s.toRed(i);t>0;t--){var l=this._randrange(new n(2),s);r&&r(l);var h=l.toRed(i).redPow(c);if(0!==h.cmp(a)&&0!==h.cmp(f)){for(var d=1;d0;t--){var f=this._randrange(new n(2),a),l=e.gcd(f);if(0!==l.cmpn(1))return l;var h=f.toRed(o).redPow(u);if(0!==h.cmp(i)&&0!==h.cmp(c)){for(var d=1;d>8,a=255&o;i?r.push(i,a):r.push(a)}return r},n.zero2=o,n.toHex=i,n.encode=function(e,t){return\"hex\"===t?i(e):e}},{}],392:[function(e,t,r){var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":393,\"./lib/inflate\":394,\"./lib/utils/common\":395,\"./lib/zlib/constants\":398}],393:[function(e,t,r){var n=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),i=e(\"./utils/strings\"),a=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString;function c(e){if(!(this instanceof c))return new c(e);this.options=o.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:\"\"},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==r)throw new Error(a[r]);if(t.header&&n.deflateSetHeader(this.strm,t.header),t.dictionary){var f;if(f=\"string\"==typeof t.dictionary?i.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,0!==(r=n.deflateSetDictionary(this.strm,f)))throw new Error(a[r]);this._dict_set=!0}}function f(e,t){var r=new c(t);if(r.push(e,!0),r.err)throw r.msg||a[r.err];return r.result}c.prototype.push=function(e,t){var r,a,s=this.strm,c=this.options.chunkSize;if(this.ended)return!1;a=t===~~t?t:!0===t?4:0,\"string\"==typeof e?s.input=i.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new o.Buf8(c),s.next_out=0,s.avail_out=c),1!==(r=n.deflate(s,a))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==s.avail_out&&(0!==s.avail_in||4!==a&&2!==a)||(\"string\"===this.options.to?this.onData(i.buf2binstring(o.shrinkBuf(s.output,s.next_out))):this.onData(o.shrinkBuf(s.output,s.next_out)))}while((s.avail_in>0||0===s.avail_out)&&1!==r);return 4===a?(r=n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==a||(this.onEnd(0),s.avail_out=0,!0)},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){0===e&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=c,r.deflate=f,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,f(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,f(e,t)}},{\"./utils/common\":395,\"./utils/strings\":396,\"./zlib/deflate\":400,\"./zlib/messages\":405,\"./zlib/zstream\":407}],394:[function(e,t,r){var n=e(\"./zlib/inflate\"),o=e(\"./utils/common\"),i=e(\"./utils/strings\"),a=e(\"./zlib/constants\"),s=e(\"./zlib/messages\"),u=e(\"./zlib/zstream\"),c=e(\"./zlib/gzheader\"),f=Object.prototype.toString;function l(e){if(!(this instanceof l))return new l(e);this.options=o.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new u,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,t.windowBits);if(r!==a.Z_OK)throw new Error(s[r]);if(this.header=new c,n.inflateGetHeader(this.strm,this.header),t.dictionary&&(\"string\"==typeof t.dictionary?t.dictionary=i.string2buf(t.dictionary):\"[object ArrayBuffer]\"===f.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary))!==a.Z_OK))throw new Error(s[r])}function h(e,t){var r=new l(t);if(r.push(e,!0),r.err)throw r.msg||s[r.err];return r.result}l.prototype.push=function(e,t){var r,s,u,c,l,h=this.strm,d=this.options.chunkSize,p=this.options.dictionary,y=!1;if(this.ended)return!1;s=t===~~t?t:!0===t?a.Z_FINISH:a.Z_NO_FLUSH,\"string\"==typeof e?h.input=i.binstring2buf(e):\"[object ArrayBuffer]\"===f.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new o.Buf8(d),h.next_out=0,h.avail_out=d),(r=n.inflate(h,a.Z_NO_FLUSH))===a.Z_NEED_DICT&&p&&(r=n.inflateSetDictionary(this.strm,p)),r===a.Z_BUF_ERROR&&!0===y&&(r=a.Z_OK,y=!1),r!==a.Z_STREAM_END&&r!==a.Z_OK)return this.onEnd(r),this.ended=!0,!1;h.next_out&&(0!==h.avail_out&&r!==a.Z_STREAM_END&&(0!==h.avail_in||s!==a.Z_FINISH&&s!==a.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(u=i.utf8border(h.output,h.next_out),c=h.next_out-u,l=i.buf2string(h.output,u),h.next_out=c,h.avail_out=d-c,c&&o.arraySet(h.output,h.output,u,c,0),this.onData(l)):this.onData(o.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(y=!0)}while((h.avail_in>0||0===h.avail_out)&&r!==a.Z_STREAM_END);return r===a.Z_STREAM_END&&(s=a.Z_FINISH),s===a.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===a.Z_OK):s!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),h.avail_out=0,!0)},l.prototype.onData=function(e){this.chunks.push(e)},l.prototype.onEnd=function(e){e===a.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=l,r.inflate=h,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},r.ungzip=h},{\"./utils/common\":395,\"./utils/strings\":396,\"./zlib/constants\":398,\"./zlib/gzheader\":401,\"./zlib/inflate\":403,\"./zlib/messages\":405,\"./zlib/zstream\":407}],395:[function(e,t,r){var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!==_typeof2(r))throw new TypeError(r+\"must be non-object\");for(var n in r)o(r,n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,o){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),o);else for(var i=0;i=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;function u(e,t){if(t<65534&&(e.subarray&&i||!e.subarray&&o))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r=\"\",a=0;a>>6,t[a++]=128|63&r):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|63&r):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|63&r);return t},r.buf2binstring=function(e){return u(e,e.length)},r.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,o=t.length;r4)c[n++]=65533,r+=i-1;else{for(o&=2===i?31:3===i?15:7;i>1&&r1?c[n++]=65533:o<65536?c[n++]=o:(o-=65536,c[n++]=55296|o>>10&1023,c[n++]=56320|1023&o)}return u(c,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+a[e[r]]>t?r:t}},{\"./common\":395}],397:[function(e,t,r){t.exports=function(e,t,r,n){for(var o=65535&e|0,i=e>>>16&65535|0,a=0;0!==r;){r-=a=r>2e3?2e3:r;do{i=i+(o=o+t[n++]|0)|0}while(--a);o%=65521,i%=65521}return o|i<<16|0}},{}],398:[function(e,t,r){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],399:[function(e,t,r){var n=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,o){var i=n,a=o+r;e^=-1;for(var s=o;s>>8^i[255&(e^t[s])];return-1^e}},{}],400:[function(e,t,r){var n,o=e(\"../utils/common\"),i=e(\"./trees\"),a=e(\"./adler32\"),s=e(\"./crc32\"),u=e(\"./messages\");function c(e,t){return e.msg=u[t],t}function f(e){return(e<<1)-(e>4?9:0)}function l(e){for(var t=e.length;--t>=0;)e[t]=0}function h(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(o.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function d(e,t){i._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,h(e.strm)}function p(e,t){e.pending_buf[e.pending++]=t}function y(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function m(e,t){var r,n,o=e.max_chain_length,i=e.strstart,a=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,c=e.window,f=e.w_mask,l=e.prev,h=e.strstart+258,d=c[i+a-1],p=c[i+a];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(r=t)+a]===p&&c[r+a-1]===d&&c[r]===c[i]&&c[++r]===c[i+1]){i+=2,r++;do{}while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&ia){if(e.match_start=t,a=n,n>=s)break;d=c[i+a-1],p=c[i+a]}}}while((t=l[t&f])>u&&0!=--o);return a<=e.lookahead?a:e.lookahead}function b(e){var t,r,n,i,u,c,f,l,h,d,p=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=p+(p-262)){o.arraySet(e.window,e.window,p,p,0),e.match_start-=p,e.strstart-=p,e.block_start-=p,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=p?n-p:0}while(--r);t=r=p;do{n=e.prev[--t],e.prev[t]=n>=p?n-p:0}while(--r);i+=p}if(0===e.strm.avail_in)break;if(c=e.strm,f=e.window,l=e.strstart+e.lookahead,h=i,d=void 0,(d=c.avail_in)>h&&(d=h),r=0===d?0:(c.avail_in-=d,o.arraySet(f,c.input,c.next_in,d,l),1===c.state.wrap?c.adler=a(c.adler,f,d,l):2===c.state.wrap&&(c.adler=s(c.adler,f,d,l)),c.next_in+=d,c.total_in+=d,d),e.lookahead+=r,e.lookahead+e.insert>=3)for(u=e.strstart-e.insert,e.ins_h=e.window[u],e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3)if(n=i._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-3,n=i._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=o&&(e.ins_h=(e.ins_h<15&&(s=2,n-=16),i<1||i>9||8!==r||n<8||n>15||t<0||t>9||a<0||a>4)return c(e,-2);8===n&&(n=9);var u=new _;return e.state=u,u.strm=e,u.wrap=s,u.gzhead=null,u.w_bits=n,u.w_size=1<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(b(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,d(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(d(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(d(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(d(e,!1),e.strm.avail_out),1)})),new w(4,4,8,4,v),new w(4,5,16,8,v),new w(4,6,32,32,v),new w(4,4,16,16,g),new w(8,16,32,32,g),new w(8,16,128,128,g),new w(8,32,128,256,g),new w(32,128,258,1024,g),new w(32,258,258,4096,g)],r.deflateInit=function(e,t){return S(e,t,8,15,8,0)},r.deflateInit2=S,r.deflateReset=x,r.deflateResetKeep=k,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?-2:(e.state.gzhead=t,0):-2},r.deflate=function(e,t){var r,o,a,u;if(!e||!e.state||t>5||t<0)return e?c(e,-2):-2;if(o=e.state,!e.output||!e.input&&0!==e.avail_in||666===o.status&&4!==t)return c(e,0===e.avail_out?-5:-2);if(o.strm=e,r=o.last_flush,o.last_flush=t,42===o.status)if(2===o.wrap)e.adler=0,p(o,31),p(o,139),p(o,8),o.gzhead?(p(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),p(o,255&o.gzhead.time),p(o,o.gzhead.time>>8&255),p(o,o.gzhead.time>>16&255),p(o,o.gzhead.time>>24&255),p(o,9===o.level?2:o.strategy>=2||o.level<2?4:0),p(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(p(o,255&o.gzhead.extra.length),p(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(e.adler=s(e.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=69):(p(o,0),p(o,0),p(o,0),p(o,0),p(o,0),p(o,9===o.level?2:o.strategy>=2||o.level<2?4:0),p(o,3),o.status=113);else{var m=8+(o.w_bits-8<<4)<<8;m|=(o.strategy>=2||o.level<2?0:o.level<6?1:6===o.level?2:3)<<6,0!==o.strstart&&(m|=32),m+=31-m%31,o.status=113,y(o,m),0!==o.strstart&&(y(o,e.adler>>>16),y(o,65535&e.adler)),e.adler=1}if(69===o.status)if(o.gzhead.extra){for(a=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>a&&(e.adler=s(e.adler,o.pending_buf,o.pending-a,a)),h(e),a=o.pending,o.pending!==o.pending_buf_size));)p(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>a&&(e.adler=s(e.adler,o.pending_buf,o.pending-a,a)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=73)}else o.status=73;if(73===o.status)if(o.gzhead.name){a=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>a&&(e.adler=s(e.adler,o.pending_buf,o.pending-a,a)),h(e),a=o.pending,o.pending===o.pending_buf_size)){u=1;break}u=o.gzindexa&&(e.adler=s(e.adler,o.pending_buf,o.pending-a,a)),0===u&&(o.gzindex=0,o.status=91)}else o.status=91;if(91===o.status)if(o.gzhead.comment){a=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>a&&(e.adler=s(e.adler,o.pending_buf,o.pending-a,a)),h(e),a=o.pending,o.pending===o.pending_buf_size)){u=1;break}u=o.gzindexa&&(e.adler=s(e.adler,o.pending_buf,o.pending-a,a)),0===u&&(o.status=103)}else o.status=103;if(103===o.status&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&h(e),o.pending+2<=o.pending_buf_size&&(p(o,255&e.adler),p(o,e.adler>>8&255),e.adler=0,o.status=113)):o.status=113),0!==o.pending){if(h(e),0===e.avail_out)return o.last_flush=-1,0}else if(0===e.avail_in&&f(t)<=f(r)&&4!==t)return c(e,-5);if(666===o.status&&0!==e.avail_in)return c(e,-5);if(0!==e.avail_in||0!==o.lookahead||0!==t&&666!==o.status){var v=2===o.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(b(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=i._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(d(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(d(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(d(e,!1),0===e.strm.avail_out)?1:2}(o,t):3===o.strategy?function(e,t){for(var r,n,o,a,s=e.window;;){if(e.lookahead<=258){if(b(e),e.lookahead<=258&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=s[o=e.strstart-1])===s[++o]&&n===s[++o]&&n===s[++o]){a=e.strstart+258;do{}while(n===s[++o]&&n===s[++o]&&n===s[++o]&&n===s[++o]&&n===s[++o]&&n===s[++o]&&n===s[++o]&&n===s[++o]&&oe.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=i._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=i._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(d(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(d(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(d(e,!1),0===e.strm.avail_out)?1:2}(o,t):n[o.level].func(o,t);if(3!==v&&4!==v||(o.status=666),1===v||3===v)return 0===e.avail_out&&(o.last_flush=-1),0;if(2===v&&(1===t?i._tr_align(o):5!==t&&(i._tr_stored_block(o,0,0,!1),3===t&&(l(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),h(e),0===e.avail_out))return o.last_flush=-1,0}return 4!==t?0:o.wrap<=0?1:(2===o.wrap?(p(o,255&e.adler),p(o,e.adler>>8&255),p(o,e.adler>>16&255),p(o,e.adler>>24&255),p(o,255&e.total_in),p(o,e.total_in>>8&255),p(o,e.total_in>>16&255),p(o,e.total_in>>24&255)):(y(o,e.adler>>>16),y(o,65535&e.adler)),h(e),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?0:1)},r.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?c(e,-2):(e.state=null,113===t?c(e,-3):0):-2},r.deflateSetDictionary=function(e,t){var r,n,i,s,u,c,f,h,d=t.length;if(!e||!e.state)return-2;if(2===(s=(r=e.state).wrap)||1===s&&42!==r.status||r.lookahead)return-2;for(1===s&&(e.adler=a(e.adler,t,d,0)),r.wrap=0,d>=r.w_size&&(0===s&&(l(r.head),r.strstart=0,r.block_start=0,r.insert=0),h=new o.Buf8(r.w_size),o.arraySet(h,t,d-r.w_size,r.w_size,0),t=h,d=r.w_size),u=e.avail_in,c=e.next_in,f=e.input,e.avail_in=d,e.next_in=0,e.input=t,b(r);r.lookahead>=3;){n=r.strstart,i=r.lookahead-2;do{r.ins_h=(r.ins_h<>>=w=g>>>24,p-=w,0===(w=g>>>16&255))E[i++]=65535&g;else{if(!(16&w)){if(0==(64&w)){g=y[(65535&g)+(d&(1<>>=w,p-=w),p<15&&(d+=O[n++]<>>=w=g>>>24,p-=w,!(16&(w=g>>>16&255))){if(0==(64&w)){g=m[(65535&g)+(d&(1<u){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=w,p-=w,k>(w=i-a)){if((w=k-w)>f&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(x=0,S=h,0===l){if(x+=c-w,w<_){_-=w;do{E[i++]=h[x++]}while(--w);x=i-k,S=E}}else if(l2;)E[i++]=S[x++],E[i++]=S[x++],E[i++]=S[x++],_-=3;_&&(E[i++]=S[x++],_>1&&(E[i++]=S[x++]))}else{x=i-k;do{E[i++]=E[x++],E[i++]=E[x++],E[i++]=E[x++],_-=3}while(_>2);_&&(E[i++]=E[x++],_>1&&(E[i++]=E[x++]))}break}}break}}while(n>3,d&=(1<<(p-=_<<3))-1,e.next_in=n,e.next_out=i,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(852),t.distcode=t.distdyn=new n.Buf32(592),t.sane=1,t.back=-1,0):-2}function l(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,f(e)):-2}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?-2:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,l(e))):-2}function d(e,t){var r,n;return e?(n=new c,e.state=n,n.window=null,0!==(r=h(e,t))&&(e.state=null),r):-2}var p,y,m=!0;function b(e){if(m){var t;for(p=new n.Buf32(512),y=new n.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(s(1,e.lens,0,288,p,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;s(2,e.lens,0,32,y,0,e.work,{bits:5}),m=!1}e.lencode=p,e.lenbits=9,e.distcode=y,e.distbits=5}function v(e,t,r,o){var i,a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(n.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):((i=a.wsize-a.wnext)>o&&(i=o),n.arraySet(a.window,t,r-o,i,a.wnext),(o-=i)?(n.arraySet(a.window,t,r-o,o,0),a.wnext=o,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=i(r.check,N,2,0),y=0,m=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&y)<<8)+(y>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&y)){e.msg=\"unknown compression method\",r.mode=30;break}if(m-=4,C=8+(15&(y>>>=4)),0===r.wbits)r.wbits=C;else if(C>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(N[0]=255&y,N[1]=y>>>8&255,r.check=i(r.check,N,2,0)),y=0,m=0,r.mode=3;case 3:for(;m<32;){if(0===d)break e;d--,y+=c[l++]<>>8&255,N[2]=y>>>16&255,N[3]=y>>>24&255,r.check=i(r.check,N,4,0)),y=0,m=0,r.mode=4;case 4:for(;m<16;){if(0===d)break e;d--,y+=c[l++]<>8),512&r.flags&&(N[0]=255&y,N[1]=y>>>8&255,r.check=i(r.check,N,2,0)),y=0,m=0,r.mode=5;case 5:if(1024&r.flags){for(;m<16;){if(0===d)break e;d--,y+=c[l++]<>>8&255,r.check=i(r.check,N,2,0)),y=0,m=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((_=r.length)>d&&(_=d),_&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,c,l,_,C)),512&r.flags&&(r.check=i(r.check,c,_,l)),d-=_,l+=_,r.length-=_),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===d)break e;_=0;do{C=c[l+_++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C))}while(C&&_>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;m<32;){if(0===d)break e;d--,y+=c[l++]<>>=7&m,m-=7&m,r.mode=27;break}for(;m<3;){if(0===d)break e;d--,y+=c[l++]<>>=1)){case 0:r.mode=14;break;case 1:if(b(r),r.mode=20,6===t){y>>>=2,m-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}y>>>=2,m-=2;break;case 14:for(y>>>=7&m,m-=7&m;m<32;){if(0===d)break e;d--,y+=c[l++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&y,y=0,m=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(_=r.length){if(_>d&&(_=d),_>p&&(_=p),0===_)break e;n.arraySet(f,c,l,_,h),d-=_,l+=_,p-=_,h+=_,r.length-=_;break}r.mode=12;break;case 17:for(;m<14;){if(0===d)break e;d--,y+=c[l++]<>>=5,m-=5,r.ndist=1+(31&y),y>>>=5,m-=5,r.ncode=4+(15&y),y>>>=4,m-=4,r.nlen>286||r.ndist>30){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,m-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,A={bits:r.lenbits},P=s(0,r.lens,0,19,r.lencode,0,r.work,A),r.lenbits=A.bits,P){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,E=65535&I,!((S=I>>>24)<=m);){if(0===d)break e;d--,y+=c[l++]<>>=S,m-=S,r.lens[r.have++]=E;else{if(16===E){for(M=S+2;m>>=S,m-=S,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}C=r.lens[r.have-1],_=3+(3&y),y>>>=2,m-=2}else if(17===E){for(M=S+3;m>>=S)),y>>>=3,m-=3}else{for(M=S+7;m>>=S)),y>>>=7,m-=7}if(r.have+_>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;_--;)r.lens[r.have++]=C}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,A={bits:r.lenbits},P=s(1,r.lens,0,r.nlen,r.lencode,0,r.work,A),r.lenbits=A.bits,P){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,A={bits:r.distbits},P=s(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,A),r.distbits=A.bits,P){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(d>=6&&p>=258){e.next_out=h,e.avail_out=p,e.next_in=l,e.avail_in=d,r.hold=y,r.bits=m,a(e,w),h=e.next_out,f=e.output,p=e.avail_out,l=e.next_in,c=e.input,d=e.avail_in,y=r.hold,m=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;O=(I=r.lencode[y&(1<>>16&255,E=65535&I,!((S=I>>>24)<=m);){if(0===d)break e;d--,y+=c[l++]<>R)])>>>16&255,E=65535&I,!(R+(S=I>>>24)<=m);){if(0===d)break e;d--,y+=c[l++]<>>=R,m-=R,r.back+=R}if(y>>>=S,m-=S,r.back+=S,r.length=E,0===O){r.mode=26;break}if(32&O){r.back=-1,r.mode=12;break}if(64&O){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&O,r.mode=22;case 22:if(r.extra){for(M=r.extra;m>>=r.extra,m-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;O=(I=r.distcode[y&(1<>>16&255,E=65535&I,!((S=I>>>24)<=m);){if(0===d)break e;d--,y+=c[l++]<>R)])>>>16&255,E=65535&I,!(R+(S=I>>>24)<=m);){if(0===d)break e;d--,y+=c[l++]<>>=R,m-=R,r.back+=R}if(y>>>=S,m-=S,r.back+=S,64&O){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=E,r.extra=15&O,r.mode=24;case 24:if(r.extra){for(M=r.extra;m>>=r.extra,m-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===p)break e;if(_=w-p,r.offset>_){if((_=r.offset-_)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}_>r.wnext?(_-=r.wnext,k=r.wsize-_):k=r.wnext-_,_>r.length&&(_=r.length),x=r.window}else x=f,k=h-r.offset,_=r.length;_>p&&(_=p),p-=_,r.length-=_;do{f[h++]=x[k++]}while(--_);0===r.length&&(r.mode=21);break;case 26:if(0===p)break e;f[h++]=r.length,p--,r.mode=21;break;case 27:if(r.wrap){for(;m<32;){if(0===d)break e;d--,y|=c[l++]<=1&&0===N[E];E--);if(R>E&&(R=E),0===E)return c[f++]=20971520,c[f++]=20971520,h.bits=1,0;for(O=1;O0&&(0===e||1!==E))return-1;for(D[1]=0,x=1;x<15;x++)D[x+1]=D[x]+N[x];for(S=0;S852||2===e&&P>592)return 1;for(;;){g=x-T,l[S]v?(w=B[F+l[S]],_=M[I+l[S]]):(w=96,_=0),d=1<>T)+(p-=d)]=g<<24|w<<16|_|0}while(0!==p);for(d=1<>=1;if(0!==d?(A&=d-1,A+=d):A=0,S++,0==--N[x]){if(x===E)break;x=t[r+l[S]]}if(x>R&&(A&m)!==y){for(0===T&&(T=R),b+=O,C=1<<(j=x-T);j+T852||2===e&&P>592)return 1;c[y=A&m]=R<<24|j<<16|b-f|0}}return 0!==A&&(c[b+A]=x-T<<24|64<<16|0),h.bits=R,0}},{\"../utils/common\":395}],405:[function(e,t,r){t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],406:[function(e,t,r){var n=e(\"../utils/common\");function o(e){for(var t=e.length;--t>=0;)e[t]=0}var i=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],a=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],u=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],c=new Array(576);o(c);var f=new Array(60);o(f);var l=new Array(512);o(l);var h=new Array(256);o(h);var d=new Array(29);o(d);var p,y,m,b=new Array(30);function v(e,t,r,n,o){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=o,this.has_stree=e&&e.length}function g(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function w(e){return e<256?l[e]:l[256+(e>>>7)]}function _(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function k(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<>>=1,r<<=1}while(--t>0);return r>>>1}function O(e,t,r){var n,o,i=new Array(16),a=0;for(n=1;n<=15;n++)i[n]=a=a+r[n-1]<<1;for(o=0;o<=t;o++){var s=e[2*o+1];0!==s&&(e[2*o]=S(i[s]++,s))}}function E(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function R(e){e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function j(e,t,r,n){var o=2*t,i=2*r;return e[o]>1;r>=1;r--)T(e,i,r);o=u;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],T(e,i,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,i[2*o]=i[2*r]+i[2*n],e.depth[o]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,i[2*r+1]=i[2*n+1]=o,e.heap[1]=o++,T(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,o,i,a,s,u=t.dyn_tree,c=t.max_code,f=t.stat_desc.static_tree,l=t.stat_desc.has_stree,h=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,y=0;for(i=0;i<=15;i++)e.bl_count[i]=0;for(u[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)(i=u[2*u[2*(n=e.heap[r])+1]+1]+1)>p&&(i=p,y++),u[2*n+1]=i,n>c||(e.bl_count[i]++,a=0,n>=d&&(a=h[n-d]),s=u[2*n],e.opt_len+=s*(i+a),l&&(e.static_len+=s*(f[2*n+1]+a)));if(0!==y){do{for(i=p-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[p]--,y-=2}while(y>0);for(i=p;0!==i;i--)for(n=e.bl_count[i];0!==n;)(o=e.heap[--r])>c||(u[2*o+1]!==i&&(e.opt_len+=(i-u[2*o+1])*u[2*o],u[2*o+1]=i),n--)}}(e,t),O(i,c,e.bl_count)}function A(e,t,r){var n,o,i=-1,a=t[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)o=a,a=t[2*(n+1)+1],++s>=7;n<30;n++)for(b[n]=o<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),P(e,e.l_desc),P(e,e.d_desc),a=function(e){var t;for(A(e,e.dyn_ltree,e.l_desc.max_code),A(e,e.dyn_dtree,e.d_desc.max_code),P(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*u[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),o=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=o&&(o=i)):o=i=r+5,r+4<=o&&-1!==t?N(e,t,r,n):4===e.strategy||i===o?(k(e,2+(n?1:0),3),C(e,c,f)):(k(e,4+(n?1:0),3),function(e,t,r,n){var o;for(k(e,t-257,5),k(e,r-1,5),k(e,n-4,4),o=0;o>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(h[r]+256+1)]++,e.dyn_dtree[2*w(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){k(e,2,3),x(e,256,c),function(e){16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":395}],407:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],408:[function(e,t,r){t.exports={\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}},{}],409:[function(e,t,r){var n=e(\"asn1.js\");r.certificate=e(\"./certificate\");var o=n.define(\"RSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"modulus\").int(),this.key(\"publicExponent\").int(),this.key(\"privateExponent\").int(),this.key(\"prime1\").int(),this.key(\"prime2\").int(),this.key(\"exponent1\").int(),this.key(\"exponent2\").int(),this.key(\"coefficient\").int())}));r.RSAPrivateKey=o;var i=n.define(\"RSAPublicKey\",(function(){this.seq().obj(this.key(\"modulus\").int(),this.key(\"publicExponent\").int())}));r.RSAPublicKey=i;var a=n.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(s),this.key(\"subjectPublicKey\").bitstr())}));r.PublicKey=a;var s=n.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"none\").null_().optional(),this.key(\"curve\").objid().optional(),this.key(\"params\").seq().obj(this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int()).optional())})),u=n.define(\"PrivateKeyInfo\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"algorithm\").use(s),this.key(\"subjectPrivateKey\").octstr())}));r.PrivateKey=u;var c=n.define(\"EncryptedPrivateKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").seq().obj(this.key(\"id\").objid(),this.key(\"decrypt\").seq().obj(this.key(\"kde\").seq().obj(this.key(\"id\").objid(),this.key(\"kdeparams\").seq().obj(this.key(\"salt\").octstr(),this.key(\"iters\").int())),this.key(\"cipher\").seq().obj(this.key(\"algo\").objid(),this.key(\"iv\").octstr()))),this.key(\"subjectPrivateKey\").octstr())}));r.EncryptedPrivateKey=c;var f=n.define(\"DSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int(),this.key(\"pub_key\").int(),this.key(\"priv_key\").int())}));r.DSAPrivateKey=f,r.DSAparam=n.define(\"DSAparam\",(function(){this.int()}));var l=n.define(\"ECPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"privateKey\").octstr(),this.key(\"parameters\").optional().explicit(0).use(h),this.key(\"publicKey\").optional().explicit(1).bitstr())}));r.ECPrivateKey=l;var h=n.define(\"ECParameters\",(function(){this.choice({namedCurve:this.objid()})}));r.signature=n.define(\"signature\",(function(){this.seq().obj(this.key(\"r\").int(),this.key(\"s\").int())}))},{\"./certificate\":410,\"asn1.js\":141}],410:[function(e,t,r){var n=e(\"asn1.js\"),o=n.define(\"Time\",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),i=n.define(\"AttributeTypeValue\",(function(){this.seq().obj(this.key(\"type\").objid(),this.key(\"value\").any())})),a=n.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"parameters\").optional(),this.key(\"curve\").objid().optional())})),s=n.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(a),this.key(\"subjectPublicKey\").bitstr())})),u=n.define(\"RelativeDistinguishedName\",(function(){this.setof(i)})),c=n.define(\"RDNSequence\",(function(){this.seqof(u)})),f=n.define(\"Name\",(function(){this.choice({rdnSequence:this.use(c)})})),l=n.define(\"Validity\",(function(){this.seq().obj(this.key(\"notBefore\").use(o),this.key(\"notAfter\").use(o))})),h=n.define(\"Extension\",(function(){this.seq().obj(this.key(\"extnID\").objid(),this.key(\"critical\").bool().def(!1),this.key(\"extnValue\").octstr())})),d=n.define(\"TBSCertificate\",(function(){this.seq().obj(this.key(\"version\").explicit(0).int().optional(),this.key(\"serialNumber\").int(),this.key(\"signature\").use(a),this.key(\"issuer\").use(f),this.key(\"validity\").use(l),this.key(\"subject\").use(f),this.key(\"subjectPublicKeyInfo\").use(s),this.key(\"issuerUniqueID\").implicit(1).bitstr().optional(),this.key(\"subjectUniqueID\").implicit(2).bitstr().optional(),this.key(\"extensions\").explicit(3).seqof(h).optional())})),p=n.define(\"X509Certificate\",(function(){this.seq().obj(this.key(\"tbsCertificate\").use(d),this.key(\"signatureAlgorithm\").use(a),this.key(\"signatureValue\").bitstr())}));t.exports=p},{\"asn1.js\":141}],411:[function(e,t,r){var n=/Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m,a=e(\"evp_bytestokey\"),s=e(\"browserify-aes\"),u=e(\"safe-buffer\").Buffer;t.exports=function(e,t){var r,c=e.toString(),f=c.match(n);if(f){var l=\"aes\"+f[1],h=u.from(f[2],\"hex\"),d=u.from(f[3].replace(/[\\r\\n]/g,\"\"),\"base64\"),p=a(t,h.slice(0,8),parseInt(f[1],10)).key,y=[],m=s.createDecipheriv(l,p,h);y.push(m.update(d)),y.push(m.final()),r=u.concat(y)}else{var b=c.match(i);r=new u(b[2].replace(/[\\r\\n]/g,\"\"),\"base64\")}return{tag:c.match(o)[1],data:r}}},{\"browserify-aes\":161,evp_bytestokey:300,\"safe-buffer\":445}],412:[function(e,t,r){var n=e(\"./asn1\"),o=e(\"./aesid.json\"),i=e(\"./fixProc\"),a=e(\"browserify-aes\"),s=e(\"pbkdf2\"),u=e(\"safe-buffer\").Buffer;function c(e){var t;\"object\"!==_typeof2(e)||u.isBuffer(e)||(t=e.passphrase,e=e.key),\"string\"==typeof e&&(e=u.from(e));var r,c,f=i(e,t),l=f.tag,h=f.data;switch(l){case\"CERTIFICATE\":c=n.certificate.decode(h,\"der\").tbsCertificate.subjectPublicKeyInfo;case\"PUBLIC KEY\":switch(c||(c=n.PublicKey.decode(h,\"der\")),r=c.algorithm.algorithm.join(\".\")){case\"1.2.840.113549.1.1.1\":return n.RSAPublicKey.decode(c.subjectPublicKey.data,\"der\");case\"1.2.840.10045.2.1\":return c.subjectPrivateKey=c.subjectPublicKey,{type:\"ec\",data:c};case\"1.2.840.10040.4.1\":return c.algorithm.params.pub_key=n.DSAparam.decode(c.subjectPublicKey.data,\"der\"),{type:\"dsa\",data:c.algorithm.params};default:throw new Error(\"unknown key id \"+r)}throw new Error(\"unknown key type \"+l);case\"ENCRYPTED PRIVATE KEY\":h=function(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),i=o[e.algorithm.decrypt.cipher.algo.join(\".\")],c=e.algorithm.decrypt.cipher.iv,f=e.subjectPrivateKey,l=parseInt(i.split(\"-\")[1],10)/8,h=s.pbkdf2Sync(t,r,n,l,\"sha1\"),d=a.createDecipheriv(i,h,c),p=[];return p.push(d.update(f)),p.push(d.final()),u.concat(p)}(h=n.EncryptedPrivateKey.decode(h,\"der\"),t);case\"PRIVATE KEY\":switch(r=(c=n.PrivateKey.decode(h,\"der\")).algorithm.algorithm.join(\".\")){case\"1.2.840.113549.1.1.1\":return n.RSAPrivateKey.decode(c.subjectPrivateKey,\"der\");case\"1.2.840.10045.2.1\":return{curve:c.algorithm.curve,privateKey:n.ECPrivateKey.decode(c.subjectPrivateKey,\"der\").privateKey};case\"1.2.840.10040.4.1\":return c.algorithm.params.priv_key=n.DSAparam.decode(c.subjectPrivateKey,\"der\"),{type:\"dsa\",params:c.algorithm.params};default:throw new Error(\"unknown key id \"+r)}throw new Error(\"unknown key type \"+l);case\"RSA PUBLIC KEY\":return n.RSAPublicKey.decode(h,\"der\");case\"RSA PRIVATE KEY\":return n.RSAPrivateKey.decode(h,\"der\");case\"DSA PRIVATE KEY\":return{type:\"dsa\",params:n.DSAPrivateKey.decode(h,\"der\")};case\"EC PRIVATE KEY\":return{curve:(h=n.ECPrivateKey.decode(h,\"der\")).parameters.value,privateKey:h.privateKey};default:throw new Error(\"unknown key type \"+l)}}t.exports=c,c.signature=n.signature},{\"./aesid.json\":408,\"./asn1\":409,\"./fixProc\":411,\"browserify-aes\":161,pbkdf2:413,\"safe-buffer\":445}],413:[function(e,t,r){r.pbkdf2=e(\"./lib/async\"),r.pbkdf2Sync=e(\"./lib/sync\")},{\"./lib/async\":414,\"./lib/sync\":417}],414:[function(e,t,r){(function(r,n){var o,i=e(\"./precondition\"),a=e(\"./default-encoding\"),s=e(\"./sync\"),u=e(\"safe-buffer\").Buffer,c=n.crypto&&n.crypto.subtle,f={sha:\"SHA-1\",\"sha-1\":\"SHA-1\",sha1:\"SHA-1\",sha256:\"SHA-256\",\"sha-256\":\"SHA-256\",sha384:\"SHA-384\",\"sha-384\":\"SHA-384\",\"sha-512\":\"SHA-512\",sha512:\"SHA-512\"},l=[];function h(e,t,r,n,o){return c.importKey(\"raw\",e,{name:\"PBKDF2\"},!1,[\"deriveBits\"]).then((function(e){return c.deriveBits({name:\"PBKDF2\",salt:t,iterations:r,hash:{name:o}},e,n<<3)})).then((function(e){return u.from(e)}))}t.exports=function(e,t,d,p,y,m){\"function\"==typeof y&&(m=y,y=void 0);var b=f[(y=y||\"sha1\").toLowerCase()];if(!b||\"function\"!=typeof n.Promise)return r.nextTick((function(){var r;try{r=s(e,t,d,p,y)}catch(e){return m(e)}m(null,r)}));if(i(e,t,d,p),\"function\"!=typeof m)throw new Error(\"No callback provided to pbkdf2\");u.isBuffer(e)||(e=u.from(e,a)),u.isBuffer(t)||(t=u.from(t,a)),function(e,t){e.then((function(e){r.nextTick((function(){t(null,e)}))}),(function(e){r.nextTick((function(){t(e)}))}))}(function(e){if(n.process&&!n.process.browser)return Promise.resolve(!1);if(!c||!c.importKey||!c.deriveBits)return Promise.resolve(!1);if(void 0!==l[e])return l[e];var t=h(o=o||u.alloc(8),o,10,128,e).then((function(){return!0})).catch((function(){return!1}));return l[e]=t,t}(b).then((function(r){return r?h(e,t,d,p,b):s(e,t,d,p,y)})),m)}}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./default-encoding\":415,\"./precondition\":416,\"./sync\":417,_process:419,\"safe-buffer\":445}],415:[function(e,t,r){(function(e){var r;e.browser?r=\"utf-8\":r=parseInt(e.version.split(\".\")[0].slice(1),10)>=6?\"utf-8\":\"binary\";t.exports=r}).call(this,e(\"_process\"))},{_process:419}],416:[function(e,t,r){(function(e){var r=Math.pow(2,30)-1;function n(t,r){if(\"string\"!=typeof t&&!e.isBuffer(t))throw new TypeError(r+\" must be a buffer or string\")}t.exports=function(e,t,o,i){if(n(e,\"Password\"),n(t,\"Salt\"),\"number\"!=typeof o)throw new TypeError(\"Iterations not a number\");if(o<0)throw new TypeError(\"Bad iterations\");if(\"number\"!=typeof i)throw new TypeError(\"Key length not a number\");if(i<0||i>r||i!=i)throw new TypeError(\"Bad key length\")}}).call(this,{isBuffer:e(\"../../is-buffer/index.js\")})},{\"../../is-buffer/index.js\":342}],417:[function(e,t,r){var n=e(\"create-hash/md5\"),o=e(\"ripemd160\"),i=e(\"sha.js\"),a=e(\"./precondition\"),s=e(\"./default-encoding\"),u=e(\"safe-buffer\").Buffer,c=u.alloc(128),f={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function l(e,t,r){var a=function(e){function t(t){return i(e).update(t).digest()}return\"rmd160\"===e||\"ripemd160\"===e?function(e){return(new o).update(e).digest()}:\"md5\"===e?n:t}(e),s=\"sha512\"===e||\"sha384\"===e?128:64;t.length>s?t=a(t):t.length1)for(var r=1;rp||new a(t).cmp(d.modulus)>=0)throw new Error(\"decryption error\");h=r?c(new a(t),d):s(t,d);var y=f.alloc(p-h.length);if(h=f.concat([y,h],p),4===l)return function(e,t){var r=e.modulus.byteLength(),n=u(\"sha1\").update(f.alloc(0)).digest(),a=n.length;if(0!==t[0])throw new Error(\"decryption error\");var s=t.slice(1,a+1),c=t.slice(a+1),l=i(s,o(c,a)),h=i(c,o(l,r-a-1));if(function(e,t){e=f.from(e),t=f.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var o=-1;for(;++o=t.length){i++;break}var a=t.slice(2,o-1);(\"0002\"!==n.toString(\"hex\")&&!r||\"0001\"!==n.toString(\"hex\")&&r)&&i++;a.length<8&&i++;if(i)throw new Error(\"decryption error\");return t.slice(o)}(0,h,r);if(3===l)return h;throw new Error(\"unknown padding\")}},{\"./mgf\":421,\"./withPublic\":424,\"./xor\":425,\"bn.js\":156,\"browserify-rsa\":179,\"create-hash\":265,\"parse-asn1\":412,\"safe-buffer\":445}],423:[function(e,t,r){var n=e(\"parse-asn1\"),o=e(\"randombytes\"),i=e(\"create-hash\"),a=e(\"./mgf\"),s=e(\"./xor\"),u=e(\"bn.js\"),c=e(\"./withPublic\"),f=e(\"browserify-rsa\"),l=e(\"safe-buffer\").Buffer;t.exports=function(e,t,r){var h;h=e.padding?e.padding:r?1:4;var d,p=n(e);if(4===h)d=function(e,t){var r=e.modulus.byteLength(),n=t.length,c=i(\"sha1\").update(l.alloc(0)).digest(),f=c.length,h=2*f;if(n>r-h-2)throw new Error(\"message too long\");var d=l.alloc(r-n-h-2),p=r-f-1,y=o(f),m=s(l.concat([c,d,l.alloc(1,1),t],p),a(y,p)),b=s(y,a(m,f));return new u(l.concat([l.alloc(1),b,m],r))}(p,t);else if(1===h)d=function(e,t,r){var n,i=t.length,a=e.modulus.byteLength();if(i>a-11)throw new Error(\"message too long\");n=r?l.alloc(a-i-3,255):function(e){var t,r=l.allocUnsafe(e),n=0,i=o(2*e),a=0;for(;n=0)throw new Error(\"data too long for modulus\")}return r?f(d,p):c(d,p)}},{\"./mgf\":421,\"./withPublic\":424,\"./xor\":425,\"bn.js\":156,\"browserify-rsa\":179,\"create-hash\":265,\"parse-asn1\":412,randombytes:426,\"safe-buffer\":445}],424:[function(e,t,r){var n=e(\"bn.js\"),o=e(\"safe-buffer\").Buffer;t.exports=function(e,t){return o.from(e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed().toArray())}},{\"bn.js\":156,\"safe-buffer\":445}],425:[function(e,t,r){t.exports=function(e,t){for(var r=e.length,n=-1;++n4294967295)throw new RangeError(\"requested too many random bytes\");var n=o.allocUnsafe(e);if(e>0)if(e>65536)for(var a=0;af||e<0)throw new TypeError(\"offset must be a uint32\");if(e>u||e>t)throw new RangeError(\"offset out of range\")}function h(e,t,r){if(\"number\"!=typeof e||e!=e)throw new TypeError(\"size must be a number\");if(e>f||e<0)throw new TypeError(\"size must be a uint32\");if(e+t>r||e>u)throw new RangeError(\"buffer too small\")}function d(e,r,n,o){if(t.browser){var i=e.buffer,s=new Uint8Array(i,r,n);return c.getRandomValues(s),o?void t.nextTick((function(){o(null,e)})):e}if(!o)return a(n).copy(e,r),e;a(n,(function(t,n){if(t)return o(t);n.copy(e,r),o(null,e)}))}c&&c.getRandomValues||!t.browser?(r.randomFill=function(e,t,r,o){if(!(s.isBuffer(e)||e instanceof n.Uint8Array))throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(\"function\"==typeof t)o=t,t=0,r=e.length;else if(\"function\"==typeof r)o=r,r=e.length-t;else if(\"function\"!=typeof o)throw new TypeError('\"cb\" argument must be a function');return l(t,e.length),h(r,t,e.length),d(e,t,r,o)},r.randomFillSync=function(e,t,r){void 0===t&&(t=0);if(!(s.isBuffer(e)||e instanceof n.Uint8Array))throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');l(t,e.length),void 0===r&&(r=e.length-t);return h(r,t,e.length),d(e,t,r)}):(r.randomFill=o,r.randomFillSync=o)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:419,randombytes:426,\"safe-buffer\":445}],428:[function(e,t,r){var n={};function o(e,t,r){r||(r=Error);var o=function(e){var r,n;function o(r,n,o){return e.call(this,function(e,r,n){return\"string\"==typeof t?t:t(e,r,n)}(r,n,o))||this}return n=e,(r=o).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,o}(r);o.prototype.name=r.name,o.prototype.code=e,n[e]=o}function i(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?\"one of \".concat(t,\" \").concat(e.slice(0,r-1).join(\", \"),\", or \")+e[r-1]:2===r?\"one of \".concat(t,\" \").concat(e[0],\" or \").concat(e[1]):\"of \".concat(t,\" \").concat(e[0])}return\"of \".concat(t,\" \").concat(String(e))}o(\"ERR_INVALID_OPT_VALUE\",(function(e,t){return'The value \"'+t+'\" is invalid for option \"'+e+'\"'}),TypeError),o(\"ERR_INVALID_ARG_TYPE\",(function(e,t,r){var n,o,a,s;if(\"string\"==typeof t&&(o=\"not \",t.substr(!a||a<0?0:+a,o.length)===o)?(n=\"must not be\",t=t.replace(/^not /,\"\")):n=\"must be\",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e,\" argument\"))s=\"The \".concat(e,\" \").concat(n,\" \").concat(i(t,\"type\"));else{var u=function(e,t,r){return\"number\"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,\".\")?\"property\":\"argument\";s='The \"'.concat(e,'\" ').concat(u,\" \").concat(n,\" \").concat(i(t,\"type\"))}return s+=\". Received type \".concat(_typeof2(r))}),TypeError),o(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\"),o(\"ERR_METHOD_NOT_IMPLEMENTED\",(function(e){return\"The \"+e+\" method is not implemented\"})),o(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\"),o(\"ERR_STREAM_DESTROYED\",(function(e){return\"Cannot call \"+e+\" after a stream was destroyed\"})),o(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\"),o(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\"),o(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\"),o(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError),o(\"ERR_UNKNOWN_ENCODING\",(function(e){return\"Unknown encoding: \"+e}),TypeError),o(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\"),t.exports.codes=n},{}],429:[function(e,t,r){(function(r){var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=c;var o=e(\"./_stream_readable\"),i=e(\"./_stream_writable\");e(\"inherits\")(c,o);for(var a=n(i.prototype),s=0;s0)if(\"string\"==typeof t||a.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)a.endEmitted?k(e,new _):R(e,a,t,!0);else if(a.ended)k(e,new g);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||0!==t.length?R(e,a,t,!1):P(e,a)):R(e,a,t,!1)}else n||(a.reading=!1,P(e,a));return!a.ended&&(a.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function T(e){var t=e._readableState;c(\"emitReadable\",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(c(\"emitReadable\",t.flowing),t.emittedReadable=!0,r.nextTick(C,e))}function C(e){var t=e._readableState;c(\"emitReadable_\",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit(\"readable\"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,D(e)}function P(e,t){t.readingMore||(t.readingMore=!0,r.nextTick(A,e,t))}function A(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount(\"data\")>0&&e.resume()}function I(e){c(\"readable nexttick read 0\"),e.read(0)}function N(e,t){c(\"resume\",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit(\"resume\"),D(e),t.flowing&&!t.reading&&e.read(0)}function D(e){var t=e._readableState;for(c(\"flow\",t.flowing);t.flowing&&null!==e.read(););}function B(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(\"\"):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;c(\"endReadable\",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(L,t,e))}function L(e,t){if(c(\"endReadableNT\",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit(\"end\"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function z(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return c(\"read: emitReadable\",t.length,t.ended),0===t.length&&t.ended?F(this):T(this),null;if(0===(e=j(e,t))&&t.ended)return 0===t.length&&F(this),null;var n,o=t.needReadable;return c(\"need readable\",o),(0===t.length||t.length-e0?B(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==n&&this.emit(\"data\",n),n},O.prototype._read=function(e){k(this,new w(\"_read()\"))},O.prototype.pipe=function(e,t){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,c(\"pipe count=%d opts=%j\",o.pipesCount,t);var a=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?u:m;function s(t,r){c(\"onunpipe\"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,c(\"cleanup\"),e.removeListener(\"close\",p),e.removeListener(\"finish\",y),e.removeListener(\"drain\",f),e.removeListener(\"error\",d),e.removeListener(\"unpipe\",s),n.removeListener(\"end\",u),n.removeListener(\"end\",m),n.removeListener(\"data\",h),l=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function u(){c(\"onend\"),e.end()}o.endEmitted?r.nextTick(a):n.once(\"end\",a),e.on(\"unpipe\",s);var f=function(e){return function(){var t=e._readableState;c(\"pipeOnDrain\",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,\"data\")&&(t.flowing=!0,D(e))}}(n);e.on(\"drain\",f);var l=!1;function h(t){c(\"ondata\");var r=e.write(t);c(\"dest.write\",r),!1===r&&((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==z(o.pipes,e))&&!l&&(c(\"false write response, pause\",o.awaitDrain),o.awaitDrain++),n.pause())}function d(t){c(\"onerror\",t),m(),e.removeListener(\"error\",d),0===i(e,\"error\")&&k(e,t)}function p(){e.removeListener(\"finish\",y),m()}function y(){c(\"onfinish\"),e.removeListener(\"close\",p),m()}function m(){c(\"unpipe\"),n.unpipe(e)}return n.on(\"data\",h),function(e,t,r){if(\"function\"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,\"error\",d),e.once(\"close\",p),e.once(\"finish\",y),e.emit(\"pipe\",n),o.flowing||(c(\"pipe resume\"),n.resume()),e},O.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit(\"unpipe\",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0,!1!==o.flowing&&this.resume()):\"readable\"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,c(\"on readable\",o.length,o.reading),o.length?T(this):o.reading||r.nextTick(I,this))),n},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(e,t){var n=a.prototype.removeListener.call(this,e,t);return\"readable\"===e&&r.nextTick(M,this),n},O.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return\"readable\"!==e&&void 0!==e||r.nextTick(M,this),t},O.prototype.resume=function(){var e=this._readableState;return e.flowing||(c(\"resume\"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(N,e,t))}(this,e)),e.paused=!1,this},O.prototype.pause=function(){return c(\"call pause flowing=%j\",this._readableState.flowing),!1!==this._readableState.flowing&&(c(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this},O.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var o in e.on(\"end\",(function(){if(c(\"wrapped end\"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on(\"data\",(function(o){(c(\"wrapped data\"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o)||(r.objectMode||o&&o.length)&&(t.push(o)||(n=!0,e.pause()))})),e)void 0===this[o]&&\"function\"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(O.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(O.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),O.prototype._write=function(e,t,r){r(new y(\"_write()\"))},O.prototype._writev=null,O.prototype.end=function(e,t,n){var o=this._writableState;return\"function\"==typeof e?(n=e,e=null,t=null):\"function\"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),o.corked&&(o.corked=1,this.uncork()),o.ending||function(e,t,n){t.ending=!0,P(e,t),n&&(t.finished?r.nextTick(n):e.once(\"finish\",n));t.ended=!0,e.writable=!1}(this,o,n),this},Object.defineProperty(O.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(O.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),O.prototype.destroy=l.destroy,O.prototype._undestroy=l.undestroy,O.prototype._destroy=function(e,t){t(e)}}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../errors\":428,\"./_stream_duplex\":429,\"./internal/streams/destroy\":436,\"./internal/streams/state\":440,\"./internal/streams/stream\":441,_process:419,buffer:188,inherits:341,\"util-deprecate\":472}],434:[function(e,t,r){(function(r){var n;function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=e(\"./end-of-stream\"),a=Symbol(\"lastResolve\"),s=Symbol(\"lastReject\"),u=Symbol(\"error\"),c=Symbol(\"ended\"),f=Symbol(\"lastPromise\"),l=Symbol(\"handlePromise\"),h=Symbol(\"stream\");function d(e,t){return{value:e,done:t}}function p(e){var t=e[a];if(null!==t){var r=e[h].read();null!==r&&(e[f]=null,e[a]=null,e[s]=null,t(d(r,!1)))}}function y(e){r.nextTick(p,e)}var m=Object.getPrototypeOf((function(){})),b=Object.setPrototypeOf((o(n={get stream(){return this[h]},next:function(){var e=this,t=this[u];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(d(void 0,!0));if(this[h].destroyed)return new Promise((function(t,n){r.nextTick((function(){e[u]?n(e[u]):t(d(void 0,!0))}))}));var n,o=this[f];if(o)n=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(d(void 0,!0)):t[l](r,n)}),n)}}(o,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(d(i,!1));n=new Promise(this[l])}return this[f]=n,n}},Symbol.asyncIterator,(function(){return this})),o(n,\"return\",(function(){var e=this;return new Promise((function(t,r){e[h].destroy(null,(function(e){e?r(e):t(d(void 0,!0))}))}))})),n),m);t.exports=function(e){var t,r=Object.create(b,(o(t={},h,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,s,{value:null,writable:!0}),o(t,u,{value:null,writable:!0}),o(t,c,{value:e._readableState.endEmitted,writable:!0}),o(t,l,{value:function(e,t){var n=r[h].read();n?(r[f]=null,r[a]=null,r[s]=null,e(d(n,!1))):(r[a]=e,r[s]=t)},writable:!0}),t));return r[f]=null,i(e,(function(e){if(e&&\"ERR_STREAM_PREMATURE_CLOSE\"!==e.code){var t=r[s];return null!==t&&(r[f]=null,r[a]=null,r[s]=null,t(e)),void(r[u]=e)}var n=r[a];null!==n&&(r[f]=null,r[a]=null,r[s]=null,n(d(void 0,!0))),r[c]=!0})),e.on(\"readable\",y.bind(null,r)),r}}).call(this,e(\"_process\"))},{\"./end-of-stream\":437,_process:419}],435:[function(e,t,r){function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:\"unshift\",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:\"shift\",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(e){if(0===this.length)return\"\";for(var t=this.head,r=\"\"+t.data;t=t.next;)r+=e+t.data;return r}},{key:\"concat\",value:function(e){if(0===this.length)return a.alloc(0);for(var t,r,n,o=a.allocUnsafe(e>>>0),i=this.head,s=0;i;)t=i.data,r=o,n=s,a.prototype.copy.call(t,r,n),s+=i.data.length,i=i.next;return o}},{key:\"consume\",value:function(e,t){var r;return eo.length?o.length:e;if(i===o.length?n+=o:n+=o.slice(0,e),0==(e-=i)){i===o.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,n}},{key:\"_getBuffer\",value:function(e){var t=a.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),0==(e-=i)){i===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(i));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t0,(function(e){n||(n=e),e&&a.forEach(c),i||(a.forEach(c),o(n))}))}));return t.reduce(f)}},{\"../../../errors\":428,\"./end-of-stream\":437}],440:[function(e,t,r){var n=e(\"../../../errors\").codes.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(e,t,r,o){var i=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,o,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(o?r:\"highWaterMark\",i);return Math.floor(i)}return e.objectMode?16:16384}}},{\"../../../errors\":428}],441:[function(e,t,r){t.exports=e(\"events\").EventEmitter},{events:299}],442:[function(e,t,r){(r=t.exports=e(\"./lib/_stream_readable.js\")).Stream=r,r.Readable=r,r.Writable=e(\"./lib/_stream_writable.js\"),r.Duplex=e(\"./lib/_stream_duplex.js\"),r.Transform=e(\"./lib/_stream_transform.js\"),r.PassThrough=e(\"./lib/_stream_passthrough.js\"),r.finished=e(\"./lib/internal/streams/end-of-stream.js\"),r.pipeline=e(\"./lib/internal/streams/pipeline.js\")},{\"./lib/_stream_duplex.js\":429,\"./lib/_stream_passthrough.js\":430,\"./lib/_stream_readable.js\":431,\"./lib/_stream_transform.js\":432,\"./lib/_stream_writable.js\":433,\"./lib/internal/streams/end-of-stream.js\":437,\"./lib/internal/streams/pipeline.js\":439}],443:[function(e,t,r){var n=function(e){var t=Object.prototype,r=t.hasOwnProperty,n=\"function\"==typeof Symbol?Symbol:{},o=n.iterator||\"@@iterator\",i=n.asyncIterator||\"@@asyncIterator\",a=n.toStringTag||\"@@toStringTag\";function s(e,t,r,n){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),a=new k(n||[]);return i._invoke=function(e,t,r){var n=\"suspendedStart\";return function(o,i){if(\"executing\"===n)throw new Error(\"Generator is already running\");if(\"completed\"===n){if(\"throw\"===o)throw i;return S()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var s=g(a,r);if(s){if(s===c)continue;return s}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(\"suspendedStart\"===n)throw n=\"completed\",r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=\"executing\";var f=u(e,t,r);if(\"normal\"===f.type){if(n=r.done?\"completed\":\"suspendedYield\",f.arg===c)continue;return{value:f.arg,done:r.done}}\"throw\"===f.type&&(n=\"completed\",r.method=\"throw\",r.arg=f.arg)}}}(e,r,a),i}function u(e,t,r){try{return{type:\"normal\",arg:e.call(t,r)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=s;var c={};function f(){}function l(){}function h(){}var d={};d[o]=function(){return this};var p=Object.getPrototypeOf,y=p&&p(p(x([])));y&&y!==t&&r.call(y,o)&&(d=y);var m=h.prototype=f.prototype=Object.create(d);function b(e){[\"next\",\"throw\",\"return\"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function v(e,t){var n;this._invoke=function(o,i){function a(){return new t((function(n,a){!function n(o,i,a,s){var c=u(e[o],e,i);if(\"throw\"!==c.type){var f=c.arg,l=f.value;return l&&\"object\"===_typeof2(l)&&r.call(l,\"__await\")?t.resolve(l.__await).then((function(e){n(\"next\",e,a,s)}),(function(e){n(\"throw\",e,a,s)})):t.resolve(l).then((function(e){f.value=e,a(f)}),(function(e){return n(\"throw\",e,a,s)}))}s(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function g(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,\"throw\"===t.method){if(e.iterator.return&&(t.method=\"return\",t.arg=void 0,g(e,t),\"throw\"===t.method))return c;t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return c}var n=u(r,e.iterator,t.arg);if(\"throw\"===n.type)return t.method=\"throw\",t.arg=n.arg,t.delegate=null,c;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,c):o:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,c)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(w,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var s=r.call(i,\"catchLoc\"),u=r.call(i,\"finallyLoc\");if(s&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;_(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},\"next\"===this.method&&(this.arg=void 0),c}},e}(\"object\"===_typeof2(t)?t.exports:{});try{regeneratorRuntime=n}catch(e){Function(\"r\",\"regeneratorRuntime = r\")(n)}},{}],444:[function(e,t,r){var n=e(\"buffer\").Buffer,o=e(\"inherits\"),i=e(\"hash-base\"),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],f=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],h=[1352829926,1548603684,1836072691,2053994217,0];function d(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function y(e,t,r,n,o,i,a,s){return p(e+(t^r^n)+i+a|0,s)+o|0}function m(e,t,r,n,o,i,a,s){return p(e+(t&r|~t&n)+i+a|0,s)+o|0}function b(e,t,r,n,o,i,a,s){return p(e+((t|~r)^n)+i+a|0,s)+o|0}function v(e,t,r,n,o,i,a,s){return p(e+(t&n|r&~n)+i+a|0,s)+o|0}function g(e,t,r,n,o,i,a,s){return p(e+(t^(r|~n))+i+a|0,s)+o|0}o(d,i),d.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,o=0|this._c,i=0|this._d,d=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,x=0|this._d,S=0|this._e,O=0;O<80;O+=1){var E,R;O<16?(E=y(r,n,o,i,d,e[s[O]],l[0],c[O]),R=g(w,_,k,x,S,e[u[O]],h[0],f[O])):O<32?(E=m(r,n,o,i,d,e[s[O]],l[1],c[O]),R=v(w,_,k,x,S,e[u[O]],h[1],f[O])):O<48?(E=b(r,n,o,i,d,e[s[O]],l[2],c[O]),R=b(w,_,k,x,S,e[u[O]],h[2],f[O])):O<64?(E=v(r,n,o,i,d,e[s[O]],l[3],c[O]),R=m(w,_,k,x,S,e[u[O]],h[3],f[O])):(E=g(r,n,o,i,d,e[s[O]],l[4],c[O]),R=y(w,_,k,x,S,e[u[O]],h[4],f[O])),r=d,d=i,i=p(o,10),o=n,n=E,w=S,S=x,x=p(k,10),k=_,_=R}var j=this._b+o+x|0;this._b=this._c+i+S|0,this._c=this._d+d+w|0,this._d=this._e+r+_|0,this._e=this._a+n+k|0,this._a=j},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},t.exports=d},{buffer:188,\"hash-base\":325,inherits:341}],445:[function(e,t,r){var n=e(\"buffer\"),o=n.Buffer;function i(e,t){for(var r in e)t[r]=e[r]}function a(e,t,r){return o(e,t,r)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?t.exports=n:(i(n,r),r.Buffer=a),i(o,a),a.from=function(e,t,r){if(\"number\"==typeof e)throw new TypeError(\"Argument must not be a number\");return o(e,t,r)},a.alloc=function(e,t,r){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");var n=o(e);return void 0!==t?\"string\"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},a.allocUnsafe=function(e){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");return o(e)},a.allocUnsafeSlow=function(e){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(e)}},{buffer:188}],446:[function(e,t,r){Object.defineProperty(r,\"__esModule\",{value:!0});var n=e(\"xmlchars/xml/1.0/ed5\"),o=e(\"xmlchars/xml/1.1/ed2\"),i=e(\"xmlchars/xmlns/1.0/ed3\"),a=n.isS,s=n.isChar,u=n.isNameStartChar,c=n.isNameChar,f=n.S_LIST,l=n.NAME_RE,h=o.isChar,d=i.isNCNameStartChar,p=i.isNCNameChar,y=i.NC_NAME_RE,m=\"http://www.w3.org/XML/1998/namespace\",b=\"http://www.w3.org/2000/xmlns/\",v={__proto__:null,xml:m,xmlns:b},g={__proto__:null,amp:\"&\",gt:\">\",lt:\"<\",quot:'\"',apos:\"'\"},w=61,_=63,k=function(e){return 34===e||39===e},x=[34,39],S=[].concat(x,[91,62]),O=[].concat(x,[60,93]),E=[w,_].concat(_toConsumableArray2(f)),R=[].concat(_toConsumableArray2(f),[62,38,60]);function j(e,t,r){switch(t){case\"xml\":r!==m&&e.fail(\"xml prefix must be bound to \".concat(m,\".\"));break;case\"xmlns\":r!==b&&e.fail(\"xmlns prefix must be bound to \".concat(b,\".\"))}switch(r){case b:e.fail(\"\"===t?\"the default namespace may not be set to \".concat(r,\".\"):'may not assign a prefix (even \"xmlns\") to the URI '.concat(b,\".\"));break;case m:switch(t){case\"xml\":break;case\"\":e.fail(\"the default namespace may not be set to \".concat(r,\".\"));break;default:e.fail(\"may not assign the xml namespace to another prefix.\")}}}var T=function(e){return y.test(e)},C=function(e){return l.test(e)};r.EVENTS=[\"xmldecl\",\"text\",\"processinginstruction\",\"doctype\",\"comment\",\"opentagstart\",\"attribute\",\"opentag\",\"closetag\",\"cdata\",\"error\",\"end\",\"ready\"];var P={xmldecl:\"xmldeclHandler\",text:\"textHandler\",processinginstruction:\"piHandler\",doctype:\"doctypeHandler\",comment:\"commentHandler\",opentagstart:\"openTagStartHandler\",attribute:\"attributeHandler\",opentag:\"openTagHandler\",closetag:\"closeTagHandler\",cdata:\"cdataHandler\",error:\"errorHandler\",end:\"endHandler\",ready:\"readyHandler\"},A=function(){function e(t){_classCallCheck2(this,e),this.opt=null!=t?t:{},this.fragmentOpt=!!this.opt.fragment;var r=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=!1!==this.opt.position,this.fileName=this.opt.fileName,r){this.nameStartCheck=d,this.nameCheck=p,this.isName=T,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},v);var n=this.opt.additionalNamespaces;null!=n&&(!function(e,t){for(var r=0,n=Object.keys(t);r0&&(r+=\":\"),r+=\"\".concat(this.line,\":\").concat(this.column)),r.length>0&&(r+=\": \"),new Error(r+e)}},{key:\"fail\",value:function(e){var t=this.makeError(e),r=this.errorHandler;if(void 0===r)throw t;return r(t),this}},{key:\"write\",value:function(e){if(this.closed)return this.fail(\"cannot write after close; assign an onready handler.\");var t=!1;null===e?(t=!0,e=\"\"):\"object\"===_typeof2(e)&&(e=e.toString()),void 0!==this.carriedFromPrevious&&(e=\"\".concat(this.carriedFromPrevious).concat(e),this.carriedFromPrevious=void 0);var r=e.length,n=e.charCodeAt(r-1);!t&&(13===n||n>=55296&&n<=56319)&&(this.carriedFromPrevious=e[r-1],r--,e=e.slice(0,r));var o=this.stateTable;for(this.chunk=e,this.i=0;this.i=e.length)return-1;var r=e.charCodeAt(t);if(this.column++,r<55296){if(r>=32||9===r)return r;switch(r){case 10:return this.line++,this.column=0,this.positionAtNewLine=this.position,10;case 13:return 10===e.charCodeAt(t+1)&&(this.i=t+2),this.line++,this.column=0,this.positionAtNewLine=this.position,-2;default:return this.fail(\"disallowed character.\"),r}}if(r>56319)return r>=57344&&r<=65533||this.fail(\"disallowed character.\"),r;var n=65536+1024*(r-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,n>1114111&&this.fail(\"disallowed character.\"),n}},{key:\"getCode11\",value:function(){var e=this.chunk,t=this.i;if(this.prevI=t,this.i=t+1,t>=e.length)return-1;var r=e.charCodeAt(t);if(this.column++,r<55296){if(r>31&&r<127||r>159&&8232!==r||9===r)return r;switch(r){case 10:return this.line++,this.column=0,this.positionAtNewLine=this.position,10;case 13:var n=e.charCodeAt(t+1);10!==n&&133!==n||(this.i=t+2);case 133:case 8232:return this.line++,this.column=0,this.positionAtNewLine=this.position,-2;default:return this.fail(\"disallowed character.\"),r}}if(r>56319)return r>=57344&&r<=65533||this.fail(\"disallowed character.\"),r;var o=65536+1024*(r-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,o>1114111&&this.fail(\"disallowed character.\"),o}},{key:\"getCodeNorm\",value:function(){var e=this.getCode();return-2===e?10:e}},{key:\"unget\",value:function(){this.i=this.prevI,this.column--}},{key:\"captureTo\",value:function(e){for(var t=this.i,r=this.chunk;;){var n=this.getCode(),o=-2===n,i=o?10:n;if(-1===i||e.includes(i))return this.text+=r.slice(t,this.prevI),i;o&&(this.text+=\"\".concat(r.slice(t,this.prevI),\"\\n\"),t=this.i)}}},{key:\"captureToChar\",value:function(e){for(var t=this.i,r=this.chunk;;){var n=this.getCode();switch(n){case-2:this.text+=\"\".concat(r.slice(t,this.prevI),\"\\n\"),t=this.i,n=10;break;case-1:return this.text+=r.slice(t),!1}if(n===e)return this.text+=r.slice(t,this.prevI),!0}}},{key:\"captureNameChars\",value:function(){for(var e=this.chunk,t=this.i;;){var r=this.getCode();if(-1===r)return this.name+=e.slice(t),-1;if(!c(r))return this.name+=e.slice(t,this.prevI),-2===r?10:r}}},{key:\"skipSpaces\",value:function(){for(;;){var e=this.getCodeNorm();if(-1===e||!a(e))return e}}},{key:\"setXMLVersion\",value:function(e){this.currentXMLVersion=e,\"1.0\"===e?(this.isChar=s,this.getCode=this.getCode10):(this.isChar=h,this.getCode=this.getCode11)}},{key:\"sBegin\",value:function(){65279===this.chunk.charCodeAt(0)&&(this.i++,this.column++),this.state=1}},{key:\"sBeginWhitespace\",value:function(){var e=this.i,t=this.skipSpaces();switch(this.prevI!==e&&(this.xmlDeclPossible=!1),t){case 60:if(this.state=15,0!==this.text.length)throw new Error(\"no-empty text at start\");break;case-1:break;default:this.unget(),this.state=13,this.xmlDeclPossible=!1}}},{key:\"sDoctype\",value:function(){var e,t=this.captureTo(S);switch(t){case 62:null===(e=this.doctypeHandler)||void 0===e||e.call(this,this.text),this.text=\"\",this.state=13,this.doctype=!0;break;case-1:break;default:this.text+=String.fromCodePoint(t),91===t?this.state=4:k(t)&&(this.state=3,this.q=t)}}},{key:\"sDoctypeQuote\",value:function(){var e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.q=null,this.state=2)}},{key:\"sDTD\",value:function(){var e=this.captureTo(O);-1!==e&&(this.text+=String.fromCodePoint(e),93===e?this.state=2:60===e?this.state=6:k(e)&&(this.state=5,this.q=e))}},{key:\"sDTDQuoted\",value:function(){var e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.state=4,this.q=null)}},{key:\"sDTDOpenWaka\",value:function(){var e=this.getCodeNorm();switch(this.text+=String.fromCodePoint(e),e){case 33:this.state=7,this.openWakaBang=\"\";break;case _:this.state=11;break;default:this.state=4}}},{key:\"sDTDOpenWakaBang\",value:function(){var e=String.fromCodePoint(this.getCodeNorm()),t=this.openWakaBang+=e;this.text+=e,\"-\"!==t&&(this.state=\"--\"===t?8:4,this.openWakaBang=\"\")}},{key:\"sDTDComment\",value:function(){this.captureToChar(45)&&(this.text+=\"-\",this.state=9)}},{key:\"sDTDCommentEnding\",value:function(){var e=this.getCodeNorm();this.text+=String.fromCodePoint(e),this.state=45===e?10:8}},{key:\"sDTDCommentEnded\",value:function(){var e=this.getCodeNorm();this.text+=String.fromCodePoint(e),62===e?this.state=4:(this.fail(\"malformed comment.\"),this.state=8)}},{key:\"sDTDPI\",value:function(){this.captureToChar(_)&&(this.text+=\"?\",this.state=12)}},{key:\"sDTDPIEnding\",value:function(){var e=this.getCodeNorm();this.text+=String.fromCodePoint(e),62===e&&(this.state=4)}},{key:\"sText\",value:function(){0!==this.tags.length?this.handleTextInRoot():this.handleTextOutsideRoot()}},{key:\"sEntity\",value:function(){var e=this.i,t=this.chunk;e:for(;;)switch(this.getCode()){case-2:this.entity+=\"\".concat(t.slice(e,this.prevI),\"\\n\"),e=this.i;break;case 59:var r=this.entity+t.slice(e,this.prevI);if(this.state=this.entityReturnState,\"\"===r)return this.fail(\"empty entity name.\"),void(this.text+=\"&;\");this.text+=this.parseEntity(r),this.entity=\"\";break e;case-1:this.entity+=t.slice(e);break e}}},{key:\"sOpenWaka\",value:function(){var e=this.getCode();if(u(e))this.state=34,this.unget(),this.xmlDeclPossible=!1;else switch(e){case 47:this.state=43,this.xmlDeclPossible=!1;break;case 33:this.state=16,this.openWakaBang=\"\",this.xmlDeclPossible=!1;break;case _:this.state=23;break;default:this.fail(\"disallowed character in tag name\"),this.state=13,this.xmlDeclPossible=!1}}},{key:\"sOpenWakaBang\",value:function(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case\"[CDATA[\":this.sawRoot||this.reportedTextBeforeRoot||(this.fail(\"text data outside of root node.\"),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail(\"text data outside of root node.\"),this.reportedTextAfterRoot=!0),this.state=20,this.openWakaBang=\"\";break;case\"--\":this.state=17,this.openWakaBang=\"\";break;case\"DOCTYPE\":this.state=2,(this.doctype||this.sawRoot)&&this.fail(\"inappropriately located doctype declaration.\"),this.openWakaBang=\"\";break;default:this.openWakaBang.length>=7&&this.fail(\"incorrect syntax.\")}}},{key:\"sComment\",value:function(){this.captureToChar(45)&&(this.state=18)}},{key:\"sCommentEnding\",value:function(){var e,t=this.getCodeNorm();45===t?(this.state=19,null===(e=this.commentHandler)||void 0===e||e.call(this,this.text),this.text=\"\"):(this.text+=\"-\".concat(String.fromCodePoint(t)),this.state=17)}},{key:\"sCommentEnded\",value:function(){var e=this.getCodeNorm();62!==e?(this.fail(\"malformed comment.\"),this.text+=\"--\".concat(String.fromCodePoint(e)),this.state=17):this.state=13}},{key:\"sCData\",value:function(){this.captureToChar(93)&&(this.state=21)}},{key:\"sCDataEnding\",value:function(){var e=this.getCodeNorm();93===e?this.state=22:(this.text+=\"]\".concat(String.fromCodePoint(e)),this.state=20)}},{key:\"sCDataEnding2\",value:function(){var e,t=this.getCodeNorm();switch(t){case 62:null===(e=this.cdataHandler)||void 0===e||e.call(this,this.text),this.text=\"\",this.state=13;break;case 93:this.text+=\"]\";break;default:this.text+=\"]]\".concat(String.fromCodePoint(t)),this.state=20}}},{key:\"sPIFirstChar\",value:function(){var e=this.getCodeNorm();this.nameStartCheck(e)?(this.piTarget+=String.fromCodePoint(e),this.state=24):e===_||a(e)?(this.fail(\"processing instruction without a target.\"),this.state=e===_?26:25):(this.fail(\"disallowed character in processing instruction name.\"),this.piTarget+=String.fromCodePoint(e),this.state=24)}},{key:\"sPIRest\",value:function(){for(var e=this.chunk,t=this.i;;){var r=this.getCodeNorm();if(-1===r)return void(this.piTarget+=e.slice(t));if(!this.nameCheck(r)){this.piTarget+=e.slice(t,this.prevI);var n=r===_;n||a(r)?\"xml\"===this.piTarget?(this.xmlDeclPossible||this.fail(\"an XML declaration must be at the start of the document.\"),this.state=n?33:27):this.state=n?26:25:(this.fail(\"disallowed character in processing instruction name.\"),this.piTarget+=String.fromCodePoint(r));break}}}},{key:\"sPIBody\",value:function(){if(0===this.text.length){var e=this.getCodeNorm();e===_?this.state=26:a(e)||(this.text=String.fromCodePoint(e))}else this.captureToChar(_)&&(this.state=26)}},{key:\"sPIEnding\",value:function(){var e,t=this.getCodeNorm();if(62===t){var r=this.piTarget;\"xml\"===r.toLowerCase()&&this.fail(\"the XML declaration must appear at the start of the document.\"),null===(e=this.piHandler)||void 0===e||e.call(this,{target:r,body:this.text}),this.piTarget=this.text=\"\",this.state=13}else t===_?this.text+=\"?\":(this.text+=\"?\".concat(String.fromCodePoint(t)),this.state=25);this.xmlDeclPossible=!1}},{key:\"sXMLDeclNameStart\",value:function(){var e=this.skipSpaces();e!==_?-1!==e&&(this.state=28,this.name=String.fromCodePoint(e)):this.state=33}},{key:\"sXMLDeclName\",value:function(){var e=this.captureTo(E);if(e===_)return this.state=33,this.name+=this.text,this.text=\"\",void this.fail(\"XML declaration is incomplete.\");if(a(e)||e===w){if(this.name+=this.text,this.text=\"\",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail(\"did not expect any more name/value pairs.\");break;case 1:this.fail(\"expected the name \".concat(this.xmlDeclExpects[0],\".\"));break;default:this.fail(\"expected one of \".concat(this.xmlDeclExpects.join(\", \")))}this.state=e===w?30:29}}},{key:\"sXMLDeclEq\",value:function(){var e=this.getCodeNorm();if(e===_)return this.state=33,void this.fail(\"XML declaration is incomplete.\");a(e)||(e!==w&&this.fail(\"value required.\"),this.state=30)}},{key:\"sXMLDeclValueStart\",value:function(){var e=this.getCodeNorm();if(e===_)return this.state=33,void this.fail(\"XML declaration is incomplete.\");a(e)||(k(e)?this.q=e:(this.fail(\"value must be quoted.\"),this.q=32),this.state=31)}},{key:\"sXMLDeclValue\",value:function(){var e=this.captureTo([this.q,_]);if(e===_)return this.state=33,this.text=\"\",void this.fail(\"XML declaration is incomplete.\");if(-1!==e){var t=this.text;switch(this.text=\"\",this.name){case\"version\":this.xmlDeclExpects=[\"encoding\",\"standalone\"];var r=t;this.xmlDecl.version=r,/^1\\.[0-9]+$/.test(r)?this.opt.forceXMLVersion||this.setXMLVersion(r):this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");break;case\"encoding\":/^[A-Za-z][A-Za-z0-9._-]*$/.test(t)||this.fail(\"encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/.\"),this.xmlDeclExpects=[\"standalone\"],this.xmlDecl.encoding=t;break;case\"standalone\":\"yes\"!==t&&\"no\"!==t&&this.fail('standalone value must match \"yes\" or \"no\".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=t}this.name=\"\",this.state=32}}},{key:\"sXMLDeclSeparator\",value:function(){var e=this.getCodeNorm();e!==_?(a(e)||(this.fail(\"whitespace required.\"),this.unget()),this.state=27):this.state=33}},{key:\"sXMLDeclEnding\",value:function(){var e;62===this.getCodeNorm()?(\"xml\"!==this.piTarget?this.fail(\"processing instructions are not allowed before root.\"):\"version\"!==this.name&&this.xmlDeclExpects.includes(\"version\")&&this.fail(\"XML declaration must contain a version.\"),null===(e=this.xmldeclHandler)||void 0===e||e.call(this,this.xmlDecl),this.name=\"\",this.piTarget=this.text=\"\",this.state=13):this.fail(\"The character ? is disallowed anywhere in XML declarations.\"),this.xmlDeclPossible=!1}},{key:\"sOpenTag\",value:function(){var e,t=this.captureNameChars();if(-1!==t){var r=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name=\"\",this.xmlnsOpt&&(this.topNS=r.ns=Object.create(null)),null===(e=this.openTagStartHandler)||void 0===e||e.call(this,r),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail(\"documents may contain only one root.\"),t){case 62:this.openTag();break;case 47:this.state=35;break;default:a(t)||this.fail(\"disallowed character in tag name.\"),this.state=36}}}},{key:\"sOpenTagSlash\",value:function(){62===this.getCode()?this.openSelfClosingTag():(this.fail(\"forward-slash in opening tag not followed by >.\"),this.state=36)}},{key:\"sAttrib\",value:function(){var e=this.skipSpaces();-1!==e&&(u(e)?(this.unget(),this.state=37):62===e?this.openTag():47===e?this.state=35:this.fail(\"disallowed character in attribute name.\"))}},{key:\"sAttribName\",value:function(){var e=this.captureNameChars();e===w?this.state=39:a(e)?this.state=38:62===e?(this.fail(\"attribute without value.\"),this.pushAttrib(this.name,this.name),this.name=this.text=\"\",this.openTag()):-1!==e&&this.fail(\"disallowed character in attribute name.\")}},{key:\"sAttribNameSawWhite\",value:function(){var e=this.skipSpaces();switch(e){case-1:return;case w:this.state=39;break;default:this.fail(\"attribute without value.\"),this.text=\"\",this.name=\"\",62===e?this.openTag():u(e)?(this.unget(),this.state=37):(this.fail(\"disallowed character in attribute name.\"),this.state=36)}}},{key:\"sAttribValue\",value:function(){var e=this.getCodeNorm();k(e)?(this.q=e,this.state=40):a(e)||(this.fail(\"unquoted attribute value.\"),this.state=42,this.unget())}},{key:\"sAttribValueQuoted\",value:function(){for(var e=this.q,t=this.chunk,r=this.i;;)switch(this.getCode()){case e:return this.pushAttrib(this.name,this.text+t.slice(r,this.prevI)),this.name=this.text=\"\",this.q=null,void(this.state=41);case 38:return this.text+=t.slice(r,this.prevI),this.state=14,void(this.entityReturnState=40);case 10:case-2:case 9:this.text+=\"\".concat(t.slice(r,this.prevI),\" \"),r=this.i;break;case 60:return this.text+=t.slice(r,this.prevI),void this.fail(\"disallowed character.\");case-1:return void(this.text+=t.slice(r))}}},{key:\"sAttribValueClosed\",value:function(){var e=this.getCodeNorm();a(e)?this.state=36:62===e?this.openTag():47===e?this.state=35:u(e)?(this.fail(\"no whitespace between attributes.\"),this.unget(),this.state=37):this.fail(\"disallowed character in attribute name.\")}},{key:\"sAttribValueUnquoted\",value:function(){var e=this.captureTo(R);switch(e){case 38:this.state=14,this.entityReturnState=42;break;case 60:this.fail(\"disallowed character.\");break;case-1:break;default:this.text.includes(\"]]>\")&&this.fail('the string \"]]>\" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text=\"\",62===e?this.openTag():this.state=36}}},{key:\"sCloseTag\",value:function(){var e=this.captureNameChars();62===e?this.closeTag():a(e)?this.state=44:-1!==e&&this.fail(\"disallowed character in closing tag.\")}},{key:\"sCloseTagSawWhite\",value:function(){switch(this.skipSpaces()){case 62:this.closeTag();break;case-1:break;default:this.fail(\"disallowed character in closing tag.\")}}},{key:\"handleTextInRoot\",value:function(){var e=this.i,t=this.forbiddenState,r=this.chunk,n=this.textHandler;e:for(;;)switch(this.getCode()){case 60:if(this.state=15,void 0!==n){var o=this.text,i=r.slice(e,this.prevI);0!==o.length?(n(o+i),this.text=\"\"):0!==i.length&&n(i)}t=0;break e;case 38:this.state=14,this.entityReturnState=13,void 0!==n&&(this.text+=r.slice(e,this.prevI)),t=0;break e;case 93:switch(t){case 0:t=1;break;case 1:t=2;break;case 2:break;default:throw new Error(\"impossible state\")}break;case 62:2===t&&this.fail('the string \"]]>\" is disallowed in char data.'),t=0;break;case-2:void 0!==n&&(this.text+=\"\".concat(r.slice(e,this.prevI),\"\\n\")),e=this.i,t=0;break;case-1:void 0!==n&&(this.text+=r.slice(e));break e;default:t=0}this.forbiddenState=t}},{key:\"handleTextOutsideRoot\",value:function(){var e=this.i,t=this.chunk,r=this.textHandler,n=!1;e:for(;;){var o=this.getCode();switch(o){case 60:if(this.state=15,void 0!==r){var i=this.text,s=t.slice(e,this.prevI);0!==i.length?(r(i+s),this.text=\"\"):0!==s.length&&r(s)}break e;case 38:this.state=14,this.entityReturnState=13,void 0!==r&&(this.text+=t.slice(e,this.prevI)),n=!0;break e;case-2:void 0!==r&&(this.text+=\"\".concat(t.slice(e,this.prevI),\"\\n\")),e=this.i;break;case-1:void 0!==r&&(this.text+=t.slice(e));break e;default:a(o)||(n=!0)}}n&&(this.sawRoot||this.reportedTextBeforeRoot||(this.fail(\"text data outside of root node.\"),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail(\"text data outside of root node.\"),this.reportedTextAfterRoot=!0))}},{key:\"pushAttribNS\",value:function(e,t){var r,n=this.qname(e),o=n.prefix,i=n.local,a={name:e,prefix:o,local:i,value:t};if(this.attribList.push(a),null===(r=this.attributeHandler)||void 0===r||r.call(this,a),\"xmlns\"===o){var s=t.trim();\"1.0\"===this.currentXMLVersion&&\"\"===s&&this.fail(\"invalid attempt to undefine prefix in XML 1.0\"),this.topNS[i]=s,j(this,i,s)}else if(\"xmlns\"===e){var u=t.trim();this.topNS[\"\"]=u,j(this,\"\",u)}}},{key:\"pushAttribPlain\",value:function(e,t){var r,n={name:e,value:t};this.attribList.push(n),null===(r=this.attributeHandler)||void 0===r||r.call(this,n)}},{key:\"end\",value:function(){var e,t;this.sawRoot||this.fail(\"document must contain a root element.\");for(var r=this.tags;r.length>0;){var n=r.pop();this.fail(\"unclosed tag: \".concat(n.name))}0!==this.state&&13!==this.state&&this.fail(\"unexpected end.\");var o=this.text;return 0!==o.length&&(null===(e=this.textHandler)||void 0===e||e.call(this,o),this.text=\"\"),this._closed=!0,null===(t=this.endHandler)||void 0===t||t.call(this),this._init(),this}},{key:\"resolve\",value:function(e){var t,r,n=this.topNS[e];if(void 0!==n)return n;for(var o=this.tags,i=o.length-1;i>=0;i--)if(void 0!==(n=o[i].ns[e]))return n;return void 0!==(n=this.ns[e])?n:null===(r=(t=this.opt).resolvePrefix)||void 0===r?void 0:r.call(t,e)}},{key:\"qname\",value:function(e){var t=e.indexOf(\":\");if(-1===t)return{prefix:\"\",local:e};var r=e.slice(t+1),n=e.slice(0,t);return(\"\"===n||\"\"===r||r.includes(\":\"))&&this.fail(\"malformed name: \".concat(e,\".\")),{prefix:n,local:r}}},{key:\"processAttribsNS\",value:function(){var e,t=this.attribList,r=this.tag,n=this.qname(r.name),o=n.prefix,i=n.local;r.prefix=o,r.local=i;var a=r.uri=null!==(e=this.resolve(o))&&void 0!==e?e:\"\";if(\"\"!==o&&(\"xmlns\"===o&&this.fail('tags may not have \"xmlns\" as prefix.'),\"\"===a&&(this.fail(\"unbound namespace prefix: \".concat(JSON.stringify(o),\".\")),r.uri=o)),0!==t.length){var s,u=r.attributes,c=new Set,f=_createForOfIteratorHelper2(t);try{for(f.s();!(s=f.n()).done;){var l=s.value,h=l.name,d=l.prefix,p=l.local,y=void 0,m=void 0;\"\"===d?(y=\"xmlns\"===h?b:\"\",m=h):(void 0===(y=this.resolve(d))&&(this.fail(\"unbound namespace prefix: \".concat(JSON.stringify(d),\".\")),y=d),m=\"{\".concat(y,\"}\").concat(p)),c.has(m)&&this.fail(\"duplicate attribute: \".concat(m,\".\")),c.add(m),l.uri=y,u[h]=l}}catch(e){f.e(e)}finally{f.f()}this.attribList=[]}}},{key:\"processAttribsPlain\",value:function(){var e,t=this.attribList,r=this.tag.attributes,n=_createForOfIteratorHelper2(t);try{for(n.s();!(e=n.n()).done;){var o=e.value,i=o.name,a=o.value;void 0!==r[i]&&this.fail(\"duplicate attribute: \".concat(i,\".\")),r[i]=a}}catch(e){n.e(e)}finally{n.f()}this.attribList=[]}},{key:\"openTag\",value:function(){var e;this.processAttribs();var t=this.tags,r=this.tag;r.isSelfClosing=!1,null===(e=this.openTagHandler)||void 0===e||e.call(this,r),t.push(r),this.state=13,this.name=\"\"}},{key:\"openSelfClosingTag\",value:function(){var e,t,r;this.processAttribs();var n=this.tags,o=this.tag;o.isSelfClosing=!0,null===(e=this.openTagHandler)||void 0===e||e.call(this,o),null===(t=this.closeTagHandler)||void 0===t||t.call(this,o),null===(this.tag=null!==(r=n[n.length-1])&&void 0!==r?r:null)&&(this.closedRoot=!0),this.state=13,this.name=\"\"}},{key:\"closeTag\",value:function(){var e=this.tags,t=this.name;if(this.state=13,this.name=\"\",\"\"===t)return this.fail(\"weird empty close tag.\"),void(this.text+=\"\");for(var r=this.closeTagHandler,n=e.length;n-- >0;){var o=this.tag=e.pop();if(this.topNS=o.ns,null==r||r(o),o.name===t)break;this.fail(\"unexpected close tag.\")}0===n?this.closedRoot=!0:n<0&&(this.fail(\"unmatched closing tag: \".concat(t,\".\")),this.text+=\"\"))}},{key:\"parseEntity\",value:function(e){if(\"#\"!==e[0]){var t=this.ENTITIES[e];return void 0!==t?t:(this.fail(this.isName(e)?\"undefined entity.\":\"disallowed character in entity name.\"),\"&\".concat(e,\";\"))}var r=NaN;return\"x\"===e[1]&&/^#x[0-9a-f]+$/i.test(e)?r=parseInt(e.slice(2),16):/^#[0-9]+$/.test(e)&&(r=parseInt(e.slice(1),10)),this.isChar(r)?String.fromCodePoint(r):(this.fail(\"malformed character entity.\"),\"&\".concat(e,\";\"))}},{key:\"closed\",get:function(){return this._closed}},{key:\"position\",get:function(){return this.chunkPosition+this.i}},{key:\"columnIndex\",get:function(){return this.position-this.positionAtNewLine}}]),e}();r.SaxesParser=A},{\"xmlchars/xml/1.0/ed5\":482,\"xmlchars/xml/1.1/ed2\":483,\"xmlchars/xmlns/1.0/ed3\":484}],447:[function(e,t,r){(function(e){t.exports=\"function\"==typeof e?e:function(){var e=[].slice.apply(arguments);e.splice(1,0,0),setTimeout.apply(null,e)}}).call(this,e(\"timers\").setImmediate)},{timers:471}],448:[function(e,t,r){var n=e(\"safe-buffer\").Buffer;function o(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}o.prototype.update=function(e,t){\"string\"==typeof e&&(t=t||\"utf8\",e=n.from(e,t));for(var r=this._block,o=this._blockSize,i=e.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,o=(r-n)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var i=this._hash();return e?i.toString(e):i},o.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")},t.exports=o},{\"safe-buffer\":445}],449:[function(e,t,r){(r=t.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+\" is not supported (we accept pull requests)\");return new t}).sha=e(\"./sha\"),r.sha1=e(\"./sha1\"),r.sha224=e(\"./sha224\"),r.sha256=e(\"./sha256\"),r.sha384=e(\"./sha384\"),r.sha512=e(\"./sha512\")},{\"./sha\":450,\"./sha1\":451,\"./sha224\":452,\"./sha256\":453,\"./sha384\":454,\"./sha512\":455}],450:[function(e,t,r){var n=e(\"inherits\"),o=e(\"./hash\"),i=e(\"safe-buffer\").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e){return e<<30|e>>>2}function f(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,o),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,l=0;l<16;++l)r[l]=e.readInt32BE(4*l);for(;l<80;++l)r[l]=r[l-3]^r[l-8]^r[l-14]^r[l-16];for(var h=0;h<80;++h){var d=~~(h/20),p=0|((t=n)<<5|t>>>27)+f(d,o,i,s)+u+r[h]+a[d];u=s,s=i,i=c(o),o=n,n=p}this._a=n+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=i.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=u},{\"./hash\":448,inherits:341,\"safe-buffer\":445}],451:[function(e,t,r){var n=e(\"inherits\"),o=e(\"./hash\"),i=e(\"safe-buffer\").Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e){return e<<5|e>>>27}function f(e){return e<<30|e>>>2}function l(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,o),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=(t=r[h-3]^r[h-8]^r[h-14]^r[h-16])<<1|t>>>31;for(var d=0;d<80;++d){var p=~~(d/20),y=c(n)+l(p,o,i,s)+u+r[d]+a[p]|0;u=s,s=i,i=f(o),o=n,n=y}this._a=n+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=i.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=u},{\"./hash\":448,inherits:341,\"safe-buffer\":445}],452:[function(e,t,r){var n=e(\"inherits\"),o=e(\"./sha256\"),i=e(\"./hash\"),a=e(\"safe-buffer\").Buffer,s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}n(u,o),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},t.exports=u},{\"./hash\":448,\"./sha256\":453,inherits:341,\"safe-buffer\":445}],453:[function(e,t,r){var n=e(\"inherits\"),o=e(\"./hash\"),i=e(\"safe-buffer\").Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e,t,r){return r^e&(t^r)}function f(e,t,r){return e&t|r&(e|t)}function l(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function h(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function d(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(u,o),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,y=0|this._g,m=0|this._h,b=0;b<16;++b)r[b]=e.readInt32BE(4*b);for(;b<64;++b)r[b]=0|(((t=r[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[b-7]+d(r[b-15])+r[b-16];for(var v=0;v<64;++v){var g=m+h(u)+c(u,p,y)+a[v]+r[v]|0,w=l(n)+f(n,o,i)|0;m=y,y=p,p=u,u=s+g|0,s=i,i=o,o=n,n=g+w|0}this._a=n+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=y+this._g|0,this._h=m+this._h|0},u.prototype._hash=function(){var e=i.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},t.exports=u},{\"./hash\":448,inherits:341,\"safe-buffer\":445}],454:[function(e,t,r){var n=e(\"inherits\"),o=e(\"./sha512\"),i=e(\"./hash\"),a=e(\"safe-buffer\").Buffer,s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}n(u,o),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},t.exports=u},{\"./hash\":448,\"./sha512\":455,inherits:341,\"safe-buffer\":445}],455:[function(e,t,r){var n=e(\"inherits\"),o=e(\"./hash\"),i=e(\"safe-buffer\").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}function c(e,t,r){return r^e&(t^r)}function f(e,t,r){return e&t|r&(e|t)}function l(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function h(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0>>0?1:0}n(u,o),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,o=0|this._ch,i=0|this._dh,s=0|this._eh,u=0|this._fh,v=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,x=0|this._dl,S=0|this._el,O=0|this._fl,E=0|this._gl,R=0|this._hl,j=0;j<32;j+=2)t[j]=e.readInt32BE(4*j),t[j+1]=e.readInt32BE(4*j+4);for(;j<160;j+=2){var T=t[j-30],C=t[j-30+1],P=d(T,C),A=p(C,T),M=y(T=t[j-4],C=t[j-4+1]),I=m(C,T),N=t[j-14],D=t[j-14+1],B=t[j-32],F=t[j-32+1],L=A+D|0,z=P+N+b(L,A)|0;z=(z=z+M+b(L=L+I|0,I)|0)+B+b(L=L+F|0,F)|0,t[j]=z,t[j+1]=L}for(var U=0;U<160;U+=2){z=t[U],L=t[U+1];var H=f(r,n,o),V=f(w,_,k),W=l(r,w),q=l(w,r),$=h(s,S),X=h(S,s),K=a[U],Y=a[U+1],Z=c(s,u,v),G=c(S,O,E),J=R+X|0,Q=g+$+b(J,R)|0;Q=(Q=(Q=Q+Z+b(J=J+G|0,G)|0)+K+b(J=J+Y|0,Y)|0)+z+b(J=J+L|0,L)|0;var ee=q+V|0,te=W+H+b(ee,q)|0;g=v,R=E,v=u,E=O,u=s,O=S,s=i+Q+b(S=x+J|0,x)|0,i=o,x=k,o=n,k=_,n=r,_=w,r=Q+te+b(w=J+ee|0,J)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+x|0,this._el=this._el+S|0,this._fl=this._fl+O|0,this._gl=this._gl+E|0,this._hl=this._hl+R|0,this._ah=this._ah+r+b(this._al,w)|0,this._bh=this._bh+n+b(this._bl,_)|0,this._ch=this._ch+o+b(this._cl,k)|0,this._dh=this._dh+i+b(this._dl,x)|0,this._eh=this._eh+s+b(this._el,S)|0,this._fh=this._fh+u+b(this._fl,O)|0,this._gh=this._gh+v+b(this._gl,E)|0,this._hh=this._hh+g+b(this._hl,R)|0},u.prototype._hash=function(){var e=i.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},t.exports=u},{\"./hash\":448,inherits:341,\"safe-buffer\":445}],456:[function(e,t,r){t.exports=o;var n=e(\"events\").EventEmitter;function o(){n.call(this)}e(\"inherits\")(o,n),o.Readable=e(\"readable-stream/readable.js\"),o.Writable=e(\"readable-stream/writable.js\"),o.Duplex=e(\"readable-stream/duplex.js\"),o.Transform=e(\"readable-stream/transform.js\"),o.PassThrough=e(\"readable-stream/passthrough.js\"),o.Stream=o,o.prototype.pipe=function(e,t){var r=this;function o(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function i(){r.readable&&r.resume&&r.resume()}r.on(\"data\",o),e.on(\"drain\",i),e._isStdio||t&&!1===t.end||(r.on(\"end\",s),r.on(\"close\",u));var a=!1;function s(){a||(a=!0,e.end())}function u(){a||(a=!0,\"function\"==typeof e.destroy&&e.destroy())}function c(e){if(f(),0===n.listenerCount(this,\"error\"))throw e}function f(){r.removeListener(\"data\",o),e.removeListener(\"drain\",i),r.removeListener(\"end\",s),r.removeListener(\"close\",u),r.removeListener(\"error\",c),e.removeListener(\"error\",c),r.removeListener(\"end\",f),r.removeListener(\"close\",f),e.removeListener(\"close\",f)}return r.on(\"error\",c),e.on(\"error\",c),r.on(\"end\",f),r.on(\"close\",f),e.on(\"close\",f),e.emit(\"pipe\",r),e}},{events:299,inherits:341,\"readable-stream/duplex.js\":457,\"readable-stream/passthrough.js\":466,\"readable-stream/readable.js\":467,\"readable-stream/transform.js\":468,\"readable-stream/writable.js\":469}],457:[function(e,t,r){t.exports=e(\"./lib/_stream_duplex.js\")},{\"./lib/_stream_duplex.js\":458}],458:[function(e,t,r){var n=e(\"process-nextick-args\"),o=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=l;var i=e(\"core-util-is\");i.inherits=e(\"inherits\");var a=e(\"./_stream_readable\"),s=e(\"./_stream_writable\");i.inherits(l,a);for(var u=o(s.prototype),c=0;c0?(\"string\"==typeof t||a.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),n?a.endEmitted?e.emit(\"error\",new Error(\"stream.unshift() after end event\")):_(e,a,t,!0):a.ended?e.emit(\"error\",new Error(\"stream.push() after EOF\")):(a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||0!==t.length?_(e,a,t,!1):O(e,a)):_(e,a,t,!1))):n||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function x(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(d(\"emitReadable\",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(S,e):S(e))}function S(e){d(\"emit readable\"),e.emit(\"readable\"),T(e)}function O(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(E,e,t))}function E(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(\"\"):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++n}return t.length-=n,o}(e,t):function(e,t){var r=c.allocUnsafe(e),n=t.head,o=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(i.copy(r,r.length-e,0,a),0===(e-=a)){a===i.length?(++o,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++o}return t.length-=o,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function P(e){var t=e._readableState;if(t.length>0)throw new Error('\"endReadable()\" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(A,t,e))}function A(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit(\"end\"))}function M(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return d(\"read: emitReadable\",t.length,t.ended),0===t.length&&t.ended?P(this):x(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&P(this),null;var n,o=t.needReadable;return d(\"need readable\",o),(0===t.length||t.length-e0?C(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&P(this)),null!==n&&this.emit(\"data\",n),n},g.prototype._read=function(e){this.emit(\"error\",new Error(\"_read() is not implemented\"))},g.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,d(\"pipe count=%d opts=%j\",i.pipesCount,t);var u=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?f:g;function c(t,r){d(\"onunpipe\"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,d(\"cleanup\"),e.removeListener(\"close\",b),e.removeListener(\"finish\",v),e.removeListener(\"drain\",l),e.removeListener(\"error\",m),e.removeListener(\"unpipe\",c),n.removeListener(\"end\",f),n.removeListener(\"end\",g),n.removeListener(\"data\",y),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function f(){d(\"onend\"),e.end()}i.endEmitted?o.nextTick(u):n.once(\"end\",u),e.on(\"unpipe\",c);var l=function(e){return function(){var t=e._readableState;d(\"pipeOnDrain\",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,\"data\")&&(t.flowing=!0,T(e))}}(n);e.on(\"drain\",l);var h=!1;var p=!1;function y(t){d(\"ondata\"),p=!1,!1!==e.write(t)||p||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==M(i.pipes,e))&&!h&&(d(\"false write response, pause\",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function m(t){d(\"onerror\",t),g(),e.removeListener(\"error\",m),0===s(e,\"error\")&&e.emit(\"error\",t)}function b(){e.removeListener(\"finish\",v),g()}function v(){d(\"onfinish\"),e.removeListener(\"close\",b),g()}function g(){d(\"unpipe\"),n.unpipe(e)}return n.on(\"data\",y),function(e,t,r){if(\"function\"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,\"error\",m),e.once(\"close\",b),e.once(\"finish\",v),e.emit(\"pipe\",n),i.flowing||(d(\"pipe resume\"),n.resume()),e},g.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit(\"unpipe\",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i-1?o:i.nextTick;v.WritableState=b;var c=e(\"core-util-is\");c.inherits=e(\"inherits\");var f={deprecate:e(\"util-deprecate\")},l=e(\"./internal/streams/stream\"),h=e(\"safe-buffer\").Buffer,d=n.Uint8Array||function(){};var p,y=e(\"./internal/streams/destroy\");function m(){}function b(t,r){s=s||e(\"./_stream_duplex\"),t=t||{};var n=r instanceof s;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var o=t.highWaterMark,c=t.writableHighWaterMark,f=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:n&&(c||0===c)?c:f,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===t.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,o=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,o){--t.pendingcb,r?(i.nextTick(o,n),i.nextTick(S,e,t),e._writableState.errorEmitted=!0,e.emit(\"error\",n)):(o(n),e._writableState.errorEmitted=!0,e.emit(\"error\",n),S(e,t))}(e,r,n,t,o);else{var a=k(r);a||r.corked||r.bufferProcessing||!r.bufferedRequest||_(e,r),n?u(w,e,r,a,o):w(e,r,a,o)}}(r,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function v(t){if(s=s||e(\"./_stream_duplex\"),!(p.call(v,this)||this instanceof s))return new v(t);this._writableState=new b(t,this),this.writable=!0,t&&(\"function\"==typeof t.write&&(this._write=t.write),\"function\"==typeof t.writev&&(this._writev=t.writev),\"function\"==typeof t.destroy&&(this._destroy=t.destroy),\"function\"==typeof t.final&&(this._final=t.final)),l.call(this)}function g(e,t,r,n,o,i,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit(\"drain\"))}(e,t),t.pendingcb--,n(),S(e,t)}function _(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,o=new Array(n),i=t.corkedRequestsFree;i.entry=r;for(var s=0,u=!0;r;)o[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;o.allBuffers=u,g(e,t,!0,t.length,o,\"\",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,f=r.encoding,l=r.callback;if(g(e,t,!1,t.objectMode?1:c.length,c,f,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function k(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function x(e,t){e._final((function(r){t.pendingcb--,r&&e.emit(\"error\",r),t.prefinished=!0,e.emit(\"prefinish\"),S(e,t)}))}function S(e,t){var r=k(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||(\"function\"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(x,e,t)):(t.prefinished=!0,e.emit(\"prefinish\")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit(\"finish\"))),r}c.inherits(v,l),b.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(b.prototype,\"buffer\",{get:f.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(e){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!p.call(this,e)||this===v&&(e&&e._writableState instanceof b)}})):p=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit(\"error\",new Error(\"Cannot pipe, not readable\"))},v.prototype.write=function(e,t,r){var n,o=this._writableState,a=!1,s=!o.objectMode&&(n=e,h.isBuffer(n)||n instanceof d);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),\"function\"==typeof t&&(r=t,t=null),s?t=\"buffer\":t||(t=o.defaultEncoding),\"function\"!=typeof r&&(r=m),o.ended?function(e,t){var r=new Error(\"write after end\");e.emit(\"error\",r),i.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var o=!0,a=!1;return null===r?a=new TypeError(\"May not write null values to stream\"):\"string\"==typeof r||void 0===r||t.objectMode||(a=new TypeError(\"Invalid non-string/buffer chunk\")),a&&(e.emit(\"error\",a),i.nextTick(n,a),o=!1),o}(this,o,e,r))&&(o.pendingcb++,a=function(e,t,r,n,o,i){if(!r){var a=function(e,t,r){e.objectMode||!1===e.decodeStrings||\"string\"!=typeof t||(t=h.from(t,r));return t}(t,n,o);n!==a&&(r=!0,o=\"buffer\",n=a)}var s=t.objectMode?1:n.length;t.length+=s;var u=t.length-1))throw new TypeError(\"Unknown encoding: \"+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(v.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(e,t,r){r(new Error(\"_write() is not implemented\"))},v.prototype._writev=null,v.prototype.end=function(e,t,r){var n=this._writableState;\"function\"==typeof e?(r=e,e=null,t=null):\"function\"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,S(e,t),r&&(t.finished?i.nextTick(r):e.once(\"finish\",r));t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(v.prototype,\"destroyed\",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=y.destroy,v.prototype._undestroy=y.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"timers\").setImmediate)},{\"./_stream_duplex\":458,\"./internal/streams/destroy\":464,\"./internal/streams/stream\":465,_process:419,\"core-util-is\":263,inherits:341,\"process-nextick-args\":418,\"safe-buffer\":445,timers:471,\"util-deprecate\":472}],463:[function(e,t,r){var n=e(\"safe-buffer\").Buffer,o=e(\"util\");t.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return\"\";for(var t=this.head,r=\"\"+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var t,r,o,i=n.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,r=i,o=s,t.copy(r,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(t.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+\" \"+e})},{\"safe-buffer\":445,util:158}],464:[function(e,t,r){var n=e(\"process-nextick-args\");function o(e,t){e.emit(\"error\",t)}t.exports={destroy:function(e,t){var r=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||n.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(n.nextTick(o,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{\"process-nextick-args\":418}],465:[function(e,t,r){arguments[4][441][0].apply(r,arguments)},{dup:441,events:299}],466:[function(e,t,r){t.exports=e(\"./readable\").PassThrough},{\"./readable\":467}],467:[function(e,t,r){(r=t.exports=e(\"./lib/_stream_readable.js\")).Stream=r,r.Readable=r,r.Writable=e(\"./lib/_stream_writable.js\"),r.Duplex=e(\"./lib/_stream_duplex.js\"),r.Transform=e(\"./lib/_stream_transform.js\"),r.PassThrough=e(\"./lib/_stream_passthrough.js\")},{\"./lib/_stream_duplex.js\":458,\"./lib/_stream_passthrough.js\":459,\"./lib/_stream_readable.js\":460,\"./lib/_stream_transform.js\":461,\"./lib/_stream_writable.js\":462}],468:[function(e,t,r){t.exports=e(\"./readable\").Transform},{\"./readable\":467}],469:[function(e,t,r){t.exports=e(\"./lib/_stream_writable.js\")},{\"./lib/_stream_writable.js\":462}],470:[function(e,t,r){var n=e(\"safe-buffer\").Buffer,o=n.isEncoding||function(e){switch((e=\"\"+e)&&e.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return\"utf8\";for(var t;;)switch(e){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return e;default:if(t)return;e=(\"\"+e).toLowerCase(),t=!0}}(e);if(\"string\"!=typeof t&&(n.isEncoding===o||!o(e)))throw new Error(\"Unknown encoding: \"+e);return t||e}(e),this.encoding){case\"utf16le\":this.text=u,this.end=c,t=4;break;case\"utf8\":this.fillLast=s,t=4;break;case\"base64\":this.text=f,this.end=l,t=3;break;default:return this.write=h,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,\"\\ufffd\";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,\"\\ufffd\";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,\"\\ufffd\"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var r=e.toString(\"utf16le\",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString(\"utf16le\",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString(\"utf16le\",0,r)}return t}function f(e,t){var r=(e.length-t)%3;return 0===r?e.toString(\"base64\",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString(\"base64\",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):\"\";return this.lastNeed?t+this.lastChar.toString(\"base64\",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function d(e){return e&&e.length?this.write(e):\"\"}r.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return\"\";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return o>0&&(e.lastNeed=o-1),o;if(--n=0)return o>0&&(e.lastNeed=o-2),o;if(--n=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString(\"utf8\",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString(\"utf8\",t,n)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},{\"safe-buffer\":445}],471:[function(e,t,r){(function(t,n){var o=e(\"process/browser.js\").nextTick,i=Function.prototype.apply,a=Array.prototype.slice,s={},u=0;function c(e,t){this._id=e,this._clearFn=t}r.setTimeout=function(){return new c(i.call(setTimeout,window,arguments),clearTimeout)},r.setInterval=function(){return new c(i.call(setInterval,window,arguments),clearInterval)},r.clearTimeout=r.clearInterval=function(e){e.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},r.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},r.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},r._unrefActive=r.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r.setImmediate=\"function\"==typeof t?t:function(e){var t=u++,n=!(arguments.length<2)&&a.call(arguments,1);return s[t]=!0,o((function(){s[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))})),t},r.clearImmediate=\"function\"==typeof n?n:function(e){delete s[e]}}).call(this,e(\"timers\").setImmediate,e(\"timers\").clearImmediate)},{\"process/browser.js\":419,timers:471}],472:[function(e,t,r){(function(e){function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var r=e.localStorage[t];return null!=r&&\"true\"===String(r).toLowerCase()}t.exports=function(e,t){if(r(\"noDeprecation\"))return e;var n=!1;return function(){if(!n){if(r(\"throwDeprecation\"))throw new Error(t);r(\"traceDeprecation\")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],473:[function(e,t,r){\"function\"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],474:[function(e,t,r){t.exports=function(e){return e&&\"object\"===_typeof2(e)&&\"function\"==typeof e.copy&&\"function\"==typeof e.fill&&\"function\"==typeof e.readUInt8}},{}],475:[function(e,t,r){(function(t,n){var o=/%[sdj%]/g;r.format=function(e){if(!b(e)){for(var t=[],r=0;r=i)return e;switch(e){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(e){return\"[Circular]\"}default:return e}})),u=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),p(t)?n.showHidden=t:t&&r._extend(n,t),v(n.showHidden)&&(n.showHidden=!1),v(n.depth)&&(n.depth=2),v(n.colors)&&(n.colors=!1),v(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=u),f(n,e,n.depth)}function u(e,t){var r=s.styles[t];return r?\"\\x1b[\"+s.colors[r][0]+\"m\"+e+\"\\x1b[\"+s.colors[r][1]+\"m\":e}function c(e,t){return e}function f(e,t,n){if(e.customInspect&&t&&x(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var o=t.inspect(n,e);return b(o)||(o=f(e,o,n)),o}var i=function(e,t){if(v(t))return e.stylize(\"undefined\",\"undefined\");if(b(t)){var r=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(r,\"string\")}if(m(t))return e.stylize(\"\"+t,\"number\");if(p(t))return e.stylize(\"\"+t,\"boolean\");if(y(t))return e.stylize(\"null\",\"null\")}(e,t);if(i)return i;var a=Object.keys(t),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),k(t)&&(a.indexOf(\"message\")>=0||a.indexOf(\"description\")>=0))return l(t);if(0===a.length){if(x(t)){var u=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+u+\"]\",\"special\")}if(g(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(_(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(k(t))return l(t)}var c,w=\"\",S=!1,O=[\"{\",\"}\"];(d(t)&&(S=!0,O=[\"[\",\"]\"]),x(t))&&(w=\" [Function\"+(t.name?\": \"+t.name:\"\")+\"]\");return g(t)&&(w=\" \"+RegExp.prototype.toString.call(t)),_(t)&&(w=\" \"+Date.prototype.toUTCString.call(t)),k(t)&&(w=\" \"+l(t)),0!==a.length||S&&0!=t.length?n<0?g(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\"):(e.seen.push(t),c=S?function(e,t,r,n,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1}),0)>60)return r[0]+(\"\"===t?\"\":t+\"\\n \")+\" \"+e.join(\",\\n \")+\" \"+r[1];return r[0]+t+\" \"+e.join(\", \")+\" \"+r[1]}(c,w,O)):O[0]+w+O[1]}function l(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function h(e,t,r,n,o,i){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=u.set?e.stylize(\"[Getter/Setter]\",\"special\"):e.stylize(\"[Getter]\",\"special\"):u.set&&(s=e.stylize(\"[Setter]\",\"special\")),j(n,o)||(a=\"[\"+o+\"]\"),s||(e.seen.indexOf(u.value)<0?(s=y(r)?f(e,u.value,null):f(e,u.value,r-1)).indexOf(\"\\n\")>-1&&(s=i?s.split(\"\\n\").map((function(e){return\" \"+e})).join(\"\\n\").substr(2):\"\\n\"+s.split(\"\\n\").map((function(e){return\" \"+e})).join(\"\\n\")):s=e.stylize(\"[Circular]\",\"special\")),v(a)){if(i&&o.match(/^\\d+$/))return s;(a=JSON.stringify(\"\"+o)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,\"name\")):(a=a.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),a=e.stylize(a,\"string\"))}return a+\": \"+s}function d(e){return Array.isArray(e)}function p(e){return\"boolean\"==typeof e}function y(e){return null===e}function m(e){return\"number\"==typeof e}function b(e){return\"string\"==typeof e}function v(e){return void 0===e}function g(e){return w(e)&&\"[object RegExp]\"===S(e)}function w(e){return\"object\"===_typeof2(e)&&null!==e}function _(e){return w(e)&&\"[object Date]\"===S(e)}function k(e){return w(e)&&(\"[object Error]\"===S(e)||e instanceof Error)}function x(e){return\"function\"==typeof e}function S(e){return Object.prototype.toString.call(e)}function O(e){return e<10?\"0\"+e.toString(10):e.toString(10)}r.debuglog=function(e){if(v(i)&&(i=t.env.NODE_DEBUG||\"\"),e=e.toUpperCase(),!a[e])if(new RegExp(\"\\\\b\"+e+\"\\\\b\",\"i\").test(i)){var n=t.pid;a[e]=function(){var t=r.format.apply(r,arguments);console.error(\"%s %d: %s\",e,n,t)}}else a[e]=function(){};return a[e]},r.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},r.isArray=d,r.isBoolean=p,r.isNull=y,r.isNullOrUndefined=function(e){return null==e},r.isNumber=m,r.isString=b,r.isSymbol=function(e){return\"symbol\"===_typeof2(e)},r.isUndefined=v,r.isRegExp=g,r.isObject=w,r.isDate=_,r.isError=k,r.isFunction=x,r.isPrimitive=function(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"===_typeof2(e)||void 0===e},r.isBuffer=e(\"./support/isBuffer\");var E=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function R(){var e=new Date,t=[O(e.getHours()),O(e.getMinutes()),O(e.getSeconds())].join(\":\");return[e.getDate(),E[e.getMonth()],t].join(\" \")}function j(e,t){return Object.prototype.hasOwnProperty.call(e,t)}r.log=function(){console.log(\"%s - %s\",R(),r.format.apply(r,arguments))},r.inherits=e(\"inherits\"),r._extend=function(e,t){if(!t||!w(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./support/isBuffer\":474,_process:419,inherits:473}],476:[function(e,t,r){var n=e(\"./v1\"),o=e(\"./v4\"),i=o;i.v1=n,i.v4=o,t.exports=i},{\"./v1\":479,\"./v4\":480}],477:[function(e,t,r){for(var n=[],o=0;o<256;++o)n[o]=(o+256).toString(16).substr(1);t.exports=function(e,t){var r=t||0,o=n;return[o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],\"-\",o[e[r++]],o[e[r++]],\"-\",o[e[r++]],o[e[r++]],\"-\",o[e[r++]],o[e[r++]],\"-\",o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]]].join(\"\")}},{}],478:[function(e,t,r){var n=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var o=new Uint8Array(16);t.exports=function(){return n(o),o}}else{var i=new Array(16);t.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),i[t]=e>>>((3&t)<<3)&255;return i}}},{}],479:[function(e,t,r){var n,o,i=e(\"./lib/rng\"),a=e(\"./lib/bytesToUuid\"),s=0,u=0;t.exports=function(e,t,r){var c=t&&r||0,f=t||[],l=(e=e||{}).node||n,h=void 0!==e.clockseq?e.clockseq:o;if(null==l||null==h){var d=i();null==l&&(l=n=[1|d[0],d[1],d[2],d[3],d[4],d[5]]),null==h&&(h=o=16383&(d[6]<<8|d[7]))}var p=void 0!==e.msecs?e.msecs:(new Date).getTime(),y=void 0!==e.nsecs?e.nsecs:u+1,m=p-s+(y-u)/1e4;if(m<0&&void 0===e.clockseq&&(h=h+1&16383),(m<0||p>s)&&void 0===e.nsecs&&(y=0),y>=1e4)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");s=p,u=y,o=h;var b=(1e4*(268435455&(p+=122192928e5))+y)%4294967296;f[c++]=b>>>24&255,f[c++]=b>>>16&255,f[c++]=b>>>8&255,f[c++]=255&b;var v=p/4294967296*1e4&268435455;f[c++]=v>>>8&255,f[c++]=255&v,f[c++]=v>>>24&15|16,f[c++]=v>>>16&255,f[c++]=h>>>8|128,f[c++]=255&h;for(var g=0;g<6;++g)f[c+g]=l[g];return t||a(f)}},{\"./lib/bytesToUuid\":477,\"./lib/rng\":478}],480:[function(e,t,r){var n=e(\"./lib/rng\"),o=e(\"./lib/bytesToUuid\");t.exports=function(e,t,r){var i=t&&r||0;\"string\"==typeof e&&(t=\"binary\"===e?new Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||n)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[i+s]=a[s];return t||o(a)}},{\"./lib/bytesToUuid\":477,\"./lib/rng\":478}],481:[function(require,module,exports){var indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0;r=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}r.S_LIST=[32,10,13,9],r.isChar=function(e){return e>=32&&e<=55295||10===e||13===e||9===e||e>=57344&&e<=65533||e>=65536&&e<=1114111},r.isS=function(e){return 32===e||10===e||13===e||9===e},r.isNameStartChar=n,r.isNameChar=function(e){return n(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}],483:[function(e,t,r){\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(r,\"__esModule\",{value:!0}),r.CHAR=\"\\x01-\\ud7ff\\ue000-\\ufffd\\ud800\\udc00-\\udbff\\udfff\",r.RESTRICTED_CHAR=\"\\x01-\\b\\v\\f\\x0e-\\x1f\\x7f-\\x84\\x86-\\x9f\",r.S=\" \\t\\r\\n\",r.NAME_START_CHAR=\":A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NAME_CHAR=\"-\"+r.NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.CHAR_RE=new RegExp(\"^[\"+r.CHAR+\"]$\",\"u\"),r.RESTRICTED_CHAR_RE=new RegExp(\"^[\"+r.RESTRICTED_CHAR+\"]$\",\"u\"),r.S_RE=new RegExp(\"^[\"+r.S+\"]+$\",\"u\"),r.NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"]$\",\"u\"),r.NAME_CHAR_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]$\",\"u\"),r.NAME_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"][\"+r.NAME_CHAR+\"]*$\",\"u\"),r.NMTOKEN_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]+$\",\"u\");function n(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}r.S_LIST=[32,10,13,9],r.isChar=function(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},r.isRestrictedChar=function(e){return e>=1&&e<=8||11===e||12===e||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159},r.isCharAndNotRestricted=function(e){return 9===e||10===e||13===e||e>31&&e<127||133===e||e>159&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},r.isS=function(e){return 32===e||10===e||13===e||9===e},r.isNameStartChar=n,r.isNameChar=function(e){return n(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}],484:[function(e,t,r){function n(e){return e>=65&&e<=90||95===e||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(r,\"__esModule\",{value:!0}),r.NC_NAME_START_CHAR=\"A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NC_NAME_CHAR=\"-\"+r.NC_NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.NC_NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NC_NAME_START_CHAR+\"]$\",\"u\"),r.NC_NAME_CHAR_RE=new RegExp(\"^[\"+r.NC_NAME_CHAR+\"]$\",\"u\"),r.NC_NAME_RE=new RegExp(\"^[\"+r.NC_NAME_START_CHAR+\"][\"+r.NC_NAME_CHAR+\"]*$\",\"u\"),r.isNCNameStartChar=n,r.isNCNameChar=function(e){return n(e)||45===e||46===e||e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}]},{},[15])(15)}));","'use strict'\n\nvar formatter = require('format')\n\nvar fault = create(Error)\n\nmodule.exports = fault\n\nfault.eval = create(EvalError)\nfault.range = create(RangeError)\nfault.reference = create(ReferenceError)\nfault.syntax = create(SyntaxError)\nfault.type = create(TypeError)\nfault.uri = create(URIError)\n\nfault.create = create\n\n// Create a new `EConstructor`, with the formatted `format` as a first argument.\nfunction create(EConstructor) {\n FormattedError.displayName = EConstructor.displayName || EConstructor.name\n\n return FormattedError\n\n function FormattedError(format) {\n if (format) {\n format = formatter.apply(null, arguments)\n }\n\n return new EConstructor(format)\n }\n}\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\n","//\n// format - printf-like string formatting for JavaScript\n// github.com/samsonjs/format\n// @_sjs\n//\n// Copyright 2010 - 2013 Sami Samhuri \n//\n// MIT License\n// http://sjs.mit-license.org\n//\n\n;(function() {\n\n //// Export the API\n var namespace;\n\n // CommonJS / Node module\n if (typeof module !== 'undefined') {\n namespace = module.exports = format;\n }\n\n // Browsers and other environments\n else {\n // Get the global object. Works in ES3, ES5, and ES5 strict mode.\n namespace = (function(){ return this || (1,eval)('this') }());\n }\n\n namespace.format = format;\n namespace.vsprintf = vsprintf;\n\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n namespace.printf = printf;\n }\n\n function printf(/* ... */) {\n console.log(format.apply(null, arguments));\n }\n\n function vsprintf(fmt, replacements) {\n return format.apply(null, [fmt].concat(replacements));\n }\n\n function format(fmt) {\n var argIndex = 1 // skip initial format argument\n , args = [].slice.call(arguments)\n , i = 0\n , n = fmt.length\n , result = ''\n , c\n , escaped = false\n , arg\n , tmp\n , leadingZero = false\n , precision\n , nextArg = function() { return args[argIndex++]; }\n , slurpNumber = function() {\n var digits = '';\n while (/\\d/.test(fmt[i])) {\n digits += fmt[i++];\n c = fmt[i];\n }\n return digits.length > 0 ? parseInt(digits) : null;\n }\n ;\n for (; i < n; ++i) {\n c = fmt[i];\n if (escaped) {\n escaped = false;\n if (c == '.') {\n leadingZero = false;\n c = fmt[++i];\n }\n else if (c == '0' && fmt[i + 1] == '.') {\n leadingZero = true;\n i += 2;\n c = fmt[i];\n }\n else {\n leadingZero = true;\n }\n precision = slurpNumber();\n switch (c) {\n case 'b': // number in binary\n result += parseInt(nextArg(), 10).toString(2);\n break;\n case 'c': // character\n arg = nextArg();\n if (typeof arg === 'string' || arg instanceof String)\n result += arg;\n else\n result += String.fromCharCode(parseInt(arg, 10));\n break;\n case 'd': // number in decimal\n result += parseInt(nextArg(), 10);\n break;\n case 'f': // floating point number\n tmp = String(parseFloat(nextArg()).toFixed(precision || 6));\n result += leadingZero ? tmp : tmp.replace(/^0/, '');\n break;\n case 'j': // JSON\n result += JSON.stringify(nextArg());\n break;\n case 'o': // number in octal\n result += '0' + parseInt(nextArg(), 10).toString(8);\n break;\n case 's': // string\n result += nextArg();\n break;\n case 'x': // lowercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16);\n break;\n case 'X': // uppercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16).toUpperCase();\n break;\n default:\n result += c;\n break;\n }\n } else if (c === '%') {\n escaped = true;\n } else {\n result += c;\n }\n }\n return result;\n }\n\n}());\n","function deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\nvar deepFreezeEs6 = deepFreeze;\nvar _default = deepFreeze;\ndeepFreezeEs6.default = _default;\n\n/** @implements CallbackResponse */\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = node.kind;\n if (!node.sublanguage) {\n className = `${this.classPrefix}${className}`;\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\nfunction escape(value) {\n return new RegExp(value.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'm');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {string} separator\n * @returns {string}\n */\nfunction join(regexps, separator = \"|\") {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(separator);\n}\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit({\n className: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit(\n {\n className: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push(PHRASAL_WORDS_MODE);\n mode.contains.push({\n className: 'doctag',\n begin: '(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',\n relevance: 0\n });\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n className: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n className: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst CSS_NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n className: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n className: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n className: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n CSS_NUMBER_MODE: CSS_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfhasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfhasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_CLASSNAME = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, className = DEFAULT_KEYWORD_CLASSNAME) {\n /** @type KeywordDict */\n const compiledKeywords = {};\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing className (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(className, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(className, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(className) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[className], caseInsensitive, className)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} className\n * @param {Array} keywordList\n */\n function compileList(className, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [className, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @param {{plugins: HLJSPlugin[]}} opts\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language, { plugins }) {\n /**\n * Builds a regex with the case sensativility of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(join(terminators), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\") {\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n // both are not allowed\n if (mode.lexemes && keywordPattern) {\n throw new Error(\"ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) \");\n }\n\n // `mode.lexemes` was the old standard before we added and now recommend\n // using `keywords.$pattern` to pass the keyword pattern\n keywordPattern = keywordPattern || mode.lexemes || /\\w+/;\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(mode.begin);\n if (mode.endSameAsBegin) mode.end = mode.begin;\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(mode.end);\n cmode.terminatorEnd = source(mode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit(mode, { starts: mode.starts ? inherit(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"10.7.3\";\n\n// @ts-nocheck\n\nfunction hasValueOrEmptyAttribute(value) {\n return Boolean(value || value === \"\");\n}\n\nfunction BuildVuePlugin(hljs) {\n const Component = {\n props: [\"language\", \"code\", \"autodetect\"],\n data: function() {\n return {\n detectedLanguage: \"\",\n unknownLanguage: false\n };\n },\n computed: {\n className() {\n if (this.unknownLanguage) return \"\";\n\n return \"hljs \" + this.detectedLanguage;\n },\n highlighted() {\n // no idea what language to use, return raw code\n if (!this.autoDetect && !hljs.getLanguage(this.language)) {\n console.warn(`The language \"${this.language}\" you specified could not be found.`);\n this.unknownLanguage = true;\n return escapeHTML(this.code);\n }\n\n let result = {};\n if (this.autoDetect) {\n result = hljs.highlightAuto(this.code);\n this.detectedLanguage = result.language;\n } else {\n result = hljs.highlight(this.language, this.code, this.ignoreIllegals);\n this.detectedLanguage = this.language;\n }\n return result.value;\n },\n autoDetect() {\n return !this.language || hasValueOrEmptyAttribute(this.autodetect);\n },\n ignoreIllegals() {\n return true;\n }\n },\n // this avoids needing to use a whole Vue compilation pipeline just\n // to build Highlight.js\n render(createElement) {\n return createElement(\"pre\", {}, [\n createElement(\"code\", {\n class: this.className,\n domProps: { innerHTML: this.highlighted }\n })\n ]);\n }\n // template: `
    `\n };\n\n const VuePlugin = {\n install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n\n return { Component, VuePlugin };\n}\n\n/* plugin itself */\n\n/** @type {HLJSPlugin} */\nconst mergeHTMLPlugin = {\n \"after:highlightElement\": ({ el, result, text }) => {\n const originalStream = nodeStream(el);\n if (!originalStream.length) return;\n\n const resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams(originalStream, nodeStream(resultNode), text);\n }\n};\n\n/* Stream merging support functions */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n\n/**\n * @param {Node} node\n */\nfunction nodeStream(node) {\n /** @type Event[] */\n const result = [];\n (function _nodeStream(node, offset) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset);\n // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n return offset;\n })(node, 0);\n return result;\n}\n\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\nfunction mergeStreams(original, highlighted, value) {\n let processed = 0;\n let result = '';\n const nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return (original[0].offset < highlighted[0].offset) ? original : highlighted;\n }\n\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n\n ... which is collapsed to:\n */\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n\n /**\n * @param {Node} node\n */\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n }\n // @ts-ignore\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n\n /**\n * @param {Node} node\n */\n function close(node) {\n result += '';\n }\n\n /**\n * @param {Event} event\n */\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n let stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\nconst escape$1 = escapeHTML;\nconst inherit$1 = inherit;\nconst NO_MATCH = Symbol(\"nomatch\");\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const fixMarkupRe = /(^(<[^>]+>|\\t|)+|\\n)/gm;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n tabReplace: null,\n useBR: false,\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrlanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode} [continuation] - current continuation mode, if any\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrlanguageName, optionsOrCode, ignoreIllegals, continuation) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrlanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n // continuation not supported at all via the new API\n // eslint-disable-next-line no-undefined\n continuation = undefined;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrlanguageName;\n code = optionsOrCode;\n }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals, continuation);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {RegExpMatchArray} match - regexp match data\n * @returns {KeywordData | false}\n */\n function keywordData(mode, match) {\n const matchText = language.case_insensitive ? match[0].toLowerCase() : match[0];\n return Object.prototype.hasOwnProperty.call(mode.keywords, matchText) && mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const data = keywordData(top, match);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result.top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result.emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {Mode} mode - new mode to start\n */\n function startNewMode(mode) {\n if (mode.className) {\n emitter.openNode(language.classNameAliases[mode.className] || mode.className);\n }\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexs to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode && newMode.endSameAsBegin) {\n newMode.endRe = escape(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode);\n // if (mode[\"after:begin\"]) {\n // let resp = new Response(mode);\n // mode[\"after:begin\"](match, resp);\n // }\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.className) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n if (endMode.endSameAsBegin) {\n endMode.starts.endRe = endMode.endRe;\n }\n startNewMode(endMode.starts);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.className) {\n list.unshift(current.className);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceeding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error('0 width match regex');\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.className || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? Only one occasion now. An end match that was\n triggered but could not be completed. When might this happen? When an `endSameasBegin`\n rule sets the end rule to a specific match. Since the overall mode termination rule that's\n being used to scan the text isn't recompiled that means that any match that LOOKS like\n the end (but is not, because it is not an exact match to the beginning) will\n end up here. A definite end match, but when `doEndMatch` tries to \"reapply\"\n the end rule and fails to match, we wind up here, and just silently ignore the end.\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language, { plugins });\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n // avoid possible breakage with v10 clients expecting\n // this to always be an integer\n relevance: Math.floor(relevance),\n value: result,\n language: languageName,\n illegal: false,\n emitter: emitter,\n top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n illegal: true,\n illegalBy: {\n msg: err.message,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode\n },\n sofar: result,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n illegal: false,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter,\n language: languageName,\n top: top,\n errorRaised: err\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n relevance: 0,\n emitter: new options.__emitter(options),\n value: escape$1(code),\n illegal: false,\n top: PLAINTEXT_LANGUAGE\n };\n result.emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - second_best (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.second_best = secondBest;\n\n return result;\n }\n\n /**\n Post-processing of the highlighted markup:\n\n - replace TABs with something more useful\n - replace real line-breaks with '
    ' for non-pre containers\n\n @param {string} html\n @returns {string}\n */\n function fixMarkup(html) {\n if (!(options.tabReplace || options.useBR)) {\n return html;\n }\n\n return html.replace(fixMarkupRe, match => {\n if (match === '\\n') {\n return options.useBR ? '
    ' : match;\n } else if (options.tabReplace) {\n return match.replace(/\\t/g, options.tabReplace);\n }\n return match;\n });\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = currentLang ? aliases[currentLang] : resultLang;\n\n element.classList.add(\"hljs\");\n if (language) element.classList.add(language);\n }\n\n /** @type {HLJSPlugin} */\n const brPlugin = {\n \"before:highlightElement\": ({ el }) => {\n if (options.useBR) {\n el.innerHTML = el.innerHTML.replace(/\\n/g, '').replace(//g, '\\n');\n }\n },\n \"after:highlightElement\": ({ result }) => {\n if (options.useBR) {\n result.value = result.value.replace(/\\n/g, \"
    \");\n }\n }\n };\n\n const TAB_REPLACE_RE = /^(<[^>]+>|\\t)+/gm;\n /** @type {HLJSPlugin} */\n const tabReplacePlugin = {\n \"after:highlightElement\": ({ result }) => {\n if (options.tabReplace) {\n result.value = result.value.replace(TAB_REPLACE_RE, (m) =>\n m.replace(/\\t/g, options.tabReplace)\n );\n }\n }\n };\n\n /**\n * Applies highlighting to a DOM node containing code. Accepts a DOM node and\n * two optional parameters for fixMarkup.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n // support for v10 API\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n // support for v10 API\n fire(\"after:highlightElement\", { el: element, result, text });\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relavance: result.relevance\n };\n if (result.second_best) {\n element.second_best = {\n language: result.second_best.language,\n // TODO: remove with version 11.0\n re: result.second_best.relevance,\n relavance: result.second_best.relevance\n };\n }\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n if (userOptions.useBR) {\n deprecated(\"10.3.0\", \"'useBR' will be removed entirely in v11.0\");\n deprecated(\"10.3.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2559\");\n }\n options = inherit$1(options, userOptions);\n }\n\n /**\n * Highlights to all
     blocks on a page\n   *\n   * @type {Function & {called?: boolean}}\n   */\n  // TODO: remove v12, deprecated\n  const initHighlighting = () => {\n    if (initHighlighting.called) return;\n    initHighlighting.called = true;\n\n    deprecated(\"10.6.0\", \"initHighlighting() is deprecated.  Use highlightAll() instead.\");\n\n    const blocks = document.querySelectorAll('pre code');\n    blocks.forEach(highlightElement);\n  };\n\n  // Higlights all when DOMContentLoaded fires\n  // TODO: remove v12, deprecated\n  function initHighlightingOnLoad() {\n    deprecated(\"10.6.0\", \"initHighlightingOnLoad() is deprecated.  Use highlightAll() instead.\");\n    wantsHighlight = true;\n  }\n\n  let wantsHighlight = false;\n\n  /**\n   * auto-highlights all pre>code elements on the page\n   */\n  function highlightAll() {\n    // if we are called too early in the loading process\n    if (document.readyState === \"loading\") {\n      wantsHighlight = true;\n      return;\n    }\n\n    const blocks = document.querySelectorAll('pre code');\n    blocks.forEach(highlightElement);\n  }\n\n  function boot() {\n    // if a highlight was requested before DOM was loaded, do now\n    if (wantsHighlight) highlightAll();\n  }\n\n  // make sure we are in the browser environment\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('DOMContentLoaded', boot, false);\n  }\n\n  /**\n   * Register a language grammar module\n   *\n   * @param {string} languageName\n   * @param {LanguageFn} languageDefinition\n   */\n  function registerLanguage(languageName, languageDefinition) {\n    let lang = null;\n    try {\n      lang = languageDefinition(hljs);\n    } catch (error$1) {\n      error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n      // hard or soft error\n      if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n      // languages that have serious errors are replaced with essentially a\n      // \"plaintext\" stand-in so that the code blocks will still get normal\n      // css classes applied to them - and one bad language won't break the\n      // entire highlighter\n      lang = PLAINTEXT_LANGUAGE;\n    }\n    // give it a temporary name if it doesn't have one in the meta-data\n    if (!lang.name) lang.name = languageName;\n    languages[languageName] = lang;\n    lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n    if (lang.aliases) {\n      registerAliases(lang.aliases, { languageName });\n    }\n  }\n\n  /**\n   * Remove a language grammar module\n   *\n   * @param {string} languageName\n   */\n  function unregisterLanguage(languageName) {\n    delete languages[languageName];\n    for (const alias of Object.keys(aliases)) {\n      if (aliases[alias] === languageName) {\n        delete aliases[alias];\n      }\n    }\n  }\n\n  /**\n   * @returns {string[]} List of language internal names\n   */\n  function listLanguages() {\n    return Object.keys(languages);\n  }\n\n  /**\n    intended usage: When one language truly requires another\n\n    Unlike `getLanguage`, this will throw when the requested language\n    is not available.\n\n    @param {string} name - name of the language to fetch/require\n    @returns {Language | never}\n  */\n  function requireLanguage(name) {\n    deprecated(\"10.4.0\", \"requireLanguage will be removed entirely in v11.\");\n    deprecated(\"10.4.0\", \"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n\n    const lang = getLanguage(name);\n    if (lang) { return lang; }\n\n    const err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n    throw err;\n  }\n\n  /**\n   * @param {string} name - name of the language to retrieve\n   * @returns {Language | undefined}\n   */\n  function getLanguage(name) {\n    name = (name || '').toLowerCase();\n    return languages[name] || languages[aliases[name]];\n  }\n\n  /**\n   *\n   * @param {string|string[]} aliasList - single alias or list of aliases\n   * @param {{languageName: string}} opts\n   */\n  function registerAliases(aliasList, { languageName }) {\n    if (typeof aliasList === 'string') {\n      aliasList = [aliasList];\n    }\n    aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n  }\n\n  /**\n   * Determines if a given language has auto-detection enabled\n   * @param {string} name - name of the language\n   */\n  function autoDetection(name) {\n    const lang = getLanguage(name);\n    return lang && !lang.disableAutodetect;\n  }\n\n  /**\n   * Upgrades the old highlightBlock plugins to the new\n   * highlightElement API\n   * @param {HLJSPlugin} plugin\n   */\n  function upgradePluginAPI(plugin) {\n    // TODO: remove with v12\n    if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n      plugin[\"before:highlightElement\"] = (data) => {\n        plugin[\"before:highlightBlock\"](\n          Object.assign({ block: data.el }, data)\n        );\n      };\n    }\n    if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n      plugin[\"after:highlightElement\"] = (data) => {\n        plugin[\"after:highlightBlock\"](\n          Object.assign({ block: data.el }, data)\n        );\n      };\n    }\n  }\n\n  /**\n   * @param {HLJSPlugin} plugin\n   */\n  function addPlugin(plugin) {\n    upgradePluginAPI(plugin);\n    plugins.push(plugin);\n  }\n\n  /**\n   *\n   * @param {PluginEvent} event\n   * @param {any} args\n   */\n  function fire(event, args) {\n    const cb = event;\n    plugins.forEach(function(plugin) {\n      if (plugin[cb]) {\n        plugin[cb](args);\n      }\n    });\n  }\n\n  /**\n  Note: fixMarkup is deprecated and will be removed entirely in v11\n\n  @param {string} arg\n  @returns {string}\n  */\n  function deprecateFixMarkup(arg) {\n    deprecated(\"10.2.0\", \"fixMarkup will be removed entirely in v11.0\");\n    deprecated(\"10.2.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n\n    return fixMarkup(arg);\n  }\n\n  /**\n   *\n   * @param {HighlightedHTMLElement} el\n   */\n  function deprecateHighlightBlock(el) {\n    deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n    deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n    return highlightElement(el);\n  }\n\n  /* Interface definition */\n  Object.assign(hljs, {\n    highlight,\n    highlightAuto,\n    highlightAll,\n    fixMarkup: deprecateFixMarkup,\n    highlightElement,\n    // TODO: Remove with v12 API\n    highlightBlock: deprecateHighlightBlock,\n    configure,\n    initHighlighting,\n    initHighlightingOnLoad,\n    registerLanguage,\n    unregisterLanguage,\n    listLanguages,\n    getLanguage,\n    registerAliases,\n    requireLanguage,\n    autoDetection,\n    inherit: inherit$1,\n    addPlugin,\n    // plugins for frameworks\n    vuePlugin: BuildVuePlugin(hljs).VuePlugin\n  });\n\n  hljs.debugMode = function() { SAFE_MODE = false; };\n  hljs.safeMode = function() { SAFE_MODE = true; };\n  hljs.versionString = version;\n\n  for (const key in MODES) {\n    // @ts-ignore\n    if (typeof MODES[key] === \"object\") {\n      // @ts-ignore\n      deepFreezeEs6(MODES[key]);\n    }\n  }\n\n  // merge all the modes/regexs into our main object\n  Object.assign(hljs, MODES);\n\n  // built-in plugins, likely to be moved out of core in the future\n  hljs.addPlugin(brPlugin); // slated to be removed in v11\n  hljs.addPlugin(mergeHTMLPlugin);\n  hljs.addPlugin(tabReplacePlugin);\n  return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\n","/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov \nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n\n  // общий паттерн для определения идентификаторов\n  var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';\n\n  // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword\n  var v7_keywords =\n  'далее ';\n\n  // v8 ключевые слова ==> keyword\n  var v8_keywords =\n  'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +\n  'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';\n\n  // keyword : ключевые слова\n  var KEYWORD = v7_keywords + v8_keywords;\n\n  // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword\n  var v7_meta_keywords =\n  'загрузитьизфайла ';\n\n  // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword\n  var v8_meta_keywords =\n  'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +\n  'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +\n  'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';\n\n  // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях\n  var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n  // v7 системные константы ==> built_in\n  var v7_system_constants =\n  'разделительстраниц разделительстрок символтабуляции ';\n\n  // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in\n  var v7_global_context_methods =\n  'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +\n  'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +\n  'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +\n  'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +\n  'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +\n  'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +\n  'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +\n  'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +\n  'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +\n  'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +\n  'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';\n\n  // v8 методы глобального контекста ==> built_in\n  var v8_global_context_methods =\n  'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +\n  'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +\n  'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +\n  'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +\n  'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +\n  'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +\n  'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +\n  'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +\n  'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +\n  'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +\n  'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +\n  'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +\n  'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +\n  'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +\n  'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +\n  'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +\n  'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +\n  'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +\n  'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +\n  'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +\n  'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +\n  'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +\n  'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +\n  'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +\n  'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +\n  'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +\n  'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +\n  'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +\n  'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +\n  'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +\n  'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +\n  'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +\n  'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +\n  'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +\n  'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +\n  'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +\n  'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +\n  'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +\n  'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +\n  'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +\n  'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +\n  'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +\n  'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +\n  'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +\n  'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +\n  'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +\n  'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +\n  'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +\n  'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +\n  'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +\n  'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +\n  'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +\n  'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +\n  'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +\n  'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +\n  'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +\n  'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+\n  'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +\n  'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +\n  'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +\n  'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +\n  'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +\n  'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +\n  'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +\n  'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +\n  'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +\n  'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +\n  'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +\n  'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +\n  'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +\n  'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +\n  'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';\n\n  // v8 свойства глобального контекста ==> built_in\n  var v8_global_context_property =\n  'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +\n  'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +\n  'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +\n  'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +\n  'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +\n  'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +\n  'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +\n  'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +\n  'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +\n  'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +\n  'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';\n\n  // built_in : встроенные или библиотечные объекты (константы, классы, функции)\n  var BUILTIN =\n  v7_system_constants +\n  v7_global_context_methods + v8_global_context_methods +\n  v8_global_context_property;\n\n  // v8 системные наборы значений ==> class\n  var v8_system_sets_of_values =\n  'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';\n\n  // v8 системные перечисления - интерфейсные ==> class\n  var v8_system_enums_interface =\n  'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +\n  'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +\n  'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +\n  'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +\n  'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +\n  'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +\n  'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +\n  'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +\n  'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +\n  'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +\n  'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +\n  'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +\n  'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +\n  'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +\n  'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +\n  'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +\n  'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +\n  'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +\n  'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +\n  'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +\n  'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +\n  'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +\n  'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +\n  'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +\n  'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +\n  'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +\n  'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +\n  'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +\n  'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +\n  'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +\n  'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +\n  'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +\n  'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +\n  'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +\n  'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +\n  'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +\n  'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +\n  'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +\n  'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +\n  'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +\n  'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +\n  'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +\n  'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +\n  'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +\n  'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +\n  'форматкартинки ширинаподчиненныхэлементовформы ';\n\n  // v8 системные перечисления - свойства прикладных объектов ==> class\n  var v8_system_enums_objects_properties =\n  'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +\n  'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +\n  'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';\n\n  // v8 системные перечисления - планы обмена ==> class\n  var v8_system_enums_exchange_plans =\n  'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';\n\n  // v8 системные перечисления - табличный документ ==> class\n  var v8_system_enums_tabular_document =\n  'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +\n  'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +\n  'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +\n  'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +\n  'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +\n  'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +\n  'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';\n\n  // v8 системные перечисления - планировщик ==> class\n  var v8_system_enums_sheduler =\n  'отображениевремениэлементовпланировщика ';\n\n  // v8 системные перечисления - форматированный документ ==> class\n  var v8_system_enums_formatted_document =\n  'типфайлаформатированногодокумента ';\n\n  // v8 системные перечисления - запрос ==> class\n  var v8_system_enums_query =\n  'обходрезультатазапроса типзаписизапроса ';\n\n  // v8 системные перечисления - построитель отчета ==> class\n  var v8_system_enums_report_builder =\n  'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';\n\n  // v8 системные перечисления - работа с файлами ==> class\n  var v8_system_enums_files =\n  'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';\n\n  // v8 системные перечисления - построитель запроса ==> class\n  var v8_system_enums_query_builder =\n  'типизмеренияпостроителязапроса ';\n\n  // v8 системные перечисления - анализ данных ==> class\n  var v8_system_enums_data_analysis =\n  'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +\n  'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +\n  'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +\n  'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +\n  'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +\n  'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';\n\n  // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class\n  var v8_system_enums_xml_json_xs_dom_xdto_ws =\n  'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +\n  'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +\n  'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +\n  'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +\n  'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +\n  'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +\n  'форматдатыjson экранированиесимволовjson ';\n\n  // v8 системные перечисления - система компоновки данных ==> class\n  var v8_system_enums_data_composition_system =\n  'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +\n  'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +\n  'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +\n  'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +\n  'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +\n  'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +\n  'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +\n  'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +\n  'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +\n  'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+\n  'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +\n  'использованиеусловногооформлениякомпоновкиданных ';\n\n  // v8 системные перечисления - почта ==> class\n  var v8_system_enums_email =\n  'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +\n  'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +\n  'статусразборапочтовогосообщения ';\n\n  // v8 системные перечисления - журнал регистрации ==> class\n  var v8_system_enums_logbook =\n  'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';\n\n  // v8 системные перечисления - криптография ==> class\n  var v8_system_enums_cryptography =\n  'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +\n  'типхранилищасертификатовкриптографии ';\n\n  // v8 системные перечисления - ZIP ==> class\n  var v8_system_enums_zip =\n  'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +\n  'режимсохраненияпутейzip уровеньсжатияzip ';\n\n  // v8 системные перечисления -\n  // Блокировка данных, Фоновые задания, Автоматизированное тестирование,\n  // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class\n  var v8_system_enums_other =\n  'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +\n  'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';\n\n  // v8 системные перечисления - схема запроса ==> class\n  var v8_system_enums_request_schema =\n  'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +\n  'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';\n\n  // v8 системные перечисления - свойства объектов метаданных ==> class\n  var v8_system_enums_properties_of_metadata_objects =\n  'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +\n  'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +\n  'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +\n  'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +\n  'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +\n  'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +\n  'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +\n  'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +\n  'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +\n  'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+\n  'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +\n  'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +\n  'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +\n  'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +\n  'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +\n  'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +\n  'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n  // v8 системные перечисления - разные ==> class\n  var v8_system_enums_differents =\n  'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +\n  'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +\n  'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +\n  'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +\n  'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +\n  'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +\n  'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +\n  'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +\n  'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';\n\n  // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)\n  var CLASS =\n  v8_system_sets_of_values +\n  v8_system_enums_interface +\n  v8_system_enums_objects_properties +\n  v8_system_enums_exchange_plans +\n  v8_system_enums_tabular_document +\n  v8_system_enums_sheduler +\n  v8_system_enums_formatted_document +\n  v8_system_enums_query +\n  v8_system_enums_report_builder +\n  v8_system_enums_files +\n  v8_system_enums_query_builder +\n  v8_system_enums_data_analysis +\n  v8_system_enums_xml_json_xs_dom_xdto_ws +\n  v8_system_enums_data_composition_system +\n  v8_system_enums_email +\n  v8_system_enums_logbook +\n  v8_system_enums_cryptography +\n  v8_system_enums_zip +\n  v8_system_enums_other +\n  v8_system_enums_request_schema +\n  v8_system_enums_properties_of_metadata_objects +\n  v8_system_enums_differents;\n\n  // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type\n  var v8_shared_object =\n  'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +\n  'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +\n  'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +\n  'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +\n  'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +\n  'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +\n  'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +\n  'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +\n  'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +\n  'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +\n  'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +\n  'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +\n  'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +\n  'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +\n  'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +\n  'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +\n  'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +\n  'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +\n  'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +\n  'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +\n  'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +\n  'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +\n  'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +\n  'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +\n  'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +\n  'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +\n  'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +\n  'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +\n  'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +\n  'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +\n  'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +\n  'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +\n  'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +\n  'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +\n  'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';\n\n  // v8 универсальные коллекции значений ==> type\n  var v8_universal_collection =\n  'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +\n  'фиксированноесоответствие фиксированныймассив ';\n\n  // type : встроенные типы\n  var TYPE =\n  v8_shared_object +\n  v8_universal_collection;\n\n  // literal : примитивные типы\n  var LITERAL = 'null истина ложь неопределено';\n\n  // number : числа\n  var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n  // string : строки\n  var STRINGS = {\n    className: 'string',\n    begin: '\"|\\\\|', end: '\"|$',\n    contains: [{begin: '\"\"'}]\n  };\n\n  // number : даты\n  var DATE = {\n    begin: \"'\", end: \"'\", excludeBegin: true, excludeEnd: true,\n    contains: [\n      {\n        className: 'number',\n        begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n      }\n    ]\n  };\n\n  // comment : комментарии\n  var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n  // meta : инструкции препроцессора, директивы компиляции\n  var META = {\n    className: 'meta',\n\n    begin: '#|&', end: '$',\n    keywords: {\n      $pattern: UNDERSCORE_IDENT_RE,\n      'meta-keyword': KEYWORD + METAKEYWORD\n    },\n    contains: [\n      COMMENTS\n    ]\n  };\n\n  // symbol : метка goto\n  var SYMBOL = {\n    className: 'symbol',\n    begin: '~', end: ';|:', excludeEnd: true\n  };\n\n  // function : объявление процедур и функций\n  var FUNCTION = {\n    className: 'function',\n    variants: [\n      {begin: 'процедура|функция', end: '\\\\)', keywords: 'процедура функция'},\n      {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}\n    ],\n    contains: [\n      {\n        begin: '\\\\(', end: '\\\\)', endsParent : true,\n        contains: [\n          {\n            className: 'params',\n            begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,\n            keywords: {\n              $pattern: UNDERSCORE_IDENT_RE,\n              keyword: 'знач',\n              literal: LITERAL\n            },\n            contains: [\n              NUMBERS,\n              STRINGS,\n              DATE\n            ]\n          },\n          COMMENTS\n        ]\n      },\n      hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})\n    ]\n  };\n\n  return {\n    name: '1C:Enterprise',\n    case_insensitive: true,\n    keywords: {\n      $pattern: UNDERSCORE_IDENT_RE,\n      keyword: KEYWORD,\n      built_in: BUILTIN,\n      class: CLASS,\n      type: TYPE,\n      literal: LITERAL\n    },\n    contains: [\n      META,\n      FUNCTION,\n      COMMENTS,\n      SYMBOL,\n      NUMBERS,\n      STRINGS,\n      DATE\n    ]\n  };\n}\n\nmodule.exports = _1c;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://tools.ietf.org/html/rfc5234\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n  const regexes = {\n    ruleDeclaration: /^[a-zA-Z][a-zA-Z0-9-]*/,\n    unexpectedChars: /[!@#$^&',?+~`|:]/\n  };\n\n  const keywords = [\n    \"ALPHA\",\n    \"BIT\",\n    \"CHAR\",\n    \"CR\",\n    \"CRLF\",\n    \"CTL\",\n    \"DIGIT\",\n    \"DQUOTE\",\n    \"HEXDIG\",\n    \"HTAB\",\n    \"LF\",\n    \"LWSP\",\n    \"OCTET\",\n    \"SP\",\n    \"VCHAR\",\n    \"WSP\"\n  ];\n\n  const commentMode = hljs.COMMENT(/;/, /$/);\n\n  const terminalBinaryMode = {\n    className: \"symbol\",\n    begin: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+){0,1}/\n  };\n\n  const terminalDecimalMode = {\n    className: \"symbol\",\n    begin: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+){0,1}/\n  };\n\n  const terminalHexadecimalMode = {\n    className: \"symbol\",\n    begin: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+){0,1}/\n  };\n\n  const caseSensitivityIndicatorMode = {\n    className: \"symbol\",\n    begin: /%[si]/\n  };\n\n  const ruleDeclarationMode = {\n    className: \"attribute\",\n    begin: concat(regexes.ruleDeclaration, /(?=\\s*=)/)\n  };\n\n  return {\n    name: 'Augmented Backus-Naur Form',\n    illegal: regexes.unexpectedChars,\n    keywords: keywords,\n    contains: [\n      ruleDeclarationMode,\n      commentMode,\n      terminalBinaryMode,\n      terminalDecimalMode,\n      terminalHexadecimalMode,\n      caseSensitivityIndicatorMode,\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = abnf;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(_hljs) {\n  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n  const HTTP_VERBS = [\n    \"GET\",\n    \"POST\",\n    \"HEAD\",\n    \"PUT\",\n    \"DELETE\",\n    \"CONNECT\",\n    \"OPTIONS\",\n    \"PATCH\",\n    \"TRACE\"\n  ];\n  return {\n    name: 'Apache Access Log',\n    contains: [\n      // IP\n      {\n        className: 'number',\n        begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n        relevance: 5\n      },\n      // Other numbers\n      {\n        className: 'number',\n        begin: /\\b\\d+\\b/,\n        relevance: 0\n      },\n      // Requests\n      {\n        className: 'string',\n        begin: concat(/\"/, either(...HTTP_VERBS)),\n        end: /\"/,\n        keywords: HTTP_VERBS,\n        illegal: /\\n/,\n        relevance: 5,\n        contains: [\n          {\n            begin: /HTTP\\/[12]\\.\\d'/,\n            relevance: 5\n          }\n        ]\n      },\n      // Dates\n      {\n        className: 'string',\n        // dates must have a certain length, this prevents matching\n        // simple array accesses a[123] and [] and other common patterns\n        // found in other languages\n        begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n        illegal: /\\n/,\n        relevance: 1\n      },\n      {\n        className: 'string',\n        begin: /\\[/,\n        end: /\\]/,\n        illegal: /\\n/,\n        relevance: 0\n      },\n      // User agent / relevance boost\n      {\n        className: 'string',\n        begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n        end: /\"/,\n        illegal: /\\n/,\n        relevance: 3\n      },\n      // Strings\n      {\n        className: 'string',\n        begin: /\"/,\n        end: /\"/,\n        illegal: /\\n/,\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = accesslog;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel \nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n  const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n  const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n  const AS3_REST_ARG_MODE = {\n    className: 'rest_arg',\n    begin: /[.]{3}/,\n    end: IDENT_RE,\n    relevance: 10\n  };\n\n  return {\n    name: 'ActionScript',\n    aliases: [ 'as' ],\n    keywords: {\n      keyword: 'as break case catch class const continue default delete do dynamic each ' +\n        'else extends final finally for function get if implements import in include ' +\n        'instanceof interface internal is namespace native new override package private ' +\n        'protected public return set static super switch this throw try typeof use var void ' +\n        'while with',\n      literal: 'true false null undefined'\n    },\n    contains: [\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'class',\n        beginKeywords: 'package',\n        end: /\\{/,\n        contains: [ hljs.TITLE_MODE ]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class interface',\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          { beginKeywords: 'extends implements' },\n          hljs.TITLE_MODE\n        ]\n      },\n      {\n        className: 'meta',\n        beginKeywords: 'import include',\n        end: /;/,\n        keywords: { 'meta-keyword': 'import include' }\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: /[{;]/,\n        excludeEnd: true,\n        illegal: /\\S/,\n        contains: [\n          hljs.TITLE_MODE,\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            contains: [\n              hljs.APOS_STRING_MODE,\n              hljs.QUOTE_STRING_MODE,\n              hljs.C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              AS3_REST_ARG_MODE\n            ]\n          },\n          { begin: concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n        ]\n      },\n      hljs.METHOD_GUARD\n    ],\n    illegal: /#/\n  };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna \nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n             It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n             The first version appeared in the 80s, but it's still actively developed today with\n             the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n  // Regular expression for Ada numeric literals.\n  // stolen form the VHDL highlighter\n\n  // Decimal literal:\n  const INTEGER_RE = '\\\\d(_|\\\\d)*';\n  const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n  const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n  // Based literal:\n  const BASED_INTEGER_RE = '\\\\w+';\n  const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n  const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n  // Identifier regex\n  const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n  // bad chars, only allowed in literals\n  const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n  // Ada doesn't have block comments, only line comments\n  const COMMENTS = hljs.COMMENT('--', '$');\n\n  // variable declarations of the form\n  // Foo : Bar := Baz;\n  // where only Bar will be highlighted\n  const VAR_DECLS = {\n    // TODO: These spaces are not required by the Ada syntax\n    // however, I have yet to see handwritten Ada code where\n    // someone does not put spaces around :\n    begin: '\\\\s+:\\\\s+',\n    end: '\\\\s*(:=|;|\\\\)|=>|$)',\n    // endsWithParent: true,\n    // returnBegin: true,\n    illegal: BAD_CHARS,\n    contains: [\n      {\n        // workaround to avoid highlighting\n        // named loops and declare blocks\n        beginKeywords: 'loop for declare others',\n        endsParent: true\n      },\n      {\n        // properly highlight all modifiers\n        className: 'keyword',\n        beginKeywords: 'not null constant access function procedure in out aliased exception'\n      },\n      {\n        className: 'type',\n        begin: ID_REGEX,\n        endsParent: true,\n        relevance: 0\n      }\n    ]\n  };\n\n  return {\n    name: 'Ada',\n    case_insensitive: true,\n    keywords: {\n      keyword:\n                'abort else new return abs elsif not reverse abstract end ' +\n                'accept entry select access exception of separate aliased exit or some ' +\n                'all others subtype and for out synchronized array function overriding ' +\n                'at tagged generic package task begin goto pragma terminate ' +\n                'body private then if procedure type case in protected constant interface ' +\n                'is raise use declare range delay limited record when delta loop rem while ' +\n                'digits renames with do mod requeue xor',\n      literal:\n                'True False'\n    },\n    contains: [\n      COMMENTS,\n      // strings \"foobar\"\n      {\n        className: 'string',\n        begin: /\"/,\n        end: /\"/,\n        contains: [{\n          begin: /\"\"/,\n          relevance: 0\n        }]\n      },\n      // characters ''\n      {\n        // character literals always contain one char\n        className: 'string',\n        begin: /'.'/\n      },\n      {\n        // number literals\n        className: 'number',\n        begin: NUMBER_RE,\n        relevance: 0\n      },\n      {\n        // Attributes\n        className: 'symbol',\n        begin: \"'\" + ID_REGEX\n      },\n      {\n        // package definition, maybe inside generic\n        className: 'title',\n        begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n        end: '(is|$)',\n        keywords: 'package body',\n        excludeBegin: true,\n        excludeEnd: true,\n        illegal: BAD_CHARS\n      },\n      {\n        // function/procedure declaration/definition\n        // maybe inside generic\n        begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n        end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n        keywords: 'overriding function procedure with is renames return',\n        // we need to re-match the 'function' keyword, so that\n        // the title mode below matches only exactly once\n        returnBegin: true,\n        contains:\n                [\n                  COMMENTS,\n                  {\n                    // name of the function/procedure\n                    className: 'title',\n                    begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n                    end: '(\\\\(|\\\\s+|$)',\n                    excludeBegin: true,\n                    excludeEnd: true,\n                    illegal: BAD_CHARS\n                  },\n                  // 'self'\n                  // // parameter types\n                  VAR_DECLS,\n                  {\n                    // return type\n                    className: 'type',\n                    begin: '\\\\breturn\\\\s+',\n                    end: '(\\\\s+|;|$)',\n                    keywords: 'return',\n                    excludeBegin: true,\n                    excludeEnd: true,\n                    // we are done with functions\n                    endsParent: true,\n                    illegal: BAD_CHARS\n\n                  }\n                ]\n      },\n      {\n        // new type declarations\n        // maybe inside generic\n        className: 'type',\n        begin: '\\\\b(sub)?type\\\\s+',\n        end: '\\\\s+',\n        keywords: 'type',\n        excludeBegin: true,\n        illegal: BAD_CHARS\n      },\n\n      // see comment above the definition\n      VAR_DECLS\n\n      // no markup\n      // relevance boosters for small snippets\n      // {begin: '\\\\s*=>\\\\s*'},\n      // {begin: '\\\\s*:=\\\\s*'},\n      // {begin: '\\\\s+:=\\\\s+'},\n    ]\n  };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels \nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n  var builtInTypeMode = {\n    className: 'built_in',\n    begin: '\\\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)'\n  };\n\n  var objectHandleMode = {\n    className: 'symbol',\n    begin: '[a-zA-Z0-9_]+@'\n  };\n\n  var genericMode = {\n    className: 'keyword',\n    begin: '<', end: '>',\n    contains: [ builtInTypeMode, objectHandleMode ]\n  };\n\n  builtInTypeMode.contains = [ genericMode ];\n  objectHandleMode.contains = [ genericMode ];\n\n  return {\n    name: 'AngelScript',\n    aliases: ['asc'],\n\n    keywords:\n      'for in|0 break continue while do|0 return if else case switch namespace is cast ' +\n      'or and xor not get|0 in inout|10 out override set|0 private public const default|0 ' +\n      'final shared external mixin|10 enum typedef funcdef this super import from interface ' +\n      'abstract|0 try catch protected explicit property',\n\n    // avoid close detection with C# and JS\n    illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n    contains: [\n      { // 'strings'\n        className: 'string',\n        begin: '\\'', end: '\\'',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ],\n        relevance: 0\n      },\n\n      // \"\"\"heredoc strings\"\"\"\n      {\n        className: 'string',\n        begin: '\"\"\"', end: '\"\"\"'\n      },\n\n      { // \"strings\"\n        className: 'string',\n        begin: '\"', end: '\"',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ],\n        relevance: 0\n      },\n\n      hljs.C_LINE_COMMENT_MODE, // single-line comments\n      hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n      { // metadata\n        className: 'string',\n        begin: '^\\\\s*\\\\[', end: '\\\\]',\n      },\n\n      { // interface or namespace declaration\n        beginKeywords: 'interface namespace', end: /\\{/,\n        illegal: '[;.\\\\-]',\n        contains: [\n          { // interface or namespace name\n            className: 'symbol',\n            begin: '[a-zA-Z0-9_]+'\n          }\n        ]\n      },\n\n      { // class declaration\n        beginKeywords: 'class', end: /\\{/,\n        illegal: '[;.\\\\-]',\n        contains: [\n          { // class name\n            className: 'symbol',\n            begin: '[a-zA-Z0-9_]+',\n            contains: [\n              {\n                begin: '[:,]\\\\s*',\n                contains: [\n                  {\n                    className: 'symbol',\n                    begin: '[a-zA-Z0-9_]+'\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n\n      builtInTypeMode, // built-in types\n      objectHandleMode, // object handles\n\n      { // literals\n        className: 'literal',\n        begin: '\\\\b(null|true|false)'\n      },\n\n      { // numbers\n        className: 'number',\n        relevance: 0,\n        begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n      }\n    ]\n  };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba \nContributors: Ivan Sagalaev \nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: common, config\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n  const NUMBER_REF = {\n    className: 'number',\n    begin: /[$%]\\d+/\n  };\n  const NUMBER = {\n    className: 'number',\n    begin: /\\d+/\n  };\n  const IP_ADDRESS = {\n    className: \"number\",\n    begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n  };\n  const PORT_NUMBER = {\n    className: \"number\",\n    begin: /:\\d{1,5}/\n  };\n  return {\n    name: 'Apache config',\n    aliases: [ 'apacheconf' ],\n    case_insensitive: true,\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      {\n        className: 'section',\n        begin: /<\\/?/,\n        end: />/,\n        contains: [\n          IP_ADDRESS,\n          PORT_NUMBER,\n          // low relevance prevents us from claming XML/HTML where this rule would\n          // match strings inside of XML tags\n          hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n        ]\n      },\n      {\n        className: 'attribute',\n        begin: /\\w+/,\n        relevance: 0,\n        // keywords aren’t needed for highlighting per se, they only boost relevance\n        // for a very generally defined mode (starts with a word, ends with line-end\n        keywords: {\n          nomarkup:\n            'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +\n            'sethandler errordocument loadmodule options header listen serverroot ' +\n            'servername'\n        },\n        starts: {\n          end: /$/,\n          relevance: 0,\n          keywords: { literal: 'on off all deny allow' },\n          contains: [\n            {\n              className: 'meta',\n              begin: /\\s\\[/,\n              end: /\\]$/\n            },\n            {\n              className: 'variable',\n              begin: /[\\$%]\\{/,\n              end: /\\}/,\n              contains: [\n                'self',\n                NUMBER_REF\n              ]\n            },\n            IP_ADDRESS,\n            NUMBER,\n            hljs.QUOTE_STRING_MODE\n          ]\n        }\n      }\n    ],\n    illegal: /\\S/\n  };\n}\n\nmodule.exports = apache;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: AppleScript\nAuthors: Nathan Grigg , Dr. Drang \nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n  const STRING = hljs.inherit(\n    hljs.QUOTE_STRING_MODE, {\n      illegal: null\n    });\n  const PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    contains: [\n      'self',\n      hljs.C_NUMBER_MODE,\n      STRING\n    ]\n  };\n  const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n  const COMMENT_MODE_2 = hljs.COMMENT(\n    /\\(\\*/,\n    /\\*\\)/,\n    {\n      contains: [\n        'self', // allow nesting\n        COMMENT_MODE_1\n      ]\n    }\n  );\n  const COMMENTS = [\n    COMMENT_MODE_1,\n    COMMENT_MODE_2,\n    hljs.HASH_COMMENT_MODE\n  ];\n\n  const KEYWORD_PATTERNS = [\n    /apart from/,\n    /aside from/,\n    /instead of/,\n    /out of/,\n    /greater than/,\n    /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n    /(greater|less) than( or equal)?/,\n    /(starts?|ends|begins?) with/,\n    /contained by/,\n    /comes (before|after)/,\n    /a (ref|reference)/,\n    /POSIX (file|path)/,\n    /(date|time) string/,\n    /quoted form/\n  ];\n\n  const BUILT_IN_PATTERNS = [\n    /clipboard info/,\n    /the clipboard/,\n    /info for/,\n    /list (disks|folder)/,\n    /mount volume/,\n    /path to/,\n    /(close|open for) access/,\n    /(get|set) eof/,\n    /current date/,\n    /do shell script/,\n    /get volume settings/,\n    /random number/,\n    /set volume/,\n    /system attribute/,\n    /system info/,\n    /time to GMT/,\n    /(load|run|store) script/,\n    /scripting components/,\n    /ASCII (character|number)/,\n    /localized string/,\n    /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n    /display (alert|dialog)/\n  ];\n\n  return {\n    name: 'AppleScript',\n    aliases: [ 'osascript' ],\n    keywords: {\n      keyword:\n        'about above after against and around as at back before beginning ' +\n        'behind below beneath beside between but by considering ' +\n        'contain contains continue copy div does eighth else end equal ' +\n        'equals error every exit fifth first for fourth from front ' +\n        'get given global if ignoring in into is it its last local me ' +\n        'middle mod my ninth not of on onto or over prop property put ref ' +\n        'reference repeat returning script second set seventh since ' +\n        'sixth some tell tenth that the|0 then third through thru ' +\n        'timeout times to transaction try until where while whose with ' +\n        'without',\n      literal:\n        'AppleScript false linefeed return pi quote result space tab true',\n      built_in:\n        'alias application boolean class constant date file integer list ' +\n        'number real record string text ' +\n        'activate beep count delay launch log offset read round ' +\n        'run say summarize write ' +\n        'character characters contents day frontmost id item length ' +\n        'month name paragraph paragraphs rest reverse running time version ' +\n        'weekday word words year'\n    },\n    contains: [\n      STRING,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'built_in',\n        begin: concat(\n          /\\b/,\n          either(...BUILT_IN_PATTERNS),\n          /\\b/\n        )\n      },\n      {\n        className: 'built_in',\n        begin: /^\\s*return\\b/\n      },\n      {\n        className: 'literal',\n        begin:\n          /\\b(text item delimiters|current application|missing value)\\b/\n      },\n      {\n        className: 'keyword',\n        begin: concat(\n          /\\b/,\n          either(...KEYWORD_PATTERNS),\n          /\\b/\n        )\n      },\n      {\n        beginKeywords: 'on',\n        illegal: /[${=;\\n]/,\n        contains: [\n          hljs.UNDERSCORE_TITLE_MODE,\n          PARAMS\n        ]\n      },\n      ...COMMENTS\n    ],\n    illegal: /\\/\\/|->|=>|\\[\\[/\n  };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster \n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n  const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n  const KEYWORDS = {\n    keyword:\n      'if for while var new function do return void else break',\n    literal:\n      'BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined',\n    built_in:\n      'Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic ' +\n      'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' +\n      'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct ' +\n      'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem ' +\n      'FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf ' +\n      'Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' +\n      'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' +\n      'Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' +\n      'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime ' +\n      'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' +\n      'Weekday When Within Year '\n  };\n  const SYMBOL = {\n    className: 'symbol',\n    begin: '\\\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'\n  };\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(0[bB][01]+)'\n      },\n      {\n        begin: '\\\\b(0[oO][0-7]+)'\n      },\n      {\n        begin: hljs.C_NUMBER_RE\n      }\n    ],\n    relevance: 0\n  };\n  const SUBST = {\n    className: 'subst',\n    begin: '\\\\$\\\\{',\n    end: '\\\\}',\n    keywords: KEYWORDS,\n    contains: [] // defined later\n  };\n  const TEMPLATE_STRING = {\n    className: 'string',\n    begin: '`',\n    end: '`',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ]\n  };\n  SUBST.contains = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    TEMPLATE_STRING,\n    NUMBER,\n    hljs.REGEXP_MODE\n  ];\n  const PARAMS_CONTAINS = SUBST.contains.concat([\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.C_LINE_COMMENT_MODE\n  ]);\n\n  return {\n    name: 'ArcGIS Arcade',\n    keywords: KEYWORDS,\n    contains: [\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      TEMPLATE_STRING,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      SYMBOL,\n      NUMBER,\n      { // object attr container\n        begin: /[{,]\\s*/,\n        relevance: 0,\n        contains: [{\n          begin: IDENT_RE + '\\\\s*:',\n          returnBegin: true,\n          relevance: 0,\n          contains: [{\n            className: 'attr',\n            begin: IDENT_RE,\n            relevance: 0\n          }]\n        }]\n      },\n      { // \"value\" container\n        begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n        keywords: 'return',\n        contains: [\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.REGEXP_MODE,\n          {\n            className: 'function',\n            begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n            returnBegin: true,\n            end: '\\\\s*=>',\n            contains: [{\n              className: 'params',\n              variants: [\n                {\n                  begin: IDENT_RE\n                },\n                {\n                  begin: /\\(\\s*\\)/\n                },\n                {\n                  begin: /\\(/,\n                  end: /\\)/,\n                  excludeBegin: true,\n                  excludeEnd: true,\n                  keywords: KEYWORDS,\n                  contains: PARAMS_CONTAINS\n                }\n              ]\n            }]\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            begin: IDENT_RE\n          }),\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            contains: PARAMS_CONTAINS\n          }\n        ],\n        illegal: /\\[|%/\n      },\n      {\n        begin: /\\$[(.]/\n      }\n    ],\n    illegal: /#(?!!)/\n  };\n}\n\nmodule.exports = arcade;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n    contains: [\n      {\n        begin: /\\\\\\n/\n      }\n    ]\n  });\n  const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n  const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n  const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n  const FUNCTION_TYPE_RE = '(' +\n    DECLTYPE_AUTO_RE + '|' +\n    optional(NAMESPACE_RE) +\n    '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n  ')';\n  const CPP_PRIMITIVE_TYPES = {\n    className: 'keyword',\n    begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n  };\n\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n  const STRINGS = {\n    className: 'string',\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n        end: '\\'',\n        illegal: '.'\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/\n      })\n    ]\n  };\n\n  const NUMBERS = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(0b[01\\']+)'\n      },\n      {\n        begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n      },\n      {\n        begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n      }\n    ],\n    relevance: 0\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      'meta-keyword':\n        'if else elif endif define undef warning error line ' +\n        'pragma _Pragma ifdef ifndef include'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      hljs.inherit(STRINGS, {\n        className: 'meta-string'\n      }),\n      {\n        className: 'meta-string',\n        begin: /<.*?>/\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  const TITLE_MODE = {\n    className: 'title',\n    begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n    relevance: 0\n  };\n\n  const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n  const COMMON_CPP_HINTS = [\n    'asin',\n    'atan2',\n    'atan',\n    'calloc',\n    'ceil',\n    'cosh',\n    'cos',\n    'exit',\n    'exp',\n    'fabs',\n    'floor',\n    'fmod',\n    'fprintf',\n    'fputs',\n    'free',\n    'frexp',\n    'auto_ptr',\n    'deque',\n    'list',\n    'queue',\n    'stack',\n    'vector',\n    'map',\n    'set',\n    'pair',\n    'bitset',\n    'multiset',\n    'multimap',\n    'unordered_set',\n    'fscanf',\n    'future',\n    'isalnum',\n    'isalpha',\n    'iscntrl',\n    'isdigit',\n    'isgraph',\n    'islower',\n    'isprint',\n    'ispunct',\n    'isspace',\n    'isupper',\n    'isxdigit',\n    'tolower',\n    'toupper',\n    'labs',\n    'ldexp',\n    'log10',\n    'log',\n    'malloc',\n    'realloc',\n    'memchr',\n    'memcmp',\n    'memcpy',\n    'memset',\n    'modf',\n    'pow',\n    'printf',\n    'putchar',\n    'puts',\n    'scanf',\n    'sinh',\n    'sin',\n    'snprintf',\n    'sprintf',\n    'sqrt',\n    'sscanf',\n    'strcat',\n    'strchr',\n    'strcmp',\n    'strcpy',\n    'strcspn',\n    'strlen',\n    'strncat',\n    'strncmp',\n    'strncpy',\n    'strpbrk',\n    'strrchr',\n    'strspn',\n    'strstr',\n    'tanh',\n    'tan',\n    'unordered_map',\n    'unordered_multiset',\n    'unordered_multimap',\n    'priority_queue',\n    'make_pair',\n    'array',\n    'shared_ptr',\n    'abort',\n    'terminate',\n    'abs',\n    'acos',\n    'vfprintf',\n    'vprintf',\n    'vsprintf',\n    'endl',\n    'initializer_list',\n    'unique_ptr',\n    'complex',\n    'imaginary',\n    'std',\n    'string',\n    'wstring',\n    'cin',\n    'cout',\n    'cerr',\n    'clog',\n    'stdin',\n    'stdout',\n    'stderr',\n    'stringstream',\n    'istringstream',\n    'ostringstream'\n  ];\n\n  const CPP_KEYWORDS = {\n    keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n      'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n      'unsigned long volatile static protected bool template mutable if public friend ' +\n      'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n      'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n      'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n      'concept co_await co_return co_yield requires ' +\n      'noexcept static_assert thread_local restrict final override ' +\n      'atomic_bool atomic_char atomic_schar ' +\n      'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n      'atomic_ullong new throw return ' +\n      'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n    built_in: '_Bool _Complex _Imaginary',\n    _relevance_hints: COMMON_CPP_HINTS,\n    literal: 'true false nullptr NULL'\n  };\n\n  const FUNCTION_DISPATCH = {\n    className: \"function.dispatch\",\n    relevance: 0,\n    keywords: CPP_KEYWORDS,\n    begin: concat(\n      /\\b/,\n      /(?!decltype)/,\n      /(?!if)/,\n      /(?!for)/,\n      /(?!while)/,\n      hljs.IDENT_RE,\n      lookahead(/\\s*\\(/))\n  };\n\n  const EXPRESSION_CONTAINS = [\n    FUNCTION_DISPATCH,\n    PREPROCESSOR,\n    CPP_PRIMITIVE_TYPES,\n    C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    NUMBERS,\n    STRINGS\n  ];\n\n\n  const EXPRESSION_CONTEXT = {\n    // This mode covers expression context where we can't expect a function\n    // definition and shouldn't highlight anything that looks like one:\n    // `return some()`, `else if()`, `(x*sum(1, 2))`\n    variants: [\n      {\n        begin: /=/,\n        end: /;/\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/\n      },\n      {\n        beginKeywords: 'new throw return else',\n        end: /;/\n      }\n    ],\n    keywords: CPP_KEYWORDS,\n    contains: EXPRESSION_CONTAINS.concat([\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n        relevance: 0\n      }\n    ]),\n    relevance: 0\n  };\n\n  const FUNCTION_DECLARATION = {\n    className: 'function',\n    begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n    returnBegin: true,\n    end: /[{;=]/,\n    excludeEnd: true,\n    keywords: CPP_KEYWORDS,\n    illegal: /[^\\w\\s\\*&:<>.]/,\n    contains: [\n      { // to prevent it from being confused as the function title\n        begin: DECLTYPE_AUTO_RE,\n        keywords: CPP_KEYWORDS,\n        relevance: 0\n      },\n      {\n        begin: FUNCTION_TITLE,\n        returnBegin: true,\n        contains: [ TITLE_MODE ],\n        relevance: 0\n      },\n      // needed because we do not have look-behind on the below rule\n      // to prevent it from grabbing the final : in a :: pair\n      {\n        begin: /::/,\n        relevance: 0\n      },\n      // initializers\n      {\n        begin: /:/,\n        endsWithParent: true,\n        contains: [\n          STRINGS,\n          NUMBERS\n        ]\n      },\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n        contains: [\n          C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          STRINGS,\n          NUMBERS,\n          CPP_PRIMITIVE_TYPES,\n          // Count matching parentheses.\n          {\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              'self',\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES\n            ]\n          }\n        ]\n      },\n      CPP_PRIMITIVE_TYPES,\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      PREPROCESSOR\n    ]\n  };\n\n  return {\n    name: 'C++',\n    aliases: [\n      'cc',\n      'c++',\n      'h++',\n      'hpp',\n      'hh',\n      'hxx',\n      'cxx'\n    ],\n    keywords: CPP_KEYWORDS,\n    illegal: ' rooms (9);`\n          begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n          end: '>',\n          keywords: CPP_KEYWORDS,\n          contains: [\n            'self',\n            CPP_PRIMITIVE_TYPES\n          ]\n        },\n        {\n          begin: hljs.IDENT_RE + '::',\n          keywords: CPP_KEYWORDS\n        },\n        {\n          className: 'class',\n          beginKeywords: 'enum class struct union',\n          end: /[{;:<>=]/,\n          contains: [\n            {\n              beginKeywords: \"final class struct\"\n            },\n            hljs.TITLE_MODE\n          ]\n        }\n      ]),\n    exports: {\n      preprocessor: PREPROCESSOR,\n      strings: STRINGS,\n      keywords: CPP_KEYWORDS\n    }\n  };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\n*/\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n  const ARDUINO_KW = {\n    keyword:\n      'boolean byte word String',\n    built_in:\n      'KeyboardController MouseController SoftwareSerial ' +\n      'EthernetServer EthernetClient LiquidCrystal ' +\n      'RobotControl GSMVoiceCall EthernetUDP EsploraTFT ' +\n      'HttpClient RobotMotor WiFiClient GSMScanner ' +\n      'FileSystem Scheduler GSMServer YunClient YunServer ' +\n      'IPAddress GSMClient GSMModem Keyboard Ethernet ' +\n      'Console GSMBand Esplora Stepper Process ' +\n      'WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage ' +\n      'Client Server GSMPIN FileIO Bridge Serial ' +\n      'EEPROM Stream Mouse Audio Servo File Task ' +\n      'GPRS WiFi Wire TFT GSM SPI SD ',\n    _:\n      'setup loop ' +\n      'runShellCommandAsynchronously analogWriteResolution ' +\n      'retrieveCallingNumber printFirmwareVersion ' +\n      'analogReadResolution sendDigitalPortPair ' +\n      'noListenOnLocalhost readJoystickButton setFirmwareVersion ' +\n      'readJoystickSwitch scrollDisplayRight getVoiceCallStatus ' +\n      'scrollDisplayLeft writeMicroseconds delayMicroseconds ' +\n      'beginTransmission getSignalStrength runAsynchronously ' +\n      'getAsynchronously listenOnLocalhost getCurrentCarrier ' +\n      'readAccelerometer messageAvailable sendDigitalPorts ' +\n      'lineFollowConfig countryNameWrite runShellCommand ' +\n      'readStringUntil rewindDirectory readTemperature ' +\n      'setClockDivider readLightSensor endTransmission ' +\n      'analogReference detachInterrupt countryNameRead ' +\n      'attachInterrupt encryptionType readBytesUntil ' +\n      'robotNameWrite readMicrophone robotNameRead cityNameWrite ' +\n      'userNameWrite readJoystickY readJoystickX mouseReleased ' +\n      'openNextFile scanNetworks noInterrupts digitalWrite ' +\n      'beginSpeaker mousePressed isActionDone mouseDragged ' +\n      'displayLogos noAutoscroll addParameter remoteNumber ' +\n      'getModifiers keyboardRead userNameRead waitContinue ' +\n      'processInput parseCommand printVersion readNetworks ' +\n      'writeMessage blinkVersion cityNameRead readMessage ' +\n      'setDataMode parsePacket isListening setBitOrder ' +\n      'beginPacket isDirectory motorsWrite drawCompass ' +\n      'digitalRead clearScreen serialEvent rightToLeft ' +\n      'setTextSize leftToRight requestFrom keyReleased ' +\n      'compassRead analogWrite interrupts WiFiServer ' +\n      'disconnect playMelody parseFloat autoscroll ' +\n      'getPINUsed setPINUsed setTimeout sendAnalog ' +\n      'readSlider analogRead beginWrite createChar ' +\n      'motorsStop keyPressed tempoWrite readButton ' +\n      'subnetMask debugPrint macAddress writeGreen ' +\n      'randomSeed attachGPRS readString sendString ' +\n      'remotePort releaseAll mouseMoved background ' +\n      'getXChange getYChange answerCall getResult ' +\n      'voiceCall endPacket constrain getSocket writeJSON ' +\n      'getButton available connected findUntil readBytes ' +\n      'exitValue readGreen writeBlue startLoop IPAddress ' +\n      'isPressed sendSysex pauseMode gatewayIP setCursor ' +\n      'getOemKey tuneWrite noDisplay loadImage switchPIN ' +\n      'onRequest onReceive changePIN playFile noBuffer ' +\n      'parseInt overflow checkPIN knobRead beginTFT ' +\n      'bitClear updateIR bitWrite position writeRGB ' +\n      'highByte writeRed setSpeed readBlue noStroke ' +\n      'remoteIP transfer shutdown hangCall beginSMS ' +\n      'endWrite attached maintain noCursor checkReg ' +\n      'checkPUK shiftOut isValid shiftIn pulseIn ' +\n      'connect println localIP pinMode getIMEI ' +\n      'display noBlink process getBand running beginSD ' +\n      'drawBMP lowByte setBand release bitRead prepare ' +\n      'pointTo readRed setMode noFill remove listen ' +\n      'stroke detach attach noTone exists buffer ' +\n      'height bitSet circle config cursor random ' +\n      'IRread setDNS endSMS getKey micros ' +\n      'millis begin print write ready flush width ' +\n      'isPIN blink clear press mkdir rmdir close ' +\n      'point yield image BSSID click delay ' +\n      'read text move peek beep rect line open ' +\n      'seek fill size turn stop home find ' +\n      'step tone sqrt RSSI SSID ' +\n      'end bit tan cos sin pow map abs max ' +\n      'min get run put',\n    literal:\n      'DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE ' +\n      'REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP ' +\n      'SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN ' +\n      'INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL ' +\n      'DEFAULT OUTPUT INPUT HIGH LOW'\n  };\n\n  const ARDUINO = cPlusPlus(hljs);\n\n  const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n  kws.keyword += ' ' + ARDUINO_KW.keyword;\n  kws.literal += ' ' + ARDUINO_KW.literal;\n  kws.built_in += ' ' + ARDUINO_KW.built_in;\n  kws._ += ' ' + ARDUINO_KW._;\n\n  ARDUINO.name = 'Arduino';\n  ARDUINO.aliases = ['ino'];\n  ARDUINO.supersetOf = \"cpp\";\n\n  return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella \nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n  // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n  const COMMENT = {\n    variants: [\n      hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n        relevance: 0,\n        excludeBegin: true\n      }),\n      hljs.COMMENT('[;@]', '$', {\n        relevance: 0\n      }),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  return {\n    name: 'ARM Assembly',\n    case_insensitive: true,\n    aliases: ['arm'],\n    keywords: {\n      $pattern: '\\\\.?' + hljs.IDENT_RE,\n      meta:\n        // GNU preprocs\n        '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ' +\n        // ARM directives\n        'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n      built_in:\n        'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' + // standard registers\n        'pc lr sp ip sl sb fp ' + // typical regs plus backward compatibility\n        'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' + // more regs and fp\n        'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' + // coprocessor regs\n        'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' + // more coproc\n        'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' + // advanced SIMD NEON regs\n\n        // program status registers\n        'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf ' +\n        'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf ' +\n\n        // NEON and VFP registers\n        's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 ' +\n        's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 ' +\n        'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 ' +\n        'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +\n\n        '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n    },\n    contains: [\n      {\n        className: 'keyword',\n        begin: '\\\\b(' + // mnemonics\n            'adc|' +\n            '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|' +\n            'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|' +\n            'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|' +\n            'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|' +\n            'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|' +\n            'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|' +\n            'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|' +\n            'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|' +\n            'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|' +\n            'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|' +\n            '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|' +\n            'wfe|wfi|yield' +\n        ')' +\n        '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' + // condition codes\n        '[sptrx]?' + // legal postfixes\n        '(?=\\\\s)' // followed by space\n      },\n      COMMENT,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        begin: '\\'',\n        end: '[^\\\\\\\\]\\'',\n        relevance: 0\n      },\n      {\n        className: 'title',\n        begin: '\\\\|',\n        end: '\\\\|',\n        illegal: '\\\\n',\n        relevance: 0\n      },\n      {\n        className: 'number',\n        variants: [\n          { // hex\n            begin: '[#$=]?0x[0-9a-f]+'\n          },\n          { // bin\n            begin: '[#$=]?0b[01]+'\n          },\n          { // literal\n            begin: '[#$=]\\\\d+'\n          },\n          { // bare number\n            begin: '\\\\b\\\\d+'\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'symbol',\n        variants: [\n          { // GNU ARM syntax\n            begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:'\n          },\n          { // ARM syntax\n            begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+'\n          },\n          { // label reference\n            begin: '[=#]\\\\w+'\n          }\n        ],\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = armasm;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: AsciiDoc\nRequires: xml.js\nAuthor: Dan Allen \nWebsite: http://asciidoc.org\nDescription: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.\nCategory: markup\n*/\n\n/** @type LanguageFn */\nfunction asciidoc(hljs) {\n  const HORIZONTAL_RULE = {\n    begin: '^\\'{3,}[ \\\\t]*$',\n    relevance: 10\n  };\n  const ESCAPED_FORMATTING = [\n    // escaped constrained formatting marks (i.e., \\* \\_ or \\`)\n    {\n      begin: /\\\\[*_`]/\n    },\n    // escaped unconstrained formatting marks (i.e., \\\\** \\\\__ or \\\\``)\n    // must ignore until the next formatting marks\n    // this rule might not be 100% compliant with Asciidoctor 2.0 but we are entering undefined behavior territory...\n    {\n      begin: /\\\\\\\\\\*{2}[^\\n]*?\\*{2}/\n    },\n    {\n      begin: /\\\\\\\\_{2}[^\\n]*_{2}/\n    },\n    {\n      begin: /\\\\\\\\`{2}[^\\n]*`{2}/\n    },\n    // guard: constrained formatting mark may not be preceded by \":\", \";\" or\n    // \"}\". match these so the constrained rule doesn't see them\n    {\n      begin: /[:;}][*_`](?![*_`])/\n    }\n  ];\n  const STRONG = [\n    // inline unconstrained strong (single line)\n    {\n      className: 'strong',\n      begin: /\\*{2}([^\\n]+?)\\*{2}/\n    },\n    // inline unconstrained strong (multi-line)\n    {\n      className: 'strong',\n      begin: concat(\n        /\\*\\*/,\n        /((\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])+\\n)+/,\n        /(\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])*/,\n        /\\*\\*/\n      ),\n      relevance: 0\n    },\n    // inline constrained strong (single line)\n    {\n      className: 'strong',\n      // must not precede or follow a word character\n      begin: /\\B\\*(\\S|\\S[^\\n]*?\\S)\\*(?!\\w)/\n    },\n    // inline constrained strong (multi-line)\n    {\n      className: 'strong',\n      // must not precede or follow a word character\n      begin: /\\*[^\\s]([^\\n]+\\n)+([^\\n]+)\\*/\n    }\n  ];\n  const EMPHASIS = [\n    // inline unconstrained emphasis (single line)\n    {\n      className: 'emphasis',\n      begin: /_{2}([^\\n]+?)_{2}/\n    },\n    // inline unconstrained emphasis (multi-line)\n    {\n      className: 'emphasis',\n      begin: concat(\n        /__/,\n        /((_(?!_)|\\\\[^\\n]|[^_\\n\\\\])+\\n)+/,\n        /(_(?!_)|\\\\[^\\n]|[^_\\n\\\\])*/,\n        /__/\n      ),\n      relevance: 0\n    },\n    // inline constrained emphasis (single line)\n    {\n      className: 'emphasis',\n      // must not precede or follow a word character\n      begin: /\\b_(\\S|\\S[^\\n]*?\\S)_(?!\\w)/\n    },\n    // inline constrained emphasis (multi-line)\n    {\n      className: 'emphasis',\n      // must not precede or follow a word character\n      begin: /_[^\\s]([^\\n]+\\n)+([^\\n]+)_/\n    },\n    // inline constrained emphasis using single quote (legacy)\n    {\n      className: 'emphasis',\n      // must not follow a word character or be followed by a single quote or space\n      begin: '\\\\B\\'(?![\\'\\\\s])',\n      end: '(\\\\n{2}|\\')',\n      // allow escaped single quote followed by word char\n      contains: [{\n        begin: '\\\\\\\\\\'\\\\w',\n        relevance: 0\n      }],\n      relevance: 0\n    }\n  ];\n  const ADMONITION = {\n    className: 'symbol',\n    begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+',\n    relevance: 10\n  };\n  const BULLET_LIST = {\n    className: 'bullet',\n    begin: '^(\\\\*+|-+|\\\\.+|[^\\\\n]+?::)\\\\s+'\n  };\n\n  return {\n    name: 'AsciiDoc',\n    aliases: ['adoc'],\n    contains: [\n      // block comment\n      hljs.COMMENT(\n        '^/{4,}\\\\n',\n        '\\\\n/{4,}$',\n        // can also be done as...\n        // '^/{4,}$',\n        // '^/{4,}$',\n        {\n          relevance: 10\n        }\n      ),\n      // line comment\n      hljs.COMMENT(\n        '^//',\n        '$',\n        {\n          relevance: 0\n        }\n      ),\n      // title\n      {\n        className: 'title',\n        begin: '^\\\\.\\\\w.*$'\n      },\n      // example, admonition & sidebar blocks\n      {\n        begin: '^[=\\\\*]{4,}\\\\n',\n        end: '\\\\n^[=\\\\*]{4,}$',\n        relevance: 10\n      },\n      // headings\n      {\n        className: 'section',\n        relevance: 10,\n        variants: [\n          {\n            begin: '^(={1,6})[ \\t].+?([ \\t]\\\\1)?$'\n          },\n          {\n            begin: '^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$'\n          }\n        ]\n      },\n      // document attributes\n      {\n        className: 'meta',\n        begin: '^:.+?:',\n        end: '\\\\s',\n        excludeEnd: true,\n        relevance: 10\n      },\n      // block attributes\n      {\n        className: 'meta',\n        begin: '^\\\\[.+?\\\\]$',\n        relevance: 0\n      },\n      // quoteblocks\n      {\n        className: 'quote',\n        begin: '^_{4,}\\\\n',\n        end: '\\\\n_{4,}$',\n        relevance: 10\n      },\n      // listing and literal blocks\n      {\n        className: 'code',\n        begin: '^[\\\\-\\\\.]{4,}\\\\n',\n        end: '\\\\n[\\\\-\\\\.]{4,}$',\n        relevance: 10\n      },\n      // passthrough blocks\n      {\n        begin: '^\\\\+{4,}\\\\n',\n        end: '\\\\n\\\\+{4,}$',\n        contains: [{\n          begin: '<',\n          end: '>',\n          subLanguage: 'xml',\n          relevance: 0\n        }],\n        relevance: 10\n      },\n\n      BULLET_LIST,\n      ADMONITION,\n      ...ESCAPED_FORMATTING,\n      ...STRONG,\n      ...EMPHASIS,\n\n      // inline smart quotes\n      {\n        className: 'string',\n        variants: [\n          {\n            begin: \"``.+?''\"\n          },\n          {\n            begin: \"`.+?'\"\n          }\n        ]\n      },\n      // inline unconstrained emphasis\n      {\n        className: 'code',\n        begin: /`{2}/,\n        end: /(\\n{2}|`{2})/\n      },\n      // inline code snippets (TODO should get same treatment as strong and emphasis)\n      {\n        className: 'code',\n        begin: '(`.+?`|\\\\+.+?\\\\+)',\n        relevance: 0\n      },\n      // indented literal block\n      {\n        className: 'code',\n        begin: '^[ \\\\t]',\n        end: '$',\n        relevance: 0\n      },\n      HORIZONTAL_RULE,\n      // images and links\n      {\n        begin: '(link:)?(http|https|ftp|file|irc|image:?):\\\\S+?\\\\[[^[]*?\\\\]',\n        returnBegin: true,\n        contains: [\n          {\n            begin: '(link|image:?):',\n            relevance: 0\n          },\n          {\n            className: 'link',\n            begin: '\\\\w',\n            end: '[^\\\\[]+',\n            relevance: 0\n          },\n          {\n            className: 'string',\n            begin: '\\\\[',\n            end: '\\\\]',\n            excludeBegin: true,\n            excludeEnd: true,\n            relevance: 0\n          }\n        ],\n        relevance: 10\n      }\n    ]\n  };\n}\n\nmodule.exports = asciidoc;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: AspectJ\nAuthor: Hakan Ozler \nWebsite: https://www.eclipse.org/aspectj/\nDescription: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction aspectj(hljs) {\n  const KEYWORDS =\n    'false synchronized int abstract float private char boolean static null if const ' +\n    'for true while long throw strictfp finally protected import native final return void ' +\n    'enum else extends implements break transient new catch instanceof byte super volatile case ' +\n    'assert short package default double public try this switch continue throws privileged ' +\n    'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +\n    'staticinitialization withincode target within execution getWithinTypeName handler ' +\n    'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents ' +\n    'warning error soft precedence thisAspectInstance';\n  const SHORTKEYS = 'get set args call';\n\n  return {\n    name: 'AspectJ',\n    keywords: KEYWORDS,\n    illegal: /<\\/|#/,\n    contains: [\n      hljs.COMMENT(\n        /\\/\\*\\*/,\n        /\\*\\//,\n        {\n          relevance: 0,\n          contains: [\n            {\n              // eat up @'s in emails to prevent them to be recognized as doctags\n              begin: /\\w+@/,\n              relevance: 0\n            },\n            {\n              className: 'doctag',\n              begin: /@[A-Za-z]+/\n            }\n          ]\n        }\n      ),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'class',\n        beginKeywords: 'aspect',\n        end: /[{;=]/,\n        excludeEnd: true,\n        illegal: /[:;\"\\[\\]]/,\n        contains: [\n          {\n            beginKeywords: 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'\n          },\n          hljs.UNDERSCORE_TITLE_MODE,\n          {\n            begin: /\\([^\\)]*/,\n            end: /[)]+/,\n            keywords: KEYWORDS + ' ' + SHORTKEYS,\n            excludeEnd: false\n          }\n        ]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class interface',\n        end: /[{;=]/,\n        excludeEnd: true,\n        relevance: 0,\n        keywords: 'class interface',\n        illegal: /[:\"\\[\\]]/,\n        contains: [\n          {\n            beginKeywords: 'extends implements'\n          },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        // AspectJ Constructs\n        beginKeywords: 'pointcut after before around throwing returning',\n        end: /[)]/,\n        excludeEnd: false,\n        illegal: /[\"\\[\\]]/,\n        contains: [\n          {\n            begin: concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n            returnBegin: true,\n            contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n          }\n        ]\n      },\n      {\n        begin: /[:]/,\n        returnBegin: true,\n        end: /[{;]/,\n        relevance: 0,\n        excludeEnd: false,\n        keywords: KEYWORDS,\n        illegal: /[\"\\[\\]]/,\n        contains: [\n          {\n            begin: concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n            keywords: KEYWORDS + ' ' + SHORTKEYS,\n            relevance: 0\n          },\n          hljs.QUOTE_STRING_MODE\n        ]\n      },\n      {\n        // this prevents 'new Name(...), or throw ...' from being recognized as a function definition\n        beginKeywords: 'new throw',\n        relevance: 0\n      },\n      {\n        // the function class is a bit different for AspectJ compared to the Java language\n        className: 'function',\n        begin: /\\w+ +\\w+(\\.\\w+)?\\s*\\([^\\)]*\\)\\s*((throws)[\\w\\s,]+)?[\\{;]/,\n        returnBegin: true,\n        end: /[{;=]/,\n        keywords: KEYWORDS,\n        excludeEnd: true,\n        contains: [\n          {\n            begin: concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n            returnBegin: true,\n            relevance: 0,\n            contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n          },\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            relevance: 0,\n            keywords: KEYWORDS,\n            contains: [\n              hljs.APOS_STRING_MODE,\n              hljs.QUOTE_STRING_MODE,\n              hljs.C_NUMBER_MODE,\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          },\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      hljs.C_NUMBER_MODE,\n      {\n        // annotation is also used in this language\n        className: 'meta',\n        begin: /@[A-Za-z]+/\n      }\n    ]\n  };\n}\n\nmodule.exports = aspectj;\n","/*\nLanguage: AutoHotkey\nAuthor: Seongwon Lee \nDescription: AutoHotkey language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autohotkey(hljs) {\n  const BACKTICK_ESCAPE = {\n    begin: '`[\\\\s\\\\S]'\n  };\n\n  return {\n    name: 'AutoHotkey',\n    case_insensitive: true,\n    aliases: ['ahk'],\n    keywords: {\n      keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',\n      literal: 'true false NOT AND OR',\n      built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel'\n    },\n    contains: [\n      BACKTICK_ESCAPE,\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        contains: [BACKTICK_ESCAPE]\n      }),\n      hljs.COMMENT(';', '$', {\n        relevance: 0\n      }),\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'number',\n        begin: hljs.NUMBER_RE,\n        relevance: 0\n      },\n      {\n        // subst would be the most accurate however fails the point of\n        // highlighting. variable is comparably the most accurate that actually\n        // has some effect\n        className: 'variable',\n        begin: '%[a-zA-Z0-9#_$@]+%'\n      },\n      {\n        className: 'built_in',\n        begin: '^\\\\s*\\\\w+\\\\s*(,|%)'\n        // I don't really know if this is totally relevant\n      },\n      {\n        // symbol would be most accurate however is highlighted just like\n        // built_in and that makes up a lot of AutoHotkey code meaning that it\n        // would fail to highlight anything\n        className: 'title',\n        variants: [\n          {\n            begin: '^[^\\\\n\";]+::(?!=)'\n          },\n          {\n            begin: '^[^\\\\n\";]+:(?!=)',\n            // zero relevance as it catches a lot of things\n            // followed by a single ':' in many languages\n            relevance: 0\n          }\n        ]\n      },\n      {\n        className: 'meta',\n        begin: '^\\\\s*#\\\\w+',\n        end: '$',\n        relevance: 0\n      },\n      {\n        className: 'built_in',\n        begin: 'A_[a-zA-Z0-9]+'\n      },\n      {\n        // consecutive commas, not for highlighting but just for relevance\n        begin: ',\\\\s*,'\n      }\n    ]\n  };\n}\n\nmodule.exports = autohotkey;\n","/*\nLanguage: AutoIt\nAuthor: Manh Tuan \nDescription: AutoIt language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autoit(hljs) {\n  const KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +\n        'Dim Do Else ElseIf EndFunc EndIf EndSelect ' +\n        'EndSwitch EndWith Enum Exit ExitLoop For Func ' +\n        'Global If In Local Next ReDim Return Select Static ' +\n        'Step Switch Then To Until Volatile WEnd While With';\n\n  const DIRECTIVES = [\n    \"EndRegion\",\n    \"forcedef\",\n    \"forceref\",\n    \"ignorefunc\",\n    \"include\",\n    \"include-once\",\n    \"NoTrayIcon\",\n    \"OnAutoItStartRegister\",\n    \"pragma\",\n    \"Region\",\n    \"RequireAdmin\",\n    \"Tidy_Off\",\n    \"Tidy_On\",\n    \"Tidy_Parameters\"\n  ];\n  \n  const LITERAL = 'True False And Null Not Or Default';\n\n  const BUILT_IN\n          = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive';\n\n  const COMMENT = {\n    variants: [\n      hljs.COMMENT(';', '$', {\n        relevance: 0\n      }),\n      hljs.COMMENT('#cs', '#ce'),\n      hljs.COMMENT('#comments-start', '#comments-end')\n    ]\n  };\n\n  const VARIABLE = {\n    begin: '\\\\$[A-z0-9_]+'\n  };\n\n  const STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: /\"/,\n        end: /\"/,\n        contains: [{\n          begin: /\"\"/,\n          relevance: 0\n        }]\n      },\n      {\n        begin: /'/,\n        end: /'/,\n        contains: [{\n          begin: /''/,\n          relevance: 0\n        }]\n      }\n    ]\n  };\n\n  const NUMBER = {\n    variants: [\n      hljs.BINARY_NUMBER_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: '#',\n    end: '$',\n    keywords: {\n      'meta-keyword': DIRECTIVES\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      {\n        beginKeywords: 'include',\n        keywords: {\n          'meta-keyword': 'include'\n        },\n        end: '$',\n        contains: [\n          STRING,\n          {\n            className: 'meta-string',\n            variants: [\n              {\n                begin: '<',\n                end: '>'\n              },\n              {\n                begin: /\"/,\n                end: /\"/,\n                contains: [{\n                  begin: /\"\"/,\n                  relevance: 0\n                }]\n              },\n              {\n                begin: /'/,\n                end: /'/,\n                contains: [{\n                  begin: /''/,\n                  relevance: 0\n                }]\n              }\n            ]\n          }\n        ]\n      },\n      STRING,\n      COMMENT\n    ]\n  };\n\n  const CONSTANT = {\n    className: 'symbol',\n    // begin: '@',\n    // end: '$',\n    // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',\n    // relevance: 5\n    begin: '@[A-z0-9_]+'\n  };\n\n  const FUNCTION = {\n    className: 'function',\n    beginKeywords: 'Func',\n    end: '$',\n    illegal: '\\\\$|\\\\[|%',\n    contains: [\n      hljs.UNDERSCORE_TITLE_MODE,\n      {\n        className: 'params',\n        begin: '\\\\(',\n        end: '\\\\)',\n        contains: [\n          VARIABLE,\n          STRING,\n          NUMBER\n        ]\n      }\n    ]\n  };\n\n  return {\n    name: 'AutoIt',\n    case_insensitive: true,\n    illegal: /\\/\\*/,\n    keywords: {\n      keyword: KEYWORDS,\n      built_in: BUILT_IN,\n      literal: LITERAL\n    },\n    contains: [\n      COMMENT,\n      VARIABLE,\n      STRING,\n      NUMBER,\n      PREPROCESSOR,\n      CONSTANT,\n      FUNCTION\n    ]\n  };\n}\n\nmodule.exports = autoit;\n","/*\nLanguage: AVR Assembly\nAuthor: Vladimir Ermakov \nCategory: assembler\nWebsite: https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html\n*/\n\n/** @type LanguageFn */\nfunction avrasm(hljs) {\n  return {\n    name: 'AVR Assembly',\n    case_insensitive: true,\n    keywords: {\n      $pattern: '\\\\.?' + hljs.IDENT_RE,\n      keyword:\n        /* mnemonic */\n        'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +\n        'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +\n        'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +\n        'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +\n        'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +\n        'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +\n        'subi swap tst wdr',\n      built_in:\n        /* general purpose registers */\n        'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +\n        'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +\n        /* IO Registers (ATMega128) */\n        'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +\n        'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +\n        'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +\n        'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +\n        'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +\n        'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +\n        'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +\n        'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',\n      meta:\n        '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +\n        '.listmac .macro .nolist .org .set'\n    },\n    contains: [\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.COMMENT(\n        ';',\n        '$',\n        {\n          relevance: 0\n        }\n      ),\n      hljs.C_NUMBER_MODE, // 0x..., decimal, float\n      hljs.BINARY_NUMBER_MODE, // 0b...\n      {\n        className: 'number',\n        begin: '\\\\b(\\\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...\n      },\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        begin: '\\'',\n        end: '[^\\\\\\\\]\\'',\n        illegal: '[^\\\\\\\\][^\\']'\n      },\n      {\n        className: 'symbol',\n        begin: '^[A-Za-z0-9_.$]+:'\n      },\n      {\n        className: 'meta',\n        begin: '#',\n        end: '$'\n      },\n      { // substitution within a macro\n        className: 'subst',\n        begin: '@[0-9]+'\n      }\n    ]\n  };\n}\n\nmodule.exports = avrasm;\n","/*\nLanguage: Awk\nAuthor: Matthew Daly \nWebsite: https://www.gnu.org/software/gawk/manual/gawk.html\nDescription: language definition for Awk scripts\n*/\n\n/** @type LanguageFn */\nfunction awk(hljs) {\n  const VARIABLE = {\n    className: 'variable',\n    variants: [\n      {\n        begin: /\\$[\\w\\d#@][\\w\\d_]*/\n      },\n      {\n        begin: /\\$\\{(.*?)\\}/\n      }\n    ]\n  };\n  const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';\n  const STRING = {\n    className: 'string',\n    contains: [hljs.BACKSLASH_ESCAPE],\n    variants: [\n      {\n        begin: /(u|b)?r?'''/,\n        end: /'''/,\n        relevance: 10\n      },\n      {\n        begin: /(u|b)?r?\"\"\"/,\n        end: /\"\"\"/,\n        relevance: 10\n      },\n      {\n        begin: /(u|r|ur)'/,\n        end: /'/,\n        relevance: 10\n      },\n      {\n        begin: /(u|r|ur)\"/,\n        end: /\"/,\n        relevance: 10\n      },\n      {\n        begin: /(b|br)'/,\n        end: /'/\n      },\n      {\n        begin: /(b|br)\"/,\n        end: /\"/\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE\n    ]\n  };\n  return {\n    name: 'Awk',\n    keywords: {\n      keyword: KEYWORDS\n    },\n    contains: [\n      VARIABLE,\n      STRING,\n      hljs.REGEXP_MODE,\n      hljs.HASH_COMMENT_MODE,\n      hljs.NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = awk;\n","/*\nLanguage: Microsoft X++\nDescription: X++ is a language used in Microsoft Dynamics 365, Dynamics AX, and Axapta.\nAuthor: Dmitri Roudakov \nWebsite: https://dynamics.microsoft.com/en-us/ax-overview/\nCategory: enterprise\n*/\n\n/** @type LanguageFn */\nfunction axapta(hljs) {\n  const BUILT_IN_KEYWORDS = [\n    'anytype',\n    'boolean',\n    'byte',\n    'char',\n    'container',\n    'date',\n    'double',\n    'enum',\n    'guid',\n    'int',\n    'int64',\n    'long',\n    'real',\n    'short',\n    'str',\n    'utcdatetime',\n    'var'\n  ];\n\n  const LITERAL_KEYWORDS = [\n    'default',\n    'false',\n    'null',\n    'true'\n  ];\n\n  const NORMAL_KEYWORDS = [\n    'abstract',\n    'as',\n    'asc',\n    'avg',\n    'break',\n    'breakpoint',\n    'by',\n    'byref',\n    'case',\n    'catch',\n    'changecompany',\n    'class',\n    'client',\n    'client',\n    'common',\n    'const',\n    'continue',\n    'count',\n    'crosscompany',\n    'delegate',\n    'delete_from',\n    'desc',\n    'display',\n    'div',\n    'do',\n    'edit',\n    'else',\n    'eventhandler',\n    'exists',\n    'extends',\n    'final',\n    'finally',\n    'firstfast',\n    'firstonly',\n    'firstonly1',\n    'firstonly10',\n    'firstonly100',\n    'firstonly1000',\n    'flush',\n    'for',\n    'forceliterals',\n    'forcenestedloop',\n    'forceplaceholders',\n    'forceselectorder',\n    'forupdate',\n    'from',\n    'generateonly',\n    'group',\n    'hint',\n    'if',\n    'implements',\n    'in',\n    'index',\n    'insert_recordset',\n    'interface',\n    'internal',\n    'is',\n    'join',\n    'like',\n    'maxof',\n    'minof',\n    'mod',\n    'namespace',\n    'new',\n    'next',\n    'nofetch',\n    'notexists',\n    'optimisticlock',\n    'order',\n    'outer',\n    'pessimisticlock',\n    'print',\n    'private',\n    'protected',\n    'public',\n    'readonly',\n    'repeatableread',\n    'retry',\n    'return',\n    'reverse',\n    'select',\n    'server',\n    'setting',\n    'static',\n    'sum',\n    'super',\n    'switch',\n    'this',\n    'throw',\n    'try',\n    'ttsabort',\n    'ttsbegin',\n    'ttscommit',\n    'unchecked',\n    'update_recordset',\n    'using',\n    'validtimestate',\n    'void',\n    'where',\n    'while'\n  ];\n\n  const KEYWORDS = {\n    keyword: NORMAL_KEYWORDS,\n    built_in: BUILT_IN_KEYWORDS,\n    literal: LITERAL_KEYWORDS\n  };\n\n  return {\n    name: 'X++',\n    aliases: ['x++'],\n    keywords: KEYWORDS,\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'meta',\n        begin: '#',\n        end: '$'\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class interface',\n        end: /\\{/,\n        excludeEnd: true,\n        illegal: ':',\n        contains: [\n          {\n            beginKeywords: 'extends implements'\n          },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = axapta;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Bash\nAuthor: vah \nContributrors: Benjamin Pannell \nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n  const VAR = {};\n  const BRACED_VAR = {\n    begin: /\\$\\{/,\n    end:/\\}/,\n    contains: [\n      \"self\",\n      {\n        begin: /:-/,\n        contains: [ VAR ]\n      } // default values\n    ]\n  };\n  Object.assign(VAR,{\n    className: 'variable',\n    variants: [\n      {begin: concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n        // negative look-ahead tries to avoid matching patterns that are not\n        // Perl at all like $ident$, @ident@, etc.\n        `(?![\\\\w\\\\d])(?![$])`) },\n      BRACED_VAR\n    ]\n  });\n\n  const SUBST = {\n    className: 'subst',\n    begin: /\\$\\(/, end: /\\)/,\n    contains: [hljs.BACKSLASH_ESCAPE]\n  };\n  const HERE_DOC = {\n    begin: /<<-?\\s*(?=\\w+)/,\n    starts: {\n      contains: [\n        hljs.END_SAME_AS_BEGIN({\n          begin: /(\\w+)/,\n          end: /(\\w+)/,\n          className: 'string'\n        })\n      ]\n    }\n  };\n  const QUOTE_STRING = {\n    className: 'string',\n    begin: /\"/, end: /\"/,\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      VAR,\n      SUBST\n    ]\n  };\n  SUBST.contains.push(QUOTE_STRING);\n  const ESCAPED_QUOTE = {\n    className: '',\n    begin: /\\\\\"/\n\n  };\n  const APOS_STRING = {\n    className: 'string',\n    begin: /'/, end: /'/\n  };\n  const ARITHMETIC = {\n    begin: /\\$\\(\\(/,\n    end: /\\)\\)/,\n    contains: [\n      { begin: /\\d+#[0-9a-f]+/, className: \"number\" },\n      hljs.NUMBER_MODE,\n      VAR\n    ]\n  };\n  const SH_LIKE_SHELLS = [\n    \"fish\",\n    \"bash\",\n    \"zsh\",\n    \"sh\",\n    \"csh\",\n    \"ksh\",\n    \"tcsh\",\n    \"dash\",\n    \"scsh\",\n  ];\n  const KNOWN_SHEBANG = hljs.SHEBANG({\n    binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n    relevance: 10\n  });\n  const FUNCTION = {\n    className: 'function',\n    begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n    returnBegin: true,\n    contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\\w[\\w\\d_]*/})],\n    relevance: 0\n  };\n\n  return {\n    name: 'Bash',\n    aliases: ['sh', 'zsh'],\n    keywords: {\n      $pattern: /\\b[a-z._-]+\\b/,\n      keyword:\n        'if then else elif fi for while in do done case esac function',\n      literal:\n        'true false',\n      built_in:\n        // Shell built-ins\n        // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n        'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +\n        'trap umask unset ' +\n        // Bash built-ins\n        'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +\n        'read readarray source type typeset ulimit unalias ' +\n        // Shell modifiers\n        'set shopt ' +\n        // Zsh built-ins\n        'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +\n        'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +\n        'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +\n        'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +\n        'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +\n        'zpty zregexparse zsocket zstyle ztcp'\n    },\n    contains: [\n      KNOWN_SHEBANG, // to catch known shells and boost relevancy\n      hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n      FUNCTION,\n      ARITHMETIC,\n      hljs.HASH_COMMENT_MODE,\n      HERE_DOC,\n      QUOTE_STRING,\n      ESCAPED_QUOTE,\n      APOS_STRING,\n      VAR\n    ]\n  };\n}\n\nmodule.exports = bash;\n","/*\nLanguage: BASIC\nAuthor: Raphaël Assénat \nDescription: Based on the BASIC reference from the Tandy 1000 guide\nWebsite: https://en.wikipedia.org/wiki/Tandy_1000\n*/\n\n/** @type LanguageFn */\nfunction basic(hljs) {\n  return {\n    name: 'BASIC',\n    case_insensitive: true,\n    illegal: '^\\.',\n    // Support explicitly typed variables that end with $%! or #.\n    keywords: {\n      $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*',\n      keyword:\n        'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' +\n        'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' +\n        'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' +\n        'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' +\n        'HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' +\n        'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' +\n        'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' +\n        'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' +\n        'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' +\n        'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' +\n        'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' +\n        'WEND WIDTH WINDOW WRITE XOR'\n    },\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      hljs.COMMENT('REM', '$', {\n        relevance: 10\n      }),\n      hljs.COMMENT('\\'', '$', {\n        relevance: 0\n      }),\n      {\n        // Match line numbers\n        className: 'symbol',\n        begin: '^[0-9]+ ',\n        relevance: 10\n      },\n      {\n        // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)\n        className: 'number',\n        begin: '\\\\b\\\\d+(\\\\.\\\\d+)?([edED]\\\\d+)?[#\\!]?',\n        relevance: 0\n      },\n      {\n        // Match hexadecimal numbers (&Hxxxx)\n        className: 'number',\n        begin: '(&[hH][0-9a-fA-F]{1,4})'\n      },\n      {\n        // Match octal numbers (&Oxxxxxx)\n        className: 'number',\n        begin: '(&[oO][0-7]{1,6})'\n      }\n    ]\n  };\n}\n\nmodule.exports = basic;\n","/*\nLanguage: Backus–Naur Form\nWebsite: https://en.wikipedia.org/wiki/Backus–Naur_form\nAuthor: Oleg Efimov \n*/\n\n/** @type LanguageFn */\nfunction bnf(hljs) {\n  return {\n    name: 'Backus–Naur Form',\n    contains: [\n      // Attribute\n      {\n        className: 'attribute',\n        begin: //\n      },\n      // Specific\n      {\n        begin: /::=/,\n        end: /$/,\n        contains: [\n          {\n            begin: //\n          },\n          // Common\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.APOS_STRING_MODE,\n          hljs.QUOTE_STRING_MODE\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = bnf;\n","/*\nLanguage: Brainfuck\nAuthor: Evgeny Stepanischev \nWebsite: https://esolangs.org/wiki/Brainfuck\n*/\n\n/** @type LanguageFn */\nfunction brainfuck(hljs) {\n  const LITERAL = {\n    className: 'literal',\n    begin: /[+-]/,\n    relevance: 0\n  };\n  return {\n    name: 'Brainfuck',\n    aliases: ['bf'],\n    contains: [\n      hljs.COMMENT(\n        '[^\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n        '[\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n        {\n          returnEnd: true,\n          relevance: 0\n        }\n      ),\n      {\n        className: 'title',\n        begin: '[\\\\[\\\\]]',\n        relevance: 0\n      },\n      {\n        className: 'string',\n        begin: '[\\\\.,]',\n        relevance: 0\n      },\n      {\n        // this mode works as the only relevance counter\n        begin: /(?:\\+\\+|--)/,\n        contains: [LITERAL]\n      },\n      LITERAL\n    ]\n  };\n}\n\nmodule.exports = brainfuck;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n    contains: [\n      {\n        begin: /\\\\\\n/\n      }\n    ]\n  });\n  const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n  const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n  const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n  const FUNCTION_TYPE_RE = '(' +\n    DECLTYPE_AUTO_RE + '|' +\n    optional(NAMESPACE_RE) +\n    '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n  ')';\n  const CPP_PRIMITIVE_TYPES = {\n    className: 'keyword',\n    begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n  };\n\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n  const STRINGS = {\n    className: 'string',\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n        end: '\\'',\n        illegal: '.'\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/\n      })\n    ]\n  };\n\n  const NUMBERS = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(0b[01\\']+)'\n      },\n      {\n        begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n      },\n      {\n        begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n      }\n    ],\n    relevance: 0\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      'meta-keyword':\n        'if else elif endif define undef warning error line ' +\n        'pragma _Pragma ifdef ifndef include'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      hljs.inherit(STRINGS, {\n        className: 'meta-string'\n      }),\n      {\n        className: 'meta-string',\n        begin: /<.*?>/\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  const TITLE_MODE = {\n    className: 'title',\n    begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n    relevance: 0\n  };\n\n  const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n  const COMMON_CPP_HINTS = [\n    'asin',\n    'atan2',\n    'atan',\n    'calloc',\n    'ceil',\n    'cosh',\n    'cos',\n    'exit',\n    'exp',\n    'fabs',\n    'floor',\n    'fmod',\n    'fprintf',\n    'fputs',\n    'free',\n    'frexp',\n    'auto_ptr',\n    'deque',\n    'list',\n    'queue',\n    'stack',\n    'vector',\n    'map',\n    'set',\n    'pair',\n    'bitset',\n    'multiset',\n    'multimap',\n    'unordered_set',\n    'fscanf',\n    'future',\n    'isalnum',\n    'isalpha',\n    'iscntrl',\n    'isdigit',\n    'isgraph',\n    'islower',\n    'isprint',\n    'ispunct',\n    'isspace',\n    'isupper',\n    'isxdigit',\n    'tolower',\n    'toupper',\n    'labs',\n    'ldexp',\n    'log10',\n    'log',\n    'malloc',\n    'realloc',\n    'memchr',\n    'memcmp',\n    'memcpy',\n    'memset',\n    'modf',\n    'pow',\n    'printf',\n    'putchar',\n    'puts',\n    'scanf',\n    'sinh',\n    'sin',\n    'snprintf',\n    'sprintf',\n    'sqrt',\n    'sscanf',\n    'strcat',\n    'strchr',\n    'strcmp',\n    'strcpy',\n    'strcspn',\n    'strlen',\n    'strncat',\n    'strncmp',\n    'strncpy',\n    'strpbrk',\n    'strrchr',\n    'strspn',\n    'strstr',\n    'tanh',\n    'tan',\n    'unordered_map',\n    'unordered_multiset',\n    'unordered_multimap',\n    'priority_queue',\n    'make_pair',\n    'array',\n    'shared_ptr',\n    'abort',\n    'terminate',\n    'abs',\n    'acos',\n    'vfprintf',\n    'vprintf',\n    'vsprintf',\n    'endl',\n    'initializer_list',\n    'unique_ptr',\n    'complex',\n    'imaginary',\n    'std',\n    'string',\n    'wstring',\n    'cin',\n    'cout',\n    'cerr',\n    'clog',\n    'stdin',\n    'stdout',\n    'stderr',\n    'stringstream',\n    'istringstream',\n    'ostringstream'\n  ];\n\n  const CPP_KEYWORDS = {\n    keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n      'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n      'unsigned long volatile static protected bool template mutable if public friend ' +\n      'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n      'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n      'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n      'concept co_await co_return co_yield requires ' +\n      'noexcept static_assert thread_local restrict final override ' +\n      'atomic_bool atomic_char atomic_schar ' +\n      'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n      'atomic_ullong new throw return ' +\n      'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n    built_in: '_Bool _Complex _Imaginary',\n    _relevance_hints: COMMON_CPP_HINTS,\n    literal: 'true false nullptr NULL'\n  };\n\n  const FUNCTION_DISPATCH = {\n    className: \"function.dispatch\",\n    relevance: 0,\n    keywords: CPP_KEYWORDS,\n    begin: concat(\n      /\\b/,\n      /(?!decltype)/,\n      /(?!if)/,\n      /(?!for)/,\n      /(?!while)/,\n      hljs.IDENT_RE,\n      lookahead(/\\s*\\(/))\n  };\n\n  const EXPRESSION_CONTAINS = [\n    FUNCTION_DISPATCH,\n    PREPROCESSOR,\n    CPP_PRIMITIVE_TYPES,\n    C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    NUMBERS,\n    STRINGS\n  ];\n\n\n  const EXPRESSION_CONTEXT = {\n    // This mode covers expression context where we can't expect a function\n    // definition and shouldn't highlight anything that looks like one:\n    // `return some()`, `else if()`, `(x*sum(1, 2))`\n    variants: [\n      {\n        begin: /=/,\n        end: /;/\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/\n      },\n      {\n        beginKeywords: 'new throw return else',\n        end: /;/\n      }\n    ],\n    keywords: CPP_KEYWORDS,\n    contains: EXPRESSION_CONTAINS.concat([\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n        relevance: 0\n      }\n    ]),\n    relevance: 0\n  };\n\n  const FUNCTION_DECLARATION = {\n    className: 'function',\n    begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n    returnBegin: true,\n    end: /[{;=]/,\n    excludeEnd: true,\n    keywords: CPP_KEYWORDS,\n    illegal: /[^\\w\\s\\*&:<>.]/,\n    contains: [\n      { // to prevent it from being confused as the function title\n        begin: DECLTYPE_AUTO_RE,\n        keywords: CPP_KEYWORDS,\n        relevance: 0\n      },\n      {\n        begin: FUNCTION_TITLE,\n        returnBegin: true,\n        contains: [ TITLE_MODE ],\n        relevance: 0\n      },\n      // needed because we do not have look-behind on the below rule\n      // to prevent it from grabbing the final : in a :: pair\n      {\n        begin: /::/,\n        relevance: 0\n      },\n      // initializers\n      {\n        begin: /:/,\n        endsWithParent: true,\n        contains: [\n          STRINGS,\n          NUMBERS\n        ]\n      },\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n        contains: [\n          C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          STRINGS,\n          NUMBERS,\n          CPP_PRIMITIVE_TYPES,\n          // Count matching parentheses.\n          {\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              'self',\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES\n            ]\n          }\n        ]\n      },\n      CPP_PRIMITIVE_TYPES,\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      PREPROCESSOR\n    ]\n  };\n\n  return {\n    name: 'C++',\n    aliases: [\n      'cc',\n      'c++',\n      'h++',\n      'hpp',\n      'hh',\n      'hxx',\n      'cxx'\n    ],\n    keywords: CPP_KEYWORDS,\n    illegal: ' rooms (9);`\n          begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n          end: '>',\n          keywords: CPP_KEYWORDS,\n          contains: [\n            'self',\n            CPP_PRIMITIVE_TYPES\n          ]\n        },\n        {\n          begin: hljs.IDENT_RE + '::',\n          keywords: CPP_KEYWORDS\n        },\n        {\n          className: 'class',\n          beginKeywords: 'enum class struct union',\n          end: /[{;:<>=]/,\n          contains: [\n            {\n              beginKeywords: \"final class struct\"\n            },\n            hljs.TITLE_MODE\n          ]\n        }\n      ]),\n    exports: {\n      preprocessor: PREPROCESSOR,\n      strings: STRINGS,\n      keywords: CPP_KEYWORDS\n    }\n  };\n}\n\n/*\nLanguage: C-like (deprecated, use C and C++ instead)\nAuthor: Ivan Sagalaev \nContributors: Evgeny Stepanischev , Zaven Muradyan , Roel Deckers , Sam Wu , Jordi Petit , Pieter Vantorre , Google Inc. (David Benjamin) \n*/\n\n/** @type LanguageFn */\nfunction cLike(hljs) {\n  const lang = cPlusPlus(hljs);\n\n  const C_ALIASES = [\n    \"c\",\n    \"h\"\n  ];\n\n  const CPP_ALIASES = [\n    'cc',\n    'c++',\n    'h++',\n    'hpp',\n    'hh',\n    'hxx',\n    'cxx'\n  ];\n\n  lang.disableAutodetect = true;\n  lang.aliases = [];\n  // support users only loading c-like (legacy)\n  if (!hljs.getLanguage(\"c\")) lang.aliases.push(...C_ALIASES);\n  if (!hljs.getLanguage(\"cpp\")) lang.aliases.push(...CPP_ALIASES);\n\n  // if c and cpp are loaded after then they will reclaim these\n  // aliases for themselves\n\n  return lang;\n}\n\nmodule.exports = cLike;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n    contains: [\n      {\n        begin: /\\\\\\n/\n      }\n    ]\n  });\n  const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n  const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n  const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n  const FUNCTION_TYPE_RE = '(' +\n    DECLTYPE_AUTO_RE + '|' +\n    optional(NAMESPACE_RE) +\n    '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n  ')';\n  const CPP_PRIMITIVE_TYPES = {\n    className: 'keyword',\n    begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n  };\n\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n  const STRINGS = {\n    className: 'string',\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n        end: '\\'',\n        illegal: '.'\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/\n      })\n    ]\n  };\n\n  const NUMBERS = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(0b[01\\']+)'\n      },\n      {\n        begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n      },\n      {\n        begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n      }\n    ],\n    relevance: 0\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      'meta-keyword':\n        'if else elif endif define undef warning error line ' +\n        'pragma _Pragma ifdef ifndef include'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      hljs.inherit(STRINGS, {\n        className: 'meta-string'\n      }),\n      {\n        className: 'meta-string',\n        begin: /<.*?>/\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  const TITLE_MODE = {\n    className: 'title',\n    begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n    relevance: 0\n  };\n\n  const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n  const CPP_KEYWORDS = {\n    keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n      'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n      'unsigned long volatile static protected bool template mutable if public friend ' +\n      'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n      'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n      'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n      'concept co_await co_return co_yield requires ' +\n      'noexcept static_assert thread_local restrict final override ' +\n      'atomic_bool atomic_char atomic_schar ' +\n      'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n      'atomic_ullong new throw return ' +\n      'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n    built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +\n      'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set ' +\n      'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos ' +\n      'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +\n      'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +\n      'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +\n      'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +\n      'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +\n      'vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary',\n    literal: 'true false nullptr NULL'\n  };\n\n  const EXPRESSION_CONTAINS = [\n    PREPROCESSOR,\n    CPP_PRIMITIVE_TYPES,\n    C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    NUMBERS,\n    STRINGS\n  ];\n\n  const EXPRESSION_CONTEXT = {\n    // This mode covers expression context where we can't expect a function\n    // definition and shouldn't highlight anything that looks like one:\n    // `return some()`, `else if()`, `(x*sum(1, 2))`\n    variants: [\n      {\n        begin: /=/,\n        end: /;/\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/\n      },\n      {\n        beginKeywords: 'new throw return else',\n        end: /;/\n      }\n    ],\n    keywords: CPP_KEYWORDS,\n    contains: EXPRESSION_CONTAINS.concat([\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n        relevance: 0\n      }\n    ]),\n    relevance: 0\n  };\n\n  const FUNCTION_DECLARATION = {\n    className: 'function',\n    begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n    returnBegin: true,\n    end: /[{;=]/,\n    excludeEnd: true,\n    keywords: CPP_KEYWORDS,\n    illegal: /[^\\w\\s\\*&:<>.]/,\n    contains: [\n      { // to prevent it from being confused as the function title\n        begin: DECLTYPE_AUTO_RE,\n        keywords: CPP_KEYWORDS,\n        relevance: 0\n      },\n      {\n        begin: FUNCTION_TITLE,\n        returnBegin: true,\n        contains: [ TITLE_MODE ],\n        relevance: 0\n      },\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n        contains: [\n          C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          STRINGS,\n          NUMBERS,\n          CPP_PRIMITIVE_TYPES,\n          // Count matching parentheses.\n          {\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              'self',\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES\n            ]\n          }\n        ]\n      },\n      CPP_PRIMITIVE_TYPES,\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      PREPROCESSOR\n    ]\n  };\n\n  return {\n    name: \"C\",\n    aliases: [\n      'h'\n    ],\n    keywords: CPP_KEYWORDS,\n    // Until differentiations are added between `c` and `cpp`, `c` will\n    // not be auto-detected to avoid auto-detect conflicts between C and C++\n    disableAutodetect: true,\n    illegal: ' rooms (9);`\n          begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n          end: '>',\n          keywords: CPP_KEYWORDS,\n          contains: [\n            'self',\n            CPP_PRIMITIVE_TYPES\n          ]\n        },\n        {\n          begin: hljs.IDENT_RE + '::',\n          keywords: CPP_KEYWORDS\n        },\n        {\n          className: 'class',\n          beginKeywords: 'enum class struct union',\n          end: /[{;:<>=]/,\n          contains: [\n            {\n              beginKeywords: \"final class struct\"\n            },\n            hljs.TITLE_MODE\n          ]\n        }\n      ]),\n    exports: {\n      preprocessor: PREPROCESSOR,\n      strings: STRINGS,\n      keywords: CPP_KEYWORDS\n    }\n  };\n}\n\nmodule.exports = c;\n","/*\nLanguage: C/AL\nAuthor: Kenneth Fuglsang Christensen \nDescription: Provides highlighting of Microsoft Dynamics NAV C/AL code files\nWebsite: https://docs.microsoft.com/en-us/dynamics-nav/programming-in-c-al\n*/\n\n/** @type LanguageFn */\nfunction cal(hljs) {\n  const KEYWORDS =\n    'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +\n    'until while with var';\n  const LITERALS = 'false true';\n  const COMMENT_MODES = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.COMMENT(\n      /\\{/,\n      /\\}/,\n      {\n        relevance: 0\n      }\n    ),\n    hljs.COMMENT(\n      /\\(\\*/,\n      /\\*\\)/,\n      {\n        relevance: 10\n      }\n    )\n  ];\n  const STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/,\n    contains: [{\n      begin: /''/\n    }]\n  };\n  const CHAR_STRING = {\n    className: 'string',\n    begin: /(#\\d+)+/\n  };\n  const DATE = {\n    className: 'number',\n    begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(DT|D|T)',\n    relevance: 0\n  };\n  const DBL_QUOTED_VARIABLE = {\n    className: 'string', // not a string technically but makes sense to be highlighted in the same style\n    begin: '\"',\n    end: '\"'\n  };\n\n  const PROCEDURE = {\n    className: 'function',\n    beginKeywords: 'procedure',\n    end: /[:;]/,\n    keywords: 'procedure|10',\n    contains: [\n      hljs.TITLE_MODE,\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: KEYWORDS,\n        contains: [\n          STRING,\n          CHAR_STRING\n        ]\n      }\n    ].concat(COMMENT_MODES)\n  };\n\n  const OBJECT = {\n    className: 'class',\n    begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\\\d+) ([^\\\\r\\\\n]+)',\n    returnBegin: true,\n    contains: [\n      hljs.TITLE_MODE,\n      PROCEDURE\n    ]\n  };\n\n  return {\n    name: 'C/AL',\n    case_insensitive: true,\n    keywords: {\n      keyword: KEYWORDS,\n      literal: LITERALS\n    },\n    illegal: /\\/\\*/,\n    contains: [\n      STRING,\n      CHAR_STRING,\n      DATE,\n      DBL_QUOTED_VARIABLE,\n      hljs.NUMBER_MODE,\n      OBJECT,\n      PROCEDURE\n    ]\n  };\n}\n\nmodule.exports = cal;\n","/*\nLanguage: Cap’n Proto\nAuthor: Oleg Efimov \nDescription: Cap’n Proto message definition format\nWebsite: https://capnproto.org/capnp-tool.html\nCategory: protocols\n*/\n\n/** @type LanguageFn */\nfunction capnproto(hljs) {\n  return {\n    name: 'Cap’n Proto',\n    aliases: ['capnp'],\n    keywords: {\n      keyword:\n        'struct enum interface union group import using const annotation extends in of on as with from fixed',\n      built_in:\n        'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +\n        'Text Data AnyPointer AnyStruct Capability List',\n      literal:\n        'true false'\n    },\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE,\n      hljs.HASH_COMMENT_MODE,\n      {\n        className: 'meta',\n        begin: /@0x[\\w\\d]{16};/,\n        illegal: /\\n/\n      },\n      {\n        className: 'symbol',\n        begin: /@\\d+\\b/\n      },\n      {\n        className: 'class',\n        beginKeywords: 'struct enum',\n        end: /\\{/,\n        illegal: /\\n/,\n        contains: [hljs.inherit(hljs.TITLE_MODE, {\n          starts: {\n            endsWithParent: true,\n            excludeEnd: true\n          } // hack: eating everything after the first title\n        })]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'interface',\n        end: /\\{/,\n        illegal: /\\n/,\n        contains: [hljs.inherit(hljs.TITLE_MODE, {\n          starts: {\n            endsWithParent: true,\n            excludeEnd: true\n          } // hack: eating everything after the first title\n        })]\n      }\n    ]\n  };\n}\n\nmodule.exports = capnproto;\n","/*\nLanguage: Ceylon\nAuthor: Lucas Werkmeister \nWebsite: https://ceylon-lang.org\n*/\n\n/** @type LanguageFn */\nfunction ceylon(hljs) {\n  // 2.3. Identifiers and keywords\n  const KEYWORDS =\n    'assembly module package import alias class interface object given value ' +\n    'assign void function new of extends satisfies abstracts in out return ' +\n    'break continue throw assert dynamic if else switch case for while try ' +\n    'catch finally then let this outer super is exists nonempty';\n  // 7.4.1 Declaration Modifiers\n  const DECLARATION_MODIFIERS =\n    'shared abstract formal default actual variable late native deprecated ' +\n    'final sealed annotation suppressWarnings small';\n  // 7.4.2 Documentation\n  const DOCUMENTATION =\n    'doc by license see throws tagged';\n  const SUBST = {\n    className: 'subst',\n    excludeBegin: true,\n    excludeEnd: true,\n    begin: /``/,\n    end: /``/,\n    keywords: KEYWORDS,\n    relevance: 10\n  };\n  const EXPRESSIONS = [\n    {\n      // verbatim string\n      className: 'string',\n      begin: '\"\"\"',\n      end: '\"\"\"',\n      relevance: 10\n    },\n    {\n      // string literal or template\n      className: 'string',\n      begin: '\"',\n      end: '\"',\n      contains: [SUBST]\n    },\n    {\n      // character literal\n      className: 'string',\n      begin: \"'\",\n      end: \"'\"\n    },\n    {\n      // numeric literal\n      className: 'number',\n      begin: '#[0-9a-fA-F_]+|\\\\$[01_]+|[0-9_]+(?:\\\\.[0-9_](?:[eE][+-]?\\\\d+)?)?[kMGTPmunpf]?',\n      relevance: 0\n    }\n  ];\n  SUBST.contains = EXPRESSIONS;\n\n  return {\n    name: 'Ceylon',\n    keywords: {\n      keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,\n      meta: DOCUMENTATION\n    },\n    illegal: '\\\\$[^01]|#[^0-9a-fA-F]',\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.COMMENT('/\\\\*', '\\\\*/', {\n        contains: ['self']\n      }),\n      {\n        // compiler annotation\n        className: 'meta',\n        begin: '@[a-z]\\\\w*(?::\"[^\"]*\")?'\n      }\n    ].concat(EXPRESSIONS)\n  };\n}\n\nmodule.exports = ceylon;\n","/*\nLanguage: Clean\nAuthor: Camil Staps \nCategory: functional\nWebsite: http://clean.cs.ru.nl\n*/\n\n/** @type LanguageFn */\nfunction clean(hljs) {\n  return {\n    name: 'Clean',\n    aliases: [\n      'icl',\n      'dcl'\n    ],\n    keywords: {\n      keyword:\n        'if let in with where case of class instance otherwise ' +\n        'implementation definition system module from import qualified as ' +\n        'special code inline foreign export ccall stdcall generic derive ' +\n        'infix infixl infixr',\n      built_in:\n        'Int Real Char Bool',\n      literal:\n        'True False'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      { // relevance booster\n        begin: '->|<-[|:]?|#!?|>>=|\\\\{\\\\||\\\\|\\\\}|:==|=:|<>'\n      }\n    ]\n  };\n}\n\nmodule.exports = clean;\n","/*\nLanguage: Clojure REPL\nDescription: Clojure REPL sessions\nAuthor: Ivan Sagalaev \nRequires: clojure.js\nWebsite: https://clojure.org\nCategory: lisp\n*/\n\n/** @type LanguageFn */\nfunction clojureRepl(hljs) {\n  return {\n    name: 'Clojure REPL',\n    contains: [\n      {\n        className: 'meta',\n        begin: /^([\\w.-]+|\\s*#_)?=>/,\n        starts: {\n          end: /$/,\n          subLanguage: 'clojure'\n        }\n      }\n    ]\n  };\n}\n\nmodule.exports = clojureRepl;\n","/*\nLanguage: Clojure\nDescription: Clojure syntax (based on lisp.js)\nAuthor: mfornos\nWebsite: https://clojure.org\nCategory: lisp\n*/\n\n/** @type LanguageFn */\nfunction clojure(hljs) {\n  const SYMBOLSTART = 'a-zA-Z_\\\\-!.?+*=<>&#\\'';\n  const SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';\n  const globals = 'def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord';\n  const keywords = {\n    $pattern: SYMBOL_RE,\n    'builtin-name':\n      // Clojure keywords\n      globals + ' ' +\n      'cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem ' +\n      'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? ' +\n      'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? ' +\n      'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? ' +\n      'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . ' +\n      'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last ' +\n      'drop-while while intern condp case reduced cycle split-at split-with repeat replicate ' +\n      'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext ' +\n      'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends ' +\n      'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler ' +\n      'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter ' +\n      'monitor-exit macroexpand macroexpand-1 for dosync and or ' +\n      'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert ' +\n      'peek pop doto proxy first rest cons cast coll last butlast ' +\n      'sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import ' +\n      'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! ' +\n      'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger ' +\n      'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline ' +\n      'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking ' +\n      'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! ' +\n      'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! ' +\n      'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty ' +\n      'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list ' +\n      'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer ' +\n      'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate ' +\n      'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta ' +\n      'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'\n  };\n\n  const SIMPLE_NUMBER_RE = '[-+]?\\\\d+(\\\\.\\\\d+)?';\n\n  const SYMBOL = {\n    begin: SYMBOL_RE,\n    relevance: 0\n  };\n  const NUMBER = {\n    className: 'number',\n    begin: SIMPLE_NUMBER_RE,\n    relevance: 0\n  };\n  const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    illegal: null\n  });\n  const COMMENT = hljs.COMMENT(\n    ';',\n    '$',\n    {\n      relevance: 0\n    }\n  );\n  const LITERAL = {\n    className: 'literal',\n    begin: /\\b(true|false|nil)\\b/\n  };\n  const COLLECTION = {\n    begin: '[\\\\[\\\\{]',\n    end: '[\\\\]\\\\}]'\n  };\n  const HINT = {\n    className: 'comment',\n    begin: '\\\\^' + SYMBOL_RE\n  };\n  const HINT_COL = hljs.COMMENT('\\\\^\\\\{', '\\\\}');\n  const KEY = {\n    className: 'symbol',\n    begin: '[:]{1,2}' + SYMBOL_RE\n  };\n  const LIST = {\n    begin: '\\\\(',\n    end: '\\\\)'\n  };\n  const BODY = {\n    endsWithParent: true,\n    relevance: 0\n  };\n  const NAME = {\n    keywords: keywords,\n    className: 'name',\n    begin: SYMBOL_RE,\n    relevance: 0,\n    starts: BODY\n  };\n  const DEFAULT_CONTAINS = [\n    LIST,\n    STRING,\n    HINT,\n    HINT_COL,\n    COMMENT,\n    KEY,\n    COLLECTION,\n    NUMBER,\n    LITERAL,\n    SYMBOL\n  ];\n\n  const GLOBAL = {\n    beginKeywords: globals,\n    lexemes: SYMBOL_RE,\n    end: '(\\\\[|#|\\\\d|\"|:|\\\\{|\\\\)|\\\\(|$)',\n    contains: [\n      {\n        className: 'title',\n        begin: SYMBOL_RE,\n        relevance: 0,\n        excludeEnd: true,\n        // we can only have a single title\n        endsParent: true\n      }\n    ].concat(DEFAULT_CONTAINS)\n  };\n\n  LIST.contains = [\n    hljs.COMMENT('comment', ''),\n    GLOBAL,\n    NAME,\n    BODY\n  ];\n  BODY.contains = DEFAULT_CONTAINS;\n  COLLECTION.contains = DEFAULT_CONTAINS;\n  HINT_COL.contains = [ COLLECTION ];\n\n  return {\n    name: 'Clojure',\n    aliases: [ 'clj' ],\n    illegal: /\\S/,\n    contains: [\n      LIST,\n      STRING,\n      HINT,\n      HINT_COL,\n      COMMENT,\n      KEY,\n      COLLECTION,\n      NUMBER,\n      LITERAL\n    ]\n  };\n}\n\nmodule.exports = clojure;\n","/*\nLanguage: CMake\nDescription: CMake is an open-source cross-platform system for build automation.\nAuthor: Igor Kalnitsky \nWebsite: https://cmake.org\n*/\n\n/** @type LanguageFn */\nfunction cmake(hljs) {\n  return {\n    name: 'CMake',\n    aliases: ['cmake.in'],\n    case_insensitive: true,\n    keywords: {\n      keyword:\n        // scripting commands\n        'break cmake_host_system_information cmake_minimum_required cmake_parse_arguments ' +\n        'cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro ' +\n        'endwhile execute_process file find_file find_library find_package find_path ' +\n        'find_program foreach function get_cmake_property get_directory_property ' +\n        'get_filename_component get_property if include include_guard list macro ' +\n        'mark_as_advanced math message option return separate_arguments ' +\n        'set_directory_properties set_property set site_name string unset variable_watch while ' +\n        // project commands\n        'add_compile_definitions add_compile_options add_custom_command add_custom_target ' +\n        'add_definitions add_dependencies add_executable add_library add_link_options ' +\n        'add_subdirectory add_test aux_source_directory build_command create_test_sourcelist ' +\n        'define_property enable_language enable_testing export fltk_wrap_ui ' +\n        'get_source_file_property get_target_property get_test_property include_directories ' +\n        'include_external_msproject include_regular_expression install link_directories ' +\n        'link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions ' +\n        'set_source_files_properties set_target_properties set_tests_properties source_group ' +\n        'target_compile_definitions target_compile_features target_compile_options ' +\n        'target_include_directories target_link_directories target_link_libraries ' +\n        'target_link_options target_sources try_compile try_run ' +\n        // CTest commands\n        'ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ' +\n        'ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ' +\n        'ctest_test ctest_update ctest_upload ' +\n        // deprecated commands\n        'build_name exec_program export_library_dependencies install_files install_programs ' +\n        'install_targets load_command make_directory output_required_files remove ' +\n        'subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file ' +\n        'qt5_use_modules qt5_use_package qt5_wrap_cpp ' +\n        // core keywords\n        'on off true false and or not command policy target test exists is_newer_than ' +\n        'is_directory is_symlink is_absolute matches less greater equal less_equal ' +\n        'greater_equal strless strgreater strequal strless_equal strgreater_equal version_less ' +\n        'version_greater version_equal version_less_equal version_greater_equal in_list defined'\n    },\n    contains: [\n      {\n        className: 'variable',\n        begin: /\\$\\{/,\n        end: /\\}/\n      },\n      hljs.HASH_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = cmake;\n","const KEYWORDS = [\n  \"as\", // for exports\n  \"in\",\n  \"of\",\n  \"if\",\n  \"for\",\n  \"while\",\n  \"finally\",\n  \"var\",\n  \"new\",\n  \"function\",\n  \"do\",\n  \"return\",\n  \"void\",\n  \"else\",\n  \"break\",\n  \"catch\",\n  \"instanceof\",\n  \"with\",\n  \"throw\",\n  \"case\",\n  \"default\",\n  \"try\",\n  \"switch\",\n  \"continue\",\n  \"typeof\",\n  \"delete\",\n  \"let\",\n  \"yield\",\n  \"const\",\n  \"class\",\n  // JS handles these with a special rule\n  // \"get\",\n  // \"set\",\n  \"debugger\",\n  \"async\",\n  \"await\",\n  \"static\",\n  \"import\",\n  \"from\",\n  \"export\",\n  \"extends\"\n];\nconst LITERALS = [\n  \"true\",\n  \"false\",\n  \"null\",\n  \"undefined\",\n  \"NaN\",\n  \"Infinity\"\n];\n\nconst TYPES = [\n  \"Intl\",\n  \"DataView\",\n  \"Number\",\n  \"Math\",\n  \"Date\",\n  \"String\",\n  \"RegExp\",\n  \"Object\",\n  \"Function\",\n  \"Boolean\",\n  \"Error\",\n  \"Symbol\",\n  \"Set\",\n  \"Map\",\n  \"WeakSet\",\n  \"WeakMap\",\n  \"Proxy\",\n  \"Reflect\",\n  \"JSON\",\n  \"Promise\",\n  \"Float64Array\",\n  \"Int16Array\",\n  \"Int32Array\",\n  \"Int8Array\",\n  \"Uint16Array\",\n  \"Uint32Array\",\n  \"Float32Array\",\n  \"Array\",\n  \"Uint8Array\",\n  \"Uint8ClampedArray\",\n  \"ArrayBuffer\",\n  \"BigInt64Array\",\n  \"BigUint64Array\",\n  \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n  \"EvalError\",\n  \"InternalError\",\n  \"RangeError\",\n  \"ReferenceError\",\n  \"SyntaxError\",\n  \"TypeError\",\n  \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n  \"setInterval\",\n  \"setTimeout\",\n  \"clearInterval\",\n  \"clearTimeout\",\n\n  \"require\",\n  \"exports\",\n\n  \"eval\",\n  \"isFinite\",\n  \"isNaN\",\n  \"parseFloat\",\n  \"parseInt\",\n  \"decodeURI\",\n  \"decodeURIComponent\",\n  \"encodeURI\",\n  \"encodeURIComponent\",\n  \"escape\",\n  \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n  \"arguments\",\n  \"this\",\n  \"super\",\n  \"console\",\n  \"window\",\n  \"document\",\n  \"localStorage\",\n  \"module\",\n  \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n  BUILT_IN_GLOBALS,\n  BUILT_IN_VARIABLES,\n  TYPES,\n  ERROR_TYPES\n);\n\n/*\nLanguage: CoffeeScript\nAuthor: Dmytrii Nagirniak \nContributors: Oleg Efimov , Cédric Néhémie \nDescription: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/\nCategory: common, scripting\nWebsite: https://coffeescript.org\n*/\n\n/** @type LanguageFn */\nfunction coffeescript(hljs) {\n  const COFFEE_BUILT_INS = [\n    'npm',\n    'print'\n  ];\n  const COFFEE_LITERALS = [\n    'yes',\n    'no',\n    'on',\n    'off'\n  ];\n  const COFFEE_KEYWORDS = [\n    'then',\n    'unless',\n    'until',\n    'loop',\n    'by',\n    'when',\n    'and',\n    'or',\n    'is',\n    'isnt',\n    'not'\n  ];\n  const NOT_VALID_KEYWORDS = [\n    \"var\",\n    \"const\",\n    \"let\",\n    \"function\",\n    \"static\"\n  ];\n  const excluding = (list) =>\n    (kw) => !list.includes(kw);\n  const KEYWORDS$1 = {\n    keyword: KEYWORDS.concat(COFFEE_KEYWORDS).filter(excluding(NOT_VALID_KEYWORDS)),\n    literal: LITERALS.concat(COFFEE_LITERALS),\n    built_in: BUILT_INS.concat(COFFEE_BUILT_INS)\n  };\n  const JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\n  const SUBST = {\n    className: 'subst',\n    begin: /#\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS$1\n  };\n  const EXPRESSIONS = [\n    hljs.BINARY_NUMBER_MODE,\n    hljs.inherit(hljs.C_NUMBER_MODE, {\n      starts: {\n        end: '(\\\\s*/)?',\n        relevance: 0\n      }\n    }), // a number tries to eat the following slash to prevent treating it as a regexp\n    {\n      className: 'string',\n      variants: [\n        {\n          begin: /'''/,\n          end: /'''/,\n          contains: [hljs.BACKSLASH_ESCAPE]\n        },\n        {\n          begin: /'/,\n          end: /'/,\n          contains: [hljs.BACKSLASH_ESCAPE]\n        },\n        {\n          begin: /\"\"\"/,\n          end: /\"\"\"/,\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST\n          ]\n        },\n        {\n          begin: /\"/,\n          end: /\"/,\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST\n          ]\n        }\n      ]\n    },\n    {\n      className: 'regexp',\n      variants: [\n        {\n          begin: '///',\n          end: '///',\n          contains: [\n            SUBST,\n            hljs.HASH_COMMENT_MODE\n          ]\n        },\n        {\n          begin: '//[gim]{0,3}(?=\\\\W)',\n          relevance: 0\n        },\n        {\n          // regex can't start with space to parse x / 2 / 3 as two divisions\n          // regex can't start with *, and it supports an \"illegal\" in the main mode\n          begin: /\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/\n        }\n      ]\n    },\n    {\n      begin: '@' + JS_IDENT_RE // relevance booster\n    },\n    {\n      subLanguage: 'javascript',\n      excludeBegin: true,\n      excludeEnd: true,\n      variants: [\n        {\n          begin: '```',\n          end: '```'\n        },\n        {\n          begin: '`',\n          end: '`'\n        }\n      ]\n    }\n  ];\n  SUBST.contains = EXPRESSIONS;\n\n  const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n    begin: JS_IDENT_RE\n  });\n  const POSSIBLE_PARAMS_RE = '(\\\\(.*\\\\)\\\\s*)?\\\\B[-=]>';\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\([^\\\\(]',\n    returnBegin: true,\n    /* We need another contained nameless mode to not have every nested\n    pair of parens to be called \"params\" */\n    contains: [{\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS$1,\n      contains: ['self'].concat(EXPRESSIONS)\n    }]\n  };\n\n  return {\n    name: 'CoffeeScript',\n    aliases: [\n      'coffee',\n      'cson',\n      'iced'\n    ],\n    keywords: KEYWORDS$1,\n    illegal: /\\/\\*/,\n    contains: EXPRESSIONS.concat([\n      hljs.COMMENT('###', '###'),\n      hljs.HASH_COMMENT_MODE,\n      {\n        className: 'function',\n        begin: '^\\\\s*' + JS_IDENT_RE + '\\\\s*=\\\\s*' + POSSIBLE_PARAMS_RE,\n        end: '[-=]>',\n        returnBegin: true,\n        contains: [\n          TITLE,\n          PARAMS\n        ]\n      },\n      {\n        // anonymous function start\n        begin: /[:\\(,=]\\s*/,\n        relevance: 0,\n        contains: [{\n          className: 'function',\n          begin: POSSIBLE_PARAMS_RE,\n          end: '[-=]>',\n          returnBegin: true,\n          contains: [PARAMS]\n        }]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class',\n        end: '$',\n        illegal: /[:=\"\\[\\]]/,\n        contains: [\n          {\n            beginKeywords: 'extends',\n            endsWithParent: true,\n            illegal: /[:=\"\\[\\]]/,\n            contains: [TITLE]\n          },\n          TITLE\n        ]\n      },\n      {\n        begin: JS_IDENT_RE + ':',\n        end: ':',\n        returnBegin: true,\n        returnEnd: true,\n        relevance: 0\n      }\n    ])\n  };\n}\n\nmodule.exports = coffeescript;\n","/*\nLanguage: Coq\nAuthor: Stephan Boyer \nCategory: functional\nWebsite: https://coq.inria.fr\n*/\n\n/** @type LanguageFn */\nfunction coq(hljs) {\n  return {\n    name: 'Coq',\n    keywords: {\n      keyword:\n        '_|0 as at cofix else end exists exists2 fix for forall fun if IF in let ' +\n        'match mod Prop return Set then Type using where with ' +\n        'Abort About Add Admit Admitted All Arguments Assumptions Axiom Back BackTo ' +\n        'Backtrack Bind Blacklist Canonical Cd Check Class Classes Close Coercion ' +\n        'Coercions CoFixpoint CoInductive Collection Combined Compute Conjecture ' +\n        'Conjectures Constant constr Constraint Constructors Context Corollary ' +\n        'CreateHintDb Cut Declare Defined Definition Delimit Dependencies Dependent ' +\n        'Derive Drop eauto End Equality Eval Example Existential Existentials ' +\n        'Existing Export exporting Extern Extract Extraction Fact Field Fields File ' +\n        'Fixpoint Focus for From Function Functional Generalizable Global Goal Grab ' +\n        'Grammar Graph Guarded Heap Hint HintDb Hints Hypotheses Hypothesis ident ' +\n        'Identity If Immediate Implicit Import Include Inductive Infix Info Initial ' +\n        'Inline Inspect Instance Instances Intro Intros Inversion Inversion_clear ' +\n        'Language Left Lemma Let Libraries Library Load LoadPath Local Locate Ltac ML ' +\n        'Mode Module Modules Monomorphic Morphism Next NoInline Notation Obligation ' +\n        'Obligations Opaque Open Optimize Options Parameter Parameters Parametric ' +\n        'Path Paths pattern Polymorphic Preterm Print Printing Program Projections ' +\n        'Proof Proposition Pwd Qed Quit Rec Record Recursive Redirect Relation Remark ' +\n        'Remove Require Reserved Reset Resolve Restart Rewrite Right Ring Rings Save ' +\n        'Scheme Scope Scopes Script Search SearchAbout SearchHead SearchPattern ' +\n        'SearchRewrite Section Separate Set Setoid Show Solve Sorted Step Strategies ' +\n        'Strategy Structure SubClass Table Tables Tactic Term Test Theorem Time ' +\n        'Timeout Transparent Type Typeclasses Types Undelimit Undo Unfocus Unfocused ' +\n        'Unfold Universe Universes Unset Unshelve using Variable Variables Variant ' +\n        'Verbose Visibility where with',\n      built_in:\n        'abstract absurd admit after apply as assert assumption at auto autorewrite ' +\n        'autounfold before bottom btauto by case case_eq cbn cbv change ' +\n        'classical_left classical_right clear clearbody cofix compare compute ' +\n        'congruence constr_eq constructor contradict contradiction cut cutrewrite ' +\n        'cycle decide decompose dependent destruct destruction dintuition ' +\n        'discriminate discrR do double dtauto eapply eassumption eauto ecase ' +\n        'econstructor edestruct ediscriminate eelim eexact eexists einduction ' +\n        'einjection eleft elim elimtype enough equality erewrite eright ' +\n        'esimplify_eq esplit evar exact exactly_once exfalso exists f_equal fail ' +\n        'field field_simplify field_simplify_eq first firstorder fix fold fourier ' +\n        'functional generalize generalizing gfail give_up has_evar hnf idtac in ' +\n        'induction injection instantiate intro intro_pattern intros intuition ' +\n        'inversion inversion_clear is_evar is_var lapply lazy left lia lra move ' +\n        'native_compute nia nsatz omega once pattern pose progress proof psatz quote ' +\n        'record red refine reflexivity remember rename repeat replace revert ' +\n        'revgoals rewrite rewrite_strat right ring ring_simplify rtauto set ' +\n        'setoid_reflexivity setoid_replace setoid_rewrite setoid_symmetry ' +\n        'setoid_transitivity shelve shelve_unifiable simpl simple simplify_eq solve ' +\n        'specialize split split_Rabs split_Rmult stepl stepr subst sum swap ' +\n        'symmetry tactic tauto time timeout top transitivity trivial try tryif ' +\n        'unfold unify until using vm_compute with'\n    },\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      hljs.COMMENT('\\\\(\\\\*', '\\\\*\\\\)'),\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'type',\n        excludeBegin: true,\n        begin: '\\\\|\\\\s*',\n        end: '\\\\w+'\n      },\n      { // relevance booster\n        begin: /[-=]>/\n      }\n    ]\n  };\n}\n\nmodule.exports = coq;\n","/*\nLanguage: Caché Object Script\nAuthor: Nikita Savchenko \nCategory: enterprise, scripting\nWebsite: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls\n*/\n\n/** @type LanguageFn */\nfunction cos(hljs) {\n  const STRINGS = {\n    className: 'string',\n    variants: [{\n      begin: '\"',\n      end: '\"',\n      contains: [{ // escaped\n        begin: \"\\\"\\\"\",\n        relevance: 0\n      }]\n    }]\n  };\n\n  const NUMBERS = {\n    className: \"number\",\n    begin: \"\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)\",\n    relevance: 0\n  };\n\n  const COS_KEYWORDS =\n    'property parameter class classmethod clientmethod extends as break ' +\n    'catch close continue do d|0 else elseif for goto halt hang h|0 if job ' +\n    'j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 ' +\n    'tcommit throw trollback try tstart use view while write w|0 xecute x|0 ' +\n    'zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert ' +\n    'zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit ' +\n    'zsync ascii';\n\n  // registered function - no need in them due to all functions are highlighted,\n  // but I'll just leave this here.\n\n  // \"$bit\", \"$bitcount\",\n  // \"$bitfind\", \"$bitlogic\", \"$case\", \"$char\", \"$classmethod\", \"$classname\",\n  // \"$compile\", \"$data\", \"$decimal\", \"$double\", \"$extract\", \"$factor\",\n  // \"$find\", \"$fnumber\", \"$get\", \"$increment\", \"$inumber\", \"$isobject\",\n  // \"$isvaliddouble\", \"$isvalidnum\", \"$justify\", \"$length\", \"$list\",\n  // \"$listbuild\", \"$listdata\", \"$listfind\", \"$listfromstring\", \"$listget\",\n  // \"$listlength\", \"$listnext\", \"$listsame\", \"$listtostring\", \"$listvalid\",\n  // \"$locate\", \"$match\", \"$method\", \"$name\", \"$nconvert\", \"$next\",\n  // \"$normalize\", \"$now\", \"$number\", \"$order\", \"$parameter\", \"$piece\",\n  // \"$prefetchoff\", \"$prefetchon\", \"$property\", \"$qlength\", \"$qsubscript\",\n  // \"$query\", \"$random\", \"$replace\", \"$reverse\", \"$sconvert\", \"$select\",\n  // \"$sortbegin\", \"$sortend\", \"$stack\", \"$text\", \"$translate\", \"$view\",\n  // \"$wascii\", \"$wchar\", \"$wextract\", \"$wfind\", \"$wiswide\", \"$wlength\",\n  // \"$wreverse\", \"$xecute\", \"$zabs\", \"$zarccos\", \"$zarcsin\", \"$zarctan\",\n  // \"$zcos\", \"$zcot\", \"$zcsc\", \"$zdate\", \"$zdateh\", \"$zdatetime\",\n  // \"$zdatetimeh\", \"$zexp\", \"$zhex\", \"$zln\", \"$zlog\", \"$zpower\", \"$zsec\",\n  // \"$zsin\", \"$zsqr\", \"$ztan\", \"$ztime\", \"$ztimeh\", \"$zboolean\",\n  // \"$zconvert\", \"$zcrc\", \"$zcyc\", \"$zdascii\", \"$zdchar\", \"$zf\",\n  // \"$ziswide\", \"$zlascii\", \"$zlchar\", \"$zname\", \"$zposition\", \"$zqascii\",\n  // \"$zqchar\", \"$zsearch\", \"$zseek\", \"$zstrip\", \"$zwascii\", \"$zwchar\",\n  // \"$zwidth\", \"$zwpack\", \"$zwbpack\", \"$zwunpack\", \"$zwbunpack\", \"$zzenkaku\",\n  // \"$change\", \"$mv\", \"$mvat\", \"$mvfmt\", \"$mvfmts\", \"$mviconv\",\n  // \"$mviconvs\", \"$mvinmat\", \"$mvlover\", \"$mvoconv\", \"$mvoconvs\", \"$mvraise\",\n  // \"$mvtrans\", \"$mvv\", \"$mvname\", \"$zbitand\", \"$zbitcount\", \"$zbitfind\",\n  // \"$zbitget\", \"$zbitlen\", \"$zbitnot\", \"$zbitor\", \"$zbitset\", \"$zbitstr\",\n  // \"$zbitxor\", \"$zincrement\", \"$znext\", \"$zorder\", \"$zprevious\", \"$zsort\",\n  // \"device\", \"$ecode\", \"$estack\", \"$etrap\", \"$halt\", \"$horolog\",\n  // \"$io\", \"$job\", \"$key\", \"$namespace\", \"$principal\", \"$quit\", \"$roles\",\n  // \"$storage\", \"$system\", \"$test\", \"$this\", \"$tlevel\", \"$username\",\n  // \"$x\", \"$y\", \"$za\", \"$zb\", \"$zchild\", \"$zeof\", \"$zeos\", \"$zerror\",\n  // \"$zhorolog\", \"$zio\", \"$zjob\", \"$zmode\", \"$znspace\", \"$zparent\", \"$zpi\",\n  // \"$zpos\", \"$zreference\", \"$zstorage\", \"$ztimestamp\", \"$ztimezone\",\n  // \"$ztrap\", \"$zversion\"\n\n  return {\n    name: 'Caché Object Script',\n    case_insensitive: true,\n    aliases: [\n      \"cls\"\n    ],\n    keywords: COS_KEYWORDS,\n    contains: [\n      NUMBERS,\n      STRINGS,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: \"comment\",\n        begin: /;/,\n        end: \"$\",\n        relevance: 0\n      },\n      { // Functions and user-defined functions: write $ztime(60*60*3), $$myFunc(10), $$^Val(1)\n        className: \"built_in\",\n        begin: /(?:\\$\\$?|\\.\\.)\\^?[a-zA-Z]+/\n      },\n      { // Macro command: quit $$$OK\n        className: \"built_in\",\n        begin: /\\$\\$\\$[a-zA-Z]+/\n      },\n      { // Special (global) variables: write %request.Content; Built-in classes: %Library.Integer\n        className: \"built_in\",\n        begin: /%[a-z]+(?:\\.[a-z]+)*/\n      },\n      { // Global variable: set ^globalName = 12 write ^globalName\n        className: \"symbol\",\n        begin: /\\^%?[a-zA-Z][\\w]*/\n      },\n      { // Some control constructions: do ##class(Package.ClassName).Method(), ##super()\n        className: \"keyword\",\n        begin: /##class|##super|#define|#dim/\n      },\n      // sub-languages: are not fully supported by hljs by 11/15/2015\n      // left for the future implementation.\n      {\n        begin: /&sql\\(/,\n        end: /\\)/,\n        excludeBegin: true,\n        excludeEnd: true,\n        subLanguage: \"sql\"\n      },\n      {\n        begin: /&(js|jscript|javascript)/,\n        excludeBegin: true,\n        excludeEnd: true,\n        subLanguage: \"javascript\"\n      },\n      {\n        // this brakes first and last tag, but this is the only way to embed a valid html\n        begin: /&html<\\s*\\s*>/,\n        subLanguage: \"xml\"\n      }\n    ]\n  };\n}\n\nmodule.exports = cos;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cpp(hljs) {\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n    contains: [\n      {\n        begin: /\\\\\\n/\n      }\n    ]\n  });\n  const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n  const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n  const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n  const FUNCTION_TYPE_RE = '(' +\n    DECLTYPE_AUTO_RE + '|' +\n    optional(NAMESPACE_RE) +\n    '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n  ')';\n  const CPP_PRIMITIVE_TYPES = {\n    className: 'keyword',\n    begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n  };\n\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n  const STRINGS = {\n    className: 'string',\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n        end: '\\'',\n        illegal: '.'\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/\n      })\n    ]\n  };\n\n  const NUMBERS = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(0b[01\\']+)'\n      },\n      {\n        begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n      },\n      {\n        begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n      }\n    ],\n    relevance: 0\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      'meta-keyword':\n        'if else elif endif define undef warning error line ' +\n        'pragma _Pragma ifdef ifndef include'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      hljs.inherit(STRINGS, {\n        className: 'meta-string'\n      }),\n      {\n        className: 'meta-string',\n        begin: /<.*?>/\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  const TITLE_MODE = {\n    className: 'title',\n    begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n    relevance: 0\n  };\n\n  const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n  const COMMON_CPP_HINTS = [\n    'asin',\n    'atan2',\n    'atan',\n    'calloc',\n    'ceil',\n    'cosh',\n    'cos',\n    'exit',\n    'exp',\n    'fabs',\n    'floor',\n    'fmod',\n    'fprintf',\n    'fputs',\n    'free',\n    'frexp',\n    'auto_ptr',\n    'deque',\n    'list',\n    'queue',\n    'stack',\n    'vector',\n    'map',\n    'set',\n    'pair',\n    'bitset',\n    'multiset',\n    'multimap',\n    'unordered_set',\n    'fscanf',\n    'future',\n    'isalnum',\n    'isalpha',\n    'iscntrl',\n    'isdigit',\n    'isgraph',\n    'islower',\n    'isprint',\n    'ispunct',\n    'isspace',\n    'isupper',\n    'isxdigit',\n    'tolower',\n    'toupper',\n    'labs',\n    'ldexp',\n    'log10',\n    'log',\n    'malloc',\n    'realloc',\n    'memchr',\n    'memcmp',\n    'memcpy',\n    'memset',\n    'modf',\n    'pow',\n    'printf',\n    'putchar',\n    'puts',\n    'scanf',\n    'sinh',\n    'sin',\n    'snprintf',\n    'sprintf',\n    'sqrt',\n    'sscanf',\n    'strcat',\n    'strchr',\n    'strcmp',\n    'strcpy',\n    'strcspn',\n    'strlen',\n    'strncat',\n    'strncmp',\n    'strncpy',\n    'strpbrk',\n    'strrchr',\n    'strspn',\n    'strstr',\n    'tanh',\n    'tan',\n    'unordered_map',\n    'unordered_multiset',\n    'unordered_multimap',\n    'priority_queue',\n    'make_pair',\n    'array',\n    'shared_ptr',\n    'abort',\n    'terminate',\n    'abs',\n    'acos',\n    'vfprintf',\n    'vprintf',\n    'vsprintf',\n    'endl',\n    'initializer_list',\n    'unique_ptr',\n    'complex',\n    'imaginary',\n    'std',\n    'string',\n    'wstring',\n    'cin',\n    'cout',\n    'cerr',\n    'clog',\n    'stdin',\n    'stdout',\n    'stderr',\n    'stringstream',\n    'istringstream',\n    'ostringstream'\n  ];\n\n  const CPP_KEYWORDS = {\n    keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n      'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n      'unsigned long volatile static protected bool template mutable if public friend ' +\n      'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n      'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n      'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n      'concept co_await co_return co_yield requires ' +\n      'noexcept static_assert thread_local restrict final override ' +\n      'atomic_bool atomic_char atomic_schar ' +\n      'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n      'atomic_ullong new throw return ' +\n      'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n    built_in: '_Bool _Complex _Imaginary',\n    _relevance_hints: COMMON_CPP_HINTS,\n    literal: 'true false nullptr NULL'\n  };\n\n  const FUNCTION_DISPATCH = {\n    className: \"function.dispatch\",\n    relevance: 0,\n    keywords: CPP_KEYWORDS,\n    begin: concat(\n      /\\b/,\n      /(?!decltype)/,\n      /(?!if)/,\n      /(?!for)/,\n      /(?!while)/,\n      hljs.IDENT_RE,\n      lookahead(/\\s*\\(/))\n  };\n\n  const EXPRESSION_CONTAINS = [\n    FUNCTION_DISPATCH,\n    PREPROCESSOR,\n    CPP_PRIMITIVE_TYPES,\n    C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    NUMBERS,\n    STRINGS\n  ];\n\n\n  const EXPRESSION_CONTEXT = {\n    // This mode covers expression context where we can't expect a function\n    // definition and shouldn't highlight anything that looks like one:\n    // `return some()`, `else if()`, `(x*sum(1, 2))`\n    variants: [\n      {\n        begin: /=/,\n        end: /;/\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/\n      },\n      {\n        beginKeywords: 'new throw return else',\n        end: /;/\n      }\n    ],\n    keywords: CPP_KEYWORDS,\n    contains: EXPRESSION_CONTAINS.concat([\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n        relevance: 0\n      }\n    ]),\n    relevance: 0\n  };\n\n  const FUNCTION_DECLARATION = {\n    className: 'function',\n    begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n    returnBegin: true,\n    end: /[{;=]/,\n    excludeEnd: true,\n    keywords: CPP_KEYWORDS,\n    illegal: /[^\\w\\s\\*&:<>.]/,\n    contains: [\n      { // to prevent it from being confused as the function title\n        begin: DECLTYPE_AUTO_RE,\n        keywords: CPP_KEYWORDS,\n        relevance: 0\n      },\n      {\n        begin: FUNCTION_TITLE,\n        returnBegin: true,\n        contains: [ TITLE_MODE ],\n        relevance: 0\n      },\n      // needed because we do not have look-behind on the below rule\n      // to prevent it from grabbing the final : in a :: pair\n      {\n        begin: /::/,\n        relevance: 0\n      },\n      // initializers\n      {\n        begin: /:/,\n        endsWithParent: true,\n        contains: [\n          STRINGS,\n          NUMBERS\n        ]\n      },\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n        contains: [\n          C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          STRINGS,\n          NUMBERS,\n          CPP_PRIMITIVE_TYPES,\n          // Count matching parentheses.\n          {\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              'self',\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES\n            ]\n          }\n        ]\n      },\n      CPP_PRIMITIVE_TYPES,\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      PREPROCESSOR\n    ]\n  };\n\n  return {\n    name: 'C++',\n    aliases: [\n      'cc',\n      'c++',\n      'h++',\n      'hpp',\n      'hh',\n      'hxx',\n      'cxx'\n    ],\n    keywords: CPP_KEYWORDS,\n    illegal: ' rooms (9);`\n          begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n          end: '>',\n          keywords: CPP_KEYWORDS,\n          contains: [\n            'self',\n            CPP_PRIMITIVE_TYPES\n          ]\n        },\n        {\n          begin: hljs.IDENT_RE + '::',\n          keywords: CPP_KEYWORDS\n        },\n        {\n          className: 'class',\n          beginKeywords: 'enum class struct union',\n          end: /[{;:<>=]/,\n          contains: [\n            {\n              beginKeywords: \"final class struct\"\n            },\n            hljs.TITLE_MODE\n          ]\n        }\n      ]),\n    exports: {\n      preprocessor: PREPROCESSOR,\n      strings: STRINGS,\n      keywords: CPP_KEYWORDS\n    }\n  };\n}\n\nmodule.exports = cpp;\n","/*\nLanguage: crmsh\nAuthor: Kristoffer Gronlund \nWebsite: http://crmsh.github.io\nDescription: Syntax Highlighting for the crmsh DSL\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction crmsh(hljs) {\n  const RESOURCES = 'primitive rsc_template';\n  const COMMANDS = 'group clone ms master location colocation order fencing_topology ' +\n      'rsc_ticket acl_target acl_group user role ' +\n      'tag xml';\n  const PROPERTY_SETS = 'property rsc_defaults op_defaults';\n  const KEYWORDS = 'params meta operations op rule attributes utilization';\n  const OPERATORS = 'read write deny defined not_defined in_range date spec in ' +\n      'ref reference attribute type xpath version and or lt gt tag ' +\n      'lte gte eq ne \\\\';\n  const TYPES = 'number string';\n  const LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';\n\n  return {\n    name: 'crmsh',\n    aliases: [\n      'crm',\n      'pcmk'\n    ],\n    case_insensitive: true,\n    keywords: {\n      keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,\n      literal: LITERALS\n    },\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      {\n        beginKeywords: 'node',\n        starts: {\n          end: '\\\\s*([\\\\w_-]+:)?',\n          starts: {\n            className: 'title',\n            end: '\\\\s*[\\\\$\\\\w_][\\\\w_-]*'\n          }\n        }\n      },\n      {\n        beginKeywords: RESOURCES,\n        starts: {\n          className: 'title',\n          end: '\\\\s*[\\\\$\\\\w_][\\\\w_-]*',\n          starts: {\n            end: '\\\\s*@?[\\\\w_][\\\\w_\\\\.:-]*'\n          }\n        }\n      },\n      {\n        begin: '\\\\b(' + COMMANDS.split(' ').join('|') + ')\\\\s+',\n        keywords: COMMANDS,\n        starts: {\n          className: 'title',\n          end: '[\\\\$\\\\w_][\\\\w_-]*'\n        }\n      },\n      {\n        beginKeywords: PROPERTY_SETS,\n        starts: {\n          className: 'title',\n          end: '\\\\s*([\\\\w_-]+:)?'\n        }\n      },\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'meta',\n        begin: '(ocf|systemd|service|lsb):[\\\\w_:-]+',\n        relevance: 0\n      },\n      {\n        className: 'number',\n        begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(ms|s|h|m)?',\n        relevance: 0\n      },\n      {\n        className: 'literal',\n        begin: '[-]?(infinity|inf)',\n        relevance: 0\n      },\n      {\n        className: 'attr',\n        begin: /([A-Za-z$_#][\\w_-]+)=/,\n        relevance: 0\n      },\n      {\n        className: 'tag',\n        begin: '',\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = crmsh;\n","/*\nLanguage: Crystal\nAuthor: TSUYUSATO Kitsune \nWebsite: https://crystal-lang.org\n*/\n\n/** @type LanguageFn */\nfunction crystal(hljs) {\n  const INT_SUFFIX = '(_?[ui](8|16|32|64|128))?';\n  const FLOAT_SUFFIX = '(_?f(32|64))?';\n  const CRYSTAL_IDENT_RE = '[a-zA-Z_]\\\\w*[!?=]?';\n  const CRYSTAL_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\\\*\\\\*|\\\\[\\\\][=?]?';\n  const CRYSTAL_PATH_RE = '[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|!)?';\n  const CRYSTAL_KEYWORDS = {\n    $pattern: CRYSTAL_IDENT_RE,\n    keyword:\n      'abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' +\n      'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' +\n      'return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield ' +\n      '__DIR__ __END_LINE__ __FILE__ __LINE__',\n    literal: 'false nil true'\n  };\n  const SUBST = {\n    className: 'subst',\n    begin: /#\\{/,\n    end: /\\}/,\n    keywords: CRYSTAL_KEYWORDS\n  };\n  const EXPANSION = {\n    className: 'template-variable',\n    variants: [\n      {\n        begin: '\\\\{\\\\{',\n        end: '\\\\}\\\\}'\n      },\n      {\n        begin: '\\\\{%',\n        end: '%\\\\}'\n      }\n    ],\n    keywords: CRYSTAL_KEYWORDS\n  };\n\n  function recursiveParen(begin, end) {\n    const\n        contains = [\n          {\n            begin: begin,\n            end: end\n          }\n        ];\n    contains[0].contains = contains;\n    return contains;\n  }\n  const STRING = {\n    className: 'string',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ],\n    variants: [\n      {\n        begin: /'/,\n        end: /'/\n      },\n      {\n        begin: /\"/,\n        end: /\"/\n      },\n      {\n        begin: /`/,\n        end: /`/\n      },\n      {\n        begin: '%[Qwi]?\\\\(',\n        end: '\\\\)',\n        contains: recursiveParen('\\\\(', '\\\\)')\n      },\n      {\n        begin: '%[Qwi]?\\\\[',\n        end: '\\\\]',\n        contains: recursiveParen('\\\\[', '\\\\]')\n      },\n      {\n        begin: '%[Qwi]?\\\\{',\n        end: /\\}/,\n        contains: recursiveParen(/\\{/, /\\}/)\n      },\n      {\n        begin: '%[Qwi]?<',\n        end: '>',\n        contains: recursiveParen('<', '>')\n      },\n      {\n        begin: '%[Qwi]?\\\\|',\n        end: '\\\\|'\n      },\n      {\n        begin: /<<-\\w+$/,\n        end: /^\\s*\\w+$/\n      }\n    ],\n    relevance: 0\n  };\n  const Q_STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: '%q\\\\(',\n        end: '\\\\)',\n        contains: recursiveParen('\\\\(', '\\\\)')\n      },\n      {\n        begin: '%q\\\\[',\n        end: '\\\\]',\n        contains: recursiveParen('\\\\[', '\\\\]')\n      },\n      {\n        begin: '%q\\\\{',\n        end: /\\}/,\n        contains: recursiveParen(/\\{/, /\\}/)\n      },\n      {\n        begin: '%q<',\n        end: '>',\n        contains: recursiveParen('<', '>')\n      },\n      {\n        begin: '%q\\\\|',\n        end: '\\\\|'\n      },\n      {\n        begin: /<<-'\\w+'$/,\n        end: /^\\s*\\w+$/\n      }\n    ],\n    relevance: 0\n  };\n  const REGEXP = {\n    begin: '(?!%\\\\})(' + hljs.RE_STARTERS_RE + '|\\\\n|\\\\b(case|if|select|unless|until|when|while)\\\\b)\\\\s*',\n    keywords: 'case if select unless until when while',\n    contains: [\n      {\n        className: 'regexp',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          SUBST\n        ],\n        variants: [\n          {\n            begin: '//[a-z]*',\n            relevance: 0\n          },\n          {\n            begin: '/(?!\\\\/)',\n            end: '/[a-z]*'\n          }\n        ]\n      }\n    ],\n    relevance: 0\n  };\n  const REGEXP2 = {\n    className: 'regexp',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ],\n    variants: [\n      {\n        begin: '%r\\\\(',\n        end: '\\\\)',\n        contains: recursiveParen('\\\\(', '\\\\)')\n      },\n      {\n        begin: '%r\\\\[',\n        end: '\\\\]',\n        contains: recursiveParen('\\\\[', '\\\\]')\n      },\n      {\n        begin: '%r\\\\{',\n        end: /\\}/,\n        contains: recursiveParen(/\\{/, /\\}/)\n      },\n      {\n        begin: '%r<',\n        end: '>',\n        contains: recursiveParen('<', '>')\n      },\n      {\n        begin: '%r\\\\|',\n        end: '\\\\|'\n      }\n    ],\n    relevance: 0\n  };\n  const ATTRIBUTE = {\n    className: 'meta',\n    begin: '@\\\\[',\n    end: '\\\\]',\n    contains: [\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        className: 'meta-string'\n      })\n    ]\n  };\n  const CRYSTAL_DEFAULT_CONTAINS = [\n    EXPANSION,\n    STRING,\n    Q_STRING,\n    REGEXP2,\n    REGEXP,\n    ATTRIBUTE,\n    hljs.HASH_COMMENT_MODE,\n    {\n      className: 'class',\n      beginKeywords: 'class module struct',\n      end: '$|;',\n      illegal: /=/,\n      contains: [\n        hljs.HASH_COMMENT_MODE,\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: CRYSTAL_PATH_RE\n        }),\n        { // relevance booster for inheritance\n          begin: '<'\n        }\n      ]\n    },\n    {\n      className: 'class',\n      beginKeywords: 'lib enum union',\n      end: '$|;',\n      illegal: /=/,\n      contains: [\n        hljs.HASH_COMMENT_MODE,\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: CRYSTAL_PATH_RE\n        })\n      ]\n    },\n    {\n      beginKeywords: 'annotation',\n      end: '$|;',\n      illegal: /=/,\n      contains: [\n        hljs.HASH_COMMENT_MODE,\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: CRYSTAL_PATH_RE\n        })\n      ],\n      relevance: 2\n    },\n    {\n      className: 'function',\n      beginKeywords: 'def',\n      end: /\\B\\b/,\n      contains: [\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: CRYSTAL_METHOD_RE,\n          endsParent: true\n        })\n      ]\n    },\n    {\n      className: 'function',\n      beginKeywords: 'fun macro',\n      end: /\\B\\b/,\n      contains: [\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: CRYSTAL_METHOD_RE,\n          endsParent: true\n        })\n      ],\n      relevance: 2\n    },\n    {\n      className: 'symbol',\n      begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n      relevance: 0\n    },\n    {\n      className: 'symbol',\n      begin: ':',\n      contains: [\n        STRING,\n        {\n          begin: CRYSTAL_METHOD_RE\n        }\n      ],\n      relevance: 0\n    },\n    {\n      className: 'number',\n      variants: [\n        {\n          begin: '\\\\b0b([01_]+)' + INT_SUFFIX\n        },\n        {\n          begin: '\\\\b0o([0-7_]+)' + INT_SUFFIX\n        },\n        {\n          begin: '\\\\b0x([A-Fa-f0-9_]+)' + INT_SUFFIX\n        },\n        {\n          begin: '\\\\b([1-9][0-9_]*[0-9]|[0-9])(\\\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?' + FLOAT_SUFFIX + '(?!_)'\n        },\n        {\n          begin: '\\\\b([1-9][0-9_]*|0)' + INT_SUFFIX\n        }\n      ],\n      relevance: 0\n    }\n  ];\n  SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;\n  EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION\n\n  return {\n    name: 'Crystal',\n    aliases: [ 'cr' ],\n    keywords: CRYSTAL_KEYWORDS,\n    contains: CRYSTAL_DEFAULT_CONTAINS\n  };\n}\n\nmodule.exports = crystal;\n","/*\nLanguage: C#\nAuthor: Jason Diamond \nContributor: Nicolas LLOBERA , Pieter Vantorre , David Pine \nWebsite: https://docs.microsoft.com/en-us/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n  const BUILT_IN_KEYWORDS = [\n    'bool',\n    'byte',\n    'char',\n    'decimal',\n    'delegate',\n    'double',\n    'dynamic',\n    'enum',\n    'float',\n    'int',\n    'long',\n    'nint',\n    'nuint',\n    'object',\n    'sbyte',\n    'short',\n    'string',\n    'ulong',\n    'uint',\n    'ushort'\n  ];\n  const FUNCTION_MODIFIERS = [\n    'public',\n    'private',\n    'protected',\n    'static',\n    'internal',\n    'protected',\n    'abstract',\n    'async',\n    'extern',\n    'override',\n    'unsafe',\n    'virtual',\n    'new',\n    'sealed',\n    'partial'\n  ];\n  const LITERAL_KEYWORDS = [\n    'default',\n    'false',\n    'null',\n    'true'\n  ];\n  const NORMAL_KEYWORDS = [\n    'abstract',\n    'as',\n    'base',\n    'break',\n    'case',\n    'class',\n    'const',\n    'continue',\n    'do',\n    'else',\n    'event',\n    'explicit',\n    'extern',\n    'finally',\n    'fixed',\n    'for',\n    'foreach',\n    'goto',\n    'if',\n    'implicit',\n    'in',\n    'interface',\n    'internal',\n    'is',\n    'lock',\n    'namespace',\n    'new',\n    'operator',\n    'out',\n    'override',\n    'params',\n    'private',\n    'protected',\n    'public',\n    'readonly',\n    'record',\n    'ref',\n    'return',\n    'sealed',\n    'sizeof',\n    'stackalloc',\n    'static',\n    'struct',\n    'switch',\n    'this',\n    'throw',\n    'try',\n    'typeof',\n    'unchecked',\n    'unsafe',\n    'using',\n    'virtual',\n    'void',\n    'volatile',\n    'while'\n  ];\n  const CONTEXTUAL_KEYWORDS = [\n    'add',\n    'alias',\n    'and',\n    'ascending',\n    'async',\n    'await',\n    'by',\n    'descending',\n    'equals',\n    'from',\n    'get',\n    'global',\n    'group',\n    'init',\n    'into',\n    'join',\n    'let',\n    'nameof',\n    'not',\n    'notnull',\n    'on',\n    'or',\n    'orderby',\n    'partial',\n    'remove',\n    'select',\n    'set',\n    'unmanaged',\n    'value|0',\n    'var',\n    'when',\n    'where',\n    'with',\n    'yield'\n  ];\n\n  const KEYWORDS = {\n    keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n    built_in: BUILT_IN_KEYWORDS,\n    literal: LITERAL_KEYWORDS\n  };\n  const TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, {\n    begin: '[a-zA-Z](\\\\.?\\\\w)*'\n  });\n  const NUMBERS = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(0b[01\\']+)'\n      },\n      {\n        begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)'\n      },\n      {\n        begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n      }\n    ],\n    relevance: 0\n  };\n  const VERBATIM_STRING = {\n    className: 'string',\n    begin: '@\"',\n    end: '\"',\n    contains: [\n      {\n        begin: '\"\"'\n      }\n    ]\n  };\n  const VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, {\n    illegal: /\\n/\n  });\n  const SUBST = {\n    className: 'subst',\n    begin: /\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS\n  };\n  const SUBST_NO_LF = hljs.inherit(SUBST, {\n    illegal: /\\n/\n  });\n  const INTERPOLATED_STRING = {\n    className: 'string',\n    begin: /\\$\"/,\n    end: '\"',\n    illegal: /\\n/,\n    contains: [\n      {\n        begin: /\\{\\{/\n      },\n      {\n        begin: /\\}\\}/\n      },\n      hljs.BACKSLASH_ESCAPE,\n      SUBST_NO_LF\n    ]\n  };\n  const INTERPOLATED_VERBATIM_STRING = {\n    className: 'string',\n    begin: /\\$@\"/,\n    end: '\"',\n    contains: [\n      {\n        begin: /\\{\\{/\n      },\n      {\n        begin: /\\}\\}/\n      },\n      {\n        begin: '\"\"'\n      },\n      SUBST\n    ]\n  };\n  const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n    illegal: /\\n/,\n    contains: [\n      {\n        begin: /\\{\\{/\n      },\n      {\n        begin: /\\}\\}/\n      },\n      {\n        begin: '\"\"'\n      },\n      SUBST_NO_LF\n    ]\n  });\n  SUBST.contains = [\n    INTERPOLATED_VERBATIM_STRING,\n    INTERPOLATED_STRING,\n    VERBATIM_STRING,\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    NUMBERS,\n    hljs.C_BLOCK_COMMENT_MODE\n  ];\n  SUBST_NO_LF.contains = [\n    INTERPOLATED_VERBATIM_STRING_NO_LF,\n    INTERPOLATED_STRING,\n    VERBATIM_STRING_NO_LF,\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    NUMBERS,\n    hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, {\n      illegal: /\\n/\n    })\n  ];\n  const STRING = {\n    variants: [\n      INTERPOLATED_VERBATIM_STRING,\n      INTERPOLATED_STRING,\n      VERBATIM_STRING,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE\n    ]\n  };\n\n  const GENERIC_MODIFIER = {\n    begin: \"<\",\n    end: \">\",\n    contains: [\n      {\n        beginKeywords: \"in out\"\n      },\n      TITLE_MODE\n    ]\n  };\n  const TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n  const AT_IDENTIFIER = {\n    // prevents expressions like `@class` from incorrect flagging\n    // `class` as a keyword\n    begin: \"@\" + hljs.IDENT_RE,\n    relevance: 0\n  };\n\n  return {\n    name: 'C#',\n    aliases: [\n      'cs',\n      'c#'\n    ],\n    keywords: KEYWORDS,\n    illegal: /::/,\n    contains: [\n      hljs.COMMENT(\n        '///',\n        '$',\n        {\n          returnBegin: true,\n          contains: [\n            {\n              className: 'doctag',\n              variants: [\n                {\n                  begin: '///',\n                  relevance: 0\n                },\n                {\n                  begin: ''\n                },\n                {\n                  begin: ''\n                }\n              ]\n            }\n          ]\n        }\n      ),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'meta',\n        begin: '#',\n        end: '$',\n        keywords: {\n          'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'\n        }\n      },\n      STRING,\n      NUMBERS,\n      {\n        beginKeywords: 'class interface',\n        relevance: 0,\n        end: /[{;=]/,\n        illegal: /[^\\s:,]/,\n        contains: [\n          {\n            beginKeywords: \"where class\"\n          },\n          TITLE_MODE,\n          GENERIC_MODIFIER,\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      {\n        beginKeywords: 'namespace',\n        relevance: 0,\n        end: /[{;=]/,\n        illegal: /[^\\s:]/,\n        contains: [\n          TITLE_MODE,\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      {\n        beginKeywords: 'record',\n        relevance: 0,\n        end: /[{;=]/,\n        illegal: /[^\\s:]/,\n        contains: [\n          TITLE_MODE,\n          GENERIC_MODIFIER,\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      {\n        // [Attributes(\"\")]\n        className: 'meta',\n        begin: '^\\\\s*\\\\[',\n        excludeBegin: true,\n        end: '\\\\]',\n        excludeEnd: true,\n        contains: [\n          {\n            className: 'meta-string',\n            begin: /\"/,\n            end: /\"/\n          }\n        ]\n      },\n      {\n        // Expression keywords prevent 'keyword Name(...)' from being\n        // recognized as a function definition\n        beginKeywords: 'new return throw await else',\n        relevance: 0\n      },\n      {\n        className: 'function',\n        begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<.+>\\\\s*)?\\\\(',\n        returnBegin: true,\n        end: /\\s*[{;=]/,\n        excludeEnd: true,\n        keywords: KEYWORDS,\n        contains: [\n          // prevents these from being highlighted `title`\n          {\n            beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n            relevance: 0\n          },\n          {\n            begin: hljs.IDENT_RE + '\\\\s*(<.+>\\\\s*)?\\\\(',\n            returnBegin: true,\n            contains: [\n              hljs.TITLE_MODE,\n              GENERIC_MODIFIER\n            ],\n            relevance: 0\n          },\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            keywords: KEYWORDS,\n            relevance: 0,\n            contains: [\n              STRING,\n              NUMBERS,\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          },\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      AT_IDENTIFIER\n    ]\n  };\n}\n\nmodule.exports = csharp;\n","/*\nLanguage: CSP\nDescription: Content Security Policy definition highlighting\nAuthor: Taras \nWebsite: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP\n\nvim: ts=2 sw=2 st=2\n*/\n\n/** @type LanguageFn */\nfunction csp(hljs) {\n  return {\n    name: 'CSP',\n    case_insensitive: false,\n    keywords: {\n      $pattern: '[a-zA-Z][a-zA-Z0-9_-]*',\n      keyword: 'base-uri child-src connect-src default-src font-src form-action ' +\n        'frame-ancestors frame-src img-src media-src object-src plugin-types ' +\n        'report-uri sandbox script-src style-src'\n    },\n    contains: [\n      {\n        className: 'string',\n        begin: \"'\",\n        end: \"'\"\n      },\n      {\n        className: 'attribute',\n        begin: '^Content',\n        end: ':',\n        excludeEnd: true\n      }\n    ]\n  };\n}\n\nmodule.exports = csp;\n","const MODES = (hljs) => {\n  return {\n    IMPORTANT: {\n      className: 'meta',\n      begin: '!important'\n    },\n    HEXCOLOR: {\n      className: 'number',\n      begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n    },\n    ATTRIBUTE_SELECTOR_MODE: {\n      className: 'selector-attr',\n      begin: /\\[/,\n      end: /\\]/,\n      illegal: '$',\n      contains: [\n        hljs.APOS_STRING_MODE,\n        hljs.QUOTE_STRING_MODE\n      ]\n    }\n  };\n};\n\nconst TAGS = [\n  'a',\n  'abbr',\n  'address',\n  'article',\n  'aside',\n  'audio',\n  'b',\n  'blockquote',\n  'body',\n  'button',\n  'canvas',\n  'caption',\n  'cite',\n  'code',\n  'dd',\n  'del',\n  'details',\n  'dfn',\n  'div',\n  'dl',\n  'dt',\n  'em',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'header',\n  'hgroup',\n  'html',\n  'i',\n  'iframe',\n  'img',\n  'input',\n  'ins',\n  'kbd',\n  'label',\n  'legend',\n  'li',\n  'main',\n  'mark',\n  'menu',\n  'nav',\n  'object',\n  'ol',\n  'p',\n  'q',\n  'quote',\n  'samp',\n  'section',\n  'span',\n  'strong',\n  'summary',\n  'sup',\n  'table',\n  'tbody',\n  'td',\n  'textarea',\n  'tfoot',\n  'th',\n  'thead',\n  'time',\n  'tr',\n  'ul',\n  'var',\n  'video'\n];\n\nconst MEDIA_FEATURES = [\n  'any-hover',\n  'any-pointer',\n  'aspect-ratio',\n  'color',\n  'color-gamut',\n  'color-index',\n  'device-aspect-ratio',\n  'device-height',\n  'device-width',\n  'display-mode',\n  'forced-colors',\n  'grid',\n  'height',\n  'hover',\n  'inverted-colors',\n  'monochrome',\n  'orientation',\n  'overflow-block',\n  'overflow-inline',\n  'pointer',\n  'prefers-color-scheme',\n  'prefers-contrast',\n  'prefers-reduced-motion',\n  'prefers-reduced-transparency',\n  'resolution',\n  'scan',\n  'scripting',\n  'update',\n  'width',\n  // TODO: find a better solution?\n  'min-width',\n  'max-width',\n  'min-height',\n  'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n  'active',\n  'any-link',\n  'blank',\n  'checked',\n  'current',\n  'default',\n  'defined',\n  'dir', // dir()\n  'disabled',\n  'drop',\n  'empty',\n  'enabled',\n  'first',\n  'first-child',\n  'first-of-type',\n  'fullscreen',\n  'future',\n  'focus',\n  'focus-visible',\n  'focus-within',\n  'has', // has()\n  'host', // host or host()\n  'host-context', // host-context()\n  'hover',\n  'indeterminate',\n  'in-range',\n  'invalid',\n  'is', // is()\n  'lang', // lang()\n  'last-child',\n  'last-of-type',\n  'left',\n  'link',\n  'local-link',\n  'not', // not()\n  'nth-child', // nth-child()\n  'nth-col', // nth-col()\n  'nth-last-child', // nth-last-child()\n  'nth-last-col', // nth-last-col()\n  'nth-last-of-type', //nth-last-of-type()\n  'nth-of-type', //nth-of-type()\n  'only-child',\n  'only-of-type',\n  'optional',\n  'out-of-range',\n  'past',\n  'placeholder-shown',\n  'read-only',\n  'read-write',\n  'required',\n  'right',\n  'root',\n  'scope',\n  'target',\n  'target-within',\n  'user-invalid',\n  'valid',\n  'visited',\n  'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n  'after',\n  'backdrop',\n  'before',\n  'cue',\n  'cue-region',\n  'first-letter',\n  'first-line',\n  'grammar-error',\n  'marker',\n  'part',\n  'placeholder',\n  'selection',\n  'slotted',\n  'spelling-error'\n];\n\nconst ATTRIBUTES = [\n  'align-content',\n  'align-items',\n  'align-self',\n  'animation',\n  'animation-delay',\n  'animation-direction',\n  'animation-duration',\n  'animation-fill-mode',\n  'animation-iteration-count',\n  'animation-name',\n  'animation-play-state',\n  'animation-timing-function',\n  'auto',\n  'backface-visibility',\n  'background',\n  'background-attachment',\n  'background-clip',\n  'background-color',\n  'background-image',\n  'background-origin',\n  'background-position',\n  'background-repeat',\n  'background-size',\n  'border',\n  'border-bottom',\n  'border-bottom-color',\n  'border-bottom-left-radius',\n  'border-bottom-right-radius',\n  'border-bottom-style',\n  'border-bottom-width',\n  'border-collapse',\n  'border-color',\n  'border-image',\n  'border-image-outset',\n  'border-image-repeat',\n  'border-image-slice',\n  'border-image-source',\n  'border-image-width',\n  'border-left',\n  'border-left-color',\n  'border-left-style',\n  'border-left-width',\n  'border-radius',\n  'border-right',\n  'border-right-color',\n  'border-right-style',\n  'border-right-width',\n  'border-spacing',\n  'border-style',\n  'border-top',\n  'border-top-color',\n  'border-top-left-radius',\n  'border-top-right-radius',\n  'border-top-style',\n  'border-top-width',\n  'border-width',\n  'bottom',\n  'box-decoration-break',\n  'box-shadow',\n  'box-sizing',\n  'break-after',\n  'break-before',\n  'break-inside',\n  'caption-side',\n  'clear',\n  'clip',\n  'clip-path',\n  'color',\n  'column-count',\n  'column-fill',\n  'column-gap',\n  'column-rule',\n  'column-rule-color',\n  'column-rule-style',\n  'column-rule-width',\n  'column-span',\n  'column-width',\n  'columns',\n  'content',\n  'counter-increment',\n  'counter-reset',\n  'cursor',\n  'direction',\n  'display',\n  'empty-cells',\n  'filter',\n  'flex',\n  'flex-basis',\n  'flex-direction',\n  'flex-flow',\n  'flex-grow',\n  'flex-shrink',\n  'flex-wrap',\n  'float',\n  'font',\n  'font-display',\n  'font-family',\n  'font-feature-settings',\n  'font-kerning',\n  'font-language-override',\n  'font-size',\n  'font-size-adjust',\n  'font-smoothing',\n  'font-stretch',\n  'font-style',\n  'font-variant',\n  'font-variant-ligatures',\n  'font-variation-settings',\n  'font-weight',\n  'height',\n  'hyphens',\n  'icon',\n  'image-orientation',\n  'image-rendering',\n  'image-resolution',\n  'ime-mode',\n  'inherit',\n  'initial',\n  'justify-content',\n  'left',\n  'letter-spacing',\n  'line-height',\n  'list-style',\n  'list-style-image',\n  'list-style-position',\n  'list-style-type',\n  'margin',\n  'margin-bottom',\n  'margin-left',\n  'margin-right',\n  'margin-top',\n  'marks',\n  'mask',\n  'max-height',\n  'max-width',\n  'min-height',\n  'min-width',\n  'nav-down',\n  'nav-index',\n  'nav-left',\n  'nav-right',\n  'nav-up',\n  'none',\n  'normal',\n  'object-fit',\n  'object-position',\n  'opacity',\n  'order',\n  'orphans',\n  'outline',\n  'outline-color',\n  'outline-offset',\n  'outline-style',\n  'outline-width',\n  'overflow',\n  'overflow-wrap',\n  'overflow-x',\n  'overflow-y',\n  'padding',\n  'padding-bottom',\n  'padding-left',\n  'padding-right',\n  'padding-top',\n  'page-break-after',\n  'page-break-before',\n  'page-break-inside',\n  'perspective',\n  'perspective-origin',\n  'pointer-events',\n  'position',\n  'quotes',\n  'resize',\n  'right',\n  'src', // @font-face\n  'tab-size',\n  'table-layout',\n  'text-align',\n  'text-align-last',\n  'text-decoration',\n  'text-decoration-color',\n  'text-decoration-line',\n  'text-decoration-style',\n  'text-indent',\n  'text-overflow',\n  'text-rendering',\n  'text-shadow',\n  'text-transform',\n  'text-underline-position',\n  'top',\n  'transform',\n  'transform-origin',\n  'transform-style',\n  'transition',\n  'transition-delay',\n  'transition-duration',\n  'transition-property',\n  'transition-timing-function',\n  'unicode-bidi',\n  'vertical-align',\n  'visibility',\n  'white-space',\n  'widows',\n  'width',\n  'word-break',\n  'word-spacing',\n  'word-wrap',\n  'z-index'\n  // reverse makes sure longer attributes `font-weight` are matched fully\n  // instead of getting false positives on say `font`\n].reverse();\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: CSS\nCategory: common, css\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n  const modes = MODES(hljs);\n  const FUNCTION_DISPATCH = {\n    className: \"built_in\",\n    begin: /[\\w-]+(?=\\()/\n  };\n  const VENDOR_PREFIX = {\n    begin: /-(webkit|moz|ms|o)-(?=[a-z])/\n  };\n  const AT_MODIFIERS = \"and or not only\";\n  const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n  const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n  const STRINGS = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE\n  ];\n\n  return {\n    name: 'CSS',\n    case_insensitive: true,\n    illegal: /[=|'\\$]/,\n    keywords: {\n      keyframePosition: \"from to\"\n    },\n    classNameAliases: {\n      // for visual continuity with `tag {}` and because we\n      // don't have a great class for this?\n      keyframePosition: \"selector-tag\"\n    },\n    contains: [\n      hljs.C_BLOCK_COMMENT_MODE,\n      VENDOR_PREFIX,\n      // to recognize keyframe 40% etc which are outside the scope of our\n      // attribute value mode\n      hljs.CSS_NUMBER_MODE,\n      {\n        className: 'selector-id',\n        begin: /#[A-Za-z0-9_-]+/,\n        relevance: 0\n      },\n      {\n        className: 'selector-class',\n        begin: '\\\\.' + IDENT_RE,\n        relevance: 0\n      },\n      modes.ATTRIBUTE_SELECTOR_MODE,\n      {\n        className: 'selector-pseudo',\n        variants: [\n          {\n            begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n          },\n          {\n            begin: '::(' + PSEUDO_ELEMENTS.join('|') + ')'\n          }\n        ]\n      },\n      // we may actually need this (12/2020)\n      // { // pseudo-selector params\n      //   begin: /\\(/,\n      //   end: /\\)/,\n      //   contains: [ hljs.CSS_NUMBER_MODE ]\n      // },\n      {\n        className: 'attribute',\n        begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n      },\n      // attribute values\n      {\n        begin: ':',\n        end: '[;}]',\n        contains: [\n          modes.HEXCOLOR,\n          modes.IMPORTANT,\n          hljs.CSS_NUMBER_MODE,\n          ...STRINGS,\n          // needed to highlight these as strings and to avoid issues with\n          // illegal characters that might be inside urls that would tigger the\n          // languages illegal stack\n          {\n            begin: /(url|data-uri)\\(/,\n            end: /\\)/,\n            relevance: 0, // from keywords\n            keywords: {\n              built_in: \"url data-uri\"\n            },\n            contains: [\n              {\n                className: \"string\",\n                // any character other than `)` as in `url()` will be the start\n                // of a string, which ends with `)` (from the parent mode)\n                begin: /[^)]/,\n                endsWithParent: true,\n                excludeEnd: true\n              }\n            ]\n          },\n          FUNCTION_DISPATCH\n        ]\n      },\n      {\n        begin: lookahead(/@/),\n        end: '[{;]',\n        relevance: 0,\n        illegal: /:/, // break on Less variables @var: ...\n        contains: [\n          {\n            className: 'keyword',\n            begin: AT_PROPERTY_RE\n          },\n          {\n            begin: /\\s/,\n            endsWithParent: true,\n            excludeEnd: true,\n            relevance: 0,\n            keywords: {\n              $pattern: /[a-z-]+/,\n              keyword: AT_MODIFIERS,\n              attribute: MEDIA_FEATURES.join(\" \")\n            },\n            contains: [\n              {\n                begin: /[a-z-]+(?=:)/,\n                className: \"attribute\"\n              },\n              ...STRINGS,\n              hljs.CSS_NUMBER_MODE\n            ]\n          }\n        ]\n      },\n      {\n        className: 'selector-tag',\n        begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n      }\n    ]\n  };\n}\n\nmodule.exports = css;\n","/*\nLanguage: D\nAuthor: Aleksandar Ruzicic \nDescription: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.\nVersion: 1.0a\nWebsite: https://dlang.org\nDate: 2012-04-08\n*/\n\n/**\n * Known issues:\n *\n * - invalid hex string literals will be recognized as a double quoted strings\n *   but 'x' at the beginning of string will not be matched\n *\n * - delimited string literals are not checked for matching end delimiter\n *   (not possible to do with js regexp)\n *\n * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)\n *   also, content of token string is not validated to contain only valid D tokens\n *\n * - special token sequence rule is not strictly following D grammar (anything following #line\n *   up to the end of line is matched as special token sequence)\n */\n\n/** @type LanguageFn */\nfunction d(hljs) {\n  /**\n   * Language keywords\n   *\n   * @type {Object}\n   */\n  const D_KEYWORDS = {\n    $pattern: hljs.UNDERSCORE_IDENT_RE,\n    keyword:\n      'abstract alias align asm assert auto body break byte case cast catch class ' +\n      'const continue debug default delete deprecated do else enum export extern final ' +\n      'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +\n      'interface invariant is lazy macro mixin module new nothrow out override package ' +\n      'pragma private protected public pure ref return scope shared static struct ' +\n      'super switch synchronized template this throw try typedef typeid typeof union ' +\n      'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +\n      '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',\n    built_in:\n      'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +\n      'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +\n      'wstring',\n    literal:\n      'false null true'\n  };\n\n  /**\n   * Number literal regexps\n   *\n   * @type {String}\n   */\n  const decimal_integer_re = '(0|[1-9][\\\\d_]*)';\n  const decimal_integer_nosus_re = '(0|[1-9][\\\\d_]*|\\\\d[\\\\d_]*|[\\\\d_]+?\\\\d)';\n  const binary_integer_re = '0[bB][01_]+';\n  const hexadecimal_digits_re = '([\\\\da-fA-F][\\\\da-fA-F_]*|_[\\\\da-fA-F][\\\\da-fA-F_]*)';\n  const hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re;\n\n  const decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')';\n  const decimal_float_re = '(' + decimal_integer_nosus_re + '(\\\\.\\\\d*|' + decimal_exponent_re + ')|' +\n                '\\\\d+\\\\.' + decimal_integer_nosus_re + '|' +\n                '\\\\.' + decimal_integer_re + decimal_exponent_re + '?' +\n              ')';\n  const hexadecimal_float_re = '(0[xX](' +\n                  hexadecimal_digits_re + '\\\\.' + hexadecimal_digits_re + '|' +\n                  '\\\\.?' + hexadecimal_digits_re +\n                 ')[pP][+-]?' + decimal_integer_nosus_re + ')';\n\n  const integer_re = '(' +\n      decimal_integer_re + '|' +\n      binary_integer_re + '|' +\n       hexadecimal_integer_re +\n    ')';\n\n  const float_re = '(' +\n      hexadecimal_float_re + '|' +\n      decimal_float_re +\n    ')';\n\n  /**\n   * Escape sequence supported in D string and character literals\n   *\n   * @type {String}\n   */\n  const escape_sequence_re = '\\\\\\\\(' +\n              '[\\'\"\\\\?\\\\\\\\abfnrtv]|' + // common escapes\n              'u[\\\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint\n              '[0-7]{1,3}|' + // one to three octal digit ascii char code\n              'x[\\\\dA-Fa-f]{2}|' + // two hex digit ascii char code\n              'U[\\\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint\n              ')|' +\n              '&[a-zA-Z\\\\d]{2,};'; // named character entity\n\n  /**\n   * D integer number literals\n   *\n   * @type {Object}\n   */\n  const D_INTEGER_MODE = {\n    className: 'number',\n    begin: '\\\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',\n    relevance: 0\n  };\n\n  /**\n   * [D_FLOAT_MODE description]\n   * @type {Object}\n   */\n  const D_FLOAT_MODE = {\n    className: 'number',\n    begin: '\\\\b(' +\n        float_re + '([fF]|L|i|[fF]i|Li)?|' +\n        integer_re + '(i|[fF]i|Li)' +\n      ')',\n    relevance: 0\n  };\n\n  /**\n   * D character literal\n   *\n   * @type {Object}\n   */\n  const D_CHARACTER_MODE = {\n    className: 'string',\n    begin: '\\'(' + escape_sequence_re + '|.)',\n    end: '\\'',\n    illegal: '.'\n  };\n\n  /**\n   * D string escape sequence\n   *\n   * @type {Object}\n   */\n  const D_ESCAPE_SEQUENCE = {\n    begin: escape_sequence_re,\n    relevance: 0\n  };\n\n  /**\n   * D double quoted string literal\n   *\n   * @type {Object}\n   */\n  const D_STRING_MODE = {\n    className: 'string',\n    begin: '\"',\n    contains: [D_ESCAPE_SEQUENCE],\n    end: '\"[cwd]?'\n  };\n\n  /**\n   * D wysiwyg and delimited string literals\n   *\n   * @type {Object}\n   */\n  const D_WYSIWYG_DELIMITED_STRING_MODE = {\n    className: 'string',\n    begin: '[rq]\"',\n    end: '\"[cwd]?',\n    relevance: 5\n  };\n\n  /**\n   * D alternate wysiwyg string literal\n   *\n   * @type {Object}\n   */\n  const D_ALTERNATE_WYSIWYG_STRING_MODE = {\n    className: 'string',\n    begin: '`',\n    end: '`[cwd]?'\n  };\n\n  /**\n   * D hexadecimal string literal\n   *\n   * @type {Object}\n   */\n  const D_HEX_STRING_MODE = {\n    className: 'string',\n    begin: 'x\"[\\\\da-fA-F\\\\s\\\\n\\\\r]*\"[cwd]?',\n    relevance: 10\n  };\n\n  /**\n   * D delimited string literal\n   *\n   * @type {Object}\n   */\n  const D_TOKEN_STRING_MODE = {\n    className: 'string',\n    begin: 'q\"\\\\{',\n    end: '\\\\}\"'\n  };\n\n  /**\n   * Hashbang support\n   *\n   * @type {Object}\n   */\n  const D_HASHBANG_MODE = {\n    className: 'meta',\n    begin: '^#!',\n    end: '$',\n    relevance: 5\n  };\n\n  /**\n   * D special token sequence\n   *\n   * @type {Object}\n   */\n  const D_SPECIAL_TOKEN_SEQUENCE_MODE = {\n    className: 'meta',\n    begin: '#(line)',\n    end: '$',\n    relevance: 5\n  };\n\n  /**\n   * D attributes\n   *\n   * @type {Object}\n   */\n  const D_ATTRIBUTE_MODE = {\n    className: 'keyword',\n    begin: '@[a-zA-Z_][a-zA-Z_\\\\d]*'\n  };\n\n  /**\n   * D nesting comment\n   *\n   * @type {Object}\n   */\n  const D_NESTING_COMMENT_MODE = hljs.COMMENT(\n    '\\\\/\\\\+',\n    '\\\\+\\\\/',\n    {\n      contains: ['self'],\n      relevance: 10\n    }\n  );\n\n  return {\n    name: 'D',\n    keywords: D_KEYWORDS,\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      D_NESTING_COMMENT_MODE,\n      D_HEX_STRING_MODE,\n      D_STRING_MODE,\n      D_WYSIWYG_DELIMITED_STRING_MODE,\n      D_ALTERNATE_WYSIWYG_STRING_MODE,\n      D_TOKEN_STRING_MODE,\n      D_FLOAT_MODE,\n      D_INTEGER_MODE,\n      D_CHARACTER_MODE,\n      D_HASHBANG_MODE,\n      D_SPECIAL_TOKEN_SEQUENCE_MODE,\n      D_ATTRIBUTE_MODE\n    ]\n  };\n}\n\nmodule.exports = d;\n","/*\nLanguage: Dart\nRequires: markdown.js\nAuthor: Maxim Dikun \nDescription: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/\nWebsite: https://dart.dev\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction dart(hljs) {\n  const SUBST = {\n    className: 'subst',\n    variants: [{\n      begin: '\\\\$[A-Za-z0-9_]+'\n    }]\n  };\n\n  const BRACED_SUBST = {\n    className: 'subst',\n    variants: [{\n      begin: /\\$\\{/,\n      end: /\\}/\n    }],\n    keywords: 'true false null this is new super'\n  };\n\n  const STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: 'r\\'\\'\\'',\n        end: '\\'\\'\\''\n      },\n      {\n        begin: 'r\"\"\"',\n        end: '\"\"\"'\n      },\n      {\n        begin: 'r\\'',\n        end: '\\'',\n        illegal: '\\\\n'\n      },\n      {\n        begin: 'r\"',\n        end: '\"',\n        illegal: '\\\\n'\n      },\n      {\n        begin: '\\'\\'\\'',\n        end: '\\'\\'\\'',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          SUBST,\n          BRACED_SUBST\n        ]\n      },\n      {\n        begin: '\"\"\"',\n        end: '\"\"\"',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          SUBST,\n          BRACED_SUBST\n        ]\n      },\n      {\n        begin: '\\'',\n        end: '\\'',\n        illegal: '\\\\n',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          SUBST,\n          BRACED_SUBST\n        ]\n      },\n      {\n        begin: '\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          SUBST,\n          BRACED_SUBST\n        ]\n      }\n    ]\n  };\n  BRACED_SUBST.contains = [\n    hljs.C_NUMBER_MODE,\n    STRING\n  ];\n\n  const BUILT_IN_TYPES = [\n    // dart:core\n    'Comparable',\n    'DateTime',\n    'Duration',\n    'Function',\n    'Iterable',\n    'Iterator',\n    'List',\n    'Map',\n    'Match',\n    'Object',\n    'Pattern',\n    'RegExp',\n    'Set',\n    'Stopwatch',\n    'String',\n    'StringBuffer',\n    'StringSink',\n    'Symbol',\n    'Type',\n    'Uri',\n    'bool',\n    'double',\n    'int',\n    'num',\n    // dart:html\n    'Element',\n    'ElementList'\n  ];\n  const NULLABLE_BUILT_IN_TYPES = BUILT_IN_TYPES.map((e) => `${e}?`);\n\n  const KEYWORDS = {\n    keyword: 'abstract as assert async await break case catch class const continue covariant default deferred do ' +\n      'dynamic else enum export extends extension external factory false final finally for Function get hide if ' +\n      'implements import in inferface is late library mixin new null on operator part required rethrow return set ' +\n      'show static super switch sync this throw true try typedef var void while with yield',\n    built_in:\n      BUILT_IN_TYPES\n        .concat(NULLABLE_BUILT_IN_TYPES)\n        .concat([\n          // dart:core\n          'Never',\n          'Null',\n          'dynamic',\n          'print',\n          // dart:html\n          'document',\n          'querySelector',\n          'querySelectorAll',\n          'window'\n        ]),\n    $pattern: /[A-Za-z][A-Za-z0-9_]*\\??/\n  };\n\n  return {\n    name: 'Dart',\n    keywords: KEYWORDS,\n    contains: [\n      STRING,\n      hljs.COMMENT(\n        /\\/\\*\\*(?!\\/)/,\n        /\\*\\//,\n        {\n          subLanguage: 'markdown',\n          relevance: 0\n        }\n      ),\n      hljs.COMMENT(\n        /\\/{3,} ?/,\n        /$/, {\n          contains: [{\n            subLanguage: 'markdown',\n            begin: '.',\n            end: '$',\n            relevance: 0\n          }]\n        }\n      ),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'class',\n        beginKeywords: 'class interface',\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          {\n            beginKeywords: 'extends implements'\n          },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'meta',\n        begin: '@[A-Za-z]+'\n      },\n      {\n        begin: '=>' // No markup, just a relevance booster\n      }\n    ]\n  };\n}\n\nmodule.exports = dart;\n","/*\nLanguage: Delphi\nWebsite: https://www.embarcadero.com/products/delphi\n*/\n\n/** @type LanguageFn */\nfunction delphi(hljs) {\n  const KEYWORDS =\n    'exports register file shl array record property for mod while set ally label uses raise not ' +\n    'stored class safecall var interface or private static exit index inherited to else stdcall ' +\n    'override shr asm far resourcestring finalization packed virtual out and protected library do ' +\n    'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +\n    'destructor write message program with read initialization except default nil if case cdecl in ' +\n    'downto threadvar of try pascal const external constructor type public then implementation ' +\n    'finally published procedure absolute reintroduce operator as is abstract alias assembler ' +\n    'bitpacked break continue cppdecl cvar enumerator experimental platform deprecated ' +\n    'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' +\n    'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' +\n    'specialize strict unaligned varargs ';\n  const COMMENT_MODES = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.COMMENT(/\\{/, /\\}/, {\n      relevance: 0\n    }),\n    hljs.COMMENT(/\\(\\*/, /\\*\\)/, {\n      relevance: 10\n    })\n  ];\n  const DIRECTIVE = {\n    className: 'meta',\n    variants: [\n      {\n        begin: /\\{\\$/,\n        end: /\\}/\n      },\n      {\n        begin: /\\(\\*\\$/,\n        end: /\\*\\)/\n      }\n    ]\n  };\n  const STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/,\n    contains: [{\n      begin: /''/\n    }]\n  };\n  const NUMBER = {\n    className: 'number',\n    relevance: 0,\n    // Source: https://www.freepascal.org/docs-html/ref/refse6.html\n    variants: [\n      {\n        // Hexadecimal notation, e.g., $7F.\n        begin: '\\\\$[0-9A-Fa-f]+'\n      },\n      {\n        // Octal notation, e.g., &42.\n        begin: '&[0-7]+'\n      },\n      {\n        // Binary notation, e.g., %1010.\n        begin: '%[01]+'\n      }\n    ]\n  };\n  const CHAR_STRING = {\n    className: 'string',\n    begin: /(#\\d+)+/\n  };\n  const CLASS = {\n    begin: hljs.IDENT_RE + '\\\\s*=\\\\s*class\\\\s*\\\\(',\n    returnBegin: true,\n    contains: [hljs.TITLE_MODE]\n  };\n  const FUNCTION = {\n    className: 'function',\n    beginKeywords: 'function constructor destructor procedure',\n    end: /[:;]/,\n    keywords: 'function constructor|10 destructor|10 procedure|10',\n    contains: [\n      hljs.TITLE_MODE,\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: KEYWORDS,\n        contains: [\n          STRING,\n          CHAR_STRING,\n          DIRECTIVE\n        ].concat(COMMENT_MODES)\n      },\n      DIRECTIVE\n    ].concat(COMMENT_MODES)\n  };\n  return {\n    name: 'Delphi',\n    aliases: [\n      'dpr',\n      'dfm',\n      'pas',\n      'pascal',\n      'freepascal',\n      'lazarus',\n      'lpr',\n      'lfm'\n    ],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    illegal: /\"|\\$[G-Zg-z]|\\/\\*|<\\/|\\|/,\n    contains: [\n      STRING,\n      CHAR_STRING,\n      hljs.NUMBER_MODE,\n      NUMBER,\n      CLASS,\n      FUNCTION,\n      DIRECTIVE\n    ].concat(COMMENT_MODES)\n  };\n}\n\nmodule.exports = delphi;\n","/*\nLanguage: Diff\nDescription: Unified and context diff\nAuthor: Vasily Polovnyov \nWebsite: https://www.gnu.org/software/diffutils/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction diff(hljs) {\n  return {\n    name: 'Diff',\n    aliases: ['patch'],\n    contains: [\n      {\n        className: 'meta',\n        relevance: 10,\n        variants: [\n          {\n            begin: /^@@ +-\\d+,\\d+ +\\+\\d+,\\d+ +@@/\n          },\n          {\n            begin: /^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/\n          },\n          {\n            begin: /^--- +\\d+,\\d+ +----$/\n          }\n        ]\n      },\n      {\n        className: 'comment',\n        variants: [\n          {\n            begin: /Index: /,\n            end: /$/\n          },\n          {\n            begin: /^index/,\n            end: /$/\n          },\n          {\n            begin: /={3,}/,\n            end: /$/\n          },\n          {\n            begin: /^-{3}/,\n            end: /$/\n          },\n          {\n            begin: /^\\*{3} /,\n            end: /$/\n          },\n          {\n            begin: /^\\+{3}/,\n            end: /$/\n          },\n          {\n            begin: /^\\*{15}$/\n          },\n          {\n            begin: /^diff --git/,\n            end: /$/\n          }\n        ]\n      },\n      {\n        className: 'addition',\n        begin: /^\\+/,\n        end: /$/\n      },\n      {\n        className: 'deletion',\n        begin: /^-/,\n        end: /$/\n      },\n      {\n        className: 'addition',\n        begin: /^!/,\n        end: /$/\n      }\n    ]\n  };\n}\n\nmodule.exports = diff;\n","/*\nLanguage: Django\nDescription: Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.\nRequires: xml.js\nAuthor: Ivan Sagalaev \nContributors: Ilya Baryshev \nWebsite: https://www.djangoproject.com\nCategory: template\n*/\n\n/** @type LanguageFn */\nfunction django(hljs) {\n  const FILTER = {\n    begin: /\\|[A-Za-z]+:?/,\n    keywords: {\n      name:\n        'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +\n        'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +\n        'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +\n        'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +\n        'dictsortreversed default_if_none pluralize lower join center default ' +\n        'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +\n        'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +\n        'localtime utc timezone'\n    },\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE\n    ]\n  };\n\n  return {\n    name: 'Django',\n    aliases: ['jinja'],\n    case_insensitive: true,\n    subLanguage: 'xml',\n    contains: [\n      hljs.COMMENT(/\\{%\\s*comment\\s*%\\}/, /\\{%\\s*endcomment\\s*%\\}/),\n      hljs.COMMENT(/\\{#/, /#\\}/),\n      {\n        className: 'template-tag',\n        begin: /\\{%/,\n        end: /%\\}/,\n        contains: [{\n          className: 'name',\n          begin: /\\w+/,\n          keywords: {\n            name:\n                'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +\n                'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +\n                'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +\n                'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +\n                'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +\n                'plural get_current_language language get_available_languages ' +\n                'get_current_language_bidi get_language_info get_language_info_list localize ' +\n                'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +\n                'verbatim'\n          },\n          starts: {\n            endsWithParent: true,\n            keywords: 'in by as',\n            contains: [FILTER],\n            relevance: 0\n          }\n        }]\n      },\n      {\n        className: 'template-variable',\n        begin: /\\{\\{/,\n        end: /\\}\\}/,\n        contains: [FILTER]\n      }\n    ]\n  };\n}\n\nmodule.exports = django;\n","/*\nLanguage: DNS Zone\nAuthor: Tim Schumacher \nCategory: config\nWebsite: https://en.wikipedia.org/wiki/Zone_file\n*/\n\n/** @type LanguageFn */\nfunction dns(hljs) {\n  return {\n    name: 'DNS Zone',\n    aliases: [\n      'bind',\n      'zone'\n    ],\n    keywords: {\n      keyword:\n        'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +\n        'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'\n    },\n    contains: [\n      hljs.COMMENT(';', '$', {\n        relevance: 0\n      }),\n      {\n        className: 'meta',\n        begin: /^\\$(TTL|GENERATE|INCLUDE|ORIGIN)\\b/\n      },\n      // IPv6\n      {\n        className: 'number',\n        begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:)))\\\\b'\n      },\n      // IPv4\n      {\n        className: 'number',\n        begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\b'\n      },\n      hljs.inherit(hljs.NUMBER_MODE, {\n        begin: /\\b\\d+[dhwm]?/\n      })\n    ]\n  };\n}\n\nmodule.exports = dns;\n","/*\nLanguage: Dockerfile\nRequires: bash.js\nAuthor: Alexis Hénaut \nDescription: language definition for Dockerfile files\nWebsite: https://docs.docker.com/engine/reference/builder/\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction dockerfile(hljs) {\n  return {\n    name: 'Dockerfile',\n    aliases: ['docker'],\n    case_insensitive: true,\n    keywords: 'from maintainer expose env arg user onbuild stopsignal',\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE,\n      {\n        beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck shell',\n        starts: {\n          end: /[^\\\\]$/,\n          subLanguage: 'bash'\n        }\n      }\n    ],\n    illegal: '\nContributors: Anton Kochkov \nWebsite: https://en.wikipedia.org/wiki/Batch_file\n*/\n\n/** @type LanguageFn */\nfunction dos(hljs) {\n  const COMMENT = hljs.COMMENT(\n    /^\\s*@?rem\\b/, /$/,\n    {\n      relevance: 10\n    }\n  );\n  const LABEL = {\n    className: 'symbol',\n    begin: '^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)',\n    relevance: 0\n  };\n  return {\n    name: 'Batch file (DOS)',\n    aliases: [\n      'bat',\n      'cmd'\n    ],\n    case_insensitive: true,\n    illegal: /\\/\\*/,\n    keywords: {\n      keyword:\n        'if else goto for in do call exit not exist errorlevel defined ' +\n        'equ neq lss leq gtr geq',\n      built_in:\n        'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +\n        'shift cd dir echo setlocal endlocal set pause copy ' +\n        'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +\n        'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +\n        'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +\n        'pause print popd pushd promt rd recover rem rename replace restore rmdir shift ' +\n        'sort start subst time title tree type ver verify vol ' +\n        // winutils\n        'ping net ipconfig taskkill xcopy ren del'\n    },\n    contains: [\n      {\n        className: 'variable',\n        begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/\n      },\n      {\n        className: 'function',\n        begin: LABEL.begin,\n        end: 'goto:eof',\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*'\n          }),\n          COMMENT\n        ]\n      },\n      {\n        className: 'number',\n        begin: '\\\\b\\\\d+',\n        relevance: 0\n      },\n      COMMENT\n    ]\n  };\n}\n\nmodule.exports = dos;\n","/*\n Language: dsconfig\n Description: dsconfig batch configuration language for LDAP directory servers\n Contributors: Jacob Childress \n Category: enterprise, config\n */\n\n /** @type LanguageFn */\nfunction dsconfig(hljs) {\n  const QUOTED_PROPERTY = {\n    className: 'string',\n    begin: /\"/,\n    end: /\"/\n  };\n  const APOS_PROPERTY = {\n    className: 'string',\n    begin: /'/,\n    end: /'/\n  };\n  const UNQUOTED_PROPERTY = {\n    className: 'string',\n    begin: /[\\w\\-?]+:\\w+/,\n    end: /\\W/,\n    relevance: 0\n  };\n  const VALUELESS_PROPERTY = {\n    className: 'string',\n    begin: /\\w+(\\-\\w+)*/,\n    end: /(?=\\W)/,\n    relevance: 0\n  };\n\n  return {\n    keywords: 'dsconfig',\n    contains: [\n      {\n        className: 'keyword',\n        begin: '^dsconfig',\n        end: /\\s/,\n        excludeEnd: true,\n        relevance: 10\n      },\n      {\n        className: 'built_in',\n        begin: /(list|create|get|set|delete)-(\\w+)/,\n        end: /\\s/,\n        excludeEnd: true,\n        illegal: '!@#$%^&*()',\n        relevance: 10\n      },\n      {\n        className: 'built_in',\n        begin: /--(\\w+)/,\n        end: /\\s/,\n        excludeEnd: true\n      },\n      QUOTED_PROPERTY,\n      APOS_PROPERTY,\n      UNQUOTED_PROPERTY,\n      VALUELESS_PROPERTY,\n      hljs.HASH_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = dsconfig;\n","/*\nLanguage: Device Tree\nDescription: *.dts files used in the Linux kernel\nAuthor: Martin Braun , Moritz Fischer \nWebsite: https://elinux.org/Device_Tree_Reference\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction dts(hljs) {\n  const STRINGS = {\n    className: 'string',\n    variants: [\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        begin: '((u8?|U)|L)?\"'\n      }),\n      {\n        begin: '(u8?|U)?R\"',\n        end: '\"',\n        contains: [hljs.BACKSLASH_ESCAPE]\n      },\n      {\n        begin: '\\'\\\\\\\\?.',\n        end: '\\'',\n        illegal: '.'\n      }\n    ]\n  };\n\n  const NUMBERS = {\n    className: 'number',\n    variants: [\n      {\n        begin: '\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)(u|U|l|L|ul|UL|f|F)'\n      },\n      {\n        begin: hljs.C_NUMBER_RE\n      }\n    ],\n    relevance: 0\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: '#',\n    end: '$',\n    keywords: {\n      'meta-keyword': 'if else elif endif define undef ifdef ifndef'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      {\n        beginKeywords: 'include',\n        end: '$',\n        keywords: {\n          'meta-keyword': 'include'\n        },\n        contains: [\n          hljs.inherit(STRINGS, {\n            className: 'meta-string'\n          }),\n          {\n            className: 'meta-string',\n            begin: '<',\n            end: '>',\n            illegal: '\\\\n'\n          }\n        ]\n      },\n      STRINGS,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  const DTS_REFERENCE = {\n    className: 'variable',\n    begin: /&[a-z\\d_]*\\b/\n  };\n\n  const DTS_KEYWORD = {\n    className: 'meta-keyword',\n    begin: '/[a-z][a-z\\\\d-]*/'\n  };\n\n  const DTS_LABEL = {\n    className: 'symbol',\n    begin: '^\\\\s*[a-zA-Z_][a-zA-Z\\\\d_]*:'\n  };\n\n  const DTS_CELL_PROPERTY = {\n    className: 'params',\n    begin: '<',\n    end: '>',\n    contains: [\n      NUMBERS,\n      DTS_REFERENCE\n    ]\n  };\n\n  const DTS_NODE = {\n    className: 'class',\n    begin: /[a-zA-Z_][a-zA-Z\\d_@]*\\s\\{/,\n    end: /[{;=]/,\n    returnBegin: true,\n    excludeEnd: true\n  };\n\n  const DTS_ROOT_NODE = {\n    className: 'class',\n    begin: '/\\\\s*\\\\{',\n    end: /\\};/,\n    relevance: 10,\n    contains: [\n      DTS_REFERENCE,\n      DTS_KEYWORD,\n      DTS_LABEL,\n      DTS_NODE,\n      DTS_CELL_PROPERTY,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      NUMBERS,\n      STRINGS\n    ]\n  };\n\n  return {\n    name: 'Device Tree',\n    keywords: \"\",\n    contains: [\n      DTS_ROOT_NODE,\n      DTS_REFERENCE,\n      DTS_KEYWORD,\n      DTS_LABEL,\n      DTS_NODE,\n      DTS_CELL_PROPERTY,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      NUMBERS,\n      STRINGS,\n      PREPROCESSOR,\n      {\n        begin: hljs.IDENT_RE + '::',\n        keywords: \"\"\n      }\n    ]\n  };\n}\n\nmodule.exports = dts;\n","/*\nLanguage: Dust\nRequires: xml.js\nAuthor: Michael Allen \nDescription: Matcher for dust.js templates.\nWebsite: https://www.dustjs.com\nCategory: template\n*/\n\n/** @type LanguageFn */\nfunction dust(hljs) {\n  const EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';\n  return {\n    name: 'Dust',\n    aliases: ['dst'],\n    case_insensitive: true,\n    subLanguage: 'xml',\n    contains: [\n      {\n        className: 'template-tag',\n        begin: /\\{[#\\/]/,\n        end: /\\}/,\n        illegal: /;/,\n        contains: [{\n          className: 'name',\n          begin: /[a-zA-Z\\.-]+/,\n          starts: {\n            endsWithParent: true,\n            relevance: 0,\n            contains: [hljs.QUOTE_STRING_MODE]\n          }\n        }]\n      },\n      {\n        className: 'template-variable',\n        begin: /\\{/,\n        end: /\\}/,\n        illegal: /;/,\n        keywords: EXPRESSION_KEYWORDS\n      }\n    ]\n  };\n}\n\nmodule.exports = dust;\n","/*\nLanguage: Extended Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form\n*/\n\n/** @type LanguageFn */\nfunction ebnf(hljs) {\n  const commentMode = hljs.COMMENT(/\\(\\*/, /\\*\\)/);\n\n  const nonTerminalMode = {\n    className: \"attribute\",\n    begin: /^[ ]*[a-zA-Z]+([\\s_-]+[a-zA-Z]+)*/\n  };\n\n  const specialSequenceMode = {\n    className: \"meta\",\n    begin: /\\?.*\\?/\n  };\n\n  const ruleBodyMode = {\n    begin: /=/,\n    end: /[.;]/,\n    contains: [\n      commentMode,\n      specialSequenceMode,\n      {\n        // terminals\n        className: 'string',\n        variants: [\n          hljs.APOS_STRING_MODE,\n          hljs.QUOTE_STRING_MODE,\n          {\n            begin: '`',\n            end: '`'\n          }\n        ]\n      }\n    ]\n  };\n\n  return {\n    name: 'Extended Backus-Naur Form',\n    illegal: /\\S/,\n    contains: [\n      commentMode,\n      nonTerminalMode,\n      ruleBodyMode\n    ]\n  };\n}\n\nmodule.exports = ebnf;\n","/*\nLanguage: Elixir\nAuthor: Josh Adams \nDescription: language definition for Elixir source code files (.ex and .exs).  Based on ruby language support.\nCategory: functional\nWebsite: https://elixir-lang.org\n*/\n\n/** @type LanguageFn */\nfunction elixir(hljs) {\n  const ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(!|\\\\?)?';\n  const ELIXIR_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?';\n  const ELIXIR_KEYWORDS = {\n    $pattern: ELIXIR_IDENT_RE,\n    keyword: 'and false then defined module in return redo retry end for true self when ' +\n    'next until do begin unless nil break not case cond alias while ensure or ' +\n    'include use alias fn quote require import with|0'\n  };\n  const SUBST = {\n    className: 'subst',\n    begin: /#\\{/,\n    end: /\\}/,\n    keywords: ELIXIR_KEYWORDS\n  };\n  const NUMBER = {\n    className: 'number',\n    begin: '(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[1-9][0-9_]*(\\\\.[0-9_]+([eE][-+]?[0-9]+)?)?)',\n    relevance: 0\n  };\n  const SIGIL_DELIMITERS = '[/|([{<\"\\']';\n  const LOWERCASE_SIGIL = {\n    className: 'string',\n    begin: '~[a-z]' + '(?=' + SIGIL_DELIMITERS + ')',\n    contains: [\n      {\n        endsParent: true,\n        contains: [\n          {\n            contains: [\n              hljs.BACKSLASH_ESCAPE,\n              SUBST\n            ],\n            variants: [\n              {\n                begin: /\"/,\n                end: /\"/\n              },\n              {\n                begin: /'/,\n                end: /'/\n              },\n              {\n                begin: /\\//,\n                end: /\\//\n              },\n              {\n                begin: /\\|/,\n                end: /\\|/\n              },\n              {\n                begin: /\\(/,\n                end: /\\)/\n              },\n              {\n                begin: /\\[/,\n                end: /\\]/\n              },\n              {\n                begin: /\\{/,\n                end: /\\}/\n              },\n              {\n                begin: //\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  };\n\n  const UPCASE_SIGIL = {\n    className: 'string',\n    begin: '~[A-Z]' + '(?=' + SIGIL_DELIMITERS + ')',\n    contains: [\n      {\n        begin: /\"/,\n        end: /\"/\n      },\n      {\n        begin: /'/,\n        end: /'/\n      },\n      {\n        begin: /\\//,\n        end: /\\//\n      },\n      {\n        begin: /\\|/,\n        end: /\\|/\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/\n      },\n      {\n        begin: /\\[/,\n        end: /\\]/\n      },\n      {\n        begin: /\\{/,\n        end: /\\}/\n      },\n      {\n        begin: //\n      }\n    ]\n  };\n\n  const STRING = {\n    className: 'string',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ],\n    variants: [\n      {\n        begin: /\"\"\"/,\n        end: /\"\"\"/\n      },\n      {\n        begin: /'''/,\n        end: /'''/\n      },\n      {\n        begin: /~S\"\"\"/,\n        end: /\"\"\"/,\n        contains: [] // override default\n      },\n      {\n        begin: /~S\"/,\n        end: /\"/,\n        contains: [] // override default\n      },\n      {\n        begin: /~S'''/,\n        end: /'''/,\n        contains: [] // override default\n      },\n      {\n        begin: /~S'/,\n        end: /'/,\n        contains: [] // override default\n      },\n      {\n        begin: /'/,\n        end: /'/\n      },\n      {\n        begin: /\"/,\n        end: /\"/\n      }\n    ]\n  };\n  const FUNCTION = {\n    className: 'function',\n    beginKeywords: 'def defp defmacro',\n    end: /\\B\\b/, // the mode is ended by the title\n    contains: [\n      hljs.inherit(hljs.TITLE_MODE, {\n        begin: ELIXIR_IDENT_RE,\n        endsParent: true\n      })\n    ]\n  };\n  const CLASS = hljs.inherit(FUNCTION, {\n    className: 'class',\n    beginKeywords: 'defimpl defmodule defprotocol defrecord',\n    end: /\\bdo\\b|$|;/\n  });\n  const ELIXIR_DEFAULT_CONTAINS = [\n    STRING,\n    UPCASE_SIGIL,\n    LOWERCASE_SIGIL,\n    hljs.HASH_COMMENT_MODE,\n    CLASS,\n    FUNCTION,\n    {\n      begin: '::'\n    },\n    {\n      className: 'symbol',\n      begin: ':(?![\\\\s:])',\n      contains: [\n        STRING,\n        {\n          begin: ELIXIR_METHOD_RE\n        }\n      ],\n      relevance: 0\n    },\n    {\n      className: 'symbol',\n      begin: ELIXIR_IDENT_RE + ':(?!:)',\n      relevance: 0\n    },\n    NUMBER,\n    {\n      className: 'variable',\n      begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))'\n    },\n    {\n      begin: '->'\n    },\n    { // regexp container\n      begin: '(' + hljs.RE_STARTERS_RE + ')\\\\s*',\n      contains: [\n        hljs.HASH_COMMENT_MODE,\n        {\n          // to prevent false regex triggers for the division function:\n          // /:\n          begin: /\\/: (?=\\d+\\s*[,\\]])/,\n          relevance: 0,\n          contains: [NUMBER]\n        },\n        {\n          className: 'regexp',\n          illegal: '\\\\n',\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST\n          ],\n          variants: [\n            {\n              begin: '/',\n              end: '/[a-z]*'\n            },\n            {\n              begin: '%r\\\\[',\n              end: '\\\\][a-z]*'\n            }\n          ]\n        }\n      ],\n      relevance: 0\n    }\n  ];\n  SUBST.contains = ELIXIR_DEFAULT_CONTAINS;\n\n  return {\n    name: 'Elixir',\n    keywords: ELIXIR_KEYWORDS,\n    contains: ELIXIR_DEFAULT_CONTAINS\n  };\n}\n\nmodule.exports = elixir;\n","/*\nLanguage: Elm\nAuthor: Janis Voigtlaender \nWebsite: https://elm-lang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction elm(hljs) {\n  const COMMENT = {\n    variants: [\n      hljs.COMMENT('--', '$'),\n      hljs.COMMENT(\n        /\\{-/,\n        /-\\}/,\n        {\n          contains: ['self']\n        }\n      )\n    ]\n  };\n\n  const CONSTRUCTOR = {\n    className: 'type',\n    begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (built-in, infix).\n    relevance: 0\n  };\n\n  const LIST = {\n    begin: '\\\\(',\n    end: '\\\\)',\n    illegal: '\"',\n    contains: [\n      {\n        className: 'type',\n        begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n      },\n      COMMENT\n    ]\n  };\n\n  const RECORD = {\n    begin: /\\{/,\n    end: /\\}/,\n    contains: LIST.contains\n  };\n\n  const CHARACTER = {\n    className: 'string',\n    begin: '\\'\\\\\\\\?.',\n    end: '\\'',\n    illegal: '.'\n  };\n\n  return {\n    name: 'Elm',\n    keywords:\n      'let in if then else case of where module import exposing ' +\n      'type alias as infix infixl infixr port effect command subscription',\n    contains: [\n\n      // Top-level constructions.\n\n      {\n        beginKeywords: 'port effect module',\n        end: 'exposing',\n        keywords: 'port effect module where command subscription exposing',\n        contains: [\n          LIST,\n          COMMENT\n        ],\n        illegal: '\\\\W\\\\.|;'\n      },\n      {\n        begin: 'import',\n        end: '$',\n        keywords: 'import as exposing',\n        contains: [\n          LIST,\n          COMMENT\n        ],\n        illegal: '\\\\W\\\\.|;'\n      },\n      {\n        begin: 'type',\n        end: '$',\n        keywords: 'type alias',\n        contains: [\n          CONSTRUCTOR,\n          LIST,\n          RECORD,\n          COMMENT\n        ]\n      },\n      {\n        beginKeywords: 'infix infixl infixr',\n        end: '$',\n        contains: [\n          hljs.C_NUMBER_MODE,\n          COMMENT\n        ]\n      },\n      {\n        begin: 'port',\n        end: '$',\n        keywords: 'port',\n        contains: [COMMENT]\n      },\n\n      // Literals and names.\n\n      CHARACTER,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      CONSTRUCTOR,\n      hljs.inherit(hljs.TITLE_MODE, {\n        begin: '^[_a-z][\\\\w\\']*'\n      }),\n      COMMENT,\n\n      {\n        begin: '->|<-'\n      } // No markup, relevance booster\n    ],\n    illegal: /;/\n  };\n}\n\nmodule.exports = elm;\n","/*\nLanguage: ERB (Embedded Ruby)\nRequires: xml.js, ruby.js\nAuthor: Lucas Mazza \nContributors: Kassio Borges \nDescription: \"Bridge\" language defining fragments of Ruby in HTML within <% .. %>\nWebsite: https://ruby-doc.org/stdlib-2.6.5/libdoc/erb/rdoc/ERB.html\nCategory: template\n*/\n\n/** @type LanguageFn */\nfunction erb(hljs) {\n  return {\n    name: 'ERB',\n    subLanguage: 'xml',\n    contains: [\n      hljs.COMMENT('<%#', '%>'),\n      {\n        begin: '<%[%=-]?',\n        end: '[%-]?%>',\n        subLanguage: 'ruby',\n        excludeBegin: true,\n        excludeEnd: true\n      }\n    ]\n  };\n}\n\nmodule.exports = erb;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Erlang REPL\nAuthor: Sergey Ignatov \nWebsite: https://www.erlang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction erlangRepl(hljs) {\n  return {\n    name: 'Erlang REPL',\n    keywords: {\n      built_in:\n        'spawn spawn_link self',\n      keyword:\n        'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +\n        'let not of or orelse|10 query receive rem try when xor'\n    },\n    contains: [\n      {\n        className: 'meta',\n        begin: '^[0-9]+> ',\n        relevance: 10\n      },\n      hljs.COMMENT('%', '$'),\n      {\n        className: 'number',\n        begin: '\\\\b(\\\\d+(_\\\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\\\d+(_\\\\d+)*(\\\\.\\\\d+(_\\\\d+)*)?([eE][-+]?\\\\d+)?)',\n        relevance: 0\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        begin: concat(\n          /\\?(::)?/,\n          /([A-Z]\\w*)/, // at least one identifier\n          /((::)[A-Z]\\w*)*/ // perhaps more\n        )\n      },\n      {\n        begin: '->'\n      },\n      {\n        begin: 'ok'\n      },\n      {\n        begin: '!'\n      },\n      {\n        begin: '(\\\\b[a-z\\'][a-zA-Z0-9_\\']*:[a-z\\'][a-zA-Z0-9_\\']*)|(\\\\b[a-z\\'][a-zA-Z0-9_\\']*)',\n        relevance: 0\n      },\n      {\n        begin: '[A-Z][a-zA-Z0-9_\\']*',\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = erlangRepl;\n","/*\nLanguage: Erlang\nDescription: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.\nAuthor: Nikolay Zakharov , Dmitry Kovega \nWebsite: https://www.erlang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction erlang(hljs) {\n  const BASIC_ATOM_RE = '[a-z\\'][a-zA-Z0-9_\\']*';\n  const FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';\n  const ERLANG_RESERVED = {\n    keyword:\n      'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +\n      'let not of orelse|10 query receive rem try when xor',\n    literal:\n      'false true'\n  };\n\n  const COMMENT = hljs.COMMENT('%', '$');\n  const NUMBER = {\n    className: 'number',\n    begin: '\\\\b(\\\\d+(_\\\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\\\d+(_\\\\d+)*(\\\\.\\\\d+(_\\\\d+)*)?([eE][-+]?\\\\d+)?)',\n    relevance: 0\n  };\n  const NAMED_FUN = {\n    begin: 'fun\\\\s+' + BASIC_ATOM_RE + '/\\\\d+'\n  };\n  const FUNCTION_CALL = {\n    begin: FUNCTION_NAME_RE + '\\\\(',\n    end: '\\\\)',\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      {\n        begin: FUNCTION_NAME_RE,\n        relevance: 0\n      },\n      {\n        begin: '\\\\(',\n        end: '\\\\)',\n        endsWithParent: true,\n        returnEnd: true,\n        relevance: 0\n        // \"contains\" defined later\n      }\n    ]\n  };\n  const TUPLE = {\n    begin: /\\{/,\n    end: /\\}/,\n    relevance: 0\n    // \"contains\" defined later\n  };\n  const VAR1 = {\n    begin: '\\\\b_([A-Z][A-Za-z0-9_]*)?',\n    relevance: 0\n  };\n  const VAR2 = {\n    begin: '[A-Z][a-zA-Z0-9_]*',\n    relevance: 0\n  };\n  const RECORD_ACCESS = {\n    begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n    relevance: 0,\n    returnBegin: true,\n    contains: [\n      {\n        begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n        relevance: 0\n      },\n      {\n        begin: /\\{/,\n        end: /\\}/,\n        relevance: 0\n        // \"contains\" defined later\n      }\n    ]\n  };\n\n  const BLOCK_STATEMENTS = {\n    beginKeywords: 'fun receive if try case',\n    end: 'end',\n    keywords: ERLANG_RESERVED\n  };\n  BLOCK_STATEMENTS.contains = [\n    COMMENT,\n    NAMED_FUN,\n    hljs.inherit(hljs.APOS_STRING_MODE, {\n      className: ''\n    }),\n    BLOCK_STATEMENTS,\n    FUNCTION_CALL,\n    hljs.QUOTE_STRING_MODE,\n    NUMBER,\n    TUPLE,\n    VAR1,\n    VAR2,\n    RECORD_ACCESS\n  ];\n\n  const BASIC_MODES = [\n    COMMENT,\n    NAMED_FUN,\n    BLOCK_STATEMENTS,\n    FUNCTION_CALL,\n    hljs.QUOTE_STRING_MODE,\n    NUMBER,\n    TUPLE,\n    VAR1,\n    VAR2,\n    RECORD_ACCESS\n  ];\n  FUNCTION_CALL.contains[1].contains = BASIC_MODES;\n  TUPLE.contains = BASIC_MODES;\n  RECORD_ACCESS.contains[1].contains = BASIC_MODES;\n\n  const DIRECTIVES = [\n    \"-module\",\n    \"-record\",\n    \"-undef\",\n    \"-export\",\n    \"-ifdef\",\n    \"-ifndef\",\n    \"-author\",\n    \"-copyright\",\n    \"-doc\",\n    \"-vsn\",\n    \"-import\",\n    \"-include\",\n    \"-include_lib\",\n    \"-compile\",\n    \"-define\",\n    \"-else\",\n    \"-endif\",\n    \"-file\",\n    \"-behaviour\",\n    \"-behavior\",\n    \"-spec\"\n  ];\n\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)',\n    contains: BASIC_MODES\n  };\n  return {\n    name: 'Erlang',\n    aliases: ['erl'],\n    keywords: ERLANG_RESERVED,\n    illegal: '(',\n        returnBegin: true,\n        illegal: '\\\\(|#|//|/\\\\*|\\\\\\\\|:|;',\n        contains: [\n          PARAMS,\n          hljs.inherit(hljs.TITLE_MODE, {\n            begin: BASIC_ATOM_RE\n          })\n        ],\n        starts: {\n          end: ';|\\\\.',\n          keywords: ERLANG_RESERVED,\n          contains: BASIC_MODES\n        }\n      },\n      COMMENT,\n      {\n        begin: '^-',\n        end: '\\\\.',\n        relevance: 0,\n        excludeEnd: true,\n        returnBegin: true,\n        keywords: {\n          $pattern: '-' + hljs.IDENT_RE,\n          keyword: DIRECTIVES.map(x => `${x}|1.5`).join(\" \")\n        },\n        contains: [PARAMS]\n      },\n      NUMBER,\n      hljs.QUOTE_STRING_MODE,\n      RECORD_ACCESS,\n      VAR1,\n      VAR2,\n      TUPLE,\n      {\n        begin: /\\.$/\n      } // relevance booster\n    ]\n  };\n}\n\nmodule.exports = erlang;\n","/*\nLanguage: Excel formulae\nAuthor: Victor Zhou \nDescription: Excel formulae\nWebsite: https://products.office.com/en-us/excel/\n*/\n\n/** @type LanguageFn */\nfunction excel(hljs) {\n  return {\n    name: 'Excel formulae',\n    aliases: [\n      'xlsx',\n      'xls'\n    ],\n    case_insensitive: true,\n    // built-in functions imported from https://web.archive.org/web/20160513042710/https://support.office.com/en-us/article/Excel-functions-alphabetical-b3944572-255d-4efb-bb96-c6d90033e188\n    keywords: {\n      $pattern: /[a-zA-Z][\\w\\.]*/,\n      built_in: 'ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST'\n    },\n    contains: [\n      {\n        /* matches a beginning equal sign found in Excel formula examples */\n        begin: /^=/,\n        end: /[^=]/,\n        returnEnd: true,\n        illegal: /=/, /* only allow single equal sign at front of line */\n        relevance: 10\n      },\n      /* technically, there can be more than 2 letters in column names, but this prevents conflict with some keywords */\n      {\n        /* matches a reference to a single cell */\n        className: 'symbol',\n        begin: /\\b[A-Z]{1,2}\\d+\\b/,\n        end: /[^\\d]/,\n        excludeEnd: true,\n        relevance: 0\n      },\n      {\n        /* matches a reference to a range of cells */\n        className: 'symbol',\n        begin: /[A-Z]{0,2}\\d*:[A-Z]{0,2}\\d*/,\n        relevance: 0\n      },\n      hljs.BACKSLASH_ESCAPE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'number',\n        begin: hljs.NUMBER_RE + '(%)?',\n        relevance: 0\n      },\n      /* Excel formula comments are done by putting the comment in a function call to N() */\n      hljs.COMMENT(/\\bN\\(/, /\\)/,\n        {\n          excludeBegin: true,\n          excludeEnd: true,\n          illegal: /\\n/\n        })\n    ]\n  };\n}\n\nmodule.exports = excel;\n","/*\nLanguage: FIX\nAuthor: Brent Bradbury \n*/\n\n/** @type LanguageFn */\nfunction fix(hljs) {\n  return {\n    name: 'FIX',\n    contains: [{\n      begin: /[^\\u2401\\u0001]+/,\n      end: /[\\u2401\\u0001]/,\n      excludeEnd: true,\n      returnBegin: true,\n      returnEnd: false,\n      contains: [\n        {\n          begin: /([^\\u2401\\u0001=]+)/,\n          end: /=([^\\u2401\\u0001=]+)/,\n          returnEnd: true,\n          returnBegin: false,\n          className: 'attr'\n        },\n        {\n          begin: /=/,\n          end: /([\\u2401\\u0001])/,\n          excludeEnd: true,\n          excludeBegin: true,\n          className: 'string'\n        }\n      ]\n    }],\n    case_insensitive: true\n  };\n}\n\nmodule.exports = fix;\n","/*\n Language: Flix\n Category: functional\n Author: Magnus Madsen \n Website: https://flix.dev/\n */\n\n /** @type LanguageFn */\nfunction flix(hljs) {\n  const CHAR = {\n    className: 'string',\n    begin: /'(.|\\\\[xXuU][a-zA-Z0-9]+)'/\n  };\n\n  const STRING = {\n    className: 'string',\n    variants: [{\n      begin: '\"',\n      end: '\"'\n    }]\n  };\n\n  const NAME = {\n    className: 'title',\n    relevance: 0,\n    begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/\n  };\n\n  const METHOD = {\n    className: 'function',\n    beginKeywords: 'def',\n    end: /[:={\\[(\\n;]/,\n    excludeEnd: true,\n    contains: [NAME]\n  };\n\n  return {\n    name: 'Flix',\n    keywords: {\n      literal: 'true false',\n      keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      CHAR,\n      STRING,\n      METHOD,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = flix;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Fortran\nAuthor: Anthony Scemama \nWebsite: https://en.wikipedia.org/wiki/Fortran\nCategory: scientific\n*/\n\n/** @type LanguageFn */\nfunction fortran(hljs) {\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)'\n  };\n\n  const COMMENT = {\n    variants: [\n      hljs.COMMENT('!', '$', {\n        relevance: 0\n      }),\n      // allow FORTRAN 77 style comments\n      hljs.COMMENT('^C[ ]', '$', {\n        relevance: 0\n      }),\n      hljs.COMMENT('^C$', '$', {\n        relevance: 0\n      })\n    ]\n  };\n\n  // regex in both fortran and irpf90 should match\n  const OPTIONAL_NUMBER_SUFFIX = /(_[a-z_\\d]+)?/;\n  const OPTIONAL_NUMBER_EXP = /([de][+-]?\\d+)?/;\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      {\n        begin: concat(/\\b\\d+/, /\\.(\\d*)/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n      },\n      {\n        begin: concat(/\\b\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n      },\n      {\n        begin: concat(/\\.\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n      }\n    ],\n    relevance: 0\n  };\n\n  const FUNCTION_DEF = {\n    className: 'function',\n    beginKeywords: 'subroutine function program',\n    illegal: '[${=\\\\n]',\n    contains: [\n      hljs.UNDERSCORE_TITLE_MODE,\n      PARAMS\n    ]\n  };\n\n  const STRING = {\n    className: 'string',\n    relevance: 0,\n    variants: [\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE\n    ]\n  };\n\n  const KEYWORDS = {\n    literal: '.False. .True.',\n    keyword: 'kind do concurrent local shared while private call intrinsic where elsewhere ' +\n      'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock endassociate ' +\n      'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +\n      'goto save else use module select case ' +\n      'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +\n      'continue format pause cycle exit ' +\n      'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +\n      'synchronous nopass non_overridable pass protected volatile abstract extends import ' +\n      'non_intrinsic value deferred generic final enumerator class associate bind enum ' +\n      'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +\n      'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +\n      'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +\n      'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' +\n      'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +\n      'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +\n      'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +\n      'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure impure ' +\n      'integer real character complex logical codimension dimension allocatable|10 parameter ' +\n      'external implicit|10 none double precision assign intent optional pointer ' +\n      'target in out common equivalence data',\n    built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +\n      'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +\n      'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +\n      'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +\n      'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +\n      'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +\n      'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +\n      'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +\n      'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +\n      'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +\n      'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +\n      'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +\n      'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +\n      'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' +\n      'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +\n      'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +\n      'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +\n      'num_images parity popcnt poppar shifta shiftl shiftr this_image sync change team co_broadcast co_max co_min co_sum co_reduce'\n  };\n  return {\n    name: 'Fortran',\n    case_insensitive: true,\n    aliases: [\n      'f90',\n      'f95'\n    ],\n    keywords: KEYWORDS,\n    illegal: /\\/\\*/,\n    contains: [\n      STRING,\n      FUNCTION_DEF,\n      // allow `C = value` for assignments so they aren't misdetected\n      // as Fortran 77 style comments\n      {\n        begin: /^C\\s*=(?!=)/,\n        relevance: 0\n      },\n      COMMENT,\n      NUMBER\n    ]\n  };\n}\n\nmodule.exports = fortran;\n","/*\nLanguage: F#\nAuthor: Jonas Follesø \nContributors: Troy Kershaw , Henrik Feldt \nWebsite: https://docs.microsoft.com/en-us/dotnet/fsharp/\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction fsharp(hljs) {\n  const TYPEPARAM = {\n    begin: '<',\n    end: '>',\n    contains: [\n      hljs.inherit(hljs.TITLE_MODE, {\n        begin: /'[a-zA-Z0-9_]+/\n      })\n    ]\n  };\n\n  return {\n    name: 'F#',\n    aliases: ['fs'],\n    keywords:\n      'abstract and as assert base begin class default delegate do done ' +\n      'downcast downto elif else end exception extern false finally for ' +\n      'fun function global if in inherit inline interface internal lazy let ' +\n      'match member module mutable namespace new null of open or ' +\n      'override private public rec return sig static struct then to ' +\n      'true try type upcast use val void when while with yield',\n    illegal: /\\/\\*/,\n    contains: [\n      {\n        // monad builder keywords (matches before non-bang kws)\n        className: 'keyword',\n        begin: /\\b(yield|return|let|do)!/\n      },\n      {\n        className: 'string',\n        begin: '@\"',\n        end: '\"',\n        contains: [\n          {\n            begin: '\"\"'\n          }\n        ]\n      },\n      {\n        className: 'string',\n        begin: '\"\"\"',\n        end: '\"\"\"'\n      },\n      hljs.COMMENT('\\\\(\\\\*(\\\\s)', '\\\\*\\\\)', {\n        contains: [\"self\"]\n      }),\n      {\n        className: 'class',\n        beginKeywords: 'type',\n        end: '\\\\(|=|$',\n        excludeEnd: true,\n        contains: [\n          hljs.UNDERSCORE_TITLE_MODE,\n          TYPEPARAM\n        ]\n      },\n      {\n        className: 'meta',\n        begin: '\\\\[<',\n        end: '>\\\\]',\n        relevance: 10\n      },\n      {\n        className: 'symbol',\n        begin: '\\\\B(\\'[A-Za-z])\\\\b',\n        contains: [hljs.BACKSLASH_ESCAPE]\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        illegal: null\n      }),\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = fsharp;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n  return concat('(', re, ')*');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/** @type LanguageFn */\nfunction gams(hljs) {\n  const KEYWORDS = {\n    keyword:\n      'abort acronym acronyms alias all and assign binary card diag display ' +\n      'else eq file files for free ge gt if integer le loop lt maximizing ' +\n      'minimizing model models ne negative no not option options or ord ' +\n      'positive prod put putpage puttl repeat sameas semicont semiint smax ' +\n      'smin solve sos1 sos2 sum system table then until using while xor yes',\n    literal:\n      'eps inf na',\n    built_in:\n      'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy ' +\n      'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact ' +\n      'floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max ' +\n      'min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power ' +\n      'randBinomial randLinear randTriangle round rPower sigmoid sign ' +\n      'signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt ' +\n      'tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp ' +\n      'bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt ' +\n      'rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear ' +\n      'jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion ' +\n      'handleCollect handleDelete handleStatus handleSubmit heapFree ' +\n      'heapLimit heapSize jobHandle jobKill jobStatus jobTerminate ' +\n      'licenseLevel licenseStatus maxExecError sleep timeClose timeComp ' +\n      'timeElapsed timeExec timeStart'\n  };\n  const PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true\n  };\n  const SYMBOLS = {\n    className: 'symbol',\n    variants: [\n      {\n        begin: /=[lgenxc]=/\n      },\n      {\n        begin: /\\$/\n      }\n    ]\n  };\n  const QSTR = { // One-line quoted comment string\n    className: 'comment',\n    variants: [\n      {\n        begin: '\\'',\n        end: '\\''\n      },\n      {\n        begin: '\"',\n        end: '\"'\n      }\n    ],\n    illegal: '\\\\n',\n    contains: [hljs.BACKSLASH_ESCAPE]\n  };\n  const ASSIGNMENT = {\n    begin: '/',\n    end: '/',\n    keywords: KEYWORDS,\n    contains: [\n      QSTR,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n  const COMMENT_WORD = /[a-z0-9&#*=?@\\\\><:,()$[\\]_.{}!+%^-]+/;\n  const DESCTEXT = { // Parameter/set/variable description text\n    begin: /[a-z][a-z0-9_]*(\\([a-z0-9_, ]*\\))?[ \\t]+/,\n    excludeBegin: true,\n    end: '$',\n    endsWithParent: true,\n    contains: [\n      QSTR,\n      ASSIGNMENT,\n      {\n        className: 'comment',\n        // one comment word, then possibly more\n        begin: concat(\n          COMMENT_WORD,\n          // [ ] because \\s would be too broad (matching newlines)\n          anyNumberOfTimes(concat(/[ ]+/, COMMENT_WORD))\n        ),\n        relevance: 0\n      }\n    ]\n  };\n\n  return {\n    name: 'GAMS',\n    aliases: ['gms'],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    contains: [\n      hljs.COMMENT(/^\\$ontext/, /^\\$offtext/),\n      {\n        className: 'meta',\n        begin: '^\\\\$[a-z0-9]+',\n        end: '$',\n        returnBegin: true,\n        contains: [\n          {\n            className: 'meta-keyword',\n            begin: '^\\\\$[a-z0-9]+'\n          }\n        ]\n      },\n      hljs.COMMENT('^\\\\*', '$'),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n      // Declarations\n      {\n        beginKeywords:\n          'set sets parameter parameters variable variables ' +\n          'scalar scalars equation equations',\n        end: ';',\n        contains: [\n          hljs.COMMENT('^\\\\*', '$'),\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          ASSIGNMENT,\n          DESCTEXT\n        ]\n      },\n      { // table environment\n        beginKeywords: 'table',\n        end: ';',\n        returnBegin: true,\n        contains: [\n          { // table header row\n            beginKeywords: 'table',\n            end: '$',\n            contains: [DESCTEXT]\n          },\n          hljs.COMMENT('^\\\\*', '$'),\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          hljs.C_NUMBER_MODE\n          // Table does not contain DESCTEXT or ASSIGNMENT\n        ]\n      },\n      // Function definitions\n      {\n        className: 'function',\n        begin: /^[a-z][a-z0-9_,\\-+' ()$]+\\.{2}/,\n        returnBegin: true,\n        contains: [\n          { // Function title\n            className: 'title',\n            begin: /^[a-z0-9_]+/\n          },\n          PARAMS,\n          SYMBOLS\n        ]\n      },\n      hljs.C_NUMBER_MODE,\n      SYMBOLS\n    ]\n  };\n}\n\nmodule.exports = gams;\n","/*\nLanguage: GAUSS\nAuthor: Matt Evans \nDescription: GAUSS Mathematical and Statistical language\nWebsite: https://www.aptech.com\nCategory: scientific\n*/\nfunction gauss(hljs) {\n  const KEYWORDS = {\n    keyword: 'bool break call callexe checkinterrupt clear clearg closeall cls comlog compile ' +\n              'continue create debug declare delete disable dlibrary dllcall do dos ed edit else ' +\n              'elseif enable end endfor endif endp endo errorlog errorlogat expr external fn ' +\n              'for format goto gosub graph if keyword let lib library line load loadarray loadexe ' +\n              'loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow ' +\n              'matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print ' +\n              'printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen ' +\n              'scroll setarray show sparse stop string struct system trace trap threadfor ' +\n              'threadendfor threadbegin threadjoin threadstat threadend until use while winprint ' +\n              'ne ge le gt lt and xor or not eq eqv',\n    built_in: 'abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol ' +\n              'AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks ' +\n              'AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults ' +\n              'annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness ' +\n              'annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd ' +\n              'astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar ' +\n              'base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 ' +\n              'cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv ' +\n              'cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn ' +\n              'cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi ' +\n              'cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ' +\n              'ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated ' +\n              'complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs ' +\n              'cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos ' +\n              'datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd ' +\n              'dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName ' +\n              'dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy ' +\n              'dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen ' +\n              'dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA ' +\n              'dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField ' +\n              'dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition ' +\n              'dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows ' +\n              'dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly ' +\n              'dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy ' +\n              'dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl ' +\n              'dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt ' +\n              'dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday ' +\n              'dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays ' +\n              'endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error ' +\n              'etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut ' +\n              'EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol ' +\n              'EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq ' +\n              'feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt ' +\n              'floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC ' +\n              'gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders ' +\n              'gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse ' +\n              'gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray ' +\n              'getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders ' +\n              'getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT ' +\n              'gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm ' +\n              'hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 ' +\n              'indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 ' +\n              'inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf ' +\n              'isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv ' +\n              'lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn ' +\n              'lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind ' +\n              'loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars ' +\n              'makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli ' +\n              'mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave ' +\n              'movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate ' +\n              'olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto ' +\n              'pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox ' +\n              'plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea ' +\n              'plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout ' +\n              'plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill ' +\n              'plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol ' +\n              'plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange ' +\n              'plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel ' +\n              'plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot ' +\n              'pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames ' +\n              'pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector ' +\n              'pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate ' +\n              'qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr ' +\n              'real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn ' +\n              'rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel ' +\n              'rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn ' +\n              'rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh ' +\n              'rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind ' +\n              'scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa ' +\n              'setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind ' +\n              'sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL ' +\n              'spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense ' +\n              'spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet ' +\n              'sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt ' +\n              'strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr ' +\n              'surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname ' +\n              'time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk ' +\n              'trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt ' +\n              'utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs ' +\n              'vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window ' +\n              'writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM ' +\n              'xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute ' +\n              'h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels ' +\n              'plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester ' +\n              'strtrim',\n    literal: 'DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS ' +\n             'DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 ' +\n             'DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS ' +\n             'DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES ' +\n             'DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR'\n  };\n\n  const AT_COMMENT_MODE = hljs.COMMENT('@', '@');\n\n  const PREPROCESSOR =\n  {\n    className: 'meta',\n    begin: '#',\n    end: '$',\n    keywords: {\n      'meta-keyword': 'define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      {\n        beginKeywords: 'include',\n        end: '$',\n        keywords: {\n          'meta-keyword': 'include'\n        },\n        contains: [\n          {\n            className: 'meta-string',\n            begin: '\"',\n            end: '\"',\n            illegal: '\\\\n'\n          }\n        ]\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      AT_COMMENT_MODE\n    ]\n  };\n\n  const STRUCT_TYPE =\n  {\n    begin: /\\bstruct\\s+/,\n    end: /\\s/,\n    keywords: \"struct\",\n    contains: [\n      {\n        className: \"type\",\n        begin: hljs.UNDERSCORE_IDENT_RE,\n        relevance: 0\n      }\n    ]\n  };\n\n  // only for definitions\n  const PARSE_PARAMS = [\n    {\n      className: 'params',\n      begin: /\\(/,\n      end: /\\)/,\n      excludeBegin: true,\n      excludeEnd: true,\n      endsWithParent: true,\n      relevance: 0,\n      contains: [\n        { // dots\n          className: 'literal',\n          begin: /\\.\\.\\./\n        },\n        hljs.C_NUMBER_MODE,\n        hljs.C_BLOCK_COMMENT_MODE,\n        AT_COMMENT_MODE,\n        STRUCT_TYPE\n      ]\n    }\n  ];\n\n  const FUNCTION_DEF =\n  {\n    className: \"title\",\n    begin: hljs.UNDERSCORE_IDENT_RE,\n    relevance: 0\n  };\n\n  const DEFINITION = function(beginKeywords, end, inherits) {\n    const mode = hljs.inherit(\n      {\n        className: \"function\",\n        beginKeywords: beginKeywords,\n        end: end,\n        excludeEnd: true,\n        contains: [].concat(PARSE_PARAMS)\n      },\n      inherits || {}\n    );\n    mode.contains.push(FUNCTION_DEF);\n    mode.contains.push(hljs.C_NUMBER_MODE);\n    mode.contains.push(hljs.C_BLOCK_COMMENT_MODE);\n    mode.contains.push(AT_COMMENT_MODE);\n    return mode;\n  };\n\n  const BUILT_IN_REF =\n  { // these are explicitly named internal function calls\n    className: 'built_in',\n    begin: '\\\\b(' + KEYWORDS.built_in.split(' ').join('|') + ')\\\\b'\n  };\n\n  const STRING_REF =\n  {\n    className: 'string',\n    begin: '\"',\n    end: '\"',\n    contains: [hljs.BACKSLASH_ESCAPE],\n    relevance: 0\n  };\n\n  const FUNCTION_REF =\n  {\n    // className: \"fn_ref\",\n    begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n    returnBegin: true,\n    keywords: KEYWORDS,\n    relevance: 0,\n    contains: [\n      {\n        beginKeywords: KEYWORDS.keyword\n      },\n      BUILT_IN_REF,\n      { // ambiguously named function calls get a relevance of 0\n        className: 'built_in',\n        begin: hljs.UNDERSCORE_IDENT_RE,\n        relevance: 0\n      }\n    ]\n  };\n\n  const FUNCTION_REF_PARAMS =\n  {\n    // className: \"fn_ref_params\",\n    begin: /\\(/,\n    end: /\\)/,\n    relevance: 0,\n    keywords: {\n      built_in: KEYWORDS.built_in,\n      literal: KEYWORDS.literal\n    },\n    contains: [\n      hljs.C_NUMBER_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      AT_COMMENT_MODE,\n      BUILT_IN_REF,\n      FUNCTION_REF,\n      STRING_REF,\n      'self'\n    ]\n  };\n\n  FUNCTION_REF.contains.push(FUNCTION_REF_PARAMS);\n\n  return {\n    name: 'GAUSS',\n    aliases: ['gss'],\n    case_insensitive: true, // language is case-insensitive\n    keywords: KEYWORDS,\n    illegal: /(\\{[%#]|[%#]\\}| <- )/,\n    contains: [\n      hljs.C_NUMBER_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      AT_COMMENT_MODE,\n      STRING_REF,\n      PREPROCESSOR,\n      {\n        className: 'keyword',\n        begin: /\\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/\n      },\n      DEFINITION('proc keyword', ';'),\n      DEFINITION('fn', '='),\n      {\n        beginKeywords: 'for threadfor',\n        end: /;/,\n        // end: /\\(/,\n        relevance: 0,\n        contains: [\n          hljs.C_BLOCK_COMMENT_MODE,\n          AT_COMMENT_MODE,\n          FUNCTION_REF_PARAMS\n        ]\n      },\n      { // custom method guard\n        // excludes method names from keyword processing\n        variants: [\n          {\n            begin: hljs.UNDERSCORE_IDENT_RE + '\\\\.' + hljs.UNDERSCORE_IDENT_RE\n          },\n          {\n            begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*='\n          }\n        ],\n        relevance: 0\n      },\n      FUNCTION_REF,\n      STRUCT_TYPE\n    ]\n  };\n}\n\nmodule.exports = gauss;\n","/*\n Language: G-code (ISO 6983)\n Contributors: Adam Joseph Cook \n Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.\n Website: https://www.sis.se/api/document/preview/911952/\n */\n\nfunction gcode(hljs) {\n  const GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';\n  const GCODE_CLOSE_RE = '%';\n  const GCODE_KEYWORDS = {\n    $pattern: GCODE_IDENT_RE,\n    keyword: 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +\n      'EQ LT GT NE GE LE OR XOR'\n  };\n  const GCODE_START = {\n    className: 'meta',\n    begin: '([O])([0-9]+)'\n  };\n  const NUMBER = hljs.inherit(hljs.C_NUMBER_MODE, {\n    begin: '([-+]?((\\\\.\\\\d+)|(\\\\d+)(\\\\.\\\\d*)?))|' + hljs.C_NUMBER_RE\n  });\n  const GCODE_CODE = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.COMMENT(/\\(/, /\\)/),\n    NUMBER,\n    hljs.inherit(hljs.APOS_STRING_MODE, {\n      illegal: null\n    }),\n    hljs.inherit(hljs.QUOTE_STRING_MODE, {\n      illegal: null\n    }),\n    {\n      className: 'name',\n      begin: '([G])([0-9]+\\\\.?[0-9]?)'\n    },\n    {\n      className: 'name',\n      begin: '([M])([0-9]+\\\\.?[0-9]?)'\n    },\n    {\n      className: 'attr',\n      begin: '(VC|VS|#)',\n      end: '(\\\\d+)'\n    },\n    {\n      className: 'attr',\n      begin: '(VZOFX|VZOFY|VZOFZ)'\n    },\n    {\n      className: 'built_in',\n      begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\\\[)',\n      contains: [\n        NUMBER\n      ],\n      end: '\\\\]'\n    },\n    {\n      className: 'symbol',\n      variants: [\n        {\n          begin: 'N',\n          end: '\\\\d+',\n          illegal: '\\\\W'\n        }\n      ]\n    }\n  ];\n\n  return {\n    name: 'G-code (ISO 6983)',\n    aliases: ['nc'],\n    // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.\n    // However, most prefer all uppercase and uppercase is customary.\n    case_insensitive: true,\n    keywords: GCODE_KEYWORDS,\n    contains: [\n      {\n        className: 'meta',\n        begin: GCODE_CLOSE_RE\n      },\n      GCODE_START\n    ].concat(GCODE_CODE)\n  };\n}\n\nmodule.exports = gcode;\n","/*\n Language: Gherkin\n Author: Sam Pikesley (@pikesley) \n Description: Gherkin is the format for cucumber specifications. It is a domain specific language which helps you to describe business behavior without the need to go into detail of implementation.\n Website: https://cucumber.io/docs/gherkin/\n */\n\nfunction gherkin(hljs) {\n  return {\n    name: 'Gherkin',\n    aliases: ['feature'],\n    keywords: 'Feature Background Ability Business\\ Need Scenario Scenarios Scenario\\ Outline Scenario\\ Template Examples Given And Then But When',\n    contains: [\n      {\n        className: 'symbol',\n        begin: '\\\\*',\n        relevance: 0\n      },\n      {\n        className: 'meta',\n        begin: '@[^@\\\\s]+'\n      },\n      {\n        begin: '\\\\|',\n        end: '\\\\|\\\\w*$',\n        contains: [\n          {\n            className: 'string',\n            begin: '[^|]+'\n          }\n        ]\n      },\n      {\n        className: 'variable',\n        begin: '<',\n        end: '>'\n      },\n      hljs.HASH_COMMENT_MODE,\n      {\n        className: 'string',\n        begin: '\"\"\"',\n        end: '\"\"\"'\n      },\n      hljs.QUOTE_STRING_MODE\n    ]\n  };\n}\n\nmodule.exports = gherkin;\n","/*\nLanguage: GLSL\nDescription: OpenGL Shading Language\nAuthor: Sergey Tikhomirov \nWebsite: https://en.wikipedia.org/wiki/OpenGL_Shading_Language\nCategory: graphics\n*/\n\nfunction glsl(hljs) {\n  return {\n    name: 'GLSL',\n    keywords: {\n      keyword:\n        // Statements\n        'break continue discard do else for if return while switch case default ' +\n        // Qualifiers\n        'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +\n        'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +\n        'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +\n        'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +\n        'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +\n        'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f ' +\n        'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +\n        'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +\n        'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +\n        'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +\n        'triangles triangles_adjacency uniform varying vertices volatile writeonly',\n      type:\n        'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +\n        'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +\n        'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer ' +\n        'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +\n        'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +\n        'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +\n        'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +\n        'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +\n        'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +\n        'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +\n        'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +\n        'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +\n        'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +\n        'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +\n        'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',\n      built_in:\n        // Constants\n        'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +\n        'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +\n        'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +\n        'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +\n        'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +\n        'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +\n        'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +\n        'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +\n        'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +\n        'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +\n        'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +\n        'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +\n        'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +\n        'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +\n        'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +\n        'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +\n        'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +\n        'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +\n        'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +\n        'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +\n        'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +\n        'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +\n        'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +\n        // Variables\n        'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +\n        'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +\n        'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +\n        'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +\n        'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +\n        'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +\n        'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +\n        'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +\n        'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +\n        'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +\n        'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +\n        'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +\n        'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +\n        'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +\n        'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +\n        'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +\n        'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +\n        'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +\n        // Functions\n        'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +\n        'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +\n        'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +\n        'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +\n        'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +\n        'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +\n        'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +\n        'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +\n        'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +\n        'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +\n        'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +\n        'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +\n        'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +\n        'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +\n        'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +\n        'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +\n        'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +\n        'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +\n        'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +\n        'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +\n        'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +\n        'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +\n        'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',\n      literal: 'true false'\n    },\n    illegal: '\"',\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'meta',\n        begin: '#',\n        end: '$'\n      }\n    ]\n  };\n}\n\nmodule.exports = glsl;\n","/*\nLanguage: GML\nAuthor: Meseta \nDescription: Game Maker Language for GameMaker Studio 2\nWebsite: https://docs2.yoyogames.com\nCategory: scripting\n*/\n\nfunction gml(hljs) {\n  const GML_KEYWORDS = {\n    keyword: 'begin end if then else while do for break continue with until ' +\n      'repeat exit and or xor not return mod div switch case default var ' +\n      'globalvar enum function constructor delete #macro #region #endregion',\n    built_in: 'is_real is_string is_array is_undefined is_int32 is_int64 is_ptr ' +\n      'is_vec3 is_vec4 is_matrix is_bool is_method is_struct is_infinity is_nan ' +\n      'is_numeric typeof variable_global_exists variable_global_get variable_global_set ' +\n      'variable_instance_exists variable_instance_get variable_instance_set ' +\n      'variable_instance_get_names variable_struct_exists variable_struct_get ' +\n      'variable_struct_get_names variable_struct_names_count variable_struct_remove ' +\n      'variable_struct_set array_delete array_insert array_length array_length_1d ' +\n      'array_length_2d array_height_2d array_equals array_create ' +\n      'array_copy array_pop array_push array_resize array_sort ' +\n      'random random_range irandom irandom_range random_set_seed random_get_seed ' +\n      'randomize randomise choose abs round floor ceil sign frac sqrt sqr ' +\n      'exp ln log2 log10 sin cos tan arcsin arccos arctan arctan2 dsin dcos ' +\n      'dtan darcsin darccos darctan darctan2 degtorad radtodeg power logn ' +\n      'min max mean median clamp lerp dot_product dot_product_3d ' +\n      'dot_product_normalised dot_product_3d_normalised ' +\n      'dot_product_normalized dot_product_3d_normalized math_set_epsilon ' +\n      'math_get_epsilon angle_difference point_distance_3d point_distance ' +\n      'point_direction lengthdir_x lengthdir_y real string int64 ptr ' +\n      'string_format chr ansi_char ord string_length string_byte_length ' +\n      'string_pos string_copy string_char_at string_ord_at string_byte_at ' +\n      'string_set_byte_at string_delete string_insert string_lower ' +\n      'string_upper string_repeat string_letters string_digits ' +\n      'string_lettersdigits string_replace string_replace_all string_count ' +\n      'string_hash_to_newline clipboard_has_text clipboard_set_text ' +\n      'clipboard_get_text date_current_datetime date_create_datetime ' +\n      'date_valid_datetime date_inc_year date_inc_month date_inc_week ' +\n      'date_inc_day date_inc_hour date_inc_minute date_inc_second ' +\n      'date_get_year date_get_month date_get_week date_get_day ' +\n      'date_get_hour date_get_minute date_get_second date_get_weekday ' +\n      'date_get_day_of_year date_get_hour_of_year date_get_minute_of_year ' +\n      'date_get_second_of_year date_year_span date_month_span ' +\n      'date_week_span date_day_span date_hour_span date_minute_span ' +\n      'date_second_span date_compare_datetime date_compare_date ' +\n      'date_compare_time date_date_of date_time_of date_datetime_string ' +\n      'date_date_string date_time_string date_days_in_month ' +\n      'date_days_in_year date_leap_year date_is_today date_set_timezone ' +\n      'date_get_timezone game_set_speed game_get_speed motion_set ' +\n      'motion_add place_free place_empty place_meeting place_snapped ' +\n      'move_random move_snap move_towards_point move_contact_solid ' +\n      'move_contact_all move_outside_solid move_outside_all ' +\n      'move_bounce_solid move_bounce_all move_wrap distance_to_point ' +\n      'distance_to_object position_empty position_meeting path_start ' +\n      'path_end mp_linear_step mp_potential_step mp_linear_step_object ' +\n      'mp_potential_step_object mp_potential_settings mp_linear_path ' +\n      'mp_potential_path mp_linear_path_object mp_potential_path_object ' +\n      'mp_grid_create mp_grid_destroy mp_grid_clear_all mp_grid_clear_cell ' +\n      'mp_grid_clear_rectangle mp_grid_add_cell mp_grid_get_cell ' +\n      'mp_grid_add_rectangle mp_grid_add_instances mp_grid_path ' +\n      'mp_grid_draw mp_grid_to_ds_grid collision_point collision_rectangle ' +\n      'collision_circle collision_ellipse collision_line ' +\n      'collision_point_list collision_rectangle_list collision_circle_list ' +\n      'collision_ellipse_list collision_line_list instance_position_list ' +\n      'instance_place_list point_in_rectangle ' +\n      'point_in_triangle point_in_circle rectangle_in_rectangle ' +\n      'rectangle_in_triangle rectangle_in_circle instance_find ' +\n      'instance_exists instance_number instance_position instance_nearest ' +\n      'instance_furthest instance_place instance_create_depth ' +\n      'instance_create_layer instance_copy instance_change instance_destroy ' +\n      'position_destroy position_change instance_id_get ' +\n      'instance_deactivate_all instance_deactivate_object ' +\n      'instance_deactivate_region instance_activate_all ' +\n      'instance_activate_object instance_activate_region room_goto ' +\n      'room_goto_previous room_goto_next room_previous room_next ' +\n      'room_restart game_end game_restart game_load game_save ' +\n      'game_save_buffer game_load_buffer event_perform event_user ' +\n      'event_perform_object event_inherited show_debug_message ' +\n      'show_debug_overlay debug_event debug_get_callstack alarm_get ' +\n      'alarm_set font_texture_page_size keyboard_set_map keyboard_get_map ' +\n      'keyboard_unset_map keyboard_check keyboard_check_pressed ' +\n      'keyboard_check_released keyboard_check_direct keyboard_get_numlock ' +\n      'keyboard_set_numlock keyboard_key_press keyboard_key_release ' +\n      'keyboard_clear io_clear mouse_check_button ' +\n      'mouse_check_button_pressed mouse_check_button_released ' +\n      'mouse_wheel_up mouse_wheel_down mouse_clear draw_self draw_sprite ' +\n      'draw_sprite_pos draw_sprite_ext draw_sprite_stretched ' +\n      'draw_sprite_stretched_ext draw_sprite_tiled draw_sprite_tiled_ext ' +\n      'draw_sprite_part draw_sprite_part_ext draw_sprite_general draw_clear ' +\n      'draw_clear_alpha draw_point draw_line draw_line_width draw_rectangle ' +\n      'draw_roundrect draw_roundrect_ext draw_triangle draw_circle ' +\n      'draw_ellipse draw_set_circle_precision draw_arrow draw_button ' +\n      'draw_path draw_healthbar draw_getpixel draw_getpixel_ext ' +\n      'draw_set_colour draw_set_color draw_set_alpha draw_get_colour ' +\n      'draw_get_color draw_get_alpha merge_colour make_colour_rgb ' +\n      'make_colour_hsv colour_get_red colour_get_green colour_get_blue ' +\n      'colour_get_hue colour_get_saturation colour_get_value merge_color ' +\n      'make_color_rgb make_color_hsv color_get_red color_get_green ' +\n      'color_get_blue color_get_hue color_get_saturation color_get_value ' +\n      'merge_color screen_save screen_save_part draw_set_font ' +\n      'draw_set_halign draw_set_valign draw_text draw_text_ext string_width ' +\n      'string_height string_width_ext string_height_ext ' +\n      'draw_text_transformed draw_text_ext_transformed draw_text_colour ' +\n      'draw_text_ext_colour draw_text_transformed_colour ' +\n      'draw_text_ext_transformed_colour draw_text_color draw_text_ext_color ' +\n      'draw_text_transformed_color draw_text_ext_transformed_color ' +\n      'draw_point_colour draw_line_colour draw_line_width_colour ' +\n      'draw_rectangle_colour draw_roundrect_colour ' +\n      'draw_roundrect_colour_ext draw_triangle_colour draw_circle_colour ' +\n      'draw_ellipse_colour draw_point_color draw_line_color ' +\n      'draw_line_width_color draw_rectangle_color draw_roundrect_color ' +\n      'draw_roundrect_color_ext draw_triangle_color draw_circle_color ' +\n      'draw_ellipse_color draw_primitive_begin draw_vertex ' +\n      'draw_vertex_colour draw_vertex_color draw_primitive_end ' +\n      'sprite_get_uvs font_get_uvs sprite_get_texture font_get_texture ' +\n      'texture_get_width texture_get_height texture_get_uvs ' +\n      'draw_primitive_begin_texture draw_vertex_texture ' +\n      'draw_vertex_texture_colour draw_vertex_texture_color ' +\n      'texture_global_scale surface_create surface_create_ext ' +\n      'surface_resize surface_free surface_exists surface_get_width ' +\n      'surface_get_height surface_get_texture surface_set_target ' +\n      'surface_set_target_ext surface_reset_target surface_depth_disable ' +\n      'surface_get_depth_disable draw_surface draw_surface_stretched ' +\n      'draw_surface_tiled draw_surface_part draw_surface_ext ' +\n      'draw_surface_stretched_ext draw_surface_tiled_ext ' +\n      'draw_surface_part_ext draw_surface_general surface_getpixel ' +\n      'surface_getpixel_ext surface_save surface_save_part surface_copy ' +\n      'surface_copy_part application_surface_draw_enable ' +\n      'application_get_position application_surface_enable ' +\n      'application_surface_is_enabled display_get_width display_get_height ' +\n      'display_get_orientation display_get_gui_width display_get_gui_height ' +\n      'display_reset display_mouse_get_x display_mouse_get_y ' +\n      'display_mouse_set display_set_ui_visibility ' +\n      'window_set_fullscreen window_get_fullscreen ' +\n      'window_set_caption window_set_min_width window_set_max_width ' +\n      'window_set_min_height window_set_max_height window_get_visible_rects ' +\n      'window_get_caption window_set_cursor window_get_cursor ' +\n      'window_set_colour window_get_colour window_set_color ' +\n      'window_get_color window_set_position window_set_size ' +\n      'window_set_rectangle window_center window_get_x window_get_y ' +\n      'window_get_width window_get_height window_mouse_get_x ' +\n      'window_mouse_get_y window_mouse_set window_view_mouse_get_x ' +\n      'window_view_mouse_get_y window_views_mouse_get_x ' +\n      'window_views_mouse_get_y audio_listener_position ' +\n      'audio_listener_velocity audio_listener_orientation ' +\n      'audio_emitter_position audio_emitter_create audio_emitter_free ' +\n      'audio_emitter_exists audio_emitter_pitch audio_emitter_velocity ' +\n      'audio_emitter_falloff audio_emitter_gain audio_play_sound ' +\n      'audio_play_sound_on audio_play_sound_at audio_stop_sound ' +\n      'audio_resume_music audio_music_is_playing audio_resume_sound ' +\n      'audio_pause_sound audio_pause_music audio_channel_num ' +\n      'audio_sound_length audio_get_type audio_falloff_set_model ' +\n      'audio_play_music audio_stop_music audio_master_gain audio_music_gain ' +\n      'audio_sound_gain audio_sound_pitch audio_stop_all audio_resume_all ' +\n      'audio_pause_all audio_is_playing audio_is_paused audio_exists ' +\n      'audio_sound_set_track_position audio_sound_get_track_position ' +\n      'audio_emitter_get_gain audio_emitter_get_pitch audio_emitter_get_x ' +\n      'audio_emitter_get_y audio_emitter_get_z audio_emitter_get_vx ' +\n      'audio_emitter_get_vy audio_emitter_get_vz ' +\n      'audio_listener_set_position audio_listener_set_velocity ' +\n      'audio_listener_set_orientation audio_listener_get_data ' +\n      'audio_set_master_gain audio_get_master_gain audio_sound_get_gain ' +\n      'audio_sound_get_pitch audio_get_name audio_sound_set_track_position ' +\n      'audio_sound_get_track_position audio_create_stream ' +\n      'audio_destroy_stream audio_create_sync_group ' +\n      'audio_destroy_sync_group audio_play_in_sync_group ' +\n      'audio_start_sync_group audio_stop_sync_group audio_pause_sync_group ' +\n      'audio_resume_sync_group audio_sync_group_get_track_pos ' +\n      'audio_sync_group_debug audio_sync_group_is_playing audio_debug ' +\n      'audio_group_load audio_group_unload audio_group_is_loaded ' +\n      'audio_group_load_progress audio_group_name audio_group_stop_all ' +\n      'audio_group_set_gain audio_create_buffer_sound ' +\n      'audio_free_buffer_sound audio_create_play_queue ' +\n      'audio_free_play_queue audio_queue_sound audio_get_recorder_count ' +\n      'audio_get_recorder_info audio_start_recording audio_stop_recording ' +\n      'audio_sound_get_listener_mask audio_emitter_get_listener_mask ' +\n      'audio_get_listener_mask audio_sound_set_listener_mask ' +\n      'audio_emitter_set_listener_mask audio_set_listener_mask ' +\n      'audio_get_listener_count audio_get_listener_info audio_system ' +\n      'show_message show_message_async clickable_add clickable_add_ext ' +\n      'clickable_change clickable_change_ext clickable_delete ' +\n      'clickable_exists clickable_set_style show_question ' +\n      'show_question_async get_integer get_string get_integer_async ' +\n      'get_string_async get_login_async get_open_filename get_save_filename ' +\n      'get_open_filename_ext get_save_filename_ext show_error ' +\n      'highscore_clear highscore_add highscore_value highscore_name ' +\n      'draw_highscore sprite_exists sprite_get_name sprite_get_number ' +\n      'sprite_get_width sprite_get_height sprite_get_xoffset ' +\n      'sprite_get_yoffset sprite_get_bbox_left sprite_get_bbox_right ' +\n      'sprite_get_bbox_top sprite_get_bbox_bottom sprite_save ' +\n      'sprite_save_strip sprite_set_cache_size sprite_set_cache_size_ext ' +\n      'sprite_get_tpe sprite_prefetch sprite_prefetch_multi sprite_flush ' +\n      'sprite_flush_multi sprite_set_speed sprite_get_speed_type ' +\n      'sprite_get_speed font_exists font_get_name font_get_fontname ' +\n      'font_get_bold font_get_italic font_get_first font_get_last ' +\n      'font_get_size font_set_cache_size path_exists path_get_name ' +\n      'path_get_length path_get_time path_get_kind path_get_closed ' +\n      'path_get_precision path_get_number path_get_point_x path_get_point_y ' +\n      'path_get_point_speed path_get_x path_get_y path_get_speed ' +\n      'script_exists script_get_name timeline_add timeline_delete ' +\n      'timeline_clear timeline_exists timeline_get_name ' +\n      'timeline_moment_clear timeline_moment_add_script timeline_size ' +\n      'timeline_max_moment object_exists object_get_name object_get_sprite ' +\n      'object_get_solid object_get_visible object_get_persistent ' +\n      'object_get_mask object_get_parent object_get_physics ' +\n      'object_is_ancestor room_exists room_get_name sprite_set_offset ' +\n      'sprite_duplicate sprite_assign sprite_merge sprite_add ' +\n      'sprite_replace sprite_create_from_surface sprite_add_from_surface ' +\n      'sprite_delete sprite_set_alpha_from_sprite sprite_collision_mask ' +\n      'font_add_enable_aa font_add_get_enable_aa font_add font_add_sprite ' +\n      'font_add_sprite_ext font_replace font_replace_sprite ' +\n      'font_replace_sprite_ext font_delete path_set_kind path_set_closed ' +\n      'path_set_precision path_add path_assign path_duplicate path_append ' +\n      'path_delete path_add_point path_insert_point path_change_point ' +\n      'path_delete_point path_clear_points path_reverse path_mirror ' +\n      'path_flip path_rotate path_rescale path_shift script_execute ' +\n      'object_set_sprite object_set_solid object_set_visible ' +\n      'object_set_persistent object_set_mask room_set_width room_set_height ' +\n      'room_set_persistent room_set_background_colour ' +\n      'room_set_background_color room_set_view room_set_viewport ' +\n      'room_get_viewport room_set_view_enabled room_add room_duplicate ' +\n      'room_assign room_instance_add room_instance_clear room_get_camera ' +\n      'room_set_camera asset_get_index asset_get_type ' +\n      'file_text_open_from_string file_text_open_read file_text_open_write ' +\n      'file_text_open_append file_text_close file_text_write_string ' +\n      'file_text_write_real file_text_writeln file_text_read_string ' +\n      'file_text_read_real file_text_readln file_text_eof file_text_eoln ' +\n      'file_exists file_delete file_rename file_copy directory_exists ' +\n      'directory_create directory_destroy file_find_first file_find_next ' +\n      'file_find_close file_attributes filename_name filename_path ' +\n      'filename_dir filename_drive filename_ext filename_change_ext ' +\n      'file_bin_open file_bin_rewrite file_bin_close file_bin_position ' +\n      'file_bin_size file_bin_seek file_bin_write_byte file_bin_read_byte ' +\n      'parameter_count parameter_string environment_get_variable ' +\n      'ini_open_from_string ini_open ini_close ini_read_string ' +\n      'ini_read_real ini_write_string ini_write_real ini_key_exists ' +\n      'ini_section_exists ini_key_delete ini_section_delete ' +\n      'ds_set_precision ds_exists ds_stack_create ds_stack_destroy ' +\n      'ds_stack_clear ds_stack_copy ds_stack_size ds_stack_empty ' +\n      'ds_stack_push ds_stack_pop ds_stack_top ds_stack_write ds_stack_read ' +\n      'ds_queue_create ds_queue_destroy ds_queue_clear ds_queue_copy ' +\n      'ds_queue_size ds_queue_empty ds_queue_enqueue ds_queue_dequeue ' +\n      'ds_queue_head ds_queue_tail ds_queue_write ds_queue_read ' +\n      'ds_list_create ds_list_destroy ds_list_clear ds_list_copy ' +\n      'ds_list_size ds_list_empty ds_list_add ds_list_insert ' +\n      'ds_list_replace ds_list_delete ds_list_find_index ds_list_find_value ' +\n      'ds_list_mark_as_list ds_list_mark_as_map ds_list_sort ' +\n      'ds_list_shuffle ds_list_write ds_list_read ds_list_set ds_map_create ' +\n      'ds_map_destroy ds_map_clear ds_map_copy ds_map_size ds_map_empty ' +\n      'ds_map_add ds_map_add_list ds_map_add_map ds_map_replace ' +\n      'ds_map_replace_map ds_map_replace_list ds_map_delete ds_map_exists ' +\n      'ds_map_find_value ds_map_find_previous ds_map_find_next ' +\n      'ds_map_find_first ds_map_find_last ds_map_write ds_map_read ' +\n      'ds_map_secure_save ds_map_secure_load ds_map_secure_load_buffer ' +\n      'ds_map_secure_save_buffer ds_map_set ds_priority_create ' +\n      'ds_priority_destroy ds_priority_clear ds_priority_copy ' +\n      'ds_priority_size ds_priority_empty ds_priority_add ' +\n      'ds_priority_change_priority ds_priority_find_priority ' +\n      'ds_priority_delete_value ds_priority_delete_min ds_priority_find_min ' +\n      'ds_priority_delete_max ds_priority_find_max ds_priority_write ' +\n      'ds_priority_read ds_grid_create ds_grid_destroy ds_grid_copy ' +\n      'ds_grid_resize ds_grid_width ds_grid_height ds_grid_clear ' +\n      'ds_grid_set ds_grid_add ds_grid_multiply ds_grid_set_region ' +\n      'ds_grid_add_region ds_grid_multiply_region ds_grid_set_disk ' +\n      'ds_grid_add_disk ds_grid_multiply_disk ds_grid_set_grid_region ' +\n      'ds_grid_add_grid_region ds_grid_multiply_grid_region ds_grid_get ' +\n      'ds_grid_get_sum ds_grid_get_max ds_grid_get_min ds_grid_get_mean ' +\n      'ds_grid_get_disk_sum ds_grid_get_disk_min ds_grid_get_disk_max ' +\n      'ds_grid_get_disk_mean ds_grid_value_exists ds_grid_value_x ' +\n      'ds_grid_value_y ds_grid_value_disk_exists ds_grid_value_disk_x ' +\n      'ds_grid_value_disk_y ds_grid_shuffle ds_grid_write ds_grid_read ' +\n      'ds_grid_sort ds_grid_set ds_grid_get effect_create_below ' +\n      'effect_create_above effect_clear part_type_create part_type_destroy ' +\n      'part_type_exists part_type_clear part_type_shape part_type_sprite ' +\n      'part_type_size part_type_scale part_type_orientation part_type_life ' +\n      'part_type_step part_type_death part_type_speed part_type_direction ' +\n      'part_type_gravity part_type_colour1 part_type_colour2 ' +\n      'part_type_colour3 part_type_colour_mix part_type_colour_rgb ' +\n      'part_type_colour_hsv part_type_color1 part_type_color2 ' +\n      'part_type_color3 part_type_color_mix part_type_color_rgb ' +\n      'part_type_color_hsv part_type_alpha1 part_type_alpha2 ' +\n      'part_type_alpha3 part_type_blend part_system_create ' +\n      'part_system_create_layer part_system_destroy part_system_exists ' +\n      'part_system_clear part_system_draw_order part_system_depth ' +\n      'part_system_position part_system_automatic_update ' +\n      'part_system_automatic_draw part_system_update part_system_drawit ' +\n      'part_system_get_layer part_system_layer part_particles_create ' +\n      'part_particles_create_colour part_particles_create_color ' +\n      'part_particles_clear part_particles_count part_emitter_create ' +\n      'part_emitter_destroy part_emitter_destroy_all part_emitter_exists ' +\n      'part_emitter_clear part_emitter_region part_emitter_burst ' +\n      'part_emitter_stream external_call external_define external_free ' +\n      'window_handle window_device matrix_get matrix_set ' +\n      'matrix_build_identity matrix_build matrix_build_lookat ' +\n      'matrix_build_projection_ortho matrix_build_projection_perspective ' +\n      'matrix_build_projection_perspective_fov matrix_multiply ' +\n      'matrix_transform_vertex matrix_stack_push matrix_stack_pop ' +\n      'matrix_stack_multiply matrix_stack_set matrix_stack_clear ' +\n      'matrix_stack_top matrix_stack_is_empty browser_input_capture ' +\n      'os_get_config os_get_info os_get_language os_get_region ' +\n      'os_lock_orientation display_get_dpi_x display_get_dpi_y ' +\n      'display_set_gui_size display_set_gui_maximise ' +\n      'display_set_gui_maximize device_mouse_dbclick_enable ' +\n      'display_set_timing_method display_get_timing_method ' +\n      'display_set_sleep_margin display_get_sleep_margin virtual_key_add ' +\n      'virtual_key_hide virtual_key_delete virtual_key_show ' +\n      'draw_enable_drawevent draw_enable_swf_aa draw_set_swf_aa_level ' +\n      'draw_get_swf_aa_level draw_texture_flush draw_flush ' +\n      'gpu_set_blendenable gpu_set_ztestenable gpu_set_zfunc ' +\n      'gpu_set_zwriteenable gpu_set_lightingenable gpu_set_fog ' +\n      'gpu_set_cullmode gpu_set_blendmode gpu_set_blendmode_ext ' +\n      'gpu_set_blendmode_ext_sepalpha gpu_set_colorwriteenable ' +\n      'gpu_set_colourwriteenable gpu_set_alphatestenable ' +\n      'gpu_set_alphatestref gpu_set_alphatestfunc gpu_set_texfilter ' +\n      'gpu_set_texfilter_ext gpu_set_texrepeat gpu_set_texrepeat_ext ' +\n      'gpu_set_tex_filter gpu_set_tex_filter_ext gpu_set_tex_repeat ' +\n      'gpu_set_tex_repeat_ext gpu_set_tex_mip_filter ' +\n      'gpu_set_tex_mip_filter_ext gpu_set_tex_mip_bias ' +\n      'gpu_set_tex_mip_bias_ext gpu_set_tex_min_mip gpu_set_tex_min_mip_ext ' +\n      'gpu_set_tex_max_mip gpu_set_tex_max_mip_ext gpu_set_tex_max_aniso ' +\n      'gpu_set_tex_max_aniso_ext gpu_set_tex_mip_enable ' +\n      'gpu_set_tex_mip_enable_ext gpu_get_blendenable gpu_get_ztestenable ' +\n      'gpu_get_zfunc gpu_get_zwriteenable gpu_get_lightingenable ' +\n      'gpu_get_fog gpu_get_cullmode gpu_get_blendmode gpu_get_blendmode_ext ' +\n      'gpu_get_blendmode_ext_sepalpha gpu_get_blendmode_src ' +\n      'gpu_get_blendmode_dest gpu_get_blendmode_srcalpha ' +\n      'gpu_get_blendmode_destalpha gpu_get_colorwriteenable ' +\n      'gpu_get_colourwriteenable gpu_get_alphatestenable ' +\n      'gpu_get_alphatestref gpu_get_alphatestfunc gpu_get_texfilter ' +\n      'gpu_get_texfilter_ext gpu_get_texrepeat gpu_get_texrepeat_ext ' +\n      'gpu_get_tex_filter gpu_get_tex_filter_ext gpu_get_tex_repeat ' +\n      'gpu_get_tex_repeat_ext gpu_get_tex_mip_filter ' +\n      'gpu_get_tex_mip_filter_ext gpu_get_tex_mip_bias ' +\n      'gpu_get_tex_mip_bias_ext gpu_get_tex_min_mip gpu_get_tex_min_mip_ext ' +\n      'gpu_get_tex_max_mip gpu_get_tex_max_mip_ext gpu_get_tex_max_aniso ' +\n      'gpu_get_tex_max_aniso_ext gpu_get_tex_mip_enable ' +\n      'gpu_get_tex_mip_enable_ext gpu_push_state gpu_pop_state ' +\n      'gpu_get_state gpu_set_state draw_light_define_ambient ' +\n      'draw_light_define_direction draw_light_define_point ' +\n      'draw_light_enable draw_set_lighting draw_light_get_ambient ' +\n      'draw_light_get draw_get_lighting shop_leave_rating url_get_domain ' +\n      'url_open url_open_ext url_open_full get_timer achievement_login ' +\n      'achievement_logout achievement_post achievement_increment ' +\n      'achievement_post_score achievement_available ' +\n      'achievement_show_achievements achievement_show_leaderboards ' +\n      'achievement_load_friends achievement_load_leaderboard ' +\n      'achievement_send_challenge achievement_load_progress ' +\n      'achievement_reset achievement_login_status achievement_get_pic ' +\n      'achievement_show_challenge_notifications achievement_get_challenges ' +\n      'achievement_event achievement_show achievement_get_info ' +\n      'cloud_file_save cloud_string_save cloud_synchronise ads_enable ' +\n      'ads_disable ads_setup ads_engagement_launch ads_engagement_available ' +\n      'ads_engagement_active ads_event ads_event_preload ' +\n      'ads_set_reward_callback ads_get_display_height ads_get_display_width ' +\n      'ads_move ads_interstitial_available ads_interstitial_display ' +\n      'device_get_tilt_x device_get_tilt_y device_get_tilt_z ' +\n      'device_is_keypad_open device_mouse_check_button ' +\n      'device_mouse_check_button_pressed device_mouse_check_button_released ' +\n      'device_mouse_x device_mouse_y device_mouse_raw_x device_mouse_raw_y ' +\n      'device_mouse_x_to_gui device_mouse_y_to_gui iap_activate iap_status ' +\n      'iap_enumerate_products iap_restore_all iap_acquire iap_consume ' +\n      'iap_product_details iap_purchase_details facebook_init ' +\n      'facebook_login facebook_status facebook_graph_request ' +\n      'facebook_dialog facebook_logout facebook_launch_offerwall ' +\n      'facebook_post_message facebook_send_invite facebook_user_id ' +\n      'facebook_accesstoken facebook_check_permission ' +\n      'facebook_request_read_permissions ' +\n      'facebook_request_publish_permissions gamepad_is_supported ' +\n      'gamepad_get_device_count gamepad_is_connected ' +\n      'gamepad_get_description gamepad_get_button_threshold ' +\n      'gamepad_set_button_threshold gamepad_get_axis_deadzone ' +\n      'gamepad_set_axis_deadzone gamepad_button_count gamepad_button_check ' +\n      'gamepad_button_check_pressed gamepad_button_check_released ' +\n      'gamepad_button_value gamepad_axis_count gamepad_axis_value ' +\n      'gamepad_set_vibration gamepad_set_colour gamepad_set_color ' +\n      'os_is_paused window_has_focus code_is_compiled http_get ' +\n      'http_get_file http_post_string http_request json_encode json_decode ' +\n      'zip_unzip load_csv base64_encode base64_decode md5_string_unicode ' +\n      'md5_string_utf8 md5_file os_is_network_connected sha1_string_unicode ' +\n      'sha1_string_utf8 sha1_file os_powersave_enable analytics_event ' +\n      'analytics_event_ext win8_livetile_tile_notification ' +\n      'win8_livetile_tile_clear win8_livetile_badge_notification ' +\n      'win8_livetile_badge_clear win8_livetile_queue_enable ' +\n      'win8_secondarytile_pin win8_secondarytile_badge_notification ' +\n      'win8_secondarytile_delete win8_livetile_notification_begin ' +\n      'win8_livetile_notification_secondary_begin ' +\n      'win8_livetile_notification_expiry win8_livetile_notification_tag ' +\n      'win8_livetile_notification_text_add ' +\n      'win8_livetile_notification_image_add win8_livetile_notification_end ' +\n      'win8_appbar_enable win8_appbar_add_element ' +\n      'win8_appbar_remove_element win8_settingscharm_add_entry ' +\n      'win8_settingscharm_add_html_entry win8_settingscharm_add_xaml_entry ' +\n      'win8_settingscharm_set_xaml_property ' +\n      'win8_settingscharm_get_xaml_property win8_settingscharm_remove_entry ' +\n      'win8_share_image win8_share_screenshot win8_share_file ' +\n      'win8_share_url win8_share_text win8_search_enable ' +\n      'win8_search_disable win8_search_add_suggestions ' +\n      'win8_device_touchscreen_available win8_license_initialize_sandbox ' +\n      'win8_license_trial_version winphone_license_trial_version ' +\n      'winphone_tile_title winphone_tile_count winphone_tile_back_title ' +\n      'winphone_tile_back_content winphone_tile_back_content_wide ' +\n      'winphone_tile_front_image winphone_tile_front_image_small ' +\n      'winphone_tile_front_image_wide winphone_tile_back_image ' +\n      'winphone_tile_back_image_wide winphone_tile_background_colour ' +\n      'winphone_tile_background_color winphone_tile_icon_image ' +\n      'winphone_tile_small_icon_image winphone_tile_wide_content ' +\n      'winphone_tile_cycle_images winphone_tile_small_background_image ' +\n      'physics_world_create physics_world_gravity ' +\n      'physics_world_update_speed physics_world_update_iterations ' +\n      'physics_world_draw_debug physics_pause_enable physics_fixture_create ' +\n      'physics_fixture_set_kinematic physics_fixture_set_density ' +\n      'physics_fixture_set_awake physics_fixture_set_restitution ' +\n      'physics_fixture_set_friction physics_fixture_set_collision_group ' +\n      'physics_fixture_set_sensor physics_fixture_set_linear_damping ' +\n      'physics_fixture_set_angular_damping physics_fixture_set_circle_shape ' +\n      'physics_fixture_set_box_shape physics_fixture_set_edge_shape ' +\n      'physics_fixture_set_polygon_shape physics_fixture_set_chain_shape ' +\n      'physics_fixture_add_point physics_fixture_bind ' +\n      'physics_fixture_bind_ext physics_fixture_delete physics_apply_force ' +\n      'physics_apply_impulse physics_apply_angular_impulse ' +\n      'physics_apply_local_force physics_apply_local_impulse ' +\n      'physics_apply_torque physics_mass_properties physics_draw_debug ' +\n      'physics_test_overlap physics_remove_fixture physics_set_friction ' +\n      'physics_set_density physics_set_restitution physics_get_friction ' +\n      'physics_get_density physics_get_restitution ' +\n      'physics_joint_distance_create physics_joint_rope_create ' +\n      'physics_joint_revolute_create physics_joint_prismatic_create ' +\n      'physics_joint_pulley_create physics_joint_wheel_create ' +\n      'physics_joint_weld_create physics_joint_friction_create ' +\n      'physics_joint_gear_create physics_joint_enable_motor ' +\n      'physics_joint_get_value physics_joint_set_value physics_joint_delete ' +\n      'physics_particle_create physics_particle_delete ' +\n      'physics_particle_delete_region_circle ' +\n      'physics_particle_delete_region_box ' +\n      'physics_particle_delete_region_poly physics_particle_set_flags ' +\n      'physics_particle_set_category_flags physics_particle_draw ' +\n      'physics_particle_draw_ext physics_particle_count ' +\n      'physics_particle_get_data physics_particle_get_data_particle ' +\n      'physics_particle_group_begin physics_particle_group_circle ' +\n      'physics_particle_group_box physics_particle_group_polygon ' +\n      'physics_particle_group_add_point physics_particle_group_end ' +\n      'physics_particle_group_join physics_particle_group_delete ' +\n      'physics_particle_group_count physics_particle_group_get_data ' +\n      'physics_particle_group_get_mass physics_particle_group_get_inertia ' +\n      'physics_particle_group_get_centre_x ' +\n      'physics_particle_group_get_centre_y physics_particle_group_get_vel_x ' +\n      'physics_particle_group_get_vel_y physics_particle_group_get_ang_vel ' +\n      'physics_particle_group_get_x physics_particle_group_get_y ' +\n      'physics_particle_group_get_angle physics_particle_set_group_flags ' +\n      'physics_particle_get_group_flags physics_particle_get_max_count ' +\n      'physics_particle_get_radius physics_particle_get_density ' +\n      'physics_particle_get_damping physics_particle_get_gravity_scale ' +\n      'physics_particle_set_max_count physics_particle_set_radius ' +\n      'physics_particle_set_density physics_particle_set_damping ' +\n      'physics_particle_set_gravity_scale network_create_socket ' +\n      'network_create_socket_ext network_create_server ' +\n      'network_create_server_raw network_connect network_connect_raw ' +\n      'network_send_packet network_send_raw network_send_broadcast ' +\n      'network_send_udp network_send_udp_raw network_set_timeout ' +\n      'network_set_config network_resolve network_destroy buffer_create ' +\n      'buffer_write buffer_read buffer_seek buffer_get_surface ' +\n      'buffer_set_surface buffer_delete buffer_exists buffer_get_type ' +\n      'buffer_get_alignment buffer_poke buffer_peek buffer_save ' +\n      'buffer_save_ext buffer_load buffer_load_ext buffer_load_partial ' +\n      'buffer_copy buffer_fill buffer_get_size buffer_tell buffer_resize ' +\n      'buffer_md5 buffer_sha1 buffer_base64_encode buffer_base64_decode ' +\n      'buffer_base64_decode_ext buffer_sizeof buffer_get_address ' +\n      'buffer_create_from_vertex_buffer ' +\n      'buffer_create_from_vertex_buffer_ext buffer_copy_from_vertex_buffer ' +\n      'buffer_async_group_begin buffer_async_group_option ' +\n      'buffer_async_group_end buffer_load_async buffer_save_async ' +\n      'gml_release_mode gml_pragma steam_activate_overlay ' +\n      'steam_is_overlay_enabled steam_is_overlay_activated ' +\n      'steam_get_persona_name steam_initialised ' +\n      'steam_is_cloud_enabled_for_app steam_is_cloud_enabled_for_account ' +\n      'steam_file_persisted steam_get_quota_total steam_get_quota_free ' +\n      'steam_file_write steam_file_write_file steam_file_read ' +\n      'steam_file_delete steam_file_exists steam_file_size steam_file_share ' +\n      'steam_is_screenshot_requested steam_send_screenshot ' +\n      'steam_is_user_logged_on steam_get_user_steam_id steam_user_owns_dlc ' +\n      'steam_user_installed_dlc steam_set_achievement steam_get_achievement ' +\n      'steam_clear_achievement steam_set_stat_int steam_set_stat_float ' +\n      'steam_set_stat_avg_rate steam_get_stat_int steam_get_stat_float ' +\n      'steam_get_stat_avg_rate steam_reset_all_stats ' +\n      'steam_reset_all_stats_achievements steam_stats_ready ' +\n      'steam_create_leaderboard steam_upload_score steam_upload_score_ext ' +\n      'steam_download_scores_around_user steam_download_scores ' +\n      'steam_download_friends_scores steam_upload_score_buffer ' +\n      'steam_upload_score_buffer_ext steam_current_game_language ' +\n      'steam_available_languages steam_activate_overlay_browser ' +\n      'steam_activate_overlay_user steam_activate_overlay_store ' +\n      'steam_get_user_persona_name steam_get_app_id ' +\n      'steam_get_user_account_id steam_ugc_download steam_ugc_create_item ' +\n      'steam_ugc_start_item_update steam_ugc_set_item_title ' +\n      'steam_ugc_set_item_description steam_ugc_set_item_visibility ' +\n      'steam_ugc_set_item_tags steam_ugc_set_item_content ' +\n      'steam_ugc_set_item_preview steam_ugc_submit_item_update ' +\n      'steam_ugc_get_item_update_progress steam_ugc_subscribe_item ' +\n      'steam_ugc_unsubscribe_item steam_ugc_num_subscribed_items ' +\n      'steam_ugc_get_subscribed_items steam_ugc_get_item_install_info ' +\n      'steam_ugc_get_item_update_info steam_ugc_request_item_details ' +\n      'steam_ugc_create_query_user steam_ugc_create_query_user_ex ' +\n      'steam_ugc_create_query_all steam_ugc_create_query_all_ex ' +\n      'steam_ugc_query_set_cloud_filename_filter ' +\n      'steam_ugc_query_set_match_any_tag steam_ugc_query_set_search_text ' +\n      'steam_ugc_query_set_ranked_by_trend_days ' +\n      'steam_ugc_query_add_required_tag steam_ugc_query_add_excluded_tag ' +\n      'steam_ugc_query_set_return_long_description ' +\n      'steam_ugc_query_set_return_total_only ' +\n      'steam_ugc_query_set_allow_cached_response steam_ugc_send_query ' +\n      'shader_set shader_get_name shader_reset shader_current ' +\n      'shader_is_compiled shader_get_sampler_index shader_get_uniform ' +\n      'shader_set_uniform_i shader_set_uniform_i_array shader_set_uniform_f ' +\n      'shader_set_uniform_f_array shader_set_uniform_matrix ' +\n      'shader_set_uniform_matrix_array shader_enable_corner_id ' +\n      'texture_set_stage texture_get_texel_width texture_get_texel_height ' +\n      'shaders_are_supported vertex_format_begin vertex_format_end ' +\n      'vertex_format_delete vertex_format_add_position ' +\n      'vertex_format_add_position_3d vertex_format_add_colour ' +\n      'vertex_format_add_color vertex_format_add_normal ' +\n      'vertex_format_add_texcoord vertex_format_add_textcoord ' +\n      'vertex_format_add_custom vertex_create_buffer ' +\n      'vertex_create_buffer_ext vertex_delete_buffer vertex_begin ' +\n      'vertex_end vertex_position vertex_position_3d vertex_colour ' +\n      'vertex_color vertex_argb vertex_texcoord vertex_normal vertex_float1 ' +\n      'vertex_float2 vertex_float3 vertex_float4 vertex_ubyte4 ' +\n      'vertex_submit vertex_freeze vertex_get_number vertex_get_buffer_size ' +\n      'vertex_create_buffer_from_buffer ' +\n      'vertex_create_buffer_from_buffer_ext push_local_notification ' +\n      'push_get_first_local_notification push_get_next_local_notification ' +\n      'push_cancel_local_notification skeleton_animation_set ' +\n      'skeleton_animation_get skeleton_animation_mix ' +\n      'skeleton_animation_set_ext skeleton_animation_get_ext ' +\n      'skeleton_animation_get_duration skeleton_animation_get_frames ' +\n      'skeleton_animation_clear skeleton_skin_set skeleton_skin_get ' +\n      'skeleton_attachment_set skeleton_attachment_get ' +\n      'skeleton_attachment_create skeleton_collision_draw_set ' +\n      'skeleton_bone_data_get skeleton_bone_data_set ' +\n      'skeleton_bone_state_get skeleton_bone_state_set skeleton_get_minmax ' +\n      'skeleton_get_num_bounds skeleton_get_bounds ' +\n      'skeleton_animation_get_frame skeleton_animation_set_frame ' +\n      'draw_skeleton draw_skeleton_time draw_skeleton_instance ' +\n      'draw_skeleton_collision skeleton_animation_list skeleton_skin_list ' +\n      'skeleton_slot_data layer_get_id layer_get_id_at_depth ' +\n      'layer_get_depth layer_create layer_destroy layer_destroy_instances ' +\n      'layer_add_instance layer_has_instance layer_set_visible ' +\n      'layer_get_visible layer_exists layer_x layer_y layer_get_x ' +\n      'layer_get_y layer_hspeed layer_vspeed layer_get_hspeed ' +\n      'layer_get_vspeed layer_script_begin layer_script_end layer_shader ' +\n      'layer_get_script_begin layer_get_script_end layer_get_shader ' +\n      'layer_set_target_room layer_get_target_room layer_reset_target_room ' +\n      'layer_get_all layer_get_all_elements layer_get_name layer_depth ' +\n      'layer_get_element_layer layer_get_element_type layer_element_move ' +\n      'layer_force_draw_depth layer_is_draw_depth_forced ' +\n      'layer_get_forced_depth layer_background_get_id ' +\n      'layer_background_exists layer_background_create ' +\n      'layer_background_destroy layer_background_visible ' +\n      'layer_background_change layer_background_sprite ' +\n      'layer_background_htiled layer_background_vtiled ' +\n      'layer_background_stretch layer_background_yscale ' +\n      'layer_background_xscale layer_background_blend ' +\n      'layer_background_alpha layer_background_index layer_background_speed ' +\n      'layer_background_get_visible layer_background_get_sprite ' +\n      'layer_background_get_htiled layer_background_get_vtiled ' +\n      'layer_background_get_stretch layer_background_get_yscale ' +\n      'layer_background_get_xscale layer_background_get_blend ' +\n      'layer_background_get_alpha layer_background_get_index ' +\n      'layer_background_get_speed layer_sprite_get_id layer_sprite_exists ' +\n      'layer_sprite_create layer_sprite_destroy layer_sprite_change ' +\n      'layer_sprite_index layer_sprite_speed layer_sprite_xscale ' +\n      'layer_sprite_yscale layer_sprite_angle layer_sprite_blend ' +\n      'layer_sprite_alpha layer_sprite_x layer_sprite_y ' +\n      'layer_sprite_get_sprite layer_sprite_get_index ' +\n      'layer_sprite_get_speed layer_sprite_get_xscale ' +\n      'layer_sprite_get_yscale layer_sprite_get_angle ' +\n      'layer_sprite_get_blend layer_sprite_get_alpha layer_sprite_get_x ' +\n      'layer_sprite_get_y layer_tilemap_get_id layer_tilemap_exists ' +\n      'layer_tilemap_create layer_tilemap_destroy tilemap_tileset tilemap_x ' +\n      'tilemap_y tilemap_set tilemap_set_at_pixel tilemap_get_tileset ' +\n      'tilemap_get_tile_width tilemap_get_tile_height tilemap_get_width ' +\n      'tilemap_get_height tilemap_get_x tilemap_get_y tilemap_get ' +\n      'tilemap_get_at_pixel tilemap_get_cell_x_at_pixel ' +\n      'tilemap_get_cell_y_at_pixel tilemap_clear draw_tilemap draw_tile ' +\n      'tilemap_set_global_mask tilemap_get_global_mask tilemap_set_mask ' +\n      'tilemap_get_mask tilemap_get_frame tile_set_empty tile_set_index ' +\n      'tile_set_flip tile_set_mirror tile_set_rotate tile_get_empty ' +\n      'tile_get_index tile_get_flip tile_get_mirror tile_get_rotate ' +\n      'layer_tile_exists layer_tile_create layer_tile_destroy ' +\n      'layer_tile_change layer_tile_xscale layer_tile_yscale ' +\n      'layer_tile_blend layer_tile_alpha layer_tile_x layer_tile_y ' +\n      'layer_tile_region layer_tile_visible layer_tile_get_sprite ' +\n      'layer_tile_get_xscale layer_tile_get_yscale layer_tile_get_blend ' +\n      'layer_tile_get_alpha layer_tile_get_x layer_tile_get_y ' +\n      'layer_tile_get_region layer_tile_get_visible ' +\n      'layer_instance_get_instance instance_activate_layer ' +\n      'instance_deactivate_layer camera_create camera_create_view ' +\n      'camera_destroy camera_apply camera_get_active camera_get_default ' +\n      'camera_set_default camera_set_view_mat camera_set_proj_mat ' +\n      'camera_set_update_script camera_set_begin_script ' +\n      'camera_set_end_script camera_set_view_pos camera_set_view_size ' +\n      'camera_set_view_speed camera_set_view_border camera_set_view_angle ' +\n      'camera_set_view_target camera_get_view_mat camera_get_proj_mat ' +\n      'camera_get_update_script camera_get_begin_script ' +\n      'camera_get_end_script camera_get_view_x camera_get_view_y ' +\n      'camera_get_view_width camera_get_view_height camera_get_view_speed_x ' +\n      'camera_get_view_speed_y camera_get_view_border_x ' +\n      'camera_get_view_border_y camera_get_view_angle ' +\n      'camera_get_view_target view_get_camera view_get_visible ' +\n      'view_get_xport view_get_yport view_get_wport view_get_hport ' +\n      'view_get_surface_id view_set_camera view_set_visible view_set_xport ' +\n      'view_set_yport view_set_wport view_set_hport view_set_surface_id ' +\n      'gesture_drag_time gesture_drag_distance gesture_flick_speed ' +\n      'gesture_double_tap_time gesture_double_tap_distance ' +\n      'gesture_pinch_distance gesture_pinch_angle_towards ' +\n      'gesture_pinch_angle_away gesture_rotate_time gesture_rotate_angle ' +\n      'gesture_tap_count gesture_get_drag_time gesture_get_drag_distance ' +\n      'gesture_get_flick_speed gesture_get_double_tap_time ' +\n      'gesture_get_double_tap_distance gesture_get_pinch_distance ' +\n      'gesture_get_pinch_angle_towards gesture_get_pinch_angle_away ' +\n      'gesture_get_rotate_time gesture_get_rotate_angle ' +\n      'gesture_get_tap_count keyboard_virtual_show keyboard_virtual_hide ' +\n      'keyboard_virtual_status keyboard_virtual_height',\n    literal: 'self other all noone global local undefined pointer_invalid ' +\n      'pointer_null path_action_stop path_action_restart ' +\n      'path_action_continue path_action_reverse true false pi GM_build_date ' +\n      'GM_version GM_runtime_version  timezone_local timezone_utc ' +\n      'gamespeed_fps gamespeed_microseconds  ev_create ev_destroy ev_step ' +\n      'ev_alarm ev_keyboard ev_mouse ev_collision ev_other ev_draw ' +\n      'ev_draw_begin ev_draw_end ev_draw_pre ev_draw_post ev_keypress ' +\n      'ev_keyrelease ev_trigger ev_left_button ev_right_button ' +\n      'ev_middle_button ev_no_button ev_left_press ev_right_press ' +\n      'ev_middle_press ev_left_release ev_right_release ev_middle_release ' +\n      'ev_mouse_enter ev_mouse_leave ev_mouse_wheel_up ev_mouse_wheel_down ' +\n      'ev_global_left_button ev_global_right_button ev_global_middle_button ' +\n      'ev_global_left_press ev_global_right_press ev_global_middle_press ' +\n      'ev_global_left_release ev_global_right_release ' +\n      'ev_global_middle_release ev_joystick1_left ev_joystick1_right ' +\n      'ev_joystick1_up ev_joystick1_down ev_joystick1_button1 ' +\n      'ev_joystick1_button2 ev_joystick1_button3 ev_joystick1_button4 ' +\n      'ev_joystick1_button5 ev_joystick1_button6 ev_joystick1_button7 ' +\n      'ev_joystick1_button8 ev_joystick2_left ev_joystick2_right ' +\n      'ev_joystick2_up ev_joystick2_down ev_joystick2_button1 ' +\n      'ev_joystick2_button2 ev_joystick2_button3 ev_joystick2_button4 ' +\n      'ev_joystick2_button5 ev_joystick2_button6 ev_joystick2_button7 ' +\n      'ev_joystick2_button8 ev_outside ev_boundary ev_game_start ' +\n      'ev_game_end ev_room_start ev_room_end ev_no_more_lives ' +\n      'ev_animation_end ev_end_of_path ev_no_more_health ev_close_button ' +\n      'ev_user0 ev_user1 ev_user2 ev_user3 ev_user4 ev_user5 ev_user6 ' +\n      'ev_user7 ev_user8 ev_user9 ev_user10 ev_user11 ev_user12 ev_user13 ' +\n      'ev_user14 ev_user15 ev_step_normal ev_step_begin ev_step_end ev_gui ' +\n      'ev_gui_begin ev_gui_end ev_cleanup ev_gesture ev_gesture_tap ' +\n      'ev_gesture_double_tap ev_gesture_drag_start ev_gesture_dragging ' +\n      'ev_gesture_drag_end ev_gesture_flick ev_gesture_pinch_start ' +\n      'ev_gesture_pinch_in ev_gesture_pinch_out ev_gesture_pinch_end ' +\n      'ev_gesture_rotate_start ev_gesture_rotating ev_gesture_rotate_end ' +\n      'ev_global_gesture_tap ev_global_gesture_double_tap ' +\n      'ev_global_gesture_drag_start ev_global_gesture_dragging ' +\n      'ev_global_gesture_drag_end ev_global_gesture_flick ' +\n      'ev_global_gesture_pinch_start ev_global_gesture_pinch_in ' +\n      'ev_global_gesture_pinch_out ev_global_gesture_pinch_end ' +\n      'ev_global_gesture_rotate_start ev_global_gesture_rotating ' +\n      'ev_global_gesture_rotate_end vk_nokey vk_anykey vk_enter vk_return ' +\n      'vk_shift vk_control vk_alt vk_escape vk_space vk_backspace vk_tab ' +\n      'vk_pause vk_printscreen vk_left vk_right vk_up vk_down vk_home ' +\n      'vk_end vk_delete vk_insert vk_pageup vk_pagedown vk_f1 vk_f2 vk_f3 ' +\n      'vk_f4 vk_f5 vk_f6 vk_f7 vk_f8 vk_f9 vk_f10 vk_f11 vk_f12 vk_numpad0 ' +\n      'vk_numpad1 vk_numpad2 vk_numpad3 vk_numpad4 vk_numpad5 vk_numpad6 ' +\n      'vk_numpad7 vk_numpad8 vk_numpad9 vk_divide vk_multiply vk_subtract ' +\n      'vk_add vk_decimal vk_lshift vk_lcontrol vk_lalt vk_rshift ' +\n      'vk_rcontrol vk_ralt  mb_any mb_none mb_left mb_right mb_middle ' +\n      'c_aqua c_black c_blue c_dkgray c_fuchsia c_gray c_green c_lime ' +\n      'c_ltgray c_maroon c_navy c_olive c_purple c_red c_silver c_teal ' +\n      'c_white c_yellow c_orange fa_left fa_center fa_right fa_top ' +\n      'fa_middle fa_bottom pr_pointlist pr_linelist pr_linestrip ' +\n      'pr_trianglelist pr_trianglestrip pr_trianglefan bm_complex bm_normal ' +\n      'bm_add bm_max bm_subtract bm_zero bm_one bm_src_colour ' +\n      'bm_inv_src_colour bm_src_color bm_inv_src_color bm_src_alpha ' +\n      'bm_inv_src_alpha bm_dest_alpha bm_inv_dest_alpha bm_dest_colour ' +\n      'bm_inv_dest_colour bm_dest_color bm_inv_dest_color bm_src_alpha_sat ' +\n      'tf_point tf_linear tf_anisotropic mip_off mip_on mip_markedonly ' +\n      'audio_falloff_none audio_falloff_inverse_distance ' +\n      'audio_falloff_inverse_distance_clamped audio_falloff_linear_distance ' +\n      'audio_falloff_linear_distance_clamped ' +\n      'audio_falloff_exponent_distance ' +\n      'audio_falloff_exponent_distance_clamped audio_old_system ' +\n      'audio_new_system audio_mono audio_stereo audio_3d cr_default cr_none ' +\n      'cr_arrow cr_cross cr_beam cr_size_nesw cr_size_ns cr_size_nwse ' +\n      'cr_size_we cr_uparrow cr_hourglass cr_drag cr_appstart cr_handpoint ' +\n      'cr_size_all spritespeed_framespersecond ' +\n      'spritespeed_framespergameframe asset_object asset_unknown ' +\n      'asset_sprite asset_sound asset_room asset_path asset_script ' +\n      'asset_font asset_timeline asset_tiles asset_shader fa_readonly ' +\n      'fa_hidden fa_sysfile fa_volumeid fa_directory fa_archive  ' +\n      'ds_type_map ds_type_list ds_type_stack ds_type_queue ds_type_grid ' +\n      'ds_type_priority ef_explosion ef_ring ef_ellipse ef_firework ' +\n      'ef_smoke ef_smokeup ef_star ef_spark ef_flare ef_cloud ef_rain ' +\n      'ef_snow pt_shape_pixel pt_shape_disk pt_shape_square pt_shape_line ' +\n      'pt_shape_star pt_shape_circle pt_shape_ring pt_shape_sphere ' +\n      'pt_shape_flare pt_shape_spark pt_shape_explosion pt_shape_cloud ' +\n      'pt_shape_smoke pt_shape_snow ps_distr_linear ps_distr_gaussian ' +\n      'ps_distr_invgaussian ps_shape_rectangle ps_shape_ellipse ' +\n      'ps_shape_diamond ps_shape_line ty_real ty_string dll_cdecl ' +\n      'dll_stdcall matrix_view matrix_projection matrix_world os_win32 ' +\n      'os_windows os_macosx os_ios os_android os_symbian os_linux ' +\n      'os_unknown os_winphone os_tizen os_win8native ' +\n      'os_wiiu os_3ds  os_psvita os_bb10 os_ps4 os_xboxone ' +\n      'os_ps3 os_xbox360 os_uwp os_tvos os_switch ' +\n      'browser_not_a_browser browser_unknown browser_ie browser_firefox ' +\n      'browser_chrome browser_safari browser_safari_mobile browser_opera ' +\n      'browser_tizen browser_edge browser_windows_store browser_ie_mobile  ' +\n      'device_ios_unknown device_ios_iphone device_ios_iphone_retina ' +\n      'device_ios_ipad device_ios_ipad_retina device_ios_iphone5 ' +\n      'device_ios_iphone6 device_ios_iphone6plus device_emulator ' +\n      'device_tablet display_landscape display_landscape_flipped ' +\n      'display_portrait display_portrait_flipped tm_sleep tm_countvsyncs ' +\n      'of_challenge_win of_challen ge_lose of_challenge_tie ' +\n      'leaderboard_type_number leaderboard_type_time_mins_secs ' +\n      'cmpfunc_never cmpfunc_less cmpfunc_equal cmpfunc_lessequal ' +\n      'cmpfunc_greater cmpfunc_notequal cmpfunc_greaterequal cmpfunc_always ' +\n      'cull_noculling cull_clockwise cull_counterclockwise lighttype_dir ' +\n      'lighttype_point iap_ev_storeload iap_ev_product iap_ev_purchase ' +\n      'iap_ev_consume iap_ev_restore iap_storeload_ok iap_storeload_failed ' +\n      'iap_status_uninitialised iap_status_unavailable iap_status_loading ' +\n      'iap_status_available iap_status_processing iap_status_restoring ' +\n      'iap_failed iap_unavailable iap_available iap_purchased iap_canceled ' +\n      'iap_refunded fb_login_default fb_login_fallback_to_webview ' +\n      'fb_login_no_fallback_to_webview fb_login_forcing_webview ' +\n      'fb_login_use_system_account fb_login_forcing_safari  ' +\n      'phy_joint_anchor_1_x phy_joint_anchor_1_y phy_joint_anchor_2_x ' +\n      'phy_joint_anchor_2_y phy_joint_reaction_force_x ' +\n      'phy_joint_reaction_force_y phy_joint_reaction_torque ' +\n      'phy_joint_motor_speed phy_joint_angle phy_joint_motor_torque ' +\n      'phy_joint_max_motor_torque phy_joint_translation phy_joint_speed ' +\n      'phy_joint_motor_force phy_joint_max_motor_force phy_joint_length_1 ' +\n      'phy_joint_length_2 phy_joint_damping_ratio phy_joint_frequency ' +\n      'phy_joint_lower_angle_limit phy_joint_upper_angle_limit ' +\n      'phy_joint_angle_limits phy_joint_max_length phy_joint_max_torque ' +\n      'phy_joint_max_force phy_debug_render_aabb ' +\n      'phy_debug_render_collision_pairs phy_debug_render_coms ' +\n      'phy_debug_render_core_shapes phy_debug_render_joints ' +\n      'phy_debug_render_obb phy_debug_render_shapes  ' +\n      'phy_particle_flag_water phy_particle_flag_zombie ' +\n      'phy_particle_flag_wall phy_particle_flag_spring ' +\n      'phy_particle_flag_elastic phy_particle_flag_viscous ' +\n      'phy_particle_flag_powder phy_particle_flag_tensile ' +\n      'phy_particle_flag_colourmixing phy_particle_flag_colormixing ' +\n      'phy_particle_group_flag_solid phy_particle_group_flag_rigid ' +\n      'phy_particle_data_flag_typeflags phy_particle_data_flag_position ' +\n      'phy_particle_data_flag_velocity phy_particle_data_flag_colour ' +\n      'phy_particle_data_flag_color phy_particle_data_flag_category  ' +\n      'achievement_our_info achievement_friends_info ' +\n      'achievement_leaderboard_info achievement_achievement_info ' +\n      'achievement_filter_all_players achievement_filter_friends_only ' +\n      'achievement_filter_favorites_only ' +\n      'achievement_type_achievement_challenge ' +\n      'achievement_type_score_challenge achievement_pic_loaded  ' +\n      'achievement_show_ui achievement_show_profile ' +\n      'achievement_show_leaderboard achievement_show_achievement ' +\n      'achievement_show_bank achievement_show_friend_picker ' +\n      'achievement_show_purchase_prompt network_socket_tcp ' +\n      'network_socket_udp network_socket_bluetooth network_type_connect ' +\n      'network_type_disconnect network_type_data ' +\n      'network_type_non_blocking_connect network_config_connect_timeout ' +\n      'network_config_use_non_blocking_socket ' +\n      'network_config_enable_reliable_udp ' +\n      'network_config_disable_reliable_udp buffer_fixed buffer_grow ' +\n      'buffer_wrap buffer_fast buffer_vbuffer buffer_network buffer_u8 ' +\n      'buffer_s8 buffer_u16 buffer_s16 buffer_u32 buffer_s32 buffer_u64 ' +\n      'buffer_f16 buffer_f32 buffer_f64 buffer_bool buffer_text ' +\n      'buffer_string buffer_surface_copy buffer_seek_start ' +\n      'buffer_seek_relative buffer_seek_end ' +\n      'buffer_generalerror buffer_outofspace buffer_outofbounds ' +\n      'buffer_invalidtype  text_type button_type input_type ANSI_CHARSET ' +\n      'DEFAULT_CHARSET EASTEUROPE_CHARSET RUSSIAN_CHARSET SYMBOL_CHARSET ' +\n      'SHIFTJIS_CHARSET HANGEUL_CHARSET GB2312_CHARSET CHINESEBIG5_CHARSET ' +\n      'JOHAB_CHARSET HEBREW_CHARSET ARABIC_CHARSET GREEK_CHARSET ' +\n      'TURKISH_CHARSET VIETNAMESE_CHARSET THAI_CHARSET MAC_CHARSET ' +\n      'BALTIC_CHARSET OEM_CHARSET  gp_face1 gp_face2 gp_face3 gp_face4 ' +\n      'gp_shoulderl gp_shoulderr gp_shoulderlb gp_shoulderrb gp_select ' +\n      'gp_start gp_stickl gp_stickr gp_padu gp_padd gp_padl gp_padr ' +\n      'gp_axislh gp_axislv gp_axisrh gp_axisrv ov_friends ov_community ' +\n      'ov_players ov_settings ov_gamegroup ov_achievements lb_sort_none ' +\n      'lb_sort_ascending lb_sort_descending lb_disp_none lb_disp_numeric ' +\n      'lb_disp_time_sec lb_disp_time_ms ugc_result_success ' +\n      'ugc_filetype_community ugc_filetype_microtrans ugc_visibility_public ' +\n      'ugc_visibility_friends_only ugc_visibility_private ' +\n      'ugc_query_RankedByVote ugc_query_RankedByPublicationDate ' +\n      'ugc_query_AcceptedForGameRankedByAcceptanceDate ' +\n      'ugc_query_RankedByTrend ' +\n      'ugc_query_FavoritedByFriendsRankedByPublicationDate ' +\n      'ugc_query_CreatedByFriendsRankedByPublicationDate ' +\n      'ugc_query_RankedByNumTimesReported ' +\n      'ugc_query_CreatedByFollowedUsersRankedByPublicationDate ' +\n      'ugc_query_NotYetRated ugc_query_RankedByTotalVotesAsc ' +\n      'ugc_query_RankedByVotesUp ugc_query_RankedByTextSearch ' +\n      'ugc_sortorder_CreationOrderDesc ugc_sortorder_CreationOrderAsc ' +\n      'ugc_sortorder_TitleAsc ugc_sortorder_LastUpdatedDesc ' +\n      'ugc_sortorder_SubscriptionDateDesc ugc_sortorder_VoteScoreDesc ' +\n      'ugc_sortorder_ForModeration ugc_list_Published ugc_list_VotedOn ' +\n      'ugc_list_VotedUp ugc_list_VotedDown ugc_list_WillVoteLater ' +\n      'ugc_list_Favorited ugc_list_Subscribed ugc_list_UsedOrPlayed ' +\n      'ugc_list_Followed ugc_match_Items ugc_match_Items_Mtx ' +\n      'ugc_match_Items_ReadyToUse ugc_match_Collections ugc_match_Artwork ' +\n      'ugc_match_Videos ugc_match_Screenshots ugc_match_AllGuides ' +\n      'ugc_match_WebGuides ugc_match_IntegratedGuides ' +\n      'ugc_match_UsableInGame ugc_match_ControllerBindings  ' +\n      'vertex_usage_position vertex_usage_colour vertex_usage_color ' +\n      'vertex_usage_normal vertex_usage_texcoord vertex_usage_textcoord ' +\n      'vertex_usage_blendweight vertex_usage_blendindices ' +\n      'vertex_usage_psize vertex_usage_tangent vertex_usage_binormal ' +\n      'vertex_usage_fog vertex_usage_depth vertex_usage_sample ' +\n      'vertex_type_float1 vertex_type_float2 vertex_type_float3 ' +\n      'vertex_type_float4 vertex_type_colour vertex_type_color ' +\n      'vertex_type_ubyte4 layerelementtype_undefined ' +\n      'layerelementtype_background layerelementtype_instance ' +\n      'layerelementtype_oldtilemap layerelementtype_sprite ' +\n      'layerelementtype_tilemap layerelementtype_particlesystem ' +\n      'layerelementtype_tile tile_rotate tile_flip tile_mirror ' +\n      'tile_index_mask kbv_type_default kbv_type_ascii kbv_type_url ' +\n      'kbv_type_email kbv_type_numbers kbv_type_phone kbv_type_phone_name ' +\n      'kbv_returnkey_default kbv_returnkey_go kbv_returnkey_google ' +\n      'kbv_returnkey_join kbv_returnkey_next kbv_returnkey_route ' +\n      'kbv_returnkey_search kbv_returnkey_send kbv_returnkey_yahoo ' +\n      'kbv_returnkey_done kbv_returnkey_continue kbv_returnkey_emergency ' +\n      'kbv_autocapitalize_none kbv_autocapitalize_words ' +\n      'kbv_autocapitalize_sentences kbv_autocapitalize_characters',\n    symbol: 'argument_relative argument argument0 argument1 argument2 ' +\n      'argument3 argument4 argument5 argument6 argument7 argument8 ' +\n      'argument9 argument10 argument11 argument12 argument13 argument14 ' +\n      'argument15 argument_count x|0 y|0 xprevious yprevious xstart ystart ' +\n      'hspeed vspeed direction speed friction gravity gravity_direction ' +\n      'path_index path_position path_positionprevious path_speed ' +\n      'path_scale path_orientation path_endaction object_index id solid ' +\n      'persistent mask_index instance_count instance_id room_speed fps ' +\n      'fps_real current_time current_year current_month current_day ' +\n      'current_weekday current_hour current_minute current_second alarm ' +\n      'timeline_index timeline_position timeline_speed timeline_running ' +\n      'timeline_loop room room_first room_last room_width room_height ' +\n      'room_caption room_persistent score lives health show_score ' +\n      'show_lives show_health caption_score caption_lives caption_health ' +\n      'event_type event_number event_object event_action ' +\n      'application_surface gamemaker_pro gamemaker_registered ' +\n      'gamemaker_version error_occurred error_last debug_mode ' +\n      'keyboard_key keyboard_lastkey keyboard_lastchar keyboard_string ' +\n      'mouse_x mouse_y mouse_button mouse_lastbutton cursor_sprite ' +\n      'visible sprite_index sprite_width sprite_height sprite_xoffset ' +\n      'sprite_yoffset image_number image_index image_speed depth ' +\n      'image_xscale image_yscale image_angle image_alpha image_blend ' +\n      'bbox_left bbox_right bbox_top bbox_bottom layer background_colour  ' +\n      'background_showcolour background_color background_showcolor ' +\n      'view_enabled view_current view_visible view_xview view_yview ' +\n      'view_wview view_hview view_xport view_yport view_wport view_hport ' +\n      'view_angle view_hborder view_vborder view_hspeed view_vspeed ' +\n      'view_object view_surface_id view_camera game_id game_display_name ' +\n      'game_project_name game_save_id working_directory temp_directory ' +\n      'program_directory browser_width browser_height os_type os_device ' +\n      'os_browser os_version display_aa async_load delta_time ' +\n      'webgl_enabled event_data iap_data phy_rotation phy_position_x ' +\n      'phy_position_y phy_angular_velocity phy_linear_velocity_x ' +\n      'phy_linear_velocity_y phy_speed_x phy_speed_y phy_speed ' +\n      'phy_angular_damping phy_linear_damping phy_bullet ' +\n      'phy_fixed_rotation phy_active phy_mass phy_inertia phy_com_x ' +\n      'phy_com_y phy_dynamic phy_kinematic phy_sleeping ' +\n      'phy_collision_points phy_collision_x phy_collision_y ' +\n      'phy_col_normal_x phy_col_normal_y phy_position_xprevious ' +\n      'phy_position_yprevious'\n  };\n\n  return {\n    name: 'GML',\n    case_insensitive: false, // language is case-insensitive\n    keywords: GML_KEYWORDS,\n\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = gml;\n","/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg \nContributors: Evgeny Stepanischev \nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n  const GO_KEYWORDS = {\n    keyword:\n      'break default func interface select case map struct chan else goto package switch ' +\n      'const fallthrough if range type continue for import return var go defer ' +\n      'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +\n      'uint16 uint32 uint64 int uint uintptr rune',\n    literal:\n       'true false iota nil',\n    built_in:\n      'append cap close complex copy imag len make new panic print println real recover delete'\n  };\n  return {\n    name: 'Go',\n    aliases: ['golang'],\n    keywords: GO_KEYWORDS,\n    illegal: '\nDescription: a lightweight dynamic language for the JVM\nWebsite: http://golo-lang.org/\n*/\n\nfunction golo(hljs) {\n  return {\n    name: 'Golo',\n    keywords: {\n      keyword:\n          'println readln print import module function local return let var ' +\n          'while for foreach times in case when match with break continue ' +\n          'augment augmentation each find filter reduce ' +\n          'if then else otherwise try catch finally raise throw orIfNull ' +\n          'DynamicObject|10 DynamicVariable struct Observable map set vector list array',\n      literal:\n          'true false null'\n    },\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'meta',\n        begin: '@[A-Za-z]+'\n      }\n    ]\n  };\n}\n\nmodule.exports = golo;\n","/*\nLanguage: Gradle\nDescription: Gradle is an open-source build automation tool focused on flexibility and performance.\nWebsite: https://gradle.org\nAuthor: Damian Mee \n*/\n\nfunction gradle(hljs) {\n  return {\n    name: 'Gradle',\n    case_insensitive: true,\n    keywords: {\n      keyword:\n        'task project allprojects subprojects artifacts buildscript configurations ' +\n        'dependencies repositories sourceSets description delete from into include ' +\n        'exclude source classpath destinationDir includes options sourceCompatibility ' +\n        'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +\n        'def abstract break case catch continue default do else extends final finally ' +\n        'for if implements instanceof native new private protected public return static ' +\n        'switch synchronized throw throws transient try volatile while strictfp package ' +\n        'import false null super this true antlrtask checkstyle codenarc copy boolean ' +\n        'byte char class double float int interface long short void compile runTime ' +\n        'file fileTree abs any append asList asWritable call collect compareTo count ' +\n        'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +\n        'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +\n        'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +\n        'newReader newWriter next plus pop power previous print println push putAt read ' +\n        'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +\n        'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +\n        'withStream withWriter withWriterAppend write writeLine'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE,\n      hljs.REGEXP_MODE\n\n    ]\n  };\n}\n\nmodule.exports = gradle;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\n Language: Groovy\n Author: Guillaume Laforge \n Description: Groovy programming language implementation inspired from Vsevolod's Java mode\n Website: https://groovy-lang.org\n */\n\nfunction variants(variants, obj = {}) {\n  obj.variants = variants;\n  return obj;\n}\n\nfunction groovy(hljs) {\n  const IDENT_RE = '[A-Za-z0-9_$]+';\n  const COMMENT = variants([\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.COMMENT(\n      '/\\\\*\\\\*',\n      '\\\\*/',\n      {\n        relevance: 0,\n        contains: [\n          {\n            // eat up @'s in emails to prevent them to be recognized as doctags\n            begin: /\\w+@/,\n            relevance: 0\n          },\n          {\n            className: 'doctag',\n            begin: '@[A-Za-z]+'\n          }\n        ]\n      }\n    )\n  ]);\n  const REGEXP = {\n    className: 'regexp',\n    begin: /~?\\/[^\\/\\n]+\\//,\n    contains: [ hljs.BACKSLASH_ESCAPE ]\n  };\n  const NUMBER = variants([\n    hljs.BINARY_NUMBER_MODE,\n    hljs.C_NUMBER_MODE\n  ]);\n  const STRING = variants([\n    {\n      begin: /\"\"\"/,\n      end: /\"\"\"/\n    },\n    {\n      begin: /'''/,\n      end: /'''/\n    },\n    {\n      begin: \"\\\\$/\",\n      end: \"/\\\\$\",\n      relevance: 10\n    },\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE\n  ],\n  {\n    className: \"string\"\n  }\n  );\n\n  return {\n    name: 'Groovy',\n    keywords: {\n      built_in: 'this super',\n      literal: 'true false null',\n      keyword:\n            'byte short char int long boolean float double void ' +\n            // groovy specific keywords\n            'def as in assert trait ' +\n            // common keywords with Java\n            'abstract static volatile transient public private protected synchronized final ' +\n            'class interface enum if else for while switch case break default continue ' +\n            'throw throws try catch finally implements extends new import package return instanceof'\n    },\n    contains: [\n      hljs.SHEBANG({\n        binary: \"groovy\",\n        relevance: 10\n      }),\n      COMMENT,\n      STRING,\n      REGEXP,\n      NUMBER,\n      {\n        className: 'class',\n        beginKeywords: 'class interface trait enum',\n        end: /\\{/,\n        illegal: ':',\n        contains: [\n          {\n            beginKeywords: 'extends implements'\n          },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        className: 'meta',\n        begin: '@[A-Za-z]+',\n        relevance: 0\n      },\n      {\n        // highlight map keys and named parameters as attrs\n        className: 'attr',\n        begin: IDENT_RE + '[ \\t]*:',\n        relevance: 0\n      },\n      {\n        // catch middle element of the ternary operator\n        // to avoid highlight it as a label, named parameter, or map key\n        begin: /\\?/,\n        end: /:/,\n        relevance: 0,\n        contains: [\n          COMMENT,\n          STRING,\n          REGEXP,\n          NUMBER,\n          'self'\n        ]\n      },\n      {\n        // highlight labeled statements\n        className: 'symbol',\n        begin: '^[ \\t]*' + lookahead(IDENT_RE + ':'),\n        excludeBegin: true,\n        end: IDENT_RE + ':',\n        relevance: 0\n      }\n    ],\n    illegal: /#|<\\//\n  };\n}\n\nmodule.exports = groovy;\n","/*\nLanguage: HAML\nRequires: ruby.js\nAuthor: Dan Allen \nWebsite: http://haml.info\nCategory: template\n*/\n\n// TODO support filter tags like :javascript, support inline HTML\nfunction haml(hljs) {\n  return {\n    name: 'HAML',\n    case_insensitive: true,\n    contains: [\n      {\n        className: 'meta',\n        begin: '^!!!( (5|1\\\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\\\b.*))?$',\n        relevance: 10\n      },\n      // FIXME these comments should be allowed to span indented lines\n      hljs.COMMENT(\n        '^\\\\s*(!=#|=#|-#|/).*$',\n        false,\n        {\n          relevance: 0\n        }\n      ),\n      {\n        begin: '^\\\\s*(-|=|!=)(?!#)',\n        starts: {\n          end: '\\\\n',\n          subLanguage: 'ruby'\n        }\n      },\n      {\n        className: 'tag',\n        begin: '^\\\\s*%',\n        contains: [\n          {\n            className: 'selector-tag',\n            begin: '\\\\w+'\n          },\n          {\n            className: 'selector-id',\n            begin: '#[\\\\w-]+'\n          },\n          {\n            className: 'selector-class',\n            begin: '\\\\.[\\\\w-]+'\n          },\n          {\n            begin: /\\{\\s*/,\n            end: /\\s*\\}/,\n            contains: [\n              {\n                begin: ':\\\\w+\\\\s*=>',\n                end: ',\\\\s+',\n                returnBegin: true,\n                endsWithParent: true,\n                contains: [\n                  {\n                    className: 'attr',\n                    begin: ':\\\\w+'\n                  },\n                  hljs.APOS_STRING_MODE,\n                  hljs.QUOTE_STRING_MODE,\n                  {\n                    begin: '\\\\w+',\n                    relevance: 0\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            begin: '\\\\(\\\\s*',\n            end: '\\\\s*\\\\)',\n            excludeEnd: true,\n            contains: [\n              {\n                begin: '\\\\w+\\\\s*=',\n                end: '\\\\s+',\n                returnBegin: true,\n                endsWithParent: true,\n                contains: [\n                  {\n                    className: 'attr',\n                    begin: '\\\\w+',\n                    relevance: 0\n                  },\n                  hljs.APOS_STRING_MODE,\n                  hljs.QUOTE_STRING_MODE,\n                  {\n                    begin: '\\\\w+',\n                    relevance: 0\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      {\n        begin: '^\\\\s*[=~]\\\\s*'\n      },\n      {\n        begin: /#\\{/,\n        starts: {\n          end: /\\}/,\n          subLanguage: 'ruby'\n        }\n      }\n    ]\n  };\n}\n\nmodule.exports = haml;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n  return concat('(', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward \nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n  const BUILT_INS = {\n    'builtin-name': [\n      'action',\n      'bindattr',\n      'collection',\n      'component',\n      'concat',\n      'debugger',\n      'each',\n      'each-in',\n      'get',\n      'hash',\n      'if',\n      'in',\n      'input',\n      'link-to',\n      'loc',\n      'log',\n      'lookup',\n      'mut',\n      'outlet',\n      'partial',\n      'query-params',\n      'render',\n      'template',\n      'textarea',\n      'unbound',\n      'unless',\n      'view',\n      'with',\n      'yield'\n    ]\n  };\n\n  const LITERALS = {\n    literal: [\n      'true',\n      'false',\n      'undefined',\n      'null'\n    ]\n  };\n\n  // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n  // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n  // like a/b, ./abc/cde, and abc.bcd\n\n  const DOUBLE_QUOTED_ID_REGEX = /\"\"|\"[^\"]+\"/;\n  const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;\n  const BRACKET_QUOTED_ID_REGEX = /\\[\\]|\\[[^\\]]+\\]/;\n  const PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n  const PATH_DELIMITER_REGEX = /(\\.|\\/)/;\n  const ANY_ID = either(\n    DOUBLE_QUOTED_ID_REGEX,\n    SINGLE_QUOTED_ID_REGEX,\n    BRACKET_QUOTED_ID_REGEX,\n    PLAIN_ID_REGEX\n    );\n\n  const IDENTIFIER_REGEX = concat(\n    optional(/\\.|\\.\\/|\\//), // relative or absolute path\n    ANY_ID,\n    anyNumberOfTimes(concat(\n      PATH_DELIMITER_REGEX,\n      ANY_ID\n    ))\n  );\n\n  // identifier followed by a equal-sign (without the equal sign)\n  const HASH_PARAM_REGEX = concat(\n    '(',\n    BRACKET_QUOTED_ID_REGEX, '|',\n    PLAIN_ID_REGEX,\n    ')(?==)'\n  );\n\n  const HELPER_NAME_OR_PATH_EXPRESSION = {\n    begin: IDENTIFIER_REGEX,\n    lexemes: /[\\w.\\/]+/\n  };\n\n  const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: LITERALS\n  });\n\n  const SUB_EXPRESSION = {\n    begin: /\\(/,\n    end: /\\)/\n    // the \"contains\" is added below when all necessary sub-modes are defined\n  };\n\n  const HASH = {\n    // fka \"attribute-assignment\", parameters of the form 'key=value'\n    className: 'attr',\n    begin: HASH_PARAM_REGEX,\n    relevance: 0,\n    starts: {\n      begin: /=/,\n      end: /=/,\n      starts: {\n        contains: [\n          hljs.NUMBER_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          HELPER_PARAMETER,\n          SUB_EXPRESSION\n        ]\n      }\n    }\n  };\n\n  const BLOCK_PARAMS = {\n    // parameters of the form '{{#with x as | y |}}...{{/with}}'\n    begin: /as\\s+\\|/,\n    keywords: {\n      keyword: 'as'\n    },\n    end: /\\|/,\n    contains: [\n      {\n        // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n        begin: /\\w+/\n      }\n    ]\n  };\n\n  const HELPER_PARAMETERS = {\n    contains: [\n      hljs.NUMBER_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n      BLOCK_PARAMS,\n      HASH,\n      HELPER_PARAMETER,\n      SUB_EXPRESSION\n    ],\n    returnEnd: true\n    // the property \"end\" is defined through inheritance when the mode is used. If depends\n    // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n    // end-token of the surrounding mode)\n  };\n\n  const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    className: 'name',\n    keywords: BUILT_INS,\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\)/\n    })\n  });\n\n  SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS];\n\n  const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: BUILT_INS,\n    className: 'name',\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\}\\}/\n    })\n  });\n\n  const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: BUILT_INS,\n    className: 'name'\n  });\n\n  const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    className: 'name',\n    keywords: BUILT_INS,\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\}\\}/\n    })\n  });\n\n  const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n    begin: /\\\\\\{\\{/,\n    skip: true\n  };\n  const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n    begin: /\\\\\\\\(?=\\{\\{)/,\n    skip: true\n  };\n\n  return {\n    name: 'Handlebars',\n    aliases: [\n      'hbs',\n      'html.hbs',\n      'html.handlebars',\n      'htmlbars'\n    ],\n    case_insensitive: true,\n    subLanguage: 'xml',\n    contains: [\n      ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n      PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n      hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n      hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n      {\n        // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n        className: 'template-tag',\n        begin: /\\{\\{\\{\\{(?!\\/)/,\n        end: /\\}\\}\\}\\}/,\n        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n        starts: {\n          end: /\\{\\{\\{\\{\\//,\n          returnEnd: true,\n          subLanguage: 'xml'\n        }\n      },\n      {\n        // close raw block\n        className: 'template-tag',\n        begin: /\\{\\{\\{\\{\\//,\n        end: /\\}\\}\\}\\}/,\n        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n      },\n      {\n        // open block statement\n        className: 'template-tag',\n        begin: /\\{\\{#/,\n        end: /\\}\\}/,\n        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS]\n      },\n      {\n        className: 'template-tag',\n        begin: /\\{\\{(?=else\\}\\})/,\n        end: /\\}\\}/,\n        keywords: 'else'\n      },\n      {\n        className: 'template-tag',\n        begin: /\\{\\{(?=else if)/,\n        end: /\\}\\}/,\n        keywords: 'else if'\n      },\n      {\n        // closing block statement\n        className: 'template-tag',\n        begin: /\\{\\{\\//,\n        end: /\\}\\}/,\n        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n      },\n      {\n        // template variable or helper-call that is NOT html-escaped\n        className: 'template-variable',\n        begin: /\\{\\{\\{/,\n        end: /\\}\\}\\}/,\n        contains: [BASIC_MUSTACHE_CONTENTS]\n      },\n      {\n        // template variable or helper-call that is html-escaped\n        className: 'template-variable',\n        begin: /\\{\\{/,\n        end: /\\}\\}/,\n        contains: [BASIC_MUSTACHE_CONTENTS]\n      }\n    ]\n  };\n}\n\nmodule.exports = handlebars;\n","/*\nLanguage: Haskell\nAuthor: Jeremy Hull \nContributors: Zena Treep \nWebsite: https://www.haskell.org\nCategory: functional\n*/\n\nfunction haskell(hljs) {\n  const COMMENT = {\n    variants: [\n      hljs.COMMENT('--', '$'),\n      hljs.COMMENT(\n        /\\{-/,\n        /-\\}/,\n        {\n          contains: ['self']\n        }\n      )\n    ]\n  };\n\n  const PRAGMA = {\n    className: 'meta',\n    begin: /\\{-#/,\n    end: /#-\\}/\n  };\n\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: '^#',\n    end: '$'\n  };\n\n  const CONSTRUCTOR = {\n    className: 'type',\n    begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (build-in, infix).\n    relevance: 0\n  };\n\n  const LIST = {\n    begin: '\\\\(',\n    end: '\\\\)',\n    illegal: '\"',\n    contains: [\n      PRAGMA,\n      PREPROCESSOR,\n      {\n        className: 'type',\n        begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n      },\n      hljs.inherit(hljs.TITLE_MODE, {\n        begin: '[_a-z][\\\\w\\']*'\n      }),\n      COMMENT\n    ]\n  };\n\n  const RECORD = {\n    begin: /\\{/,\n    end: /\\}/,\n    contains: LIST.contains\n  };\n\n  return {\n    name: 'Haskell',\n    aliases: ['hs'],\n    keywords:\n      'let in if then else case of where do module import hiding ' +\n      'qualified type data newtype deriving class instance as default ' +\n      'infix infixl infixr foreign export ccall stdcall cplusplus ' +\n      'jvm dotnet safe unsafe family forall mdo proc rec',\n    contains: [\n      // Top-level constructions.\n      {\n        beginKeywords: 'module',\n        end: 'where',\n        keywords: 'module where',\n        contains: [\n          LIST,\n          COMMENT\n        ],\n        illegal: '\\\\W\\\\.|;'\n      },\n      {\n        begin: '\\\\bimport\\\\b',\n        end: '$',\n        keywords: 'import qualified as hiding',\n        contains: [\n          LIST,\n          COMMENT\n        ],\n        illegal: '\\\\W\\\\.|;'\n      },\n      {\n        className: 'class',\n        begin: '^(\\\\s*)?(class|instance)\\\\b',\n        end: 'where',\n        keywords: 'class family instance where',\n        contains: [\n          CONSTRUCTOR,\n          LIST,\n          COMMENT\n        ]\n      },\n      {\n        className: 'class',\n        begin: '\\\\b(data|(new)?type)\\\\b',\n        end: '$',\n        keywords: 'data family type newtype deriving',\n        contains: [\n          PRAGMA,\n          CONSTRUCTOR,\n          LIST,\n          RECORD,\n          COMMENT\n        ]\n      },\n      {\n        beginKeywords: 'default',\n        end: '$',\n        contains: [\n          CONSTRUCTOR,\n          LIST,\n          COMMENT\n        ]\n      },\n      {\n        beginKeywords: 'infix infixl infixr',\n        end: '$',\n        contains: [\n          hljs.C_NUMBER_MODE,\n          COMMENT\n        ]\n      },\n      {\n        begin: '\\\\bforeign\\\\b',\n        end: '$',\n        keywords: 'foreign import export ccall stdcall cplusplus jvm ' +\n                  'dotnet safe unsafe',\n        contains: [\n          CONSTRUCTOR,\n          hljs.QUOTE_STRING_MODE,\n          COMMENT\n        ]\n      },\n      {\n        className: 'meta',\n        begin: '#!\\\\/usr\\\\/bin\\\\/env\\ runhaskell',\n        end: '$'\n      },\n      // \"Whitespaces\".\n      PRAGMA,\n      PREPROCESSOR,\n\n      // Literals and names.\n\n      // TODO: characters.\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      CONSTRUCTOR,\n      hljs.inherit(hljs.TITLE_MODE, {\n        begin: '^[_a-z][\\\\w\\']*'\n      }),\n      COMMENT,\n      { // No markup, relevance booster\n        begin: '->|<-'\n      }\n    ]\n  };\n}\n\nmodule.exports = haskell;\n","/*\nLanguage: Haxe\nDescription: Haxe is an open source toolkit based on a modern, high level, strictly typed programming language.\nAuthor: Christopher Kaster  (Based on the actionscript.js language file by Alexander Myadzel)\nContributors: Kenton Hamaluik \nWebsite: https://haxe.org\n*/\n\nfunction haxe(hljs) {\n\n  const HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array ';\n\n  return {\n    name: 'Haxe',\n    aliases: ['hx'],\n    keywords: {\n      keyword: 'break case cast catch continue default do dynamic else enum extern ' +\n               'for function here if import in inline never new override package private get set ' +\n               'public return static super switch this throw trace try typedef untyped using var while ' +\n               HAXE_BASIC_TYPES,\n      built_in:\n        'trace this',\n      literal:\n        'true false null _'\n    },\n    contains: [\n      {\n        className: 'string', // interpolate-able strings\n        begin: '\\'',\n        end: '\\'',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          {\n            className: 'subst', // interpolation\n            begin: '\\\\$\\\\{',\n            end: '\\\\}'\n          },\n          {\n            className: 'subst', // interpolation\n            begin: '\\\\$',\n            end: /\\W\\}/\n          }\n        ]\n      },\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'meta', // compiler meta\n        begin: '@:',\n        end: '$'\n      },\n      {\n        className: 'meta', // compiler conditionals\n        begin: '#',\n        end: '$',\n        keywords: {\n          'meta-keyword': 'if else elseif end error'\n        }\n      },\n      {\n        className: 'type', // function types\n        begin: ':[ \\t]*',\n        end: '[^A-Za-z0-9_ \\t\\\\->]',\n        excludeBegin: true,\n        excludeEnd: true,\n        relevance: 0\n      },\n      {\n        className: 'type', // types\n        begin: ':[ \\t]*',\n        end: '\\\\W',\n        excludeBegin: true,\n        excludeEnd: true\n      },\n      {\n        className: 'type', // instantiation\n        begin: 'new *',\n        end: '\\\\W',\n        excludeBegin: true,\n        excludeEnd: true\n      },\n      {\n        className: 'class', // enums\n        beginKeywords: 'enum',\n        end: '\\\\{',\n        contains: [hljs.TITLE_MODE]\n      },\n      {\n        className: 'class', // abstracts\n        beginKeywords: 'abstract',\n        end: '[\\\\{$]',\n        contains: [\n          {\n            className: 'type',\n            begin: '\\\\(',\n            end: '\\\\)',\n            excludeBegin: true,\n            excludeEnd: true\n          },\n          {\n            className: 'type',\n            begin: 'from +',\n            end: '\\\\W',\n            excludeBegin: true,\n            excludeEnd: true\n          },\n          {\n            className: 'type',\n            begin: 'to +',\n            end: '\\\\W',\n            excludeBegin: true,\n            excludeEnd: true\n          },\n          hljs.TITLE_MODE\n        ],\n        keywords: {\n          keyword: 'abstract from to'\n        }\n      },\n      {\n        className: 'class', // classes\n        begin: '\\\\b(class|interface) +',\n        end: '[\\\\{$]',\n        excludeEnd: true,\n        keywords: 'class interface',\n        contains: [\n          {\n            className: 'keyword',\n            begin: '\\\\b(extends|implements) +',\n            keywords: 'extends implements',\n            contains: [\n              {\n                className: 'type',\n                begin: hljs.IDENT_RE,\n                relevance: 0\n              }\n            ]\n          },\n          hljs.TITLE_MODE\n        ]\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: '\\\\(',\n        excludeEnd: true,\n        illegal: '\\\\S',\n        contains: [hljs.TITLE_MODE]\n      }\n    ],\n    illegal: /<\\//\n  };\n}\n\nmodule.exports = haxe;\n","/*\nLanguage: HSP\nAuthor: prince \nWebsite: https://en.wikipedia.org/wiki/Hot_Soup_Processor\nCategory: scripting\n*/\n\nfunction hsp(hljs) {\n  return {\n    name: 'HSP',\n    case_insensitive: true,\n    keywords: {\n      $pattern: /[\\w._]+/,\n      keyword: 'goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n\n      {\n        // multi-line string\n        className: 'string',\n        begin: /\\{\"/,\n        end: /\"\\}/,\n        contains: [hljs.BACKSLASH_ESCAPE]\n      },\n\n      hljs.COMMENT(';', '$', {\n        relevance: 0\n      }),\n\n      {\n        // pre-processor\n        className: 'meta',\n        begin: '#',\n        end: '$',\n        keywords: {\n          'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib'\n        },\n        contains: [\n          hljs.inherit(hljs.QUOTE_STRING_MODE, {\n            className: 'meta-string'\n          }),\n          hljs.NUMBER_MODE,\n          hljs.C_NUMBER_MODE,\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n\n      {\n        // label\n        className: 'symbol',\n        begin: '^\\\\*(\\\\w+|@)'\n      },\n\n      hljs.NUMBER_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = hsp;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n  return concat('(', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward \nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n  const BUILT_INS = {\n    'builtin-name': [\n      'action',\n      'bindattr',\n      'collection',\n      'component',\n      'concat',\n      'debugger',\n      'each',\n      'each-in',\n      'get',\n      'hash',\n      'if',\n      'in',\n      'input',\n      'link-to',\n      'loc',\n      'log',\n      'lookup',\n      'mut',\n      'outlet',\n      'partial',\n      'query-params',\n      'render',\n      'template',\n      'textarea',\n      'unbound',\n      'unless',\n      'view',\n      'with',\n      'yield'\n    ]\n  };\n\n  const LITERALS = {\n    literal: [\n      'true',\n      'false',\n      'undefined',\n      'null'\n    ]\n  };\n\n  // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n  // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n  // like a/b, ./abc/cde, and abc.bcd\n\n  const DOUBLE_QUOTED_ID_REGEX = /\"\"|\"[^\"]+\"/;\n  const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;\n  const BRACKET_QUOTED_ID_REGEX = /\\[\\]|\\[[^\\]]+\\]/;\n  const PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n  const PATH_DELIMITER_REGEX = /(\\.|\\/)/;\n  const ANY_ID = either(\n    DOUBLE_QUOTED_ID_REGEX,\n    SINGLE_QUOTED_ID_REGEX,\n    BRACKET_QUOTED_ID_REGEX,\n    PLAIN_ID_REGEX\n    );\n\n  const IDENTIFIER_REGEX = concat(\n    optional(/\\.|\\.\\/|\\//), // relative or absolute path\n    ANY_ID,\n    anyNumberOfTimes(concat(\n      PATH_DELIMITER_REGEX,\n      ANY_ID\n    ))\n  );\n\n  // identifier followed by a equal-sign (without the equal sign)\n  const HASH_PARAM_REGEX = concat(\n    '(',\n    BRACKET_QUOTED_ID_REGEX, '|',\n    PLAIN_ID_REGEX,\n    ')(?==)'\n  );\n\n  const HELPER_NAME_OR_PATH_EXPRESSION = {\n    begin: IDENTIFIER_REGEX,\n    lexemes: /[\\w.\\/]+/\n  };\n\n  const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: LITERALS\n  });\n\n  const SUB_EXPRESSION = {\n    begin: /\\(/,\n    end: /\\)/\n    // the \"contains\" is added below when all necessary sub-modes are defined\n  };\n\n  const HASH = {\n    // fka \"attribute-assignment\", parameters of the form 'key=value'\n    className: 'attr',\n    begin: HASH_PARAM_REGEX,\n    relevance: 0,\n    starts: {\n      begin: /=/,\n      end: /=/,\n      starts: {\n        contains: [\n          hljs.NUMBER_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          HELPER_PARAMETER,\n          SUB_EXPRESSION\n        ]\n      }\n    }\n  };\n\n  const BLOCK_PARAMS = {\n    // parameters of the form '{{#with x as | y |}}...{{/with}}'\n    begin: /as\\s+\\|/,\n    keywords: {\n      keyword: 'as'\n    },\n    end: /\\|/,\n    contains: [\n      {\n        // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n        begin: /\\w+/\n      }\n    ]\n  };\n\n  const HELPER_PARAMETERS = {\n    contains: [\n      hljs.NUMBER_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n      BLOCK_PARAMS,\n      HASH,\n      HELPER_PARAMETER,\n      SUB_EXPRESSION\n    ],\n    returnEnd: true\n    // the property \"end\" is defined through inheritance when the mode is used. If depends\n    // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n    // end-token of the surrounding mode)\n  };\n\n  const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    className: 'name',\n    keywords: BUILT_INS,\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\)/\n    })\n  });\n\n  SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS];\n\n  const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: BUILT_INS,\n    className: 'name',\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\}\\}/\n    })\n  });\n\n  const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: BUILT_INS,\n    className: 'name'\n  });\n\n  const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    className: 'name',\n    keywords: BUILT_INS,\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\}\\}/\n    })\n  });\n\n  const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n    begin: /\\\\\\{\\{/,\n    skip: true\n  };\n  const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n    begin: /\\\\\\\\(?=\\{\\{)/,\n    skip: true\n  };\n\n  return {\n    name: 'Handlebars',\n    aliases: [\n      'hbs',\n      'html.hbs',\n      'html.handlebars',\n      'htmlbars'\n    ],\n    case_insensitive: true,\n    subLanguage: 'xml',\n    contains: [\n      ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n      PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n      hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n      hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n      {\n        // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n        className: 'template-tag',\n        begin: /\\{\\{\\{\\{(?!\\/)/,\n        end: /\\}\\}\\}\\}/,\n        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n        starts: {\n          end: /\\{\\{\\{\\{\\//,\n          returnEnd: true,\n          subLanguage: 'xml'\n        }\n      },\n      {\n        // close raw block\n        className: 'template-tag',\n        begin: /\\{\\{\\{\\{\\//,\n        end: /\\}\\}\\}\\}/,\n        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n      },\n      {\n        // open block statement\n        className: 'template-tag',\n        begin: /\\{\\{#/,\n        end: /\\}\\}/,\n        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS]\n      },\n      {\n        className: 'template-tag',\n        begin: /\\{\\{(?=else\\}\\})/,\n        end: /\\}\\}/,\n        keywords: 'else'\n      },\n      {\n        className: 'template-tag',\n        begin: /\\{\\{(?=else if)/,\n        end: /\\}\\}/,\n        keywords: 'else if'\n      },\n      {\n        // closing block statement\n        className: 'template-tag',\n        begin: /\\{\\{\\//,\n        end: /\\}\\}/,\n        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n      },\n      {\n        // template variable or helper-call that is NOT html-escaped\n        className: 'template-variable',\n        begin: /\\{\\{\\{/,\n        end: /\\}\\}\\}/,\n        contains: [BASIC_MUSTACHE_CONTENTS]\n      },\n      {\n        // template variable or helper-call that is html-escaped\n        className: 'template-variable',\n        begin: /\\{\\{/,\n        end: /\\}\\}/,\n        contains: [BASIC_MUSTACHE_CONTENTS]\n      }\n    ]\n  };\n}\n\n/*\n Language: HTMLBars (legacy)\n Requires: xml.js\n Description: Matcher for Handlebars as well as EmberJS additions.\n Website: https://github.com/tildeio/htmlbars\n Category: template\n */\n\nfunction htmlbars(hljs) {\n  const definition = handlebars(hljs);\n\n  definition.name = \"HTMLbars\";\n\n  // HACK: This lets handlebars do the auto-detection if it's been loaded (by\n  // default the build script will load in alphabetical order) and if not (perhaps\n  // an install is only using `htmlbars`, not `handlebars`) then this will still\n  // allow HTMLBars to participate in the auto-detection\n\n  // worse case someone will have HTMLbars and handlebars competing for the same\n  // content and will need to change their setup to only require handlebars, but\n  // I don't consider this a breaking change\n  if (hljs.getLanguage(\"handlebars\")) {\n    definition.disableAutodetect = true;\n  }\n\n  return definition;\n}\n\nmodule.exports = htmlbars;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: HTTP\nDescription: HTTP request and response headers with automatic body highlighting\nAuthor: Ivan Sagalaev \nCategory: common, protocols\nWebsite: https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview\n*/\n\nfunction http(hljs) {\n  const VERSION = 'HTTP/(2|1\\\\.[01])';\n  const HEADER_NAME = /[A-Za-z][A-Za-z0-9-]*/;\n  const HEADER = {\n    className: 'attribute',\n    begin: concat('^', HEADER_NAME, '(?=\\\\:\\\\s)'),\n    starts: {\n      contains: [\n        {\n          className: \"punctuation\",\n          begin: /: /,\n          relevance: 0,\n          starts: {\n            end: '$',\n            relevance: 0\n          }\n        }\n      ]\n    }\n  };\n  const HEADERS_AND_BODY = [\n    HEADER,\n    {\n      begin: '\\\\n\\\\n',\n      starts: { subLanguage: [], endsWithParent: true }\n    }\n  ];\n\n  return {\n    name: 'HTTP',\n    aliases: ['https'],\n    illegal: /\\S/,\n    contains: [\n      // response\n      {\n        begin: '^(?=' + VERSION + \" \\\\d{3})\",\n        end: /$/,\n        contains: [\n          {\n            className: \"meta\",\n            begin: VERSION\n          },\n          {\n            className: 'number', begin: '\\\\b\\\\d{3}\\\\b'\n          }\n        ],\n        starts: {\n          end: /\\b\\B/,\n          illegal: /\\S/,\n          contains: HEADERS_AND_BODY\n        }\n      },\n      // request\n      {\n        begin: '(?=^[A-Z]+ (.*?) ' + VERSION + '$)',\n        end: /$/,\n        contains: [\n          {\n            className: 'string',\n            begin: ' ',\n            end: ' ',\n            excludeBegin: true,\n            excludeEnd: true\n          },\n          {\n            className: \"meta\",\n            begin: VERSION\n          },\n          {\n            className: 'keyword',\n            begin: '[A-Z]+'\n          }\n        ],\n        starts: {\n          end: /\\b\\B/,\n          illegal: /\\S/,\n          contains: HEADERS_AND_BODY\n        }\n      },\n      // to allow headers to work even without a preamble\n      hljs.inherit(HEADER, {\n        relevance: 0\n      })\n    ]\n  };\n}\n\nmodule.exports = http;\n","/*\nLanguage: Hy\nDescription: Hy is a wonderful dialect of Lisp that’s embedded in Python.\nAuthor: Sergey Sobko \nWebsite: http://docs.hylang.org/en/stable/\nCategory: lisp\n*/\n\nfunction hy(hljs) {\n  var SYMBOLSTART = 'a-zA-Z_\\\\-!.?+*=<>&#\\'';\n  var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';\n  var keywords = {\n    $pattern: SYMBOL_RE,\n    'builtin-name':\n      // keywords\n      '!= % %= & &= * ** **= *= *map ' +\n      '+ += , --build-class-- --import-- -= . / // //= ' +\n      '/= < << <<= <= = > >= >> >>= ' +\n      '@ @= ^ ^= abs accumulate all and any ap-compose ' +\n      'ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ' +\n      'ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast ' +\n      'callable calling-module-name car case cdr chain chr coll? combinations compile ' +\n      'compress cond cons cons? continue count curry cut cycle dec ' +\n      'def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn ' +\n      'defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir ' +\n      'disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? ' +\n      'end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first ' +\n      'flatten float? fn fnc fnr for for* format fraction genexpr ' +\n      'gensym get getattr global globals group-by hasattr hash hex id ' +\n      'identity if if* if-not if-python2 import in inc input instance? ' +\n      'integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even ' +\n      'is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none ' +\n      'is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass ' +\n      'iter iterable? iterate iterator? keyword keyword? lambda last len let ' +\n      'lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all ' +\n      'map max merge-with method-decorator min multi-decorator multicombinations name neg? next ' +\n      'none? nonlocal not not-in not? nth numeric? oct odd? open ' +\n      'or ord partition permutations pos? post-route postwalk pow prewalk print ' +\n      'product profile/calls profile/cpu put-route quasiquote quote raise range read read-str ' +\n      'recursive-replace reduce remove repeat repeatedly repr require rest round route ' +\n      'route-with-methods rwm second seq set-comp setattr setv some sorted string ' +\n      'string? sum switch symbol? take take-nth take-while tee try unless ' +\n      'unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms ' +\n      'xi xor yield yield-from zero? zip zip-longest | |= ~'\n   };\n\n  var SIMPLE_NUMBER_RE = '[-+]?\\\\d+(\\\\.\\\\d+)?';\n\n  var SYMBOL = {\n    begin: SYMBOL_RE,\n    relevance: 0\n  };\n  var NUMBER = {\n    className: 'number', begin: SIMPLE_NUMBER_RE,\n    relevance: 0\n  };\n  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});\n  var COMMENT = hljs.COMMENT(\n    ';',\n    '$',\n    {\n      relevance: 0\n    }\n  );\n  var LITERAL = {\n    className: 'literal',\n    begin: /\\b([Tt]rue|[Ff]alse|nil|None)\\b/\n  };\n  var COLLECTION = {\n    begin: '[\\\\[\\\\{]', end: '[\\\\]\\\\}]'\n  };\n  var HINT = {\n    className: 'comment',\n    begin: '\\\\^' + SYMBOL_RE\n  };\n  var HINT_COL = hljs.COMMENT('\\\\^\\\\{', '\\\\}');\n  var KEY = {\n    className: 'symbol',\n    begin: '[:]{1,2}' + SYMBOL_RE\n  };\n  var LIST = {\n    begin: '\\\\(', end: '\\\\)'\n  };\n  var BODY = {\n    endsWithParent: true,\n    relevance: 0\n  };\n  var NAME = {\n    className: 'name',\n    relevance: 0,\n    keywords: keywords,\n    begin: SYMBOL_RE,\n    starts: BODY\n  };\n  var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];\n\n  LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];\n  BODY.contains = DEFAULT_CONTAINS;\n  COLLECTION.contains = DEFAULT_CONTAINS;\n\n  return {\n    name: 'Hy',\n    aliases: ['hylang'],\n    illegal: /\\S/,\n    contains: [hljs.SHEBANG(), LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]\n  };\n}\n\nmodule.exports = hy;\n","/*\nLanguage: Inform 7\nAuthor: Bruno Dias \nDescription: Language definition for Inform 7, a DSL for writing parser interactive fiction.\nWebsite: http://inform7.com\n*/\n\nfunction inform7(hljs) {\n  const START_BRACKET = '\\\\[';\n  const END_BRACKET = '\\\\]';\n  return {\n    name: 'Inform 7',\n    aliases: ['i7'],\n    case_insensitive: true,\n    keywords: {\n      // Some keywords more or less unique to I7, for relevance.\n      keyword:\n        // kind:\n        'thing room person man woman animal container ' +\n        'supporter backdrop door ' +\n        // characteristic:\n        'scenery open closed locked inside gender ' +\n        // verb:\n        'is are say understand ' +\n        // misc keyword:\n        'kind of rule'\n    },\n    contains: [\n      {\n        className: 'string',\n        begin: '\"',\n        end: '\"',\n        relevance: 0,\n        contains: [\n          {\n            className: 'subst',\n            begin: START_BRACKET,\n            end: END_BRACKET\n          }\n        ]\n      },\n      {\n        className: 'section',\n        begin: /^(Volume|Book|Part|Chapter|Section|Table)\\b/,\n        end: '$'\n      },\n      {\n        // Rule definition\n        // This is here for relevance.\n        begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\\b/,\n        end: ':',\n        contains: [\n          {\n            // Rule name\n            begin: '\\\\(This',\n            end: '\\\\)'\n          }\n        ]\n      },\n      {\n        className: 'comment',\n        begin: START_BRACKET,\n        end: END_BRACKET,\n        contains: ['self']\n      }\n    ]\n  };\n}\n\nmodule.exports = inform7;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: TOML, also INI\nDescription: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.\nContributors: Guillaume Gomez \nCategory: common, config\nWebsite: https://github.com/toml-lang/toml\n*/\n\nfunction ini(hljs) {\n  const NUMBERS = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      {\n        begin: /([+-]+)?[\\d]+_[\\d_]+/\n      },\n      {\n        begin: hljs.NUMBER_RE\n      }\n    ]\n  };\n  const COMMENTS = hljs.COMMENT();\n  COMMENTS.variants = [\n    {\n      begin: /;/,\n      end: /$/\n    },\n    {\n      begin: /#/,\n      end: /$/\n    }\n  ];\n  const VARIABLES = {\n    className: 'variable',\n    variants: [\n      {\n        begin: /\\$[\\w\\d\"][\\w\\d_]*/\n      },\n      {\n        begin: /\\$\\{(.*?)\\}/\n      }\n    ]\n  };\n  const LITERALS = {\n    className: 'literal',\n    begin: /\\bon|off|true|false|yes|no\\b/\n  };\n  const STRINGS = {\n    className: \"string\",\n    contains: [hljs.BACKSLASH_ESCAPE],\n    variants: [\n      {\n        begin: \"'''\",\n        end: \"'''\",\n        relevance: 10\n      },\n      {\n        begin: '\"\"\"',\n        end: '\"\"\"',\n        relevance: 10\n      },\n      {\n        begin: '\"',\n        end: '\"'\n      },\n      {\n        begin: \"'\",\n        end: \"'\"\n      }\n    ]\n  };\n  const ARRAY = {\n    begin: /\\[/,\n    end: /\\]/,\n    contains: [\n      COMMENTS,\n      LITERALS,\n      VARIABLES,\n      STRINGS,\n      NUMBERS,\n      'self'\n    ],\n    relevance: 0\n  };\n\n  const BARE_KEY = /[A-Za-z0-9_-]+/;\n  const QUOTED_KEY_DOUBLE_QUOTE = /\"(\\\\\"|[^\"])*\"/;\n  const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;\n  const ANY_KEY = either(\n    BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE\n  );\n  const DOTTED_KEY = concat(\n    ANY_KEY, '(\\\\s*\\\\.\\\\s*', ANY_KEY, ')*',\n    lookahead(/\\s*=\\s*[^#\\s]/)\n  );\n\n  return {\n    name: 'TOML, also INI',\n    aliases: ['toml'],\n    case_insensitive: true,\n    illegal: /\\S/,\n    contains: [\n      COMMENTS,\n      {\n        className: 'section',\n        begin: /\\[+/,\n        end: /\\]+/\n      },\n      {\n        begin: DOTTED_KEY,\n        className: 'attr',\n        starts: {\n          end: /$/,\n          contains: [\n            COMMENTS,\n            ARRAY,\n            LITERALS,\n            VARIABLES,\n            STRINGS,\n            NUMBERS\n          ]\n        }\n      }\n    ]\n  };\n}\n\nmodule.exports = ini;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: IRPF90\nAuthor: Anthony Scemama \nDescription: IRPF90 is an open-source Fortran code generator\nWebsite: http://irpf90.ups-tlse.fr\nCategory: scientific\n*/\n\n/** @type LanguageFn */\nfunction irpf90(hljs) {\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)'\n  };\n\n  // regex in both fortran and irpf90 should match\n  const OPTIONAL_NUMBER_SUFFIX = /(_[a-z_\\d]+)?/;\n  const OPTIONAL_NUMBER_EXP = /([de][+-]?\\d+)?/;\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      {\n        begin: concat(/\\b\\d+/, /\\.(\\d*)/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n      },\n      {\n        begin: concat(/\\b\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n      },\n      {\n        begin: concat(/\\.\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n      }\n    ],\n    relevance: 0\n  };\n\n  const F_KEYWORDS = {\n    literal: '.False. .True.',\n    keyword: 'kind do while private call intrinsic where elsewhere ' +\n      'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +\n      'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +\n      'goto save else use module select case ' +\n      'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +\n      'continue format pause cycle exit ' +\n      'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +\n      'synchronous nopass non_overridable pass protected volatile abstract extends import ' +\n      'non_intrinsic value deferred generic final enumerator class associate bind enum ' +\n      'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +\n      'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +\n      'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +\n      'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' +\n      'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +\n      'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +\n      'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +\n      'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +\n      'integer real character complex logical dimension allocatable|10 parameter ' +\n      'external implicit|10 none double precision assign intent optional pointer ' +\n      'target in out common equivalence data ' +\n      // IRPF90 special keywords\n      'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +\n      'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',\n    built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +\n      'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +\n      'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +\n      'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +\n      'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +\n      'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +\n      'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +\n      'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +\n      'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +\n      'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +\n      'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +\n      'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +\n      'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +\n      'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' +\n      'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +\n      'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +\n      'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +\n      'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +\n      // IRPF90 special built_ins\n      'IRP_ALIGN irp_here'\n  };\n  return {\n    name: 'IRPF90',\n    case_insensitive: true,\n    keywords: F_KEYWORDS,\n    illegal: /\\/\\*/,\n    contains: [\n      hljs.inherit(hljs.APOS_STRING_MODE, {\n        className: 'string',\n        relevance: 0\n      }),\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        className: 'string',\n        relevance: 0\n      }),\n      {\n        className: 'function',\n        beginKeywords: 'subroutine function program',\n        illegal: '[${=\\\\n]',\n        contains: [\n          hljs.UNDERSCORE_TITLE_MODE,\n          PARAMS\n        ]\n      },\n      hljs.COMMENT('!', '$', {\n        relevance: 0\n      }),\n      hljs.COMMENT('begin_doc', 'end_doc', {\n        relevance: 10\n      }),\n      NUMBER\n    ]\n  };\n}\n\nmodule.exports = irpf90;\n","/*\nLanguage: ISBL\nAuthor: Dmitriy Tarasov \nDescription: built-in language DIRECTUM\nCategory: enterprise\n*/\n\nfunction isbl(hljs) {\n  // Определение идентификаторов\n  const UNDERSCORE_IDENT_RE = \"[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*\";\n\n  // Определение имен функций\n  const FUNCTION_NAME_IDENT_RE = \"[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*\";\n\n  // keyword : ключевые слова\n  const KEYWORD =\n    \"and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока \" +\n    \"except exitfor finally foreach все if если in в not не or или try while пока \";\n\n  // SYSRES Constants\n  const sysres_constants =\n    \"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT \" +\n    \"SYSRES_CONST_ACCES_RIGHT_TYPE_FULL \" +\n    \"SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW \" +\n    \"SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_NO_ACCESS_VIEW \" +\n    \"SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_VIEW \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE \" +\n    \"SYSRES_CONST_ACCESS_TYPE_CHANGE \" +\n    \"SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE \" +\n    \"SYSRES_CONST_ACCESS_TYPE_EXISTS \" +\n    \"SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE \" +\n    \"SYSRES_CONST_ACCESS_TYPE_FULL \" +\n    \"SYSRES_CONST_ACCESS_TYPE_FULL_CODE \" +\n    \"SYSRES_CONST_ACCESS_TYPE_VIEW \" +\n    \"SYSRES_CONST_ACCESS_TYPE_VIEW_CODE \" +\n    \"SYSRES_CONST_ACTION_TYPE_ABORT \" +\n    \"SYSRES_CONST_ACTION_TYPE_ACCEPT \" +\n    \"SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS \" +\n    \"SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT \" +\n    \"SYSRES_CONST_ACTION_TYPE_CHANGE_CARD \" +\n    \"SYSRES_CONST_ACTION_TYPE_CHANGE_KIND \" +\n    \"SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE \" +\n    \"SYSRES_CONST_ACTION_TYPE_CONTINUE \" +\n    \"SYSRES_CONST_ACTION_TYPE_COPY \" +\n    \"SYSRES_CONST_ACTION_TYPE_CREATE \" +\n    \"SYSRES_CONST_ACTION_TYPE_CREATE_VERSION \" +\n    \"SYSRES_CONST_ACTION_TYPE_DELETE \" +\n    \"SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT \" +\n    \"SYSRES_CONST_ACTION_TYPE_DELETE_VERSION \" +\n    \"SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS \" +\n    \"SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS \" +\n    \"SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE \" +\n    \"SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD \" +\n    \"SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD \" +\n    \"SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK \" +\n    \"SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK \" +\n    \"SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK \" +\n    \"SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK \" +\n    \"SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE \" +\n    \"SYSRES_CONST_ACTION_TYPE_LOCK \" +\n    \"SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER \" +\n    \"SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY \" +\n    \"SYSRES_CONST_ACTION_TYPE_MARK_AS_READED \" +\n    \"SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED \" +\n    \"SYSRES_CONST_ACTION_TYPE_MODIFY \" +\n    \"SYSRES_CONST_ACTION_TYPE_MODIFY_CARD \" +\n    \"SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE \" +\n    \"SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION \" +\n    \"SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE \" +\n    \"SYSRES_CONST_ACTION_TYPE_PERFORM \" +\n    \"SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY \" +\n    \"SYSRES_CONST_ACTION_TYPE_RESTART \" +\n    \"SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE \" +\n    \"SYSRES_CONST_ACTION_TYPE_REVISION \" +\n    \"SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL \" +\n    \"SYSRES_CONST_ACTION_TYPE_SIGN \" +\n    \"SYSRES_CONST_ACTION_TYPE_START \" +\n    \"SYSRES_CONST_ACTION_TYPE_UNLOCK \" +\n    \"SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER \" +\n    \"SYSRES_CONST_ACTION_TYPE_VERSION_STATE \" +\n    \"SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY \" +\n    \"SYSRES_CONST_ACTION_TYPE_VIEW \" +\n    \"SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY \" +\n    \"SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY \" +\n    \"SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY \" +\n    \"SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE \" +\n    \"SYSRES_CONST_ADD_REFERENCE_MODE_NAME \" +\n    \"SYSRES_CONST_ADDITION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME \" +\n    \"SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE \" +\n    \"SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION \" +\n    \"SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS \" +\n    \"SYSRES_CONST_ALL_USERS_GROUP \" +\n    \"SYSRES_CONST_ALL_USERS_GROUP_NAME \" +\n    \"SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME \" +\n    \"SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE \" +\n    \"SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME \" +\n    \"SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_APPROVING_SIGNATURE_NAME \" +\n    \"SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE \" +\n    \"SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE \" +\n    \"SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN \" +\n    \"SYSRES_CONST_ATTACH_TYPE_DOC \" +\n    \"SYSRES_CONST_ATTACH_TYPE_EDOC \" +\n    \"SYSRES_CONST_ATTACH_TYPE_FOLDER \" +\n    \"SYSRES_CONST_ATTACH_TYPE_JOB \" +\n    \"SYSRES_CONST_ATTACH_TYPE_REFERENCE \" +\n    \"SYSRES_CONST_ATTACH_TYPE_TASK \" +\n    \"SYSRES_CONST_AUTH_ENCODED_PASSWORD \" +\n    \"SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE \" +\n    \"SYSRES_CONST_AUTH_NOVELL \" +\n    \"SYSRES_CONST_AUTH_PASSWORD \" +\n    \"SYSRES_CONST_AUTH_PASSWORD_CODE \" +\n    \"SYSRES_CONST_AUTH_WINDOWS \" +\n    \"SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME \" +\n    \"SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_AUTO_ENUM_METHOD_FLAG \" +\n    \"SYSRES_CONST_AUTO_NUMERATION_CODE \" +\n    \"SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG \" +\n    \"SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_USAGE_ALL \" +\n    \"SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_USAGE_SIGN \" +\n    \"SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_USAGE_WORK \" +\n    \"SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE \" +\n    \"SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE \" +\n    \"SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_BTN_PART \" +\n    \"SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE \" +\n    \"SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE \" +\n    \"SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE \" +\n    \"SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT \" +\n    \"SYSRES_CONST_CARD_PART \" +\n    \"SYSRES_CONST_CARD_REFERENCE_MODE_NAME \" +\n    \"SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE \" +\n    \"SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE \" +\n    \"SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE \" +\n    \"SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE \" +\n    \"SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE \" +\n    \"SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE \" +\n    \"SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE \" +\n    \"SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE \" +\n    \"SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE \" +\n    \"SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT \" +\n    \"SYSRES_CONST_CODE_COMPONENT_TYPE_URL \" +\n    \"SYSRES_CONST_CODE_REQUISITE_ACCESS \" +\n    \"SYSRES_CONST_CODE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_CODE_REQUISITE_COMPONENT \" +\n    \"SYSRES_CONST_CODE_REQUISITE_DESCRIPTION \" +\n    \"SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT \" +\n    \"SYSRES_CONST_CODE_REQUISITE_RECORD \" +\n    \"SYSRES_CONST_COMMENT_REQ_CODE \" +\n    \"SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_COMP_CODE_GRD \" +\n    \"SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_DOCS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_EDOCS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_OTHER \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_REFERENCES \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_REPORTS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_SCRIPTS \" +\n    \"SYSRES_CONST_COMPONENT_TYPE_URL \" +\n    \"SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE \" +\n    \"SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_CONST_FIRM_STATUS_COMMON \" +\n    \"SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL \" +\n    \"SYSRES_CONST_CONST_NEGATIVE_VALUE \" +\n    \"SYSRES_CONST_CONST_POSITIVE_VALUE \" +\n    \"SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE \" +\n    \"SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE \" +\n    \"SYSRES_CONST_CONTENTS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_DATA_TYPE_BOOLEAN \" +\n    \"SYSRES_CONST_DATA_TYPE_DATE \" +\n    \"SYSRES_CONST_DATA_TYPE_FLOAT \" +\n    \"SYSRES_CONST_DATA_TYPE_INTEGER \" +\n    \"SYSRES_CONST_DATA_TYPE_PICK \" +\n    \"SYSRES_CONST_DATA_TYPE_REFERENCE \" +\n    \"SYSRES_CONST_DATA_TYPE_STRING \" +\n    \"SYSRES_CONST_DATA_TYPE_TEXT \" +\n    \"SYSRES_CONST_DATA_TYPE_VARIANT \" +\n    \"SYSRES_CONST_DATE_CLOSE_REQ_CODE \" +\n    \"SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR \" +\n    \"SYSRES_CONST_DATE_OPEN_REQ_CODE \" +\n    \"SYSRES_CONST_DATE_REQUISITE \" +\n    \"SYSRES_CONST_DATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_DATE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_DATE_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_DATE_TYPE_CHAR \" +\n    \"SYSRES_CONST_DATETIME_FORMAT_VALUE \" +\n    \"SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE \" +\n    \"SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE \" +\n    \"SYSRES_CONST_DESCRIPTION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_DET1_PART \" +\n    \"SYSRES_CONST_DET2_PART \" +\n    \"SYSRES_CONST_DET3_PART \" +\n    \"SYSRES_CONST_DET4_PART \" +\n    \"SYSRES_CONST_DET5_PART \" +\n    \"SYSRES_CONST_DET6_PART \" +\n    \"SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE \" +\n    \"SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE \" +\n    \"SYSRES_CONST_DETAIL_REQ_CODE \" +\n    \"SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE \" +\n    \"SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME \" +\n    \"SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE \" +\n    \"SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME \" +\n    \"SYSRES_CONST_DOCUMENT_STORAGES_CODE \" +\n    \"SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME \" +\n    \"SYSRES_CONST_DOUBLE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE \" +\n    \"SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE \" +\n    \"SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE \" +\n    \"SYSRES_CONST_EDITORS_REFERENCE_CODE \" +\n    \"SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE \" +\n    \"SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE \" +\n    \"SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE \" +\n    \"SYSRES_CONST_EDOC_DATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_KIND_REFERENCE_CODE \" +\n    \"SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE \" +\n    \"SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE \" +\n    \"SYSRES_CONST_EDOC_NONE_ENCODE_CODE \" +\n    \"SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE \" +\n    \"SYSRES_CONST_EDOC_READONLY_ACCESS_CODE \" +\n    \"SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE \" +\n    \"SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE \" +\n    \"SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE \" +\n    \"SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE \" +\n    \"SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE \" +\n    \"SYSRES_CONST_EDOC_WRITE_ACCES_CODE \" +\n    \"SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE \" +\n    \"SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE \" +\n    \"SYSRES_CONST_END_DATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE \" +\n    \"SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE \" +\n    \"SYSRES_CONST_EXIST_CONST \" +\n    \"SYSRES_CONST_EXIST_VALUE \" +\n    \"SYSRES_CONST_EXPORT_LOCK_TYPE_ASK \" +\n    \"SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK \" +\n    \"SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK \" +\n    \"SYSRES_CONST_EXPORT_VERSION_TYPE_ASK \" +\n    \"SYSRES_CONST_EXPORT_VERSION_TYPE_LAST \" +\n    \"SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE \" +\n    \"SYSRES_CONST_EXTENSION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_FILTER_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_FILTER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_FILTER_TYPE_COMMON_CODE \" +\n    \"SYSRES_CONST_FILTER_TYPE_COMMON_NAME \" +\n    \"SYSRES_CONST_FILTER_TYPE_USER_CODE \" +\n    \"SYSRES_CONST_FILTER_TYPE_USER_NAME \" +\n    \"SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR \" +\n    \"SYSRES_CONST_FLOAT_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_FOLDER_AUTHOR_VALUE \" +\n    \"SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS \" +\n    \"SYSRES_CONST_FOLDER_KIND_COMPONENTS \" +\n    \"SYSRES_CONST_FOLDER_KIND_EDOCS \" +\n    \"SYSRES_CONST_FOLDER_KIND_JOBS \" +\n    \"SYSRES_CONST_FOLDER_KIND_TASKS \" +\n    \"SYSRES_CONST_FOLDER_TYPE_COMMON \" +\n    \"SYSRES_CONST_FOLDER_TYPE_COMPONENT \" +\n    \"SYSRES_CONST_FOLDER_TYPE_FAVORITES \" +\n    \"SYSRES_CONST_FOLDER_TYPE_INBOX \" +\n    \"SYSRES_CONST_FOLDER_TYPE_OUTBOX \" +\n    \"SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH \" +\n    \"SYSRES_CONST_FOLDER_TYPE_SEARCH \" +\n    \"SYSRES_CONST_FOLDER_TYPE_SHORTCUTS \" +\n    \"SYSRES_CONST_FOLDER_TYPE_USER \" +\n    \"SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG \" +\n    \"SYSRES_CONST_FULL_SUBSTITUTE_TYPE \" +\n    \"SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE \" +\n    \"SYSRES_CONST_FUNCTION_CANCEL_RESULT \" +\n    \"SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM \" +\n    \"SYSRES_CONST_FUNCTION_CATEGORY_USER \" +\n    \"SYSRES_CONST_FUNCTION_FAILURE_RESULT \" +\n    \"SYSRES_CONST_FUNCTION_SAVE_RESULT \" +\n    \"SYSRES_CONST_GENERATED_REQUISITE \" +\n    \"SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE \" +\n    \"SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE \" +\n    \"SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME \" +\n    \"SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE \" +\n    \"SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME \" +\n    \"SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE \" +\n    \"SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_GROUP_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE \" +\n    \"SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE \" +\n    \"SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE \" +\n    \"SYSRES_CONST_GROUP_USER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_GROUPS_REFERENCE_CODE \" +\n    \"SYSRES_CONST_GROUPS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_HIDDEN_MODE_NAME \" +\n    \"SYSRES_CONST_HIGH_LVL_REQUISITE_CODE \" +\n    \"SYSRES_CONST_HISTORY_ACTION_CREATE_CODE \" +\n    \"SYSRES_CONST_HISTORY_ACTION_DELETE_CODE \" +\n    \"SYSRES_CONST_HISTORY_ACTION_EDIT_CODE \" +\n    \"SYSRES_CONST_HOUR_CHAR \" +\n    \"SYSRES_CONST_ID_REQUISITE_CODE \" +\n    \"SYSRES_CONST_IDSPS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_IMAGE_MODE_COLOR \" +\n    \"SYSRES_CONST_IMAGE_MODE_GREYSCALE \" +\n    \"SYSRES_CONST_IMAGE_MODE_MONOCHROME \" +\n    \"SYSRES_CONST_IMPORTANCE_HIGH \" +\n    \"SYSRES_CONST_IMPORTANCE_LOW \" +\n    \"SYSRES_CONST_IMPORTANCE_NORMAL \" +\n    \"SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE \" +\n    \"SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE \" +\n    \"SYSRES_CONST_INT_REQUISITE \" +\n    \"SYSRES_CONST_INT_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR \" +\n    \"SYSRES_CONST_INTEGER_TYPE_CHAR \" +\n    \"SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE \" +\n    \"SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE \" +\n    \"SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE \" +\n    \"SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE \" +\n    \"SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE \" +\n    \"SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE \" +\n    \"SYSRES_CONST_JOB_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_JOB_KIND_CONTROL_JOB \" +\n    \"SYSRES_CONST_JOB_KIND_JOB \" +\n    \"SYSRES_CONST_JOB_KIND_NOTICE \" +\n    \"SYSRES_CONST_JOB_STATE_ABORTED \" +\n    \"SYSRES_CONST_JOB_STATE_COMPLETE \" +\n    \"SYSRES_CONST_JOB_STATE_WORKING \" +\n    \"SYSRES_CONST_KIND_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KIND_REQUISITE_NAME \" +\n    \"SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE \" +\n    \"SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE \" +\n    \"SYSRES_CONST_KOD_INPUT_TYPE \" +\n    \"SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_EDOC \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_FOLDER \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_JOB \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE \" +\n    \"SYSRES_CONST_LINK_OBJECT_KIND_TASK \" +\n    \"SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_LIST_REFERENCE_MODE_NAME \" +\n    \"SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE \" +\n    \"SYSRES_CONST_MAIN_VIEW_CODE \" +\n    \"SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG \" +\n    \"SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE \" +\n    \"SYSRES_CONST_MAXIMIZED_MODE_NAME \" +\n    \"SYSRES_CONST_ME_VALUE \" +\n    \"SYSRES_CONST_MESSAGE_ATTENTION_CAPTION \" +\n    \"SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION \" +\n    \"SYSRES_CONST_MESSAGE_ERROR_CAPTION \" +\n    \"SYSRES_CONST_MESSAGE_INFORMATION_CAPTION \" +\n    \"SYSRES_CONST_MINIMIZED_MODE_NAME \" +\n    \"SYSRES_CONST_MINUTE_CHAR \" +\n    \"SYSRES_CONST_MODULE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_MONTH_FORMAT_VALUE \" +\n    \"SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE \" +\n    \"SYSRES_CONST_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE \" +\n    \"SYSRES_CONST_NAMEAN_INPUT_TYPE \" +\n    \"SYSRES_CONST_NEGATIVE_PICK_VALUE \" +\n    \"SYSRES_CONST_NEGATIVE_VALUE \" +\n    \"SYSRES_CONST_NO \" +\n    \"SYSRES_CONST_NO_PICK_VALUE \" +\n    \"SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_NO_VALUE \" +\n    \"SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE \" +\n    \"SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE \" +\n    \"SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE \" +\n    \"SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE \" +\n    \"SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE \" +\n    \"SYSRES_CONST_NORMAL_MODE_NAME \" +\n    \"SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE \" +\n    \"SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME \" +\n    \"SYSRES_CONST_NOTE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_NUM_REQUISITE \" +\n    \"SYSRES_CONST_NUM_STR_REQUISITE_CODE \" +\n    \"SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG \" +\n    \"SYSRES_CONST_NUMERATION_AUTO_STRONG \" +\n    \"SYSRES_CONST_NUMERATION_FROM_DICTONARY \" +\n    \"SYSRES_CONST_NUMERATION_MANUAL \" +\n    \"SYSRES_CONST_NUMERIC_TYPE_CHAR \" +\n    \"SYSRES_CONST_NUMREQ_REQUISITE_CODE \" +\n    \"SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE \" +\n    \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE \" +\n    \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE \" +\n    \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE \" +\n    \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE \" +\n    \"SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX \" +\n    \"SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_ORIGINALREF_REQUISITE_CODE \" +\n    \"SYSRES_CONST_OURFIRM_REF_CODE \" +\n    \"SYSRES_CONST_OURFIRM_REQUISITE_CODE \" +\n    \"SYSRES_CONST_OURFIRM_VAR \" +\n    \"SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE \" +\n    \"SYSRES_CONST_PICK_NEGATIVE_RESULT \" +\n    \"SYSRES_CONST_PICK_POSITIVE_RESULT \" +\n    \"SYSRES_CONST_PICK_REQUISITE \" +\n    \"SYSRES_CONST_PICK_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_PICK_TYPE_CHAR \" +\n    \"SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_PLATFORM_VERSION_COMMENT \" +\n    \"SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_POSITIVE_PICK_VALUE \" +\n    \"SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE \" +\n    \"SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE \" +\n    \"SYSRES_CONST_PRIORITY_REQUISITE_CODE \" +\n    \"SYSRES_CONST_QUALIFIED_TASK_TYPE \" +\n    \"SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE \" +\n    \"SYSRES_CONST_RECSTAT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REF_REQUISITE \" +\n    \"SYSRES_CONST_REF_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE \" +\n    \"SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE \" +\n    \"SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE \" +\n    \"SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE \" +\n    \"SYSRES_CONST_REFERENCE_TYPE_CHAR \" +\n    \"SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING \" +\n    \"SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN \" +\n    \"SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY \" +\n    \"SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE \" +\n    \"SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL \" +\n    \"SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE \" +\n    \"SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE \" +\n    \"SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE \" +\n    \"SYSRES_CONST_REQ_MODE_AVAILABLE_CODE \" +\n    \"SYSRES_CONST_REQ_MODE_EDIT_CODE \" +\n    \"SYSRES_CONST_REQ_MODE_HIDDEN_CODE \" +\n    \"SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE \" +\n    \"SYSRES_CONST_REQ_MODE_VIEW_CODE \" +\n    \"SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REQ_SECTION_VALUE \" +\n    \"SYSRES_CONST_REQ_TYPE_VALUE \" +\n    \"SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT \" +\n    \"SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL \" +\n    \"SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME \" +\n    \"SYSRES_CONST_REQUISITE_FORMAT_LEFT \" +\n    \"SYSRES_CONST_REQUISITE_FORMAT_RIGHT \" +\n    \"SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT \" +\n    \"SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_ACTIONS \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_BUTTON \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_BUTTONS \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_CARD \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE10 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE11 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE12 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE13 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE14 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE15 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE16 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE17 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE18 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE19 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE2 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE20 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE21 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE22 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE23 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE24 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE3 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE4 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE5 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE6 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE7 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE8 \" +\n    \"SYSRES_CONST_REQUISITE_SECTION_TABLE9 \" +\n    \"SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_RIGHT_ALIGNMENT_CODE \" +\n    \"SYSRES_CONST_ROLES_REFERENCE_CODE \" +\n    \"SYSRES_CONST_ROUTE_STEP_AFTER_RUS \" +\n    \"SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS \" +\n    \"SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS \" +\n    \"SYSRES_CONST_ROUTE_TYPE_COMPLEX \" +\n    \"SYSRES_CONST_ROUTE_TYPE_PARALLEL \" +\n    \"SYSRES_CONST_ROUTE_TYPE_SERIAL \" +\n    \"SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE \" +\n    \"SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE \" +\n    \"SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE \" +\n    \"SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_SEARCHES_COMPONENT_CONTENT \" +\n    \"SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME \" +\n    \"SYSRES_CONST_SEARCHES_EDOC_CONTENT \" +\n    \"SYSRES_CONST_SEARCHES_FOLDER_CONTENT \" +\n    \"SYSRES_CONST_SEARCHES_JOB_CONTENT \" +\n    \"SYSRES_CONST_SEARCHES_REFERENCE_CODE \" +\n    \"SYSRES_CONST_SEARCHES_TASK_CONTENT \" +\n    \"SYSRES_CONST_SECOND_CHAR \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE \" +\n    \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE \" +\n    \"SYSRES_CONST_SELECT_REFERENCE_MODE_NAME \" +\n    \"SYSRES_CONST_SELECT_TYPE_SELECTABLE \" +\n    \"SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD \" +\n    \"SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD \" +\n    \"SYSRES_CONST_SELECT_TYPE_UNSLECTABLE \" +\n    \"SYSRES_CONST_SERVER_TYPE_MAIN \" +\n    \"SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE \" +\n    \"SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE \" +\n    \"SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE \" +\n    \"SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE \" +\n    \"SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE \" +\n    \"SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE \" +\n    \"SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE \" +\n    \"SYSRES_CONST_STATE_REQ_NAME \" +\n    \"SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE \" +\n    \"SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE \" +\n    \"SYSRES_CONST_STATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_STATIC_ROLE_TYPE_CODE \" +\n    \"SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE \" +\n    \"SYSRES_CONST_STATUS_VALUE_AUTOCLEANING \" +\n    \"SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE \" +\n    \"SYSRES_CONST_STATUS_VALUE_COMPLETE \" +\n    \"SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE \" +\n    \"SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE \" +\n    \"SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE \" +\n    \"SYSRES_CONST_STATUS_VALUE_RED_SQUARE \" +\n    \"SYSRES_CONST_STATUS_VALUE_SUSPEND \" +\n    \"SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE \" +\n    \"SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_STORAGE_TYPE_FILE \" +\n    \"SYSRES_CONST_STORAGE_TYPE_SQL_SERVER \" +\n    \"SYSRES_CONST_STR_REQUISITE \" +\n    \"SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE \" +\n    \"SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR \" +\n    \"SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR \" +\n    \"SYSRES_CONST_STRING_REQUISITE_CODE \" +\n    \"SYSRES_CONST_STRING_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_STRING_TYPE_CHAR \" +\n    \"SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE \" +\n    \"SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE \" +\n    \"SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE \" +\n    \"SYSRES_CONST_SYSTEM_VERSION_COMMENT \" +\n    \"SYSRES_CONST_TASK_ACCESS_TYPE_ALL \" +\n    \"SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS \" +\n    \"SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL \" +\n    \"SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION \" +\n    \"SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD \" +\n    \"SYSRES_CONST_TASK_ENCODE_TYPE_NONE \" +\n    \"SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD \" +\n    \"SYSRES_CONST_TASK_ROUTE_ALL_CONDITION \" +\n    \"SYSRES_CONST_TASK_ROUTE_AND_CONDITION \" +\n    \"SYSRES_CONST_TASK_ROUTE_OR_CONDITION \" +\n    \"SYSRES_CONST_TASK_STATE_ABORTED \" +\n    \"SYSRES_CONST_TASK_STATE_COMPLETE \" +\n    \"SYSRES_CONST_TASK_STATE_CONTINUED \" +\n    \"SYSRES_CONST_TASK_STATE_CONTROL \" +\n    \"SYSRES_CONST_TASK_STATE_INIT \" +\n    \"SYSRES_CONST_TASK_STATE_WORKING \" +\n    \"SYSRES_CONST_TASK_TITLE \" +\n    \"SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE \" +\n    \"SYSRES_CONST_TASK_TYPES_REFERENCE_CODE \" +\n    \"SYSRES_CONST_TEMPLATES_REFERENCE_CODE \" +\n    \"SYSRES_CONST_TEST_DATE_REQUISITE_NAME \" +\n    \"SYSRES_CONST_TEST_DEV_DATABASE_NAME \" +\n    \"SYSRES_CONST_TEST_DEV_SYSTEM_CODE \" +\n    \"SYSRES_CONST_TEST_EDMS_DATABASE_NAME \" +\n    \"SYSRES_CONST_TEST_EDMS_MAIN_CODE \" +\n    \"SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME \" +\n    \"SYSRES_CONST_TEST_EDMS_SECOND_CODE \" +\n    \"SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME \" +\n    \"SYSRES_CONST_TEST_EDMS_SYSTEM_CODE \" +\n    \"SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME \" +\n    \"SYSRES_CONST_TEXT_REQUISITE \" +\n    \"SYSRES_CONST_TEXT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_TEXT_REQUISITE_TYPE \" +\n    \"SYSRES_CONST_TEXT_TYPE_CHAR \" +\n    \"SYSRES_CONST_TYPE_CODE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n    \"SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE \" +\n    \"SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE \" +\n    \"SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE \" +\n    \"SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME \" +\n    \"SYSRES_CONST_USE_ACCESS_TYPE_CODE \" +\n    \"SYSRES_CONST_USE_ACCESS_TYPE_NAME \" +\n    \"SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE \" +\n    \"SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_CATEGORY_NORMAL \" +\n    \"SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_COMMON_CATEGORY \" +\n    \"SYSRES_CONST_USER_COMMON_CATEGORY_CODE \" +\n    \"SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_LOGIN_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USER_SERVICE_CATEGORY \" +\n    \"SYSRES_CONST_USER_SERVICE_CATEGORY_CODE \" +\n    \"SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE \" +\n    \"SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME \" +\n    \"SYSRES_CONST_USER_STATUS_DEVELOPER_CODE \" +\n    \"SYSRES_CONST_USER_STATUS_DEVELOPER_NAME \" +\n    \"SYSRES_CONST_USER_STATUS_DISABLED_CODE \" +\n    \"SYSRES_CONST_USER_STATUS_DISABLED_NAME \" +\n    \"SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE \" +\n    \"SYSRES_CONST_USER_STATUS_USER_CODE \" +\n    \"SYSRES_CONST_USER_STATUS_USER_NAME \" +\n    \"SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED \" +\n    \"SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER \" +\n    \"SYSRES_CONST_USER_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_REFERENCE_CODE \" +\n    \"SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME \" +\n    \"SYSRES_CONST_USERS_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE \" +\n    \"SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME \" +\n    \"SYSRES_CONST_VIEW_DEFAULT_CODE \" +\n    \"SYSRES_CONST_VIEW_DEFAULT_NAME \" +\n    \"SYSRES_CONST_VIEWER_REQUISITE_CODE \" +\n    \"SYSRES_CONST_WAITING_BLOCK_DESCRIPTION \" +\n    \"SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING  \" +\n    \"SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING \" +\n    \"SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE \" +\n    \"SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE \" +\n    \"SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE \" +\n    \"SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE \" +\n    \"SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS \" +\n    \"SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS \" +\n    \"SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD \" +\n    \"SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT \" +\n    \"SYSRES_CONST_XML_ENCODING \" +\n    \"SYSRES_CONST_XREC_STAT_REQUISITE_CODE \" +\n    \"SYSRES_CONST_XRECID_FIELD_NAME \" +\n    \"SYSRES_CONST_YES \" +\n    \"SYSRES_CONST_YES_NO_2_REQUISITE_CODE \" +\n    \"SYSRES_CONST_YES_NO_REQUISITE_CODE \" +\n    \"SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE \" +\n    \"SYSRES_CONST_YES_PICK_VALUE \" +\n    \"SYSRES_CONST_YES_VALUE \";\n\n  // Base constant\n  const base_constants = \"CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE \";\n\n  // Base group name\n  const base_group_name_constants =\n    \"ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME \";\n\n  // Decision block properties\n  const decision_block_properties_constants =\n    \"DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY \" +\n    \"DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY \";\n\n  // File extension\n  const file_extension_constants =\n    \"ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION \" +\n    \"SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION \";\n\n  // Job block properties\n  const job_block_properties_constants =\n    \"JOB_BLOCK_ABORT_DEADLINE_PROPERTY \" +\n    \"JOB_BLOCK_AFTER_FINISH_EVENT \" +\n    \"JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT \" +\n    \"JOB_BLOCK_ATTACHMENT_PROPERTY \" +\n    \"JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY \" +\n    \"JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY \" +\n    \"JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT \" +\n    \"JOB_BLOCK_BEFORE_START_EVENT \" +\n    \"JOB_BLOCK_CREATED_JOBS_PROPERTY \" +\n    \"JOB_BLOCK_DEADLINE_PROPERTY \" +\n    \"JOB_BLOCK_EXECUTION_RESULTS_PROPERTY \" +\n    \"JOB_BLOCK_IS_PARALLEL_PROPERTY \" +\n    \"JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY \" +\n    \"JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n    \"JOB_BLOCK_JOB_TEXT_PROPERTY \" +\n    \"JOB_BLOCK_NAME_PROPERTY \" +\n    \"JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY \" +\n    \"JOB_BLOCK_PERFORMER_PROPERTY \" +\n    \"JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY \" +\n    \"JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n    \"JOB_BLOCK_SUBJECT_PROPERTY \";\n\n  // Language code\n  const language_code_constants = \"ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE \";\n\n  // Launching external applications\n  const launching_external_applications_constants =\n    \"smHidden smMaximized smMinimized smNormal wmNo wmYes \";\n\n  // Link kind\n  const link_kind_constants =\n    \"COMPONENT_TOKEN_LINK_KIND \" +\n    \"DOCUMENT_LINK_KIND \" +\n    \"EDOCUMENT_LINK_KIND \" +\n    \"FOLDER_LINK_KIND \" +\n    \"JOB_LINK_KIND \" +\n    \"REFERENCE_LINK_KIND \" +\n    \"TASK_LINK_KIND \";\n\n  // Lock type\n  const lock_type_constants =\n    \"COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE \";\n\n  // Monitor block properties\n  const monitor_block_properties_constants =\n    \"MONITOR_BLOCK_AFTER_FINISH_EVENT \" +\n    \"MONITOR_BLOCK_BEFORE_START_EVENT \" +\n    \"MONITOR_BLOCK_DEADLINE_PROPERTY \" +\n    \"MONITOR_BLOCK_INTERVAL_PROPERTY \" +\n    \"MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY \" +\n    \"MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n    \"MONITOR_BLOCK_NAME_PROPERTY \" +\n    \"MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n    \"MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY \";\n\n  // Notice block properties\n  const notice_block_properties_constants =\n    \"NOTICE_BLOCK_AFTER_FINISH_EVENT \" +\n    \"NOTICE_BLOCK_ATTACHMENT_PROPERTY \" +\n    \"NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY \" +\n    \"NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY \" +\n    \"NOTICE_BLOCK_BEFORE_START_EVENT \" +\n    \"NOTICE_BLOCK_CREATED_NOTICES_PROPERTY \" +\n    \"NOTICE_BLOCK_DEADLINE_PROPERTY \" +\n    \"NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n    \"NOTICE_BLOCK_NAME_PROPERTY \" +\n    \"NOTICE_BLOCK_NOTICE_TEXT_PROPERTY \" +\n    \"NOTICE_BLOCK_PERFORMER_PROPERTY \" +\n    \"NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n    \"NOTICE_BLOCK_SUBJECT_PROPERTY \";\n\n  // Object events\n  const object_events_constants =\n    \"dseAfterCancel \" +\n    \"dseAfterClose \" +\n    \"dseAfterDelete \" +\n    \"dseAfterDeleteOutOfTransaction \" +\n    \"dseAfterInsert \" +\n    \"dseAfterOpen \" +\n    \"dseAfterScroll \" +\n    \"dseAfterUpdate \" +\n    \"dseAfterUpdateOutOfTransaction \" +\n    \"dseBeforeCancel \" +\n    \"dseBeforeClose \" +\n    \"dseBeforeDelete \" +\n    \"dseBeforeDetailUpdate \" +\n    \"dseBeforeInsert \" +\n    \"dseBeforeOpen \" +\n    \"dseBeforeUpdate \" +\n    \"dseOnAnyRequisiteChange \" +\n    \"dseOnCloseRecord \" +\n    \"dseOnDeleteError \" +\n    \"dseOnOpenRecord \" +\n    \"dseOnPrepareUpdate \" +\n    \"dseOnUpdateError \" +\n    \"dseOnUpdateRatifiedRecord \" +\n    \"dseOnValidDelete \" +\n    \"dseOnValidUpdate \" +\n    \"reOnChange \" +\n    \"reOnChangeValues \" +\n    \"SELECTION_BEGIN_ROUTE_EVENT \" +\n    \"SELECTION_END_ROUTE_EVENT \";\n\n  // Object params\n  const object_params_constants =\n    \"CURRENT_PERIOD_IS_REQUIRED \" +\n    \"PREVIOUS_CARD_TYPE_NAME \" +\n    \"SHOW_RECORD_PROPERTIES_FORM \";\n\n  // Other\n  const other_constants =\n    \"ACCESS_RIGHTS_SETTING_DIALOG_CODE \" +\n    \"ADMINISTRATOR_USER_CODE \" +\n    \"ANALYTIC_REPORT_TYPE \" +\n    \"asrtHideLocal \" +\n    \"asrtHideRemote \" +\n    \"CALCULATED_ROLE_TYPE_CODE \" +\n    \"COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE \" +\n    \"DCTS_TEST_PROTOCOLS_FOLDER_PATH \" +\n    \"E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED \" +\n    \"E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER \" +\n    \"E_EDOC_VERSION_ALREDY_SIGNED \" +\n    \"E_EDOC_VERSION_ALREDY_SIGNED_BY_USER \" +\n    \"EDOC_TYPES_CODE_REQUISITE_FIELD_NAME \" +\n    \"EDOCUMENTS_ALIAS_NAME \" +\n    \"FILES_FOLDER_PATH \" +\n    \"FILTER_OPERANDS_DELIMITER \" +\n    \"FILTER_OPERATIONS_DELIMITER \" +\n    \"FORMCARD_NAME \" +\n    \"FORMLIST_NAME \" +\n    \"GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE \" +\n    \"GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE \" +\n    \"INTEGRATED_REPORT_TYPE \" +\n    \"IS_BUILDER_APPLICATION_ROLE \" +\n    \"IS_BUILDER_APPLICATION_ROLE2 \" +\n    \"IS_BUILDER_USERS \" +\n    \"ISBSYSDEV \" +\n    \"LOG_FOLDER_PATH \" +\n    \"mbCancel \" +\n    \"mbNo \" +\n    \"mbNoToAll \" +\n    \"mbOK \" +\n    \"mbYes \" +\n    \"mbYesToAll \" +\n    \"MEMORY_DATASET_DESRIPTIONS_FILENAME \" +\n    \"mrNo \" +\n    \"mrNoToAll \" +\n    \"mrYes \" +\n    \"mrYesToAll \" +\n    \"MULTIPLE_SELECT_DIALOG_CODE \" +\n    \"NONOPERATING_RECORD_FLAG_FEMININE \" +\n    \"NONOPERATING_RECORD_FLAG_MASCULINE \" +\n    \"OPERATING_RECORD_FLAG_FEMININE \" +\n    \"OPERATING_RECORD_FLAG_MASCULINE \" +\n    \"PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE \" +\n    \"PROGRAM_INITIATED_LOOKUP_ACTION \" +\n    \"ratDelete \" +\n    \"ratEdit \" +\n    \"ratInsert \" +\n    \"REPORT_TYPE \" +\n    \"REQUIRED_PICK_VALUES_VARIABLE \" +\n    \"rmCard \" +\n    \"rmList \" +\n    \"SBRTE_PROGID_DEV \" +\n    \"SBRTE_PROGID_RELEASE \" +\n    \"STATIC_ROLE_TYPE_CODE \" +\n    \"SUPPRESS_EMPTY_TEMPLATE_CREATION \" +\n    \"SYSTEM_USER_CODE \" +\n    \"UPDATE_DIALOG_DATASET \" +\n    \"USED_IN_OBJECT_HINT_PARAM \" +\n    \"USER_INITIATED_LOOKUP_ACTION \" +\n    \"USER_NAME_FORMAT \" +\n    \"USER_SELECTION_RESTRICTIONS \" +\n    \"WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH \" +\n    \"ELS_SUBTYPE_CONTROL_NAME \" +\n    \"ELS_FOLDER_KIND_CONTROL_NAME \" +\n    \"REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME \";\n\n  // Privileges\n  const privileges_constants =\n    \"PRIVILEGE_COMPONENT_FULL_ACCESS \" +\n    \"PRIVILEGE_DEVELOPMENT_EXPORT \" +\n    \"PRIVILEGE_DEVELOPMENT_IMPORT \" +\n    \"PRIVILEGE_DOCUMENT_DELETE \" +\n    \"PRIVILEGE_ESD \" +\n    \"PRIVILEGE_FOLDER_DELETE \" +\n    \"PRIVILEGE_MANAGE_ACCESS_RIGHTS \" +\n    \"PRIVILEGE_MANAGE_REPLICATION \" +\n    \"PRIVILEGE_MANAGE_SESSION_SERVER \" +\n    \"PRIVILEGE_OBJECT_FULL_ACCESS \" +\n    \"PRIVILEGE_OBJECT_VIEW \" +\n    \"PRIVILEGE_RESERVE_LICENSE \" +\n    \"PRIVILEGE_SYSTEM_CUSTOMIZE \" +\n    \"PRIVILEGE_SYSTEM_DEVELOP \" +\n    \"PRIVILEGE_SYSTEM_INSTALL \" +\n    \"PRIVILEGE_TASK_DELETE \" +\n    \"PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE \" +\n    \"PRIVILEGES_PSEUDOREFERENCE_CODE \";\n\n  // Pseudoreference code\n  const pseudoreference_code_constants =\n    \"ACCESS_TYPES_PSEUDOREFERENCE_CODE \" +\n    \"ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE \" +\n    \"ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE \" +\n    \"ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE \" +\n    \"AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE \" +\n    \"COMPONENTS_PSEUDOREFERENCE_CODE \" +\n    \"FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE \" +\n    \"GROUPS_PSEUDOREFERENCE_CODE \" +\n    \"RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE \" +\n    \"REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE \" +\n    \"REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE \" +\n    \"REFTYPES_PSEUDOREFERENCE_CODE \" +\n    \"REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE \" +\n    \"SEND_PROTOCOL_PSEUDOREFERENCE_CODE \" +\n    \"SUBSTITUTES_PSEUDOREFERENCE_CODE \" +\n    \"SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE \" +\n    \"UNITS_PSEUDOREFERENCE_CODE \" +\n    \"USERS_PSEUDOREFERENCE_CODE \" +\n    \"VIEWERS_PSEUDOREFERENCE_CODE \";\n\n  // Requisite ISBCertificateType values\n  const requisite_ISBCertificateType_values_constants =\n    \"CERTIFICATE_TYPE_ENCRYPT \" +\n    \"CERTIFICATE_TYPE_SIGN \" +\n    \"CERTIFICATE_TYPE_SIGN_AND_ENCRYPT \";\n\n  // Requisite ISBEDocStorageType values\n  const requisite_ISBEDocStorageType_values_constants =\n    \"STORAGE_TYPE_FILE \" +\n    \"STORAGE_TYPE_NAS_CIFS \" +\n    \"STORAGE_TYPE_SAPERION \" +\n    \"STORAGE_TYPE_SQL_SERVER \";\n\n  // Requisite CompType2 values\n  const requisite_compType2_values_constants =\n    \"COMPTYPE2_REQUISITE_DOCUMENTS_VALUE \" +\n    \"COMPTYPE2_REQUISITE_TASKS_VALUE \" +\n    \"COMPTYPE2_REQUISITE_FOLDERS_VALUE \" +\n    \"COMPTYPE2_REQUISITE_REFERENCES_VALUE \";\n\n  // Requisite name\n  const requisite_name_constants =\n    \"SYSREQ_CODE \" +\n    \"SYSREQ_COMPTYPE2 \" +\n    \"SYSREQ_CONST_AVAILABLE_FOR_WEB \" +\n    \"SYSREQ_CONST_COMMON_CODE \" +\n    \"SYSREQ_CONST_COMMON_VALUE \" +\n    \"SYSREQ_CONST_FIRM_CODE \" +\n    \"SYSREQ_CONST_FIRM_STATUS \" +\n    \"SYSREQ_CONST_FIRM_VALUE \" +\n    \"SYSREQ_CONST_SERVER_STATUS \" +\n    \"SYSREQ_CONTENTS \" +\n    \"SYSREQ_DATE_OPEN \" +\n    \"SYSREQ_DATE_CLOSE \" +\n    \"SYSREQ_DESCRIPTION \" +\n    \"SYSREQ_DESCRIPTION_LOCALIZE_ID \" +\n    \"SYSREQ_DOUBLE \" +\n    \"SYSREQ_EDOC_ACCESS_TYPE \" +\n    \"SYSREQ_EDOC_AUTHOR \" +\n    \"SYSREQ_EDOC_CREATED \" +\n    \"SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE \" +\n    \"SYSREQ_EDOC_EDITOR \" +\n    \"SYSREQ_EDOC_ENCODE_TYPE \" +\n    \"SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME \" +\n    \"SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION \" +\n    \"SYSREQ_EDOC_EXPORT_DATE \" +\n    \"SYSREQ_EDOC_EXPORTER \" +\n    \"SYSREQ_EDOC_KIND \" +\n    \"SYSREQ_EDOC_LIFE_STAGE_NAME \" +\n    \"SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE \" +\n    \"SYSREQ_EDOC_MODIFIED \" +\n    \"SYSREQ_EDOC_NAME \" +\n    \"SYSREQ_EDOC_NOTE \" +\n    \"SYSREQ_EDOC_QUALIFIED_ID \" +\n    \"SYSREQ_EDOC_SESSION_KEY \" +\n    \"SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME \" +\n    \"SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION \" +\n    \"SYSREQ_EDOC_SIGNATURE_TYPE \" +\n    \"SYSREQ_EDOC_SIGNED \" +\n    \"SYSREQ_EDOC_STORAGE \" +\n    \"SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE \" +\n    \"SYSREQ_EDOC_STORAGES_CHECK_RIGHTS \" +\n    \"SYSREQ_EDOC_STORAGES_COMPUTER_NAME \" +\n    \"SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE \" +\n    \"SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE \" +\n    \"SYSREQ_EDOC_STORAGES_FUNCTION \" +\n    \"SYSREQ_EDOC_STORAGES_INITIALIZED \" +\n    \"SYSREQ_EDOC_STORAGES_LOCAL_PATH \" +\n    \"SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME \" +\n    \"SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT \" +\n    \"SYSREQ_EDOC_STORAGES_SERVER_NAME \" +\n    \"SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME \" +\n    \"SYSREQ_EDOC_STORAGES_TYPE \" +\n    \"SYSREQ_EDOC_TEXT_MODIFIED \" +\n    \"SYSREQ_EDOC_TYPE_ACT_CODE \" +\n    \"SYSREQ_EDOC_TYPE_ACT_DESCRIPTION \" +\n    \"SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID \" +\n    \"SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE \" +\n    \"SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS \" +\n    \"SYSREQ_EDOC_TYPE_ACT_SECTION \" +\n    \"SYSREQ_EDOC_TYPE_ADD_PARAMS \" +\n    \"SYSREQ_EDOC_TYPE_COMMENT \" +\n    \"SYSREQ_EDOC_TYPE_EVENT_TEXT \" +\n    \"SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR \" +\n    \"SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID \" +\n    \"SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID \" +\n    \"SYSREQ_EDOC_TYPE_NUMERATION_METHOD \" +\n    \"SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE \" +\n    \"SYSREQ_EDOC_TYPE_REQ_CODE \" +\n    \"SYSREQ_EDOC_TYPE_REQ_DESCRIPTION \" +\n    \"SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID \" +\n    \"SYSREQ_EDOC_TYPE_REQ_IS_LEADING \" +\n    \"SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED \" +\n    \"SYSREQ_EDOC_TYPE_REQ_NUMBER \" +\n    \"SYSREQ_EDOC_TYPE_REQ_ON_CHANGE \" +\n    \"SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS \" +\n    \"SYSREQ_EDOC_TYPE_REQ_ON_SELECT \" +\n    \"SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND \" +\n    \"SYSREQ_EDOC_TYPE_REQ_SECTION \" +\n    \"SYSREQ_EDOC_TYPE_VIEW_CARD \" +\n    \"SYSREQ_EDOC_TYPE_VIEW_CODE \" +\n    \"SYSREQ_EDOC_TYPE_VIEW_COMMENT \" +\n    \"SYSREQ_EDOC_TYPE_VIEW_IS_MAIN \" +\n    \"SYSREQ_EDOC_TYPE_VIEW_NAME \" +\n    \"SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID \" +\n    \"SYSREQ_EDOC_VERSION_AUTHOR \" +\n    \"SYSREQ_EDOC_VERSION_CRC \" +\n    \"SYSREQ_EDOC_VERSION_DATA \" +\n    \"SYSREQ_EDOC_VERSION_EDITOR \" +\n    \"SYSREQ_EDOC_VERSION_EXPORT_DATE \" +\n    \"SYSREQ_EDOC_VERSION_EXPORTER \" +\n    \"SYSREQ_EDOC_VERSION_HIDDEN \" +\n    \"SYSREQ_EDOC_VERSION_LIFE_STAGE \" +\n    \"SYSREQ_EDOC_VERSION_MODIFIED \" +\n    \"SYSREQ_EDOC_VERSION_NOTE \" +\n    \"SYSREQ_EDOC_VERSION_SIGNATURE_TYPE \" +\n    \"SYSREQ_EDOC_VERSION_SIGNED \" +\n    \"SYSREQ_EDOC_VERSION_SIZE \" +\n    \"SYSREQ_EDOC_VERSION_SOURCE \" +\n    \"SYSREQ_EDOC_VERSION_TEXT_MODIFIED \" +\n    \"SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE \" +\n    \"SYSREQ_FOLDER_KIND \" +\n    \"SYSREQ_FUNC_CATEGORY \" +\n    \"SYSREQ_FUNC_COMMENT \" +\n    \"SYSREQ_FUNC_GROUP \" +\n    \"SYSREQ_FUNC_GROUP_COMMENT \" +\n    \"SYSREQ_FUNC_GROUP_NUMBER \" +\n    \"SYSREQ_FUNC_HELP \" +\n    \"SYSREQ_FUNC_PARAM_DEF_VALUE \" +\n    \"SYSREQ_FUNC_PARAM_IDENT \" +\n    \"SYSREQ_FUNC_PARAM_NUMBER \" +\n    \"SYSREQ_FUNC_PARAM_TYPE \" +\n    \"SYSREQ_FUNC_TEXT \" +\n    \"SYSREQ_GROUP_CATEGORY \" +\n    \"SYSREQ_ID \" +\n    \"SYSREQ_LAST_UPDATE \" +\n    \"SYSREQ_LEADER_REFERENCE \" +\n    \"SYSREQ_LINE_NUMBER \" +\n    \"SYSREQ_MAIN_RECORD_ID \" +\n    \"SYSREQ_NAME \" +\n    \"SYSREQ_NAME_LOCALIZE_ID \" +\n    \"SYSREQ_NOTE \" +\n    \"SYSREQ_ORIGINAL_RECORD \" +\n    \"SYSREQ_OUR_FIRM \" +\n    \"SYSREQ_PROFILING_SETTINGS_BATCH_LOGING \" +\n    \"SYSREQ_PROFILING_SETTINGS_BATCH_SIZE \" +\n    \"SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED \" +\n    \"SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED \" +\n    \"SYSREQ_PROFILING_SETTINGS_START_LOGGED \" +\n    \"SYSREQ_RECORD_STATUS \" +\n    \"SYSREQ_REF_REQ_FIELD_NAME \" +\n    \"SYSREQ_REF_REQ_FORMAT \" +\n    \"SYSREQ_REF_REQ_GENERATED \" +\n    \"SYSREQ_REF_REQ_LENGTH \" +\n    \"SYSREQ_REF_REQ_PRECISION \" +\n    \"SYSREQ_REF_REQ_REFERENCE \" +\n    \"SYSREQ_REF_REQ_SECTION \" +\n    \"SYSREQ_REF_REQ_STORED \" +\n    \"SYSREQ_REF_REQ_TOKENS \" +\n    \"SYSREQ_REF_REQ_TYPE \" +\n    \"SYSREQ_REF_REQ_VIEW \" +\n    \"SYSREQ_REF_TYPE_ACT_CODE \" +\n    \"SYSREQ_REF_TYPE_ACT_DESCRIPTION \" +\n    \"SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID \" +\n    \"SYSREQ_REF_TYPE_ACT_ON_EXECUTE \" +\n    \"SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS \" +\n    \"SYSREQ_REF_TYPE_ACT_SECTION \" +\n    \"SYSREQ_REF_TYPE_ADD_PARAMS \" +\n    \"SYSREQ_REF_TYPE_COMMENT \" +\n    \"SYSREQ_REF_TYPE_COMMON_SETTINGS \" +\n    \"SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME \" +\n    \"SYSREQ_REF_TYPE_EVENT_TEXT \" +\n    \"SYSREQ_REF_TYPE_MAIN_LEADING_REF \" +\n    \"SYSREQ_REF_TYPE_NAME_IN_SINGULAR \" +\n    \"SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID \" +\n    \"SYSREQ_REF_TYPE_NAME_LOCALIZE_ID \" +\n    \"SYSREQ_REF_TYPE_NUMERATION_METHOD \" +\n    \"SYSREQ_REF_TYPE_REQ_CODE \" +\n    \"SYSREQ_REF_TYPE_REQ_DESCRIPTION \" +\n    \"SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID \" +\n    \"SYSREQ_REF_TYPE_REQ_IS_CONTROL \" +\n    \"SYSREQ_REF_TYPE_REQ_IS_FILTER \" +\n    \"SYSREQ_REF_TYPE_REQ_IS_LEADING \" +\n    \"SYSREQ_REF_TYPE_REQ_IS_REQUIRED \" +\n    \"SYSREQ_REF_TYPE_REQ_NUMBER \" +\n    \"SYSREQ_REF_TYPE_REQ_ON_CHANGE \" +\n    \"SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS \" +\n    \"SYSREQ_REF_TYPE_REQ_ON_SELECT \" +\n    \"SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND \" +\n    \"SYSREQ_REF_TYPE_REQ_SECTION \" +\n    \"SYSREQ_REF_TYPE_VIEW_CARD \" +\n    \"SYSREQ_REF_TYPE_VIEW_CODE \" +\n    \"SYSREQ_REF_TYPE_VIEW_COMMENT \" +\n    \"SYSREQ_REF_TYPE_VIEW_IS_MAIN \" +\n    \"SYSREQ_REF_TYPE_VIEW_NAME \" +\n    \"SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID \" +\n    \"SYSREQ_REFERENCE_TYPE_ID \" +\n    \"SYSREQ_STATE \" +\n    \"SYSREQ_STATЕ \" +\n    \"SYSREQ_SYSTEM_SETTINGS_VALUE \" +\n    \"SYSREQ_TYPE \" +\n    \"SYSREQ_UNIT \" +\n    \"SYSREQ_UNIT_ID \" +\n    \"SYSREQ_USER_GROUPS_GROUP_FULL_NAME \" +\n    \"SYSREQ_USER_GROUPS_GROUP_NAME \" +\n    \"SYSREQ_USER_GROUPS_GROUP_SERVER_NAME \" +\n    \"SYSREQ_USERS_ACCESS_RIGHTS \" +\n    \"SYSREQ_USERS_AUTHENTICATION \" +\n    \"SYSREQ_USERS_CATEGORY \" +\n    \"SYSREQ_USERS_COMPONENT \" +\n    \"SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC \" +\n    \"SYSREQ_USERS_DOMAIN \" +\n    \"SYSREQ_USERS_FULL_USER_NAME \" +\n    \"SYSREQ_USERS_GROUP \" +\n    \"SYSREQ_USERS_IS_MAIN_SERVER \" +\n    \"SYSREQ_USERS_LOGIN \" +\n    \"SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC \" +\n    \"SYSREQ_USERS_STATUS \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE_INFO \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE_STATE \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME \" +\n    \"SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT \" +\n    \"SYSREQ_USERS_USER_DEFAULT_CERTIFICATE \" +\n    \"SYSREQ_USERS_USER_DESCRIPTION \" +\n    \"SYSREQ_USERS_USER_GLOBAL_NAME \" +\n    \"SYSREQ_USERS_USER_LOGIN \" +\n    \"SYSREQ_USERS_USER_MAIN_SERVER \" +\n    \"SYSREQ_USERS_USER_TYPE \" +\n    \"SYSREQ_WORK_RULES_FOLDER_ID \";\n\n  // Result\n  const result_constants = \"RESULT_VAR_NAME RESULT_VAR_NAME_ENG \";\n\n  // Rule identification\n  const rule_identification_constants =\n    \"AUTO_NUMERATION_RULE_ID \" +\n    \"CANT_CHANGE_ID_REQUISITE_RULE_ID \" +\n    \"CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID \" +\n    \"CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID \" +\n    \"CHECK_CODE_REQUISITE_RULE_ID \" +\n    \"CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID \" +\n    \"CHECK_FILTRATER_CHANGES_RULE_ID \" +\n    \"CHECK_RECORD_INTERVAL_RULE_ID \" +\n    \"CHECK_REFERENCE_INTERVAL_RULE_ID \" +\n    \"CHECK_REQUIRED_DATA_FULLNESS_RULE_ID \" +\n    \"CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID \" +\n    \"MAKE_RECORD_UNRATIFIED_RULE_ID \" +\n    \"RESTORE_AUTO_NUMERATION_RULE_ID \" +\n    \"SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID \" +\n    \"SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID \" +\n    \"SET_IDSPS_VALUE_RULE_ID \" +\n    \"SET_NEXT_CODE_VALUE_RULE_ID \" +\n    \"SET_OURFIRM_BOUNDS_RULE_ID \" +\n    \"SET_OURFIRM_REQUISITE_RULE_ID \";\n\n  // Script block properties\n  const script_block_properties_constants =\n    \"SCRIPT_BLOCK_AFTER_FINISH_EVENT \" +\n    \"SCRIPT_BLOCK_BEFORE_START_EVENT \" +\n    \"SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY \" +\n    \"SCRIPT_BLOCK_NAME_PROPERTY \" +\n    \"SCRIPT_BLOCK_SCRIPT_PROPERTY \";\n\n  // Subtask block properties\n  const subtask_block_properties_constants =\n    \"SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY \" +\n    \"SUBTASK_BLOCK_AFTER_FINISH_EVENT \" +\n    \"SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT \" +\n    \"SUBTASK_BLOCK_ATTACHMENTS_PROPERTY \" +\n    \"SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY \" +\n    \"SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY \" +\n    \"SUBTASK_BLOCK_BEFORE_START_EVENT \" +\n    \"SUBTASK_BLOCK_CREATED_TASK_PROPERTY \" +\n    \"SUBTASK_BLOCK_CREATION_EVENT \" +\n    \"SUBTASK_BLOCK_DEADLINE_PROPERTY \" +\n    \"SUBTASK_BLOCK_IMPORTANCE_PROPERTY \" +\n    \"SUBTASK_BLOCK_INITIATOR_PROPERTY \" +\n    \"SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY \" +\n    \"SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n    \"SUBTASK_BLOCK_JOBS_TYPE_PROPERTY \" +\n    \"SUBTASK_BLOCK_NAME_PROPERTY \" +\n    \"SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY \" +\n    \"SUBTASK_BLOCK_PERFORMERS_PROPERTY \" +\n    \"SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY \" +\n    \"SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n    \"SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY \" +\n    \"SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY \" +\n    \"SUBTASK_BLOCK_START_EVENT \" +\n    \"SUBTASK_BLOCK_STEP_CONTROL_PROPERTY \" +\n    \"SUBTASK_BLOCK_SUBJECT_PROPERTY \" +\n    \"SUBTASK_BLOCK_TASK_CONTROL_PROPERTY \" +\n    \"SUBTASK_BLOCK_TEXT_PROPERTY \" +\n    \"SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY \" +\n    \"SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY \" +\n    \"SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY \";\n\n  // System component\n  const system_component_constants =\n    \"SYSCOMP_CONTROL_JOBS \" +\n    \"SYSCOMP_FOLDERS \" +\n    \"SYSCOMP_JOBS \" +\n    \"SYSCOMP_NOTICES \" +\n    \"SYSCOMP_TASKS \";\n\n  // System dialogs\n  const system_dialogs_constants =\n    \"SYSDLG_CREATE_EDOCUMENT \" +\n    \"SYSDLG_CREATE_EDOCUMENT_VERSION \" +\n    \"SYSDLG_CURRENT_PERIOD \" +\n    \"SYSDLG_EDIT_FUNCTION_HELP \" +\n    \"SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE \" +\n    \"SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS \" +\n    \"SYSDLG_EXPORT_SINGLE_EDOCUMENT \" +\n    \"SYSDLG_IMPORT_EDOCUMENT \" +\n    \"SYSDLG_MULTIPLE_SELECT \" +\n    \"SYSDLG_SETUP_ACCESS_RIGHTS \" +\n    \"SYSDLG_SETUP_DEFAULT_RIGHTS \" +\n    \"SYSDLG_SETUP_FILTER_CONDITION \" +\n    \"SYSDLG_SETUP_SIGN_RIGHTS \" +\n    \"SYSDLG_SETUP_TASK_OBSERVERS \" +\n    \"SYSDLG_SETUP_TASK_ROUTE \" +\n    \"SYSDLG_SETUP_USERS_LIST \" +\n    \"SYSDLG_SIGN_EDOCUMENT \" +\n    \"SYSDLG_SIGN_MULTIPLE_EDOCUMENTS \";\n\n  // System reference names\n  const system_reference_names_constants =\n    \"SYSREF_ACCESS_RIGHTS_TYPES \" +\n    \"SYSREF_ADMINISTRATION_HISTORY \" +\n    \"SYSREF_ALL_AVAILABLE_COMPONENTS \" +\n    \"SYSREF_ALL_AVAILABLE_PRIVILEGES \" +\n    \"SYSREF_ALL_REPLICATING_COMPONENTS \" +\n    \"SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS \" +\n    \"SYSREF_CALENDAR_EVENTS \" +\n    \"SYSREF_COMPONENT_TOKEN_HISTORY \" +\n    \"SYSREF_COMPONENT_TOKENS \" +\n    \"SYSREF_COMPONENTS \" +\n    \"SYSREF_CONSTANTS \" +\n    \"SYSREF_DATA_RECEIVE_PROTOCOL \" +\n    \"SYSREF_DATA_SEND_PROTOCOL \" +\n    \"SYSREF_DIALOGS \" +\n    \"SYSREF_DIALOGS_REQUISITES \" +\n    \"SYSREF_EDITORS \" +\n    \"SYSREF_EDOC_CARDS \" +\n    \"SYSREF_EDOC_TYPES \" +\n    \"SYSREF_EDOCUMENT_CARD_REQUISITES \" +\n    \"SYSREF_EDOCUMENT_CARD_TYPES \" +\n    \"SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE \" +\n    \"SYSREF_EDOCUMENT_CARDS \" +\n    \"SYSREF_EDOCUMENT_HISTORY \" +\n    \"SYSREF_EDOCUMENT_KINDS \" +\n    \"SYSREF_EDOCUMENT_REQUISITES \" +\n    \"SYSREF_EDOCUMENT_SIGNATURES \" +\n    \"SYSREF_EDOCUMENT_TEMPLATES \" +\n    \"SYSREF_EDOCUMENT_TEXT_STORAGES \" +\n    \"SYSREF_EDOCUMENT_VIEWS \" +\n    \"SYSREF_FILTERER_SETUP_CONFLICTS \" +\n    \"SYSREF_FILTRATER_SETTING_CONFLICTS \" +\n    \"SYSREF_FOLDER_HISTORY \" +\n    \"SYSREF_FOLDERS \" +\n    \"SYSREF_FUNCTION_GROUPS \" +\n    \"SYSREF_FUNCTION_PARAMS \" +\n    \"SYSREF_FUNCTIONS \" +\n    \"SYSREF_JOB_HISTORY \" +\n    \"SYSREF_LINKS \" +\n    \"SYSREF_LOCALIZATION_DICTIONARY \" +\n    \"SYSREF_LOCALIZATION_LANGUAGES \" +\n    \"SYSREF_MODULES \" +\n    \"SYSREF_PRIVILEGES \" +\n    \"SYSREF_RECORD_HISTORY \" +\n    \"SYSREF_REFERENCE_REQUISITES \" +\n    \"SYSREF_REFERENCE_TYPE_VIEWS \" +\n    \"SYSREF_REFERENCE_TYPES \" +\n    \"SYSREF_REFERENCES \" +\n    \"SYSREF_REFERENCES_REQUISITES \" +\n    \"SYSREF_REMOTE_SERVERS \" +\n    \"SYSREF_REPLICATION_SESSIONS_LOG \" +\n    \"SYSREF_REPLICATION_SESSIONS_PROTOCOL \" +\n    \"SYSREF_REPORTS \" +\n    \"SYSREF_ROLES \" +\n    \"SYSREF_ROUTE_BLOCK_GROUPS \" +\n    \"SYSREF_ROUTE_BLOCKS \" +\n    \"SYSREF_SCRIPTS \" +\n    \"SYSREF_SEARCHES \" +\n    \"SYSREF_SERVER_EVENTS \" +\n    \"SYSREF_SERVER_EVENTS_HISTORY \" +\n    \"SYSREF_STANDARD_ROUTE_GROUPS \" +\n    \"SYSREF_STANDARD_ROUTES \" +\n    \"SYSREF_STATUSES \" +\n    \"SYSREF_SYSTEM_SETTINGS \" +\n    \"SYSREF_TASK_HISTORY \" +\n    \"SYSREF_TASK_KIND_GROUPS \" +\n    \"SYSREF_TASK_KINDS \" +\n    \"SYSREF_TASK_RIGHTS \" +\n    \"SYSREF_TASK_SIGNATURES \" +\n    \"SYSREF_TASKS \" +\n    \"SYSREF_UNITS \" +\n    \"SYSREF_USER_GROUPS \" +\n    \"SYSREF_USER_GROUPS_REFERENCE \" +\n    \"SYSREF_USER_SUBSTITUTION \" +\n    \"SYSREF_USERS \" +\n    \"SYSREF_USERS_REFERENCE \" +\n    \"SYSREF_VIEWERS \" +\n    \"SYSREF_WORKING_TIME_CALENDARS \";\n\n  // Table name\n  const table_name_constants =\n    \"ACCESS_RIGHTS_TABLE_NAME \" +\n    \"EDMS_ACCESS_TABLE_NAME \" +\n    \"EDOC_TYPES_TABLE_NAME \";\n\n  // Test\n  const test_constants =\n    \"TEST_DEV_DB_NAME \" +\n    \"TEST_DEV_SYSTEM_CODE \" +\n    \"TEST_EDMS_DB_NAME \" +\n    \"TEST_EDMS_MAIN_CODE \" +\n    \"TEST_EDMS_MAIN_DB_NAME \" +\n    \"TEST_EDMS_SECOND_CODE \" +\n    \"TEST_EDMS_SECOND_DB_NAME \" +\n    \"TEST_EDMS_SYSTEM_CODE \" +\n    \"TEST_ISB5_MAIN_CODE \" +\n    \"TEST_ISB5_SECOND_CODE \" +\n    \"TEST_SQL_SERVER_2005_NAME \" +\n    \"TEST_SQL_SERVER_NAME \";\n\n  // Using the dialog windows\n  const using_the_dialog_windows_constants =\n    \"ATTENTION_CAPTION \" +\n    \"cbsCommandLinks \" +\n    \"cbsDefault \" +\n    \"CONFIRMATION_CAPTION \" +\n    \"ERROR_CAPTION \" +\n    \"INFORMATION_CAPTION \" +\n    \"mrCancel \" +\n    \"mrOk \";\n\n  // Using the document\n  const using_the_document_constants =\n    \"EDOC_VERSION_ACTIVE_STAGE_CODE \" +\n    \"EDOC_VERSION_DESIGN_STAGE_CODE \" +\n    \"EDOC_VERSION_OBSOLETE_STAGE_CODE \";\n\n  // Using the EA and encryption\n  const using_the_EA_and_encryption_constants =\n    \"cpDataEnciphermentEnabled \" +\n    \"cpDigitalSignatureEnabled \" +\n    \"cpID \" +\n    \"cpIssuer \" +\n    \"cpPluginVersion \" +\n    \"cpSerial \" +\n    \"cpSubjectName \" +\n    \"cpSubjSimpleName \" +\n    \"cpValidFromDate \" +\n    \"cpValidToDate \";\n\n  // Using the ISBL-editor\n  const using_the_ISBL_editor_constants =\n    \"ISBL_SYNTAX \" + \"NO_SYNTAX \" + \"XML_SYNTAX \";\n\n  // Wait block properties\n  const wait_block_properties_constants =\n    \"WAIT_BLOCK_AFTER_FINISH_EVENT \" +\n    \"WAIT_BLOCK_BEFORE_START_EVENT \" +\n    \"WAIT_BLOCK_DEADLINE_PROPERTY \" +\n    \"WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n    \"WAIT_BLOCK_NAME_PROPERTY \" +\n    \"WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \";\n\n  // SYSRES Common\n  const sysres_common_constants =\n    \"SYSRES_COMMON \" +\n    \"SYSRES_CONST \" +\n    \"SYSRES_MBFUNC \" +\n    \"SYSRES_SBDATA \" +\n    \"SYSRES_SBGUI \" +\n    \"SYSRES_SBINTF \" +\n    \"SYSRES_SBREFDSC \" +\n    \"SYSRES_SQLERRORS \" +\n    \"SYSRES_SYSCOMP \";\n\n  // Константы ==> built_in\n  const CONSTANTS =\n    sysres_constants +\n    base_constants +\n    base_group_name_constants +\n    decision_block_properties_constants +\n    file_extension_constants +\n    job_block_properties_constants +\n    language_code_constants +\n    launching_external_applications_constants +\n    link_kind_constants +\n    lock_type_constants +\n    monitor_block_properties_constants +\n    notice_block_properties_constants +\n    object_events_constants +\n    object_params_constants +\n    other_constants +\n    privileges_constants +\n    pseudoreference_code_constants +\n    requisite_ISBCertificateType_values_constants +\n    requisite_ISBEDocStorageType_values_constants +\n    requisite_compType2_values_constants +\n    requisite_name_constants +\n    result_constants +\n    rule_identification_constants +\n    script_block_properties_constants +\n    subtask_block_properties_constants +\n    system_component_constants +\n    system_dialogs_constants +\n    system_reference_names_constants +\n    table_name_constants +\n    test_constants +\n    using_the_dialog_windows_constants +\n    using_the_document_constants +\n    using_the_EA_and_encryption_constants +\n    using_the_ISBL_editor_constants +\n    wait_block_properties_constants +\n    sysres_common_constants;\n\n  // enum TAccountType\n  const TAccountType = \"atUser atGroup atRole \";\n\n  // enum TActionEnabledMode\n  const TActionEnabledMode =\n    \"aemEnabledAlways \" +\n    \"aemDisabledAlways \" +\n    \"aemEnabledOnBrowse \" +\n    \"aemEnabledOnEdit \" +\n    \"aemDisabledOnBrowseEmpty \";\n\n  // enum TAddPosition\n  const TAddPosition = \"apBegin apEnd \";\n\n  // enum TAlignment\n  const TAlignment = \"alLeft alRight \";\n\n  // enum TAreaShowMode\n  const TAreaShowMode =\n    \"asmNever \" +\n    \"asmNoButCustomize \" +\n    \"asmAsLastTime \" +\n    \"asmYesButCustomize \" +\n    \"asmAlways \";\n\n  // enum TCertificateInvalidationReason\n  const TCertificateInvalidationReason = \"cirCommon cirRevoked \";\n\n  // enum TCertificateType\n  const TCertificateType = \"ctSignature ctEncode ctSignatureEncode \";\n\n  // enum TCheckListBoxItemState\n  const TCheckListBoxItemState = \"clbUnchecked clbChecked clbGrayed \";\n\n  // enum TCloseOnEsc\n  const TCloseOnEsc = \"ceISB ceAlways ceNever \";\n\n  // enum TCompType\n  const TCompType =\n    \"ctDocument \" +\n    \"ctReference \" +\n    \"ctScript \" +\n    \"ctUnknown \" +\n    \"ctReport \" +\n    \"ctDialog \" +\n    \"ctFunction \" +\n    \"ctFolder \" +\n    \"ctEDocument \" +\n    \"ctTask \" +\n    \"ctJob \" +\n    \"ctNotice \" +\n    \"ctControlJob \";\n\n  // enum TConditionFormat\n  const TConditionFormat = \"cfInternal cfDisplay \";\n\n  // enum TConnectionIntent\n  const TConnectionIntent = \"ciUnspecified ciWrite ciRead \";\n\n  // enum TContentKind\n  const TContentKind =\n    \"ckFolder \" +\n    \"ckEDocument \" +\n    \"ckTask \" +\n    \"ckJob \" +\n    \"ckComponentToken \" +\n    \"ckAny \" +\n    \"ckReference \" +\n    \"ckScript \" +\n    \"ckReport \" +\n    \"ckDialog \";\n\n  // enum TControlType\n  const TControlType =\n    \"ctISBLEditor \" +\n    \"ctBevel \" +\n    \"ctButton \" +\n    \"ctCheckListBox \" +\n    \"ctComboBox \" +\n    \"ctComboEdit \" +\n    \"ctGrid \" +\n    \"ctDBCheckBox \" +\n    \"ctDBComboBox \" +\n    \"ctDBEdit \" +\n    \"ctDBEllipsis \" +\n    \"ctDBMemo \" +\n    \"ctDBNavigator \" +\n    \"ctDBRadioGroup \" +\n    \"ctDBStatusLabel \" +\n    \"ctEdit \" +\n    \"ctGroupBox \" +\n    \"ctInplaceHint \" +\n    \"ctMemo \" +\n    \"ctPanel \" +\n    \"ctListBox \" +\n    \"ctRadioButton \" +\n    \"ctRichEdit \" +\n    \"ctTabSheet \" +\n    \"ctWebBrowser \" +\n    \"ctImage \" +\n    \"ctHyperLink \" +\n    \"ctLabel \" +\n    \"ctDBMultiEllipsis \" +\n    \"ctRibbon \" +\n    \"ctRichView \" +\n    \"ctInnerPanel \" +\n    \"ctPanelGroup \" +\n    \"ctBitButton \";\n\n  // enum TCriterionContentType\n  const TCriterionContentType =\n    \"cctDate \" +\n    \"cctInteger \" +\n    \"cctNumeric \" +\n    \"cctPick \" +\n    \"cctReference \" +\n    \"cctString \" +\n    \"cctText \";\n\n  // enum TCultureType\n  const TCultureType = \"cltInternal cltPrimary cltGUI \";\n\n  // enum TDataSetEventType\n  const TDataSetEventType =\n    \"dseBeforeOpen \" +\n    \"dseAfterOpen \" +\n    \"dseBeforeClose \" +\n    \"dseAfterClose \" +\n    \"dseOnValidDelete \" +\n    \"dseBeforeDelete \" +\n    \"dseAfterDelete \" +\n    \"dseAfterDeleteOutOfTransaction \" +\n    \"dseOnDeleteError \" +\n    \"dseBeforeInsert \" +\n    \"dseAfterInsert \" +\n    \"dseOnValidUpdate \" +\n    \"dseBeforeUpdate \" +\n    \"dseOnUpdateRatifiedRecord \" +\n    \"dseAfterUpdate \" +\n    \"dseAfterUpdateOutOfTransaction \" +\n    \"dseOnUpdateError \" +\n    \"dseAfterScroll \" +\n    \"dseOnOpenRecord \" +\n    \"dseOnCloseRecord \" +\n    \"dseBeforeCancel \" +\n    \"dseAfterCancel \" +\n    \"dseOnUpdateDeadlockError \" +\n    \"dseBeforeDetailUpdate \" +\n    \"dseOnPrepareUpdate \" +\n    \"dseOnAnyRequisiteChange \";\n\n  // enum TDataSetState\n  const TDataSetState = \"dssEdit dssInsert dssBrowse dssInActive \";\n\n  // enum TDateFormatType\n  const TDateFormatType = \"dftDate dftShortDate dftDateTime dftTimeStamp \";\n\n  // enum TDateOffsetType\n  const TDateOffsetType = \"dotDays dotHours dotMinutes dotSeconds \";\n\n  // enum TDateTimeKind\n  const TDateTimeKind = \"dtkndLocal dtkndUTC \";\n\n  // enum TDeaAccessRights\n  const TDeaAccessRights = \"arNone arView arEdit arFull \";\n\n  // enum TDocumentDefaultAction\n  const TDocumentDefaultAction = \"ddaView ddaEdit \";\n\n  // enum TEditMode\n  const TEditMode =\n    \"emLock \" +\n    \"emEdit \" +\n    \"emSign \" +\n    \"emExportWithLock \" +\n    \"emImportWithUnlock \" +\n    \"emChangeVersionNote \" +\n    \"emOpenForModify \" +\n    \"emChangeLifeStage \" +\n    \"emDelete \" +\n    \"emCreateVersion \" +\n    \"emImport \" +\n    \"emUnlockExportedWithLock \" +\n    \"emStart \" +\n    \"emAbort \" +\n    \"emReInit \" +\n    \"emMarkAsReaded \" +\n    \"emMarkAsUnreaded \" +\n    \"emPerform \" +\n    \"emAccept \" +\n    \"emResume \" +\n    \"emChangeRights \" +\n    \"emEditRoute \" +\n    \"emEditObserver \" +\n    \"emRecoveryFromLocalCopy \" +\n    \"emChangeWorkAccessType \" +\n    \"emChangeEncodeTypeToCertificate \" +\n    \"emChangeEncodeTypeToPassword \" +\n    \"emChangeEncodeTypeToNone \" +\n    \"emChangeEncodeTypeToCertificatePassword \" +\n    \"emChangeStandardRoute \" +\n    \"emGetText \" +\n    \"emOpenForView \" +\n    \"emMoveToStorage \" +\n    \"emCreateObject \" +\n    \"emChangeVersionHidden \" +\n    \"emDeleteVersion \" +\n    \"emChangeLifeCycleStage \" +\n    \"emApprovingSign \" +\n    \"emExport \" +\n    \"emContinue \" +\n    \"emLockFromEdit \" +\n    \"emUnLockForEdit \" +\n    \"emLockForServer \" +\n    \"emUnlockFromServer \" +\n    \"emDelegateAccessRights \" +\n    \"emReEncode \";\n\n  // enum TEditorCloseObservType\n  const TEditorCloseObservType = \"ecotFile ecotProcess \";\n\n  // enum TEdmsApplicationAction\n  const TEdmsApplicationAction = \"eaGet eaCopy eaCreate eaCreateStandardRoute \";\n\n  // enum TEDocumentLockType\n  const TEDocumentLockType = \"edltAll edltNothing edltQuery \";\n\n  // enum TEDocumentStepShowMode\n  const TEDocumentStepShowMode = \"essmText essmCard \";\n\n  // enum TEDocumentStepVersionType\n  const TEDocumentStepVersionType = \"esvtLast esvtLastActive esvtSpecified \";\n\n  // enum TEDocumentStorageFunction\n  const TEDocumentStorageFunction = \"edsfExecutive edsfArchive \";\n\n  // enum TEDocumentStorageType\n  const TEDocumentStorageType = \"edstSQLServer edstFile \";\n\n  // enum TEDocumentVersionSourceType\n  const TEDocumentVersionSourceType =\n    \"edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile \";\n\n  // enum TEDocumentVersionState\n  const TEDocumentVersionState = \"vsDefault vsDesign vsActive vsObsolete \";\n\n  // enum TEncodeType\n  const TEncodeType = \"etNone etCertificate etPassword etCertificatePassword \";\n\n  // enum TExceptionCategory\n  const TExceptionCategory = \"ecException ecWarning ecInformation \";\n\n  // enum TExportedSignaturesType\n  const TExportedSignaturesType = \"estAll estApprovingOnly \";\n\n  // enum TExportedVersionType\n  const TExportedVersionType = \"evtLast evtLastActive evtQuery \";\n\n  // enum TFieldDataType\n  const TFieldDataType =\n    \"fdtString \" +\n    \"fdtNumeric \" +\n    \"fdtInteger \" +\n    \"fdtDate \" +\n    \"fdtText \" +\n    \"fdtUnknown \" +\n    \"fdtWideString \" +\n    \"fdtLargeInteger \";\n\n  // enum TFolderType\n  const TFolderType =\n    \"ftInbox \" +\n    \"ftOutbox \" +\n    \"ftFavorites \" +\n    \"ftCommonFolder \" +\n    \"ftUserFolder \" +\n    \"ftComponents \" +\n    \"ftQuickLaunch \" +\n    \"ftShortcuts \" +\n    \"ftSearch \";\n\n  // enum TGridRowHeight\n  const TGridRowHeight = \"grhAuto \" + \"grhX1 \" + \"grhX2 \" + \"grhX3 \";\n\n  // enum THyperlinkType\n  const THyperlinkType = \"hltText \" + \"hltRTF \" + \"hltHTML \";\n\n  // enum TImageFileFormat\n  const TImageFileFormat =\n    \"iffBMP \" +\n    \"iffJPEG \" +\n    \"iffMultiPageTIFF \" +\n    \"iffSinglePageTIFF \" +\n    \"iffTIFF \" +\n    \"iffPNG \";\n\n  // enum TImageMode\n  const TImageMode = \"im8bGrayscale \" + \"im24bRGB \" + \"im1bMonochrome \";\n\n  // enum TImageType\n  const TImageType = \"itBMP \" + \"itJPEG \" + \"itWMF \" + \"itPNG \";\n\n  // enum TInplaceHintKind\n  const TInplaceHintKind =\n    \"ikhInformation \" + \"ikhWarning \" + \"ikhError \" + \"ikhNoIcon \";\n\n  // enum TISBLContext\n  const TISBLContext =\n    \"icUnknown \" +\n    \"icScript \" +\n    \"icFunction \" +\n    \"icIntegratedReport \" +\n    \"icAnalyticReport \" +\n    \"icDataSetEventHandler \" +\n    \"icActionHandler \" +\n    \"icFormEventHandler \" +\n    \"icLookUpEventHandler \" +\n    \"icRequisiteChangeEventHandler \" +\n    \"icBeforeSearchEventHandler \" +\n    \"icRoleCalculation \" +\n    \"icSelectRouteEventHandler \" +\n    \"icBlockPropertyCalculation \" +\n    \"icBlockQueryParamsEventHandler \" +\n    \"icChangeSearchResultEventHandler \" +\n    \"icBlockEventHandler \" +\n    \"icSubTaskInitEventHandler \" +\n    \"icEDocDataSetEventHandler \" +\n    \"icEDocLookUpEventHandler \" +\n    \"icEDocActionHandler \" +\n    \"icEDocFormEventHandler \" +\n    \"icEDocRequisiteChangeEventHandler \" +\n    \"icStructuredConversionRule \" +\n    \"icStructuredConversionEventBefore \" +\n    \"icStructuredConversionEventAfter \" +\n    \"icWizardEventHandler \" +\n    \"icWizardFinishEventHandler \" +\n    \"icWizardStepEventHandler \" +\n    \"icWizardStepFinishEventHandler \" +\n    \"icWizardActionEnableEventHandler \" +\n    \"icWizardActionExecuteEventHandler \" +\n    \"icCreateJobsHandler \" +\n    \"icCreateNoticesHandler \" +\n    \"icBeforeLookUpEventHandler \" +\n    \"icAfterLookUpEventHandler \" +\n    \"icTaskAbortEventHandler \" +\n    \"icWorkflowBlockActionHandler \" +\n    \"icDialogDataSetEventHandler \" +\n    \"icDialogActionHandler \" +\n    \"icDialogLookUpEventHandler \" +\n    \"icDialogRequisiteChangeEventHandler \" +\n    \"icDialogFormEventHandler \" +\n    \"icDialogValidCloseEventHandler \" +\n    \"icBlockFormEventHandler \" +\n    \"icTaskFormEventHandler \" +\n    \"icReferenceMethod \" +\n    \"icEDocMethod \" +\n    \"icDialogMethod \" +\n    \"icProcessMessageHandler \";\n\n  // enum TItemShow\n  const TItemShow = \"isShow \" + \"isHide \" + \"isByUserSettings \";\n\n  // enum TJobKind\n  const TJobKind = \"jkJob \" + \"jkNotice \" + \"jkControlJob \";\n\n  // enum TJoinType\n  const TJoinType = \"jtInner \" + \"jtLeft \" + \"jtRight \" + \"jtFull \" + \"jtCross \";\n\n  // enum TLabelPos\n  const TLabelPos = \"lbpAbove \" + \"lbpBelow \" + \"lbpLeft \" + \"lbpRight \";\n\n  // enum TLicensingType\n  const TLicensingType = \"eltPerConnection \" + \"eltPerUser \";\n\n  // enum TLifeCycleStageFontColor\n  const TLifeCycleStageFontColor =\n    \"sfcUndefined \" +\n    \"sfcBlack \" +\n    \"sfcGreen \" +\n    \"sfcRed \" +\n    \"sfcBlue \" +\n    \"sfcOrange \" +\n    \"sfcLilac \";\n\n  // enum TLifeCycleStageFontStyle\n  const TLifeCycleStageFontStyle = \"sfsItalic \" + \"sfsStrikeout \" + \"sfsNormal \";\n\n  // enum TLockableDevelopmentComponentType\n  const TLockableDevelopmentComponentType =\n    \"ldctStandardRoute \" +\n    \"ldctWizard \" +\n    \"ldctScript \" +\n    \"ldctFunction \" +\n    \"ldctRouteBlock \" +\n    \"ldctIntegratedReport \" +\n    \"ldctAnalyticReport \" +\n    \"ldctReferenceType \" +\n    \"ldctEDocumentType \" +\n    \"ldctDialog \" +\n    \"ldctServerEvents \";\n\n  // enum TMaxRecordCountRestrictionType\n  const TMaxRecordCountRestrictionType =\n    \"mrcrtNone \" + \"mrcrtUser \" + \"mrcrtMaximal \" + \"mrcrtCustom \";\n\n  // enum TRangeValueType\n  const TRangeValueType =\n    \"vtEqual \" + \"vtGreaterOrEqual \" + \"vtLessOrEqual \" + \"vtRange \";\n\n  // enum TRelativeDate\n  const TRelativeDate =\n    \"rdYesterday \" +\n    \"rdToday \" +\n    \"rdTomorrow \" +\n    \"rdThisWeek \" +\n    \"rdThisMonth \" +\n    \"rdThisYear \" +\n    \"rdNextMonth \" +\n    \"rdNextWeek \" +\n    \"rdLastWeek \" +\n    \"rdLastMonth \";\n\n  // enum TReportDestination\n  const TReportDestination = \"rdWindow \" + \"rdFile \" + \"rdPrinter \";\n\n  // enum TReqDataType\n  const TReqDataType =\n    \"rdtString \" +\n    \"rdtNumeric \" +\n    \"rdtInteger \" +\n    \"rdtDate \" +\n    \"rdtReference \" +\n    \"rdtAccount \" +\n    \"rdtText \" +\n    \"rdtPick \" +\n    \"rdtUnknown \" +\n    \"rdtLargeInteger \" +\n    \"rdtDocument \";\n\n  // enum TRequisiteEventType\n  const TRequisiteEventType = \"reOnChange \" + \"reOnChangeValues \";\n\n  // enum TSBTimeType\n  const TSBTimeType = \"ttGlobal \" + \"ttLocal \" + \"ttUser \" + \"ttSystem \";\n\n  // enum TSearchShowMode\n  const TSearchShowMode =\n    \"ssmBrowse \" + \"ssmSelect \" + \"ssmMultiSelect \" + \"ssmBrowseModal \";\n\n  // enum TSelectMode\n  const TSelectMode = \"smSelect \" + \"smLike \" + \"smCard \";\n\n  // enum TSignatureType\n  const TSignatureType = \"stNone \" + \"stAuthenticating \" + \"stApproving \";\n\n  // enum TSignerContentType\n  const TSignerContentType = \"sctString \" + \"sctStream \";\n\n  // enum TStringsSortType\n  const TStringsSortType = \"sstAnsiSort \" + \"sstNaturalSort \";\n\n  // enum TStringValueType\n  const TStringValueType = \"svtEqual \" + \"svtContain \";\n\n  // enum TStructuredObjectAttributeType\n  const TStructuredObjectAttributeType =\n    \"soatString \" +\n    \"soatNumeric \" +\n    \"soatInteger \" +\n    \"soatDatetime \" +\n    \"soatReferenceRecord \" +\n    \"soatText \" +\n    \"soatPick \" +\n    \"soatBoolean \" +\n    \"soatEDocument \" +\n    \"soatAccount \" +\n    \"soatIntegerCollection \" +\n    \"soatNumericCollection \" +\n    \"soatStringCollection \" +\n    \"soatPickCollection \" +\n    \"soatDatetimeCollection \" +\n    \"soatBooleanCollection \" +\n    \"soatReferenceRecordCollection \" +\n    \"soatEDocumentCollection \" +\n    \"soatAccountCollection \" +\n    \"soatContents \" +\n    \"soatUnknown \";\n\n  // enum TTaskAbortReason\n  const TTaskAbortReason = \"tarAbortByUser \" + \"tarAbortByWorkflowException \";\n\n  // enum TTextValueType\n  const TTextValueType = \"tvtAllWords \" + \"tvtExactPhrase \" + \"tvtAnyWord \";\n\n  // enum TUserObjectStatus\n  const TUserObjectStatus =\n    \"usNone \" +\n    \"usCompleted \" +\n    \"usRedSquare \" +\n    \"usBlueSquare \" +\n    \"usYellowSquare \" +\n    \"usGreenSquare \" +\n    \"usOrangeSquare \" +\n    \"usPurpleSquare \" +\n    \"usFollowUp \";\n\n  // enum TUserType\n  const TUserType =\n    \"utUnknown \" +\n    \"utUser \" +\n    \"utDeveloper \" +\n    \"utAdministrator \" +\n    \"utSystemDeveloper \" +\n    \"utDisconnected \";\n\n  // enum TValuesBuildType\n  const TValuesBuildType =\n    \"btAnd \" + \"btDetailAnd \" + \"btOr \" + \"btNotOr \" + \"btOnly \";\n\n  // enum TViewMode\n  const TViewMode = \"vmView \" + \"vmSelect \" + \"vmNavigation \";\n\n  // enum TViewSelectionMode\n  const TViewSelectionMode =\n    \"vsmSingle \" + \"vsmMultiple \" + \"vsmMultipleCheck \" + \"vsmNoSelection \";\n\n  // enum TWizardActionType\n  const TWizardActionType =\n    \"wfatPrevious \" + \"wfatNext \" + \"wfatCancel \" + \"wfatFinish \";\n\n  // enum TWizardFormElementProperty\n  const TWizardFormElementProperty =\n    \"wfepUndefined \" +\n    \"wfepText3 \" +\n    \"wfepText6 \" +\n    \"wfepText9 \" +\n    \"wfepSpinEdit \" +\n    \"wfepDropDown \" +\n    \"wfepRadioGroup \" +\n    \"wfepFlag \" +\n    \"wfepText12 \" +\n    \"wfepText15 \" +\n    \"wfepText18 \" +\n    \"wfepText21 \" +\n    \"wfepText24 \" +\n    \"wfepText27 \" +\n    \"wfepText30 \" +\n    \"wfepRadioGroupColumn1 \" +\n    \"wfepRadioGroupColumn2 \" +\n    \"wfepRadioGroupColumn3 \";\n\n  // enum TWizardFormElementType\n  const TWizardFormElementType =\n    \"wfetQueryParameter \" + \"wfetText \" + \"wfetDelimiter \" + \"wfetLabel \";\n\n  // enum TWizardParamType\n  const TWizardParamType =\n    \"wptString \" +\n    \"wptInteger \" +\n    \"wptNumeric \" +\n    \"wptBoolean \" +\n    \"wptDateTime \" +\n    \"wptPick \" +\n    \"wptText \" +\n    \"wptUser \" +\n    \"wptUserList \" +\n    \"wptEDocumentInfo \" +\n    \"wptEDocumentInfoList \" +\n    \"wptReferenceRecordInfo \" +\n    \"wptReferenceRecordInfoList \" +\n    \"wptFolderInfo \" +\n    \"wptTaskInfo \" +\n    \"wptContents \" +\n    \"wptFileName \" +\n    \"wptDate \";\n\n  // enum TWizardStepResult\n  const TWizardStepResult =\n    \"wsrComplete \" +\n    \"wsrGoNext \" +\n    \"wsrGoPrevious \" +\n    \"wsrCustom \" +\n    \"wsrCancel \" +\n    \"wsrGoFinal \";\n\n  // enum TWizardStepType\n  const TWizardStepType =\n    \"wstForm \" +\n    \"wstEDocument \" +\n    \"wstTaskCard \" +\n    \"wstReferenceRecordCard \" +\n    \"wstFinal \";\n\n  // enum TWorkAccessType\n  const TWorkAccessType = \"waAll \" + \"waPerformers \" + \"waManual \";\n\n  // enum TWorkflowBlockType\n  const TWorkflowBlockType =\n    \"wsbStart \" +\n    \"wsbFinish \" +\n    \"wsbNotice \" +\n    \"wsbStep \" +\n    \"wsbDecision \" +\n    \"wsbWait \" +\n    \"wsbMonitor \" +\n    \"wsbScript \" +\n    \"wsbConnector \" +\n    \"wsbSubTask \" +\n    \"wsbLifeCycleStage \" +\n    \"wsbPause \";\n\n  // enum TWorkflowDataType\n  const TWorkflowDataType =\n    \"wdtInteger \" +\n    \"wdtFloat \" +\n    \"wdtString \" +\n    \"wdtPick \" +\n    \"wdtDateTime \" +\n    \"wdtBoolean \" +\n    \"wdtTask \" +\n    \"wdtJob \" +\n    \"wdtFolder \" +\n    \"wdtEDocument \" +\n    \"wdtReferenceRecord \" +\n    \"wdtUser \" +\n    \"wdtGroup \" +\n    \"wdtRole \" +\n    \"wdtIntegerCollection \" +\n    \"wdtFloatCollection \" +\n    \"wdtStringCollection \" +\n    \"wdtPickCollection \" +\n    \"wdtDateTimeCollection \" +\n    \"wdtBooleanCollection \" +\n    \"wdtTaskCollection \" +\n    \"wdtJobCollection \" +\n    \"wdtFolderCollection \" +\n    \"wdtEDocumentCollection \" +\n    \"wdtReferenceRecordCollection \" +\n    \"wdtUserCollection \" +\n    \"wdtGroupCollection \" +\n    \"wdtRoleCollection \" +\n    \"wdtContents \" +\n    \"wdtUserList \" +\n    \"wdtSearchDescription \" +\n    \"wdtDeadLine \" +\n    \"wdtPickSet \" +\n    \"wdtAccountCollection \";\n\n  // enum TWorkImportance\n  const TWorkImportance = \"wiLow \" + \"wiNormal \" + \"wiHigh \";\n\n  // enum TWorkRouteType\n  const TWorkRouteType = \"wrtSoft \" + \"wrtHard \";\n\n  // enum TWorkState\n  const TWorkState =\n    \"wsInit \" +\n    \"wsRunning \" +\n    \"wsDone \" +\n    \"wsControlled \" +\n    \"wsAborted \" +\n    \"wsContinued \";\n\n  // enum TWorkTextBuildingMode\n  const TWorkTextBuildingMode =\n    \"wtmFull \" + \"wtmFromCurrent \" + \"wtmOnlyCurrent \";\n\n  // Перечисления\n  const ENUMS =\n    TAccountType +\n    TActionEnabledMode +\n    TAddPosition +\n    TAlignment +\n    TAreaShowMode +\n    TCertificateInvalidationReason +\n    TCertificateType +\n    TCheckListBoxItemState +\n    TCloseOnEsc +\n    TCompType +\n    TConditionFormat +\n    TConnectionIntent +\n    TContentKind +\n    TControlType +\n    TCriterionContentType +\n    TCultureType +\n    TDataSetEventType +\n    TDataSetState +\n    TDateFormatType +\n    TDateOffsetType +\n    TDateTimeKind +\n    TDeaAccessRights +\n    TDocumentDefaultAction +\n    TEditMode +\n    TEditorCloseObservType +\n    TEdmsApplicationAction +\n    TEDocumentLockType +\n    TEDocumentStepShowMode +\n    TEDocumentStepVersionType +\n    TEDocumentStorageFunction +\n    TEDocumentStorageType +\n    TEDocumentVersionSourceType +\n    TEDocumentVersionState +\n    TEncodeType +\n    TExceptionCategory +\n    TExportedSignaturesType +\n    TExportedVersionType +\n    TFieldDataType +\n    TFolderType +\n    TGridRowHeight +\n    THyperlinkType +\n    TImageFileFormat +\n    TImageMode +\n    TImageType +\n    TInplaceHintKind +\n    TISBLContext +\n    TItemShow +\n    TJobKind +\n    TJoinType +\n    TLabelPos +\n    TLicensingType +\n    TLifeCycleStageFontColor +\n    TLifeCycleStageFontStyle +\n    TLockableDevelopmentComponentType +\n    TMaxRecordCountRestrictionType +\n    TRangeValueType +\n    TRelativeDate +\n    TReportDestination +\n    TReqDataType +\n    TRequisiteEventType +\n    TSBTimeType +\n    TSearchShowMode +\n    TSelectMode +\n    TSignatureType +\n    TSignerContentType +\n    TStringsSortType +\n    TStringValueType +\n    TStructuredObjectAttributeType +\n    TTaskAbortReason +\n    TTextValueType +\n    TUserObjectStatus +\n    TUserType +\n    TValuesBuildType +\n    TViewMode +\n    TViewSelectionMode +\n    TWizardActionType +\n    TWizardFormElementProperty +\n    TWizardFormElementType +\n    TWizardParamType +\n    TWizardStepResult +\n    TWizardStepType +\n    TWorkAccessType +\n    TWorkflowBlockType +\n    TWorkflowDataType +\n    TWorkImportance +\n    TWorkRouteType +\n    TWorkState +\n    TWorkTextBuildingMode;\n\n  // Системные функции ==> SYSFUNCTIONS\n  const system_functions =\n    \"AddSubString \" +\n    \"AdjustLineBreaks \" +\n    \"AmountInWords \" +\n    \"Analysis \" +\n    \"ArrayDimCount \" +\n    \"ArrayHighBound \" +\n    \"ArrayLowBound \" +\n    \"ArrayOf \" +\n    \"ArrayReDim \" +\n    \"Assert \" +\n    \"Assigned \" +\n    \"BeginOfMonth \" +\n    \"BeginOfPeriod \" +\n    \"BuildProfilingOperationAnalysis \" +\n    \"CallProcedure \" +\n    \"CanReadFile \" +\n    \"CArrayElement \" +\n    \"CDataSetRequisite \" +\n    \"ChangeDate \" +\n    \"ChangeReferenceDataset \" +\n    \"Char \" +\n    \"CharPos \" +\n    \"CheckParam \" +\n    \"CheckParamValue \" +\n    \"CompareStrings \" +\n    \"ConstantExists \" +\n    \"ControlState \" +\n    \"ConvertDateStr \" +\n    \"Copy \" +\n    \"CopyFile \" +\n    \"CreateArray \" +\n    \"CreateCachedReference \" +\n    \"CreateConnection \" +\n    \"CreateDialog \" +\n    \"CreateDualListDialog \" +\n    \"CreateEditor \" +\n    \"CreateException \" +\n    \"CreateFile \" +\n    \"CreateFolderDialog \" +\n    \"CreateInputDialog \" +\n    \"CreateLinkFile \" +\n    \"CreateList \" +\n    \"CreateLock \" +\n    \"CreateMemoryDataSet \" +\n    \"CreateObject \" +\n    \"CreateOpenDialog \" +\n    \"CreateProgress \" +\n    \"CreateQuery \" +\n    \"CreateReference \" +\n    \"CreateReport \" +\n    \"CreateSaveDialog \" +\n    \"CreateScript \" +\n    \"CreateSQLPivotFunction \" +\n    \"CreateStringList \" +\n    \"CreateTreeListSelectDialog \" +\n    \"CSelectSQL \" +\n    \"CSQL \" +\n    \"CSubString \" +\n    \"CurrentUserID \" +\n    \"CurrentUserName \" +\n    \"CurrentVersion \" +\n    \"DataSetLocateEx \" +\n    \"DateDiff \" +\n    \"DateTimeDiff \" +\n    \"DateToStr \" +\n    \"DayOfWeek \" +\n    \"DeleteFile \" +\n    \"DirectoryExists \" +\n    \"DisableCheckAccessRights \" +\n    \"DisableCheckFullShowingRestriction \" +\n    \"DisableMassTaskSendingRestrictions \" +\n    \"DropTable \" +\n    \"DupeString \" +\n    \"EditText \" +\n    \"EnableCheckAccessRights \" +\n    \"EnableCheckFullShowingRestriction \" +\n    \"EnableMassTaskSendingRestrictions \" +\n    \"EndOfMonth \" +\n    \"EndOfPeriod \" +\n    \"ExceptionExists \" +\n    \"ExceptionsOff \" +\n    \"ExceptionsOn \" +\n    \"Execute \" +\n    \"ExecuteProcess \" +\n    \"Exit \" +\n    \"ExpandEnvironmentVariables \" +\n    \"ExtractFileDrive \" +\n    \"ExtractFileExt \" +\n    \"ExtractFileName \" +\n    \"ExtractFilePath \" +\n    \"ExtractParams \" +\n    \"FileExists \" +\n    \"FileSize \" +\n    \"FindFile \" +\n    \"FindSubString \" +\n    \"FirmContext \" +\n    \"ForceDirectories \" +\n    \"Format \" +\n    \"FormatDate \" +\n    \"FormatNumeric \" +\n    \"FormatSQLDate \" +\n    \"FormatString \" +\n    \"FreeException \" +\n    \"GetComponent \" +\n    \"GetComponentLaunchParam \" +\n    \"GetConstant \" +\n    \"GetLastException \" +\n    \"GetReferenceRecord \" +\n    \"GetRefTypeByRefID \" +\n    \"GetTableID \" +\n    \"GetTempFolder \" +\n    \"IfThen \" +\n    \"In \" +\n    \"IndexOf \" +\n    \"InputDialog \" +\n    \"InputDialogEx \" +\n    \"InteractiveMode \" +\n    \"IsFileLocked \" +\n    \"IsGraphicFile \" +\n    \"IsNumeric \" +\n    \"Length \" +\n    \"LoadString \" +\n    \"LoadStringFmt \" +\n    \"LocalTimeToUTC \" +\n    \"LowerCase \" +\n    \"Max \" +\n    \"MessageBox \" +\n    \"MessageBoxEx \" +\n    \"MimeDecodeBinary \" +\n    \"MimeDecodeString \" +\n    \"MimeEncodeBinary \" +\n    \"MimeEncodeString \" +\n    \"Min \" +\n    \"MoneyInWords \" +\n    \"MoveFile \" +\n    \"NewID \" +\n    \"Now \" +\n    \"OpenFile \" +\n    \"Ord \" +\n    \"Precision \" +\n    \"Raise \" +\n    \"ReadCertificateFromFile \" +\n    \"ReadFile \" +\n    \"ReferenceCodeByID \" +\n    \"ReferenceNumber \" +\n    \"ReferenceRequisiteMode \" +\n    \"ReferenceRequisiteValue \" +\n    \"RegionDateSettings \" +\n    \"RegionNumberSettings \" +\n    \"RegionTimeSettings \" +\n    \"RegRead \" +\n    \"RegWrite \" +\n    \"RenameFile \" +\n    \"Replace \" +\n    \"Round \" +\n    \"SelectServerCode \" +\n    \"SelectSQL \" +\n    \"ServerDateTime \" +\n    \"SetConstant \" +\n    \"SetManagedFolderFieldsState \" +\n    \"ShowConstantsInputDialog \" +\n    \"ShowMessage \" +\n    \"Sleep \" +\n    \"Split \" +\n    \"SQL \" +\n    \"SQL2XLSTAB \" +\n    \"SQLProfilingSendReport \" +\n    \"StrToDate \" +\n    \"SubString \" +\n    \"SubStringCount \" +\n    \"SystemSetting \" +\n    \"Time \" +\n    \"TimeDiff \" +\n    \"Today \" +\n    \"Transliterate \" +\n    \"Trim \" +\n    \"UpperCase \" +\n    \"UserStatus \" +\n    \"UTCToLocalTime \" +\n    \"ValidateXML \" +\n    \"VarIsClear \" +\n    \"VarIsEmpty \" +\n    \"VarIsNull \" +\n    \"WorkTimeDiff \" +\n    \"WriteFile \" +\n    \"WriteFileEx \" +\n    \"WriteObjectHistory \" +\n    \"Анализ \" +\n    \"БазаДанных \" +\n    \"БлокЕсть \" +\n    \"БлокЕстьРасш \" +\n    \"БлокИнфо \" +\n    \"БлокСнять \" +\n    \"БлокСнятьРасш \" +\n    \"БлокУстановить \" +\n    \"Ввод \" +\n    \"ВводМеню \" +\n    \"ВедС \" +\n    \"ВедСпр \" +\n    \"ВерхняяГраницаМассива \" +\n    \"ВнешПрогр \" +\n    \"Восст \" +\n    \"ВременнаяПапка \" +\n    \"Время \" +\n    \"ВыборSQL \" +\n    \"ВыбратьЗапись \" +\n    \"ВыделитьСтр \" +\n    \"Вызвать \" +\n    \"Выполнить \" +\n    \"ВыпПрогр \" +\n    \"ГрафическийФайл \" +\n    \"ГруппаДополнительно \" +\n    \"ДатаВремяСерв \" +\n    \"ДеньНедели \" +\n    \"ДиалогДаНет \" +\n    \"ДлинаСтр \" +\n    \"ДобПодстр \" +\n    \"ЕПусто \" +\n    \"ЕслиТо \" +\n    \"ЕЧисло \" +\n    \"ЗамПодстр \" +\n    \"ЗаписьСправочника \" +\n    \"ЗначПоляСпр \" +\n    \"ИДТипСпр \" +\n    \"ИзвлечьДиск \" +\n    \"ИзвлечьИмяФайла \" +\n    \"ИзвлечьПуть \" +\n    \"ИзвлечьРасширение \" +\n    \"ИзмДат \" +\n    \"ИзменитьРазмерМассива \" +\n    \"ИзмеренийМассива \" +\n    \"ИмяОрг \" +\n    \"ИмяПоляСпр \" +\n    \"Индекс \" +\n    \"ИндикаторЗакрыть \" +\n    \"ИндикаторОткрыть \" +\n    \"ИндикаторШаг \" +\n    \"ИнтерактивныйРежим \" +\n    \"ИтогТблСпр \" +\n    \"КодВидВедСпр \" +\n    \"КодВидСпрПоИД \" +\n    \"КодПоAnalit \" +\n    \"КодСимвола \" +\n    \"КодСпр \" +\n    \"КолПодстр \" +\n    \"КолПроп \" +\n    \"КонМес \" +\n    \"Конст \" +\n    \"КонстЕсть \" +\n    \"КонстЗнач \" +\n    \"КонТран \" +\n    \"КопироватьФайл \" +\n    \"КопияСтр \" +\n    \"КПериод \" +\n    \"КСтрТблСпр \" +\n    \"Макс \" +\n    \"МаксСтрТблСпр \" +\n    \"Массив \" +\n    \"Меню \" +\n    \"МенюРасш \" +\n    \"Мин \" +\n    \"НаборДанныхНайтиРасш \" +\n    \"НаимВидСпр \" +\n    \"НаимПоAnalit \" +\n    \"НаимСпр \" +\n    \"НастроитьПереводыСтрок \" +\n    \"НачМес \" +\n    \"НачТран \" +\n    \"НижняяГраницаМассива \" +\n    \"НомерСпр \" +\n    \"НПериод \" +\n    \"Окно \" +\n    \"Окр \" +\n    \"Окружение \" +\n    \"ОтлИнфДобавить \" +\n    \"ОтлИнфУдалить \" +\n    \"Отчет \" +\n    \"ОтчетАнал \" +\n    \"ОтчетИнт \" +\n    \"ПапкаСуществует \" +\n    \"Пауза \" +\n    \"ПВыборSQL \" +\n    \"ПереименоватьФайл \" +\n    \"Переменные \" +\n    \"ПереместитьФайл \" +\n    \"Подстр \" +\n    \"ПоискПодстр \" +\n    \"ПоискСтр \" +\n    \"ПолучитьИДТаблицы \" +\n    \"ПользовательДополнительно \" +\n    \"ПользовательИД \" +\n    \"ПользовательИмя \" +\n    \"ПользовательСтатус \" +\n    \"Прервать \" +\n    \"ПроверитьПараметр \" +\n    \"ПроверитьПараметрЗнач \" +\n    \"ПроверитьУсловие \" +\n    \"РазбСтр \" +\n    \"РазнВремя \" +\n    \"РазнДат \" +\n    \"РазнДатаВремя \" +\n    \"РазнРабВремя \" +\n    \"РегУстВрем \" +\n    \"РегУстДат \" +\n    \"РегУстЧсл \" +\n    \"РедТекст \" +\n    \"РеестрЗапись \" +\n    \"РеестрСписокИменПарам \" +\n    \"РеестрЧтение \" +\n    \"РеквСпр \" +\n    \"РеквСпрПр \" +\n    \"Сегодня \" +\n    \"Сейчас \" +\n    \"Сервер \" +\n    \"СерверПроцессИД \" +\n    \"СертификатФайлСчитать \" +\n    \"СжПроб \" +\n    \"Символ \" +\n    \"СистемаДиректумКод \" +\n    \"СистемаИнформация \" +\n    \"СистемаКод \" +\n    \"Содержит \" +\n    \"СоединениеЗакрыть \" +\n    \"СоединениеОткрыть \" +\n    \"СоздатьДиалог \" +\n    \"СоздатьДиалогВыбораИзДвухСписков \" +\n    \"СоздатьДиалогВыбораПапки \" +\n    \"СоздатьДиалогОткрытияФайла \" +\n    \"СоздатьДиалогСохраненияФайла \" +\n    \"СоздатьЗапрос \" +\n    \"СоздатьИндикатор \" +\n    \"СоздатьИсключение \" +\n    \"СоздатьКэшированныйСправочник \" +\n    \"СоздатьМассив \" +\n    \"СоздатьНаборДанных \" +\n    \"СоздатьОбъект \" +\n    \"СоздатьОтчет \" +\n    \"СоздатьПапку \" +\n    \"СоздатьРедактор \" +\n    \"СоздатьСоединение \" +\n    \"СоздатьСписок \" +\n    \"СоздатьСписокСтрок \" +\n    \"СоздатьСправочник \" +\n    \"СоздатьСценарий \" +\n    \"СоздСпр \" +\n    \"СостСпр \" +\n    \"Сохр \" +\n    \"СохрСпр \" +\n    \"СписокСистем \" +\n    \"Спр \" +\n    \"Справочник \" +\n    \"СпрБлокЕсть \" +\n    \"СпрБлокСнять \" +\n    \"СпрБлокСнятьРасш \" +\n    \"СпрБлокУстановить \" +\n    \"СпрИзмНабДан \" +\n    \"СпрКод \" +\n    \"СпрНомер \" +\n    \"СпрОбновить \" +\n    \"СпрОткрыть \" +\n    \"СпрОтменить \" +\n    \"СпрПарам \" +\n    \"СпрПолеЗнач \" +\n    \"СпрПолеИмя \" +\n    \"СпрРекв \" +\n    \"СпрРеквВведЗн \" +\n    \"СпрРеквНовые \" +\n    \"СпрРеквПр \" +\n    \"СпрРеквПредЗн \" +\n    \"СпрРеквРежим \" +\n    \"СпрРеквТипТекст \" +\n    \"СпрСоздать \" +\n    \"СпрСост \" +\n    \"СпрСохранить \" +\n    \"СпрТблИтог \" +\n    \"СпрТблСтр \" +\n    \"СпрТблСтрКол \" +\n    \"СпрТблСтрМакс \" +\n    \"СпрТблСтрМин \" +\n    \"СпрТблСтрПред \" +\n    \"СпрТблСтрСлед \" +\n    \"СпрТблСтрСозд \" +\n    \"СпрТблСтрУд \" +\n    \"СпрТекПредст \" +\n    \"СпрУдалить \" +\n    \"СравнитьСтр \" +\n    \"СтрВерхРегистр \" +\n    \"СтрНижнРегистр \" +\n    \"СтрТблСпр \" +\n    \"СумПроп \" +\n    \"Сценарий \" +\n    \"СценарийПарам \" +\n    \"ТекВерсия \" +\n    \"ТекОрг \" +\n    \"Точн \" +\n    \"Тран \" +\n    \"Транслитерация \" +\n    \"УдалитьТаблицу \" +\n    \"УдалитьФайл \" +\n    \"УдСпр \" +\n    \"УдСтрТблСпр \" +\n    \"Уст \" +\n    \"УстановкиКонстант \" +\n    \"ФайлАтрибутСчитать \" +\n    \"ФайлАтрибутУстановить \" +\n    \"ФайлВремя \" +\n    \"ФайлВремяУстановить \" +\n    \"ФайлВыбрать \" +\n    \"ФайлЗанят \" +\n    \"ФайлЗаписать \" +\n    \"ФайлИскать \" +\n    \"ФайлКопировать \" +\n    \"ФайлМожноЧитать \" +\n    \"ФайлОткрыть \" +\n    \"ФайлПереименовать \" +\n    \"ФайлПерекодировать \" +\n    \"ФайлПереместить \" +\n    \"ФайлПросмотреть \" +\n    \"ФайлРазмер \" +\n    \"ФайлСоздать \" +\n    \"ФайлСсылкаСоздать \" +\n    \"ФайлСуществует \" +\n    \"ФайлСчитать \" +\n    \"ФайлУдалить \" +\n    \"ФмтSQLДат \" +\n    \"ФмтДат \" +\n    \"ФмтСтр \" +\n    \"ФмтЧсл \" +\n    \"Формат \" +\n    \"ЦМассивЭлемент \" +\n    \"ЦНаборДанныхРеквизит \" +\n    \"ЦПодстр \";\n\n  // Предопределенные переменные ==> built_in\n  const predefined_variables =\n    \"AltState \" +\n    \"Application \" +\n    \"CallType \" +\n    \"ComponentTokens \" +\n    \"CreatedJobs \" +\n    \"CreatedNotices \" +\n    \"ControlState \" +\n    \"DialogResult \" +\n    \"Dialogs \" +\n    \"EDocuments \" +\n    \"EDocumentVersionSource \" +\n    \"Folders \" +\n    \"GlobalIDs \" +\n    \"Job \" +\n    \"Jobs \" +\n    \"InputValue \" +\n    \"LookUpReference \" +\n    \"LookUpRequisiteNames \" +\n    \"LookUpSearch \" +\n    \"Object \" +\n    \"ParentComponent \" +\n    \"Processes \" +\n    \"References \" +\n    \"Requisite \" +\n    \"ReportName \" +\n    \"Reports \" +\n    \"Result \" +\n    \"Scripts \" +\n    \"Searches \" +\n    \"SelectedAttachments \" +\n    \"SelectedItems \" +\n    \"SelectMode \" +\n    \"Sender \" +\n    \"ServerEvents \" +\n    \"ServiceFactory \" +\n    \"ShiftState \" +\n    \"SubTask \" +\n    \"SystemDialogs \" +\n    \"Tasks \" +\n    \"Wizard \" +\n    \"Wizards \" +\n    \"Work \" +\n    \"ВызовСпособ \" +\n    \"ИмяОтчета \" +\n    \"РеквЗнач \";\n\n  // Интерфейсы ==> type\n  const interfaces =\n    \"IApplication \" +\n    \"IAccessRights \" +\n    \"IAccountRepository \" +\n    \"IAccountSelectionRestrictions \" +\n    \"IAction \" +\n    \"IActionList \" +\n    \"IAdministrationHistoryDescription \" +\n    \"IAnchors \" +\n    \"IApplication \" +\n    \"IArchiveInfo \" +\n    \"IAttachment \" +\n    \"IAttachmentList \" +\n    \"ICheckListBox \" +\n    \"ICheckPointedList \" +\n    \"IColumn \" +\n    \"IComponent \" +\n    \"IComponentDescription \" +\n    \"IComponentToken \" +\n    \"IComponentTokenFactory \" +\n    \"IComponentTokenInfo \" +\n    \"ICompRecordInfo \" +\n    \"IConnection \" +\n    \"IContents \" +\n    \"IControl \" +\n    \"IControlJob \" +\n    \"IControlJobInfo \" +\n    \"IControlList \" +\n    \"ICrypto \" +\n    \"ICrypto2 \" +\n    \"ICustomJob \" +\n    \"ICustomJobInfo \" +\n    \"ICustomListBox \" +\n    \"ICustomObjectWizardStep \" +\n    \"ICustomWork \" +\n    \"ICustomWorkInfo \" +\n    \"IDataSet \" +\n    \"IDataSetAccessInfo \" +\n    \"IDataSigner \" +\n    \"IDateCriterion \" +\n    \"IDateRequisite \" +\n    \"IDateRequisiteDescription \" +\n    \"IDateValue \" +\n    \"IDeaAccessRights \" +\n    \"IDeaObjectInfo \" +\n    \"IDevelopmentComponentLock \" +\n    \"IDialog \" +\n    \"IDialogFactory \" +\n    \"IDialogPickRequisiteItems \" +\n    \"IDialogsFactory \" +\n    \"IDICSFactory \" +\n    \"IDocRequisite \" +\n    \"IDocumentInfo \" +\n    \"IDualListDialog \" +\n    \"IECertificate \" +\n    \"IECertificateInfo \" +\n    \"IECertificates \" +\n    \"IEditControl \" +\n    \"IEditorForm \" +\n    \"IEdmsExplorer \" +\n    \"IEdmsObject \" +\n    \"IEdmsObjectDescription \" +\n    \"IEdmsObjectFactory \" +\n    \"IEdmsObjectInfo \" +\n    \"IEDocument \" +\n    \"IEDocumentAccessRights \" +\n    \"IEDocumentDescription \" +\n    \"IEDocumentEditor \" +\n    \"IEDocumentFactory \" +\n    \"IEDocumentInfo \" +\n    \"IEDocumentStorage \" +\n    \"IEDocumentVersion \" +\n    \"IEDocumentVersionListDialog \" +\n    \"IEDocumentVersionSource \" +\n    \"IEDocumentWizardStep \" +\n    \"IEDocVerSignature \" +\n    \"IEDocVersionState \" +\n    \"IEnabledMode \" +\n    \"IEncodeProvider \" +\n    \"IEncrypter \" +\n    \"IEvent \" +\n    \"IEventList \" +\n    \"IException \" +\n    \"IExternalEvents \" +\n    \"IExternalHandler \" +\n    \"IFactory \" +\n    \"IField \" +\n    \"IFileDialog \" +\n    \"IFolder \" +\n    \"IFolderDescription \" +\n    \"IFolderDialog \" +\n    \"IFolderFactory \" +\n    \"IFolderInfo \" +\n    \"IForEach \" +\n    \"IForm \" +\n    \"IFormTitle \" +\n    \"IFormWizardStep \" +\n    \"IGlobalIDFactory \" +\n    \"IGlobalIDInfo \" +\n    \"IGrid \" +\n    \"IHasher \" +\n    \"IHistoryDescription \" +\n    \"IHyperLinkControl \" +\n    \"IImageButton \" +\n    \"IImageControl \" +\n    \"IInnerPanel \" +\n    \"IInplaceHint \" +\n    \"IIntegerCriterion \" +\n    \"IIntegerList \" +\n    \"IIntegerRequisite \" +\n    \"IIntegerValue \" +\n    \"IISBLEditorForm \" +\n    \"IJob \" +\n    \"IJobDescription \" +\n    \"IJobFactory \" +\n    \"IJobForm \" +\n    \"IJobInfo \" +\n    \"ILabelControl \" +\n    \"ILargeIntegerCriterion \" +\n    \"ILargeIntegerRequisite \" +\n    \"ILargeIntegerValue \" +\n    \"ILicenseInfo \" +\n    \"ILifeCycleStage \" +\n    \"IList \" +\n    \"IListBox \" +\n    \"ILocalIDInfo \" +\n    \"ILocalization \" +\n    \"ILock \" +\n    \"IMemoryDataSet \" +\n    \"IMessagingFactory \" +\n    \"IMetadataRepository \" +\n    \"INotice \" +\n    \"INoticeInfo \" +\n    \"INumericCriterion \" +\n    \"INumericRequisite \" +\n    \"INumericValue \" +\n    \"IObject \" +\n    \"IObjectDescription \" +\n    \"IObjectImporter \" +\n    \"IObjectInfo \" +\n    \"IObserver \" +\n    \"IPanelGroup \" +\n    \"IPickCriterion \" +\n    \"IPickProperty \" +\n    \"IPickRequisite \" +\n    \"IPickRequisiteDescription \" +\n    \"IPickRequisiteItem \" +\n    \"IPickRequisiteItems \" +\n    \"IPickValue \" +\n    \"IPrivilege \" +\n    \"IPrivilegeList \" +\n    \"IProcess \" +\n    \"IProcessFactory \" +\n    \"IProcessMessage \" +\n    \"IProgress \" +\n    \"IProperty \" +\n    \"IPropertyChangeEvent \" +\n    \"IQuery \" +\n    \"IReference \" +\n    \"IReferenceCriterion \" +\n    \"IReferenceEnabledMode \" +\n    \"IReferenceFactory \" +\n    \"IReferenceHistoryDescription \" +\n    \"IReferenceInfo \" +\n    \"IReferenceRecordCardWizardStep \" +\n    \"IReferenceRequisiteDescription \" +\n    \"IReferencesFactory \" +\n    \"IReferenceValue \" +\n    \"IRefRequisite \" +\n    \"IReport \" +\n    \"IReportFactory \" +\n    \"IRequisite \" +\n    \"IRequisiteDescription \" +\n    \"IRequisiteDescriptionList \" +\n    \"IRequisiteFactory \" +\n    \"IRichEdit \" +\n    \"IRouteStep \" +\n    \"IRule \" +\n    \"IRuleList \" +\n    \"ISchemeBlock \" +\n    \"IScript \" +\n    \"IScriptFactory \" +\n    \"ISearchCriteria \" +\n    \"ISearchCriterion \" +\n    \"ISearchDescription \" +\n    \"ISearchFactory \" +\n    \"ISearchFolderInfo \" +\n    \"ISearchForObjectDescription \" +\n    \"ISearchResultRestrictions \" +\n    \"ISecuredContext \" +\n    \"ISelectDialog \" +\n    \"IServerEvent \" +\n    \"IServerEventFactory \" +\n    \"IServiceDialog \" +\n    \"IServiceFactory \" +\n    \"ISignature \" +\n    \"ISignProvider \" +\n    \"ISignProvider2 \" +\n    \"ISignProvider3 \" +\n    \"ISimpleCriterion \" +\n    \"IStringCriterion \" +\n    \"IStringList \" +\n    \"IStringRequisite \" +\n    \"IStringRequisiteDescription \" +\n    \"IStringValue \" +\n    \"ISystemDialogsFactory \" +\n    \"ISystemInfo \" +\n    \"ITabSheet \" +\n    \"ITask \" +\n    \"ITaskAbortReasonInfo \" +\n    \"ITaskCardWizardStep \" +\n    \"ITaskDescription \" +\n    \"ITaskFactory \" +\n    \"ITaskInfo \" +\n    \"ITaskRoute \" +\n    \"ITextCriterion \" +\n    \"ITextRequisite \" +\n    \"ITextValue \" +\n    \"ITreeListSelectDialog \" +\n    \"IUser \" +\n    \"IUserList \" +\n    \"IValue \" +\n    \"IView \" +\n    \"IWebBrowserControl \" +\n    \"IWizard \" +\n    \"IWizardAction \" +\n    \"IWizardFactory \" +\n    \"IWizardFormElement \" +\n    \"IWizardParam \" +\n    \"IWizardPickParam \" +\n    \"IWizardReferenceParam \" +\n    \"IWizardStep \" +\n    \"IWorkAccessRights \" +\n    \"IWorkDescription \" +\n    \"IWorkflowAskableParam \" +\n    \"IWorkflowAskableParams \" +\n    \"IWorkflowBlock \" +\n    \"IWorkflowBlockResult \" +\n    \"IWorkflowEnabledMode \" +\n    \"IWorkflowParam \" +\n    \"IWorkflowPickParam \" +\n    \"IWorkflowReferenceParam \" +\n    \"IWorkState \" +\n    \"IWorkTreeCustomNode \" +\n    \"IWorkTreeJobNode \" +\n    \"IWorkTreeTaskNode \" +\n    \"IXMLEditorForm \" +\n    \"SBCrypto \";\n\n  // built_in : встроенные или библиотечные объекты (константы, перечисления)\n  const BUILTIN = CONSTANTS + ENUMS;\n\n  // class: встроенные наборы значений, системные объекты, фабрики\n  const CLASS = predefined_variables;\n\n  // literal : примитивные типы\n  const LITERAL = \"null true false nil \";\n\n  // number : числа\n  const NUMBERS = {\n    className: \"number\",\n    begin: hljs.NUMBER_RE,\n    relevance: 0\n  };\n\n  // string : строки\n  const STRINGS = {\n    className: \"string\",\n    variants: [\n      {\n        begin: '\"',\n        end: '\"'\n      },\n      {\n        begin: \"'\",\n        end: \"'\"\n      }\n    ]\n  };\n\n  // Токены\n  const DOCTAGS = {\n    className: \"doctag\",\n    begin: \"\\\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\\\b\",\n    relevance: 0\n  };\n\n  // Однострочный комментарий\n  const ISBL_LINE_COMMENT_MODE = {\n    className: \"comment\",\n    begin: \"//\",\n    end: \"$\",\n    relevance: 0,\n    contains: [\n      hljs.PHRASAL_WORDS_MODE,\n      DOCTAGS\n    ]\n  };\n\n  // Многострочный комментарий\n  const ISBL_BLOCK_COMMENT_MODE = {\n    className: \"comment\",\n    begin: \"/\\\\*\",\n    end: \"\\\\*/\",\n    relevance: 0,\n    contains: [\n      hljs.PHRASAL_WORDS_MODE,\n      DOCTAGS\n    ]\n  };\n\n  // comment : комментарии\n  const COMMENTS = {\n    variants: [\n      ISBL_LINE_COMMENT_MODE,\n      ISBL_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  // keywords : ключевые слова\n  const KEYWORDS = {\n    $pattern: UNDERSCORE_IDENT_RE,\n    keyword: KEYWORD,\n    built_in: BUILTIN,\n    class: CLASS,\n    literal: LITERAL\n  };\n\n  // methods : методы\n  const METHODS = {\n    begin: \"\\\\.\\\\s*\" + hljs.UNDERSCORE_IDENT_RE,\n    keywords: KEYWORDS,\n    relevance: 0\n  };\n\n  // type : встроенные типы\n  const TYPES = {\n    className: \"type\",\n    begin: \":[ \\\\t]*(\" + interfaces.trim().replace(/\\s/g, \"|\") + \")\",\n    end: \"[ \\\\t]*=\",\n    excludeEnd: true\n  };\n\n  // variables : переменные\n  const VARIABLES = {\n    className: \"variable\",\n    keywords: KEYWORDS,\n    begin: UNDERSCORE_IDENT_RE,\n    relevance: 0,\n    contains: [\n      TYPES,\n      METHODS\n    ]\n  };\n\n  // Имена функций\n  const FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + \"\\\\(\";\n\n  const TITLE_MODE = {\n    className: \"title\",\n    keywords: {\n      $pattern: UNDERSCORE_IDENT_RE,\n      built_in: system_functions\n    },\n    begin: FUNCTION_TITLE,\n    end: \"\\\\(\",\n    returnBegin: true,\n    excludeEnd: true\n  };\n\n  // function : функции\n  const FUNCTIONS = {\n    className: \"function\",\n    begin: FUNCTION_TITLE,\n    end: \"\\\\)$\",\n    returnBegin: true,\n    keywords: KEYWORDS,\n    illegal: \"[\\\\[\\\\]\\\\|\\\\$\\\\?%,~#@]\",\n    contains: [\n      TITLE_MODE,\n      METHODS,\n      VARIABLES,\n      STRINGS,\n      NUMBERS,\n      COMMENTS\n    ]\n  };\n\n  return {\n    name: 'ISBL',\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    illegal: \"\\\\$|\\\\?|%|,|;$|~|#|@|\nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\nfunction java(hljs) {\n  var JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n  var GENERIC_IDENT_RE = JAVA_IDENT_RE + '(<' + JAVA_IDENT_RE + '(\\\\s*,\\\\s*' + JAVA_IDENT_RE + ')*>)?';\n  var KEYWORDS = 'false synchronized int abstract float private char boolean var static null if const ' +\n    'for true while long strictfp finally protected import native final void ' +\n    'enum else break transient catch instanceof byte super volatile case assert short ' +\n    'package default double public try this switch continue throws protected public private ' +\n    'module requires exports do';\n\n  var ANNOTATION = {\n    className: 'meta',\n    begin: '@' + JAVA_IDENT_RE,\n    contains: [\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        contains: [\"self\"] // allow nested () inside our annotation\n      },\n    ]\n  };\n  const NUMBER = NUMERIC;\n\n  return {\n    name: 'Java',\n    aliases: ['jsp'],\n    keywords: KEYWORDS,\n    illegal: /<\\/|#/,\n    contains: [\n      hljs.COMMENT(\n        '/\\\\*\\\\*',\n        '\\\\*/',\n        {\n          relevance: 0,\n          contains: [\n            {\n              // eat up @'s in emails to prevent them to be recognized as doctags\n              begin: /\\w+@/, relevance: 0\n            },\n            {\n              className: 'doctag',\n              begin: '@[A-Za-z]+'\n            }\n          ]\n        }\n      ),\n      // relevance boost\n      {\n        begin: /import java\\.[a-z]+\\./,\n        keywords: \"import\",\n        relevance: 2\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'class',\n        beginKeywords: 'class interface enum', end: /[{;=]/, excludeEnd: true,\n        // TODO: can this be removed somehow?\n        // an extra boost because Java is more popular than other languages with\n        // this same syntax feature (this is just to preserve our tests passing\n        // for now)\n        relevance: 1,\n        keywords: 'class interface enum',\n        illegal: /[:\"\\[\\]]/,\n        contains: [\n          { beginKeywords: 'extends implements' },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        // Expression keywords prevent 'keyword Name(...)' from being\n        // recognized as a function definition\n        beginKeywords: 'new throw return else',\n        relevance: 0\n      },\n      {\n        className: 'class',\n        begin: 'record\\\\s+' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n        returnBegin: true,\n        excludeEnd: true,\n        end: /[{;=]/,\n        keywords: KEYWORDS,\n        contains: [\n          { beginKeywords: \"record\" },\n          {\n            begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n            returnBegin: true,\n            relevance: 0,\n            contains: [hljs.UNDERSCORE_TITLE_MODE]\n          },\n          {\n            className: 'params',\n            begin: /\\(/, end: /\\)/,\n            keywords: KEYWORDS,\n            relevance: 0,\n            contains: [\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          },\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      {\n        className: 'function',\n        begin: '(' + GENERIC_IDENT_RE + '\\\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(', returnBegin: true, end: /[{;=]/,\n        excludeEnd: true,\n        keywords: KEYWORDS,\n        contains: [\n          {\n            begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(', returnBegin: true,\n            relevance: 0,\n            contains: [hljs.UNDERSCORE_TITLE_MODE]\n          },\n          {\n            className: 'params',\n            begin: /\\(/, end: /\\)/,\n            keywords: KEYWORDS,\n            relevance: 0,\n            contains: [\n              ANNOTATION,\n              hljs.APOS_STRING_MODE,\n              hljs.QUOTE_STRING_MODE,\n              NUMBER,\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          },\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      NUMBER,\n      ANNOTATION\n    ]\n  };\n}\n\nmodule.exports = java;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n  \"as\", // for exports\n  \"in\",\n  \"of\",\n  \"if\",\n  \"for\",\n  \"while\",\n  \"finally\",\n  \"var\",\n  \"new\",\n  \"function\",\n  \"do\",\n  \"return\",\n  \"void\",\n  \"else\",\n  \"break\",\n  \"catch\",\n  \"instanceof\",\n  \"with\",\n  \"throw\",\n  \"case\",\n  \"default\",\n  \"try\",\n  \"switch\",\n  \"continue\",\n  \"typeof\",\n  \"delete\",\n  \"let\",\n  \"yield\",\n  \"const\",\n  \"class\",\n  // JS handles these with a special rule\n  // \"get\",\n  // \"set\",\n  \"debugger\",\n  \"async\",\n  \"await\",\n  \"static\",\n  \"import\",\n  \"from\",\n  \"export\",\n  \"extends\"\n];\nconst LITERALS = [\n  \"true\",\n  \"false\",\n  \"null\",\n  \"undefined\",\n  \"NaN\",\n  \"Infinity\"\n];\n\nconst TYPES = [\n  \"Intl\",\n  \"DataView\",\n  \"Number\",\n  \"Math\",\n  \"Date\",\n  \"String\",\n  \"RegExp\",\n  \"Object\",\n  \"Function\",\n  \"Boolean\",\n  \"Error\",\n  \"Symbol\",\n  \"Set\",\n  \"Map\",\n  \"WeakSet\",\n  \"WeakMap\",\n  \"Proxy\",\n  \"Reflect\",\n  \"JSON\",\n  \"Promise\",\n  \"Float64Array\",\n  \"Int16Array\",\n  \"Int32Array\",\n  \"Int8Array\",\n  \"Uint16Array\",\n  \"Uint32Array\",\n  \"Float32Array\",\n  \"Array\",\n  \"Uint8Array\",\n  \"Uint8ClampedArray\",\n  \"ArrayBuffer\",\n  \"BigInt64Array\",\n  \"BigUint64Array\",\n  \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n  \"EvalError\",\n  \"InternalError\",\n  \"RangeError\",\n  \"ReferenceError\",\n  \"SyntaxError\",\n  \"TypeError\",\n  \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n  \"setInterval\",\n  \"setTimeout\",\n  \"clearInterval\",\n  \"clearTimeout\",\n\n  \"require\",\n  \"exports\",\n\n  \"eval\",\n  \"isFinite\",\n  \"isNaN\",\n  \"parseFloat\",\n  \"parseInt\",\n  \"decodeURI\",\n  \"decodeURIComponent\",\n  \"encodeURI\",\n  \"encodeURIComponent\",\n  \"escape\",\n  \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n  \"arguments\",\n  \"this\",\n  \"super\",\n  \"console\",\n  \"window\",\n  \"document\",\n  \"localStorage\",\n  \"module\",\n  \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n  BUILT_IN_GLOBALS,\n  BUILT_IN_VARIABLES,\n  TYPES,\n  ERROR_TYPES\n);\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n  /**\n   * Takes a string like \" {\n    const tag = \"',\n    end: ''\n  };\n  const XML_TAG = {\n    begin: /<[A-Za-z0-9\\\\._:-]+/,\n    end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n    /**\n     * @param {RegExpMatchArray} match\n     * @param {CallbackResponse} response\n     */\n    isTrulyOpeningTag: (match, response) => {\n      const afterMatchIndex = match[0].length + match.index;\n      const nextChar = match.input[afterMatchIndex];\n      // nested type?\n      // HTML should not include another raw `<` inside a tag\n      // But a type might: `>`, etc.\n      if (nextChar === \"<\") {\n        response.ignoreMatch();\n        return;\n      }\n      // \n      // This is now either a tag or a type.\n      if (nextChar === \">\") {\n        // if we cannot find a matching closing tag, then we\n        // will ignore it\n        if (!hasClosingTag(match, { after: afterMatchIndex })) {\n          response.ignoreMatch();\n        }\n      }\n    }\n  };\n  const KEYWORDS$1 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS,\n    literal: LITERALS,\n    built_in: BUILT_INS\n  };\n\n  // https://tc39.es/ecma262/#sec-literals-numeric-literals\n  const decimalDigits = '[0-9](_?[0-9])*';\n  const frac = `\\\\.(${decimalDigits})`;\n  // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n  // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n  const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      // DecimalLiteral\n      { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n        `[eE][+-]?(${decimalDigits})\\\\b` },\n      { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n      // DecimalBigIntegerLiteral\n      { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n      // NonDecimalIntegerLiteral\n      { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n      { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n      { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n      // LegacyOctalIntegerLiteral (does not include underscore separators)\n      // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n      { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n    ],\n    relevance: 0\n  };\n\n  const SUBST = {\n    className: 'subst',\n    begin: '\\\\$\\\\{',\n    end: '\\\\}',\n    keywords: KEYWORDS$1,\n    contains: [] // defined later\n  };\n  const HTML_TEMPLATE = {\n    begin: 'html`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: 'xml'\n    }\n  };\n  const CSS_TEMPLATE = {\n    begin: 'css`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: 'css'\n    }\n  };\n  const TEMPLATE_STRING = {\n    className: 'string',\n    begin: '`',\n    end: '`',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ]\n  };\n  const JSDOC_COMMENT = hljs.COMMENT(\n    /\\/\\*\\*(?!\\/)/,\n    '\\\\*/',\n    {\n      relevance: 0,\n      contains: [\n        {\n          className: 'doctag',\n          begin: '@[A-Za-z]+',\n          contains: [\n            {\n              className: 'type',\n              begin: '\\\\{',\n              end: '\\\\}',\n              relevance: 0\n            },\n            {\n              className: 'variable',\n              begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n              endsParent: true,\n              relevance: 0\n            },\n            // eat spaces (not newlines) so we can find\n            // types or variables\n            {\n              begin: /(?=[^\\n])\\s/,\n              relevance: 0\n            }\n          ]\n        }\n      ]\n    }\n  );\n  const COMMENT = {\n    className: \"comment\",\n    variants: [\n      JSDOC_COMMENT,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_LINE_COMMENT_MODE\n    ]\n  };\n  const SUBST_INTERNALS = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    HTML_TEMPLATE,\n    CSS_TEMPLATE,\n    TEMPLATE_STRING,\n    NUMBER,\n    hljs.REGEXP_MODE\n  ];\n  SUBST.contains = SUBST_INTERNALS\n    .concat({\n      // we need to pair up {} inside our subst to prevent\n      // it from ending too early by matching another }\n      begin: /\\{/,\n      end: /\\}/,\n      keywords: KEYWORDS$1,\n      contains: [\n        \"self\"\n      ].concat(SUBST_INTERNALS)\n    });\n  const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n  const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n    // eat recursive parens in sub expressions\n    {\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS$1,\n      contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n    }\n  ]);\n  const PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true,\n    keywords: KEYWORDS$1,\n    contains: PARAMS_CONTAINS\n  };\n\n  return {\n    name: 'Javascript',\n    aliases: ['js', 'jsx', 'mjs', 'cjs'],\n    keywords: KEYWORDS$1,\n    // this will be extended by TypeScript\n    exports: { PARAMS_CONTAINS },\n    illegal: /#(?![$_A-z])/,\n    contains: [\n      hljs.SHEBANG({\n        label: \"shebang\",\n        binary: \"node\",\n        relevance: 5\n      }),\n      {\n        label: \"use_strict\",\n        className: 'meta',\n        relevance: 10,\n        begin: /^\\s*['\"]use (strict|asm)['\"]/\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      HTML_TEMPLATE,\n      CSS_TEMPLATE,\n      TEMPLATE_STRING,\n      COMMENT,\n      NUMBER,\n      { // object attr container\n        begin: concat(/[{,\\n]\\s*/,\n          // we need to look ahead to make sure that we actually have an\n          // attribute coming up so we don't steal a comma from a potential\n          // \"value\" container\n          //\n          // NOTE: this might not work how you think.  We don't actually always\n          // enter this mode and stay.  Instead it might merely match `,\n          // ` and then immediately end after the , because it\n          // fails to find any actual attrs. But this still does the job because\n          // it prevents the value contain rule from grabbing this instead and\n          // prevening this rule from firing when we actually DO have keys.\n          lookahead(concat(\n            // we also need to allow for multiple possible comments inbetween\n            // the first key:value pairing\n            /(((\\/\\/.*$)|(\\/\\*(\\*[^/]|[^*])*\\*\\/))\\s*)*/,\n            IDENT_RE$1 + '\\\\s*:'))),\n        relevance: 0,\n        contains: [\n          {\n            className: 'attr',\n            begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n            relevance: 0\n          }\n        ]\n      },\n      { // \"value\" container\n        begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n        keywords: 'return throw case',\n        contains: [\n          COMMENT,\n          hljs.REGEXP_MODE,\n          {\n            className: 'function',\n            // we have to count the parens to make sure we actually have the\n            // correct bounding ( ) before the =>.  There could be any number of\n            // sub-expressions inside also surrounded by parens.\n            begin: '(\\\\(' +\n            '[^()]*(\\\\(' +\n            '[^()]*(\\\\(' +\n            '[^()]*' +\n            '\\\\)[^()]*)*' +\n            '\\\\)[^()]*)*' +\n            '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n            returnBegin: true,\n            end: '\\\\s*=>',\n            contains: [\n              {\n                className: 'params',\n                variants: [\n                  {\n                    begin: hljs.UNDERSCORE_IDENT_RE,\n                    relevance: 0\n                  },\n                  {\n                    className: null,\n                    begin: /\\(\\s*\\)/,\n                    skip: true\n                  },\n                  {\n                    begin: /\\(/,\n                    end: /\\)/,\n                    excludeBegin: true,\n                    excludeEnd: true,\n                    keywords: KEYWORDS$1,\n                    contains: PARAMS_CONTAINS\n                  }\n                ]\n              }\n            ]\n          },\n          { // could be a comma delimited list of params to a function call\n            begin: /,/, relevance: 0\n          },\n          {\n            className: '',\n            begin: /\\s/,\n            end: /\\s*/,\n            skip: true\n          },\n          { // JSX\n            variants: [\n              { begin: FRAGMENT.begin, end: FRAGMENT.end },\n              {\n                begin: XML_TAG.begin,\n                // we carefully check the opening tag to see if it truly\n                // is a tag and not a false positive\n                'on:begin': XML_TAG.isTrulyOpeningTag,\n                end: XML_TAG.end\n              }\n            ],\n            subLanguage: 'xml',\n            contains: [\n              {\n                begin: XML_TAG.begin,\n                end: XML_TAG.end,\n                skip: true,\n                contains: ['self']\n              }\n            ]\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: /[{;]/,\n        excludeEnd: true,\n        keywords: KEYWORDS$1,\n        contains: [\n          'self',\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n          PARAMS\n        ],\n        illegal: /%/\n      },\n      {\n        // prevent this from getting swallowed up by function\n        // since they appear \"function like\"\n        beginKeywords: \"while if switch catch for\"\n      },\n      {\n        className: 'function',\n        // we have to count the parens to make sure we actually have the correct\n        // bounding ( ).  There could be any number of sub-expressions inside\n        // also surrounded by parens.\n        begin: hljs.UNDERSCORE_IDENT_RE +\n          '\\\\(' + // first parens\n          '[^()]*(\\\\(' +\n            '[^()]*(\\\\(' +\n              '[^()]*' +\n            '\\\\)[^()]*)*' +\n          '\\\\)[^()]*)*' +\n          '\\\\)\\\\s*\\\\{', // end parens\n        returnBegin:true,\n        contains: [\n          PARAMS,\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n        ]\n      },\n      // hack: prevents detection of keywords in some circumstances\n      // .keyword()\n      // $keyword = x\n      {\n        variants: [\n          { begin: '\\\\.' + IDENT_RE$1 },\n          { begin: '\\\\$' + IDENT_RE$1 }\n        ],\n        relevance: 0\n      },\n      { // ES6 class\n        className: 'class',\n        beginKeywords: 'class',\n        end: /[{;=]/,\n        excludeEnd: true,\n        illegal: /[:\"[\\]]/,\n        contains: [\n          { beginKeywords: 'extends' },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        begin: /\\b(?=constructor)/,\n        end: /[{;]/,\n        excludeEnd: true,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n          'self',\n          PARAMS\n        ]\n      },\n      {\n        begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n        end: /\\{/,\n        keywords: \"get set\",\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n          { begin: /\\(\\)/ }, // eat to avoid empty params\n          PARAMS\n        ]\n      },\n      {\n        begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n      }\n    ]\n  };\n}\n\nmodule.exports = javascript;\n","/*\n Language: JBoss CLI\n Author: Raphaël Parrëe \n Description: language definition jboss cli\n Website: https://docs.jboss.org/author/display/WFLY/Command+Line+Interface\n Category: config\n */\n\nfunction jbossCli(hljs) {\n  const PARAM = {\n    begin: /[\\w-]+ *=/,\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      {\n        className: 'attr',\n        begin: /[\\w-]+/\n      }\n    ]\n  };\n  const PARAMSBLOCK = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    contains: [PARAM],\n    relevance: 0\n  };\n  const OPERATION = {\n    className: 'function',\n    begin: /:[\\w\\-.]+/,\n    relevance: 0\n  };\n  const PATH = {\n    className: 'string',\n    begin: /\\B([\\/.])[\\w\\-.\\/=]+/\n  };\n  const COMMAND_PARAMS = {\n    className: 'params',\n    begin: /--[\\w\\-=\\/]+/\n  };\n  return {\n    name: 'JBoss CLI',\n    aliases: ['wildfly-cli'],\n    keywords: {\n      $pattern: '[a-z\\-]+',\n      keyword: 'alias batch cd clear command connect connection-factory connection-info data-source deploy ' +\n      'deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls ' +\n      'patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias ' +\n      'undeploy unset version xa-data-source', // module\n      literal: 'true false'\n    },\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      COMMAND_PARAMS,\n      OPERATION,\n      PATH,\n      PARAMSBLOCK\n    ]\n  };\n}\n\nmodule.exports = jbossCli;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev \nWebsite: http://www.json.org\nCategory: common, protocols\n*/\n\nfunction json(hljs) {\n  const LITERALS = {\n    literal: 'true false null'\n  };\n  const ALLOWED_COMMENTS = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE\n  ];\n  const TYPES = [\n    hljs.QUOTE_STRING_MODE,\n    hljs.C_NUMBER_MODE\n  ];\n  const VALUE_CONTAINER = {\n    end: ',',\n    endsWithParent: true,\n    excludeEnd: true,\n    contains: TYPES,\n    keywords: LITERALS\n  };\n  const OBJECT = {\n    begin: /\\{/,\n    end: /\\}/,\n    contains: [\n      {\n        className: 'attr',\n        begin: /\"/,\n        end: /\"/,\n        contains: [hljs.BACKSLASH_ESCAPE],\n        illegal: '\\\\n'\n      },\n      hljs.inherit(VALUE_CONTAINER, {\n        begin: /:/\n      })\n    ].concat(ALLOWED_COMMENTS),\n    illegal: '\\\\S'\n  };\n  const ARRAY = {\n    begin: '\\\\[',\n    end: '\\\\]',\n    contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents\n    illegal: '\\\\S'\n  };\n  TYPES.push(OBJECT, ARRAY);\n  ALLOWED_COMMENTS.forEach(function(rule) {\n    TYPES.push(rule);\n  });\n  return {\n    name: 'JSON',\n    contains: TYPES,\n    keywords: LITERALS,\n    illegal: '\\\\S'\n  };\n}\n\nmodule.exports = json;\n","/*\nLanguage: Julia REPL\nDescription: Julia REPL sessions\nAuthor: Morten Piibeleht \nWebsite: https://julialang.org\nRequires: julia.js\n\nThe Julia REPL code blocks look something like the following:\n\n  julia> function foo(x)\n             x + 1\n         end\n  foo (generic function with 1 method)\n\nThey start on a new line with \"julia>\". Usually there should also be a space after this, but\nwe also allow the code to start right after the > character. The code may run over multiple\nlines, but the additional lines must start with six spaces (i.e. be indented to match\n\"julia>\"). The rest of the code is assumed to be output from the executed code and will be\nleft un-highlighted.\n\nUsing simply spaces to identify line continuations may get a false-positive if the output\nalso prints out six spaces, but such cases should be rare.\n*/\n\nfunction juliaRepl(hljs) {\n  return {\n    name: 'Julia REPL',\n    contains: [\n      {\n        className: 'meta',\n        begin: /^julia>/,\n        relevance: 10,\n        starts: {\n          // end the highlighting if we are on a new line and the line does not have at\n          // least six spaces in the beginning\n          end: /^(?![ ]{6})/,\n          subLanguage: 'julia'\n      },\n      // jldoctest Markdown blocks are used in the Julia manual and package docs indicate\n      // code snippets that should be verified when the documentation is built. They can be\n      // either REPL-like or script-like, but are usually REPL-like and therefore we apply\n      // julia-repl highlighting to them. More information can be found in Documenter's\n      // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html\n      aliases: ['jldoctest']\n      }\n    ]\n  }\n}\n\nmodule.exports = juliaRepl;\n","/*\nLanguage: Julia\nDescription: Julia is a high-level, high-performance, dynamic programming language.\nAuthor: Kenta Sato \nContributors: Alex Arslan , Fredrik Ekre \nWebsite: https://julialang.org\n*/\n\nfunction julia(hljs) {\n  // Since there are numerous special names in Julia, it is too much trouble\n  // to maintain them by hand. Hence these names (i.e. keywords, literals and\n  // built-ins) are automatically generated from Julia 1.5.2 itself through\n  // the following scripts for each.\n\n  // ref: https://docs.julialang.org/en/v1/manual/variables/#Allowed-Variable-Names\n  var VARIABLE_NAME_RE = '[A-Za-z_\\\\u00A1-\\\\uFFFF][A-Za-z_0-9\\\\u00A1-\\\\uFFFF]*';\n\n  // # keyword generator, multi-word keywords handled manually below (Julia 1.5.2)\n  // import REPL.REPLCompletions\n  // res = String[\"in\", \"isa\", \"where\"]\n  // for kw in collect(x.keyword for x in REPLCompletions.complete_keyword(\"\"))\n  //     if !(contains(kw, \" \") || kw == \"struct\")\n  //         push!(res, kw)\n  //     end\n  // end\n  // sort!(unique!(res))\n  // foreach(x -> println(\"\\'\", x, \"\\',\"), res)\n  var KEYWORD_LIST = [\n    'baremodule',\n    'begin',\n    'break',\n    'catch',\n    'ccall',\n    'const',\n    'continue',\n    'do',\n    'else',\n    'elseif',\n    'end',\n    'export',\n    'false',\n    'finally',\n    'for',\n    'function',\n    'global',\n    'if',\n    'import',\n    'in',\n    'isa',\n    'let',\n    'local',\n    'macro',\n    'module',\n    'quote',\n    'return',\n    'true',\n    'try',\n    'using',\n    'where',\n    'while',\n  ];\n\n  // # literal generator (Julia 1.5.2)\n  // import REPL.REPLCompletions\n  // res = String[\"true\", \"false\"]\n  // for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent === Base || x.parent === Core),\n  //                     REPLCompletions.completions(\"\", 0)[1])\n  //     try\n  //         v = eval(Symbol(compl.mod))\n  //         if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon)\n  //             push!(res, compl.mod)\n  //         end\n  //     catch e\n  //     end\n  // end\n  // sort!(unique!(res))\n  // foreach(x -> println(\"\\'\", x, \"\\',\"), res)\n  var LITERAL_LIST = [\n    'ARGS',\n    'C_NULL',\n    'DEPOT_PATH',\n    'ENDIAN_BOM',\n    'ENV',\n    'Inf',\n    'Inf16',\n    'Inf32',\n    'Inf64',\n    'InsertionSort',\n    'LOAD_PATH',\n    'MergeSort',\n    'NaN',\n    'NaN16',\n    'NaN32',\n    'NaN64',\n    'PROGRAM_FILE',\n    'QuickSort',\n    'RoundDown',\n    'RoundFromZero',\n    'RoundNearest',\n    'RoundNearestTiesAway',\n    'RoundNearestTiesUp',\n    'RoundToZero',\n    'RoundUp',\n    'VERSION|0',\n    'devnull',\n    'false',\n    'im',\n    'missing',\n    'nothing',\n    'pi',\n    'stderr',\n    'stdin',\n    'stdout',\n    'true',\n    'undef',\n    'π',\n    'ℯ',\n  ];\n\n  // # built_in generator (Julia 1.5.2)\n  // import REPL.REPLCompletions\n  // res = String[]\n  // for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent === Base || x.parent === Core),\n  //                     REPLCompletions.completions(\"\", 0)[1])\n  //     try\n  //         v = eval(Symbol(compl.mod))\n  //         if (v isa Type || v isa TypeVar) && (compl.mod != \"=>\")\n  //             push!(res, compl.mod)\n  //         end\n  //     catch e\n  //     end\n  // end\n  // sort!(unique!(res))\n  // foreach(x -> println(\"\\'\", x, \"\\',\"), res)\n  var BUILT_IN_LIST = [\n    'AbstractArray',\n    'AbstractChannel',\n    'AbstractChar',\n    'AbstractDict',\n    'AbstractDisplay',\n    'AbstractFloat',\n    'AbstractIrrational',\n    'AbstractMatrix',\n    'AbstractRange',\n    'AbstractSet',\n    'AbstractString',\n    'AbstractUnitRange',\n    'AbstractVecOrMat',\n    'AbstractVector',\n    'Any',\n    'ArgumentError',\n    'Array',\n    'AssertionError',\n    'BigFloat',\n    'BigInt',\n    'BitArray',\n    'BitMatrix',\n    'BitSet',\n    'BitVector',\n    'Bool',\n    'BoundsError',\n    'CapturedException',\n    'CartesianIndex',\n    'CartesianIndices',\n    'Cchar',\n    'Cdouble',\n    'Cfloat',\n    'Channel',\n    'Char',\n    'Cint',\n    'Cintmax_t',\n    'Clong',\n    'Clonglong',\n    'Cmd',\n    'Colon',\n    'Complex',\n    'ComplexF16',\n    'ComplexF32',\n    'ComplexF64',\n    'CompositeException',\n    'Condition',\n    'Cptrdiff_t',\n    'Cshort',\n    'Csize_t',\n    'Cssize_t',\n    'Cstring',\n    'Cuchar',\n    'Cuint',\n    'Cuintmax_t',\n    'Culong',\n    'Culonglong',\n    'Cushort',\n    'Cvoid',\n    'Cwchar_t',\n    'Cwstring',\n    'DataType',\n    'DenseArray',\n    'DenseMatrix',\n    'DenseVecOrMat',\n    'DenseVector',\n    'Dict',\n    'DimensionMismatch',\n    'Dims',\n    'DivideError',\n    'DomainError',\n    'EOFError',\n    'Enum',\n    'ErrorException',\n    'Exception',\n    'ExponentialBackOff',\n    'Expr',\n    'Float16',\n    'Float32',\n    'Float64',\n    'Function',\n    'GlobalRef',\n    'HTML',\n    'IO',\n    'IOBuffer',\n    'IOContext',\n    'IOStream',\n    'IdDict',\n    'IndexCartesian',\n    'IndexLinear',\n    'IndexStyle',\n    'InexactError',\n    'InitError',\n    'Int',\n    'Int128',\n    'Int16',\n    'Int32',\n    'Int64',\n    'Int8',\n    'Integer',\n    'InterruptException',\n    'InvalidStateException',\n    'Irrational',\n    'KeyError',\n    'LinRange',\n    'LineNumberNode',\n    'LinearIndices',\n    'LoadError',\n    'MIME',\n    'Matrix',\n    'Method',\n    'MethodError',\n    'Missing',\n    'MissingException',\n    'Module',\n    'NTuple',\n    'NamedTuple',\n    'Nothing',\n    'Number',\n    'OrdinalRange',\n    'OutOfMemoryError',\n    'OverflowError',\n    'Pair',\n    'PartialQuickSort',\n    'PermutedDimsArray',\n    'Pipe',\n    'ProcessFailedException',\n    'Ptr',\n    'QuoteNode',\n    'Rational',\n    'RawFD',\n    'ReadOnlyMemoryError',\n    'Real',\n    'ReentrantLock',\n    'Ref',\n    'Regex',\n    'RegexMatch',\n    'RoundingMode',\n    'SegmentationFault',\n    'Set',\n    'Signed',\n    'Some',\n    'StackOverflowError',\n    'StepRange',\n    'StepRangeLen',\n    'StridedArray',\n    'StridedMatrix',\n    'StridedVecOrMat',\n    'StridedVector',\n    'String',\n    'StringIndexError',\n    'SubArray',\n    'SubString',\n    'SubstitutionString',\n    'Symbol',\n    'SystemError',\n    'Task',\n    'TaskFailedException',\n    'Text',\n    'TextDisplay',\n    'Timer',\n    'Tuple',\n    'Type',\n    'TypeError',\n    'TypeVar',\n    'UInt',\n    'UInt128',\n    'UInt16',\n    'UInt32',\n    'UInt64',\n    'UInt8',\n    'UndefInitializer',\n    'UndefKeywordError',\n    'UndefRefError',\n    'UndefVarError',\n    'Union',\n    'UnionAll',\n    'UnitRange',\n    'Unsigned',\n    'Val',\n    'Vararg',\n    'VecElement',\n    'VecOrMat',\n    'Vector',\n    'VersionNumber',\n    'WeakKeyDict',\n    'WeakRef',\n  ];\n\n  var KEYWORDS = {\n    $pattern: VARIABLE_NAME_RE,\n    keyword: KEYWORD_LIST,\n    literal: LITERAL_LIST,\n    built_in: BUILT_IN_LIST,\n  };\n\n  // placeholder for recursive self-reference\n  var DEFAULT = {\n    keywords: KEYWORDS, illegal: /<\\//\n  };\n\n  // ref: https://docs.julialang.org/en/v1/manual/integers-and-floating-point-numbers/\n  var NUMBER = {\n    className: 'number',\n    // supported numeric literals:\n    //  * binary literal (e.g. 0x10)\n    //  * octal literal (e.g. 0o76543210)\n    //  * hexadecimal literal (e.g. 0xfedcba876543210)\n    //  * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)\n    //  * decimal literal (e.g. 9876543210, 100_000_000)\n    //  * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)\n    begin: /(\\b0x[\\d_]*(\\.[\\d_]*)?|0x\\.\\d[\\d_]*)p[-+]?\\d+|\\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\\b\\d[\\d_]*(\\.[\\d_]*)?|\\.\\d[\\d_]*)([eEfF][-+]?\\d+)?/,\n    relevance: 0\n  };\n\n  var CHAR = {\n    className: 'string',\n    begin: /'(.|\\\\[xXuU][a-zA-Z0-9]+)'/\n  };\n\n  var INTERPOLATION = {\n    className: 'subst',\n    begin: /\\$\\(/, end: /\\)/,\n    keywords: KEYWORDS\n  };\n\n  var INTERPOLATED_VARIABLE = {\n    className: 'variable',\n    begin: '\\\\$' + VARIABLE_NAME_RE\n  };\n\n  // TODO: neatly escape normal code in string literal\n  var STRING = {\n    className: 'string',\n    contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],\n    variants: [\n      { begin: /\\w*\"\"\"/, end: /\"\"\"\\w*/, relevance: 10 },\n      { begin: /\\w*\"/, end: /\"\\w*/ }\n    ]\n  };\n\n  var COMMAND = {\n    className: 'string',\n    contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],\n    begin: '`', end: '`'\n  };\n\n  var MACROCALL = {\n    className: 'meta',\n    begin: '@' + VARIABLE_NAME_RE\n  };\n\n  var COMMENT = {\n    className: 'comment',\n    variants: [\n      { begin: '#=', end: '=#', relevance: 10 },\n      { begin: '#', end: '$' }\n    ]\n  };\n\n  DEFAULT.name = 'Julia';\n  DEFAULT.contains = [\n    NUMBER,\n    CHAR,\n    STRING,\n    COMMAND,\n    MACROCALL,\n    COMMENT,\n    hljs.HASH_COMMENT_MODE,\n    {\n      className: 'keyword',\n      begin:\n        '\\\\b(((abstract|primitive)\\\\s+)type|(mutable\\\\s+)?struct)\\\\b'\n    },\n    {begin: /<:/}  // relevance booster\n  ];\n  INTERPOLATION.contains = DEFAULT.contains;\n\n  return DEFAULT;\n}\n\nmodule.exports = julia;\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n  className: 'number',\n  variants: [\n    // DecimalFloatingPointLiteral\n    // including ExponentPart\n    { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n      `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n    // excluding ExponentPart\n    { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n    { begin: `(${frac})[fFdD]?\\\\b` },\n    { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n    // HexadecimalFloatingPointLiteral\n    { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n      `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n    // DecimalIntegerLiteral\n    { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n    // HexIntegerLiteral\n    { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n    // OctalIntegerLiteral\n    { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n    // BinaryIntegerLiteral\n    { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n  ],\n  relevance: 0\n};\n\n/*\n Language: Kotlin\n Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.\n Author: Sergey Mashkov \n Website: https://kotlinlang.org\n Category: common\n */\n\nfunction kotlin(hljs) {\n  const KEYWORDS = {\n    keyword:\n      'abstract as val var vararg get set class object open private protected public noinline ' +\n      'crossinline dynamic final enum if else do while for when throw try catch finally ' +\n      'import package is in fun override companion reified inline lateinit init ' +\n      'interface annotation data sealed internal infix operator out by constructor super ' +\n      'tailrec where const inner suspend typealias external expect actual',\n    built_in:\n      'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',\n    literal:\n      'true false null'\n  };\n  const KEYWORDS_WITH_LABEL = {\n    className: 'keyword',\n    begin: /\\b(break|continue|return|this)\\b/,\n    starts: {\n      contains: [\n        {\n          className: 'symbol',\n          begin: /@\\w+/\n        }\n      ]\n    }\n  };\n  const LABEL = {\n    className: 'symbol',\n    begin: hljs.UNDERSCORE_IDENT_RE + '@'\n  };\n\n  // for string templates\n  const SUBST = {\n    className: 'subst',\n    begin: /\\$\\{/,\n    end: /\\}/,\n    contains: [ hljs.C_NUMBER_MODE ]\n  };\n  const VARIABLE = {\n    className: 'variable',\n    begin: '\\\\$' + hljs.UNDERSCORE_IDENT_RE\n  };\n  const STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: '\"\"\"',\n        end: '\"\"\"(?=[^\"])',\n        contains: [\n          VARIABLE,\n          SUBST\n        ]\n      },\n      // Can't use built-in modes easily, as we want to use STRING in the meta\n      // context as 'meta-string' and there's no syntax to remove explicitly set\n      // classNames in built-in modes.\n      {\n        begin: '\\'',\n        end: '\\'',\n        illegal: /\\n/,\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: '\"',\n        end: '\"',\n        illegal: /\\n/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          VARIABLE,\n          SUBST\n        ]\n      }\n    ]\n  };\n  SUBST.contains.push(STRING);\n\n  const ANNOTATION_USE_SITE = {\n    className: 'meta',\n    begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'\n  };\n  const ANNOTATION = {\n    className: 'meta',\n    begin: '@' + hljs.UNDERSCORE_IDENT_RE,\n    contains: [\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        contains: [\n          hljs.inherit(STRING, {\n            className: 'meta-string'\n          })\n        ]\n      }\n    ]\n  };\n\n  // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals\n  // According to the doc above, the number mode of kotlin is the same as java 8,\n  // so the code below is copied from java.js\n  const KOTLIN_NUMBER_MODE = NUMERIC;\n  const KOTLIN_NESTED_COMMENT = hljs.COMMENT(\n    '/\\\\*', '\\\\*/',\n    {\n      contains: [ hljs.C_BLOCK_COMMENT_MODE ]\n    }\n  );\n  const KOTLIN_PAREN_TYPE = {\n    variants: [\n      {\n        className: 'type',\n        begin: hljs.UNDERSCORE_IDENT_RE\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        contains: [] // defined later\n      }\n    ]\n  };\n  const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;\n  KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];\n  KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];\n\n  return {\n    name: 'Kotlin',\n    aliases: [ 'kt', 'kts' ],\n    keywords: KEYWORDS,\n    contains: [\n      hljs.COMMENT(\n        '/\\\\*\\\\*',\n        '\\\\*/',\n        {\n          relevance: 0,\n          contains: [\n            {\n              className: 'doctag',\n              begin: '@[A-Za-z]+'\n            }\n          ]\n        }\n      ),\n      hljs.C_LINE_COMMENT_MODE,\n      KOTLIN_NESTED_COMMENT,\n      KEYWORDS_WITH_LABEL,\n      LABEL,\n      ANNOTATION_USE_SITE,\n      ANNOTATION,\n      {\n        className: 'function',\n        beginKeywords: 'fun',\n        end: '[(]|$',\n        returnBegin: true,\n        excludeEnd: true,\n        keywords: KEYWORDS,\n        relevance: 5,\n        contains: [\n          {\n            begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n            returnBegin: true,\n            relevance: 0,\n            contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n          },\n          {\n            className: 'type',\n            begin: //,\n            keywords: 'reified',\n            relevance: 0\n          },\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            endsParent: true,\n            keywords: KEYWORDS,\n            relevance: 0,\n            contains: [\n              {\n                begin: /:/,\n                end: /[=,\\/]/,\n                endsWithParent: true,\n                contains: [\n                  KOTLIN_PAREN_TYPE,\n                  hljs.C_LINE_COMMENT_MODE,\n                  KOTLIN_NESTED_COMMENT\n                ],\n                relevance: 0\n              },\n              hljs.C_LINE_COMMENT_MODE,\n              KOTLIN_NESTED_COMMENT,\n              ANNOTATION_USE_SITE,\n              ANNOTATION,\n              STRING,\n              hljs.C_NUMBER_MODE\n            ]\n          },\n          KOTLIN_NESTED_COMMENT\n        ]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class interface trait', // remove 'trait' when removed from KEYWORDS\n        end: /[:\\{(]|$/,\n        excludeEnd: true,\n        illegal: 'extends implements',\n        contains: [\n          {\n            beginKeywords: 'public protected internal private constructor'\n          },\n          hljs.UNDERSCORE_TITLE_MODE,\n          {\n            className: 'type',\n            begin: //,\n            excludeBegin: true,\n            excludeEnd: true,\n            relevance: 0\n          },\n          {\n            className: 'type',\n            begin: /[,:]\\s*/,\n            end: /[<\\(,]|$/,\n            excludeBegin: true,\n            returnEnd: true\n          },\n          ANNOTATION_USE_SITE,\n          ANNOTATION\n        ]\n      },\n      STRING,\n      {\n        className: 'meta',\n        begin: \"^#!/usr/bin/env\",\n        end: '$',\n        illegal: '\\n'\n      },\n      KOTLIN_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = kotlin;\n","/*\nLanguage: Lasso\nAuthor: Eric Knibbe \nDescription: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.\nWebsite: http://www.lassosoft.com/What-Is-Lasso\n*/\n\nfunction lasso(hljs) {\n  const LASSO_IDENT_RE = '[a-zA-Z_][\\\\w.]*';\n  const LASSO_ANGLE_RE = '<\\\\?(lasso(script)?|=)';\n  const LASSO_CLOSE_RE = '\\\\]|\\\\?>';\n  const LASSO_KEYWORDS = {\n    $pattern: LASSO_IDENT_RE + '|&[lg]t;',\n    literal:\n      'true false none minimal full all void and or not ' +\n      'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',\n    built_in:\n      'array date decimal duration integer map pair string tag xml null ' +\n      'boolean bytes keyword list locale queue set stack staticarray ' +\n      'local var variable global data self inherited currentcapture givenblock',\n    keyword:\n      'cache database_names database_schemanames database_tablenames ' +\n      'define_tag define_type email_batch encode_set html_comment handle ' +\n      'handle_error header if inline iterate ljax_target link ' +\n      'link_currentaction link_currentgroup link_currentrecord link_detail ' +\n      'link_firstgroup link_firstrecord link_lastgroup link_lastrecord ' +\n      'link_nextgroup link_nextrecord link_prevgroup link_prevrecord log ' +\n      'loop namespace_using output_none portal private protect records ' +\n      'referer referrer repeating resultset rows search_args ' +\n      'search_arguments select sort_args sort_arguments thread_atomic ' +\n      'value_list while abort case else fail_if fail_ifnot fail if_empty ' +\n      'if_false if_null if_true loop_abort loop_continue loop_count params ' +\n      'params_up return return_value run_children soap_definetag ' +\n      'soap_lastrequest soap_lastresponse tag_name ascending average by ' +\n      'define descending do equals frozen group handle_failure import in ' +\n      'into join let match max min on order parent protected provide public ' +\n      'require returnhome skip split_thread sum take thread to trait type ' +\n      'where with yield yieldhome'\n  };\n  const HTML_COMMENT = hljs.COMMENT(\n    '',\n    {\n      relevance: 0\n    }\n  );\n  const LASSO_NOPROCESS = {\n    className: 'meta',\n    begin: '\\\\[noprocess\\\\]',\n    starts: {\n      end: '\\\\[/noprocess\\\\]',\n      returnEnd: true,\n      contains: [HTML_COMMENT]\n    }\n  };\n  const LASSO_START = {\n    className: 'meta',\n    begin: '\\\\[/noprocess|' + LASSO_ANGLE_RE\n  };\n  const LASSO_DATAMEMBER = {\n    className: 'symbol',\n    begin: '\\'' + LASSO_IDENT_RE + '\\''\n  };\n  const LASSO_CODE = [\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.inherit(hljs.C_NUMBER_MODE, {\n      begin: hljs.C_NUMBER_RE + '|(-?infinity|NaN)\\\\b'\n    }),\n    hljs.inherit(hljs.APOS_STRING_MODE, {\n      illegal: null\n    }),\n    hljs.inherit(hljs.QUOTE_STRING_MODE, {\n      illegal: null\n    }),\n    {\n      className: 'string',\n      begin: '`',\n      end: '`'\n    },\n    { // variables\n      variants: [\n        {\n          begin: '[#$]' + LASSO_IDENT_RE\n        },\n        {\n          begin: '#',\n          end: '\\\\d+',\n          illegal: '\\\\W'\n        }\n      ]\n    },\n    {\n      className: 'type',\n      begin: '::\\\\s*',\n      end: LASSO_IDENT_RE,\n      illegal: '\\\\W'\n    },\n    {\n      className: 'params',\n      variants: [\n        {\n          begin: '-(?!infinity)' + LASSO_IDENT_RE,\n          relevance: 0\n        },\n        {\n          begin: '(\\\\.\\\\.\\\\.)'\n        }\n      ]\n    },\n    {\n      begin: /(->|\\.)\\s*/,\n      relevance: 0,\n      contains: [LASSO_DATAMEMBER]\n    },\n    {\n      className: 'class',\n      beginKeywords: 'define',\n      returnEnd: true,\n      end: '\\\\(|=>',\n      contains: [\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: LASSO_IDENT_RE + '(=(?!>))?|[-+*/%](?!>)'\n        })\n      ]\n    }\n  ];\n  return {\n    name: 'Lasso',\n    aliases: [\n      'ls',\n      'lassoscript'\n    ],\n    case_insensitive: true,\n    keywords: LASSO_KEYWORDS,\n    contains: [\n      {\n        className: 'meta',\n        begin: LASSO_CLOSE_RE,\n        relevance: 0,\n        starts: { // markup\n          end: '\\\\[|' + LASSO_ANGLE_RE,\n          returnEnd: true,\n          relevance: 0,\n          contains: [HTML_COMMENT]\n        }\n      },\n      LASSO_NOPROCESS,\n      LASSO_START,\n      {\n        className: 'meta',\n        begin: '\\\\[no_square_brackets',\n        starts: {\n          end: '\\\\[/no_square_brackets\\\\]', // not implemented in the language\n          keywords: LASSO_KEYWORDS,\n          contains: [\n            {\n              className: 'meta',\n              begin: LASSO_CLOSE_RE,\n              relevance: 0,\n              starts: {\n                end: '\\\\[noprocess\\\\]|' + LASSO_ANGLE_RE,\n                returnEnd: true,\n                contains: [HTML_COMMENT]\n              }\n            },\n            LASSO_NOPROCESS,\n            LASSO_START\n          ].concat(LASSO_CODE)\n        }\n      },\n      {\n        className: 'meta',\n        begin: '\\\\[',\n        relevance: 0\n      },\n      {\n        className: 'meta',\n        begin: '^#!',\n        end: 'lasso9$',\n        relevance: 10\n      }\n    ].concat(LASSO_CODE)\n  };\n}\n\nmodule.exports = lasso;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: LaTeX\nAuthor: Benedikt Wilde \nWebsite: https://www.latex-project.org\nCategory: markup\n*/\n\n/** @type LanguageFn */\nfunction latex(hljs) {\n  const KNOWN_CONTROL_WORDS = either(...[\n      '(?:NeedsTeXFormat|RequirePackage|GetIdInfo)',\n      'Provides(?:Expl)?(?:Package|Class|File)',\n      '(?:DeclareOption|ProcessOptions)',\n      '(?:documentclass|usepackage|input|include)',\n      'makeat(?:letter|other)',\n      'ExplSyntax(?:On|Off)',\n      '(?:new|renew|provide)?command',\n      '(?:re)newenvironment',\n      '(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand',\n      '(?:New|Renew|Provide|Declare)DocumentEnvironment',\n      '(?:(?:e|g|x)?def|let)',\n      '(?:begin|end)',\n      '(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)',\n      'caption',\n      '(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)',\n      '(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)',\n      '(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)',\n      '(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)',\n      '(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)',\n      '(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)'\n    ].map(word => word + '(?![a-zA-Z@:_])'));\n  const L3_REGEX = new RegExp([\n      // A function \\module_function_name:signature or \\__module_function_name:signature,\n      // where both module and function_name need at least two characters and\n      // function_name may contain single underscores.\n      '(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*',\n      // A variable \\scope_module_and_name_type or \\scope__module_ane_name_type,\n      // where scope is one of l, g or c, type needs at least two characters\n      // and module_and_name may contain single underscores.\n      '[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}',\n      // A quark \\q_the_name or \\q__the_name or\n      // scan mark \\s_the_name or \\s__vthe_name,\n      // where variable_name needs at least two characters and\n      // may contain single underscores.\n      '[qs]__?[a-zA-Z](?:_?[a-zA-Z])+',\n      // Other LaTeX3 macro names that are not covered by the three rules above.\n      'use(?:_i)?:[a-zA-Z]*',\n      '(?:else|fi|or):',\n      '(?:if|cs|exp):w',\n      '(?:hbox|vbox):n',\n      '::[a-zA-Z]_unbraced',\n      '::[a-zA-Z:]'\n    ].map(pattern => pattern + '(?![a-zA-Z:_])').join('|'));\n  const L2_VARIANTS = [\n    {begin: /[a-zA-Z@]+/}, // control word\n    {begin: /[^a-zA-Z@]?/} // control symbol\n  ];\n  const DOUBLE_CARET_VARIANTS = [\n    {begin: /\\^{6}[0-9a-f]{6}/},\n    {begin: /\\^{5}[0-9a-f]{5}/},\n    {begin: /\\^{4}[0-9a-f]{4}/},\n    {begin: /\\^{3}[0-9a-f]{3}/},\n    {begin: /\\^{2}[0-9a-f]{2}/},\n    {begin: /\\^{2}[\\u0000-\\u007f]/}\n  ];\n  const CONTROL_SEQUENCE = {\n    className: 'keyword',\n    begin: /\\\\/,\n    relevance: 0,\n    contains: [\n      {\n        endsParent: true,\n        begin: KNOWN_CONTROL_WORDS\n      },\n      {\n        endsParent: true,\n        begin: L3_REGEX\n      },\n      {\n        endsParent: true,\n        variants: DOUBLE_CARET_VARIANTS\n      },\n      {\n        endsParent: true,\n        relevance: 0,\n        variants: L2_VARIANTS\n      }\n    ]\n  };\n  const MACRO_PARAM = {\n    className: 'params',\n    relevance: 0,\n    begin: /#+\\d?/\n  };\n  const DOUBLE_CARET_CHAR = {\n    // relevance: 1\n    variants: DOUBLE_CARET_VARIANTS\n  };\n  const SPECIAL_CATCODE = {\n    className: 'built_in',\n    relevance: 0,\n    begin: /[$&^_]/\n  };\n  const MAGIC_COMMENT = {\n    className: 'meta',\n    begin: '% !TeX',\n    end: '$',\n    relevance: 10\n  };\n  const COMMENT = hljs.COMMENT(\n    '%',\n    '$',\n    {\n      relevance: 0\n    }\n  );\n  const EVERYTHING_BUT_VERBATIM = [\n    CONTROL_SEQUENCE,\n    MACRO_PARAM,\n    DOUBLE_CARET_CHAR,\n    SPECIAL_CATCODE,\n    MAGIC_COMMENT,\n    COMMENT\n  ];\n  const BRACE_GROUP_NO_VERBATIM = {\n    begin: /\\{/, end: /\\}/,\n    relevance: 0,\n    contains: ['self', ...EVERYTHING_BUT_VERBATIM]\n  };\n  const ARGUMENT_BRACES = hljs.inherit(\n    BRACE_GROUP_NO_VERBATIM,\n    {\n      relevance: 0,\n      endsParent: true,\n      contains: [BRACE_GROUP_NO_VERBATIM, ...EVERYTHING_BUT_VERBATIM]\n    }\n  );\n  const ARGUMENT_BRACKETS = {\n    begin: /\\[/,\n      end: /\\]/,\n    endsParent: true,\n    relevance: 0,\n    contains: [BRACE_GROUP_NO_VERBATIM, ...EVERYTHING_BUT_VERBATIM]\n  };\n  const SPACE_GOBBLER = {\n    begin: /\\s+/,\n    relevance: 0\n  };\n  const ARGUMENT_M = [ARGUMENT_BRACES];\n  const ARGUMENT_O = [ARGUMENT_BRACKETS];\n  const ARGUMENT_AND_THEN = function(arg, starts_mode) {\n    return {\n      contains: [SPACE_GOBBLER],\n      starts: {\n        relevance: 0,\n        contains: arg,\n        starts: starts_mode\n      }\n    };\n  };\n  const CSNAME = function(csname, starts_mode) {\n    return {\n        begin: '\\\\\\\\' + csname + '(?![a-zA-Z@:_])',\n        keywords: {$pattern: /\\\\[a-zA-Z]+/, keyword: '\\\\' + csname},\n        relevance: 0,\n        contains: [SPACE_GOBBLER],\n        starts: starts_mode\n      };\n  };\n  const BEGIN_ENV = function(envname, starts_mode) {\n    return hljs.inherit(\n      {\n        begin: '\\\\\\\\begin(?=[ \\t]*(\\\\r?\\\\n[ \\t]*)?\\\\{' + envname + '\\\\})',\n        keywords: {$pattern: /\\\\[a-zA-Z]+/, keyword: '\\\\begin'},\n        relevance: 0,\n      },\n      ARGUMENT_AND_THEN(ARGUMENT_M, starts_mode)\n    );\n  };\n  const VERBATIM_DELIMITED_EQUAL = (innerName = \"string\") => {\n    return hljs.END_SAME_AS_BEGIN({\n      className: innerName,\n      begin: /(.|\\r?\\n)/,\n      end: /(.|\\r?\\n)/,\n      excludeBegin: true,\n      excludeEnd: true,\n      endsParent: true\n    });\n  };\n  const VERBATIM_DELIMITED_ENV = function(envname) {\n    return {\n      className: 'string',\n      end: '(?=\\\\\\\\end\\\\{' + envname + '\\\\})'\n    };\n  };\n\n  const VERBATIM_DELIMITED_BRACES = (innerName = \"string\") => {\n    return {\n      relevance: 0,\n      begin: /\\{/,\n      starts: {\n        endsParent: true,\n        contains: [\n          {\n            className: innerName,\n            end: /(?=\\})/,\n            endsParent:true,\n            contains: [\n              {\n                begin: /\\{/,\n                end: /\\}/,\n                relevance: 0,\n                contains: [\"self\"]\n              }\n            ],\n          }\n        ]\n      }\n    };\n  };\n  const VERBATIM = [\n    ...['verb', 'lstinline'].map(csname => CSNAME(csname, {contains: [VERBATIM_DELIMITED_EQUAL()]})),\n    CSNAME('mint', ARGUMENT_AND_THEN(ARGUMENT_M, {contains: [VERBATIM_DELIMITED_EQUAL()]})),\n    CSNAME('mintinline', ARGUMENT_AND_THEN(ARGUMENT_M, {contains: [VERBATIM_DELIMITED_BRACES(), VERBATIM_DELIMITED_EQUAL()]})),\n    CSNAME('url', {contains: [VERBATIM_DELIMITED_BRACES(\"link\"), VERBATIM_DELIMITED_BRACES(\"link\")]}),\n    CSNAME('hyperref', {contains: [VERBATIM_DELIMITED_BRACES(\"link\")]}),\n    CSNAME('href', ARGUMENT_AND_THEN(ARGUMENT_O, {contains: [VERBATIM_DELIMITED_BRACES(\"link\")]})),\n    ...[].concat(...['', '\\\\*'].map(suffix => [\n      BEGIN_ENV('verbatim' + suffix, VERBATIM_DELIMITED_ENV('verbatim' + suffix)),\n      BEGIN_ENV('filecontents' + suffix,  ARGUMENT_AND_THEN(ARGUMENT_M, VERBATIM_DELIMITED_ENV('filecontents' + suffix))),\n      ...['', 'B', 'L'].map(prefix =>\n        BEGIN_ENV(prefix + 'Verbatim' + suffix, ARGUMENT_AND_THEN(ARGUMENT_O, VERBATIM_DELIMITED_ENV(prefix + 'Verbatim' + suffix)))\n      )\n    ])),\n    BEGIN_ENV('minted', ARGUMENT_AND_THEN(ARGUMENT_O, ARGUMENT_AND_THEN(ARGUMENT_M, VERBATIM_DELIMITED_ENV('minted')))),\n  ];\n\n  return {\n    name: 'LaTeX',\n    aliases: ['tex'],\n    contains: [\n      ...VERBATIM,\n      ...EVERYTHING_BUT_VERBATIM\n    ]\n  };\n}\n\nmodule.exports = latex;\n","/*\nLanguage: LDIF\nContributors: Jacob Childress \nCategory: enterprise, config\nWebsite: https://en.wikipedia.org/wiki/LDAP_Data_Interchange_Format\n*/\nfunction ldif(hljs) {\n  return {\n    name: 'LDIF',\n    contains: [\n      {\n        className: 'attribute',\n        begin: '^dn',\n        end: ': ',\n        excludeEnd: true,\n        starts: {\n          end: '$',\n          relevance: 0\n        },\n        relevance: 10\n      },\n      {\n        className: 'attribute',\n        begin: '^\\\\w',\n        end: ': ',\n        excludeEnd: true,\n        starts: {\n          end: '$',\n          relevance: 0\n        }\n      },\n      {\n        className: 'literal',\n        begin: '^-',\n        end: '$'\n      },\n      hljs.HASH_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = ldif;\n","/*\nLanguage: Leaf\nAuthor: Hale Chan \nDescription: Based on the Leaf reference from https://vapor.github.io/documentation/guide/leaf.html.\n*/\n\nfunction leaf(hljs) {\n  return {\n    name: 'Leaf',\n    contains: [\n      {\n        className: 'function',\n        begin: '#+' + '[A-Za-z_0-9]*' + '\\\\(',\n        end: / \\{/,\n        returnBegin: true,\n        excludeEnd: true,\n        contains: [\n          {\n            className: 'keyword',\n            begin: '#+'\n          },\n          {\n            className: 'title',\n            begin: '[A-Za-z_][A-Za-z_0-9]*'\n          },\n          {\n            className: 'params',\n            begin: '\\\\(',\n            end: '\\\\)',\n            endsParent: true,\n            contains: [\n              {\n                className: 'string',\n                begin: '\"',\n                end: '\"'\n              },\n              {\n                className: 'variable',\n                begin: '[A-Za-z_][A-Za-z_0-9]*'\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = leaf;\n","const MODES = (hljs) => {\n  return {\n    IMPORTANT: {\n      className: 'meta',\n      begin: '!important'\n    },\n    HEXCOLOR: {\n      className: 'number',\n      begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n    },\n    ATTRIBUTE_SELECTOR_MODE: {\n      className: 'selector-attr',\n      begin: /\\[/,\n      end: /\\]/,\n      illegal: '$',\n      contains: [\n        hljs.APOS_STRING_MODE,\n        hljs.QUOTE_STRING_MODE\n      ]\n    }\n  };\n};\n\nconst TAGS = [\n  'a',\n  'abbr',\n  'address',\n  'article',\n  'aside',\n  'audio',\n  'b',\n  'blockquote',\n  'body',\n  'button',\n  'canvas',\n  'caption',\n  'cite',\n  'code',\n  'dd',\n  'del',\n  'details',\n  'dfn',\n  'div',\n  'dl',\n  'dt',\n  'em',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'header',\n  'hgroup',\n  'html',\n  'i',\n  'iframe',\n  'img',\n  'input',\n  'ins',\n  'kbd',\n  'label',\n  'legend',\n  'li',\n  'main',\n  'mark',\n  'menu',\n  'nav',\n  'object',\n  'ol',\n  'p',\n  'q',\n  'quote',\n  'samp',\n  'section',\n  'span',\n  'strong',\n  'summary',\n  'sup',\n  'table',\n  'tbody',\n  'td',\n  'textarea',\n  'tfoot',\n  'th',\n  'thead',\n  'time',\n  'tr',\n  'ul',\n  'var',\n  'video'\n];\n\nconst MEDIA_FEATURES = [\n  'any-hover',\n  'any-pointer',\n  'aspect-ratio',\n  'color',\n  'color-gamut',\n  'color-index',\n  'device-aspect-ratio',\n  'device-height',\n  'device-width',\n  'display-mode',\n  'forced-colors',\n  'grid',\n  'height',\n  'hover',\n  'inverted-colors',\n  'monochrome',\n  'orientation',\n  'overflow-block',\n  'overflow-inline',\n  'pointer',\n  'prefers-color-scheme',\n  'prefers-contrast',\n  'prefers-reduced-motion',\n  'prefers-reduced-transparency',\n  'resolution',\n  'scan',\n  'scripting',\n  'update',\n  'width',\n  // TODO: find a better solution?\n  'min-width',\n  'max-width',\n  'min-height',\n  'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n  'active',\n  'any-link',\n  'blank',\n  'checked',\n  'current',\n  'default',\n  'defined',\n  'dir', // dir()\n  'disabled',\n  'drop',\n  'empty',\n  'enabled',\n  'first',\n  'first-child',\n  'first-of-type',\n  'fullscreen',\n  'future',\n  'focus',\n  'focus-visible',\n  'focus-within',\n  'has', // has()\n  'host', // host or host()\n  'host-context', // host-context()\n  'hover',\n  'indeterminate',\n  'in-range',\n  'invalid',\n  'is', // is()\n  'lang', // lang()\n  'last-child',\n  'last-of-type',\n  'left',\n  'link',\n  'local-link',\n  'not', // not()\n  'nth-child', // nth-child()\n  'nth-col', // nth-col()\n  'nth-last-child', // nth-last-child()\n  'nth-last-col', // nth-last-col()\n  'nth-last-of-type', //nth-last-of-type()\n  'nth-of-type', //nth-of-type()\n  'only-child',\n  'only-of-type',\n  'optional',\n  'out-of-range',\n  'past',\n  'placeholder-shown',\n  'read-only',\n  'read-write',\n  'required',\n  'right',\n  'root',\n  'scope',\n  'target',\n  'target-within',\n  'user-invalid',\n  'valid',\n  'visited',\n  'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n  'after',\n  'backdrop',\n  'before',\n  'cue',\n  'cue-region',\n  'first-letter',\n  'first-line',\n  'grammar-error',\n  'marker',\n  'part',\n  'placeholder',\n  'selection',\n  'slotted',\n  'spelling-error'\n];\n\nconst ATTRIBUTES = [\n  'align-content',\n  'align-items',\n  'align-self',\n  'animation',\n  'animation-delay',\n  'animation-direction',\n  'animation-duration',\n  'animation-fill-mode',\n  'animation-iteration-count',\n  'animation-name',\n  'animation-play-state',\n  'animation-timing-function',\n  'auto',\n  'backface-visibility',\n  'background',\n  'background-attachment',\n  'background-clip',\n  'background-color',\n  'background-image',\n  'background-origin',\n  'background-position',\n  'background-repeat',\n  'background-size',\n  'border',\n  'border-bottom',\n  'border-bottom-color',\n  'border-bottom-left-radius',\n  'border-bottom-right-radius',\n  'border-bottom-style',\n  'border-bottom-width',\n  'border-collapse',\n  'border-color',\n  'border-image',\n  'border-image-outset',\n  'border-image-repeat',\n  'border-image-slice',\n  'border-image-source',\n  'border-image-width',\n  'border-left',\n  'border-left-color',\n  'border-left-style',\n  'border-left-width',\n  'border-radius',\n  'border-right',\n  'border-right-color',\n  'border-right-style',\n  'border-right-width',\n  'border-spacing',\n  'border-style',\n  'border-top',\n  'border-top-color',\n  'border-top-left-radius',\n  'border-top-right-radius',\n  'border-top-style',\n  'border-top-width',\n  'border-width',\n  'bottom',\n  'box-decoration-break',\n  'box-shadow',\n  'box-sizing',\n  'break-after',\n  'break-before',\n  'break-inside',\n  'caption-side',\n  'clear',\n  'clip',\n  'clip-path',\n  'color',\n  'column-count',\n  'column-fill',\n  'column-gap',\n  'column-rule',\n  'column-rule-color',\n  'column-rule-style',\n  'column-rule-width',\n  'column-span',\n  'column-width',\n  'columns',\n  'content',\n  'counter-increment',\n  'counter-reset',\n  'cursor',\n  'direction',\n  'display',\n  'empty-cells',\n  'filter',\n  'flex',\n  'flex-basis',\n  'flex-direction',\n  'flex-flow',\n  'flex-grow',\n  'flex-shrink',\n  'flex-wrap',\n  'float',\n  'font',\n  'font-display',\n  'font-family',\n  'font-feature-settings',\n  'font-kerning',\n  'font-language-override',\n  'font-size',\n  'font-size-adjust',\n  'font-smoothing',\n  'font-stretch',\n  'font-style',\n  'font-variant',\n  'font-variant-ligatures',\n  'font-variation-settings',\n  'font-weight',\n  'height',\n  'hyphens',\n  'icon',\n  'image-orientation',\n  'image-rendering',\n  'image-resolution',\n  'ime-mode',\n  'inherit',\n  'initial',\n  'justify-content',\n  'left',\n  'letter-spacing',\n  'line-height',\n  'list-style',\n  'list-style-image',\n  'list-style-position',\n  'list-style-type',\n  'margin',\n  'margin-bottom',\n  'margin-left',\n  'margin-right',\n  'margin-top',\n  'marks',\n  'mask',\n  'max-height',\n  'max-width',\n  'min-height',\n  'min-width',\n  'nav-down',\n  'nav-index',\n  'nav-left',\n  'nav-right',\n  'nav-up',\n  'none',\n  'normal',\n  'object-fit',\n  'object-position',\n  'opacity',\n  'order',\n  'orphans',\n  'outline',\n  'outline-color',\n  'outline-offset',\n  'outline-style',\n  'outline-width',\n  'overflow',\n  'overflow-wrap',\n  'overflow-x',\n  'overflow-y',\n  'padding',\n  'padding-bottom',\n  'padding-left',\n  'padding-right',\n  'padding-top',\n  'page-break-after',\n  'page-break-before',\n  'page-break-inside',\n  'perspective',\n  'perspective-origin',\n  'pointer-events',\n  'position',\n  'quotes',\n  'resize',\n  'right',\n  'src', // @font-face\n  'tab-size',\n  'table-layout',\n  'text-align',\n  'text-align-last',\n  'text-decoration',\n  'text-decoration-color',\n  'text-decoration-line',\n  'text-decoration-style',\n  'text-indent',\n  'text-overflow',\n  'text-rendering',\n  'text-shadow',\n  'text-transform',\n  'text-underline-position',\n  'top',\n  'transform',\n  'transform-origin',\n  'transform-style',\n  'transition',\n  'transition-delay',\n  'transition-duration',\n  'transition-property',\n  'transition-timing-function',\n  'unicode-bidi',\n  'vertical-align',\n  'visibility',\n  'white-space',\n  'widows',\n  'width',\n  'word-break',\n  'word-spacing',\n  'word-wrap',\n  'z-index'\n  // reverse makes sure longer attributes `font-weight` are matched fully\n  // instead of getting false positives on say `font`\n].reverse();\n\n// some grammars use them all as a single group\nconst PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS);\n\n/*\nLanguage: Less\nDescription: It's CSS, with just a little more.\nAuthor:   Max Mikhailov \nWebsite: http://lesscss.org\nCategory: common, css\n*/\n\n/** @type LanguageFn */\nfunction less(hljs) {\n  const modes = MODES(hljs);\n  const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;\n\n  const AT_MODIFIERS = \"and or not only\";\n  const IDENT_RE = '[\\\\w-]+'; // yes, Less identifiers may begin with a digit\n  const INTERP_IDENT_RE = '(' + IDENT_RE + '|@\\\\{' + IDENT_RE + '\\\\})';\n\n  /* Generic Modes */\n\n  const RULES = []; const VALUE_MODES = []; // forward def. for recursive modes\n\n  const STRING_MODE = function(c) {\n    return {\n    // Less strings are not multiline (also include '~' for more consistent coloring of \"escaped\" strings)\n      className: 'string',\n      begin: '~?' + c + '.*?' + c\n    };\n  };\n\n  const IDENT_MODE = function(name, begin, relevance) {\n    return {\n      className: name,\n      begin: begin,\n      relevance: relevance\n    };\n  };\n\n  const AT_KEYWORDS = {\n    $pattern: /[a-z-]+/,\n    keyword: AT_MODIFIERS,\n    attribute: MEDIA_FEATURES.join(\" \")\n  };\n\n  const PARENS_MODE = {\n    // used only to properly balance nested parens inside mixin call, def. arg list\n    begin: '\\\\(',\n    end: '\\\\)',\n    contains: VALUE_MODES,\n    keywords: AT_KEYWORDS,\n    relevance: 0\n  };\n\n  // generic Less highlighter (used almost everywhere except selectors):\n  VALUE_MODES.push(\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    STRING_MODE(\"'\"),\n    STRING_MODE('\"'),\n    hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(\n    {\n      begin: '(url|data-uri)\\\\(',\n      starts: {\n        className: 'string',\n        end: '[\\\\)\\\\n]',\n        excludeEnd: true\n      }\n    },\n    modes.HEXCOLOR,\n    PARENS_MODE,\n    IDENT_MODE('variable', '@@?' + IDENT_RE, 10),\n    IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'),\n    IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string\n    { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):\n      className: 'attribute',\n      begin: IDENT_RE + '\\\\s*:',\n      end: ':',\n      returnBegin: true,\n      excludeEnd: true\n    },\n    modes.IMPORTANT\n  );\n\n  const VALUE_WITH_RULESETS = VALUE_MODES.concat({\n    begin: /\\{/,\n    end: /\\}/,\n    contains: RULES\n  });\n\n  const MIXIN_GUARD_MODE = {\n    beginKeywords: 'when',\n    endsWithParent: true,\n    contains: [\n      {\n        beginKeywords: 'and not'\n      }\n    ].concat(VALUE_MODES) // using this form to override VALUE’s 'function' match\n  };\n\n  /* Rule-Level Modes */\n\n  const RULE_MODE = {\n    begin: INTERP_IDENT_RE + '\\\\s*:',\n    returnBegin: true,\n    end: /[;}]/,\n    relevance: 0,\n    contains: [\n      {\n        begin: /-(webkit|moz|ms|o)-/\n      },\n      {\n        className: 'attribute',\n        begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n        end: /(?=:)/,\n        starts: {\n          endsWithParent: true,\n          illegal: '[<=$]',\n          relevance: 0,\n          contains: VALUE_MODES\n        }\n      }\n    ]\n  };\n\n  const AT_RULE_MODE = {\n    className: 'keyword',\n    begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b',\n    starts: {\n      end: '[;{}]',\n      keywords: AT_KEYWORDS,\n      returnEnd: true,\n      contains: VALUE_MODES,\n      relevance: 0\n    }\n  };\n\n  // variable definitions and calls\n  const VAR_RULE_MODE = {\n    className: 'variable',\n    variants: [\n      // using more strict pattern for higher relevance to increase chances of Less detection.\n      // this is *the only* Less specific statement used in most of the sources, so...\n      // (we’ll still often loose to the css-parser unless there's '//' comment,\n      // simply because 1 variable just can't beat 99 properties :)\n      {\n        begin: '@' + IDENT_RE + '\\\\s*:',\n        relevance: 15\n      },\n      {\n        begin: '@' + IDENT_RE\n      }\n    ],\n    starts: {\n      end: '[;}]',\n      returnEnd: true,\n      contains: VALUE_WITH_RULESETS\n    }\n  };\n\n  const SELECTOR_MODE = {\n    // first parse unambiguous selectors (i.e. those not starting with tag)\n    // then fall into the scary lookahead-discriminator variant.\n    // this mode also handles mixin definitions and calls\n    variants: [\n      {\n        begin: '[\\\\.#:&\\\\[>]',\n        end: '[;{}]' // mixin calls end with ';'\n      },\n      {\n        begin: INTERP_IDENT_RE,\n        end: /\\{/\n      }\n    ],\n    returnBegin: true,\n    returnEnd: true,\n    illegal: '[<=\\'$\"]',\n    relevance: 0,\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      MIXIN_GUARD_MODE,\n      IDENT_MODE('keyword', 'all\\\\b'),\n      IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'), // otherwise it’s identified as tag\n      {\n        begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n        className: 'selector-tag'\n      },\n      IDENT_MODE('selector-tag', INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes \"tags\"\n      IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),\n      IDENT_MODE('selector-class', '\\\\.' + INTERP_IDENT_RE, 0),\n      IDENT_MODE('selector-tag', '&', 0),\n      modes.ATTRIBUTE_SELECTOR_MODE,\n      {\n        className: 'selector-pseudo',\n        begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n      },\n      {\n        className: 'selector-pseudo',\n        begin: '::(' + PSEUDO_ELEMENTS.join('|') + ')'\n      },\n      {\n        begin: '\\\\(',\n        end: '\\\\)',\n        contains: VALUE_WITH_RULESETS\n      }, // argument list of parametric mixins\n      {\n        begin: '!important'\n      } // eat !important after mixin call or it will be colored as tag\n    ]\n  };\n\n  const PSEUDO_SELECTOR_MODE = {\n    begin: IDENT_RE + ':(:)?' + `(${PSEUDO_SELECTORS$1.join('|')})`,\n    returnBegin: true,\n    contains: [ SELECTOR_MODE ]\n  };\n\n  RULES.push(\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    AT_RULE_MODE,\n    VAR_RULE_MODE,\n    PSEUDO_SELECTOR_MODE,\n    RULE_MODE,\n    SELECTOR_MODE\n  );\n\n  return {\n    name: 'Less',\n    case_insensitive: true,\n    illegal: '[=>\\'/<($\"]',\n    contains: RULES\n  };\n}\n\nmodule.exports = less;\n","/*\nLanguage: Lisp\nDescription: Generic lisp syntax\nAuthor: Vasily Polovnyov \nCategory: lisp\n*/\n\nfunction lisp(hljs) {\n  var LISP_IDENT_RE = '[a-zA-Z_\\\\-+\\\\*\\\\/<=>&#][a-zA-Z0-9_\\\\-+*\\\\/<=>&#!]*';\n  var MEC_RE = '\\\\|[^]*?\\\\|';\n  var LISP_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+(\\\\.\\\\d+|\\\\/\\\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\\\+|-)?\\\\d+)?';\n  var LITERAL = {\n    className: 'literal',\n    begin: '\\\\b(t{1}|nil)\\\\b'\n  };\n  var NUMBER = {\n    className: 'number',\n    variants: [\n      {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},\n      {begin: '#(b|B)[0-1]+(/[0-1]+)?'},\n      {begin: '#(o|O)[0-7]+(/[0-7]+)?'},\n      {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},\n      {begin: '#(c|C)\\\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\\\)'}\n    ]\n  };\n  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});\n  var COMMENT = hljs.COMMENT(\n    ';', '$',\n    {\n      relevance: 0\n    }\n  );\n  var VARIABLE = {\n    begin: '\\\\*', end: '\\\\*'\n  };\n  var KEYWORD = {\n    className: 'symbol',\n    begin: '[:&]' + LISP_IDENT_RE\n  };\n  var IDENT = {\n    begin: LISP_IDENT_RE,\n    relevance: 0\n  };\n  var MEC = {\n    begin: MEC_RE\n  };\n  var QUOTED_LIST = {\n    begin: '\\\\(', end: '\\\\)',\n    contains: ['self', LITERAL, STRING, NUMBER, IDENT]\n  };\n  var QUOTED = {\n    contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],\n    variants: [\n      {\n        begin: '[\\'`]\\\\(', end: '\\\\)'\n      },\n      {\n        begin: '\\\\(quote ', end: '\\\\)',\n        keywords: {name: 'quote'}\n      },\n      {\n        begin: '\\'' + MEC_RE\n      }\n    ]\n  };\n  var QUOTED_ATOM = {\n    variants: [\n      {begin: '\\'' + LISP_IDENT_RE},\n      {begin: '#\\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}\n    ]\n  };\n  var LIST = {\n    begin: '\\\\(\\\\s*', end: '\\\\)'\n  };\n  var BODY = {\n    endsWithParent: true,\n    relevance: 0\n  };\n  LIST.contains = [\n    {\n      className: 'name',\n      variants: [\n        {\n          begin: LISP_IDENT_RE,\n          relevance: 0,\n        },\n        {begin: MEC_RE}\n      ]\n    },\n    BODY\n  ];\n  BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];\n\n  return {\n    name: 'Lisp',\n    illegal: /\\S/,\n    contains: [\n      NUMBER,\n      hljs.SHEBANG(),\n      LITERAL,\n      STRING,\n      COMMENT,\n      QUOTED,\n      QUOTED_ATOM,\n      LIST,\n      IDENT\n    ]\n  };\n}\n\nmodule.exports = lisp;\n","/*\nLanguage: LiveCode\nAuthor: Ralf Bitter \nDescription: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.\nVersion: 1.1\nDate: 2019-04-17\nCategory: enterprise\n*/\n\nfunction livecodeserver(hljs) {\n  const VARIABLE = {\n    className: 'variable',\n    variants: [\n      {\n        begin: '\\\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\\\[.+\\\\])?(?:\\\\s*?)'\n      },\n      {\n        begin: '\\\\$_[A-Z]+'\n      }\n    ],\n    relevance: 0\n  };\n  const COMMENT_MODES = [\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.HASH_COMMENT_MODE,\n    hljs.COMMENT('--', '$'),\n    hljs.COMMENT('[^:]//', '$')\n  ];\n  const TITLE1 = hljs.inherit(hljs.TITLE_MODE, {\n    variants: [\n      {\n        begin: '\\\\b_*rig[A-Z][A-Za-z0-9_\\\\-]*'\n      },\n      {\n        begin: '\\\\b_[a-z0-9\\\\-]+'\n      }\n    ]\n  });\n  const TITLE2 = hljs.inherit(hljs.TITLE_MODE, {\n    begin: '\\\\b([A-Za-z0-9_\\\\-]+)\\\\b'\n  });\n  return {\n    name: 'LiveCode',\n    case_insensitive: false,\n    keywords: {\n      keyword:\n        '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +\n        'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +\n        'after byte bytes english the until http forever descending using line real8 with seventh ' +\n        'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +\n        'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +\n        'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +\n        'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +\n        'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +\n        'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +\n        'first ftp integer abbreviated abbr abbrev private case while if ' +\n        'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +\n        'contains ends with begins the keys of keys',\n      literal:\n        'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +\n        'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +\n        'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +\n        'quote empty one true return cr linefeed right backslash null seven tab three two ' +\n        'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +\n        'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',\n      built_in:\n        'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +\n        'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +\n        'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +\n        'constantNames cos date dateFormat decompress difference directories ' +\n        'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +\n        'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +\n        'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +\n        'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +\n        'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec ' +\n        'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +\n        'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +\n        'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +\n        'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +\n        'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +\n        'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +\n        'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +\n        'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +\n        'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +\n        'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +\n        'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +\n        'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +\n        'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +\n        'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +\n        'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +\n        'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +\n        'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +\n        'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +\n        'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +\n        'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +\n        'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +\n        'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +\n        'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +\n        'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +\n        'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +\n        'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +\n        'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +\n        'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +\n        'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +\n        'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver ' +\n        'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +\n        'libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename ' +\n        'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +\n        'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +\n        'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +\n        'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +\n        'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +\n        'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +\n        'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +\n        'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +\n        'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +\n        'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +\n        'subtract symmetric union unload vectorDotProduct wait write'\n    },\n    contains: [\n      VARIABLE,\n      {\n        className: 'keyword',\n        begin: '\\\\bend\\\\sif\\\\b'\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: '$',\n        contains: [\n          VARIABLE,\n          TITLE2,\n          hljs.APOS_STRING_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.BINARY_NUMBER_MODE,\n          hljs.C_NUMBER_MODE,\n          TITLE1\n        ]\n      },\n      {\n        className: 'function',\n        begin: '\\\\bend\\\\s+',\n        end: '$',\n        keywords: 'end',\n        contains: [\n          TITLE2,\n          TITLE1\n        ],\n        relevance: 0\n      },\n      {\n        beginKeywords: 'command on',\n        end: '$',\n        contains: [\n          VARIABLE,\n          TITLE2,\n          hljs.APOS_STRING_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.BINARY_NUMBER_MODE,\n          hljs.C_NUMBER_MODE,\n          TITLE1\n        ]\n      },\n      {\n        className: 'meta',\n        variants: [\n          {\n            begin: '<\\\\?(rev|lc|livecode)',\n            relevance: 10\n          },\n          {\n            begin: '<\\\\?'\n          },\n          {\n            begin: '\\\\?>'\n          }\n        ]\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.BINARY_NUMBER_MODE,\n      hljs.C_NUMBER_MODE,\n      TITLE1\n    ].concat(COMMENT_MODES),\n    illegal: ';$|^\\\\[|^=|&|\\\\{'\n  };\n}\n\nmodule.exports = livecodeserver;\n","const KEYWORDS = [\n  \"as\", // for exports\n  \"in\",\n  \"of\",\n  \"if\",\n  \"for\",\n  \"while\",\n  \"finally\",\n  \"var\",\n  \"new\",\n  \"function\",\n  \"do\",\n  \"return\",\n  \"void\",\n  \"else\",\n  \"break\",\n  \"catch\",\n  \"instanceof\",\n  \"with\",\n  \"throw\",\n  \"case\",\n  \"default\",\n  \"try\",\n  \"switch\",\n  \"continue\",\n  \"typeof\",\n  \"delete\",\n  \"let\",\n  \"yield\",\n  \"const\",\n  \"class\",\n  // JS handles these with a special rule\n  // \"get\",\n  // \"set\",\n  \"debugger\",\n  \"async\",\n  \"await\",\n  \"static\",\n  \"import\",\n  \"from\",\n  \"export\",\n  \"extends\"\n];\nconst LITERALS = [\n  \"true\",\n  \"false\",\n  \"null\",\n  \"undefined\",\n  \"NaN\",\n  \"Infinity\"\n];\n\nconst TYPES = [\n  \"Intl\",\n  \"DataView\",\n  \"Number\",\n  \"Math\",\n  \"Date\",\n  \"String\",\n  \"RegExp\",\n  \"Object\",\n  \"Function\",\n  \"Boolean\",\n  \"Error\",\n  \"Symbol\",\n  \"Set\",\n  \"Map\",\n  \"WeakSet\",\n  \"WeakMap\",\n  \"Proxy\",\n  \"Reflect\",\n  \"JSON\",\n  \"Promise\",\n  \"Float64Array\",\n  \"Int16Array\",\n  \"Int32Array\",\n  \"Int8Array\",\n  \"Uint16Array\",\n  \"Uint32Array\",\n  \"Float32Array\",\n  \"Array\",\n  \"Uint8Array\",\n  \"Uint8ClampedArray\",\n  \"ArrayBuffer\",\n  \"BigInt64Array\",\n  \"BigUint64Array\",\n  \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n  \"EvalError\",\n  \"InternalError\",\n  \"RangeError\",\n  \"ReferenceError\",\n  \"SyntaxError\",\n  \"TypeError\",\n  \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n  \"setInterval\",\n  \"setTimeout\",\n  \"clearInterval\",\n  \"clearTimeout\",\n\n  \"require\",\n  \"exports\",\n\n  \"eval\",\n  \"isFinite\",\n  \"isNaN\",\n  \"parseFloat\",\n  \"parseInt\",\n  \"decodeURI\",\n  \"decodeURIComponent\",\n  \"encodeURI\",\n  \"encodeURIComponent\",\n  \"escape\",\n  \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n  \"arguments\",\n  \"this\",\n  \"super\",\n  \"console\",\n  \"window\",\n  \"document\",\n  \"localStorage\",\n  \"module\",\n  \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n  BUILT_IN_GLOBALS,\n  BUILT_IN_VARIABLES,\n  TYPES,\n  ERROR_TYPES\n);\n\n/*\nLanguage: LiveScript\nAuthor: Taneli Vatanen \nContributors: Jen Evers-Corvina \nOrigin: coffeescript.js\nDescription: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/\nWebsite: https://livescript.net\nCategory: scripting\n*/\n\nfunction livescript(hljs) {\n  const LIVESCRIPT_BUILT_INS = [\n    'npm',\n    'print'\n  ];\n  const LIVESCRIPT_LITERALS = [\n    'yes',\n    'no',\n    'on',\n    'off',\n    'it',\n    'that',\n    'void'\n  ];\n  const LIVESCRIPT_KEYWORDS = [\n    'then',\n    'unless',\n    'until',\n    'loop',\n    'of',\n    'by',\n    'when',\n    'and',\n    'or',\n    'is',\n    'isnt',\n    'not',\n    'it',\n    'that',\n    'otherwise',\n    'from',\n    'to',\n    'til',\n    'fallthrough',\n    'case',\n    'enum',\n    'native',\n    'list',\n    'map',\n    '__hasProp',\n    '__extends',\n    '__slice',\n    '__bind',\n    '__indexOf'\n  ];\n  const KEYWORDS$1 = {\n    keyword: KEYWORDS.concat(LIVESCRIPT_KEYWORDS),\n    literal: LITERALS.concat(LIVESCRIPT_LITERALS),\n    built_in: BUILT_INS.concat(LIVESCRIPT_BUILT_INS)\n  };\n  const JS_IDENT_RE = '[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';\n  const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n    begin: JS_IDENT_RE\n  });\n  const SUBST = {\n    className: 'subst',\n    begin: /#\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS$1\n  };\n  const SUBST_SIMPLE = {\n    className: 'subst',\n    begin: /#[A-Za-z$_]/,\n    end: /(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,\n    keywords: KEYWORDS$1\n  };\n  const EXPRESSIONS = [\n    hljs.BINARY_NUMBER_MODE,\n    {\n      className: 'number',\n      begin: '(\\\\b0[xX][a-fA-F0-9_]+)|(\\\\b\\\\d(\\\\d|_\\\\d)*(\\\\.(\\\\d(\\\\d|_\\\\d)*)?)?(_*[eE]([-+]\\\\d(_\\\\d|\\\\d)*)?)?[_a-z]*)',\n      relevance: 0,\n      starts: {\n        end: '(\\\\s*/)?',\n        relevance: 0\n      } // a number tries to eat the following slash to prevent treating it as a regexp\n    },\n    {\n      className: 'string',\n      variants: [\n        {\n          begin: /'''/,\n          end: /'''/,\n          contains: [hljs.BACKSLASH_ESCAPE]\n        },\n        {\n          begin: /'/,\n          end: /'/,\n          contains: [hljs.BACKSLASH_ESCAPE]\n        },\n        {\n          begin: /\"\"\"/,\n          end: /\"\"\"/,\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST,\n            SUBST_SIMPLE\n          ]\n        },\n        {\n          begin: /\"/,\n          end: /\"/,\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST,\n            SUBST_SIMPLE\n          ]\n        },\n        {\n          begin: /\\\\/,\n          end: /(\\s|$)/,\n          excludeEnd: true\n        }\n      ]\n    },\n    {\n      className: 'regexp',\n      variants: [\n        {\n          begin: '//',\n          end: '//[gim]*',\n          contains: [\n            SUBST,\n            hljs.HASH_COMMENT_MODE\n          ]\n        },\n        {\n          // regex can't start with space to parse x / 2 / 3 as two divisions\n          // regex can't start with *, and it supports an \"illegal\" in the main mode\n          begin: /\\/(?![ *])(\\\\.|[^\\\\\\n])*?\\/[gim]*(?=\\W)/\n        }\n      ]\n    },\n    {\n      begin: '@' + JS_IDENT_RE\n    },\n    {\n      begin: '``',\n      end: '``',\n      excludeBegin: true,\n      excludeEnd: true,\n      subLanguage: 'javascript'\n    }\n  ];\n  SUBST.contains = EXPRESSIONS;\n\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    returnBegin: true,\n    /* We need another contained nameless mode to not have every nested\n    pair of parens to be called \"params\" */\n    contains: [\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: KEYWORDS$1,\n        contains: ['self'].concat(EXPRESSIONS)\n      }\n    ]\n  };\n\n  const SYMBOLS = {\n    begin: '(#=>|=>|\\\\|>>|-?->|!->)'\n  };\n\n  return {\n    name: 'LiveScript',\n    aliases: ['ls'],\n    keywords: KEYWORDS$1,\n    illegal: /\\/\\*/,\n    contains: EXPRESSIONS.concat([\n      hljs.COMMENT('\\\\/\\\\*', '\\\\*\\\\/'),\n      hljs.HASH_COMMENT_MODE,\n      SYMBOLS, // relevance booster\n      {\n        className: 'function',\n        contains: [\n          TITLE,\n          PARAMS\n        ],\n        returnBegin: true,\n        variants: [\n          {\n            begin: '(' + JS_IDENT_RE + '\\\\s*(?:=|:=)\\\\s*)?(\\\\(.*\\\\)\\\\s*)?\\\\B->\\\\*?',\n            end: '->\\\\*?'\n          },\n          {\n            begin: '(' + JS_IDENT_RE + '\\\\s*(?:=|:=)\\\\s*)?!?(\\\\(.*\\\\)\\\\s*)?\\\\B[-~]{1,2}>\\\\*?',\n            end: '[-~]{1,2}>\\\\*?'\n          },\n          {\n            begin: '(' + JS_IDENT_RE + '\\\\s*(?:=|:=)\\\\s*)?(\\\\(.*\\\\)\\\\s*)?\\\\B!?[-~]{1,2}>\\\\*?',\n            end: '!?[-~]{1,2}>\\\\*?'\n          }\n        ]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class',\n        end: '$',\n        illegal: /[:=\"\\[\\]]/,\n        contains: [\n          {\n            beginKeywords: 'extends',\n            endsWithParent: true,\n            illegal: /[:=\"\\[\\]]/,\n            contains: [TITLE]\n          },\n          TITLE\n        ]\n      },\n      {\n        begin: JS_IDENT_RE + ':',\n        end: ':',\n        returnBegin: true,\n        returnEnd: true,\n        relevance: 0\n      }\n    ])\n  };\n}\n\nmodule.exports = livescript;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: LLVM IR\nAuthor: Michael Rodler \nDescription: language used as intermediate representation in the LLVM compiler framework\nWebsite: https://llvm.org/docs/LangRef.html\nCategory: assembler\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction llvm(hljs) {\n  const IDENT_RE = /([-a-zA-Z$._][\\w$.-]*)/;\n  const TYPE = {\n    className: 'type',\n    begin: /\\bi\\d+(?=\\s|\\b)/\n  };\n  const OPERATOR = {\n    className: 'operator',\n    relevance: 0,\n    begin: /=/\n  };\n  const PUNCTUATION = {\n    className: 'punctuation',\n    relevance: 0,\n    begin: /,/\n  };\n  const NUMBER = {\n    className: 'number',\n    variants: [\n        { begin: /0[xX][a-fA-F0-9]+/ },\n        { begin: /-?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?/ }\n    ],\n    relevance: 0\n  };\n  const LABEL = {\n    className: 'symbol',\n    variants: [\n        { begin: /^\\s*[a-z]+:/ }, // labels\n    ],\n    relevance: 0\n  };\n  const VARIABLE = {\n    className: 'variable',\n    variants: [\n      { begin: concat(/%/, IDENT_RE) },\n      { begin: /%\\d+/ },\n      { begin: /#\\d+/ },\n    ]\n  };\n  const FUNCTION = {\n    className: 'title',\n    variants: [\n      { begin: concat(/@/, IDENT_RE) },\n      { begin: /@\\d+/ },\n      { begin: concat(/!/, IDENT_RE) },\n      { begin: concat(/!\\d+/, IDENT_RE) },\n      // https://llvm.org/docs/LangRef.html#namedmetadatastructure\n      // obviously a single digit can also be used in this fashion\n      { begin: /!\\d+/ }\n    ]\n  };\n\n  return {\n    name: 'LLVM IR',\n    // TODO: split into different categories of keywords\n    keywords:\n      'begin end true false declare define global ' +\n      'constant private linker_private internal ' +\n      'available_externally linkonce linkonce_odr weak ' +\n      'weak_odr appending dllimport dllexport common ' +\n      'default hidden protected extern_weak external ' +\n      'thread_local zeroinitializer undef null to tail ' +\n      'target triple datalayout volatile nuw nsw nnan ' +\n      'ninf nsz arcp fast exact inbounds align ' +\n      'addrspace section alias module asm sideeffect ' +\n      'gc dbg linker_private_weak attributes blockaddress ' +\n      'initialexec localdynamic localexec prefix unnamed_addr ' +\n      'ccc fastcc coldcc x86_stdcallcc x86_fastcallcc ' +\n      'arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ' +\n      'ptx_kernel intel_ocl_bicc msp430_intrcc spir_func ' +\n      'spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc ' +\n      'cc c signext zeroext inreg sret nounwind ' +\n      'noreturn noalias nocapture byval nest readnone ' +\n      'readonly inlinehint noinline alwaysinline optsize ssp ' +\n      'sspreq noredzone noimplicitfloat naked builtin cold ' +\n      'nobuiltin noduplicate nonlazybind optnone returns_twice ' +\n      'sanitize_address sanitize_memory sanitize_thread sspstrong ' +\n      'uwtable returned type opaque eq ne slt sgt ' +\n      'sle sge ult ugt ule uge oeq one olt ogt ' +\n      'ole oge ord uno ueq une x acq_rel acquire ' +\n      'alignstack atomic catch cleanup filter inteldialect ' +\n      'max min monotonic nand personality release seq_cst ' +\n      'singlethread umax umin unordered xchg add fadd ' +\n      'sub fsub mul fmul udiv sdiv fdiv urem srem ' +\n      'frem shl lshr ashr and or xor icmp fcmp ' +\n      'phi call trunc zext sext fptrunc fpext uitofp ' +\n      'sitofp fptoui fptosi inttoptr ptrtoint bitcast ' +\n      'addrspacecast select va_arg ret br switch invoke ' +\n      'unwind unreachable indirectbr landingpad resume ' +\n      'malloc alloca free load store getelementptr ' +\n      'extractelement insertelement shufflevector getresult ' +\n      'extractvalue insertvalue atomicrmw cmpxchg fence ' +\n      'argmemonly double',\n    contains: [\n      TYPE,\n      // this matches \"empty comments\"...\n      // ...because it's far more likely this is a statement terminator in\n      // another language than an actual comment\n      hljs.COMMENT(/;\\s*$/, null, { relevance: 0 }),\n      hljs.COMMENT(/;/, /$/),\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        variants: [\n          // Double-quoted string\n          { begin: /\"/, end: /[^\\\\]\"/ },\n        ]\n      },\n      FUNCTION,\n      PUNCTUATION,\n      OPERATOR,\n      VARIABLE,\n      LABEL,\n      NUMBER\n    ]\n  };\n}\n\nmodule.exports = llvm;\n","/*\nLanguage: LSL (Linden Scripting Language)\nDescription: The Linden Scripting Language is used in Second Life by Linden Labs.\nAuthor: Builder's Brewery \nWebsite: http://wiki.secondlife.com/wiki/LSL_Portal\nCategory: scripting\n*/\n\nfunction lsl(hljs) {\n\n    var LSL_STRING_ESCAPE_CHARS = {\n        className: 'subst',\n        begin: /\\\\[tn\"\\\\]/\n    };\n\n    var LSL_STRINGS = {\n        className: 'string',\n        begin: '\"',\n        end: '\"',\n        contains: [\n            LSL_STRING_ESCAPE_CHARS\n        ]\n    };\n\n    var LSL_NUMBERS = {\n        className: 'number',\n        relevance:0,\n        begin: hljs.C_NUMBER_RE\n    };\n\n    var LSL_CONSTANTS = {\n        className: 'literal',\n        variants: [\n            {\n                begin: '\\\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\\\b'\n            },\n            {\n                begin: '\\\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\\\b'\n            },\n            {\n                begin: '\\\\b(FALSE|TRUE)\\\\b'\n            },\n            {\n                begin: '\\\\b(ZERO_ROTATION)\\\\b'\n            },\n            {\n                begin: '\\\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\\\b'\n            },\n            {\n                begin: '\\\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\\\b'\n            }\n        ]\n    };\n\n    var LSL_FUNCTIONS = {\n        className: 'built_in',\n        begin: '\\\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\\\b'\n    };\n\n    return {\n        name: 'LSL (Linden Scripting Language)',\n        illegal: ':',\n        contains: [\n            LSL_STRINGS,\n            {\n                className: 'comment',\n                variants: [\n                    hljs.COMMENT('//', '$'),\n                    hljs.COMMENT('/\\\\*', '\\\\*/')\n                ],\n                relevance: 0\n            },\n            LSL_NUMBERS,\n            {\n                className: 'section',\n                variants: [\n                    {\n                        begin: '\\\\b(state|default)\\\\b'\n                    },\n                    {\n                        begin: '\\\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\\\b'\n                    }\n                ]\n            },\n            LSL_FUNCTIONS,\n            LSL_CONSTANTS,\n            {\n                className: 'type',\n                begin: '\\\\b(integer|float|string|key|vector|quaternion|rotation|list)\\\\b'\n            }\n        ]\n    };\n}\n\nmodule.exports = lsl;\n","/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov \nCategory: common, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n  const OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n  const CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n  const LONG_BRACKETS = {\n    begin: OPENING_LONG_BRACKET,\n    end: CLOSING_LONG_BRACKET,\n    contains: ['self']\n  };\n  const COMMENTS = [\n    hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),\n    hljs.COMMENT(\n      '--' + OPENING_LONG_BRACKET,\n      CLOSING_LONG_BRACKET,\n      {\n        contains: [LONG_BRACKETS],\n        relevance: 10\n      }\n    )\n  ];\n  return {\n    name: 'Lua',\n    keywords: {\n      $pattern: hljs.UNDERSCORE_IDENT_RE,\n      literal: \"true false nil\",\n      keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n      built_in:\n        // Metatags and globals:\n        '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' +\n        '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert ' +\n        // Standard methods and properties:\n        'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring ' +\n        'module next pairs pcall print rawequal rawget rawset require select setfenv ' +\n        'setmetatable tonumber tostring type unpack xpcall arg self ' +\n        // Library methods and properties (one line per library):\n        'coroutine resume yield status wrap create running debug getupvalue ' +\n        'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv ' +\n        'io lines write close flush open output type read stderr stdin input stdout popen tmpfile ' +\n        'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan ' +\n        'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall ' +\n        'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower ' +\n        'table setn insert getn foreachi maxn foreach concat sort remove'\n    },\n    contains: COMMENTS.concat([\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: '\\\\)',\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*'\n          }),\n          {\n            className: 'params',\n            begin: '\\\\(',\n            endsWithParent: true,\n            contains: COMMENTS\n          }\n        ].concat(COMMENTS)\n      },\n      hljs.C_NUMBER_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        begin: OPENING_LONG_BRACKET,\n        end: CLOSING_LONG_BRACKET,\n        contains: [LONG_BRACKETS],\n        relevance: 5\n      }\n    ])\n  };\n}\n\nmodule.exports = lua;\n","/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev \nContributors: Joël Porquet \nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common\n*/\n\nfunction makefile(hljs) {\n  /* Variables: simple (eg $(var)) and special (eg $@) */\n  const VARIABLE = {\n    className: 'variable',\n    variants: [\n      {\n        begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: /\\$[@% source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Markdown\nRequires: xml.js\nAuthor: John Crepezzi \nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n  const INLINE_HTML = {\n    begin: /<\\/?[A-Za-z_]/,\n    end: '>',\n    subLanguage: 'xml',\n    relevance: 0\n  };\n  const HORIZONTAL_RULE = {\n    begin: '^[-\\\\*]{3,}',\n    end: '$'\n  };\n  const CODE = {\n    className: 'code',\n    variants: [\n      // TODO: fix to allow these to work with sublanguage also\n      {\n        begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*'\n      },\n      {\n        begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*'\n      },\n      // needed to allow markdown as a sublanguage to work\n      {\n        begin: '```',\n        end: '```+[ ]*$'\n      },\n      {\n        begin: '~~~',\n        end: '~~~+[ ]*$'\n      },\n      {\n        begin: '`.+?`'\n      },\n      {\n        begin: '(?=^( {4}|\\\\t))',\n        // use contains to gobble up multiple lines to allow the block to be whatever size\n        // but only have a single open/close tag vs one per line\n        contains: [\n          {\n            begin: '^( {4}|\\\\t)',\n            end: '(\\\\n)$'\n          }\n        ],\n        relevance: 0\n      }\n    ]\n  };\n  const LIST = {\n    className: 'bullet',\n    begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n    end: '\\\\s+',\n    excludeEnd: true\n  };\n  const LINK_REFERENCE = {\n    begin: /^\\[[^\\n]+\\]:/,\n    returnBegin: true,\n    contains: [\n      {\n        className: 'symbol',\n        begin: /\\[/,\n        end: /\\]/,\n        excludeBegin: true,\n        excludeEnd: true\n      },\n      {\n        className: 'link',\n        begin: /:\\s*/,\n        end: /$/,\n        excludeBegin: true\n      }\n    ]\n  };\n  const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n  const LINK = {\n    variants: [\n      // too much like nested array access in so many languages\n      // to have any real relevance\n      {\n        begin: /\\[.+?\\]\\[.*?\\]/,\n        relevance: 0\n      },\n      // popular internet URLs\n      {\n        begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n        relevance: 2\n      },\n      {\n        begin: concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n        relevance: 2\n      },\n      // relative urls\n      {\n        begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n        relevance: 1\n      },\n      // whatever else, lower relevance (might not be a link at all)\n      {\n        begin: /\\[.+?\\]\\(.*?\\)/,\n        relevance: 0\n      }\n    ],\n    returnBegin: true,\n    contains: [\n      {\n        className: 'string',\n        relevance: 0,\n        begin: '\\\\[',\n        end: '\\\\]',\n        excludeBegin: true,\n        returnEnd: true\n      },\n      {\n        className: 'link',\n        relevance: 0,\n        begin: '\\\\]\\\\(',\n        end: '\\\\)',\n        excludeBegin: true,\n        excludeEnd: true\n      },\n      {\n        className: 'symbol',\n        relevance: 0,\n        begin: '\\\\]\\\\[',\n        end: '\\\\]',\n        excludeBegin: true,\n        excludeEnd: true\n      }\n    ]\n  };\n  const BOLD = {\n    className: 'strong',\n    contains: [], // defined later\n    variants: [\n      {\n        begin: /_{2}/,\n        end: /_{2}/\n      },\n      {\n        begin: /\\*{2}/,\n        end: /\\*{2}/\n      }\n    ]\n  };\n  const ITALIC = {\n    className: 'emphasis',\n    contains: [], // defined later\n    variants: [\n      {\n        begin: /\\*(?!\\*)/,\n        end: /\\*/\n      },\n      {\n        begin: /_(?!_)/,\n        end: /_/,\n        relevance: 0\n      }\n    ]\n  };\n  BOLD.contains.push(ITALIC);\n  ITALIC.contains.push(BOLD);\n\n  let CONTAINABLE = [\n    INLINE_HTML,\n    LINK\n  ];\n\n  BOLD.contains = BOLD.contains.concat(CONTAINABLE);\n  ITALIC.contains = ITALIC.contains.concat(CONTAINABLE);\n\n  CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n\n  const HEADER = {\n    className: 'section',\n    variants: [\n      {\n        begin: '^#{1,6}',\n        end: '$',\n        contains: CONTAINABLE\n      },\n      {\n        begin: '(?=^.+?\\\\n[=-]{2,}$)',\n        contains: [\n          {\n            begin: '^[=-]*$'\n          },\n          {\n            begin: '^',\n            end: \"\\\\n\",\n            contains: CONTAINABLE\n          }\n        ]\n      }\n    ]\n  };\n\n  const BLOCKQUOTE = {\n    className: 'quote',\n    begin: '^>\\\\s+',\n    contains: CONTAINABLE,\n    end: '$'\n  };\n\n  return {\n    name: 'Markdown',\n    aliases: [\n      'md',\n      'mkdown',\n      'mkd'\n    ],\n    contains: [\n      HEADER,\n      INLINE_HTML,\n      LIST,\n      BOLD,\n      ITALIC,\n      BLOCKQUOTE,\n      CODE,\n      HORIZONTAL_RULE,\n      LINK,\n      LINK_REFERENCE\n    ]\n  };\n}\n\nmodule.exports = markdown;\n","const SYSTEM_SYMBOLS = [\n  \"AASTriangle\",\n  \"AbelianGroup\",\n  \"Abort\",\n  \"AbortKernels\",\n  \"AbortProtect\",\n  \"AbortScheduledTask\",\n  \"Above\",\n  \"Abs\",\n  \"AbsArg\",\n  \"AbsArgPlot\",\n  \"Absolute\",\n  \"AbsoluteCorrelation\",\n  \"AbsoluteCorrelationFunction\",\n  \"AbsoluteCurrentValue\",\n  \"AbsoluteDashing\",\n  \"AbsoluteFileName\",\n  \"AbsoluteOptions\",\n  \"AbsolutePointSize\",\n  \"AbsoluteThickness\",\n  \"AbsoluteTime\",\n  \"AbsoluteTiming\",\n  \"AcceptanceThreshold\",\n  \"AccountingForm\",\n  \"Accumulate\",\n  \"Accuracy\",\n  \"AccuracyGoal\",\n  \"ActionDelay\",\n  \"ActionMenu\",\n  \"ActionMenuBox\",\n  \"ActionMenuBoxOptions\",\n  \"Activate\",\n  \"Active\",\n  \"ActiveClassification\",\n  \"ActiveClassificationObject\",\n  \"ActiveItem\",\n  \"ActivePrediction\",\n  \"ActivePredictionObject\",\n  \"ActiveStyle\",\n  \"AcyclicGraphQ\",\n  \"AddOnHelpPath\",\n  \"AddSides\",\n  \"AddTo\",\n  \"AddToSearchIndex\",\n  \"AddUsers\",\n  \"AdjacencyGraph\",\n  \"AdjacencyList\",\n  \"AdjacencyMatrix\",\n  \"AdjacentMeshCells\",\n  \"AdjustmentBox\",\n  \"AdjustmentBoxOptions\",\n  \"AdjustTimeSeriesForecast\",\n  \"AdministrativeDivisionData\",\n  \"AffineHalfSpace\",\n  \"AffineSpace\",\n  \"AffineStateSpaceModel\",\n  \"AffineTransform\",\n  \"After\",\n  \"AggregatedEntityClass\",\n  \"AggregationLayer\",\n  \"AircraftData\",\n  \"AirportData\",\n  \"AirPressureData\",\n  \"AirTemperatureData\",\n  \"AiryAi\",\n  \"AiryAiPrime\",\n  \"AiryAiZero\",\n  \"AiryBi\",\n  \"AiryBiPrime\",\n  \"AiryBiZero\",\n  \"AlgebraicIntegerQ\",\n  \"AlgebraicNumber\",\n  \"AlgebraicNumberDenominator\",\n  \"AlgebraicNumberNorm\",\n  \"AlgebraicNumberPolynomial\",\n  \"AlgebraicNumberTrace\",\n  \"AlgebraicRules\",\n  \"AlgebraicRulesData\",\n  \"Algebraics\",\n  \"AlgebraicUnitQ\",\n  \"Alignment\",\n  \"AlignmentMarker\",\n  \"AlignmentPoint\",\n  \"All\",\n  \"AllowAdultContent\",\n  \"AllowedCloudExtraParameters\",\n  \"AllowedCloudParameterExtensions\",\n  \"AllowedDimensions\",\n  \"AllowedFrequencyRange\",\n  \"AllowedHeads\",\n  \"AllowGroupClose\",\n  \"AllowIncomplete\",\n  \"AllowInlineCells\",\n  \"AllowKernelInitialization\",\n  \"AllowLooseGrammar\",\n  \"AllowReverseGroupClose\",\n  \"AllowScriptLevelChange\",\n  \"AllowVersionUpdate\",\n  \"AllTrue\",\n  \"Alphabet\",\n  \"AlphabeticOrder\",\n  \"AlphabeticSort\",\n  \"AlphaChannel\",\n  \"AlternateImage\",\n  \"AlternatingFactorial\",\n  \"AlternatingGroup\",\n  \"AlternativeHypothesis\",\n  \"Alternatives\",\n  \"AltitudeMethod\",\n  \"AmbientLight\",\n  \"AmbiguityFunction\",\n  \"AmbiguityList\",\n  \"Analytic\",\n  \"AnatomyData\",\n  \"AnatomyForm\",\n  \"AnatomyPlot3D\",\n  \"AnatomySkinStyle\",\n  \"AnatomyStyling\",\n  \"AnchoredSearch\",\n  \"And\",\n  \"AndersonDarlingTest\",\n  \"AngerJ\",\n  \"AngleBisector\",\n  \"AngleBracket\",\n  \"AnglePath\",\n  \"AnglePath3D\",\n  \"AngleVector\",\n  \"AngularGauge\",\n  \"Animate\",\n  \"AnimationCycleOffset\",\n  \"AnimationCycleRepetitions\",\n  \"AnimationDirection\",\n  \"AnimationDisplayTime\",\n  \"AnimationRate\",\n  \"AnimationRepetitions\",\n  \"AnimationRunning\",\n  \"AnimationRunTime\",\n  \"AnimationTimeIndex\",\n  \"Animator\",\n  \"AnimatorBox\",\n  \"AnimatorBoxOptions\",\n  \"AnimatorElements\",\n  \"Annotate\",\n  \"Annotation\",\n  \"AnnotationDelete\",\n  \"AnnotationKeys\",\n  \"AnnotationRules\",\n  \"AnnotationValue\",\n  \"Annuity\",\n  \"AnnuityDue\",\n  \"Annulus\",\n  \"AnomalyDetection\",\n  \"AnomalyDetector\",\n  \"AnomalyDetectorFunction\",\n  \"Anonymous\",\n  \"Antialiasing\",\n  \"AntihermitianMatrixQ\",\n  \"Antisymmetric\",\n  \"AntisymmetricMatrixQ\",\n  \"Antonyms\",\n  \"AnyOrder\",\n  \"AnySubset\",\n  \"AnyTrue\",\n  \"Apart\",\n  \"ApartSquareFree\",\n  \"APIFunction\",\n  \"Appearance\",\n  \"AppearanceElements\",\n  \"AppearanceRules\",\n  \"AppellF1\",\n  \"Append\",\n  \"AppendCheck\",\n  \"AppendLayer\",\n  \"AppendTo\",\n  \"Apply\",\n  \"ApplySides\",\n  \"ArcCos\",\n  \"ArcCosh\",\n  \"ArcCot\",\n  \"ArcCoth\",\n  \"ArcCsc\",\n  \"ArcCsch\",\n  \"ArcCurvature\",\n  \"ARCHProcess\",\n  \"ArcLength\",\n  \"ArcSec\",\n  \"ArcSech\",\n  \"ArcSin\",\n  \"ArcSinDistribution\",\n  \"ArcSinh\",\n  \"ArcTan\",\n  \"ArcTanh\",\n  \"Area\",\n  \"Arg\",\n  \"ArgMax\",\n  \"ArgMin\",\n  \"ArgumentCountQ\",\n  \"ARIMAProcess\",\n  \"ArithmeticGeometricMean\",\n  \"ARMAProcess\",\n  \"Around\",\n  \"AroundReplace\",\n  \"ARProcess\",\n  \"Array\",\n  \"ArrayComponents\",\n  \"ArrayDepth\",\n  \"ArrayFilter\",\n  \"ArrayFlatten\",\n  \"ArrayMesh\",\n  \"ArrayPad\",\n  \"ArrayPlot\",\n  \"ArrayQ\",\n  \"ArrayResample\",\n  \"ArrayReshape\",\n  \"ArrayRules\",\n  \"Arrays\",\n  \"Arrow\",\n  \"Arrow3DBox\",\n  \"ArrowBox\",\n  \"Arrowheads\",\n  \"ASATriangle\",\n  \"Ask\",\n  \"AskAppend\",\n  \"AskConfirm\",\n  \"AskDisplay\",\n  \"AskedQ\",\n  \"AskedValue\",\n  \"AskFunction\",\n  \"AskState\",\n  \"AskTemplateDisplay\",\n  \"AspectRatio\",\n  \"AspectRatioFixed\",\n  \"Assert\",\n  \"AssociateTo\",\n  \"Association\",\n  \"AssociationFormat\",\n  \"AssociationMap\",\n  \"AssociationQ\",\n  \"AssociationThread\",\n  \"AssumeDeterministic\",\n  \"Assuming\",\n  \"Assumptions\",\n  \"AstronomicalData\",\n  \"Asymptotic\",\n  \"AsymptoticDSolveValue\",\n  \"AsymptoticEqual\",\n  \"AsymptoticEquivalent\",\n  \"AsymptoticGreater\",\n  \"AsymptoticGreaterEqual\",\n  \"AsymptoticIntegrate\",\n  \"AsymptoticLess\",\n  \"AsymptoticLessEqual\",\n  \"AsymptoticOutputTracker\",\n  \"AsymptoticProduct\",\n  \"AsymptoticRSolveValue\",\n  \"AsymptoticSolve\",\n  \"AsymptoticSum\",\n  \"Asynchronous\",\n  \"AsynchronousTaskObject\",\n  \"AsynchronousTasks\",\n  \"Atom\",\n  \"AtomCoordinates\",\n  \"AtomCount\",\n  \"AtomDiagramCoordinates\",\n  \"AtomList\",\n  \"AtomQ\",\n  \"AttentionLayer\",\n  \"Attributes\",\n  \"Audio\",\n  \"AudioAmplify\",\n  \"AudioAnnotate\",\n  \"AudioAnnotationLookup\",\n  \"AudioBlockMap\",\n  \"AudioCapture\",\n  \"AudioChannelAssignment\",\n  \"AudioChannelCombine\",\n  \"AudioChannelMix\",\n  \"AudioChannels\",\n  \"AudioChannelSeparate\",\n  \"AudioData\",\n  \"AudioDelay\",\n  \"AudioDelete\",\n  \"AudioDevice\",\n  \"AudioDistance\",\n  \"AudioEncoding\",\n  \"AudioFade\",\n  \"AudioFrequencyShift\",\n  \"AudioGenerator\",\n  \"AudioIdentify\",\n  \"AudioInputDevice\",\n  \"AudioInsert\",\n  \"AudioInstanceQ\",\n  \"AudioIntervals\",\n  \"AudioJoin\",\n  \"AudioLabel\",\n  \"AudioLength\",\n  \"AudioLocalMeasurements\",\n  \"AudioLooping\",\n  \"AudioLoudness\",\n  \"AudioMeasurements\",\n  \"AudioNormalize\",\n  \"AudioOutputDevice\",\n  \"AudioOverlay\",\n  \"AudioPad\",\n  \"AudioPan\",\n  \"AudioPartition\",\n  \"AudioPause\",\n  \"AudioPitchShift\",\n  \"AudioPlay\",\n  \"AudioPlot\",\n  \"AudioQ\",\n  \"AudioRecord\",\n  \"AudioReplace\",\n  \"AudioResample\",\n  \"AudioReverb\",\n  \"AudioReverse\",\n  \"AudioSampleRate\",\n  \"AudioSpectralMap\",\n  \"AudioSpectralTransformation\",\n  \"AudioSplit\",\n  \"AudioStop\",\n  \"AudioStream\",\n  \"AudioStreams\",\n  \"AudioTimeStretch\",\n  \"AudioTracks\",\n  \"AudioTrim\",\n  \"AudioType\",\n  \"AugmentedPolyhedron\",\n  \"AugmentedSymmetricPolynomial\",\n  \"Authenticate\",\n  \"Authentication\",\n  \"AuthenticationDialog\",\n  \"AutoAction\",\n  \"Autocomplete\",\n  \"AutocompletionFunction\",\n  \"AutoCopy\",\n  \"AutocorrelationTest\",\n  \"AutoDelete\",\n  \"AutoEvaluateEvents\",\n  \"AutoGeneratedPackage\",\n  \"AutoIndent\",\n  \"AutoIndentSpacings\",\n  \"AutoItalicWords\",\n  \"AutoloadPath\",\n  \"AutoMatch\",\n  \"Automatic\",\n  \"AutomaticImageSize\",\n  \"AutoMultiplicationSymbol\",\n  \"AutoNumberFormatting\",\n  \"AutoOpenNotebooks\",\n  \"AutoOpenPalettes\",\n  \"AutoQuoteCharacters\",\n  \"AutoRefreshed\",\n  \"AutoRemove\",\n  \"AutorunSequencing\",\n  \"AutoScaling\",\n  \"AutoScroll\",\n  \"AutoSpacing\",\n  \"AutoStyleOptions\",\n  \"AutoStyleWords\",\n  \"AutoSubmitting\",\n  \"Axes\",\n  \"AxesEdge\",\n  \"AxesLabel\",\n  \"AxesOrigin\",\n  \"AxesStyle\",\n  \"AxiomaticTheory\",\n  \"Axis\",\n  \"BabyMonsterGroupB\",\n  \"Back\",\n  \"Background\",\n  \"BackgroundAppearance\",\n  \"BackgroundTasksSettings\",\n  \"Backslash\",\n  \"Backsubstitution\",\n  \"Backward\",\n  \"Ball\",\n  \"Band\",\n  \"BandpassFilter\",\n  \"BandstopFilter\",\n  \"BarabasiAlbertGraphDistribution\",\n  \"BarChart\",\n  \"BarChart3D\",\n  \"BarcodeImage\",\n  \"BarcodeRecognize\",\n  \"BaringhausHenzeTest\",\n  \"BarLegend\",\n  \"BarlowProschanImportance\",\n  \"BarnesG\",\n  \"BarOrigin\",\n  \"BarSpacing\",\n  \"BartlettHannWindow\",\n  \"BartlettWindow\",\n  \"BaseDecode\",\n  \"BaseEncode\",\n  \"BaseForm\",\n  \"Baseline\",\n  \"BaselinePosition\",\n  \"BaseStyle\",\n  \"BasicRecurrentLayer\",\n  \"BatchNormalizationLayer\",\n  \"BatchSize\",\n  \"BatesDistribution\",\n  \"BattleLemarieWavelet\",\n  \"BayesianMaximization\",\n  \"BayesianMaximizationObject\",\n  \"BayesianMinimization\",\n  \"BayesianMinimizationObject\",\n  \"Because\",\n  \"BeckmannDistribution\",\n  \"Beep\",\n  \"Before\",\n  \"Begin\",\n  \"BeginDialogPacket\",\n  \"BeginFrontEndInteractionPacket\",\n  \"BeginPackage\",\n  \"BellB\",\n  \"BellY\",\n  \"Below\",\n  \"BenfordDistribution\",\n  \"BeniniDistribution\",\n  \"BenktanderGibratDistribution\",\n  \"BenktanderWeibullDistribution\",\n  \"BernoulliB\",\n  \"BernoulliDistribution\",\n  \"BernoulliGraphDistribution\",\n  \"BernoulliProcess\",\n  \"BernsteinBasis\",\n  \"BesselFilterModel\",\n  \"BesselI\",\n  \"BesselJ\",\n  \"BesselJZero\",\n  \"BesselK\",\n  \"BesselY\",\n  \"BesselYZero\",\n  \"Beta\",\n  \"BetaBinomialDistribution\",\n  \"BetaDistribution\",\n  \"BetaNegativeBinomialDistribution\",\n  \"BetaPrimeDistribution\",\n  \"BetaRegularized\",\n  \"Between\",\n  \"BetweennessCentrality\",\n  \"BeveledPolyhedron\",\n  \"BezierCurve\",\n  \"BezierCurve3DBox\",\n  \"BezierCurve3DBoxOptions\",\n  \"BezierCurveBox\",\n  \"BezierCurveBoxOptions\",\n  \"BezierFunction\",\n  \"BilateralFilter\",\n  \"Binarize\",\n  \"BinaryDeserialize\",\n  \"BinaryDistance\",\n  \"BinaryFormat\",\n  \"BinaryImageQ\",\n  \"BinaryRead\",\n  \"BinaryReadList\",\n  \"BinarySerialize\",\n  \"BinaryWrite\",\n  \"BinCounts\",\n  \"BinLists\",\n  \"Binomial\",\n  \"BinomialDistribution\",\n  \"BinomialProcess\",\n  \"BinormalDistribution\",\n  \"BiorthogonalSplineWavelet\",\n  \"BipartiteGraphQ\",\n  \"BiquadraticFilterModel\",\n  \"BirnbaumImportance\",\n  \"BirnbaumSaundersDistribution\",\n  \"BitAnd\",\n  \"BitClear\",\n  \"BitGet\",\n  \"BitLength\",\n  \"BitNot\",\n  \"BitOr\",\n  \"BitSet\",\n  \"BitShiftLeft\",\n  \"BitShiftRight\",\n  \"BitXor\",\n  \"BiweightLocation\",\n  \"BiweightMidvariance\",\n  \"Black\",\n  \"BlackmanHarrisWindow\",\n  \"BlackmanNuttallWindow\",\n  \"BlackmanWindow\",\n  \"Blank\",\n  \"BlankForm\",\n  \"BlankNullSequence\",\n  \"BlankSequence\",\n  \"Blend\",\n  \"Block\",\n  \"BlockchainAddressData\",\n  \"BlockchainBase\",\n  \"BlockchainBlockData\",\n  \"BlockchainContractValue\",\n  \"BlockchainData\",\n  \"BlockchainGet\",\n  \"BlockchainKeyEncode\",\n  \"BlockchainPut\",\n  \"BlockchainTokenData\",\n  \"BlockchainTransaction\",\n  \"BlockchainTransactionData\",\n  \"BlockchainTransactionSign\",\n  \"BlockchainTransactionSubmit\",\n  \"BlockMap\",\n  \"BlockRandom\",\n  \"BlomqvistBeta\",\n  \"BlomqvistBetaTest\",\n  \"Blue\",\n  \"Blur\",\n  \"BodePlot\",\n  \"BohmanWindow\",\n  \"Bold\",\n  \"Bond\",\n  \"BondCount\",\n  \"BondList\",\n  \"BondQ\",\n  \"Bookmarks\",\n  \"Boole\",\n  \"BooleanConsecutiveFunction\",\n  \"BooleanConvert\",\n  \"BooleanCountingFunction\",\n  \"BooleanFunction\",\n  \"BooleanGraph\",\n  \"BooleanMaxterms\",\n  \"BooleanMinimize\",\n  \"BooleanMinterms\",\n  \"BooleanQ\",\n  \"BooleanRegion\",\n  \"Booleans\",\n  \"BooleanStrings\",\n  \"BooleanTable\",\n  \"BooleanVariables\",\n  \"BorderDimensions\",\n  \"BorelTannerDistribution\",\n  \"Bottom\",\n  \"BottomHatTransform\",\n  \"BoundaryDiscretizeGraphics\",\n  \"BoundaryDiscretizeRegion\",\n  \"BoundaryMesh\",\n  \"BoundaryMeshRegion\",\n  \"BoundaryMeshRegionQ\",\n  \"BoundaryStyle\",\n  \"BoundedRegionQ\",\n  \"BoundingRegion\",\n  \"Bounds\",\n  \"Box\",\n  \"BoxBaselineShift\",\n  \"BoxData\",\n  \"BoxDimensions\",\n  \"Boxed\",\n  \"Boxes\",\n  \"BoxForm\",\n  \"BoxFormFormatTypes\",\n  \"BoxFrame\",\n  \"BoxID\",\n  \"BoxMargins\",\n  \"BoxMatrix\",\n  \"BoxObject\",\n  \"BoxRatios\",\n  \"BoxRotation\",\n  \"BoxRotationPoint\",\n  \"BoxStyle\",\n  \"BoxWhiskerChart\",\n  \"Bra\",\n  \"BracketingBar\",\n  \"BraKet\",\n  \"BrayCurtisDistance\",\n  \"BreadthFirstScan\",\n  \"Break\",\n  \"BridgeData\",\n  \"BrightnessEqualize\",\n  \"BroadcastStationData\",\n  \"Brown\",\n  \"BrownForsytheTest\",\n  \"BrownianBridgeProcess\",\n  \"BrowserCategory\",\n  \"BSplineBasis\",\n  \"BSplineCurve\",\n  \"BSplineCurve3DBox\",\n  \"BSplineCurve3DBoxOptions\",\n  \"BSplineCurveBox\",\n  \"BSplineCurveBoxOptions\",\n  \"BSplineFunction\",\n  \"BSplineSurface\",\n  \"BSplineSurface3DBox\",\n  \"BSplineSurface3DBoxOptions\",\n  \"BubbleChart\",\n  \"BubbleChart3D\",\n  \"BubbleScale\",\n  \"BubbleSizes\",\n  \"BuildingData\",\n  \"BulletGauge\",\n  \"BusinessDayQ\",\n  \"ButterflyGraph\",\n  \"ButterworthFilterModel\",\n  \"Button\",\n  \"ButtonBar\",\n  \"ButtonBox\",\n  \"ButtonBoxOptions\",\n  \"ButtonCell\",\n  \"ButtonContents\",\n  \"ButtonData\",\n  \"ButtonEvaluator\",\n  \"ButtonExpandable\",\n  \"ButtonFrame\",\n  \"ButtonFunction\",\n  \"ButtonMargins\",\n  \"ButtonMinHeight\",\n  \"ButtonNote\",\n  \"ButtonNotebook\",\n  \"ButtonSource\",\n  \"ButtonStyle\",\n  \"ButtonStyleMenuListing\",\n  \"Byte\",\n  \"ByteArray\",\n  \"ByteArrayFormat\",\n  \"ByteArrayQ\",\n  \"ByteArrayToString\",\n  \"ByteCount\",\n  \"ByteOrdering\",\n  \"C\",\n  \"CachedValue\",\n  \"CacheGraphics\",\n  \"CachePersistence\",\n  \"CalendarConvert\",\n  \"CalendarData\",\n  \"CalendarType\",\n  \"Callout\",\n  \"CalloutMarker\",\n  \"CalloutStyle\",\n  \"CallPacket\",\n  \"CanberraDistance\",\n  \"Cancel\",\n  \"CancelButton\",\n  \"CandlestickChart\",\n  \"CanonicalGraph\",\n  \"CanonicalizePolygon\",\n  \"CanonicalizePolyhedron\",\n  \"CanonicalName\",\n  \"CanonicalWarpingCorrespondence\",\n  \"CanonicalWarpingDistance\",\n  \"CantorMesh\",\n  \"CantorStaircase\",\n  \"Cap\",\n  \"CapForm\",\n  \"CapitalDifferentialD\",\n  \"Capitalize\",\n  \"CapsuleShape\",\n  \"CaptureRunning\",\n  \"CardinalBSplineBasis\",\n  \"CarlemanLinearize\",\n  \"CarmichaelLambda\",\n  \"CaseOrdering\",\n  \"Cases\",\n  \"CaseSensitive\",\n  \"Cashflow\",\n  \"Casoratian\",\n  \"Catalan\",\n  \"CatalanNumber\",\n  \"Catch\",\n  \"CategoricalDistribution\",\n  \"Catenate\",\n  \"CatenateLayer\",\n  \"CauchyDistribution\",\n  \"CauchyWindow\",\n  \"CayleyGraph\",\n  \"CDF\",\n  \"CDFDeploy\",\n  \"CDFInformation\",\n  \"CDFWavelet\",\n  \"Ceiling\",\n  \"CelestialSystem\",\n  \"Cell\",\n  \"CellAutoOverwrite\",\n  \"CellBaseline\",\n  \"CellBoundingBox\",\n  \"CellBracketOptions\",\n  \"CellChangeTimes\",\n  \"CellContents\",\n  \"CellContext\",\n  \"CellDingbat\",\n  \"CellDynamicExpression\",\n  \"CellEditDuplicate\",\n  \"CellElementsBoundingBox\",\n  \"CellElementSpacings\",\n  \"CellEpilog\",\n  \"CellEvaluationDuplicate\",\n  \"CellEvaluationFunction\",\n  \"CellEvaluationLanguage\",\n  \"CellEventActions\",\n  \"CellFrame\",\n  \"CellFrameColor\",\n  \"CellFrameLabelMargins\",\n  \"CellFrameLabels\",\n  \"CellFrameMargins\",\n  \"CellGroup\",\n  \"CellGroupData\",\n  \"CellGrouping\",\n  \"CellGroupingRules\",\n  \"CellHorizontalScrolling\",\n  \"CellID\",\n  \"CellLabel\",\n  \"CellLabelAutoDelete\",\n  \"CellLabelMargins\",\n  \"CellLabelPositioning\",\n  \"CellLabelStyle\",\n  \"CellLabelTemplate\",\n  \"CellMargins\",\n  \"CellObject\",\n  \"CellOpen\",\n  \"CellPrint\",\n  \"CellProlog\",\n  \"Cells\",\n  \"CellSize\",\n  \"CellStyle\",\n  \"CellTags\",\n  \"CellularAutomaton\",\n  \"CensoredDistribution\",\n  \"Censoring\",\n  \"Center\",\n  \"CenterArray\",\n  \"CenterDot\",\n  \"CentralFeature\",\n  \"CentralMoment\",\n  \"CentralMomentGeneratingFunction\",\n  \"Cepstrogram\",\n  \"CepstrogramArray\",\n  \"CepstrumArray\",\n  \"CForm\",\n  \"ChampernowneNumber\",\n  \"ChangeOptions\",\n  \"ChannelBase\",\n  \"ChannelBrokerAction\",\n  \"ChannelDatabin\",\n  \"ChannelHistoryLength\",\n  \"ChannelListen\",\n  \"ChannelListener\",\n  \"ChannelListeners\",\n  \"ChannelListenerWait\",\n  \"ChannelObject\",\n  \"ChannelPreSendFunction\",\n  \"ChannelReceiverFunction\",\n  \"ChannelSend\",\n  \"ChannelSubscribers\",\n  \"ChanVeseBinarize\",\n  \"Character\",\n  \"CharacterCounts\",\n  \"CharacterEncoding\",\n  \"CharacterEncodingsPath\",\n  \"CharacteristicFunction\",\n  \"CharacteristicPolynomial\",\n  \"CharacterName\",\n  \"CharacterNormalize\",\n  \"CharacterRange\",\n  \"Characters\",\n  \"ChartBaseStyle\",\n  \"ChartElementData\",\n  \"ChartElementDataFunction\",\n  \"ChartElementFunction\",\n  \"ChartElements\",\n  \"ChartLabels\",\n  \"ChartLayout\",\n  \"ChartLegends\",\n  \"ChartStyle\",\n  \"Chebyshev1FilterModel\",\n  \"Chebyshev2FilterModel\",\n  \"ChebyshevDistance\",\n  \"ChebyshevT\",\n  \"ChebyshevU\",\n  \"Check\",\n  \"CheckAbort\",\n  \"CheckAll\",\n  \"Checkbox\",\n  \"CheckboxBar\",\n  \"CheckboxBox\",\n  \"CheckboxBoxOptions\",\n  \"ChemicalData\",\n  \"ChessboardDistance\",\n  \"ChiDistribution\",\n  \"ChineseRemainder\",\n  \"ChiSquareDistribution\",\n  \"ChoiceButtons\",\n  \"ChoiceDialog\",\n  \"CholeskyDecomposition\",\n  \"Chop\",\n  \"ChromaticityPlot\",\n  \"ChromaticityPlot3D\",\n  \"ChromaticPolynomial\",\n  \"Circle\",\n  \"CircleBox\",\n  \"CircleDot\",\n  \"CircleMinus\",\n  \"CirclePlus\",\n  \"CirclePoints\",\n  \"CircleThrough\",\n  \"CircleTimes\",\n  \"CirculantGraph\",\n  \"CircularOrthogonalMatrixDistribution\",\n  \"CircularQuaternionMatrixDistribution\",\n  \"CircularRealMatrixDistribution\",\n  \"CircularSymplecticMatrixDistribution\",\n  \"CircularUnitaryMatrixDistribution\",\n  \"Circumsphere\",\n  \"CityData\",\n  \"ClassifierFunction\",\n  \"ClassifierInformation\",\n  \"ClassifierMeasurements\",\n  \"ClassifierMeasurementsObject\",\n  \"Classify\",\n  \"ClassPriors\",\n  \"Clear\",\n  \"ClearAll\",\n  \"ClearAttributes\",\n  \"ClearCookies\",\n  \"ClearPermissions\",\n  \"ClearSystemCache\",\n  \"ClebschGordan\",\n  \"ClickPane\",\n  \"Clip\",\n  \"ClipboardNotebook\",\n  \"ClipFill\",\n  \"ClippingStyle\",\n  \"ClipPlanes\",\n  \"ClipPlanesStyle\",\n  \"ClipRange\",\n  \"Clock\",\n  \"ClockGauge\",\n  \"ClockwiseContourIntegral\",\n  \"Close\",\n  \"Closed\",\n  \"CloseKernels\",\n  \"ClosenessCentrality\",\n  \"Closing\",\n  \"ClosingAutoSave\",\n  \"ClosingEvent\",\n  \"ClosingSaveDialog\",\n  \"CloudAccountData\",\n  \"CloudBase\",\n  \"CloudConnect\",\n  \"CloudConnections\",\n  \"CloudDeploy\",\n  \"CloudDirectory\",\n  \"CloudDisconnect\",\n  \"CloudEvaluate\",\n  \"CloudExport\",\n  \"CloudExpression\",\n  \"CloudExpressions\",\n  \"CloudFunction\",\n  \"CloudGet\",\n  \"CloudImport\",\n  \"CloudLoggingData\",\n  \"CloudObject\",\n  \"CloudObjectInformation\",\n  \"CloudObjectInformationData\",\n  \"CloudObjectNameFormat\",\n  \"CloudObjects\",\n  \"CloudObjectURLType\",\n  \"CloudPublish\",\n  \"CloudPut\",\n  \"CloudRenderingMethod\",\n  \"CloudSave\",\n  \"CloudShare\",\n  \"CloudSubmit\",\n  \"CloudSymbol\",\n  \"CloudUnshare\",\n  \"CloudUserID\",\n  \"ClusterClassify\",\n  \"ClusterDissimilarityFunction\",\n  \"ClusteringComponents\",\n  \"ClusteringTree\",\n  \"CMYKColor\",\n  \"Coarse\",\n  \"CodeAssistOptions\",\n  \"Coefficient\",\n  \"CoefficientArrays\",\n  \"CoefficientDomain\",\n  \"CoefficientList\",\n  \"CoefficientRules\",\n  \"CoifletWavelet\",\n  \"Collect\",\n  \"Colon\",\n  \"ColonForm\",\n  \"ColorBalance\",\n  \"ColorCombine\",\n  \"ColorConvert\",\n  \"ColorCoverage\",\n  \"ColorData\",\n  \"ColorDataFunction\",\n  \"ColorDetect\",\n  \"ColorDistance\",\n  \"ColorFunction\",\n  \"ColorFunctionScaling\",\n  \"Colorize\",\n  \"ColorNegate\",\n  \"ColorOutput\",\n  \"ColorProfileData\",\n  \"ColorQ\",\n  \"ColorQuantize\",\n  \"ColorReplace\",\n  \"ColorRules\",\n  \"ColorSelectorSettings\",\n  \"ColorSeparate\",\n  \"ColorSetter\",\n  \"ColorSetterBox\",\n  \"ColorSetterBoxOptions\",\n  \"ColorSlider\",\n  \"ColorsNear\",\n  \"ColorSpace\",\n  \"ColorToneMapping\",\n  \"Column\",\n  \"ColumnAlignments\",\n  \"ColumnBackgrounds\",\n  \"ColumnForm\",\n  \"ColumnLines\",\n  \"ColumnsEqual\",\n  \"ColumnSpacings\",\n  \"ColumnWidths\",\n  \"CombinedEntityClass\",\n  \"CombinerFunction\",\n  \"CometData\",\n  \"CommonDefaultFormatTypes\",\n  \"Commonest\",\n  \"CommonestFilter\",\n  \"CommonName\",\n  \"CommonUnits\",\n  \"CommunityBoundaryStyle\",\n  \"CommunityGraphPlot\",\n  \"CommunityLabels\",\n  \"CommunityRegionStyle\",\n  \"CompanyData\",\n  \"CompatibleUnitQ\",\n  \"CompilationOptions\",\n  \"CompilationTarget\",\n  \"Compile\",\n  \"Compiled\",\n  \"CompiledCodeFunction\",\n  \"CompiledFunction\",\n  \"CompilerOptions\",\n  \"Complement\",\n  \"ComplementedEntityClass\",\n  \"CompleteGraph\",\n  \"CompleteGraphQ\",\n  \"CompleteKaryTree\",\n  \"CompletionsListPacket\",\n  \"Complex\",\n  \"ComplexContourPlot\",\n  \"Complexes\",\n  \"ComplexExpand\",\n  \"ComplexInfinity\",\n  \"ComplexityFunction\",\n  \"ComplexListPlot\",\n  \"ComplexPlot\",\n  \"ComplexPlot3D\",\n  \"ComplexRegionPlot\",\n  \"ComplexStreamPlot\",\n  \"ComplexVectorPlot\",\n  \"ComponentMeasurements\",\n  \"ComponentwiseContextMenu\",\n  \"Compose\",\n  \"ComposeList\",\n  \"ComposeSeries\",\n  \"CompositeQ\",\n  \"Composition\",\n  \"CompoundElement\",\n  \"CompoundExpression\",\n  \"CompoundPoissonDistribution\",\n  \"CompoundPoissonProcess\",\n  \"CompoundRenewalProcess\",\n  \"Compress\",\n  \"CompressedData\",\n  \"CompressionLevel\",\n  \"ComputeUncertainty\",\n  \"Condition\",\n  \"ConditionalExpression\",\n  \"Conditioned\",\n  \"Cone\",\n  \"ConeBox\",\n  \"ConfidenceLevel\",\n  \"ConfidenceRange\",\n  \"ConfidenceTransform\",\n  \"ConfigurationPath\",\n  \"ConformAudio\",\n  \"ConformImages\",\n  \"Congruent\",\n  \"ConicHullRegion\",\n  \"ConicHullRegion3DBox\",\n  \"ConicHullRegionBox\",\n  \"ConicOptimization\",\n  \"Conjugate\",\n  \"ConjugateTranspose\",\n  \"Conjunction\",\n  \"Connect\",\n  \"ConnectedComponents\",\n  \"ConnectedGraphComponents\",\n  \"ConnectedGraphQ\",\n  \"ConnectedMeshComponents\",\n  \"ConnectedMoleculeComponents\",\n  \"ConnectedMoleculeQ\",\n  \"ConnectionSettings\",\n  \"ConnectLibraryCallbackFunction\",\n  \"ConnectSystemModelComponents\",\n  \"ConnesWindow\",\n  \"ConoverTest\",\n  \"ConsoleMessage\",\n  \"ConsoleMessagePacket\",\n  \"Constant\",\n  \"ConstantArray\",\n  \"ConstantArrayLayer\",\n  \"ConstantImage\",\n  \"ConstantPlusLayer\",\n  \"ConstantRegionQ\",\n  \"Constants\",\n  \"ConstantTimesLayer\",\n  \"ConstellationData\",\n  \"ConstrainedMax\",\n  \"ConstrainedMin\",\n  \"Construct\",\n  \"Containing\",\n  \"ContainsAll\",\n  \"ContainsAny\",\n  \"ContainsExactly\",\n  \"ContainsNone\",\n  \"ContainsOnly\",\n  \"ContentFieldOptions\",\n  \"ContentLocationFunction\",\n  \"ContentObject\",\n  \"ContentPadding\",\n  \"ContentsBoundingBox\",\n  \"ContentSelectable\",\n  \"ContentSize\",\n  \"Context\",\n  \"ContextMenu\",\n  \"Contexts\",\n  \"ContextToFileName\",\n  \"Continuation\",\n  \"Continue\",\n  \"ContinuedFraction\",\n  \"ContinuedFractionK\",\n  \"ContinuousAction\",\n  \"ContinuousMarkovProcess\",\n  \"ContinuousTask\",\n  \"ContinuousTimeModelQ\",\n  \"ContinuousWaveletData\",\n  \"ContinuousWaveletTransform\",\n  \"ContourDetect\",\n  \"ContourGraphics\",\n  \"ContourIntegral\",\n  \"ContourLabels\",\n  \"ContourLines\",\n  \"ContourPlot\",\n  \"ContourPlot3D\",\n  \"Contours\",\n  \"ContourShading\",\n  \"ContourSmoothing\",\n  \"ContourStyle\",\n  \"ContraharmonicMean\",\n  \"ContrastiveLossLayer\",\n  \"Control\",\n  \"ControlActive\",\n  \"ControlAlignment\",\n  \"ControlGroupContentsBox\",\n  \"ControllabilityGramian\",\n  \"ControllabilityMatrix\",\n  \"ControllableDecomposition\",\n  \"ControllableModelQ\",\n  \"ControllerDuration\",\n  \"ControllerInformation\",\n  \"ControllerInformationData\",\n  \"ControllerLinking\",\n  \"ControllerManipulate\",\n  \"ControllerMethod\",\n  \"ControllerPath\",\n  \"ControllerState\",\n  \"ControlPlacement\",\n  \"ControlsRendering\",\n  \"ControlType\",\n  \"Convergents\",\n  \"ConversionOptions\",\n  \"ConversionRules\",\n  \"ConvertToBitmapPacket\",\n  \"ConvertToPostScript\",\n  \"ConvertToPostScriptPacket\",\n  \"ConvexHullMesh\",\n  \"ConvexPolygonQ\",\n  \"ConvexPolyhedronQ\",\n  \"ConvolutionLayer\",\n  \"Convolve\",\n  \"ConwayGroupCo1\",\n  \"ConwayGroupCo2\",\n  \"ConwayGroupCo3\",\n  \"CookieFunction\",\n  \"Cookies\",\n  \"CoordinateBoundingBox\",\n  \"CoordinateBoundingBoxArray\",\n  \"CoordinateBounds\",\n  \"CoordinateBoundsArray\",\n  \"CoordinateChartData\",\n  \"CoordinatesToolOptions\",\n  \"CoordinateTransform\",\n  \"CoordinateTransformData\",\n  \"CoprimeQ\",\n  \"Coproduct\",\n  \"CopulaDistribution\",\n  \"Copyable\",\n  \"CopyDatabin\",\n  \"CopyDirectory\",\n  \"CopyFile\",\n  \"CopyTag\",\n  \"CopyToClipboard\",\n  \"CornerFilter\",\n  \"CornerNeighbors\",\n  \"Correlation\",\n  \"CorrelationDistance\",\n  \"CorrelationFunction\",\n  \"CorrelationTest\",\n  \"Cos\",\n  \"Cosh\",\n  \"CoshIntegral\",\n  \"CosineDistance\",\n  \"CosineWindow\",\n  \"CosIntegral\",\n  \"Cot\",\n  \"Coth\",\n  \"Count\",\n  \"CountDistinct\",\n  \"CountDistinctBy\",\n  \"CounterAssignments\",\n  \"CounterBox\",\n  \"CounterBoxOptions\",\n  \"CounterClockwiseContourIntegral\",\n  \"CounterEvaluator\",\n  \"CounterFunction\",\n  \"CounterIncrements\",\n  \"CounterStyle\",\n  \"CounterStyleMenuListing\",\n  \"CountRoots\",\n  \"CountryData\",\n  \"Counts\",\n  \"CountsBy\",\n  \"Covariance\",\n  \"CovarianceEstimatorFunction\",\n  \"CovarianceFunction\",\n  \"CoxianDistribution\",\n  \"CoxIngersollRossProcess\",\n  \"CoxModel\",\n  \"CoxModelFit\",\n  \"CramerVonMisesTest\",\n  \"CreateArchive\",\n  \"CreateCellID\",\n  \"CreateChannel\",\n  \"CreateCloudExpression\",\n  \"CreateDatabin\",\n  \"CreateDataStructure\",\n  \"CreateDataSystemModel\",\n  \"CreateDialog\",\n  \"CreateDirectory\",\n  \"CreateDocument\",\n  \"CreateFile\",\n  \"CreateIntermediateDirectories\",\n  \"CreateManagedLibraryExpression\",\n  \"CreateNotebook\",\n  \"CreatePacletArchive\",\n  \"CreatePalette\",\n  \"CreatePalettePacket\",\n  \"CreatePermissionsGroup\",\n  \"CreateScheduledTask\",\n  \"CreateSearchIndex\",\n  \"CreateSystemModel\",\n  \"CreateTemporary\",\n  \"CreateUUID\",\n  \"CreateWindow\",\n  \"CriterionFunction\",\n  \"CriticalityFailureImportance\",\n  \"CriticalitySuccessImportance\",\n  \"CriticalSection\",\n  \"Cross\",\n  \"CrossEntropyLossLayer\",\n  \"CrossingCount\",\n  \"CrossingDetect\",\n  \"CrossingPolygon\",\n  \"CrossMatrix\",\n  \"Csc\",\n  \"Csch\",\n  \"CTCLossLayer\",\n  \"Cube\",\n  \"CubeRoot\",\n  \"Cubics\",\n  \"Cuboid\",\n  \"CuboidBox\",\n  \"Cumulant\",\n  \"CumulantGeneratingFunction\",\n  \"Cup\",\n  \"CupCap\",\n  \"Curl\",\n  \"CurlyDoubleQuote\",\n  \"CurlyQuote\",\n  \"CurrencyConvert\",\n  \"CurrentDate\",\n  \"CurrentImage\",\n  \"CurrentlySpeakingPacket\",\n  \"CurrentNotebookImage\",\n  \"CurrentScreenImage\",\n  \"CurrentValue\",\n  \"Curry\",\n  \"CurryApplied\",\n  \"CurvatureFlowFilter\",\n  \"CurveClosed\",\n  \"Cyan\",\n  \"CycleGraph\",\n  \"CycleIndexPolynomial\",\n  \"Cycles\",\n  \"CyclicGroup\",\n  \"Cyclotomic\",\n  \"Cylinder\",\n  \"CylinderBox\",\n  \"CylindricalDecomposition\",\n  \"D\",\n  \"DagumDistribution\",\n  \"DamData\",\n  \"DamerauLevenshteinDistance\",\n  \"DampingFactor\",\n  \"Darker\",\n  \"Dashed\",\n  \"Dashing\",\n  \"DatabaseConnect\",\n  \"DatabaseDisconnect\",\n  \"DatabaseReference\",\n  \"Databin\",\n  \"DatabinAdd\",\n  \"DatabinRemove\",\n  \"Databins\",\n  \"DatabinUpload\",\n  \"DataCompression\",\n  \"DataDistribution\",\n  \"DataRange\",\n  \"DataReversed\",\n  \"Dataset\",\n  \"DatasetDisplayPanel\",\n  \"DataStructure\",\n  \"DataStructureQ\",\n  \"Date\",\n  \"DateBounds\",\n  \"Dated\",\n  \"DateDelimiters\",\n  \"DateDifference\",\n  \"DatedUnit\",\n  \"DateFormat\",\n  \"DateFunction\",\n  \"DateHistogram\",\n  \"DateInterval\",\n  \"DateList\",\n  \"DateListLogPlot\",\n  \"DateListPlot\",\n  \"DateListStepPlot\",\n  \"DateObject\",\n  \"DateObjectQ\",\n  \"DateOverlapsQ\",\n  \"DatePattern\",\n  \"DatePlus\",\n  \"DateRange\",\n  \"DateReduction\",\n  \"DateString\",\n  \"DateTicksFormat\",\n  \"DateValue\",\n  \"DateWithinQ\",\n  \"DaubechiesWavelet\",\n  \"DavisDistribution\",\n  \"DawsonF\",\n  \"DayCount\",\n  \"DayCountConvention\",\n  \"DayHemisphere\",\n  \"DaylightQ\",\n  \"DayMatchQ\",\n  \"DayName\",\n  \"DayNightTerminator\",\n  \"DayPlus\",\n  \"DayRange\",\n  \"DayRound\",\n  \"DeBruijnGraph\",\n  \"DeBruijnSequence\",\n  \"Debug\",\n  \"DebugTag\",\n  \"Decapitalize\",\n  \"Decimal\",\n  \"DecimalForm\",\n  \"DeclareKnownSymbols\",\n  \"DeclarePackage\",\n  \"Decompose\",\n  \"DeconvolutionLayer\",\n  \"Decrement\",\n  \"Decrypt\",\n  \"DecryptFile\",\n  \"DedekindEta\",\n  \"DeepSpaceProbeData\",\n  \"Default\",\n  \"DefaultAxesStyle\",\n  \"DefaultBaseStyle\",\n  \"DefaultBoxStyle\",\n  \"DefaultButton\",\n  \"DefaultColor\",\n  \"DefaultControlPlacement\",\n  \"DefaultDuplicateCellStyle\",\n  \"DefaultDuration\",\n  \"DefaultElement\",\n  \"DefaultFaceGridsStyle\",\n  \"DefaultFieldHintStyle\",\n  \"DefaultFont\",\n  \"DefaultFontProperties\",\n  \"DefaultFormatType\",\n  \"DefaultFormatTypeForStyle\",\n  \"DefaultFrameStyle\",\n  \"DefaultFrameTicksStyle\",\n  \"DefaultGridLinesStyle\",\n  \"DefaultInlineFormatType\",\n  \"DefaultInputFormatType\",\n  \"DefaultLabelStyle\",\n  \"DefaultMenuStyle\",\n  \"DefaultNaturalLanguage\",\n  \"DefaultNewCellStyle\",\n  \"DefaultNewInlineCellStyle\",\n  \"DefaultNotebook\",\n  \"DefaultOptions\",\n  \"DefaultOutputFormatType\",\n  \"DefaultPrintPrecision\",\n  \"DefaultStyle\",\n  \"DefaultStyleDefinitions\",\n  \"DefaultTextFormatType\",\n  \"DefaultTextInlineFormatType\",\n  \"DefaultTicksStyle\",\n  \"DefaultTooltipStyle\",\n  \"DefaultValue\",\n  \"DefaultValues\",\n  \"Defer\",\n  \"DefineExternal\",\n  \"DefineInputStreamMethod\",\n  \"DefineOutputStreamMethod\",\n  \"DefineResourceFunction\",\n  \"Definition\",\n  \"Degree\",\n  \"DegreeCentrality\",\n  \"DegreeGraphDistribution\",\n  \"DegreeLexicographic\",\n  \"DegreeReverseLexicographic\",\n  \"DEigensystem\",\n  \"DEigenvalues\",\n  \"Deinitialization\",\n  \"Del\",\n  \"DelaunayMesh\",\n  \"Delayed\",\n  \"Deletable\",\n  \"Delete\",\n  \"DeleteAnomalies\",\n  \"DeleteBorderComponents\",\n  \"DeleteCases\",\n  \"DeleteChannel\",\n  \"DeleteCloudExpression\",\n  \"DeleteContents\",\n  \"DeleteDirectory\",\n  \"DeleteDuplicates\",\n  \"DeleteDuplicatesBy\",\n  \"DeleteFile\",\n  \"DeleteMissing\",\n  \"DeleteObject\",\n  \"DeletePermissionsKey\",\n  \"DeleteSearchIndex\",\n  \"DeleteSmallComponents\",\n  \"DeleteStopwords\",\n  \"DeleteWithContents\",\n  \"DeletionWarning\",\n  \"DelimitedArray\",\n  \"DelimitedSequence\",\n  \"Delimiter\",\n  \"DelimiterFlashTime\",\n  \"DelimiterMatching\",\n  \"Delimiters\",\n  \"DeliveryFunction\",\n  \"Dendrogram\",\n  \"Denominator\",\n  \"DensityGraphics\",\n  \"DensityHistogram\",\n  \"DensityPlot\",\n  \"DensityPlot3D\",\n  \"DependentVariables\",\n  \"Deploy\",\n  \"Deployed\",\n  \"Depth\",\n  \"DepthFirstScan\",\n  \"Derivative\",\n  \"DerivativeFilter\",\n  \"DerivedKey\",\n  \"DescriptorStateSpace\",\n  \"DesignMatrix\",\n  \"DestroyAfterEvaluation\",\n  \"Det\",\n  \"DeviceClose\",\n  \"DeviceConfigure\",\n  \"DeviceExecute\",\n  \"DeviceExecuteAsynchronous\",\n  \"DeviceObject\",\n  \"DeviceOpen\",\n  \"DeviceOpenQ\",\n  \"DeviceRead\",\n  \"DeviceReadBuffer\",\n  \"DeviceReadLatest\",\n  \"DeviceReadList\",\n  \"DeviceReadTimeSeries\",\n  \"Devices\",\n  \"DeviceStreams\",\n  \"DeviceWrite\",\n  \"DeviceWriteBuffer\",\n  \"DGaussianWavelet\",\n  \"DiacriticalPositioning\",\n  \"Diagonal\",\n  \"DiagonalizableMatrixQ\",\n  \"DiagonalMatrix\",\n  \"DiagonalMatrixQ\",\n  \"Dialog\",\n  \"DialogIndent\",\n  \"DialogInput\",\n  \"DialogLevel\",\n  \"DialogNotebook\",\n  \"DialogProlog\",\n  \"DialogReturn\",\n  \"DialogSymbols\",\n  \"Diamond\",\n  \"DiamondMatrix\",\n  \"DiceDissimilarity\",\n  \"DictionaryLookup\",\n  \"DictionaryWordQ\",\n  \"DifferenceDelta\",\n  \"DifferenceOrder\",\n  \"DifferenceQuotient\",\n  \"DifferenceRoot\",\n  \"DifferenceRootReduce\",\n  \"Differences\",\n  \"DifferentialD\",\n  \"DifferentialRoot\",\n  \"DifferentialRootReduce\",\n  \"DifferentiatorFilter\",\n  \"DigitalSignature\",\n  \"DigitBlock\",\n  \"DigitBlockMinimum\",\n  \"DigitCharacter\",\n  \"DigitCount\",\n  \"DigitQ\",\n  \"DihedralAngle\",\n  \"DihedralGroup\",\n  \"Dilation\",\n  \"DimensionalCombinations\",\n  \"DimensionalMeshComponents\",\n  \"DimensionReduce\",\n  \"DimensionReducerFunction\",\n  \"DimensionReduction\",\n  \"Dimensions\",\n  \"DiracComb\",\n  \"DiracDelta\",\n  \"DirectedEdge\",\n  \"DirectedEdges\",\n  \"DirectedGraph\",\n  \"DirectedGraphQ\",\n  \"DirectedInfinity\",\n  \"Direction\",\n  \"Directive\",\n  \"Directory\",\n  \"DirectoryName\",\n  \"DirectoryQ\",\n  \"DirectoryStack\",\n  \"DirichletBeta\",\n  \"DirichletCharacter\",\n  \"DirichletCondition\",\n  \"DirichletConvolve\",\n  \"DirichletDistribution\",\n  \"DirichletEta\",\n  \"DirichletL\",\n  \"DirichletLambda\",\n  \"DirichletTransform\",\n  \"DirichletWindow\",\n  \"DisableConsolePrintPacket\",\n  \"DisableFormatting\",\n  \"DiscreteAsymptotic\",\n  \"DiscreteChirpZTransform\",\n  \"DiscreteConvolve\",\n  \"DiscreteDelta\",\n  \"DiscreteHadamardTransform\",\n  \"DiscreteIndicator\",\n  \"DiscreteLimit\",\n  \"DiscreteLQEstimatorGains\",\n  \"DiscreteLQRegulatorGains\",\n  \"DiscreteLyapunovSolve\",\n  \"DiscreteMarkovProcess\",\n  \"DiscreteMaxLimit\",\n  \"DiscreteMinLimit\",\n  \"DiscretePlot\",\n  \"DiscretePlot3D\",\n  \"DiscreteRatio\",\n  \"DiscreteRiccatiSolve\",\n  \"DiscreteShift\",\n  \"DiscreteTimeModelQ\",\n  \"DiscreteUniformDistribution\",\n  \"DiscreteVariables\",\n  \"DiscreteWaveletData\",\n  \"DiscreteWaveletPacketTransform\",\n  \"DiscreteWaveletTransform\",\n  \"DiscretizeGraphics\",\n  \"DiscretizeRegion\",\n  \"Discriminant\",\n  \"DisjointQ\",\n  \"Disjunction\",\n  \"Disk\",\n  \"DiskBox\",\n  \"DiskMatrix\",\n  \"DiskSegment\",\n  \"Dispatch\",\n  \"DispatchQ\",\n  \"DispersionEstimatorFunction\",\n  \"Display\",\n  \"DisplayAllSteps\",\n  \"DisplayEndPacket\",\n  \"DisplayFlushImagePacket\",\n  \"DisplayForm\",\n  \"DisplayFunction\",\n  \"DisplayPacket\",\n  \"DisplayRules\",\n  \"DisplaySetSizePacket\",\n  \"DisplayString\",\n  \"DisplayTemporary\",\n  \"DisplayWith\",\n  \"DisplayWithRef\",\n  \"DisplayWithVariable\",\n  \"DistanceFunction\",\n  \"DistanceMatrix\",\n  \"DistanceTransform\",\n  \"Distribute\",\n  \"Distributed\",\n  \"DistributedContexts\",\n  \"DistributeDefinitions\",\n  \"DistributionChart\",\n  \"DistributionDomain\",\n  \"DistributionFitTest\",\n  \"DistributionParameterAssumptions\",\n  \"DistributionParameterQ\",\n  \"Dithering\",\n  \"Div\",\n  \"Divergence\",\n  \"Divide\",\n  \"DivideBy\",\n  \"Dividers\",\n  \"DivideSides\",\n  \"Divisible\",\n  \"Divisors\",\n  \"DivisorSigma\",\n  \"DivisorSum\",\n  \"DMSList\",\n  \"DMSString\",\n  \"Do\",\n  \"DockedCells\",\n  \"DocumentGenerator\",\n  \"DocumentGeneratorInformation\",\n  \"DocumentGeneratorInformationData\",\n  \"DocumentGenerators\",\n  \"DocumentNotebook\",\n  \"DocumentWeightingRules\",\n  \"Dodecahedron\",\n  \"DomainRegistrationInformation\",\n  \"DominantColors\",\n  \"DOSTextFormat\",\n  \"Dot\",\n  \"DotDashed\",\n  \"DotEqual\",\n  \"DotLayer\",\n  \"DotPlusLayer\",\n  \"Dotted\",\n  \"DoubleBracketingBar\",\n  \"DoubleContourIntegral\",\n  \"DoubleDownArrow\",\n  \"DoubleLeftArrow\",\n  \"DoubleLeftRightArrow\",\n  \"DoubleLeftTee\",\n  \"DoubleLongLeftArrow\",\n  \"DoubleLongLeftRightArrow\",\n  \"DoubleLongRightArrow\",\n  \"DoubleRightArrow\",\n  \"DoubleRightTee\",\n  \"DoubleUpArrow\",\n  \"DoubleUpDownArrow\",\n  \"DoubleVerticalBar\",\n  \"DoublyInfinite\",\n  \"Down\",\n  \"DownArrow\",\n  \"DownArrowBar\",\n  \"DownArrowUpArrow\",\n  \"DownLeftRightVector\",\n  \"DownLeftTeeVector\",\n  \"DownLeftVector\",\n  \"DownLeftVectorBar\",\n  \"DownRightTeeVector\",\n  \"DownRightVector\",\n  \"DownRightVectorBar\",\n  \"Downsample\",\n  \"DownTee\",\n  \"DownTeeArrow\",\n  \"DownValues\",\n  \"DragAndDrop\",\n  \"DrawEdges\",\n  \"DrawFrontFaces\",\n  \"DrawHighlighted\",\n  \"Drop\",\n  \"DropoutLayer\",\n  \"DSolve\",\n  \"DSolveValue\",\n  \"Dt\",\n  \"DualLinearProgramming\",\n  \"DualPolyhedron\",\n  \"DualSystemsModel\",\n  \"DumpGet\",\n  \"DumpSave\",\n  \"DuplicateFreeQ\",\n  \"Duration\",\n  \"Dynamic\",\n  \"DynamicBox\",\n  \"DynamicBoxOptions\",\n  \"DynamicEvaluationTimeout\",\n  \"DynamicGeoGraphics\",\n  \"DynamicImage\",\n  \"DynamicLocation\",\n  \"DynamicModule\",\n  \"DynamicModuleBox\",\n  \"DynamicModuleBoxOptions\",\n  \"DynamicModuleParent\",\n  \"DynamicModuleValues\",\n  \"DynamicName\",\n  \"DynamicNamespace\",\n  \"DynamicReference\",\n  \"DynamicSetting\",\n  \"DynamicUpdating\",\n  \"DynamicWrapper\",\n  \"DynamicWrapperBox\",\n  \"DynamicWrapperBoxOptions\",\n  \"E\",\n  \"EarthImpactData\",\n  \"EarthquakeData\",\n  \"EccentricityCentrality\",\n  \"Echo\",\n  \"EchoFunction\",\n  \"EclipseType\",\n  \"EdgeAdd\",\n  \"EdgeBetweennessCentrality\",\n  \"EdgeCapacity\",\n  \"EdgeCapForm\",\n  \"EdgeColor\",\n  \"EdgeConnectivity\",\n  \"EdgeContract\",\n  \"EdgeCost\",\n  \"EdgeCount\",\n  \"EdgeCoverQ\",\n  \"EdgeCycleMatrix\",\n  \"EdgeDashing\",\n  \"EdgeDelete\",\n  \"EdgeDetect\",\n  \"EdgeForm\",\n  \"EdgeIndex\",\n  \"EdgeJoinForm\",\n  \"EdgeLabeling\",\n  \"EdgeLabels\",\n  \"EdgeLabelStyle\",\n  \"EdgeList\",\n  \"EdgeOpacity\",\n  \"EdgeQ\",\n  \"EdgeRenderingFunction\",\n  \"EdgeRules\",\n  \"EdgeShapeFunction\",\n  \"EdgeStyle\",\n  \"EdgeTaggedGraph\",\n  \"EdgeTaggedGraphQ\",\n  \"EdgeTags\",\n  \"EdgeThickness\",\n  \"EdgeWeight\",\n  \"EdgeWeightedGraphQ\",\n  \"Editable\",\n  \"EditButtonSettings\",\n  \"EditCellTagsSettings\",\n  \"EditDistance\",\n  \"EffectiveInterest\",\n  \"Eigensystem\",\n  \"Eigenvalues\",\n  \"EigenvectorCentrality\",\n  \"Eigenvectors\",\n  \"Element\",\n  \"ElementData\",\n  \"ElementwiseLayer\",\n  \"ElidedForms\",\n  \"Eliminate\",\n  \"EliminationOrder\",\n  \"Ellipsoid\",\n  \"EllipticE\",\n  \"EllipticExp\",\n  \"EllipticExpPrime\",\n  \"EllipticF\",\n  \"EllipticFilterModel\",\n  \"EllipticK\",\n  \"EllipticLog\",\n  \"EllipticNomeQ\",\n  \"EllipticPi\",\n  \"EllipticReducedHalfPeriods\",\n  \"EllipticTheta\",\n  \"EllipticThetaPrime\",\n  \"EmbedCode\",\n  \"EmbeddedHTML\",\n  \"EmbeddedService\",\n  \"EmbeddingLayer\",\n  \"EmbeddingObject\",\n  \"EmitSound\",\n  \"EmphasizeSyntaxErrors\",\n  \"EmpiricalDistribution\",\n  \"Empty\",\n  \"EmptyGraphQ\",\n  \"EmptyRegion\",\n  \"EnableConsolePrintPacket\",\n  \"Enabled\",\n  \"Encode\",\n  \"Encrypt\",\n  \"EncryptedObject\",\n  \"EncryptFile\",\n  \"End\",\n  \"EndAdd\",\n  \"EndDialogPacket\",\n  \"EndFrontEndInteractionPacket\",\n  \"EndOfBuffer\",\n  \"EndOfFile\",\n  \"EndOfLine\",\n  \"EndOfString\",\n  \"EndPackage\",\n  \"EngineEnvironment\",\n  \"EngineeringForm\",\n  \"Enter\",\n  \"EnterExpressionPacket\",\n  \"EnterTextPacket\",\n  \"Entity\",\n  \"EntityClass\",\n  \"EntityClassList\",\n  \"EntityCopies\",\n  \"EntityFunction\",\n  \"EntityGroup\",\n  \"EntityInstance\",\n  \"EntityList\",\n  \"EntityPrefetch\",\n  \"EntityProperties\",\n  \"EntityProperty\",\n  \"EntityPropertyClass\",\n  \"EntityRegister\",\n  \"EntityStore\",\n  \"EntityStores\",\n  \"EntityTypeName\",\n  \"EntityUnregister\",\n  \"EntityValue\",\n  \"Entropy\",\n  \"EntropyFilter\",\n  \"Environment\",\n  \"Epilog\",\n  \"EpilogFunction\",\n  \"Equal\",\n  \"EqualColumns\",\n  \"EqualRows\",\n  \"EqualTilde\",\n  \"EqualTo\",\n  \"EquatedTo\",\n  \"Equilibrium\",\n  \"EquirippleFilterKernel\",\n  \"Equivalent\",\n  \"Erf\",\n  \"Erfc\",\n  \"Erfi\",\n  \"ErlangB\",\n  \"ErlangC\",\n  \"ErlangDistribution\",\n  \"Erosion\",\n  \"ErrorBox\",\n  \"ErrorBoxOptions\",\n  \"ErrorNorm\",\n  \"ErrorPacket\",\n  \"ErrorsDialogSettings\",\n  \"EscapeRadius\",\n  \"EstimatedBackground\",\n  \"EstimatedDistribution\",\n  \"EstimatedProcess\",\n  \"EstimatorGains\",\n  \"EstimatorRegulator\",\n  \"EuclideanDistance\",\n  \"EulerAngles\",\n  \"EulerCharacteristic\",\n  \"EulerE\",\n  \"EulerGamma\",\n  \"EulerianGraphQ\",\n  \"EulerMatrix\",\n  \"EulerPhi\",\n  \"Evaluatable\",\n  \"Evaluate\",\n  \"Evaluated\",\n  \"EvaluatePacket\",\n  \"EvaluateScheduledTask\",\n  \"EvaluationBox\",\n  \"EvaluationCell\",\n  \"EvaluationCompletionAction\",\n  \"EvaluationData\",\n  \"EvaluationElements\",\n  \"EvaluationEnvironment\",\n  \"EvaluationMode\",\n  \"EvaluationMonitor\",\n  \"EvaluationNotebook\",\n  \"EvaluationObject\",\n  \"EvaluationOrder\",\n  \"Evaluator\",\n  \"EvaluatorNames\",\n  \"EvenQ\",\n  \"EventData\",\n  \"EventEvaluator\",\n  \"EventHandler\",\n  \"EventHandlerTag\",\n  \"EventLabels\",\n  \"EventSeries\",\n  \"ExactBlackmanWindow\",\n  \"ExactNumberQ\",\n  \"ExactRootIsolation\",\n  \"ExampleData\",\n  \"Except\",\n  \"ExcludedForms\",\n  \"ExcludedLines\",\n  \"ExcludedPhysicalQuantities\",\n  \"ExcludePods\",\n  \"Exclusions\",\n  \"ExclusionsStyle\",\n  \"Exists\",\n  \"Exit\",\n  \"ExitDialog\",\n  \"ExoplanetData\",\n  \"Exp\",\n  \"Expand\",\n  \"ExpandAll\",\n  \"ExpandDenominator\",\n  \"ExpandFileName\",\n  \"ExpandNumerator\",\n  \"Expectation\",\n  \"ExpectationE\",\n  \"ExpectedValue\",\n  \"ExpGammaDistribution\",\n  \"ExpIntegralE\",\n  \"ExpIntegralEi\",\n  \"ExpirationDate\",\n  \"Exponent\",\n  \"ExponentFunction\",\n  \"ExponentialDistribution\",\n  \"ExponentialFamily\",\n  \"ExponentialGeneratingFunction\",\n  \"ExponentialMovingAverage\",\n  \"ExponentialPowerDistribution\",\n  \"ExponentPosition\",\n  \"ExponentStep\",\n  \"Export\",\n  \"ExportAutoReplacements\",\n  \"ExportByteArray\",\n  \"ExportForm\",\n  \"ExportPacket\",\n  \"ExportString\",\n  \"Expression\",\n  \"ExpressionCell\",\n  \"ExpressionGraph\",\n  \"ExpressionPacket\",\n  \"ExpressionUUID\",\n  \"ExpToTrig\",\n  \"ExtendedEntityClass\",\n  \"ExtendedGCD\",\n  \"Extension\",\n  \"ExtentElementFunction\",\n  \"ExtentMarkers\",\n  \"ExtentSize\",\n  \"ExternalBundle\",\n  \"ExternalCall\",\n  \"ExternalDataCharacterEncoding\",\n  \"ExternalEvaluate\",\n  \"ExternalFunction\",\n  \"ExternalFunctionName\",\n  \"ExternalIdentifier\",\n  \"ExternalObject\",\n  \"ExternalOptions\",\n  \"ExternalSessionObject\",\n  \"ExternalSessions\",\n  \"ExternalStorageBase\",\n  \"ExternalStorageDownload\",\n  \"ExternalStorageGet\",\n  \"ExternalStorageObject\",\n  \"ExternalStoragePut\",\n  \"ExternalStorageUpload\",\n  \"ExternalTypeSignature\",\n  \"ExternalValue\",\n  \"Extract\",\n  \"ExtractArchive\",\n  \"ExtractLayer\",\n  \"ExtractPacletArchive\",\n  \"ExtremeValueDistribution\",\n  \"FaceAlign\",\n  \"FaceForm\",\n  \"FaceGrids\",\n  \"FaceGridsStyle\",\n  \"FacialFeatures\",\n  \"Factor\",\n  \"FactorComplete\",\n  \"Factorial\",\n  \"Factorial2\",\n  \"FactorialMoment\",\n  \"FactorialMomentGeneratingFunction\",\n  \"FactorialPower\",\n  \"FactorInteger\",\n  \"FactorList\",\n  \"FactorSquareFree\",\n  \"FactorSquareFreeList\",\n  \"FactorTerms\",\n  \"FactorTermsList\",\n  \"Fail\",\n  \"Failure\",\n  \"FailureAction\",\n  \"FailureDistribution\",\n  \"FailureQ\",\n  \"False\",\n  \"FareySequence\",\n  \"FARIMAProcess\",\n  \"FeatureDistance\",\n  \"FeatureExtract\",\n  \"FeatureExtraction\",\n  \"FeatureExtractor\",\n  \"FeatureExtractorFunction\",\n  \"FeatureNames\",\n  \"FeatureNearest\",\n  \"FeatureSpacePlot\",\n  \"FeatureSpacePlot3D\",\n  \"FeatureTypes\",\n  \"FEDisableConsolePrintPacket\",\n  \"FeedbackLinearize\",\n  \"FeedbackSector\",\n  \"FeedbackSectorStyle\",\n  \"FeedbackType\",\n  \"FEEnableConsolePrintPacket\",\n  \"FetalGrowthData\",\n  \"Fibonacci\",\n  \"Fibonorial\",\n  \"FieldCompletionFunction\",\n  \"FieldHint\",\n  \"FieldHintStyle\",\n  \"FieldMasked\",\n  \"FieldSize\",\n  \"File\",\n  \"FileBaseName\",\n  \"FileByteCount\",\n  \"FileConvert\",\n  \"FileDate\",\n  \"FileExistsQ\",\n  \"FileExtension\",\n  \"FileFormat\",\n  \"FileHandler\",\n  \"FileHash\",\n  \"FileInformation\",\n  \"FileName\",\n  \"FileNameDepth\",\n  \"FileNameDialogSettings\",\n  \"FileNameDrop\",\n  \"FileNameForms\",\n  \"FileNameJoin\",\n  \"FileNames\",\n  \"FileNameSetter\",\n  \"FileNameSplit\",\n  \"FileNameTake\",\n  \"FilePrint\",\n  \"FileSize\",\n  \"FileSystemMap\",\n  \"FileSystemScan\",\n  \"FileTemplate\",\n  \"FileTemplateApply\",\n  \"FileType\",\n  \"FilledCurve\",\n  \"FilledCurveBox\",\n  \"FilledCurveBoxOptions\",\n  \"Filling\",\n  \"FillingStyle\",\n  \"FillingTransform\",\n  \"FilteredEntityClass\",\n  \"FilterRules\",\n  \"FinancialBond\",\n  \"FinancialData\",\n  \"FinancialDerivative\",\n  \"FinancialIndicator\",\n  \"Find\",\n  \"FindAnomalies\",\n  \"FindArgMax\",\n  \"FindArgMin\",\n  \"FindChannels\",\n  \"FindClique\",\n  \"FindClusters\",\n  \"FindCookies\",\n  \"FindCurvePath\",\n  \"FindCycle\",\n  \"FindDevices\",\n  \"FindDistribution\",\n  \"FindDistributionParameters\",\n  \"FindDivisions\",\n  \"FindEdgeCover\",\n  \"FindEdgeCut\",\n  \"FindEdgeIndependentPaths\",\n  \"FindEquationalProof\",\n  \"FindEulerianCycle\",\n  \"FindExternalEvaluators\",\n  \"FindFaces\",\n  \"FindFile\",\n  \"FindFit\",\n  \"FindFormula\",\n  \"FindFundamentalCycles\",\n  \"FindGeneratingFunction\",\n  \"FindGeoLocation\",\n  \"FindGeometricConjectures\",\n  \"FindGeometricTransform\",\n  \"FindGraphCommunities\",\n  \"FindGraphIsomorphism\",\n  \"FindGraphPartition\",\n  \"FindHamiltonianCycle\",\n  \"FindHamiltonianPath\",\n  \"FindHiddenMarkovStates\",\n  \"FindImageText\",\n  \"FindIndependentEdgeSet\",\n  \"FindIndependentVertexSet\",\n  \"FindInstance\",\n  \"FindIntegerNullVector\",\n  \"FindKClan\",\n  \"FindKClique\",\n  \"FindKClub\",\n  \"FindKPlex\",\n  \"FindLibrary\",\n  \"FindLinearRecurrence\",\n  \"FindList\",\n  \"FindMatchingColor\",\n  \"FindMaximum\",\n  \"FindMaximumCut\",\n  \"FindMaximumFlow\",\n  \"FindMaxValue\",\n  \"FindMeshDefects\",\n  \"FindMinimum\",\n  \"FindMinimumCostFlow\",\n  \"FindMinimumCut\",\n  \"FindMinValue\",\n  \"FindMoleculeSubstructure\",\n  \"FindPath\",\n  \"FindPeaks\",\n  \"FindPermutation\",\n  \"FindPostmanTour\",\n  \"FindProcessParameters\",\n  \"FindRepeat\",\n  \"FindRoot\",\n  \"FindSequenceFunction\",\n  \"FindSettings\",\n  \"FindShortestPath\",\n  \"FindShortestTour\",\n  \"FindSpanningTree\",\n  \"FindSystemModelEquilibrium\",\n  \"FindTextualAnswer\",\n  \"FindThreshold\",\n  \"FindTransientRepeat\",\n  \"FindVertexCover\",\n  \"FindVertexCut\",\n  \"FindVertexIndependentPaths\",\n  \"Fine\",\n  \"FinishDynamic\",\n  \"FiniteAbelianGroupCount\",\n  \"FiniteGroupCount\",\n  \"FiniteGroupData\",\n  \"First\",\n  \"FirstCase\",\n  \"FirstPassageTimeDistribution\",\n  \"FirstPosition\",\n  \"FischerGroupFi22\",\n  \"FischerGroupFi23\",\n  \"FischerGroupFi24Prime\",\n  \"FisherHypergeometricDistribution\",\n  \"FisherRatioTest\",\n  \"FisherZDistribution\",\n  \"Fit\",\n  \"FitAll\",\n  \"FitRegularization\",\n  \"FittedModel\",\n  \"FixedOrder\",\n  \"FixedPoint\",\n  \"FixedPointList\",\n  \"FlashSelection\",\n  \"Flat\",\n  \"Flatten\",\n  \"FlattenAt\",\n  \"FlattenLayer\",\n  \"FlatTopWindow\",\n  \"FlipView\",\n  \"Floor\",\n  \"FlowPolynomial\",\n  \"FlushPrintOutputPacket\",\n  \"Fold\",\n  \"FoldList\",\n  \"FoldPair\",\n  \"FoldPairList\",\n  \"FollowRedirects\",\n  \"Font\",\n  \"FontColor\",\n  \"FontFamily\",\n  \"FontForm\",\n  \"FontName\",\n  \"FontOpacity\",\n  \"FontPostScriptName\",\n  \"FontProperties\",\n  \"FontReencoding\",\n  \"FontSize\",\n  \"FontSlant\",\n  \"FontSubstitutions\",\n  \"FontTracking\",\n  \"FontVariations\",\n  \"FontWeight\",\n  \"For\",\n  \"ForAll\",\n  \"ForceVersionInstall\",\n  \"Format\",\n  \"FormatRules\",\n  \"FormatType\",\n  \"FormatTypeAutoConvert\",\n  \"FormatValues\",\n  \"FormBox\",\n  \"FormBoxOptions\",\n  \"FormControl\",\n  \"FormFunction\",\n  \"FormLayoutFunction\",\n  \"FormObject\",\n  \"FormPage\",\n  \"FormTheme\",\n  \"FormulaData\",\n  \"FormulaLookup\",\n  \"FortranForm\",\n  \"Forward\",\n  \"ForwardBackward\",\n  \"Fourier\",\n  \"FourierCoefficient\",\n  \"FourierCosCoefficient\",\n  \"FourierCosSeries\",\n  \"FourierCosTransform\",\n  \"FourierDCT\",\n  \"FourierDCTFilter\",\n  \"FourierDCTMatrix\",\n  \"FourierDST\",\n  \"FourierDSTMatrix\",\n  \"FourierMatrix\",\n  \"FourierParameters\",\n  \"FourierSequenceTransform\",\n  \"FourierSeries\",\n  \"FourierSinCoefficient\",\n  \"FourierSinSeries\",\n  \"FourierSinTransform\",\n  \"FourierTransform\",\n  \"FourierTrigSeries\",\n  \"FractionalBrownianMotionProcess\",\n  \"FractionalGaussianNoiseProcess\",\n  \"FractionalPart\",\n  \"FractionBox\",\n  \"FractionBoxOptions\",\n  \"FractionLine\",\n  \"Frame\",\n  \"FrameBox\",\n  \"FrameBoxOptions\",\n  \"Framed\",\n  \"FrameInset\",\n  \"FrameLabel\",\n  \"Frameless\",\n  \"FrameMargins\",\n  \"FrameRate\",\n  \"FrameStyle\",\n  \"FrameTicks\",\n  \"FrameTicksStyle\",\n  \"FRatioDistribution\",\n  \"FrechetDistribution\",\n  \"FreeQ\",\n  \"FrenetSerretSystem\",\n  \"FrequencySamplingFilterKernel\",\n  \"FresnelC\",\n  \"FresnelF\",\n  \"FresnelG\",\n  \"FresnelS\",\n  \"Friday\",\n  \"FrobeniusNumber\",\n  \"FrobeniusSolve\",\n  \"FromAbsoluteTime\",\n  \"FromCharacterCode\",\n  \"FromCoefficientRules\",\n  \"FromContinuedFraction\",\n  \"FromDate\",\n  \"FromDigits\",\n  \"FromDMS\",\n  \"FromEntity\",\n  \"FromJulianDate\",\n  \"FromLetterNumber\",\n  \"FromPolarCoordinates\",\n  \"FromRomanNumeral\",\n  \"FromSphericalCoordinates\",\n  \"FromUnixTime\",\n  \"Front\",\n  \"FrontEndDynamicExpression\",\n  \"FrontEndEventActions\",\n  \"FrontEndExecute\",\n  \"FrontEndObject\",\n  \"FrontEndResource\",\n  \"FrontEndResourceString\",\n  \"FrontEndStackSize\",\n  \"FrontEndToken\",\n  \"FrontEndTokenExecute\",\n  \"FrontEndValueCache\",\n  \"FrontEndVersion\",\n  \"FrontFaceColor\",\n  \"FrontFaceOpacity\",\n  \"Full\",\n  \"FullAxes\",\n  \"FullDefinition\",\n  \"FullForm\",\n  \"FullGraphics\",\n  \"FullInformationOutputRegulator\",\n  \"FullOptions\",\n  \"FullRegion\",\n  \"FullSimplify\",\n  \"Function\",\n  \"FunctionCompile\",\n  \"FunctionCompileExport\",\n  \"FunctionCompileExportByteArray\",\n  \"FunctionCompileExportLibrary\",\n  \"FunctionCompileExportString\",\n  \"FunctionDomain\",\n  \"FunctionExpand\",\n  \"FunctionInterpolation\",\n  \"FunctionPeriod\",\n  \"FunctionRange\",\n  \"FunctionSpace\",\n  \"FussellVeselyImportance\",\n  \"GaborFilter\",\n  \"GaborMatrix\",\n  \"GaborWavelet\",\n  \"GainMargins\",\n  \"GainPhaseMargins\",\n  \"GalaxyData\",\n  \"GalleryView\",\n  \"Gamma\",\n  \"GammaDistribution\",\n  \"GammaRegularized\",\n  \"GapPenalty\",\n  \"GARCHProcess\",\n  \"GatedRecurrentLayer\",\n  \"Gather\",\n  \"GatherBy\",\n  \"GaugeFaceElementFunction\",\n  \"GaugeFaceStyle\",\n  \"GaugeFrameElementFunction\",\n  \"GaugeFrameSize\",\n  \"GaugeFrameStyle\",\n  \"GaugeLabels\",\n  \"GaugeMarkers\",\n  \"GaugeStyle\",\n  \"GaussianFilter\",\n  \"GaussianIntegers\",\n  \"GaussianMatrix\",\n  \"GaussianOrthogonalMatrixDistribution\",\n  \"GaussianSymplecticMatrixDistribution\",\n  \"GaussianUnitaryMatrixDistribution\",\n  \"GaussianWindow\",\n  \"GCD\",\n  \"GegenbauerC\",\n  \"General\",\n  \"GeneralizedLinearModelFit\",\n  \"GenerateAsymmetricKeyPair\",\n  \"GenerateConditions\",\n  \"GeneratedCell\",\n  \"GeneratedDocumentBinding\",\n  \"GenerateDerivedKey\",\n  \"GenerateDigitalSignature\",\n  \"GenerateDocument\",\n  \"GeneratedParameters\",\n  \"GeneratedQuantityMagnitudes\",\n  \"GenerateFileSignature\",\n  \"GenerateHTTPResponse\",\n  \"GenerateSecuredAuthenticationKey\",\n  \"GenerateSymmetricKey\",\n  \"GeneratingFunction\",\n  \"GeneratorDescription\",\n  \"GeneratorHistoryLength\",\n  \"GeneratorOutputType\",\n  \"Generic\",\n  \"GenericCylindricalDecomposition\",\n  \"GenomeData\",\n  \"GenomeLookup\",\n  \"GeoAntipode\",\n  \"GeoArea\",\n  \"GeoArraySize\",\n  \"GeoBackground\",\n  \"GeoBoundingBox\",\n  \"GeoBounds\",\n  \"GeoBoundsRegion\",\n  \"GeoBubbleChart\",\n  \"GeoCenter\",\n  \"GeoCircle\",\n  \"GeoContourPlot\",\n  \"GeoDensityPlot\",\n  \"GeodesicClosing\",\n  \"GeodesicDilation\",\n  \"GeodesicErosion\",\n  \"GeodesicOpening\",\n  \"GeoDestination\",\n  \"GeodesyData\",\n  \"GeoDirection\",\n  \"GeoDisk\",\n  \"GeoDisplacement\",\n  \"GeoDistance\",\n  \"GeoDistanceList\",\n  \"GeoElevationData\",\n  \"GeoEntities\",\n  \"GeoGraphics\",\n  \"GeogravityModelData\",\n  \"GeoGridDirectionDifference\",\n  \"GeoGridLines\",\n  \"GeoGridLinesStyle\",\n  \"GeoGridPosition\",\n  \"GeoGridRange\",\n  \"GeoGridRangePadding\",\n  \"GeoGridUnitArea\",\n  \"GeoGridUnitDistance\",\n  \"GeoGridVector\",\n  \"GeoGroup\",\n  \"GeoHemisphere\",\n  \"GeoHemisphereBoundary\",\n  \"GeoHistogram\",\n  \"GeoIdentify\",\n  \"GeoImage\",\n  \"GeoLabels\",\n  \"GeoLength\",\n  \"GeoListPlot\",\n  \"GeoLocation\",\n  \"GeologicalPeriodData\",\n  \"GeomagneticModelData\",\n  \"GeoMarker\",\n  \"GeometricAssertion\",\n  \"GeometricBrownianMotionProcess\",\n  \"GeometricDistribution\",\n  \"GeometricMean\",\n  \"GeometricMeanFilter\",\n  \"GeometricOptimization\",\n  \"GeometricScene\",\n  \"GeometricTransformation\",\n  \"GeometricTransformation3DBox\",\n  \"GeometricTransformation3DBoxOptions\",\n  \"GeometricTransformationBox\",\n  \"GeometricTransformationBoxOptions\",\n  \"GeoModel\",\n  \"GeoNearest\",\n  \"GeoPath\",\n  \"GeoPosition\",\n  \"GeoPositionENU\",\n  \"GeoPositionXYZ\",\n  \"GeoProjection\",\n  \"GeoProjectionData\",\n  \"GeoRange\",\n  \"GeoRangePadding\",\n  \"GeoRegionValuePlot\",\n  \"GeoResolution\",\n  \"GeoScaleBar\",\n  \"GeoServer\",\n  \"GeoSmoothHistogram\",\n  \"GeoStreamPlot\",\n  \"GeoStyling\",\n  \"GeoStylingImageFunction\",\n  \"GeoVariant\",\n  \"GeoVector\",\n  \"GeoVectorENU\",\n  \"GeoVectorPlot\",\n  \"GeoVectorXYZ\",\n  \"GeoVisibleRegion\",\n  \"GeoVisibleRegionBoundary\",\n  \"GeoWithinQ\",\n  \"GeoZoomLevel\",\n  \"GestureHandler\",\n  \"GestureHandlerTag\",\n  \"Get\",\n  \"GetBoundingBoxSizePacket\",\n  \"GetContext\",\n  \"GetEnvironment\",\n  \"GetFileName\",\n  \"GetFrontEndOptionsDataPacket\",\n  \"GetLinebreakInformationPacket\",\n  \"GetMenusPacket\",\n  \"GetPageBreakInformationPacket\",\n  \"Glaisher\",\n  \"GlobalClusteringCoefficient\",\n  \"GlobalPreferences\",\n  \"GlobalSession\",\n  \"Glow\",\n  \"GoldenAngle\",\n  \"GoldenRatio\",\n  \"GompertzMakehamDistribution\",\n  \"GoochShading\",\n  \"GoodmanKruskalGamma\",\n  \"GoodmanKruskalGammaTest\",\n  \"Goto\",\n  \"Grad\",\n  \"Gradient\",\n  \"GradientFilter\",\n  \"GradientOrientationFilter\",\n  \"GrammarApply\",\n  \"GrammarRules\",\n  \"GrammarToken\",\n  \"Graph\",\n  \"Graph3D\",\n  \"GraphAssortativity\",\n  \"GraphAutomorphismGroup\",\n  \"GraphCenter\",\n  \"GraphComplement\",\n  \"GraphData\",\n  \"GraphDensity\",\n  \"GraphDiameter\",\n  \"GraphDifference\",\n  \"GraphDisjointUnion\",\n  \"GraphDistance\",\n  \"GraphDistanceMatrix\",\n  \"GraphElementData\",\n  \"GraphEmbedding\",\n  \"GraphHighlight\",\n  \"GraphHighlightStyle\",\n  \"GraphHub\",\n  \"Graphics\",\n  \"Graphics3D\",\n  \"Graphics3DBox\",\n  \"Graphics3DBoxOptions\",\n  \"GraphicsArray\",\n  \"GraphicsBaseline\",\n  \"GraphicsBox\",\n  \"GraphicsBoxOptions\",\n  \"GraphicsColor\",\n  \"GraphicsColumn\",\n  \"GraphicsComplex\",\n  \"GraphicsComplex3DBox\",\n  \"GraphicsComplex3DBoxOptions\",\n  \"GraphicsComplexBox\",\n  \"GraphicsComplexBoxOptions\",\n  \"GraphicsContents\",\n  \"GraphicsData\",\n  \"GraphicsGrid\",\n  \"GraphicsGridBox\",\n  \"GraphicsGroup\",\n  \"GraphicsGroup3DBox\",\n  \"GraphicsGroup3DBoxOptions\",\n  \"GraphicsGroupBox\",\n  \"GraphicsGroupBoxOptions\",\n  \"GraphicsGrouping\",\n  \"GraphicsHighlightColor\",\n  \"GraphicsRow\",\n  \"GraphicsSpacing\",\n  \"GraphicsStyle\",\n  \"GraphIntersection\",\n  \"GraphLayout\",\n  \"GraphLinkEfficiency\",\n  \"GraphPeriphery\",\n  \"GraphPlot\",\n  \"GraphPlot3D\",\n  \"GraphPower\",\n  \"GraphPropertyDistribution\",\n  \"GraphQ\",\n  \"GraphRadius\",\n  \"GraphReciprocity\",\n  \"GraphRoot\",\n  \"GraphStyle\",\n  \"GraphUnion\",\n  \"Gray\",\n  \"GrayLevel\",\n  \"Greater\",\n  \"GreaterEqual\",\n  \"GreaterEqualLess\",\n  \"GreaterEqualThan\",\n  \"GreaterFullEqual\",\n  \"GreaterGreater\",\n  \"GreaterLess\",\n  \"GreaterSlantEqual\",\n  \"GreaterThan\",\n  \"GreaterTilde\",\n  \"Green\",\n  \"GreenFunction\",\n  \"Grid\",\n  \"GridBaseline\",\n  \"GridBox\",\n  \"GridBoxAlignment\",\n  \"GridBoxBackground\",\n  \"GridBoxDividers\",\n  \"GridBoxFrame\",\n  \"GridBoxItemSize\",\n  \"GridBoxItemStyle\",\n  \"GridBoxOptions\",\n  \"GridBoxSpacings\",\n  \"GridCreationSettings\",\n  \"GridDefaultElement\",\n  \"GridElementStyleOptions\",\n  \"GridFrame\",\n  \"GridFrameMargins\",\n  \"GridGraph\",\n  \"GridLines\",\n  \"GridLinesStyle\",\n  \"GroebnerBasis\",\n  \"GroupActionBase\",\n  \"GroupBy\",\n  \"GroupCentralizer\",\n  \"GroupElementFromWord\",\n  \"GroupElementPosition\",\n  \"GroupElementQ\",\n  \"GroupElements\",\n  \"GroupElementToWord\",\n  \"GroupGenerators\",\n  \"Groupings\",\n  \"GroupMultiplicationTable\",\n  \"GroupOrbits\",\n  \"GroupOrder\",\n  \"GroupPageBreakWithin\",\n  \"GroupSetwiseStabilizer\",\n  \"GroupStabilizer\",\n  \"GroupStabilizerChain\",\n  \"GroupTogetherGrouping\",\n  \"GroupTogetherNestedGrouping\",\n  \"GrowCutComponents\",\n  \"Gudermannian\",\n  \"GuidedFilter\",\n  \"GumbelDistribution\",\n  \"HaarWavelet\",\n  \"HadamardMatrix\",\n  \"HalfLine\",\n  \"HalfNormalDistribution\",\n  \"HalfPlane\",\n  \"HalfSpace\",\n  \"HalftoneShading\",\n  \"HamiltonianGraphQ\",\n  \"HammingDistance\",\n  \"HammingWindow\",\n  \"HandlerFunctions\",\n  \"HandlerFunctionsKeys\",\n  \"HankelH1\",\n  \"HankelH2\",\n  \"HankelMatrix\",\n  \"HankelTransform\",\n  \"HannPoissonWindow\",\n  \"HannWindow\",\n  \"HaradaNortonGroupHN\",\n  \"HararyGraph\",\n  \"HarmonicMean\",\n  \"HarmonicMeanFilter\",\n  \"HarmonicNumber\",\n  \"Hash\",\n  \"HatchFilling\",\n  \"HatchShading\",\n  \"Haversine\",\n  \"HazardFunction\",\n  \"Head\",\n  \"HeadCompose\",\n  \"HeaderAlignment\",\n  \"HeaderBackground\",\n  \"HeaderDisplayFunction\",\n  \"HeaderLines\",\n  \"HeaderSize\",\n  \"HeaderStyle\",\n  \"Heads\",\n  \"HeavisideLambda\",\n  \"HeavisidePi\",\n  \"HeavisideTheta\",\n  \"HeldGroupHe\",\n  \"HeldPart\",\n  \"HelpBrowserLookup\",\n  \"HelpBrowserNotebook\",\n  \"HelpBrowserSettings\",\n  \"Here\",\n  \"HermiteDecomposition\",\n  \"HermiteH\",\n  \"HermitianMatrixQ\",\n  \"HessenbergDecomposition\",\n  \"Hessian\",\n  \"HeunB\",\n  \"HeunBPrime\",\n  \"HeunC\",\n  \"HeunCPrime\",\n  \"HeunD\",\n  \"HeunDPrime\",\n  \"HeunG\",\n  \"HeunGPrime\",\n  \"HeunT\",\n  \"HeunTPrime\",\n  \"HexadecimalCharacter\",\n  \"Hexahedron\",\n  \"HexahedronBox\",\n  \"HexahedronBoxOptions\",\n  \"HiddenItems\",\n  \"HiddenMarkovProcess\",\n  \"HiddenSurface\",\n  \"Highlighted\",\n  \"HighlightGraph\",\n  \"HighlightImage\",\n  \"HighlightMesh\",\n  \"HighpassFilter\",\n  \"HigmanSimsGroupHS\",\n  \"HilbertCurve\",\n  \"HilbertFilter\",\n  \"HilbertMatrix\",\n  \"Histogram\",\n  \"Histogram3D\",\n  \"HistogramDistribution\",\n  \"HistogramList\",\n  \"HistogramTransform\",\n  \"HistogramTransformInterpolation\",\n  \"HistoricalPeriodData\",\n  \"HitMissTransform\",\n  \"HITSCentrality\",\n  \"HjorthDistribution\",\n  \"HodgeDual\",\n  \"HoeffdingD\",\n  \"HoeffdingDTest\",\n  \"Hold\",\n  \"HoldAll\",\n  \"HoldAllComplete\",\n  \"HoldComplete\",\n  \"HoldFirst\",\n  \"HoldForm\",\n  \"HoldPattern\",\n  \"HoldRest\",\n  \"HolidayCalendar\",\n  \"HomeDirectory\",\n  \"HomePage\",\n  \"Horizontal\",\n  \"HorizontalForm\",\n  \"HorizontalGauge\",\n  \"HorizontalScrollPosition\",\n  \"HornerForm\",\n  \"HostLookup\",\n  \"HotellingTSquareDistribution\",\n  \"HoytDistribution\",\n  \"HTMLSave\",\n  \"HTTPErrorResponse\",\n  \"HTTPRedirect\",\n  \"HTTPRequest\",\n  \"HTTPRequestData\",\n  \"HTTPResponse\",\n  \"Hue\",\n  \"HumanGrowthData\",\n  \"HumpDownHump\",\n  \"HumpEqual\",\n  \"HurwitzLerchPhi\",\n  \"HurwitzZeta\",\n  \"HyperbolicDistribution\",\n  \"HypercubeGraph\",\n  \"HyperexponentialDistribution\",\n  \"Hyperfactorial\",\n  \"Hypergeometric0F1\",\n  \"Hypergeometric0F1Regularized\",\n  \"Hypergeometric1F1\",\n  \"Hypergeometric1F1Regularized\",\n  \"Hypergeometric2F1\",\n  \"Hypergeometric2F1Regularized\",\n  \"HypergeometricDistribution\",\n  \"HypergeometricPFQ\",\n  \"HypergeometricPFQRegularized\",\n  \"HypergeometricU\",\n  \"Hyperlink\",\n  \"HyperlinkAction\",\n  \"HyperlinkCreationSettings\",\n  \"Hyperplane\",\n  \"Hyphenation\",\n  \"HyphenationOptions\",\n  \"HypoexponentialDistribution\",\n  \"HypothesisTestData\",\n  \"I\",\n  \"IconData\",\n  \"Iconize\",\n  \"IconizedObject\",\n  \"IconRules\",\n  \"Icosahedron\",\n  \"Identity\",\n  \"IdentityMatrix\",\n  \"If\",\n  \"IgnoreCase\",\n  \"IgnoreDiacritics\",\n  \"IgnorePunctuation\",\n  \"IgnoreSpellCheck\",\n  \"IgnoringInactive\",\n  \"Im\",\n  \"Image\",\n  \"Image3D\",\n  \"Image3DProjection\",\n  \"Image3DSlices\",\n  \"ImageAccumulate\",\n  \"ImageAdd\",\n  \"ImageAdjust\",\n  \"ImageAlign\",\n  \"ImageApply\",\n  \"ImageApplyIndexed\",\n  \"ImageAspectRatio\",\n  \"ImageAssemble\",\n  \"ImageAugmentationLayer\",\n  \"ImageBoundingBoxes\",\n  \"ImageCache\",\n  \"ImageCacheValid\",\n  \"ImageCapture\",\n  \"ImageCaptureFunction\",\n  \"ImageCases\",\n  \"ImageChannels\",\n  \"ImageClip\",\n  \"ImageCollage\",\n  \"ImageColorSpace\",\n  \"ImageCompose\",\n  \"ImageContainsQ\",\n  \"ImageContents\",\n  \"ImageConvolve\",\n  \"ImageCooccurrence\",\n  \"ImageCorners\",\n  \"ImageCorrelate\",\n  \"ImageCorrespondingPoints\",\n  \"ImageCrop\",\n  \"ImageData\",\n  \"ImageDeconvolve\",\n  \"ImageDemosaic\",\n  \"ImageDifference\",\n  \"ImageDimensions\",\n  \"ImageDisplacements\",\n  \"ImageDistance\",\n  \"ImageEffect\",\n  \"ImageExposureCombine\",\n  \"ImageFeatureTrack\",\n  \"ImageFileApply\",\n  \"ImageFileFilter\",\n  \"ImageFileScan\",\n  \"ImageFilter\",\n  \"ImageFocusCombine\",\n  \"ImageForestingComponents\",\n  \"ImageFormattingWidth\",\n  \"ImageForwardTransformation\",\n  \"ImageGraphics\",\n  \"ImageHistogram\",\n  \"ImageIdentify\",\n  \"ImageInstanceQ\",\n  \"ImageKeypoints\",\n  \"ImageLabels\",\n  \"ImageLegends\",\n  \"ImageLevels\",\n  \"ImageLines\",\n  \"ImageMargins\",\n  \"ImageMarker\",\n  \"ImageMarkers\",\n  \"ImageMeasurements\",\n  \"ImageMesh\",\n  \"ImageMultiply\",\n  \"ImageOffset\",\n  \"ImagePad\",\n  \"ImagePadding\",\n  \"ImagePartition\",\n  \"ImagePeriodogram\",\n  \"ImagePerspectiveTransformation\",\n  \"ImagePosition\",\n  \"ImagePreviewFunction\",\n  \"ImagePyramid\",\n  \"ImagePyramidApply\",\n  \"ImageQ\",\n  \"ImageRangeCache\",\n  \"ImageRecolor\",\n  \"ImageReflect\",\n  \"ImageRegion\",\n  \"ImageResize\",\n  \"ImageResolution\",\n  \"ImageRestyle\",\n  \"ImageRotate\",\n  \"ImageRotated\",\n  \"ImageSaliencyFilter\",\n  \"ImageScaled\",\n  \"ImageScan\",\n  \"ImageSize\",\n  \"ImageSizeAction\",\n  \"ImageSizeCache\",\n  \"ImageSizeMultipliers\",\n  \"ImageSizeRaw\",\n  \"ImageSubtract\",\n  \"ImageTake\",\n  \"ImageTransformation\",\n  \"ImageTrim\",\n  \"ImageType\",\n  \"ImageValue\",\n  \"ImageValuePositions\",\n  \"ImagingDevice\",\n  \"ImplicitRegion\",\n  \"Implies\",\n  \"Import\",\n  \"ImportAutoReplacements\",\n  \"ImportByteArray\",\n  \"ImportOptions\",\n  \"ImportString\",\n  \"ImprovementImportance\",\n  \"In\",\n  \"Inactivate\",\n  \"Inactive\",\n  \"IncidenceGraph\",\n  \"IncidenceList\",\n  \"IncidenceMatrix\",\n  \"IncludeAromaticBonds\",\n  \"IncludeConstantBasis\",\n  \"IncludeDefinitions\",\n  \"IncludeDirectories\",\n  \"IncludeFileExtension\",\n  \"IncludeGeneratorTasks\",\n  \"IncludeHydrogens\",\n  \"IncludeInflections\",\n  \"IncludeMetaInformation\",\n  \"IncludePods\",\n  \"IncludeQuantities\",\n  \"IncludeRelatedTables\",\n  \"IncludeSingularTerm\",\n  \"IncludeWindowTimes\",\n  \"Increment\",\n  \"IndefiniteMatrixQ\",\n  \"Indent\",\n  \"IndentingNewlineSpacings\",\n  \"IndentMaxFraction\",\n  \"IndependenceTest\",\n  \"IndependentEdgeSetQ\",\n  \"IndependentPhysicalQuantity\",\n  \"IndependentUnit\",\n  \"IndependentUnitDimension\",\n  \"IndependentVertexSetQ\",\n  \"Indeterminate\",\n  \"IndeterminateThreshold\",\n  \"IndexCreationOptions\",\n  \"Indexed\",\n  \"IndexEdgeTaggedGraph\",\n  \"IndexGraph\",\n  \"IndexTag\",\n  \"Inequality\",\n  \"InexactNumberQ\",\n  \"InexactNumbers\",\n  \"InfiniteFuture\",\n  \"InfiniteLine\",\n  \"InfinitePast\",\n  \"InfinitePlane\",\n  \"Infinity\",\n  \"Infix\",\n  \"InflationAdjust\",\n  \"InflationMethod\",\n  \"Information\",\n  \"InformationData\",\n  \"InformationDataGrid\",\n  \"Inherited\",\n  \"InheritScope\",\n  \"InhomogeneousPoissonProcess\",\n  \"InitialEvaluationHistory\",\n  \"Initialization\",\n  \"InitializationCell\",\n  \"InitializationCellEvaluation\",\n  \"InitializationCellWarning\",\n  \"InitializationObjects\",\n  \"InitializationValue\",\n  \"Initialize\",\n  \"InitialSeeding\",\n  \"InlineCounterAssignments\",\n  \"InlineCounterIncrements\",\n  \"InlineRules\",\n  \"Inner\",\n  \"InnerPolygon\",\n  \"InnerPolyhedron\",\n  \"Inpaint\",\n  \"Input\",\n  \"InputAliases\",\n  \"InputAssumptions\",\n  \"InputAutoReplacements\",\n  \"InputField\",\n  \"InputFieldBox\",\n  \"InputFieldBoxOptions\",\n  \"InputForm\",\n  \"InputGrouping\",\n  \"InputNamePacket\",\n  \"InputNotebook\",\n  \"InputPacket\",\n  \"InputSettings\",\n  \"InputStream\",\n  \"InputString\",\n  \"InputStringPacket\",\n  \"InputToBoxFormPacket\",\n  \"Insert\",\n  \"InsertionFunction\",\n  \"InsertionPointObject\",\n  \"InsertLinebreaks\",\n  \"InsertResults\",\n  \"Inset\",\n  \"Inset3DBox\",\n  \"Inset3DBoxOptions\",\n  \"InsetBox\",\n  \"InsetBoxOptions\",\n  \"Insphere\",\n  \"Install\",\n  \"InstallService\",\n  \"InstanceNormalizationLayer\",\n  \"InString\",\n  \"Integer\",\n  \"IntegerDigits\",\n  \"IntegerExponent\",\n  \"IntegerLength\",\n  \"IntegerName\",\n  \"IntegerPart\",\n  \"IntegerPartitions\",\n  \"IntegerQ\",\n  \"IntegerReverse\",\n  \"Integers\",\n  \"IntegerString\",\n  \"Integral\",\n  \"Integrate\",\n  \"Interactive\",\n  \"InteractiveTradingChart\",\n  \"Interlaced\",\n  \"Interleaving\",\n  \"InternallyBalancedDecomposition\",\n  \"InterpolatingFunction\",\n  \"InterpolatingPolynomial\",\n  \"Interpolation\",\n  \"InterpolationOrder\",\n  \"InterpolationPoints\",\n  \"InterpolationPrecision\",\n  \"Interpretation\",\n  \"InterpretationBox\",\n  \"InterpretationBoxOptions\",\n  \"InterpretationFunction\",\n  \"Interpreter\",\n  \"InterpretTemplate\",\n  \"InterquartileRange\",\n  \"Interrupt\",\n  \"InterruptSettings\",\n  \"IntersectedEntityClass\",\n  \"IntersectingQ\",\n  \"Intersection\",\n  \"Interval\",\n  \"IntervalIntersection\",\n  \"IntervalMarkers\",\n  \"IntervalMarkersStyle\",\n  \"IntervalMemberQ\",\n  \"IntervalSlider\",\n  \"IntervalUnion\",\n  \"Into\",\n  \"Inverse\",\n  \"InverseBetaRegularized\",\n  \"InverseCDF\",\n  \"InverseChiSquareDistribution\",\n  \"InverseContinuousWaveletTransform\",\n  \"InverseDistanceTransform\",\n  \"InverseEllipticNomeQ\",\n  \"InverseErf\",\n  \"InverseErfc\",\n  \"InverseFourier\",\n  \"InverseFourierCosTransform\",\n  \"InverseFourierSequenceTransform\",\n  \"InverseFourierSinTransform\",\n  \"InverseFourierTransform\",\n  \"InverseFunction\",\n  \"InverseFunctions\",\n  \"InverseGammaDistribution\",\n  \"InverseGammaRegularized\",\n  \"InverseGaussianDistribution\",\n  \"InverseGudermannian\",\n  \"InverseHankelTransform\",\n  \"InverseHaversine\",\n  \"InverseImagePyramid\",\n  \"InverseJacobiCD\",\n  \"InverseJacobiCN\",\n  \"InverseJacobiCS\",\n  \"InverseJacobiDC\",\n  \"InverseJacobiDN\",\n  \"InverseJacobiDS\",\n  \"InverseJacobiNC\",\n  \"InverseJacobiND\",\n  \"InverseJacobiNS\",\n  \"InverseJacobiSC\",\n  \"InverseJacobiSD\",\n  \"InverseJacobiSN\",\n  \"InverseLaplaceTransform\",\n  \"InverseMellinTransform\",\n  \"InversePermutation\",\n  \"InverseRadon\",\n  \"InverseRadonTransform\",\n  \"InverseSeries\",\n  \"InverseShortTimeFourier\",\n  \"InverseSpectrogram\",\n  \"InverseSurvivalFunction\",\n  \"InverseTransformedRegion\",\n  \"InverseWaveletTransform\",\n  \"InverseWeierstrassP\",\n  \"InverseWishartMatrixDistribution\",\n  \"InverseZTransform\",\n  \"Invisible\",\n  \"InvisibleApplication\",\n  \"InvisibleTimes\",\n  \"IPAddress\",\n  \"IrreduciblePolynomialQ\",\n  \"IslandData\",\n  \"IsolatingInterval\",\n  \"IsomorphicGraphQ\",\n  \"IsotopeData\",\n  \"Italic\",\n  \"Item\",\n  \"ItemAspectRatio\",\n  \"ItemBox\",\n  \"ItemBoxOptions\",\n  \"ItemDisplayFunction\",\n  \"ItemSize\",\n  \"ItemStyle\",\n  \"ItoProcess\",\n  \"JaccardDissimilarity\",\n  \"JacobiAmplitude\",\n  \"Jacobian\",\n  \"JacobiCD\",\n  \"JacobiCN\",\n  \"JacobiCS\",\n  \"JacobiDC\",\n  \"JacobiDN\",\n  \"JacobiDS\",\n  \"JacobiNC\",\n  \"JacobiND\",\n  \"JacobiNS\",\n  \"JacobiP\",\n  \"JacobiSC\",\n  \"JacobiSD\",\n  \"JacobiSN\",\n  \"JacobiSymbol\",\n  \"JacobiZeta\",\n  \"JankoGroupJ1\",\n  \"JankoGroupJ2\",\n  \"JankoGroupJ3\",\n  \"JankoGroupJ4\",\n  \"JarqueBeraALMTest\",\n  \"JohnsonDistribution\",\n  \"Join\",\n  \"JoinAcross\",\n  \"Joined\",\n  \"JoinedCurve\",\n  \"JoinedCurveBox\",\n  \"JoinedCurveBoxOptions\",\n  \"JoinForm\",\n  \"JordanDecomposition\",\n  \"JordanModelDecomposition\",\n  \"JulianDate\",\n  \"JuliaSetBoettcher\",\n  \"JuliaSetIterationCount\",\n  \"JuliaSetPlot\",\n  \"JuliaSetPoints\",\n  \"K\",\n  \"KagiChart\",\n  \"KaiserBesselWindow\",\n  \"KaiserWindow\",\n  \"KalmanEstimator\",\n  \"KalmanFilter\",\n  \"KarhunenLoeveDecomposition\",\n  \"KaryTree\",\n  \"KatzCentrality\",\n  \"KCoreComponents\",\n  \"KDistribution\",\n  \"KEdgeConnectedComponents\",\n  \"KEdgeConnectedGraphQ\",\n  \"KeepExistingVersion\",\n  \"KelvinBei\",\n  \"KelvinBer\",\n  \"KelvinKei\",\n  \"KelvinKer\",\n  \"KendallTau\",\n  \"KendallTauTest\",\n  \"KernelExecute\",\n  \"KernelFunction\",\n  \"KernelMixtureDistribution\",\n  \"KernelObject\",\n  \"Kernels\",\n  \"Ket\",\n  \"Key\",\n  \"KeyCollisionFunction\",\n  \"KeyComplement\",\n  \"KeyDrop\",\n  \"KeyDropFrom\",\n  \"KeyExistsQ\",\n  \"KeyFreeQ\",\n  \"KeyIntersection\",\n  \"KeyMap\",\n  \"KeyMemberQ\",\n  \"KeypointStrength\",\n  \"Keys\",\n  \"KeySelect\",\n  \"KeySort\",\n  \"KeySortBy\",\n  \"KeyTake\",\n  \"KeyUnion\",\n  \"KeyValueMap\",\n  \"KeyValuePattern\",\n  \"Khinchin\",\n  \"KillProcess\",\n  \"KirchhoffGraph\",\n  \"KirchhoffMatrix\",\n  \"KleinInvariantJ\",\n  \"KnapsackSolve\",\n  \"KnightTourGraph\",\n  \"KnotData\",\n  \"KnownUnitQ\",\n  \"KochCurve\",\n  \"KolmogorovSmirnovTest\",\n  \"KroneckerDelta\",\n  \"KroneckerModelDecomposition\",\n  \"KroneckerProduct\",\n  \"KroneckerSymbol\",\n  \"KuiperTest\",\n  \"KumaraswamyDistribution\",\n  \"Kurtosis\",\n  \"KuwaharaFilter\",\n  \"KVertexConnectedComponents\",\n  \"KVertexConnectedGraphQ\",\n  \"LABColor\",\n  \"Label\",\n  \"Labeled\",\n  \"LabeledSlider\",\n  \"LabelingFunction\",\n  \"LabelingSize\",\n  \"LabelStyle\",\n  \"LabelVisibility\",\n  \"LaguerreL\",\n  \"LakeData\",\n  \"LambdaComponents\",\n  \"LambertW\",\n  \"LaminaData\",\n  \"LanczosWindow\",\n  \"LandauDistribution\",\n  \"Language\",\n  \"LanguageCategory\",\n  \"LanguageData\",\n  \"LanguageIdentify\",\n  \"LanguageOptions\",\n  \"LaplaceDistribution\",\n  \"LaplaceTransform\",\n  \"Laplacian\",\n  \"LaplacianFilter\",\n  \"LaplacianGaussianFilter\",\n  \"Large\",\n  \"Larger\",\n  \"Last\",\n  \"Latitude\",\n  \"LatitudeLongitude\",\n  \"LatticeData\",\n  \"LatticeReduce\",\n  \"Launch\",\n  \"LaunchKernels\",\n  \"LayeredGraphPlot\",\n  \"LayerSizeFunction\",\n  \"LayoutInformation\",\n  \"LCHColor\",\n  \"LCM\",\n  \"LeaderSize\",\n  \"LeafCount\",\n  \"LeapYearQ\",\n  \"LearnDistribution\",\n  \"LearnedDistribution\",\n  \"LearningRate\",\n  \"LearningRateMultipliers\",\n  \"LeastSquares\",\n  \"LeastSquaresFilterKernel\",\n  \"Left\",\n  \"LeftArrow\",\n  \"LeftArrowBar\",\n  \"LeftArrowRightArrow\",\n  \"LeftDownTeeVector\",\n  \"LeftDownVector\",\n  \"LeftDownVectorBar\",\n  \"LeftRightArrow\",\n  \"LeftRightVector\",\n  \"LeftTee\",\n  \"LeftTeeArrow\",\n  \"LeftTeeVector\",\n  \"LeftTriangle\",\n  \"LeftTriangleBar\",\n  \"LeftTriangleEqual\",\n  \"LeftUpDownVector\",\n  \"LeftUpTeeVector\",\n  \"LeftUpVector\",\n  \"LeftUpVectorBar\",\n  \"LeftVector\",\n  \"LeftVectorBar\",\n  \"LegendAppearance\",\n  \"Legended\",\n  \"LegendFunction\",\n  \"LegendLabel\",\n  \"LegendLayout\",\n  \"LegendMargins\",\n  \"LegendMarkers\",\n  \"LegendMarkerSize\",\n  \"LegendreP\",\n  \"LegendreQ\",\n  \"LegendreType\",\n  \"Length\",\n  \"LengthWhile\",\n  \"LerchPhi\",\n  \"Less\",\n  \"LessEqual\",\n  \"LessEqualGreater\",\n  \"LessEqualThan\",\n  \"LessFullEqual\",\n  \"LessGreater\",\n  \"LessLess\",\n  \"LessSlantEqual\",\n  \"LessThan\",\n  \"LessTilde\",\n  \"LetterCharacter\",\n  \"LetterCounts\",\n  \"LetterNumber\",\n  \"LetterQ\",\n  \"Level\",\n  \"LeveneTest\",\n  \"LeviCivitaTensor\",\n  \"LevyDistribution\",\n  \"Lexicographic\",\n  \"LibraryDataType\",\n  \"LibraryFunction\",\n  \"LibraryFunctionError\",\n  \"LibraryFunctionInformation\",\n  \"LibraryFunctionLoad\",\n  \"LibraryFunctionUnload\",\n  \"LibraryLoad\",\n  \"LibraryUnload\",\n  \"LicenseID\",\n  \"LiftingFilterData\",\n  \"LiftingWaveletTransform\",\n  \"LightBlue\",\n  \"LightBrown\",\n  \"LightCyan\",\n  \"Lighter\",\n  \"LightGray\",\n  \"LightGreen\",\n  \"Lighting\",\n  \"LightingAngle\",\n  \"LightMagenta\",\n  \"LightOrange\",\n  \"LightPink\",\n  \"LightPurple\",\n  \"LightRed\",\n  \"LightSources\",\n  \"LightYellow\",\n  \"Likelihood\",\n  \"Limit\",\n  \"LimitsPositioning\",\n  \"LimitsPositioningTokens\",\n  \"LindleyDistribution\",\n  \"Line\",\n  \"Line3DBox\",\n  \"Line3DBoxOptions\",\n  \"LinearFilter\",\n  \"LinearFractionalOptimization\",\n  \"LinearFractionalTransform\",\n  \"LinearGradientImage\",\n  \"LinearizingTransformationData\",\n  \"LinearLayer\",\n  \"LinearModelFit\",\n  \"LinearOffsetFunction\",\n  \"LinearOptimization\",\n  \"LinearProgramming\",\n  \"LinearRecurrence\",\n  \"LinearSolve\",\n  \"LinearSolveFunction\",\n  \"LineBox\",\n  \"LineBoxOptions\",\n  \"LineBreak\",\n  \"LinebreakAdjustments\",\n  \"LineBreakChart\",\n  \"LinebreakSemicolonWeighting\",\n  \"LineBreakWithin\",\n  \"LineColor\",\n  \"LineGraph\",\n  \"LineIndent\",\n  \"LineIndentMaxFraction\",\n  \"LineIntegralConvolutionPlot\",\n  \"LineIntegralConvolutionScale\",\n  \"LineLegend\",\n  \"LineOpacity\",\n  \"LineSpacing\",\n  \"LineWrapParts\",\n  \"LinkActivate\",\n  \"LinkClose\",\n  \"LinkConnect\",\n  \"LinkConnectedQ\",\n  \"LinkCreate\",\n  \"LinkError\",\n  \"LinkFlush\",\n  \"LinkFunction\",\n  \"LinkHost\",\n  \"LinkInterrupt\",\n  \"LinkLaunch\",\n  \"LinkMode\",\n  \"LinkObject\",\n  \"LinkOpen\",\n  \"LinkOptions\",\n  \"LinkPatterns\",\n  \"LinkProtocol\",\n  \"LinkRankCentrality\",\n  \"LinkRead\",\n  \"LinkReadHeld\",\n  \"LinkReadyQ\",\n  \"Links\",\n  \"LinkService\",\n  \"LinkWrite\",\n  \"LinkWriteHeld\",\n  \"LiouvilleLambda\",\n  \"List\",\n  \"Listable\",\n  \"ListAnimate\",\n  \"ListContourPlot\",\n  \"ListContourPlot3D\",\n  \"ListConvolve\",\n  \"ListCorrelate\",\n  \"ListCurvePathPlot\",\n  \"ListDeconvolve\",\n  \"ListDensityPlot\",\n  \"ListDensityPlot3D\",\n  \"Listen\",\n  \"ListFormat\",\n  \"ListFourierSequenceTransform\",\n  \"ListInterpolation\",\n  \"ListLineIntegralConvolutionPlot\",\n  \"ListLinePlot\",\n  \"ListLogLinearPlot\",\n  \"ListLogLogPlot\",\n  \"ListLogPlot\",\n  \"ListPicker\",\n  \"ListPickerBox\",\n  \"ListPickerBoxBackground\",\n  \"ListPickerBoxOptions\",\n  \"ListPlay\",\n  \"ListPlot\",\n  \"ListPlot3D\",\n  \"ListPointPlot3D\",\n  \"ListPolarPlot\",\n  \"ListQ\",\n  \"ListSliceContourPlot3D\",\n  \"ListSliceDensityPlot3D\",\n  \"ListSliceVectorPlot3D\",\n  \"ListStepPlot\",\n  \"ListStreamDensityPlot\",\n  \"ListStreamPlot\",\n  \"ListSurfacePlot3D\",\n  \"ListVectorDensityPlot\",\n  \"ListVectorPlot\",\n  \"ListVectorPlot3D\",\n  \"ListZTransform\",\n  \"Literal\",\n  \"LiteralSearch\",\n  \"LocalAdaptiveBinarize\",\n  \"LocalCache\",\n  \"LocalClusteringCoefficient\",\n  \"LocalizeDefinitions\",\n  \"LocalizeVariables\",\n  \"LocalObject\",\n  \"LocalObjects\",\n  \"LocalResponseNormalizationLayer\",\n  \"LocalSubmit\",\n  \"LocalSymbol\",\n  \"LocalTime\",\n  \"LocalTimeZone\",\n  \"LocationEquivalenceTest\",\n  \"LocationTest\",\n  \"Locator\",\n  \"LocatorAutoCreate\",\n  \"LocatorBox\",\n  \"LocatorBoxOptions\",\n  \"LocatorCentering\",\n  \"LocatorPane\",\n  \"LocatorPaneBox\",\n  \"LocatorPaneBoxOptions\",\n  \"LocatorRegion\",\n  \"Locked\",\n  \"Log\",\n  \"Log10\",\n  \"Log2\",\n  \"LogBarnesG\",\n  \"LogGamma\",\n  \"LogGammaDistribution\",\n  \"LogicalExpand\",\n  \"LogIntegral\",\n  \"LogisticDistribution\",\n  \"LogisticSigmoid\",\n  \"LogitModelFit\",\n  \"LogLikelihood\",\n  \"LogLinearPlot\",\n  \"LogLogisticDistribution\",\n  \"LogLogPlot\",\n  \"LogMultinormalDistribution\",\n  \"LogNormalDistribution\",\n  \"LogPlot\",\n  \"LogRankTest\",\n  \"LogSeriesDistribution\",\n  \"LongEqual\",\n  \"Longest\",\n  \"LongestCommonSequence\",\n  \"LongestCommonSequencePositions\",\n  \"LongestCommonSubsequence\",\n  \"LongestCommonSubsequencePositions\",\n  \"LongestMatch\",\n  \"LongestOrderedSequence\",\n  \"LongForm\",\n  \"Longitude\",\n  \"LongLeftArrow\",\n  \"LongLeftRightArrow\",\n  \"LongRightArrow\",\n  \"LongShortTermMemoryLayer\",\n  \"Lookup\",\n  \"Loopback\",\n  \"LoopFreeGraphQ\",\n  \"Looping\",\n  \"LossFunction\",\n  \"LowerCaseQ\",\n  \"LowerLeftArrow\",\n  \"LowerRightArrow\",\n  \"LowerTriangularize\",\n  \"LowerTriangularMatrixQ\",\n  \"LowpassFilter\",\n  \"LQEstimatorGains\",\n  \"LQGRegulator\",\n  \"LQOutputRegulatorGains\",\n  \"LQRegulatorGains\",\n  \"LUBackSubstitution\",\n  \"LucasL\",\n  \"LuccioSamiComponents\",\n  \"LUDecomposition\",\n  \"LunarEclipse\",\n  \"LUVColor\",\n  \"LyapunovSolve\",\n  \"LyonsGroupLy\",\n  \"MachineID\",\n  \"MachineName\",\n  \"MachineNumberQ\",\n  \"MachinePrecision\",\n  \"MacintoshSystemPageSetup\",\n  \"Magenta\",\n  \"Magnification\",\n  \"Magnify\",\n  \"MailAddressValidation\",\n  \"MailExecute\",\n  \"MailFolder\",\n  \"MailItem\",\n  \"MailReceiverFunction\",\n  \"MailResponseFunction\",\n  \"MailSearch\",\n  \"MailServerConnect\",\n  \"MailServerConnection\",\n  \"MailSettings\",\n  \"MainSolve\",\n  \"MaintainDynamicCaches\",\n  \"Majority\",\n  \"MakeBoxes\",\n  \"MakeExpression\",\n  \"MakeRules\",\n  \"ManagedLibraryExpressionID\",\n  \"ManagedLibraryExpressionQ\",\n  \"MandelbrotSetBoettcher\",\n  \"MandelbrotSetDistance\",\n  \"MandelbrotSetIterationCount\",\n  \"MandelbrotSetMemberQ\",\n  \"MandelbrotSetPlot\",\n  \"MangoldtLambda\",\n  \"ManhattanDistance\",\n  \"Manipulate\",\n  \"Manipulator\",\n  \"MannedSpaceMissionData\",\n  \"MannWhitneyTest\",\n  \"MantissaExponent\",\n  \"Manual\",\n  \"Map\",\n  \"MapAll\",\n  \"MapAt\",\n  \"MapIndexed\",\n  \"MAProcess\",\n  \"MapThread\",\n  \"MarchenkoPasturDistribution\",\n  \"MarcumQ\",\n  \"MardiaCombinedTest\",\n  \"MardiaKurtosisTest\",\n  \"MardiaSkewnessTest\",\n  \"MarginalDistribution\",\n  \"MarkovProcessProperties\",\n  \"Masking\",\n  \"MatchingDissimilarity\",\n  \"MatchLocalNameQ\",\n  \"MatchLocalNames\",\n  \"MatchQ\",\n  \"Material\",\n  \"MathematicalFunctionData\",\n  \"MathematicaNotation\",\n  \"MathieuC\",\n  \"MathieuCharacteristicA\",\n  \"MathieuCharacteristicB\",\n  \"MathieuCharacteristicExponent\",\n  \"MathieuCPrime\",\n  \"MathieuGroupM11\",\n  \"MathieuGroupM12\",\n  \"MathieuGroupM22\",\n  \"MathieuGroupM23\",\n  \"MathieuGroupM24\",\n  \"MathieuS\",\n  \"MathieuSPrime\",\n  \"MathMLForm\",\n  \"MathMLText\",\n  \"Matrices\",\n  \"MatrixExp\",\n  \"MatrixForm\",\n  \"MatrixFunction\",\n  \"MatrixLog\",\n  \"MatrixNormalDistribution\",\n  \"MatrixPlot\",\n  \"MatrixPower\",\n  \"MatrixPropertyDistribution\",\n  \"MatrixQ\",\n  \"MatrixRank\",\n  \"MatrixTDistribution\",\n  \"Max\",\n  \"MaxBend\",\n  \"MaxCellMeasure\",\n  \"MaxColorDistance\",\n  \"MaxDate\",\n  \"MaxDetect\",\n  \"MaxDuration\",\n  \"MaxExtraBandwidths\",\n  \"MaxExtraConditions\",\n  \"MaxFeatureDisplacement\",\n  \"MaxFeatures\",\n  \"MaxFilter\",\n  \"MaximalBy\",\n  \"Maximize\",\n  \"MaxItems\",\n  \"MaxIterations\",\n  \"MaxLimit\",\n  \"MaxMemoryUsed\",\n  \"MaxMixtureKernels\",\n  \"MaxOverlapFraction\",\n  \"MaxPlotPoints\",\n  \"MaxPoints\",\n  \"MaxRecursion\",\n  \"MaxStableDistribution\",\n  \"MaxStepFraction\",\n  \"MaxSteps\",\n  \"MaxStepSize\",\n  \"MaxTrainingRounds\",\n  \"MaxValue\",\n  \"MaxwellDistribution\",\n  \"MaxWordGap\",\n  \"McLaughlinGroupMcL\",\n  \"Mean\",\n  \"MeanAbsoluteLossLayer\",\n  \"MeanAround\",\n  \"MeanClusteringCoefficient\",\n  \"MeanDegreeConnectivity\",\n  \"MeanDeviation\",\n  \"MeanFilter\",\n  \"MeanGraphDistance\",\n  \"MeanNeighborDegree\",\n  \"MeanShift\",\n  \"MeanShiftFilter\",\n  \"MeanSquaredLossLayer\",\n  \"Median\",\n  \"MedianDeviation\",\n  \"MedianFilter\",\n  \"MedicalTestData\",\n  \"Medium\",\n  \"MeijerG\",\n  \"MeijerGReduce\",\n  \"MeixnerDistribution\",\n  \"MellinConvolve\",\n  \"MellinTransform\",\n  \"MemberQ\",\n  \"MemoryAvailable\",\n  \"MemoryConstrained\",\n  \"MemoryConstraint\",\n  \"MemoryInUse\",\n  \"MengerMesh\",\n  \"Menu\",\n  \"MenuAppearance\",\n  \"MenuCommandKey\",\n  \"MenuEvaluator\",\n  \"MenuItem\",\n  \"MenuList\",\n  \"MenuPacket\",\n  \"MenuSortingValue\",\n  \"MenuStyle\",\n  \"MenuView\",\n  \"Merge\",\n  \"MergeDifferences\",\n  \"MergingFunction\",\n  \"MersennePrimeExponent\",\n  \"MersennePrimeExponentQ\",\n  \"Mesh\",\n  \"MeshCellCentroid\",\n  \"MeshCellCount\",\n  \"MeshCellHighlight\",\n  \"MeshCellIndex\",\n  \"MeshCellLabel\",\n  \"MeshCellMarker\",\n  \"MeshCellMeasure\",\n  \"MeshCellQuality\",\n  \"MeshCells\",\n  \"MeshCellShapeFunction\",\n  \"MeshCellStyle\",\n  \"MeshConnectivityGraph\",\n  \"MeshCoordinates\",\n  \"MeshFunctions\",\n  \"MeshPrimitives\",\n  \"MeshQualityGoal\",\n  \"MeshRange\",\n  \"MeshRefinementFunction\",\n  \"MeshRegion\",\n  \"MeshRegionQ\",\n  \"MeshShading\",\n  \"MeshStyle\",\n  \"Message\",\n  \"MessageDialog\",\n  \"MessageList\",\n  \"MessageName\",\n  \"MessageObject\",\n  \"MessageOptions\",\n  \"MessagePacket\",\n  \"Messages\",\n  \"MessagesNotebook\",\n  \"MetaCharacters\",\n  \"MetaInformation\",\n  \"MeteorShowerData\",\n  \"Method\",\n  \"MethodOptions\",\n  \"MexicanHatWavelet\",\n  \"MeyerWavelet\",\n  \"Midpoint\",\n  \"Min\",\n  \"MinColorDistance\",\n  \"MinDate\",\n  \"MinDetect\",\n  \"MineralData\",\n  \"MinFilter\",\n  \"MinimalBy\",\n  \"MinimalPolynomial\",\n  \"MinimalStateSpaceModel\",\n  \"Minimize\",\n  \"MinimumTimeIncrement\",\n  \"MinIntervalSize\",\n  \"MinkowskiQuestionMark\",\n  \"MinLimit\",\n  \"MinMax\",\n  \"MinorPlanetData\",\n  \"Minors\",\n  \"MinRecursion\",\n  \"MinSize\",\n  \"MinStableDistribution\",\n  \"Minus\",\n  \"MinusPlus\",\n  \"MinValue\",\n  \"Missing\",\n  \"MissingBehavior\",\n  \"MissingDataMethod\",\n  \"MissingDataRules\",\n  \"MissingQ\",\n  \"MissingString\",\n  \"MissingStyle\",\n  \"MissingValuePattern\",\n  \"MittagLefflerE\",\n  \"MixedFractionParts\",\n  \"MixedGraphQ\",\n  \"MixedMagnitude\",\n  \"MixedRadix\",\n  \"MixedRadixQuantity\",\n  \"MixedUnit\",\n  \"MixtureDistribution\",\n  \"Mod\",\n  \"Modal\",\n  \"Mode\",\n  \"Modular\",\n  \"ModularInverse\",\n  \"ModularLambda\",\n  \"Module\",\n  \"Modulus\",\n  \"MoebiusMu\",\n  \"Molecule\",\n  \"MoleculeContainsQ\",\n  \"MoleculeEquivalentQ\",\n  \"MoleculeGraph\",\n  \"MoleculeModify\",\n  \"MoleculePattern\",\n  \"MoleculePlot\",\n  \"MoleculePlot3D\",\n  \"MoleculeProperty\",\n  \"MoleculeQ\",\n  \"MoleculeRecognize\",\n  \"MoleculeValue\",\n  \"Moment\",\n  \"Momentary\",\n  \"MomentConvert\",\n  \"MomentEvaluate\",\n  \"MomentGeneratingFunction\",\n  \"MomentOfInertia\",\n  \"Monday\",\n  \"Monitor\",\n  \"MonomialList\",\n  \"MonomialOrder\",\n  \"MonsterGroupM\",\n  \"MoonPhase\",\n  \"MoonPosition\",\n  \"MorletWavelet\",\n  \"MorphologicalBinarize\",\n  \"MorphologicalBranchPoints\",\n  \"MorphologicalComponents\",\n  \"MorphologicalEulerNumber\",\n  \"MorphologicalGraph\",\n  \"MorphologicalPerimeter\",\n  \"MorphologicalTransform\",\n  \"MortalityData\",\n  \"Most\",\n  \"MountainData\",\n  \"MouseAnnotation\",\n  \"MouseAppearance\",\n  \"MouseAppearanceTag\",\n  \"MouseButtons\",\n  \"Mouseover\",\n  \"MousePointerNote\",\n  \"MousePosition\",\n  \"MovieData\",\n  \"MovingAverage\",\n  \"MovingMap\",\n  \"MovingMedian\",\n  \"MoyalDistribution\",\n  \"Multicolumn\",\n  \"MultiedgeStyle\",\n  \"MultigraphQ\",\n  \"MultilaunchWarning\",\n  \"MultiLetterItalics\",\n  \"MultiLetterStyle\",\n  \"MultilineFunction\",\n  \"Multinomial\",\n  \"MultinomialDistribution\",\n  \"MultinormalDistribution\",\n  \"MultiplicativeOrder\",\n  \"Multiplicity\",\n  \"MultiplySides\",\n  \"Multiselection\",\n  \"MultivariateHypergeometricDistribution\",\n  \"MultivariatePoissonDistribution\",\n  \"MultivariateTDistribution\",\n  \"N\",\n  \"NakagamiDistribution\",\n  \"NameQ\",\n  \"Names\",\n  \"NamespaceBox\",\n  \"NamespaceBoxOptions\",\n  \"Nand\",\n  \"NArgMax\",\n  \"NArgMin\",\n  \"NBernoulliB\",\n  \"NBodySimulation\",\n  \"NBodySimulationData\",\n  \"NCache\",\n  \"NDEigensystem\",\n  \"NDEigenvalues\",\n  \"NDSolve\",\n  \"NDSolveValue\",\n  \"Nearest\",\n  \"NearestFunction\",\n  \"NearestMeshCells\",\n  \"NearestNeighborGraph\",\n  \"NearestTo\",\n  \"NebulaData\",\n  \"NeedCurrentFrontEndPackagePacket\",\n  \"NeedCurrentFrontEndSymbolsPacket\",\n  \"NeedlemanWunschSimilarity\",\n  \"Needs\",\n  \"Negative\",\n  \"NegativeBinomialDistribution\",\n  \"NegativeDefiniteMatrixQ\",\n  \"NegativeIntegers\",\n  \"NegativeMultinomialDistribution\",\n  \"NegativeRationals\",\n  \"NegativeReals\",\n  \"NegativeSemidefiniteMatrixQ\",\n  \"NeighborhoodData\",\n  \"NeighborhoodGraph\",\n  \"Nest\",\n  \"NestedGreaterGreater\",\n  \"NestedLessLess\",\n  \"NestedScriptRules\",\n  \"NestGraph\",\n  \"NestList\",\n  \"NestWhile\",\n  \"NestWhileList\",\n  \"NetAppend\",\n  \"NetBidirectionalOperator\",\n  \"NetChain\",\n  \"NetDecoder\",\n  \"NetDelete\",\n  \"NetDrop\",\n  \"NetEncoder\",\n  \"NetEvaluationMode\",\n  \"NetExtract\",\n  \"NetFlatten\",\n  \"NetFoldOperator\",\n  \"NetGANOperator\",\n  \"NetGraph\",\n  \"NetInformation\",\n  \"NetInitialize\",\n  \"NetInsert\",\n  \"NetInsertSharedArrays\",\n  \"NetJoin\",\n  \"NetMapOperator\",\n  \"NetMapThreadOperator\",\n  \"NetMeasurements\",\n  \"NetModel\",\n  \"NetNestOperator\",\n  \"NetPairEmbeddingOperator\",\n  \"NetPort\",\n  \"NetPortGradient\",\n  \"NetPrepend\",\n  \"NetRename\",\n  \"NetReplace\",\n  \"NetReplacePart\",\n  \"NetSharedArray\",\n  \"NetStateObject\",\n  \"NetTake\",\n  \"NetTrain\",\n  \"NetTrainResultsObject\",\n  \"NetworkPacketCapture\",\n  \"NetworkPacketRecording\",\n  \"NetworkPacketRecordingDuring\",\n  \"NetworkPacketTrace\",\n  \"NeumannValue\",\n  \"NevilleThetaC\",\n  \"NevilleThetaD\",\n  \"NevilleThetaN\",\n  \"NevilleThetaS\",\n  \"NewPrimitiveStyle\",\n  \"NExpectation\",\n  \"Next\",\n  \"NextCell\",\n  \"NextDate\",\n  \"NextPrime\",\n  \"NextScheduledTaskTime\",\n  \"NHoldAll\",\n  \"NHoldFirst\",\n  \"NHoldRest\",\n  \"NicholsGridLines\",\n  \"NicholsPlot\",\n  \"NightHemisphere\",\n  \"NIntegrate\",\n  \"NMaximize\",\n  \"NMaxValue\",\n  \"NMinimize\",\n  \"NMinValue\",\n  \"NominalVariables\",\n  \"NonAssociative\",\n  \"NoncentralBetaDistribution\",\n  \"NoncentralChiSquareDistribution\",\n  \"NoncentralFRatioDistribution\",\n  \"NoncentralStudentTDistribution\",\n  \"NonCommutativeMultiply\",\n  \"NonConstants\",\n  \"NondimensionalizationTransform\",\n  \"None\",\n  \"NoneTrue\",\n  \"NonlinearModelFit\",\n  \"NonlinearStateSpaceModel\",\n  \"NonlocalMeansFilter\",\n  \"NonNegative\",\n  \"NonNegativeIntegers\",\n  \"NonNegativeRationals\",\n  \"NonNegativeReals\",\n  \"NonPositive\",\n  \"NonPositiveIntegers\",\n  \"NonPositiveRationals\",\n  \"NonPositiveReals\",\n  \"Nor\",\n  \"NorlundB\",\n  \"Norm\",\n  \"Normal\",\n  \"NormalDistribution\",\n  \"NormalGrouping\",\n  \"NormalizationLayer\",\n  \"Normalize\",\n  \"Normalized\",\n  \"NormalizedSquaredEuclideanDistance\",\n  \"NormalMatrixQ\",\n  \"NormalsFunction\",\n  \"NormFunction\",\n  \"Not\",\n  \"NotCongruent\",\n  \"NotCupCap\",\n  \"NotDoubleVerticalBar\",\n  \"Notebook\",\n  \"NotebookApply\",\n  \"NotebookAutoSave\",\n  \"NotebookClose\",\n  \"NotebookConvertSettings\",\n  \"NotebookCreate\",\n  \"NotebookCreateReturnObject\",\n  \"NotebookDefault\",\n  \"NotebookDelete\",\n  \"NotebookDirectory\",\n  \"NotebookDynamicExpression\",\n  \"NotebookEvaluate\",\n  \"NotebookEventActions\",\n  \"NotebookFileName\",\n  \"NotebookFind\",\n  \"NotebookFindReturnObject\",\n  \"NotebookGet\",\n  \"NotebookGetLayoutInformationPacket\",\n  \"NotebookGetMisspellingsPacket\",\n  \"NotebookImport\",\n  \"NotebookInformation\",\n  \"NotebookInterfaceObject\",\n  \"NotebookLocate\",\n  \"NotebookObject\",\n  \"NotebookOpen\",\n  \"NotebookOpenReturnObject\",\n  \"NotebookPath\",\n  \"NotebookPrint\",\n  \"NotebookPut\",\n  \"NotebookPutReturnObject\",\n  \"NotebookRead\",\n  \"NotebookResetGeneratedCells\",\n  \"Notebooks\",\n  \"NotebookSave\",\n  \"NotebookSaveAs\",\n  \"NotebookSelection\",\n  \"NotebookSetupLayoutInformationPacket\",\n  \"NotebooksMenu\",\n  \"NotebookTemplate\",\n  \"NotebookWrite\",\n  \"NotElement\",\n  \"NotEqualTilde\",\n  \"NotExists\",\n  \"NotGreater\",\n  \"NotGreaterEqual\",\n  \"NotGreaterFullEqual\",\n  \"NotGreaterGreater\",\n  \"NotGreaterLess\",\n  \"NotGreaterSlantEqual\",\n  \"NotGreaterTilde\",\n  \"Nothing\",\n  \"NotHumpDownHump\",\n  \"NotHumpEqual\",\n  \"NotificationFunction\",\n  \"NotLeftTriangle\",\n  \"NotLeftTriangleBar\",\n  \"NotLeftTriangleEqual\",\n  \"NotLess\",\n  \"NotLessEqual\",\n  \"NotLessFullEqual\",\n  \"NotLessGreater\",\n  \"NotLessLess\",\n  \"NotLessSlantEqual\",\n  \"NotLessTilde\",\n  \"NotNestedGreaterGreater\",\n  \"NotNestedLessLess\",\n  \"NotPrecedes\",\n  \"NotPrecedesEqual\",\n  \"NotPrecedesSlantEqual\",\n  \"NotPrecedesTilde\",\n  \"NotReverseElement\",\n  \"NotRightTriangle\",\n  \"NotRightTriangleBar\",\n  \"NotRightTriangleEqual\",\n  \"NotSquareSubset\",\n  \"NotSquareSubsetEqual\",\n  \"NotSquareSuperset\",\n  \"NotSquareSupersetEqual\",\n  \"NotSubset\",\n  \"NotSubsetEqual\",\n  \"NotSucceeds\",\n  \"NotSucceedsEqual\",\n  \"NotSucceedsSlantEqual\",\n  \"NotSucceedsTilde\",\n  \"NotSuperset\",\n  \"NotSupersetEqual\",\n  \"NotTilde\",\n  \"NotTildeEqual\",\n  \"NotTildeFullEqual\",\n  \"NotTildeTilde\",\n  \"NotVerticalBar\",\n  \"Now\",\n  \"NoWhitespace\",\n  \"NProbability\",\n  \"NProduct\",\n  \"NProductFactors\",\n  \"NRoots\",\n  \"NSolve\",\n  \"NSum\",\n  \"NSumTerms\",\n  \"NuclearExplosionData\",\n  \"NuclearReactorData\",\n  \"Null\",\n  \"NullRecords\",\n  \"NullSpace\",\n  \"NullWords\",\n  \"Number\",\n  \"NumberCompose\",\n  \"NumberDecompose\",\n  \"NumberExpand\",\n  \"NumberFieldClassNumber\",\n  \"NumberFieldDiscriminant\",\n  \"NumberFieldFundamentalUnits\",\n  \"NumberFieldIntegralBasis\",\n  \"NumberFieldNormRepresentatives\",\n  \"NumberFieldRegulator\",\n  \"NumberFieldRootsOfUnity\",\n  \"NumberFieldSignature\",\n  \"NumberForm\",\n  \"NumberFormat\",\n  \"NumberLinePlot\",\n  \"NumberMarks\",\n  \"NumberMultiplier\",\n  \"NumberPadding\",\n  \"NumberPoint\",\n  \"NumberQ\",\n  \"NumberSeparator\",\n  \"NumberSigns\",\n  \"NumberString\",\n  \"Numerator\",\n  \"NumeratorDenominator\",\n  \"NumericalOrder\",\n  \"NumericalSort\",\n  \"NumericArray\",\n  \"NumericArrayQ\",\n  \"NumericArrayType\",\n  \"NumericFunction\",\n  \"NumericQ\",\n  \"NuttallWindow\",\n  \"NValues\",\n  \"NyquistGridLines\",\n  \"NyquistPlot\",\n  \"O\",\n  \"ObservabilityGramian\",\n  \"ObservabilityMatrix\",\n  \"ObservableDecomposition\",\n  \"ObservableModelQ\",\n  \"OceanData\",\n  \"Octahedron\",\n  \"OddQ\",\n  \"Off\",\n  \"Offset\",\n  \"OLEData\",\n  \"On\",\n  \"ONanGroupON\",\n  \"Once\",\n  \"OneIdentity\",\n  \"Opacity\",\n  \"OpacityFunction\",\n  \"OpacityFunctionScaling\",\n  \"Open\",\n  \"OpenAppend\",\n  \"Opener\",\n  \"OpenerBox\",\n  \"OpenerBoxOptions\",\n  \"OpenerView\",\n  \"OpenFunctionInspectorPacket\",\n  \"Opening\",\n  \"OpenRead\",\n  \"OpenSpecialOptions\",\n  \"OpenTemporary\",\n  \"OpenWrite\",\n  \"Operate\",\n  \"OperatingSystem\",\n  \"OperatorApplied\",\n  \"OptimumFlowData\",\n  \"Optional\",\n  \"OptionalElement\",\n  \"OptionInspectorSettings\",\n  \"OptionQ\",\n  \"Options\",\n  \"OptionsPacket\",\n  \"OptionsPattern\",\n  \"OptionValue\",\n  \"OptionValueBox\",\n  \"OptionValueBoxOptions\",\n  \"Or\",\n  \"Orange\",\n  \"Order\",\n  \"OrderDistribution\",\n  \"OrderedQ\",\n  \"Ordering\",\n  \"OrderingBy\",\n  \"OrderingLayer\",\n  \"Orderless\",\n  \"OrderlessPatternSequence\",\n  \"OrnsteinUhlenbeckProcess\",\n  \"Orthogonalize\",\n  \"OrthogonalMatrixQ\",\n  \"Out\",\n  \"Outer\",\n  \"OuterPolygon\",\n  \"OuterPolyhedron\",\n  \"OutputAutoOverwrite\",\n  \"OutputControllabilityMatrix\",\n  \"OutputControllableModelQ\",\n  \"OutputForm\",\n  \"OutputFormData\",\n  \"OutputGrouping\",\n  \"OutputMathEditExpression\",\n  \"OutputNamePacket\",\n  \"OutputResponse\",\n  \"OutputSizeLimit\",\n  \"OutputStream\",\n  \"Over\",\n  \"OverBar\",\n  \"OverDot\",\n  \"Overflow\",\n  \"OverHat\",\n  \"Overlaps\",\n  \"Overlay\",\n  \"OverlayBox\",\n  \"OverlayBoxOptions\",\n  \"Overscript\",\n  \"OverscriptBox\",\n  \"OverscriptBoxOptions\",\n  \"OverTilde\",\n  \"OverVector\",\n  \"OverwriteTarget\",\n  \"OwenT\",\n  \"OwnValues\",\n  \"Package\",\n  \"PackingMethod\",\n  \"PackPaclet\",\n  \"PacletDataRebuild\",\n  \"PacletDirectoryAdd\",\n  \"PacletDirectoryLoad\",\n  \"PacletDirectoryRemove\",\n  \"PacletDirectoryUnload\",\n  \"PacletDisable\",\n  \"PacletEnable\",\n  \"PacletFind\",\n  \"PacletFindRemote\",\n  \"PacletInformation\",\n  \"PacletInstall\",\n  \"PacletInstallSubmit\",\n  \"PacletNewerQ\",\n  \"PacletObject\",\n  \"PacletObjectQ\",\n  \"PacletSite\",\n  \"PacletSiteObject\",\n  \"PacletSiteRegister\",\n  \"PacletSites\",\n  \"PacletSiteUnregister\",\n  \"PacletSiteUpdate\",\n  \"PacletUninstall\",\n  \"PacletUpdate\",\n  \"PaddedForm\",\n  \"Padding\",\n  \"PaddingLayer\",\n  \"PaddingSize\",\n  \"PadeApproximant\",\n  \"PadLeft\",\n  \"PadRight\",\n  \"PageBreakAbove\",\n  \"PageBreakBelow\",\n  \"PageBreakWithin\",\n  \"PageFooterLines\",\n  \"PageFooters\",\n  \"PageHeaderLines\",\n  \"PageHeaders\",\n  \"PageHeight\",\n  \"PageRankCentrality\",\n  \"PageTheme\",\n  \"PageWidth\",\n  \"Pagination\",\n  \"PairedBarChart\",\n  \"PairedHistogram\",\n  \"PairedSmoothHistogram\",\n  \"PairedTTest\",\n  \"PairedZTest\",\n  \"PaletteNotebook\",\n  \"PalettePath\",\n  \"PalindromeQ\",\n  \"Pane\",\n  \"PaneBox\",\n  \"PaneBoxOptions\",\n  \"Panel\",\n  \"PanelBox\",\n  \"PanelBoxOptions\",\n  \"Paneled\",\n  \"PaneSelector\",\n  \"PaneSelectorBox\",\n  \"PaneSelectorBoxOptions\",\n  \"PaperWidth\",\n  \"ParabolicCylinderD\",\n  \"ParagraphIndent\",\n  \"ParagraphSpacing\",\n  \"ParallelArray\",\n  \"ParallelCombine\",\n  \"ParallelDo\",\n  \"Parallelepiped\",\n  \"ParallelEvaluate\",\n  \"Parallelization\",\n  \"Parallelize\",\n  \"ParallelMap\",\n  \"ParallelNeeds\",\n  \"Parallelogram\",\n  \"ParallelProduct\",\n  \"ParallelSubmit\",\n  \"ParallelSum\",\n  \"ParallelTable\",\n  \"ParallelTry\",\n  \"Parameter\",\n  \"ParameterEstimator\",\n  \"ParameterMixtureDistribution\",\n  \"ParameterVariables\",\n  \"ParametricFunction\",\n  \"ParametricNDSolve\",\n  \"ParametricNDSolveValue\",\n  \"ParametricPlot\",\n  \"ParametricPlot3D\",\n  \"ParametricRampLayer\",\n  \"ParametricRegion\",\n  \"ParentBox\",\n  \"ParentCell\",\n  \"ParentConnect\",\n  \"ParentDirectory\",\n  \"ParentForm\",\n  \"Parenthesize\",\n  \"ParentList\",\n  \"ParentNotebook\",\n  \"ParetoDistribution\",\n  \"ParetoPickandsDistribution\",\n  \"ParkData\",\n  \"Part\",\n  \"PartBehavior\",\n  \"PartialCorrelationFunction\",\n  \"PartialD\",\n  \"ParticleAcceleratorData\",\n  \"ParticleData\",\n  \"Partition\",\n  \"PartitionGranularity\",\n  \"PartitionsP\",\n  \"PartitionsQ\",\n  \"PartLayer\",\n  \"PartOfSpeech\",\n  \"PartProtection\",\n  \"ParzenWindow\",\n  \"PascalDistribution\",\n  \"PassEventsDown\",\n  \"PassEventsUp\",\n  \"Paste\",\n  \"PasteAutoQuoteCharacters\",\n  \"PasteBoxFormInlineCells\",\n  \"PasteButton\",\n  \"Path\",\n  \"PathGraph\",\n  \"PathGraphQ\",\n  \"Pattern\",\n  \"PatternFilling\",\n  \"PatternSequence\",\n  \"PatternTest\",\n  \"PauliMatrix\",\n  \"PaulWavelet\",\n  \"Pause\",\n  \"PausedTime\",\n  \"PDF\",\n  \"PeakDetect\",\n  \"PeanoCurve\",\n  \"PearsonChiSquareTest\",\n  \"PearsonCorrelationTest\",\n  \"PearsonDistribution\",\n  \"PercentForm\",\n  \"PerfectNumber\",\n  \"PerfectNumberQ\",\n  \"PerformanceGoal\",\n  \"Perimeter\",\n  \"PeriodicBoundaryCondition\",\n  \"PeriodicInterpolation\",\n  \"Periodogram\",\n  \"PeriodogramArray\",\n  \"Permanent\",\n  \"Permissions\",\n  \"PermissionsGroup\",\n  \"PermissionsGroupMemberQ\",\n  \"PermissionsGroups\",\n  \"PermissionsKey\",\n  \"PermissionsKeys\",\n  \"PermutationCycles\",\n  \"PermutationCyclesQ\",\n  \"PermutationGroup\",\n  \"PermutationLength\",\n  \"PermutationList\",\n  \"PermutationListQ\",\n  \"PermutationMax\",\n  \"PermutationMin\",\n  \"PermutationOrder\",\n  \"PermutationPower\",\n  \"PermutationProduct\",\n  \"PermutationReplace\",\n  \"Permutations\",\n  \"PermutationSupport\",\n  \"Permute\",\n  \"PeronaMalikFilter\",\n  \"Perpendicular\",\n  \"PerpendicularBisector\",\n  \"PersistenceLocation\",\n  \"PersistenceTime\",\n  \"PersistentObject\",\n  \"PersistentObjects\",\n  \"PersistentValue\",\n  \"PersonData\",\n  \"PERTDistribution\",\n  \"PetersenGraph\",\n  \"PhaseMargins\",\n  \"PhaseRange\",\n  \"PhysicalSystemData\",\n  \"Pi\",\n  \"Pick\",\n  \"PIDData\",\n  \"PIDDerivativeFilter\",\n  \"PIDFeedforward\",\n  \"PIDTune\",\n  \"Piecewise\",\n  \"PiecewiseExpand\",\n  \"PieChart\",\n  \"PieChart3D\",\n  \"PillaiTrace\",\n  \"PillaiTraceTest\",\n  \"PingTime\",\n  \"Pink\",\n  \"PitchRecognize\",\n  \"Pivoting\",\n  \"PixelConstrained\",\n  \"PixelValue\",\n  \"PixelValuePositions\",\n  \"Placed\",\n  \"Placeholder\",\n  \"PlaceholderReplace\",\n  \"Plain\",\n  \"PlanarAngle\",\n  \"PlanarGraph\",\n  \"PlanarGraphQ\",\n  \"PlanckRadiationLaw\",\n  \"PlaneCurveData\",\n  \"PlanetaryMoonData\",\n  \"PlanetData\",\n  \"PlantData\",\n  \"Play\",\n  \"PlayRange\",\n  \"Plot\",\n  \"Plot3D\",\n  \"Plot3Matrix\",\n  \"PlotDivision\",\n  \"PlotJoined\",\n  \"PlotLabel\",\n  \"PlotLabels\",\n  \"PlotLayout\",\n  \"PlotLegends\",\n  \"PlotMarkers\",\n  \"PlotPoints\",\n  \"PlotRange\",\n  \"PlotRangeClipping\",\n  \"PlotRangeClipPlanesStyle\",\n  \"PlotRangePadding\",\n  \"PlotRegion\",\n  \"PlotStyle\",\n  \"PlotTheme\",\n  \"Pluralize\",\n  \"Plus\",\n  \"PlusMinus\",\n  \"Pochhammer\",\n  \"PodStates\",\n  \"PodWidth\",\n  \"Point\",\n  \"Point3DBox\",\n  \"Point3DBoxOptions\",\n  \"PointBox\",\n  \"PointBoxOptions\",\n  \"PointFigureChart\",\n  \"PointLegend\",\n  \"PointSize\",\n  \"PoissonConsulDistribution\",\n  \"PoissonDistribution\",\n  \"PoissonProcess\",\n  \"PoissonWindow\",\n  \"PolarAxes\",\n  \"PolarAxesOrigin\",\n  \"PolarGridLines\",\n  \"PolarPlot\",\n  \"PolarTicks\",\n  \"PoleZeroMarkers\",\n  \"PolyaAeppliDistribution\",\n  \"PolyGamma\",\n  \"Polygon\",\n  \"Polygon3DBox\",\n  \"Polygon3DBoxOptions\",\n  \"PolygonalNumber\",\n  \"PolygonAngle\",\n  \"PolygonBox\",\n  \"PolygonBoxOptions\",\n  \"PolygonCoordinates\",\n  \"PolygonDecomposition\",\n  \"PolygonHoleScale\",\n  \"PolygonIntersections\",\n  \"PolygonScale\",\n  \"Polyhedron\",\n  \"PolyhedronAngle\",\n  \"PolyhedronCoordinates\",\n  \"PolyhedronData\",\n  \"PolyhedronDecomposition\",\n  \"PolyhedronGenus\",\n  \"PolyLog\",\n  \"PolynomialExtendedGCD\",\n  \"PolynomialForm\",\n  \"PolynomialGCD\",\n  \"PolynomialLCM\",\n  \"PolynomialMod\",\n  \"PolynomialQ\",\n  \"PolynomialQuotient\",\n  \"PolynomialQuotientRemainder\",\n  \"PolynomialReduce\",\n  \"PolynomialRemainder\",\n  \"Polynomials\",\n  \"PoolingLayer\",\n  \"PopupMenu\",\n  \"PopupMenuBox\",\n  \"PopupMenuBoxOptions\",\n  \"PopupView\",\n  \"PopupWindow\",\n  \"Position\",\n  \"PositionIndex\",\n  \"Positive\",\n  \"PositiveDefiniteMatrixQ\",\n  \"PositiveIntegers\",\n  \"PositiveRationals\",\n  \"PositiveReals\",\n  \"PositiveSemidefiniteMatrixQ\",\n  \"PossibleZeroQ\",\n  \"Postfix\",\n  \"PostScript\",\n  \"Power\",\n  \"PowerDistribution\",\n  \"PowerExpand\",\n  \"PowerMod\",\n  \"PowerModList\",\n  \"PowerRange\",\n  \"PowerSpectralDensity\",\n  \"PowersRepresentations\",\n  \"PowerSymmetricPolynomial\",\n  \"Precedence\",\n  \"PrecedenceForm\",\n  \"Precedes\",\n  \"PrecedesEqual\",\n  \"PrecedesSlantEqual\",\n  \"PrecedesTilde\",\n  \"Precision\",\n  \"PrecisionGoal\",\n  \"PreDecrement\",\n  \"Predict\",\n  \"PredictionRoot\",\n  \"PredictorFunction\",\n  \"PredictorInformation\",\n  \"PredictorMeasurements\",\n  \"PredictorMeasurementsObject\",\n  \"PreemptProtect\",\n  \"PreferencesPath\",\n  \"Prefix\",\n  \"PreIncrement\",\n  \"Prepend\",\n  \"PrependLayer\",\n  \"PrependTo\",\n  \"PreprocessingRules\",\n  \"PreserveColor\",\n  \"PreserveImageOptions\",\n  \"Previous\",\n  \"PreviousCell\",\n  \"PreviousDate\",\n  \"PriceGraphDistribution\",\n  \"PrimaryPlaceholder\",\n  \"Prime\",\n  \"PrimeNu\",\n  \"PrimeOmega\",\n  \"PrimePi\",\n  \"PrimePowerQ\",\n  \"PrimeQ\",\n  \"Primes\",\n  \"PrimeZetaP\",\n  \"PrimitivePolynomialQ\",\n  \"PrimitiveRoot\",\n  \"PrimitiveRootList\",\n  \"PrincipalComponents\",\n  \"PrincipalValue\",\n  \"Print\",\n  \"PrintableASCIIQ\",\n  \"PrintAction\",\n  \"PrintForm\",\n  \"PrintingCopies\",\n  \"PrintingOptions\",\n  \"PrintingPageRange\",\n  \"PrintingStartingPageNumber\",\n  \"PrintingStyleEnvironment\",\n  \"Printout3D\",\n  \"Printout3DPreviewer\",\n  \"PrintPrecision\",\n  \"PrintTemporary\",\n  \"Prism\",\n  \"PrismBox\",\n  \"PrismBoxOptions\",\n  \"PrivateCellOptions\",\n  \"PrivateEvaluationOptions\",\n  \"PrivateFontOptions\",\n  \"PrivateFrontEndOptions\",\n  \"PrivateKey\",\n  \"PrivateNotebookOptions\",\n  \"PrivatePaths\",\n  \"Probability\",\n  \"ProbabilityDistribution\",\n  \"ProbabilityPlot\",\n  \"ProbabilityPr\",\n  \"ProbabilityScalePlot\",\n  \"ProbitModelFit\",\n  \"ProcessConnection\",\n  \"ProcessDirectory\",\n  \"ProcessEnvironment\",\n  \"Processes\",\n  \"ProcessEstimator\",\n  \"ProcessInformation\",\n  \"ProcessObject\",\n  \"ProcessParameterAssumptions\",\n  \"ProcessParameterQ\",\n  \"ProcessStateDomain\",\n  \"ProcessStatus\",\n  \"ProcessTimeDomain\",\n  \"Product\",\n  \"ProductDistribution\",\n  \"ProductLog\",\n  \"ProgressIndicator\",\n  \"ProgressIndicatorBox\",\n  \"ProgressIndicatorBoxOptions\",\n  \"Projection\",\n  \"Prolog\",\n  \"PromptForm\",\n  \"ProofObject\",\n  \"Properties\",\n  \"Property\",\n  \"PropertyList\",\n  \"PropertyValue\",\n  \"Proportion\",\n  \"Proportional\",\n  \"Protect\",\n  \"Protected\",\n  \"ProteinData\",\n  \"Pruning\",\n  \"PseudoInverse\",\n  \"PsychrometricPropertyData\",\n  \"PublicKey\",\n  \"PublisherID\",\n  \"PulsarData\",\n  \"PunctuationCharacter\",\n  \"Purple\",\n  \"Put\",\n  \"PutAppend\",\n  \"Pyramid\",\n  \"PyramidBox\",\n  \"PyramidBoxOptions\",\n  \"QBinomial\",\n  \"QFactorial\",\n  \"QGamma\",\n  \"QHypergeometricPFQ\",\n  \"QnDispersion\",\n  \"QPochhammer\",\n  \"QPolyGamma\",\n  \"QRDecomposition\",\n  \"QuadraticIrrationalQ\",\n  \"QuadraticOptimization\",\n  \"Quantile\",\n  \"QuantilePlot\",\n  \"Quantity\",\n  \"QuantityArray\",\n  \"QuantityDistribution\",\n  \"QuantityForm\",\n  \"QuantityMagnitude\",\n  \"QuantityQ\",\n  \"QuantityUnit\",\n  \"QuantityVariable\",\n  \"QuantityVariableCanonicalUnit\",\n  \"QuantityVariableDimensions\",\n  \"QuantityVariableIdentifier\",\n  \"QuantityVariablePhysicalQuantity\",\n  \"Quartics\",\n  \"QuartileDeviation\",\n  \"Quartiles\",\n  \"QuartileSkewness\",\n  \"Query\",\n  \"QueueingNetworkProcess\",\n  \"QueueingProcess\",\n  \"QueueProperties\",\n  \"Quiet\",\n  \"Quit\",\n  \"Quotient\",\n  \"QuotientRemainder\",\n  \"RadialGradientImage\",\n  \"RadialityCentrality\",\n  \"RadicalBox\",\n  \"RadicalBoxOptions\",\n  \"RadioButton\",\n  \"RadioButtonBar\",\n  \"RadioButtonBox\",\n  \"RadioButtonBoxOptions\",\n  \"Radon\",\n  \"RadonTransform\",\n  \"RamanujanTau\",\n  \"RamanujanTauL\",\n  \"RamanujanTauTheta\",\n  \"RamanujanTauZ\",\n  \"Ramp\",\n  \"Random\",\n  \"RandomChoice\",\n  \"RandomColor\",\n  \"RandomComplex\",\n  \"RandomEntity\",\n  \"RandomFunction\",\n  \"RandomGeoPosition\",\n  \"RandomGraph\",\n  \"RandomImage\",\n  \"RandomInstance\",\n  \"RandomInteger\",\n  \"RandomPermutation\",\n  \"RandomPoint\",\n  \"RandomPolygon\",\n  \"RandomPolyhedron\",\n  \"RandomPrime\",\n  \"RandomReal\",\n  \"RandomSample\",\n  \"RandomSeed\",\n  \"RandomSeeding\",\n  \"RandomVariate\",\n  \"RandomWalkProcess\",\n  \"RandomWord\",\n  \"Range\",\n  \"RangeFilter\",\n  \"RangeSpecification\",\n  \"RankedMax\",\n  \"RankedMin\",\n  \"RarerProbability\",\n  \"Raster\",\n  \"Raster3D\",\n  \"Raster3DBox\",\n  \"Raster3DBoxOptions\",\n  \"RasterArray\",\n  \"RasterBox\",\n  \"RasterBoxOptions\",\n  \"Rasterize\",\n  \"RasterSize\",\n  \"Rational\",\n  \"RationalFunctions\",\n  \"Rationalize\",\n  \"Rationals\",\n  \"Ratios\",\n  \"RawArray\",\n  \"RawBoxes\",\n  \"RawData\",\n  \"RawMedium\",\n  \"RayleighDistribution\",\n  \"Re\",\n  \"Read\",\n  \"ReadByteArray\",\n  \"ReadLine\",\n  \"ReadList\",\n  \"ReadProtected\",\n  \"ReadString\",\n  \"Real\",\n  \"RealAbs\",\n  \"RealBlockDiagonalForm\",\n  \"RealDigits\",\n  \"RealExponent\",\n  \"Reals\",\n  \"RealSign\",\n  \"Reap\",\n  \"RebuildPacletData\",\n  \"RecognitionPrior\",\n  \"RecognitionThreshold\",\n  \"Record\",\n  \"RecordLists\",\n  \"RecordSeparators\",\n  \"Rectangle\",\n  \"RectangleBox\",\n  \"RectangleBoxOptions\",\n  \"RectangleChart\",\n  \"RectangleChart3D\",\n  \"RectangularRepeatingElement\",\n  \"RecurrenceFilter\",\n  \"RecurrenceTable\",\n  \"RecurringDigitsForm\",\n  \"Red\",\n  \"Reduce\",\n  \"RefBox\",\n  \"ReferenceLineStyle\",\n  \"ReferenceMarkers\",\n  \"ReferenceMarkerStyle\",\n  \"Refine\",\n  \"ReflectionMatrix\",\n  \"ReflectionTransform\",\n  \"Refresh\",\n  \"RefreshRate\",\n  \"Region\",\n  \"RegionBinarize\",\n  \"RegionBoundary\",\n  \"RegionBoundaryStyle\",\n  \"RegionBounds\",\n  \"RegionCentroid\",\n  \"RegionDifference\",\n  \"RegionDimension\",\n  \"RegionDisjoint\",\n  \"RegionDistance\",\n  \"RegionDistanceFunction\",\n  \"RegionEmbeddingDimension\",\n  \"RegionEqual\",\n  \"RegionFillingStyle\",\n  \"RegionFunction\",\n  \"RegionImage\",\n  \"RegionIntersection\",\n  \"RegionMeasure\",\n  \"RegionMember\",\n  \"RegionMemberFunction\",\n  \"RegionMoment\",\n  \"RegionNearest\",\n  \"RegionNearestFunction\",\n  \"RegionPlot\",\n  \"RegionPlot3D\",\n  \"RegionProduct\",\n  \"RegionQ\",\n  \"RegionResize\",\n  \"RegionSize\",\n  \"RegionSymmetricDifference\",\n  \"RegionUnion\",\n  \"RegionWithin\",\n  \"RegisterExternalEvaluator\",\n  \"RegularExpression\",\n  \"Regularization\",\n  \"RegularlySampledQ\",\n  \"RegularPolygon\",\n  \"ReIm\",\n  \"ReImLabels\",\n  \"ReImPlot\",\n  \"ReImStyle\",\n  \"Reinstall\",\n  \"RelationalDatabase\",\n  \"RelationGraph\",\n  \"Release\",\n  \"ReleaseHold\",\n  \"ReliabilityDistribution\",\n  \"ReliefImage\",\n  \"ReliefPlot\",\n  \"RemoteAuthorizationCaching\",\n  \"RemoteConnect\",\n  \"RemoteConnectionObject\",\n  \"RemoteFile\",\n  \"RemoteRun\",\n  \"RemoteRunProcess\",\n  \"Remove\",\n  \"RemoveAlphaChannel\",\n  \"RemoveAsynchronousTask\",\n  \"RemoveAudioStream\",\n  \"RemoveBackground\",\n  \"RemoveChannelListener\",\n  \"RemoveChannelSubscribers\",\n  \"Removed\",\n  \"RemoveDiacritics\",\n  \"RemoveInputStreamMethod\",\n  \"RemoveOutputStreamMethod\",\n  \"RemoveProperty\",\n  \"RemoveScheduledTask\",\n  \"RemoveUsers\",\n  \"RemoveVideoStream\",\n  \"RenameDirectory\",\n  \"RenameFile\",\n  \"RenderAll\",\n  \"RenderingOptions\",\n  \"RenewalProcess\",\n  \"RenkoChart\",\n  \"RepairMesh\",\n  \"Repeated\",\n  \"RepeatedNull\",\n  \"RepeatedString\",\n  \"RepeatedTiming\",\n  \"RepeatingElement\",\n  \"Replace\",\n  \"ReplaceAll\",\n  \"ReplaceHeldPart\",\n  \"ReplaceImageValue\",\n  \"ReplaceList\",\n  \"ReplacePart\",\n  \"ReplacePixelValue\",\n  \"ReplaceRepeated\",\n  \"ReplicateLayer\",\n  \"RequiredPhysicalQuantities\",\n  \"Resampling\",\n  \"ResamplingAlgorithmData\",\n  \"ResamplingMethod\",\n  \"Rescale\",\n  \"RescalingTransform\",\n  \"ResetDirectory\",\n  \"ResetMenusPacket\",\n  \"ResetScheduledTask\",\n  \"ReshapeLayer\",\n  \"Residue\",\n  \"ResizeLayer\",\n  \"Resolve\",\n  \"ResourceAcquire\",\n  \"ResourceData\",\n  \"ResourceFunction\",\n  \"ResourceObject\",\n  \"ResourceRegister\",\n  \"ResourceRemove\",\n  \"ResourceSearch\",\n  \"ResourceSubmissionObject\",\n  \"ResourceSubmit\",\n  \"ResourceSystemBase\",\n  \"ResourceSystemPath\",\n  \"ResourceUpdate\",\n  \"ResourceVersion\",\n  \"ResponseForm\",\n  \"Rest\",\n  \"RestartInterval\",\n  \"Restricted\",\n  \"Resultant\",\n  \"ResumePacket\",\n  \"Return\",\n  \"ReturnEntersInput\",\n  \"ReturnExpressionPacket\",\n  \"ReturnInputFormPacket\",\n  \"ReturnPacket\",\n  \"ReturnReceiptFunction\",\n  \"ReturnTextPacket\",\n  \"Reverse\",\n  \"ReverseApplied\",\n  \"ReverseBiorthogonalSplineWavelet\",\n  \"ReverseElement\",\n  \"ReverseEquilibrium\",\n  \"ReverseGraph\",\n  \"ReverseSort\",\n  \"ReverseSortBy\",\n  \"ReverseUpEquilibrium\",\n  \"RevolutionAxis\",\n  \"RevolutionPlot3D\",\n  \"RGBColor\",\n  \"RiccatiSolve\",\n  \"RiceDistribution\",\n  \"RidgeFilter\",\n  \"RiemannR\",\n  \"RiemannSiegelTheta\",\n  \"RiemannSiegelZ\",\n  \"RiemannXi\",\n  \"Riffle\",\n  \"Right\",\n  \"RightArrow\",\n  \"RightArrowBar\",\n  \"RightArrowLeftArrow\",\n  \"RightComposition\",\n  \"RightCosetRepresentative\",\n  \"RightDownTeeVector\",\n  \"RightDownVector\",\n  \"RightDownVectorBar\",\n  \"RightTee\",\n  \"RightTeeArrow\",\n  \"RightTeeVector\",\n  \"RightTriangle\",\n  \"RightTriangleBar\",\n  \"RightTriangleEqual\",\n  \"RightUpDownVector\",\n  \"RightUpTeeVector\",\n  \"RightUpVector\",\n  \"RightUpVectorBar\",\n  \"RightVector\",\n  \"RightVectorBar\",\n  \"RiskAchievementImportance\",\n  \"RiskReductionImportance\",\n  \"RogersTanimotoDissimilarity\",\n  \"RollPitchYawAngles\",\n  \"RollPitchYawMatrix\",\n  \"RomanNumeral\",\n  \"Root\",\n  \"RootApproximant\",\n  \"RootIntervals\",\n  \"RootLocusPlot\",\n  \"RootMeanSquare\",\n  \"RootOfUnityQ\",\n  \"RootReduce\",\n  \"Roots\",\n  \"RootSum\",\n  \"Rotate\",\n  \"RotateLabel\",\n  \"RotateLeft\",\n  \"RotateRight\",\n  \"RotationAction\",\n  \"RotationBox\",\n  \"RotationBoxOptions\",\n  \"RotationMatrix\",\n  \"RotationTransform\",\n  \"Round\",\n  \"RoundImplies\",\n  \"RoundingRadius\",\n  \"Row\",\n  \"RowAlignments\",\n  \"RowBackgrounds\",\n  \"RowBox\",\n  \"RowHeights\",\n  \"RowLines\",\n  \"RowMinHeight\",\n  \"RowReduce\",\n  \"RowsEqual\",\n  \"RowSpacings\",\n  \"RSolve\",\n  \"RSolveValue\",\n  \"RudinShapiro\",\n  \"RudvalisGroupRu\",\n  \"Rule\",\n  \"RuleCondition\",\n  \"RuleDelayed\",\n  \"RuleForm\",\n  \"RulePlot\",\n  \"RulerUnits\",\n  \"Run\",\n  \"RunProcess\",\n  \"RunScheduledTask\",\n  \"RunThrough\",\n  \"RuntimeAttributes\",\n  \"RuntimeOptions\",\n  \"RussellRaoDissimilarity\",\n  \"SameQ\",\n  \"SameTest\",\n  \"SameTestProperties\",\n  \"SampledEntityClass\",\n  \"SampleDepth\",\n  \"SampledSoundFunction\",\n  \"SampledSoundList\",\n  \"SampleRate\",\n  \"SamplingPeriod\",\n  \"SARIMAProcess\",\n  \"SARMAProcess\",\n  \"SASTriangle\",\n  \"SatelliteData\",\n  \"SatisfiabilityCount\",\n  \"SatisfiabilityInstances\",\n  \"SatisfiableQ\",\n  \"Saturday\",\n  \"Save\",\n  \"Saveable\",\n  \"SaveAutoDelete\",\n  \"SaveConnection\",\n  \"SaveDefinitions\",\n  \"SavitzkyGolayMatrix\",\n  \"SawtoothWave\",\n  \"Scale\",\n  \"Scaled\",\n  \"ScaleDivisions\",\n  \"ScaledMousePosition\",\n  \"ScaleOrigin\",\n  \"ScalePadding\",\n  \"ScaleRanges\",\n  \"ScaleRangeStyle\",\n  \"ScalingFunctions\",\n  \"ScalingMatrix\",\n  \"ScalingTransform\",\n  \"Scan\",\n  \"ScheduledTask\",\n  \"ScheduledTaskActiveQ\",\n  \"ScheduledTaskInformation\",\n  \"ScheduledTaskInformationData\",\n  \"ScheduledTaskObject\",\n  \"ScheduledTasks\",\n  \"SchurDecomposition\",\n  \"ScientificForm\",\n  \"ScientificNotationThreshold\",\n  \"ScorerGi\",\n  \"ScorerGiPrime\",\n  \"ScorerHi\",\n  \"ScorerHiPrime\",\n  \"ScreenRectangle\",\n  \"ScreenStyleEnvironment\",\n  \"ScriptBaselineShifts\",\n  \"ScriptForm\",\n  \"ScriptLevel\",\n  \"ScriptMinSize\",\n  \"ScriptRules\",\n  \"ScriptSizeMultipliers\",\n  \"Scrollbars\",\n  \"ScrollingOptions\",\n  \"ScrollPosition\",\n  \"SearchAdjustment\",\n  \"SearchIndexObject\",\n  \"SearchIndices\",\n  \"SearchQueryString\",\n  \"SearchResultObject\",\n  \"Sec\",\n  \"Sech\",\n  \"SechDistribution\",\n  \"SecondOrderConeOptimization\",\n  \"SectionGrouping\",\n  \"SectorChart\",\n  \"SectorChart3D\",\n  \"SectorOrigin\",\n  \"SectorSpacing\",\n  \"SecuredAuthenticationKey\",\n  \"SecuredAuthenticationKeys\",\n  \"SeedRandom\",\n  \"Select\",\n  \"Selectable\",\n  \"SelectComponents\",\n  \"SelectedCells\",\n  \"SelectedNotebook\",\n  \"SelectFirst\",\n  \"Selection\",\n  \"SelectionAnimate\",\n  \"SelectionCell\",\n  \"SelectionCellCreateCell\",\n  \"SelectionCellDefaultStyle\",\n  \"SelectionCellParentStyle\",\n  \"SelectionCreateCell\",\n  \"SelectionDebuggerTag\",\n  \"SelectionDuplicateCell\",\n  \"SelectionEvaluate\",\n  \"SelectionEvaluateCreateCell\",\n  \"SelectionMove\",\n  \"SelectionPlaceholder\",\n  \"SelectionSetStyle\",\n  \"SelectWithContents\",\n  \"SelfLoops\",\n  \"SelfLoopStyle\",\n  \"SemanticImport\",\n  \"SemanticImportString\",\n  \"SemanticInterpretation\",\n  \"SemialgebraicComponentInstances\",\n  \"SemidefiniteOptimization\",\n  \"SendMail\",\n  \"SendMessage\",\n  \"Sequence\",\n  \"SequenceAlignment\",\n  \"SequenceAttentionLayer\",\n  \"SequenceCases\",\n  \"SequenceCount\",\n  \"SequenceFold\",\n  \"SequenceFoldList\",\n  \"SequenceForm\",\n  \"SequenceHold\",\n  \"SequenceLastLayer\",\n  \"SequenceMostLayer\",\n  \"SequencePosition\",\n  \"SequencePredict\",\n  \"SequencePredictorFunction\",\n  \"SequenceReplace\",\n  \"SequenceRestLayer\",\n  \"SequenceReverseLayer\",\n  \"SequenceSplit\",\n  \"Series\",\n  \"SeriesCoefficient\",\n  \"SeriesData\",\n  \"SeriesTermGoal\",\n  \"ServiceConnect\",\n  \"ServiceDisconnect\",\n  \"ServiceExecute\",\n  \"ServiceObject\",\n  \"ServiceRequest\",\n  \"ServiceResponse\",\n  \"ServiceSubmit\",\n  \"SessionSubmit\",\n  \"SessionTime\",\n  \"Set\",\n  \"SetAccuracy\",\n  \"SetAlphaChannel\",\n  \"SetAttributes\",\n  \"Setbacks\",\n  \"SetBoxFormNamesPacket\",\n  \"SetCloudDirectory\",\n  \"SetCookies\",\n  \"SetDelayed\",\n  \"SetDirectory\",\n  \"SetEnvironment\",\n  \"SetEvaluationNotebook\",\n  \"SetFileDate\",\n  \"SetFileLoadingContext\",\n  \"SetNotebookStatusLine\",\n  \"SetOptions\",\n  \"SetOptionsPacket\",\n  \"SetPermissions\",\n  \"SetPrecision\",\n  \"SetProperty\",\n  \"SetSecuredAuthenticationKey\",\n  \"SetSelectedNotebook\",\n  \"SetSharedFunction\",\n  \"SetSharedVariable\",\n  \"SetSpeechParametersPacket\",\n  \"SetStreamPosition\",\n  \"SetSystemModel\",\n  \"SetSystemOptions\",\n  \"Setter\",\n  \"SetterBar\",\n  \"SetterBox\",\n  \"SetterBoxOptions\",\n  \"Setting\",\n  \"SetUsers\",\n  \"SetValue\",\n  \"Shading\",\n  \"Shallow\",\n  \"ShannonWavelet\",\n  \"ShapiroWilkTest\",\n  \"Share\",\n  \"SharingList\",\n  \"Sharpen\",\n  \"ShearingMatrix\",\n  \"ShearingTransform\",\n  \"ShellRegion\",\n  \"ShenCastanMatrix\",\n  \"ShiftedGompertzDistribution\",\n  \"ShiftRegisterSequence\",\n  \"Short\",\n  \"ShortDownArrow\",\n  \"Shortest\",\n  \"ShortestMatch\",\n  \"ShortestPathFunction\",\n  \"ShortLeftArrow\",\n  \"ShortRightArrow\",\n  \"ShortTimeFourier\",\n  \"ShortTimeFourierData\",\n  \"ShortUpArrow\",\n  \"Show\",\n  \"ShowAutoConvert\",\n  \"ShowAutoSpellCheck\",\n  \"ShowAutoStyles\",\n  \"ShowCellBracket\",\n  \"ShowCellLabel\",\n  \"ShowCellTags\",\n  \"ShowClosedCellArea\",\n  \"ShowCodeAssist\",\n  \"ShowContents\",\n  \"ShowControls\",\n  \"ShowCursorTracker\",\n  \"ShowGroupOpenCloseIcon\",\n  \"ShowGroupOpener\",\n  \"ShowInvisibleCharacters\",\n  \"ShowPageBreaks\",\n  \"ShowPredictiveInterface\",\n  \"ShowSelection\",\n  \"ShowShortBoxForm\",\n  \"ShowSpecialCharacters\",\n  \"ShowStringCharacters\",\n  \"ShowSyntaxStyles\",\n  \"ShrinkingDelay\",\n  \"ShrinkWrapBoundingBox\",\n  \"SiderealTime\",\n  \"SiegelTheta\",\n  \"SiegelTukeyTest\",\n  \"SierpinskiCurve\",\n  \"SierpinskiMesh\",\n  \"Sign\",\n  \"Signature\",\n  \"SignedRankTest\",\n  \"SignedRegionDistance\",\n  \"SignificanceLevel\",\n  \"SignPadding\",\n  \"SignTest\",\n  \"SimilarityRules\",\n  \"SimpleGraph\",\n  \"SimpleGraphQ\",\n  \"SimplePolygonQ\",\n  \"SimplePolyhedronQ\",\n  \"Simplex\",\n  \"Simplify\",\n  \"Sin\",\n  \"Sinc\",\n  \"SinghMaddalaDistribution\",\n  \"SingleEvaluation\",\n  \"SingleLetterItalics\",\n  \"SingleLetterStyle\",\n  \"SingularValueDecomposition\",\n  \"SingularValueList\",\n  \"SingularValuePlot\",\n  \"SingularValues\",\n  \"Sinh\",\n  \"SinhIntegral\",\n  \"SinIntegral\",\n  \"SixJSymbol\",\n  \"Skeleton\",\n  \"SkeletonTransform\",\n  \"SkellamDistribution\",\n  \"Skewness\",\n  \"SkewNormalDistribution\",\n  \"SkinStyle\",\n  \"Skip\",\n  \"SliceContourPlot3D\",\n  \"SliceDensityPlot3D\",\n  \"SliceDistribution\",\n  \"SliceVectorPlot3D\",\n  \"Slider\",\n  \"Slider2D\",\n  \"Slider2DBox\",\n  \"Slider2DBoxOptions\",\n  \"SliderBox\",\n  \"SliderBoxOptions\",\n  \"SlideView\",\n  \"Slot\",\n  \"SlotSequence\",\n  \"Small\",\n  \"SmallCircle\",\n  \"Smaller\",\n  \"SmithDecomposition\",\n  \"SmithDelayCompensator\",\n  \"SmithWatermanSimilarity\",\n  \"SmoothDensityHistogram\",\n  \"SmoothHistogram\",\n  \"SmoothHistogram3D\",\n  \"SmoothKernelDistribution\",\n  \"SnDispersion\",\n  \"Snippet\",\n  \"SnubPolyhedron\",\n  \"SocialMediaData\",\n  \"Socket\",\n  \"SocketConnect\",\n  \"SocketListen\",\n  \"SocketListener\",\n  \"SocketObject\",\n  \"SocketOpen\",\n  \"SocketReadMessage\",\n  \"SocketReadyQ\",\n  \"Sockets\",\n  \"SocketWaitAll\",\n  \"SocketWaitNext\",\n  \"SoftmaxLayer\",\n  \"SokalSneathDissimilarity\",\n  \"SolarEclipse\",\n  \"SolarSystemFeatureData\",\n  \"SolidAngle\",\n  \"SolidData\",\n  \"SolidRegionQ\",\n  \"Solve\",\n  \"SolveAlways\",\n  \"SolveDelayed\",\n  \"Sort\",\n  \"SortBy\",\n  \"SortedBy\",\n  \"SortedEntityClass\",\n  \"Sound\",\n  \"SoundAndGraphics\",\n  \"SoundNote\",\n  \"SoundVolume\",\n  \"SourceLink\",\n  \"Sow\",\n  \"Space\",\n  \"SpaceCurveData\",\n  \"SpaceForm\",\n  \"Spacer\",\n  \"Spacings\",\n  \"Span\",\n  \"SpanAdjustments\",\n  \"SpanCharacterRounding\",\n  \"SpanFromAbove\",\n  \"SpanFromBoth\",\n  \"SpanFromLeft\",\n  \"SpanLineThickness\",\n  \"SpanMaxSize\",\n  \"SpanMinSize\",\n  \"SpanningCharacters\",\n  \"SpanSymmetric\",\n  \"SparseArray\",\n  \"SpatialGraphDistribution\",\n  \"SpatialMedian\",\n  \"SpatialTransformationLayer\",\n  \"Speak\",\n  \"SpeakerMatchQ\",\n  \"SpeakTextPacket\",\n  \"SpearmanRankTest\",\n  \"SpearmanRho\",\n  \"SpeciesData\",\n  \"SpecificityGoal\",\n  \"SpectralLineData\",\n  \"Spectrogram\",\n  \"SpectrogramArray\",\n  \"Specularity\",\n  \"SpeechCases\",\n  \"SpeechInterpreter\",\n  \"SpeechRecognize\",\n  \"SpeechSynthesize\",\n  \"SpellingCorrection\",\n  \"SpellingCorrectionList\",\n  \"SpellingDictionaries\",\n  \"SpellingDictionariesPath\",\n  \"SpellingOptions\",\n  \"SpellingSuggestionsPacket\",\n  \"Sphere\",\n  \"SphereBox\",\n  \"SpherePoints\",\n  \"SphericalBesselJ\",\n  \"SphericalBesselY\",\n  \"SphericalHankelH1\",\n  \"SphericalHankelH2\",\n  \"SphericalHarmonicY\",\n  \"SphericalPlot3D\",\n  \"SphericalRegion\",\n  \"SphericalShell\",\n  \"SpheroidalEigenvalue\",\n  \"SpheroidalJoiningFactor\",\n  \"SpheroidalPS\",\n  \"SpheroidalPSPrime\",\n  \"SpheroidalQS\",\n  \"SpheroidalQSPrime\",\n  \"SpheroidalRadialFactor\",\n  \"SpheroidalS1\",\n  \"SpheroidalS1Prime\",\n  \"SpheroidalS2\",\n  \"SpheroidalS2Prime\",\n  \"Splice\",\n  \"SplicedDistribution\",\n  \"SplineClosed\",\n  \"SplineDegree\",\n  \"SplineKnots\",\n  \"SplineWeights\",\n  \"Split\",\n  \"SplitBy\",\n  \"SpokenString\",\n  \"Sqrt\",\n  \"SqrtBox\",\n  \"SqrtBoxOptions\",\n  \"Square\",\n  \"SquaredEuclideanDistance\",\n  \"SquareFreeQ\",\n  \"SquareIntersection\",\n  \"SquareMatrixQ\",\n  \"SquareRepeatingElement\",\n  \"SquaresR\",\n  \"SquareSubset\",\n  \"SquareSubsetEqual\",\n  \"SquareSuperset\",\n  \"SquareSupersetEqual\",\n  \"SquareUnion\",\n  \"SquareWave\",\n  \"SSSTriangle\",\n  \"StabilityMargins\",\n  \"StabilityMarginsStyle\",\n  \"StableDistribution\",\n  \"Stack\",\n  \"StackBegin\",\n  \"StackComplete\",\n  \"StackedDateListPlot\",\n  \"StackedListPlot\",\n  \"StackInhibit\",\n  \"StadiumShape\",\n  \"StandardAtmosphereData\",\n  \"StandardDeviation\",\n  \"StandardDeviationFilter\",\n  \"StandardForm\",\n  \"Standardize\",\n  \"Standardized\",\n  \"StandardOceanData\",\n  \"StandbyDistribution\",\n  \"Star\",\n  \"StarClusterData\",\n  \"StarData\",\n  \"StarGraph\",\n  \"StartAsynchronousTask\",\n  \"StartExternalSession\",\n  \"StartingStepSize\",\n  \"StartOfLine\",\n  \"StartOfString\",\n  \"StartProcess\",\n  \"StartScheduledTask\",\n  \"StartupSound\",\n  \"StartWebSession\",\n  \"StateDimensions\",\n  \"StateFeedbackGains\",\n  \"StateOutputEstimator\",\n  \"StateResponse\",\n  \"StateSpaceModel\",\n  \"StateSpaceRealization\",\n  \"StateSpaceTransform\",\n  \"StateTransformationLinearize\",\n  \"StationaryDistribution\",\n  \"StationaryWaveletPacketTransform\",\n  \"StationaryWaveletTransform\",\n  \"StatusArea\",\n  \"StatusCentrality\",\n  \"StepMonitor\",\n  \"StereochemistryElements\",\n  \"StieltjesGamma\",\n  \"StippleShading\",\n  \"StirlingS1\",\n  \"StirlingS2\",\n  \"StopAsynchronousTask\",\n  \"StoppingPowerData\",\n  \"StopScheduledTask\",\n  \"StrataVariables\",\n  \"StratonovichProcess\",\n  \"StreamColorFunction\",\n  \"StreamColorFunctionScaling\",\n  \"StreamDensityPlot\",\n  \"StreamMarkers\",\n  \"StreamPlot\",\n  \"StreamPoints\",\n  \"StreamPosition\",\n  \"Streams\",\n  \"StreamScale\",\n  \"StreamStyle\",\n  \"String\",\n  \"StringBreak\",\n  \"StringByteCount\",\n  \"StringCases\",\n  \"StringContainsQ\",\n  \"StringCount\",\n  \"StringDelete\",\n  \"StringDrop\",\n  \"StringEndsQ\",\n  \"StringExpression\",\n  \"StringExtract\",\n  \"StringForm\",\n  \"StringFormat\",\n  \"StringFreeQ\",\n  \"StringInsert\",\n  \"StringJoin\",\n  \"StringLength\",\n  \"StringMatchQ\",\n  \"StringPadLeft\",\n  \"StringPadRight\",\n  \"StringPart\",\n  \"StringPartition\",\n  \"StringPosition\",\n  \"StringQ\",\n  \"StringRepeat\",\n  \"StringReplace\",\n  \"StringReplaceList\",\n  \"StringReplacePart\",\n  \"StringReverse\",\n  \"StringRiffle\",\n  \"StringRotateLeft\",\n  \"StringRotateRight\",\n  \"StringSkeleton\",\n  \"StringSplit\",\n  \"StringStartsQ\",\n  \"StringTake\",\n  \"StringTemplate\",\n  \"StringToByteArray\",\n  \"StringToStream\",\n  \"StringTrim\",\n  \"StripBoxes\",\n  \"StripOnInput\",\n  \"StripWrapperBoxes\",\n  \"StrokeForm\",\n  \"StructuralImportance\",\n  \"StructuredArray\",\n  \"StructuredArrayHeadQ\",\n  \"StructuredSelection\",\n  \"StruveH\",\n  \"StruveL\",\n  \"Stub\",\n  \"StudentTDistribution\",\n  \"Style\",\n  \"StyleBox\",\n  \"StyleBoxAutoDelete\",\n  \"StyleData\",\n  \"StyleDefinitions\",\n  \"StyleForm\",\n  \"StyleHints\",\n  \"StyleKeyMapping\",\n  \"StyleMenuListing\",\n  \"StyleNameDialogSettings\",\n  \"StyleNames\",\n  \"StylePrint\",\n  \"StyleSheetPath\",\n  \"Subdivide\",\n  \"Subfactorial\",\n  \"Subgraph\",\n  \"SubMinus\",\n  \"SubPlus\",\n  \"SubresultantPolynomialRemainders\",\n  \"SubresultantPolynomials\",\n  \"Subresultants\",\n  \"Subscript\",\n  \"SubscriptBox\",\n  \"SubscriptBoxOptions\",\n  \"Subscripted\",\n  \"Subsequences\",\n  \"Subset\",\n  \"SubsetCases\",\n  \"SubsetCount\",\n  \"SubsetEqual\",\n  \"SubsetMap\",\n  \"SubsetPosition\",\n  \"SubsetQ\",\n  \"SubsetReplace\",\n  \"Subsets\",\n  \"SubStar\",\n  \"SubstitutionSystem\",\n  \"Subsuperscript\",\n  \"SubsuperscriptBox\",\n  \"SubsuperscriptBoxOptions\",\n  \"SubtitleEncoding\",\n  \"SubtitleTracks\",\n  \"Subtract\",\n  \"SubtractFrom\",\n  \"SubtractSides\",\n  \"SubValues\",\n  \"Succeeds\",\n  \"SucceedsEqual\",\n  \"SucceedsSlantEqual\",\n  \"SucceedsTilde\",\n  \"Success\",\n  \"SuchThat\",\n  \"Sum\",\n  \"SumConvergence\",\n  \"SummationLayer\",\n  \"Sunday\",\n  \"SunPosition\",\n  \"Sunrise\",\n  \"Sunset\",\n  \"SuperDagger\",\n  \"SuperMinus\",\n  \"SupernovaData\",\n  \"SuperPlus\",\n  \"Superscript\",\n  \"SuperscriptBox\",\n  \"SuperscriptBoxOptions\",\n  \"Superset\",\n  \"SupersetEqual\",\n  \"SuperStar\",\n  \"Surd\",\n  \"SurdForm\",\n  \"SurfaceAppearance\",\n  \"SurfaceArea\",\n  \"SurfaceColor\",\n  \"SurfaceData\",\n  \"SurfaceGraphics\",\n  \"SurvivalDistribution\",\n  \"SurvivalFunction\",\n  \"SurvivalModel\",\n  \"SurvivalModelFit\",\n  \"SuspendPacket\",\n  \"SuzukiDistribution\",\n  \"SuzukiGroupSuz\",\n  \"SwatchLegend\",\n  \"Switch\",\n  \"Symbol\",\n  \"SymbolName\",\n  \"SymletWavelet\",\n  \"Symmetric\",\n  \"SymmetricGroup\",\n  \"SymmetricKey\",\n  \"SymmetricMatrixQ\",\n  \"SymmetricPolynomial\",\n  \"SymmetricReduction\",\n  \"Symmetrize\",\n  \"SymmetrizedArray\",\n  \"SymmetrizedArrayRules\",\n  \"SymmetrizedDependentComponents\",\n  \"SymmetrizedIndependentComponents\",\n  \"SymmetrizedReplacePart\",\n  \"SynchronousInitialization\",\n  \"SynchronousUpdating\",\n  \"Synonyms\",\n  \"Syntax\",\n  \"SyntaxForm\",\n  \"SyntaxInformation\",\n  \"SyntaxLength\",\n  \"SyntaxPacket\",\n  \"SyntaxQ\",\n  \"SynthesizeMissingValues\",\n  \"SystemCredential\",\n  \"SystemCredentialData\",\n  \"SystemCredentialKey\",\n  \"SystemCredentialKeys\",\n  \"SystemCredentialStoreObject\",\n  \"SystemDialogInput\",\n  \"SystemException\",\n  \"SystemGet\",\n  \"SystemHelpPath\",\n  \"SystemInformation\",\n  \"SystemInformationData\",\n  \"SystemInstall\",\n  \"SystemModel\",\n  \"SystemModeler\",\n  \"SystemModelExamples\",\n  \"SystemModelLinearize\",\n  \"SystemModelParametricSimulate\",\n  \"SystemModelPlot\",\n  \"SystemModelProgressReporting\",\n  \"SystemModelReliability\",\n  \"SystemModels\",\n  \"SystemModelSimulate\",\n  \"SystemModelSimulateSensitivity\",\n  \"SystemModelSimulationData\",\n  \"SystemOpen\",\n  \"SystemOptions\",\n  \"SystemProcessData\",\n  \"SystemProcesses\",\n  \"SystemsConnectionsModel\",\n  \"SystemsModelDelay\",\n  \"SystemsModelDelayApproximate\",\n  \"SystemsModelDelete\",\n  \"SystemsModelDimensions\",\n  \"SystemsModelExtract\",\n  \"SystemsModelFeedbackConnect\",\n  \"SystemsModelLabels\",\n  \"SystemsModelLinearity\",\n  \"SystemsModelMerge\",\n  \"SystemsModelOrder\",\n  \"SystemsModelParallelConnect\",\n  \"SystemsModelSeriesConnect\",\n  \"SystemsModelStateFeedbackConnect\",\n  \"SystemsModelVectorRelativeOrders\",\n  \"SystemStub\",\n  \"SystemTest\",\n  \"Tab\",\n  \"TabFilling\",\n  \"Table\",\n  \"TableAlignments\",\n  \"TableDepth\",\n  \"TableDirections\",\n  \"TableForm\",\n  \"TableHeadings\",\n  \"TableSpacing\",\n  \"TableView\",\n  \"TableViewBox\",\n  \"TableViewBoxBackground\",\n  \"TableViewBoxItemSize\",\n  \"TableViewBoxOptions\",\n  \"TabSpacings\",\n  \"TabView\",\n  \"TabViewBox\",\n  \"TabViewBoxOptions\",\n  \"TagBox\",\n  \"TagBoxNote\",\n  \"TagBoxOptions\",\n  \"TaggingRules\",\n  \"TagSet\",\n  \"TagSetDelayed\",\n  \"TagStyle\",\n  \"TagUnset\",\n  \"Take\",\n  \"TakeDrop\",\n  \"TakeLargest\",\n  \"TakeLargestBy\",\n  \"TakeList\",\n  \"TakeSmallest\",\n  \"TakeSmallestBy\",\n  \"TakeWhile\",\n  \"Tally\",\n  \"Tan\",\n  \"Tanh\",\n  \"TargetDevice\",\n  \"TargetFunctions\",\n  \"TargetSystem\",\n  \"TargetUnits\",\n  \"TaskAbort\",\n  \"TaskExecute\",\n  \"TaskObject\",\n  \"TaskRemove\",\n  \"TaskResume\",\n  \"Tasks\",\n  \"TaskSuspend\",\n  \"TaskWait\",\n  \"TautologyQ\",\n  \"TelegraphProcess\",\n  \"TemplateApply\",\n  \"TemplateArgBox\",\n  \"TemplateBox\",\n  \"TemplateBoxOptions\",\n  \"TemplateEvaluate\",\n  \"TemplateExpression\",\n  \"TemplateIf\",\n  \"TemplateObject\",\n  \"TemplateSequence\",\n  \"TemplateSlot\",\n  \"TemplateSlotSequence\",\n  \"TemplateUnevaluated\",\n  \"TemplateVerbatim\",\n  \"TemplateWith\",\n  \"TemporalData\",\n  \"TemporalRegularity\",\n  \"Temporary\",\n  \"TemporaryVariable\",\n  \"TensorContract\",\n  \"TensorDimensions\",\n  \"TensorExpand\",\n  \"TensorProduct\",\n  \"TensorQ\",\n  \"TensorRank\",\n  \"TensorReduce\",\n  \"TensorSymmetry\",\n  \"TensorTranspose\",\n  \"TensorWedge\",\n  \"TestID\",\n  \"TestReport\",\n  \"TestReportObject\",\n  \"TestResultObject\",\n  \"Tetrahedron\",\n  \"TetrahedronBox\",\n  \"TetrahedronBoxOptions\",\n  \"TeXForm\",\n  \"TeXSave\",\n  \"Text\",\n  \"Text3DBox\",\n  \"Text3DBoxOptions\",\n  \"TextAlignment\",\n  \"TextBand\",\n  \"TextBoundingBox\",\n  \"TextBox\",\n  \"TextCases\",\n  \"TextCell\",\n  \"TextClipboardType\",\n  \"TextContents\",\n  \"TextData\",\n  \"TextElement\",\n  \"TextForm\",\n  \"TextGrid\",\n  \"TextJustification\",\n  \"TextLine\",\n  \"TextPacket\",\n  \"TextParagraph\",\n  \"TextPosition\",\n  \"TextRecognize\",\n  \"TextSearch\",\n  \"TextSearchReport\",\n  \"TextSentences\",\n  \"TextString\",\n  \"TextStructure\",\n  \"TextStyle\",\n  \"TextTranslation\",\n  \"Texture\",\n  \"TextureCoordinateFunction\",\n  \"TextureCoordinateScaling\",\n  \"TextWords\",\n  \"Therefore\",\n  \"ThermodynamicData\",\n  \"ThermometerGauge\",\n  \"Thick\",\n  \"Thickness\",\n  \"Thin\",\n  \"Thinning\",\n  \"ThisLink\",\n  \"ThompsonGroupTh\",\n  \"Thread\",\n  \"ThreadingLayer\",\n  \"ThreeJSymbol\",\n  \"Threshold\",\n  \"Through\",\n  \"Throw\",\n  \"ThueMorse\",\n  \"Thumbnail\",\n  \"Thursday\",\n  \"Ticks\",\n  \"TicksStyle\",\n  \"TideData\",\n  \"Tilde\",\n  \"TildeEqual\",\n  \"TildeFullEqual\",\n  \"TildeTilde\",\n  \"TimeConstrained\",\n  \"TimeConstraint\",\n  \"TimeDirection\",\n  \"TimeFormat\",\n  \"TimeGoal\",\n  \"TimelinePlot\",\n  \"TimeObject\",\n  \"TimeObjectQ\",\n  \"TimeRemaining\",\n  \"Times\",\n  \"TimesBy\",\n  \"TimeSeries\",\n  \"TimeSeriesAggregate\",\n  \"TimeSeriesForecast\",\n  \"TimeSeriesInsert\",\n  \"TimeSeriesInvertibility\",\n  \"TimeSeriesMap\",\n  \"TimeSeriesMapThread\",\n  \"TimeSeriesModel\",\n  \"TimeSeriesModelFit\",\n  \"TimeSeriesResample\",\n  \"TimeSeriesRescale\",\n  \"TimeSeriesShift\",\n  \"TimeSeriesThread\",\n  \"TimeSeriesWindow\",\n  \"TimeUsed\",\n  \"TimeValue\",\n  \"TimeWarpingCorrespondence\",\n  \"TimeWarpingDistance\",\n  \"TimeZone\",\n  \"TimeZoneConvert\",\n  \"TimeZoneOffset\",\n  \"Timing\",\n  \"Tiny\",\n  \"TitleGrouping\",\n  \"TitsGroupT\",\n  \"ToBoxes\",\n  \"ToCharacterCode\",\n  \"ToColor\",\n  \"ToContinuousTimeModel\",\n  \"ToDate\",\n  \"Today\",\n  \"ToDiscreteTimeModel\",\n  \"ToEntity\",\n  \"ToeplitzMatrix\",\n  \"ToExpression\",\n  \"ToFileName\",\n  \"Together\",\n  \"Toggle\",\n  \"ToggleFalse\",\n  \"Toggler\",\n  \"TogglerBar\",\n  \"TogglerBox\",\n  \"TogglerBoxOptions\",\n  \"ToHeldExpression\",\n  \"ToInvertibleTimeSeries\",\n  \"TokenWords\",\n  \"Tolerance\",\n  \"ToLowerCase\",\n  \"Tomorrow\",\n  \"ToNumberField\",\n  \"TooBig\",\n  \"Tooltip\",\n  \"TooltipBox\",\n  \"TooltipBoxOptions\",\n  \"TooltipDelay\",\n  \"TooltipStyle\",\n  \"ToonShading\",\n  \"Top\",\n  \"TopHatTransform\",\n  \"ToPolarCoordinates\",\n  \"TopologicalSort\",\n  \"ToRadicals\",\n  \"ToRules\",\n  \"ToSphericalCoordinates\",\n  \"ToString\",\n  \"Total\",\n  \"TotalHeight\",\n  \"TotalLayer\",\n  \"TotalVariationFilter\",\n  \"TotalWidth\",\n  \"TouchPosition\",\n  \"TouchscreenAutoZoom\",\n  \"TouchscreenControlPlacement\",\n  \"ToUpperCase\",\n  \"Tr\",\n  \"Trace\",\n  \"TraceAbove\",\n  \"TraceAction\",\n  \"TraceBackward\",\n  \"TraceDepth\",\n  \"TraceDialog\",\n  \"TraceForward\",\n  \"TraceInternal\",\n  \"TraceLevel\",\n  \"TraceOff\",\n  \"TraceOn\",\n  \"TraceOriginal\",\n  \"TracePrint\",\n  \"TraceScan\",\n  \"TrackedSymbols\",\n  \"TrackingFunction\",\n  \"TracyWidomDistribution\",\n  \"TradingChart\",\n  \"TraditionalForm\",\n  \"TraditionalFunctionNotation\",\n  \"TraditionalNotation\",\n  \"TraditionalOrder\",\n  \"TrainingProgressCheckpointing\",\n  \"TrainingProgressFunction\",\n  \"TrainingProgressMeasurements\",\n  \"TrainingProgressReporting\",\n  \"TrainingStoppingCriterion\",\n  \"TrainingUpdateSchedule\",\n  \"TransferFunctionCancel\",\n  \"TransferFunctionExpand\",\n  \"TransferFunctionFactor\",\n  \"TransferFunctionModel\",\n  \"TransferFunctionPoles\",\n  \"TransferFunctionTransform\",\n  \"TransferFunctionZeros\",\n  \"TransformationClass\",\n  \"TransformationFunction\",\n  \"TransformationFunctions\",\n  \"TransformationMatrix\",\n  \"TransformedDistribution\",\n  \"TransformedField\",\n  \"TransformedProcess\",\n  \"TransformedRegion\",\n  \"TransitionDirection\",\n  \"TransitionDuration\",\n  \"TransitionEffect\",\n  \"TransitiveClosureGraph\",\n  \"TransitiveReductionGraph\",\n  \"Translate\",\n  \"TranslationOptions\",\n  \"TranslationTransform\",\n  \"Transliterate\",\n  \"Transparent\",\n  \"TransparentColor\",\n  \"Transpose\",\n  \"TransposeLayer\",\n  \"TrapSelection\",\n  \"TravelDirections\",\n  \"TravelDirectionsData\",\n  \"TravelDistance\",\n  \"TravelDistanceList\",\n  \"TravelMethod\",\n  \"TravelTime\",\n  \"TreeForm\",\n  \"TreeGraph\",\n  \"TreeGraphQ\",\n  \"TreePlot\",\n  \"TrendStyle\",\n  \"Triangle\",\n  \"TriangleCenter\",\n  \"TriangleConstruct\",\n  \"TriangleMeasurement\",\n  \"TriangleWave\",\n  \"TriangularDistribution\",\n  \"TriangulateMesh\",\n  \"Trig\",\n  \"TrigExpand\",\n  \"TrigFactor\",\n  \"TrigFactorList\",\n  \"Trigger\",\n  \"TrigReduce\",\n  \"TrigToExp\",\n  \"TrimmedMean\",\n  \"TrimmedVariance\",\n  \"TropicalStormData\",\n  \"True\",\n  \"TrueQ\",\n  \"TruncatedDistribution\",\n  \"TruncatedPolyhedron\",\n  \"TsallisQExponentialDistribution\",\n  \"TsallisQGaussianDistribution\",\n  \"TTest\",\n  \"Tube\",\n  \"TubeBezierCurveBox\",\n  \"TubeBezierCurveBoxOptions\",\n  \"TubeBox\",\n  \"TubeBoxOptions\",\n  \"TubeBSplineCurveBox\",\n  \"TubeBSplineCurveBoxOptions\",\n  \"Tuesday\",\n  \"TukeyLambdaDistribution\",\n  \"TukeyWindow\",\n  \"TunnelData\",\n  \"Tuples\",\n  \"TuranGraph\",\n  \"TuringMachine\",\n  \"TuttePolynomial\",\n  \"TwoWayRule\",\n  \"Typed\",\n  \"TypeSpecifier\",\n  \"UnateQ\",\n  \"Uncompress\",\n  \"UnconstrainedParameters\",\n  \"Undefined\",\n  \"UnderBar\",\n  \"Underflow\",\n  \"Underlined\",\n  \"Underoverscript\",\n  \"UnderoverscriptBox\",\n  \"UnderoverscriptBoxOptions\",\n  \"Underscript\",\n  \"UnderscriptBox\",\n  \"UnderscriptBoxOptions\",\n  \"UnderseaFeatureData\",\n  \"UndirectedEdge\",\n  \"UndirectedGraph\",\n  \"UndirectedGraphQ\",\n  \"UndoOptions\",\n  \"UndoTrackedVariables\",\n  \"Unequal\",\n  \"UnequalTo\",\n  \"Unevaluated\",\n  \"UniformDistribution\",\n  \"UniformGraphDistribution\",\n  \"UniformPolyhedron\",\n  \"UniformSumDistribution\",\n  \"Uninstall\",\n  \"Union\",\n  \"UnionedEntityClass\",\n  \"UnionPlus\",\n  \"Unique\",\n  \"UnitaryMatrixQ\",\n  \"UnitBox\",\n  \"UnitConvert\",\n  \"UnitDimensions\",\n  \"Unitize\",\n  \"UnitRootTest\",\n  \"UnitSimplify\",\n  \"UnitStep\",\n  \"UnitSystem\",\n  \"UnitTriangle\",\n  \"UnitVector\",\n  \"UnitVectorLayer\",\n  \"UnityDimensions\",\n  \"UniverseModelData\",\n  \"UniversityData\",\n  \"UnixTime\",\n  \"Unprotect\",\n  \"UnregisterExternalEvaluator\",\n  \"UnsameQ\",\n  \"UnsavedVariables\",\n  \"Unset\",\n  \"UnsetShared\",\n  \"UntrackedVariables\",\n  \"Up\",\n  \"UpArrow\",\n  \"UpArrowBar\",\n  \"UpArrowDownArrow\",\n  \"Update\",\n  \"UpdateDynamicObjects\",\n  \"UpdateDynamicObjectsSynchronous\",\n  \"UpdateInterval\",\n  \"UpdatePacletSites\",\n  \"UpdateSearchIndex\",\n  \"UpDownArrow\",\n  \"UpEquilibrium\",\n  \"UpperCaseQ\",\n  \"UpperLeftArrow\",\n  \"UpperRightArrow\",\n  \"UpperTriangularize\",\n  \"UpperTriangularMatrixQ\",\n  \"Upsample\",\n  \"UpSet\",\n  \"UpSetDelayed\",\n  \"UpTee\",\n  \"UpTeeArrow\",\n  \"UpTo\",\n  \"UpValues\",\n  \"URL\",\n  \"URLBuild\",\n  \"URLDecode\",\n  \"URLDispatcher\",\n  \"URLDownload\",\n  \"URLDownloadSubmit\",\n  \"URLEncode\",\n  \"URLExecute\",\n  \"URLExpand\",\n  \"URLFetch\",\n  \"URLFetchAsynchronous\",\n  \"URLParse\",\n  \"URLQueryDecode\",\n  \"URLQueryEncode\",\n  \"URLRead\",\n  \"URLResponseTime\",\n  \"URLSave\",\n  \"URLSaveAsynchronous\",\n  \"URLShorten\",\n  \"URLSubmit\",\n  \"UseGraphicsRange\",\n  \"UserDefinedWavelet\",\n  \"Using\",\n  \"UsingFrontEnd\",\n  \"UtilityFunction\",\n  \"V2Get\",\n  \"ValenceErrorHandling\",\n  \"ValidationLength\",\n  \"ValidationSet\",\n  \"Value\",\n  \"ValueBox\",\n  \"ValueBoxOptions\",\n  \"ValueDimensions\",\n  \"ValueForm\",\n  \"ValuePreprocessingFunction\",\n  \"ValueQ\",\n  \"Values\",\n  \"ValuesData\",\n  \"Variables\",\n  \"Variance\",\n  \"VarianceEquivalenceTest\",\n  \"VarianceEstimatorFunction\",\n  \"VarianceGammaDistribution\",\n  \"VarianceTest\",\n  \"VectorAngle\",\n  \"VectorAround\",\n  \"VectorAspectRatio\",\n  \"VectorColorFunction\",\n  \"VectorColorFunctionScaling\",\n  \"VectorDensityPlot\",\n  \"VectorGlyphData\",\n  \"VectorGreater\",\n  \"VectorGreaterEqual\",\n  \"VectorLess\",\n  \"VectorLessEqual\",\n  \"VectorMarkers\",\n  \"VectorPlot\",\n  \"VectorPlot3D\",\n  \"VectorPoints\",\n  \"VectorQ\",\n  \"VectorRange\",\n  \"Vectors\",\n  \"VectorScale\",\n  \"VectorScaling\",\n  \"VectorSizes\",\n  \"VectorStyle\",\n  \"Vee\",\n  \"Verbatim\",\n  \"Verbose\",\n  \"VerboseConvertToPostScriptPacket\",\n  \"VerificationTest\",\n  \"VerifyConvergence\",\n  \"VerifyDerivedKey\",\n  \"VerifyDigitalSignature\",\n  \"VerifyFileSignature\",\n  \"VerifyInterpretation\",\n  \"VerifySecurityCertificates\",\n  \"VerifySolutions\",\n  \"VerifyTestAssumptions\",\n  \"Version\",\n  \"VersionedPreferences\",\n  \"VersionNumber\",\n  \"VertexAdd\",\n  \"VertexCapacity\",\n  \"VertexColors\",\n  \"VertexComponent\",\n  \"VertexConnectivity\",\n  \"VertexContract\",\n  \"VertexCoordinateRules\",\n  \"VertexCoordinates\",\n  \"VertexCorrelationSimilarity\",\n  \"VertexCosineSimilarity\",\n  \"VertexCount\",\n  \"VertexCoverQ\",\n  \"VertexDataCoordinates\",\n  \"VertexDegree\",\n  \"VertexDelete\",\n  \"VertexDiceSimilarity\",\n  \"VertexEccentricity\",\n  \"VertexInComponent\",\n  \"VertexInDegree\",\n  \"VertexIndex\",\n  \"VertexJaccardSimilarity\",\n  \"VertexLabeling\",\n  \"VertexLabels\",\n  \"VertexLabelStyle\",\n  \"VertexList\",\n  \"VertexNormals\",\n  \"VertexOutComponent\",\n  \"VertexOutDegree\",\n  \"VertexQ\",\n  \"VertexRenderingFunction\",\n  \"VertexReplace\",\n  \"VertexShape\",\n  \"VertexShapeFunction\",\n  \"VertexSize\",\n  \"VertexStyle\",\n  \"VertexTextureCoordinates\",\n  \"VertexWeight\",\n  \"VertexWeightedGraphQ\",\n  \"Vertical\",\n  \"VerticalBar\",\n  \"VerticalForm\",\n  \"VerticalGauge\",\n  \"VerticalSeparator\",\n  \"VerticalSlider\",\n  \"VerticalTilde\",\n  \"Video\",\n  \"VideoEncoding\",\n  \"VideoExtractFrames\",\n  \"VideoFrameList\",\n  \"VideoFrameMap\",\n  \"VideoPause\",\n  \"VideoPlay\",\n  \"VideoQ\",\n  \"VideoStop\",\n  \"VideoStream\",\n  \"VideoStreams\",\n  \"VideoTimeSeries\",\n  \"VideoTracks\",\n  \"VideoTrim\",\n  \"ViewAngle\",\n  \"ViewCenter\",\n  \"ViewMatrix\",\n  \"ViewPoint\",\n  \"ViewPointSelectorSettings\",\n  \"ViewPort\",\n  \"ViewProjection\",\n  \"ViewRange\",\n  \"ViewVector\",\n  \"ViewVertical\",\n  \"VirtualGroupData\",\n  \"Visible\",\n  \"VisibleCell\",\n  \"VoiceStyleData\",\n  \"VoigtDistribution\",\n  \"VolcanoData\",\n  \"Volume\",\n  \"VonMisesDistribution\",\n  \"VoronoiMesh\",\n  \"WaitAll\",\n  \"WaitAsynchronousTask\",\n  \"WaitNext\",\n  \"WaitUntil\",\n  \"WakebyDistribution\",\n  \"WalleniusHypergeometricDistribution\",\n  \"WaringYuleDistribution\",\n  \"WarpingCorrespondence\",\n  \"WarpingDistance\",\n  \"WatershedComponents\",\n  \"WatsonUSquareTest\",\n  \"WattsStrogatzGraphDistribution\",\n  \"WaveletBestBasis\",\n  \"WaveletFilterCoefficients\",\n  \"WaveletImagePlot\",\n  \"WaveletListPlot\",\n  \"WaveletMapIndexed\",\n  \"WaveletMatrixPlot\",\n  \"WaveletPhi\",\n  \"WaveletPsi\",\n  \"WaveletScale\",\n  \"WaveletScalogram\",\n  \"WaveletThreshold\",\n  \"WeaklyConnectedComponents\",\n  \"WeaklyConnectedGraphComponents\",\n  \"WeaklyConnectedGraphQ\",\n  \"WeakStationarity\",\n  \"WeatherData\",\n  \"WeatherForecastData\",\n  \"WebAudioSearch\",\n  \"WebElementObject\",\n  \"WeberE\",\n  \"WebExecute\",\n  \"WebImage\",\n  \"WebImageSearch\",\n  \"WebSearch\",\n  \"WebSessionObject\",\n  \"WebSessions\",\n  \"WebWindowObject\",\n  \"Wedge\",\n  \"Wednesday\",\n  \"WeibullDistribution\",\n  \"WeierstrassE1\",\n  \"WeierstrassE2\",\n  \"WeierstrassE3\",\n  \"WeierstrassEta1\",\n  \"WeierstrassEta2\",\n  \"WeierstrassEta3\",\n  \"WeierstrassHalfPeriods\",\n  \"WeierstrassHalfPeriodW1\",\n  \"WeierstrassHalfPeriodW2\",\n  \"WeierstrassHalfPeriodW3\",\n  \"WeierstrassInvariantG2\",\n  \"WeierstrassInvariantG3\",\n  \"WeierstrassInvariants\",\n  \"WeierstrassP\",\n  \"WeierstrassPPrime\",\n  \"WeierstrassSigma\",\n  \"WeierstrassZeta\",\n  \"WeightedAdjacencyGraph\",\n  \"WeightedAdjacencyMatrix\",\n  \"WeightedData\",\n  \"WeightedGraphQ\",\n  \"Weights\",\n  \"WelchWindow\",\n  \"WheelGraph\",\n  \"WhenEvent\",\n  \"Which\",\n  \"While\",\n  \"White\",\n  \"WhiteNoiseProcess\",\n  \"WhitePoint\",\n  \"Whitespace\",\n  \"WhitespaceCharacter\",\n  \"WhittakerM\",\n  \"WhittakerW\",\n  \"WienerFilter\",\n  \"WienerProcess\",\n  \"WignerD\",\n  \"WignerSemicircleDistribution\",\n  \"WikidataData\",\n  \"WikidataSearch\",\n  \"WikipediaData\",\n  \"WikipediaSearch\",\n  \"WilksW\",\n  \"WilksWTest\",\n  \"WindDirectionData\",\n  \"WindingCount\",\n  \"WindingPolygon\",\n  \"WindowClickSelect\",\n  \"WindowElements\",\n  \"WindowFloating\",\n  \"WindowFrame\",\n  \"WindowFrameElements\",\n  \"WindowMargins\",\n  \"WindowMovable\",\n  \"WindowOpacity\",\n  \"WindowPersistentStyles\",\n  \"WindowSelected\",\n  \"WindowSize\",\n  \"WindowStatusArea\",\n  \"WindowTitle\",\n  \"WindowToolbars\",\n  \"WindowWidth\",\n  \"WindSpeedData\",\n  \"WindVectorData\",\n  \"WinsorizedMean\",\n  \"WinsorizedVariance\",\n  \"WishartMatrixDistribution\",\n  \"With\",\n  \"WolframAlpha\",\n  \"WolframAlphaDate\",\n  \"WolframAlphaQuantity\",\n  \"WolframAlphaResult\",\n  \"WolframLanguageData\",\n  \"Word\",\n  \"WordBoundary\",\n  \"WordCharacter\",\n  \"WordCloud\",\n  \"WordCount\",\n  \"WordCounts\",\n  \"WordData\",\n  \"WordDefinition\",\n  \"WordFrequency\",\n  \"WordFrequencyData\",\n  \"WordList\",\n  \"WordOrientation\",\n  \"WordSearch\",\n  \"WordSelectionFunction\",\n  \"WordSeparators\",\n  \"WordSpacings\",\n  \"WordStem\",\n  \"WordTranslation\",\n  \"WorkingPrecision\",\n  \"WrapAround\",\n  \"Write\",\n  \"WriteLine\",\n  \"WriteString\",\n  \"Wronskian\",\n  \"XMLElement\",\n  \"XMLObject\",\n  \"XMLTemplate\",\n  \"Xnor\",\n  \"Xor\",\n  \"XYZColor\",\n  \"Yellow\",\n  \"Yesterday\",\n  \"YuleDissimilarity\",\n  \"ZernikeR\",\n  \"ZeroSymmetric\",\n  \"ZeroTest\",\n  \"ZeroWidthTimes\",\n  \"Zeta\",\n  \"ZetaZero\",\n  \"ZIPCodeData\",\n  \"ZipfDistribution\",\n  \"ZoomCenter\",\n  \"ZoomFactor\",\n  \"ZTest\",\n  \"ZTransform\",\n  \"$Aborted\",\n  \"$ActivationGroupID\",\n  \"$ActivationKey\",\n  \"$ActivationUserRegistered\",\n  \"$AddOnsDirectory\",\n  \"$AllowDataUpdates\",\n  \"$AllowExternalChannelFunctions\",\n  \"$AllowInternet\",\n  \"$AssertFunction\",\n  \"$Assumptions\",\n  \"$AsynchronousTask\",\n  \"$AudioDecoders\",\n  \"$AudioEncoders\",\n  \"$AudioInputDevices\",\n  \"$AudioOutputDevices\",\n  \"$BaseDirectory\",\n  \"$BasePacletsDirectory\",\n  \"$BatchInput\",\n  \"$BatchOutput\",\n  \"$BlockchainBase\",\n  \"$BoxForms\",\n  \"$ByteOrdering\",\n  \"$CacheBaseDirectory\",\n  \"$Canceled\",\n  \"$ChannelBase\",\n  \"$CharacterEncoding\",\n  \"$CharacterEncodings\",\n  \"$CloudAccountName\",\n  \"$CloudBase\",\n  \"$CloudConnected\",\n  \"$CloudConnection\",\n  \"$CloudCreditsAvailable\",\n  \"$CloudEvaluation\",\n  \"$CloudExpressionBase\",\n  \"$CloudObjectNameFormat\",\n  \"$CloudObjectURLType\",\n  \"$CloudRootDirectory\",\n  \"$CloudSymbolBase\",\n  \"$CloudUserID\",\n  \"$CloudUserUUID\",\n  \"$CloudVersion\",\n  \"$CloudVersionNumber\",\n  \"$CloudWolframEngineVersionNumber\",\n  \"$CommandLine\",\n  \"$CompilationTarget\",\n  \"$ConditionHold\",\n  \"$ConfiguredKernels\",\n  \"$Context\",\n  \"$ContextPath\",\n  \"$ControlActiveSetting\",\n  \"$Cookies\",\n  \"$CookieStore\",\n  \"$CreationDate\",\n  \"$CurrentLink\",\n  \"$CurrentTask\",\n  \"$CurrentWebSession\",\n  \"$DataStructures\",\n  \"$DateStringFormat\",\n  \"$DefaultAudioInputDevice\",\n  \"$DefaultAudioOutputDevice\",\n  \"$DefaultFont\",\n  \"$DefaultFrontEnd\",\n  \"$DefaultImagingDevice\",\n  \"$DefaultLocalBase\",\n  \"$DefaultMailbox\",\n  \"$DefaultNetworkInterface\",\n  \"$DefaultPath\",\n  \"$DefaultProxyRules\",\n  \"$DefaultSystemCredentialStore\",\n  \"$Display\",\n  \"$DisplayFunction\",\n  \"$DistributedContexts\",\n  \"$DynamicEvaluation\",\n  \"$Echo\",\n  \"$EmbedCodeEnvironments\",\n  \"$EmbeddableServices\",\n  \"$EntityStores\",\n  \"$Epilog\",\n  \"$EvaluationCloudBase\",\n  \"$EvaluationCloudObject\",\n  \"$EvaluationEnvironment\",\n  \"$ExportFormats\",\n  \"$ExternalIdentifierTypes\",\n  \"$ExternalStorageBase\",\n  \"$Failed\",\n  \"$FinancialDataSource\",\n  \"$FontFamilies\",\n  \"$FormatType\",\n  \"$FrontEnd\",\n  \"$FrontEndSession\",\n  \"$GeoEntityTypes\",\n  \"$GeoLocation\",\n  \"$GeoLocationCity\",\n  \"$GeoLocationCountry\",\n  \"$GeoLocationPrecision\",\n  \"$GeoLocationSource\",\n  \"$HistoryLength\",\n  \"$HomeDirectory\",\n  \"$HTMLExportRules\",\n  \"$HTTPCookies\",\n  \"$HTTPRequest\",\n  \"$IgnoreEOF\",\n  \"$ImageFormattingWidth\",\n  \"$ImageResolution\",\n  \"$ImagingDevice\",\n  \"$ImagingDevices\",\n  \"$ImportFormats\",\n  \"$IncomingMailSettings\",\n  \"$InitialDirectory\",\n  \"$Initialization\",\n  \"$InitializationContexts\",\n  \"$Input\",\n  \"$InputFileName\",\n  \"$InputStreamMethods\",\n  \"$Inspector\",\n  \"$InstallationDate\",\n  \"$InstallationDirectory\",\n  \"$InterfaceEnvironment\",\n  \"$InterpreterTypes\",\n  \"$IterationLimit\",\n  \"$KernelCount\",\n  \"$KernelID\",\n  \"$Language\",\n  \"$LaunchDirectory\",\n  \"$LibraryPath\",\n  \"$LicenseExpirationDate\",\n  \"$LicenseID\",\n  \"$LicenseProcesses\",\n  \"$LicenseServer\",\n  \"$LicenseSubprocesses\",\n  \"$LicenseType\",\n  \"$Line\",\n  \"$Linked\",\n  \"$LinkSupported\",\n  \"$LoadedFiles\",\n  \"$LocalBase\",\n  \"$LocalSymbolBase\",\n  \"$MachineAddresses\",\n  \"$MachineDomain\",\n  \"$MachineDomains\",\n  \"$MachineEpsilon\",\n  \"$MachineID\",\n  \"$MachineName\",\n  \"$MachinePrecision\",\n  \"$MachineType\",\n  \"$MaxExtraPrecision\",\n  \"$MaxLicenseProcesses\",\n  \"$MaxLicenseSubprocesses\",\n  \"$MaxMachineNumber\",\n  \"$MaxNumber\",\n  \"$MaxPiecewiseCases\",\n  \"$MaxPrecision\",\n  \"$MaxRootDegree\",\n  \"$MessageGroups\",\n  \"$MessageList\",\n  \"$MessagePrePrint\",\n  \"$Messages\",\n  \"$MinMachineNumber\",\n  \"$MinNumber\",\n  \"$MinorReleaseNumber\",\n  \"$MinPrecision\",\n  \"$MobilePhone\",\n  \"$ModuleNumber\",\n  \"$NetworkConnected\",\n  \"$NetworkInterfaces\",\n  \"$NetworkLicense\",\n  \"$NewMessage\",\n  \"$NewSymbol\",\n  \"$NotebookInlineStorageLimit\",\n  \"$Notebooks\",\n  \"$NoValue\",\n  \"$NumberMarks\",\n  \"$Off\",\n  \"$OperatingSystem\",\n  \"$Output\",\n  \"$OutputForms\",\n  \"$OutputSizeLimit\",\n  \"$OutputStreamMethods\",\n  \"$Packages\",\n  \"$ParentLink\",\n  \"$ParentProcessID\",\n  \"$PasswordFile\",\n  \"$PatchLevelID\",\n  \"$Path\",\n  \"$PathnameSeparator\",\n  \"$PerformanceGoal\",\n  \"$Permissions\",\n  \"$PermissionsGroupBase\",\n  \"$PersistenceBase\",\n  \"$PersistencePath\",\n  \"$PipeSupported\",\n  \"$PlotTheme\",\n  \"$Post\",\n  \"$Pre\",\n  \"$PreferencesDirectory\",\n  \"$PreInitialization\",\n  \"$PrePrint\",\n  \"$PreRead\",\n  \"$PrintForms\",\n  \"$PrintLiteral\",\n  \"$Printout3DPreviewer\",\n  \"$ProcessID\",\n  \"$ProcessorCount\",\n  \"$ProcessorType\",\n  \"$ProductInformation\",\n  \"$ProgramName\",\n  \"$PublisherID\",\n  \"$RandomState\",\n  \"$RecursionLimit\",\n  \"$RegisteredDeviceClasses\",\n  \"$RegisteredUserName\",\n  \"$ReleaseNumber\",\n  \"$RequesterAddress\",\n  \"$RequesterWolframID\",\n  \"$RequesterWolframUUID\",\n  \"$RootDirectory\",\n  \"$ScheduledTask\",\n  \"$ScriptCommandLine\",\n  \"$ScriptInputString\",\n  \"$SecuredAuthenticationKeyTokens\",\n  \"$ServiceCreditsAvailable\",\n  \"$Services\",\n  \"$SessionID\",\n  \"$SetParentLink\",\n  \"$SharedFunctions\",\n  \"$SharedVariables\",\n  \"$SoundDisplay\",\n  \"$SoundDisplayFunction\",\n  \"$SourceLink\",\n  \"$SSHAuthentication\",\n  \"$SubtitleDecoders\",\n  \"$SubtitleEncoders\",\n  \"$SummaryBoxDataSizeLimit\",\n  \"$SuppressInputFormHeads\",\n  \"$SynchronousEvaluation\",\n  \"$SyntaxHandler\",\n  \"$System\",\n  \"$SystemCharacterEncoding\",\n  \"$SystemCredentialStore\",\n  \"$SystemID\",\n  \"$SystemMemory\",\n  \"$SystemShell\",\n  \"$SystemTimeZone\",\n  \"$SystemWordLength\",\n  \"$TemplatePath\",\n  \"$TemporaryDirectory\",\n  \"$TemporaryPrefix\",\n  \"$TestFileName\",\n  \"$TextStyle\",\n  \"$TimedOut\",\n  \"$TimeUnit\",\n  \"$TimeZone\",\n  \"$TimeZoneEntity\",\n  \"$TopDirectory\",\n  \"$TraceOff\",\n  \"$TraceOn\",\n  \"$TracePattern\",\n  \"$TracePostAction\",\n  \"$TracePreAction\",\n  \"$UnitSystem\",\n  \"$Urgent\",\n  \"$UserAddOnsDirectory\",\n  \"$UserAgentLanguages\",\n  \"$UserAgentMachine\",\n  \"$UserAgentName\",\n  \"$UserAgentOperatingSystem\",\n  \"$UserAgentString\",\n  \"$UserAgentVersion\",\n  \"$UserBaseDirectory\",\n  \"$UserBasePacletsDirectory\",\n  \"$UserDocumentsDirectory\",\n  \"$Username\",\n  \"$UserName\",\n  \"$UserURLBase\",\n  \"$Version\",\n  \"$VersionNumber\",\n  \"$VideoDecoders\",\n  \"$VideoEncoders\",\n  \"$VoiceStyles\",\n  \"$WolframDocumentsDirectory\",\n  \"$WolframID\",\n  \"$WolframUUID\"\n];\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: Wolfram Language\nDescription: The Wolfram Language is the programming language used in Wolfram Mathematica, a modern technical computing system spanning most areas of technical computing.\nAuthors: Patrick Scheibe , Robert Jacobson \nWebsite: https://www.wolfram.com/mathematica/\nCategory: scientific\n*/\n\n/** @type LanguageFn */\nfunction mathematica(hljs) {\n  /*\n  This rather scary looking matching of Mathematica numbers is carefully explained by Robert Jacobson here:\n  https://wltools.github.io/LanguageSpec/Specification/Syntax/Number-representations/\n   */\n  const BASE_RE = /([2-9]|[1-2]\\d|[3][0-5])\\^\\^/;\n  const BASE_DIGITS_RE = /(\\w*\\.\\w+|\\w+\\.\\w*|\\w+)/;\n  const NUMBER_RE = /(\\d*\\.\\d+|\\d+\\.\\d*|\\d+)/;\n  const BASE_NUMBER_RE = either(concat(BASE_RE, BASE_DIGITS_RE), NUMBER_RE);\n\n  const ACCURACY_RE = /``[+-]?(\\d*\\.\\d+|\\d+\\.\\d*|\\d+)/;\n  const PRECISION_RE = /`([+-]?(\\d*\\.\\d+|\\d+\\.\\d*|\\d+))?/;\n  const APPROXIMATE_NUMBER_RE = either(ACCURACY_RE, PRECISION_RE);\n\n  const SCIENTIFIC_NOTATION_RE = /\\*\\^[+-]?\\d+/;\n\n  const MATHEMATICA_NUMBER_RE = concat(\n    BASE_NUMBER_RE,\n    optional(APPROXIMATE_NUMBER_RE),\n    optional(SCIENTIFIC_NOTATION_RE)\n  );\n\n  const NUMBERS = {\n    className: 'number',\n    relevance: 0,\n    begin: MATHEMATICA_NUMBER_RE\n  };\n\n  const SYMBOL_RE = /[a-zA-Z$][a-zA-Z0-9$]*/;\n  const SYSTEM_SYMBOLS_SET = new Set(SYSTEM_SYMBOLS);\n  /** @type {Mode} */\n  const SYMBOLS = {\n    variants: [\n      {\n        className: 'builtin-symbol',\n        begin: SYMBOL_RE,\n        // for performance out of fear of regex.either(...Mathematica.SYSTEM_SYMBOLS)\n        \"on:begin\": (match, response) => {\n          if (!SYSTEM_SYMBOLS_SET.has(match[0])) response.ignoreMatch();\n        }\n      },\n      {\n        className: 'symbol',\n        relevance: 0,\n        begin: SYMBOL_RE\n      }\n    ]\n  };\n\n  const NAMED_CHARACTER = {\n    className: 'named-character',\n    begin: /\\\\\\[[$a-zA-Z][$a-zA-Z0-9]+\\]/\n  };\n\n  const OPERATORS = {\n    className: 'operator',\n    relevance: 0,\n    begin: /[+\\-*/,;.:@~=><&|_`'^?!%]+/\n  };\n  const PATTERNS = {\n    className: 'pattern',\n    relevance: 0,\n    begin: /([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/\n  };\n\n  const SLOTS = {\n    className: 'slot',\n    relevance: 0,\n    begin: /#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/\n  };\n\n  const BRACES = {\n    className: 'brace',\n    relevance: 0,\n    begin: /[[\\](){}]/\n  };\n\n  const MESSAGES = {\n    className: 'message-name',\n    relevance: 0,\n    begin: concat(\"::\", SYMBOL_RE)\n  };\n\n  return {\n    name: 'Mathematica',\n    aliases: [\n      'mma',\n      'wl'\n    ],\n    classNameAliases: {\n      brace: 'punctuation',\n      pattern: 'type',\n      slot: 'type',\n      symbol: 'variable',\n      'named-character': 'variable',\n      'builtin-symbol': 'built_in',\n      'message-name': 'string'\n    },\n    contains: [\n      hljs.COMMENT(/\\(\\*/, /\\*\\)/, {\n        contains: [ 'self' ]\n      }),\n      PATTERNS,\n      SLOTS,\n      MESSAGES,\n      SYMBOLS,\n      NAMED_CHARACTER,\n      hljs.QUOTE_STRING_MODE,\n      NUMBERS,\n      OPERATORS,\n      BRACES\n    ]\n  };\n}\n\nmodule.exports = mathematica;\n","/*\nLanguage: Matlab\nAuthor: Denis Bardadym \nContributors: Eugene Nizhibitsky , Egor Rogov \nWebsite: https://www.mathworks.com/products/matlab.html\nCategory: scientific\n*/\n\n/*\n  Formal syntax is not published, helpful link:\n  https://github.com/kornilova-l/matlab-IntelliJ-plugin/blob/master/src/main/grammar/Matlab.bnf\n*/\nfunction matlab(hljs) {\n\n  var TRANSPOSE_RE = '(\\'|\\\\.\\')+';\n  var TRANSPOSE = {\n    relevance: 0,\n    contains: [\n      { begin: TRANSPOSE_RE }\n    ]\n  };\n\n  return {\n    name: 'Matlab',\n    keywords: {\n      keyword:\n        'arguments break case catch classdef continue else elseif end enumeration events for function ' +\n        'global if methods otherwise parfor persistent properties return spmd switch try while',\n      built_in:\n        'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +\n        'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +\n        'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +\n        'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +\n        'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +\n        'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +\n        'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +\n        'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +\n        'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +\n        'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +\n        'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +\n        'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan ' +\n        'isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal ' +\n        'rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table ' +\n        'readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun ' +\n        'legend intersect ismember procrustes hold num2cell '\n    },\n    illegal: '(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',\n    contains: [\n      {\n        className: 'function',\n        beginKeywords: 'function', end: '$',\n        contains: [\n          hljs.UNDERSCORE_TITLE_MODE,\n          {\n            className: 'params',\n            variants: [\n              {begin: '\\\\(', end: '\\\\)'},\n              {begin: '\\\\[', end: '\\\\]'}\n            ]\n          }\n        ]\n      },\n      {\n        className: 'built_in',\n        begin: /true|false/,\n        relevance: 0,\n        starts: TRANSPOSE\n      },\n      {\n        begin: '[a-zA-Z][a-zA-Z_0-9]*' + TRANSPOSE_RE,\n        relevance: 0\n      },\n      {\n        className: 'number',\n        begin: hljs.C_NUMBER_RE,\n        relevance: 0,\n        starts: TRANSPOSE\n      },\n      {\n        className: 'string',\n        begin: '\\'', end: '\\'',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          {begin: '\\'\\''}]\n      },\n      {\n        begin: /\\]|\\}|\\)/,\n        relevance: 0,\n        starts: TRANSPOSE\n      },\n      {\n        className: 'string',\n        begin: '\"', end: '\"',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          {begin: '\"\"'}\n        ],\n        starts: TRANSPOSE\n      },\n      hljs.COMMENT('^\\\\s*%\\\\{\\\\s*$', '^\\\\s*%\\\\}\\\\s*$'),\n      hljs.COMMENT('%', '$')\n    ]\n  };\n}\n\nmodule.exports = matlab;\n","/*\nLanguage: Maxima\nAuthor: Robert Dodier \nWebsite: http://maxima.sourceforge.net\nCategory: scientific\n*/\n\nfunction maxima(hljs) {\n  const KEYWORDS =\n    'if then else elseif for thru do while unless step in and or not';\n  const LITERALS =\n    'true false unknown inf minf ind und %e %i %pi %phi %gamma';\n  const BUILTIN_FUNCTIONS =\n    ' abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate' +\n    ' addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix' +\n    ' adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type' +\n    ' alias allroots alphacharp alphanumericp amortization %and annuity_fv' +\n    ' annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2' +\n    ' applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply' +\n    ' arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger' +\n    ' asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order' +\n    ' asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method' +\n    ' av average_degree backtrace bars barsplot barsplot_description base64 base64_decode' +\n    ' bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx' +\n    ' bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify' +\n    ' bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized' +\n    ' bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp' +\n    ' bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition' +\n    ' block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description' +\n    ' break bug_report build_info|10 buildq build_sample burn cabs canform canten' +\n    ' cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli' +\n    ' cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform' +\n    ' cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel' +\n    ' cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial' +\n    ' cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson' +\n    ' cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay' +\n    ' ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic' +\n    ' cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2' +\n    ' charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps' +\n    ' chinese cholesky christof chromatic_index chromatic_number cint circulant_graph' +\n    ' clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph' +\n    ' clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse' +\n    ' collectterms columnop columnspace columnswap columnvector combination combine' +\n    ' comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph' +\n    ' complete_graph complex_number_p components compose_functions concan concat' +\n    ' conjugate conmetderiv connected_components connect_vertices cons constant' +\n    ' constantp constituent constvalue cont2part content continuous_freq contortion' +\n    ' contour_plot contract contract_edge contragrad contrib_ode convert coord' +\n    ' copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1' +\n    ' covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline' +\n    ' ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph' +\n    ' cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate' +\n    ' declare declare_constvalue declare_dimensions declare_fundamental_dimensions' +\n    ' declare_fundamental_units declare_qty declare_translated declare_unit_conversion' +\n    ' declare_units declare_weights decsym defcon define define_alt_display define_variable' +\n    ' defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten' +\n    ' delta demo demoivre denom depends derivdegree derivlist describe desolve' +\n    ' determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag' +\n    ' diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export' +\n    ' dimacs_import dimension dimensionless dimensions dimensions_as_list direct' +\n    ' directory discrete_freq disjoin disjointp disolate disp dispcon dispform' +\n    ' dispfun dispJordan display disprule dispterms distrib divide divisors divsum' +\n    ' dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart' +\n    ' draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring' +\n    ' edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth' +\n    ' einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome' +\n    ' ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using' +\n    ' ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi' +\n    ' ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp' +\n    ' equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors' +\n    ' euler ev eval_string evenp every evolution evolution2d evundiff example exp' +\n    ' expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci' +\n    ' expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li' +\n    ' expintegral_shi expintegral_si explicit explose exponentialize express expt' +\n    ' exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum' +\n    ' factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements' +\n    ' fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge' +\n    ' file_search file_type fillarray findde find_root find_root_abs find_root_error' +\n    ' find_root_rel first fix flatten flength float floatnump floor flower_snark' +\n    ' flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran' +\n    ' fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp' +\n    ' foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s' +\n    ' from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp' +\n    ' fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units' +\n    ' fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized' +\n    ' gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide' +\n    ' gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym' +\n    ' geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean' +\n    ' geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string' +\n    ' get_pixel get_plot_option get_tex_environment get_tex_environment_default' +\n    ' get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close' +\n    ' gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum' +\n    ' gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import' +\n    ' graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery' +\n    ' graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph' +\n    ' grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path' +\n    ' hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite' +\n    ' hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description' +\n    ' hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph' +\n    ' icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy' +\n    ' ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart' +\n    ' imetric implicit implicit_derivative implicit_plot indexed_tensor indices' +\n    ' induced_subgraph inferencep inference_result infix info_display init_atensor' +\n    ' init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions' +\n    ' integrate intersect intersection intervalp intopois intosum invariant1 invariant2' +\n    ' inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc' +\n    ' inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns' +\n    ' inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint' +\n    ' invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph' +\n    ' is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate' +\n    ' isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph' +\n    ' items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc' +\n    ' jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd' +\n    ' jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill' +\n    ' killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis' +\n    ' kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform' +\n    ' kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete' +\n    ' kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace' +\n    ' kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2' +\n    ' kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson' +\n    ' kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange' +\n    ' laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp' +\n    ' lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length' +\n    ' let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit' +\n    ' Lindstedt linear linearinterpol linear_program linear_regression line_graph' +\n    ' linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials' +\n    ' listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry' +\n    ' log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst' +\n    ' lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact' +\n    ' lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub' +\n    ' lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma' +\n    ' make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country' +\n    ' make_polygon make_random_state make_rgb_picture makeset make_string_input_stream' +\n    ' make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom' +\n    ' maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display' +\n    ' mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker' +\n    ' max max_clique max_degree max_flow maximize_lp max_independent_set max_matching' +\n    ' maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform' +\n    ' mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete' +\n    ' mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic' +\n    ' mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t' +\n    ' mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull' +\n    ' median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree' +\n    ' min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor' +\n    ' minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton' +\n    ' mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions' +\n    ' multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff' +\n    ' multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary' +\n    ' natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext' +\n    ' newdet new_graph newline newton new_variable next_prime nicedummies niceindices' +\n    ' ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp' +\n    ' nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst' +\n    ' nthroot nullity nullspace num numbered_boundaries numberp number_to_octets' +\n    ' num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai' +\n    ' nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin' +\n    ' oid_to_octets op opena opena_binary openr openr_binary openw openw_binary' +\n    ' operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless' +\n    ' orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap' +\n    ' out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface' +\n    ' parg parGosper parse_string parse_timedate part part2cont partfrac partition' +\n    ' partition_set partpol path_digraph path_graph pathname_directory pathname_name' +\n    ' pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform' +\n    ' pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete' +\n    ' pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal' +\n    ' pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal' +\n    ' pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t' +\n    ' pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph' +\n    ' petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding' +\n    ' playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff' +\n    ' poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar' +\n    ' polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion' +\n    ' poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal' +\n    ' poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal' +\n    ' poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation' +\n    ' poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm' +\n    ' poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form' +\n    ' poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part' +\n    ' poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension' +\n    ' poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod' +\n    ' powerseries powerset prefix prev_prime primep primes principal_components' +\n    ' print printf printfile print_graph printpois printprops prodrac product properties' +\n    ' propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct' +\n    ' puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp' +\n    ' quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile' +\n    ' quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2' +\n    ' quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f' +\n    ' quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel' +\n    ' quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal' +\n    ' quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t' +\n    ' quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t' +\n    ' quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan' +\n    ' radius random random_bernoulli random_beta random_binomial random_bipartite_graph' +\n    ' random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform' +\n    ' random_exp random_f random_gamma random_general_finite_discrete random_geometric' +\n    ' random_graph random_graph1 random_gumbel random_hypergeometric random_laplace' +\n    ' random_logistic random_lognormal random_negative_binomial random_network' +\n    ' random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto' +\n    ' random_permutation random_poisson random_rayleigh random_regular_graph random_student_t' +\n    ' random_tournament random_tree random_weibull range rank rat ratcoef ratdenom' +\n    ' ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump' +\n    ' ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array' +\n    ' read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline' +\n    ' read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate' +\n    ' realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar' +\n    ' rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus' +\n    ' rem remainder remarray rembox remcomps remcon remcoord remfun remfunction' +\n    ' remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions' +\n    ' remove_fundamental_units remove_plot_option remove_vertex rempart remrule' +\n    ' remsym remvalue rename rename_file reset reset_displays residue resolvante' +\n    ' resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein' +\n    ' resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer' +\n    ' rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann' +\n    ' rinvariant risch rk rmdir rncombine romberg room rootscontract round row' +\n    ' rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i' +\n    ' scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description' +\n    ' scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second' +\n    ' sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight' +\n    ' setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state' +\n    ' set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications' +\n    ' set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path' +\n    ' show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform' +\n    ' simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert' +\n    ' sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial' +\n    ' skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp' +\n    ' skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric' +\n    ' skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic' +\n    ' skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t' +\n    ' skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t' +\n    ' skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph' +\n    ' smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve' +\n    ' solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export' +\n    ' sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1' +\n    ' spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition' +\n    ' sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus' +\n    ' ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot' +\n    ' starplot_description status std std1 std_bernoulli std_beta std_binomial' +\n    ' std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma' +\n    ' std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace' +\n    ' std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t' +\n    ' std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull' +\n    ' stemplot stirling stirling1 stirling2 strim striml strimr string stringout' +\n    ' stringp strong_components struve_h struve_l sublis sublist sublist_indices' +\n    ' submatrix subsample subset subsetp subst substinpart subst_parallel substpart' +\n    ' substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext' +\n    ' symbolp symmdifference symmetricp system take_channel take_inference tan' +\n    ' tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract' +\n    ' tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference' +\n    ' test_normality test_proportion test_proportions_difference test_rank_sum' +\n    ' test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display' +\n    ' texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter' +\n    ' toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep' +\n    ' totalfourier totient tpartpol trace tracematrix trace_options transform_sample' +\n    ' translate translate_file transpose treefale tree_reduce treillis treinat' +\n    ' triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate' +\n    ' truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph' +\n    ' truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget' +\n    ' ultraspherical underlying_graph undiff union unique uniteigenvectors unitp' +\n    ' units unit_step unitvector unorder unsum untellrat untimer' +\n    ' untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli' +\n    ' var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform' +\n    ' var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel' +\n    ' var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial' +\n    ' var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson' +\n    ' var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp' +\n    ' verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance' +\n    ' vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle' +\n    ' vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j' +\n    ' wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian' +\n    ' xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta' +\n    ' zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors' +\n    ' zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table' +\n    ' absboxchar activecontexts adapt_depth additive adim aform algebraic' +\n    ' algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic' +\n    ' animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar' +\n    ' asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top' +\n    ' azimuth background background_color backsubst berlefact bernstein_explicit' +\n    ' besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest' +\n    ' border boundaries_array box boxchar breakup %c capping cauchysum cbrange' +\n    ' cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics' +\n    ' colorbox columns commutative complex cone context contexts contour contour_levels' +\n    ' cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp' +\n    ' cube current_let_rule_package cylinder data_file_name debugmode decreasing' +\n    ' default_let_rule_package delay dependencies derivabbrev derivsubst detout' +\n    ' diagmetric diff dim dimensions dispflag display2d|10 display_format_internal' +\n    ' distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor' +\n    ' doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules' +\n    ' dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart' +\n    ' edge_color edge_coloring edge_partition edge_type edge_width %edispflag' +\n    ' elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer' +\n    ' epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type' +\n    ' %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand' +\n    ' expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine' +\n    ' factlim factorflag factorial_expand factors_only fb feature features' +\n    ' file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10' +\n    ' file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color' +\n    ' fill_density filled_func fixed_vertices flipflag float2bf font font_size' +\n    ' fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim' +\n    ' gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command' +\n    ' gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command' +\n    ' gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command' +\n    ' gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble' +\n    ' gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args' +\n    ' Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both' +\n    ' head_length head_type height hypergeometric_representation %iargs ibase' +\n    ' icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form' +\n    ' ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval' +\n    ' infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued' +\n    ' integrate_use_rootsof integration_constant integration_constant_counter interpolate_color' +\n    ' intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr' +\n    ' julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment' +\n    ' label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max' +\n    ' leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear' +\n    ' linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params' +\n    ' linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname' +\n    ' loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx' +\n    ' logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros' +\n    ' mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult' +\n    ' matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10' +\n    ' maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint' +\n    ' maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp' +\n    ' mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver' +\n    ' modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag' +\n    ' newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc' +\n    ' noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np' +\n    ' npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties' +\n    ' opsubst optimprefix optionset orientation origin orthopoly_returns_intervals' +\n    ' outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution' +\n    ' %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart' +\n    ' png_file pochhammer_max_index points pointsize point_size points_joined point_type' +\n    ' poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm' +\n    ' poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list' +\n    ' poly_secondary_elimination_order poly_top_reduction_only posfun position' +\n    ' powerdisp pred prederror primep_number_of_tests product_use_gamma program' +\n    ' programmode promote_float_to_bigfloat prompt proportional_axes props psexpand' +\n    ' ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof' +\n    ' ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann' +\n    ' ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw' +\n    ' refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs' +\n    ' rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy' +\n    ' same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck' +\n    ' setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width' +\n    ' show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type' +\n    ' show_vertices show_weight simp simplified_output simplify_products simpproduct' +\n    ' simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn' +\n    ' solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag' +\n    ' stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda' +\n    ' subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric' +\n    ' tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials' +\n    ' tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch' +\n    ' tr track transcompile transform transform_xy translate_fast_arrays transparent' +\n    ' transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex' +\n    ' tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign' +\n    ' trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars' +\n    ' tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode' +\n    ' tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes' +\n    ' ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble' +\n    ' usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition' +\n    ' vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface' +\n    ' wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel' +\n    ' xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate' +\n    ' xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel' +\n    ' xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width' +\n    ' ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis' +\n    ' ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis' +\n    ' yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob' +\n    ' zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest';\n  const SYMBOLS = '_ __ %|0 %%|0';\n\n  return {\n    name: 'Maxima',\n    keywords: {\n      $pattern: '[A-Za-z_%][0-9A-Za-z_%]*',\n      keyword: KEYWORDS,\n      literal: LITERALS,\n      built_in: BUILTIN_FUNCTIONS,\n      symbol: SYMBOLS\n    },\n    contains: [\n      {\n        className: 'comment',\n        begin: '/\\\\*',\n        end: '\\\\*/',\n        contains: [ 'self' ]\n      },\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'number',\n        relevance: 0,\n        variants: [\n          {\n            // float number w/ exponent\n            // hmm, I wonder if we ought to include other exponent markers?\n            begin: '\\\\b(\\\\d+|\\\\d+\\\\.|\\\\.\\\\d+|\\\\d+\\\\.\\\\d+)[Ee][-+]?\\\\d+\\\\b'\n          },\n          {\n            // bigfloat number\n            begin: '\\\\b(\\\\d+|\\\\d+\\\\.|\\\\.\\\\d+|\\\\d+\\\\.\\\\d+)[Bb][-+]?\\\\d+\\\\b',\n            relevance: 10\n          },\n          {\n            // float number w/out exponent\n            // Doesn't seem to recognize floats which start with '.'\n            begin: '\\\\b(\\\\.\\\\d+|\\\\d+\\\\.\\\\d+)\\\\b'\n          },\n          {\n            // integer in base up to 36\n            // Doesn't seem to recognize integers which end with '.'\n            begin: '\\\\b(\\\\d+|0[0-9A-Za-z]+)\\\\.?\\\\b'\n          }\n        ]\n      }\n    ],\n    illegal: /@/\n  };\n}\n\nmodule.exports = maxima;\n","/*\nLanguage: MEL\nDescription: Maya Embedded Language\nAuthor: Shuen-Huei Guan \nWebsite: http://www.autodesk.com/products/autodesk-maya/overview\nCategory: graphics\n*/\n\nfunction mel(hljs) {\n  return {\n    name: 'MEL',\n    keywords:\n      'int float string vector matrix if else switch case default while do for in break ' +\n      'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +\n      'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +\n      'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +\n      'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +\n      'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +\n      'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +\n      'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +\n      'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +\n      'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +\n      'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +\n      'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +\n      'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +\n      'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +\n      'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +\n      'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +\n      'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +\n      'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +\n      'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +\n      'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +\n      'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +\n      'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +\n      'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +\n      'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +\n      'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +\n      'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +\n      'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +\n      'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +\n      'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +\n      'constrainValue constructionHistory container containsMultibyte contextInfo control ' +\n      'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +\n      'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +\n      'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +\n      'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +\n      'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +\n      'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +\n      'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +\n      'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +\n      'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +\n      'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +\n      'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +\n      'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +\n      'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +\n      'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +\n      'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +\n      'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +\n      'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +\n      'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +\n      'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +\n      'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +\n      'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +\n      'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +\n      'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +\n      'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +\n      'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +\n      'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +\n      'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +\n      'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +\n      'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +\n      'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +\n      'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +\n      'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +\n      'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +\n      'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +\n      'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +\n      'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +\n      'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +\n      'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +\n      'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +\n      'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +\n      'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +\n      'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +\n      'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +\n      'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +\n      'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +\n      'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +\n      'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +\n      'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +\n      'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +\n      'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +\n      'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +\n      'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +\n      'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +\n      'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +\n      'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +\n      'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +\n      'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +\n      'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +\n      'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +\n      'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +\n      'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +\n      'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +\n      'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +\n      'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +\n      'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +\n      'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +\n      'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +\n      'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +\n      'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +\n      'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +\n      'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +\n      'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +\n      'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +\n      'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +\n      'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +\n      'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +\n      'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +\n      'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +\n      'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +\n      'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +\n      'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +\n      'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +\n      'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +\n      'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +\n      'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +\n      'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +\n      'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +\n      'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +\n      'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +\n      'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +\n      'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +\n      'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +\n      'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +\n      'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +\n      'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +\n      'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +\n      'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +\n      'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +\n      'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +\n      'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +\n      'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +\n      'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +\n      'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +\n      'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +\n      'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +\n      'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +\n      'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +\n      'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +\n      'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +\n      'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +\n      'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +\n      'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +\n      'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +\n      'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +\n      'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +\n      'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +\n      'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +\n      'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +\n      'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +\n      'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +\n      'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +\n      'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +\n      'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +\n      'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +\n      'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +\n      'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +\n      'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +\n      'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +\n      'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +\n      'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +\n      'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +\n      'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +\n      'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +\n      'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +\n      'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +\n      'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +\n      'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +\n      'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +\n      'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +\n      'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +\n      'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +\n      'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +\n      'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +\n      'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +\n      'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +\n      'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +\n      'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +\n      'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +\n      'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +\n      'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +\n      'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +\n      'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +\n      'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +\n      'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +\n      'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +\n      'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +\n      'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +\n      'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +\n      'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +\n      'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +\n      'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +\n      'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +\n      'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +\n      'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +\n      'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +\n      'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +\n      'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +\n      'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +\n      'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +\n      'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +\n      'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +\n      'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +\n      'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',\n    illegal: '\nDescription: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.\nWebsite: https://www.mercurylang.org\n*/\n\nfunction mercury(hljs) {\n  const KEYWORDS = {\n    keyword:\n      'module use_module import_module include_module end_module initialise ' +\n      'mutable initialize finalize finalise interface implementation pred ' +\n      'mode func type inst solver any_pred any_func is semidet det nondet ' +\n      'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +\n      'pragma promise external trace atomic or_else require_complete_switch ' +\n      'require_det require_semidet require_multi require_nondet ' +\n      'require_cc_multi require_cc_nondet require_erroneous require_failure',\n    meta:\n      // pragma\n      'inline no_inline type_spec source_file fact_table obsolete memo ' +\n      'loop_check minimal_model terminates does_not_terminate ' +\n      'check_termination promise_equivalent_clauses ' +\n      // preprocessor\n      'foreign_proc foreign_decl foreign_code foreign_type ' +\n      'foreign_import_module foreign_export_enum foreign_export ' +\n      'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +\n      'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +\n      'tabled_for_io local untrailed trailed attach_to_io_state ' +\n      'can_pass_as_mercury_type stable will_not_throw_exception ' +\n      'may_modify_trail will_not_modify_trail may_duplicate ' +\n      'may_not_duplicate affects_liveness does_not_affect_liveness ' +\n      'doesnt_affect_liveness no_sharing unknown_sharing sharing',\n    built_in:\n      'some all not if then else true fail false try catch catch_any ' +\n      'semidet_true semidet_false semidet_fail impure_true impure semipure'\n  };\n\n  const COMMENT = hljs.COMMENT('%', '$');\n\n  const NUMCODE = {\n    className: 'number',\n    begin: \"0'.\\\\|0[box][0-9a-fA-F]*\"\n  };\n\n  const ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {\n    relevance: 0\n  });\n  const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    relevance: 0\n  });\n  const STRING_FMT = {\n    className: 'subst',\n    begin: '\\\\\\\\[abfnrtv]\\\\|\\\\\\\\x[0-9a-fA-F]*\\\\\\\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',\n    relevance: 0\n  };\n  STRING.contains = STRING.contains.slice(); // we need our own copy of contains\n  STRING.contains.push(STRING_FMT);\n\n  const IMPLICATION = {\n    className: 'built_in',\n    variants: [\n      {\n        begin: '<=>'\n      },\n      {\n        begin: '<=',\n        relevance: 0\n      },\n      {\n        begin: '=>',\n        relevance: 0\n      },\n      {\n        begin: '/\\\\\\\\'\n      },\n      {\n        begin: '\\\\\\\\/'\n      }\n    ]\n  };\n\n  const HEAD_BODY_CONJUNCTION = {\n    className: 'built_in',\n    variants: [\n      {\n        begin: ':-\\\\|-->'\n      },\n      {\n        begin: '=',\n        relevance: 0\n      }\n    ]\n  };\n\n  return {\n    name: 'Mercury',\n    aliases: [\n      'm',\n      'moo'\n    ],\n    keywords: KEYWORDS,\n    contains: [\n      IMPLICATION,\n      HEAD_BODY_CONJUNCTION,\n      COMMENT,\n      hljs.C_BLOCK_COMMENT_MODE,\n      NUMCODE,\n      hljs.NUMBER_MODE,\n      ATOM,\n      STRING,\n      { // relevance booster\n        begin: /:-/\n      },\n      { // relevance booster\n        begin: /\\.$/\n      }\n    ]\n  };\n}\n\nmodule.exports = mercury;\n","/*\nLanguage: MIPS Assembly\nAuthor: Nebuleon Fumika \nDescription: MIPS Assembly (up to MIPS32R2)\nWebsite: https://en.wikipedia.org/wiki/MIPS_architecture\nCategory: assembler\n*/\n\nfunction mipsasm(hljs) {\n  // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n  return {\n    name: 'MIPS Assembly',\n    case_insensitive: true,\n    aliases: [ 'mips' ],\n    keywords: {\n      $pattern: '\\\\.?' + hljs.IDENT_RE,\n      meta:\n        // GNU preprocs\n        '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ',\n      built_in:\n        '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers\n        '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers\n        'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases\n        't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases\n        'k0 k1 gp sp fp ra ' + // integer register aliases\n        '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers\n        '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers\n        'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers\n        'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers\n        'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers\n        'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers\n    },\n    contains: [\n      {\n        className: 'keyword',\n        begin: '\\\\b(' + // mnemonics\n            // 32-bit integer instructions\n            'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +\n            'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\\\.hb)?|jr(\\\\.hb)?|lbu?|lhu?|' +\n            'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|' +\n            'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +\n            'srlv?|subu?|sw[lr]?|xori?|wsbh|' +\n            // floating-point instructions\n            'abs\\\\.[sd]|add\\\\.[sd]|alnv.ps|bc1[ft]l?|' +\n            'c\\\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\\\.[sd]|' +\n            '(ceil|floor|round|trunc)\\\\.[lw]\\\\.[sd]|cfc1|cvt\\\\.d\\\\.[lsw]|' +\n            'cvt\\\\.l\\\\.[dsw]|cvt\\\\.ps\\\\.s|cvt\\\\.s\\\\.[dlw]|cvt\\\\.s\\\\.p[lu]|cvt\\\\.w\\\\.[dls]|' +\n            'div\\\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\\\.[sd]|mfc1|mov[fntz]?\\\\.[ds]|' +\n            'msub\\\\.[sd]|mth?c1|mul\\\\.[ds]|neg\\\\.[ds]|nmadd\\\\.[ds]|nmsub\\\\.[ds]|' +\n            'p[lu][lu]\\\\.ps|recip\\\\.fmt|r?sqrt\\\\.[ds]|sdx?c1|sub\\\\.[ds]|suxc1|' +\n            'swx?c1|' +\n            // system control instructions\n            'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +\n            'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +\n            'tlti?u?|tnei?|wait|wrpgpr' +\n        ')',\n        end: '\\\\s'\n      },\n      // lines ending with ; or # aren't really comments, probably auto-detect fail\n      hljs.COMMENT('[;#](?!\\\\s*$)', '$'),\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        begin: '\\'',\n        end: '[^\\\\\\\\]\\'',\n        relevance: 0\n      },\n      {\n        className: 'title',\n        begin: '\\\\|',\n        end: '\\\\|',\n        illegal: '\\\\n',\n        relevance: 0\n      },\n      {\n        className: 'number',\n        variants: [\n          { // hex\n            begin: '0x[0-9a-f]+'\n          },\n          { // bare number\n            begin: '\\\\b-?\\\\d+'\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'symbol',\n        variants: [\n          { // GNU MIPS syntax\n            begin: '^\\\\s*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:'\n          },\n          { // numbered local labels\n            begin: '^\\\\s*[0-9]+:'\n          },\n          { // number local label reference (backwards, forwards)\n            begin: '[0-9]+[bf]'\n          }\n        ],\n        relevance: 0\n      }\n    ],\n    // forward slashes are not allowed\n    illegal: /\\//\n  };\n}\n\nmodule.exports = mipsasm;\n","/*\nLanguage: Mizar\nDescription: The Mizar Language is a formal language derived from the mathematical vernacular.\nAuthor: Kelley van Evert \nWebsite: http://mizar.org/language/\nCategory: scientific\n*/\n\nfunction mizar(hljs) {\n  return {\n    name: 'Mizar',\n    keywords:\n      'environ vocabularies notations constructors definitions ' +\n      'registrations theorems schemes requirements begin end definition ' +\n      'registration cluster existence pred func defpred deffunc theorem ' +\n      'proof let take assume then thus hence ex for st holds consider ' +\n      'reconsider such that and in provided of as from be being by means ' +\n      'equals implies iff redefine define now not or attr is mode ' +\n      'suppose per cases set thesis contradiction scheme reserve struct ' +\n      'correctness compatibility coherence symmetry assymetry ' +\n      'reflexivity irreflexivity connectedness uniqueness commutativity ' +\n      'idempotence involutiveness projectivity',\n    contains: [\n      hljs.COMMENT('::', '$')\n    ]\n  };\n}\n\nmodule.exports = mizar;\n","/*\nLanguage: Mojolicious\nRequires: xml.js, perl.js\nAuthor: Dotan Dimet \nDescription: Mojolicious .ep (Embedded Perl) templates\nWebsite: https://mojolicious.org\nCategory: template\n*/\nfunction mojolicious(hljs) {\n  return {\n    name: 'Mojolicious',\n    subLanguage: 'xml',\n    contains: [\n      {\n        className: 'meta',\n        begin: '^__(END|DATA)__$'\n      },\n      // mojolicious line\n      {\n        begin: \"^\\\\s*%{1,2}={0,2}\",\n        end: '$',\n        subLanguage: 'perl'\n      },\n      // mojolicious block\n      {\n        begin: \"<%{1,2}={0,2}\",\n        end: \"={0,1}%>\",\n        subLanguage: 'perl',\n        excludeBegin: true,\n        excludeEnd: true\n      }\n    ]\n  };\n}\n\nmodule.exports = mojolicious;\n","/*\nLanguage: Monkey\nDescription: Monkey2 is an easy to use, cross platform, games oriented programming language from Blitz Research.\nAuthor: Arthur Bikmullin \nWebsite: https://blitzresearch.itch.io/monkey2\n*/\n\nfunction monkey(hljs) {\n  const NUMBER = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      {\n        begin: '[$][a-fA-F0-9]+'\n      },\n      hljs.NUMBER_MODE\n    ]\n  };\n\n  return {\n    name: 'Monkey',\n    case_insensitive: true,\n    keywords: {\n      keyword: 'public private property continue exit extern new try catch ' +\n        'eachin not abstract final select case default const local global field ' +\n        'end if then else elseif endif while wend repeat until forever for ' +\n        'to step next return module inline throw import',\n\n      built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +\n        'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',\n\n      literal: 'true false null and or shl shr mod'\n    },\n    illegal: /\\/\\*/,\n    contains: [\n      hljs.COMMENT('#rem', '#end'),\n      hljs.COMMENT(\n        \"'\",\n        '$',\n        {\n          relevance: 0\n        }\n      ),\n      {\n        className: 'function',\n        beginKeywords: 'function method',\n        end: '[(=:]|$',\n        illegal: /\\n/,\n        contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class interface',\n        end: '$',\n        contains: [\n          {\n            beginKeywords: 'extends implements'\n          },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        className: 'built_in',\n        begin: '\\\\b(self|super)\\\\b'\n      },\n      {\n        className: 'meta',\n        begin: '\\\\s*#',\n        end: '$',\n        keywords: {\n          'meta-keyword': 'if else elseif endif end then'\n        }\n      },\n      {\n        className: 'meta',\n        begin: '^\\\\s*strict\\\\b'\n      },\n      {\n        beginKeywords: 'alias',\n        end: '=',\n        contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n      },\n      hljs.QUOTE_STRING_MODE,\n      NUMBER\n    ]\n  };\n}\n\nmodule.exports = monkey;\n","/*\nLanguage: MoonScript\nAuthor: Billy Quith \nDescription: MoonScript is a programming language that transcompiles to Lua.\nOrigin: coffeescript.js\nWebsite: http://moonscript.org/\nCategory: scripting\n*/\n\nfunction moonscript(hljs) {\n  const KEYWORDS = {\n    keyword:\n      // Moonscript keywords\n      'if then not for in while do return else elseif break continue switch and or ' +\n      'unless when class extends super local import export from using',\n    literal:\n      'true false nil',\n    built_in:\n      '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +\n      'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +\n      'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +\n      'io math os package string table'\n  };\n  const JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\n  const SUBST = {\n    className: 'subst',\n    begin: /#\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS\n  };\n  const EXPRESSIONS = [\n    hljs.inherit(hljs.C_NUMBER_MODE,\n      {\n        starts: {\n          end: '(\\\\s*/)?',\n          relevance: 0\n        }\n      }), // a number tries to eat the following slash to prevent treating it as a regexp\n    {\n      className: 'string',\n      variants: [\n        {\n          begin: /'/,\n          end: /'/,\n          contains: [ hljs.BACKSLASH_ESCAPE ]\n        },\n        {\n          begin: /\"/,\n          end: /\"/,\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST\n          ]\n        }\n      ]\n    },\n    {\n      className: 'built_in',\n      begin: '@__' + hljs.IDENT_RE\n    },\n    {\n      begin: '@' + hljs.IDENT_RE // relevance booster on par with CoffeeScript\n    },\n    {\n      begin: hljs.IDENT_RE + '\\\\\\\\' + hljs.IDENT_RE // inst\\method\n    }\n  ];\n  SUBST.contains = EXPRESSIONS;\n\n  const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n    begin: JS_IDENT_RE\n  });\n  const POSSIBLE_PARAMS_RE = '(\\\\(.*\\\\)\\\\s*)?\\\\B[-=]>';\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\([^\\\\(]',\n    returnBegin: true,\n    /* We need another contained nameless mode to not have every nested\n    pair of parens to be called \"params\" */\n    contains: [\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: KEYWORDS,\n        contains: [ 'self' ].concat(EXPRESSIONS)\n      }\n    ]\n  };\n\n  return {\n    name: 'MoonScript',\n    aliases: [ 'moon' ],\n    keywords: KEYWORDS,\n    illegal: /\\/\\*/,\n    contains: EXPRESSIONS.concat([\n      hljs.COMMENT('--', '$'),\n      {\n        className: 'function', // function: -> =>\n        begin: '^\\\\s*' + JS_IDENT_RE + '\\\\s*=\\\\s*' + POSSIBLE_PARAMS_RE,\n        end: '[-=]>',\n        returnBegin: true,\n        contains: [\n          TITLE,\n          PARAMS\n        ]\n      },\n      {\n        begin: /[\\(,:=]\\s*/, // anonymous function start\n        relevance: 0,\n        contains: [\n          {\n            className: 'function',\n            begin: POSSIBLE_PARAMS_RE,\n            end: '[-=]>',\n            returnBegin: true,\n            contains: [ PARAMS ]\n          }\n        ]\n      },\n      {\n        className: 'class',\n        beginKeywords: 'class',\n        end: '$',\n        illegal: /[:=\"\\[\\]]/,\n        contains: [\n          {\n            beginKeywords: 'extends',\n            endsWithParent: true,\n            illegal: /[:=\"\\[\\]]/,\n            contains: [ TITLE ]\n          },\n          TITLE\n        ]\n      },\n      {\n        className: 'name', // table\n        begin: JS_IDENT_RE + ':',\n        end: ':',\n        returnBegin: true,\n        returnEnd: true,\n        relevance: 0\n      }\n    ])\n  };\n}\n\nmodule.exports = moonscript;\n","/*\n Language: N1QL\n Author: Andres Täht \n Contributors: Rene Saarsoo \n Description: Couchbase query language\n Website: https://www.couchbase.com/products/n1ql\n */\n\nfunction n1ql(hljs) {\n  return {\n    name: 'N1QL',\n    case_insensitive: true,\n    contains: [\n      {\n        beginKeywords:\n          'build create index delete drop explain infer|10 insert merge prepare select update upsert|10',\n        end: /;/, endsWithParent: true,\n        keywords: {\n          // Taken from http://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/reservedwords.html\n          keyword:\n            'all alter analyze and any array as asc begin between binary boolean break bucket build by call ' +\n            'case cast cluster collate collection commit connect continue correlate cover create database ' +\n            'dataset datastore declare decrement delete derived desc describe distinct do drop each element ' +\n            'else end every except exclude execute exists explain fetch first flatten for force from ' +\n            'function grant group gsi having if ignore ilike in include increment index infer inline inner ' +\n            'insert intersect into is join key keys keyspace known last left let letting like limit lsm map ' +\n            'mapping matched materialized merge minus namespace nest not number object offset on ' +\n            'option or order outer over parse partition password path pool prepare primary private privilege ' +\n            'procedure public raw realm reduce rename return returning revoke right role rollback satisfies ' +\n            'schema select self semi set show some start statistics string system then to transaction trigger ' +\n            'truncate under union unique unknown unnest unset update upsert use user using validate value ' +\n            'valued values via view when where while with within work xor',\n          // Taken from http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/literals.html\n          literal:\n            'true false null missing|5',\n          // Taken from http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/functions.html\n          built_in:\n            'array_agg array_append array_concat array_contains array_count array_distinct array_ifnull array_length ' +\n            'array_max array_min array_position array_prepend array_put array_range array_remove array_repeat array_replace ' +\n            'array_reverse array_sort array_sum avg count max min sum greatest least ifmissing ifmissingornull ifnull ' +\n            'missingif nullif ifinf ifnan ifnanorinf naninf neginfif posinfif clock_millis clock_str date_add_millis ' +\n            'date_add_str date_diff_millis date_diff_str date_part_millis date_part_str date_trunc_millis date_trunc_str ' +\n            'duration_to_str millis str_to_millis millis_to_str millis_to_utc millis_to_zone_name now_millis now_str ' +\n            'str_to_duration str_to_utc str_to_zone_name decode_json encode_json encoded_size poly_length base64 base64_encode ' +\n            'base64_decode meta uuid abs acos asin atan atan2 ceil cos degrees e exp ln log floor pi power radians random ' +\n            'round sign sin sqrt tan trunc object_length object_names object_pairs object_inner_pairs object_values ' +\n            'object_inner_values object_add object_put object_remove object_unwrap regexp_contains regexp_like regexp_position ' +\n            'regexp_replace contains initcap length lower ltrim position repeat replace rtrim split substr title trim upper ' +\n            'isarray isatom isboolean isnumber isobject isstring type toarray toatom toboolean tonumber toobject tostring'\n        },\n        contains: [\n          {\n            className: 'string',\n            begin: '\\'', end: '\\'',\n            contains: [hljs.BACKSLASH_ESCAPE]\n          },\n          {\n            className: 'string',\n            begin: '\"', end: '\"',\n            contains: [hljs.BACKSLASH_ESCAPE]\n          },\n          {\n            className: 'symbol',\n            begin: '`', end: '`',\n            contains: [hljs.BACKSLASH_ESCAPE],\n            relevance: 2\n          },\n          hljs.C_NUMBER_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = n1ql;\n","/*\nLanguage: Nginx config\nAuthor: Peter Leonov \nContributors: Ivan Sagalaev \nCategory: common, config\nWebsite: https://www.nginx.com\n*/\n\nfunction nginx(hljs) {\n  const VAR = {\n    className: 'variable',\n    variants: [\n      {\n        begin: /\\$\\d+/\n      },\n      {\n        begin: /\\$\\{/,\n        end: /\\}/\n      },\n      {\n        begin: /[$@]/ + hljs.UNDERSCORE_IDENT_RE\n      }\n    ]\n  };\n  const DEFAULT = {\n    endsWithParent: true,\n    keywords: {\n      $pattern: '[a-z/_]+',\n      literal:\n        'on off yes no true false none blocked debug info notice warn error crit ' +\n        'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'\n    },\n    relevance: 0,\n    illegal: '=>',\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      {\n        className: 'string',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          VAR\n        ],\n        variants: [\n          {\n            begin: /\"/,\n            end: /\"/\n          },\n          {\n            begin: /'/,\n            end: /'/\n          }\n        ]\n      },\n      // this swallows entire URLs to avoid detecting numbers within\n      {\n        begin: '([a-z]+):/',\n        end: '\\\\s',\n        endsWithParent: true,\n        excludeEnd: true,\n        contains: [ VAR ]\n      },\n      {\n        className: 'regexp',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          VAR\n        ],\n        variants: [\n          {\n            begin: \"\\\\s\\\\^\",\n            end: \"\\\\s|\\\\{|;\",\n            returnEnd: true\n          },\n          // regexp locations (~, ~*)\n          {\n            begin: \"~\\\\*?\\\\s+\",\n            end: \"\\\\s|\\\\{|;\",\n            returnEnd: true\n          },\n          // *.example.com\n          {\n            begin: \"\\\\*(\\\\.[a-z\\\\-]+)+\"\n          },\n          // sub.example.*\n          {\n            begin: \"([a-z\\\\-]+\\\\.)+\\\\*\"\n          }\n        ]\n      },\n      // IP\n      {\n        className: 'number',\n        begin: '\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b'\n      },\n      // units\n      {\n        className: 'number',\n        begin: '\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b',\n        relevance: 0\n      },\n      VAR\n    ]\n  };\n\n  return {\n    name: 'Nginx config',\n    aliases: [ 'nginxconf' ],\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      {\n        begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s+\\\\{',\n        returnBegin: true,\n        end: /\\{/,\n        contains: [\n          {\n            className: 'section',\n            begin: hljs.UNDERSCORE_IDENT_RE\n          }\n        ],\n        relevance: 0\n      },\n      {\n        begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s',\n        end: ';|\\\\{',\n        returnBegin: true,\n        contains: [\n          {\n            className: 'attribute',\n            begin: hljs.UNDERSCORE_IDENT_RE,\n            starts: DEFAULT\n          }\n        ],\n        relevance: 0\n      }\n    ],\n    illegal: '[^\\\\s\\\\}]'\n  };\n}\n\nmodule.exports = nginx;\n","/*\nLanguage: Nim\nDescription: Nim is a statically typed compiled systems programming language.\nWebsite: https://nim-lang.org\nCategory: system\n*/\n\nfunction nim(hljs) {\n  return {\n    name: 'Nim',\n    keywords: {\n      keyword:\n        'addr and as asm bind block break case cast const continue converter ' +\n        'discard distinct div do elif else end enum except export finally ' +\n        'for from func generic if import in include interface is isnot iterator ' +\n        'let macro method mixin mod nil not notin object of or out proc ptr ' +\n        'raise ref return shl shr static template try tuple type using var ' +\n        'when while with without xor yield',\n      literal:\n        'shared guarded stdin stdout stderr result true false',\n      built_in:\n        'int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float ' +\n        'float32 float64 bool char string cstring pointer expr stmt void ' +\n        'auto any range array openarray varargs seq set clong culong cchar ' +\n        'cschar cshort cint csize clonglong cfloat cdouble clongdouble ' +\n        'cuchar cushort cuint culonglong cstringarray semistatic'\n    },\n    contains: [\n      {\n        className: 'meta', // Actually pragma\n        begin: /\\{\\./,\n        end: /\\.\\}/,\n        relevance: 10\n      },\n      {\n        className: 'string',\n        begin: /[a-zA-Z]\\w*\"/,\n        end: /\"/,\n        contains: [\n          {\n            begin: /\"\"/\n          }\n        ]\n      },\n      {\n        className: 'string',\n        begin: /([a-zA-Z]\\w*)?\"\"\"/,\n        end: /\"\"\"/\n      },\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'type',\n        begin: /\\b[A-Z]\\w+\\b/,\n        relevance: 0\n      },\n      {\n        className: 'number',\n        relevance: 0,\n        variants: [\n          {\n            begin: /\\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/\n          },\n          {\n            begin: /\\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/\n          },\n          {\n            begin: /\\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/\n          },\n          {\n            begin: /\\b(\\d[_\\d]*)('?[iIuUfF](8|16|32|64))?/\n          }\n        ]\n      },\n      hljs.HASH_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = nim;\n","/*\nLanguage: Nix\nAuthor: Domen Kožar \nDescription: Nix functional language\nWebsite: http://nixos.org/nix\n*/\n\nfunction nix(hljs) {\n  const NIX_KEYWORDS = {\n    keyword:\n      'rec with let in inherit assert if else then',\n    literal:\n      'true false or and null',\n    built_in:\n      'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +\n      'toString derivation'\n  };\n  const ANTIQUOTE = {\n    className: 'subst',\n    begin: /\\$\\{/,\n    end: /\\}/,\n    keywords: NIX_KEYWORDS\n  };\n  const ATTRS = {\n    begin: /[a-zA-Z0-9-_]+(\\s*=)/,\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      {\n        className: 'attr',\n        begin: /\\S+/\n      }\n    ]\n  };\n  const STRING = {\n    className: 'string',\n    contains: [ ANTIQUOTE ],\n    variants: [\n      {\n        begin: \"''\",\n        end: \"''\"\n      },\n      {\n        begin: '\"',\n        end: '\"'\n      }\n    ]\n  };\n  const EXPRESSIONS = [\n    hljs.NUMBER_MODE,\n    hljs.HASH_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    STRING,\n    ATTRS\n  ];\n  ANTIQUOTE.contains = EXPRESSIONS;\n  return {\n    name: 'Nix',\n    aliases: [ \"nixos\" ],\n    keywords: NIX_KEYWORDS,\n    contains: EXPRESSIONS\n  };\n}\n\nmodule.exports = nix;\n","/*\nLanguage: Node REPL\nRequires: javascript.js\nAuthor: Marat Nagayev \nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction nodeRepl(hljs) {\n  return {\n    name: 'Node REPL',\n    contains: [\n      {\n        className: 'meta',\n        starts: {\n          // a space separates the REPL prefix from the actual code\n          // this is purely for cleaner HTML output\n          end: / |$/,\n          starts: {\n            end: '$',\n            subLanguage: 'javascript'\n          }\n        },\n        variants: [\n          {\n            begin: /^>(?=[ ]|$)/\n          },\n          {\n            begin: /^\\.\\.\\.(?=[ ]|$)/\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = nodeRepl;\n","/*\nLanguage: NSIS\nDescription: Nullsoft Scriptable Install System\nAuthor: Jan T. Sott \nWebsite: https://nsis.sourceforge.io/Main_Page\n*/\n\nfunction nsis(hljs) {\n  const CONSTANTS = {\n    className: 'variable',\n    begin: /\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/\n  };\n\n  const DEFINES = {\n    // ${defines}\n    className: 'variable',\n    begin: /\\$+\\{[\\w.:-]+\\}/\n  };\n\n  const VARIABLES = {\n    // $variables\n    className: 'variable',\n    begin: /\\$+\\w+/,\n    illegal: /\\(\\)\\{\\}/\n  };\n\n  const LANGUAGES = {\n    // $(language_strings)\n    className: 'variable',\n    begin: /\\$+\\([\\w^.:-]+\\)/\n  };\n\n  const PARAMETERS = {\n    // command parameters\n    className: 'params',\n    begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)'\n  };\n\n  const COMPILER = {\n    // !compiler_flags\n    className: 'keyword',\n    begin: /!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/\n  };\n\n  const METACHARS = {\n    // $\\n, $\\r, $\\t, $$\n    className: 'meta',\n    begin: /\\$(\\\\[nrt]|\\$)/\n  };\n\n  const PLUGINS = {\n    // plug::ins\n    className: 'class',\n    begin: /\\w+::\\w+/\n  };\n\n  const STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: '\"',\n        end: '\"'\n      },\n      {\n        begin: '\\'',\n        end: '\\''\n      },\n      {\n        begin: '`',\n        end: '`'\n      }\n    ],\n    illegal: /\\n/,\n    contains: [\n      METACHARS,\n      CONSTANTS,\n      DEFINES,\n      VARIABLES,\n      LANGUAGES\n    ]\n  };\n\n  return {\n    name: 'NSIS',\n    case_insensitive: false,\n    keywords: {\n      keyword:\n      'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecShellWait ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileWriteUTF16LE FileSeek FileWrite FileWriteByte FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetKnownFolderPath GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfRtlLanguage IfShellVarContextAll IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText Int64Cmp Int64CmpU Int64Fmt IntCmp IntCmpU IntFmt IntOp IntPtrCmp IntPtrCmpU IntPtrOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadAndSetImage LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestLongPathAware ManifestMaxVersionTested ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PEAddResource PEDllCharacteristics PERemoveResource PESubsysVer Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegMultiStr WriteRegNone WriteRegStr WriteUninstaller XPStyle',\n      literal:\n      'admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib'\n    },\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.COMMENT(\n        ';',\n        '$',\n        {\n          relevance: 0\n        }\n      ),\n      {\n        className: 'function',\n        beginKeywords: 'Function PageEx Section SectionGroup',\n        end: '$'\n      },\n      STRING,\n      COMPILER,\n      DEFINES,\n      VARIABLES,\n      LANGUAGES,\n      PARAMETERS,\n      PLUGINS,\n      hljs.NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = nsis;\n","/*\nLanguage: Objective-C\nAuthor: Valerii Hiora \nContributors: Angel G. Olloqui , Matt Diephouse , Andrew Farmer , Minh Nguyễn \nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n  const API_CLASS = {\n    className: 'built_in',\n    begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n  };\n  const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n  const OBJC_KEYWORDS = {\n    $pattern: IDENTIFIER_RE,\n    keyword:\n      'int float while char export sizeof typedef const struct for union ' +\n      'unsigned long volatile static bool mutable if do return goto void ' +\n      'enum else break extern asm case short default double register explicit ' +\n      'signed typename this switch continue wchar_t inline readonly assign ' +\n      'readwrite self @synchronized id typeof ' +\n      'nonatomic super unichar IBOutlet IBAction strong weak copy ' +\n      'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +\n      '@private @protected @public @try @property @end @throw @catch @finally ' +\n      '@autoreleasepool @synthesize @dynamic @selector @optional @required ' +\n      '@encode @package @import @defs @compatibility_alias ' +\n      '__bridge __bridge_transfer __bridge_retained __bridge_retain ' +\n      '__covariant __contravariant __kindof ' +\n      '_Nonnull _Nullable _Null_unspecified ' +\n      '__FUNCTION__ __PRETTY_FUNCTION__ __attribute__ ' +\n      'getter setter retain unsafe_unretained ' +\n      'nonnull nullable null_unspecified null_resettable class instancetype ' +\n      'NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER ' +\n      'NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED ' +\n      'NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE ' +\n      'NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END ' +\n      'NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW ' +\n      'NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN',\n    literal:\n      'false true FALSE TRUE nil YES NO NULL',\n    built_in:\n      'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'\n  };\n  const CLASS_KEYWORDS = {\n    $pattern: IDENTIFIER_RE,\n    keyword: '@interface @class @protocol @implementation'\n  };\n  return {\n    name: 'Objective-C',\n    aliases: [\n      'mm',\n      'objc',\n      'obj-c',\n      'obj-c++',\n      'objective-c++'\n    ],\n    keywords: OBJC_KEYWORDS,\n    illegal: '/,\n            end: /$/,\n            illegal: '\\\\n'\n          },\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      {\n        className: 'class',\n        begin: '(' + CLASS_KEYWORDS.keyword.split(' ').join('|') + ')\\\\b',\n        end: /(\\{|$)/,\n        excludeEnd: true,\n        keywords: CLASS_KEYWORDS,\n        contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n      },\n      {\n        begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = objectivec;\n","/*\nLanguage: OCaml\nAuthor: Mehdi Dogguy \nContributors: Nicolas Braud-Santoni , Mickael Delahaye \nDescription: OCaml language definition.\nWebsite: https://ocaml.org\nCategory: functional\n*/\n\nfunction ocaml(hljs) {\n  /* missing support for heredoc-like string (OCaml 4.0.2+) */\n  return {\n    name: 'OCaml',\n    aliases: ['ml'],\n    keywords: {\n      $pattern: '[a-z_]\\\\w*!?',\n      keyword:\n        'and as assert asr begin class constraint do done downto else end ' +\n        'exception external for fun function functor if in include ' +\n        'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +\n        'mod module mutable new object of open! open or private rec sig struct ' +\n        'then to try type val! val virtual when while with ' +\n        /* camlp4 */\n        'parser value',\n      built_in:\n        /* built-in types */\n        'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +\n        /* (some) types in Pervasives */\n        'in_channel out_channel ref',\n      literal:\n        'true false'\n    },\n    illegal: /\\/\\/|>>/,\n    contains: [\n      {\n        className: 'literal',\n        begin: '\\\\[(\\\\|\\\\|)?\\\\]|\\\\(\\\\)',\n        relevance: 0\n      },\n      hljs.COMMENT(\n        '\\\\(\\\\*',\n        '\\\\*\\\\)',\n        {\n          contains: ['self']\n        }\n      ),\n      { /* type variable */\n        className: 'symbol',\n        begin: '\\'[A-Za-z_](?!\\')[\\\\w\\']*'\n        /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */\n      },\n      { /* polymorphic variant */\n        className: 'type',\n        begin: '`[A-Z][\\\\w\\']*'\n      },\n      { /* module or constructor */\n        className: 'type',\n        begin: '\\\\b[A-Z][\\\\w\\']*',\n        relevance: 0\n      },\n      { /* don't color identifiers, but safely catch all identifiers with '*/\n        begin: '[a-z_]\\\\w*\\'[\\\\w\\']*', relevance: 0\n      },\n      hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),\n      {\n        className: 'number',\n        begin:\n          '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n          '0[oO][0-7_]+[Lln]?|' +\n          '0[bB][01_]+[Lln]?|' +\n          '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',\n        relevance: 0\n      },\n      {\n        begin: /->/ // relevance booster\n      }\n    ]\n  }\n}\n\nmodule.exports = ocaml;\n","/*\nLanguage: OpenSCAD\nAuthor: Dan Panzarella \nDescription: OpenSCAD is a language for the 3D CAD modeling software of the same name.\nWebsite: https://www.openscad.org\nCategory: scientific\n*/\n\nfunction openscad(hljs) {\n  const SPECIAL_VARS = {\n    className: 'keyword',\n    begin: '\\\\$(f[asn]|t|vp[rtd]|children)'\n  };\n  const LITERALS = {\n    className: 'literal',\n    begin: 'false|true|PI|undef'\n  };\n  const NUMBERS = {\n    className: 'number',\n    begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(e-?\\\\d+)?', // adds 1e5, 1e-10\n    relevance: 0\n  };\n  const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    illegal: null\n  });\n  const PREPRO = {\n    className: 'meta',\n    keywords: {\n      'meta-keyword': 'include use'\n    },\n    begin: 'include|use <',\n    end: '>'\n  };\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)',\n    contains: [\n      'self',\n      NUMBERS,\n      STRING,\n      SPECIAL_VARS,\n      LITERALS\n    ]\n  };\n  const MODIFIERS = {\n    begin: '[*!#%]',\n    relevance: 0\n  };\n  const FUNCTIONS = {\n    className: 'function',\n    beginKeywords: 'module function',\n    end: /=|\\{/,\n    contains: [\n      PARAMS,\n      hljs.UNDERSCORE_TITLE_MODE\n    ]\n  };\n\n  return {\n    name: 'OpenSCAD',\n    aliases: [ 'scad' ],\n    keywords: {\n      keyword: 'function module include use for intersection_for if else \\\\%',\n      literal: 'false true PI undef',\n      built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      NUMBERS,\n      PREPRO,\n      STRING,\n      SPECIAL_VARS,\n      MODIFIERS,\n      FUNCTIONS\n    ]\n  };\n}\n\nmodule.exports = openscad;\n","/*\nLanguage: Oxygene\nAuthor: Carlo Kok \nDescription: Oxygene is built on the foundation of Object Pascal, revamped and extended to be a modern language for the twenty-first century.\nWebsite: https://www.elementscompiler.com/elements/default.aspx\n*/\n\nfunction oxygene(hljs) {\n  const OXYGENE_KEYWORDS = {\n    $pattern: /\\.?\\w+/,\n    keyword:\n      'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue ' +\n      'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false ' +\n      'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited ' +\n      'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of ' +\n      'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly ' +\n      'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple ' +\n      'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal ' +\n      'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained'\n  };\n  const CURLY_COMMENT = hljs.COMMENT(\n    /\\{/,\n    /\\}/,\n    {\n      relevance: 0\n    }\n  );\n  const PAREN_COMMENT = hljs.COMMENT(\n    '\\\\(\\\\*',\n    '\\\\*\\\\)',\n    {\n      relevance: 10\n    }\n  );\n  const STRING = {\n    className: 'string',\n    begin: '\\'',\n    end: '\\'',\n    contains: [\n      {\n        begin: '\\'\\''\n      }\n    ]\n  };\n  const CHAR_STRING = {\n    className: 'string',\n    begin: '(#\\\\d+)+'\n  };\n  const FUNCTION = {\n    className: 'function',\n    beginKeywords: 'function constructor destructor procedure method',\n    end: '[:;]',\n    keywords: 'function constructor|10 destructor|10 procedure|10 method|10',\n    contains: [\n      hljs.TITLE_MODE,\n      {\n        className: 'params',\n        begin: '\\\\(',\n        end: '\\\\)',\n        keywords: OXYGENE_KEYWORDS,\n        contains: [\n          STRING,\n          CHAR_STRING\n        ]\n      },\n      CURLY_COMMENT,\n      PAREN_COMMENT\n    ]\n  };\n  return {\n    name: 'Oxygene',\n    case_insensitive: true,\n    keywords: OXYGENE_KEYWORDS,\n    illegal: '(\"|\\\\$[G-Zg-z]|\\\\/\\\\*||->)',\n    contains: [\n      CURLY_COMMENT,\n      PAREN_COMMENT,\n      hljs.C_LINE_COMMENT_MODE,\n      STRING,\n      CHAR_STRING,\n      hljs.NUMBER_MODE,\n      FUNCTION,\n      {\n        className: 'class',\n        begin: '=\\\\bclass\\\\b',\n        end: 'end;',\n        keywords: OXYGENE_KEYWORDS,\n        contains: [\n          STRING,\n          CHAR_STRING,\n          CURLY_COMMENT,\n          PAREN_COMMENT,\n          hljs.C_LINE_COMMENT_MODE,\n          FUNCTION\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = oxygene;\n","/*\nLanguage: Parser3\nRequires: xml.js\nAuthor: Oleg Volchkov \nWebsite: https://www.parser.ru/en/\nCategory: template\n*/\n\nfunction parser3(hljs) {\n  const CURLY_SUBCOMMENT = hljs.COMMENT(\n    /\\{/,\n    /\\}/,\n    {\n      contains: [ 'self' ]\n    }\n  );\n  return {\n    name: 'Parser3',\n    subLanguage: 'xml',\n    relevance: 0,\n    contains: [\n      hljs.COMMENT('^#', '$'),\n      hljs.COMMENT(\n        /\\^rem\\{/,\n        /\\}/,\n        {\n          relevance: 10,\n          contains: [ CURLY_SUBCOMMENT ]\n        }\n      ),\n      {\n        className: 'meta',\n        begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',\n        relevance: 10\n      },\n      {\n        className: 'title',\n        begin: '@[\\\\w\\\\-]+\\\\[[\\\\w^;\\\\-]*\\\\](?:\\\\[[\\\\w^;\\\\-]*\\\\])?(?:.*)$'\n      },\n      {\n        className: 'variable',\n        begin: /\\$\\{?[\\w\\-.:]+\\}?/\n      },\n      {\n        className: 'keyword',\n        begin: /\\^[\\w\\-.:]+/\n      },\n      {\n        className: 'number',\n        begin: '\\\\^#[0-9a-fA-F]+'\n      },\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = parser3;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: Perl\nAuthor: Peter Leonov \nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n  const KEYWORDS = [\n    'abs',\n    'accept',\n    'alarm',\n    'and',\n    'atan2',\n    'bind',\n    'binmode',\n    'bless',\n    'break',\n    'caller',\n    'chdir',\n    'chmod',\n    'chomp',\n    'chop',\n    'chown',\n    'chr',\n    'chroot',\n    'close',\n    'closedir',\n    'connect',\n    'continue',\n    'cos',\n    'crypt',\n    'dbmclose',\n    'dbmopen',\n    'defined',\n    'delete',\n    'die',\n    'do',\n    'dump',\n    'each',\n    'else',\n    'elsif',\n    'endgrent',\n    'endhostent',\n    'endnetent',\n    'endprotoent',\n    'endpwent',\n    'endservent',\n    'eof',\n    'eval',\n    'exec',\n    'exists',\n    'exit',\n    'exp',\n    'fcntl',\n    'fileno',\n    'flock',\n    'for',\n    'foreach',\n    'fork',\n    'format',\n    'formline',\n    'getc',\n    'getgrent',\n    'getgrgid',\n    'getgrnam',\n    'gethostbyaddr',\n    'gethostbyname',\n    'gethostent',\n    'getlogin',\n    'getnetbyaddr',\n    'getnetbyname',\n    'getnetent',\n    'getpeername',\n    'getpgrp',\n    'getpriority',\n    'getprotobyname',\n    'getprotobynumber',\n    'getprotoent',\n    'getpwent',\n    'getpwnam',\n    'getpwuid',\n    'getservbyname',\n    'getservbyport',\n    'getservent',\n    'getsockname',\n    'getsockopt',\n    'given',\n    'glob',\n    'gmtime',\n    'goto',\n    'grep',\n    'gt',\n    'hex',\n    'if',\n    'index',\n    'int',\n    'ioctl',\n    'join',\n    'keys',\n    'kill',\n    'last',\n    'lc',\n    'lcfirst',\n    'length',\n    'link',\n    'listen',\n    'local',\n    'localtime',\n    'log',\n    'lstat',\n    'lt',\n    'ma',\n    'map',\n    'mkdir',\n    'msgctl',\n    'msgget',\n    'msgrcv',\n    'msgsnd',\n    'my',\n    'ne',\n    'next',\n    'no',\n    'not',\n    'oct',\n    'open',\n    'opendir',\n    'or',\n    'ord',\n    'our',\n    'pack',\n    'package',\n    'pipe',\n    'pop',\n    'pos',\n    'print',\n    'printf',\n    'prototype',\n    'push',\n    'q|0',\n    'qq',\n    'quotemeta',\n    'qw',\n    'qx',\n    'rand',\n    'read',\n    'readdir',\n    'readline',\n    'readlink',\n    'readpipe',\n    'recv',\n    'redo',\n    'ref',\n    'rename',\n    'require',\n    'reset',\n    'return',\n    'reverse',\n    'rewinddir',\n    'rindex',\n    'rmdir',\n    'say',\n    'scalar',\n    'seek',\n    'seekdir',\n    'select',\n    'semctl',\n    'semget',\n    'semop',\n    'send',\n    'setgrent',\n    'sethostent',\n    'setnetent',\n    'setpgrp',\n    'setpriority',\n    'setprotoent',\n    'setpwent',\n    'setservent',\n    'setsockopt',\n    'shift',\n    'shmctl',\n    'shmget',\n    'shmread',\n    'shmwrite',\n    'shutdown',\n    'sin',\n    'sleep',\n    'socket',\n    'socketpair',\n    'sort',\n    'splice',\n    'split',\n    'sprintf',\n    'sqrt',\n    'srand',\n    'stat',\n    'state',\n    'study',\n    'sub',\n    'substr',\n    'symlink',\n    'syscall',\n    'sysopen',\n    'sysread',\n    'sysseek',\n    'system',\n    'syswrite',\n    'tell',\n    'telldir',\n    'tie',\n    'tied',\n    'time',\n    'times',\n    'tr',\n    'truncate',\n    'uc',\n    'ucfirst',\n    'umask',\n    'undef',\n    'unless',\n    'unlink',\n    'unpack',\n    'unshift',\n    'untie',\n    'until',\n    'use',\n    'utime',\n    'values',\n    'vec',\n    'wait',\n    'waitpid',\n    'wantarray',\n    'warn',\n    'when',\n    'while',\n    'write',\n    'x|0',\n    'xor',\n    'y|0'\n  ];\n\n  // https://perldoc.perl.org/perlre#Modifiers\n  const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n  const PERL_KEYWORDS = {\n    $pattern: /[\\w.]+/,\n    keyword: KEYWORDS.join(\" \")\n  };\n  const SUBST = {\n    className: 'subst',\n    begin: '[$@]\\\\{',\n    end: '\\\\}',\n    keywords: PERL_KEYWORDS\n  };\n  const METHOD = {\n    begin: /->\\{/,\n    end: /\\}/\n    // contains defined later\n  };\n  const VAR = {\n    variants: [\n      {\n        begin: /\\$\\d/\n      },\n      {\n        begin: concat(\n          /[$%@](\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/,\n          // negative look-ahead tries to avoid matching patterns that are not\n          // Perl at all like $ident$, @ident@, etc.\n          `(?![A-Za-z])(?![@$%])`\n        )\n      },\n      {\n        begin: /[$%@][^\\s\\w{]/,\n        relevance: 0\n      }\n    ]\n  };\n  const STRING_CONTAINS = [\n    hljs.BACKSLASH_ESCAPE,\n    SUBST,\n    VAR\n  ];\n  const REGEX_DELIMS = [\n    /!/,\n    /\\//,\n    /\\|/,\n    /\\?/,\n    /'/,\n    /\"/, // valid but infrequent and weird\n    /#/ // valid but infrequent and weird\n  ];\n  /**\n   * @param {string|RegExp} prefix\n   * @param {string|RegExp} open\n   * @param {string|RegExp} close\n   */\n  const PAIRED_DOUBLE_RE = (prefix, open, close = '\\\\1') => {\n    const middle = (close === '\\\\1')\n      ? close\n      : concat(close, open);\n    return concat(\n      concat(\"(?:\", prefix, \")\"),\n      open,\n      /(?:\\\\.|[^\\\\\\/])*?/,\n      middle,\n      /(?:\\\\.|[^\\\\\\/])*?/,\n      close,\n      REGEX_MODIFIERS\n    );\n  };\n  /**\n   * @param {string|RegExp} prefix\n   * @param {string|RegExp} open\n   * @param {string|RegExp} close\n   */\n  const PAIRED_RE = (prefix, open, close) => {\n    return concat(\n      concat(\"(?:\", prefix, \")\"),\n      open,\n      /(?:\\\\.|[^\\\\\\/])*?/,\n      close,\n      REGEX_MODIFIERS\n    );\n  };\n  const PERL_DEFAULT_CONTAINS = [\n    VAR,\n    hljs.HASH_COMMENT_MODE,\n    hljs.COMMENT(\n      /^=\\w/,\n      /=cut/,\n      {\n        endsWithParent: true\n      }\n    ),\n    METHOD,\n    {\n      className: 'string',\n      contains: STRING_CONTAINS,\n      variants: [\n        {\n          begin: 'q[qwxr]?\\\\s*\\\\(',\n          end: '\\\\)',\n          relevance: 5\n        },\n        {\n          begin: 'q[qwxr]?\\\\s*\\\\[',\n          end: '\\\\]',\n          relevance: 5\n        },\n        {\n          begin: 'q[qwxr]?\\\\s*\\\\{',\n          end: '\\\\}',\n          relevance: 5\n        },\n        {\n          begin: 'q[qwxr]?\\\\s*\\\\|',\n          end: '\\\\|',\n          relevance: 5\n        },\n        {\n          begin: 'q[qwxr]?\\\\s*<',\n          end: '>',\n          relevance: 5\n        },\n        {\n          begin: 'qw\\\\s+q',\n          end: 'q',\n          relevance: 5\n        },\n        {\n          begin: '\\'',\n          end: '\\'',\n          contains: [ hljs.BACKSLASH_ESCAPE ]\n        },\n        {\n          begin: '\"',\n          end: '\"'\n        },\n        {\n          begin: '`',\n          end: '`',\n          contains: [ hljs.BACKSLASH_ESCAPE ]\n        },\n        {\n          begin: /\\{\\w+\\}/,\n          relevance: 0\n        },\n        {\n          begin: '-?\\\\w+\\\\s*=>',\n          relevance: 0\n        }\n      ]\n    },\n    {\n      className: 'number',\n      begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n      relevance: 0\n    },\n    { // regexp container\n      begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n      keywords: 'split return print reverse grep',\n      relevance: 0,\n      contains: [\n        hljs.HASH_COMMENT_MODE,\n        {\n          className: 'regexp',\n          variants: [\n            // allow matching common delimiters\n            { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", either(...REGEX_DELIMS)) },\n            // and then paired delmis\n            { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\") },\n            { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\") },\n            { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\") }\n          ],\n          relevance: 2\n        },\n        {\n          className: 'regexp',\n          variants: [\n            {\n              // could be a comment in many languages so do not count\n              // as relevant\n              begin: /(m|qr)\\/\\//,\n              relevance: 0\n            },\n            // prefix is optional with /regex/\n            { begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//)},\n            // allow matching common delimiters\n            { begin: PAIRED_RE(\"m|qr\", either(...REGEX_DELIMS), /\\1/)},\n            // allow common paired delmins\n            { begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/)},\n            { begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/)},\n            { begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/)}\n          ]\n        }\n      ]\n    },\n    {\n      className: 'function',\n      beginKeywords: 'sub',\n      end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n      excludeEnd: true,\n      relevance: 5,\n      contains: [ hljs.TITLE_MODE ]\n    },\n    {\n      begin: '-\\\\w\\\\b',\n      relevance: 0\n    },\n    {\n      begin: \"^__DATA__$\",\n      end: \"^__END__$\",\n      subLanguage: 'mojolicious',\n      contains: [\n        {\n          begin: \"^@@.*\",\n          end: \"$\",\n          className: \"comment\"\n        }\n      ]\n    }\n  ];\n  SUBST.contains = PERL_DEFAULT_CONTAINS;\n  METHOD.contains = PERL_DEFAULT_CONTAINS;\n\n  return {\n    name: 'Perl',\n    aliases: [\n      'pl',\n      'pm'\n    ],\n    keywords: PERL_KEYWORDS,\n    contains: PERL_DEFAULT_CONTAINS\n  };\n}\n\nmodule.exports = perl;\n","/*\nLanguage: Packet Filter config\nDescription: pf.conf — packet filter configuration file (OpenBSD)\nAuthor: Peter Piwowarski \nWebsite: http://man.openbsd.org/pf.conf\nCategory: config\n*/\n\nfunction pf(hljs) {\n  const MACRO = {\n    className: 'variable',\n    begin: /\\$[\\w\\d#@][\\w\\d_]*/\n  };\n  const TABLE = {\n    className: 'variable',\n    begin: /<(?!\\/)/,\n    end: />/\n  };\n\n  return {\n    name: 'Packet Filter config',\n    aliases: [ 'pf.conf' ],\n    keywords: {\n      $pattern: /[a-z0-9_<>-]+/,\n      built_in: /* block match pass are \"actions\" in pf.conf(5), the rest are\n                 * lexically similar top-level commands.\n                 */\n        'block match pass load anchor|5 antispoof|10 set table',\n      keyword:\n        'in out log quick on rdomain inet inet6 proto from port os to route ' +\n        'allow-opts divert-packet divert-reply divert-to flags group icmp-type ' +\n        'icmp6-type label once probability recieved-on rtable prio queue ' +\n        'tos tag tagged user keep fragment for os drop ' +\n        'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin ' +\n        'source-hash static-port ' +\n        'dup-to reply-to route-to ' +\n        'parent bandwidth default min max qlimit ' +\n        'block-policy debug fingerprints hostid limit loginterface optimization ' +\n        'reassemble ruleset-optimization basic none profile skip state-defaults ' +\n        'state-policy timeout ' +\n        'const counters persist ' +\n        'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy ' +\n        'source-track global rule max-src-nodes max-src-states max-src-conn ' +\n        'max-src-conn-rate overload flush ' +\n        'scrub|5 max-mss min-ttl no-df|10 random-id',\n      literal:\n        'all any no-route self urpf-failed egress|5 unknown'\n    },\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      hljs.NUMBER_MODE,\n      hljs.QUOTE_STRING_MODE,\n      MACRO,\n      TABLE\n    ]\n  };\n}\n\nmodule.exports = pf;\n","/*\nLanguage: PostgreSQL and PL/pgSQL\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nWebsite: https://www.postgresql.org/docs/11/sql.html\nDescription:\n    This language incorporates both PostgreSQL SQL dialect and PL/pgSQL language.\n    It is based on PostgreSQL version 11. Some notes:\n    - Text in double-dollar-strings is _always_ interpreted as some programming code. Text\n      in ordinary quotes is _never_ interpreted that way and highlighted just as a string.\n    - There are quite a bit \"special cases\". That's because many keywords are not strictly\n      they are keywords in some contexts and ordinary identifiers in others. Only some\n      of such cases are handled; you still can get some of your identifiers highlighted\n      wrong way.\n    - Function names deliberately are not highlighted. There is no way to tell function\n      call from other constructs, hence we can't highlight _all_ function names. And\n      some names highlighted while others not looks ugly.\n*/\n\nfunction pgsql(hljs) {\n  const COMMENT_MODE = hljs.COMMENT('--', '$');\n  const UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*';\n  const DOLLAR_STRING = '\\\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\\\$';\n  const LABEL = '<<\\\\s*' + UNQUOTED_IDENT + '\\\\s*>>';\n\n  const SQL_KW =\n    // https://www.postgresql.org/docs/11/static/sql-keywords-appendix.html\n    // https://www.postgresql.org/docs/11/static/sql-commands.html\n    // SQL commands (starting words)\n    'ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE ' +\n    'DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY ' +\n    'PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW ' +\n    'START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES ' +\n    // SQL commands (others)\n    'AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN ' +\n    'WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS ' +\n    'FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM ' +\n    'TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS ' +\n    'METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION ' +\n    'INDEX PROCEDURE ASSERTION ' +\n    // additional reserved key words\n    'ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK ' +\n    'COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS ' +\n    'DEFERRABLE RANGE ' +\n    'DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ' +\n    'ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT ' +\n    'NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY ' +\n    'REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN ' +\n    'TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH ' +\n    // some of non-reserved (which are used in clauses or as PL/pgSQL keyword)\n    'BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN ' +\n    'BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT ' +\n    'TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN ' +\n    'EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH ' +\n    'REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ' +\n    'ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED ' +\n    'INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 ' +\n    'INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ' +\n    'ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES ' +\n    'RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS ' +\n    'UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF ' +\n    // some parameters of VACUUM/ANALYZE/EXPLAIN\n    'FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING ' +\n    //\n    'RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED ' +\n    'OF NOTHING NONE EXCLUDE ATTRIBUTE ' +\n    // from GRANT (not keywords actually)\n    'USAGE ROUTINES ' +\n    // actually literals, but look better this way (due to IS TRUE, IS FALSE, ISNULL etc)\n    'TRUE FALSE NAN INFINITY ';\n\n  const ROLE_ATTRS = // only those not in keywrods already\n    'SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT ' +\n    'LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ';\n\n  const PLPGSQL_KW =\n    'ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS ' +\n    'STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT ' +\n    'OPEN ';\n\n  const TYPES =\n    // https://www.postgresql.org/docs/11/static/datatype.html\n    'BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR ' +\n    'CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 ' +\n    'MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 ' +\n    'SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 ' +\n    'TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR ' +\n    'INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ' +\n    // pseudotypes\n    'ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL ' +\n    'RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR ' +\n    // spec. type\n    'NAME ' +\n    // OID-types\n    'OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 ' +\n    'REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ';// +\n\n  const TYPES_RE =\n    TYPES.trim()\n      .split(' ')\n      .map(function(val) { return val.split('|')[0]; })\n      .join('|');\n\n  const SQL_BI =\n    'CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP ' +\n    'CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ';\n\n  const PLPGSQL_BI =\n    'FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 ' +\n    'TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ' +\n    // get diagnostics\n    'ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME ' +\n    'PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 ' +\n    'PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ';\n\n  const PLPGSQL_EXCEPTIONS =\n    // exceptions https://www.postgresql.org/docs/current/static/errcodes-appendix.html\n    'SQLSTATE SQLERRM|10 ' +\n    'SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING ' +\n    'NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED ' +\n    'STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED ' +\n    'SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE ' +\n    'SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION ' +\n    'TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED ' +\n    'INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR ' +\n    'INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION ' +\n    'STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION ' +\n    'DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW ' +\n    'DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW ' +\n    'INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION ' +\n    'INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION ' +\n    'INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST ' +\n    'INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE ' +\n    'NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE ' +\n    'INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE ' +\n    'INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT ' +\n    'INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH ' +\n    'NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE ' +\n    'SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION ' +\n    'SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING ' +\n    'FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION ' +\n    'BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT ' +\n    'INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION ' +\n    'INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION ' +\n    'UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE ' +\n    'INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE ' +\n    'HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION ' +\n    'INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION ' +\n    'NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION ' +\n    'SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION ' +\n    'IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME ' +\n    'TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD ' +\n    'DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST ' +\n    'INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT ' +\n    'MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED ' +\n    'READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION ' +\n    'CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED ' +\n    'PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED ' +\n    'EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED ' +\n    'TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED ' +\n    'SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME ' +\n    'INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION ' +\n    'SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED ' +\n    'SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE ' +\n    'GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME ' +\n    'NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH ' +\n    'INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN ' +\n    'UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT ' +\n    'DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION ' +\n    'DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS ' +\n    'DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS ' +\n    'INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION ' +\n    'INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION ' +\n    'INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION ' +\n    'INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL ' +\n    'OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED ' +\n    'STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE ' +\n    'OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION ' +\n    'QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED ' +\n    'SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR ' +\n    'LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED ' +\n    'FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION ' +\n    'FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER ' +\n    'FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS ' +\n    'FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX ' +\n    'FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH ' +\n    'FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES ' +\n    'FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE ' +\n    'FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION ' +\n    'FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR ' +\n    'RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED ' +\n    'INDEX_CORRUPTED ';\n\n  const FUNCTIONS =\n    // https://www.postgresql.org/docs/11/static/functions-aggregate.html\n    'ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG ' +\n    'JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG ' +\n    'CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE ' +\n    'REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP ' +\n    'PERCENTILE_CONT PERCENTILE_DISC ' +\n    // https://www.postgresql.org/docs/11/static/functions-window.html\n    'ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE ' +\n    // https://www.postgresql.org/docs/11/static/functions-comparison.html\n    'NUM_NONNULLS NUM_NULLS ' +\n    // https://www.postgresql.org/docs/11/static/functions-math.html\n    'ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT ' +\n    'TRUNC WIDTH_BUCKET ' +\n    'RANDOM SETSEED ' +\n    'ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND ' +\n    // https://www.postgresql.org/docs/11/static/functions-string.html\n    'BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ' +\n    'ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP ' +\n    'LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 ' +\n    'QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY ' +\n    'REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR ' +\n    'TO_ASCII TO_HEX TRANSLATE ' +\n    // https://www.postgresql.org/docs/11/static/functions-binarystring.html\n    'OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE ' +\n    // https://www.postgresql.org/docs/11/static/functions-formatting.html\n    'TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP ' +\n    // https://www.postgresql.org/docs/11/static/functions-datetime.html\n    'AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL ' +\n    'MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 ' +\n    'TIMEOFDAY TRANSACTION_TIMESTAMP|10 ' +\n    // https://www.postgresql.org/docs/11/static/functions-enum.html\n    'ENUM_FIRST ENUM_LAST ENUM_RANGE ' +\n    // https://www.postgresql.org/docs/11/static/functions-geometry.html\n    'AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH ' +\n    'BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ' +\n    // https://www.postgresql.org/docs/11/static/functions-net.html\n    'ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY ' +\n    'INET_MERGE MACADDR8_SET7BIT ' +\n    // https://www.postgresql.org/docs/11/static/functions-textsearch.html\n    'ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY ' +\n    'QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE ' +\n    'TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY ' +\n    'TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN ' +\n    // https://www.postgresql.org/docs/11/static/functions-xml.html\n    'XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT ' +\n    'XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT ' +\n    'XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES ' +\n    'TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA ' +\n    'QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA ' +\n    'CURSOR_TO_XML CURSOR_TO_XMLSCHEMA ' +\n    'SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA ' +\n    'DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA ' +\n    'XMLATTRIBUTES ' +\n    // https://www.postgresql.org/docs/11/static/functions-json.html\n    'TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT ' +\n    'JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH ' +\n    'JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH ' +\n    'JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET ' +\n    'JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT ' +\n    'JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET ' +\n    'JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY ' +\n    // https://www.postgresql.org/docs/11/static/functions-sequence.html\n    'CURRVAL LASTVAL NEXTVAL SETVAL ' +\n    // https://www.postgresql.org/docs/11/static/functions-conditional.html\n    'COALESCE NULLIF GREATEST LEAST ' +\n    // https://www.postgresql.org/docs/11/static/functions-array.html\n    'ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ' +\n    'ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY ' +\n    'STRING_TO_ARRAY UNNEST ' +\n    // https://www.postgresql.org/docs/11/static/functions-range.html\n    'ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE ' +\n    // https://www.postgresql.org/docs/11/static/functions-srf.html\n    'GENERATE_SERIES GENERATE_SUBSCRIPTS ' +\n    // https://www.postgresql.org/docs/11/static/functions-info.html\n    'CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT ' +\n    'INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE ' +\n    'TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE ' +\n    'COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION ' +\n    'TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX ' +\n    'TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS ' +\n    // https://www.postgresql.org/docs/11/static/functions-admin.html\n    'CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE ' +\n    'GIN_CLEAN_PENDING_LIST ' +\n    // https://www.postgresql.org/docs/11/static/functions-trigger.html\n    'SUPPRESS_REDUNDANT_UPDATES_TRIGGER ' +\n    // ihttps://www.postgresql.org/docs/devel/static/lo-funcs.html\n    'LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE ' +\n    //\n    'GROUPING CAST ';\n\n  const FUNCTIONS_RE =\n      FUNCTIONS.trim()\n        .split(' ')\n        .map(function(val) { return val.split('|')[0]; })\n        .join('|');\n\n  return {\n    name: 'PostgreSQL',\n    aliases: [\n      'postgres',\n      'postgresql'\n    ],\n    case_insensitive: true,\n    keywords: {\n      keyword:\n            SQL_KW + PLPGSQL_KW + ROLE_ATTRS,\n      built_in:\n            SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS\n    },\n    // Forbid some cunstructs from other languages to improve autodetect. In fact\n    // \"[a-z]:\" is legal (as part of array slice), but improbabal.\n    illegal: /:==|\\W\\s*\\(\\*|(^|\\s)\\$[a-z]|\\{\\{|[a-z]:\\s*$|\\.\\.\\.|TO:|DO:/,\n    contains: [\n      // special handling of some words, which are reserved only in some contexts\n      {\n        className: 'keyword',\n        variants: [\n          {\n            begin: /\\bTEXT\\s*SEARCH\\b/\n          },\n          {\n            begin: /\\b(PRIMARY|FOREIGN|FOR(\\s+NO)?)\\s+KEY\\b/\n          },\n          {\n            begin: /\\bPARALLEL\\s+(UNSAFE|RESTRICTED|SAFE)\\b/\n          },\n          {\n            begin: /\\bSTORAGE\\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\\b/\n          },\n          {\n            begin: /\\bMATCH\\s+(FULL|PARTIAL|SIMPLE)\\b/\n          },\n          {\n            begin: /\\bNULLS\\s+(FIRST|LAST)\\b/\n          },\n          {\n            begin: /\\bEVENT\\s+TRIGGER\\b/\n          },\n          {\n            begin: /\\b(MAPPING|OR)\\s+REPLACE\\b/\n          },\n          {\n            begin: /\\b(FROM|TO)\\s+(PROGRAM|STDIN|STDOUT)\\b/\n          },\n          {\n            begin: /\\b(SHARE|EXCLUSIVE)\\s+MODE\\b/\n          },\n          {\n            begin: /\\b(LEFT|RIGHT)\\s+(OUTER\\s+)?JOIN\\b/\n          },\n          {\n            begin: /\\b(FETCH|MOVE)\\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\\b/\n          },\n          {\n            begin: /\\bPRESERVE\\s+ROWS\\b/\n          },\n          {\n            begin: /\\bDISCARD\\s+PLANS\\b/\n          },\n          {\n            begin: /\\bREFERENCING\\s+(OLD|NEW)\\b/\n          },\n          {\n            begin: /\\bSKIP\\s+LOCKED\\b/\n          },\n          {\n            begin: /\\bGROUPING\\s+SETS\\b/\n          },\n          {\n            begin: /\\b(BINARY|INSENSITIVE|SCROLL|NO\\s+SCROLL)\\s+(CURSOR|FOR)\\b/\n          },\n          {\n            begin: /\\b(WITH|WITHOUT)\\s+HOLD\\b/\n          },\n          {\n            begin: /\\bWITH\\s+(CASCADED|LOCAL)\\s+CHECK\\s+OPTION\\b/\n          },\n          {\n            begin: /\\bEXCLUDE\\s+(TIES|NO\\s+OTHERS)\\b/\n          },\n          {\n            begin: /\\bFORMAT\\s+(TEXT|XML|JSON|YAML)\\b/\n          },\n          {\n            begin: /\\bSET\\s+((SESSION|LOCAL)\\s+)?NAMES\\b/\n          },\n          {\n            begin: /\\bIS\\s+(NOT\\s+)?UNKNOWN\\b/\n          },\n          {\n            begin: /\\bSECURITY\\s+LABEL\\b/\n          },\n          {\n            begin: /\\bSTANDALONE\\s+(YES|NO|NO\\s+VALUE)\\b/\n          },\n          {\n            begin: /\\bWITH\\s+(NO\\s+)?DATA\\b/\n          },\n          {\n            begin: /\\b(FOREIGN|SET)\\s+DATA\\b/\n          },\n          {\n            begin: /\\bSET\\s+(CATALOG|CONSTRAINTS)\\b/\n          },\n          {\n            begin: /\\b(WITH|FOR)\\s+ORDINALITY\\b/\n          },\n          {\n            begin: /\\bIS\\s+(NOT\\s+)?DOCUMENT\\b/\n          },\n          {\n            begin: /\\bXML\\s+OPTION\\s+(DOCUMENT|CONTENT)\\b/\n          },\n          {\n            begin: /\\b(STRIP|PRESERVE)\\s+WHITESPACE\\b/\n          },\n          {\n            begin: /\\bNO\\s+(ACTION|MAXVALUE|MINVALUE)\\b/\n          },\n          {\n            begin: /\\bPARTITION\\s+BY\\s+(RANGE|LIST|HASH)\\b/\n          },\n          {\n            begin: /\\bAT\\s+TIME\\s+ZONE\\b/\n          },\n          {\n            begin: /\\bGRANTED\\s+BY\\b/\n          },\n          {\n            begin: /\\bRETURN\\s+(QUERY|NEXT)\\b/\n          },\n          {\n            begin: /\\b(ATTACH|DETACH)\\s+PARTITION\\b/\n          },\n          {\n            begin: /\\bFORCE\\s+ROW\\s+LEVEL\\s+SECURITY\\b/\n          },\n          {\n            begin: /\\b(INCLUDING|EXCLUDING)\\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\\b/\n          },\n          {\n            begin: /\\bAS\\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\\b/\n          }\n        ]\n      },\n      // functions named as keywords, followed by '('\n      {\n        begin: /\\b(FORMAT|FAMILY|VERSION)\\s*\\(/\n        // keywords: { built_in: 'FORMAT FAMILY VERSION' }\n      },\n      // INCLUDE ( ... ) in index_parameters in CREATE TABLE\n      {\n        begin: /\\bINCLUDE\\s*\\(/,\n        keywords: 'INCLUDE'\n      },\n      // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory)\n      {\n        begin: /\\bRANGE(?!\\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/\n      },\n      // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE\n      // and in PL/pgSQL RAISE ... USING\n      {\n        begin: /\\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\\s*=/\n      },\n      // PG_smth; HAS_some_PRIVILEGE\n      {\n        // className: 'built_in',\n        begin: /\\b(PG_\\w+?|HAS_[A-Z_]+_PRIVILEGE)\\b/,\n        relevance: 10\n      },\n      // extract\n      {\n        begin: /\\bEXTRACT\\s*\\(/,\n        end: /\\bFROM\\b/,\n        returnEnd: true,\n        keywords: {\n          // built_in: 'EXTRACT',\n          type: 'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS ' +\n                        'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR ' +\n                        'TIMEZONE_MINUTE WEEK YEAR'\n        }\n      },\n      // xmlelement, xmlpi - special NAME\n      {\n        begin: /\\b(XMLELEMENT|XMLPI)\\s*\\(\\s*NAME/,\n        keywords: {\n          // built_in: 'XMLELEMENT XMLPI',\n          keyword: 'NAME'\n        }\n      },\n      // xmlparse, xmlserialize\n      {\n        begin: /\\b(XMLPARSE|XMLSERIALIZE)\\s*\\(\\s*(DOCUMENT|CONTENT)/,\n        keywords: {\n          // built_in: 'XMLPARSE XMLSERIALIZE',\n          keyword: 'DOCUMENT CONTENT'\n        }\n      },\n      // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and\n      // nearest following numeric constant. Without with trick we find a lot of \"keywords\"\n      // in 'avrasm' autodetection test...\n      {\n        beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE',\n        end: hljs.C_NUMBER_RE,\n        returnEnd: true,\n        keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE'\n      },\n      // WITH|WITHOUT TIME ZONE as part of datatype\n      {\n        className: 'type',\n        begin: /\\b(WITH|WITHOUT)\\s+TIME\\s+ZONE\\b/\n      },\n      // INTERVAL optional fields\n      {\n        className: 'type',\n        begin: /\\bINTERVAL\\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\\s+TO\\s+(MONTH|HOUR|MINUTE|SECOND))?\\b/\n      },\n      // Pseudo-types which allowed only as return type\n      {\n        begin: /\\bRETURNS\\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\\b/,\n        keywords: {\n          keyword: 'RETURNS',\n          type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER'\n        }\n      },\n      // Known functions - only when followed by '('\n      {\n        begin: '\\\\b(' + FUNCTIONS_RE + ')\\\\s*\\\\('\n        // keywords: { built_in: FUNCTIONS }\n      },\n      // Types\n      {\n        begin: '\\\\.(' + TYPES_RE + ')\\\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid'\n      },\n      {\n        begin: '\\\\b(' + TYPES_RE + ')\\\\s+PATH\\\\b', // in XMLTABLE\n        keywords: {\n          keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE...\n          type: TYPES.replace('PATH ', '')\n        }\n      },\n      {\n        className: 'type',\n        begin: '\\\\b(' + TYPES_RE + ')\\\\b'\n      },\n      // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS\n      {\n        className: 'string',\n        begin: '\\'',\n        end: '\\'',\n        contains: [\n          {\n            begin: '\\'\\''\n          }\n        ]\n      },\n      {\n        className: 'string',\n        begin: '(e|E|u&|U&)\\'',\n        end: '\\'',\n        contains: [\n          {\n            begin: '\\\\\\\\.'\n          }\n        ],\n        relevance: 10\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: DOLLAR_STRING,\n        end: DOLLAR_STRING,\n        contains: [\n          {\n            // actually we want them all except SQL; listed are those with known implementations\n            // and XML + JSON just in case\n            subLanguage: [\n              'pgsql',\n              'perl',\n              'python',\n              'tcl',\n              'r',\n              'lua',\n              'java',\n              'php',\n              'ruby',\n              'bash',\n              'scheme',\n              'xml',\n              'json'\n            ],\n            endsWithParent: true\n          }\n        ]\n      }),\n      // identifiers in quotes\n      {\n        begin: '\"',\n        end: '\"',\n        contains: [\n          {\n            begin: '\"\"'\n          }\n        ]\n      },\n      // numbers\n      hljs.C_NUMBER_MODE,\n      // comments\n      hljs.C_BLOCK_COMMENT_MODE,\n      COMMENT_MODE,\n      // PL/pgSQL staff\n      // %ROWTYPE, %TYPE, $n\n      {\n        className: 'meta',\n        variants: [\n          { // %TYPE, %ROWTYPE\n            begin: '%(ROW)?TYPE',\n            relevance: 10\n          },\n          { // $n\n            begin: '\\\\$\\\\d+'\n          },\n          { // #compiler option\n            begin: '^#\\\\w',\n            end: '$'\n          }\n        ]\n      },\n      // <>\n      {\n        className: 'symbol',\n        begin: LABEL,\n        relevance: 10\n      }\n    ]\n  };\n}\n\nmodule.exports = pgsql;\n","/*\nLanguage: PHP Template\nRequires: xml.js, php.js\nAuthor: Josh Goebel \nWebsite: https://www.php.net\nCategory: common\n*/\n\nfunction phpTemplate(hljs) {\n  return {\n    name: \"PHP template\",\n    subLanguage: 'xml',\n    contains: [\n      {\n        begin: /<\\?(php|=)?/,\n        end: /\\?>/,\n        subLanguage: 'php',\n        contains: [\n          // We don't want the php closing tag ?> to close the PHP block when\n          // inside any of the following blocks:\n          {\n            begin: '/\\\\*',\n            end: '\\\\*/',\n            skip: true\n          },\n          {\n            begin: 'b\"',\n            end: '\"',\n            skip: true\n          },\n          {\n            begin: 'b\\'',\n            end: '\\'',\n            skip: true\n          },\n          hljs.inherit(hljs.APOS_STRING_MODE, {\n            illegal: null,\n            className: null,\n            contains: null,\n            skip: true\n          }),\n          hljs.inherit(hljs.QUOTE_STRING_MODE, {\n            illegal: null,\n            className: null,\n            contains: null,\n            skip: true\n          })\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = phpTemplate;\n","/*\nLanguage: PHP\nAuthor: Victor Karamzin \nContributors: Evgeny Stepanischev , Ivan Sagalaev \nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n  const VARIABLE = {\n    className: 'variable',\n    begin: '\\\\$+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*' +\n      // negative look-ahead tries to avoid matching patterns that are not\n      // Perl at all like $ident$, @ident@, etc.\n      `(?![A-Za-z0-9])(?![$])`\n  };\n  const PREPROCESSOR = {\n    className: 'meta',\n    variants: [\n      { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n      { begin: /<\\?[=]?/ },\n      { begin: /\\?>/ } // end php tag\n    ]\n  };\n  const SUBST = {\n    className: 'subst',\n    variants: [\n      { begin: /\\$\\w+/ },\n      { begin: /\\{\\$/, end: /\\}/ }\n    ]\n  };\n  const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, {\n    illegal: null,\n  });\n  const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    illegal: null,\n    contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n  });\n  const HEREDOC = hljs.END_SAME_AS_BEGIN({\n    begin: /<<<[ \\t]*(\\w+)\\n/,\n    end: /[ \\t]*(\\w+)\\b/,\n    contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n  });\n  const STRING = {\n    className: 'string',\n    contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],\n    variants: [\n      hljs.inherit(SINGLE_QUOTED, {\n        begin: \"b'\", end: \"'\",\n      }),\n      hljs.inherit(DOUBLE_QUOTED, {\n        begin: 'b\"', end: '\"',\n      }),\n      DOUBLE_QUOTED,\n      SINGLE_QUOTED,\n      HEREDOC\n    ]\n  };\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      { begin: `\\\\b0b[01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n      { begin: `\\\\b0o[0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n      { begin: `\\\\b0x[\\\\da-f]+(?:_[\\\\da-f]+)*\\\\b` }, // Hex w/ underscore support\n      // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n      { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:e[+-]?\\\\d+)?` }\n    ],\n    relevance: 0\n  };\n  const KEYWORDS = {\n    keyword:\n    // Magic constants:\n    // \n    '__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ ' +\n    // Function that look like language construct or language construct that look like function:\n    // List of keywords that may not require parenthesis\n    'die echo exit include include_once print require require_once ' +\n    // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n    // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n    // Other keywords:\n    // \n    // \n    'array abstract and as binary bool boolean break callable case catch class clone const continue declare ' +\n    'default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends ' +\n    'final finally float for foreach from global goto if implements instanceof insteadof int integer interface ' +\n    'isset iterable list match|0 mixed new object or private protected public real return string switch throw trait ' +\n    'try unset use var void while xor yield',\n    literal: 'false null true',\n    built_in:\n    // Standard PHP library:\n    // \n    'Error|0 ' + // error is too common a name esp since PHP is case in-sensitive\n    'AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ' +\n    // Reserved interfaces:\n    // \n    'ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap ' +\n    // Reserved classes:\n    // \n    'Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass'\n  };\n  return {\n    aliases: ['php3', 'php4', 'php5', 'php6', 'php7', 'php8'],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      hljs.COMMENT('//', '$', {contains: [PREPROCESSOR]}),\n      hljs.COMMENT(\n        '/\\\\*',\n        '\\\\*/',\n        {\n          contains: [\n            {\n              className: 'doctag',\n              begin: '@[A-Za-z]+'\n            }\n          ]\n        }\n      ),\n      hljs.COMMENT(\n        '__halt_compiler.+?;',\n        false,\n        {\n          endsWithParent: true,\n          keywords: '__halt_compiler'\n        }\n      ),\n      PREPROCESSOR,\n      {\n        className: 'keyword', begin: /\\$this\\b/\n      },\n      VARIABLE,\n      {\n        // swallow composed identifiers to avoid parsing them as keywords\n        begin: /(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/\n      },\n      {\n        className: 'function',\n        relevance: 0,\n        beginKeywords: 'fn function', end: /[;{]/, excludeEnd: true,\n        illegal: '[$%\\\\[]',\n        contains: [\n          {\n            beginKeywords: 'use',\n          },\n          hljs.UNDERSCORE_TITLE_MODE,\n          {\n            begin: '=>', // No markup, just a relevance booster\n            endsParent: true\n          },\n          {\n            className: 'params',\n            begin: '\\\\(', end: '\\\\)',\n            excludeBegin: true,\n            excludeEnd: true,\n            keywords: KEYWORDS,\n            contains: [\n              'self',\n              VARIABLE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRING,\n              NUMBER\n            ]\n          }\n        ]\n      },\n      {\n        className: 'class',\n        variants: [\n          { beginKeywords: \"enum\", illegal: /[($\"]/ },\n          { beginKeywords: \"class interface trait\", illegal: /[:($\"]/ }\n        ],\n        relevance: 0,\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          {beginKeywords: 'extends implements'},\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        beginKeywords: 'namespace',\n        relevance: 0,\n        end: ';',\n        illegal: /[.']/,\n        contains: [hljs.UNDERSCORE_TITLE_MODE]\n      },\n      {\n        beginKeywords: 'use',\n        relevance: 0,\n        end: ';',\n        contains: [hljs.UNDERSCORE_TITLE_MODE]\n      },\n      STRING,\n      NUMBER\n    ]\n  };\n}\n\nmodule.exports = php;\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n  return {\n    name: 'Plain text',\n    aliases: [\n      'text',\n      'txt'\n    ],\n    disableAutodetect: true\n  };\n}\n\nmodule.exports = plaintext;\n","/*\nLanguage: Pony\nAuthor: Joe Eli McIlvain \nDescription: Pony is an open-source, object-oriented, actor-model,\n             capabilities-secure, high performance programming language.\nWebsite: https://www.ponylang.io\n*/\n\nfunction pony(hljs) {\n  const KEYWORDS = {\n    keyword:\n      'actor addressof and as be break class compile_error compile_intrinsic ' +\n      'consume continue delegate digestof do else elseif embed end error ' +\n      'for fun if ifdef in interface is isnt lambda let match new not object ' +\n      'or primitive recover repeat return struct then trait try type until ' +\n      'use var where while with xor',\n    meta:\n      'iso val tag trn box ref',\n    literal:\n      'this false true'\n  };\n\n  const TRIPLE_QUOTE_STRING_MODE = {\n    className: 'string',\n    begin: '\"\"\"',\n    end: '\"\"\"',\n    relevance: 10\n  };\n\n  const QUOTE_STRING_MODE = {\n    className: 'string',\n    begin: '\"',\n    end: '\"',\n    contains: [ hljs.BACKSLASH_ESCAPE ]\n  };\n\n  const SINGLE_QUOTE_CHAR_MODE = {\n    className: 'string',\n    begin: '\\'',\n    end: '\\'',\n    contains: [ hljs.BACKSLASH_ESCAPE ],\n    relevance: 0\n  };\n\n  const TYPE_NAME = {\n    className: 'type',\n    begin: '\\\\b_?[A-Z][\\\\w]*',\n    relevance: 0\n  };\n\n  const PRIMED_NAME = {\n    begin: hljs.IDENT_RE + '\\'',\n    relevance: 0\n  };\n\n  const NUMBER_MODE = {\n    className: 'number',\n    begin: '(-?)(\\\\b0[xX][a-fA-F0-9]+|\\\\b0[bB][01]+|(\\\\b\\\\d+(_\\\\d+)?(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)',\n    relevance: 0\n  };\n\n  /**\n   * The `FUNCTION` and `CLASS` modes were intentionally removed to simplify\n   * highlighting and fix cases like\n   * ```\n   * interface Iterator[A: A]\n   *   fun has_next(): Bool\n   *   fun next(): A?\n   * ```\n   * where it is valid to have a function head without a body\n   */\n\n  return {\n    name: 'Pony',\n    keywords: KEYWORDS,\n    contains: [\n      TYPE_NAME,\n      TRIPLE_QUOTE_STRING_MODE,\n      QUOTE_STRING_MODE,\n      SINGLE_QUOTE_CHAR_MODE,\n      PRIMED_NAME,\n      NUMBER_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = pony;\n","/*\nLanguage: PowerShell\nDescription: PowerShell is a task-based command-line shell and scripting language built on .NET.\nAuthor: David Mohundro \nContributors: Nicholas Blumhardt , Victor Zhou , Nicolas Le Gall \nWebsite: https://docs.microsoft.com/en-us/powershell/\n*/\n\nfunction powershell(hljs) {\n  const TYPES = [\n    \"string\",\n    \"char\",\n    \"byte\",\n    \"int\",\n    \"long\",\n    \"bool\",\n    \"decimal\",\n    \"single\",\n    \"double\",\n    \"DateTime\",\n    \"xml\",\n    \"array\",\n    \"hashtable\",\n    \"void\"\n  ];\n\n  // https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands\n  const VALID_VERBS =\n    'Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|' +\n    'Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|' +\n    'Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|' +\n    'Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|' +\n    'ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|' +\n    'Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|' +\n    'Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|' +\n    'Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|' +\n    'Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|' +\n    'Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|' +\n    'Unprotect|Use|ForEach|Sort|Tee|Where';\n\n  const COMPARISON_OPERATORS =\n    '-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|' +\n    '-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|' +\n    '-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|' +\n    '-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|' +\n    '-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|' +\n    '-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|' +\n    '-split|-wildcard|-xor';\n\n  const KEYWORDS = {\n    $pattern: /-?[A-z\\.\\-]+\\b/,\n    keyword:\n      'if else foreach return do while until elseif begin for trap data dynamicparam ' +\n      'end break throw param continue finally in switch exit filter try process catch ' +\n      'hidden static parameter',\n    // \"echo\" relevance has been set to 0 to avoid auto-detect conflicts with shell transcripts\n    built_in:\n      'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp ' +\n      'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx ' +\n      'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group ' +\n      'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi ' +\n      'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh ' +\n      'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp ' +\n      'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp ' +\n      'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write'\n    // TODO: 'validate[A-Z]+' can't work in keywords\n  };\n\n  const TITLE_NAME_RE = /\\w[\\w\\d]*((-)[\\w\\d]+)*/;\n\n  const BACKTICK_ESCAPE = {\n    begin: '`[\\\\s\\\\S]',\n    relevance: 0\n  };\n\n  const VAR = {\n    className: 'variable',\n    variants: [\n      {\n        begin: /\\$\\B/\n      },\n      {\n        className: 'keyword',\n        begin: /\\$this/\n      },\n      {\n        begin: /\\$[\\w\\d][\\w\\d_:]*/\n      }\n    ]\n  };\n\n  const LITERAL = {\n    className: 'literal',\n    begin: /\\$(null|true|false)\\b/\n  };\n\n  const QUOTE_STRING = {\n    className: \"string\",\n    variants: [\n      {\n        begin: /\"/,\n        end: /\"/\n      },\n      {\n        begin: /@\"/,\n        end: /^\"@/\n      }\n    ],\n    contains: [\n      BACKTICK_ESCAPE,\n      VAR,\n      {\n        className: 'variable',\n        begin: /\\$[A-z]/,\n        end: /[^A-z]/\n      }\n    ]\n  };\n\n  const APOS_STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: /'/,\n        end: /'/\n      },\n      {\n        begin: /@'/,\n        end: /^'@/\n      }\n    ]\n  };\n\n  const PS_HELPTAGS = {\n    className: \"doctag\",\n    variants: [\n      /* no paramater help tags */\n      {\n        begin: /\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/\n      },\n      /* one parameter help tags */\n      {\n        begin: /\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/\n      }\n    ]\n  };\n\n  const PS_COMMENT = hljs.inherit(\n    hljs.COMMENT(null, null),\n    {\n      variants: [\n        /* single-line comment */\n        {\n          begin: /#/,\n          end: /$/\n        },\n        /* multi-line comment */\n        {\n          begin: /<#/,\n          end: /#>/\n        }\n      ],\n      contains: [ PS_HELPTAGS ]\n    }\n  );\n\n  const CMDLETS = {\n    className: 'built_in',\n    variants: [\n      {\n        begin: '('.concat(VALID_VERBS, ')+(-)[\\\\w\\\\d]+')\n      }\n    ]\n  };\n\n  const PS_CLASS = {\n    className: 'class',\n    beginKeywords: 'class enum',\n    end: /\\s*[{]/,\n    excludeEnd: true,\n    relevance: 0,\n    contains: [ hljs.TITLE_MODE ]\n  };\n\n  const PS_FUNCTION = {\n    className: 'function',\n    begin: /function\\s+/,\n    end: /\\s*\\{|$/,\n    excludeEnd: true,\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      {\n        begin: \"function\",\n        relevance: 0,\n        className: \"keyword\"\n      },\n      {\n        className: \"title\",\n        begin: TITLE_NAME_RE,\n        relevance: 0\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        className: \"params\",\n        relevance: 0,\n        contains: [ VAR ]\n      }\n      // CMDLETS\n    ]\n  };\n\n  // Using statment, plus type, plus assembly name.\n  const PS_USING = {\n    begin: /using\\s/,\n    end: /$/,\n    returnBegin: true,\n    contains: [\n      QUOTE_STRING,\n      APOS_STRING,\n      {\n        className: 'keyword',\n        begin: /(using|assembly|command|module|namespace|type)/\n      }\n    ]\n  };\n\n  // Comperison operators & function named parameters.\n  const PS_ARGUMENTS = {\n    variants: [\n      // PS literals are pretty verbose so it's a good idea to accent them a bit.\n      {\n        className: 'operator',\n        begin: '('.concat(COMPARISON_OPERATORS, ')\\\\b')\n      },\n      {\n        className: 'literal',\n        begin: /(-)[\\w\\d]+/,\n        relevance: 0\n      }\n    ]\n  };\n\n  const HASH_SIGNS = {\n    className: 'selector-tag',\n    begin: /@\\B/,\n    relevance: 0\n  };\n\n  // It's a very general rule so I'll narrow it a bit with some strict boundaries\n  // to avoid any possible false-positive collisions!\n  const PS_METHODS = {\n    className: 'function',\n    begin: /\\[.*\\]\\s*[\\w]+[ ]??\\(/,\n    end: /$/,\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      {\n        className: 'keyword',\n        begin: '('.concat(\n          KEYWORDS.keyword.toString().replace(/\\s/g, '|'\n          ), ')\\\\b'),\n        endsParent: true,\n        relevance: 0\n      },\n      hljs.inherit(hljs.TITLE_MODE, {\n        endsParent: true\n      })\n    ]\n  };\n\n  const GENTLEMANS_SET = [\n    // STATIC_MEMBER,\n    PS_METHODS,\n    PS_COMMENT,\n    BACKTICK_ESCAPE,\n    hljs.NUMBER_MODE,\n    QUOTE_STRING,\n    APOS_STRING,\n    // PS_NEW_OBJECT_TYPE,\n    CMDLETS,\n    VAR,\n    LITERAL,\n    HASH_SIGNS\n  ];\n\n  const PS_TYPE = {\n    begin: /\\[/,\n    end: /\\]/,\n    excludeBegin: true,\n    excludeEnd: true,\n    relevance: 0,\n    contains: [].concat(\n      'self',\n      GENTLEMANS_SET,\n      {\n        begin: \"(\" + TYPES.join(\"|\") + \")\",\n        className: \"built_in\",\n        relevance: 0\n      },\n      {\n        className: 'type',\n        begin: /[\\.\\w\\d]+/,\n        relevance: 0\n      }\n    )\n  };\n\n  PS_METHODS.contains.unshift(PS_TYPE);\n\n  return {\n    name: 'PowerShell',\n    aliases: [\n      \"ps\",\n      \"ps1\"\n    ],\n    case_insensitive: true,\n    keywords: KEYWORDS,\n    contains: GENTLEMANS_SET.concat(\n      PS_CLASS,\n      PS_FUNCTION,\n      PS_USING,\n      PS_ARGUMENTS,\n      PS_TYPE\n    )\n  };\n}\n\nmodule.exports = powershell;\n","/*\nLanguage: Processing\nDescription: Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts.\nAuthor: Erik Paluka \nWebsite: https://processing.org\nCategory: graphics\n*/\n\nfunction processing(hljs) {\n  return {\n    name: 'Processing',\n    keywords: {\n      keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +\n        'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +\n        'Object StringDict StringList Table TableRow XML ' +\n        // Java keywords\n        'false synchronized int abstract float private char boolean static null if const ' +\n        'for true while long throw strictfp finally protected import native final return void ' +\n        'enum else break transient new catch instanceof byte super volatile case assert short ' +\n        'package default double public try this switch continue throws protected public private',\n      literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',\n      title: 'setup draw',\n      built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +\n        'keyCode pixels focused frameCount frameRate height width ' +\n        'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +\n        'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +\n        'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +\n        'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +\n        'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +\n        'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +\n        'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +\n        'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +\n        'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +\n        'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +\n        'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +\n        'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +\n        'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +\n        'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +\n        'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +\n        'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +\n        'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +\n        'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +\n        'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +\n        'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +\n        'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +\n        'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = processing;\n","/*\nLanguage: Python profiler\nDescription: Python profiler results\nAuthor: Brian Beck \n*/\n\nfunction profile(hljs) {\n  return {\n    name: 'Python profiler',\n    contains: [\n      hljs.C_NUMBER_MODE,\n      {\n        begin: '[a-zA-Z_][\\\\da-zA-Z_]+\\\\.[\\\\da-zA-Z_]{1,3}',\n        end: ':',\n        excludeEnd: true\n      },\n      {\n        begin: '(ncalls|tottime|cumtime)',\n        end: '$',\n        keywords: 'ncalls tottime|10 cumtime|10 filename',\n        relevance: 10\n      },\n      {\n        begin: 'function calls',\n        end: '$',\n        contains: [ hljs.C_NUMBER_MODE ],\n        relevance: 10\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        begin: '\\\\(',\n        end: '\\\\)$',\n        excludeBegin: true,\n        excludeEnd: true,\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = profile;\n","/*\nLanguage: Prolog\nDescription: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.\nAuthor: Raivo Laanemets \nWebsite: https://en.wikipedia.org/wiki/Prolog\n*/\n\nfunction prolog(hljs) {\n  const ATOM = {\n\n    begin: /[a-z][A-Za-z0-9_]*/,\n    relevance: 0\n  };\n\n  const VAR = {\n\n    className: 'symbol',\n    variants: [\n      {\n        begin: /[A-Z][a-zA-Z0-9_]*/\n      },\n      {\n        begin: /_[A-Za-z0-9_]*/\n      }\n    ],\n    relevance: 0\n  };\n\n  const PARENTED = {\n\n    begin: /\\(/,\n    end: /\\)/,\n    relevance: 0\n  };\n\n  const LIST = {\n\n    begin: /\\[/,\n    end: /\\]/\n  };\n\n  const LINE_COMMENT = {\n\n    className: 'comment',\n    begin: /%/,\n    end: /$/,\n    contains: [ hljs.PHRASAL_WORDS_MODE ]\n  };\n\n  const BACKTICK_STRING = {\n\n    className: 'string',\n    begin: /`/,\n    end: /`/,\n    contains: [ hljs.BACKSLASH_ESCAPE ]\n  };\n\n  const CHAR_CODE = {\n    className: 'string', // 0'a etc.\n    begin: /0'(\\\\'|.)/\n  };\n\n  const SPACE_CODE = {\n    className: 'string',\n    begin: /0'\\\\s/ // 0'\\s\n  };\n\n  const PRED_OP = { // relevance booster\n    begin: /:-/\n  };\n\n  const inner = [\n\n    ATOM,\n    VAR,\n    PARENTED,\n    PRED_OP,\n    LIST,\n    LINE_COMMENT,\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.QUOTE_STRING_MODE,\n    hljs.APOS_STRING_MODE,\n    BACKTICK_STRING,\n    CHAR_CODE,\n    SPACE_CODE,\n    hljs.C_NUMBER_MODE\n  ];\n\n  PARENTED.contains = inner;\n  LIST.contains = inner;\n\n  return {\n    name: 'Prolog',\n    contains: inner.concat([\n      { // relevance booster\n        begin: /\\.$/\n      }\n    ])\n  };\n}\n\nmodule.exports = prolog;\n","/*\nLanguage: .properties\nContributors: Valentin Aitken , Egor Rogov \nWebsite: https://en.wikipedia.org/wiki/.properties\nCategory: common, config\n*/\n\nfunction properties(hljs) {\n\n  // whitespaces: space, tab, formfeed\n  var WS0 = '[ \\\\t\\\\f]*';\n  var WS1 = '[ \\\\t\\\\f]+';\n  // delimiter\n  var EQUAL_DELIM = WS0+'[:=]'+WS0;\n  var WS_DELIM = WS1;\n  var DELIM = '(' + EQUAL_DELIM + '|' + WS_DELIM + ')';\n  var KEY_ALPHANUM = '([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+';\n  var KEY_OTHER = '([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+';\n\n  var DELIM_AND_VALUE = {\n          // skip DELIM\n          end: DELIM,\n          relevance: 0,\n          starts: {\n            // value: everything until end of line (again, taking into account backslashes)\n            className: 'string',\n            end: /$/,\n            relevance: 0,\n            contains: [\n              { begin: '\\\\\\\\\\\\\\\\'},\n              { begin: '\\\\\\\\\\\\n' }\n            ]\n          }\n        };\n\n  return {\n    name: '.properties',\n    case_insensitive: true,\n    illegal: /\\S/,\n    contains: [\n      hljs.COMMENT('^\\\\s*[!#]', '$'),\n      // key: everything until whitespace or = or : (taking into account backslashes)\n      // case of a \"normal\" key\n      {\n        returnBegin: true,\n        variants: [\n          { begin: KEY_ALPHANUM + EQUAL_DELIM, relevance: 1 },\n          { begin: KEY_ALPHANUM + WS_DELIM, relevance: 0 }\n        ],\n        contains: [\n          {\n            className: 'attr',\n            begin: KEY_ALPHANUM,\n            endsParent: true,\n            relevance: 0\n          }\n        ],\n        starts: DELIM_AND_VALUE\n      },\n      // case of key containing non-alphanumeric chars => relevance = 0\n      {\n        begin: KEY_OTHER + DELIM,\n        returnBegin: true,\n        relevance: 0,\n        contains: [\n          {\n            className: 'meta',\n            begin: KEY_OTHER,\n            endsParent: true,\n            relevance: 0\n          }\n        ],\n        starts: DELIM_AND_VALUE\n      },\n      // case of an empty key\n      {\n        className: 'attr',\n        relevance: 0,\n        begin: KEY_OTHER + WS0 + '$'\n      }\n    ]\n  };\n}\n\nmodule.exports = properties;\n","/*\nLanguage: Protocol Buffers\nAuthor: Dan Tao \nDescription: Protocol buffer message definition format\nWebsite: https://developers.google.com/protocol-buffers/docs/proto3\nCategory: protocols\n*/\n\nfunction protobuf(hljs) {\n  return {\n    name: 'Protocol Buffers',\n    keywords: {\n      keyword: 'package import option optional required repeated group oneof',\n      built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +\n        'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',\n      literal: 'true false'\n    },\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'class',\n        beginKeywords: 'message enum service', end: /\\{/,\n        illegal: /\\n/,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title\n          })\n        ]\n      },\n      {\n        className: 'function',\n        beginKeywords: 'rpc',\n        end: /[{;]/, excludeEnd: true,\n        keywords: 'rpc returns'\n      },\n      { // match enum items (relevance)\n        // BLAH = ...;\n        begin: /^\\s*[A-Z_]+(?=\\s*=[^\\n]+;$)/\n      }\n    ]\n  };\n}\n\nmodule.exports = protobuf;\n","/*\nLanguage: Puppet\nAuthor: Jose Molina Colmenero \nWebsite: https://puppet.com/docs\nCategory: config\n*/\n\nfunction puppet(hljs) {\n  const PUPPET_KEYWORDS = {\n    keyword:\n    /* language keywords */\n      'and case default else elsif false if in import enherits node or true undef unless main settings $string ',\n    literal:\n    /* metaparameters */\n      'alias audit before loglevel noop require subscribe tag ' +\n      /* normal attributes */\n      'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +\n      'en_address ip_address realname command environment hour monute month monthday special target weekday ' +\n      'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +\n      'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +\n      'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ' +\n      'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +\n      'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +\n      'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +\n      'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +\n      'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +\n      'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +\n      'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +\n      'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +\n      'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +\n      'sslverify mounted',\n    built_in:\n    /* core facts */\n      'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +\n      'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ' +\n      'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +\n      'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +\n      'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +\n      'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease ' +\n      'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion ' +\n      'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced ' +\n      'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime ' +\n      'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'\n  };\n\n  const COMMENT = hljs.COMMENT('#', '$');\n\n  const IDENT_RE = '([A-Za-z_]|::)(\\\\w|::)*';\n\n  const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n    begin: IDENT_RE\n  });\n\n  const VARIABLE = {\n    className: 'variable',\n    begin: '\\\\$' + IDENT_RE\n  };\n\n  const STRING = {\n    className: 'string',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      VARIABLE\n    ],\n    variants: [\n      {\n        begin: /'/,\n        end: /'/\n      },\n      {\n        begin: /\"/,\n        end: /\"/\n      }\n    ]\n  };\n\n  return {\n    name: 'Puppet',\n    aliases: [ 'pp' ],\n    contains: [\n      COMMENT,\n      VARIABLE,\n      STRING,\n      {\n        beginKeywords: 'class',\n        end: '\\\\{|;',\n        illegal: /=/,\n        contains: [\n          TITLE,\n          COMMENT\n        ]\n      },\n      {\n        beginKeywords: 'define',\n        end: /\\{/,\n        contains: [\n          {\n            className: 'section',\n            begin: hljs.IDENT_RE,\n            endsParent: true\n          }\n        ]\n      },\n      {\n        begin: hljs.IDENT_RE + '\\\\s+\\\\{',\n        returnBegin: true,\n        end: /\\S/,\n        contains: [\n          {\n            className: 'keyword',\n            begin: hljs.IDENT_RE\n          },\n          {\n            begin: /\\{/,\n            end: /\\}/,\n            keywords: PUPPET_KEYWORDS,\n            relevance: 0,\n            contains: [\n              STRING,\n              COMMENT,\n              {\n                begin: '[a-zA-Z_]+\\\\s*=>',\n                returnBegin: true,\n                end: '=>',\n                contains: [\n                  {\n                    className: 'attr',\n                    begin: hljs.IDENT_RE\n                  }\n                ]\n              },\n              {\n                className: 'number',\n                begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n                relevance: 0\n              },\n              VARIABLE\n            ]\n          }\n        ],\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = puppet;\n","/*\nLanguage: PureBASIC\nAuthor: Tristano Ajmone \nDescription: Syntax highlighting for PureBASIC (v.5.00-5.60). No inline ASM highlighting. (v.1.2, May 2017)\nCredits: I've taken inspiration from the PureBasic language file for GeSHi, created by Gustavo Julio Fiorenza (GuShH).\nWebsite: https://www.purebasic.com\n*/\n\n// Base deafult colors in PB IDE: background: #FFFFDF; foreground: #000000;\n\nfunction purebasic(hljs) {\n  const STRINGS = { // PB IDE color: #0080FF (Azure Radiance)\n    className: 'string',\n    begin: '(~)?\"',\n    end: '\"',\n    illegal: '\\\\n'\n  };\n  const CONSTANTS = { // PB IDE color: #924B72 (Cannon Pink)\n    //  \"#\" + a letter or underscore + letters, digits or underscores + (optional) \"$\"\n    className: 'symbol',\n    begin: '#[a-zA-Z_]\\\\w*\\\\$?'\n  };\n\n  return {\n    name: 'PureBASIC',\n    aliases: [\n      'pb',\n      'pbi'\n    ],\n    keywords: // PB IDE color: #006666 (Blue Stone) + Bold\n      // Keywords from all version of PureBASIC 5.00 upward ...\n      'Align And Array As Break CallDebugger Case CompilerCase CompilerDefault ' +\n      'CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError ' +\n      'CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug ' +\n      'DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default ' +\n      'Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM ' +\n      'EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration ' +\n      'EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect ' +\n      'EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends ' +\n      'FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC ' +\n      'IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount ' +\n      'Map Module NewList NewMap Next Not Or Procedure ProcedureC ' +\n      'ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim ' +\n      'Read Repeat Restore Return Runtime Select Shared Static Step Structure ' +\n      'StructureUnion Swap Threaded To UndefineMacro Until Until  UnuseModule ' +\n      'UseModule Wend While With XIncludeFile XOr',\n    contains: [\n      // COMMENTS | PB IDE color: #00AAAA (Persian Green)\n      hljs.COMMENT(';', '$', {\n        relevance: 0\n      }),\n\n      { // PROCEDURES DEFINITIONS\n        className: 'function',\n        begin: '\\\\b(Procedure|Declare)(C|CDLL|DLL)?\\\\b',\n        end: '\\\\(',\n        excludeEnd: true,\n        returnBegin: true,\n        contains: [\n          { // PROCEDURE KEYWORDS | PB IDE color: #006666 (Blue Stone) + Bold\n            className: 'keyword',\n            begin: '(Procedure|Declare)(C|CDLL|DLL)?',\n            excludeEnd: true\n          },\n          { // PROCEDURE RETURN TYPE SETTING | PB IDE color: #000000 (Black)\n            className: 'type',\n            begin: '\\\\.\\\\w*'\n            // end: ' ',\n          },\n          hljs.UNDERSCORE_TITLE_MODE // PROCEDURE NAME | PB IDE color: #006666 (Blue Stone)\n        ]\n      },\n      STRINGS,\n      CONSTANTS\n    ]\n  };\n}\n\n/*  ==============================================================================\n                                      CHANGELOG\n    ==============================================================================\n    - v.1.2 (2017-05-12)\n        -- BUG-FIX: Some keywords were accidentally joyned together. Now fixed.\n    - v.1.1 (2017-04-30)\n        -- Updated to PureBASIC 5.60.\n        -- Keywords list now built by extracting them from the PureBASIC SDK's\n           \"SyntaxHilighting.dll\" (from each PureBASIC version). Tokens from each\n           version are added to the list, and renamed or removed tokens are kept\n           for the sake of covering all versions of the language from PureBASIC\n           v5.00 upward. (NOTE: currently, there are no renamed or deprecated\n           tokens in the keywords list). For more info, see:\n           -- http://www.purebasic.fr/english/viewtopic.php?&p=506269\n           -- https://github.com/tajmone/purebasic-archives/tree/master/syntax-highlighting/guidelines\n    - v.1.0 (April 2016)\n        -- First release\n        -- Keywords list taken and adapted from GuShH's (Gustavo Julio Fiorenza)\n           PureBasic language file for GeSHi:\n           -- https://github.com/easybook/geshi/blob/master/geshi/purebasic.php\n*/\n\nmodule.exports = purebasic;\n","/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel \nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n  return {\n    aliases: [ 'pycon' ],\n    contains: [\n      {\n        className: 'meta',\n        starts: {\n          // a space separates the REPL prefix from the actual code\n          // this is purely for cleaner HTML output\n          end: / |$/,\n          starts: {\n            end: '$',\n            subLanguage: 'python'\n          }\n        },\n        variants: [\n          {\n            begin: /^>>>(?=[ ]|$)/\n          },\n          {\n            begin: /^\\.\\.\\.(?=[ ]|$)/\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = pythonRepl;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n  const RESERVED_WORDS = [\n    'and',\n    'as',\n    'assert',\n    'async',\n    'await',\n    'break',\n    'class',\n    'continue',\n    'def',\n    'del',\n    'elif',\n    'else',\n    'except',\n    'finally',\n    'for',\n    'from',\n    'global',\n    'if',\n    'import',\n    'in',\n    'is',\n    'lambda',\n    'nonlocal|10',\n    'not',\n    'or',\n    'pass',\n    'raise',\n    'return',\n    'try',\n    'while',\n    'with',\n    'yield'\n  ];\n\n  const BUILT_INS = [\n    '__import__',\n    'abs',\n    'all',\n    'any',\n    'ascii',\n    'bin',\n    'bool',\n    'breakpoint',\n    'bytearray',\n    'bytes',\n    'callable',\n    'chr',\n    'classmethod',\n    'compile',\n    'complex',\n    'delattr',\n    'dict',\n    'dir',\n    'divmod',\n    'enumerate',\n    'eval',\n    'exec',\n    'filter',\n    'float',\n    'format',\n    'frozenset',\n    'getattr',\n    'globals',\n    'hasattr',\n    'hash',\n    'help',\n    'hex',\n    'id',\n    'input',\n    'int',\n    'isinstance',\n    'issubclass',\n    'iter',\n    'len',\n    'list',\n    'locals',\n    'map',\n    'max',\n    'memoryview',\n    'min',\n    'next',\n    'object',\n    'oct',\n    'open',\n    'ord',\n    'pow',\n    'print',\n    'property',\n    'range',\n    'repr',\n    'reversed',\n    'round',\n    'set',\n    'setattr',\n    'slice',\n    'sorted',\n    'staticmethod',\n    'str',\n    'sum',\n    'super',\n    'tuple',\n    'type',\n    'vars',\n    'zip'\n  ];\n\n  const LITERALS = [\n    '__debug__',\n    'Ellipsis',\n    'False',\n    'None',\n    'NotImplemented',\n    'True'\n  ];\n\n  // https://docs.python.org/3/library/typing.html\n  // TODO: Could these be supplemented by a CamelCase matcher in certain\n  // contexts, leaving these remaining only for relevance hinting?\n  const TYPES = [\n    \"Any\",\n    \"Callable\",\n    \"Coroutine\",\n    \"Dict\",\n    \"List\",\n    \"Literal\",\n    \"Generic\",\n    \"Optional\",\n    \"Sequence\",\n    \"Set\",\n    \"Tuple\",\n    \"Type\",\n    \"Union\"\n  ];\n\n  const KEYWORDS = {\n    $pattern: /[A-Za-z]\\w+|__\\w+__/,\n    keyword: RESERVED_WORDS,\n    built_in: BUILT_INS,\n    literal: LITERALS,\n    type: TYPES\n  };\n\n  const PROMPT = {\n    className: 'meta',\n    begin: /^(>>>|\\.\\.\\.) /\n  };\n\n  const SUBST = {\n    className: 'subst',\n    begin: /\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS,\n    illegal: /#/\n  };\n\n  const LITERAL_BRACKET = {\n    begin: /\\{\\{/,\n    relevance: 0\n  };\n\n  const STRING = {\n    className: 'string',\n    contains: [ hljs.BACKSLASH_ESCAPE ],\n    variants: [\n      {\n        begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n        end: /'''/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          PROMPT\n        ],\n        relevance: 10\n      },\n      {\n        begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n        end: /\"\"\"/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          PROMPT\n        ],\n        relevance: 10\n      },\n      {\n        begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n        end: /'''/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          PROMPT,\n          LITERAL_BRACKET,\n          SUBST\n        ]\n      },\n      {\n        begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n        end: /\"\"\"/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          PROMPT,\n          LITERAL_BRACKET,\n          SUBST\n        ]\n      },\n      {\n        begin: /([uU]|[rR])'/,\n        end: /'/,\n        relevance: 10\n      },\n      {\n        begin: /([uU]|[rR])\"/,\n        end: /\"/,\n        relevance: 10\n      },\n      {\n        begin: /([bB]|[bB][rR]|[rR][bB])'/,\n        end: /'/\n      },\n      {\n        begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n        end: /\"/\n      },\n      {\n        begin: /([fF][rR]|[rR][fF]|[fF])'/,\n        end: /'/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          LITERAL_BRACKET,\n          SUBST\n        ]\n      },\n      {\n        begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n        end: /\"/,\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          LITERAL_BRACKET,\n          SUBST\n        ]\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE\n    ]\n  };\n\n  // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n  const digitpart = '[0-9](_?[0-9])*';\n  const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n  const NUMBER = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      // exponentfloat, pointfloat\n      // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n      // optionally imaginary\n      // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n      // Note: no leading \\b because floats can start with a decimal point\n      // and we don't want to mishandle e.g. `fn(.5)`,\n      // no trailing \\b for pointfloat because it can end with a decimal point\n      // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n      // because both MUST contain a decimal point and so cannot be confused with\n      // the interior part of an identifier\n      {\n        begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?\\\\b`\n      },\n      {\n        begin: `(${pointfloat})[jJ]?`\n      },\n\n      // decinteger, bininteger, octinteger, hexinteger\n      // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n      // optionally \"long\" in Python 2\n      // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n      // decinteger is optionally imaginary\n      // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n      {\n        begin: '\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\\\b'\n      },\n      {\n        begin: '\\\\b0[bB](_?[01])+[lL]?\\\\b'\n      },\n      {\n        begin: '\\\\b0[oO](_?[0-7])+[lL]?\\\\b'\n      },\n      {\n        begin: '\\\\b0[xX](_?[0-9a-fA-F])+[lL]?\\\\b'\n      },\n\n      // imagnumber (digitpart-based)\n      // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n      {\n        begin: `\\\\b(${digitpart})[jJ]\\\\b`\n      }\n    ]\n  };\n  const COMMENT_TYPE = {\n    className: \"comment\",\n    begin: lookahead(/# type:/),\n    end: /$/,\n    keywords: KEYWORDS,\n    contains: [\n      { // prevent keywords from coloring `type`\n        begin: /# type:/\n      },\n      // comment within a datatype comment includes no keywords\n      {\n        begin: /#/,\n        end: /\\b\\B/,\n        endsWithParent: true\n      }\n    ]\n  };\n  const PARAMS = {\n    className: 'params',\n    variants: [\n      // Exclude params in functions without params\n      {\n        className: \"\",\n        begin: /\\(\\s*\\)/,\n        skip: true\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        excludeBegin: true,\n        excludeEnd: true,\n        keywords: KEYWORDS,\n        contains: [\n          'self',\n          PROMPT,\n          NUMBER,\n          STRING,\n          hljs.HASH_COMMENT_MODE\n        ]\n      }\n    ]\n  };\n  SUBST.contains = [\n    STRING,\n    NUMBER,\n    PROMPT\n  ];\n\n  return {\n    name: 'Python',\n    aliases: [\n      'py',\n      'gyp',\n      'ipython'\n    ],\n    keywords: KEYWORDS,\n    illegal: /(<\\/|->|\\?)|=>/,\n    contains: [\n      PROMPT,\n      NUMBER,\n      {\n        // very common convention\n        begin: /\\bself\\b/\n      },\n      {\n        // eat \"if\" prior to string so that it won't accidentally be\n        // labeled as an f-string\n        beginKeywords: \"if\",\n        relevance: 0\n      },\n      STRING,\n      COMMENT_TYPE,\n      hljs.HASH_COMMENT_MODE,\n      {\n        variants: [\n          {\n            className: 'function',\n            beginKeywords: 'def'\n          },\n          {\n            className: 'class',\n            beginKeywords: 'class'\n          }\n        ],\n        end: /:/,\n        illegal: /[${=;\\n,]/,\n        contains: [\n          hljs.UNDERSCORE_TITLE_MODE,\n          PARAMS,\n          {\n            begin: /->/,\n            endsWithParent: true,\n            keywords: KEYWORDS\n          }\n        ]\n      },\n      {\n        className: 'meta',\n        begin: /^[\\t ]*@/,\n        end: /(?=#)|$/,\n        contains: [\n          NUMBER,\n          PARAMS,\n          STRING\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = python;\n","/*\nLanguage: Q\nDescription: Q is a vector-based functional paradigm programming language built into the kdb+ database.\n             (K/Q/Kdb+ from Kx Systems)\nAuthor: Sergey Vidyuk \nWebsite: https://kx.com/connect-with-us/developers/\n*/\n\nfunction q(hljs) {\n  const KEYWORDS = {\n    $pattern: /(`?)[A-Za-z0-9_]+\\b/,\n    keyword:\n      'do while select delete by update from',\n    literal:\n      '0b 1b',\n    built_in:\n      'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum',\n    type:\n      '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'\n  };\n\n  return {\n    name: 'Q',\n    aliases: [\n      'k',\n      'kdb'\n    ],\n    keywords: KEYWORDS,\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = q;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: QML\nRequires: javascript.js, xml.js\nAuthor: John Foster \nDescription: Syntax highlighting for the Qt Quick QML scripting language, based mostly off\n             the JavaScript parser.\nWebsite: https://doc.qt.io/qt-5/qmlapplications.html\nCategory: scripting\n*/\n\nfunction qml(hljs) {\n  const KEYWORDS = {\n    keyword:\n      'in of on if for while finally var new function do return void else break catch ' +\n      'instanceof with throw case default try this switch continue typeof delete ' +\n      'let yield const export super debugger as async await import',\n    literal:\n      'true false null undefined NaN Infinity',\n    built_in:\n      'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +\n      'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +\n      'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +\n      'TypeError URIError Number Math Date String RegExp Array Float32Array ' +\n      'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +\n      'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +\n      'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +\n      'Behavior bool color coordinate date double enumeration font geocircle georectangle ' +\n      'geoshape int list matrix4x4 parent point quaternion real rect ' +\n      'size string url variant vector2d vector3d vector4d ' +\n      'Promise'\n  };\n\n  const QML_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9\\\\._]*';\n\n  // Isolate property statements. Ends at a :, =, ;, ,, a comment or end of line.\n  // Use property class.\n  const PROPERTY = {\n    className: 'keyword',\n    begin: '\\\\bproperty\\\\b',\n    starts: {\n      className: 'string',\n      end: '(:|=|;|,|//|/\\\\*|$)',\n      returnEnd: true\n    }\n  };\n\n  // Isolate signal statements. Ends at a ) a comment or end of line.\n  // Use property class.\n  const SIGNAL = {\n    className: 'keyword',\n    begin: '\\\\bsignal\\\\b',\n    starts: {\n      className: 'string',\n      end: '(\\\\(|:|=|;|,|//|/\\\\*|$)',\n      returnEnd: true\n    }\n  };\n\n  // id: is special in QML. When we see id: we want to mark the id: as attribute and\n  // emphasize the token following.\n  const ID_ID = {\n    className: 'attribute',\n    begin: '\\\\bid\\\\s*:',\n    starts: {\n      className: 'string',\n      end: QML_IDENT_RE,\n      returnEnd: false\n    }\n  };\n\n  // Find QML object attribute. An attribute is a QML identifier followed by :.\n  // Unfortunately it's hard to know where it ends, as it may contain scalars,\n  // objects, object definitions, or javascript. The true end is either when the parent\n  // ends or the next attribute is detected.\n  const QML_ATTRIBUTE = {\n    begin: QML_IDENT_RE + '\\\\s*:',\n    returnBegin: true,\n    contains: [\n      {\n        className: 'attribute',\n        begin: QML_IDENT_RE,\n        end: '\\\\s*:',\n        excludeEnd: true,\n        relevance: 0\n      }\n    ],\n    relevance: 0\n  };\n\n  // Find QML object. A QML object is a QML identifier followed by { and ends at the matching }.\n  // All we really care about is finding IDENT followed by { and just mark up the IDENT and ignore the {.\n  const QML_OBJECT = {\n    begin: concat(QML_IDENT_RE, /\\s*\\{/),\n    end: /\\{/,\n    returnBegin: true,\n    relevance: 0,\n    contains: [\n      hljs.inherit(hljs.TITLE_MODE, {\n        begin: QML_IDENT_RE\n      })\n    ]\n  };\n\n  return {\n    name: 'QML',\n    aliases: [ 'qt' ],\n    case_insensitive: false,\n    keywords: KEYWORDS,\n    contains: [\n      {\n        className: 'meta',\n        begin: /^\\s*['\"]use (strict|asm)['\"]/\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      { // template string\n        className: 'string',\n        begin: '`',\n        end: '`',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          {\n            className: 'subst',\n            begin: '\\\\$\\\\{',\n            end: '\\\\}'\n          }\n        ]\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'number',\n        variants: [\n          {\n            begin: '\\\\b(0[bB][01]+)'\n          },\n          {\n            begin: '\\\\b(0[oO][0-7]+)'\n          },\n          {\n            begin: hljs.C_NUMBER_RE\n          }\n        ],\n        relevance: 0\n      },\n      { // \"value\" container\n        begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n        keywords: 'return throw case',\n        contains: [\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.REGEXP_MODE,\n          { // E4X / JSX\n            begin: /\\s*[);\\]]/,\n            relevance: 0,\n            subLanguage: 'xml'\n          }\n        ],\n        relevance: 0\n      },\n      SIGNAL,\n      PROPERTY,\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            begin: /[A-Za-z$_][0-9A-Za-z$_]*/\n          }),\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            contains: [\n              hljs.C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          }\n        ],\n        illegal: /\\[|%/\n      },\n      {\n        // hack: prevents detection of keywords after dots\n        begin: '\\\\.' + hljs.IDENT_RE,\n        relevance: 0\n      },\n      ID_ID,\n      QML_ATTRIBUTE,\n      QML_OBJECT\n    ],\n    illegal: /#/\n  };\n}\n\nmodule.exports = qml;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: R\nDescription: R is a free software environment for statistical computing and graphics.\nAuthor: Joe Cheng \nContributors: Konrad Rudolph \nWebsite: https://www.r-project.org\nCategory: common,scientific\n*/\n\n/** @type LanguageFn */\nfunction r(hljs) {\n  // Identifiers in R cannot start with `_`, but they can start with `.` if it\n  // is not immediately followed by a digit.\n  // R also supports quoted identifiers, which are near-arbitrary sequences\n  // delimited by backticks (`…`), which may contain escape sequences. These are\n  // handled in a separate mode. See `test/markup/r/names.txt` for examples.\n  // FIXME: Support Unicode identifiers.\n  const IDENT_RE = /(?:(?:[a-zA-Z]|\\.[._a-zA-Z])[._a-zA-Z0-9]*)|\\.(?!\\d)/;\n  const SIMPLE_IDENT = /[a-zA-Z][a-zA-Z_0-9]*/;\n\n  return {\n    name: 'R',\n\n    // only in Haskell, not R\n    illegal: /->/,\n    keywords: {\n      $pattern: IDENT_RE,\n      keyword:\n        'function if in break next repeat else for while',\n      literal:\n        'NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 ' +\n        'NA_character_|10 NA_complex_|10',\n      built_in:\n        // Builtin constants\n        'LETTERS letters month.abb month.name pi T F ' +\n        // Primitive functions\n        // These are all the functions in `base` that are implemented as a\n        // `.Primitive`, minus those functions that are also keywords.\n        'abs acos acosh all any anyNA Arg as.call as.character ' +\n        'as.complex as.double as.environment as.integer as.logical ' +\n        'as.null.default as.numeric as.raw asin asinh atan atanh attr ' +\n        'attributes baseenv browser c call ceiling class Conj cos cosh ' +\n        'cospi cummax cummin cumprod cumsum digamma dim dimnames ' +\n        'emptyenv exp expression floor forceAndCall gamma gc.time ' +\n        'globalenv Im interactive invisible is.array is.atomic is.call ' +\n        'is.character is.complex is.double is.environment is.expression ' +\n        'is.finite is.function is.infinite is.integer is.language ' +\n        'is.list is.logical is.matrix is.na is.name is.nan is.null ' +\n        'is.numeric is.object is.pairlist is.raw is.recursive is.single ' +\n        'is.symbol lazyLoadDBfetch length lgamma list log max min ' +\n        'missing Mod names nargs nzchar oldClass on.exit pos.to.env ' +\n        'proc.time prod quote range Re rep retracemem return round ' +\n        'seq_along seq_len seq.int sign signif sin sinh sinpi sqrt ' +\n        'standardGeneric substitute sum switch tan tanh tanpi tracemem ' +\n        'trigamma trunc unclass untracemem UseMethod xtfrm',\n    },\n    compilerExtensions: [\n      // allow beforeMatch to act as a \"qualifier\" for the match\n      // the full match begin must be [beforeMatch][begin]\n      (mode, parent) => {\n        if (!mode.beforeMatch) return;\n        // starts conflicts with endsParent which we need to make sure the child\n        // rule is not matched multiple times\n        if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n        const originalMode = Object.assign({}, mode);\n        Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n        mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n        mode.starts = {\n          relevance: 0,\n          contains: [\n            Object.assign(originalMode, { endsParent: true })\n          ]\n        };\n        mode.relevance = 0;\n\n        delete originalMode.beforeMatch;\n      }\n    ],\n    contains: [\n      // Roxygen comments\n      hljs.COMMENT(\n        /#'/,\n        /$/,\n        {\n          contains: [\n            {\n              // Handle `@examples` separately to cause all subsequent code\n              // until the next `@`-tag on its own line to be kept as-is,\n              // preventing highlighting. This code is example R code, so nested\n              // doctags shouldn’t be treated as such. See\n              // `test/markup/r/roxygen.txt` for an example.\n              className: 'doctag',\n              begin: '@examples',\n              starts: {\n                contains: [\n                  { begin: /\\n/ },\n                  {\n                    begin: /#'\\s*(?=@[a-zA-Z]+)/,\n                    endsParent: true,\n                  },\n                  {\n                    begin: /#'/,\n                    end: /$/,\n                    excludeBegin: true,\n                  }\n                ]\n              }\n            },\n            {\n              // Handle `@param` to highlight the parameter name following\n              // after.\n              className: 'doctag',\n              begin: '@param',\n              end: /$/,\n              contains: [\n                {\n                  className: 'variable',\n                  variants: [\n                    { begin: IDENT_RE },\n                    { begin: /`(?:\\\\.|[^`\\\\])+`/ }\n                  ],\n                  endsParent: true\n                }\n              ]\n            },\n            {\n              className: 'doctag',\n              begin: /@[a-zA-Z]+/\n            },\n            {\n              className: 'meta-keyword',\n              begin: /\\\\[a-zA-Z]+/,\n            }\n          ]\n        }\n      ),\n\n      hljs.HASH_COMMENT_MODE,\n\n      {\n        className: 'string',\n        contains: [hljs.BACKSLASH_ESCAPE],\n        variants: [\n          hljs.END_SAME_AS_BEGIN({ begin: /[rR]\"(-*)\\(/, end: /\\)(-*)\"/ }),\n          hljs.END_SAME_AS_BEGIN({ begin: /[rR]\"(-*)\\{/, end: /\\}(-*)\"/ }),\n          hljs.END_SAME_AS_BEGIN({ begin: /[rR]\"(-*)\\[/, end: /\\](-*)\"/ }),\n          hljs.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\\(/, end: /\\)(-*)'/ }),\n          hljs.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\\{/, end: /\\}(-*)'/ }),\n          hljs.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\\[/, end: /\\](-*)'/ }),\n          {begin: '\"', end: '\"', relevance: 0},\n          {begin: \"'\", end: \"'\", relevance: 0}\n        ],\n      },\n      {\n        className: 'number',\n        relevance: 0,\n        beforeMatch: /([^a-zA-Z0-9._])/, // not part of an identifier\n        variants: [\n          // TODO: replace with negative look-behind when available\n          // { begin: /(?\nCategory: functional\n*/\nfunction reasonml(hljs) {\n  function orReValues(ops) {\n    return ops\n      .map(function(op) {\n        return op\n          .split('')\n          .map(function(char) {\n            return '\\\\' + char;\n          })\n          .join('');\n      })\n      .join('|');\n  }\n\n  const RE_IDENT = '~?[a-z$_][0-9a-zA-Z$_]*';\n  const RE_MODULE_IDENT = '`?[A-Z$_][0-9a-zA-Z$_]*';\n\n  const RE_PARAM_TYPEPARAM = '\\'?[a-z$_][0-9a-z$_]*';\n  const RE_PARAM_TYPE = '\\\\s*:\\\\s*[a-z$_][0-9a-z$_]*(\\\\(\\\\s*(' + RE_PARAM_TYPEPARAM + '\\\\s*(,' + RE_PARAM_TYPEPARAM + '\\\\s*)*)?\\\\))?';\n  const RE_PARAM = RE_IDENT + '(' + RE_PARAM_TYPE + '){0,2}';\n  const RE_OPERATOR = \"(\" + orReValues([\n    '||',\n    '++',\n    '**',\n    '+.',\n    '*',\n    '/',\n    '*.',\n    '/.',\n    '...'\n  ]) + \"|\\\\|>|&&|==|===)\";\n  const RE_OPERATOR_SPACED = \"\\\\s+\" + RE_OPERATOR + \"\\\\s+\";\n\n  const KEYWORDS = {\n    keyword:\n      'and as asr assert begin class constraint do done downto else end exception external ' +\n      'for fun function functor if in include inherit initializer ' +\n      'land lazy let lor lsl lsr lxor match method mod module mutable new nonrec ' +\n      'object of open or private rec sig struct then to try type val virtual when while with',\n    built_in:\n      'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ',\n    literal:\n      'true false'\n  };\n\n  const RE_NUMBER = '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n    '0[oO][0-7_]+[Lln]?|' +\n    '0[bB][01_]+[Lln]?|' +\n    '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)';\n\n  const NUMBER_MODE = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      {\n        begin: RE_NUMBER\n      },\n      {\n        begin: '\\\\(-' + RE_NUMBER + '\\\\)'\n      }\n    ]\n  };\n\n  const OPERATOR_MODE = {\n    className: 'operator',\n    relevance: 0,\n    begin: RE_OPERATOR\n  };\n  const LIST_CONTENTS_MODES = [\n    {\n      className: 'identifier',\n      relevance: 0,\n      begin: RE_IDENT\n    },\n    OPERATOR_MODE,\n    NUMBER_MODE\n  ];\n\n  const MODULE_ACCESS_CONTENTS = [\n    hljs.QUOTE_STRING_MODE,\n    OPERATOR_MODE,\n    {\n      className: 'module',\n      begin: \"\\\\b\" + RE_MODULE_IDENT,\n      returnBegin: true,\n      end: \"\\.\",\n      contains: [\n        {\n          className: 'identifier',\n          begin: RE_MODULE_IDENT,\n          relevance: 0\n        }\n      ]\n    }\n  ];\n\n  const PARAMS_CONTENTS = [\n    {\n      className: 'module',\n      begin: \"\\\\b\" + RE_MODULE_IDENT,\n      returnBegin: true,\n      end: \"\\.\",\n      relevance: 0,\n      contains: [\n        {\n          className: 'identifier',\n          begin: RE_MODULE_IDENT,\n          relevance: 0\n        }\n      ]\n    }\n  ];\n\n  const PARAMS_MODE = {\n    begin: RE_IDENT,\n    end: '(,|\\\\n|\\\\))',\n    relevance: 0,\n    contains: [\n      OPERATOR_MODE,\n      {\n        className: 'typing',\n        begin: ':',\n        end: '(,|\\\\n)',\n        returnBegin: true,\n        relevance: 0,\n        contains: PARAMS_CONTENTS\n      }\n    ]\n  };\n\n  const FUNCTION_BLOCK_MODE = {\n    className: 'function',\n    relevance: 0,\n    keywords: KEYWORDS,\n    variants: [\n      {\n        begin: '\\\\s(\\\\(\\\\.?.*?\\\\)|' + RE_IDENT + ')\\\\s*=>',\n        end: '\\\\s*=>',\n        returnBegin: true,\n        relevance: 0,\n        contains: [\n          {\n            className: 'params',\n            variants: [\n              {\n                begin: RE_IDENT\n              },\n              {\n                begin: RE_PARAM\n              },\n              {\n                begin: /\\(\\s*\\)/\n              }\n            ]\n          }\n        ]\n      },\n      {\n        begin: '\\\\s\\\\(\\\\.?[^;\\\\|]*\\\\)\\\\s*=>',\n        end: '\\\\s=>',\n        returnBegin: true,\n        relevance: 0,\n        contains: [\n          {\n            className: 'params',\n            relevance: 0,\n            variants: [ PARAMS_MODE ]\n          }\n        ]\n      },\n      {\n        begin: '\\\\(\\\\.\\\\s' + RE_IDENT + '\\\\)\\\\s*=>'\n      }\n    ]\n  };\n  MODULE_ACCESS_CONTENTS.push(FUNCTION_BLOCK_MODE);\n\n  const CONSTRUCTOR_MODE = {\n    className: 'constructor',\n    begin: RE_MODULE_IDENT + '\\\\(',\n    end: '\\\\)',\n    illegal: '\\\\n',\n    keywords: KEYWORDS,\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      OPERATOR_MODE,\n      {\n        className: 'params',\n        begin: '\\\\b' + RE_IDENT\n      }\n    ]\n  };\n\n  const PATTERN_MATCH_BLOCK_MODE = {\n    className: 'pattern-match',\n    begin: '\\\\|',\n    returnBegin: true,\n    keywords: KEYWORDS,\n    end: '=>',\n    relevance: 0,\n    contains: [\n      CONSTRUCTOR_MODE,\n      OPERATOR_MODE,\n      {\n        relevance: 0,\n        className: 'constructor',\n        begin: RE_MODULE_IDENT\n      }\n    ]\n  };\n\n  const MODULE_ACCESS_MODE = {\n    className: 'module-access',\n    keywords: KEYWORDS,\n    returnBegin: true,\n    variants: [\n      {\n        begin: \"\\\\b(\" + RE_MODULE_IDENT + \"\\\\.)+\" + RE_IDENT\n      },\n      {\n        begin: \"\\\\b(\" + RE_MODULE_IDENT + \"\\\\.)+\\\\(\",\n        end: \"\\\\)\",\n        returnBegin: true,\n        contains: [\n          FUNCTION_BLOCK_MODE,\n          {\n            begin: '\\\\(',\n            end: '\\\\)',\n            skip: true\n          }\n        ].concat(MODULE_ACCESS_CONTENTS)\n      },\n      {\n        begin: \"\\\\b(\" + RE_MODULE_IDENT + \"\\\\.)+\\\\{\",\n        end: /\\}/\n      }\n    ],\n    contains: MODULE_ACCESS_CONTENTS\n  };\n\n  PARAMS_CONTENTS.push(MODULE_ACCESS_MODE);\n\n  return {\n    name: 'ReasonML',\n    aliases: [ 're' ],\n    keywords: KEYWORDS,\n    illegal: '(:-|:=|\\\\$\\\\{|\\\\+=)',\n    contains: [\n      hljs.COMMENT('/\\\\*', '\\\\*/', {\n        illegal: '^(#,\\\\/\\\\/)'\n      }),\n      {\n        className: 'character',\n        begin: '\\'(\\\\\\\\[^\\']+|[^\\'])\\'',\n        illegal: '\\\\n',\n        relevance: 0\n      },\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'literal',\n        begin: '\\\\(\\\\)',\n        relevance: 0\n      },\n      {\n        className: 'literal',\n        begin: '\\\\[\\\\|',\n        end: '\\\\|\\\\]',\n        relevance: 0,\n        contains: LIST_CONTENTS_MODES\n      },\n      {\n        className: 'literal',\n        begin: '\\\\[',\n        end: '\\\\]',\n        relevance: 0,\n        contains: LIST_CONTENTS_MODES\n      },\n      CONSTRUCTOR_MODE,\n      {\n        className: 'operator',\n        begin: RE_OPERATOR_SPACED,\n        illegal: '-->',\n        relevance: 0\n      },\n      NUMBER_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      PATTERN_MATCH_BLOCK_MODE,\n      FUNCTION_BLOCK_MODE,\n      {\n        className: 'module-def',\n        begin: \"\\\\bmodule\\\\s+\" + RE_IDENT + \"\\\\s+\" + RE_MODULE_IDENT + \"\\\\s+=\\\\s+\\\\{\",\n        end: /\\}/,\n        returnBegin: true,\n        keywords: KEYWORDS,\n        relevance: 0,\n        contains: [\n          {\n            className: 'module',\n            relevance: 0,\n            begin: RE_MODULE_IDENT\n          },\n          {\n            begin: /\\{/,\n            end: /\\}/,\n            skip: true\n          }\n        ].concat(MODULE_ACCESS_CONTENTS)\n      },\n      MODULE_ACCESS_MODE\n    ]\n  };\n}\n\nmodule.exports = reasonml;\n","/*\nLanguage: RenderMan RIB\nAuthor: Konstantin Evdokimenko \nContributors: Shuen-Huei Guan \nWebsite: https://renderman.pixar.com/resources/RenderMan_20/ribBinding.html\nCategory: graphics\n*/\n\nfunction rib(hljs) {\n  return {\n    name: 'RenderMan RIB',\n    keywords:\n      'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +\n      'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +\n      'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +\n      'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +\n      'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +\n      'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +\n      'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +\n      'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +\n      'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +\n      'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +\n      'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +\n      'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +\n      'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +\n      'TransformPoints Translate TrimCurve WorldBegin WorldEnd',\n    illegal: '\nDescription: Syntax highlighting for Roboconf's DSL\nWebsite: http://roboconf.net\nCategory: config\n*/\n\nfunction roboconf(hljs) {\n  const IDENTIFIER = '[a-zA-Z-_][^\\\\n{]+\\\\{';\n\n  const PROPERTY = {\n    className: 'attribute',\n    begin: /[a-zA-Z-_]+/,\n    end: /\\s*:/,\n    excludeEnd: true,\n    starts: {\n      end: ';',\n      relevance: 0,\n      contains: [\n        {\n          className: 'variable',\n          begin: /\\.[a-zA-Z-_]+/\n        },\n        {\n          className: 'keyword',\n          begin: /\\(optional\\)/\n        }\n      ]\n    }\n  };\n\n  return {\n    name: 'Roboconf',\n    aliases: [\n      'graph',\n      'instances'\n    ],\n    case_insensitive: true,\n    keywords: 'import',\n    contains: [\n      // Facet sections\n      {\n        begin: '^facet ' + IDENTIFIER,\n        end: /\\}/,\n        keywords: 'facet',\n        contains: [\n          PROPERTY,\n          hljs.HASH_COMMENT_MODE\n        ]\n      },\n\n      // Instance sections\n      {\n        begin: '^\\\\s*instance of ' + IDENTIFIER,\n        end: /\\}/,\n        keywords: 'name count channels instance-data instance-state instance of',\n        illegal: /\\S/,\n        contains: [\n          'self',\n          PROPERTY,\n          hljs.HASH_COMMENT_MODE\n        ]\n      },\n\n      // Component sections\n      {\n        begin: '^' + IDENTIFIER,\n        end: /\\}/,\n        contains: [\n          PROPERTY,\n          hljs.HASH_COMMENT_MODE\n        ]\n      },\n\n      // Comments\n      hljs.HASH_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = roboconf;\n","/*\nLanguage: Microtik RouterOS script\nAuthor: Ivan Dementev \nDescription: Scripting host provides a way to automate some router maintenance tasks by means of executing user-defined scripts bounded to some event occurrence\nWebsite: https://wiki.mikrotik.com/wiki/Manual:Scripting\n*/\n\n// Colors from RouterOS terminal:\n//   green        - #0E9A00\n//   teal         - #0C9A9A\n//   purple       - #99069A\n//   light-brown  - #9A9900\n\nfunction routeros(hljs) {\n  const STATEMENTS = 'foreach do while for if from to step else on-error and or not in';\n\n  // Global commands: Every global command should start with \":\" token, otherwise it will be treated as variable.\n  const GLOBAL_COMMANDS = 'global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime';\n\n  // Common commands: Following commands available from most sub-menus:\n  const COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning';\n\n  const LITERALS = 'true false yes no nothing nil null';\n\n  const OBJECTS = 'traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw';\n\n  const VAR = {\n    className: 'variable',\n    variants: [\n      {\n        begin: /\\$[\\w\\d#@][\\w\\d_]*/\n      },\n      {\n        begin: /\\$\\{(.*?)\\}/\n      }\n    ]\n  };\n\n  const QUOTE_STRING = {\n    className: 'string',\n    begin: /\"/,\n    end: /\"/,\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      VAR,\n      {\n        className: 'variable',\n        begin: /\\$\\(/,\n        end: /\\)/,\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      }\n    ]\n  };\n\n  const APOS_STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/\n  };\n\n  return {\n    name: 'Microtik RouterOS script',\n    aliases: [\n      'mikrotik'\n    ],\n    case_insensitive: true,\n    keywords: {\n      $pattern: /:?[\\w-]+/,\n      literal: LITERALS,\n      keyword: STATEMENTS + ' :' + STATEMENTS.split(' ').join(' :') + ' :' + GLOBAL_COMMANDS.split(' ').join(' :')\n    },\n    contains: [\n      { // illegal syntax\n        variants: [\n          { // -- comment\n            begin: /\\/\\*/,\n            end: /\\*\\//\n          },\n          { // Stan comment\n            begin: /\\/\\//,\n            end: /$/\n          },\n          { // HTML tags\n            begin: /<\\//,\n            end: />/\n          }\n        ],\n        illegal: /./\n      },\n      hljs.COMMENT('^#', '$'),\n      QUOTE_STRING,\n      APOS_STRING,\n      VAR,\n      // attribute=value\n      {\n        // > is to avoid matches with => in other grammars\n        begin: /[\\w-]+=([^\\s{}[\\]()>]+)/,\n        relevance: 0,\n        returnBegin: true,\n        contains: [\n          {\n            className: 'attribute',\n            begin: /[^=]+/\n          },\n          {\n            begin: /=/,\n            endsWithParent: true,\n            relevance: 0,\n            contains: [\n              QUOTE_STRING,\n              APOS_STRING,\n              VAR,\n              {\n                className: 'literal',\n                begin: '\\\\b(' + LITERALS.split(' ').join('|') + ')\\\\b'\n              },\n              {\n                // Do not format unclassified values. Needed to exclude highlighting of values as built_in.\n                begin: /(\"[^\"]*\"|[^\\s{}[\\]]+)/\n              }\n              /*\n              {\n                // IPv4 addresses and subnets\n                className: 'number',\n                variants: [\n                  {begin: IPADDR_wBITMASK+'(,'+IPADDR_wBITMASK+')*'}, //192.168.0.0/24,1.2.3.0/24\n                  {begin: IPADDR+'-'+IPADDR},       // 192.168.0.1-192.168.0.3\n                  {begin: IPADDR+'(,'+IPADDR+')*'}, // 192.168.0.1,192.168.0.34,192.168.24.1,192.168.0.1\n                ]\n              },\n              {\n                // MAC addresses and DHCP Client IDs\n                className: 'number',\n                begin: /\\b(1:)?([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]){1,2}\\b/,\n              },\n              */\n            ]\n          }\n        ]\n      },\n      {\n        // HEX values\n        className: 'number',\n        begin: /\\*[0-9a-fA-F]+/\n      },\n      {\n        begin: '\\\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\\\s[(\\\\]|])',\n        returnBegin: true,\n        contains: [\n          {\n            className: 'builtin-name', // 'function',\n            begin: /\\w+/\n          }\n        ]\n      },\n      {\n        className: 'built_in',\n        variants: [\n          {\n            begin: '(\\\\.\\\\./|/|\\\\s)((' + OBJECTS.split(' ').join('|') + ');?\\\\s)+'\n          },\n          {\n            begin: /\\.\\./,\n            relevance: 0\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = routeros;\n","/*\nLanguage: RenderMan RSL\nAuthor: Konstantin Evdokimenko \nContributors: Shuen-Huei Guan \nWebsite: https://renderman.pixar.com/resources/RenderMan_20/shadingLanguage.html\nCategory: graphics\n*/\n\nfunction rsl(hljs) {\n  return {\n    name: 'RenderMan RSL',\n    keywords: {\n      keyword:\n        'float color point normal vector matrix while for if do return else break extern continue',\n      built_in:\n        'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +\n        'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +\n        'faceforward filterstep floor format fresnel incident length lightsource log match ' +\n        'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +\n        'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +\n        'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +\n        'texture textureinfo trace transform vtransform xcomp ycomp zcomp'\n    },\n    illegal: ' source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Ruby\nDescription: Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.\nWebsite: https://www.ruby-lang.org/\nAuthor: Anton Kovalyov \nContributors: Peter Leonov , Vasily Polovnyov , Loren Segal , Pascal Hurni , Cedric Sohrauer \nCategory: common\n*/\n\nfunction ruby(hljs) {\n  const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n  const RUBY_KEYWORDS = {\n    keyword:\n      'and then defined module in return redo if BEGIN retry end for self when ' +\n      'next until do begin unless END rescue else break undef not super class case ' +\n      'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor ' +\n      '__FILE__',\n    built_in: 'proc lambda',\n    literal:\n      'true false nil'\n  };\n  const YARDOCTAG = {\n    className: 'doctag',\n    begin: '@[A-Za-z]+'\n  };\n  const IRB_OBJECT = {\n    begin: '#<',\n    end: '>'\n  };\n  const COMMENT_MODES = [\n    hljs.COMMENT(\n      '#',\n      '$',\n      {\n        contains: [ YARDOCTAG ]\n      }\n    ),\n    hljs.COMMENT(\n      '^=begin',\n      '^=end',\n      {\n        contains: [ YARDOCTAG ],\n        relevance: 10\n      }\n    ),\n    hljs.COMMENT('^__END__', '\\\\n$')\n  ];\n  const SUBST = {\n    className: 'subst',\n    begin: /#\\{/,\n    end: /\\}/,\n    keywords: RUBY_KEYWORDS\n  };\n  const STRING = {\n    className: 'string',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ],\n    variants: [\n      {\n        begin: /'/,\n        end: /'/\n      },\n      {\n        begin: /\"/,\n        end: /\"/\n      },\n      {\n        begin: /`/,\n        end: /`/\n      },\n      {\n        begin: /%[qQwWx]?\\(/,\n        end: /\\)/\n      },\n      {\n        begin: /%[qQwWx]?\\[/,\n        end: /\\]/\n      },\n      {\n        begin: /%[qQwWx]?\\{/,\n        end: /\\}/\n      },\n      {\n        begin: /%[qQwWx]?/\n      },\n      {\n        begin: /%[qQwWx]?\\//,\n        end: /\\//\n      },\n      {\n        begin: /%[qQwWx]?%/,\n        end: /%/\n      },\n      {\n        begin: /%[qQwWx]?-/,\n        end: /-/\n      },\n      {\n        begin: /%[qQwWx]?\\|/,\n        end: /\\|/\n      },\n      // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n      // where ? is the last character of a preceding identifier, as in: `func?4`\n      {\n        begin: /\\B\\?(\\\\\\d{1,3})/\n      },\n      {\n        begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/\n      },\n      {\n        begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/\n      },\n      {\n        begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/\n      },\n      {\n        begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/\n      },\n      {\n        begin: /\\B\\?\\\\?\\S/\n      },\n      { // heredocs\n        begin: /<<[-~]?'?(\\w+)\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/,\n        returnBegin: true,\n        contains: [\n          {\n            begin: /<<[-~]?'?/\n          },\n          hljs.END_SAME_AS_BEGIN({\n            begin: /(\\w+)/,\n            end: /(\\w+)/,\n            contains: [\n              hljs.BACKSLASH_ESCAPE,\n              SUBST\n            ]\n          })\n        ]\n      }\n    ]\n  };\n\n  // Ruby syntax is underdocumented, but this grammar seems to be accurate\n  // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n  // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n  const decimal = '[1-9](_?[0-9])*|0';\n  const digits = '[0-9](_?[0-9])*';\n  const NUMBER = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      // decimal integer/float, optionally exponential or rational, optionally imaginary\n      {\n        begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b`\n      },\n\n      // explicit decimal/binary/octal/hexadecimal integer,\n      // optionally rational and/or imaginary\n      {\n        begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\"\n      },\n      {\n        begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\"\n      },\n      {\n        begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\"\n      },\n      {\n        begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\"\n      },\n\n      // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n      {\n        begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\"\n      }\n    ]\n  };\n\n  const PARAMS = {\n    className: 'params',\n    begin: '\\\\(',\n    end: '\\\\)',\n    endsParent: true,\n    keywords: RUBY_KEYWORDS\n  };\n\n  const RUBY_DEFAULT_CONTAINS = [\n    STRING,\n    {\n      className: 'class',\n      beginKeywords: 'class module',\n      end: '$|;',\n      illegal: /=/,\n      contains: [\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: '[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|!)?'\n        }),\n        {\n          begin: '<\\\\s*',\n          contains: [\n            {\n              begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE,\n              // we already get points for <, we don't need poitns\n              // for the name also\n              relevance: 0\n            }\n          ]\n        }\n      ].concat(COMMENT_MODES)\n    },\n    {\n      className: 'function',\n      // def method_name(\n      // def method_name;\n      // def method_name (end of line)\n      begin: concat(/def\\s+/, lookahead(RUBY_METHOD_RE + \"\\\\s*(\\\\(|;|$)\")),\n      relevance: 0, // relevance comes from kewords\n      keywords: \"def\",\n      end: '$|;',\n      contains: [\n        hljs.inherit(hljs.TITLE_MODE, {\n          begin: RUBY_METHOD_RE\n        }),\n        PARAMS\n      ].concat(COMMENT_MODES)\n    },\n    {\n      // swallow namespace qualifiers before symbols\n      begin: hljs.IDENT_RE + '::'\n    },\n    {\n      className: 'symbol',\n      begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n      relevance: 0\n    },\n    {\n      className: 'symbol',\n      begin: ':(?!\\\\s)',\n      contains: [\n        STRING,\n        {\n          begin: RUBY_METHOD_RE\n        }\n      ],\n      relevance: 0\n    },\n    NUMBER,\n    {\n      // negative-look forward attemps to prevent false matches like:\n      // @ident@ or $ident$ that might indicate this is not ruby at all\n      className: \"variable\",\n      begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n    },\n    {\n      className: 'params',\n      begin: /\\|/,\n      end: /\\|/,\n      relevance: 0, // this could be a lot of things (in other languages) other than params\n      keywords: RUBY_KEYWORDS\n    },\n    { // regexp container\n      begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n      keywords: 'unless',\n      contains: [\n        {\n          className: 'regexp',\n          contains: [\n            hljs.BACKSLASH_ESCAPE,\n            SUBST\n          ],\n          illegal: /\\n/,\n          variants: [\n            {\n              begin: '/',\n              end: '/[a-z]*'\n            },\n            {\n              begin: /%r\\{/,\n              end: /\\}[a-z]*/\n            },\n            {\n              begin: '%r\\\\(',\n              end: '\\\\)[a-z]*'\n            },\n            {\n              begin: '%r!',\n              end: '![a-z]*'\n            },\n            {\n              begin: '%r\\\\[',\n              end: '\\\\][a-z]*'\n            }\n          ]\n        }\n      ].concat(IRB_OBJECT, COMMENT_MODES),\n      relevance: 0\n    }\n  ].concat(IRB_OBJECT, COMMENT_MODES);\n\n  SUBST.contains = RUBY_DEFAULT_CONTAINS;\n  PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n  // >>\n  // ?>\n  const SIMPLE_PROMPT = \"[>?]>\";\n  // irb(main):001:0>\n  const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>\";\n  const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n  const IRB_DEFAULT = [\n    {\n      begin: /^\\s*=>/,\n      starts: {\n        end: '$',\n        contains: RUBY_DEFAULT_CONTAINS\n      }\n    },\n    {\n      className: 'meta',\n      begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n      starts: {\n        end: '$',\n        contains: RUBY_DEFAULT_CONTAINS\n      }\n    }\n  ];\n\n  COMMENT_MODES.unshift(IRB_OBJECT);\n\n  return {\n    name: 'Ruby',\n    aliases: [\n      'rb',\n      'gemspec',\n      'podspec',\n      'thor',\n      'irb'\n    ],\n    keywords: RUBY_KEYWORDS,\n    illegal: /\\/\\*/,\n    contains: [\n      hljs.SHEBANG({\n        binary: \"ruby\"\n      })\n    ]\n      .concat(IRB_DEFAULT)\n      .concat(COMMENT_MODES)\n      .concat(RUBY_DEFAULT_CONTAINS)\n  };\n}\n\nmodule.exports = ruby;\n","/*\nLanguage: Oracle Rules Language\nAuthor: Jason Jacobson \nDescription: The Oracle Utilities Rules Language is used to program the Oracle Utilities Applications acquired from LODESTAR Corporation.  The products include Billing Component, LPSS, Pricing Component etc. through version 1.6.1.\nWebsite: https://docs.oracle.com/cd/E17904_01/dev.1111/e10227/rlref.htm\nCategory: enterprise\n*/\n\nfunction ruleslanguage(hljs) {\n  return {\n    name: 'Oracle Rules Language',\n    keywords: {\n      keyword:\n        'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +\n        'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +\n        'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +\n        'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +\n        'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +\n        'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +\n        'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +\n        'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +\n        'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +\n        'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +\n        'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +\n        'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +\n        'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +\n        'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +\n        'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +\n        'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +\n        'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +\n        'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +\n        'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +\n        'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +\n        'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +\n        'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +\n        'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +\n        'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +\n        'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +\n        'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +\n        'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +\n        'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +\n        'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +\n        'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +\n        'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +\n        'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +\n        'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +\n        'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +\n        'NUMDAYS READ_DATE STAGING',\n      built_in:\n        'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +\n        'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +\n        'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +\n        'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +\n        'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'literal',\n        variants: [\n          { // looks like #-comment\n            begin: '#\\\\s+',\n            relevance: 0\n          },\n          {\n            begin: '#[a-zA-Z .]+'\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = ruleslanguage;\n","/*\nLanguage: Rust\nAuthor: Andrey Vlasovskikh \nContributors: Roman Shmatov , Kasper Andersen \nWebsite: https://www.rust-lang.org\nCategory: common, system\n*/\n\nfunction rust(hljs) {\n  const NUM_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\\?';\n  const KEYWORDS =\n    'abstract as async await become box break const continue crate do dyn ' +\n    'else enum extern false final fn for if impl in let loop macro match mod ' +\n    'move mut override priv pub ref return self Self static struct super ' +\n    'trait true try type typeof unsafe unsized use virtual where while yield';\n  const BUILTINS =\n    // functions\n    'drop ' +\n    // types\n    'i8 i16 i32 i64 i128 isize ' +\n    'u8 u16 u32 u64 u128 usize ' +\n    'f32 f64 ' +\n    'str char bool ' +\n    'Box Option Result String Vec ' +\n    // traits\n    'Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug ' +\n    'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +\n    'Extend IntoIterator DoubleEndedIterator ExactSizeIterator ' +\n    'SliceConcatExt ToString ' +\n    // macros\n    'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +\n    'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +\n    'include_bin! include_str! line! local_data_key! module_path! ' +\n    'option_env! print! println! select! stringify! try! unimplemented! ' +\n    'unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!';\n  return {\n    name: 'Rust',\n    aliases: [ 'rs' ],\n    keywords: {\n      $pattern: hljs.IDENT_RE + '!?',\n      keyword:\n        KEYWORDS,\n      literal:\n        'true false Some None Ok Err',\n      built_in:\n        BUILTINS\n    },\n    illegal: ''\n      }\n    ]\n  };\n}\n\nmodule.exports = rust;\n","/*\nLanguage: SAS\nAuthor: Mauricio Caceres \nDescription: Syntax Highlighting for SAS\n*/\n\nfunction sas(hljs) {\n  // Data step and PROC SQL statements\n  const SAS_KEYWORDS =\n    'do if then else end until while ' +\n    '' +\n    'abort array attrib by call cards cards4 catname continue ' +\n    'datalines datalines4 delete delim delimiter display dm drop ' +\n    'endsas error file filename footnote format goto in infile ' +\n    'informat input keep label leave length libname link list ' +\n    'lostcard merge missing modify options output out page put ' +\n    'redirect remove rename replace retain return select set skip ' +\n    'startsas stop title update waitsas where window x systask ' +\n    '' +\n    'add and alter as cascade check create delete describe ' +\n    'distinct drop foreign from group having index insert into in ' +\n    'key like message modify msgtype not null on or order primary ' +\n    'references reset restrict select set table unique update ' +\n    'validate view where';\n\n  // Built-in SAS functions\n  const SAS_FUN =\n    'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|' +\n    'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|' +\n    'cexist|cinv|close|cnonct|collate|compbl|compound|' +\n    'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|' +\n    'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|' +\n    'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|' +\n    'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|' +\n    'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|' +\n    'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|' +\n    'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|' +\n    'filename|fileref|finfo|finv|fipname|fipnamel|' +\n    'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|' +\n    'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|' +\n    'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|' +\n    'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|' +\n    'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|' +\n    'juldate|kurtosis|lag|lbound|left|length|lgamma|' +\n    'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|' +\n    'lowcase|max|mdy|mean|min|minute|mod|month|mopen|' +\n    'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|' +\n    'pathname|pdf|peek|peekc|pmf|point|poisson|poke|' +\n    'probbeta|probbnml|probchi|probf|probgam|probhypr|' +\n    'probit|probnegb|probnorm|probt|put|putc|putn|qtr|' +\n    'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|' +\n    'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|' +\n    'rewind|right|round|saving|scan|sdf|second|sign|' +\n    'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|' +\n    'stfips|stname|stnamel|substr|sum|symget|sysget|' +\n    'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|' +\n    'tinv|tnonct|today|translate|tranwrd|trigamma|' +\n    'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|' +\n    'varinfmt|varlabel|varlen|varname|varnum|varray|' +\n    'varrayx|vartype|verify|vformat|vformatd|vformatdx|' +\n    'vformatn|vformatnx|vformatw|vformatwx|vformatx|' +\n    'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|' +\n    'vinformatn|vinformatnx|vinformatw|vinformatwx|' +\n    'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|' +\n    'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|' +\n    'zipnamel|zipstate';\n\n  // Built-in macro functions\n  const SAS_MACRO_FUN =\n    'bquote|nrbquote|cmpres|qcmpres|compstor|' +\n    'datatyp|display|do|else|end|eval|global|goto|' +\n    'if|index|input|keydef|label|left|length|let|' +\n    'local|lowcase|macro|mend|nrbquote|nrquote|' +\n    'nrstr|put|qcmpres|qleft|qlowcase|qscan|' +\n    'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|' +\n    'substr|superq|syscall|sysevalf|sysexec|sysfunc|' +\n    'sysget|syslput|sysprod|sysrc|sysrput|then|to|' +\n    'trim|unquote|until|upcase|verify|while|window';\n\n  return {\n    name: 'SAS',\n    case_insensitive: true, // SAS is case-insensitive\n    keywords: {\n      literal:\n        'null missing _all_ _automatic_ _character_ _infile_ ' +\n        '_n_ _name_ _null_ _numeric_ _user_ _webout_',\n      meta:\n        SAS_KEYWORDS\n    },\n    contains: [\n      {\n        // Distinct highlight for proc , data, run, quit\n        className: 'keyword',\n        begin: /^\\s*(proc [\\w\\d_]+|data|run|quit)[\\s;]/\n      },\n      {\n        // Macro variables\n        className: 'variable',\n        begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\\.?/\n      },\n      {\n        // Special emphasis for datalines|cards\n        className: 'emphasis',\n        begin: /^\\s*datalines|cards.*;/,\n        end: /^\\s*;\\s*$/\n      },\n      { // Built-in macro variables take precedence\n        className: 'built_in',\n        begin: '%(' + SAS_MACRO_FUN + ')'\n      },\n      {\n        // User-defined macro functions highlighted after\n        className: 'name',\n        begin: /%[a-zA-Z_][a-zA-Z_0-9]*/\n      },\n      {\n        className: 'meta',\n        begin: '[^%](' + SAS_FUN + ')[\\(]'\n      },\n      {\n        className: 'string',\n        variants: [\n          hljs.APOS_STRING_MODE,\n          hljs.QUOTE_STRING_MODE\n        ]\n      },\n      hljs.COMMENT('\\\\*', ';'),\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = sas;\n","/*\nLanguage: Scala\nCategory: functional\nAuthor: Jan Berkel \nContributors: Erik Osheim \nWebsite: https://www.scala-lang.org\n*/\n\nfunction scala(hljs) {\n  const ANNOTATION = {\n    className: 'meta',\n    begin: '@[A-Za-z]+'\n  };\n\n  // used in strings for escaping/interpolation/substitution\n  const SUBST = {\n    className: 'subst',\n    variants: [\n      {\n        begin: '\\\\$[A-Za-z0-9_]+'\n      },\n      {\n        begin: /\\$\\{/,\n        end: /\\}/\n      }\n    ]\n  };\n\n  const STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: '\"\"\"',\n        end: '\"\"\"'\n      },\n      {\n        begin: '\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        begin: '[a-z]+\"',\n        end: '\"',\n        illegal: '\\\\n',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          SUBST\n        ]\n      },\n      {\n        className: 'string',\n        begin: '[a-z]+\"\"\"',\n        end: '\"\"\"',\n        contains: [ SUBST ],\n        relevance: 10\n      }\n    ]\n\n  };\n\n  const SYMBOL = {\n    className: 'symbol',\n    begin: '\\'\\\\w[\\\\w\\\\d_]*(?!\\')'\n  };\n\n  const TYPE = {\n    className: 'type',\n    begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n    relevance: 0\n  };\n\n  const NAME = {\n    className: 'title',\n    begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/,\n    relevance: 0\n  };\n\n  const CLASS = {\n    className: 'class',\n    beginKeywords: 'class object trait type',\n    end: /[:={\\[\\n;]/,\n    excludeEnd: true,\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        beginKeywords: 'extends with',\n        relevance: 10\n      },\n      {\n        begin: /\\[/,\n        end: /\\]/,\n        excludeBegin: true,\n        excludeEnd: true,\n        relevance: 0,\n        contains: [ TYPE ]\n      },\n      {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        excludeBegin: true,\n        excludeEnd: true,\n        relevance: 0,\n        contains: [ TYPE ]\n      },\n      NAME\n    ]\n  };\n\n  const METHOD = {\n    className: 'function',\n    beginKeywords: 'def',\n    end: /[:={\\[(\\n;]/,\n    excludeEnd: true,\n    contains: [ NAME ]\n  };\n\n  return {\n    name: 'Scala',\n    keywords: {\n      literal: 'true false null',\n      keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      STRING,\n      SYMBOL,\n      TYPE,\n      METHOD,\n      CLASS,\n      hljs.C_NUMBER_MODE,\n      ANNOTATION\n    ]\n  };\n}\n\nmodule.exports = scala;\n","/*\nLanguage: Scheme\nDescription: Scheme is a programming language in the Lisp family.\n             (keywords based on http://community.schemewiki.org/?scheme-keywords)\nAuthor: JP Verkamp \nContributors: Ivan Sagalaev \nOrigin: clojure.js\nWebsite: http://community.schemewiki.org/?what-is-scheme\nCategory: lisp\n*/\n\nfunction scheme(hljs) {\n  const SCHEME_IDENT_RE = '[^\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}\",\\'`;#|\\\\\\\\\\\\s]+';\n  const SCHEME_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+([./]\\\\d+)?';\n  const SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';\n  const KEYWORDS = {\n    $pattern: SCHEME_IDENT_RE,\n    'builtin-name':\n      'case-lambda call/cc class define-class exit-handler field import ' +\n      'inherit init-field interface let*-values let-values let/ec mixin ' +\n      'opt-lambda override protect provide public rename require ' +\n      'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +\n      'when with-syntax and begin call-with-current-continuation ' +\n      'call-with-input-file call-with-output-file case cond define ' +\n      'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +\n      'let-syntax letrec letrec-syntax map or syntax-rules \\' * + , ,@ - ... / ' +\n      '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +\n      'boolean? caar cadr call-with-input-file call-with-output-file ' +\n      'call-with-values car cdddar cddddr cdr ceiling char->integer ' +\n      'char-alphabetic? char-ci<=? char-ci=? char-ci>? ' +\n      'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +\n      'char-upper-case? char-whitespace? char<=? char=? char>? ' +\n      'char? close-input-port close-output-port complex? cons cos ' +\n      'current-input-port current-output-port denominator display eof-object? ' +\n      'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +\n      'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +\n      'integer? interaction-environment lcm length list list->string ' +\n      'list->vector list-ref list-tail list? load log magnitude make-polar ' +\n      'make-rectangular make-string make-vector max member memq memv min ' +\n      'modulo negative? newline not null-environment null? number->string ' +\n      'number? numerator odd? open-input-file open-output-file output-port? ' +\n      'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +\n      'rational? rationalize read read-char real-part real? remainder reverse ' +\n      'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +\n      'string->list string->number string->symbol string-append string-ci<=? ' +\n      'string-ci=? string-ci>? string-copy ' +\n      'string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? ' +\n      'tan transcript-off transcript-on truncate values vector ' +\n      'vector->list vector-fill! vector-length vector-ref vector-set! ' +\n      'with-input-from-file with-output-to-file write write-char zero?'\n  };\n\n  const LITERAL = {\n    className: 'literal',\n    begin: '(#t|#f|#\\\\\\\\' + SCHEME_IDENT_RE + '|#\\\\\\\\.)'\n  };\n\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      {\n        begin: SCHEME_SIMPLE_NUMBER_RE,\n        relevance: 0\n      },\n      {\n        begin: SCHEME_COMPLEX_NUMBER_RE,\n        relevance: 0\n      },\n      {\n        begin: '#b[0-1]+(/[0-1]+)?'\n      },\n      {\n        begin: '#o[0-7]+(/[0-7]+)?'\n      },\n      {\n        begin: '#x[0-9a-f]+(/[0-9a-f]+)?'\n      }\n    ]\n  };\n\n  const STRING = hljs.QUOTE_STRING_MODE;\n\n  const COMMENT_MODES = [\n    hljs.COMMENT(\n      ';',\n      '$',\n      {\n        relevance: 0\n      }\n    ),\n    hljs.COMMENT('#\\\\|', '\\\\|#')\n  ];\n\n  const IDENT = {\n    begin: SCHEME_IDENT_RE,\n    relevance: 0\n  };\n\n  const QUOTED_IDENT = {\n    className: 'symbol',\n    begin: '\\'' + SCHEME_IDENT_RE\n  };\n\n  const BODY = {\n    endsWithParent: true,\n    relevance: 0\n  };\n\n  const QUOTED_LIST = {\n    variants: [\n      {\n        begin: /'/\n      },\n      {\n        begin: '`'\n      }\n    ],\n    contains: [\n      {\n        begin: '\\\\(',\n        end: '\\\\)',\n        contains: [\n          'self',\n          LITERAL,\n          STRING,\n          NUMBER,\n          IDENT,\n          QUOTED_IDENT\n        ]\n      }\n    ]\n  };\n\n  const NAME = {\n    className: 'name',\n    relevance: 0,\n    begin: SCHEME_IDENT_RE,\n    keywords: KEYWORDS\n  };\n\n  const LAMBDA = {\n    begin: /lambda/,\n    endsWithParent: true,\n    returnBegin: true,\n    contains: [\n      NAME,\n      {\n        endsParent: true,\n        variants: [\n          {\n            begin: /\\(/,\n            end: /\\)/\n          },\n          {\n            begin: /\\[/,\n            end: /\\]/\n          }\n        ],\n        contains: [ IDENT ]\n      }\n    ]\n  };\n\n  const LIST = {\n    variants: [\n      {\n        begin: '\\\\(',\n        end: '\\\\)'\n      },\n      {\n        begin: '\\\\[',\n        end: '\\\\]'\n      }\n    ],\n    contains: [\n      LAMBDA,\n      NAME,\n      BODY\n    ]\n  };\n\n  BODY.contains = [\n    LITERAL,\n    NUMBER,\n    STRING,\n    IDENT,\n    QUOTED_IDENT,\n    QUOTED_LIST,\n    LIST\n  ].concat(COMMENT_MODES);\n\n  return {\n    name: 'Scheme',\n    illegal: /\\S/,\n    contains: [\n      hljs.SHEBANG(),\n      NUMBER,\n      STRING,\n      QUOTED_IDENT,\n      QUOTED_LIST,\n      LIST\n    ].concat(COMMENT_MODES)\n  };\n}\n\nmodule.exports = scheme;\n","/*\nLanguage: Scilab\nAuthor: Sylvestre Ledru \nOrigin: matlab.js\nDescription: Scilab is a port from Matlab\nWebsite: https://www.scilab.org\nCategory: scientific\n*/\n\nfunction scilab(hljs) {\n  const COMMON_CONTAINS = [\n    hljs.C_NUMBER_MODE,\n    {\n      className: 'string',\n      begin: '\\'|\\\"',\n      end: '\\'|\\\"',\n      contains: [ hljs.BACKSLASH_ESCAPE,\n        {\n          begin: '\\'\\''\n        } ]\n    }\n  ];\n\n  return {\n    name: 'Scilab',\n    aliases: [ 'sci' ],\n    keywords: {\n      $pattern: /%?\\w+/,\n      keyword: 'abort break case clear catch continue do elseif else endfunction end for function ' +\n        'global if pause return resume select try then while',\n      literal:\n        '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',\n      built_in: // Scilab has more than 2000 functions. Just list the most commons\n       'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error ' +\n       'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty ' +\n       'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log ' +\n       'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real ' +\n       'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan ' +\n       'type typename warning zeros matrix'\n    },\n    illegal: '(\"|#|/\\\\*|\\\\s+/\\\\w+)',\n    contains: [\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: '$',\n        contains: [\n          hljs.UNDERSCORE_TITLE_MODE,\n          {\n            className: 'params',\n            begin: '\\\\(',\n            end: '\\\\)'\n          }\n        ]\n      },\n      // seems to be a guard against [ident]' or [ident].\n      // perhaps to prevent attributes from flagging as keywords?\n      {\n        begin: '[a-zA-Z_][a-zA-Z_0-9]*[\\\\.\\']+',\n        relevance: 0\n      },\n      {\n        begin: '\\\\[',\n        end: '\\\\][\\\\.\\']*',\n        relevance: 0,\n        contains: COMMON_CONTAINS\n      },\n      hljs.COMMENT('//', '$')\n    ].concat(COMMON_CONTAINS)\n  };\n}\n\nmodule.exports = scilab;\n","const MODES = (hljs) => {\n  return {\n    IMPORTANT: {\n      className: 'meta',\n      begin: '!important'\n    },\n    HEXCOLOR: {\n      className: 'number',\n      begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n    },\n    ATTRIBUTE_SELECTOR_MODE: {\n      className: 'selector-attr',\n      begin: /\\[/,\n      end: /\\]/,\n      illegal: '$',\n      contains: [\n        hljs.APOS_STRING_MODE,\n        hljs.QUOTE_STRING_MODE\n      ]\n    }\n  };\n};\n\nconst TAGS = [\n  'a',\n  'abbr',\n  'address',\n  'article',\n  'aside',\n  'audio',\n  'b',\n  'blockquote',\n  'body',\n  'button',\n  'canvas',\n  'caption',\n  'cite',\n  'code',\n  'dd',\n  'del',\n  'details',\n  'dfn',\n  'div',\n  'dl',\n  'dt',\n  'em',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'header',\n  'hgroup',\n  'html',\n  'i',\n  'iframe',\n  'img',\n  'input',\n  'ins',\n  'kbd',\n  'label',\n  'legend',\n  'li',\n  'main',\n  'mark',\n  'menu',\n  'nav',\n  'object',\n  'ol',\n  'p',\n  'q',\n  'quote',\n  'samp',\n  'section',\n  'span',\n  'strong',\n  'summary',\n  'sup',\n  'table',\n  'tbody',\n  'td',\n  'textarea',\n  'tfoot',\n  'th',\n  'thead',\n  'time',\n  'tr',\n  'ul',\n  'var',\n  'video'\n];\n\nconst MEDIA_FEATURES = [\n  'any-hover',\n  'any-pointer',\n  'aspect-ratio',\n  'color',\n  'color-gamut',\n  'color-index',\n  'device-aspect-ratio',\n  'device-height',\n  'device-width',\n  'display-mode',\n  'forced-colors',\n  'grid',\n  'height',\n  'hover',\n  'inverted-colors',\n  'monochrome',\n  'orientation',\n  'overflow-block',\n  'overflow-inline',\n  'pointer',\n  'prefers-color-scheme',\n  'prefers-contrast',\n  'prefers-reduced-motion',\n  'prefers-reduced-transparency',\n  'resolution',\n  'scan',\n  'scripting',\n  'update',\n  'width',\n  // TODO: find a better solution?\n  'min-width',\n  'max-width',\n  'min-height',\n  'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n  'active',\n  'any-link',\n  'blank',\n  'checked',\n  'current',\n  'default',\n  'defined',\n  'dir', // dir()\n  'disabled',\n  'drop',\n  'empty',\n  'enabled',\n  'first',\n  'first-child',\n  'first-of-type',\n  'fullscreen',\n  'future',\n  'focus',\n  'focus-visible',\n  'focus-within',\n  'has', // has()\n  'host', // host or host()\n  'host-context', // host-context()\n  'hover',\n  'indeterminate',\n  'in-range',\n  'invalid',\n  'is', // is()\n  'lang', // lang()\n  'last-child',\n  'last-of-type',\n  'left',\n  'link',\n  'local-link',\n  'not', // not()\n  'nth-child', // nth-child()\n  'nth-col', // nth-col()\n  'nth-last-child', // nth-last-child()\n  'nth-last-col', // nth-last-col()\n  'nth-last-of-type', //nth-last-of-type()\n  'nth-of-type', //nth-of-type()\n  'only-child',\n  'only-of-type',\n  'optional',\n  'out-of-range',\n  'past',\n  'placeholder-shown',\n  'read-only',\n  'read-write',\n  'required',\n  'right',\n  'root',\n  'scope',\n  'target',\n  'target-within',\n  'user-invalid',\n  'valid',\n  'visited',\n  'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n  'after',\n  'backdrop',\n  'before',\n  'cue',\n  'cue-region',\n  'first-letter',\n  'first-line',\n  'grammar-error',\n  'marker',\n  'part',\n  'placeholder',\n  'selection',\n  'slotted',\n  'spelling-error'\n];\n\nconst ATTRIBUTES = [\n  'align-content',\n  'align-items',\n  'align-self',\n  'animation',\n  'animation-delay',\n  'animation-direction',\n  'animation-duration',\n  'animation-fill-mode',\n  'animation-iteration-count',\n  'animation-name',\n  'animation-play-state',\n  'animation-timing-function',\n  'auto',\n  'backface-visibility',\n  'background',\n  'background-attachment',\n  'background-clip',\n  'background-color',\n  'background-image',\n  'background-origin',\n  'background-position',\n  'background-repeat',\n  'background-size',\n  'border',\n  'border-bottom',\n  'border-bottom-color',\n  'border-bottom-left-radius',\n  'border-bottom-right-radius',\n  'border-bottom-style',\n  'border-bottom-width',\n  'border-collapse',\n  'border-color',\n  'border-image',\n  'border-image-outset',\n  'border-image-repeat',\n  'border-image-slice',\n  'border-image-source',\n  'border-image-width',\n  'border-left',\n  'border-left-color',\n  'border-left-style',\n  'border-left-width',\n  'border-radius',\n  'border-right',\n  'border-right-color',\n  'border-right-style',\n  'border-right-width',\n  'border-spacing',\n  'border-style',\n  'border-top',\n  'border-top-color',\n  'border-top-left-radius',\n  'border-top-right-radius',\n  'border-top-style',\n  'border-top-width',\n  'border-width',\n  'bottom',\n  'box-decoration-break',\n  'box-shadow',\n  'box-sizing',\n  'break-after',\n  'break-before',\n  'break-inside',\n  'caption-side',\n  'clear',\n  'clip',\n  'clip-path',\n  'color',\n  'column-count',\n  'column-fill',\n  'column-gap',\n  'column-rule',\n  'column-rule-color',\n  'column-rule-style',\n  'column-rule-width',\n  'column-span',\n  'column-width',\n  'columns',\n  'content',\n  'counter-increment',\n  'counter-reset',\n  'cursor',\n  'direction',\n  'display',\n  'empty-cells',\n  'filter',\n  'flex',\n  'flex-basis',\n  'flex-direction',\n  'flex-flow',\n  'flex-grow',\n  'flex-shrink',\n  'flex-wrap',\n  'float',\n  'font',\n  'font-display',\n  'font-family',\n  'font-feature-settings',\n  'font-kerning',\n  'font-language-override',\n  'font-size',\n  'font-size-adjust',\n  'font-smoothing',\n  'font-stretch',\n  'font-style',\n  'font-variant',\n  'font-variant-ligatures',\n  'font-variation-settings',\n  'font-weight',\n  'height',\n  'hyphens',\n  'icon',\n  'image-orientation',\n  'image-rendering',\n  'image-resolution',\n  'ime-mode',\n  'inherit',\n  'initial',\n  'justify-content',\n  'left',\n  'letter-spacing',\n  'line-height',\n  'list-style',\n  'list-style-image',\n  'list-style-position',\n  'list-style-type',\n  'margin',\n  'margin-bottom',\n  'margin-left',\n  'margin-right',\n  'margin-top',\n  'marks',\n  'mask',\n  'max-height',\n  'max-width',\n  'min-height',\n  'min-width',\n  'nav-down',\n  'nav-index',\n  'nav-left',\n  'nav-right',\n  'nav-up',\n  'none',\n  'normal',\n  'object-fit',\n  'object-position',\n  'opacity',\n  'order',\n  'orphans',\n  'outline',\n  'outline-color',\n  'outline-offset',\n  'outline-style',\n  'outline-width',\n  'overflow',\n  'overflow-wrap',\n  'overflow-x',\n  'overflow-y',\n  'padding',\n  'padding-bottom',\n  'padding-left',\n  'padding-right',\n  'padding-top',\n  'page-break-after',\n  'page-break-before',\n  'page-break-inside',\n  'perspective',\n  'perspective-origin',\n  'pointer-events',\n  'position',\n  'quotes',\n  'resize',\n  'right',\n  'src', // @font-face\n  'tab-size',\n  'table-layout',\n  'text-align',\n  'text-align-last',\n  'text-decoration',\n  'text-decoration-color',\n  'text-decoration-line',\n  'text-decoration-style',\n  'text-indent',\n  'text-overflow',\n  'text-rendering',\n  'text-shadow',\n  'text-transform',\n  'text-underline-position',\n  'top',\n  'transform',\n  'transform-origin',\n  'transform-style',\n  'transition',\n  'transition-delay',\n  'transition-duration',\n  'transition-property',\n  'transition-timing-function',\n  'unicode-bidi',\n  'vertical-align',\n  'visibility',\n  'white-space',\n  'widows',\n  'width',\n  'word-break',\n  'word-spacing',\n  'word-wrap',\n  'z-index'\n  // reverse makes sure longer attributes `font-weight` are matched fully\n  // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch \nWebsite: https://sass-lang.com\nCategory: common, css\n*/\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n  const modes = MODES(hljs);\n  const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n  const PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n\n  const AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n  const AT_MODIFIERS = \"and or not only\";\n  const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n  const VARIABLE = {\n    className: 'variable',\n    begin: '(\\\\$' + IDENT_RE + ')\\\\b'\n  };\n\n  return {\n    name: 'SCSS',\n    case_insensitive: true,\n    illegal: '[=/|\\']',\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'selector-id',\n        begin: '#[A-Za-z0-9_-]+',\n        relevance: 0\n      },\n      {\n        className: 'selector-class',\n        begin: '\\\\.[A-Za-z0-9_-]+',\n        relevance: 0\n      },\n      modes.ATTRIBUTE_SELECTOR_MODE,\n      {\n        className: 'selector-tag',\n        begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n        // was there, before, but why?\n        relevance: 0\n      },\n      {\n        className: 'selector-pseudo',\n        begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n      },\n      {\n        className: 'selector-pseudo',\n        begin: '::(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n      },\n      VARIABLE,\n      { // pseudo-selector params\n        begin: /\\(/,\n        end: /\\)/,\n        contains: [ hljs.CSS_NUMBER_MODE ]\n      },\n      {\n        className: 'attribute',\n        begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n      },\n      {\n        begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b'\n      },\n      {\n        begin: ':',\n        end: ';',\n        contains: [\n          VARIABLE,\n          modes.HEXCOLOR,\n          hljs.CSS_NUMBER_MODE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          modes.IMPORTANT\n        ]\n      },\n      // matching these here allows us to treat them more like regular CSS\n      // rules so everything between the {} gets regular rule highlighting,\n      // which is what we want for page and font-face\n      {\n        begin: '@(page|font-face)',\n        lexemes: AT_IDENTIFIER,\n        keywords: '@page @font-face'\n      },\n      {\n        begin: '@',\n        end: '[{;]',\n        returnBegin: true,\n        keywords: {\n          $pattern: /[a-z-]+/,\n          keyword: AT_MODIFIERS,\n          attribute: MEDIA_FEATURES.join(\" \")\n        },\n        contains: [\n          {\n            begin: AT_IDENTIFIER,\n            className: \"keyword\"\n          },\n          {\n            begin: /[a-z-]+(?=:)/,\n            className: \"attribute\"\n          },\n          VARIABLE,\n          hljs.QUOTE_STRING_MODE,\n          hljs.APOS_STRING_MODE,\n          modes.HEXCOLOR,\n          hljs.CSS_NUMBER_MODE\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = scss;\n","/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune \nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n  return {\n    name: 'Shell Session',\n    aliases: [ 'console' ],\n    contains: [\n      {\n        className: 'meta',\n        // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n        // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n        // echo /path/to/home > t.exe\n        begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#]/,\n        starts: {\n          end: /[^\\\\](?=\\s*$)/,\n          subLanguage: 'bash'\n        }\n      }\n    ]\n  };\n}\n\nmodule.exports = shell;\n","/*\nLanguage: Smali\nAuthor: Dennis Titze \nDescription: Basic Smali highlighting\nWebsite: https://github.com/JesusFreke/smali\n*/\n\nfunction smali(hljs) {\n  const smali_instr_low_prio = [\n    'add',\n    'and',\n    'cmp',\n    'cmpg',\n    'cmpl',\n    'const',\n    'div',\n    'double',\n    'float',\n    'goto',\n    'if',\n    'int',\n    'long',\n    'move',\n    'mul',\n    'neg',\n    'new',\n    'nop',\n    'not',\n    'or',\n    'rem',\n    'return',\n    'shl',\n    'shr',\n    'sput',\n    'sub',\n    'throw',\n    'ushr',\n    'xor'\n  ];\n  const smali_instr_high_prio = [\n    'aget',\n    'aput',\n    'array',\n    'check',\n    'execute',\n    'fill',\n    'filled',\n    'goto/16',\n    'goto/32',\n    'iget',\n    'instance',\n    'invoke',\n    'iput',\n    'monitor',\n    'packed',\n    'sget',\n    'sparse'\n  ];\n  const smali_keywords = [\n    'transient',\n    'constructor',\n    'abstract',\n    'final',\n    'synthetic',\n    'public',\n    'private',\n    'protected',\n    'static',\n    'bridge',\n    'system'\n  ];\n  return {\n    name: 'Smali',\n    contains: [\n      {\n        className: 'string',\n        begin: '\"',\n        end: '\"',\n        relevance: 0\n      },\n      hljs.COMMENT(\n        '#',\n        '$',\n        {\n          relevance: 0\n        }\n      ),\n      {\n        className: 'keyword',\n        variants: [\n          {\n            begin: '\\\\s*\\\\.end\\\\s[a-zA-Z0-9]*'\n          },\n          {\n            begin: '^[ ]*\\\\.[a-zA-Z]*',\n            relevance: 0\n          },\n          {\n            begin: '\\\\s:[a-zA-Z_0-9]*',\n            relevance: 0\n          },\n          {\n            begin: '\\\\s(' + smali_keywords.join('|') + ')'\n          }\n        ]\n      },\n      {\n        className: 'built_in',\n        variants: [\n          {\n            begin: '\\\\s(' + smali_instr_low_prio.join('|') + ')\\\\s'\n          },\n          {\n            begin: '\\\\s(' + smali_instr_low_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)+\\\\s',\n            relevance: 10\n          },\n          {\n            begin: '\\\\s(' + smali_instr_high_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)*\\\\s',\n            relevance: 10\n          }\n        ]\n      },\n      {\n        className: 'class',\n        begin: 'L[^\\(;:\\n]*;',\n        relevance: 0\n      },\n      {\n        begin: '[vp][0-9]+'\n      }\n    ]\n  };\n}\n\nmodule.exports = smali;\n","/*\nLanguage: Smalltalk\nDescription: Smalltalk is an object-oriented, dynamically typed reflective programming language.\nAuthor: Vladimir Gubarkov \nWebsite: https://en.wikipedia.org/wiki/Smalltalk\n*/\n\nfunction smalltalk(hljs) {\n  const VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';\n  const CHAR = {\n    className: 'string',\n    begin: '\\\\$.{1}'\n  };\n  const SYMBOL = {\n    className: 'symbol',\n    begin: '#' + hljs.UNDERSCORE_IDENT_RE\n  };\n  return {\n    name: 'Smalltalk',\n    aliases: [ 'st' ],\n    keywords: 'self super nil true false thisContext', // only 6\n    contains: [\n      hljs.COMMENT('\"', '\"'),\n      hljs.APOS_STRING_MODE,\n      {\n        className: 'type',\n        begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n        relevance: 0\n      },\n      {\n        begin: VAR_IDENT_RE + ':',\n        relevance: 0\n      },\n      hljs.C_NUMBER_MODE,\n      SYMBOL,\n      CHAR,\n      {\n        // This looks more complicated than needed to avoid combinatorial\n        // explosion under V8. It effectively means `| var1 var2 ... |` with\n        // whitespace adjacent to `|` being optional.\n        begin: '\\\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\\\|',\n        returnBegin: true,\n        end: /\\|/,\n        illegal: /\\S/,\n        contains: [ {\n          begin: '(\\\\|[ ]*)?' + VAR_IDENT_RE\n        } ]\n      },\n      {\n        begin: '#\\\\(',\n        end: '\\\\)',\n        contains: [\n          hljs.APOS_STRING_MODE,\n          CHAR,\n          hljs.C_NUMBER_MODE,\n          SYMBOL\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = smalltalk;\n","/*\nLanguage: SML (Standard ML)\nAuthor: Edwin Dalorzo \nDescription: SML language definition.\nWebsite: https://www.smlnj.org\nOrigin: ocaml.js\nCategory: functional\n*/\nfunction sml(hljs) {\n  return {\n    name: 'SML (Standard ML)',\n    aliases: [ 'ml' ],\n    keywords: {\n      $pattern: '[a-z_]\\\\w*!?',\n      keyword:\n        /* according to Definition of Standard ML 97  */\n        'abstype and andalso as case datatype do else end eqtype ' +\n        'exception fn fun functor handle if in include infix infixr ' +\n        'let local nonfix of op open orelse raise rec sharing sig ' +\n        'signature struct structure then type val with withtype where while',\n      built_in:\n        /* built-in types according to basis library */\n        'array bool char exn int list option order real ref string substring vector unit word',\n      literal:\n        'true false NONE SOME LESS EQUAL GREATER nil'\n    },\n    illegal: /\\/\\/|>>/,\n    contains: [\n      {\n        className: 'literal',\n        begin: /\\[(\\|\\|)?\\]|\\(\\)/,\n        relevance: 0\n      },\n      hljs.COMMENT(\n        '\\\\(\\\\*',\n        '\\\\*\\\\)',\n        {\n          contains: [ 'self' ]\n        }\n      ),\n      { /* type variable */\n        className: 'symbol',\n        begin: '\\'[A-Za-z_](?!\\')[\\\\w\\']*'\n        /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */\n      },\n      { /* polymorphic variant */\n        className: 'type',\n        begin: '`[A-Z][\\\\w\\']*'\n      },\n      { /* module or constructor */\n        className: 'type',\n        begin: '\\\\b[A-Z][\\\\w\\']*',\n        relevance: 0\n      },\n      { /* don't color identifiers, but safely catch all identifiers with ' */\n        begin: '[a-z_]\\\\w*\\'[\\\\w\\']*'\n      },\n      hljs.inherit(hljs.APOS_STRING_MODE, {\n        className: 'string',\n        relevance: 0\n      }),\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        illegal: null\n      }),\n      {\n        className: 'number',\n        begin:\n          '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n          '0[oO][0-7_]+[Lln]?|' +\n          '0[bB][01_]+[Lln]?|' +\n          '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',\n        relevance: 0\n      },\n      {\n        begin: /[-=]>/ // relevance booster\n      }\n    ]\n  };\n}\n\nmodule.exports = sml;\n","/*\nLanguage: SQF\nAuthor: Søren Enevoldsen \nContributors: Marvin Saignat , Dedmen Miller \nDescription: Scripting language for the Arma game series\nWebsite: https://community.bistudio.com/wiki/SQF_syntax\nCategory: scripting\n*/\n\nfunction sqf(hljs) {\n  // In SQF, a variable start with _\n  const VARIABLE = {\n    className: 'variable',\n    begin: /\\b_+[a-zA-Z]\\w*/\n  };\n\n  // In SQF, a function should fit myTag_fnc_myFunction pattern\n  // https://community.bistudio.com/wiki/Functions_Library_(Arma_3)#Adding_a_Function\n  const FUNCTION = {\n    className: 'title',\n    begin: /[a-zA-Z][a-zA-Z0-9]+_fnc_\\w*/\n  };\n\n  // In SQF strings, quotes matching the start are escaped by adding a consecutive.\n  // Example of single escaped quotes: \" \"\" \" and  ' '' '.\n  const STRINGS = {\n    className: 'string',\n    variants: [\n      {\n        begin: '\"',\n        end: '\"',\n        contains: [ {\n          begin: '\"\"',\n          relevance: 0\n        } ]\n      },\n      {\n        begin: '\\'',\n        end: '\\'',\n        contains: [ {\n          begin: '\\'\\'',\n          relevance: 0\n        } ]\n      }\n    ]\n  };\n\n  // list of keywords from:\n  // https://community.bistudio.com/wiki/PreProcessor_Commands\n  const PREPROCESSOR = {\n    className: 'meta',\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      'meta-keyword':\n        'define undef ifdef ifndef else endif include'\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0\n      },\n      hljs.inherit(STRINGS, {\n        className: 'meta-string'\n      }),\n      {\n        className: 'meta-string',\n        begin: /<[^\\n>]*>/,\n        end: /$/,\n        illegal: '\\\\n'\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n\n  return {\n    name: 'SQF',\n    case_insensitive: true,\n    keywords: {\n      keyword:\n        'case catch default do else exit exitWith for forEach from if ' +\n        'private switch then throw to try waitUntil while with',\n      built_in:\n        'abs accTime acos action actionIDs actionKeys actionKeysImages actionKeysNames ' +\n        'actionKeysNamesArray actionName actionParams activateAddons activatedAddons activateKey ' +\n        'add3DENConnection add3DENEventHandler add3DENLayer addAction addBackpack addBackpackCargo ' +\n        'addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea ' +\n        'addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler ' +\n        'addForce addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo ' +\n        'addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats ' +\n        'addMagazine addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal ' +\n        'addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler ' +\n        'addMPEventHandler addMusicEventHandler addOwnedMine addPlayerScores addPrimaryWeaponItem ' +\n        'addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem ' +\n        'addSwitchableUnit addTeamMember addToRemainsCollector addTorque addUniform addVehicle addVest ' +\n        'addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponItem ' +\n        'addWeaponPool addWeaponTurret admin agent agents AGLToASL aimedAtTarget aimPos airDensityRTD ' +\n        'airplaneThrottle airportSide AISFinishHeal alive all3DENEntities allAirports allControls ' +\n        'allCurators allCutLayers allDead allDeadMen allDisplays allGroups allMapMarkers allMines ' +\n        'allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage ' +\n        'allowDammage allowFileOperations allowFleeing allowGetIn allowSprint allPlayers allSimpleObjects ' +\n        'allSites allTurrets allUnits allUnitsUAV allVariables ammo ammoOnPylon and animate animateBay ' +\n        'animateDoor animatePylon animateSource animationNames animationPhase animationSourcePhase ' +\n        'animationState append apply armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert ' +\n        'assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret ' +\n        'assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems ' +\n        'assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam ' +\n        'assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject ' +\n        'attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines ' +\n        'backpackSpaceFor behaviour benchmark binocular boundingBox boundingBoxReal boundingCenter ' +\n        'breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode ' +\n        'call callExtension camCommand camCommit camCommitPrepared camCommitted camConstuctionSetParams ' +\n        'camCreate camDestroy cameraEffect cameraEffectEnableHUD cameraInterest cameraOn cameraView ' +\n        'campaignConfigFile camPreload camPreloaded camPrepareBank camPrepareDir camPrepareDive ' +\n        'camPrepareFocus camPrepareFov camPrepareFovRange camPreparePos camPrepareRelPos camPrepareTarget ' +\n        'camSetBank camSetDir camSetDive camSetFocus camSetFov camSetFovRange camSetPos camSetRelPos ' +\n        'camSetTarget camTarget camUseNVG canAdd canAddItemToBackpack canAddItemToUniform canAddItemToVest ' +\n        'cancelSimpleTaskDestination canFire canMove canSlingLoad canStand canSuspend ' +\n        'canTriggerDynamicSimulation canUnloadInCombat canVehicleCargo captive captiveNum cbChecked ' +\n        'cbSetChecked ceil channelEnabled cheatsEnabled checkAIFeature checkVisibility className ' +\n        'clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons ' +\n        'clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal ' +\n        'clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool ' +\n        'clientOwner closeDialog closeDisplay closeOverlay collapseObjectTree collect3DENHistory ' +\n        'collectiveRTD combatMode commandArtilleryFire commandChat commander commandFire commandFollow ' +\n        'commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop ' +\n        'commandSuppressiveFire commandTarget commandWatch comment commitOverlay compile compileFinal ' +\n        'completedFSM composeText configClasses configFile configHierarchy configName configProperties ' +\n        'configSourceAddonList configSourceMod configSourceModList confirmSensorTarget ' +\n        'connectTerminalToUAV controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count ' +\n        'countEnemy countFriendly countSide countType countUnknown create3DENComposition create3DENEntity ' +\n        'createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject ' +\n        'createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker ' +\n        'createMarkerLocal createMenu createMine createMissionDisplay createMPCampaignDisplay ' +\n        'createSimpleObject createSimpleTask createSite createSoundSource createTask createTeam ' +\n        'createTrigger createUnit createVehicle createVehicleCrew createVehicleLocal crew ctAddHeader ' +\n        'ctAddRow ctClear ctCurSel ctData ctFindHeaderRows ctFindRowHeader ctHeaderControls ctHeaderCount ' +\n        'ctRemoveHeaders ctRemoveRows ctrlActivate ctrlAddEventHandler ctrlAngle ctrlAutoScrollDelay ' +\n        'ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ' +\n        'ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ' +\n        'ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ' +\n        'ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ' +\n        'ctrlParent ctrlParentControlsGroup ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ' +\n        'ctrlScale ctrlSetActiveColor ctrlSetAngle ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ' +\n        'ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ' +\n        'ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ' +\n        'ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ' +\n        'ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ' +\n        'ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontHeightSecondary ' +\n        'ctrlSetFontP ctrlSetFontPB ctrlSetFontSecondary ctrlSetForegroundColor ctrlSetModel ' +\n        'ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPixelPrecision ctrlSetPosition ctrlSetScale ' +\n        'ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ' +\n        'ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ' +\n        'ctrlTextWidth ctrlType ctrlVisible ctRowControls ctRowCount ctSetCurSel ctSetData ' +\n        'ctSetHeaderTemplate ctSetRowTemplate ctSetValue ctValue curatorAddons curatorCamera ' +\n        'curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea ' +\n        'curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected ' +\n        'curatorWaypointCost current3DENOperation currentChannel currentCommand currentMagazine ' +\n        'currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle ' +\n        'currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint ' +\n        'currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorObject cursorTarget ' +\n        'customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime ' +\n        'deActivateKey debriefingText debugFSM debugLog deg delete3DENEntities deleteAt deleteCenter ' +\n        'deleteCollection deleteEditorObject deleteGroup deleteGroupWhenEmpty deleteIdentity ' +\n        'deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus ' +\n        'deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines ' +\n        'diag_activeMissionFSMs diag_activeScripts diag_activeSQFScripts diag_activeSQSScripts ' +\n        'diag_captureFrame diag_captureFrameToFile diag_captureSlowFrame diag_codePerformance ' +\n        'diag_drawMode diag_enable diag_enabled diag_fps diag_fpsMin diag_frameNo diag_lightNewLoad ' +\n        'diag_list diag_log diag_logSlowFrame diag_mergeConfigFile diag_recordTurretLimits ' +\n        'diag_setLightNew diag_tickTime diag_toggle dialog diarySubjectExists didJIP didJIPOwner ' +\n        'difficulty difficultyEnabled difficultyEnabledRTD difficultyOption direction directSay disableAI ' +\n        'disableCollisionWith disableConversation disableDebriefingStats disableMapIndicators ' +\n        'disableNVGEquipment disableRemoteSensors disableSerialization disableTIEquipment ' +\n        'disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayParent ' +\n        'displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam ' +\n        'distance distance2D distanceSqr distributionRegion do3DENAction doArtilleryFire doFire doFollow ' +\n        'doFSM doGetOut doMove doorPhase doStop doSuppressiveFire doTarget doWatch drawArrow drawEllipse ' +\n        'drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawPolygon drawRectangle ' +\n        'drawTriangle driver drop dynamicSimulationDistance dynamicSimulationDistanceCoef ' +\n        'dynamicSimulationEnabled dynamicSimulationSystemEnabled echo edit3DENMissionAttributes editObject ' +\n        'editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature ' +\n        'enableAimPrecision enableAttack enableAudioFeature enableAutoStartUpRTD enableAutoTrimRTD ' +\n        'enableCamShake enableCaustics enableChannel enableCollisionWith enableCopilot ' +\n        'enableDebriefingStats enableDiagLegend enableDynamicSimulation enableDynamicSimulationSystem ' +\n        'enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights ' +\n        'enableInfoPanelComponent enableIRLasers enableMimics enablePersonTurret enableRadio enableReload ' +\n        'enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation ' +\n        'enableSimulationGlobal enableStamina enableTeamSwitch enableTraffic enableUAVConnectability ' +\n        'enableUAVWaypoints enableVehicleCargo enableVehicleSensor enableWeaponDisassembly ' +\n        'endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities ' +\n        'environmentEnabled estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack ' +\n        'everyContainer exec execEditorScript execFSM execVM exp expectedDestination exportJIPMessages ' +\n        'eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission ' +\n        'fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition ' +\n        'findEmptyPositionReady findIf findNearestEnemy finishMissionInit finite fire fireAtTarget ' +\n        'firstBackpack flag flagAnimationPhase flagOwner flagSide flagTexture fleeing floor flyInHeight ' +\n        'flyInHeightASL fog fogForecast fogParams forceAddUniform forcedMap forceEnd forceFlagTexture ' +\n        'forceFollowRoad forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange ' +\n        'forEachMember forEachMemberAgent forEachMemberTeam forgetTarget format formation ' +\n        'formationDirection formationLeader formationMembers formationPosition formationTask formatText ' +\n        'formLeader freeLook fromEditor fuel fullCrew gearIDCAmmoCount gearSlotAmmoCount gearSlotData ' +\n        'get3DENActionState get3DENAttribute get3DENCamera get3DENConnections get3DENEntity ' +\n        'get3DENEntityID get3DENGrid get3DENIconsVisible get3DENLayerEntities get3DENLinesVisible ' +\n        'get3DENMissionAttribute get3DENMouseOver get3DENSelected getAimingCoef getAllEnvSoundControllers ' +\n        'getAllHitPointsDamage getAllOwnedMines getAllSoundControllers getAmmoCargo getAnimAimPrecision ' +\n        'getAnimSpeedCoef getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA ' +\n        'getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining ' +\n        'getBurningValue getCameraViewDirection getCargoIndex getCenterOfMass getClientState ' +\n        'getClientStateNumber getCompatiblePylonMagazines getConnectedUAV getContainerMaxLoad ' +\n        'getCursorObjectParams getCustomAimCoef getDammage getDescription getDir getDirVisual ' +\n        'getDLCAssetsUsage getDLCAssetsUsageByName getDLCs getEditorCamera getEditorMode ' +\n        'getEditorObjectScope getElevationOffset getEnvSoundController getFatigue getForcedFlagTexture ' +\n        'getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom ' +\n        'getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos ' +\n        'getMarkerSize getMarkerType getMass getMissionConfig getMissionConfigValue getMissionDLCs ' +\n        'getMissionLayerEntities getModelInfo getMousePosition getMusicPlayedTime getNumber ' +\n        'getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy ' +\n        'getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs ' +\n        'getPilotCameraDirection getPilotCameraPosition getPilotCameraRotation getPilotCameraTarget ' +\n        'getPlateNumber getPlayerChannel getPlayerScores getPlayerUID getPos getPosASL getPosASLVisual ' +\n        'getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getPylonMagazines getRelDir ' +\n        'getRelPos getRemoteSensorsDisabled getRepairCargo getResolution getShadowDistance getShotParents ' +\n        'getSlingLoad getSoundController getSoundControllerResult getSpeed getStamina getStatValue ' +\n        'getSuppression getTerrainGrid getTerrainHeightASL getText getTotalDLCUsageTime getUnitLoadout ' +\n        'getUnitTrait getUserMFDText getUserMFDvalue getVariable getVehicleCargo getWeaponCargo ' +\n        'getWeaponSway getWingsOrientationRTD getWingsPositionRTD getWPPos glanceAt globalChat globalRadio ' +\n        'goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId ' +\n        'groupOwner groupRadio groupSelectedUnits groupSelectUnit gunner gusts halt handgunItems ' +\n        'handgunMagazine handgunWeapon handsHit hasInterface hasPilotCamera hasWeapon hcAllGroups ' +\n        'hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup ' +\n        'hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hideSelection hint hintC ' +\n        'hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups ' +\n        'importance in inArea inAreaArray incapacitatedState inflame inflamed infoPanel ' +\n        'infoPanelComponentEnabled infoPanelComponents infoPanels inGameUISetEventHandler inheritsFrom ' +\n        'initAmbientLife inPolygon inputAction inRangeOfArtillery insertEditorObject intersect is3DEN ' +\n        'is3DENMultiplayer isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest ' +\n        'isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDamageAllowed isDedicated ' +\n        'isDLCAvailable isEngineOn isEqualTo isEqualType isEqualTypeAll isEqualTypeAny isEqualTypeArray ' +\n        'isEqualTypeParams isFilePatchingEnabled isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader ' +\n        'isGroupDeletedWhenEmpty isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn ' +\n        'isKeyActive isKindOf isLaserOn isLightOn isLocalized isManualFire isMarkedForCollection ' +\n        'isMultiplayer isMultiplayerSolo isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad ' +\n        'isPipEnabled isPlayer isRealTime isRemoteExecuted isRemoteExecutedJIP isServer isShowing3DIcons ' +\n        'isSimpleObject isSprintAllowed isStaminaEnabled isSteamMission isStreamFriendlyUIEnabled isText ' +\n        'isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUIContext ' +\n        'isUniformAllowed isVehicleCargo isVehicleRadarOn isVehicleSensorEnabled isWalking ' +\n        'isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent ' +\n        'joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact ' +\n        'kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language ' +\n        'laserTarget lbAdd lbClear lbColor lbColorRight lbCurSel lbData lbDelete lbIsSelected lbPicture ' +\n        'lbPictureRight lbSelection lbSetColor lbSetColorRight lbSetCurSel lbSetData lbSetPicture ' +\n        'lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetPictureRight ' +\n        'lbSetPictureRightColor lbSetPictureRightColorDisabled lbSetPictureRightColorSelected ' +\n        'lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetText lbSetTextRight lbSetTooltip ' +\n        'lbSetValue lbSize lbSort lbSortByValue lbText lbTextRight lbValue leader leaderboardDeInit ' +\n        'leaderboardGetRows leaderboardInit leaderboardRequestRowsFriends leaderboardsRequestUploadScore ' +\n        'leaderboardsRequestUploadScoreKeepBest leaderboardState leaveVehicle libraryCredits ' +\n        'libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed ' +\n        'linearConversion lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith ' +\n        'linkItem list listObjects listRemoteTargets listVehicleSensors ln lnbAddArray lnbAddColumn ' +\n        'lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow ' +\n        'lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData ' +\n        'lnbSetPicture lnbSetText lnbSetValue lnbSize lnbSort lnbSortByValue lnbText lnbValue load loadAbs ' +\n        'loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform ' +\n        'loadVest local localize locationPosition lock lockCameraTo lockCargo lockDriver locked ' +\n        'lockedCargo lockedDriver lockedTurret lockIdentity lockTurret lockWP log logEntities logNetwork ' +\n        'logNetworkTerminate lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo ' +\n        'magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack ' +\n        'magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd ' +\n        'mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam ' +\n        'markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText ' +\n        'markerType max members menuAction menuAdd menuChecked menuClear menuCollapse menuData menuDelete ' +\n        'menuEnable menuEnabled menuExpand menuHover menuPicture menuSetAction menuSetCheck menuSetData ' +\n        'menuSetPicture menuSetValue menuShortcut menuShortcutText menuSize menuSort menuText menuURL ' +\n        'menuValue min mineActive mineDetectedBy missionConfigFile missionDifficulty missionName ' +\n        'missionNamespace missionStart missionVersion mod modelToWorld modelToWorldVisual ' +\n        'modelToWorldVisualWorld modelToWorldWorld modParams moonIntensity moonPhase morale move ' +\n        'move3DENCamera moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret ' +\n        'moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name nameSound ' +\n        'nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing ' +\n        'nearestObject nearestObjects nearestTerrainObjects nearObjects nearObjectsReady nearRoads ' +\n        'nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex ' +\n        'nextWeatherChange nMenuItems not numberOfEnginesRTD numberToDate objectCurators objectFromNetId ' +\n        'objectParent objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch ' +\n        'onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter ' +\n        'onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected ' +\n        'onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch ' +\n        'openCuratorInterface openDLCPage openMap openSteamApp openYoutubeVideo or orderGetIn overcast ' +\n        'overcastForecast owner param params parseNumber parseSimpleArray parseText parsingNamespace ' +\n        'particlesQuality pickWeaponPool pitch pixelGrid pixelGridBase pixelGridNoUIScale pixelH pixelW ' +\n        'playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide ' +\n        'playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission ' +\n        'playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ' +\n        'ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ' +\n        'ppEffectEnabled ppEffectForceInNVG precision preloadCamera preloadObject preloadSound ' +\n        'preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon ' +\n        'primaryWeaponItems primaryWeaponMagazine priority processDiaryLink productVersion profileName ' +\n        'profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition ' +\n        'publicVariable publicVariableClient publicVariableServer pushBack pushBackUnique putWeaponPool ' +\n        'queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate ' +\n        'radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random ' +\n        'rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl ' +\n        'remoteExec remoteExecCall remoteExecutedOwner remove3DENConnection remove3DENEventHandler ' +\n        'remove3DENLayer removeAction removeAll3DENEventHandlers removeAllActions removeAllAssignedItems ' +\n        'removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas ' +\n        'removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems ' +\n        'removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers ' +\n        'removeAllMusicEventHandlers removeAllOwnedMines removeAllPrimaryWeaponItems removeAllWeapons ' +\n        'removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea ' +\n        'removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks ' +\n        'removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem ' +\n        'removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest ' +\n        'removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret ' +\n        'removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler ' +\n        'removeMusicEventHandler removeOwnedMine removePrimaryWeaponItem removeSecondaryWeaponItem ' +\n        'removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon ' +\n        'removeWeaponAttachmentCargo removeWeaponCargo removeWeaponGlobal removeWeaponTurret ' +\n        'reportRemoteTarget requiredVersion resetCamShake resetSubgroupDirection resize resources ' +\n        'respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadAt ' +\n        'roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ' +\n        'ropeAttachTo ropeCreate ropeCut ropeDestroy ropeDetach ropeEndPosition ropeLength ropes ' +\n        'ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW ' +\n        'safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY save3DENInventory saveGame saveIdentity ' +\n        'saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D ' +\n        'scopeName score scoreSide screenshot screenToWorld scriptDone scriptName scudState ' +\n        'secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces ' +\n        'selectDiarySubject selectedEditorObjects selectEditorObject selectionNames selectionPosition ' +\n        'selectLeader selectMax selectMin selectNoPlayer selectPlayer selectRandom selectRandomWeighted ' +\n        'selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult ' +\n        'sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime ' +\n        'set set3DENAttribute set3DENAttributes set3DENGrid set3DENIconsVisible set3DENLayer ' +\n        'set3DENLinesVisible set3DENLogicType set3DENMissionAttribute set3DENMissionAttributes ' +\n        'set3DENModelsVisible set3DENObjectType set3DENSelected setAccTime setActualCollectiveRTD ' +\n        'setAirplaneThrottle setAirportSide setAmmo setAmmoCargo setAmmoOnPylon setAnimSpeedCoef ' +\n        'setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour ' +\n        'setBleedingRemaining setBrakesRTD setCameraInterest setCamShakeDefParams setCamShakeParams ' +\n        'setCamUseTI setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation ' +\n        'setConvoySeparation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType ' +\n        'setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setCustomAimCoef ' +\n        'setCustomWeightRTD setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination ' +\n        'setDetailMapBlendPars setDir setDirection setDrawIcon setDriveOnPath setDropInterval ' +\n        'setDynamicSimulationDistance setDynamicSimulationDistanceCoef setEditorMode setEditorObjectScope ' +\n        'setEffectCondition setEngineRPMRTD setFace setFaceAnimation setFatigue setFeatureType ' +\n        'setFlagAnimationPhase setFlagOwner setFlagSide setFlagTexture setFog setFormation ' +\n        'setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo ' +\n        'setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId ' +\n        'setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage ' +\n        'setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setInfoPanel setLeader ' +\n        'setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight ' +\n        'setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare ' +\n        'setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush ' +\n        'setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal ' +\n        'setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize ' +\n        'setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass ' +\n        'setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound ' +\n        'setObjectArguments setObjectMaterial setObjectMaterialGlobal setObjectProxy setObjectTexture ' +\n        'setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining ' +\n        'setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom ' +\n        'setPilotCameraDirection setPilotCameraRotation setPilotCameraTarget setPilotLight setPiPEffect ' +\n        'setPitch setPlateNumber setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW ' +\n        'setPosATL setPosition setPosWorld setPylonLoadOut setPylonsPriority setRadioMsg setRain ' +\n        'setRainbow setRandomLip setRank setRectangular setRepairCargo setRotorBrakeRTD setShadowDistance ' +\n        'setShotParents setSide setSimpleTaskAlwaysVisible setSimpleTaskCustomData ' +\n        'setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimpleTaskType ' +\n        'setSimulWeatherLayers setSize setSkill setSlingLoad setSoundEffect setSpeaker setSpeech ' +\n        'setSpeedMode setStamina setStaminaScheme setStatValue setSuppression setSystemOfUnits ' +\n        'setTargetAge setTaskMarkerOffset setTaskResult setTaskState setTerrainGrid setText ' +\n        'setTimeMultiplier setTitleEffect setTrafficDensity setTrafficDistance setTrafficGap ' +\n        'setTrafficSpeed setTriggerActivation setTriggerArea setTriggerStatements setTriggerText ' +\n        'setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitLoadout setUnitPos ' +\n        'setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnitTrait setUnloadInCombat ' +\n        'setUserActionText setUserMFDText setUserMFDvalue setVariable setVectorDir setVectorDirAndUp ' +\n        'setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleCargo setVehicleId ' +\n        'setVehicleLock setVehiclePosition setVehicleRadar setVehicleReceiveRemoteTargets ' +\n        'setVehicleReportOwnPosition setVehicleReportRemoteTargets setVehicleTIPars setVehicleVarName ' +\n        'setVelocity setVelocityModelSpace setVelocityTransformation setViewDistance ' +\n        'setVisibleIfTreeCollapsed setWantedRPMRTD setWaves setWaypointBehaviour setWaypointCombatMode ' +\n        'setWaypointCompletionRadius setWaypointDescription setWaypointForceBehaviour setWaypointFormation ' +\n        'setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName ' +\n        'setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout ' +\n        'setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce ' +\n        'setWindStr setWingForceScaleRTD setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu ' +\n        'showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer ' +\n        'shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap ' +\n        'shownPad shownRadio shownScoretable shownUAVFeed shownWarrant shownWatch showPad showRadio ' +\n        'showScoretable showSubtitles showUAVFeed showWarrant showWatch showWaypoint showWaypoints side ' +\n        'sideChat sideEnemy sideFriendly sideRadio simpleTasks simulationEnabled simulCloudDensity ' +\n        'simulCloudOcclusion simulInClouds simulWeatherSync sin size sizeOf skill skillFinal skipTime ' +\n        'sleep sliderPosition sliderRange sliderSetPosition sliderSetRange sliderSetSpeed sliderSpeed ' +\n        'slingLoadAssistantShown soldierMagazines someAmmo sort soundVolume spawn speaker speed speedMode ' +\n        'splitString sqrt squadParams stance startLoadingScreen step stop stopEngineRTD stopped str ' +\n        'sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth ' +\n        'switchableUnits switchAction switchCamera switchGesture switchLight switchMove ' +\n        'synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd ' +\n        'synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint systemChat systemOfUnits tan ' +\n        'targetKnowledge targets targetsAggregate targetsQuery taskAlwaysVisible taskChildren ' +\n        'taskCompleted taskCustomData taskDescription taskDestination taskHint taskMarkerOffset taskParent ' +\n        'taskResult taskState taskType teamMember teamName teams teamSwitch teamSwitchEnabled teamType ' +\n        'terminate terrainIntersect terrainIntersectASL terrainIntersectAtASL text textLog textLogFormat ' +\n        'tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toFixed toLower ' +\n        'toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle ' +\n        'triggerAttachObject triggerAttachVehicle triggerDynamicSimulation triggerStatements triggerText ' +\n        'triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear ' +\n        'tvCollapse tvCollapseAll tvCount tvCurSel tvData tvDelete tvExpand tvExpandAll tvPicture ' +\n        'tvSetColor tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetPictureColorDisabled ' +\n        'tvSetPictureColorSelected tvSetPictureRight tvSetPictureRightColor tvSetPictureRightColorDisabled ' +\n        'tvSetPictureRightColorSelected tvSetText tvSetTooltip tvSetValue tvSort tvSortByValue tvText ' +\n        'tvTooltip tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator ' +\n        'unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems ' +\n        'uniformMagazines unitAddons unitAimPosition unitAimPositionVisual unitBackpack unitIsUAV unitPos ' +\n        'unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement ' +\n        'unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAISteeringComponent ' +\n        'useAudioTimeForMoves userInputDisabled vectorAdd vectorCos vectorCrossProduct vectorDiff ' +\n        'vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo ' +\n        'vectorMagnitude vectorMagnitudeSqr vectorModelToWorld vectorModelToWorldVisual vectorMultiply ' +\n        'vectorNormalized vectorUp vectorUpVisual vectorWorldToModel vectorWorldToModelVisual vehicle ' +\n        'vehicleCargoEnabled vehicleChat vehicleRadio vehicleReceiveRemoteTargets vehicleReportOwnPosition ' +\n        'vehicleReportRemoteTargets vehicles vehicleVarName velocity velocityModelSpace verifySignature ' +\n        'vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap ' +\n        'visiblePosition visiblePositionASL visibleScoretable visibleWatch waves waypointAttachedObject ' +\n        'waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour ' +\n        'waypointCombatMode waypointCompletionRadius waypointDescription waypointForceBehaviour ' +\n        'waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName ' +\n        'waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed ' +\n        'waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible ' +\n        'weaponAccessories weaponAccessoriesCargo weaponCargo weaponDirection weaponInertia weaponLowered ' +\n        'weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD WFSideText wind ',\n      literal:\n        'blufor civilian configNull controlNull displayNull east endl false grpNull independent lineBreak ' +\n        'locationNull nil objNull opfor pi resistance scriptNull sideAmbientLife sideEmpty sideLogic ' +\n        'sideUnknown taskNull teamMemberNull true west'\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.NUMBER_MODE,\n      VARIABLE,\n      FUNCTION,\n      STRINGS,\n      PREPROCESSOR\n    ],\n    illegal: /#|^\\$ /\n  };\n}\n\nmodule.exports = sqf;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\nfunction sql(hljs) {\n  const COMMENT_MODE = hljs.COMMENT('--', '$');\n  const STRING = {\n    className: 'string',\n    variants: [\n      {\n        begin: /'/,\n        end: /'/,\n        contains: [\n          {begin: /''/ }\n        ]\n      }\n    ]\n  };\n  const QUOTED_IDENTIFIER = {\n    begin: /\"/,\n    end: /\"/,\n    contains: [ { begin: /\"\"/ } ]\n  };\n\n  const LITERALS = [\n    \"true\",\n    \"false\",\n    // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n    // \"null\",\n    \"unknown\"\n  ];\n\n  const MULTI_WORD_TYPES = [\n    \"double precision\",\n    \"large object\",\n    \"with timezone\",\n    \"without timezone\"\n  ];\n\n  const TYPES = [\n    'bigint',\n    'binary',\n    'blob',\n    'boolean',\n    'char',\n    'character',\n    'clob',\n    'date',\n    'dec',\n    'decfloat',\n    'decimal',\n    'float',\n    'int',\n    'integer',\n    'interval',\n    'nchar',\n    'nclob',\n    'national',\n    'numeric',\n    'real',\n    'row',\n    'smallint',\n    'time',\n    'timestamp',\n    'varchar',\n    'varying', // modifier (character varying)\n    'varbinary'\n  ];\n\n  const NON_RESERVED_WORDS = [\n    \"add\",\n    \"asc\",\n    \"collation\",\n    \"desc\",\n    \"final\",\n    \"first\",\n    \"last\",\n    \"view\"\n  ];\n\n  // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n  const RESERVED_WORDS = [\n    \"abs\",\n    \"acos\",\n    \"all\",\n    \"allocate\",\n    \"alter\",\n    \"and\",\n    \"any\",\n    \"are\",\n    \"array\",\n    \"array_agg\",\n    \"array_max_cardinality\",\n    \"as\",\n    \"asensitive\",\n    \"asin\",\n    \"asymmetric\",\n    \"at\",\n    \"atan\",\n    \"atomic\",\n    \"authorization\",\n    \"avg\",\n    \"begin\",\n    \"begin_frame\",\n    \"begin_partition\",\n    \"between\",\n    \"bigint\",\n    \"binary\",\n    \"blob\",\n    \"boolean\",\n    \"both\",\n    \"by\",\n    \"call\",\n    \"called\",\n    \"cardinality\",\n    \"cascaded\",\n    \"case\",\n    \"cast\",\n    \"ceil\",\n    \"ceiling\",\n    \"char\",\n    \"char_length\",\n    \"character\",\n    \"character_length\",\n    \"check\",\n    \"classifier\",\n    \"clob\",\n    \"close\",\n    \"coalesce\",\n    \"collate\",\n    \"collect\",\n    \"column\",\n    \"commit\",\n    \"condition\",\n    \"connect\",\n    \"constraint\",\n    \"contains\",\n    \"convert\",\n    \"copy\",\n    \"corr\",\n    \"corresponding\",\n    \"cos\",\n    \"cosh\",\n    \"count\",\n    \"covar_pop\",\n    \"covar_samp\",\n    \"create\",\n    \"cross\",\n    \"cube\",\n    \"cume_dist\",\n    \"current\",\n    \"current_catalog\",\n    \"current_date\",\n    \"current_default_transform_group\",\n    \"current_path\",\n    \"current_role\",\n    \"current_row\",\n    \"current_schema\",\n    \"current_time\",\n    \"current_timestamp\",\n    \"current_path\",\n    \"current_role\",\n    \"current_transform_group_for_type\",\n    \"current_user\",\n    \"cursor\",\n    \"cycle\",\n    \"date\",\n    \"day\",\n    \"deallocate\",\n    \"dec\",\n    \"decimal\",\n    \"decfloat\",\n    \"declare\",\n    \"default\",\n    \"define\",\n    \"delete\",\n    \"dense_rank\",\n    \"deref\",\n    \"describe\",\n    \"deterministic\",\n    \"disconnect\",\n    \"distinct\",\n    \"double\",\n    \"drop\",\n    \"dynamic\",\n    \"each\",\n    \"element\",\n    \"else\",\n    \"empty\",\n    \"end\",\n    \"end_frame\",\n    \"end_partition\",\n    \"end-exec\",\n    \"equals\",\n    \"escape\",\n    \"every\",\n    \"except\",\n    \"exec\",\n    \"execute\",\n    \"exists\",\n    \"exp\",\n    \"external\",\n    \"extract\",\n    \"false\",\n    \"fetch\",\n    \"filter\",\n    \"first_value\",\n    \"float\",\n    \"floor\",\n    \"for\",\n    \"foreign\",\n    \"frame_row\",\n    \"free\",\n    \"from\",\n    \"full\",\n    \"function\",\n    \"fusion\",\n    \"get\",\n    \"global\",\n    \"grant\",\n    \"group\",\n    \"grouping\",\n    \"groups\",\n    \"having\",\n    \"hold\",\n    \"hour\",\n    \"identity\",\n    \"in\",\n    \"indicator\",\n    \"initial\",\n    \"inner\",\n    \"inout\",\n    \"insensitive\",\n    \"insert\",\n    \"int\",\n    \"integer\",\n    \"intersect\",\n    \"intersection\",\n    \"interval\",\n    \"into\",\n    \"is\",\n    \"join\",\n    \"json_array\",\n    \"json_arrayagg\",\n    \"json_exists\",\n    \"json_object\",\n    \"json_objectagg\",\n    \"json_query\",\n    \"json_table\",\n    \"json_table_primitive\",\n    \"json_value\",\n    \"lag\",\n    \"language\",\n    \"large\",\n    \"last_value\",\n    \"lateral\",\n    \"lead\",\n    \"leading\",\n    \"left\",\n    \"like\",\n    \"like_regex\",\n    \"listagg\",\n    \"ln\",\n    \"local\",\n    \"localtime\",\n    \"localtimestamp\",\n    \"log\",\n    \"log10\",\n    \"lower\",\n    \"match\",\n    \"match_number\",\n    \"match_recognize\",\n    \"matches\",\n    \"max\",\n    \"member\",\n    \"merge\",\n    \"method\",\n    \"min\",\n    \"minute\",\n    \"mod\",\n    \"modifies\",\n    \"module\",\n    \"month\",\n    \"multiset\",\n    \"national\",\n    \"natural\",\n    \"nchar\",\n    \"nclob\",\n    \"new\",\n    \"no\",\n    \"none\",\n    \"normalize\",\n    \"not\",\n    \"nth_value\",\n    \"ntile\",\n    \"null\",\n    \"nullif\",\n    \"numeric\",\n    \"octet_length\",\n    \"occurrences_regex\",\n    \"of\",\n    \"offset\",\n    \"old\",\n    \"omit\",\n    \"on\",\n    \"one\",\n    \"only\",\n    \"open\",\n    \"or\",\n    \"order\",\n    \"out\",\n    \"outer\",\n    \"over\",\n    \"overlaps\",\n    \"overlay\",\n    \"parameter\",\n    \"partition\",\n    \"pattern\",\n    \"per\",\n    \"percent\",\n    \"percent_rank\",\n    \"percentile_cont\",\n    \"percentile_disc\",\n    \"period\",\n    \"portion\",\n    \"position\",\n    \"position_regex\",\n    \"power\",\n    \"precedes\",\n    \"precision\",\n    \"prepare\",\n    \"primary\",\n    \"procedure\",\n    \"ptf\",\n    \"range\",\n    \"rank\",\n    \"reads\",\n    \"real\",\n    \"recursive\",\n    \"ref\",\n    \"references\",\n    \"referencing\",\n    \"regr_avgx\",\n    \"regr_avgy\",\n    \"regr_count\",\n    \"regr_intercept\",\n    \"regr_r2\",\n    \"regr_slope\",\n    \"regr_sxx\",\n    \"regr_sxy\",\n    \"regr_syy\",\n    \"release\",\n    \"result\",\n    \"return\",\n    \"returns\",\n    \"revoke\",\n    \"right\",\n    \"rollback\",\n    \"rollup\",\n    \"row\",\n    \"row_number\",\n    \"rows\",\n    \"running\",\n    \"savepoint\",\n    \"scope\",\n    \"scroll\",\n    \"search\",\n    \"second\",\n    \"seek\",\n    \"select\",\n    \"sensitive\",\n    \"session_user\",\n    \"set\",\n    \"show\",\n    \"similar\",\n    \"sin\",\n    \"sinh\",\n    \"skip\",\n    \"smallint\",\n    \"some\",\n    \"specific\",\n    \"specifictype\",\n    \"sql\",\n    \"sqlexception\",\n    \"sqlstate\",\n    \"sqlwarning\",\n    \"sqrt\",\n    \"start\",\n    \"static\",\n    \"stddev_pop\",\n    \"stddev_samp\",\n    \"submultiset\",\n    \"subset\",\n    \"substring\",\n    \"substring_regex\",\n    \"succeeds\",\n    \"sum\",\n    \"symmetric\",\n    \"system\",\n    \"system_time\",\n    \"system_user\",\n    \"table\",\n    \"tablesample\",\n    \"tan\",\n    \"tanh\",\n    \"then\",\n    \"time\",\n    \"timestamp\",\n    \"timezone_hour\",\n    \"timezone_minute\",\n    \"to\",\n    \"trailing\",\n    \"translate\",\n    \"translate_regex\",\n    \"translation\",\n    \"treat\",\n    \"trigger\",\n    \"trim\",\n    \"trim_array\",\n    \"true\",\n    \"truncate\",\n    \"uescape\",\n    \"union\",\n    \"unique\",\n    \"unknown\",\n    \"unnest\",\n    \"update   \",\n    \"upper\",\n    \"user\",\n    \"using\",\n    \"value\",\n    \"values\",\n    \"value_of\",\n    \"var_pop\",\n    \"var_samp\",\n    \"varbinary\",\n    \"varchar\",\n    \"varying\",\n    \"versioning\",\n    \"when\",\n    \"whenever\",\n    \"where\",\n    \"width_bucket\",\n    \"window\",\n    \"with\",\n    \"within\",\n    \"without\",\n    \"year\",\n  ];\n\n  // these are reserved words we have identified to be functions\n  // and should only be highlighted in a dispatch-like context\n  // ie, array_agg(...), etc.\n  const RESERVED_FUNCTIONS = [\n    \"abs\",\n    \"acos\",\n    \"array_agg\",\n    \"asin\",\n    \"atan\",\n    \"avg\",\n    \"cast\",\n    \"ceil\",\n    \"ceiling\",\n    \"coalesce\",\n    \"corr\",\n    \"cos\",\n    \"cosh\",\n    \"count\",\n    \"covar_pop\",\n    \"covar_samp\",\n    \"cume_dist\",\n    \"dense_rank\",\n    \"deref\",\n    \"element\",\n    \"exp\",\n    \"extract\",\n    \"first_value\",\n    \"floor\",\n    \"json_array\",\n    \"json_arrayagg\",\n    \"json_exists\",\n    \"json_object\",\n    \"json_objectagg\",\n    \"json_query\",\n    \"json_table\",\n    \"json_table_primitive\",\n    \"json_value\",\n    \"lag\",\n    \"last_value\",\n    \"lead\",\n    \"listagg\",\n    \"ln\",\n    \"log\",\n    \"log10\",\n    \"lower\",\n    \"max\",\n    \"min\",\n    \"mod\",\n    \"nth_value\",\n    \"ntile\",\n    \"nullif\",\n    \"percent_rank\",\n    \"percentile_cont\",\n    \"percentile_disc\",\n    \"position\",\n    \"position_regex\",\n    \"power\",\n    \"rank\",\n    \"regr_avgx\",\n    \"regr_avgy\",\n    \"regr_count\",\n    \"regr_intercept\",\n    \"regr_r2\",\n    \"regr_slope\",\n    \"regr_sxx\",\n    \"regr_sxy\",\n    \"regr_syy\",\n    \"row_number\",\n    \"sin\",\n    \"sinh\",\n    \"sqrt\",\n    \"stddev_pop\",\n    \"stddev_samp\",\n    \"substring\",\n    \"substring_regex\",\n    \"sum\",\n    \"tan\",\n    \"tanh\",\n    \"translate\",\n    \"translate_regex\",\n    \"treat\",\n    \"trim\",\n    \"trim_array\",\n    \"unnest\",\n    \"upper\",\n    \"value_of\",\n    \"var_pop\",\n    \"var_samp\",\n    \"width_bucket\",\n  ];\n\n  // these functions can\n  const POSSIBLE_WITHOUT_PARENS = [\n    \"current_catalog\",\n    \"current_date\",\n    \"current_default_transform_group\",\n    \"current_path\",\n    \"current_role\",\n    \"current_schema\",\n    \"current_transform_group_for_type\",\n    \"current_user\",\n    \"session_user\",\n    \"system_time\",\n    \"system_user\",\n    \"current_time\",\n    \"localtime\",\n    \"current_timestamp\",\n    \"localtimestamp\"\n  ];\n\n  // those exist to boost relevance making these very\n  // \"SQL like\" keyword combos worth +1 extra relevance\n  const COMBOS = [\n    \"create table\",\n    \"insert into\",\n    \"primary key\",\n    \"foreign key\",\n    \"not null\",\n    \"alter table\",\n    \"add constraint\",\n    \"grouping sets\",\n    \"on overflow\",\n    \"character set\",\n    \"respect nulls\",\n    \"ignore nulls\",\n    \"nulls first\",\n    \"nulls last\",\n    \"depth first\",\n    \"breadth first\"\n  ];\n\n  const FUNCTIONS = RESERVED_FUNCTIONS;\n\n  const KEYWORDS = [...RESERVED_WORDS, ...NON_RESERVED_WORDS].filter((keyword) => {\n    return !RESERVED_FUNCTIONS.includes(keyword);\n  });\n\n  const VARIABLE = {\n    className: \"variable\",\n    begin: /@[a-z0-9]+/,\n  };\n\n  const OPERATOR = {\n    className: \"operator\",\n    begin: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n    relevance: 0,\n  };\n\n  const FUNCTION_CALL = {\n    begin: concat(/\\b/, either(...FUNCTIONS), /\\s*\\(/),\n    keywords: {\n      built_in: FUNCTIONS\n    }\n  };\n\n  // keywords with less than 3 letters are reduced in relevancy\n  function reduceRelevancy(list, {exceptions, when} = {}) {\n    const qualifyFn = when;\n    exceptions = exceptions || [];\n    return list.map((item) => {\n      if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n        return item;\n      } else if (qualifyFn(item)) {\n        return `${item}|0`;\n      } else {\n        return item;\n      }\n    });\n  }\n\n  return {\n    name: 'SQL',\n    case_insensitive: true,\n    // does not include {} or HTML tags ` x.length < 3 }),\n      literal: LITERALS,\n      type: TYPES,\n      built_in: POSSIBLE_WITHOUT_PARENS\n    },\n    contains: [\n      {\n        begin: either(...COMBOS),\n        keywords: {\n          $pattern: /[\\w\\.]+/,\n          keyword: KEYWORDS.concat(COMBOS),\n          literal: LITERALS,\n          type: TYPES\n        },\n      },\n      {\n        className: \"type\",\n        begin: either(...MULTI_WORD_TYPES)\n      },\n      FUNCTION_CALL,\n      VARIABLE,\n      STRING,\n      QUOTED_IDENTIFIER,\n      hljs.C_NUMBER_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      COMMENT_MODE,\n      OPERATOR\n    ]\n  };\n}\n\nmodule.exports = sql;\n","/*\n Language: SQL More (mix of MySQL, Oracle, etc)\n Contributors: Nikolay Lisienko , Heiko August , Travis Odom , Vadimtro , Benjamin Auder \n Website: https://en.wikipedia.org/wiki/SQL\n Category: database\n */\n\n/*\n\nThis is a preservation of the old bloated SQL grammar which includes pretty much\nthe kitchen sink because no one was keeping track of which keywords belong to\nwhich databases.  This is likely to be removed in the future.\n\n- Oracle SQL should be factored into it's own 3rd party grammar.\n- MySQL should be factored out into it's own 3rd party grammar.\n\n*/\n\nfunction sql_more(hljs) {\n  var COMMENT_MODE = hljs.COMMENT('--', '$');\n  return {\n    name: 'SQL (more)',\n    aliases: [\"mysql\", \"oracle\"],\n    disableAutodetect: true,\n    case_insensitive: true,\n    illegal: /[<>{}*]/,\n    contains: [\n      {\n        beginKeywords:\n          'begin end start commit rollback savepoint lock alter create drop rename call ' +\n          'delete do handler insert load replace select truncate update set show pragma grant ' +\n          'merge describe use explain help declare prepare execute deallocate release ' +\n          'unlock purge reset change stop analyze cache flush optimize repair kill ' +\n          'install uninstall checksum restore check backup revoke comment values with',\n        end: /;/, endsWithParent: true,\n        keywords: {\n          $pattern: /[\\w\\.]+/,\n          keyword:\n            'as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +\n            'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +\n            'all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply ' +\n            'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +\n            'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +\n            'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +\n            'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +\n            'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +\n            'bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel ' +\n            'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +\n            'char_length character_length characters characterset charindex charset charsetform charsetid check ' +\n            'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +\n            'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +\n            'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +\n            'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +\n            'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +\n            'consider consistent constant constraint constraints constructor container content contents context ' +\n            'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +\n            'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +\n            'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +\n            'cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add ' +\n            'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +\n            'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +\n            'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +\n            'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +\n            'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +\n            'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +\n            'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +\n            'do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable ' +\n            'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +\n            'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +\n            'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +\n            'execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external ' +\n            'external_1 external_2 externally extract failed failed_login_attempts failover failure far fast ' +\n            'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +\n            'finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign ' +\n            'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +\n            'ftp full function general generated get get_format get_lock getdate getutcdate global global_name ' +\n            'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +\n            'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +\n            'hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified ' +\n            'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +\n            'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +\n            'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +\n            'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +\n            'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +\n            'keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase ' +\n            'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +\n            'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +\n            'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +\n            'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime ' +\n            'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +\n            'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +\n            'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +\n            'minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month ' +\n            'months mount move movement multiset mutex name name_const names nan national native natural nav nchar ' +\n            'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +\n            'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +\n            'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +\n            'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +\n            'noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +\n            'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +\n            'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +\n            'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +\n            'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +\n            'out outer outfile outline output over overflow overriding package pad parallel parallel_enable ' +\n            'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +\n            'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +\n            'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +\n            'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +\n            'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +\n            'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +\n            'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +\n            'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +\n            'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +\n            'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +\n            'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +\n            'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +\n            'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +\n            'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +\n            'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +\n            'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +\n            'sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select ' +\n            'self semi sequence sequential serializable server servererror session session_user sessions_per_user set ' +\n            'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +\n            'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +\n            'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +\n            'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +\n            'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +\n            'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +\n            'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +\n            'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +\n            'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +\n            'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +\n            'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +\n            'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo ' +\n            'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +\n            'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +\n            'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +\n            'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +\n            'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +\n            'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot ' +\n            'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +\n            'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +\n            'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +\n            'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +\n            'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +\n            'wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped ' +\n            'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +\n            'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',\n          literal:\n            'true false null unknown',\n          built_in:\n            'array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number ' +\n            'numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void'\n        },\n        contains: [\n          {\n            className: 'string',\n            begin: '\\'', end: '\\'',\n            contains: [{begin: '\\'\\''}]\n          },\n          {\n            className: 'string',\n            begin: '\"', end: '\"',\n            contains: [{begin: '\"\"'}]\n          },\n          {\n            className: 'string',\n            begin: '`', end: '`'\n          },\n          hljs.C_NUMBER_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          COMMENT_MODE,\n          hljs.HASH_COMMENT_MODE\n        ]\n      },\n      hljs.C_BLOCK_COMMENT_MODE,\n      COMMENT_MODE,\n      hljs.HASH_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = sql_more;\n","/*\nLanguage: Stan\nDescription: The Stan probabilistic programming language\nAuthor: Jeffrey B. Arnold \nWebsite: http://mc-stan.org/\nCategory: scientific\n*/\n\nfunction stan(hljs) {\n  // variable names cannot conflict with block identifiers\n  const BLOCKS = [\n    'functions',\n    'model',\n    'data',\n    'parameters',\n    'quantities',\n    'transformed',\n    'generated'\n  ];\n  const STATEMENTS = [\n    'for',\n    'in',\n    'if',\n    'else',\n    'while',\n    'break',\n    'continue',\n    'return'\n  ];\n  const SPECIAL_FUNCTIONS = [\n    'print',\n    'reject',\n    'increment_log_prob|10',\n    'integrate_ode|10',\n    'integrate_ode_rk45|10',\n    'integrate_ode_bdf|10',\n    'algebra_solver'\n  ];\n  const VAR_TYPES = [\n    'int',\n    'real',\n    'vector',\n    'ordered',\n    'positive_ordered',\n    'simplex',\n    'unit_vector',\n    'row_vector',\n    'matrix',\n    'cholesky_factor_corr|10',\n    'cholesky_factor_cov|10',\n    'corr_matrix|10',\n    'cov_matrix|10',\n    'void'\n  ];\n  const FUNCTIONS = [\n    'Phi',\n    'Phi_approx',\n    'abs',\n    'acos',\n    'acosh',\n    'algebra_solver',\n    'append_array',\n    'append_col',\n    'append_row',\n    'asin',\n    'asinh',\n    'atan',\n    'atan2',\n    'atanh',\n    'bernoulli_cdf',\n    'bernoulli_lccdf',\n    'bernoulli_lcdf',\n    'bernoulli_logit_lpmf',\n    'bernoulli_logit_rng',\n    'bernoulli_lpmf',\n    'bernoulli_rng',\n    'bessel_first_kind',\n    'bessel_second_kind',\n    'beta_binomial_cdf',\n    'beta_binomial_lccdf',\n    'beta_binomial_lcdf',\n    'beta_binomial_lpmf',\n    'beta_binomial_rng',\n    'beta_cdf',\n    'beta_lccdf',\n    'beta_lcdf',\n    'beta_lpdf',\n    'beta_rng',\n    'binary_log_loss',\n    'binomial_cdf',\n    'binomial_coefficient_log',\n    'binomial_lccdf',\n    'binomial_lcdf',\n    'binomial_logit_lpmf',\n    'binomial_lpmf',\n    'binomial_rng',\n    'block',\n    'categorical_logit_lpmf',\n    'categorical_logit_rng',\n    'categorical_lpmf',\n    'categorical_rng',\n    'cauchy_cdf',\n    'cauchy_lccdf',\n    'cauchy_lcdf',\n    'cauchy_lpdf',\n    'cauchy_rng',\n    'cbrt',\n    'ceil',\n    'chi_square_cdf',\n    'chi_square_lccdf',\n    'chi_square_lcdf',\n    'chi_square_lpdf',\n    'chi_square_rng',\n    'cholesky_decompose',\n    'choose',\n    'col',\n    'cols',\n    'columns_dot_product',\n    'columns_dot_self',\n    'cos',\n    'cosh',\n    'cov_exp_quad',\n    'crossprod',\n    'csr_extract_u',\n    'csr_extract_v',\n    'csr_extract_w',\n    'csr_matrix_times_vector',\n    'csr_to_dense_matrix',\n    'cumulative_sum',\n    'determinant',\n    'diag_matrix',\n    'diag_post_multiply',\n    'diag_pre_multiply',\n    'diagonal',\n    'digamma',\n    'dims',\n    'dirichlet_lpdf',\n    'dirichlet_rng',\n    'distance',\n    'dot_product',\n    'dot_self',\n    'double_exponential_cdf',\n    'double_exponential_lccdf',\n    'double_exponential_lcdf',\n    'double_exponential_lpdf',\n    'double_exponential_rng',\n    'e',\n    'eigenvalues_sym',\n    'eigenvectors_sym',\n    'erf',\n    'erfc',\n    'exp',\n    'exp2',\n    'exp_mod_normal_cdf',\n    'exp_mod_normal_lccdf',\n    'exp_mod_normal_lcdf',\n    'exp_mod_normal_lpdf',\n    'exp_mod_normal_rng',\n    'expm1',\n    'exponential_cdf',\n    'exponential_lccdf',\n    'exponential_lcdf',\n    'exponential_lpdf',\n    'exponential_rng',\n    'fabs',\n    'falling_factorial',\n    'fdim',\n    'floor',\n    'fma',\n    'fmax',\n    'fmin',\n    'fmod',\n    'frechet_cdf',\n    'frechet_lccdf',\n    'frechet_lcdf',\n    'frechet_lpdf',\n    'frechet_rng',\n    'gamma_cdf',\n    'gamma_lccdf',\n    'gamma_lcdf',\n    'gamma_lpdf',\n    'gamma_p',\n    'gamma_q',\n    'gamma_rng',\n    'gaussian_dlm_obs_lpdf',\n    'get_lp',\n    'gumbel_cdf',\n    'gumbel_lccdf',\n    'gumbel_lcdf',\n    'gumbel_lpdf',\n    'gumbel_rng',\n    'head',\n    'hypergeometric_lpmf',\n    'hypergeometric_rng',\n    'hypot',\n    'inc_beta',\n    'int_step',\n    'integrate_ode',\n    'integrate_ode_bdf',\n    'integrate_ode_rk45',\n    'inv',\n    'inv_Phi',\n    'inv_chi_square_cdf',\n    'inv_chi_square_lccdf',\n    'inv_chi_square_lcdf',\n    'inv_chi_square_lpdf',\n    'inv_chi_square_rng',\n    'inv_cloglog',\n    'inv_gamma_cdf',\n    'inv_gamma_lccdf',\n    'inv_gamma_lcdf',\n    'inv_gamma_lpdf',\n    'inv_gamma_rng',\n    'inv_logit',\n    'inv_sqrt',\n    'inv_square',\n    'inv_wishart_lpdf',\n    'inv_wishart_rng',\n    'inverse',\n    'inverse_spd',\n    'is_inf',\n    'is_nan',\n    'lbeta',\n    'lchoose',\n    'lgamma',\n    'lkj_corr_cholesky_lpdf',\n    'lkj_corr_cholesky_rng',\n    'lkj_corr_lpdf',\n    'lkj_corr_rng',\n    'lmgamma',\n    'lmultiply',\n    'log',\n    'log10',\n    'log1m',\n    'log1m_exp',\n    'log1m_inv_logit',\n    'log1p',\n    'log1p_exp',\n    'log2',\n    'log_determinant',\n    'log_diff_exp',\n    'log_falling_factorial',\n    'log_inv_logit',\n    'log_mix',\n    'log_rising_factorial',\n    'log_softmax',\n    'log_sum_exp',\n    'logistic_cdf',\n    'logistic_lccdf',\n    'logistic_lcdf',\n    'logistic_lpdf',\n    'logistic_rng',\n    'logit',\n    'lognormal_cdf',\n    'lognormal_lccdf',\n    'lognormal_lcdf',\n    'lognormal_lpdf',\n    'lognormal_rng',\n    'machine_precision',\n    'matrix_exp',\n    'max',\n    'mdivide_left_spd',\n    'mdivide_left_tri_low',\n    'mdivide_right_spd',\n    'mdivide_right_tri_low',\n    'mean',\n    'min',\n    'modified_bessel_first_kind',\n    'modified_bessel_second_kind',\n    'multi_gp_cholesky_lpdf',\n    'multi_gp_lpdf',\n    'multi_normal_cholesky_lpdf',\n    'multi_normal_cholesky_rng',\n    'multi_normal_lpdf',\n    'multi_normal_prec_lpdf',\n    'multi_normal_rng',\n    'multi_student_t_lpdf',\n    'multi_student_t_rng',\n    'multinomial_lpmf',\n    'multinomial_rng',\n    'multiply_log',\n    'multiply_lower_tri_self_transpose',\n    'neg_binomial_2_cdf',\n    'neg_binomial_2_lccdf',\n    'neg_binomial_2_lcdf',\n    'neg_binomial_2_log_lpmf',\n    'neg_binomial_2_log_rng',\n    'neg_binomial_2_lpmf',\n    'neg_binomial_2_rng',\n    'neg_binomial_cdf',\n    'neg_binomial_lccdf',\n    'neg_binomial_lcdf',\n    'neg_binomial_lpmf',\n    'neg_binomial_rng',\n    'negative_infinity',\n    'normal_cdf',\n    'normal_lccdf',\n    'normal_lcdf',\n    'normal_lpdf',\n    'normal_rng',\n    'not_a_number',\n    'num_elements',\n    'ordered_logistic_lpmf',\n    'ordered_logistic_rng',\n    'owens_t',\n    'pareto_cdf',\n    'pareto_lccdf',\n    'pareto_lcdf',\n    'pareto_lpdf',\n    'pareto_rng',\n    'pareto_type_2_cdf',\n    'pareto_type_2_lccdf',\n    'pareto_type_2_lcdf',\n    'pareto_type_2_lpdf',\n    'pareto_type_2_rng',\n    'pi',\n    'poisson_cdf',\n    'poisson_lccdf',\n    'poisson_lcdf',\n    'poisson_log_lpmf',\n    'poisson_log_rng',\n    'poisson_lpmf',\n    'poisson_rng',\n    'positive_infinity',\n    'pow',\n    'print',\n    'prod',\n    'qr_Q',\n    'qr_R',\n    'quad_form',\n    'quad_form_diag',\n    'quad_form_sym',\n    'rank',\n    'rayleigh_cdf',\n    'rayleigh_lccdf',\n    'rayleigh_lcdf',\n    'rayleigh_lpdf',\n    'rayleigh_rng',\n    'reject',\n    'rep_array',\n    'rep_matrix',\n    'rep_row_vector',\n    'rep_vector',\n    'rising_factorial',\n    'round',\n    'row',\n    'rows',\n    'rows_dot_product',\n    'rows_dot_self',\n    'scaled_inv_chi_square_cdf',\n    'scaled_inv_chi_square_lccdf',\n    'scaled_inv_chi_square_lcdf',\n    'scaled_inv_chi_square_lpdf',\n    'scaled_inv_chi_square_rng',\n    'sd',\n    'segment',\n    'sin',\n    'singular_values',\n    'sinh',\n    'size',\n    'skew_normal_cdf',\n    'skew_normal_lccdf',\n    'skew_normal_lcdf',\n    'skew_normal_lpdf',\n    'skew_normal_rng',\n    'softmax',\n    'sort_asc',\n    'sort_desc',\n    'sort_indices_asc',\n    'sort_indices_desc',\n    'sqrt',\n    'sqrt2',\n    'square',\n    'squared_distance',\n    'step',\n    'student_t_cdf',\n    'student_t_lccdf',\n    'student_t_lcdf',\n    'student_t_lpdf',\n    'student_t_rng',\n    'sub_col',\n    'sub_row',\n    'sum',\n    'tail',\n    'tan',\n    'tanh',\n    'target',\n    'tcrossprod',\n    'tgamma',\n    'to_array_1d',\n    'to_array_2d',\n    'to_matrix',\n    'to_row_vector',\n    'to_vector',\n    'trace',\n    'trace_gen_quad_form',\n    'trace_quad_form',\n    'trigamma',\n    'trunc',\n    'uniform_cdf',\n    'uniform_lccdf',\n    'uniform_lcdf',\n    'uniform_lpdf',\n    'uniform_rng',\n    'variance',\n    'von_mises_lpdf',\n    'von_mises_rng',\n    'weibull_cdf',\n    'weibull_lccdf',\n    'weibull_lcdf',\n    'weibull_lpdf',\n    'weibull_rng',\n    'wiener_lpdf',\n    'wishart_lpdf',\n    'wishart_rng'\n  ];\n  const DISTRIBUTIONS = [\n    'bernoulli',\n    'bernoulli_logit',\n    'beta',\n    'beta_binomial',\n    'binomial',\n    'binomial_logit',\n    'categorical',\n    'categorical_logit',\n    'cauchy',\n    'chi_square',\n    'dirichlet',\n    'double_exponential',\n    'exp_mod_normal',\n    'exponential',\n    'frechet',\n    'gamma',\n    'gaussian_dlm_obs',\n    'gumbel',\n    'hypergeometric',\n    'inv_chi_square',\n    'inv_gamma',\n    'inv_wishart',\n    'lkj_corr',\n    'lkj_corr_cholesky',\n    'logistic',\n    'lognormal',\n    'multi_gp',\n    'multi_gp_cholesky',\n    'multi_normal',\n    'multi_normal_cholesky',\n    'multi_normal_prec',\n    'multi_student_t',\n    'multinomial',\n    'neg_binomial',\n    'neg_binomial_2',\n    'neg_binomial_2_log',\n    'normal',\n    'ordered_logistic',\n    'pareto',\n    'pareto_type_2',\n    'poisson',\n    'poisson_log',\n    'rayleigh',\n    'scaled_inv_chi_square',\n    'skew_normal',\n    'student_t',\n    'uniform',\n    'von_mises',\n    'weibull',\n    'wiener',\n    'wishart'\n  ];\n\n  return {\n    name: 'Stan',\n    aliases: [ 'stanfuncs' ],\n    keywords: {\n      $pattern: hljs.IDENT_RE,\n      title: BLOCKS,\n      keyword: STATEMENTS.concat(VAR_TYPES).concat(SPECIAL_FUNCTIONS),\n      built_in: FUNCTIONS\n    },\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.COMMENT(\n        /#/,\n        /$/,\n        {\n          relevance: 0,\n          keywords: {\n            'meta-keyword': 'include'\n          }\n        }\n      ),\n      hljs.COMMENT(\n        /\\/\\*/,\n        /\\*\\//,\n        {\n          relevance: 0,\n          // highlight doc strings mentioned in Stan reference\n          contains: [\n            {\n              className: 'doctag',\n              begin: /@(return|param)/\n            }\n          ]\n        }\n      ),\n      {\n        // hack: in range constraints, lower must follow \"<\"\n        begin: /<\\s*lower\\s*=/,\n        keywords: 'lower'\n      },\n      {\n        // hack: in range constraints, upper must follow either , or <\n        //  or \n        begin: /[<,]\\s*upper\\s*=/,\n        keywords: 'upper'\n      },\n      {\n        className: 'keyword',\n        begin: /\\btarget\\s*\\+=/,\n        relevance: 10\n      },\n      {\n        begin: '~\\\\s*(' + hljs.IDENT_RE + ')\\\\s*\\\\(',\n        keywords: DISTRIBUTIONS\n      },\n      {\n        className: 'number',\n        variants: [\n          {\n            begin: /\\b\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?/\n          },\n          {\n            begin: /\\.\\d+(?:[eE][+-]?\\d+)?\\b/\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'string',\n        begin: '\"',\n        end: '\"',\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = stan;\n","/*\nLanguage: Stata\nAuthor: Brian Quistorff \nContributors: Drew McDonald \nDescription: Stata is a general-purpose statistical software package created in 1985 by StataCorp.\nWebsite: https://en.wikipedia.org/wiki/Stata\nCategory: scientific\n*/\n\n/*\n  This is a fork and modification of Drew McDonald's file (https://github.com/drewmcdonald/stata-highlighting). I have also included a list of builtin commands from https://bugs.kde.org/show_bug.cgi?id=135646.\n*/\n\nfunction stata(hljs) {\n  return {\n    name: 'Stata',\n    aliases: [\n      'do',\n      'ado'\n    ],\n    case_insensitive: true,\n    keywords: 'if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5',\n    contains: [\n      {\n        className: 'symbol',\n        begin: /`[a-zA-Z0-9_]+'/\n      },\n      {\n        className: 'variable',\n        begin: /\\$\\{?[a-zA-Z0-9_]+\\}?/\n      },\n      {\n        className: 'string',\n        variants: [\n          {\n            begin: '`\"[^\\r\\n]*?\"\\''\n          },\n          {\n            begin: '\"[^\\r\\n\"]*\"'\n          }\n        ]\n      },\n\n      {\n        className: 'built_in',\n        variants: [\n          {\n            begin: '\\\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\\\()'\n          }\n        ]\n      },\n\n      hljs.COMMENT('^[ \\t]*\\\\*.*$', false),\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE\n    ]\n  };\n}\n\nmodule.exports = stata;\n","/*\nLanguage: STEP Part 21\nContributors: Adam Joseph Cook \nDescription: Syntax highlighter for STEP Part 21 files (ISO 10303-21).\nWebsite: https://en.wikipedia.org/wiki/ISO_10303-21\n*/\n\nfunction step21(hljs) {\n  const STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';\n  const STEP21_KEYWORDS = {\n    $pattern: STEP21_IDENT_RE,\n    keyword: 'HEADER ENDSEC DATA'\n  };\n  const STEP21_START = {\n    className: 'meta',\n    begin: 'ISO-10303-21;',\n    relevance: 10\n  };\n  const STEP21_CLOSE = {\n    className: 'meta',\n    begin: 'END-ISO-10303-21;',\n    relevance: 10\n  };\n\n  return {\n    name: 'STEP Part 21',\n    aliases: [\n      'p21',\n      'step',\n      'stp'\n    ],\n    case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.\n    keywords: STEP21_KEYWORDS,\n    contains: [\n      STEP21_START,\n      STEP21_CLOSE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.COMMENT('/\\\\*\\\\*!', '\\\\*/'),\n      hljs.C_NUMBER_MODE,\n      hljs.inherit(hljs.APOS_STRING_MODE, {\n        illegal: null\n      }),\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {\n        illegal: null\n      }),\n      {\n        className: 'string',\n        begin: \"'\",\n        end: \"'\"\n      },\n      {\n        className: 'symbol',\n        variants: [\n          {\n            begin: '#',\n            end: '\\\\d+',\n            illegal: '\\\\W'\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = step21;\n","const MODES = (hljs) => {\n  return {\n    IMPORTANT: {\n      className: 'meta',\n      begin: '!important'\n    },\n    HEXCOLOR: {\n      className: 'number',\n      begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n    },\n    ATTRIBUTE_SELECTOR_MODE: {\n      className: 'selector-attr',\n      begin: /\\[/,\n      end: /\\]/,\n      illegal: '$',\n      contains: [\n        hljs.APOS_STRING_MODE,\n        hljs.QUOTE_STRING_MODE\n      ]\n    }\n  };\n};\n\nconst TAGS = [\n  'a',\n  'abbr',\n  'address',\n  'article',\n  'aside',\n  'audio',\n  'b',\n  'blockquote',\n  'body',\n  'button',\n  'canvas',\n  'caption',\n  'cite',\n  'code',\n  'dd',\n  'del',\n  'details',\n  'dfn',\n  'div',\n  'dl',\n  'dt',\n  'em',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'header',\n  'hgroup',\n  'html',\n  'i',\n  'iframe',\n  'img',\n  'input',\n  'ins',\n  'kbd',\n  'label',\n  'legend',\n  'li',\n  'main',\n  'mark',\n  'menu',\n  'nav',\n  'object',\n  'ol',\n  'p',\n  'q',\n  'quote',\n  'samp',\n  'section',\n  'span',\n  'strong',\n  'summary',\n  'sup',\n  'table',\n  'tbody',\n  'td',\n  'textarea',\n  'tfoot',\n  'th',\n  'thead',\n  'time',\n  'tr',\n  'ul',\n  'var',\n  'video'\n];\n\nconst MEDIA_FEATURES = [\n  'any-hover',\n  'any-pointer',\n  'aspect-ratio',\n  'color',\n  'color-gamut',\n  'color-index',\n  'device-aspect-ratio',\n  'device-height',\n  'device-width',\n  'display-mode',\n  'forced-colors',\n  'grid',\n  'height',\n  'hover',\n  'inverted-colors',\n  'monochrome',\n  'orientation',\n  'overflow-block',\n  'overflow-inline',\n  'pointer',\n  'prefers-color-scheme',\n  'prefers-contrast',\n  'prefers-reduced-motion',\n  'prefers-reduced-transparency',\n  'resolution',\n  'scan',\n  'scripting',\n  'update',\n  'width',\n  // TODO: find a better solution?\n  'min-width',\n  'max-width',\n  'min-height',\n  'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n  'active',\n  'any-link',\n  'blank',\n  'checked',\n  'current',\n  'default',\n  'defined',\n  'dir', // dir()\n  'disabled',\n  'drop',\n  'empty',\n  'enabled',\n  'first',\n  'first-child',\n  'first-of-type',\n  'fullscreen',\n  'future',\n  'focus',\n  'focus-visible',\n  'focus-within',\n  'has', // has()\n  'host', // host or host()\n  'host-context', // host-context()\n  'hover',\n  'indeterminate',\n  'in-range',\n  'invalid',\n  'is', // is()\n  'lang', // lang()\n  'last-child',\n  'last-of-type',\n  'left',\n  'link',\n  'local-link',\n  'not', // not()\n  'nth-child', // nth-child()\n  'nth-col', // nth-col()\n  'nth-last-child', // nth-last-child()\n  'nth-last-col', // nth-last-col()\n  'nth-last-of-type', //nth-last-of-type()\n  'nth-of-type', //nth-of-type()\n  'only-child',\n  'only-of-type',\n  'optional',\n  'out-of-range',\n  'past',\n  'placeholder-shown',\n  'read-only',\n  'read-write',\n  'required',\n  'right',\n  'root',\n  'scope',\n  'target',\n  'target-within',\n  'user-invalid',\n  'valid',\n  'visited',\n  'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n  'after',\n  'backdrop',\n  'before',\n  'cue',\n  'cue-region',\n  'first-letter',\n  'first-line',\n  'grammar-error',\n  'marker',\n  'part',\n  'placeholder',\n  'selection',\n  'slotted',\n  'spelling-error'\n];\n\nconst ATTRIBUTES = [\n  'align-content',\n  'align-items',\n  'align-self',\n  'animation',\n  'animation-delay',\n  'animation-direction',\n  'animation-duration',\n  'animation-fill-mode',\n  'animation-iteration-count',\n  'animation-name',\n  'animation-play-state',\n  'animation-timing-function',\n  'auto',\n  'backface-visibility',\n  'background',\n  'background-attachment',\n  'background-clip',\n  'background-color',\n  'background-image',\n  'background-origin',\n  'background-position',\n  'background-repeat',\n  'background-size',\n  'border',\n  'border-bottom',\n  'border-bottom-color',\n  'border-bottom-left-radius',\n  'border-bottom-right-radius',\n  'border-bottom-style',\n  'border-bottom-width',\n  'border-collapse',\n  'border-color',\n  'border-image',\n  'border-image-outset',\n  'border-image-repeat',\n  'border-image-slice',\n  'border-image-source',\n  'border-image-width',\n  'border-left',\n  'border-left-color',\n  'border-left-style',\n  'border-left-width',\n  'border-radius',\n  'border-right',\n  'border-right-color',\n  'border-right-style',\n  'border-right-width',\n  'border-spacing',\n  'border-style',\n  'border-top',\n  'border-top-color',\n  'border-top-left-radius',\n  'border-top-right-radius',\n  'border-top-style',\n  'border-top-width',\n  'border-width',\n  'bottom',\n  'box-decoration-break',\n  'box-shadow',\n  'box-sizing',\n  'break-after',\n  'break-before',\n  'break-inside',\n  'caption-side',\n  'clear',\n  'clip',\n  'clip-path',\n  'color',\n  'column-count',\n  'column-fill',\n  'column-gap',\n  'column-rule',\n  'column-rule-color',\n  'column-rule-style',\n  'column-rule-width',\n  'column-span',\n  'column-width',\n  'columns',\n  'content',\n  'counter-increment',\n  'counter-reset',\n  'cursor',\n  'direction',\n  'display',\n  'empty-cells',\n  'filter',\n  'flex',\n  'flex-basis',\n  'flex-direction',\n  'flex-flow',\n  'flex-grow',\n  'flex-shrink',\n  'flex-wrap',\n  'float',\n  'font',\n  'font-display',\n  'font-family',\n  'font-feature-settings',\n  'font-kerning',\n  'font-language-override',\n  'font-size',\n  'font-size-adjust',\n  'font-smoothing',\n  'font-stretch',\n  'font-style',\n  'font-variant',\n  'font-variant-ligatures',\n  'font-variation-settings',\n  'font-weight',\n  'height',\n  'hyphens',\n  'icon',\n  'image-orientation',\n  'image-rendering',\n  'image-resolution',\n  'ime-mode',\n  'inherit',\n  'initial',\n  'justify-content',\n  'left',\n  'letter-spacing',\n  'line-height',\n  'list-style',\n  'list-style-image',\n  'list-style-position',\n  'list-style-type',\n  'margin',\n  'margin-bottom',\n  'margin-left',\n  'margin-right',\n  'margin-top',\n  'marks',\n  'mask',\n  'max-height',\n  'max-width',\n  'min-height',\n  'min-width',\n  'nav-down',\n  'nav-index',\n  'nav-left',\n  'nav-right',\n  'nav-up',\n  'none',\n  'normal',\n  'object-fit',\n  'object-position',\n  'opacity',\n  'order',\n  'orphans',\n  'outline',\n  'outline-color',\n  'outline-offset',\n  'outline-style',\n  'outline-width',\n  'overflow',\n  'overflow-wrap',\n  'overflow-x',\n  'overflow-y',\n  'padding',\n  'padding-bottom',\n  'padding-left',\n  'padding-right',\n  'padding-top',\n  'page-break-after',\n  'page-break-before',\n  'page-break-inside',\n  'perspective',\n  'perspective-origin',\n  'pointer-events',\n  'position',\n  'quotes',\n  'resize',\n  'right',\n  'src', // @font-face\n  'tab-size',\n  'table-layout',\n  'text-align',\n  'text-align-last',\n  'text-decoration',\n  'text-decoration-color',\n  'text-decoration-line',\n  'text-decoration-style',\n  'text-indent',\n  'text-overflow',\n  'text-rendering',\n  'text-shadow',\n  'text-transform',\n  'text-underline-position',\n  'top',\n  'transform',\n  'transform-origin',\n  'transform-style',\n  'transition',\n  'transition-delay',\n  'transition-duration',\n  'transition-property',\n  'transition-timing-function',\n  'unicode-bidi',\n  'vertical-align',\n  'visibility',\n  'white-space',\n  'widows',\n  'width',\n  'word-break',\n  'word-spacing',\n  'word-wrap',\n  'z-index'\n  // reverse makes sure longer attributes `font-weight` are matched fully\n  // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: Stylus\nAuthor: Bryant Williams \nDescription: Stylus is an expressive, robust, feature-rich CSS language built for nodejs.\nWebsite: https://github.com/stylus/stylus\nCategory: css\n*/\n\n/** @type LanguageFn */\nfunction stylus(hljs) {\n  const modes = MODES(hljs);\n\n  const AT_MODIFIERS = \"and or not only\";\n  const VARIABLE = {\n    className: 'variable',\n    begin: '\\\\$' + hljs.IDENT_RE\n  };\n\n  const AT_KEYWORDS = [\n    'charset',\n    'css',\n    'debug',\n    'extend',\n    'font-face',\n    'for',\n    'import',\n    'include',\n    'keyframes',\n    'media',\n    'mixin',\n    'page',\n    'warn',\n    'while'\n  ];\n\n  const LOOKAHEAD_TAG_END = '(?=[.\\\\s\\\\n[:,(])';\n\n  // illegals\n  const ILLEGAL = [\n    '\\\\?',\n    '(\\\\bReturn\\\\b)', // monkey\n    '(\\\\bEnd\\\\b)', // monkey\n    '(\\\\bend\\\\b)', // vbscript\n    '(\\\\bdef\\\\b)', // gradle\n    ';', // a whole lot of languages\n    '#\\\\s', // markdown\n    '\\\\*\\\\s', // markdown\n    '===\\\\s', // markdown\n    '\\\\|',\n    '%' // prolog\n  ];\n\n  return {\n    name: 'Stylus',\n    aliases: [ 'styl' ],\n    case_insensitive: false,\n    keywords: 'if else for in',\n    illegal: '(' + ILLEGAL.join('|') + ')',\n    contains: [\n\n      // strings\n      hljs.QUOTE_STRING_MODE,\n      hljs.APOS_STRING_MODE,\n\n      // comments\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n\n      // hex colors\n      modes.HEXCOLOR,\n\n      // class tag\n      {\n        begin: '\\\\.[a-zA-Z][a-zA-Z0-9_-]*' + LOOKAHEAD_TAG_END,\n        className: 'selector-class'\n      },\n\n      // id tag\n      {\n        begin: '#[a-zA-Z][a-zA-Z0-9_-]*' + LOOKAHEAD_TAG_END,\n        className: 'selector-id'\n      },\n\n      // tags\n      {\n        begin: '\\\\b(' + TAGS.join('|') + ')' + LOOKAHEAD_TAG_END,\n        className: 'selector-tag'\n      },\n\n      // psuedo selectors\n      {\n        className: 'selector-pseudo',\n        begin: '&?:(' + PSEUDO_CLASSES.join('|') + ')' + LOOKAHEAD_TAG_END\n      },\n      {\n        className: 'selector-pseudo',\n        begin: '&?::(' + PSEUDO_ELEMENTS.join('|') + ')' + LOOKAHEAD_TAG_END\n      },\n\n      modes.ATTRIBUTE_SELECTOR_MODE,\n\n      {\n        className: \"keyword\",\n        begin: /@media/,\n        starts: {\n          end: /[{;}]/,\n          keywords: {\n            $pattern: /[a-z-]+/,\n            keyword: AT_MODIFIERS,\n            attribute: MEDIA_FEATURES.join(\" \")\n          },\n          contains: [ hljs.CSS_NUMBER_MODE ]\n        }\n      },\n\n      // @ keywords\n      {\n        className: 'keyword',\n        begin: '\\@((-(o|moz|ms|webkit)-)?(' + AT_KEYWORDS.join('|') + '))\\\\b'\n      },\n\n      // variables\n      VARIABLE,\n\n      // dimension\n      hljs.CSS_NUMBER_MODE,\n\n      // functions\n      //  - only from beginning of line + whitespace\n      {\n        className: 'function',\n        begin: '^[a-zA-Z][a-zA-Z0-9_\\-]*\\\\(.*\\\\)',\n        illegal: '[\\\\n]',\n        returnBegin: true,\n        contains: [\n          {\n            className: 'title',\n            begin: '\\\\b[a-zA-Z][a-zA-Z0-9_\\-]*'\n          },\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            contains: [\n              modes.HEXCOLOR,\n              VARIABLE,\n              hljs.APOS_STRING_MODE,\n              hljs.CSS_NUMBER_MODE,\n              hljs.QUOTE_STRING_MODE\n            ]\n          }\n        ]\n      },\n\n      // attributes\n      //  - only from beginning of line + whitespace\n      //  - must have whitespace after it\n      {\n        className: 'attribute',\n        begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n        starts: {\n          // value container\n          end: /;|$/,\n          contains: [\n            modes.HEXCOLOR,\n            VARIABLE,\n            hljs.APOS_STRING_MODE,\n            hljs.QUOTE_STRING_MODE,\n            hljs.CSS_NUMBER_MODE,\n            hljs.C_BLOCK_COMMENT_MODE,\n            modes.IMPORTANT\n          ],\n          illegal: /\\./,\n          relevance: 0\n        }\n      }\n    ]\n  };\n}\n\nmodule.exports = stylus;\n","/*\nLanguage: SubUnit\nAuthor: Sergey Bronnikov \nWebsite: https://pypi.org/project/python-subunit/\n*/\n\nfunction subunit(hljs) {\n  const DETAILS = {\n    className: 'string',\n    begin: '\\\\[\\n(multipart)?',\n    end: '\\\\]\\n'\n  };\n  const TIME = {\n    className: 'string',\n    begin: '\\\\d{4}-\\\\d{2}-\\\\d{2}(\\\\s+)\\\\d{2}:\\\\d{2}:\\\\d{2}\\.\\\\d+Z'\n  };\n  const PROGRESSVALUE = {\n    className: 'string',\n    begin: '(\\\\+|-)\\\\d+'\n  };\n  const KEYWORDS = {\n    className: 'keyword',\n    relevance: 10,\n    variants: [\n      {\n        begin: '^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\\\s+(test)?'\n      },\n      {\n        begin: '^progress(:?)(\\\\s+)?(pop|push)?'\n      },\n      {\n        begin: '^tags:'\n      },\n      {\n        begin: '^time:'\n      }\n    ]\n  };\n  return {\n    name: 'SubUnit',\n    case_insensitive: true,\n    contains: [\n      DETAILS,\n      TIME,\n      PROGRESSVALUE,\n      KEYWORDS\n    ]\n  };\n}\n\nmodule.exports = subunit;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\nconst keywordWrapper = keyword => concat(\n  /\\b/,\n  keyword,\n  /\\w$/.test(keyword) ? /\\b/ : /\\B/\n);\n\n// Keywords that require a leading dot.\nconst dotKeywords = [\n  'Protocol', // contextual\n  'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nconst optionalDotKeywords = [\n  'init',\n  'self'\n].map(keywordWrapper);\n\n// should register as keyword, not type\nconst keywordTypes = [\n  'Any',\n  'Self'\n];\n\n// Regular keywords and literals.\nconst keywords = [\n  // strings below will be fed into the regular `keywords` engine while regex\n  // will result in additional modes being created to scan for those keywords to\n  // avoid conflicts with other rules\n  'associatedtype',\n  'async',\n  'await',\n  /as\\?/, // operator\n  /as!/, // operator\n  'as', // operator\n  'break',\n  'case',\n  'catch',\n  'class',\n  'continue',\n  'convenience', // contextual\n  'default',\n  'defer',\n  'deinit',\n  'didSet', // contextual\n  'do',\n  'dynamic', // contextual\n  'else',\n  'enum',\n  'extension',\n  'fallthrough',\n  /fileprivate\\(set\\)/,\n  'fileprivate',\n  'final', // contextual\n  'for',\n  'func',\n  'get', // contextual\n  'guard',\n  'if',\n  'import',\n  'indirect', // contextual\n  'infix', // contextual\n  /init\\?/,\n  /init!/,\n  'inout',\n  /internal\\(set\\)/,\n  'internal',\n  'in',\n  'is', // operator\n  'lazy', // contextual\n  'let',\n  'mutating', // contextual\n  'nonmutating', // contextual\n  /open\\(set\\)/, // contextual\n  'open', // contextual\n  'operator',\n  'optional', // contextual\n  'override', // contextual\n  'postfix', // contextual\n  'precedencegroup',\n  'prefix', // contextual\n  /private\\(set\\)/,\n  'private',\n  'protocol',\n  /public\\(set\\)/,\n  'public',\n  'repeat',\n  'required', // contextual\n  'rethrows',\n  'return',\n  'set', // contextual\n  'some', // contextual\n  'static',\n  'struct',\n  'subscript',\n  'super',\n  'switch',\n  'throws',\n  'throw',\n  /try\\?/, // operator\n  /try!/, // operator\n  'try', // operator\n  'typealias',\n  /unowned\\(safe\\)/, // contextual\n  /unowned\\(unsafe\\)/, // contextual\n  'unowned', // contextual\n  'var',\n  'weak', // contextual\n  'where',\n  'while',\n  'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nconst literals = [\n  'false',\n  'nil',\n  'true'\n];\n\n// Keywords used in precedence groups.\nconst precedencegroupKeywords = [\n  'assignment',\n  'associativity',\n  'higherThan',\n  'left',\n  'lowerThan',\n  'none',\n  'right'\n];\n\n// Keywords that start with a number sign (#).\n// #available is handled separately.\nconst numberSignKeywords = [\n  '#colorLiteral',\n  '#column',\n  '#dsohandle',\n  '#else',\n  '#elseif',\n  '#endif',\n  '#error',\n  '#file',\n  '#fileID',\n  '#fileLiteral',\n  '#filePath',\n  '#function',\n  '#if',\n  '#imageLiteral',\n  '#keyPath',\n  '#line',\n  '#selector',\n  '#sourceLocation',\n  '#warn_unqualified_access',\n  '#warning'\n];\n\n// Global functions in the Standard Library.\nconst builtIns = [\n  'abs',\n  'all',\n  'any',\n  'assert',\n  'assertionFailure',\n  'debugPrint',\n  'dump',\n  'fatalError',\n  'getVaList',\n  'isKnownUniquelyReferenced',\n  'max',\n  'min',\n  'numericCast',\n  'pointwiseMax',\n  'pointwiseMin',\n  'precondition',\n  'preconditionFailure',\n  'print',\n  'readLine',\n  'repeatElement',\n  'sequence',\n  'stride',\n  'swap',\n  'swift_unboxFromSwiftValueWithType',\n  'transcode',\n  'type',\n  'unsafeBitCast',\n  'unsafeDowncast',\n  'withExtendedLifetime',\n  'withUnsafeMutablePointer',\n  'withUnsafePointer',\n  'withVaList',\n  'withoutActuallyEscaping',\n  'zip'\n];\n\n// Valid first characters for operators.\nconst operatorHead = either(\n  /[/=\\-+!*%<>&|^~?]/,\n  /[\\u00A1-\\u00A7]/,\n  /[\\u00A9\\u00AB]/,\n  /[\\u00AC\\u00AE]/,\n  /[\\u00B0\\u00B1]/,\n  /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/,\n  /[\\u2016-\\u2017]/,\n  /[\\u2020-\\u2027]/,\n  /[\\u2030-\\u203E]/,\n  /[\\u2041-\\u2053]/,\n  /[\\u2055-\\u205E]/,\n  /[\\u2190-\\u23FF]/,\n  /[\\u2500-\\u2775]/,\n  /[\\u2794-\\u2BFF]/,\n  /[\\u2E00-\\u2E7F]/,\n  /[\\u3001-\\u3003]/,\n  /[\\u3008-\\u3020]/,\n  /[\\u3030]/\n);\n\n// Valid characters for operators.\nconst operatorCharacter = either(\n  operatorHead,\n  /[\\u0300-\\u036F]/,\n  /[\\u1DC0-\\u1DFF]/,\n  /[\\u20D0-\\u20FF]/,\n  /[\\uFE00-\\uFE0F]/,\n  /[\\uFE20-\\uFE2F]/\n  // TODO: The following characters are also allowed, but the regex isn't supported yet.\n  // /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nconst operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nconst identifierHead = either(\n  /[a-zA-Z_]/,\n  /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/,\n  /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/,\n  /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/,\n  /[\\u1E00-\\u1FFF]/,\n  /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/,\n  /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/,\n  /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/,\n  /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/,\n  /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/,\n  /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n  // The following characters are also allowed, but the regexes aren't supported yet.\n  // /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n  // /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n  // /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n  // /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nconst identifierCharacter = either(\n  identifierHead,\n  /\\d/,\n  /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/\n);\n\n// Valid identifier.\nconst identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nconst typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\nconst keywordAttributes = [\n  'autoclosure',\n  concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/),\n  'discardableResult',\n  'dynamicCallable',\n  'dynamicMemberLookup',\n  'escaping',\n  'frozen',\n  'GKInspectable',\n  'IBAction',\n  'IBDesignable',\n  'IBInspectable',\n  'IBOutlet',\n  'IBSegueAction',\n  'inlinable',\n  'main',\n  'nonobjc',\n  'NSApplicationMain',\n  'NSCopying',\n  'NSManaged',\n  concat(/objc\\(/, identifier, /\\)/),\n  'objc',\n  'objcMembers',\n  'propertyWrapper',\n  'requires_stored_property_inits',\n  'testable',\n  'UIApplicationMain',\n  'unknown',\n  'usableFromInline'\n];\n\n// Contextual keywords used in @available and #available.\nconst availabilityKeywords = [\n  'iOS',\n  'iOSApplicationExtension',\n  'macOS',\n  'macOSApplicationExtension',\n  'macCatalyst',\n  'macCatalystApplicationExtension',\n  'watchOS',\n  'watchOSApplicationExtension',\n  'tvOS',\n  'tvOSApplicationExtension',\n  'swift'\n];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe \nContributors: Chris Eidhof , Nate Cook , Alexander Lichter , Richard Gibson \nWebsite: https://swift.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n  const WHITESPACE = {\n    match: /\\s+/,\n    relevance: 0\n  };\n  // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n  const BLOCK_COMMENT = hljs.COMMENT(\n    '/\\\\*',\n    '\\\\*/',\n    {\n      contains: [ 'self' ]\n    }\n  );\n  const COMMENTS = [\n    hljs.C_LINE_COMMENT_MODE,\n    BLOCK_COMMENT\n  ];\n\n  // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n  // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n  const DOT_KEYWORD = {\n    className: 'keyword',\n    begin: concat(/\\./, lookahead(either(...dotKeywords, ...optionalDotKeywords))),\n    end: either(...dotKeywords, ...optionalDotKeywords),\n    excludeBegin: true\n  };\n  const KEYWORD_GUARD = {\n    // Consume .keyword to prevent highlighting properties and methods as keywords.\n    match: concat(/\\./, either(...keywords)),\n    relevance: 0\n  };\n  const PLAIN_KEYWORDS = keywords\n    .filter(kw => typeof kw === 'string')\n    .concat([ \"_|0\" ]); // seems common, so 0 relevance\n  const REGEX_KEYWORDS = keywords\n    .filter(kw => typeof kw !== 'string') // find regex\n    .concat(keywordTypes)\n    .map(keywordWrapper);\n  const KEYWORD = {\n    variants: [\n      {\n        className: 'keyword',\n        match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)\n      }\n    ]\n  };\n  // find all the regular keywords\n  const KEYWORDS = {\n    $pattern: either(\n      /\\b\\w+/, // regular keywords\n      /#\\w+/ // number keywords\n    ),\n    keyword: PLAIN_KEYWORDS\n      .concat(numberSignKeywords),\n    literal: literals\n  };\n  const KEYWORD_MODES = [\n    DOT_KEYWORD,\n    KEYWORD_GUARD,\n    KEYWORD\n  ];\n\n  // https://github.com/apple/swift/tree/main/stdlib/public/core\n  const BUILT_IN_GUARD = {\n    // Consume .built_in to prevent highlighting properties and methods.\n    match: concat(/\\./, either(...builtIns)),\n    relevance: 0\n  };\n  const BUILT_IN = {\n    className: 'built_in',\n    match: concat(/\\b/, either(...builtIns), /(?=\\()/)\n  };\n  const BUILT_INS = [\n    BUILT_IN_GUARD,\n    BUILT_IN\n  ];\n\n  // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n  const OPERATOR_GUARD = {\n    // Prevent -> from being highlighting as an operator.\n    match: /->/,\n    relevance: 0\n  };\n  const OPERATOR = {\n    className: 'operator',\n    relevance: 0,\n    variants: [\n      {\n        match: operator\n      },\n      {\n        // dot-operator: only operators that start with a dot are allowed to use dots as\n        // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n        // characters that may also include dots.\n        match: `\\\\.(\\\\.|${operatorCharacter})+`\n      }\n    ]\n  };\n  const OPERATORS = [\n    OPERATOR_GUARD,\n    OPERATOR\n  ];\n\n  // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n  // TODO: Update for leading `-` after lookbehind is supported everywhere\n  const decimalDigits = '([0-9]_*)+';\n  const hexDigits = '([0-9a-fA-F]_*)+';\n  const NUMBER = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      // decimal floating-point-literal (subsumes decimal-literal)\n      {\n        match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b`\n      },\n      // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n      {\n        match: `\\\\b0x(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b`\n      },\n      // octal-literal\n      {\n        match: /\\b0o([0-7]_*)+\\b/\n      },\n      // binary-literal\n      {\n        match: /\\b0b([01]_*)+\\b/\n      }\n    ]\n  };\n\n  // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n  const ESCAPED_CHARACTER = (rawDelimiter = \"\") => ({\n    className: 'subst',\n    variants: [\n      {\n        match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/)\n      },\n      {\n        match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/)\n      }\n    ]\n  });\n  const ESCAPED_NEWLINE = (rawDelimiter = \"\") => ({\n    className: 'subst',\n    match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n  });\n  const INTERPOLATION = (rawDelimiter = \"\") => ({\n    className: 'subst',\n    label: \"interpol\",\n    begin: concat(/\\\\/, rawDelimiter, /\\(/),\n    end: /\\)/\n  });\n  const MULTILINE_STRING = (rawDelimiter = \"\") => ({\n    begin: concat(rawDelimiter, /\"\"\"/),\n    end: concat(/\"\"\"/, rawDelimiter),\n    contains: [\n      ESCAPED_CHARACTER(rawDelimiter),\n      ESCAPED_NEWLINE(rawDelimiter),\n      INTERPOLATION(rawDelimiter)\n    ]\n  });\n  const SINGLE_LINE_STRING = (rawDelimiter = \"\") => ({\n    begin: concat(rawDelimiter, /\"/),\n    end: concat(/\"/, rawDelimiter),\n    contains: [\n      ESCAPED_CHARACTER(rawDelimiter),\n      INTERPOLATION(rawDelimiter)\n    ]\n  });\n  const STRING = {\n    className: 'string',\n    variants: [\n      MULTILINE_STRING(),\n      MULTILINE_STRING(\"#\"),\n      MULTILINE_STRING(\"##\"),\n      MULTILINE_STRING(\"###\"),\n      SINGLE_LINE_STRING(),\n      SINGLE_LINE_STRING(\"#\"),\n      SINGLE_LINE_STRING(\"##\"),\n      SINGLE_LINE_STRING(\"###\")\n    ]\n  };\n\n  // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n  const QUOTED_IDENTIFIER = {\n    match: concat(/`/, identifier, /`/)\n  };\n  const IMPLICIT_PARAMETER = {\n    className: 'variable',\n    match: /\\$\\d+/\n  };\n  const PROPERTY_WRAPPER_PROJECTION = {\n    className: 'variable',\n    match: `\\\\$${identifierCharacter}+`\n  };\n  const IDENTIFIERS = [\n    QUOTED_IDENTIFIER,\n    IMPLICIT_PARAMETER,\n    PROPERTY_WRAPPER_PROJECTION\n  ];\n\n  // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n  const AVAILABLE_ATTRIBUTE = {\n    match: /(@|#)available/,\n    className: \"keyword\",\n    starts: {\n      contains: [\n        {\n          begin: /\\(/,\n          end: /\\)/,\n          keywords: availabilityKeywords,\n          contains: [\n            ...OPERATORS,\n            NUMBER,\n            STRING\n          ]\n        }\n      ]\n    }\n  };\n  const KEYWORD_ATTRIBUTE = {\n    className: 'keyword',\n    match: concat(/@/, either(...keywordAttributes))\n  };\n  const USER_DEFINED_ATTRIBUTE = {\n    className: 'meta',\n    match: concat(/@/, identifier)\n  };\n  const ATTRIBUTES = [\n    AVAILABLE_ATTRIBUTE,\n    KEYWORD_ATTRIBUTE,\n    USER_DEFINED_ATTRIBUTE\n  ];\n\n  // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n  const TYPE = {\n    match: lookahead(/\\b[A-Z]/),\n    relevance: 0,\n    contains: [\n      { // Common Apple frameworks, for relevance boost\n        className: 'type',\n        match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n      },\n      { // Type identifier\n        className: 'type',\n        match: typeIdentifier,\n        relevance: 0\n      },\n      { // Optional type\n        match: /[?!]+/,\n        relevance: 0\n      },\n      { // Variadic parameter\n        match: /\\.\\.\\./,\n        relevance: 0\n      },\n      { // Protocol composition\n        match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n        relevance: 0\n      }\n    ]\n  };\n  const GENERIC_ARGUMENTS = {\n    begin: //,\n    keywords: KEYWORDS,\n    contains: [\n      ...COMMENTS,\n      ...KEYWORD_MODES,\n      ...ATTRIBUTES,\n      OPERATOR_GUARD,\n      TYPE\n    ]\n  };\n  TYPE.contains.push(GENERIC_ARGUMENTS);\n\n  // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n  // Prevents element names from being highlighted as keywords.\n  const TUPLE_ELEMENT_NAME = {\n    match: concat(identifier, /\\s*:/),\n    keywords: \"_|0\",\n    relevance: 0\n  };\n  // Matches tuples as well as the parameter list of a function type.\n  const TUPLE = {\n    begin: /\\(/,\n    end: /\\)/,\n    relevance: 0,\n    keywords: KEYWORDS,\n    contains: [\n      'self',\n      TUPLE_ELEMENT_NAME,\n      ...COMMENTS,\n      ...KEYWORD_MODES,\n      ...BUILT_INS,\n      ...OPERATORS,\n      NUMBER,\n      STRING,\n      ...IDENTIFIERS,\n      ...ATTRIBUTES,\n      TYPE\n    ]\n  };\n\n  // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n  // Matches both the keyword func and the function title.\n  // Grouping these lets us differentiate between the operator function <\n  // and the start of the generic parameter clause (also <).\n  const FUNC_PLUS_TITLE = {\n    beginKeywords: 'func',\n    contains: [\n      {\n        className: 'title',\n        match: either(QUOTED_IDENTIFIER.match, identifier, operator),\n        // Required to make sure the opening < of the generic parameter clause\n        // isn't parsed as a second title.\n        endsParent: true,\n        relevance: 0\n      },\n      WHITESPACE\n    ]\n  };\n  const GENERIC_PARAMETERS = {\n    begin: //,\n    contains: [\n      ...COMMENTS,\n      TYPE\n    ]\n  };\n  const FUNCTION_PARAMETER_NAME = {\n    begin: either(\n      lookahead(concat(identifier, /\\s*:/)),\n      lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))\n    ),\n    end: /:/,\n    relevance: 0,\n    contains: [\n      {\n        className: 'keyword',\n        match: /\\b_\\b/\n      },\n      {\n        className: 'params',\n        match: identifier\n      }\n    ]\n  };\n  const FUNCTION_PARAMETERS = {\n    begin: /\\(/,\n    end: /\\)/,\n    keywords: KEYWORDS,\n    contains: [\n      FUNCTION_PARAMETER_NAME,\n      ...COMMENTS,\n      ...KEYWORD_MODES,\n      ...OPERATORS,\n      NUMBER,\n      STRING,\n      ...ATTRIBUTES,\n      TYPE,\n      TUPLE\n    ],\n    endsParent: true,\n    illegal: /[\"']/\n  };\n  const FUNCTION = {\n    className: 'function',\n    match: lookahead(/\\bfunc\\b/),\n    contains: [\n      FUNC_PLUS_TITLE,\n      GENERIC_PARAMETERS,\n      FUNCTION_PARAMETERS,\n      WHITESPACE\n    ],\n    illegal: [\n      /\\[/,\n      /%/\n    ]\n  };\n\n  // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n  // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n  const INIT_SUBSCRIPT = {\n    className: 'function',\n    match: /\\b(subscript|init[?!]?)\\s*(?=[<(])/,\n    keywords: {\n      keyword: \"subscript init init? init!\",\n      $pattern: /\\w+[?!]?/\n    },\n    contains: [\n      GENERIC_PARAMETERS,\n      FUNCTION_PARAMETERS,\n      WHITESPACE\n    ],\n    illegal: /\\[|%/\n  };\n  // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n  const OPERATOR_DECLARATION = {\n    beginKeywords: 'operator',\n    end: hljs.MATCH_NOTHING_RE,\n    contains: [\n      {\n        className: 'title',\n        match: operator,\n        endsParent: true,\n        relevance: 0\n      }\n    ]\n  };\n\n  // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n  const PRECEDENCEGROUP = {\n    beginKeywords: 'precedencegroup',\n    end: hljs.MATCH_NOTHING_RE,\n    contains: [\n      {\n        className: 'title',\n        match: typeIdentifier,\n        relevance: 0\n      },\n      {\n        begin: /{/,\n        end: /}/,\n        relevance: 0,\n        endsParent: true,\n        keywords: [\n          ...precedencegroupKeywords,\n          ...literals\n        ],\n        contains: [ TYPE ]\n      }\n    ]\n  };\n\n  // Add supported submodes to string interpolation.\n  for (const variant of STRING.variants) {\n    const interpolation = variant.contains.find(mode => mode.label === \"interpol\");\n    // TODO: Interpolation can contain any expression, so there's room for improvement here.\n    interpolation.keywords = KEYWORDS;\n    const submodes = [\n      ...KEYWORD_MODES,\n      ...BUILT_INS,\n      ...OPERATORS,\n      NUMBER,\n      STRING,\n      ...IDENTIFIERS\n    ];\n    interpolation.contains = [\n      ...submodes,\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        contains: [\n          'self',\n          ...submodes\n        ]\n      }\n    ];\n  }\n\n  return {\n    name: 'Swift',\n    keywords: KEYWORDS,\n    contains: [\n      ...COMMENTS,\n      FUNCTION,\n      INIT_SUBSCRIPT,\n      {\n        className: 'class',\n        beginKeywords: 'struct protocol class extension enum',\n        end: '\\\\{',\n        excludeEnd: true,\n        keywords: KEYWORDS,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            begin: /[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/\n          }),\n          ...KEYWORD_MODES\n        ]\n      },\n      OPERATOR_DECLARATION,\n      PRECEDENCEGROUP,\n      {\n        beginKeywords: 'import',\n        end: /$/,\n        contains: [ ...COMMENTS ],\n        relevance: 0\n      },\n      ...KEYWORD_MODES,\n      ...BUILT_INS,\n      ...OPERATORS,\n      NUMBER,\n      STRING,\n      ...IDENTIFIERS,\n      ...ATTRIBUTES,\n      TYPE,\n      TUPLE\n    ]\n  };\n}\n\nmodule.exports = swift;\n","/*\nLanguage: Tagger Script\nAuthor: Philipp Wolfer \nDescription: Syntax Highlighting for the Tagger Script as used by MusicBrainz Picard.\nWebsite: https://picard.musicbrainz.org\n */\nfunction taggerscript(hljs) {\n  const COMMENT = {\n    className: 'comment',\n    begin: /\\$noop\\(/,\n    end: /\\)/,\n    contains: [ {\n      begin: /\\(/,\n      end: /\\)/,\n      contains: [ 'self',\n        {\n          begin: /\\\\./\n        } ]\n    } ],\n    relevance: 10\n  };\n\n  const FUNCTION = {\n    className: 'keyword',\n    begin: /\\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,\n    end: /\\(/,\n    excludeEnd: true\n  };\n\n  const VARIABLE = {\n    className: 'variable',\n    begin: /%[_a-zA-Z0-9:]*/,\n    end: '%'\n  };\n\n  const ESCAPE_SEQUENCE = {\n    className: 'symbol',\n    begin: /\\\\./\n  };\n\n  return {\n    name: 'Tagger Script',\n    contains: [\n      COMMENT,\n      FUNCTION,\n      VARIABLE,\n      ESCAPE_SEQUENCE\n    ]\n  };\n}\n\nmodule.exports = taggerscript;\n","/*\nLanguage: Test Anything Protocol\nDescription: TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness.\nRequires: yaml.js\nAuthor: Sergey Bronnikov \nWebsite: https://testanything.org\n*/\n\nfunction tap(hljs) {\n  return {\n    name: 'Test Anything Protocol',\n    case_insensitive: true,\n    contains: [\n      hljs.HASH_COMMENT_MODE,\n      // version of format and total amount of testcases\n      {\n        className: 'meta',\n        variants: [\n          {\n            begin: '^TAP version (\\\\d+)$'\n          },\n          {\n            begin: '^1\\\\.\\\\.(\\\\d+)$'\n          }\n        ]\n      },\n      // YAML block\n      {\n        begin: /---$/,\n        end: '\\\\.\\\\.\\\\.$',\n        subLanguage: 'yaml',\n        relevance: 0\n      },\n      // testcase number\n      {\n        className: 'number',\n        begin: ' (\\\\d+) '\n      },\n      // testcase status and description\n      {\n        className: 'symbol',\n        variants: [\n          {\n            begin: '^ok'\n          },\n          {\n            begin: '^not ok'\n          }\n        ]\n      }\n    ]\n  };\n}\n\nmodule.exports = tap;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: Tcl\nDescription: Tcl is a very simple programming language.\nAuthor: Radek Liska \nWebsite: https://www.tcl.tk/about/language.html\n*/\n\nfunction tcl(hljs) {\n  const TCL_IDENT = /[a-zA-Z_][a-zA-Z0-9_]*/;\n\n  const NUMBER = {\n    className: 'number',\n    variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]\n  };\n\n  return {\n    name: 'Tcl',\n    aliases: ['tk'],\n    keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +\n      'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +\n      'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +\n      'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +\n      'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +\n      'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+\n      'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+\n      'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+\n      'return safe scan seek set socket source split string subst switch tcl_endOfWord '+\n      'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+\n      'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+\n      'uplevel upvar variable vwait while',\n    contains: [\n      hljs.COMMENT(';[ \\\\t]*#', '$'),\n      hljs.COMMENT('^[ \\\\t]*#', '$'),\n      {\n        beginKeywords: 'proc',\n        end: '[\\\\{]',\n        excludeEnd: true,\n        contains: [\n          {\n            className: 'title',\n            begin: '[ \\\\t\\\\n\\\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',\n            end: '[ \\\\t\\\\n\\\\r]',\n            endsWithParent: true,\n            excludeEnd: true\n          }\n        ]\n      },\n      {\n        className: \"variable\",\n        variants: [\n          {\n            begin: concat(\n              /\\$/,\n              optional(/::/),\n              TCL_IDENT,\n              '(::',\n              TCL_IDENT,\n              ')*'\n            )\n          },\n          {\n            begin: '\\\\$\\\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',\n            end: '\\\\}',\n            contains: [\n              NUMBER\n            ]\n          }\n        ]\n      },\n      {\n        className: 'string',\n        contains: [hljs.BACKSLASH_ESCAPE],\n        variants: [\n          hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})\n        ]\n      },\n      NUMBER\n    ]\n  }\n}\n\nmodule.exports = tcl;\n","/*\nLanguage: Thrift\nAuthor: Oleg Efimov \nDescription: Thrift message definition format\nWebsite: https://thrift.apache.org\nCategory: protocols\n*/\n\nfunction thrift(hljs) {\n  const BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';\n  return {\n    name: 'Thrift',\n    keywords: {\n      keyword:\n        'namespace const typedef struct enum service exception void oneway set list map required optional',\n      built_in:\n        BUILT_IN_TYPES,\n      literal:\n        'true false'\n    },\n    contains: [\n      hljs.QUOTE_STRING_MODE,\n      hljs.NUMBER_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'class',\n        beginKeywords: 'struct enum service exception',\n        end: /\\{/,\n        illegal: /\\n/,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, {\n            // hack: eating everything after the first title\n            starts: {\n              endsWithParent: true,\n              excludeEnd: true\n            }\n          })\n        ]\n      },\n      {\n        begin: '\\\\b(set|list|map)\\\\s*<',\n        end: '>',\n        keywords: BUILT_IN_TYPES,\n        contains: [ 'self' ]\n      }\n    ]\n  };\n}\n\nmodule.exports = thrift;\n","/*\nLanguage: TP\nAuthor: Jay Strybis \nDescription: FANUC TP programming language (TPP).\n*/\n\nfunction tp(hljs) {\n  const TPID = {\n    className: 'number',\n    begin: '[1-9][0-9]*', /* no leading zeros */\n    relevance: 0\n  };\n  const TPLABEL = {\n    className: 'symbol',\n    begin: ':[^\\\\]]+'\n  };\n  const TPDATA = {\n    className: 'built_in',\n    begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|' +\n    'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\\\[',\n    end: '\\\\]',\n    contains: [\n      'self',\n      TPID,\n      TPLABEL\n    ]\n  };\n  const TPIO = {\n    className: 'built_in',\n    begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\\\[',\n    end: '\\\\]',\n    contains: [\n      'self',\n      TPID,\n      hljs.QUOTE_STRING_MODE, /* for pos section at bottom */\n      TPLABEL\n    ]\n  };\n\n  return {\n    name: 'TP',\n    keywords: {\n      keyword:\n        'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +\n        'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +\n        'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +\n        'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +\n        'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +\n        'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',\n      literal:\n        'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'\n    },\n    contains: [\n      TPDATA,\n      TPIO,\n      {\n        className: 'keyword',\n        begin: '/(PROG|ATTR|MN|POS|END)\\\\b'\n      },\n      {\n        /* this is for cases like ,CALL */\n        className: 'keyword',\n        begin: '(CALL|RUN|POINT_LOGIC|LBL)\\\\b'\n      },\n      {\n        /* this is for cases like CNT100 where the default lexemes do not\n         * separate the keyword and the number */\n        className: 'keyword',\n        begin: '\\\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'\n      },\n      {\n        /* to catch numbers that do not have a word boundary on the left */\n        className: 'number',\n        begin: '\\\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\\\b',\n        relevance: 0\n      },\n      hljs.COMMENT('//', '[;$]'),\n      hljs.COMMENT('!', '[;$]'),\n      hljs.COMMENT('--eg:', '$'),\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        begin: '\\'',\n        end: '\\''\n      },\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'variable',\n        begin: '\\\\$[A-Za-z0-9_]+'\n      }\n    ]\n  };\n}\n\nmodule.exports = tp;\n","/*\nLanguage: Twig\nRequires: xml.js\nAuthor: Luke Holder \nDescription: Twig is a templating language for PHP\nWebsite: https://twig.symfony.com\nCategory: template\n*/\n\nfunction twig(hljs) {\n  var PARAMS = {\n    className: 'params',\n    begin: '\\\\(', end: '\\\\)'\n  };\n\n  var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +\n                  'max min parent random range source template_from_string';\n\n  var FUNCTIONS = {\n    beginKeywords: FUNCTION_NAMES,\n    keywords: {name: FUNCTION_NAMES},\n    relevance: 0,\n    contains: [\n      PARAMS\n    ]\n  };\n\n  var FILTER = {\n    begin: /\\|[A-Za-z_]+:?/,\n    keywords:\n      'abs batch capitalize column convert_encoding date date_modify default ' +\n      'escape filter first format inky_to_html inline_css join json_encode keys last ' +\n      'length lower map markdown merge nl2br number_format raw reduce replace ' +\n      'reverse round slice sort spaceless split striptags title trim upper url_encode',\n    contains: [\n      FUNCTIONS\n    ]\n  };\n\n  var TAGS = 'apply autoescape block deprecated do embed extends filter flush for from ' +\n    'if import include macro sandbox set use verbatim with';\n\n  TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');\n\n  return {\n    name: 'Twig',\n    aliases: ['craftcms'],\n    case_insensitive: true,\n    subLanguage: 'xml',\n    contains: [\n      hljs.COMMENT(/\\{#/, /#\\}/),\n      {\n        className: 'template-tag',\n        begin: /\\{%/, end: /%\\}/,\n        contains: [\n          {\n            className: 'name',\n            begin: /\\w+/,\n            keywords: TAGS,\n            starts: {\n              endsWithParent: true,\n              contains: [FILTER, FUNCTIONS],\n              relevance: 0\n            }\n          }\n        ]\n      },\n      {\n        className: 'template-variable',\n        begin: /\\{\\{/, end: /\\}\\}/,\n        contains: ['self', FILTER, FUNCTIONS]\n      }\n    ]\n  };\n}\n\nmodule.exports = twig;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n  \"as\", // for exports\n  \"in\",\n  \"of\",\n  \"if\",\n  \"for\",\n  \"while\",\n  \"finally\",\n  \"var\",\n  \"new\",\n  \"function\",\n  \"do\",\n  \"return\",\n  \"void\",\n  \"else\",\n  \"break\",\n  \"catch\",\n  \"instanceof\",\n  \"with\",\n  \"throw\",\n  \"case\",\n  \"default\",\n  \"try\",\n  \"switch\",\n  \"continue\",\n  \"typeof\",\n  \"delete\",\n  \"let\",\n  \"yield\",\n  \"const\",\n  \"class\",\n  // JS handles these with a special rule\n  // \"get\",\n  // \"set\",\n  \"debugger\",\n  \"async\",\n  \"await\",\n  \"static\",\n  \"import\",\n  \"from\",\n  \"export\",\n  \"extends\"\n];\nconst LITERALS = [\n  \"true\",\n  \"false\",\n  \"null\",\n  \"undefined\",\n  \"NaN\",\n  \"Infinity\"\n];\n\nconst TYPES = [\n  \"Intl\",\n  \"DataView\",\n  \"Number\",\n  \"Math\",\n  \"Date\",\n  \"String\",\n  \"RegExp\",\n  \"Object\",\n  \"Function\",\n  \"Boolean\",\n  \"Error\",\n  \"Symbol\",\n  \"Set\",\n  \"Map\",\n  \"WeakSet\",\n  \"WeakMap\",\n  \"Proxy\",\n  \"Reflect\",\n  \"JSON\",\n  \"Promise\",\n  \"Float64Array\",\n  \"Int16Array\",\n  \"Int32Array\",\n  \"Int8Array\",\n  \"Uint16Array\",\n  \"Uint32Array\",\n  \"Float32Array\",\n  \"Array\",\n  \"Uint8Array\",\n  \"Uint8ClampedArray\",\n  \"ArrayBuffer\",\n  \"BigInt64Array\",\n  \"BigUint64Array\",\n  \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n  \"EvalError\",\n  \"InternalError\",\n  \"RangeError\",\n  \"ReferenceError\",\n  \"SyntaxError\",\n  \"TypeError\",\n  \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n  \"setInterval\",\n  \"setTimeout\",\n  \"clearInterval\",\n  \"clearTimeout\",\n\n  \"require\",\n  \"exports\",\n\n  \"eval\",\n  \"isFinite\",\n  \"isNaN\",\n  \"parseFloat\",\n  \"parseInt\",\n  \"decodeURI\",\n  \"decodeURIComponent\",\n  \"encodeURI\",\n  \"encodeURIComponent\",\n  \"escape\",\n  \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n  \"arguments\",\n  \"this\",\n  \"super\",\n  \"console\",\n  \"window\",\n  \"document\",\n  \"localStorage\",\n  \"module\",\n  \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n  BUILT_IN_GLOBALS,\n  BUILT_IN_VARIABLES,\n  TYPES,\n  ERROR_TYPES\n);\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n  /**\n   * Takes a string like \" {\n    const tag = \"',\n    end: ''\n  };\n  const XML_TAG = {\n    begin: /<[A-Za-z0-9\\\\._:-]+/,\n    end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n    /**\n     * @param {RegExpMatchArray} match\n     * @param {CallbackResponse} response\n     */\n    isTrulyOpeningTag: (match, response) => {\n      const afterMatchIndex = match[0].length + match.index;\n      const nextChar = match.input[afterMatchIndex];\n      // nested type?\n      // HTML should not include another raw `<` inside a tag\n      // But a type might: `>`, etc.\n      if (nextChar === \"<\") {\n        response.ignoreMatch();\n        return;\n      }\n      // \n      // This is now either a tag or a type.\n      if (nextChar === \">\") {\n        // if we cannot find a matching closing tag, then we\n        // will ignore it\n        if (!hasClosingTag(match, { after: afterMatchIndex })) {\n          response.ignoreMatch();\n        }\n      }\n    }\n  };\n  const KEYWORDS$1 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS,\n    literal: LITERALS,\n    built_in: BUILT_INS\n  };\n\n  // https://tc39.es/ecma262/#sec-literals-numeric-literals\n  const decimalDigits = '[0-9](_?[0-9])*';\n  const frac = `\\\\.(${decimalDigits})`;\n  // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n  // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n  const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n  const NUMBER = {\n    className: 'number',\n    variants: [\n      // DecimalLiteral\n      { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n        `[eE][+-]?(${decimalDigits})\\\\b` },\n      { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n      // DecimalBigIntegerLiteral\n      { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n      // NonDecimalIntegerLiteral\n      { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n      { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n      { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n      // LegacyOctalIntegerLiteral (does not include underscore separators)\n      // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n      { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n    ],\n    relevance: 0\n  };\n\n  const SUBST = {\n    className: 'subst',\n    begin: '\\\\$\\\\{',\n    end: '\\\\}',\n    keywords: KEYWORDS$1,\n    contains: [] // defined later\n  };\n  const HTML_TEMPLATE = {\n    begin: 'html`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: 'xml'\n    }\n  };\n  const CSS_TEMPLATE = {\n    begin: 'css`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: 'css'\n    }\n  };\n  const TEMPLATE_STRING = {\n    className: 'string',\n    begin: '`',\n    end: '`',\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ]\n  };\n  const JSDOC_COMMENT = hljs.COMMENT(\n    /\\/\\*\\*(?!\\/)/,\n    '\\\\*/',\n    {\n      relevance: 0,\n      contains: [\n        {\n          className: 'doctag',\n          begin: '@[A-Za-z]+',\n          contains: [\n            {\n              className: 'type',\n              begin: '\\\\{',\n              end: '\\\\}',\n              relevance: 0\n            },\n            {\n              className: 'variable',\n              begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n              endsParent: true,\n              relevance: 0\n            },\n            // eat spaces (not newlines) so we can find\n            // types or variables\n            {\n              begin: /(?=[^\\n])\\s/,\n              relevance: 0\n            }\n          ]\n        }\n      ]\n    }\n  );\n  const COMMENT = {\n    className: \"comment\",\n    variants: [\n      JSDOC_COMMENT,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_LINE_COMMENT_MODE\n    ]\n  };\n  const SUBST_INTERNALS = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    HTML_TEMPLATE,\n    CSS_TEMPLATE,\n    TEMPLATE_STRING,\n    NUMBER,\n    hljs.REGEXP_MODE\n  ];\n  SUBST.contains = SUBST_INTERNALS\n    .concat({\n      // we need to pair up {} inside our subst to prevent\n      // it from ending too early by matching another }\n      begin: /\\{/,\n      end: /\\}/,\n      keywords: KEYWORDS$1,\n      contains: [\n        \"self\"\n      ].concat(SUBST_INTERNALS)\n    });\n  const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n  const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n    // eat recursive parens in sub expressions\n    {\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS$1,\n      contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n    }\n  ]);\n  const PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true,\n    keywords: KEYWORDS$1,\n    contains: PARAMS_CONTAINS\n  };\n\n  return {\n    name: 'Javascript',\n    aliases: ['js', 'jsx', 'mjs', 'cjs'],\n    keywords: KEYWORDS$1,\n    // this will be extended by TypeScript\n    exports: { PARAMS_CONTAINS },\n    illegal: /#(?![$_A-z])/,\n    contains: [\n      hljs.SHEBANG({\n        label: \"shebang\",\n        binary: \"node\",\n        relevance: 5\n      }),\n      {\n        label: \"use_strict\",\n        className: 'meta',\n        relevance: 10,\n        begin: /^\\s*['\"]use (strict|asm)['\"]/\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      HTML_TEMPLATE,\n      CSS_TEMPLATE,\n      TEMPLATE_STRING,\n      COMMENT,\n      NUMBER,\n      { // object attr container\n        begin: concat(/[{,\\n]\\s*/,\n          // we need to look ahead to make sure that we actually have an\n          // attribute coming up so we don't steal a comma from a potential\n          // \"value\" container\n          //\n          // NOTE: this might not work how you think.  We don't actually always\n          // enter this mode and stay.  Instead it might merely match `,\n          // ` and then immediately end after the , because it\n          // fails to find any actual attrs. But this still does the job because\n          // it prevents the value contain rule from grabbing this instead and\n          // prevening this rule from firing when we actually DO have keys.\n          lookahead(concat(\n            // we also need to allow for multiple possible comments inbetween\n            // the first key:value pairing\n            /(((\\/\\/.*$)|(\\/\\*(\\*[^/]|[^*])*\\*\\/))\\s*)*/,\n            IDENT_RE$1 + '\\\\s*:'))),\n        relevance: 0,\n        contains: [\n          {\n            className: 'attr',\n            begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n            relevance: 0\n          }\n        ]\n      },\n      { // \"value\" container\n        begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n        keywords: 'return throw case',\n        contains: [\n          COMMENT,\n          hljs.REGEXP_MODE,\n          {\n            className: 'function',\n            // we have to count the parens to make sure we actually have the\n            // correct bounding ( ) before the =>.  There could be any number of\n            // sub-expressions inside also surrounded by parens.\n            begin: '(\\\\(' +\n            '[^()]*(\\\\(' +\n            '[^()]*(\\\\(' +\n            '[^()]*' +\n            '\\\\)[^()]*)*' +\n            '\\\\)[^()]*)*' +\n            '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n            returnBegin: true,\n            end: '\\\\s*=>',\n            contains: [\n              {\n                className: 'params',\n                variants: [\n                  {\n                    begin: hljs.UNDERSCORE_IDENT_RE,\n                    relevance: 0\n                  },\n                  {\n                    className: null,\n                    begin: /\\(\\s*\\)/,\n                    skip: true\n                  },\n                  {\n                    begin: /\\(/,\n                    end: /\\)/,\n                    excludeBegin: true,\n                    excludeEnd: true,\n                    keywords: KEYWORDS$1,\n                    contains: PARAMS_CONTAINS\n                  }\n                ]\n              }\n            ]\n          },\n          { // could be a comma delimited list of params to a function call\n            begin: /,/, relevance: 0\n          },\n          {\n            className: '',\n            begin: /\\s/,\n            end: /\\s*/,\n            skip: true\n          },\n          { // JSX\n            variants: [\n              { begin: FRAGMENT.begin, end: FRAGMENT.end },\n              {\n                begin: XML_TAG.begin,\n                // we carefully check the opening tag to see if it truly\n                // is a tag and not a false positive\n                'on:begin': XML_TAG.isTrulyOpeningTag,\n                end: XML_TAG.end\n              }\n            ],\n            subLanguage: 'xml',\n            contains: [\n              {\n                begin: XML_TAG.begin,\n                end: XML_TAG.end,\n                skip: true,\n                contains: ['self']\n              }\n            ]\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: /[{;]/,\n        excludeEnd: true,\n        keywords: KEYWORDS$1,\n        contains: [\n          'self',\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n          PARAMS\n        ],\n        illegal: /%/\n      },\n      {\n        // prevent this from getting swallowed up by function\n        // since they appear \"function like\"\n        beginKeywords: \"while if switch catch for\"\n      },\n      {\n        className: 'function',\n        // we have to count the parens to make sure we actually have the correct\n        // bounding ( ).  There could be any number of sub-expressions inside\n        // also surrounded by parens.\n        begin: hljs.UNDERSCORE_IDENT_RE +\n          '\\\\(' + // first parens\n          '[^()]*(\\\\(' +\n            '[^()]*(\\\\(' +\n              '[^()]*' +\n            '\\\\)[^()]*)*' +\n          '\\\\)[^()]*)*' +\n          '\\\\)\\\\s*\\\\{', // end parens\n        returnBegin:true,\n        contains: [\n          PARAMS,\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n        ]\n      },\n      // hack: prevents detection of keywords in some circumstances\n      // .keyword()\n      // $keyword = x\n      {\n        variants: [\n          { begin: '\\\\.' + IDENT_RE$1 },\n          { begin: '\\\\$' + IDENT_RE$1 }\n        ],\n        relevance: 0\n      },\n      { // ES6 class\n        className: 'class',\n        beginKeywords: 'class',\n        end: /[{;=]/,\n        excludeEnd: true,\n        illegal: /[:\"[\\]]/,\n        contains: [\n          { beginKeywords: 'extends' },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      {\n        begin: /\\b(?=constructor)/,\n        end: /[{;]/,\n        excludeEnd: true,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n          'self',\n          PARAMS\n        ]\n      },\n      {\n        begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n        end: /\\{/,\n        keywords: \"get set\",\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n          { begin: /\\(\\)/ }, // eat to avoid empty params\n          PARAMS\n        ]\n      },\n      {\n        begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n      }\n    ]\n  };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n  const IDENT_RE$1 = IDENT_RE;\n  const NAMESPACE = {\n    beginKeywords: 'namespace', end: /\\{/, excludeEnd: true\n  };\n  const INTERFACE = {\n    beginKeywords: 'interface', end: /\\{/, excludeEnd: true,\n    keywords: 'interface extends'\n  };\n  const USE_STRICT = {\n    className: 'meta',\n    relevance: 10,\n    begin: /^\\s*['\"]use strict['\"]/\n  };\n  const TYPES = [\n    \"any\",\n    \"void\",\n    \"number\",\n    \"boolean\",\n    \"string\",\n    \"object\",\n    \"never\",\n    \"enum\"\n  ];\n  const TS_SPECIFIC_KEYWORDS = [\n    \"type\",\n    \"namespace\",\n    \"typedef\",\n    \"interface\",\n    \"public\",\n    \"private\",\n    \"protected\",\n    \"implements\",\n    \"declare\",\n    \"abstract\",\n    \"readonly\"\n  ];\n  const KEYWORDS$1 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n    literal: LITERALS,\n    built_in: BUILT_INS.concat(TYPES)\n  };\n  const DECORATOR = {\n    className: 'meta',\n    begin: '@' + IDENT_RE$1,\n  };\n\n  const swapMode = (mode, label, replacement) => {\n    const indx = mode.contains.findIndex(m => m.label === label);\n    if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n    mode.contains.splice(indx, 1, replacement);\n  };\n\n  const tsLanguage = javascript(hljs);\n\n  // this should update anywhere keywords is used since\n  // it will be the same actual JS object\n  Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n  tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n  tsLanguage.contains = tsLanguage.contains.concat([\n    DECORATOR,\n    NAMESPACE,\n    INTERFACE,\n  ]);\n\n  // TS gets a simpler shebang rule than JS\n  swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n  // JS use strict rule purposely excludes `asm` which makes no sense\n  swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n  const functionDeclaration = tsLanguage.contains.find(m => m.className === \"function\");\n  functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n  Object.assign(tsLanguage, {\n    name: 'TypeScript',\n    aliases: ['ts', 'tsx']\n  });\n\n  return tsLanguage;\n}\n\nmodule.exports = typescript;\n","/*\nLanguage: Vala\nAuthor: Antono Vasiljev \nDescription: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.\nWebsite: https://wiki.gnome.org/Projects/Vala\n*/\n\nfunction vala(hljs) {\n  return {\n    name: 'Vala',\n    keywords: {\n      keyword:\n        // Value types\n        'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +\n        'uint16 uint32 uint64 float double bool struct enum string void ' +\n        // Reference types\n        'weak unowned owned ' +\n        // Modifiers\n        'async signal static abstract interface override virtual delegate ' +\n        // Control Structures\n        'if while do for foreach else switch case break default return try catch ' +\n        // Visibility\n        'public private protected internal ' +\n        // Other\n        'using new this get set const stdout stdin stderr var',\n      built_in:\n        'DBus GLib CCode Gee Object Gtk Posix',\n      literal:\n        'false true null'\n    },\n    contains: [\n      {\n        className: 'class',\n        beginKeywords: 'class interface namespace',\n        end: /\\{/,\n        excludeEnd: true,\n        illegal: '[^,:\\\\n\\\\s\\\\.]',\n        contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'string',\n        begin: '\"\"\"',\n        end: '\"\"\"',\n        relevance: 5\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: 'meta',\n        begin: '^#',\n        end: '$',\n        relevance: 2\n      }\n    ]\n  };\n}\n\nmodule.exports = vala;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: Visual Basic .NET\nDescription: Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework.\nAuthors: Poren Chiang , Jan Pilzer\nWebsite: https://docs.microsoft.com/dotnet/visual-basic/getting-started\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction vbnet(hljs) {\n  /**\n   * Character Literal\n   * Either a single character (\"a\"C) or an escaped double quote (\"\"\"\"C).\n   */\n  const CHARACTER = {\n    className: 'string',\n    begin: /\"(\"\"|[^/n])\"C\\b/\n  };\n\n  const STRING = {\n    className: 'string',\n    begin: /\"/,\n    end: /\"/,\n    illegal: /\\n/,\n    contains: [\n      {\n        // double quote escape\n        begin: /\"\"/\n      }\n    ]\n  };\n\n  /** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */\n  const MM_DD_YYYY = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n  const YYYY_MM_DD = /\\d{4}-\\d{1,2}-\\d{1,2}/;\n  const TIME_12H = /(\\d|1[012])(:\\d+){0,2} *(AM|PM)/;\n  const TIME_24H = /\\d{1,2}(:\\d{1,2}){1,2}/;\n  const DATE = {\n    className: 'literal',\n    variants: [\n      {\n        // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)\n        begin: concat(/# */, either(YYYY_MM_DD, MM_DD_YYYY), / *#/)\n      },\n      {\n        // #H:mm[:ss]# (24h Time)\n        begin: concat(/# */, TIME_24H, / *#/)\n      },\n      {\n        // #h[:mm[:ss]] A# (12h Time)\n        begin: concat(/# */, TIME_12H, / *#/)\n      },\n      {\n        // date plus time\n        begin: concat(\n          /# */,\n          either(YYYY_MM_DD, MM_DD_YYYY),\n          / +/,\n          either(TIME_12H, TIME_24H),\n          / *#/\n        )\n      }\n    ]\n  };\n\n  const NUMBER = {\n    className: 'number',\n    relevance: 0,\n    variants: [\n      {\n        // Float\n        begin: /\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/\n      },\n      {\n        // Integer (base 10)\n        begin: /\\b\\d[\\d_]*((U?[SIL])|[%&])?/\n      },\n      {\n        // Integer (base 16)\n        begin: /&H[\\dA-F_]+((U?[SIL])|[%&])?/\n      },\n      {\n        // Integer (base 8)\n        begin: /&O[0-7_]+((U?[SIL])|[%&])?/\n      },\n      {\n        // Integer (base 2)\n        begin: /&B[01_]+((U?[SIL])|[%&])?/\n      }\n    ]\n  };\n\n  const LABEL = {\n    className: 'label',\n    begin: /^\\w+:/\n  };\n\n  const DOC_COMMENT = hljs.COMMENT(/'''/, /$/, {\n    contains: [\n      {\n        className: 'doctag',\n        begin: /<\\/?/,\n        end: />/\n      }\n    ]\n  });\n\n  const COMMENT = hljs.COMMENT(null, /$/, {\n    variants: [\n      {\n        begin: /'/\n      },\n      {\n        // TODO: Use `beforeMatch:` for leading spaces\n        begin: /([\\t ]|^)REM(?=\\s)/\n      }\n    ]\n  });\n\n  const DIRECTIVES = {\n    className: 'meta',\n    // TODO: Use `beforeMatch:` for indentation once available\n    begin: /[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\n    end: /$/,\n    keywords: {\n      'meta-keyword':\n        'const disable else elseif enable end externalsource if region then'\n    },\n    contains: [ COMMENT ]\n  };\n\n  return {\n    name: 'Visual Basic .NET',\n    aliases: [ 'vb' ],\n    case_insensitive: true,\n    classNameAliases: {\n      label: 'symbol'\n    },\n    keywords: {\n      keyword:\n        'addhandler alias aggregate ansi as async assembly auto binary by byref byval ' + /* a-b */\n        'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */\n        'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */\n        'get global goto group handles if implements imports in inherits interface into iterator ' + /* g-i */\n        'join key let lib loop me mid module mustinherit mustoverride mybase myclass ' + /* j-m */\n        'namespace narrowing new next notinheritable notoverridable ' + /* n */\n        'of off on operator option optional order overloads overridable overrides ' + /* o */\n        'paramarray partial preserve private property protected public ' + /* p */\n        'raiseevent readonly redim removehandler resume return ' + /* r */\n        'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */\n        'take text then throw to try unicode until using when where while widening with withevents writeonly yield' /* t-y */,\n      built_in:\n        // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators\n        'addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor ' +\n        // Type Conversion Functions https://docs.microsoft.com/dotnet/visual-basic/language-reference/functions/type-conversion-functions\n        'cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort',\n      type:\n        // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types\n        'boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort',\n      literal: 'true false nothing'\n    },\n    illegal:\n      '//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ ' /* reserved deprecated keywords */,\n    contains: [\n      CHARACTER,\n      STRING,\n      DATE,\n      NUMBER,\n      LABEL,\n      DOC_COMMENT,\n      COMMENT,\n      DIRECTIVES\n    ]\n  };\n}\n\nmodule.exports = vbnet;\n","/*\nLanguage: VBScript in HTML\nRequires: xml.js, vbscript.js\nAuthor: Ivan Sagalaev \nDescription: \"Bridge\" language defining fragments of VBScript in HTML within <% .. %>\nWebsite: https://en.wikipedia.org/wiki/VBScript\nCategory: scripting\n*/\n\nfunction vbscriptHtml(hljs) {\n  return {\n    name: 'VBScript in HTML',\n    subLanguage: 'xml',\n    contains: [\n      {\n        begin: '<%',\n        end: '%>',\n        subLanguage: 'vbscript'\n      }\n    ]\n  };\n}\n\nmodule.exports = vbscriptHtml;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: VBScript\nDescription: VBScript (\"Microsoft Visual Basic Scripting Edition\") is an Active Scripting language developed by Microsoft that is modeled on Visual Basic.\nAuthor: Nikita Ledyaev \nContributors: Michal Gabrukiewicz \nWebsite: https://en.wikipedia.org/wiki/VBScript\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction vbscript(hljs) {\n  const BUILT_IN_FUNCTIONS = ('lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +\n  'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +\n  'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +\n  'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +\n  'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +\n  'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +\n  'strcomp int createobject loadpicture tan formatnumber mid ' +\n  'split  cint sin datepart ltrim sqr ' +\n  'time derived eval date formatpercent exp inputbox left ascw ' +\n  'chrw regexp cstr err').split(\" \");\n  const BUILT_IN_OBJECTS = [\n    \"server\",\n    \"response\",\n    \"request\",\n    // take no arguments so can be called without ()\n    \"scriptengine\",\n    \"scriptenginebuildversion\",\n    \"scriptengineminorversion\",\n    \"scriptenginemajorversion\"\n  ];\n\n  const BUILT_IN_CALL = {\n    begin: concat(either(...BUILT_IN_FUNCTIONS), \"\\\\s*\\\\(\"),\n    // relevance 0 because this is acting as a beginKeywords really\n    relevance:0,\n    keywords: {\n      built_in: BUILT_IN_FUNCTIONS\n    }\n  };\n\n  return {\n    name: 'VBScript',\n    aliases: ['vbs'],\n    case_insensitive: true,\n    keywords: {\n      keyword:\n        'call class const dim do loop erase execute executeglobal exit for each next function ' +\n        'if then else on error option explicit new private property let get public randomize ' +\n        'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +\n        'class_initialize class_terminate default preserve in me byval byref step resume goto',\n      built_in: BUILT_IN_OBJECTS,\n      literal:\n        'true false null nothing empty'\n    },\n    illegal: '//',\n    contains: [\n      BUILT_IN_CALL,\n      hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '\"\"'}]}),\n      hljs.COMMENT(\n        /'/,\n        /$/,\n        {\n          relevance: 0\n        }\n      ),\n      hljs.C_NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = vbscript;\n","/*\nLanguage: Verilog\nAuthor: Jon Evans \nContributors: Boone Severson \nDescription: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter supports Verilog and SystemVerilog through IEEE 1800-2012.\nWebsite: http://www.verilog.com\n*/\n\nfunction verilog(hljs) {\n  const SV_KEYWORDS = {\n    $pattern: /[\\w\\$]+/,\n    keyword:\n      'accept_on alias always always_comb always_ff always_latch and assert assign ' +\n      'assume automatic before begin bind bins binsof bit break buf|0 bufif0 bufif1 ' +\n      'byte case casex casez cell chandle checker class clocking cmos config const ' +\n      'constraint context continue cover covergroup coverpoint cross deassign default ' +\n      'defparam design disable dist do edge else end endcase endchecker endclass ' +\n      'endclocking endconfig endfunction endgenerate endgroup endinterface endmodule ' +\n      'endpackage endprimitive endprogram endproperty endspecify endsequence endtable ' +\n      'endtask enum event eventually expect export extends extern final first_match for ' +\n      'force foreach forever fork forkjoin function generate|5 genvar global highz0 highz1 ' +\n      'if iff ifnone ignore_bins illegal_bins implements implies import incdir include ' +\n      'initial inout input inside instance int integer interconnect interface intersect ' +\n      'join join_any join_none large let liblist library local localparam logic longint ' +\n      'macromodule matches medium modport module nand negedge nettype new nexttime nmos ' +\n      'nor noshowcancelled not notif0 notif1 or output package packed parameter pmos ' +\n      'posedge primitive priority program property protected pull0 pull1 pulldown pullup ' +\n      'pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos ' +\n      'real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran ' +\n      'rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared ' +\n      'sequence shortint shortreal showcancelled signed small soft solve specify specparam ' +\n      'static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on ' +\n      'sync_reject_on table tagged task this throughout time timeprecision timeunit tran ' +\n      'tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 ' +\n      'unsigned until until_with untyped use uwire var vectored virtual void wait wait_order ' +\n      'wand weak weak0 weak1 while wildcard wire with within wor xnor xor',\n    literal:\n      'null',\n    built_in:\n      '$finish $stop $exit $fatal $error $warning $info $realtime $time $printtimescale ' +\n      '$bitstoreal $bitstoshortreal $itor $signed $cast $bits $stime $timeformat ' +\n      '$realtobits $shortrealtobits $rtoi $unsigned $asserton $assertkill $assertpasson ' +\n      '$assertfailon $assertnonvacuouson $assertoff $assertcontrol $assertpassoff ' +\n      '$assertfailoff $assertvacuousoff $isunbounded $sampled $fell $changed $past_gclk ' +\n      '$fell_gclk $changed_gclk $rising_gclk $steady_gclk $coverage_control ' +\n      '$coverage_get $coverage_save $set_coverage_db_name $rose $stable $past ' +\n      '$rose_gclk $stable_gclk $future_gclk $falling_gclk $changing_gclk $display ' +\n      '$coverage_get_max $coverage_merge $get_coverage $load_coverage_db $typename ' +\n      '$unpacked_dimensions $left $low $increment $clog2 $ln $log10 $exp $sqrt $pow ' +\n      '$floor $ceil $sin $cos $tan $countbits $onehot $isunknown $fatal $warning ' +\n      '$dimensions $right $high $size $asin $acos $atan $atan2 $hypot $sinh $cosh ' +\n      '$tanh $asinh $acosh $atanh $countones $onehot0 $error $info $random ' +\n      '$dist_chi_square $dist_erlang $dist_exponential $dist_normal $dist_poisson ' +\n      '$dist_t $dist_uniform $q_initialize $q_remove $q_exam $async$and$array ' +\n      '$async$nand$array $async$or$array $async$nor$array $sync$and$array ' +\n      '$sync$nand$array $sync$or$array $sync$nor$array $q_add $q_full $psprintf ' +\n      '$async$and$plane $async$nand$plane $async$or$plane $async$nor$plane ' +\n      '$sync$and$plane $sync$nand$plane $sync$or$plane $sync$nor$plane $system ' +\n      '$display $displayb $displayh $displayo $strobe $strobeb $strobeh $strobeo ' +\n      '$write $readmemb $readmemh $writememh $value$plusargs ' +\n      '$dumpvars $dumpon $dumplimit $dumpports $dumpportson $dumpportslimit ' +\n      '$writeb $writeh $writeo $monitor $monitorb $monitorh $monitoro $writememb ' +\n      '$dumpfile $dumpoff $dumpall $dumpflush $dumpportsoff $dumpportsall ' +\n      '$dumpportsflush $fclose $fdisplay $fdisplayb $fdisplayh $fdisplayo ' +\n      '$fstrobe $fstrobeb $fstrobeh $fstrobeo $swrite $swriteb $swriteh ' +\n      '$swriteo $fscanf $fread $fseek $fflush $feof $fopen $fwrite $fwriteb ' +\n      '$fwriteh $fwriteo $fmonitor $fmonitorb $fmonitorh $fmonitoro $sformat ' +\n      '$sformatf $fgetc $ungetc $fgets $sscanf $rewind $ftell $ferror'\n  };\n\n  return {\n    name: 'Verilog',\n    aliases: [\n      'v',\n      'sv',\n      'svh'\n    ],\n    case_insensitive: false,\n    keywords: SV_KEYWORDS,\n    contains: [\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'number',\n        contains: [ hljs.BACKSLASH_ESCAPE ],\n        variants: [\n          {\n            begin: '\\\\b((\\\\d+\\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'\n          },\n          {\n            begin: '\\\\B((\\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'\n          },\n          {\n            begin: '\\\\b([0-9_])+',\n            relevance: 0\n          }\n        ]\n      },\n      /* parameters to instances */\n      {\n        className: 'variable',\n        variants: [\n          {\n            begin: '#\\\\((?!parameter).+\\\\)'\n          },\n          {\n            begin: '\\\\.\\\\w+',\n            relevance: 0\n          }\n        ]\n      },\n      {\n        className: 'meta',\n        begin: '`',\n        end: '$',\n        keywords: {\n          'meta-keyword':\n            'define __FILE__ ' +\n            '__LINE__ begin_keywords celldefine default_nettype define ' +\n            'else elsif end_keywords endcelldefine endif ifdef ifndef ' +\n            'include line nounconnected_drive pragma resetall timescale ' +\n            'unconnected_drive undef undefineall'\n        },\n        relevance: 0\n      }\n    ]\n  };\n}\n\nmodule.exports = verilog;\n","/*\nLanguage: VHDL\nAuthor: Igor Kalnitsky \nContributors: Daniel C.K. Kho , Guillaume Savaton \nDescription: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.\nWebsite: https://en.wikipedia.org/wiki/VHDL\n*/\n\nfunction vhdl(hljs) {\n  // Regular expression for VHDL numeric literals.\n\n  // Decimal literal:\n  const INTEGER_RE = '\\\\d(_|\\\\d)*';\n  const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n  const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n  // Based literal:\n  const BASED_INTEGER_RE = '\\\\w+';\n  const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n  const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n  return {\n    name: 'VHDL',\n    case_insensitive: true,\n    keywords: {\n      keyword:\n        'abs access after alias all and architecture array assert assume assume_guarantee attribute ' +\n        'begin block body buffer bus case component configuration constant context cover disconnect ' +\n        'downto default else elsif end entity exit fairness file for force function generate ' +\n        'generic group guarded if impure in inertial inout is label library linkage literal ' +\n        'loop map mod nand new next nor not null of on open or others out package parameter port ' +\n        'postponed procedure process property protected pure range record register reject ' +\n        'release rem report restrict restrict_guarantee return rol ror select sequence ' +\n        'severity shared signal sla sll sra srl strong subtype then to transport type ' +\n        'unaffected units until use variable view vmode vprop vunit wait when while with xnor xor',\n      built_in:\n        'boolean bit character ' +\n        'integer time delay_length natural positive ' +\n        'string bit_vector file_open_kind file_open_status ' +\n        'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +\n        'std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signed ' +\n        'real_vector time_vector',\n      literal:\n        'false true note warning error failure ' + // severity_level\n        'line text side width' // textio\n    },\n    illegal: /\\{/,\n    contains: [\n      hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.\n      hljs.COMMENT('--', '$'),\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'number',\n        begin: NUMBER_RE,\n        relevance: 0\n      },\n      {\n        className: 'string',\n        begin: '\\'(U|X|0|1|Z|W|L|H|-)\\'',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      {\n        className: 'symbol',\n        begin: '\\'[A-Za-z](_?[A-Za-z0-9])*',\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      }\n    ]\n  };\n}\n\nmodule.exports = vhdl;\n","/*\nLanguage: Vim Script\nAuthor: Jun Yang \nDescription: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/\nWebsite: https://www.vim.org\nCategory: scripting\n*/\n\nfunction vim(hljs) {\n  return {\n    name: 'Vim Script',\n    keywords: {\n      $pattern: /[!#@\\w]+/,\n      keyword:\n        // express version except: ! & * < = > !! # @ @@\n        'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope ' +\n        'cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ' +\n        'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 ' +\n        'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor ' +\n        'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew ' +\n        'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ ' +\n        // full version\n        'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload ' +\n        'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap ' +\n        'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor ' +\n        'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap ' +\n        'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview ' +\n        'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap ' +\n        'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ' +\n        'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding ' +\n        'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace ' +\n        'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious ' + 'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew ' +\n        'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank',\n      built_in: // built in func\n        'synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv ' +\n        'complete_check add getwinposx getqflist getwinposy screencol ' +\n        'clearmatches empty extend getcmdpos mzeval garbagecollect setreg ' +\n        'ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable ' +\n        'shiftwidth max sinh isdirectory synID system inputrestore winline ' +\n        'atan visualmode inputlist tabpagewinnr round getregtype mapcheck ' +\n        'hasmapto histdel argidx findfile sha256 exists toupper getcmdline ' +\n        'taglist string getmatches bufnr strftime winwidth bufexists ' +\n        'strtrans tabpagebuflist setcmdpos remote_read printf setloclist ' +\n        'getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval ' +\n        'resolve libcallnr foldclosedend reverse filter has_key bufname ' +\n        'str2float strlen setline getcharmod setbufvar index searchpos ' +\n        'shellescape undofile foldclosed setqflist buflisted strchars str2nr ' +\n        'virtcol floor remove undotree remote_expr winheight gettabwinvar ' +\n        'reltime cursor tabpagenr finddir localtime acos getloclist search ' +\n        'tanh matchend rename gettabvar strdisplaywidth type abs py3eval ' +\n        'setwinvar tolower wildmenumode log10 spellsuggest bufloaded ' +\n        'synconcealed nextnonblank server2client complete settabwinvar ' +\n        'executable input wincol setmatches getftype hlID inputsave ' +\n        'searchpair or screenrow line settabvar histadd deepcopy strpart ' +\n        'remote_peek and eval getftime submatch screenchar winsaveview ' +\n        'matchadd mkdir screenattr getfontname libcall reltimestr getfsize ' +\n        'winnr invert pow getbufline byte2line soundfold repeat fnameescape ' +\n        'tagfiles sin strwidth spellbadword trunc maparg log lispindent ' +\n        'hostname setpos globpath remote_foreground getchar synIDattr ' +\n        'fnamemodify cscope_connection stridx winbufnr indent min ' +\n        'complete_add nr2char searchpairpos inputdialog values matchlist ' +\n        'items hlexists strridx browsedir expand fmod pathshorten line2byte ' +\n        'argc count getwinvar glob foldtextresult getreg foreground cosh ' +\n        'matchdelete has char2nr simplify histget searchdecl iconv ' +\n        'winrestcmd pumvisible writefile foldlevel haslocaldir keys cos ' +\n        'matchstr foldtext histnr tan tempname getcwd byteidx getbufvar ' +\n        'islocked escape eventhandler remote_send serverlist winrestview ' +\n        'synstack pyeval prevnonblank readfile cindent filereadable changenr ' +\n        'exp'\n    },\n    illegal: /;/,\n    contains: [\n      hljs.NUMBER_MODE,\n      {\n        className: 'string',\n        begin: '\\'',\n        end: '\\'',\n        illegal: '\\\\n'\n      },\n\n      /*\n      A double quote can start either a string or a line comment. Strings are\n      ended before the end of a line by another double quote and can contain\n      escaped double-quotes and post-escaped line breaks.\n\n      Also, any double quote at the beginning of a line is a comment but we\n      don't handle that properly at the moment: any double quote inside will\n      turn them into a string. Handling it properly will require a smarter\n      parser.\n      */\n      {\n        className: 'string',\n        begin: /\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/\n      },\n      hljs.COMMENT('\"', '$'),\n\n      {\n        className: 'variable',\n        begin: /[bwtglsav]:[\\w\\d_]*/\n      },\n      {\n        className: 'function',\n        beginKeywords: 'function function!',\n        end: '$',\n        relevance: 0,\n        contains: [\n          hljs.TITLE_MODE,\n          {\n            className: 'params',\n            begin: '\\\\(',\n            end: '\\\\)'\n          }\n        ]\n      },\n      {\n        className: 'symbol',\n        begin: /<[\\w-]+>/\n      }\n    ]\n  };\n}\n\nmodule.exports = vim;\n","/*\nLanguage: Intel x86 Assembly\nAuthor: innocenat \nDescription: x86 assembly language using Intel's mnemonic and NASM syntax\nWebsite: https://en.wikipedia.org/wiki/X86_assembly_language\nCategory: assembler\n*/\n\nfunction x86asm(hljs) {\n  return {\n    name: 'Intel x86 Assembly',\n    case_insensitive: true,\n    keywords: {\n      $pattern: '[.%]?' + hljs.IDENT_RE,\n      keyword:\n        'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +\n        'aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63',\n      built_in:\n        // Instruction pointer\n        'ip eip rip ' +\n        // 8-bit registers\n        'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +\n        // 16-bit registers\n        'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +\n        // 32-bit registers\n        'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +\n        // 64-bit registers\n        'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +\n        // Segment registers\n        'cs ds es fs gs ss ' +\n        // Floating point stack registers\n        'st st0 st1 st2 st3 st4 st5 st6 st7 ' +\n        // MMX Registers\n        'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +\n        // SSE registers\n        'xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7  xmm8  xmm9 xmm10  xmm11 xmm12 xmm13 xmm14 xmm15 ' +\n        'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +\n        // AVX registers\n        'ymm0  ymm1  ymm2  ymm3  ymm4  ymm5  ymm6  ymm7  ymm8  ymm9 ymm10  ymm11 ymm12 ymm13 ymm14 ymm15 ' +\n        'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +\n        // AVX-512F registers\n        'zmm0  zmm1  zmm2  zmm3  zmm4  zmm5  zmm6  zmm7  zmm8  zmm9 zmm10  zmm11 zmm12 zmm13 zmm14 zmm15 ' +\n        'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +\n        // AVX-512F mask registers\n        'k0 k1 k2 k3 k4 k5 k6 k7 ' +\n        // Bound (MPX) register\n        'bnd0 bnd1 bnd2 bnd3 ' +\n        // Special register\n        'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +\n        // NASM altreg package\n        'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +\n        'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +\n        'r0h r1h r2h r3h ' +\n        'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +\n\n        'db dw dd dq dt ddq do dy dz ' +\n        'resb resw resd resq rest resdq reso resy resz ' +\n        'incbin equ times ' +\n        'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',\n\n      meta:\n        '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +\n        '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +\n        '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +\n        '.nolist ' +\n        '__FILE__ __LINE__ __SECT__  __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +\n        '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__  __PASS__ struc endstruc istruc at iend ' +\n        'align alignb sectalign daz nodaz up down zero default option assume public ' +\n\n        'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +\n        '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +\n        '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +\n        '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +\n        'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'\n    },\n    contains: [\n      hljs.COMMENT(\n        ';',\n        '$',\n        {\n          relevance: 0\n        }\n      ),\n      {\n        className: 'number',\n        variants: [\n          // Float number and x87 BCD\n          {\n            begin: '\\\\b(?:([0-9][0-9_]*)?\\\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +\n                   '(0[Xx])?[0-9][0-9_]*(\\\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\\\b',\n            relevance: 0\n          },\n\n          // Hex number in $\n          {\n            begin: '\\\\$[0-9][0-9A-Fa-f]*',\n            relevance: 0\n          },\n\n          // Number in H,D,T,Q,O,B,Y suffix\n          {\n            begin: '\\\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\\\b'\n          },\n\n          // Number in X,D,T,Q,O,B,Y prefix\n          {\n            begin: '\\\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\\\b'\n          }\n        ]\n      },\n      // Double quote string\n      hljs.QUOTE_STRING_MODE,\n      {\n        className: 'string',\n        variants: [\n          // Single-quoted string\n          {\n            begin: '\\'',\n            end: '[^\\\\\\\\]\\''\n          },\n          // Backquoted string\n          {\n            begin: '`',\n            end: '[^\\\\\\\\]`'\n          }\n        ],\n        relevance: 0\n      },\n      {\n        className: 'symbol',\n        variants: [\n          // Global label and local label\n          {\n            begin: '^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)'\n          },\n          // Macro-local label\n          {\n            begin: '^\\\\s*%%[A-Za-z0-9_$#@~.?]*:'\n          }\n        ],\n        relevance: 0\n      },\n      // Macro parameter\n      {\n        className: 'subst',\n        begin: '%[0-9]+',\n        relevance: 0\n      },\n      // Macro parameter\n      {\n        className: 'subst',\n        begin: '%!\\S+',\n        relevance: 0\n      },\n      {\n        className: 'meta',\n        begin: /^\\s*\\.[\\w_-]+/\n      }\n    ]\n  };\n}\n\nmodule.exports = x86asm;\n","/*\nLanguage: XL\nAuthor: Christophe de Dinechin \nDescription: An extensible programming language, based on parse tree rewriting\nWebsite: http://xlr.sf.net\n*/\n\nfunction xl(hljs) {\n  const BUILTIN_MODULES =\n    'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +\n    'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';\n\n  const XL_KEYWORDS = {\n    $pattern: /[a-zA-Z][a-zA-Z0-9_?]*/,\n    keyword:\n      'if then else do while until for loop import with is as where when by data constant ' +\n      'integer real text name boolean symbol infix prefix postfix block tree',\n    literal:\n      'true false nil',\n    built_in:\n      'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +\n      'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +\n      'text_find text_replace contains page slide basic_slide title_slide ' +\n      'title subtitle fade_in fade_out fade_at clear_color color line_color ' +\n      'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +\n      'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +\n      'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +\n      'quad_to curve_to theme background contents locally time mouse_?x ' +\n      'mouse_?y mouse_buttons ' +\n      BUILTIN_MODULES\n  };\n\n  const DOUBLE_QUOTE_TEXT = {\n    className: 'string',\n    begin: '\"',\n    end: '\"',\n    illegal: '\\\\n'\n  };\n  const SINGLE_QUOTE_TEXT = {\n    className: 'string',\n    begin: '\\'',\n    end: '\\'',\n    illegal: '\\\\n'\n  };\n  const LONG_TEXT = {\n    className: 'string',\n    begin: '<<',\n    end: '>>'\n  };\n  const BASED_NUMBER = {\n    className: 'number',\n    begin: '[0-9]+#[0-9A-Z_]+(\\\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'\n  };\n  const IMPORT = {\n    beginKeywords: 'import',\n    end: '$',\n    keywords: XL_KEYWORDS,\n    contains: [ DOUBLE_QUOTE_TEXT ]\n  };\n  const FUNCTION_DEFINITION = {\n    className: 'function',\n    begin: /[a-z][^\\n]*->/,\n    returnBegin: true,\n    end: /->/,\n    contains: [\n      hljs.inherit(hljs.TITLE_MODE, {\n        starts: {\n          endsWithParent: true,\n          keywords: XL_KEYWORDS\n        }\n      })\n    ]\n  };\n  return {\n    name: 'XL',\n    aliases: [ 'tao' ],\n    keywords: XL_KEYWORDS,\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      DOUBLE_QUOTE_TEXT,\n      SINGLE_QUOTE_TEXT,\n      LONG_TEXT,\n      FUNCTION_DEFINITION,\n      IMPORT,\n      BASED_NUMBER,\n      hljs.NUMBER_MODE\n    ]\n  };\n}\n\nmodule.exports = xl;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n  const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n  // Element names can contain letters, digits, hyphens, underscores, and periods\n  const TAG_NAME_RE = concat(/[A-Z_]/, optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/);\n  const XML_IDENT_RE = /[A-Za-z0-9._:-]+/;\n  const XML_ENTITIES = {\n    className: 'symbol',\n    begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n  };\n  const XML_META_KEYWORDS = {\n    begin: /\\s/,\n    contains: [\n      {\n        className: 'meta-keyword',\n        begin: /#?[a-z_][a-z1-9_-]+/,\n        illegal: /\\n/\n      }\n    ]\n  };\n  const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n    begin: /\\(/,\n    end: /\\)/\n  });\n  const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, {\n    className: 'meta-string'\n  });\n  const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    className: 'meta-string'\n  });\n  const TAG_INTERNALS = {\n    endsWithParent: true,\n    illegal: /`]+/\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  };\n  return {\n    name: 'HTML, XML',\n    aliases: [\n      'html',\n      'xhtml',\n      'rss',\n      'atom',\n      'xjb',\n      'xsd',\n      'xsl',\n      'plist',\n      'wsf',\n      'svg'\n    ],\n    case_insensitive: true,\n    contains: [\n      {\n        className: 'meta',\n        begin: //,\n        relevance: 10,\n        contains: [\n          XML_META_KEYWORDS,\n          QUOTE_META_STRING_MODE,\n          APOS_META_STRING_MODE,\n          XML_META_PAR_KEYWORDS,\n          {\n            begin: /\\[/,\n            end: /\\]/,\n            contains: [\n              {\n                className: 'meta',\n                begin: //,\n                contains: [\n                  XML_META_KEYWORDS,\n                  XML_META_PAR_KEYWORDS,\n                  QUOTE_META_STRING_MODE,\n                  APOS_META_STRING_MODE\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      hljs.COMMENT(\n        //,\n        {\n          relevance: 10\n        }\n      ),\n      {\n        begin: //,\n        relevance: 10\n      },\n      XML_ENTITIES,\n      {\n        className: 'meta',\n        begin: /<\\?xml/,\n        end: /\\?>/,\n        relevance: 10\n      },\n      {\n        className: 'tag',\n        /*\n        The lookahead pattern (?=...) ensures that 'begin' only matches\n        ')/,\n        end: />/,\n        keywords: {\n          name: 'style'\n        },\n        contains: [ TAG_INTERNALS ],\n        starts: {\n          end: /<\\/style>/,\n          returnEnd: true,\n          subLanguage: [\n            'css',\n            'xml'\n          ]\n        }\n      },\n      {\n        className: 'tag',\n        // See the comment in the \";\r\n          var nW = globalObject.open();\r\n\r\n          if (nW !== null) {\r\n            nW.document.write(htmlForNewWindow);\r\n          }\r\n          return nW;\r\n        } else {\r\n          throw new Error(\r\n            \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n          );\r\n        }\r\n      case \"pdfjsnewwindow\":\r\n        if (\r\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n        ) {\r\n          var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n          var htmlForPDFjsNewWindow =\r\n            \"\" +\r\n            \"\" +\r\n            '' +\r\n            \"\";\r\n          var dataURLNewWindow = globalObject.open();\r\n          if (dataURLNewWindow !== null) {\r\n            dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n            dataURLNewWindow.document.title = options.filename;\r\n          }\r\n          if (dataURLNewWindow || typeof safari === \"undefined\")\r\n            return dataURLNewWindow;\r\n        } else {\r\n          throw new Error(\r\n            \"The option dataurlnewwindow just works in a browser-environment.\"\r\n          );\r\n        }\r\n        break;\r\n      case \"datauri\":\r\n      case \"dataurl\":\r\n        return (globalObject.document.location.href = this.output(\r\n          \"datauristring\",\r\n          options\r\n        ));\r\n      default:\r\n        return null;\r\n    }\r\n  }));\r\n\r\n  /**\r\n   * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n   * @param {string} hotfixName - The name of the hotfix to check.\r\n   * @returns {boolean}\r\n   */\r\n  var hasHotfix = function(hotfixName) {\r\n    return (\r\n      Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n    );\r\n  };\r\n\r\n  switch (unit) {\r\n    case \"pt\":\r\n      scaleFactor = 1;\r\n      break;\r\n    case \"mm\":\r\n      scaleFactor = 72 / 25.4;\r\n      break;\r\n    case \"cm\":\r\n      scaleFactor = 72 / 2.54;\r\n      break;\r\n    case \"in\":\r\n      scaleFactor = 72;\r\n      break;\r\n    case \"px\":\r\n      if (hasHotfix(\"px_scaling\") == true) {\r\n        scaleFactor = 72 / 96;\r\n      } else {\r\n        scaleFactor = 96 / 72;\r\n      }\r\n      break;\r\n    case \"pc\":\r\n      scaleFactor = 12;\r\n      break;\r\n    case \"em\":\r\n      scaleFactor = 12;\r\n      break;\r\n    case \"ex\":\r\n      scaleFactor = 6;\r\n      break;\r\n    default:\r\n      if (typeof unit === \"number\") {\r\n        scaleFactor = unit;\r\n      } else {\r\n        throw new Error(\"Invalid unit: \" + unit);\r\n      }\r\n  }\r\n\r\n  var encryption = null;\r\n  setCreationDate();\r\n  setFileId();\r\n\r\n  var getEncryptor = function(objectId) {\r\n    if (encryptionOptions !== null) {\r\n      return encryption.encryptor(objectId, 0);\r\n    }\r\n    return function(data) {\r\n      return data;\r\n    };\r\n  };\r\n\r\n  //---------------------------------------\r\n  // Public API\r\n\r\n  var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n    pageNumberOneBased\r\n  ) {\r\n    if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n    }\r\n    var objId = pagesContext[pageNumberOneBased].objId;\r\n    return {\r\n      objId: objId,\r\n      pageNumber: pageNumberOneBased,\r\n      pageContext: pagesContext[pageNumberOneBased]\r\n    };\r\n  });\r\n\r\n  var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n    objId\r\n  ) {\r\n    if (isNaN(objId) || objId % 1 !== 0) {\r\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n    }\r\n    for (var pageNumber in pagesContext) {\r\n      if (pagesContext[pageNumber].objId === objId) {\r\n        break;\r\n      }\r\n    }\r\n    return getPageInfo(pageNumber);\r\n  });\r\n\r\n  var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n    return {\r\n      objId: pagesContext[currentPage].objId,\r\n      pageNumber: currentPage,\r\n      pageContext: pagesContext[currentPage]\r\n    };\r\n  });\r\n\r\n  /**\r\n   * Adds (and transfers the focus to) new page to the PDF document.\r\n   * @param format {String/Array} The format of the new page. Can be: 
    • a0 - a10
    • b0 - b10
    • c0 - c10
    • dl
    • letter
    • government-letter
    • legal
    • junior-legal
    • ledger
    • tabloid
    • credit-card

    \r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n var findWidth = function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n };\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(findWidth);\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\" && activeFont.encoding === \"Identity-H\") {\r\n // when using unicode fonts, wordSpacePerLine does not apply\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n let backToStartX = 0;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : backToStartX;\r\n if (l < len - 1) {\r\n let spacing = scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n );\r\n let words = da[l].split(\" \");\r\n text.push([words[0] + \" \", newX, newY]);\r\n backToStartX = 0; // distance to reset back to the left\r\n for (let i = 1; i < words.length; i++) {\r\n let shiftAmount =\r\n (findWidth(words[i - 1] + \" \" + words[i]) -\r\n findWidth(words[i])) *\r\n scaleFactor +\r\n spacing;\r\n if (i == words.length - 1) text.push([words[i], shiftAmount, 0]);\r\n else text.push([words[i] + \" \", shiftAmount, 0]);\r\n backToStartX -= shiftAmount;\r\n }\r\n } else {\r\n text.push([da[l], newX, newY]);\r\n }\r\n }\r\n text.push([\"\", backToStartX, 0]);\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
    \n * This plugin current supports
    \n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n *
      \r\n *
    • \r\n * false: Auto paging is disabled.\r\n *
    • \r\n *
    • \r\n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n *
    • \r\n *
    • \r\n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n *
    • \r\n *
    \r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000
    \r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)
    \r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line
    \r\n * round A rounded end cap is added to each end of the line
    \r\n * square A square end cap is added to each end of the line
    \r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.

    A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve.

    A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180.
    \r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:



    a c e

    b d f

    0 0 1

    In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r> 16) + amt;\n \n if (r > 255) r = 255;\n else if (r < 0) r = 0;\n \n var b = ((num >> 8) & 0x00FF) + amt;\n \n if (b > 255) b = 255;\n else if (b < 0) b = 0;\n \n var g = (num & 0x0000FF) + amt;\n \n if (g > 255) g = 255;\n else if (g < 0) g = 0;\n \n return (usePound?\"#\":\"\") + (g | (b << 8) | (r << 16)).toString(16);\n}\n\nexport default shade;","import shade from './component/colorshade'\n \nconst LightenDarkenColor = shade;\n\n\nexport {LightenDarkenColor};","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","'use strict'\n\nvar low = require('./lib/core.js')\n\nmodule.exports = low\n\nlow.registerLanguage('1c', require('highlight.js/lib/languages/1c'))\nlow.registerLanguage('abnf', require('highlight.js/lib/languages/abnf'))\nlow.registerLanguage(\n 'accesslog',\n require('highlight.js/lib/languages/accesslog')\n)\nlow.registerLanguage(\n 'actionscript',\n require('highlight.js/lib/languages/actionscript')\n)\nlow.registerLanguage('ada', require('highlight.js/lib/languages/ada'))\nlow.registerLanguage(\n 'angelscript',\n require('highlight.js/lib/languages/angelscript')\n)\nlow.registerLanguage('apache', require('highlight.js/lib/languages/apache'))\nlow.registerLanguage(\n 'applescript',\n require('highlight.js/lib/languages/applescript')\n)\nlow.registerLanguage('arcade', require('highlight.js/lib/languages/arcade'))\nlow.registerLanguage('arduino', require('highlight.js/lib/languages/arduino'))\nlow.registerLanguage('armasm', require('highlight.js/lib/languages/armasm'))\nlow.registerLanguage('xml', require('highlight.js/lib/languages/xml'))\nlow.registerLanguage('asciidoc', require('highlight.js/lib/languages/asciidoc'))\nlow.registerLanguage('aspectj', require('highlight.js/lib/languages/aspectj'))\nlow.registerLanguage(\n 'autohotkey',\n require('highlight.js/lib/languages/autohotkey')\n)\nlow.registerLanguage('autoit', require('highlight.js/lib/languages/autoit'))\nlow.registerLanguage('avrasm', require('highlight.js/lib/languages/avrasm'))\nlow.registerLanguage('awk', require('highlight.js/lib/languages/awk'))\nlow.registerLanguage('axapta', require('highlight.js/lib/languages/axapta'))\nlow.registerLanguage('bash', require('highlight.js/lib/languages/bash'))\nlow.registerLanguage('basic', require('highlight.js/lib/languages/basic'))\nlow.registerLanguage('bnf', require('highlight.js/lib/languages/bnf'))\nlow.registerLanguage(\n 'brainfuck',\n require('highlight.js/lib/languages/brainfuck')\n)\nlow.registerLanguage('c-like', require('highlight.js/lib/languages/c-like'))\nlow.registerLanguage('c', require('highlight.js/lib/languages/c'))\nlow.registerLanguage('cal', require('highlight.js/lib/languages/cal'))\nlow.registerLanguage(\n 'capnproto',\n require('highlight.js/lib/languages/capnproto')\n)\nlow.registerLanguage('ceylon', require('highlight.js/lib/languages/ceylon'))\nlow.registerLanguage('clean', require('highlight.js/lib/languages/clean'))\nlow.registerLanguage('clojure', require('highlight.js/lib/languages/clojure'))\nlow.registerLanguage(\n 'clojure-repl',\n require('highlight.js/lib/languages/clojure-repl')\n)\nlow.registerLanguage('cmake', require('highlight.js/lib/languages/cmake'))\nlow.registerLanguage(\n 'coffeescript',\n require('highlight.js/lib/languages/coffeescript')\n)\nlow.registerLanguage('coq', require('highlight.js/lib/languages/coq'))\nlow.registerLanguage('cos', require('highlight.js/lib/languages/cos'))\nlow.registerLanguage('cpp', require('highlight.js/lib/languages/cpp'))\nlow.registerLanguage('crmsh', require('highlight.js/lib/languages/crmsh'))\nlow.registerLanguage('crystal', require('highlight.js/lib/languages/crystal'))\nlow.registerLanguage('csharp', require('highlight.js/lib/languages/csharp'))\nlow.registerLanguage('csp', require('highlight.js/lib/languages/csp'))\nlow.registerLanguage('css', require('highlight.js/lib/languages/css'))\nlow.registerLanguage('d', require('highlight.js/lib/languages/d'))\nlow.registerLanguage('markdown', require('highlight.js/lib/languages/markdown'))\nlow.registerLanguage('dart', require('highlight.js/lib/languages/dart'))\nlow.registerLanguage('delphi', require('highlight.js/lib/languages/delphi'))\nlow.registerLanguage('diff', require('highlight.js/lib/languages/diff'))\nlow.registerLanguage('django', require('highlight.js/lib/languages/django'))\nlow.registerLanguage('dns', require('highlight.js/lib/languages/dns'))\nlow.registerLanguage(\n 'dockerfile',\n require('highlight.js/lib/languages/dockerfile')\n)\nlow.registerLanguage('dos', require('highlight.js/lib/languages/dos'))\nlow.registerLanguage('dsconfig', require('highlight.js/lib/languages/dsconfig'))\nlow.registerLanguage('dts', require('highlight.js/lib/languages/dts'))\nlow.registerLanguage('dust', require('highlight.js/lib/languages/dust'))\nlow.registerLanguage('ebnf', require('highlight.js/lib/languages/ebnf'))\nlow.registerLanguage('elixir', require('highlight.js/lib/languages/elixir'))\nlow.registerLanguage('elm', require('highlight.js/lib/languages/elm'))\nlow.registerLanguage('ruby', require('highlight.js/lib/languages/ruby'))\nlow.registerLanguage('erb', require('highlight.js/lib/languages/erb'))\nlow.registerLanguage(\n 'erlang-repl',\n require('highlight.js/lib/languages/erlang-repl')\n)\nlow.registerLanguage('erlang', require('highlight.js/lib/languages/erlang'))\nlow.registerLanguage('excel', require('highlight.js/lib/languages/excel'))\nlow.registerLanguage('fix', require('highlight.js/lib/languages/fix'))\nlow.registerLanguage('flix', require('highlight.js/lib/languages/flix'))\nlow.registerLanguage('fortran', require('highlight.js/lib/languages/fortran'))\nlow.registerLanguage('fsharp', require('highlight.js/lib/languages/fsharp'))\nlow.registerLanguage('gams', require('highlight.js/lib/languages/gams'))\nlow.registerLanguage('gauss', require('highlight.js/lib/languages/gauss'))\nlow.registerLanguage('gcode', require('highlight.js/lib/languages/gcode'))\nlow.registerLanguage('gherkin', require('highlight.js/lib/languages/gherkin'))\nlow.registerLanguage('glsl', require('highlight.js/lib/languages/glsl'))\nlow.registerLanguage('gml', require('highlight.js/lib/languages/gml'))\nlow.registerLanguage('go', require('highlight.js/lib/languages/go'))\nlow.registerLanguage('golo', require('highlight.js/lib/languages/golo'))\nlow.registerLanguage('gradle', require('highlight.js/lib/languages/gradle'))\nlow.registerLanguage('groovy', require('highlight.js/lib/languages/groovy'))\nlow.registerLanguage('haml', require('highlight.js/lib/languages/haml'))\nlow.registerLanguage(\n 'handlebars',\n require('highlight.js/lib/languages/handlebars')\n)\nlow.registerLanguage('haskell', require('highlight.js/lib/languages/haskell'))\nlow.registerLanguage('haxe', require('highlight.js/lib/languages/haxe'))\nlow.registerLanguage('hsp', require('highlight.js/lib/languages/hsp'))\nlow.registerLanguage('htmlbars', require('highlight.js/lib/languages/htmlbars'))\nlow.registerLanguage('http', require('highlight.js/lib/languages/http'))\nlow.registerLanguage('hy', require('highlight.js/lib/languages/hy'))\nlow.registerLanguage('inform7', require('highlight.js/lib/languages/inform7'))\nlow.registerLanguage('ini', require('highlight.js/lib/languages/ini'))\nlow.registerLanguage('irpf90', require('highlight.js/lib/languages/irpf90'))\nlow.registerLanguage('isbl', require('highlight.js/lib/languages/isbl'))\nlow.registerLanguage('java', require('highlight.js/lib/languages/java'))\nlow.registerLanguage(\n 'javascript',\n require('highlight.js/lib/languages/javascript')\n)\nlow.registerLanguage(\n 'jboss-cli',\n require('highlight.js/lib/languages/jboss-cli')\n)\nlow.registerLanguage('json', require('highlight.js/lib/languages/json'))\nlow.registerLanguage('julia', require('highlight.js/lib/languages/julia'))\nlow.registerLanguage(\n 'julia-repl',\n require('highlight.js/lib/languages/julia-repl')\n)\nlow.registerLanguage('kotlin', require('highlight.js/lib/languages/kotlin'))\nlow.registerLanguage('lasso', require('highlight.js/lib/languages/lasso'))\nlow.registerLanguage('latex', require('highlight.js/lib/languages/latex'))\nlow.registerLanguage('ldif', require('highlight.js/lib/languages/ldif'))\nlow.registerLanguage('leaf', require('highlight.js/lib/languages/leaf'))\nlow.registerLanguage('less', require('highlight.js/lib/languages/less'))\nlow.registerLanguage('lisp', require('highlight.js/lib/languages/lisp'))\nlow.registerLanguage(\n 'livecodeserver',\n require('highlight.js/lib/languages/livecodeserver')\n)\nlow.registerLanguage(\n 'livescript',\n require('highlight.js/lib/languages/livescript')\n)\nlow.registerLanguage('llvm', require('highlight.js/lib/languages/llvm'))\nlow.registerLanguage('lsl', require('highlight.js/lib/languages/lsl'))\nlow.registerLanguage('lua', require('highlight.js/lib/languages/lua'))\nlow.registerLanguage('makefile', require('highlight.js/lib/languages/makefile'))\nlow.registerLanguage(\n 'mathematica',\n require('highlight.js/lib/languages/mathematica')\n)\nlow.registerLanguage('matlab', require('highlight.js/lib/languages/matlab'))\nlow.registerLanguage('maxima', require('highlight.js/lib/languages/maxima'))\nlow.registerLanguage('mel', require('highlight.js/lib/languages/mel'))\nlow.registerLanguage('mercury', require('highlight.js/lib/languages/mercury'))\nlow.registerLanguage('mipsasm', require('highlight.js/lib/languages/mipsasm'))\nlow.registerLanguage('mizar', require('highlight.js/lib/languages/mizar'))\nlow.registerLanguage('perl', require('highlight.js/lib/languages/perl'))\nlow.registerLanguage(\n 'mojolicious',\n require('highlight.js/lib/languages/mojolicious')\n)\nlow.registerLanguage('monkey', require('highlight.js/lib/languages/monkey'))\nlow.registerLanguage(\n 'moonscript',\n require('highlight.js/lib/languages/moonscript')\n)\nlow.registerLanguage('n1ql', require('highlight.js/lib/languages/n1ql'))\nlow.registerLanguage('nginx', require('highlight.js/lib/languages/nginx'))\nlow.registerLanguage('nim', require('highlight.js/lib/languages/nim'))\nlow.registerLanguage('nix', require('highlight.js/lib/languages/nix'))\nlow.registerLanguage(\n 'node-repl',\n require('highlight.js/lib/languages/node-repl')\n)\nlow.registerLanguage('nsis', require('highlight.js/lib/languages/nsis'))\nlow.registerLanguage(\n 'objectivec',\n require('highlight.js/lib/languages/objectivec')\n)\nlow.registerLanguage('ocaml', require('highlight.js/lib/languages/ocaml'))\nlow.registerLanguage('openscad', require('highlight.js/lib/languages/openscad'))\nlow.registerLanguage('oxygene', require('highlight.js/lib/languages/oxygene'))\nlow.registerLanguage('parser3', require('highlight.js/lib/languages/parser3'))\nlow.registerLanguage('pf', require('highlight.js/lib/languages/pf'))\nlow.registerLanguage('pgsql', require('highlight.js/lib/languages/pgsql'))\nlow.registerLanguage('php', require('highlight.js/lib/languages/php'))\nlow.registerLanguage(\n 'php-template',\n require('highlight.js/lib/languages/php-template')\n)\nlow.registerLanguage(\n 'plaintext',\n require('highlight.js/lib/languages/plaintext')\n)\nlow.registerLanguage('pony', require('highlight.js/lib/languages/pony'))\nlow.registerLanguage(\n 'powershell',\n require('highlight.js/lib/languages/powershell')\n)\nlow.registerLanguage(\n 'processing',\n require('highlight.js/lib/languages/processing')\n)\nlow.registerLanguage('profile', require('highlight.js/lib/languages/profile'))\nlow.registerLanguage('prolog', require('highlight.js/lib/languages/prolog'))\nlow.registerLanguage(\n 'properties',\n require('highlight.js/lib/languages/properties')\n)\nlow.registerLanguage('protobuf', require('highlight.js/lib/languages/protobuf'))\nlow.registerLanguage('puppet', require('highlight.js/lib/languages/puppet'))\nlow.registerLanguage(\n 'purebasic',\n require('highlight.js/lib/languages/purebasic')\n)\nlow.registerLanguage('python', require('highlight.js/lib/languages/python'))\nlow.registerLanguage(\n 'python-repl',\n require('highlight.js/lib/languages/python-repl')\n)\nlow.registerLanguage('q', require('highlight.js/lib/languages/q'))\nlow.registerLanguage('qml', require('highlight.js/lib/languages/qml'))\nlow.registerLanguage('r', require('highlight.js/lib/languages/r'))\nlow.registerLanguage('reasonml', require('highlight.js/lib/languages/reasonml'))\nlow.registerLanguage('rib', require('highlight.js/lib/languages/rib'))\nlow.registerLanguage('roboconf', require('highlight.js/lib/languages/roboconf'))\nlow.registerLanguage('routeros', require('highlight.js/lib/languages/routeros'))\nlow.registerLanguage('rsl', require('highlight.js/lib/languages/rsl'))\nlow.registerLanguage(\n 'ruleslanguage',\n require('highlight.js/lib/languages/ruleslanguage')\n)\nlow.registerLanguage('rust', require('highlight.js/lib/languages/rust'))\nlow.registerLanguage('sas', require('highlight.js/lib/languages/sas'))\nlow.registerLanguage('scala', require('highlight.js/lib/languages/scala'))\nlow.registerLanguage('scheme', require('highlight.js/lib/languages/scheme'))\nlow.registerLanguage('scilab', require('highlight.js/lib/languages/scilab'))\nlow.registerLanguage('scss', require('highlight.js/lib/languages/scss'))\nlow.registerLanguage('shell', require('highlight.js/lib/languages/shell'))\nlow.registerLanguage('smali', require('highlight.js/lib/languages/smali'))\nlow.registerLanguage(\n 'smalltalk',\n require('highlight.js/lib/languages/smalltalk')\n)\nlow.registerLanguage('sml', require('highlight.js/lib/languages/sml'))\nlow.registerLanguage('sqf', require('highlight.js/lib/languages/sqf'))\nlow.registerLanguage('sql_more', require('highlight.js/lib/languages/sql_more'))\nlow.registerLanguage('sql', require('highlight.js/lib/languages/sql'))\nlow.registerLanguage('stan', require('highlight.js/lib/languages/stan'))\nlow.registerLanguage('stata', require('highlight.js/lib/languages/stata'))\nlow.registerLanguage('step21', require('highlight.js/lib/languages/step21'))\nlow.registerLanguage('stylus', require('highlight.js/lib/languages/stylus'))\nlow.registerLanguage('subunit', require('highlight.js/lib/languages/subunit'))\nlow.registerLanguage('swift', require('highlight.js/lib/languages/swift'))\nlow.registerLanguage(\n 'taggerscript',\n require('highlight.js/lib/languages/taggerscript')\n)\nlow.registerLanguage('yaml', require('highlight.js/lib/languages/yaml'))\nlow.registerLanguage('tap', require('highlight.js/lib/languages/tap'))\nlow.registerLanguage('tcl', require('highlight.js/lib/languages/tcl'))\nlow.registerLanguage('thrift', require('highlight.js/lib/languages/thrift'))\nlow.registerLanguage('tp', require('highlight.js/lib/languages/tp'))\nlow.registerLanguage('twig', require('highlight.js/lib/languages/twig'))\nlow.registerLanguage(\n 'typescript',\n require('highlight.js/lib/languages/typescript')\n)\nlow.registerLanguage('vala', require('highlight.js/lib/languages/vala'))\nlow.registerLanguage('vbnet', require('highlight.js/lib/languages/vbnet'))\nlow.registerLanguage('vbscript', require('highlight.js/lib/languages/vbscript'))\nlow.registerLanguage(\n 'vbscript-html',\n require('highlight.js/lib/languages/vbscript-html')\n)\nlow.registerLanguage('verilog', require('highlight.js/lib/languages/verilog'))\nlow.registerLanguage('vhdl', require('highlight.js/lib/languages/vhdl'))\nlow.registerLanguage('vim', require('highlight.js/lib/languages/vim'))\nlow.registerLanguage('x86asm', require('highlight.js/lib/languages/x86asm'))\nlow.registerLanguage('xl', require('highlight.js/lib/languages/xl'))\nlow.registerLanguage('xquery', require('highlight.js/lib/languages/xquery'))\nlow.registerLanguage('zephir', require('highlight.js/lib/languages/zephir'))\n","'use strict'\n\nvar high = require('highlight.js/lib/core')\nvar fault = require('fault')\n\nexports.highlight = highlight\nexports.highlightAuto = highlightAuto\nexports.registerLanguage = registerLanguage\nexports.listLanguages = listLanguages\nexports.registerAlias = registerAlias\n\nEmitter.prototype.addText = text\nEmitter.prototype.addKeyword = addKeyword\nEmitter.prototype.addSublanguage = addSublanguage\nEmitter.prototype.openNode = open\nEmitter.prototype.closeNode = close\nEmitter.prototype.closeAllNodes = noop\nEmitter.prototype.finalize = noop\nEmitter.prototype.toHTML = toHtmlNoop\n\nvar defaultPrefix = 'hljs-'\n\n// Highlighting `value` in the language `name`.\nfunction highlight(name, value, options) {\n var before = high.configure({})\n var settings = options || {}\n var prefix = settings.prefix\n var result\n\n if (typeof name !== 'string') {\n throw fault('Expected `string` for name, got `%s`', name)\n }\n\n if (!high.getLanguage(name)) {\n throw fault('Unknown language: `%s` is not registered', name)\n }\n\n if (typeof value !== 'string') {\n throw fault('Expected `string` for value, got `%s`', value)\n }\n\n if (prefix === null || prefix === undefined) {\n prefix = defaultPrefix\n }\n\n high.configure({__emitter: Emitter, classPrefix: prefix})\n\n result = high.highlight(value, {language: name, ignoreIllegals: true})\n\n high.configure(before || {})\n\n /* istanbul ignore if - Highlight.js seems to use this (currently) for broken\n * grammars, so let’s keep it in there just to be sure. */\n if (result.errorRaised) {\n throw result.errorRaised\n }\n\n return {\n relevance: result.relevance,\n language: result.language,\n value: result.emitter.rootNode.children\n }\n}\n\nfunction highlightAuto(value, options) {\n var settings = options || {}\n var subset = settings.subset || high.listLanguages()\n var prefix = settings.prefix\n var length = subset.length\n var index = -1\n var result\n var secondBest\n var current\n var name\n\n if (prefix === null || prefix === undefined) {\n prefix = defaultPrefix\n }\n\n if (typeof value !== 'string') {\n throw fault('Expected `string` for value, got `%s`', value)\n }\n\n secondBest = {relevance: 0, language: null, value: []}\n result = {relevance: 0, language: null, value: []}\n\n while (++index < length) {\n name = subset[index]\n\n if (!high.getLanguage(name)) {\n continue\n }\n\n current = highlight(name, value, options)\n current.language = name\n\n if (current.relevance > secondBest.relevance) {\n secondBest = current\n }\n\n if (current.relevance > result.relevance) {\n secondBest = result\n result = current\n }\n }\n\n if (secondBest.language) {\n result.secondBest = secondBest\n }\n\n return result\n}\n\n// Register a language.\nfunction registerLanguage(name, syntax) {\n high.registerLanguage(name, syntax)\n}\n\n// Get a list of all registered languages.\nfunction listLanguages() {\n return high.listLanguages()\n}\n\n// Register more aliases for an already registered language.\nfunction registerAlias(name, alias) {\n var map = name\n var key\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n high.registerAliases(map[key], {languageName: key})\n }\n}\n\nfunction Emitter(options) {\n this.options = options\n this.rootNode = {children: []}\n this.stack = [this.rootNode]\n}\n\nfunction addKeyword(value, name) {\n this.openNode(name)\n this.addText(value)\n this.closeNode()\n}\n\nfunction addSublanguage(other, name) {\n var stack = this.stack\n var current = stack[stack.length - 1]\n var results = other.rootNode.children\n var node = name\n ? {\n type: 'element',\n tagName: 'span',\n properties: {className: [name]},\n children: results\n }\n : results\n\n current.children = current.children.concat(node)\n}\n\nfunction text(value) {\n var stack = this.stack\n var current\n var tail\n\n if (value === '') return\n\n current = stack[stack.length - 1]\n tail = current.children[current.children.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += value\n } else {\n current.children.push({type: 'text', value: value})\n }\n}\n\nfunction open(name) {\n var stack = this.stack\n var className = this.options.classPrefix + name\n var current = stack[stack.length - 1]\n var child = {\n type: 'element',\n tagName: 'span',\n properties: {className: [className]},\n children: []\n }\n\n current.children.push(child)\n stack.push(child)\n}\n\nfunction close() {\n this.stack.pop()\n}\n\nfunction toHtmlNoop() {\n return ''\n}\n\nfunction noop() {}\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = (string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = (string: T): CamelToPascal => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = (...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowDownAZ\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTIwIDhoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCIgLz4KICA8cGF0aCBkPSJNMTUgMTRoNWwtNSA2aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-a-z\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowDownAZ = createLucideIcon('ArrowDownAZ', [\n ['path', { d: 'm3 16 4 4 4-4', key: '1co6wj' }],\n ['path', { d: 'M7 20V4', key: '1yoxec' }],\n ['path', { d: 'M20 8h-5', key: '1vsyxs' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10', key: 'ag13bf' }],\n ['path', { d: 'M15 14h5l-5 6h5', key: 'ur5jdg' }],\n]);\n\nexport default ArrowDownAZ;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTktNy03IDctNyIgLz4KICA8cGF0aCBkPSJNMTkgMTJINSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name BadgeCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BadgeCheck = createLucideIcon('BadgeCheck', [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n key: '3c2336',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n]);\n\nexport default BadgeCheck;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name BadgeMinus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSIxNiIgeTE9IjEyIiB5Mj0iMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BadgeMinus = createLucideIcon('BadgeMinus', [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n key: '3c2336',\n },\n ],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12', key: '1jonct' }],\n]);\n\nexport default BadgeMinus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Braces\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDdhMiAyIDAgMCAwLTIgMnY1YTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxIDIgMnY1YzAgMS4xLjkgMiAyIDJoMSIgLz4KICA8cGF0aCBkPSJNMTYgMjFoMWEyIDIgMCAwIDAgMi0ydi01YzAtMS4xLjktMiAyLTJhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMC0yLTJoLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/braces\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Braces = createLucideIcon('Braces', [\n [\n 'path',\n { d: 'M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1', key: 'ezmyqa' },\n ],\n [\n 'path',\n {\n d: 'M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1',\n key: 'e1hn23',\n },\n ],\n]);\n\nexport default Braces;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CalendarClock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoNSIgLz4KICA8cGF0aCBkPSJNMTcuNSAxNy41IDE2IDE2LjNWMTQiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CalendarClock = createLucideIcon('CalendarClock', [\n ['path', { d: 'M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5', key: '1osxxc' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M3 10h5', key: 'r794hk' }],\n ['path', { d: 'M17.5 17.5 16 16.3V14', key: 'akvzfd' }],\n ['circle', { cx: '16', cy: '16', r: '6', key: 'qoo3c4' }],\n]);\n\nexport default CalendarClock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CalendarPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTE2IDE5aDYiIC8+CiAgPHBhdGggZD0iTTE5IDE2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CalendarPlus = createLucideIcon('CalendarPlus', [\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['path', { d: 'M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8', key: '3spt84' }],\n ['path', { d: 'M3 10h18', key: '8toen8' }],\n ['path', { d: 'M16 19h6', key: 'xwg31i' }],\n ['path', { d: 'M19 16v6', key: 'tddt3s' }],\n]);\n\nexport default CalendarPlus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Camera\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSA0aC01TDcgN0g0YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0yaC0zbC0yLjUtM3oiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMyIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/camera\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Camera = createLucideIcon('Camera', [\n [\n 'path',\n {\n d: 'M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z',\n key: '1tc9qg',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '3', key: '1vg3eu' }],\n]);\n\nexport default Camera;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChartNoAxesColumn\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTgiIHgyPSIxOCIgeTE9IjIwIiB5Mj0iMTAiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIyMCIgeTI9IjQiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSI2IiB5MT0iMjAiIHkyPSIxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChartNoAxesColumn = createLucideIcon('ChartNoAxesColumn', [\n ['line', { x1: '18', x2: '18', y1: '20', y2: '10', key: '1xfpm4' }],\n ['line', { x1: '12', x2: '12', y1: '20', y2: '4', key: 'be30l9' }],\n ['line', { x1: '6', x2: '6', y1: '20', y2: '14', key: '1r4le6' }],\n]);\n\nexport default ChartNoAxesColumn;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('ChevronDown', [\n ['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }],\n]);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronFirst\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTgtNi02IDYtNiIgLz4KICA8cGF0aCBkPSJNNyA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-first\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronFirst = createLucideIcon('ChevronFirst', [\n ['path', { d: 'm17 18-6-6 6-6', key: '1yerx2' }],\n ['path', { d: 'M7 6v12', key: '1p53r6' }],\n]);\n\nexport default ChevronFirst;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLast\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxOCA2LTYtNi02IiAvPgogIDxwYXRoIGQ9Ik0xNyA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-last\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLast = createLucideIcon('ChevronLast', [\n ['path', { d: 'm7 18 6-6-6-6', key: 'lwmzdw' }],\n ['path', { d: 'M17 6v12', key: '1o0aio' }],\n]);\n\nexport default ChevronLast;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('ChevronLeft', [\n ['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],\n]);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronUp = createLucideIcon('ChevronUp', [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]]);\n\nexport default ChevronUp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjgiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE2IiB5Mj0iMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleAlert = createLucideIcon('CircleAlert', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12', key: '1pkeuh' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16', key: '4dfq90' }],\n]);\n\nexport default CircleAlert;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleCheck = createLucideIcon('CircleCheck', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n]);\n\nexport default CircleCheck;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleHelp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-help\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleHelp = createLucideIcon('CircleHelp', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default CircleHelp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSIgLz4KICA8cGF0aCBkPSJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleOff = createLucideIcon('CircleOff', [\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n ['path', { d: 'M8.35 2.69A10 10 0 0 1 21.3 15.65', key: '1pfsoa' }],\n ['path', { d: 'M19.08 19.08A10 10 0 1 1 4.92 4.92', key: '1ablyi' }],\n]);\n\nexport default CircleOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('Circle', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n]);\n\nexport default Circle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ClipboardCopy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNEgxMSIgLz4KICA8cGF0aCBkPSJtMTUgMTAtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-copy\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ClipboardCopy = createLucideIcon('ClipboardCopy', [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1', key: 'tgr4d6' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2', key: '4jdomd' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v4', key: '3hqy98' }],\n ['path', { d: 'M21 14H11', key: '1bme5i' }],\n ['path', { d: 'm15 10-4 4 4 4', key: '5dvupr' }],\n]);\n\nexport default ClipboardCopy;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CornerDownRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxMCAyMCAxNSAxNSAyMCIgLz4KICA8cGF0aCBkPSJNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/corner-down-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CornerDownRight = createLucideIcon('CornerDownRight', [\n ['polyline', { points: '15 10 20 15 15 20', key: '1q7qjw' }],\n ['path', { d: 'M4 4v7a4 4 0 0 0 4 4h12', key: 'z08zvw' }],\n]);\n\nexport default CornerDownRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name DiamondPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgogIDxwYXRoIGQ9Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/diamond-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst DiamondPlus = createLucideIcon('DiamondPlus', [\n ['path', { d: 'M12 8v8', key: 'napkw2' }],\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z',\n key: '1ey20j',\n },\n ],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n]);\n\nexport default DiamondPlus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name EllipsisVertical\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis-vertical\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EllipsisVertical = createLucideIcon('EllipsisVertical', [\n ['circle', { cx: '12', cy: '12', r: '1', key: '41hilf' }],\n ['circle', { cx: '12', cy: '5', r: '1', key: 'gxeob9' }],\n ['circle', { cx: '12', cy: '19', r: '1', key: 'lyex9k' }],\n]);\n\nexport default EllipsisVertical;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name EyeOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EyeOff = createLucideIcon('EyeOff', [\n [\n 'path',\n {\n d: 'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49',\n key: 'ct8e1f',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242', key: '151rxh' }],\n [\n 'path',\n {\n d: 'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143',\n key: '13bj9a',\n },\n ],\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n]);\n\nexport default EyeOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('Eye', [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n key: '1nclc0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Factory\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWOGwtNyA1VjhsLTcgNVY0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNMTcgMThoMSIgLz4KICA8cGF0aCBkPSJNMTIgMThoMSIgLz4KICA8cGF0aCBkPSJNNyAxOGgxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/factory\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Factory = createLucideIcon('Factory', [\n [\n 'path',\n {\n d: 'M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n key: '159hny',\n },\n ],\n ['path', { d: 'M17 18h1', key: 'uldtlt' }],\n ['path', { d: 'M12 18h1', key: 's9uhes' }],\n ['path', { d: 'M7 18h1', key: '1neino' }],\n]);\n\nexport default Factory;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name GripVertical\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjE5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTUiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTkiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grip-vertical\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GripVertical = createLucideIcon('GripVertical', [\n ['circle', { cx: '9', cy: '12', r: '1', key: '1vctgf' }],\n ['circle', { cx: '9', cy: '5', r: '1', key: 'hp0tcf' }],\n ['circle', { cx: '9', cy: '19', r: '1', key: 'fkjjf6' }],\n ['circle', { cx: '15', cy: '12', r: '1', key: '1tmaij' }],\n ['circle', { cx: '15', cy: '5', r: '1', key: '19l28e' }],\n ['circle', { cx: '15', cy: '19', r: '1', key: 'f4zoj3' }],\n]);\n\nexport default GripVertical;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('Image', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n]);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Info = createLucideIcon('Info', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n]);\n\nexport default Info;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Key\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNSA3LjUgMi4zIDIuM2ExIDEgMCAwIDAgMS40IDBsMi4xLTIuMWExIDEgMCAwIDAgMC0xLjRMMTkgNCIgLz4KICA8cGF0aCBkPSJtMjEgMi05LjYgOS42IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE1LjUiIHI9IjUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/key\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Key = createLucideIcon('Key', [\n ['path', { d: 'm15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4', key: 'g0fldk' }],\n ['path', { d: 'm21 2-9.6 9.6', key: '1j0ho8' }],\n ['circle', { cx: '7.5', cy: '15.5', r: '5.5', key: 'yqb3hr' }],\n]);\n\nexport default Key;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LayoutGrid\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIxNCIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMTQiIHk9IjE0IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-grid\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LayoutGrid = createLucideIcon('LayoutGrid', [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1', key: '1g98yp' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1', key: '6d4xhi' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1', key: 'nxv5o0' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1', key: '1bb6yr' }],\n]);\n\nexport default LayoutGrid;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Link\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Link = createLucideIcon('Link', [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71', key: '1cjeqo' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71', key: '19qd67' }],\n]);\n\nexport default Link;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name List\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0zIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDEzIiAvPgogIDxwYXRoIGQ9Ik04IDE4aDEzIiAvPgogIDxwYXRoIGQ9Ik04IDZoMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst List = createLucideIcon('List', [\n ['path', { d: 'M3 12h.01', key: 'nlz23k' }],\n ['path', { d: 'M3 18h.01', key: '1tta3j' }],\n ['path', { d: 'M3 6h.01', key: '1rqtza' }],\n ['path', { d: 'M8 12h13', key: '1za7za' }],\n ['path', { d: 'M8 18h13', key: '1lx6n3' }],\n ['path', { d: 'M8 6h13', key: 'ik3vkj' }],\n]);\n\nexport default List;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MapPin\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MapPin = createLucideIcon('MapPin', [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n key: '1r0f0z',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3', key: 'ilqhr7' }],\n]);\n\nexport default MapPin;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Menu\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iNiIgeTI9IjYiIC8+CiAgPGxpbmUgeDE9IjQiIHgyPSIyMCIgeTE9IjE4IiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Menu = createLucideIcon('Menu', [\n ['line', { x1: '4', x2: '20', y1: '12', y2: '12', key: '1e0a9i' }],\n ['line', { x1: '4', x2: '20', y1: '6', y2: '6', key: '1owob3' }],\n ['line', { x1: '4', x2: '20', y1: '18', y2: '18', key: 'yk5zj1' }],\n]);\n\nexport default Menu;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Minus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Minus = createLucideIcon('Minus', [['path', { d: 'M5 12h14', key: '1ays0h' }]]);\n\nexport default Minus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n key: '1a8usu',\n },\n ],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Printer\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYiIC8+CiAgPHJlY3QgeD0iNiIgeT0iMTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/printer\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Printer = createLucideIcon('Printer', [\n [\n 'path',\n {\n d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2',\n key: '143wyd',\n },\n ],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6', key: '1itne7' }],\n ['rect', { x: '6', y: '14', width: '12', height: '8', rx: '1', key: '1ue0tg' }],\n]);\n\nexport default Printer;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name QrCode\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiB4PSIxNiIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjUiIGhlaWdodD0iNSIgeD0iMyIgeT0iMTYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNmgtM2EyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIxIDIxdi4wMSIgLz4KICA8cGF0aCBkPSJNMTIgN3YzYTIgMiAwIDAgMS0yIDJINyIgLz4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnYuMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaDEiIC8+CiAgPHBhdGggZD0iTTIxIDEydi4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMjF2LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/qr-code\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst QrCode = createLucideIcon('QrCode', [\n ['rect', { width: '5', height: '5', x: '3', y: '3', rx: '1', key: '1tu5fj' }],\n ['rect', { width: '5', height: '5', x: '16', y: '3', rx: '1', key: '1v8r4q' }],\n ['rect', { width: '5', height: '5', x: '3', y: '16', rx: '1', key: '1x03jg' }],\n ['path', { d: 'M21 16h-3a2 2 0 0 0-2 2v3', key: '177gqh' }],\n ['path', { d: 'M21 21v.01', key: 'ents32' }],\n ['path', { d: 'M12 7v3a2 2 0 0 1-2 2H7', key: '8crl2c' }],\n ['path', { d: 'M3 12h.01', key: 'nlz23k' }],\n ['path', { d: 'M12 3h.01', key: 'n36tog' }],\n ['path', { d: 'M12 16v.01', key: '133mhm' }],\n ['path', { d: 'M16 12h1', key: '1slzba' }],\n ['path', { d: 'M21 12v.01', key: '1lwtk9' }],\n ['path', { d: 'M12 21v-1', key: '1880an' }],\n]);\n\nexport default QrCode;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ReceiptEuro\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxMmg1IiAvPgogIDxwYXRoIGQ9Ik0xNiA5LjVhNCA0IDAgMSAwIDAgNS4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-euro\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ReceiptEuro = createLucideIcon('ReceiptEuro', [\n [\n 'path',\n { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z', key: 'q3az6g' },\n ],\n ['path', { d: 'M8 12h5', key: '1g6qi8' }],\n ['path', { d: 'M16 9.5a4 4 0 1 0 0 5.2', key: 'b2px4r' }],\n]);\n\nexport default ReceiptEuro;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RefreshCcw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2aDV2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/refresh-ccw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCcw = createLucideIcon('RefreshCcw', [\n ['path', { d: 'M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '14sxne' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n ['path', { d: 'M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16', key: '1hlbsb' }],\n ['path', { d: 'M16 16h5v5', key: 'ccwih5' }],\n]);\n\nexport default RefreshCcw;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RotateCcw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RotateCcw = createLucideIcon('RotateCcw', [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '1357e3' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n]);\n\nexport default RotateCcw;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Save\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyIgLz4KICA8cGF0aCBkPSJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Save = createLucideIcon('Save', [\n [\n 'path',\n {\n d: 'M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',\n key: '1c8476',\n },\n ],\n ['path', { d: 'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7', key: '1ydtos' }],\n ['path', { d: 'M7 3v4a1 1 0 0 0 1 1h7', key: 't51u73' }],\n]);\n\nexport default Save;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ScanBarcode\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik04IDd2MTAiIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE3IDd2MTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-barcode\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ScanBarcode = createLucideIcon('ScanBarcode', [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2', key: 'aa7l1z' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2', key: '4qcy5o' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2', key: '6vwrx8' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2', key: 'ioqczr' }],\n ['path', { d: 'M8 7v10', key: '23sfjj' }],\n ['path', { d: 'M12 7v10', key: 'jspqdw' }],\n ['path', { d: 'M17 7v10', key: '578dap' }],\n]);\n\nexport default ScanBarcode;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Send = createLucideIcon('Send', [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n]);\n\nexport default Send;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Share\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOCIgLz4KICA8cG9seWxpbmUgcG9pbnRzPSIxNiA2IDEyIDIgOCA2IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMiIgeTI9IjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/share\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Share = createLucideIcon('Share', [\n ['path', { d: 'M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8', key: '1b2hhj' }],\n ['polyline', { points: '16 6 12 2 8 6', key: 'm901s6' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '15', key: '1p0rca' }],\n]);\n\nexport default Share;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SwitchCamera\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1IiAvPgogIDxwYXRoIGQ9Ik0xMyA1aDdhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC01IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE4IDIyLTMtMyAzLTMiIC8+CiAgPHBhdGggZD0ibTYgMiAzIDMtMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/switch-camera\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SwitchCamera = createLucideIcon('SwitchCamera', [\n ['path', { d: 'M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5', key: 'mtk2lu' }],\n ['path', { d: 'M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5', key: '120jsl' }],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n ['path', { d: 'm18 22-3-3 3-3', key: 'kgdoj7' }],\n ['path', { d: 'm6 2 3 3-3 3', key: '1fnbkv' }],\n]);\n\nexport default SwitchCamera;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TextCursorInput\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA0aDFhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDEiIC8+CiAgPHBhdGggZD0iTTEzIDIwaC0xYTMgMyAwIDAgMS0zLTMgMyAzIDAgMCAxLTMgM0g1IiAvPgogIDxwYXRoIGQ9Ik01IDE2SDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDEiIC8+CiAgPHBhdGggZD0iTTEzIDhoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNyIgLz4KICA8cGF0aCBkPSJNOSA3djEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-cursor-input\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TextCursorInput = createLucideIcon('TextCursorInput', [\n ['path', { d: 'M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1', key: '18xjzo' }],\n ['path', { d: 'M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5', key: 'fj48gi' }],\n ['path', { d: 'M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1', key: '1n9rhb' }],\n ['path', { d: 'M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7', key: '13ksps' }],\n ['path', { d: 'M9 7v10', key: '1vc8ob' }],\n]);\n\nexport default TextCursorInput;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Timer\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTAiIHgyPSIxNCIgeTE9IjIiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjE1IiB5MT0iMTQiIHkyPSIxMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Timer = createLucideIcon('Timer', [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2', key: '14vaq8' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11', key: '17fdiu' }],\n ['circle', { cx: '12', cy: '14', r: '8', key: '1e1u0o' }],\n]);\n\nexport default Timer;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDE4IiAvPgogIDxwYXRoIGQ9Ik0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYiIC8+CiAgPHBhdGggZD0iTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MiIgLz4KICA8bGluZSB4MT0iMTAiIHgyPSIxMCIgeTE9IjExIiB5Mj0iMTciIC8+CiAgPGxpbmUgeDE9IjE0IiB4Mj0iMTQiIHkxPSIxMSIgeTI9IjE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('Trash2', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n ['line', { x1: '10', x2: '10', y1: '11', y2: '17', key: '1uufr5' }],\n ['line', { x1: '14', x2: '14', y1: '11', y2: '17', key: 'xtxkd' }],\n]);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('TriangleAlert', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n","module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col) {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint > lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+ totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n PATTERN_POSITION_TABLE : [\n\t [],\n\t [6, 18],\n\t [6, 22],\n\t [6, 26],\n\t [6, 30],\n\t [6, 34],\n\t [6, 22, 38],\n\t [6, 24, 42],\n\t [6, 26, 46],\n\t [6, 28, 50],\n\t [6, 30, 54],\t\t\n\t [6, 32, 58],\n\t [6, 34, 62],\n\t [6, 26, 46, 66],\n\t [6, 26, 48, 70],\n\t [6, 26, 50, 74],\n\t [6, 30, 54, 78],\n\t [6, 30, 56, 82],\n\t [6, 30, 58, 86],\n\t [6, 34, 62, 90],\n\t [6, 28, 50, 72, 94],\n\t [6, 26, 50, 74, 98],\n\t [6, 30, 54, 78, 102],\n\t [6, 28, 54, 80, 106],\n\t [6, 32, 58, 84, 110],\n\t [6, 30, 58, 86, 114],\n\t [6, 34, 62, 90, 118],\n\t [6, 26, 50, 74, 98, 122],\n\t [6, 30, 54, 78, 102, 126],\n\t [6, 26, 52, 78, 104, 130],\n\t [6, 30, 56, 82, 108, 134],\n\t [6, 34, 60, 86, 112, 138],\n\t [6, 30, 58, 86, 114, 142],\n\t [6, 34, 62, 90, 118, 146],\n\t [6, 30, 54, 78, 102, 126, 150],\n\t [6, 24, 50, 76, 102, 128, 154],\n\t [6, 28, 54, 80, 106, 132, 158],\n\t [6, 32, 58, 84, 110, 136, 162],\n\t [6, 26, 54, 82, 110, 138, 166],\n\t [6, 30, 58, 86, 114, 142, 170]\n ],\n\n G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n getBCHTypeInfo : function(data) {\n\t var d = data << 10;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t }\n\t return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n },\n\n getBCHTypeNumber : function(data) {\n\t var d = data << 12;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t }\n\t return (data << 12) | d;\n },\n\n getBCHDigit : function(data) {\n\n\t var digit = 0;\n\n\t while (data != 0) {\n\t\t digit++;\n\t\t data >>>= 1;\n\t }\n\n\t return digit;\n },\n\n getPatternPosition : function(typeNumber) {\n\t return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n\n getMask : function(maskPattern, i, j) {\n\t \n\t switch (maskPattern) {\n\t\t \n\t case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t default :\n\t\t throw new Error(\"bad maskPattern:\" + maskPattern);\n\t }\n },\n\n getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t var a = new Polynomial([1], 0);\n\n\t for (var i = 0; i < errorCorrectLength; i++) {\n\t\t a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t }\n\n\t return a;\n },\n\n getLengthInBits : function(mode, type) {\n\n\t if (1 <= type && type < 10) {\n\n\t\t // 1 - 9\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 10;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t case Mode.MODE_KANJI \t: return 8;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 27) {\n\n\t\t // 10 - 26\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 12;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 10;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 41) {\n\n\t\t // 27 - 40\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 14;\n\t\t case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 12;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else {\n\t\t throw new Error(\"type:\" + type);\n\t }\n },\n\n getLostPoint : function(qrCode) {\n\t \n\t var moduleCount = qrCode.getModuleCount();\n\t \n\t var lostPoint = 0;\n\t \n\t // LEVEL1\n\t \n\t for (var row = 0; row < moduleCount; row++) {\n\n\t\t for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t var sameCount = 0;\n\t\t\t var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t continue;\n\t\t\t\t }\n\n\t\t\t\t for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (r == 0 && c == 0) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t sameCount++;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\n\t\t\t if (sameCount > 5) {\n\t\t\t\t lostPoint += (3 + sameCount - 5);\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL2\n\n\t for (var row = 0; row < moduleCount - 1; row++) {\n\t\t for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t var count = 0;\n\t\t\t if (qrCode.isDark(row, col ) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col ) ) count++;\n\t\t\t if (qrCode.isDark(row, col + 1) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t if (count == 0 || count == 4) {\n\t\t\t\t lostPoint += 3;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL3\n\n\t for (var row = 0; row < moduleCount; row++) {\n\t\t for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t && qrCode.isDark(row, col + 2)\n\t\t\t\t\t && qrCode.isDark(row, col + 3)\n\t\t\t\t\t && qrCode.isDark(row, col + 4)\n\t\t\t\t\t && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t && qrCode.isDark(row, col + 6) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t && qrCode.isDark(row + 2, col)\n\t\t\t\t\t && qrCode.isDark(row + 3, col)\n\t\t\t\t\t && qrCode.isDark(row + 4, col)\n\t\t\t\t\t && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t && qrCode.isDark(row + 6, col) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL4\n\t \n\t var darkCount = 0;\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount; row++) {\n\t\t\t if (qrCode.isDark(row, col) ) {\n\t\t\t\t darkCount++;\n\t\t\t }\n\t\t }\n\t }\n\t \n\t var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t lostPoint += ratio * 10;\n\n\t return lostPoint;\t\t\n }\n};\n\nmodule.exports = QRUtil;\n","'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar React = require('react');\n\nvar PropTypes = require('prop-types'); // qr.js doesn't handle error level of zero (M) so we need to do it right,\n// thus the deep require.\n\n\nvar QRCodeImpl = require('qr.js/lib/QRCode');\n\nvar ErrorCorrectLevel = require('qr.js/lib/ErrorCorrectLevel'); // TODO: pull this off of the QRCode class type so it matches.\n\n\n// Convert from UTF-16, forcing the use of byte-mode encoding in our QR Code.\n// This allows us to encode Hanji, Kanji, emoji, etc. Ideally we'd do more\n// detection and not resort to byte-mode if possible, but we're trading off\n// a smaller library for a smaller amount of data we can potentially encode.\n// Based on http://jonisalonen.com/2012/from-utf-16-to-utf-8-in-javascript/\nfunction convertStr(str) {\n var out = '';\n\n for (var i = 0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n\n if (charcode < 0x0080) {\n out += String.fromCharCode(charcode);\n } else if (charcode < 0x0800) {\n out += String.fromCharCode(0xc0 | charcode >> 6);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n } else if (charcode < 0xd800 || charcode >= 0xe000) {\n out += String.fromCharCode(0xe0 | charcode >> 12);\n out += String.fromCharCode(0x80 | charcode >> 6 & 0x3f);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n } else {\n // This is a surrogate pair, so we'll reconsitute the pieces and work\n // from that\n i++;\n charcode = 0x10000 + ((charcode & 0x3ff) << 10 | str.charCodeAt(i) & 0x3ff);\n out += String.fromCharCode(0xf0 | charcode >> 18);\n out += String.fromCharCode(0x80 | charcode >> 12 & 0x3f);\n out += String.fromCharCode(0x80 | charcode >> 6 & 0x3f);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n }\n }\n\n return out;\n}\n\nvar DEFAULT_PROPS = {\n size: 128,\n level: 'L',\n bgColor: '#FFFFFF',\n fgColor: '#000000',\n includeMargin: false\n};\nvar PROP_TYPES = process.env.NODE_ENV !== 'production' ? {\n value: PropTypes.string.isRequired,\n size: PropTypes.number,\n level: PropTypes.oneOf(['L', 'M', 'Q', 'H']),\n bgColor: PropTypes.string,\n fgColor: PropTypes.string,\n includeMargin: PropTypes.bool,\n imageSettings: PropTypes.shape({\n src: PropTypes.string.isRequired,\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n excavate: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number\n })\n} : {};\nvar MARGIN_SIZE = 4; // This is *very* rough estimate of max amount of QRCode allowed to be covered.\n// It is \"wrong\" in a lot of ways (area is a terrible way to estimate, it\n// really should be number of modules covered), but if for some reason we don't\n// get an explicit height or width, I'd rather default to something than throw.\n\nvar DEFAULT_IMG_SCALE = 0.1;\n\nfunction generatePath(modules) {\n var margin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var ops = [];\n modules.forEach(function (row, y) {\n var start = null;\n row.forEach(function (cell, x) {\n if (!cell && start !== null) {\n // M0 0h7v1H0z injects the space with the move and drops the comma,\n // saving a char per operation\n ops.push(\"M\".concat(start + margin, \" \").concat(y + margin, \"h\").concat(x - start, \"v1H\").concat(start + margin, \"z\"));\n start = null;\n return;\n } // end of row, clean up or skip\n\n\n if (x === row.length - 1) {\n if (!cell) {\n // We would have closed the op above already so this can only mean\n // 2+ light modules in a row.\n return;\n }\n\n if (start === null) {\n // Just a single dark module.\n ops.push(\"M\".concat(x + margin, \",\").concat(y + margin, \" h1v1H\").concat(x + margin, \"z\"));\n } else {\n // Otherwise finish the current line.\n ops.push(\"M\".concat(start + margin, \",\").concat(y + margin, \" h\").concat(x + 1 - start, \"v1H\").concat(start + margin, \"z\"));\n }\n\n return;\n }\n\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join('');\n} // We could just do this in generatePath, except that we want to support\n// non-Path2D canvas, so we need to keep it an explicit step.\n\n\nfunction excavateModules(modules, excavation) {\n return modules.slice().map(function (row, y) {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n\n return row.map(function (cell, x) {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n\n return false;\n });\n });\n}\n\nfunction getImageSettings(props, cells) {\n var imageSettings = props.imageSettings,\n size = props.size,\n includeMargin = props.includeMargin;\n\n if (imageSettings == null) {\n return null;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n var scale = numCells / size;\n var w = (imageSettings.width || defaultSize) * scale;\n var h = (imageSettings.height || defaultSize) * scale;\n var x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n var y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n var excavation = null;\n\n if (imageSettings.excavate) {\n var floorX = Math.floor(x);\n var floorY = Math.floor(y);\n var ceilW = Math.ceil(w + x - floorX);\n var ceilH = Math.ceil(h + y - floorY);\n excavation = {\n x: floorX,\n y: floorY,\n w: ceilW,\n h: ceilH\n };\n }\n\n return {\n x: x,\n y: y,\n h: h,\n w: w,\n excavation: excavation\n };\n} // For canvas we're going to switch our drawing mode based on whether or not\n// the environment supports Path2D. We only need the constructor to be\n// supported, but Edge doesn't actually support the path (string) type\n// argument. Luckily it also doesn't support the addPath() method. We can\n// treat that as the same thing.\n\n\nvar SUPPORTS_PATH2D = function () {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n\n return true;\n}();\n\nvar QRCodeCanvas =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(QRCodeCanvas, _React$PureComponent);\n\n function QRCodeCanvas() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, QRCodeCanvas);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(QRCodeCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_canvas\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_image\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n imgLoaded: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleImageLoad\", function () {\n _this.setState({\n imgLoaded: true\n });\n });\n\n return _this;\n }\n\n _createClass(QRCodeCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._image && this._image.complete) {\n this.handleImageLoad();\n }\n\n this.update();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props$imageSett, _nextProps$imageSetti;\n\n var currentSrc = (_this$props$imageSett = this.props.imageSettings) === null || _this$props$imageSett === void 0 ? void 0 : _this$props$imageSett.src;\n var nextSrc = (_nextProps$imageSetti = nextProps.imageSettings) === null || _nextProps$imageSetti === void 0 ? void 0 : _nextProps$imageSetti.src;\n\n if (currentSrc !== nextSrc) {\n this.setState({\n imgLoaded: false\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.update();\n }\n }, {\n key: \"update\",\n value: function update() {\n var _this$props = this.props,\n value = _this$props.value,\n size = _this$props.size,\n level = _this$props.level,\n bgColor = _this$props.bgColor,\n fgColor = _this$props.fgColor,\n includeMargin = _this$props.includeMargin,\n imageSettings = _this$props.imageSettings; // We'll use type===-1 to force QRCode to automatically pick the best type\n\n var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n qrcode.addData(convertStr(value));\n qrcode.make();\n\n if (this._canvas != null) {\n var canvas = this._canvas;\n var ctx = canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n var cells = qrcode.modules;\n\n if (cells === null) {\n return;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var calculatedImageSettings = getImageSettings(this.props, cells);\n\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n } // We're going to scale this so that the number of drawable units\n // matches the number of cells. This avoids rounding issues, but does\n // result in some potentially unwanted single pixel issues between\n // blocks, only in environments that don't support Path2D.\n\n\n var pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n var scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale); // Draw solid background, only paint dark modules.\n\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n\n if (SUPPORTS_PATH2D) {\n // $FlowFixMe: Path2D c'tor doesn't support args yet.\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function (row, rdx) {\n row.forEach(function (cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n\n if (this.state.imgLoaded && this._image && calculatedImageSettings != null) {\n ctx.drawImage(this._image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n value = _this$props2.value,\n size = _this$props2.size,\n level = _this$props2.level,\n bgColor = _this$props2.bgColor,\n fgColor = _this$props2.fgColor,\n style = _this$props2.style,\n includeMargin = _this$props2.includeMargin,\n imageSettings = _this$props2.imageSettings,\n otherProps = _objectWithoutProperties(_this$props2, [\"value\", \"size\", \"level\", \"bgColor\", \"fgColor\", \"style\", \"includeMargin\", \"imageSettings\"]);\n\n var canvasStyle = _objectSpread({\n height: size,\n width: size\n }, style);\n\n var img = null;\n var imgSrc = imageSettings && imageSettings.src;\n\n if (imageSettings != null && imgSrc != null) {\n img = React.createElement(\"img\", {\n src: imgSrc,\n style: {\n display: 'none'\n },\n onLoad: this.handleImageLoad,\n ref: function ref(_ref) {\n return _this2._image = _ref;\n }\n });\n }\n\n return React.createElement(React.Fragment, null, React.createElement(\"canvas\", _extends({\n style: canvasStyle,\n height: size,\n width: size,\n ref: function ref(_ref2) {\n return _this2._canvas = _ref2;\n }\n }, otherProps)), img);\n }\n }]);\n\n return QRCodeCanvas;\n}(React.PureComponent);\n\n_defineProperty(QRCodeCanvas, \"defaultProps\", DEFAULT_PROPS);\n\nif (process.env.NODE_ENV !== 'production') {\n QRCodeCanvas.propTypes = PROP_TYPES;\n}\n\nvar QRCodeSVG =\n/*#__PURE__*/\nfunction (_React$PureComponent2) {\n _inherits(QRCodeSVG, _React$PureComponent2);\n\n function QRCodeSVG() {\n _classCallCheck(this, QRCodeSVG);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(QRCodeSVG).apply(this, arguments));\n }\n\n _createClass(QRCodeSVG, [{\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n value = _this$props3.value,\n size = _this$props3.size,\n level = _this$props3.level,\n bgColor = _this$props3.bgColor,\n fgColor = _this$props3.fgColor,\n includeMargin = _this$props3.includeMargin,\n imageSettings = _this$props3.imageSettings,\n otherProps = _objectWithoutProperties(_this$props3, [\"value\", \"size\", \"level\", \"bgColor\", \"fgColor\", \"includeMargin\", \"imageSettings\"]); // We'll use type===-1 to force QRCode to automatically pick the best type\n\n\n var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n qrcode.addData(convertStr(value));\n qrcode.make();\n var cells = qrcode.modules;\n\n if (cells === null) {\n return null;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var calculatedImageSettings = getImageSettings(this.props, cells);\n var image = null;\n\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n\n image = React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n } // Drawing strategy: instead of a rect per module, we're going to create a\n // single path for the dark modules and layer that on top of a light rect,\n // for a total of 2 DOM nodes. We pay a bit more in string concat but that's\n // way faster than DOM ops.\n // For level 1, 441 nodes -> 2\n // For level 40, 31329 -> 2\n\n\n var fgPath = generatePath(cells, margin);\n return React.createElement(\"svg\", _extends({\n shapeRendering: \"crispEdges\",\n height: size,\n width: size,\n viewBox: \"0 0 \".concat(numCells, \" \").concat(numCells)\n }, otherProps), React.createElement(\"path\", {\n fill: bgColor,\n d: \"M0,0 h\".concat(numCells, \"v\").concat(numCells, \"H0z\")\n }), React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath\n }), image);\n }\n }]);\n\n return QRCodeSVG;\n}(React.PureComponent);\n\n_defineProperty(QRCodeSVG, \"defaultProps\", DEFAULT_PROPS);\n\nif (process.env.NODE_ENV !== 'production') {\n QRCodeSVG.propTypes = PROP_TYPES;\n}\n\nvar QRCode = function QRCode(props) {\n var renderAs = props.renderAs,\n otherProps = _objectWithoutProperties(props, [\"renderAs\"]);\n\n var Component = renderAs === 'svg' ? QRCodeSVG : QRCodeCanvas;\n return React.createElement(Component, otherProps);\n};\n\nQRCode.defaultProps = _objectSpread({\n renderAs: 'canvas'\n}, DEFAULT_PROPS);\nmodule.exports = QRCode;","import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var isFirstRun = useRef(true);\n var committed = useRef(initial);\n var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = useCache ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n isFirstRun.current = false;\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import React, { useLayoutEffect, useEffect, useRef, useState, useContext } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux';\nimport { Provider, connect } from 'react-redux';\nimport { useMemo, useCallback } from 'use-memo-one';\nimport { getRect, expand, offset, withScroll, getBox, createBox, calculateBox } from 'css-box-model';\nimport memoizeOne from 'memoize-one';\nimport rafSchd from 'raf-schd';\nimport ReactDOM from 'react-dom';\n\nvar isProduction = process.env.NODE_ENV === 'production';\nvar spacesAndTabs = /[ \\t]{2,}/g;\nvar lineStartWithSpaces = /^[ \\t]*/gm;\n\nvar clean = function clean(value) {\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n};\n\nvar getDevMessage = function getDevMessage(message) {\n return clean(\"\\n %creact-beautiful-dnd\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development only message. It will be removed in production builds.\\n\");\n};\n\nvar getFormattedMessage = function getFormattedMessage(message) {\n return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];\n};\nvar isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';\nfunction log(type, message) {\n var _console;\n\n if (isProduction) {\n return;\n }\n\n if (typeof window !== 'undefined' && window[isDisabledFlag]) {\n return;\n }\n\n (_console = console)[type].apply(_console, getFormattedMessage(message));\n}\nvar warning = log.bind(null, 'warn');\nvar error = log.bind(null, 'error');\n\nfunction noop() {}\n\nfunction getOptions(shared, fromBinding) {\n return _extends({}, shared, {}, fromBinding);\n}\n\nfunction bindEvents(el, bindings, sharedOptions) {\n var unbindings = bindings.map(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n return function unbind() {\n el.removeEventListener(binding.eventName, binding.fn, options);\n };\n });\n return function unbindAll() {\n unbindings.forEach(function (unbind) {\n unbind();\n });\n };\n}\n\nvar isProduction$1 = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction RbdInvariant(message) {\n this.message = message;\n}\n\nRbdInvariant.prototype.toString = function toString() {\n return this.message;\n};\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction$1) {\n throw new RbdInvariant(prefix);\n } else {\n throw new RbdInvariant(prefix + \": \" + (message || ''));\n }\n}\n\nvar ErrorBoundary = function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.callbacks = null;\n _this.unbind = noop;\n\n _this.onWindowError = function (event) {\n var callbacks = _this.getCallbacks();\n\n if (callbacks.isDragging()) {\n callbacks.tryAbort();\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n An error was caught by our window 'error' event listener while a drag was occurring.\\n The active drag has been aborted.\\n \") : void 0;\n }\n\n var err = event.error;\n\n if (err instanceof RbdInvariant) {\n event.preventDefault();\n\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n }\n };\n\n _this.getCallbacks = function () {\n if (!_this.callbacks) {\n throw new Error('Unable to find AppCallbacks in ');\n }\n\n return _this.callbacks;\n };\n\n _this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n return _this;\n }\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.unbind = bindEvents(window, [{\n eventName: 'error',\n fn: this.onWindowError\n }]);\n };\n\n _proto.componentDidCatch = function componentDidCatch(err) {\n if (err instanceof RbdInvariant) {\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n\n this.setState({});\n return;\n }\n\n throw err;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unbind();\n };\n\n _proto.render = function render() {\n return this.props.children(this.setCallbacks);\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nvar dragHandleUsageInstructions = \"\\n Press space bar to start a drag.\\n When dragging you can use the arrow keys to move the item around and escape to cancel.\\n Some screen readers may require you to be in focus mode or to use your pass through key\\n\";\n\nvar position = function position(index) {\n return index + 1;\n};\n\nvar onDragStart = function onDragStart(start) {\n return \"\\n You have lifted an item in position \" + position(start.source.index) + \"\\n\";\n};\n\nvar withLocation = function withLocation(source, destination) {\n var isInHomeList = source.droppableId === destination.droppableId;\n var startPosition = position(source.index);\n var endPosition = position(destination.index);\n\n if (isInHomeList) {\n return \"\\n You have moved the item from position \" + startPosition + \"\\n to position \" + endPosition + \"\\n \";\n }\n\n return \"\\n You have moved the item from position \" + startPosition + \"\\n in list \" + source.droppableId + \"\\n to list \" + destination.droppableId + \"\\n in position \" + endPosition + \"\\n \";\n};\n\nvar withCombine = function withCombine(id, source, combine) {\n var inHomeList = source.droppableId === combine.droppableId;\n\n if (inHomeList) {\n return \"\\n The item \" + id + \"\\n has been combined with \" + combine.draggableId;\n }\n\n return \"\\n The item \" + id + \"\\n in list \" + source.droppableId + \"\\n has been combined with \" + combine.draggableId + \"\\n in list \" + combine.droppableId + \"\\n \";\n};\n\nvar onDragUpdate = function onDragUpdate(update) {\n var location = update.destination;\n\n if (location) {\n return withLocation(update.source, location);\n }\n\n var combine = update.combine;\n\n if (combine) {\n return withCombine(update.draggableId, update.source, combine);\n }\n\n return 'You are over an area that cannot be dropped on';\n};\n\nvar returnedToStart = function returnedToStart(source) {\n return \"\\n The item has returned to its starting position\\n of \" + position(source.index) + \"\\n\";\n};\n\nvar onDragEnd = function onDragEnd(result) {\n if (result.reason === 'CANCEL') {\n return \"\\n Movement cancelled.\\n \" + returnedToStart(result.source) + \"\\n \";\n }\n\n var location = result.destination;\n var combine = result.combine;\n\n if (location) {\n return \"\\n You have dropped the item.\\n \" + withLocation(result.source, location) + \"\\n \";\n }\n\n if (combine) {\n return \"\\n You have dropped the item.\\n \" + withCombine(result.draggableId, result.source, combine) + \"\\n \";\n }\n\n return \"\\n The item has been dropped while not over a drop area.\\n \" + returnedToStart(result.source) + \"\\n \";\n};\n\nvar preset = {\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n onDragStart: onDragStart,\n onDragUpdate: onDragUpdate,\n onDragEnd: onDragEnd\n};\n\nvar origin = {\n x: 0,\n y: 0\n};\nvar add = function add(point1, point2) {\n return {\n x: point1.x + point2.x,\n y: point1.y + point2.y\n };\n};\nvar subtract = function subtract(point1, point2) {\n return {\n x: point1.x - point2.x,\n y: point1.y - point2.y\n };\n};\nvar isEqual = function isEqual(point1, point2) {\n return point1.x === point2.x && point1.y === point2.y;\n};\nvar negate = function negate(point) {\n return {\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n };\n};\nvar patch = function patch(line, value, otherValue) {\n var _ref;\n\n if (otherValue === void 0) {\n otherValue = 0;\n }\n\n return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref;\n};\nvar distance = function distance(point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\nvar closest = function closest(target, points) {\n return Math.min.apply(Math, points.map(function (point) {\n return distance(target, point);\n }));\n};\nvar apply = function apply(fn) {\n return function (point) {\n return {\n x: fn(point.x),\n y: fn(point.y)\n };\n };\n};\n\nvar executeClip = (function (frame, subject) {\n var result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n\n return result;\n});\n\nvar offsetByPosition = function offsetByPosition(spacing, point) {\n return {\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n };\n};\nvar getCorners = function getCorners(spacing) {\n return [{\n x: spacing.left,\n y: spacing.top\n }, {\n x: spacing.right,\n y: spacing.top\n }, {\n x: spacing.left,\n y: spacing.bottom\n }, {\n x: spacing.right,\n y: spacing.bottom\n }];\n};\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar scroll = function scroll(target, frame) {\n if (!frame) {\n return target;\n }\n\n return offsetByPosition(target, frame.scroll.diff.displacement);\n};\n\nvar increase = function increase(target, axis, withPlaceholder) {\n if (withPlaceholder && withPlaceholder.increasedBy) {\n var _extends2;\n\n return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2));\n }\n\n return target;\n};\n\nvar clip = function clip(target, frame) {\n if (frame && frame.shouldClipSubject) {\n return executeClip(frame.pageMarginBox, target);\n }\n\n return getRect(target);\n};\n\nvar getSubject = (function (_ref) {\n var page = _ref.page,\n withPlaceholder = _ref.withPlaceholder,\n axis = _ref.axis,\n frame = _ref.frame;\n var scrolled = scroll(page.marginBox, frame);\n var increased = increase(scrolled, axis, withPlaceholder);\n var clipped = clip(increased, frame);\n return {\n page: page,\n withPlaceholder: withPlaceholder,\n active: clipped\n };\n});\n\nvar scrollDroppable = (function (droppable, newScroll) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var scrollable = droppable.frame;\n var scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n var scrollDisplacement = negate(scrollDiff);\n\n var frame = _extends({}, scrollable, {\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n });\n\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: droppable.subject.withPlaceholder,\n axis: droppable.axis,\n frame: frame\n });\n\n var result = _extends({}, droppable, {\n frame: frame,\n subject: subject\n });\n\n return result;\n});\n\nfunction isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction values(map) {\n if (Object.values) {\n return Object.values(map);\n }\n\n return Object.keys(map).map(function (key) {\n return map[key];\n });\n}\nfunction findIndex(list, predicate) {\n if (list.findIndex) {\n return list.findIndex(predicate);\n }\n\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i])) {\n return i;\n }\n }\n\n return -1;\n}\nfunction find(list, predicate) {\n if (list.find) {\n return list.find(predicate);\n }\n\n var index = findIndex(list, predicate);\n\n if (index !== -1) {\n return list[index];\n }\n\n return undefined;\n}\nfunction toArray(list) {\n return Array.prototype.slice.call(list);\n}\n\nvar toDroppableMap = memoizeOne(function (droppables) {\n return droppables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDraggableMap = memoizeOne(function (draggables) {\n return draggables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDroppableList = memoizeOne(function (droppables) {\n return values(droppables);\n});\nvar toDraggableList = memoizeOne(function (draggables) {\n return values(draggables);\n});\n\nvar getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) {\n var result = toDraggableList(draggables).filter(function (draggable) {\n return droppableId === draggable.descriptor.droppableId;\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n return result;\n});\n\nfunction tryGetDestination(impact) {\n if (impact.at && impact.at.type === 'REORDER') {\n return impact.at.destination;\n }\n\n return null;\n}\nfunction tryGetCombine(impact) {\n if (impact.at && impact.at.type === 'COMBINE') {\n return impact.at.combine;\n }\n\n return null;\n}\n\nvar removeDraggableFromList = memoizeOne(function (remove, list) {\n return list.filter(function (item) {\n return item.descriptor.id !== remove.descriptor.id;\n });\n});\n\nvar moveToNextCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var location = tryGetDestination(previousImpact);\n\n if (!location) {\n return null;\n }\n\n function getImpact(target) {\n var at = {\n type: 'COMBINE',\n combine: {\n draggableId: target,\n droppableId: destination.descriptor.id\n }\n };\n return _extends({}, previousImpact, {\n at: at\n });\n }\n\n var all = previousImpact.displaced.all;\n var closestId = all.length ? all[0] : null;\n\n if (isMovingForward) {\n return closestId ? getImpact(closestId) : null;\n }\n\n var withoutDraggable = removeDraggableFromList(draggable, insideDestination);\n\n if (!closestId) {\n if (!withoutDraggable.length) {\n return null;\n }\n\n var last = withoutDraggable[withoutDraggable.length - 1];\n return getImpact(last.descriptor.id);\n }\n\n var indexOfClosest = findIndex(withoutDraggable, function (d) {\n return d.descriptor.id === closestId;\n });\n !(indexOfClosest !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0;\n var proposedIndex = indexOfClosest - 1;\n\n if (proposedIndex < 0) {\n return null;\n }\n\n var before = withoutDraggable[proposedIndex];\n return getImpact(before.descriptor.id);\n});\n\nvar isHomeOf = (function (draggable, destination) {\n return draggable.descriptor.droppableId === destination.descriptor.id;\n});\n\nvar noDisplacedBy = {\n point: origin,\n value: 0\n};\nvar emptyGroups = {\n invisible: {},\n visible: {},\n all: []\n};\nvar noImpact = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: null\n};\n\nvar isWithin = (function (lowerBound, upperBound) {\n return function (value) {\n return lowerBound <= value && value <= upperBound;\n };\n});\n\nvar isPartiallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n\n if (isContained) {\n return true;\n }\n\n var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n\n if (isPartiallyContained) {\n return true;\n }\n\n var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n\n if (isTargetBiggerThanFrame) {\n return true;\n }\n\n var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n});\n\nvar isTotallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n});\n\nvar vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nvar horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\n\nvar isTotallyVisibleThroughFrameOnAxis = (function (axis) {\n return function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n if (axis === vertical) {\n return isWithinVertical(subject.top) && isWithinVertical(subject.bottom);\n }\n\n return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n };\n };\n});\n\nvar getDroppableDisplaced = function getDroppableDisplaced(target, destination) {\n var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin;\n return offsetByPosition(target, displacement);\n};\n\nvar isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) {\n if (!destination.subject.active) {\n return false;\n }\n\n return isVisibleThroughFrameFn(destination.subject.active)(target);\n};\n\nvar isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) {\n return isVisibleThroughFrameFn(viewport)(target);\n};\n\nvar isVisible = function isVisible(_ref) {\n var toBeDisplaced = _ref.target,\n destination = _ref.destination,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn;\n var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced;\n return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn);\n};\n\nvar isPartiallyVisible = function isPartiallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisible = function isTotallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis)\n }));\n};\n\nvar getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) {\n if (typeof forceShouldAnimate === 'boolean') {\n return forceShouldAnimate;\n }\n\n if (!last) {\n return true;\n }\n\n var invisible = last.invisible,\n visible = last.visible;\n\n if (invisible[id]) {\n return false;\n }\n\n var previous = visible[id];\n return previous ? previous.shouldAnimate : true;\n};\n\nfunction getTarget(draggable, displacedBy) {\n var marginBox = draggable.page.marginBox;\n var expandBy = {\n top: displacedBy.point.y,\n right: 0,\n bottom: 0,\n left: displacedBy.point.x\n };\n return getRect(expand(marginBox, expandBy));\n}\n\nfunction getDisplacementGroups(_ref) {\n var afterDragging = _ref.afterDragging,\n destination = _ref.destination,\n displacedBy = _ref.displacedBy,\n viewport = _ref.viewport,\n forceShouldAnimate = _ref.forceShouldAnimate,\n last = _ref.last;\n return afterDragging.reduce(function process(groups, draggable) {\n var target = getTarget(draggable, displacedBy);\n var id = draggable.descriptor.id;\n groups.all.push(id);\n var isVisible = isPartiallyVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n withDroppableDisplacement: true\n });\n\n if (!isVisible) {\n groups.invisible[draggable.descriptor.id] = true;\n return groups;\n }\n\n var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate);\n var displacement = {\n draggableId: id,\n shouldAnimate: shouldAnimate\n };\n groups.visible[id] = displacement;\n return groups;\n }, {\n all: [],\n visible: {},\n invisible: {}\n });\n}\n\nfunction getIndexOfLastItem(draggables, options) {\n if (!draggables.length) {\n return 0;\n }\n\n var indexOfLastItem = draggables[draggables.length - 1].descriptor.index;\n return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1;\n}\n\nfunction goAtEnd(_ref) {\n var insideDestination = _ref.insideDestination,\n inHomeList = _ref.inHomeList,\n displacedBy = _ref.displacedBy,\n destination = _ref.destination;\n var newIndex = getIndexOfLastItem(insideDestination, {\n inHomeList: inHomeList\n });\n return {\n displaced: emptyGroups,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n }\n }\n };\n}\n\nfunction calculateReorderImpact(_ref2) {\n var draggable = _ref2.draggable,\n insideDestination = _ref2.insideDestination,\n destination = _ref2.destination,\n viewport = _ref2.viewport,\n displacedBy = _ref2.displacedBy,\n last = _ref2.last,\n index = _ref2.index,\n forceShouldAnimate = _ref2.forceShouldAnimate;\n var inHomeList = isHomeOf(draggable, destination);\n\n if (index == null) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var match = find(insideDestination, function (item) {\n return item.descriptor.index === index;\n });\n\n if (!match) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var sliceFrom = insideDestination.indexOf(match);\n var impacted = withoutDragging.slice(sliceFrom);\n var displaced = getDisplacementGroups({\n afterDragging: impacted,\n destination: destination,\n displacedBy: displacedBy,\n last: last,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate\n });\n return {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: index\n }\n }\n };\n}\n\nfunction didStartAfterCritical(draggableId, afterCritical) {\n return Boolean(afterCritical.effected[draggableId]);\n}\n\nvar fromCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n destination = _ref.destination,\n draggables = _ref.draggables,\n combine = _ref.combine,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var combineId = combine.draggableId;\n var combineWith = draggables[combineId];\n var combineWithIndex = combineWith.descriptor.index;\n var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical);\n\n if (didCombineWithStartAfterCritical) {\n if (isMovingForward) {\n return combineWithIndex;\n }\n\n return combineWithIndex - 1;\n }\n\n if (isMovingForward) {\n return combineWithIndex + 1;\n }\n\n return combineWithIndex;\n});\n\nvar fromReorder = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n insideDestination = _ref.insideDestination,\n location = _ref.location;\n\n if (!insideDestination.length) {\n return null;\n }\n\n var currentIndex = location.index;\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n var firstIndex = insideDestination[0].descriptor.index;\n var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index;\n var upperBound = isInHomeList ? lastIndex : lastIndex + 1;\n\n if (proposedIndex < firstIndex) {\n return null;\n }\n\n if (proposedIndex > upperBound) {\n return null;\n }\n\n return proposedIndex;\n});\n\nvar moveToNextIndex = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var wasAt = previousImpact.at;\n !wasAt ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0;\n\n if (wasAt.type === 'REORDER') {\n var _newIndex = fromReorder({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n location: wasAt.destination,\n insideDestination: insideDestination\n });\n\n if (_newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: _newIndex\n });\n }\n\n var newIndex = fromCombine({\n isMovingForward: isMovingForward,\n destination: destination,\n displaced: previousImpact.displaced,\n draggables: draggables,\n combine: wasAt.combine,\n afterCritical: afterCritical\n });\n\n if (newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: newIndex\n });\n});\n\nvar getCombinedItemDisplacement = (function (_ref) {\n var displaced = _ref.displaced,\n afterCritical = _ref.afterCritical,\n combineWith = _ref.combineWith,\n displacedBy = _ref.displacedBy;\n var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]);\n\n if (didStartAfterCritical(combineWith, afterCritical)) {\n return isDisplaced ? origin : negate(displacedBy.point);\n }\n\n return isDisplaced ? displacedBy.point : origin;\n});\n\nvar whenCombining = (function (_ref) {\n var afterCritical = _ref.afterCritical,\n impact = _ref.impact,\n draggables = _ref.draggables;\n var combine = tryGetCombine(impact);\n !combine ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var combineWith = combine.draggableId;\n var center = draggables[combineWith].page.borderBox.center;\n var displaceBy = getCombinedItemDisplacement({\n displaced: impact.displaced,\n afterCritical: afterCritical,\n combineWith: combineWith,\n displacedBy: impact.displacedBy\n });\n return add(center, displaceBy);\n});\n\nvar distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) {\n return box.margin[axis.start] + box.borderBox[axis.size] / 2;\n};\n\nvar distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) {\n return box.margin[axis.end] + box.borderBox[axis.size] / 2;\n};\n\nvar getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) {\n return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2;\n};\n\nvar goAfter = function goAfter(_ref) {\n var axis = _ref.axis,\n moveRelativeTo = _ref.moveRelativeTo,\n isMoving = _ref.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goBefore = function goBefore(_ref2) {\n var axis = _ref2.axis,\n moveRelativeTo = _ref2.moveRelativeTo,\n isMoving = _ref2.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goIntoStart = function goIntoStart(_ref3) {\n var axis = _ref3.axis,\n moveInto = _ref3.moveInto,\n isMoving = _ref3.isMoving;\n return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving));\n};\n\nvar whenReordering = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppable = _ref.droppable,\n afterCritical = _ref.afterCritical;\n var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var draggablePage = draggable.page;\n var axis = droppable.axis;\n\n if (!insideDestination.length) {\n return goIntoStart({\n axis: axis,\n moveInto: droppable.page,\n isMoving: draggablePage\n });\n }\n\n var displaced = impact.displaced,\n displacedBy = impact.displacedBy;\n var closestAfter = displaced.all[0];\n\n if (closestAfter) {\n var closest = draggables[closestAfter];\n\n if (didStartAfterCritical(closestAfter, afterCritical)) {\n return goBefore({\n axis: axis,\n moveRelativeTo: closest.page,\n isMoving: draggablePage\n });\n }\n\n var withDisplacement = offset(closest.page, displacedBy.point);\n return goBefore({\n axis: axis,\n moveRelativeTo: withDisplacement,\n isMoving: draggablePage\n });\n }\n\n var last = insideDestination[insideDestination.length - 1];\n\n if (last.descriptor.id === draggable.descriptor.id) {\n return draggablePage.borderBox.center;\n }\n\n if (didStartAfterCritical(last.descriptor.id, afterCritical)) {\n var page = offset(last.page, negate(afterCritical.displacedBy.point));\n return goAfter({\n axis: axis,\n moveRelativeTo: page,\n isMoving: draggablePage\n });\n }\n\n return goAfter({\n axis: axis,\n moveRelativeTo: last.page,\n isMoving: draggablePage\n });\n});\n\nvar withDroppableDisplacement = (function (droppable, point) {\n var frame = droppable.frame;\n\n if (!frame) {\n return point;\n }\n\n return add(point, frame.scroll.diff.displacement);\n});\n\nvar getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n afterCritical = _ref.afterCritical;\n var original = draggable.page.borderBox.center;\n var at = impact.at;\n\n if (!droppable) {\n return original;\n }\n\n if (!at) {\n return original;\n }\n\n if (at.type === 'REORDER') {\n return whenReordering({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n }\n\n return whenCombining({\n impact: impact,\n draggables: draggables,\n afterCritical: afterCritical\n });\n};\n\nvar getPageBorderBoxCenterFromImpact = (function (args) {\n var withoutDisplacement = getResultWithoutDroppableDisplacement(args);\n var droppable = args.droppable;\n var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement;\n return withDisplacement;\n});\n\nvar scrollViewport = (function (viewport, newScroll) {\n var diff = subtract(newScroll, viewport.scroll.initial);\n var displacement = negate(diff);\n var frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n var updated = {\n frame: frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement: displacement\n }\n }\n };\n return updated;\n});\n\nfunction getDraggables(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nfunction tryGetVisible(id, groups) {\n for (var i = 0; i < groups.length; i++) {\n var displacement = groups[i].visible[id];\n\n if (displacement) {\n return displacement;\n }\n }\n\n return null;\n}\n\nvar speculativelyIncrease = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n destination = _ref.destination,\n draggables = _ref.draggables,\n maxScrollChange = _ref.maxScrollChange;\n var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange));\n var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination;\n var last = impact.displaced;\n var withViewportScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: scrolledViewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var withDroppableScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: scrolledDroppable,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var invisible = {};\n var visible = {};\n var groups = [last, withViewportScroll, withDroppableScroll];\n last.all.forEach(function (id) {\n var displacement = tryGetVisible(id, groups);\n\n if (displacement) {\n visible[id] = displacement;\n return;\n }\n\n invisible[id] = true;\n });\n\n var newImpact = _extends({}, impact, {\n displaced: {\n all: last.all,\n invisible: invisible,\n visible: visible\n }\n });\n\n return newImpact;\n});\n\nvar withViewportDisplacement = (function (viewport, point) {\n return add(viewport.scroll.diff.displacement, point);\n});\n\nvar getClientFromPageBorderBoxCenter = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n viewport = _ref.viewport;\n var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter);\n var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center);\n return add(draggable.client.borderBox.center, offset);\n});\n\nvar isTotallyVisibleInNewLocation = (function (_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n newPageBorderBoxCenter = _ref.newPageBorderBoxCenter,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n _ref$onlyOnMainAxis = _ref.onlyOnMainAxis,\n onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis;\n var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded);\n var args = {\n target: shifted,\n destination: destination,\n withDroppableDisplacement: withDroppableDisplacement,\n viewport: viewport\n };\n return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args);\n});\n\nvar moveToNextPlace = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n draggables = _ref.draggables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n previousClientSelection = _ref.previousClientSelection,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isEnabled) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var isInHomeList = isHomeOf(draggable, destination);\n var impact = moveToNextCombine({\n isMovingForward: isMovingForward,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact\n }) || moveToNextIndex({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n draggable: draggable,\n draggables: draggables,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: destination,\n newPageBorderBoxCenter: pageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n\n if (isVisibleInNewLocation) {\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n }\n\n var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter);\n var cautious = speculativelyIncrease({\n impact: impact,\n viewport: viewport,\n destination: destination,\n draggables: draggables,\n maxScrollChange: distance\n });\n return {\n clientSelection: previousClientSelection,\n impact: cautious,\n scrollJumpRequest: distance\n };\n});\n\nvar getKnownActive = function getKnownActive(droppable) {\n var rect = droppable.subject.active;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\n\nvar getBestCrossAxisDroppable = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n source = _ref.source,\n droppables = _ref.droppables,\n viewport = _ref.viewport;\n var active = source.subject.active;\n\n if (!active) {\n return null;\n }\n\n var axis = source.axis;\n var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]);\n var candidates = toDroppableList(droppables).filter(function (droppable) {\n return droppable !== source;\n }).filter(function (droppable) {\n return droppable.isEnabled;\n }).filter(function (droppable) {\n return Boolean(droppable.subject.active);\n }).filter(function (droppable) {\n return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable));\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n\n if (isMovingForward) {\n return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd];\n }\n\n return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart];\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]);\n return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]);\n }).sort(function (a, b) {\n var first = getKnownActive(a)[axis.crossAxisStart];\n var second = getKnownActive(b)[axis.crossAxisStart];\n\n if (isMovingForward) {\n return first - second;\n }\n\n return second - first;\n }).filter(function (droppable, index, array) {\n return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart];\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0];\n }\n\n var contains = candidates.filter(function (droppable) {\n var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n\n if (contains.length === 1) {\n return contains[0];\n }\n\n if (contains.length > 1) {\n return contains.sort(function (a, b) {\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n }\n\n return candidates.sort(function (a, b) {\n var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a)));\n var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b)));\n\n if (first !== second) {\n return first - second;\n }\n\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n});\n\nvar getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) {\n var original = draggable.page.borderBox.center;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original;\n};\nvar getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) {\n var original = draggable.page.borderBox;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original;\n};\n\nvar getClosestDraggable = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n viewport = _ref.viewport,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n var sorted = insideDestination.filter(function (draggable) {\n return isTotallyVisible({\n target: getCurrentPageBorderBox(draggable, afterCritical),\n destination: destination,\n viewport: viewport.frame,\n withDroppableDisplacement: true\n });\n }).sort(function (a, b) {\n var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical)));\n var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical)));\n\n if (distanceToA < distanceToB) {\n return -1;\n }\n\n if (distanceToB < distanceToA) {\n return 1;\n }\n\n return a.descriptor.index - b.descriptor.index;\n });\n return sorted[0] || null;\n});\n\nvar getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) {\n var displacement = displaceBy[axis.line];\n return {\n value: displacement,\n point: patch(axis.line, displacement)\n };\n});\n\nvar getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) {\n var axis = droppable.axis;\n\n if (droppable.descriptor.mode === 'virtual') {\n return patch(axis.line, placeholderSize[axis.line]);\n }\n\n var availableSpace = droppable.subject.page.contentBox[axis.size];\n var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var spaceUsed = insideDroppable.reduce(function (sum, dimension) {\n return sum + dimension.client.marginBox[axis.size];\n }, 0);\n var requiredSpace = spaceUsed + placeholderSize[axis.line];\n var needsToGrowBy = requiredSpace - availableSpace;\n\n if (needsToGrowBy <= 0) {\n return null;\n }\n\n return patch(axis.line, needsToGrowBy);\n};\n\nvar withMaxScroll = function withMaxScroll(frame, max) {\n return _extends({}, frame, {\n scroll: _extends({}, frame.scroll, {\n max: max\n })\n });\n};\n\nvar addPlaceholder = function addPlaceholder(droppable, draggable, draggables) {\n var frame = droppable.frame;\n !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0;\n !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0;\n var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point;\n var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables);\n var added = {\n placeholderSize: placeholderSize,\n increasedBy: requiredGrowth,\n oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null\n };\n\n if (!frame) {\n var _subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: droppable.frame\n });\n\n return _extends({}, droppable, {\n subject: _subject\n });\n }\n\n var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max;\n var newFrame = withMaxScroll(frame, maxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: newFrame\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\nvar removePlaceholder = function removePlaceholder(droppable) {\n var added = droppable.subject.withPlaceholder;\n !added ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0;\n var frame = droppable.frame;\n\n if (!frame) {\n var _subject2 = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: null,\n withPlaceholder: null\n });\n\n return _extends({}, droppable, {\n subject: _subject2\n });\n }\n\n var oldMaxScroll = added.oldFrameMaxScroll;\n !oldMaxScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0;\n var newFrame = withMaxScroll(frame, oldMaxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: newFrame,\n withPlaceholder: null\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\n\nvar moveToNewDroppable = (function (_ref) {\n var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n moveRelativeTo = _ref.moveRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n\n if (!moveRelativeTo) {\n if (insideDestination.length) {\n return null;\n }\n\n var proposed = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n }\n }\n };\n var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: proposed,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables);\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: withPlaceholder,\n newPageBorderBoxCenter: proposedPageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n return isVisibleInNewLocation ? proposed : null;\n }\n\n var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]);\n\n var proposedIndex = function () {\n var relativeTo = moveRelativeTo.descriptor.index;\n\n if (moveRelativeTo.descriptor.id === draggable.descriptor.id) {\n return relativeTo;\n }\n\n if (isGoingBeforeTarget) {\n return relativeTo;\n }\n\n return relativeTo + 1;\n }();\n\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n displacedBy: displacedBy,\n last: emptyGroups,\n index: proposedIndex\n });\n});\n\nvar moveCrossAxis = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n draggable = _ref.draggable,\n isOver = _ref.isOver,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var destination = getBestCrossAxisDroppable({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n source: isOver,\n droppables: droppables,\n viewport: viewport\n });\n\n if (!destination) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var moveRelativeTo = getClosestDraggable({\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n viewport: viewport,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n });\n var impact = moveToNewDroppable({\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n destination: destination,\n draggable: draggable,\n draggables: draggables,\n moveRelativeTo: moveRelativeTo,\n insideDestination: insideDestination,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n});\n\nvar whatIsDraggedOver = (function (impact) {\n var at = impact.at;\n\n if (!at) {\n return null;\n }\n\n if (at.type === 'REORDER') {\n return at.destination.droppableId;\n }\n\n return at.combine.droppableId;\n});\n\nvar getDroppableOver = function getDroppableOver(impact, droppables) {\n var id = whatIsDraggedOver(impact);\n return id ? droppables[id] : null;\n};\n\nvar moveInDirection = (function (_ref) {\n var state = _ref.state,\n type = _ref.type;\n var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables);\n var isMainAxisMovementAllowed = Boolean(isActuallyOver);\n var home = state.dimensions.droppables[state.critical.droppable.id];\n var isOver = isActuallyOver || home;\n var direction = isOver.axis.direction;\n var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n\n var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var previousPageBorderBoxCenter = state.current.page.borderBoxCenter;\n var _state$dimensions = state.dimensions,\n draggables = _state$dimensions.draggables,\n droppables = _state$dimensions.droppables;\n return isMovingOnMainAxis ? moveToNextPlace({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n destination: isOver,\n draggables: draggables,\n viewport: state.viewport,\n previousClientSelection: state.current.client.selection,\n previousImpact: state.impact,\n afterCritical: state.afterCritical\n }) : moveCrossAxis({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n isOver: isOver,\n draggables: draggables,\n droppables: droppables,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n});\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nfunction isPositionInFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function run(point) {\n return isWithinVertical(point.y) && isWithinHorizontal(point.x);\n };\n}\n\nfunction getHasOverlap(first, second) {\n return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top;\n}\n\nfunction getFurthestAway(_ref) {\n var pageBorderBox = _ref.pageBorderBox,\n draggable = _ref.draggable,\n candidates = _ref.candidates;\n var startCenter = draggable.page.borderBox.center;\n var sorted = candidates.map(function (candidate) {\n var axis = candidate.axis;\n var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]);\n return {\n id: candidate.descriptor.id,\n distance: distance(startCenter, target)\n };\n }).sort(function (a, b) {\n return b.distance - a.distance;\n });\n return sorted[0] ? sorted[0].id : null;\n}\n\nfunction getDroppableOver$1(_ref2) {\n var pageBorderBox = _ref2.pageBorderBox,\n draggable = _ref2.draggable,\n droppables = _ref2.droppables;\n var candidates = toDroppableList(droppables).filter(function (item) {\n if (!item.isEnabled) {\n return false;\n }\n\n var active = item.subject.active;\n\n if (!active) {\n return false;\n }\n\n if (!getHasOverlap(pageBorderBox, active)) {\n return false;\n }\n\n if (isPositionInFrame(active)(pageBorderBox.center)) {\n return true;\n }\n\n var axis = item.axis;\n var childCenter = active.center[axis.crossAxisLine];\n var crossAxisStart = pageBorderBox[axis.crossAxisStart];\n var crossAxisEnd = pageBorderBox[axis.crossAxisEnd];\n var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]);\n var isStartContained = isContained(crossAxisStart);\n var isEndContained = isContained(crossAxisEnd);\n\n if (!isStartContained && !isEndContained) {\n return true;\n }\n\n if (isStartContained) {\n return crossAxisStart < childCenter;\n }\n\n return crossAxisEnd > childCenter;\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0].descriptor.id;\n }\n\n return getFurthestAway({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n candidates: candidates\n });\n}\n\nvar offsetRectByPosition = function offsetRectByPosition(rect, point) {\n return getRect(offsetByPosition(rect, point));\n};\n\nvar withDroppableScroll = (function (droppable, area) {\n var frame = droppable.frame;\n\n if (!frame) {\n return area;\n }\n\n return offsetRectByPosition(area, frame.scroll.diff.value);\n});\n\nfunction getIsDisplaced(_ref) {\n var displaced = _ref.displaced,\n id = _ref.id;\n return Boolean(displaced.visible[id] || displaced.invisible[id]);\n}\n\nfunction atIndex(_ref) {\n var draggable = _ref.draggable,\n closest = _ref.closest,\n inHomeList = _ref.inHomeList;\n\n if (!closest) {\n return null;\n }\n\n if (!inHomeList) {\n return closest.descriptor.index;\n }\n\n if (closest.descriptor.index > draggable.descriptor.index) {\n return closest.descriptor.index - 1;\n }\n\n return closest.descriptor.index;\n}\n\nvar getReorderImpact = (function (_ref2) {\n var targetRect = _ref2.pageBorderBoxWithDroppableScroll,\n draggable = _ref2.draggable,\n destination = _ref2.destination,\n insideDestination = _ref2.insideDestination,\n last = _ref2.last,\n viewport = _ref2.viewport,\n afterCritical = _ref2.afterCritical;\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var closest = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childCenter = child.page.borderBox.center[axis.line];\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: last,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd <= childCenter;\n }\n\n return targetStart < childCenter - displacement;\n }\n\n if (isDisplaced) {\n return targetEnd <= childCenter + displacement;\n }\n\n return targetStart < childCenter;\n });\n var newIndex = atIndex({\n draggable: draggable,\n closest: closest,\n inHomeList: isHomeOf(draggable, destination)\n });\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: last,\n displacedBy: displacedBy,\n index: newIndex\n });\n});\n\nvar combineThresholdDivisor = 4;\nvar getCombineImpact = (function (_ref) {\n var draggable = _ref.draggable,\n targetRect = _ref.pageBorderBoxWithDroppableScroll,\n previousImpact = _ref.previousImpact,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var combineWith = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childRect = child.page.borderBox;\n var childSize = childRect[axis.size];\n var threshold = childSize / combineThresholdDivisor;\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: previousImpact.displaced,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold;\n }\n\n return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold;\n }\n\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold;\n }\n\n return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold;\n });\n\n if (!combineWith) {\n return null;\n }\n\n var impact = {\n displacedBy: displacedBy,\n displaced: previousImpact.displaced,\n at: {\n type: 'COMBINE',\n combine: {\n draggableId: combineWith.descriptor.id,\n droppableId: destination.descriptor.id\n }\n }\n };\n return impact;\n});\n\nvar getDragImpact = (function (_ref) {\n var pageOffset = _ref.pageOffset,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset);\n var destinationId = getDroppableOver$1({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n droppables: droppables\n });\n\n if (!destinationId) {\n return noImpact;\n }\n\n var destination = droppables[destinationId];\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox);\n return getCombineImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n previousImpact: previousImpact,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n }) || getReorderImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n last: previousImpact.displaced,\n viewport: viewport,\n afterCritical: afterCritical\n });\n});\n\nvar patchDroppableMap = (function (droppables, updated) {\n var _extends2;\n\n return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2));\n});\n\nvar clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) {\n var previousImpact = _ref.previousImpact,\n impact = _ref.impact,\n droppables = _ref.droppables;\n var last = whatIsDraggedOver(previousImpact);\n var now = whatIsDraggedOver(impact);\n\n if (!last) {\n return droppables;\n }\n\n if (last === now) {\n return droppables;\n }\n\n var lastDroppable = droppables[last];\n\n if (!lastDroppable.subject.withPlaceholder) {\n return droppables;\n }\n\n var updated = removePlaceholder(lastDroppable);\n return patchDroppableMap(droppables, updated);\n};\n\nvar recomputePlaceholders = (function (_ref2) {\n var draggable = _ref2.draggable,\n draggables = _ref2.draggables,\n droppables = _ref2.droppables,\n previousImpact = _ref2.previousImpact,\n impact = _ref2.impact;\n var cleaned = clearUnusedPlaceholder({\n previousImpact: previousImpact,\n impact: impact,\n droppables: droppables\n });\n var isOver = whatIsDraggedOver(impact);\n\n if (!isOver) {\n return cleaned;\n }\n\n var droppable = droppables[isOver];\n\n if (isHomeOf(draggable, droppable)) {\n return cleaned;\n }\n\n if (droppable.subject.withPlaceholder) {\n return cleaned;\n }\n\n var patched = addPlaceholder(droppable, draggable, draggables);\n return patchDroppableMap(cleaned, patched);\n});\n\nvar update = (function (_ref) {\n var state = _ref.state,\n forcedClientSelection = _ref.clientSelection,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport,\n forcedImpact = _ref.impact,\n scrollJumpRequest = _ref.scrollJumpRequest;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var clientSelection = forcedClientSelection || state.current.client.selection;\n var offset = subtract(clientSelection, state.initial.client.selection);\n var client = {\n offset: offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n var page = {\n selection: add(client.selection, viewport.scroll.current),\n borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current),\n offset: add(client.offset, viewport.scroll.diff.value)\n };\n var current = {\n client: client,\n page: page\n };\n\n if (state.phase === 'COLLECTING') {\n return _extends({\n phase: 'COLLECTING'\n }, state, {\n dimensions: dimensions,\n viewport: viewport,\n current: current\n });\n }\n\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var newImpact = forcedImpact || getDragImpact({\n pageOffset: page.offset,\n draggable: draggable,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: state.impact,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n var withUpdatedPlaceholders = recomputePlaceholders({\n draggable: draggable,\n impact: newImpact,\n previousImpact: state.impact,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables\n });\n\n var result = _extends({}, state, {\n current: current,\n dimensions: {\n draggables: dimensions.draggables,\n droppables: withUpdatedPlaceholders\n },\n impact: newImpact,\n viewport: viewport,\n scrollJumpRequest: scrollJumpRequest || null,\n forceShouldAnimate: scrollJumpRequest ? false : null\n });\n\n return result;\n});\n\nfunction getDraggables$1(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nvar recompute = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n draggables = _ref.draggables,\n destination = _ref.destination,\n forceShouldAnimate = _ref.forceShouldAnimate;\n var last = impact.displaced;\n var afterDragging = getDraggables$1(last.all, draggables);\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate,\n last: last\n });\n return _extends({}, impact, {\n displaced: displaced\n });\n});\n\nvar getClientBorderBoxCenter = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n return getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n});\n\nvar refreshSnap = (function (_ref) {\n var state = _ref.state,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport;\n !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var needsVisibilityCheck = state.impact;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var draggable = draggables[state.critical.draggable.id];\n var isOver = whatIsDraggedOver(needsVisibilityCheck);\n !isOver ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0;\n var destination = droppables[isOver];\n var impact = recompute({\n impact: needsVisibilityCheck,\n viewport: viewport,\n destination: destination,\n draggables: draggables\n });\n var clientSelection = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n return update({\n impact: impact,\n clientSelection: clientSelection,\n state: state,\n dimensions: dimensions,\n viewport: viewport\n });\n});\n\nvar getHomeLocation = (function (descriptor) {\n return {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n };\n});\n\nvar getLiftEffect = (function (_ref) {\n var draggable = _ref.draggable,\n home = _ref.home,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy);\n var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables);\n var rawIndex = insideHome.indexOf(draggable);\n !(rawIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0;\n var afterDragging = insideHome.slice(rawIndex + 1);\n var effected = afterDragging.reduce(function (previous, item) {\n previous[item.descriptor.id] = true;\n return previous;\n }, {});\n var afterCritical = {\n inVirtualList: home.descriptor.mode === 'virtual',\n displacedBy: displacedBy,\n effected: effected\n };\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: home,\n displacedBy: displacedBy,\n last: null,\n viewport: viewport.frame,\n forceShouldAnimate: false\n });\n var impact = {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: getHomeLocation(draggable.descriptor)\n }\n };\n return {\n impact: impact,\n afterCritical: afterCritical\n };\n});\n\nvar patchDimensionMap = (function (dimensions, updated) {\n return {\n draggables: dimensions.draggables,\n droppables: patchDroppableMap(dimensions.droppables, updated)\n };\n});\n\nvar start = function start(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\nvar finish = function finish(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\n\nvar offsetDraggable = (function (_ref) {\n var draggable = _ref.draggable,\n offset$1 = _ref.offset,\n initialWindowScroll = _ref.initialWindowScroll;\n var client = offset(draggable.client, offset$1);\n var page = withScroll(client, initialWindowScroll);\n\n var moved = _extends({}, draggable, {\n placeholder: _extends({}, draggable.placeholder, {\n client: client\n }),\n client: client,\n page: page\n });\n\n return moved;\n});\n\nvar getFrame = (function (droppable) {\n var frame = droppable.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0;\n return frame;\n});\n\nvar adjustAdditionsForScrollChanges = (function (_ref) {\n var additions = _ref.additions,\n updatedDroppables = _ref.updatedDroppables,\n viewport = _ref.viewport;\n var windowScrollChange = viewport.scroll.diff.value;\n return additions.map(function (draggable) {\n var droppableId = draggable.descriptor.droppableId;\n var modified = updatedDroppables[droppableId];\n var frame = getFrame(modified);\n var droppableScrollChange = frame.scroll.diff.value;\n var totalChange = add(windowScrollChange, droppableScrollChange);\n var moved = offsetDraggable({\n draggable: draggable,\n offset: totalChange,\n initialWindowScroll: viewport.scroll.initial\n });\n return moved;\n });\n});\n\nvar publishWhileDraggingInVirtual = (function (_ref) {\n var state = _ref.state,\n published = _ref.published;\n start();\n var withScrollChange = published.modified.map(function (update) {\n var existing = state.dimensions.droppables[update.droppableId];\n var scrolled = scrollDroppable(existing, update.scroll);\n return scrolled;\n });\n\n var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange));\n\n var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({\n additions: published.additions,\n updatedDroppables: droppables,\n viewport: state.viewport\n }));\n\n var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions);\n\n published.removals.forEach(function (id) {\n delete draggables[id];\n });\n var dimensions = {\n droppables: droppables,\n draggables: draggables\n };\n var wasOverId = whatIsDraggedOver(state.impact);\n var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var home = dimensions.droppables[state.critical.droppable.id];\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: draggables,\n viewport: state.viewport\n }),\n onLiftImpact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact;\n var impact = getDragImpact({\n pageOffset: state.current.page.offset,\n draggable: dimensions.draggables[state.critical.draggable.id],\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: previousImpact,\n viewport: state.viewport,\n afterCritical: afterCritical\n });\n finish();\n\n var draggingState = _extends({\n phase: 'DRAGGING'\n }, state, {\n phase: 'DRAGGING',\n impact: impact,\n onLiftImpact: onLiftImpact,\n dimensions: dimensions,\n afterCritical: afterCritical,\n forceShouldAnimate: false\n });\n\n if (state.phase === 'COLLECTING') {\n return draggingState;\n }\n\n var dropPending = _extends({\n phase: 'DROP_PENDING'\n }, draggingState, {\n phase: 'DROP_PENDING',\n reason: state.reason,\n isWaiting: false\n });\n\n return dropPending;\n});\n\nvar isSnapping = function isSnapping(state) {\n return state.movementMode === 'SNAP';\n};\n\nvar postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) {\n var dimensions = patchDimensionMap(state.dimensions, updated);\n\n if (!isSnapping(state) || isEnabledChanging) {\n return update({\n state: state,\n dimensions: dimensions\n });\n }\n\n return refreshSnap({\n state: state,\n dimensions: dimensions\n });\n};\n\nfunction removeScrollJumpRequest(state) {\n if (state.isDragging && state.movementMode === 'SNAP') {\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n scrollJumpRequest: null\n });\n }\n\n return state;\n}\n\nvar idle = {\n phase: 'IDLE',\n completed: null,\n shouldFlush: false\n};\nvar reducer = (function (state, action) {\n if (state === void 0) {\n state = idle;\n }\n\n if (action.type === 'FLUSH') {\n return _extends({}, idle, {\n shouldFlush: true\n });\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0;\n var _action$payload = action.payload,\n critical = _action$payload.critical,\n clientSelection = _action$payload.clientSelection,\n viewport = _action$payload.viewport,\n dimensions = _action$payload.dimensions,\n movementMode = _action$payload.movementMode;\n var draggable = dimensions.draggables[critical.draggable.id];\n var home = dimensions.droppables[critical.droppable.id];\n var client = {\n selection: clientSelection,\n borderBoxCenter: draggable.client.borderBox.center,\n offset: origin\n };\n var initial = {\n client: client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial),\n offset: add(client.selection, viewport.scroll.diff.value)\n }\n };\n var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) {\n return !item.isFixedOnPage;\n });\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: dimensions.draggables,\n viewport: viewport\n }),\n impact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical: critical,\n movementMode: movementMode,\n dimensions: dimensions,\n initial: initial,\n current: initial,\n isWindowScrollAllowed: isWindowScrollAllowed,\n impact: impact,\n afterCritical: afterCritical,\n onLiftImpact: impact,\n viewport: viewport,\n scrollJumpRequest: null,\n forceShouldAnimate: null\n };\n return result;\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Collection cannot start from phase \" + state.phase) : invariant(false) : void 0;\n\n var _result = _extends({\n phase: 'COLLECTING'\n }, state, {\n phase: 'COLLECTING'\n });\n\n return _result;\n }\n\n if (action.type === 'PUBLISH_WHILE_DRAGGING') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected \" + action.type + \" received in phase \" + state.phase) : invariant(false) : void 0;\n return publishWhileDraggingInVirtual({\n state: state,\n published: action.payload\n });\n }\n\n if (action.type === 'MOVE') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _clientSelection = action.payload.client;\n\n if (isEqual(_clientSelection, state.current.client.selection)) {\n return state;\n }\n\n return update({\n state: state,\n clientSelection: _clientSelection,\n impact: isSnapping(state) ? state.impact : null\n });\n }\n\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n if (state.phase === 'DROP_PENDING') {\n return removeScrollJumpRequest(state);\n }\n\n if (state.phase === 'COLLECTING') {\n return removeScrollJumpRequest(state);\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload2 = action.payload,\n id = _action$payload2.id,\n newScroll = _action$payload2.newScroll;\n var target = state.dimensions.droppables[id];\n\n if (!target) {\n return state;\n }\n\n var scrolled = scrollDroppable(target, newScroll);\n return postDroppableChange(state, scrolled, false);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload3 = action.payload,\n _id = _action$payload3.id,\n isEnabled = _action$payload3.isEnabled;\n var _target = state.dimensions.droppables[_id];\n !_target ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id + \"] to toggle its enabled state\") : invariant(false) : void 0;\n !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isEnabled to \" + String(isEnabled) + \"\\n but it is already \" + String(_target.isEnabled)) : invariant(false) : void 0;\n\n var updated = _extends({}, _target, {\n isEnabled: isEnabled\n });\n\n return postDroppableChange(state, updated, true);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload4 = action.payload,\n _id2 = _action$payload4.id,\n isCombineEnabled = _action$payload4.isCombineEnabled;\n var _target2 = state.dimensions.droppables[_id2];\n !_target2 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id2 + \"] to toggle its isCombineEnabled state\") : invariant(false) : void 0;\n !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isCombineEnabled to \" + String(isCombineEnabled) + \"\\n but it is already \" + String(_target2.isCombineEnabled)) : invariant(false) : void 0;\n\n var _updated = _extends({}, _target2, {\n isCombineEnabled: isCombineEnabled\n });\n\n return postDroppableChange(state, _updated, true);\n }\n\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot move by window in phase \" + state.phase) : invariant(false) : void 0;\n !state.isWindowScrollAllowed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0;\n var _newScroll = action.payload.newScroll;\n\n if (isEqual(state.viewport.scroll.current, _newScroll)) {\n return removeScrollJumpRequest(state);\n }\n\n var _viewport = scrollViewport(state.viewport, _newScroll);\n\n if (isSnapping(state)) {\n return refreshSnap({\n state: state,\n viewport: _viewport\n });\n }\n\n return update({\n state: state,\n viewport: _viewport\n });\n }\n\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n if (!isMovementAllowed(state)) {\n return state;\n }\n\n var maxScroll = action.payload.maxScroll;\n\n if (isEqual(maxScroll, state.viewport.scroll.max)) {\n return state;\n }\n\n var withMaxScroll = _extends({}, state.viewport, {\n scroll: _extends({}, state.viewport.scroll, {\n max: maxScroll\n })\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n viewport: withMaxScroll\n });\n }\n\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" received while not in DRAGGING phase\") : invariant(false) : void 0;\n\n var _result2 = moveInDirection({\n state: state,\n type: action.type\n });\n\n if (!_result2) {\n return state;\n }\n\n return update({\n state: state,\n impact: _result2.impact,\n clientSelection: _result2.clientSelection,\n scrollJumpRequest: _result2.scrollJumpRequest\n });\n }\n\n if (action.type === 'DROP_PENDING') {\n var reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n\n var newState = _extends({\n phase: 'DROP_PENDING'\n }, state, {\n phase: 'DROP_PENDING',\n isWaiting: true,\n reason: reason\n });\n\n return newState;\n }\n\n if (action.type === 'DROP_ANIMATE') {\n var _action$payload5 = action.payload,\n completed = _action$payload5.completed,\n dropDuration = _action$payload5.dropDuration,\n newHomeClientOffset = _action$payload5.newHomeClientOffset;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot animate drop from phase \" + state.phase) : invariant(false) : void 0;\n var _result3 = {\n phase: 'DROP_ANIMATING',\n completed: completed,\n dropDuration: dropDuration,\n newHomeClientOffset: newHomeClientOffset,\n dimensions: state.dimensions\n };\n return _result3;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var _completed = action.payload.completed;\n return {\n phase: 'IDLE',\n completed: _completed,\n shouldFlush: false\n };\n }\n\n return state;\n});\n\nvar beforeInitialCapture = function beforeInitialCapture(args) {\n return {\n type: 'BEFORE_INITIAL_CAPTURE',\n payload: args\n };\n};\nvar lift = function lift(args) {\n return {\n type: 'LIFT',\n payload: args\n };\n};\nvar initialPublish = function initialPublish(args) {\n return {\n type: 'INITIAL_PUBLISH',\n payload: args\n };\n};\nvar publishWhileDragging = function publishWhileDragging(args) {\n return {\n type: 'PUBLISH_WHILE_DRAGGING',\n payload: args\n };\n};\nvar collectionStarting = function collectionStarting() {\n return {\n type: 'COLLECTION_STARTING',\n payload: null\n };\n};\nvar updateDroppableScroll = function updateDroppableScroll(args) {\n return {\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n };\n};\nvar updateDroppableIsEnabled = function updateDroppableIsEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n };\n};\nvar updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED',\n payload: args\n };\n};\nvar move = function move(args) {\n return {\n type: 'MOVE',\n payload: args\n };\n};\nvar moveByWindowScroll = function moveByWindowScroll(args) {\n return {\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n };\n};\nvar updateViewportMaxScroll = function updateViewportMaxScroll(args) {\n return {\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: args\n };\n};\nvar moveUp = function moveUp() {\n return {\n type: 'MOVE_UP',\n payload: null\n };\n};\nvar moveDown = function moveDown() {\n return {\n type: 'MOVE_DOWN',\n payload: null\n };\n};\nvar moveRight = function moveRight() {\n return {\n type: 'MOVE_RIGHT',\n payload: null\n };\n};\nvar moveLeft = function moveLeft() {\n return {\n type: 'MOVE_LEFT',\n payload: null\n };\n};\nvar flush = function flush() {\n return {\n type: 'FLUSH',\n payload: null\n };\n};\nvar animateDrop = function animateDrop(args) {\n return {\n type: 'DROP_ANIMATE',\n payload: args\n };\n};\nvar completeDrop = function completeDrop(args) {\n return {\n type: 'DROP_COMPLETE',\n payload: args\n };\n};\nvar drop = function drop(args) {\n return {\n type: 'DROP',\n payload: args\n };\n};\nvar dropPending = function dropPending(args) {\n return {\n type: 'DROP_PENDING',\n payload: args\n };\n};\nvar dropAnimationFinished = function dropAnimationFinished() {\n return {\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n };\n};\n\nfunction checkIndexes(insideDestination) {\n if (insideDestination.length <= 1) {\n return;\n }\n\n var indexes = insideDestination.map(function (d) {\n return d.descriptor.index;\n });\n var errors = {};\n\n for (var i = 1; i < indexes.length; i++) {\n var current = indexes[i];\n var previous = indexes[i - 1];\n\n if (current !== previous + 1) {\n errors[current] = true;\n }\n }\n\n if (!Object.keys(errors).length) {\n return;\n }\n\n var formatted = indexes.map(function (index) {\n var hasError = Boolean(errors[index]);\n return hasError ? \"[\\uD83D\\uDD25\" + index + \"]\" : \"\" + index;\n }).join(', ');\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected non-consecutive indexes.\\n\\n (This can cause unexpected bugs)\\n\\n \" + formatted + \"\\n \") : void 0;\n}\n\nfunction validateDimensions(critical, dimensions) {\n if (process.env.NODE_ENV !== 'production') {\n var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables);\n checkIndexes(insideDestination);\n }\n}\n\nvar lift$1 = (function (marshal) {\n return function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n\n var _action$payload = action.payload,\n id = _action$payload.id,\n clientSelection = _action$payload.clientSelection,\n movementMode = _action$payload.movementMode;\n var initial = getState();\n\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop({\n completed: initial.completed\n }));\n }\n\n !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0;\n dispatch(flush());\n dispatch(beforeInitialCapture({\n draggableId: id,\n movementMode: movementMode\n }));\n var scrollOptions = {\n shouldPublishImmediately: movementMode === 'SNAP'\n };\n var request = {\n draggableId: id,\n scrollOptions: scrollOptions\n };\n\n var _marshal$startPublish = marshal.startPublishing(request),\n critical = _marshal$startPublish.critical,\n dimensions = _marshal$startPublish.dimensions,\n viewport = _marshal$startPublish.viewport;\n\n validateDimensions(critical, dimensions);\n dispatch(initialPublish({\n critical: critical,\n dimensions: dimensions,\n clientSelection: clientSelection,\n movementMode: movementMode,\n viewport: viewport\n }));\n };\n };\n };\n});\n\nvar style = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.completed.result.reason);\n }\n\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar curves = {\n outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)',\n drop: 'cubic-bezier(.2,1,.1,1)'\n};\nvar combine = {\n opacity: {\n drop: 0,\n combining: 0.7\n },\n scale: {\n drop: 0.75\n }\n};\nvar timings = {\n outOfTheWay: 0.2,\n minDropTime: 0.33,\n maxDropTime: 0.55\n};\nvar outOfTheWayTiming = timings.outOfTheWay + \"s \" + curves.outOfTheWay;\nvar transitions = {\n fluid: \"opacity \" + outOfTheWayTiming,\n snap: \"transform \" + outOfTheWayTiming + \", opacity \" + outOfTheWayTiming,\n drop: function drop(duration) {\n var timing = duration + \"s \" + curves.drop;\n return \"transform \" + timing + \", opacity \" + timing;\n },\n outOfTheWay: \"transform \" + outOfTheWayTiming,\n placeholder: \"height \" + outOfTheWayTiming + \", width \" + outOfTheWayTiming + \", margin \" + outOfTheWayTiming\n};\n\nvar moveTo = function moveTo(offset) {\n return isEqual(offset, origin) ? null : \"translate(\" + offset.x + \"px, \" + offset.y + \"px)\";\n};\n\nvar transforms = {\n moveTo: moveTo,\n drop: function drop(offset, isCombining) {\n var translate = moveTo(offset);\n\n if (!translate) {\n return null;\n }\n\n if (!isCombining) {\n return translate;\n }\n\n return translate + \" scale(\" + combine.scale.drop + \")\";\n }\n};\n\nvar minDropTime = timings.minDropTime,\n maxDropTime = timings.maxDropTime;\nvar dropTimeRange = maxDropTime - minDropTime;\nvar maxDropTimeAtDistance = 1500;\nvar cancelDropModifier = 0.6;\nvar getDropDuration = (function (_ref) {\n var current = _ref.current,\n destination = _ref.destination,\n reason = _ref.reason;\n var distance$1 = distance(current, destination);\n\n if (distance$1 <= 0) {\n return minDropTime;\n }\n\n if (distance$1 >= maxDropTimeAtDistance) {\n return maxDropTime;\n }\n\n var percentage = distance$1 / maxDropTimeAtDistance;\n var duration = minDropTime + dropTimeRange * percentage;\n var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration;\n return Number(withDuration.toFixed(2));\n});\n\nvar getNewHomeClientOffset = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n dimensions = _ref.dimensions,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var droppableId = whatIsDraggedOver(impact);\n var destination = droppableId ? droppables[droppableId] : null;\n var home = droppables[draggable.descriptor.droppableId];\n var newClientCenter = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n afterCritical: afterCritical,\n droppable: destination || home,\n viewport: viewport\n });\n var offset = subtract(newClientCenter, draggable.client.borderBox.center);\n return offset;\n});\n\nvar getDropImpact = (function (_ref) {\n var draggables = _ref.draggables,\n reason = _ref.reason,\n lastImpact = _ref.lastImpact,\n home = _ref.home,\n viewport = _ref.viewport,\n onLiftImpact = _ref.onLiftImpact;\n\n if (!lastImpact.at || reason !== 'DROP') {\n var recomputedHomeImpact = recompute({\n draggables: draggables,\n impact: onLiftImpact,\n destination: home,\n viewport: viewport,\n forceShouldAnimate: true\n });\n return {\n impact: recomputedHomeImpact,\n didDropInsideDroppable: false\n };\n }\n\n if (lastImpact.at.type === 'REORDER') {\n return {\n impact: lastImpact,\n didDropInsideDroppable: true\n };\n }\n\n var withoutMovement = _extends({}, lastImpact, {\n displaced: emptyGroups\n });\n\n return {\n impact: withoutMovement,\n didDropInsideDroppable: true\n };\n});\n\nvar drop$1 = (function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n\n var state = getState();\n var reason = action.payload.reason;\n\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason: reason\n }));\n return;\n }\n\n if (state.phase === 'IDLE') {\n return;\n }\n\n var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot drop in phase: \" + state.phase) : invariant(false) : void 0;\n var critical = state.critical;\n var dimensions = state.dimensions;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n\n var _getDropImpact = getDropImpact({\n reason: reason,\n lastImpact: state.impact,\n afterCritical: state.afterCritical,\n onLiftImpact: state.onLiftImpact,\n home: state.dimensions.droppables[state.critical.droppable.id],\n viewport: state.viewport,\n draggables: state.dimensions.draggables\n }),\n impact = _getDropImpact.impact,\n didDropInsideDroppable = _getDropImpact.didDropInsideDroppable;\n\n var destination = didDropInsideDroppable ? tryGetDestination(impact) : null;\n var combine = didDropInsideDroppable ? tryGetCombine(impact) : null;\n var source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n var result = {\n draggableId: draggable.descriptor.id,\n type: draggable.descriptor.type,\n source: source,\n reason: reason,\n mode: state.movementMode,\n destination: destination,\n combine: combine\n };\n var newHomeClientOffset = getNewHomeClientOffset({\n impact: impact,\n draggable: draggable,\n dimensions: dimensions,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n var completed = {\n critical: state.critical,\n afterCritical: state.afterCritical,\n result: result,\n impact: impact\n };\n var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine);\n\n if (!isAnimationRequired) {\n dispatch(completeDrop({\n completed: completed\n }));\n return;\n }\n\n var dropDuration = getDropDuration({\n current: state.current.client.offset,\n destination: newHomeClientOffset,\n reason: reason\n });\n var args = {\n newHomeClientOffset: newHomeClientOffset,\n dropDuration: dropDuration,\n completed: completed\n };\n dispatch(animateDrop(args));\n };\n };\n});\n\nvar getWindowScroll = (function () {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n});\n\nfunction getWindowScrollBinding(update) {\n return {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn(event) {\n if (event.target !== window && event.target !== window.document) {\n return;\n }\n\n update();\n }\n };\n}\n\nfunction getScrollListener(_ref) {\n var onWindowScroll = _ref.onWindowScroll;\n\n function updateScroll() {\n onWindowScroll(getWindowScroll());\n }\n\n var scheduled = rafSchd(updateScroll);\n var binding = getWindowScrollBinding(scheduled);\n var unbind = noop;\n\n function isActive() {\n return unbind !== noop;\n }\n\n function start() {\n !!isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0;\n unbind = bindEvents(window, [binding]);\n }\n\n function stop() {\n !isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0;\n scheduled.cancel();\n unbind();\n unbind = noop;\n }\n\n return {\n start: start,\n stop: stop,\n isActive: isActive\n };\n}\n\nvar shouldEnd = function shouldEnd(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar scrollListener = (function (store) {\n var listener = getScrollListener({\n onWindowScroll: function onWindowScroll(newScroll) {\n store.dispatch(moveByWindowScroll({\n newScroll: newScroll\n }));\n }\n });\n return function (next) {\n return function (action) {\n if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') {\n listener.start();\n }\n\n if (listener.isActive() && shouldEnd(action)) {\n listener.stop();\n }\n\n next(action);\n };\n };\n});\n\nvar getExpiringAnnounce = (function (announce) {\n var wasCalled = false;\n var isExpired = false;\n var timeoutId = setTimeout(function () {\n isExpired = true;\n });\n\n var result = function result(message) {\n if (wasCalled) {\n process.env.NODE_ENV !== \"production\" ? warning('Announcement already made. Not making a second announcement') : void 0;\n return;\n }\n\n if (isExpired) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Announcements cannot be made asynchronously.\\n Default message has already been announced.\\n \") : void 0;\n return;\n }\n\n wasCalled = true;\n announce(message);\n clearTimeout(timeoutId);\n };\n\n result.wasCalled = function () {\n return wasCalled;\n };\n\n return result;\n});\n\nvar getAsyncMarshal = (function () {\n var entries = [];\n\n var execute = function execute(timerId) {\n var index = findIndex(entries, function (item) {\n return item.timerId === timerId;\n });\n !(index !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find timer') : invariant(false) : void 0;\n\n var _entries$splice = entries.splice(index, 1),\n entry = _entries$splice[0];\n\n entry.callback();\n };\n\n var add = function add(fn) {\n var timerId = setTimeout(function () {\n return execute(timerId);\n });\n var entry = {\n timerId: timerId,\n callback: fn\n };\n entries.push(entry);\n };\n\n var flush = function flush() {\n if (!entries.length) {\n return;\n }\n\n var shallow = [].concat(entries);\n entries.length = 0;\n shallow.forEach(function (entry) {\n clearTimeout(entry.timerId);\n entry.callback();\n });\n };\n\n return {\n add: add,\n flush: flush\n };\n});\n\nvar areLocationsEqual = function areLocationsEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.droppableId === second.droppableId && first.index === second.index;\n};\nvar isCombineEqual = function isCombineEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.draggableId === second.draggableId && first.droppableId === second.droppableId;\n};\nvar isCriticalEqual = function isCriticalEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nvar withTimings = function withTimings(key, fn) {\n start();\n fn();\n finish();\n};\n\nvar getDragStart = function getDragStart(critical, mode) {\n return {\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n },\n mode: mode\n };\n};\n\nvar execute = function execute(responder, data, announce, getDefaultMessage) {\n if (!responder) {\n announce(getDefaultMessage(data));\n return;\n }\n\n var willExpire = getExpiringAnnounce(announce);\n var provided = {\n announce: willExpire\n };\n responder(data, provided);\n\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n};\n\nvar getPublisher = (function (getResponders, announce) {\n var asyncMarshal = getAsyncMarshal();\n var dragging = null;\n\n var beforeCapture = function beforeCapture(draggableId, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeCapture', function () {\n var fn = getResponders().onBeforeCapture;\n\n if (fn) {\n var before = {\n draggableId: draggableId,\n mode: mode\n };\n fn(before);\n }\n });\n };\n\n var beforeStart = function beforeStart(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', function () {\n var fn = getResponders().onBeforeDragStart;\n\n if (fn) {\n fn(getDragStart(critical, mode));\n }\n });\n };\n\n var start = function start(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n var data = getDragStart(critical, mode);\n dragging = {\n mode: mode,\n lastCritical: critical,\n lastLocation: data.source,\n lastCombine: null\n };\n asyncMarshal.add(function () {\n withTimings('onDragStart', function () {\n return execute(getResponders().onDragStart, data, announce, preset.onDragStart);\n });\n });\n };\n\n var update = function update(critical, impact) {\n var location = tryGetDestination(impact);\n var combine = tryGetCombine(impact);\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical);\n\n if (hasCriticalChanged) {\n dragging.lastCritical = critical;\n }\n\n var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location);\n\n if (hasLocationChanged) {\n dragging.lastLocation = location;\n }\n\n var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine);\n\n if (hasGroupingChanged) {\n dragging.lastCombine = combine;\n }\n\n if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) {\n return;\n }\n\n var data = _extends({}, getDragStart(critical, dragging.mode), {\n combine: combine,\n destination: location\n });\n\n asyncMarshal.add(function () {\n withTimings('onDragUpdate', function () {\n return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate);\n });\n });\n };\n\n var flush = function flush() {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0;\n asyncMarshal.flush();\n };\n\n var drop = function drop(result) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n dragging = null;\n withTimings('onDragEnd', function () {\n return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd);\n });\n };\n\n var abort = function abort() {\n if (!dragging) {\n return;\n }\n\n var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), {\n combine: null,\n destination: null,\n reason: 'CANCEL'\n });\n\n drop(result);\n };\n\n return {\n beforeCapture: beforeCapture,\n beforeStart: beforeStart,\n start: start,\n update: update,\n flush: flush,\n drop: drop,\n abort: abort\n };\n});\n\nvar responders = (function (getResponders, announce) {\n var publisher = getPublisher(getResponders, announce);\n return function (store) {\n return function (next) {\n return function (action) {\n if (action.type === 'BEFORE_INITIAL_CAPTURE') {\n publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n var critical = action.payload.critical;\n publisher.beforeStart(critical, action.payload.movementMode);\n next(action);\n publisher.start(critical, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var result = action.payload.completed.result;\n publisher.flush();\n next(action);\n publisher.drop(result);\n return;\n }\n\n next(action);\n\n if (action.type === 'FLUSH') {\n publisher.abort();\n return;\n }\n\n var state = store.getState();\n\n if (state.phase === 'DRAGGING') {\n publisher.update(state.critical, state.impact);\n }\n };\n };\n };\n});\n\nvar dropAnimationFinish = (function (store) {\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n\n var state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop({\n completed: state.completed\n }));\n };\n };\n});\n\nvar dropAnimationFlushOnScroll = (function (store) {\n var unbind = null;\n var frameId = null;\n\n function clear() {\n if (frameId) {\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n\n if (unbind) {\n unbind();\n unbind = null;\n }\n }\n\n return function (next) {\n return function (action) {\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') {\n clear();\n }\n\n next(action);\n\n if (action.type !== 'DROP_ANIMATE') {\n return;\n }\n\n var binding = {\n eventName: 'scroll',\n options: {\n capture: true,\n passive: false,\n once: true\n },\n fn: function flushDropAnimation() {\n var state = store.getState();\n\n if (state.phase === 'DROP_ANIMATING') {\n store.dispatch(dropAnimationFinished());\n }\n }\n };\n frameId = requestAnimationFrame(function () {\n frameId = null;\n unbind = bindEvents(window, [binding]);\n });\n };\n };\n});\n\nvar dimensionMarshalStopper = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') {\n marshal.stopPublishing();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar focus = (function (marshal) {\n var isWatching = false;\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n isWatching = true;\n marshal.tryRecordFocus(action.payload.critical.draggable.id);\n next(action);\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n next(action);\n\n if (!isWatching) {\n return;\n }\n\n if (action.type === 'FLUSH') {\n isWatching = false;\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n isWatching = false;\n var result = action.payload.completed.result;\n\n if (result.combine) {\n marshal.tryShiftRecord(result.draggableId, result.combine.draggableId);\n }\n\n marshal.tryRestoreFocusRecorded();\n }\n };\n };\n };\n});\n\nvar shouldStop = function shouldStop(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar autoScroll = (function (autoScroller) {\n return function (store) {\n return function (next) {\n return function (action) {\n if (shouldStop(action)) {\n autoScroller.stop();\n next(action);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n next(action);\n var state = store.getState();\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0;\n autoScroller.start(state);\n return;\n }\n\n next(action);\n autoScroller.scroll(store.getState());\n };\n };\n };\n});\n\nvar pendingDrop = (function (store) {\n return function (next) {\n return function (action) {\n next(action);\n\n if (action.type !== 'PUBLISH_WHILE_DRAGGING') {\n return;\n }\n\n var postActionState = store.getState();\n\n if (postActionState.phase !== 'DROP_PENDING') {\n return;\n }\n\n if (postActionState.isWaiting) {\n return;\n }\n\n store.dispatch(drop({\n reason: postActionState.reason\n }));\n };\n };\n});\n\nvar composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n name: 'react-beautiful-dnd'\n}) : compose;\nvar createStore = (function (_ref) {\n var dimensionMarshal = _ref.dimensionMarshal,\n focusMarshal = _ref.focusMarshal,\n styleMarshal = _ref.styleMarshal,\n getResponders = _ref.getResponders,\n announce = _ref.announce,\n autoScroller = _ref.autoScroller;\n return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce))));\n});\n\nvar clean$1 = function clean() {\n return {\n additions: {},\n removals: {},\n modified: {}\n };\n};\nfunction createPublisher(_ref) {\n var registry = _ref.registry,\n callbacks = _ref.callbacks;\n var staging = clean$1();\n var frameId = null;\n\n var collect = function collect() {\n if (frameId) {\n return;\n }\n\n callbacks.collectionStarting();\n frameId = requestAnimationFrame(function () {\n frameId = null;\n start();\n var _staging = staging,\n additions = _staging.additions,\n removals = _staging.removals,\n modified = _staging.modified;\n var added = Object.keys(additions).map(function (id) {\n return registry.draggable.getById(id).getDimension(origin);\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n var updated = Object.keys(modified).map(function (id) {\n var entry = registry.droppable.getById(id);\n var scroll = entry.callbacks.getScrollWhileDragging();\n return {\n droppableId: id,\n scroll: scroll\n };\n });\n var result = {\n additions: added,\n removals: Object.keys(removals),\n modified: updated\n };\n staging = clean$1();\n finish();\n callbacks.publish(result);\n });\n };\n\n var add = function add(entry) {\n var id = entry.descriptor.id;\n staging.additions[id] = entry;\n staging.modified[entry.descriptor.droppableId] = true;\n\n if (staging.removals[id]) {\n delete staging.removals[id];\n }\n\n collect();\n };\n\n var remove = function remove(entry) {\n var descriptor = entry.descriptor;\n staging.removals[descriptor.id] = true;\n staging.modified[descriptor.droppableId] = true;\n\n if (staging.additions[descriptor.id]) {\n delete staging.additions[descriptor.id];\n }\n\n collect();\n };\n\n var stop = function stop() {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n staging = clean$1();\n };\n\n return {\n add: add,\n remove: remove,\n stop: stop\n };\n}\n\nvar getMaxScroll = (function (_ref) {\n var scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n height = _ref.height,\n width = _ref.width;\n var maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n var adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n});\n\nvar getDocumentElement = (function () {\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0;\n return doc;\n});\n\nvar getMaxWindowScroll = (function () {\n var doc = getDocumentElement();\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: doc.clientWidth,\n height: doc.clientHeight\n });\n return maxScroll;\n});\n\nvar getViewport = (function () {\n var scroll = getWindowScroll();\n var maxScroll = getMaxWindowScroll();\n var top = scroll.y;\n var left = scroll.x;\n var doc = getDocumentElement();\n var width = doc.clientWidth;\n var height = doc.clientHeight;\n var right = left + width;\n var bottom = top + height;\n var frame = getRect({\n top: top,\n left: left,\n right: right,\n bottom: bottom\n });\n var viewport = {\n frame: frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n});\n\nvar getInitialPublish = (function (_ref) {\n var critical = _ref.critical,\n scrollOptions = _ref.scrollOptions,\n registry = _ref.registry;\n start();\n var viewport = getViewport();\n var windowScroll = viewport.scroll.current;\n var home = critical.droppable;\n var droppables = registry.droppable.getAllByType(home.type).map(function (entry) {\n return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions);\n });\n var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) {\n return entry.getDimension(windowScroll);\n });\n var dimensions = {\n draggables: toDraggableMap(draggables),\n droppables: toDroppableMap(droppables)\n };\n finish();\n var result = {\n dimensions: dimensions,\n critical: critical,\n viewport: viewport\n };\n return result;\n});\n\nfunction shouldPublishUpdate(registry, dragging, entry) {\n if (entry.descriptor.id === dragging.id) {\n return false;\n }\n\n if (entry.descriptor.type !== dragging.type) {\n return false;\n }\n\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n\n if (home.descriptor.mode !== 'virtual') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n You are attempting to add or remove a Draggable [id: \" + entry.descriptor.id + \"]\\n while a drag is occurring. This is only supported for virtual lists.\\n\\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\\n \") : void 0;\n return false;\n }\n\n return true;\n}\n\nvar createDimensionMarshal = (function (registry, callbacks) {\n var collection = null;\n var publisher = createPublisher({\n callbacks: {\n publish: callbacks.publishWhileDragging,\n collectionStarting: callbacks.collectionStarting\n },\n registry: registry\n });\n\n var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) {\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update is enabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsEnabled({\n id: id,\n isEnabled: isEnabled\n });\n };\n\n var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update isCombineEnabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableIsCombineEnabled({\n id: id,\n isCombineEnabled: isCombineEnabled\n });\n };\n\n var updateDroppableScroll = function updateDroppableScroll(id, newScroll) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableScroll({\n id: id,\n newScroll: newScroll\n });\n };\n\n var scrollDroppable = function scrollDroppable(id, change) {\n if (!collection) {\n return;\n }\n\n registry.droppable.getById(id).callbacks.scroll(change);\n };\n\n var stopPublishing = function stopPublishing() {\n if (!collection) {\n return;\n }\n\n publisher.stop();\n var home = collection.critical.droppable;\n registry.droppable.getAllByType(home.type).forEach(function (entry) {\n return entry.callbacks.dragStopped();\n });\n collection.unsubscribe();\n collection = null;\n };\n\n var subscriber = function subscriber(event) {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0;\n var dragging = collection.critical.draggable;\n\n if (event.type === 'ADDITION') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.add(event.value);\n }\n }\n\n if (event.type === 'REMOVAL') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.remove(event.value);\n }\n }\n };\n\n var startPublishing = function startPublishing(request) {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n var entry = registry.draggable.getById(request.draggableId);\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n var critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n var unsubscribe = registry.subscribe(subscriber);\n collection = {\n critical: critical,\n unsubscribe: unsubscribe\n };\n return getInitialPublish({\n critical: critical,\n registry: registry,\n scrollOptions: request.scrollOptions\n });\n };\n\n var marshal = {\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n scrollDroppable: scrollDroppable,\n updateDroppableScroll: updateDroppableScroll,\n startPublishing: startPublishing,\n stopPublishing: stopPublishing\n };\n return marshal;\n});\n\nvar canStartDrag = (function (state, id) {\n if (state.phase === 'IDLE') {\n return true;\n }\n\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n\n if (state.completed.result.draggableId === id) {\n return false;\n }\n\n return state.completed.result.reason === 'DROP';\n});\n\nvar scrollWindow = (function (change) {\n window.scrollBy(change.x, change.y);\n});\n\nvar getScrollableDroppables = memoizeOne(function (droppables) {\n return toDroppableList(droppables).filter(function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n if (!droppable.frame) {\n return false;\n }\n\n return true;\n });\n});\n\nvar getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) {\n var maybe = find(getScrollableDroppables(droppables), function (droppable) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.frame.pageMarginBox)(target);\n });\n return maybe;\n};\n\nvar getBestScrollableDroppable = (function (_ref) {\n var center = _ref.center,\n destination = _ref.destination,\n droppables = _ref.droppables;\n\n if (destination) {\n var _dimension = droppables[destination];\n\n if (!_dimension.frame) {\n return null;\n }\n\n return _dimension;\n }\n\n var dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n});\n\nvar config = {\n startFromPercentage: 0.25,\n maxScrollAtPercentage: 0.05,\n maxPixelScroll: 28,\n ease: function ease(percentage) {\n return Math.pow(percentage, 2);\n },\n durationDampening: {\n stopDampeningAt: 1200,\n accelerateAt: 360\n }\n};\n\nvar getDistanceThresholds = (function (container, axis) {\n var startScrollingFrom = container[axis.size] * config.startFromPercentage;\n var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage;\n var thresholds = {\n startScrollingFrom: startScrollingFrom,\n maxScrollValueAt: maxScrollValueAt\n };\n return thresholds;\n});\n\nvar getPercentage = (function (_ref) {\n var startOfRange = _ref.startOfRange,\n endOfRange = _ref.endOfRange,\n current = _ref.current;\n var range = endOfRange - startOfRange;\n\n if (range === 0) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected distance range of 0 in the fluid auto scroller\\n This is unexpected and would cause a divide by 0 issue.\\n Not allowing an auto scroll\\n \") : void 0;\n return 0;\n }\n\n var currentInRange = current - startOfRange;\n var percentage = currentInRange / range;\n return percentage;\n});\n\nvar minScroll = 1;\n\nvar getValueFromDistance = (function (distanceToEdge, thresholds) {\n if (distanceToEdge > thresholds.startScrollingFrom) {\n return 0;\n }\n\n if (distanceToEdge <= thresholds.maxScrollValueAt) {\n return config.maxPixelScroll;\n }\n\n if (distanceToEdge === thresholds.startScrollingFrom) {\n return minScroll;\n }\n\n var percentageFromMaxScrollValueAt = getPercentage({\n startOfRange: thresholds.maxScrollValueAt,\n endOfRange: thresholds.startScrollingFrom,\n current: distanceToEdge\n });\n var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt;\n var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom);\n return Math.ceil(scroll);\n});\n\nvar accelerateAt = config.durationDampening.accelerateAt;\nvar stopAt = config.durationDampening.stopDampeningAt;\nvar dampenValueByTime = (function (proposedScroll, dragStartTime) {\n var startOfRange = dragStartTime;\n var endOfRange = stopAt;\n var now = Date.now();\n var runTime = now - startOfRange;\n\n if (runTime >= stopAt) {\n return proposedScroll;\n }\n\n if (runTime < accelerateAt) {\n return minScroll;\n }\n\n var betweenAccelerateAtAndStopAtPercentage = getPercentage({\n startOfRange: accelerateAt,\n endOfRange: endOfRange,\n current: runTime\n });\n var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage);\n return Math.ceil(scroll);\n});\n\nvar getValue = (function (_ref) {\n var distanceToEdge = _ref.distanceToEdge,\n thresholds = _ref.thresholds,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getValueFromDistance(distanceToEdge, thresholds);\n\n if (scroll === 0) {\n return 0;\n }\n\n if (!shouldUseTimeDampening) {\n return scroll;\n }\n\n return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll);\n});\n\nvar getScrollOnAxis = (function (_ref) {\n var container = _ref.container,\n distanceToEdges = _ref.distanceToEdges,\n dragStartTime = _ref.dragStartTime,\n axis = _ref.axis,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var thresholds = getDistanceThresholds(container, axis);\n var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start];\n\n if (isCloserToEnd) {\n return getValue({\n distanceToEdge: distanceToEdges[axis.end],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n }\n\n return -1 * getValue({\n distanceToEdge: distanceToEdges[axis.start],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n});\n\nvar adjustForSizeLimits = (function (_ref) {\n var container = _ref.container,\n subject = _ref.subject,\n proposedScroll = _ref.proposedScroll;\n var isTooBigVertically = subject.height > container.height;\n var isTooBigHorizontally = subject.width > container.width;\n\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n});\n\nvar clean$2 = apply(function (value) {\n return value === 0 ? 0 : value;\n});\nvar getScroll = (function (_ref) {\n var dragStartTime = _ref.dragStartTime,\n container = _ref.container,\n subject = _ref.subject,\n center = _ref.center,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var distanceToEdges = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n var y = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: vertical,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var x = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: horizontal,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var required = clean$2({\n x: x,\n y: y\n });\n\n if (isEqual(required, origin)) {\n return null;\n }\n\n var limited = adjustForSizeLimits({\n container: container,\n subject: subject,\n proposedScroll: required\n });\n\n if (!limited) {\n return null;\n }\n\n return isEqual(limited, origin) ? null : limited;\n});\n\nvar smallestSigned = apply(function (value) {\n if (value === 0) {\n return 0;\n }\n\n return value > 0 ? 1 : -1;\n});\nvar getOverlap = function () {\n var getRemainder = function getRemainder(target, max) {\n if (target < 0) {\n return target;\n }\n\n if (target > max) {\n return target - max;\n }\n\n return 0;\n };\n\n return function (_ref) {\n var current = _ref.current,\n max = _ref.max,\n change = _ref.change;\n var targetScroll = add(current, change);\n var overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n\n if (isEqual(overlap, origin)) {\n return null;\n }\n\n return overlap;\n };\n}();\nvar canPartiallyScroll = function canPartiallyScroll(_ref2) {\n var rawMax = _ref2.max,\n current = _ref2.current,\n change = _ref2.change;\n var max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n var smallestChange = smallestSigned(change);\n var overlap = getOverlap({\n max: max,\n current: current,\n change: smallestChange\n });\n\n if (!overlap) {\n return true;\n }\n\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n\n return false;\n};\nvar canScrollWindow = function canScrollWindow(viewport, change) {\n return canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change: change\n });\n};\nvar getWindowOverlap = function getWindowOverlap(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n\n var max = viewport.scroll.max;\n var current = viewport.scroll.current;\n return getOverlap({\n current: current,\n max: max,\n change: change\n });\n};\nvar canScrollDroppable = function canScrollDroppable(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return false;\n }\n\n return canPartiallyScroll({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\nvar getDroppableOverlap = function getDroppableOverlap(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n\n return getOverlap({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\n\nvar getWindowScrollChange = (function (_ref) {\n var viewport = _ref.viewport,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: viewport.frame,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollWindow(viewport, scroll) ? scroll : null;\n});\n\nvar getDroppableScrollChange = (function (_ref) {\n var droppable = _ref.droppable,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: frame.pageMarginBox,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollDroppable(droppable, scroll) ? scroll : null;\n});\n\nvar scroll$1 = (function (_ref) {\n var state = _ref.state,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening,\n scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var center = state.current.page.borderBoxCenter;\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var subject = draggable.page.marginBox;\n\n if (state.isWindowScrollAllowed) {\n var viewport = state.viewport;\n\n var _change = getWindowScrollChange({\n dragStartTime: dragStartTime,\n viewport: viewport,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (_change) {\n scrollWindow(_change);\n return;\n }\n }\n\n var droppable = getBestScrollableDroppable({\n center: center,\n destination: whatIsDraggedOver(state.impact),\n droppables: state.dimensions.droppables\n });\n\n if (!droppable) {\n return;\n }\n\n var change = getDroppableScrollChange({\n dragStartTime: dragStartTime,\n droppable: droppable,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (change) {\n scrollDroppable(droppable.descriptor.id, change);\n }\n});\n\nvar createFluidScroller = (function (_ref) {\n var scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var scheduleWindowScroll = rafSchd(scrollWindow);\n var scheduleDroppableScroll = rafSchd(scrollDroppable);\n var dragging = null;\n\n var tryScroll = function tryScroll(state) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0;\n var _dragging = dragging,\n shouldUseTimeDampening = _dragging.shouldUseTimeDampening,\n dragStartTime = _dragging.dragStartTime;\n scroll$1({\n state: state,\n scrollWindow: scheduleWindowScroll,\n scrollDroppable: scheduleDroppableScroll,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n };\n\n var start$1 = function start$1(state) {\n start();\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0;\n var dragStartTime = Date.now();\n var wasScrollNeeded = false;\n\n var fakeScrollCallback = function fakeScrollCallback() {\n wasScrollNeeded = true;\n };\n\n scroll$1({\n state: state,\n dragStartTime: 0,\n shouldUseTimeDampening: false,\n scrollWindow: fakeScrollCallback,\n scrollDroppable: fakeScrollCallback\n });\n dragging = {\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: wasScrollNeeded\n };\n finish();\n\n if (wasScrollNeeded) {\n tryScroll(state);\n }\n };\n\n var stop = function stop() {\n if (!dragging) {\n return;\n }\n\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n dragging = null;\n };\n\n return {\n start: start$1,\n stop: stop,\n scroll: tryScroll\n };\n});\n\nvar createJumpScroller = (function (_ref) {\n var move = _ref.move,\n scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow;\n\n var moveByOffset = function moveByOffset(state, offset) {\n var client = add(state.current.client.selection, offset);\n move({\n client: client\n });\n };\n\n var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n\n var overlap = getDroppableOverlap(droppable, change);\n\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n\n var whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n var remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n\n var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) {\n if (!isWindowScrollAllowed) {\n return change;\n }\n\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n\n var overlap = getWindowOverlap(viewport, change);\n\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n\n var whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n var remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n\n var jumpScroller = function jumpScroller(state) {\n var request = state.scrollJumpRequest;\n\n if (!request) {\n return;\n }\n\n var destination = whatIsDraggedOver(state.impact);\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request);\n\n if (!droppableRemainder) {\n return;\n }\n\n var viewport = state.viewport;\n var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder);\n\n if (!windowRemainder) {\n return;\n }\n\n moveByOffset(state, windowRemainder);\n };\n\n return jumpScroller;\n});\n\nvar createAutoScroller = (function (_ref) {\n var scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow,\n move = _ref.move;\n var fluidScroller = createFluidScroller({\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var jumpScroll = createJumpScroller({\n move: move,\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n\n var scroll = function scroll(state) {\n if (state.phase !== 'DRAGGING') {\n return;\n }\n\n if (state.movementMode === 'FLUID') {\n fluidScroller.scroll(state);\n return;\n }\n\n if (!state.scrollJumpRequest) {\n return;\n }\n\n jumpScroll(state);\n };\n\n var scroller = {\n scroll: scroll,\n start: fluidScroller.start,\n stop: fluidScroller.stop\n };\n return scroller;\n});\n\nvar prefix$1 = 'data-rbd';\nvar dragHandle = function () {\n var base = prefix$1 + \"-drag-handle\";\n return {\n base: base,\n draggableId: base + \"-draggable-id\",\n contextId: base + \"-context-id\"\n };\n}();\nvar draggable = function () {\n var base = prefix$1 + \"-draggable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\nvar droppable = function () {\n var base = prefix$1 + \"-droppable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\nvar scrollContainer = {\n contextId: prefix$1 + \"-scroll-container-context-id\"\n};\n\nvar makeGetSelector = function makeGetSelector(context) {\n return function (attribute) {\n return \"[\" + attribute + \"=\\\"\" + context + \"\\\"]\";\n };\n};\n\nvar getStyles = function getStyles(rules, property) {\n return rules.map(function (rule) {\n var value = rule.styles[property];\n\n if (!value) {\n return '';\n }\n\n return rule.selector + \" { \" + value + \" }\";\n }).join(' ');\n};\n\nvar noPointerEvents = 'pointer-events: none;';\nvar getStyles$1 = (function (contextId) {\n var getSelector = makeGetSelector(contextId);\n\n var dragHandle$1 = function () {\n var grabCursor = \"\\n cursor: -webkit-grab;\\n cursor: grab;\\n \";\n return {\n selector: getSelector(dragHandle.contextId),\n styles: {\n always: \"\\n -webkit-touch-callout: none;\\n -webkit-tap-highlight-color: rgba(0,0,0,0);\\n touch-action: manipulation;\\n \",\n resting: grabCursor,\n dragging: noPointerEvents,\n dropAnimating: grabCursor\n }\n };\n }();\n\n var draggable$1 = function () {\n var transition = \"\\n transition: \" + transitions.outOfTheWay + \";\\n \";\n return {\n selector: getSelector(draggable.contextId),\n styles: {\n dragging: transition,\n dropAnimating: transition,\n userCancel: transition\n }\n };\n }();\n\n var droppable$1 = {\n selector: getSelector(droppable.contextId),\n styles: {\n always: \"overflow-anchor: none;\"\n }\n };\n var body = {\n selector: 'body',\n styles: {\n dragging: \"\\n cursor: grabbing;\\n cursor: -webkit-grabbing;\\n user-select: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n overflow-anchor: none;\\n \"\n }\n };\n var rules = [draggable$1, dragHandle$1, droppable$1, body];\n return {\n always: getStyles(rules, 'always'),\n resting: getStyles(rules, 'resting'),\n dragging: getStyles(rules, 'dragging'),\n dropAnimating: getStyles(rules, 'dropAnimating'),\n userCancel: getStyles(rules, 'userCancel')\n };\n});\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar getHead = function getHead() {\n var head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\n\nvar createStyleEl = function createStyleEl(nonce) {\n var el = document.createElement('style');\n\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n el.type = 'text/css';\n return el;\n};\n\nfunction useStyleMarshal(contextId, nonce) {\n var styles = useMemo(function () {\n return getStyles$1(contextId);\n }, [contextId]);\n var alwaysRef = useRef(null);\n var dynamicRef = useRef(null);\n var setDynamicStyle = useCallback(memoizeOne(function (proposed) {\n var el = dynamicRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }), []);\n var setAlwaysStyle = useCallback(function (proposed) {\n var el = alwaysRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }, []);\n useIsomorphicLayoutEffect(function () {\n !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0;\n var always = createStyleEl(nonce);\n var dynamic = createStyleEl(nonce);\n alwaysRef.current = always;\n dynamicRef.current = dynamic;\n always.setAttribute(prefix$1 + \"-always\", contextId);\n dynamic.setAttribute(prefix$1 + \"-dynamic\", contextId);\n getHead().appendChild(always);\n getHead().appendChild(dynamic);\n setAlwaysStyle(styles.always);\n setDynamicStyle(styles.resting);\n return function () {\n var remove = function remove(ref) {\n var current = ref.current;\n !current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0;\n getHead().removeChild(current);\n ref.current = null;\n };\n\n remove(alwaysRef);\n remove(dynamicRef);\n };\n }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]);\n var dragging = useCallback(function () {\n return setDynamicStyle(styles.dragging);\n }, [setDynamicStyle, styles.dragging]);\n var dropping = useCallback(function (reason) {\n if (reason === 'DROP') {\n setDynamicStyle(styles.dropAnimating);\n return;\n }\n\n setDynamicStyle(styles.userCancel);\n }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]);\n var resting = useCallback(function () {\n if (!dynamicRef.current) {\n return;\n }\n\n setDynamicStyle(styles.resting);\n }, [setDynamicStyle, styles.resting]);\n var marshal = useMemo(function () {\n return {\n dragging: dragging,\n dropping: dropping,\n resting: resting\n };\n }, [dragging, dropping, resting]);\n return marshal;\n}\n\nvar getWindowFromEl = (function (el) {\n return el && el.ownerDocument ? el.ownerDocument.defaultView : window;\n});\n\nfunction isHtmlElement(el) {\n return el instanceof getWindowFromEl(el).HTMLElement;\n}\n\nfunction findDragHandle(contextId, draggableId) {\n var selector = \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n\n if (!possible.length) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find any drag handles in the context \\\"\" + contextId + \"\\\"\") : void 0;\n return null;\n }\n\n var handle = find(possible, function (el) {\n return el.getAttribute(dragHandle.draggableId) === draggableId;\n });\n\n if (!handle) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find drag handle with id \\\"\" + draggableId + \"\\\" as no handle with a matching id was found\") : void 0;\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle needs to be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction useFocusMarshal(contextId) {\n var entriesRef = useRef({});\n var recordRef = useRef(null);\n var restoreFocusFrameRef = useRef(null);\n var isMountedRef = useRef(false);\n var register = useCallback(function register(id, focus) {\n var entry = {\n id: id,\n focus: focus\n };\n entriesRef.current[id] = entry;\n return function unregister() {\n var entries = entriesRef.current;\n var current = entries[id];\n\n if (current !== entry) {\n delete entries[id];\n }\n };\n }, []);\n var tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) {\n var handle = findDragHandle(contextId, tryGiveFocusTo);\n\n if (handle && handle !== document.activeElement) {\n handle.focus();\n }\n }, [contextId]);\n var tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) {\n if (recordRef.current === previous) {\n recordRef.current = redirectTo;\n }\n }, []);\n var tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() {\n if (restoreFocusFrameRef.current) {\n return;\n }\n\n if (!isMountedRef.current) {\n return;\n }\n\n restoreFocusFrameRef.current = requestAnimationFrame(function () {\n restoreFocusFrameRef.current = null;\n var record = recordRef.current;\n\n if (record) {\n tryGiveFocus(record);\n }\n });\n }, [tryGiveFocus]);\n var tryRecordFocus = useCallback(function tryRecordFocus(id) {\n recordRef.current = null;\n var focused = document.activeElement;\n\n if (!focused) {\n return;\n }\n\n if (focused.getAttribute(dragHandle.draggableId) !== id) {\n return;\n }\n\n recordRef.current = id;\n }, []);\n useIsomorphicLayoutEffect(function () {\n isMountedRef.current = true;\n return function clearFrameOnUnmount() {\n isMountedRef.current = false;\n var frameId = restoreFocusFrameRef.current;\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n };\n }, []);\n var marshal = useMemo(function () {\n return {\n register: register,\n tryRecordFocus: tryRecordFocus,\n tryRestoreFocusRecorded: tryRestoreFocusRecorded,\n tryShiftRecord: tryShiftRecord\n };\n }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]);\n return marshal;\n}\n\nfunction createRegistry() {\n var entries = {\n draggables: {},\n droppables: {}\n };\n var subscribers = [];\n\n function subscribe(cb) {\n subscribers.push(cb);\n return function unsubscribe() {\n var index = subscribers.indexOf(cb);\n\n if (index === -1) {\n return;\n }\n\n subscribers.splice(index, 1);\n };\n }\n\n function notify(event) {\n if (subscribers.length) {\n subscribers.forEach(function (cb) {\n return cb(event);\n });\n }\n }\n\n function findDraggableById(id) {\n return entries.draggables[id] || null;\n }\n\n function getDraggableById(id) {\n var entry = findDraggableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find draggable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var draggableAPI = {\n register: function register(entry) {\n entries.draggables[entry.descriptor.id] = entry;\n notify({\n type: 'ADDITION',\n value: entry\n });\n },\n update: function update(entry, last) {\n var current = entries.draggables[last.descriptor.id];\n\n if (!current) {\n return;\n }\n\n if (current.uniqueId !== entry.uniqueId) {\n return;\n }\n\n delete entries.draggables[last.descriptor.id];\n entries.draggables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var draggableId = entry.descriptor.id;\n var current = findDraggableById(draggableId);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.draggables[draggableId];\n notify({\n type: 'REMOVAL',\n value: entry\n });\n },\n getById: getDraggableById,\n findById: findDraggableById,\n exists: function exists(id) {\n return Boolean(findDraggableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.draggables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function findDroppableById(id) {\n return entries.droppables[id] || null;\n }\n\n function getDroppableById(id) {\n var entry = findDroppableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find droppable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var droppableAPI = {\n register: function register(entry) {\n entries.droppables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var current = findDroppableById(entry.descriptor.id);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.droppables[entry.descriptor.id];\n },\n getById: getDroppableById,\n findById: findDroppableById,\n exists: function exists(id) {\n return Boolean(findDroppableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.droppables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function clean() {\n entries.draggables = {};\n entries.droppables = {};\n subscribers.length = 0;\n }\n\n return {\n draggable: draggableAPI,\n droppable: droppableAPI,\n subscribe: subscribe,\n clean: clean\n };\n}\n\nfunction useRegistry() {\n var registry = useMemo(createRegistry, []);\n useEffect(function () {\n return function unmount() {\n requestAnimationFrame(registry.clean);\n };\n }, [registry]);\n return registry;\n}\n\nvar StoreContext = React.createContext(null);\n\nvar getBodyElement = (function () {\n var body = document.body;\n !body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0;\n return body;\n});\n\nvar visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\n\nvar getId = function getId(contextId) {\n return \"rbd-announcement-\" + contextId;\n};\nfunction useAnnouncer(contextId) {\n var id = useMemo(function () {\n return getId(contextId);\n }, [contextId]);\n var ref = useRef(null);\n useEffect(function setup() {\n var el = document.createElement('div');\n ref.current = el;\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('aria-atomic', 'true');\n\n _extends(el.style, visuallyHidden);\n\n getBodyElement().appendChild(el);\n return function cleanup() {\n setTimeout(function remove() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n\n if (el === ref.current) {\n ref.current = null;\n }\n });\n };\n }, [id]);\n var announce = useCallback(function (message) {\n var el = ref.current;\n\n if (el) {\n el.textContent = message;\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n A screen reader message was trying to be announced but it was unable to do so.\\n This can occur if you unmount your in your onDragEnd.\\n Consider calling provided.announce() before the unmount so that the instruction will\\n not be lost for users relying on a screen reader.\\n\\n Message not passed to screen reader:\\n\\n \\\"\" + message + \"\\\"\\n \") : void 0;\n }, []);\n return announce;\n}\n\nvar count = 0;\nvar defaults = {\n separator: '::'\n};\nfunction reset() {\n count = 0;\n}\nfunction useUniqueId(prefix, options) {\n if (options === void 0) {\n options = defaults;\n }\n\n return useMemo(function () {\n return \"\" + prefix + options.separator + count++;\n }, [options.separator, prefix]);\n}\n\nfunction getElementId(_ref) {\n var contextId = _ref.contextId,\n uniqueId = _ref.uniqueId;\n return \"rbd-hidden-text-\" + contextId + \"-\" + uniqueId;\n}\nfunction useHiddenTextElement(_ref2) {\n var contextId = _ref2.contextId,\n text = _ref2.text;\n var uniqueId = useUniqueId('hidden-text', {\n separator: '-'\n });\n var id = useMemo(function () {\n return getElementId({\n contextId: contextId,\n uniqueId: uniqueId\n });\n }, [uniqueId, contextId]);\n useEffect(function mount() {\n var el = document.createElement('div');\n el.id = id;\n el.textContent = text;\n el.style.display = 'none';\n getBodyElement().appendChild(el);\n return function unmount() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n };\n }, [id, text]);\n return id;\n}\n\nvar AppContext = React.createContext(null);\n\nvar peerDependencies = {\n\treact: \"^16.8.5 || ^17.0.0 || ^18.0.0\",\n\t\"react-dom\": \"^16.8.5 || ^17.0.0 || ^18.0.0\"\n};\n\nvar semver = /(\\d+)\\.(\\d+)\\.(\\d+)/;\n\nvar getVersion = function getVersion(value) {\n var result = semver.exec(value);\n !(result != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unable to parse React version \" + value) : invariant(false) : void 0;\n var major = Number(result[1]);\n var minor = Number(result[2]);\n var patch = Number(result[3]);\n return {\n major: major,\n minor: minor,\n patch: patch,\n raw: value\n };\n};\n\nvar isSatisfied = function isSatisfied(expected, actual) {\n if (actual.major > expected.major) {\n return true;\n }\n\n if (actual.major < expected.major) {\n return false;\n }\n\n if (actual.minor > expected.minor) {\n return true;\n }\n\n if (actual.minor < expected.minor) {\n return false;\n }\n\n return actual.patch >= expected.patch;\n};\n\nvar checkReactVersion = (function (peerDepValue, actualValue) {\n var peerDep = getVersion(peerDepValue);\n var actual = getVersion(actualValue);\n\n if (isSatisfied(peerDep, actual)) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n React version: [\" + actual.raw + \"]\\n does not satisfy expected peer dependency version: [\" + peerDep.raw + \"]\\n\\n This can result in run time bugs, and even fatal crashes\\n \") : void 0;\n});\n\nvar suffix = \"\\n We expect a html5 doctype: \\n This is to ensure consistent browser layout and measurement\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\\n\";\nvar checkDoctype = (function (doc) {\n var doctype = doc.doctype;\n\n if (!doctype) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n No found.\\n\\n \" + suffix + \"\\n \") : void 0;\n return;\n }\n\n if (doctype.name.toLowerCase() !== 'html') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected found: (\" + doctype.name + \")\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n\n if (doctype.publicId !== '') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected publicId found: (\" + doctype.publicId + \")\\n A html5 doctype does not have a publicId\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n});\n\nfunction useDev(useHook) {\n if (process.env.NODE_ENV !== 'production') {\n useHook();\n }\n}\n\nfunction useDevSetupWarning(fn, inputs) {\n useDev(function () {\n useEffect(function () {\n try {\n fn();\n } catch (e) {\n error(\"\\n A setup problem was encountered.\\n\\n > \" + e.message + \"\\n \");\n }\n }, inputs);\n });\n}\n\nfunction useStartupValidation() {\n useDevSetupWarning(function () {\n checkReactVersion(peerDependencies.react, React.version);\n checkDoctype(document);\n }, []);\n}\n\nfunction usePrevious(current) {\n var ref = useRef(current);\n useEffect(function () {\n ref.current = current;\n });\n return ref;\n}\n\nfunction create() {\n var lock = null;\n\n function isClaimed() {\n return Boolean(lock);\n }\n\n function isActive(value) {\n return value === lock;\n }\n\n function claim(abandon) {\n !!lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0;\n var newLock = {\n abandon: abandon\n };\n lock = newLock;\n return newLock;\n }\n\n function release() {\n !lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0;\n lock = null;\n }\n\n function tryAbandon() {\n if (lock) {\n lock.abandon();\n release();\n }\n }\n\n return {\n isClaimed: isClaimed,\n isActive: isActive,\n claim: claim,\n release: release,\n tryAbandon: tryAbandon\n };\n}\n\nvar tab = 9;\nvar enter = 13;\nvar escape = 27;\nvar space = 32;\nvar pageUp = 33;\nvar pageDown = 34;\nvar end = 35;\nvar home = 36;\nvar arrowLeft = 37;\nvar arrowUp = 38;\nvar arrowRight = 39;\nvar arrowDown = 40;\n\nvar _preventedKeys;\nvar preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys);\nvar preventStandardKeyEvents = (function (event) {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n});\n\nvar supportedEventName = function () {\n var base = 'visibilitychange';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, \"ms\" + base, \"webkit\" + base, \"moz\" + base, \"o\" + base];\n var supported = find(candidates, function (eventName) {\n return \"on\" + eventName in document;\n });\n return supported || base;\n}();\n\nvar primaryButton = 0;\nvar sloppyClickThreshold = 5;\n\nfunction isSloppyClickThresholdExceeded(original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n}\n\nvar idle$1 = {\n type: 'IDLE'\n};\n\nfunction getCaptureBindings(_ref) {\n var cancel = _ref.cancel,\n completed = _ref.completed,\n getPhase = _ref.getPhase,\n setPhase = _ref.setPhase;\n return [{\n eventName: 'mousemove',\n fn: function fn(event) {\n var button = event.button,\n clientX = event.clientX,\n clientY = event.clientY;\n\n if (button !== primaryButton) {\n return;\n }\n\n var point = {\n x: clientX,\n y: clientY\n };\n var phase = getPhase();\n\n if (phase.type === 'DRAGGING') {\n event.preventDefault();\n phase.actions.move(point);\n return;\n }\n\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0;\n var pending = phase.point;\n\n if (!isSloppyClickThresholdExceeded(pending, point)) {\n return;\n }\n\n event.preventDefault();\n var actions = phase.actions.fluidLift(point);\n setPhase({\n type: 'DRAGGING',\n actions: actions\n });\n }\n }, {\n eventName: 'mouseup',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'mousedown',\n fn: function fn(event) {\n if (getPhase().type === 'DRAGGING') {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (getPhase().type === 'PENDING') {\n cancel();\n }\n }\n }, {\n eventName: 'webkitmouseforcedown',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0;\n\n if (phase.actions.shouldRespectForcePress()) {\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useMouseSensor(api) {\n var phaseRef = useRef(idle$1);\n var unbindEventsRef = useRef(noop);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'mousedown',\n fn: function onMouseDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.button !== primaryButton) {\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n event.preventDefault();\n var point = {\n x: event.clientX,\n y: event.clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var preventForcePressBinding = useMemo(function () {\n return {\n eventName: 'webkitmouseforcewillbegin',\n fn: function fn(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var id = api.findClosestDraggableId(event);\n\n if (!id) {\n return;\n }\n\n var options = api.findOptionsForDraggable(id);\n\n if (!options) {\n return;\n }\n\n if (options.shouldRespectForcePress) {\n return;\n }\n\n if (!api.canGetLock(id)) {\n return;\n }\n\n event.preventDefault();\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options);\n }, [preventForcePressBinding, startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n phaseRef.current = idle$1;\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var bindings = getCaptureBindings({\n cancel: cancel,\n completed: stop,\n getPhase: function getPhase() {\n return phaseRef.current;\n },\n setPhase: function setPhase(phase) {\n phaseRef.current = phase;\n }\n });\n unbindEventsRef.current = bindEvents(window, bindings, options);\n }, [cancel, stop]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n phaseRef.current = {\n type: 'PENDING',\n point: point,\n actions: actions\n };\n bindCapturingEvents();\n }, [bindCapturingEvents]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar _scrollJumpKeys;\n\nfunction noop$1() {}\n\nvar scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);\n\nfunction getDraggingBindings(actions, stop) {\n function cancel() {\n stop();\n actions.cancel();\n }\n\n function drop() {\n stop();\n actions.drop();\n }\n\n return [{\n eventName: 'keydown',\n fn: function fn(event) {\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n if (event.keyCode === space) {\n event.preventDefault();\n drop();\n return;\n }\n\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n actions.moveDown();\n return;\n }\n\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n actions.moveUp();\n return;\n }\n\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n actions.moveRight();\n return;\n }\n\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n actions.moveLeft();\n return;\n }\n\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel,\n options: {\n passive: true\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useKeyboardSensor(api) {\n var unbindEventsRef = useRef(noop$1);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'keydown',\n fn: function onKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode !== space) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var preDrag = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!preDrag) {\n return;\n }\n\n event.preventDefault();\n var isCapturing = true;\n var actions = preDrag.snapLift();\n unbindEventsRef.current();\n\n function stop() {\n !isCapturing ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0;\n isCapturing = false;\n unbindEventsRef.current();\n listenForCapture();\n }\n\n unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), {\n capture: true,\n passive: false\n });\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function tryStartCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar idle$2 = {\n type: 'IDLE'\n};\nvar timeForLongPress = 120;\nvar forcePressThreshold = 0.15;\n\nfunction getWindowBindings(_ref) {\n var cancel = _ref.cancel,\n getPhase = _ref.getPhase;\n return [{\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'contextmenu',\n fn: function fn(event) {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction getHandleBindings(_ref2) {\n var cancel = _ref2.cancel,\n completed = _ref2.completed,\n getPhase = _ref2.getPhase;\n return [{\n eventName: 'touchmove',\n options: {\n capture: false\n },\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n phase.hasMoved = true;\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n event.preventDefault();\n phase.actions.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'touchcancel',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var touch = event.touches[0];\n\n if (!touch) {\n return;\n }\n\n var isForcePress = touch.force >= forcePressThreshold;\n\n if (!isForcePress) {\n return;\n }\n\n var shouldRespect = phase.actions.shouldRespectForcePress();\n\n if (phase.type === 'PENDING') {\n if (shouldRespect) {\n cancel();\n }\n\n return;\n }\n\n if (shouldRespect) {\n if (phase.hasMoved) {\n event.preventDefault();\n return;\n }\n\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useTouchSensor(api) {\n var phaseRef = useRef(idle$2);\n var unbindEventsRef = useRef(noop);\n var getPhase = useCallback(function getPhase() {\n return phaseRef.current;\n }, []);\n var setPhase = useCallback(function setPhase(phase) {\n phaseRef.current = phase;\n }, []);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'touchstart',\n fn: function onTouchStart(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n var touch = event.touches[0];\n var clientX = touch.clientX,\n clientY = touch.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n capture: true,\n passive: false\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n if (current.type === 'PENDING') {\n clearTimeout(current.longPressTimerId);\n }\n\n setPhase(idle$2);\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture, setPhase]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var args = {\n cancel: cancel,\n completed: stop,\n getPhase: getPhase\n };\n var unbindTarget = bindEvents(window, getHandleBindings(args), options);\n var unbindWindow = bindEvents(window, getWindowBindings(args), options);\n\n unbindEventsRef.current = function unbindAll() {\n unbindTarget();\n unbindWindow();\n };\n }, [cancel, getPhase, stop]);\n var startDragging = useCallback(function startDragging() {\n var phase = getPhase();\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot start dragging from phase \" + phase.type) : invariant(false) : void 0;\n var actions = phase.actions.fluidLift(phase.point);\n setPhase({\n type: 'DRAGGING',\n actions: actions,\n hasMoved: false\n });\n }, [getPhase, setPhase]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n var longPressTimerId = setTimeout(startDragging, timeForLongPress);\n setPhase({\n type: 'PENDING',\n point: point,\n actions: actions,\n longPressTimerId: longPressTimerId\n });\n bindCapturingEvents();\n }, [bindCapturingEvents, getPhase, setPhase, startDragging]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n clearTimeout(phase.longPressTimerId);\n setPhase(idle$2);\n }\n };\n }, [getPhase, listenForCapture, setPhase]);\n useIsomorphicLayoutEffect(function webkitHack() {\n var unbind = bindEvents(window, [{\n eventName: 'touchmove',\n fn: function fn() {},\n options: {\n capture: false,\n passive: false\n }\n }]);\n return unbind;\n }, []);\n}\n\nfunction useValidateSensorHooks(sensorHooks) {\n useDev(function () {\n var previousRef = usePrevious(sensorHooks);\n useDevSetupWarning(function () {\n !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0;\n });\n });\n}\n\nvar interactiveTagNames = {\n input: true,\n button: true,\n textarea: true,\n select: true,\n option: true,\n optgroup: true,\n video: true,\n audio: true\n};\n\nfunction isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n\n var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]);\n\n if (hasAnInteractiveTag) {\n return true;\n }\n\n var attribute = current.getAttribute('contenteditable');\n\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n\n if (current === parent) {\n return false;\n }\n\n return isAnInteractiveElement(parent, current.parentElement);\n}\n\nfunction isEventInInteractiveElement(draggable, event) {\n var target = event.target;\n\n if (!isHtmlElement(target)) {\n return false;\n }\n\n return isAnInteractiveElement(draggable, target);\n}\n\nvar getBorderBoxCenterPosition = (function (el) {\n return getRect(el.getBoundingClientRect()).center;\n});\n\nfunction isElement(el) {\n return el instanceof getWindowFromEl(el).Element;\n}\n\nvar supportedMatchesName = function () {\n var base = 'matches';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector'];\n var value = find(candidates, function (name) {\n return name in Element.prototype;\n });\n return value || base;\n}();\n\nfunction closestPonyfill(el, selector) {\n if (el == null) {\n return null;\n }\n\n if (el[supportedMatchesName](selector)) {\n return el;\n }\n\n return closestPonyfill(el.parentElement, selector);\n}\n\nfunction closest$1(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n\n return closestPonyfill(el, selector);\n}\n\nfunction getSelector(contextId) {\n return \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n}\n\nfunction findClosestDragHandleFromEvent(contextId, event) {\n var target = event.target;\n\n if (!isElement(target)) {\n process.env.NODE_ENV !== \"production\" ? warning('event.target must be a Element') : void 0;\n return null;\n }\n\n var selector = getSelector(contextId);\n var handle = closest$1(target, selector);\n\n if (!handle) {\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle must be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction tryGetClosestDraggableIdFromEvent(contextId, event) {\n var handle = findClosestDragHandleFromEvent(contextId, event);\n\n if (!handle) {\n return null;\n }\n\n return handle.getAttribute(dragHandle.draggableId);\n}\n\nfunction findDraggable(contextId, draggableId) {\n var selector = \"[\" + draggable.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n var draggable$1 = find(possible, function (el) {\n return el.getAttribute(draggable.id) === draggableId;\n });\n\n if (!draggable$1) {\n return null;\n }\n\n if (!isHtmlElement(draggable$1)) {\n process.env.NODE_ENV !== \"production\" ? warning('Draggable element is not a HTMLElement') : void 0;\n return null;\n }\n\n return draggable$1;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\n\nfunction _isActive(_ref) {\n var expected = _ref.expected,\n phase = _ref.phase,\n isLockActive = _ref.isLockActive,\n shouldWarn = _ref.shouldWarn;\n\n if (!isLockActive()) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The sensor no longer has an action lock.\\n\\n Tips:\\n\\n - Throw away your action handlers when forceStop() is called\\n - Check actions.isActive() if you really need to\\n \") : void 0;\n }\n\n return false;\n }\n\n if (expected !== phase) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The actions you used belong to an outdated phase\\n\\n Current phase: \" + expected + \"\\n You called an action from outdated phase: \" + phase + \"\\n\\n Tips:\\n\\n - Do not use preDragActions actions after calling preDragActions.lift()\\n \") : void 0;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction canStart(_ref2) {\n var lockAPI = _ref2.lockAPI,\n store = _ref2.store,\n registry = _ref2.registry,\n draggableId = _ref2.draggableId;\n\n if (lockAPI.isClaimed()) {\n return false;\n }\n\n var entry = registry.draggable.findById(draggableId);\n\n if (!entry) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable with id: \" + draggableId) : void 0;\n return false;\n }\n\n if (!entry.options.isEnabled) {\n return false;\n }\n\n if (!canStartDrag(store.getState(), draggableId)) {\n return false;\n }\n\n return true;\n}\n\nfunction tryStart(_ref3) {\n var lockAPI = _ref3.lockAPI,\n contextId = _ref3.contextId,\n store = _ref3.store,\n registry = _ref3.registry,\n draggableId = _ref3.draggableId,\n forceSensorStop = _ref3.forceSensorStop,\n sourceEvent = _ref3.sourceEvent;\n var shouldStart = canStart({\n lockAPI: lockAPI,\n store: store,\n registry: registry,\n draggableId: draggableId\n });\n\n if (!shouldStart) {\n return null;\n }\n\n var entry = registry.draggable.getById(draggableId);\n var el = findDraggable(contextId, entry.descriptor.id);\n\n if (!el) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable element with id: \" + draggableId) : void 0;\n return null;\n }\n\n if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) {\n return null;\n }\n\n var lock = lockAPI.claim(forceSensorStop || noop);\n var phase = 'PRE_DRAG';\n\n function getShouldRespectForcePress() {\n return entry.options.shouldRespectForcePress;\n }\n\n function isLockActive() {\n return lockAPI.isActive(lock);\n }\n\n function tryDispatch(expected, getAction) {\n if (_isActive({\n expected: expected,\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n })) {\n store.dispatch(getAction());\n }\n }\n\n var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING');\n\n function lift$1(args) {\n function completed() {\n lockAPI.release();\n phase = 'COMPLETED';\n }\n\n if (phase !== 'PRE_DRAG') {\n completed();\n !(phase === 'PRE_DRAG') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot lift in phase \" + phase) : invariant(false) : void 0;\n }\n\n store.dispatch(lift(args.liftActionArgs));\n phase = 'DRAGGING';\n\n function finish(reason, options) {\n if (options === void 0) {\n options = {\n shouldBlockNextClick: false\n };\n }\n\n args.cleanup();\n\n if (options.shouldBlockNextClick) {\n var unbind = bindEvents(window, [{\n eventName: 'click',\n fn: preventDefault,\n options: {\n once: true,\n passive: false,\n capture: true\n }\n }]);\n setTimeout(unbind);\n }\n\n completed();\n store.dispatch(drop({\n reason: reason\n }));\n }\n\n return _extends({\n isActive: function isActive() {\n return _isActive({\n expected: 'DRAGGING',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n drop: function drop(options) {\n return finish('DROP', options);\n },\n cancel: function cancel(options) {\n return finish('CANCEL', options);\n }\n }, args.actions);\n }\n\n function fluidLift(clientSelection) {\n var move$1 = rafSchd(function (client) {\n tryDispatchWhenDragging(function () {\n return move({\n client: client\n });\n });\n });\n var api = lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: clientSelection,\n movementMode: 'FLUID'\n },\n cleanup: function cleanup() {\n return move$1.cancel();\n },\n actions: {\n move: move$1\n }\n });\n return _extends({}, api, {\n move: move$1\n });\n }\n\n function snapLift() {\n var actions = {\n moveUp: function moveUp$1() {\n return tryDispatchWhenDragging(moveUp);\n },\n moveRight: function moveRight$1() {\n return tryDispatchWhenDragging(moveRight);\n },\n moveDown: function moveDown$1() {\n return tryDispatchWhenDragging(moveDown);\n },\n moveLeft: function moveLeft$1() {\n return tryDispatchWhenDragging(moveLeft);\n }\n };\n return lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: getBorderBoxCenterPosition(el),\n movementMode: 'SNAP'\n },\n cleanup: noop,\n actions: actions\n });\n }\n\n function abortPreDrag() {\n var shouldRelease = _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n });\n\n if (shouldRelease) {\n lockAPI.release();\n }\n }\n\n var preDrag = {\n isActive: function isActive() {\n return _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n fluidLift: fluidLift,\n snapLift: snapLift,\n abort: abortPreDrag\n };\n return preDrag;\n}\n\nvar defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor];\nfunction useSensorMarshal(_ref4) {\n var contextId = _ref4.contextId,\n store = _ref4.store,\n registry = _ref4.registry,\n customSensors = _ref4.customSensors,\n enableDefaultSensors = _ref4.enableDefaultSensors;\n var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []);\n var lockAPI = useState(function () {\n return create();\n })[0];\n var tryAbandonLock = useCallback(function tryAbandonLock(previous, current) {\n if (previous.isDragging && !current.isDragging) {\n lockAPI.tryAbandon();\n }\n }, [lockAPI]);\n useIsomorphicLayoutEffect(function listenToStore() {\n var previous = store.getState();\n var unsubscribe = store.subscribe(function () {\n var current = store.getState();\n tryAbandonLock(previous, current);\n previous = current;\n });\n return unsubscribe;\n }, [lockAPI, store, tryAbandonLock]);\n useIsomorphicLayoutEffect(function () {\n return lockAPI.tryAbandon;\n }, [lockAPI.tryAbandon]);\n var canGetLock = useCallback(function (draggableId) {\n return canStart({\n lockAPI: lockAPI,\n registry: registry,\n store: store,\n draggableId: draggableId\n });\n }, [lockAPI, registry, store]);\n var tryGetLock = useCallback(function (draggableId, forceStop, options) {\n return tryStart({\n lockAPI: lockAPI,\n registry: registry,\n contextId: contextId,\n store: store,\n draggableId: draggableId,\n forceSensorStop: forceStop,\n sourceEvent: options && options.sourceEvent ? options.sourceEvent : null\n });\n }, [contextId, lockAPI, registry, store]);\n var findClosestDraggableId = useCallback(function (event) {\n return tryGetClosestDraggableIdFromEvent(contextId, event);\n }, [contextId]);\n var findOptionsForDraggable = useCallback(function (id) {\n var entry = registry.draggable.findById(id);\n return entry ? entry.options : null;\n }, [registry.draggable]);\n var tryReleaseLock = useCallback(function tryReleaseLock() {\n if (!lockAPI.isClaimed()) {\n return;\n }\n\n lockAPI.tryAbandon();\n\n if (store.getState().phase !== 'IDLE') {\n store.dispatch(flush());\n }\n }, [lockAPI, store]);\n var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]);\n var api = useMemo(function () {\n return {\n canGetLock: canGetLock,\n tryGetLock: tryGetLock,\n findClosestDraggableId: findClosestDraggableId,\n findOptionsForDraggable: findOptionsForDraggable,\n tryReleaseLock: tryReleaseLock,\n isLockClaimed: isLockClaimed\n };\n }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]);\n useValidateSensorHooks(useSensors);\n\n for (var i = 0; i < useSensors.length; i++) {\n useSensors[i](api);\n }\n}\n\nvar createResponders = function createResponders(props) {\n return {\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragUpdate: props.onDragUpdate\n };\n};\n\nfunction getStore(lazyRef) {\n !lazyRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0;\n return lazyRef.current;\n}\n\nfunction App(props) {\n var contextId = props.contextId,\n setCallbacks = props.setCallbacks,\n sensors = props.sensors,\n nonce = props.nonce,\n dragHandleUsageInstructions = props.dragHandleUsageInstructions;\n var lazyStoreRef = useRef(null);\n useStartupValidation();\n var lastPropsRef = usePrevious(props);\n var getResponders = useCallback(function () {\n return createResponders(lastPropsRef.current);\n }, [lastPropsRef]);\n var announce = useAnnouncer(contextId);\n var dragHandleUsageInstructionsId = useHiddenTextElement({\n contextId: contextId,\n text: dragHandleUsageInstructions\n });\n var styleMarshal = useStyleMarshal(contextId, nonce);\n var lazyDispatch = useCallback(function (action) {\n getStore(lazyStoreRef).dispatch(action);\n }, []);\n var marshalCallbacks = useMemo(function () {\n return bindActionCreators({\n publishWhileDragging: publishWhileDragging,\n updateDroppableScroll: updateDroppableScroll,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n collectionStarting: collectionStarting\n }, lazyDispatch);\n }, [lazyDispatch]);\n var registry = useRegistry();\n var dimensionMarshal = useMemo(function () {\n return createDimensionMarshal(registry, marshalCallbacks);\n }, [registry, marshalCallbacks]);\n var autoScroller = useMemo(function () {\n return createAutoScroller(_extends({\n scrollWindow: scrollWindow,\n scrollDroppable: dimensionMarshal.scrollDroppable\n }, bindActionCreators({\n move: move\n }, lazyDispatch)));\n }, [dimensionMarshal.scrollDroppable, lazyDispatch]);\n var focusMarshal = useFocusMarshal(contextId);\n var store = useMemo(function () {\n return createStore({\n announce: announce,\n autoScroller: autoScroller,\n dimensionMarshal: dimensionMarshal,\n focusMarshal: focusMarshal,\n getResponders: getResponders,\n styleMarshal: styleMarshal\n });\n }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (lazyStoreRef.current && lazyStoreRef.current !== store) {\n process.env.NODE_ENV !== \"production\" ? warning('unexpected store change') : void 0;\n }\n }\n\n lazyStoreRef.current = store;\n var tryResetStore = useCallback(function () {\n var current = getStore(lazyStoreRef);\n var state = current.getState();\n\n if (state.phase !== 'IDLE') {\n current.dispatch(flush());\n }\n }, []);\n var isDragging = useCallback(function () {\n var state = getStore(lazyStoreRef).getState();\n return state.isDragging || state.phase === 'DROP_ANIMATING';\n }, []);\n var appCallbacks = useMemo(function () {\n return {\n isDragging: isDragging,\n tryAbort: tryResetStore\n };\n }, [isDragging, tryResetStore]);\n setCallbacks(appCallbacks);\n var getCanLift = useCallback(function (id) {\n return canStartDrag(getStore(lazyStoreRef).getState(), id);\n }, []);\n var getIsMovementAllowed = useCallback(function () {\n return isMovementAllowed(getStore(lazyStoreRef).getState());\n }, []);\n var appContext = useMemo(function () {\n return {\n marshal: dimensionMarshal,\n focus: focusMarshal,\n contextId: contextId,\n canLift: getCanLift,\n isMovementAllowed: getIsMovementAllowed,\n dragHandleUsageInstructionsId: dragHandleUsageInstructionsId,\n registry: registry\n };\n }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]);\n useSensorMarshal({\n contextId: contextId,\n store: store,\n registry: registry,\n customSensors: sensors,\n enableDefaultSensors: props.enableDefaultSensors !== false\n });\n useEffect(function () {\n return tryResetStore;\n }, [tryResetStore]);\n return React.createElement(AppContext.Provider, {\n value: appContext\n }, React.createElement(Provider, {\n context: StoreContext,\n store: store\n }, props.children));\n}\n\nvar count$1 = 0;\nfunction reset$1() {\n count$1 = 0;\n}\nfunction useInstanceCount() {\n return useMemo(function () {\n return \"\" + count$1++;\n }, []);\n}\n\nfunction resetServerContext() {\n reset$1();\n reset();\n}\nfunction DragDropContext(props) {\n var contextId = useInstanceCount();\n var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions;\n return React.createElement(ErrorBoundary, null, function (setCallbacks) {\n return React.createElement(App, {\n nonce: props.nonce,\n contextId: contextId,\n setCallbacks: setCallbacks,\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n enableDefaultSensors: props.enableDefaultSensors,\n sensors: props.sensors,\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragUpdate: props.onDragUpdate,\n onDragEnd: props.onDragEnd\n }, props.children);\n });\n}\n\nvar isEqual$1 = function isEqual(base) {\n return function (value) {\n return base === value;\n };\n};\n\nvar isScroll = isEqual$1('scroll');\nvar isAuto = isEqual$1('auto');\nvar isVisible$1 = isEqual$1('visible');\n\nvar isEither = function isEither(overflow, fn) {\n return fn(overflow.overflowX) || fn(overflow.overflowY);\n};\n\nvar isBoth = function isBoth(overflow, fn) {\n return fn(overflow.overflowX) && fn(overflow.overflowY);\n};\n\nvar isElementScrollable = function isElementScrollable(el) {\n var style = window.getComputedStyle(el);\n var overflow = {\n overflowX: style.overflowX,\n overflowY: style.overflowY\n };\n return isEither(overflow, isScroll) || isEither(overflow, isAuto);\n};\n\nvar isBodyScrollable = function isBodyScrollable() {\n if (process.env.NODE_ENV === 'production') {\n return false;\n }\n\n var body = getBodyElement();\n var html = document.documentElement;\n !html ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n\n if (!isElementScrollable(body)) {\n return false;\n }\n\n var htmlStyle = window.getComputedStyle(html);\n var htmlOverflow = {\n overflowX: htmlStyle.overflowX,\n overflowY: htmlStyle.overflowY\n };\n\n if (isBoth(htmlOverflow, isVisible$1)) {\n return false;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n We have detected that your element might be a scroll container.\\n We have found no reliable way of detecting whether the element is a scroll container.\\n Under most circumstances a scroll bar will be on the element (document.documentElement)\\n\\n Because we cannot determine if the is a scroll container, and generally it is not one,\\n we will be treating the as *not* a scroll container\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\\n \") : void 0;\n return false;\n};\n\nvar getClosestScrollable = function getClosestScrollable(el) {\n if (el == null) {\n return null;\n }\n\n if (el === document.body) {\n return isBodyScrollable() ? el : null;\n }\n\n if (el === document.documentElement) {\n return null;\n }\n\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n\n return el;\n};\n\nvar checkForNestedScrollContainers = (function (scrollable) {\n if (!scrollable) {\n return;\n }\n\n var anotherScrollParent = getClosestScrollable(scrollable.parentElement);\n\n if (!anotherScrollParent) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable: unsupported nested scroll container detected.\\n A Droppable can only have one scroll parent (which can be itself)\\n Nested scroll containers are currently not supported.\\n\\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\\n \") : void 0;\n});\n\nvar getScroll$1 = (function (el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n});\n\nvar getIsFixed = function getIsFixed(el) {\n if (!el) {\n return false;\n }\n\n var style = window.getComputedStyle(el);\n\n if (style.position === 'fixed') {\n return true;\n }\n\n return getIsFixed(el.parentElement);\n};\n\nvar getEnv = (function (start) {\n var closestScrollable = getClosestScrollable(start);\n var isFixedOnPage = getIsFixed(start);\n return {\n closestScrollable: closestScrollable,\n isFixedOnPage: isFixedOnPage\n };\n});\n\nvar getDroppableDimension = (function (_ref) {\n var descriptor = _ref.descriptor,\n isEnabled = _ref.isEnabled,\n isCombineEnabled = _ref.isCombineEnabled,\n isFixedOnPage = _ref.isFixedOnPage,\n direction = _ref.direction,\n client = _ref.client,\n page = _ref.page,\n closest = _ref.closest;\n\n var frame = function () {\n if (!closest) {\n return null;\n }\n\n var scrollSize = closest.scrollSize,\n frameClient = closest.client;\n var maxScroll = getMaxScroll({\n scrollHeight: scrollSize.scrollHeight,\n scrollWidth: scrollSize.scrollWidth,\n height: frameClient.paddingBox.height,\n width: frameClient.paddingBox.width\n });\n return {\n pageMarginBox: closest.page.marginBox,\n frameClient: frameClient,\n scrollSize: scrollSize,\n shouldClipSubject: closest.shouldClipSubject,\n scroll: {\n initial: closest.scroll,\n current: closest.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n }();\n\n var axis = direction === 'vertical' ? vertical : horizontal;\n var subject = getSubject({\n page: page,\n withPlaceholder: null,\n axis: axis,\n frame: frame\n });\n var dimension = {\n descriptor: descriptor,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: isFixedOnPage,\n axis: axis,\n isEnabled: isEnabled,\n client: client,\n page: page,\n frame: frame,\n subject: subject\n };\n return dimension;\n});\n\nvar getClient = function getClient(targetRef, closestScrollable) {\n var base = getBox(targetRef);\n\n if (!closestScrollable) {\n return base;\n }\n\n if (targetRef !== closestScrollable) {\n return base;\n }\n\n var top = base.paddingBox.top - closestScrollable.scrollTop;\n var left = base.paddingBox.left - closestScrollable.scrollLeft;\n var bottom = top + closestScrollable.scrollHeight;\n var right = left + closestScrollable.scrollWidth;\n var paddingBox = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n var borderBox = expand(paddingBox, base.border);\n var client = createBox({\n borderBox: borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n return client;\n};\n\nvar getDimension = (function (_ref) {\n var ref = _ref.ref,\n descriptor = _ref.descriptor,\n env = _ref.env,\n windowScroll = _ref.windowScroll,\n direction = _ref.direction,\n isDropDisabled = _ref.isDropDisabled,\n isCombineEnabled = _ref.isCombineEnabled,\n shouldClipSubject = _ref.shouldClipSubject;\n var closestScrollable = env.closestScrollable;\n var client = getClient(ref, closestScrollable);\n var page = withScroll(client, windowScroll);\n\n var closest = function () {\n if (!closestScrollable) {\n return null;\n }\n\n var frameClient = getBox(closestScrollable);\n var scrollSize = {\n scrollHeight: closestScrollable.scrollHeight,\n scrollWidth: closestScrollable.scrollWidth\n };\n return {\n client: frameClient,\n page: withScroll(frameClient, windowScroll),\n scroll: getScroll$1(closestScrollable),\n scrollSize: scrollSize,\n shouldClipSubject: shouldClipSubject\n };\n }();\n\n var dimension = getDroppableDimension({\n descriptor: descriptor,\n isEnabled: !isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: env.isFixedOnPage,\n direction: direction,\n client: client,\n page: page,\n closest: closest\n });\n return dimension;\n});\n\nvar immediate = {\n passive: false\n};\nvar delayed = {\n passive: true\n};\nvar getListenerOptions = (function (options) {\n return options.shouldPublishImmediately ? immediate : delayed;\n});\n\nfunction useRequiredContext(Context) {\n var result = useContext(Context);\n !result ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find required context') : invariant(false) : void 0;\n return result;\n}\n\nvar getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) {\n return dragging && dragging.env.closestScrollable || null;\n};\n\nfunction useDroppablePublisher(args) {\n var whileDraggingRef = useRef(null);\n var appContext = useRequiredContext(AppContext);\n var uniqueId = useUniqueId('droppable');\n var registry = appContext.registry,\n marshal = appContext.marshal;\n var previousRef = usePrevious(args);\n var descriptor = useMemo(function () {\n return {\n id: args.droppableId,\n type: args.type,\n mode: args.mode\n };\n }, [args.droppableId, args.mode, args.type]);\n var publishedDescriptorRef = useRef(descriptor);\n var memoizedUpdateScroll = useMemo(function () {\n return memoizeOne(function (x, y) {\n !whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0;\n var scroll = {\n x: x,\n y: y\n };\n marshal.updateDroppableScroll(descriptor.id, scroll);\n });\n }, [descriptor.id, marshal]);\n var getClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n\n if (!dragging || !dragging.env.closestScrollable) {\n return origin;\n }\n\n return getScroll$1(dragging.env.closestScrollable);\n }, []);\n var updateScroll = useCallback(function () {\n var scroll = getClosestScroll();\n memoizedUpdateScroll(scroll.x, scroll.y);\n }, [getClosestScroll, memoizedUpdateScroll]);\n var scheduleScrollUpdate = useMemo(function () {\n return rafSchd(updateScroll);\n }, [updateScroll]);\n var onClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n var options = dragging.scrollOptions;\n\n if (options.shouldPublishImmediately) {\n updateScroll();\n return;\n }\n\n scheduleScrollUpdate();\n }, [scheduleScrollUpdate, updateScroll]);\n var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) {\n !!whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0;\n var previous = previousRef.current;\n var ref = previous.getDroppableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0;\n var env = getEnv(ref);\n var dragging = {\n ref: ref,\n descriptor: descriptor,\n env: env,\n scrollOptions: options\n };\n whileDraggingRef.current = dragging;\n var dimension = getDimension({\n ref: ref,\n descriptor: descriptor,\n env: env,\n windowScroll: windowScroll,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n var scrollable = env.closestScrollable;\n\n if (scrollable) {\n scrollable.setAttribute(scrollContainer.contextId, appContext.contextId);\n scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n\n if (process.env.NODE_ENV !== 'production') {\n checkForNestedScrollContainers(scrollable);\n }\n }\n\n return dimension;\n }, [appContext.contextId, descriptor, onClosestScroll, previousRef]);\n var getScrollWhileDragging = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0;\n return getScroll$1(closest);\n }, []);\n var dragStopped = useCallback(function () {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n whileDraggingRef.current = null;\n\n if (!closest) {\n return;\n }\n\n scheduleScrollUpdate.cancel();\n closest.removeAttribute(scrollContainer.contextId);\n closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n }, [onClosestScroll, scheduleScrollUpdate]);\n var scroll = useCallback(function (change) {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n !closest ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n closest.scrollTop += change.y;\n closest.scrollLeft += change.x;\n }, []);\n var callbacks = useMemo(function () {\n return {\n getDimensionAndWatchScroll: getDimensionAndWatchScroll,\n getScrollWhileDragging: getScrollWhileDragging,\n dragStopped: dragStopped,\n scroll: scroll\n };\n }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n callbacks: callbacks\n };\n }, [callbacks, descriptor, uniqueId]);\n useIsomorphicLayoutEffect(function () {\n publishedDescriptorRef.current = entry.descriptor;\n registry.droppable.register(entry);\n return function () {\n if (whileDraggingRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0;\n dragStopped();\n }\n\n registry.droppable.unregister(entry);\n };\n }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled);\n }, [args.isDropDisabled, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled);\n }, [args.isCombineEnabled, marshal]);\n}\n\nfunction noop$2() {}\n\nvar empty = {\n width: 0,\n height: 0,\n margin: noSpacing\n};\n\nvar getSize = function getSize(_ref) {\n var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount,\n placeholder = _ref.placeholder,\n animate = _ref.animate;\n\n if (isAnimatingOpenOnMount) {\n return empty;\n }\n\n if (animate === 'close') {\n return empty;\n }\n\n return {\n height: placeholder.client.borderBox.height,\n width: placeholder.client.borderBox.width,\n margin: placeholder.client.margin\n };\n};\n\nvar getStyle = function getStyle(_ref2) {\n var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount,\n placeholder = _ref2.placeholder,\n animate = _ref2.animate;\n var size = getSize({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n placeholder: placeholder,\n animate: animate\n });\n return {\n display: placeholder.display,\n boxSizing: 'border-box',\n width: size.width,\n height: size.height,\n marginTop: size.margin.top,\n marginRight: size.margin.right,\n marginBottom: size.margin.bottom,\n marginLeft: size.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none',\n transition: animate !== 'none' ? transitions.placeholder : null\n };\n};\n\nfunction Placeholder(props) {\n var animateOpenTimerRef = useRef(null);\n var tryClearAnimateOpenTimer = useCallback(function () {\n if (!animateOpenTimerRef.current) {\n return;\n }\n\n clearTimeout(animateOpenTimerRef.current);\n animateOpenTimerRef.current = null;\n }, []);\n var animate = props.animate,\n onTransitionEnd = props.onTransitionEnd,\n onClose = props.onClose,\n contextId = props.contextId;\n\n var _useState = useState(props.animate === 'open'),\n isAnimatingOpenOnMount = _useState[0],\n setIsAnimatingOpenOnMount = _useState[1];\n\n useEffect(function () {\n if (!isAnimatingOpenOnMount) {\n return noop$2;\n }\n\n if (animate !== 'open') {\n tryClearAnimateOpenTimer();\n setIsAnimatingOpenOnMount(false);\n return noop$2;\n }\n\n if (animateOpenTimerRef.current) {\n return noop$2;\n }\n\n animateOpenTimerRef.current = setTimeout(function () {\n animateOpenTimerRef.current = null;\n setIsAnimatingOpenOnMount(false);\n });\n return tryClearAnimateOpenTimer;\n }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]);\n var onSizeChangeEnd = useCallback(function (event) {\n if (event.propertyName !== 'height') {\n return;\n }\n\n onTransitionEnd();\n\n if (animate === 'close') {\n onClose();\n }\n }, [animate, onClose, onTransitionEnd]);\n var style = getStyle({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n animate: props.animate,\n placeholder: props.placeholder\n });\n return React.createElement(props.placeholder.tagName, {\n style: style,\n 'data-rbd-placeholder-context-id': contextId,\n onTransitionEnd: onSizeChangeEnd,\n ref: props.innerRef\n });\n}\n\nvar Placeholder$1 = React.memo(Placeholder);\n\nvar DroppableContext = React.createContext(null);\n\nfunction checkIsValidInnerRef(el) {\n !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n provided.innerRef has not been provided with a HTMLElement.\\n\\n You can find a guide on using the innerRef callback functions at:\\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\\n \") : invariant(false) : void 0;\n}\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\n\nfunction runChecks(args, checks) {\n checks.forEach(function (check) {\n return check(args);\n });\n}\n\nvar shared = [function required(_ref) {\n var props = _ref.props;\n !props.droppableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0;\n !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A Droppable requires a [string] droppableId. Provided: [\" + typeof props.droppableId + \"]\") : invariant(false) : void 0;\n}, function _boolean(_ref2) {\n var props = _ref2.props;\n !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0;\n}, function ref(_ref3) {\n var getDroppableRef = _ref3.getDroppableRef;\n checkIsValidInnerRef(getDroppableRef());\n}];\nvar standard = [function placeholder(_ref4) {\n var props = _ref4.props,\n getPlaceholderRef = _ref4.getPlaceholderRef;\n\n if (!props.placeholder) {\n return;\n }\n\n var ref = getPlaceholderRef();\n\n if (ref) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable setup issue [droppableId: \\\"\" + props.droppableId + \"\\\"]:\\n DroppableProvided > placeholder could not be found.\\n\\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\\n \") : void 0;\n}];\nvar virtual = [function hasClone(_ref5) {\n var props = _ref5.props;\n !props.renderClone ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0;\n}, function hasNoPlaceholder(_ref6) {\n var getPlaceholderRef = _ref6.getPlaceholderRef;\n !!getPlaceholderRef() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0;\n}];\nfunction useValidation(args) {\n useDevSetupWarning(function () {\n runChecks(args, shared);\n\n if (args.props.mode === 'standard') {\n runChecks(args, standard);\n }\n\n if (args.props.mode === 'virtual') {\n runChecks(args, virtual);\n }\n });\n}\n\nvar AnimateInOut = function (_React$PureComponent) {\n _inheritsLoose(AnimateInOut, _React$PureComponent);\n\n function AnimateInOut() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.state = {\n isVisible: Boolean(_this.props.on),\n data: _this.props.on,\n animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none'\n };\n\n _this.onClose = function () {\n if (_this.state.animate !== 'close') {\n return;\n }\n\n _this.setState({\n isVisible: false\n });\n };\n\n return _this;\n }\n\n AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (!props.shouldAnimate) {\n return {\n isVisible: Boolean(props.on),\n data: props.on,\n animate: 'none'\n };\n }\n\n if (props.on) {\n return {\n isVisible: true,\n data: props.on,\n animate: 'open'\n };\n }\n\n if (state.isVisible) {\n return {\n isVisible: true,\n data: state.data,\n animate: 'close'\n };\n }\n\n return {\n isVisible: false,\n animate: 'close',\n data: null\n };\n };\n\n var _proto = AnimateInOut.prototype;\n\n _proto.render = function render() {\n if (!this.state.isVisible) {\n return null;\n }\n\n var provided = {\n onClose: this.onClose,\n data: this.state.data,\n animate: this.state.animate\n };\n return this.props.children(provided);\n };\n\n return AnimateInOut;\n}(React.PureComponent);\n\nvar zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\n\nvar getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) {\n if (dropping) {\n return transitions.drop(dropping.duration);\n }\n\n if (shouldAnimateDragMovement) {\n return transitions.snap;\n }\n\n return transitions.fluid;\n};\n\nvar getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) {\n if (!isCombining) {\n return null;\n }\n\n return isDropAnimating ? combine.opacity.drop : combine.opacity.combining;\n};\n\nvar getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) {\n if (dragging.forceShouldAnimate != null) {\n return dragging.forceShouldAnimate;\n }\n\n return dragging.mode === 'SNAP';\n};\n\nfunction getDraggingStyle(dragging) {\n var dimension = dragging.dimension;\n var box = dimension.client;\n var offset = dragging.offset,\n combineWith = dragging.combineWith,\n dropping = dragging.dropping;\n var isCombining = Boolean(combineWith);\n var shouldAnimate = getShouldDraggingAnimate(dragging);\n var isDropAnimating = Boolean(dropping);\n var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset);\n var style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: getDraggingTransition(shouldAnimate, dropping),\n transform: transform,\n opacity: getDraggingOpacity(isCombining, isDropAnimating),\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n pointerEvents: 'none'\n };\n return style;\n}\n\nfunction getSecondaryStyle(secondary) {\n return {\n transform: transforms.moveTo(secondary.offset),\n transition: secondary.shouldAnimateDisplacement ? null : 'none'\n };\n}\n\nfunction getStyle$1(mapped) {\n return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped);\n}\n\nfunction getDimension$1(descriptor, el, windowScroll) {\n if (windowScroll === void 0) {\n windowScroll = origin;\n }\n\n var computedStyles = window.getComputedStyle(el);\n var borderBox = el.getBoundingClientRect();\n var client = calculateBox(borderBox, computedStyles);\n var page = withScroll(client, windowScroll);\n var placeholder = {\n client: client,\n tagName: el.tagName.toLowerCase(),\n display: computedStyles.display\n };\n var displaceBy = {\n x: client.marginBox.width,\n y: client.marginBox.height\n };\n var dimension = {\n descriptor: descriptor,\n placeholder: placeholder,\n displaceBy: displaceBy,\n client: client,\n page: page\n };\n return dimension;\n}\n\nfunction useDraggablePublisher(args) {\n var uniqueId = useUniqueId('draggable');\n var descriptor = args.descriptor,\n registry = args.registry,\n getDraggableRef = args.getDraggableRef,\n canDragInteractiveElements = args.canDragInteractiveElements,\n shouldRespectForcePress = args.shouldRespectForcePress,\n isEnabled = args.isEnabled;\n var options = useMemo(function () {\n return {\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]);\n var getDimension = useCallback(function (windowScroll) {\n var el = getDraggableRef();\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0;\n return getDimension$1(descriptor, el, windowScroll);\n }, [descriptor, getDraggableRef]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n options: options,\n getDimension: getDimension\n };\n }, [descriptor, getDimension, options, uniqueId]);\n var publishedRef = useRef(entry);\n var isFirstPublishRef = useRef(true);\n useIsomorphicLayoutEffect(function () {\n registry.draggable.register(publishedRef.current);\n return function () {\n return registry.draggable.unregister(publishedRef.current);\n };\n }, [registry.draggable]);\n useIsomorphicLayoutEffect(function () {\n if (isFirstPublishRef.current) {\n isFirstPublishRef.current = false;\n return;\n }\n\n var last = publishedRef.current;\n publishedRef.current = entry;\n registry.draggable.update(entry, last);\n }, [entry, registry.draggable]);\n}\n\nfunction useValidation$1(props, contextId, getRef) {\n useDevSetupWarning(function () {\n function prefix(id) {\n return \"Draggable[id: \" + id + \"]: \";\n }\n\n var id = props.draggableId;\n !id ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0;\n !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Draggable requires a [string] draggableId.\\n Provided: [type: \" + typeof id + \"] (value: \" + id + \")\") : invariant(false) : void 0;\n !isInteger(props.index) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" requires an integer index prop\") : invariant(false) : void 0;\n\n if (props.mapped.type === 'DRAGGING') {\n return;\n }\n\n checkIsValidInnerRef(getRef());\n\n if (props.isEnabled) {\n !findDragHandle(contextId, id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" Unable to find drag handle\") : invariant(false) : void 0;\n }\n });\n}\nfunction useClonePropValidation(isClone) {\n useDev(function () {\n var initialRef = useRef(isClone);\n useDevSetupWarning(function () {\n !(isClone === initialRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0;\n }, [isClone]);\n });\n}\n\nfunction preventHtml5Dnd(event) {\n event.preventDefault();\n}\n\nfunction Draggable(props) {\n var ref = useRef(null);\n var setRef = useCallback(function (el) {\n ref.current = el;\n }, []);\n var getRef = useCallback(function () {\n return ref.current;\n }, []);\n\n var _useRequiredContext = useRequiredContext(AppContext),\n contextId = _useRequiredContext.contextId,\n dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId,\n registry = _useRequiredContext.registry;\n\n var _useRequiredContext2 = useRequiredContext(DroppableContext),\n type = _useRequiredContext2.type,\n droppableId = _useRequiredContext2.droppableId;\n\n var descriptor = useMemo(function () {\n return {\n id: props.draggableId,\n index: props.index,\n type: type,\n droppableId: droppableId\n };\n }, [props.draggableId, props.index, type, droppableId]);\n var children = props.children,\n draggableId = props.draggableId,\n isEnabled = props.isEnabled,\n shouldRespectForcePress = props.shouldRespectForcePress,\n canDragInteractiveElements = props.canDragInteractiveElements,\n isClone = props.isClone,\n mapped = props.mapped,\n dropAnimationFinishedAction = props.dropAnimationFinished;\n useValidation$1(props, contextId, getRef);\n useClonePropValidation(isClone);\n\n if (!isClone) {\n var forPublisher = useMemo(function () {\n return {\n descriptor: descriptor,\n registry: registry,\n getDraggableRef: getRef,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]);\n useDraggablePublisher(forPublisher);\n }\n\n var dragHandleProps = useMemo(function () {\n return isEnabled ? {\n tabIndex: 0,\n role: 'button',\n 'aria-describedby': dragHandleUsageInstructionsId,\n 'data-rbd-drag-handle-draggable-id': draggableId,\n 'data-rbd-drag-handle-context-id': contextId,\n draggable: false,\n onDragStart: preventHtml5Dnd\n } : null;\n }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]);\n var onMoveEnd = useCallback(function (event) {\n if (mapped.type !== 'DRAGGING') {\n return;\n }\n\n if (!mapped.dropping) {\n return;\n }\n\n if (event.propertyName !== 'transform') {\n return;\n }\n\n dropAnimationFinishedAction();\n }, [dropAnimationFinishedAction, mapped]);\n var provided = useMemo(function () {\n var style = getStyle$1(mapped);\n var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;\n var result = {\n innerRef: setRef,\n draggableProps: {\n 'data-rbd-draggable-context-id': contextId,\n 'data-rbd-draggable-id': draggableId,\n style: style,\n onTransitionEnd: onTransitionEnd\n },\n dragHandleProps: dragHandleProps\n };\n return result;\n }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);\n var rubric = useMemo(function () {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]);\n return children(provided, mapped.snapshot, rubric);\n}\n\nvar isStrictEqual = (function (a, b) {\n return a === b;\n});\n\nvar whatIsDraggedOverFromResult = (function (result) {\n var combine = result.combine,\n destination = result.destination;\n\n if (destination) {\n return destination.droppableId;\n }\n\n if (combine) {\n return combine.droppableId;\n }\n\n return null;\n});\n\nvar getCombineWithFromResult = function getCombineWithFromResult(result) {\n return result.combine ? result.combine.draggableId : null;\n};\n\nvar getCombineWithFromImpact = function getCombineWithFromImpact(impact) {\n return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null;\n};\n\nfunction getDraggableSelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) {\n return {\n isDragging: true,\n isClone: isClone,\n isDropAnimating: Boolean(dropping),\n dropAnimation: dropping,\n mode: mode,\n draggingOver: draggingOver,\n combineWith: combineWith,\n combineTargetFor: null\n };\n });\n var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) {\n return {\n mapped: {\n type: 'DRAGGING',\n dropping: null,\n draggingOver: draggingOver,\n combineWith: combineWith,\n mode: mode,\n offset: offset,\n dimension: dimension,\n forceShouldAnimate: forceShouldAnimate,\n snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null)\n }\n };\n });\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n\n var offset = state.current.client.offset;\n var dimension = state.dimensions.draggables[ownProps.draggableId];\n var draggingOver = whatIsDraggedOver(state.impact);\n var combineWith = getCombineWithFromImpact(state.impact);\n var forceShouldAnimate = state.forceShouldAnimate;\n return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n\n var isClone = ownProps.isClone;\n var _dimension = state.dimensions.draggables[ownProps.draggableId];\n var result = completed.result;\n var mode = result.mode;\n\n var _draggingOver = whatIsDraggedOverFromResult(result);\n\n var _combineWith = getCombineWithFromResult(result);\n\n var duration = state.dropDuration;\n var dropping = {\n duration: duration,\n curve: curves.drop,\n moveTo: state.newHomeClientOffset,\n opacity: _combineWith ? combine.opacity.drop : null,\n scale: _combineWith ? combine.scale.drop : null\n };\n return {\n mapped: {\n type: 'DRAGGING',\n offset: state.newHomeClientOffset,\n dimension: _dimension,\n dropping: dropping,\n draggingOver: _draggingOver,\n combineWith: _combineWith,\n mode: mode,\n forceShouldAnimate: null,\n snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping)\n }\n };\n }\n\n return null;\n };\n\n return selector;\n}\n\nfunction getSecondarySnapshot(combineTargetFor) {\n return {\n isDragging: false,\n isDropAnimating: false,\n isClone: false,\n dropAnimation: null,\n mode: null,\n draggingOver: null,\n combineTargetFor: combineTargetFor,\n combineWith: null\n };\n}\n\nvar atRest = {\n mapped: {\n type: 'SECONDARY',\n offset: origin,\n combineTargetFor: null,\n shouldAnimateDisplacement: true,\n snapshot: getSecondarySnapshot(null)\n }\n};\n\nfunction getSecondarySelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot);\n var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n\n return {\n mapped: {\n type: 'SECONDARY',\n offset: offset,\n combineTargetFor: combineTargetFor,\n shouldAnimateDisplacement: shouldAnimateDisplacement,\n snapshot: getMemoizedSnapshot(combineTargetFor)\n }\n };\n });\n\n var getFallback = function getFallback(combineTargetFor) {\n return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null;\n };\n\n var getProps = function getProps(ownId, draggingId, impact, afterCritical) {\n var visualDisplacement = impact.displaced.visible[ownId];\n var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]);\n var combine = tryGetCombine(impact);\n var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null;\n\n if (!visualDisplacement) {\n if (!isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n if (impact.displaced.invisible[ownId]) {\n return null;\n }\n\n var change = negate(afterCritical.displacedBy.point);\n\n var _offset = memoizedOffset(change.x, change.y);\n\n return getMemoizedProps(_offset, combineTargetFor, true);\n }\n\n if (isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n var displaceBy = impact.displacedBy.point;\n var offset = memoizedOffset(displaceBy.x, displaceBy.y);\n return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate);\n };\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical);\n }\n\n return null;\n };\n\n return selector;\n}\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var draggingSelector = getDraggableSelector();\n var secondarySelector = getSecondarySelector();\n\n var selector = function selector(state, ownProps) {\n return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest;\n };\n\n return selector;\n};\nvar mapDispatchToProps = {\n dropAnimationFinished: dropAnimationFinished\n};\nvar ConnectedDraggable = connect(makeMapStateToProps, mapDispatchToProps, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Draggable);\n\nfunction PrivateDraggable(props) {\n var droppableContext = useRequiredContext(DroppableContext);\n var isUsingCloneFor = droppableContext.isUsingCloneFor;\n\n if (isUsingCloneFor === props.draggableId && !props.isClone) {\n return null;\n }\n\n return React.createElement(ConnectedDraggable, props);\n}\nfunction PublicDraggable(props) {\n var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true;\n var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking);\n var shouldRespectForcePress = Boolean(props.shouldRespectForcePress);\n return React.createElement(PrivateDraggable, _extends({}, props, {\n isClone: false,\n isEnabled: isEnabled,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress\n }));\n}\n\nfunction Droppable(props) {\n var appContext = useContext(AppContext);\n !appContext ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find app context') : invariant(false) : void 0;\n var contextId = appContext.contextId,\n isMovementAllowed = appContext.isMovementAllowed;\n var droppableRef = useRef(null);\n var placeholderRef = useRef(null);\n var children = props.children,\n droppableId = props.droppableId,\n type = props.type,\n mode = props.mode,\n direction = props.direction,\n ignoreContainerClipping = props.ignoreContainerClipping,\n isDropDisabled = props.isDropDisabled,\n isCombineEnabled = props.isCombineEnabled,\n snapshot = props.snapshot,\n useClone = props.useClone,\n updateViewportMaxScroll = props.updateViewportMaxScroll,\n getContainerForClone = props.getContainerForClone;\n var getDroppableRef = useCallback(function () {\n return droppableRef.current;\n }, []);\n var setDroppableRef = useCallback(function (value) {\n droppableRef.current = value;\n }, []);\n var getPlaceholderRef = useCallback(function () {\n return placeholderRef.current;\n }, []);\n var setPlaceholderRef = useCallback(function (value) {\n placeholderRef.current = value;\n }, []);\n useValidation({\n props: props,\n getDroppableRef: getDroppableRef,\n getPlaceholderRef: getPlaceholderRef\n });\n var onPlaceholderTransitionEnd = useCallback(function () {\n if (isMovementAllowed()) {\n updateViewportMaxScroll({\n maxScroll: getMaxWindowScroll()\n });\n }\n }, [isMovementAllowed, updateViewportMaxScroll]);\n useDroppablePublisher({\n droppableId: droppableId,\n type: type,\n mode: mode,\n direction: direction,\n isDropDisabled: isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n ignoreContainerClipping: ignoreContainerClipping,\n getDroppableRef: getDroppableRef\n });\n var placeholder = React.createElement(AnimateInOut, {\n on: props.placeholder,\n shouldAnimate: props.shouldAnimatePlaceholder\n }, function (_ref) {\n var onClose = _ref.onClose,\n data = _ref.data,\n animate = _ref.animate;\n return React.createElement(Placeholder$1, {\n placeholder: data,\n onClose: onClose,\n innerRef: setPlaceholderRef,\n animate: animate,\n contextId: contextId,\n onTransitionEnd: onPlaceholderTransitionEnd\n });\n });\n var provided = useMemo(function () {\n return {\n innerRef: setDroppableRef,\n placeholder: placeholder,\n droppableProps: {\n 'data-rbd-droppable-id': droppableId,\n 'data-rbd-droppable-context-id': contextId\n }\n };\n }, [contextId, droppableId, placeholder, setDroppableRef]);\n var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;\n var droppableContext = useMemo(function () {\n return {\n droppableId: droppableId,\n type: type,\n isUsingCloneFor: isUsingCloneFor\n };\n }, [droppableId, isUsingCloneFor, type]);\n\n function getClone() {\n if (!useClone) {\n return null;\n }\n\n var dragging = useClone.dragging,\n render = useClone.render;\n var node = React.createElement(PrivateDraggable, {\n draggableId: dragging.draggableId,\n index: dragging.source.index,\n isClone: true,\n isEnabled: true,\n shouldRespectForcePress: false,\n canDragInteractiveElements: true\n }, function (draggableProvided, draggableSnapshot) {\n return render(draggableProvided, draggableSnapshot, dragging);\n });\n return ReactDOM.createPortal(node, getContainerForClone());\n }\n\n return React.createElement(DroppableContext.Provider, {\n value: droppableContext\n }, children(provided, snapshot), getClone());\n}\n\nvar isMatchingType = function isMatchingType(type, critical) {\n return type === critical.droppable.type;\n};\n\nvar getDraggable = function getDraggable(critical, dimensions) {\n return dimensions.draggables[critical.draggable.id];\n};\n\nvar makeMapStateToProps$1 = function makeMapStateToProps() {\n var idleWithAnimation = {\n placeholder: null,\n shouldAnimatePlaceholder: true,\n snapshot: {\n isDraggingOver: false,\n draggingOverWith: null,\n draggingFromThisWith: null,\n isUsingPlaceholder: false\n },\n useClone: null\n };\n\n var idleWithoutAnimation = _extends({}, idleWithAnimation, {\n shouldAnimatePlaceholder: false\n });\n\n var getDraggableRubric = memoizeOne(function (descriptor) {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n });\n var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) {\n var draggableId = dragging.descriptor.id;\n var isHome = dragging.descriptor.droppableId === id;\n\n if (isHome) {\n var useClone = renderClone ? {\n render: renderClone,\n dragging: getDraggableRubric(dragging.descriptor)\n } : null;\n var _snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: isDraggingOverForConsumer ? draggableId : null,\n draggingFromThisWith: draggableId,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: false,\n snapshot: _snapshot,\n useClone: useClone\n };\n }\n\n if (!isEnabled) {\n return idleWithoutAnimation;\n }\n\n if (!isDraggingOverForImpact) {\n return idleWithAnimation;\n }\n\n var snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: draggableId,\n draggingFromThisWith: null,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: true,\n snapshot: snapshot,\n useClone: null\n };\n });\n\n var selector = function selector(state, ownProps) {\n var id = ownProps.droppableId;\n var type = ownProps.type;\n var isEnabled = !ownProps.isDropDisabled;\n var renderClone = ownProps.renderClone;\n\n if (state.isDragging) {\n var critical = state.critical;\n\n if (!isMatchingType(type, critical)) {\n return idleWithoutAnimation;\n }\n\n var dragging = getDraggable(critical, state.dimensions);\n var isDraggingOver = whatIsDraggedOver(state.impact) === id;\n return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (!isMatchingType(type, completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var _dragging = getDraggable(completed.critical, state.dimensions);\n\n return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone);\n }\n\n if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) {\n var _completed = state.completed;\n\n if (!isMatchingType(type, _completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var wasOver = whatIsDraggedOver(_completed.impact) === id;\n var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE');\n var isHome = _completed.critical.droppable.id === id;\n\n if (wasOver) {\n return wasCombining ? idleWithAnimation : idleWithoutAnimation;\n }\n\n if (isHome) {\n return idleWithAnimation;\n }\n\n return idleWithoutAnimation;\n }\n\n return idleWithoutAnimation;\n };\n\n return selector;\n};\nvar mapDispatchToProps$1 = {\n updateViewportMaxScroll: updateViewportMaxScroll\n};\n\nfunction getBody() {\n !document.body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0;\n return document.body;\n}\n\nvar defaultProps = {\n mode: 'standard',\n type: 'DEFAULT',\n direction: 'vertical',\n isDropDisabled: false,\n isCombineEnabled: false,\n ignoreContainerClipping: false,\n renderClone: null,\n getContainerForClone: getBody\n};\nvar ConnectedDroppable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Droppable);\nConnectedDroppable.defaultProps = defaultProps;\n\nexport { DragDropContext, PublicDraggable as Draggable, ConnectedDroppable as Droppable, resetServerContext, useKeyboardSensor, useMouseSensor, useTouchSensor };\n","import * as React from 'react';\nimport * as ReactDom from 'react-dom';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"/*\\n code is extracted from Calendly's embed stylesheet: https://assets.calendly.com/assets/external/widget.css\\n*/\\n\\n.calendly-inline-widget,\\n.calendly-inline-widget *,\\n.calendly-badge-widget,\\n.calendly-badge-widget *,\\n.calendly-overlay,\\n.calendly-overlay * {\\n font-size:16px;\\n line-height:1.2em\\n}\\n\\n.calendly-inline-widget iframe,\\n.calendly-badge-widget iframe,\\n.calendly-overlay iframe {\\n display:inline;\\n width:100%;\\n height:100%\\n}\\n\\n.calendly-popup-content {\\n position:relative\\n}\\n\\n.calendly-popup-content.calendly-mobile {\\n -webkit-overflow-scrolling:touch;\\n overflow-y:auto\\n}\\n\\n.calendly-overlay {\\n position:fixed;\\n top:0;\\n left:0;\\n right:0;\\n bottom:0;\\n overflow:hidden;\\n z-index:9999;\\n background-color:#a5a5a5;\\n background-color:rgba(31,31,31,0.4)\\n}\\n\\n.calendly-overlay .calendly-close-overlay {\\n position:absolute;\\n top:0;\\n left:0;\\n right:0;\\n bottom:0\\n}\\n\\n.calendly-overlay .calendly-popup {\\n box-sizing:border-box;\\n position:absolute;\\n top:50%;\\n left:50%;\\n -webkit-transform:translateY(-50%) translateX(-50%);\\n transform:translateY(-50%) translateX(-50%);\\n width:80%;\\n min-width:900px;\\n max-width:1000px;\\n height:90%;\\n max-height:680px\\n}\\n\\n@media (max-width: 975px) {\\n .calendly-overlay .calendly-popup {\\n position:fixed;\\n top:50px;\\n left:0;\\n right:0;\\n bottom:0;\\n -webkit-transform:none;\\n transform:none;\\n width:100%;\\n height:auto;\\n min-width:0;\\n max-height:none\\n }\\n}\\n\\n.calendly-overlay .calendly-popup .calendly-popup-content {\\n height:100%;\\n}\\n\\n.calendly-overlay .calendly-popup-close {\\n position:absolute;\\n top:25px;\\n right:25px;\\n color:#fff;\\n width:19px;\\n height:19px;\\n cursor:pointer;\\n background:url(https://assets.calendly.com/assets/external/close-icon.svg) no-repeat;\\n background-size:contain\\n}\\n\\n@media (max-width: 975px) {\\n .calendly-overlay .calendly-popup-close {\\n top:15px;\\n right:15px\\n }\\n}\\n\\n.calendly-badge-widget {\\n position:fixed;\\n right:20px;\\n bottom:15px;\\n z-index:9998\\n}\\n\\n.calendly-badge-widget .calendly-badge-content {\\n display:table-cell;\\n width:auto;\\n height:45px;\\n padding:0 30px;\\n border-radius:25px;\\n box-shadow:rgba(0,0,0,0.25) 0 2px 5px;\\n font-family:sans-serif;\\n text-align:center;\\n vertical-align:middle;\\n font-weight:bold;\\n font-size:14px;\\n color:#fff;\\n cursor:pointer\\n}\\n\\n.calendly-badge-widget .calendly-badge-content.calendly-white {\\n color:#666a73\\n}\\n\\n.calendly-badge-widget .calendly-badge-content span {\\n display:block;\\n font-size:12px\\n}\\n\\n.calendly-spinner {\\n position:absolute;\\n top:50%;\\n left:0;\\n right:0;\\n -webkit-transform:translateY(-50%);\\n transform:translateY(-50%);\\n text-align:center;\\n z-index:-1\\n}\\n\\n.calendly-spinner>div {\\n display:inline-block;\\n width:18px;\\n height:18px;\\n background-color:#e1e1e1;\\n border-radius:50%;\\n vertical-align:middle;\\n -webkit-animation:calendly-bouncedelay 1.4s infinite ease-in-out;\\n animation:calendly-bouncedelay 1.4s infinite ease-in-out;\\n -webkit-animation-fill-mode:both;\\n animation-fill-mode:both\\n}\\n\\n.calendly-spinner .calendly-bounce1 {\\n -webkit-animation-delay:-0.32s;\\n animation-delay:-0.32s\\n}\\n\\n.calendly-spinner .calendly-bounce2 {\\n -webkit-animation-delay:-0.16s;\\n animation-delay:-0.16s\\n}\\n\\n@-webkit-keyframes calendly-bouncedelay {\\n 0%,80%,100% {\\n -webkit-transform:scale(0);\\n transform:scale(0)\\n } \\n \\n 40%{\\n -webkit-transform:scale(1);\\n transform:scale(1)\\n }\\n}\\n\\n@keyframes calendly-bouncedelay{ \\n 0%,80%,100% {\\n -webkit-transform:scale(0);\\n transform:scale(0)\\n }\\n \\n 40% {\\n -webkit-transform:scale(1);\\n transform:scale(1)\\n }\\n}\";\nstyleInject(css_248z);\n\nfunction sanitizeColorString(str) {\n if (str.charAt(0) === \"#\") {\n return str.slice(1);\n }\n return str;\n}\nfunction sanitizePageSettingsProps(props) {\n if (props === null || props === void 0 ? void 0 : props.primaryColor) {\n props.primaryColor = sanitizeColorString(props.primaryColor);\n }\n if (props === null || props === void 0 ? void 0 : props.textColor) {\n props.textColor = sanitizeColorString(props.textColor);\n }\n if (props === null || props === void 0 ? void 0 : props.backgroundColor) {\n props.backgroundColor = sanitizeColorString(props.backgroundColor);\n }\n return props;\n}\n\nvar CalendlyEvent;\n(function (CalendlyEvent) {\n CalendlyEvent[\"PROFILE_PAGE_VIEWED\"] = \"calendly.profile_page_viewed\";\n CalendlyEvent[\"EVENT_TYPE_VIEWED\"] = \"calendly.event_type_viewed\";\n CalendlyEvent[\"DATE_AND_TIME_SELECTED\"] = \"calendly.date_and_time_selected\";\n CalendlyEvent[\"EVENT_SCHEDULED\"] = \"calendly.event_scheduled\";\n CalendlyEvent[\"PAGE_HEIGHT\"] = \"calendly.page_height\";\n})(CalendlyEvent || (CalendlyEvent = {}));\nvar formatCalendlyUrl = function (_a) {\n var url = _a.url, _b = _a.prefill, prefill = _b === void 0 ? {} : _b, _c = _a.pageSettings, pageSettings = _c === void 0 ? {} : _c, _d = _a.utm, utm = _d === void 0 ? {} : _d, embedType = _a.embedType;\n var sanitizedPageSettings = sanitizePageSettingsProps(pageSettings);\n var backgroundColor = sanitizedPageSettings.backgroundColor, hideEventTypeDetails = sanitizedPageSettings.hideEventTypeDetails, hideLandingPageDetails = sanitizedPageSettings.hideLandingPageDetails, primaryColor = sanitizedPageSettings.primaryColor, textColor = sanitizedPageSettings.textColor, hideGdprBanner = sanitizedPageSettings.hideGdprBanner;\n var customAnswers = prefill.customAnswers, date = prefill.date, email = prefill.email, firstName = prefill.firstName, guests = prefill.guests, lastName = prefill.lastName, location = prefill.location, smsReminderNumber = prefill.smsReminderNumber, name = prefill.name;\n var utmCampaign = utm.utmCampaign, utmContent = utm.utmContent, utmMedium = utm.utmMedium, utmSource = utm.utmSource, utmTerm = utm.utmTerm, salesforce_uuid = utm.salesforce_uuid;\n var queryStringIndex = url.indexOf(\"?\");\n var hasQueryString = queryStringIndex > -1;\n var queryString = url.slice(queryStringIndex + 1);\n var baseUrl = hasQueryString ? url.slice(0, queryStringIndex) : url;\n var updatedQueryString = [\n hasQueryString ? queryString : null,\n backgroundColor ? \"background_color=\".concat(backgroundColor) : null,\n hideEventTypeDetails ? \"hide_event_type_details=1\" : null,\n hideLandingPageDetails ? \"hide_landing_page_details=1\" : null,\n primaryColor ? \"primary_color=\".concat(primaryColor) : null,\n textColor ? \"text_color=\".concat(textColor) : null,\n hideGdprBanner ? \"hide_gdpr_banner=1\" : null,\n name ? \"name=\".concat(encodeURIComponent(name)) : null,\n smsReminderNumber ? \"phone_number=\".concat(encodeURIComponent(smsReminderNumber)) : null,\n location ? \"location=\".concat(encodeURIComponent(location)) : null,\n firstName ? \"first_name=\".concat(encodeURIComponent(firstName)) : null,\n lastName ? \"last_name=\".concat(encodeURIComponent(lastName)) : null,\n guests ? \"guests=\".concat(guests.map(encodeURIComponent).join(\",\")) : null,\n email ? \"email=\".concat(encodeURIComponent(email)) : null,\n date && date instanceof Date ? \"date=\".concat(formatDate(date)) : null,\n utmCampaign ? \"utm_campaign=\".concat(encodeURIComponent(utmCampaign)) : null,\n utmContent ? \"utm_content=\".concat(encodeURIComponent(utmContent)) : null,\n utmMedium ? \"utm_medium=\".concat(encodeURIComponent(utmMedium)) : null,\n utmSource ? \"utm_source=\".concat(encodeURIComponent(utmSource)) : null,\n utmTerm ? \"utm_term=\".concat(encodeURIComponent(utmTerm)) : null,\n salesforce_uuid\n ? \"salesforce_uuid=\".concat(encodeURIComponent(salesforce_uuid))\n : null,\n embedType ? \"embed_type=\".concat(embedType) : null,\n /*\n * https://github.com/tcampb/react-calendly/pull/31\n * embed_domain must be defined to receive messages from the Calendly iframe.\n */\n \"embed_domain=1\",\n ]\n .concat(customAnswers ? formatCustomAnswers(customAnswers) : [])\n .filter(function (item) { return item !== null; })\n .join(\"&\");\n return \"\".concat(baseUrl, \"?\").concat(updatedQueryString);\n};\nvar formatDate = function (d) {\n var month = d.getMonth() + 1;\n var day = d.getDate();\n var year = d.getFullYear();\n return [\n year,\n month < 10 ? \"0\".concat(month) : month,\n day < 10 ? \"0\".concat(day) : day,\n ].join(\"-\");\n};\nvar CUSTOM_ANSWER_PATTERN = /^a\\d{1,2}$/;\nvar formatCustomAnswers = function (customAnswers) {\n var customAnswersFiltered = Object.keys(customAnswers).filter(function (key) {\n return key.match(CUSTOM_ANSWER_PATTERN);\n });\n if (!customAnswersFiltered.length)\n return [];\n return customAnswersFiltered.map(function (key) { return \"\".concat(key, \"=\").concat(encodeURIComponent(customAnswers[key])); });\n};\n\nvar LoadingSpinner = /** @class */ (function (_super) {\n __extends(LoadingSpinner, _super);\n function LoadingSpinner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoadingSpinner.prototype.render = function () {\n return (React.createElement(\"div\", { className: \"calendly-spinner\" },\n React.createElement(\"div\", { className: \"calendly-bounce1\" }),\n React.createElement(\"div\", { className: \"calendly-bounce2\" }),\n React.createElement(\"div\", { className: \"calendly-bounce3\" })));\n };\n return LoadingSpinner;\n}(React.Component));\n\nvar defaultStyles = {\n minWidth: \"320px\",\n height: \"630px\",\n};\nvar InlineWidget = /** @class */ (function (_super) {\n __extends(InlineWidget, _super);\n function InlineWidget(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isLoading: true,\n };\n _this.onLoad = _this.onLoad.bind(_this);\n return _this;\n }\n InlineWidget.prototype.onLoad = function () {\n this.setState({\n isLoading: false,\n });\n };\n InlineWidget.prototype.render = function () {\n var src = formatCalendlyUrl({\n url: this.props.url,\n pageSettings: this.props.pageSettings,\n prefill: this.props.prefill,\n utm: this.props.utm,\n embedType: \"Inline\",\n });\n var LoadingSpinner$1 = this.props.LoadingSpinner || LoadingSpinner;\n return (React.createElement(\"div\", { className: \"calendly-inline-widget\", style: this.props.styles || defaultStyles },\n this.state.isLoading && React.createElement(LoadingSpinner$1, null),\n React.createElement(\"iframe\", { width: \"100%\", height: \"100%\", frameBorder: \"0\", title: this.props.iframeTitle || \"Calendly Scheduling Page\", onLoad: this.onLoad, src: src })));\n };\n return InlineWidget;\n}(React.Component));\n\nvar ModalContent = /** @class */ (function (_super) {\n __extends(ModalContent, _super);\n function ModalContent(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isLoading: true,\n };\n _this.onLoad = _this.onLoad.bind(_this);\n return _this;\n }\n ModalContent.prototype.onLoad = function () {\n this.setState({\n isLoading: false,\n });\n };\n ModalContent.prototype.render = function () {\n var src = formatCalendlyUrl({\n url: this.props.url,\n pageSettings: this.props.pageSettings,\n prefill: this.props.prefill,\n utm: this.props.utm,\n embedType: \"Inline\",\n });\n var LoadingSpinner$1 = this.props.LoadingSpinner || LoadingSpinner;\n return (React.createElement(React.Fragment, null,\n this.state.isLoading && React.createElement(LoadingSpinner$1, null),\n React.createElement(\"iframe\", { width: \"100%\", height: \"100%\", frameBorder: \"0\", title: this.props.iframeTitle || \"Calendly Scheduling Page\", onLoad: this.onLoad, src: src })));\n };\n return ModalContent;\n}(React.Component));\n\nvar Modal = (function (props) {\n if (!props.open)\n return null;\n if (!props.rootElement) {\n throw new Error('[react-calendly]: PopupModal rootElement property cannot be undefined');\n }\n return ReactDom.createPortal(React.createElement(\"div\", { className: \"calendly-overlay\" },\n React.createElement(\"div\", { onClick: props.onModalClose, className: \"calendly-close-overlay\" }),\n React.createElement(\"div\", { className: \"calendly-popup\" },\n React.createElement(\"div\", { className: \"calendly-popup-content\" },\n React.createElement(ModalContent, __assign({}, props)))),\n React.createElement(\"button\", { className: \"calendly-popup-close\", onClick: props.onModalClose, \"aria-label\": \"Close modal\", style: {\n display: \"block\",\n border: \"none\",\n padding: 0,\n } })), props.rootElement);\n});\n\nvar PopupButton = /** @class */ (function (_super) {\n __extends(PopupButton, _super);\n function PopupButton(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isOpen: false,\n };\n _this.onClick = _this.onClick.bind(_this);\n _this.onClose = _this.onClose.bind(_this);\n return _this;\n }\n PopupButton.prototype.onClick = function (e) {\n e.preventDefault();\n this.setState({\n isOpen: true,\n });\n };\n PopupButton.prototype.onClose = function (e) {\n e.stopPropagation();\n this.setState({\n isOpen: false,\n });\n };\n PopupButton.prototype.render = function () {\n return (React.createElement(React.Fragment, null,\n React.createElement(\"button\", { onClick: this.onClick, style: this.props.styles || {}, className: this.props.className || \"\" }, this.props.text),\n React.createElement(Modal, __assign({}, this.props, { open: this.state.isOpen, onModalClose: this.onClose, rootElement: this.props.rootElement }))));\n };\n return PopupButton;\n}(React.Component));\n\nvar PopupWidget = /** @class */ (function (_super) {\n __extends(PopupWidget, _super);\n function PopupWidget(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isOpen: false,\n };\n _this.onClick = _this.onClick.bind(_this);\n _this.onClose = _this.onClose.bind(_this);\n return _this;\n }\n PopupWidget.prototype.onClick = function () {\n this.setState({\n isOpen: true,\n });\n };\n PopupWidget.prototype.onClose = function (e) {\n e.stopPropagation();\n this.setState({\n isOpen: false,\n });\n };\n PopupWidget.prototype.render = function () {\n return (React.createElement(\"div\", { className: \"calendly-badge-widget\", onClick: this.onClick },\n React.createElement(\"div\", { className: \"calendly-badge-content\", style: {\n background: this.props.color || \"#00a2ff\",\n color: this.props.textColor || \"#ffffff\",\n } },\n this.props.text || \"Schedule time with me\",\n this.props.branding && React.createElement(\"span\", null, \"powered by Calendly\")),\n React.createElement(Modal, __assign({}, this.props, { open: this.state.isOpen, onModalClose: this.onClose, rootElement: this.props.rootElement }))));\n };\n return PopupWidget;\n}(React.Component));\n\nvar EVENT_NAME = \"message\";\nfunction useCalendlyEventListener(eventHandlers) {\n var _a = eventHandlers || {}, onDateAndTimeSelected = _a.onDateAndTimeSelected, onEventScheduled = _a.onEventScheduled, onEventTypeViewed = _a.onEventTypeViewed, onProfilePageViewed = _a.onProfilePageViewed, onPageHeightResize = _a.onPageHeightResize;\n React.useEffect(function () {\n var onMessage = function (e) {\n var eventName = e.data.event;\n if (eventName === CalendlyEvent.DATE_AND_TIME_SELECTED) {\n onDateAndTimeSelected && onDateAndTimeSelected(e);\n }\n else if (eventName === CalendlyEvent.EVENT_SCHEDULED) {\n onEventScheduled && onEventScheduled(e);\n }\n else if (eventName === CalendlyEvent.EVENT_TYPE_VIEWED) {\n onEventTypeViewed && onEventTypeViewed(e);\n }\n else if (eventName === CalendlyEvent.PROFILE_PAGE_VIEWED) {\n onProfilePageViewed && onProfilePageViewed(e);\n }\n else if (eventName === CalendlyEvent.PAGE_HEIGHT) {\n onPageHeightResize && onPageHeightResize(e);\n }\n };\n window.addEventListener(EVENT_NAME, onMessage);\n return function cleanup() {\n window.removeEventListener(EVENT_NAME, onMessage);\n };\n }, [eventHandlers]);\n}\n\nexport { InlineWidget, PopupButton, Modal as PopupModal, PopupWidget, useCalendlyEventListener };\n","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/([^,]*:\\S+\\([^)]*\\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst grow = keyframes`\n 0%, 100% {\n transform: scaleY(1);\n }\n\n 50% {\n transform: scaleY(2);\n }\n`;\n\nexport interface BarWaveProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst BarWave: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"1rem\",\n style = {},\n duration = \"1s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n \n \n \n \n \n );\n};\n\nexport default BarWave;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst leftSwing = keyframes`\n 50%,\n 100% {\n transform: translateX(0);\n }\n`;\n\nconst rightSwing = keyframes`\n 50% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n`;\n\nexport interface BouncingBallsProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst BouncingBalls: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"3rem\",\n height = \"1rem\",\n style = {},\n duration = \"0.5s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n
    \n
    \n
    \n \n );\n};\n\nexport default BouncingBalls;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst rotate = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst dash = keyframes`\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dashoffset: -125px;\n }\n`;\n\nexport interface CircularProgressProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst CircularProgress: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"3rem\",\n height = \"3rem\",\n style = {},\n duration = \"2s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n \n \n );\n};\n\nexport default CircularProgress;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spin = keyframes`\n to {\n transform: rotateY(540deg);\n }\n`;\n\nexport interface CoinProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst Coin: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"1.2s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n \n \n );\n};\n\nexport default Coin;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst fade = keyframes`\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n`;\n\nexport interface FadingBallsProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst FadingBalls: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"4rem\",\n height = \"1rem\",\n style = {},\n duration = \"0.8s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n
    \n
    \n
    \n \n );\n};\n\nexport default FadingBalls;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst fade = keyframes`\n to {\n opacity: 0.2;\n }\n`;\n\nexport interface FadingDotsProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst FadingDots: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"0.6s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n div {\n width: calc(${resolvedWidth} / 6);\n height: calc(${resolvedHeight} / 6);\n background-color: ${color};\n border-radius: 50%;\n animation: ${fade} ${duration} alternate ease-in-out infinite;\n }\n\n & > div:nth-of-type(2),\n & > div:nth-of-type(4) {\n animation-delay: calc(${duration} / 6);\n }\n\n & > div:nth-of-type(3),\n & > div:nth-of-type(5),\n & > div:nth-of-type(7) {\n animation-delay: calc(${duration} / 3);\n }\n\n & > div:nth-of-type(6),\n & > div:nth-of-type(8) {\n animation-delay: calc(${duration} / 2);\n }\n\n & > div:nth-of-type(9) {\n animation-delay: calc(${duration} * 2 / 3);\n }\n ` + ` ${className}`\n }\n >\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default FadingDots;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spin = keyframes`\n 50%,\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst fill = keyframes`\n 25%,\n 50% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n`;\n\nexport interface FillingBottleProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst FillingBottle: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"1.4s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n );\n};\n\nexport default FillingBottle;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst flip = keyframes`\n 50% {\n transform: rotateY(180deg);\n }\n 100% {\n transform: rotateY(180deg) rotateX(180deg);\n }\n`;\n\nexport interface FlippingSquareProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst FlippingSquare: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"1s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n \n \n );\n};\n\nexport default FlippingSquare;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spin = keyframes`\n to {\n transform: translate(-50%, -50%) rotate(360deg);\n }\n`;\n\nexport interface HypnosisProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst Hypnosis: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"1.2s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n \n \n \n \n );\n};\n\nexport default Hypnosis;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst wave = keyframes`\n from {\n transform: translateY(-60%);\n }\n to {\n transform: translateY(60%);\n }\n`;\n\nexport interface MessagingProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst Messaging: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"1rem\",\n height = \"1rem\",\n style = {},\n duration = \"0.4s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n
    \n
    \n
    \n \n );\n};\n\nexport default Messaging;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spin = keyframes`\n to {\n transform: rotate(360deg);\n }\n`;\n\nexport interface RingProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst Ring: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"3rem\",\n height = \"3rem\",\n style = {},\n duration = \"1s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n \n \n \n );\n};\n\nexport default Ring;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spin = keyframes`\n to {\n transform: rotate(360deg);\n }\n`;\n\nexport interface SpinProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst Spin: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"1.2s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n );\n};\n\nexport default Spin;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spinStretch = keyframes`\n 50% {\n transform: rotate(360deg) scale(0.4, 0.33);\n border-width: 8px;\n }\n 100% {\n transform: rotate(720deg) scale(1, 1);\n border-width: 3px;\n }\n`;\n\nexport interface SpinStretchProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst SpinStretch: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"1.2s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n );\n};\n\nexport default SpinStretch;\n","import { css, keyframes } from \"goober\";\n\nimport React from \"react\";\n\nconst spin = keyframes`\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst pulse = keyframes`\n from {\n transform: scale(0.5);\n }\n to {\n transform: scale(1);\n }\n`;\n\nexport interface TwinSpinProps {\n className?: string;\n color?: string;\n width?: number | string;\n height?: number | string;\n style?: React.CSSProperties;\n duration?: string;\n}\n\nconst TwinSpin: React.FC> = ({\n className = \"\",\n color = \"#0d6efd\",\n width = \"2rem\",\n height = \"2rem\",\n style = {},\n duration = \"0.6s\",\n ...others\n}) => {\n let resolvedWidth = typeof width === \"number\" ? `${width}px` : width;\n let resolvedHeight = typeof height === \"number\" ? `${height}px` : height;\n\n return (\n \n );\n};\n\nexport default TwinSpin;\n","module.exports = require('./lib/index.js');\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _core = require('../core');\n\nvar _metaProps = require('../metaProps');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultProps = {\n target: '_blank'\n};\n\nvar CSVDownload = function (_React$Component) {\n _inherits(CSVDownload, _React$Component);\n\n function CSVDownload(props) {\n _classCallCheck(this, CSVDownload);\n\n var _this = _possibleConstructorReturn(this, (CSVDownload.__proto__ || Object.getPrototypeOf(CSVDownload)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(CSVDownload, [{\n key: 'buildURI',\n value: function buildURI() {\n return _core.buildURI.apply(undefined, arguments);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n data = _props.data,\n headers = _props.headers,\n separator = _props.separator,\n enclosingCharacter = _props.enclosingCharacter,\n uFEFF = _props.uFEFF,\n target = _props.target,\n specs = _props.specs,\n replace = _props.replace;\n\n this.state.page = window.open(this.buildURI(data, uFEFF, headers, separator, enclosingCharacter), target, specs, replace);\n }\n }, {\n key: 'getWindow',\n value: function getWindow() {\n return this.state.page;\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n\n return CSVDownload;\n}(_react2.default.Component);\n\nCSVDownload.defaultProps = Object.assign(_metaProps.defaultProps, defaultProps);\nCSVDownload.propTypes = _metaProps.propTypes;\nexports.default = CSVDownload;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _core = require('../core');\n\nvar _metaProps = require('../metaProps');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CSVLink = function (_React$Component) {\n _inherits(CSVLink, _React$Component);\n\n function CSVLink(props) {\n _classCallCheck(this, CSVLink);\n\n var _this = _possibleConstructorReturn(this, (CSVLink.__proto__ || Object.getPrototypeOf(CSVLink)).call(this, props));\n\n _this.buildURI = _this.buildURI.bind(_this);\n return _this;\n }\n\n _createClass(CSVLink, [{\n key: 'buildURI',\n value: function buildURI() {\n return _core.buildURI.apply(undefined, arguments);\n }\n }, {\n key: 'handleLegacy',\n value: function handleLegacy(event) {\n var isAsync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (window.navigator.msSaveOrOpenBlob) {\n event.preventDefault();\n\n var _props = this.props,\n data = _props.data,\n headers = _props.headers,\n separator = _props.separator,\n filename = _props.filename,\n enclosingCharacter = _props.enclosingCharacter,\n uFEFF = _props.uFEFF;\n\n\n var csvData = isAsync && typeof data === 'function' ? data() : data;\n\n var blob = new Blob([uFEFF ? '\\uFEFF' : '', (0, _core.toCSV)(csvData, headers, separator, enclosingCharacter)]);\n window.navigator.msSaveBlob(blob, filename);\n\n return false;\n }\n }\n }, {\n key: 'handleAsyncClick',\n value: function handleAsyncClick(event) {\n var _this2 = this;\n\n var done = function done(proceed) {\n if (proceed === false) {\n event.preventDefault();\n return;\n }\n _this2.handleLegacy(event, true);\n };\n\n this.props.onClick(event, done);\n }\n }, {\n key: 'handleSyncClick',\n value: function handleSyncClick(event) {\n var stopEvent = this.props.onClick(event) === false;\n if (stopEvent) {\n event.preventDefault();\n return;\n }\n this.handleLegacy(event);\n }\n }, {\n key: 'handleClick',\n value: function handleClick() {\n var _this3 = this;\n\n return function (event) {\n if (typeof _this3.props.onClick === 'function') {\n return _this3.props.asyncOnClick ? _this3.handleAsyncClick(event) : _this3.handleSyncClick(event);\n }\n _this3.handleLegacy(event);\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n data = _props2.data,\n headers = _props2.headers,\n separator = _props2.separator,\n filename = _props2.filename,\n uFEFF = _props2.uFEFF,\n children = _props2.children,\n onClick = _props2.onClick,\n asyncOnClick = _props2.asyncOnClick,\n enclosingCharacter = _props2.enclosingCharacter,\n rest = _objectWithoutProperties(_props2, ['data', 'headers', 'separator', 'filename', 'uFEFF', 'children', 'onClick', 'asyncOnClick', 'enclosingCharacter']);\n\n var isNodeEnvironment = typeof window === 'undefined';\n var href = isNodeEnvironment ? '' : this.buildURI(data, uFEFF, headers, separator, enclosingCharacter);\n\n return _react2.default.createElement(\n 'a',\n _extends({\n download: filename\n }, rest, {\n ref: function ref(link) {\n return _this4.link = link;\n },\n target: '_self',\n href: href,\n onClick: this.handleClick()\n }),\n children\n );\n }\n }]);\n\n return CSVLink;\n}(_react2.default.Component);\n\nCSVLink.defaultProps = _metaProps.defaultProps;\nCSVLink.propTypes = _metaProps.propTypes;\nexports.default = CSVLink;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar isSafari = exports.isSafari = function isSafari() {\n return (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n );\n};\n\nvar isJsons = exports.isJsons = function isJsons(array) {\n return Array.isArray(array) && array.every(function (row) {\n return (typeof row === \"undefined\" ? \"undefined\" : _typeof(row)) === 'object' && !(row instanceof Array);\n });\n};\n\nvar isArrays = exports.isArrays = function isArrays(array) {\n return Array.isArray(array) && array.every(function (row) {\n return Array.isArray(row);\n });\n};\n\nvar jsonsHeaders = exports.jsonsHeaders = function jsonsHeaders(array) {\n return Array.from(array.map(function (json) {\n return Object.keys(json);\n }).reduce(function (a, b) {\n return new Set([].concat(_toConsumableArray(a), _toConsumableArray(b)));\n }, []));\n};\n\nvar jsons2arrays = exports.jsons2arrays = function jsons2arrays(jsons, headers) {\n headers = headers || jsonsHeaders(jsons);\n\n var headerLabels = headers;\n var headerKeys = headers;\n if (isJsons(headers)) {\n headerLabels = headers.map(function (header) {\n return header.label;\n });\n headerKeys = headers.map(function (header) {\n return header.key;\n });\n }\n\n var data = jsons.map(function (object) {\n return headerKeys.map(function (header) {\n return getHeaderValue(header, object);\n });\n });\n return [headerLabels].concat(_toConsumableArray(data));\n};\n\nvar getHeaderValue = exports.getHeaderValue = function getHeaderValue(property, obj) {\n var foundValue = property.replace(/\\[([^\\]]+)]/g, \".$1\").split(\".\").reduce(function (o, p, i, arr) {\n var value = o[p];\n if (value === undefined || value === null) {\n arr.splice(1);\n } else {\n return value;\n }\n }, obj);\n\n return foundValue === undefined ? property in obj ? obj[property] : '' : foundValue;\n};\n\nvar elementOrEmpty = exports.elementOrEmpty = function elementOrEmpty(element) {\n return typeof element === 'undefined' || element === null ? '' : element;\n};\n\nvar joiner = exports.joiner = function joiner(data) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n var enclosingCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '\"';\n\n return data.filter(function (e) {\n return e;\n }).map(function (row) {\n return row.map(function (element) {\n return elementOrEmpty(element);\n }).map(function (column) {\n return \"\" + enclosingCharacter + column + enclosingCharacter;\n }).join(separator);\n }).join(\"\\n\");\n};\n\nvar arrays2csv = exports.arrays2csv = function arrays2csv(data, headers, separator, enclosingCharacter) {\n return joiner(headers ? [headers].concat(_toConsumableArray(data)) : data, separator, enclosingCharacter);\n};\n\nvar jsons2csv = exports.jsons2csv = function jsons2csv(data, headers, separator, enclosingCharacter) {\n return joiner(jsons2arrays(data, headers), separator, enclosingCharacter);\n};\n\nvar string2csv = exports.string2csv = function string2csv(data, headers, separator, enclosingCharacter) {\n return headers ? headers.join(separator) + \"\\n\" + data : data.replace(/\"/g, '\"\"');\n};\n\nvar toCSV = exports.toCSV = function toCSV(data, headers, separator, enclosingCharacter) {\n if (isJsons(data)) return jsons2csv(data, headers, separator, enclosingCharacter);\n if (isArrays(data)) return arrays2csv(data, headers, separator, enclosingCharacter);\n if (typeof data === 'string') return string2csv(data, headers, separator);\n throw new TypeError(\"Data should be a \\\"String\\\", \\\"Array of arrays\\\" OR \\\"Array of objects\\\" \");\n};\n\nvar buildURI = exports.buildURI = function buildURI(data, uFEFF, headers, separator, enclosingCharacter) {\n var csv = toCSV(data, headers, separator, enclosingCharacter);\n var type = isSafari() ? 'application/csv' : 'text/csv';\n var blob = new Blob([uFEFF ? \"\\uFEFF\" : '', csv], { type: type });\n var dataURI = \"data:\" + type + \";charset=utf-8,\" + (uFEFF ? \"\\uFEFF\" : '') + csv;\n\n var URL = window.URL || window.webkitURL;\n\n return typeof URL.createObjectURL === 'undefined' ? dataURI : URL.createObjectURL(blob);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CSVLink = exports.CSVDownload = undefined;\n\nvar _Download = require('./components/Download');\n\nvar _Download2 = _interopRequireDefault(_Download);\n\nvar _Link = require('./components/Link');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CSVDownload = exports.CSVDownload = _Download2.default;\nvar CSVLink = exports.CSVLink = _Link2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PropsNotForwarded = exports.defaultProps = exports.propTypes = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar propTypes = exports.propTypes = {\n data: (0, _propTypes.oneOfType)([_propTypes.string, _propTypes.array, _propTypes.func]).isRequired,\n headers: _propTypes.array,\n target: _propTypes.string,\n separator: _propTypes.string,\n filename: _propTypes.string,\n uFEFF: _propTypes.bool,\n onClick: _propTypes.func,\n asyncOnClick: _propTypes.bool,\n enclosingCharacter: _propTypes.string\n};\n\nvar defaultProps = exports.defaultProps = {\n separator: ',',\n filename: 'generatedBy_react-csv.csv',\n uFEFF: true,\n asyncOnClick: false,\n enclosingCharacter: '\"'\n};\n\nvar PropsNotForwarded = exports.PropsNotForwarded = ['data', 'headers'];","/**\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) continue; target[key] = source[key]; } return target; }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n function ReCAPTCHA() {\n var _this;\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n var _proto = ReCAPTCHA.prototype;\n _proto.getCaptchaFunction = function getCaptchaFunction(fnName) {\n if (this.props.grecaptcha) {\n if (this.props.grecaptcha.enterprise) {\n return this.props.grecaptcha.enterprise[fnName];\n }\n return this.props.grecaptcha[fnName];\n }\n return null;\n };\n _proto.getValue = function getValue() {\n var getResponse = this.getCaptchaFunction(\"getResponse\");\n if (getResponse && this._widgetId !== undefined) {\n return getResponse(this._widgetId);\n }\n return null;\n };\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n return null;\n };\n _proto.execute = function execute() {\n var execute = this.getCaptchaFunction(\"execute\");\n if (execute && this._widgetId !== undefined) {\n return execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n _this2.execute();\n });\n };\n _proto.reset = function reset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter && this._widgetId !== undefined) {\n resetter(this._widgetId);\n }\n };\n _proto.forceReset = function forceReset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter) {\n resetter();\n }\n };\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n _proto.explicitRender = function explicitRender() {\n var render = this.getCaptchaFunction(\"render\");\n if (render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge,\n isolated: this.props.isolated\n });\n this.captcha.appendChild(wrapper);\n }\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n isolated = _this$props.isolated,\n childProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n /* eslint-enable no-unused-vars */\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n return ReCAPTCHA;\n}(React.Component);\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"]),\n isolated: PropTypes.bool\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n if (dynamicOptions.enterprise) {\n return \"https://\" + hostname + \"/recaptcha/enterprise.js?onload=\" + callbackName + \"&render=explicit\";\n }\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName,\n attributes: getOptions().nonce ? {\n nonce: getOptions().nonce\n } : {}\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","/** @license React v17.0.2\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'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","export function fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf\n ? setPrototypeOf(target, prototype)\n : (target.__proto__ = prototype);\n}\nexport function fixStack(target, fn) {\n if (fn === void 0) { fn = target.constructor; }\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n}\n//# sourceMappingURL=utils.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { fixProto, fixStack } from './utils';\nvar CustomError = (function (_super) {\n __extends(CustomError, _super);\n function CustomError(message, options) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message, options) || this;\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false,\n configurable: true,\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n return CustomError;\n}(Error));\nexport { CustomError };\n//# sourceMappingURL=custom-error.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { CustomError } from 'ts-custom-error';\n/**\n * Custom Error class of type Exception.\n */\nvar Exception = /** @class */ (function (_super) {\n __extends(Exception, _super);\n /**\n * Allows Exception to be constructed directly\n * with some message and prototype definition.\n */\n function Exception(message) {\n if (message === void 0) { message = undefined; }\n var _this = _super.call(this, message) || this;\n _this.message = message;\n return _this;\n }\n Exception.prototype.getKind = function () {\n var ex = this.constructor;\n return ex.kind;\n };\n /**\n * It's typed as string so it can be extended and overriden.\n */\n Exception.kind = 'Exception';\n return Exception;\n}(CustomError));\nexport default Exception;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ArgumentException = /** @class */ (function (_super) {\n __extends(ArgumentException, _super);\n function ArgumentException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ArgumentException.kind = 'ArgumentException';\n return ArgumentException;\n}(Exception));\nexport default ArgumentException;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar IllegalArgumentException = /** @class */ (function (_super) {\n __extends(IllegalArgumentException, _super);\n function IllegalArgumentException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IllegalArgumentException.kind = 'IllegalArgumentException';\n return IllegalArgumentException;\n}(Exception));\nexport default IllegalArgumentException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from './IllegalArgumentException';\nvar BinaryBitmap = /** @class */ (function () {\n function BinaryBitmap(binarizer) {\n this.binarizer = binarizer;\n if (binarizer === null) {\n throw new IllegalArgumentException('Binarizer must be non-null.');\n }\n }\n /**\n * @return The width of the bitmap.\n */\n BinaryBitmap.prototype.getWidth = function () {\n return this.binarizer.getWidth();\n };\n /**\n * @return The height of the bitmap.\n */\n BinaryBitmap.prototype.getHeight = function () {\n return this.binarizer.getHeight();\n };\n /**\n * Converts one row of luminance data to 1 bit data. May actually do the conversion, or return\n * cached data. Callers should assume this method is expensive and call it as seldom as possible.\n * This method is intended for decoding 1D barcodes and may choose to apply sharpening.\n *\n * @param y The row to fetch, which must be in [0, bitmap height)\n * @param row An optional preallocated array. If null or too small, it will be ignored.\n * If used, the Binarizer will call BitArray.clear(). Always use the returned object.\n * @return The array of bits for this row (true means black).\n * @throws NotFoundException if row can't be binarized\n */\n BinaryBitmap.prototype.getBlackRow = function (y /*int*/, row) {\n return this.binarizer.getBlackRow(y, row);\n };\n /**\n * Converts a 2D array of luminance data to 1 bit. As above, assume this method is expensive\n * and do not call it repeatedly. This method is intended for decoding 2D barcodes and may or\n * may not apply sharpening. Therefore, a row from this matrix may not be identical to one\n * fetched using getBlackRow(), so don't mix and match between them.\n *\n * @return The 2D array of bits for the image (true means black).\n * @throws NotFoundException if image can't be binarized to make a matrix\n */\n BinaryBitmap.prototype.getBlackMatrix = function () {\n // The matrix is created on demand the first time it is requested, then cached. There are two\n // reasons for this:\n // 1. This work will never be done if the caller only installs 1D Reader objects, or if a\n // 1D Reader finds a barcode before the 2D Readers run.\n // 2. This work will only be done once even if the caller installs multiple 2D Readers.\n if (this.matrix === null || this.matrix === undefined) {\n this.matrix = this.binarizer.getBlackMatrix();\n }\n return this.matrix;\n };\n /**\n * @return Whether this bitmap can be cropped.\n */\n BinaryBitmap.prototype.isCropSupported = function () {\n return this.binarizer.getLuminanceSource().isCropSupported();\n };\n /**\n * Returns a new object with cropped image data. Implementations may keep a reference to the\n * original data rather than a copy. Only callable if isCropSupported() is true.\n *\n * @param left The left coordinate, which must be in [0,getWidth())\n * @param top The top coordinate, which must be in [0,getHeight())\n * @param width The width of the rectangle to crop.\n * @param height The height of the rectangle to crop.\n * @return A cropped version of this object.\n */\n BinaryBitmap.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n var newSource = this.binarizer.getLuminanceSource().crop(left, top, width, height);\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n };\n /**\n * @return Whether this bitmap supports counter-clockwise rotation.\n */\n BinaryBitmap.prototype.isRotateSupported = function () {\n return this.binarizer.getLuminanceSource().isRotateSupported();\n };\n /**\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n BinaryBitmap.prototype.rotateCounterClockwise = function () {\n var newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise();\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n };\n /**\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n BinaryBitmap.prototype.rotateCounterClockwise45 = function () {\n var newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise45();\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n };\n /*@Override*/\n BinaryBitmap.prototype.toString = function () {\n try {\n return this.getBlackMatrix().toString();\n }\n catch (e /*: NotFoundException*/) {\n return '';\n }\n };\n return BinaryBitmap;\n}());\nexport default BinaryBitmap;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ChecksumException = /** @class */ (function (_super) {\n __extends(ChecksumException, _super);\n function ChecksumException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChecksumException.getChecksumInstance = function () {\n return new ChecksumException();\n };\n ChecksumException.kind = 'ChecksumException';\n return ChecksumException;\n}(Exception));\nexport default ChecksumException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * This class hierarchy provides a set of methods to convert luminance data to 1 bit data.\n * It allows the algorithm to vary polymorphically, for example allowing a very expensive\n * thresholding technique for servers and a fast one for mobile. It also permits the implementation\n * to vary, e.g. a JNI version for Android and a Java fallback version for other platforms.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar Binarizer = /** @class */ (function () {\n function Binarizer(source) {\n this.source = source;\n }\n Binarizer.prototype.getLuminanceSource = function () {\n return this.source;\n };\n Binarizer.prototype.getWidth = function () {\n return this.source.getWidth();\n };\n Binarizer.prototype.getHeight = function () {\n return this.source.getHeight();\n };\n return Binarizer;\n}());\nexport default Binarizer;\n","var System = /** @class */ (function () {\n function System() {\n }\n // public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)\n /**\n * Makes a copy of a array.\n */\n System.arraycopy = function (src, srcPos, dest, destPos, length) {\n // TODO: better use split or set?\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n };\n /**\n * Returns the current time in milliseconds.\n */\n System.currentTimeMillis = function () {\n return Date.now();\n };\n return System;\n}());\nexport default System;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar IndexOutOfBoundsException = /** @class */ (function (_super) {\n __extends(IndexOutOfBoundsException, _super);\n function IndexOutOfBoundsException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IndexOutOfBoundsException.kind = 'IndexOutOfBoundsException';\n return IndexOutOfBoundsException;\n}(Exception));\nexport default IndexOutOfBoundsException;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport IndexOutOfBoundsException from './IndexOutOfBoundsException';\n/**\n * Custom Error class of type Exception.\n */\nvar ArrayIndexOutOfBoundsException = /** @class */ (function (_super) {\n __extends(ArrayIndexOutOfBoundsException, _super);\n function ArrayIndexOutOfBoundsException(index, message) {\n if (index === void 0) { index = undefined; }\n if (message === void 0) { message = undefined; }\n var _this = _super.call(this, message) || this;\n _this.index = index;\n _this.message = message;\n return _this;\n }\n ArrayIndexOutOfBoundsException.kind = 'ArrayIndexOutOfBoundsException';\n return ArrayIndexOutOfBoundsException;\n}(IndexOutOfBoundsException));\nexport default ArrayIndexOutOfBoundsException;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport System from './System';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport ArrayIndexOutOfBoundsException from '../ArrayIndexOutOfBoundsException';\nvar Arrays = /** @class */ (function () {\n function Arrays() {\n }\n /**\n * Assigns the specified int value to each element of the specified array\n * of ints.\n *\n * @param a the array to be filled\n * @param val the value to be stored in all elements of the array\n */\n Arrays.fill = function (a, val) {\n for (var i = 0, len = a.length; i < len; i++)\n a[i] = val;\n };\n /**\n * Assigns the specified int value to each element of the specified\n * range of the specified array of ints. The range to be filled\n * extends from index {@code fromIndex}, inclusive, to index\n * {@code toIndex}, exclusive. (If {@code fromIndex==toIndex}, the\n * range to be filled is empty.)\n *\n * @param a the array to be filled\n * @param fromIndex the index of the first element (inclusive) to be\n * filled with the specified value\n * @param toIndex the index of the last element (exclusive) to be\n * filled with the specified value\n * @param val the value to be stored in all elements of the array\n * @throws IllegalArgumentException if {@code fromIndex > toIndex}\n * @throws ArrayIndexOutOfBoundsException if {@code fromIndex < 0} or\n * {@code toIndex > a.length}\n */\n Arrays.fillWithin = function (a, fromIndex, toIndex, val) {\n Arrays.rangeCheck(a.length, fromIndex, toIndex);\n for (var i = fromIndex; i < toIndex; i++)\n a[i] = val;\n };\n /**\n * Checks that {@code fromIndex} and {@code toIndex} are in\n * the range and throws an exception if they aren't.\n */\n Arrays.rangeCheck = function (arrayLength, fromIndex, toIndex) {\n if (fromIndex > toIndex) {\n throw new IllegalArgumentException('fromIndex(' + fromIndex + ') > toIndex(' + toIndex + ')');\n }\n if (fromIndex < 0) {\n throw new ArrayIndexOutOfBoundsException(fromIndex);\n }\n if (toIndex > arrayLength) {\n throw new ArrayIndexOutOfBoundsException(toIndex);\n }\n };\n Arrays.asList = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args;\n };\n Arrays.create = function (rows, cols, value) {\n var arr = Array.from({ length: rows });\n return arr.map(function (x) { return Array.from({ length: cols }).fill(value); });\n };\n Arrays.createInt32Array = function (rows, cols, value) {\n var arr = Array.from({ length: rows });\n return arr.map(function (x) { return Int32Array.from({ length: cols }).fill(value); });\n };\n Arrays.equals = function (first, second) {\n if (!first) {\n return false;\n }\n if (!second) {\n return false;\n }\n if (!first.length) {\n return false;\n }\n if (!second.length) {\n return false;\n }\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0, length_1 = first.length; i < length_1; i++) {\n if (first[i] !== second[i]) {\n return false;\n }\n }\n return true;\n };\n Arrays.hashCode = function (a) {\n var e_1, _a;\n if (a === null) {\n return 0;\n }\n var result = 1;\n try {\n for (var a_1 = __values(a), a_1_1 = a_1.next(); !a_1_1.done; a_1_1 = a_1.next()) {\n var element = a_1_1.value;\n result = 31 * result + element;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (a_1_1 && !a_1_1.done && (_a = a_1.return)) _a.call(a_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n };\n Arrays.fillUint8Array = function (a, value) {\n for (var i = 0; i !== a.length; i++) {\n a[i] = value;\n }\n };\n Arrays.copyOf = function (original, newLength) {\n return original.slice(0, newLength);\n };\n Arrays.copyOfUint8Array = function (original, newLength) {\n if (original.length <= newLength) {\n var newArray = new Uint8Array(newLength);\n newArray.set(original);\n return newArray;\n }\n return original.slice(0, newLength);\n };\n Arrays.copyOfRange = function (original, from, to) {\n var newLength = to - from;\n var copy = new Int32Array(newLength);\n System.arraycopy(original, from, copy, 0, newLength);\n return copy;\n };\n /*\n * Returns the index of of the element in a sorted array or (-n-1) where n is the insertion point\n * for the new element.\n * Parameters:\n * ar - A sorted array\n * el - An element to search for\n * comparator - A comparator function. The function takes two arguments: (a, b) and returns:\n * a negative number if a is less than b;\n * 0 if a is equal to b;\n * a positive number of a is greater than b.\n * The array may contain duplicate elements. If there are more than one equal elements in the array,\n * the returned value can be the index of any one of the equal elements.\n *\n * http://jsfiddle.net/aryzhov/pkfst550/\n */\n Arrays.binarySearch = function (ar, el, comparator) {\n if (undefined === comparator) {\n comparator = Arrays.numberComparator;\n }\n var m = 0;\n var n = ar.length - 1;\n while (m <= n) {\n var k = (n + m) >> 1;\n var cmp = comparator(el, ar[k]);\n if (cmp > 0) {\n m = k + 1;\n }\n else if (cmp < 0) {\n n = k - 1;\n }\n else {\n return k;\n }\n }\n return -m - 1;\n };\n Arrays.numberComparator = function (a, b) {\n return a - b;\n };\n return Arrays;\n}());\nexport default Arrays;\n","/**\n * Ponyfill for Java's Integer class.\n */\nvar Integer = /** @class */ (function () {\n function Integer() {\n }\n Integer.numberOfTrailingZeros = function (i) {\n var y;\n if (i === 0)\n return 32;\n var n = 31;\n y = i << 16;\n if (y !== 0) {\n n -= 16;\n i = y;\n }\n y = i << 8;\n if (y !== 0) {\n n -= 8;\n i = y;\n }\n y = i << 4;\n if (y !== 0) {\n n -= 4;\n i = y;\n }\n y = i << 2;\n if (y !== 0) {\n n -= 2;\n i = y;\n }\n return n - ((i << 1) >>> 31);\n };\n Integer.numberOfLeadingZeros = function (i) {\n // HD, Figure 5-6\n if (i === 0) {\n return 32;\n }\n var n = 1;\n if (i >>> 16 === 0) {\n n += 16;\n i <<= 16;\n }\n if (i >>> 24 === 0) {\n n += 8;\n i <<= 8;\n }\n if (i >>> 28 === 0) {\n n += 4;\n i <<= 4;\n }\n if (i >>> 30 === 0) {\n n += 2;\n i <<= 2;\n }\n n -= i >>> 31;\n return n;\n };\n Integer.toHexString = function (i) {\n return i.toString(16);\n };\n Integer.toBinaryString = function (intNumber) {\n return String(parseInt(String(intNumber), 2));\n };\n // Returns the number of one-bits in the two's complement binary representation of the specified int value. This function is sometimes referred to as the population count.\n // Returns:\n // the number of one-bits in the two's complement binary representation of the specified int value.\n Integer.bitCount = function (i) {\n // HD, Figure 5-2\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n i = (i + (i >>> 4)) & 0x0f0f0f0f;\n i = i + (i >>> 8);\n i = i + (i >>> 16);\n return i & 0x3f;\n };\n Integer.truncDivision = function (dividend, divisor) {\n return Math.trunc(dividend / divisor);\n };\n /**\n * Converts A string to an integer.\n * @param s A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in numString. If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal. All other strings are considered decimal.\n */\n Integer.parseInt = function (num, radix) {\n if (radix === void 0) { radix = undefined; }\n return parseInt(num, radix);\n };\n Integer.MIN_VALUE_32_BITS = -2147483648;\n Integer.MAX_VALUE = Number.MAX_SAFE_INTEGER;\n return Integer;\n}());\nexport default Integer;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport Arrays from '../util/Arrays';\nimport Integer from '../util/Integer';\nimport System from '../util/System';\n/**\n *

    A simple, fast array of bits, represented compactly by an array of ints internally.

    \n *\n * @author Sean Owen\n */\nvar BitArray /*implements Cloneable*/ = /** @class */ (function () {\n // public constructor() {\n // this.size = 0\n // this.bits = new Int32Array(1)\n // }\n // public constructor(size?: number /*int*/) {\n // if (undefined === size) {\n // this.size = 0\n // } else {\n // this.size = size\n // }\n // this.bits = this.makeArray(size)\n // }\n // For testing only\n function BitArray(size /*int*/, bits) {\n if (undefined === size) {\n this.size = 0;\n this.bits = new Int32Array(1);\n }\n else {\n this.size = size;\n if (undefined === bits || null === bits) {\n this.bits = BitArray.makeArray(size);\n }\n else {\n this.bits = bits;\n }\n }\n }\n BitArray.prototype.getSize = function () {\n return this.size;\n };\n BitArray.prototype.getSizeInBytes = function () {\n return Math.floor((this.size + 7) / 8);\n };\n BitArray.prototype.ensureCapacity = function (size /*int*/) {\n if (size > this.bits.length * 32) {\n var newBits = BitArray.makeArray(size);\n System.arraycopy(this.bits, 0, newBits, 0, this.bits.length);\n this.bits = newBits;\n }\n };\n /**\n * @param i bit to get\n * @return true iff bit i is set\n */\n BitArray.prototype.get = function (i /*int*/) {\n return (this.bits[Math.floor(i / 32)] & (1 << (i & 0x1F))) !== 0;\n };\n /**\n * Sets bit i.\n *\n * @param i bit to set\n */\n BitArray.prototype.set = function (i /*int*/) {\n this.bits[Math.floor(i / 32)] |= 1 << (i & 0x1F);\n };\n /**\n * Flips bit i.\n *\n * @param i bit to set\n */\n BitArray.prototype.flip = function (i /*int*/) {\n this.bits[Math.floor(i / 32)] ^= 1 << (i & 0x1F);\n };\n /**\n * @param from first bit to check\n * @return index of first bit that is set, starting from the given index, or size if none are set\n * at or beyond this given index\n * @see #getNextUnset(int)\n */\n BitArray.prototype.getNextSet = function (from /*int*/) {\n var size = this.size;\n if (from >= size) {\n return size;\n }\n var bits = this.bits;\n var bitsOffset = Math.floor(from / 32);\n var currentBits = bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n var length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = bits[bitsOffset];\n }\n var result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);\n return result > size ? size : result;\n };\n /**\n * @param from index to start looking for unset bit\n * @return index of next unset bit, or {@code size} if none are unset until the end\n * @see #getNextSet(int)\n */\n BitArray.prototype.getNextUnset = function (from /*int*/) {\n var size = this.size;\n if (from >= size) {\n return size;\n }\n var bits = this.bits;\n var bitsOffset = Math.floor(from / 32);\n var currentBits = ~bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n var length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = ~bits[bitsOffset];\n }\n var result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);\n return result > size ? size : result;\n };\n /**\n * Sets a block of 32 bits, starting at bit i.\n *\n * @param i first bit to set\n * @param newBits the new value of the next 32 bits. Note again that the least-significant bit\n * corresponds to bit i, the next-least-significant to i+1, and so on.\n */\n BitArray.prototype.setBulk = function (i /*int*/, newBits /*int*/) {\n this.bits[Math.floor(i / 32)] = newBits;\n };\n /**\n * Sets a range of bits.\n *\n * @param start start of range, inclusive.\n * @param end end of range, exclusive\n */\n BitArray.prototype.setRange = function (start /*int*/, end /*int*/) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException();\n }\n if (end === start) {\n return;\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n var firstInt = Math.floor(start / 32);\n var lastInt = Math.floor(end / 32);\n var bits = this.bits;\n for (var i = firstInt; i <= lastInt; i++) {\n var firstBit = i > firstInt ? 0 : start & 0x1F;\n var lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n var mask = (2 << lastBit) - (1 << firstBit);\n bits[i] |= mask;\n }\n };\n /**\n * Clears all bits (sets to false).\n */\n BitArray.prototype.clear = function () {\n var max = this.bits.length;\n var bits = this.bits;\n for (var i = 0; i < max; i++) {\n bits[i] = 0;\n }\n };\n /**\n * Efficient method to check if a range of bits is set, or not set.\n *\n * @param start start of range, inclusive.\n * @param end end of range, exclusive\n * @param value if true, checks that bits in range are set, otherwise checks that they are not set\n * @return true iff all bits are set or not set in range, according to value argument\n * @throws IllegalArgumentException if end is less than start or the range is not contained in the array\n */\n BitArray.prototype.isRange = function (start /*int*/, end /*int*/, value) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException();\n }\n if (end === start) {\n return true; // empty range matches\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n var firstInt = Math.floor(start / 32);\n var lastInt = Math.floor(end / 32);\n var bits = this.bits;\n for (var i = firstInt; i <= lastInt; i++) {\n var firstBit = i > firstInt ? 0 : start & 0x1F;\n var lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n var mask = (2 << lastBit) - (1 << firstBit) & 0xFFFFFFFF;\n // TYPESCRIPTPORT: & 0xFFFFFFFF added to discard anything after 32 bits, as ES has 53 bits\n // Return false if we're looking for 1s and the masked bits[i] isn't all 1s (is: that,\n // equals the mask, or we're looking for 0s and the masked portion is not all 0s\n if ((bits[i] & mask) !== (value ? mask : 0)) {\n return false;\n }\n }\n return true;\n };\n BitArray.prototype.appendBit = function (bit) {\n this.ensureCapacity(this.size + 1);\n if (bit) {\n this.bits[Math.floor(this.size / 32)] |= 1 << (this.size & 0x1F);\n }\n this.size++;\n };\n /**\n * Appends the least-significant bits, from value, in order from most-significant to\n * least-significant. For example, appending 6 bits from 0x000001E will append the bits\n * 0, 1, 1, 1, 1, 0 in that order.\n *\n * @param value {@code int} containing bits to append\n * @param numBits bits from value to append\n */\n BitArray.prototype.appendBits = function (value /*int*/, numBits /*int*/) {\n if (numBits < 0 || numBits > 32) {\n throw new IllegalArgumentException('Num bits must be between 0 and 32');\n }\n this.ensureCapacity(this.size + numBits);\n // const appendBit = this.appendBit;\n for (var numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) {\n this.appendBit(((value >> (numBitsLeft - 1)) & 0x01) === 1);\n }\n };\n BitArray.prototype.appendBitArray = function (other) {\n var otherSize = other.size;\n this.ensureCapacity(this.size + otherSize);\n // const appendBit = this.appendBit;\n for (var i = 0; i < otherSize; i++) {\n this.appendBit(other.get(i));\n }\n };\n BitArray.prototype.xor = function (other) {\n if (this.size !== other.size) {\n throw new IllegalArgumentException('Sizes don\\'t match');\n }\n var bits = this.bits;\n for (var i = 0, length_1 = bits.length; i < length_1; i++) {\n // The last int could be incomplete (i.e. not have 32 bits in\n // it) but there is no problem since 0 XOR 0 == 0.\n bits[i] ^= other.bits[i];\n }\n };\n /**\n *\n * @param bitOffset first bit to start writing\n * @param array array to write into. Bytes are written most-significant byte first. This is the opposite\n * of the internal representation, which is exposed by {@link #getBitArray()}\n * @param offset position in array to start writing\n * @param numBytes how many bytes to write\n */\n BitArray.prototype.toBytes = function (bitOffset /*int*/, array, offset /*int*/, numBytes /*int*/) {\n for (var i = 0; i < numBytes; i++) {\n var theByte = 0;\n for (var j = 0; j < 8; j++) {\n if (this.get(bitOffset)) {\n theByte |= 1 << (7 - j);\n }\n bitOffset++;\n }\n array[offset + i] = /*(byte)*/ theByte;\n }\n };\n /**\n * @return underlying array of ints. The first element holds the first 32 bits, and the least\n * significant bit is bit 0.\n */\n BitArray.prototype.getBitArray = function () {\n return this.bits;\n };\n /**\n * Reverses all bits in the array.\n */\n BitArray.prototype.reverse = function () {\n var newBits = new Int32Array(this.bits.length);\n // reverse all int's first\n var len = Math.floor((this.size - 1) / 32);\n var oldBitsLen = len + 1;\n var bits = this.bits;\n for (var i = 0; i < oldBitsLen; i++) {\n var x = bits[i];\n x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1);\n x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2);\n x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4);\n x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8);\n x = ((x >> 16) & 0x0000ffff) | ((x & 0x0000ffff) << 16);\n newBits[len - i] = /*(int)*/ x;\n }\n // now correct the int's if the bit size isn't a multiple of 32\n if (this.size !== oldBitsLen * 32) {\n var leftOffset = oldBitsLen * 32 - this.size;\n var currentInt = newBits[0] >>> leftOffset;\n for (var i = 1; i < oldBitsLen; i++) {\n var nextInt = newBits[i];\n currentInt |= nextInt << (32 - leftOffset);\n newBits[i - 1] = currentInt;\n currentInt = nextInt >>> leftOffset;\n }\n newBits[oldBitsLen - 1] = currentInt;\n }\n this.bits = newBits;\n };\n BitArray.makeArray = function (size /*int*/) {\n return new Int32Array(Math.floor((size + 31) / 32));\n };\n /*@Override*/\n BitArray.prototype.equals = function (o) {\n if (!(o instanceof BitArray)) {\n return false;\n }\n var other = o;\n return this.size === other.size && Arrays.equals(this.bits, other.bits);\n };\n /*@Override*/\n BitArray.prototype.hashCode = function () {\n return 31 * this.size + Arrays.hashCode(this.bits);\n };\n /*@Override*/\n BitArray.prototype.toString = function () {\n var result = '';\n for (var i = 0, size = this.size; i < size; i++) {\n if ((i & 0x07) === 0) {\n result += ' ';\n }\n result += this.get(i) ? 'X' : '.';\n }\n return result;\n };\n /*@Override*/\n BitArray.prototype.clone = function () {\n return new BitArray(this.size, this.bits.slice());\n };\n /**\n * converts to boolean array.\n */\n BitArray.prototype.toArray = function () {\n var result = [];\n for (var i = 0, size = this.size; i < size; i++) {\n result.push(this.get(i));\n }\n return result;\n };\n return BitArray;\n}());\nexport default BitArray;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * Encapsulates a type of hint that a caller may pass to a barcode reader to help it\n * more quickly or accurately decode it. It is up to implementations to decide what,\n * if anything, to do with the information that is supplied.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n * @see Reader#decode(BinaryBitmap,java.util.Map)\n */\nvar DecodeHintType;\n(function (DecodeHintType) {\n /**\n * Unspecified, application-specific hint. Maps to an unspecified {@link Object}.\n */\n DecodeHintType[DecodeHintType[\"OTHER\"] = 0] = \"OTHER\"; /*(Object.class)*/\n /**\n * Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"PURE_BARCODE\"] = 1] = \"PURE_BARCODE\"; /*(Void.class)*/\n /**\n * Image is known to be of one of a few possible formats.\n * Maps to a {@link List} of {@link BarcodeFormat}s.\n */\n DecodeHintType[DecodeHintType[\"POSSIBLE_FORMATS\"] = 2] = \"POSSIBLE_FORMATS\"; /*(List.class)*/\n /**\n * Spend more time to try to find a barcode; optimize for accuracy, not speed.\n * Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"TRY_HARDER\"] = 3] = \"TRY_HARDER\"; /*(Void.class)*/\n /**\n * Specifies what character encoding to use when decoding, where applicable (type String)\n */\n DecodeHintType[DecodeHintType[\"CHARACTER_SET\"] = 4] = \"CHARACTER_SET\"; /*(String.class)*/\n /**\n * Allowed lengths of encoded data -- reject anything else. Maps to an {@code Int32Array}.\n */\n DecodeHintType[DecodeHintType[\"ALLOWED_LENGTHS\"] = 5] = \"ALLOWED_LENGTHS\"; /*(Int32Array.class)*/\n /**\n * Assume Code 39 codes employ a check digit. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ASSUME_CODE_39_CHECK_DIGIT\"] = 6] = \"ASSUME_CODE_39_CHECK_DIGIT\"; /*(Void.class)*/\n /**\n * Enable extended mode for Code 39 codes. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ENABLE_CODE_39_EXTENDED_MODE\"] = 7] = \"ENABLE_CODE_39_EXTENDED_MODE\"; /*(Void.class)*/\n /**\n * Assume the barcode is being processed as a GS1 barcode, and modify behavior as needed.\n * For example this affects FNC1 handling for Code 128 (aka GS1-128). Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ASSUME_GS1\"] = 8] = \"ASSUME_GS1\"; /*(Void.class)*/\n /**\n * If true, return the start and end digits in a Codabar barcode instead of stripping them. They\n * are alpha, whereas the rest are numeric. By default, they are stripped, but this causes them\n * to not be. Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"RETURN_CODABAR_START_END\"] = 9] = \"RETURN_CODABAR_START_END\"; /*(Void.class)*/\n /**\n * The caller needs to be notified via callback when a possible {@link ResultPoint}\n * is found. Maps to a {@link ResultPointCallback}.\n */\n DecodeHintType[DecodeHintType[\"NEED_RESULT_POINT_CALLBACK\"] = 10] = \"NEED_RESULT_POINT_CALLBACK\"; /*(ResultPointCallback.class)*/\n /**\n * Allowed extension lengths for EAN or UPC barcodes. Other formats will ignore this.\n * Maps to an {@code Int32Array} of the allowed extension lengths, for example [2], [5], or [2, 5].\n * If it is optional to have an extension, do not set this hint. If this is set,\n * and a UPC or EAN barcode is found but an extension is not, then no result will be returned\n * at all.\n */\n DecodeHintType[DecodeHintType[\"ALLOWED_EAN_EXTENSIONS\"] = 11] = \"ALLOWED_EAN_EXTENSIONS\"; /*(Int32Array.class)*/\n // End of enumeration values.\n /**\n * Data type the hint is expecting.\n * Among the possible values the {@link Void} stands out as being used for\n * hints that do not expect a value to be supplied (flag hints). Such hints\n * will possibly have their value ignored, or replaced by a\n * {@link Boolean#TRUE}. Hint suppliers should probably use\n * {@link Boolean#TRUE} as directed by the actual hint documentation.\n */\n // private valueType: Class\n // DecodeHintType(valueType: Class) {\n // this.valueType = valueType\n // }\n // public getValueType(): Class {\n // return valueType\n // }\n})(DecodeHintType || (DecodeHintType = {}));\nexport default DecodeHintType;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar FormatException = /** @class */ (function (_super) {\n __extends(FormatException, _super);\n function FormatException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FormatException.getFormatInstance = function () {\n return new FormatException();\n };\n FormatException.kind = 'FormatException';\n return FormatException;\n}(Exception));\nexport default FormatException;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.common {*/\nimport FormatException from '../FormatException';\n/*import java.util.HashMap;*/\n/*import java.util.Map;*/\nexport var CharacterSetValueIdentifiers;\n(function (CharacterSetValueIdentifiers) {\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp437\"] = 0] = \"Cp437\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_1\"] = 1] = \"ISO8859_1\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_2\"] = 2] = \"ISO8859_2\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_3\"] = 3] = \"ISO8859_3\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_4\"] = 4] = \"ISO8859_4\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_5\"] = 5] = \"ISO8859_5\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_6\"] = 6] = \"ISO8859_6\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_7\"] = 7] = \"ISO8859_7\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_8\"] = 8] = \"ISO8859_8\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_9\"] = 9] = \"ISO8859_9\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_10\"] = 10] = \"ISO8859_10\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_11\"] = 11] = \"ISO8859_11\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_13\"] = 12] = \"ISO8859_13\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_14\"] = 13] = \"ISO8859_14\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_15\"] = 14] = \"ISO8859_15\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_16\"] = 15] = \"ISO8859_16\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"SJIS\"] = 16] = \"SJIS\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1250\"] = 17] = \"Cp1250\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1251\"] = 18] = \"Cp1251\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1252\"] = 19] = \"Cp1252\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1256\"] = 20] = \"Cp1256\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UnicodeBigUnmarked\"] = 21] = \"UnicodeBigUnmarked\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UTF8\"] = 22] = \"UTF8\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ASCII\"] = 23] = \"ASCII\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Big5\"] = 24] = \"Big5\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"GB18030\"] = 25] = \"GB18030\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"EUC_KR\"] = 26] = \"EUC_KR\";\n})(CharacterSetValueIdentifiers || (CharacterSetValueIdentifiers = {}));\n/**\n * Encapsulates a Character Set ECI, according to \"Extended Channel Interpretations\" 5.3.1.1\n * of ISO 18004.\n *\n * @author Sean Owen\n */\nvar CharacterSetECI = /** @class */ (function () {\n function CharacterSetECI(valueIdentifier, valuesParam, name) {\n var e_1, _a;\n var otherEncodingNames = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n otherEncodingNames[_i - 3] = arguments[_i];\n }\n this.valueIdentifier = valueIdentifier;\n this.name = name;\n if (typeof valuesParam === 'number') {\n this.values = Int32Array.from([valuesParam]);\n }\n else {\n this.values = valuesParam;\n }\n this.otherEncodingNames = otherEncodingNames;\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI.set(valueIdentifier, this);\n CharacterSetECI.NAME_TO_ECI.set(name, this);\n var values = this.values;\n for (var i = 0, length_1 = values.length; i !== length_1; i++) {\n var v = values[i];\n CharacterSetECI.VALUES_TO_ECI.set(v, this);\n }\n try {\n for (var otherEncodingNames_1 = __values(otherEncodingNames), otherEncodingNames_1_1 = otherEncodingNames_1.next(); !otherEncodingNames_1_1.done; otherEncodingNames_1_1 = otherEncodingNames_1.next()) {\n var otherName = otherEncodingNames_1_1.value;\n CharacterSetECI.NAME_TO_ECI.set(otherName, this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (otherEncodingNames_1_1 && !otherEncodingNames_1_1.done && (_a = otherEncodingNames_1.return)) _a.call(otherEncodingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n // CharacterSetECI(value: number /*int*/) {\n // this(new Int32Array {value})\n // }\n // CharacterSetECI(value: number /*int*/, String... otherEncodingNames) {\n // this.values = new Int32Array {value}\n // this.otherEncodingNames = otherEncodingNames\n // }\n // CharacterSetECI(values: Int32Array, String... otherEncodingNames) {\n // this.values = values\n // this.otherEncodingNames = otherEncodingNames\n // }\n CharacterSetECI.prototype.getValueIdentifier = function () {\n return this.valueIdentifier;\n };\n CharacterSetECI.prototype.getName = function () {\n return this.name;\n };\n CharacterSetECI.prototype.getValue = function () {\n return this.values[0];\n };\n /**\n * @param value character set ECI value\n * @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but\n * unsupported\n * @throws FormatException if ECI value is invalid\n */\n CharacterSetECI.getCharacterSetECIByValue = function (value /*int*/) {\n if (value < 0 || value >= 900) {\n throw new FormatException('incorect value');\n }\n var characterSet = CharacterSetECI.VALUES_TO_ECI.get(value);\n if (undefined === characterSet) {\n throw new FormatException('incorect value');\n }\n return characterSet;\n };\n /**\n * @param name character set ECI encoding name\n * @return CharacterSetECI representing ECI for character encoding, or null if it is legal\n * but unsupported\n */\n CharacterSetECI.getCharacterSetECIByName = function (name) {\n var characterSet = CharacterSetECI.NAME_TO_ECI.get(name);\n if (undefined === characterSet) {\n throw new FormatException('incorect value');\n }\n return characterSet;\n };\n CharacterSetECI.prototype.equals = function (o) {\n if (!(o instanceof CharacterSetECI)) {\n return false;\n }\n var other = o;\n return this.getName() === other.getName();\n };\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI = new Map();\n CharacterSetECI.VALUES_TO_ECI = new Map();\n CharacterSetECI.NAME_TO_ECI = new Map();\n // Enum name is a Java encoding valid for java.lang and java.io\n // TYPESCRIPTPORT: changed the main label for ISO as the TextEncoder did not recognized them in the form from java\n // (eg ISO8859_1 must be ISO88591 or ISO8859-1 or ISO-8859-1)\n // later on: well, except 16 wich does not work with ISO885916 so used ISO-8859-1 form for default\n CharacterSetECI.Cp437 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp437, Int32Array.from([0, 2]), 'Cp437');\n CharacterSetECI.ISO8859_1 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_1, Int32Array.from([1, 3]), 'ISO-8859-1', 'ISO88591', 'ISO8859_1');\n CharacterSetECI.ISO8859_2 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_2, 4, 'ISO-8859-2', 'ISO88592', 'ISO8859_2');\n CharacterSetECI.ISO8859_3 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_3, 5, 'ISO-8859-3', 'ISO88593', 'ISO8859_3');\n CharacterSetECI.ISO8859_4 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_4, 6, 'ISO-8859-4', 'ISO88594', 'ISO8859_4');\n CharacterSetECI.ISO8859_5 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_5, 7, 'ISO-8859-5', 'ISO88595', 'ISO8859_5');\n CharacterSetECI.ISO8859_6 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_6, 8, 'ISO-8859-6', 'ISO88596', 'ISO8859_6');\n CharacterSetECI.ISO8859_7 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_7, 9, 'ISO-8859-7', 'ISO88597', 'ISO8859_7');\n CharacterSetECI.ISO8859_8 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_8, 10, 'ISO-8859-8', 'ISO88598', 'ISO8859_8');\n CharacterSetECI.ISO8859_9 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_9, 11, 'ISO-8859-9', 'ISO88599', 'ISO8859_9');\n CharacterSetECI.ISO8859_10 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_10, 12, 'ISO-8859-10', 'ISO885910', 'ISO8859_10');\n CharacterSetECI.ISO8859_11 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_11, 13, 'ISO-8859-11', 'ISO885911', 'ISO8859_11');\n CharacterSetECI.ISO8859_13 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_13, 15, 'ISO-8859-13', 'ISO885913', 'ISO8859_13');\n CharacterSetECI.ISO8859_14 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_14, 16, 'ISO-8859-14', 'ISO885914', 'ISO8859_14');\n CharacterSetECI.ISO8859_15 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_15, 17, 'ISO-8859-15', 'ISO885915', 'ISO8859_15');\n CharacterSetECI.ISO8859_16 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_16, 18, 'ISO-8859-16', 'ISO885916', 'ISO8859_16');\n CharacterSetECI.SJIS = new CharacterSetECI(CharacterSetValueIdentifiers.SJIS, 20, 'SJIS', 'Shift_JIS');\n CharacterSetECI.Cp1250 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1250, 21, 'Cp1250', 'windows-1250');\n CharacterSetECI.Cp1251 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1251, 22, 'Cp1251', 'windows-1251');\n CharacterSetECI.Cp1252 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1252, 23, 'Cp1252', 'windows-1252');\n CharacterSetECI.Cp1256 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1256, 24, 'Cp1256', 'windows-1256');\n CharacterSetECI.UnicodeBigUnmarked = new CharacterSetECI(CharacterSetValueIdentifiers.UnicodeBigUnmarked, 25, 'UnicodeBigUnmarked', 'UTF-16BE', 'UnicodeBig');\n CharacterSetECI.UTF8 = new CharacterSetECI(CharacterSetValueIdentifiers.UTF8, 26, 'UTF8', 'UTF-8');\n CharacterSetECI.ASCII = new CharacterSetECI(CharacterSetValueIdentifiers.ASCII, Int32Array.from([27, 170]), 'ASCII', 'US-ASCII');\n CharacterSetECI.Big5 = new CharacterSetECI(CharacterSetValueIdentifiers.Big5, 28, 'Big5');\n CharacterSetECI.GB18030 = new CharacterSetECI(CharacterSetValueIdentifiers.GB18030, 29, 'GB18030', 'GB2312', 'EUC_CN', 'GBK');\n CharacterSetECI.EUC_KR = new CharacterSetECI(CharacterSetValueIdentifiers.EUC_KR, 30, 'EUC_KR', 'EUC-KR');\n return CharacterSetECI;\n}());\nexport default CharacterSetECI;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar UnsupportedOperationException = /** @class */ (function (_super) {\n __extends(UnsupportedOperationException, _super);\n function UnsupportedOperationException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n UnsupportedOperationException.kind = 'UnsupportedOperationException';\n return UnsupportedOperationException;\n}(Exception));\nexport default UnsupportedOperationException;\n","import UnsupportedOperationException from '../UnsupportedOperationException';\nimport CharacterSetECI from '../common/CharacterSetECI';\n/**\n * Responsible for en/decoding strings.\n */\nvar StringEncoding = /** @class */ (function () {\n function StringEncoding() {\n }\n /**\n * Decodes some Uint8Array to a string format.\n */\n StringEncoding.decode = function (bytes, encoding) {\n var encodingName = this.encodingName(encoding);\n if (this.customDecoder) {\n return this.customDecoder(bytes, encodingName);\n }\n // Increases browser support.\n if (typeof TextDecoder === 'undefined' || this.shouldDecodeOnFallback(encodingName)) {\n return this.decodeFallback(bytes, encodingName);\n }\n return new TextDecoder(encodingName).decode(bytes);\n };\n /**\n * Checks if the decoding method should use the fallback for decoding\n * once Node TextDecoder doesn't support all encoding formats.\n *\n * @param encodingName\n */\n StringEncoding.shouldDecodeOnFallback = function (encodingName) {\n return !StringEncoding.isBrowser() && encodingName === 'ISO-8859-1';\n };\n /**\n * Encodes some string into a Uint8Array.\n */\n StringEncoding.encode = function (s, encoding) {\n var encodingName = this.encodingName(encoding);\n if (this.customEncoder) {\n return this.customEncoder(s, encodingName);\n }\n // Increases browser support.\n if (typeof TextEncoder === 'undefined') {\n return this.encodeFallback(s);\n }\n // TextEncoder only encodes to UTF8 by default as specified by encoding.spec.whatwg.org\n return new TextEncoder().encode(s);\n };\n StringEncoding.isBrowser = function () {\n return (typeof window !== 'undefined' && {}.toString.call(window) === '[object Window]');\n };\n /**\n * Returns the string value from some encoding character set.\n */\n StringEncoding.encodingName = function (encoding) {\n return typeof encoding === 'string'\n ? encoding\n : encoding.getName();\n };\n /**\n * Returns character set from some encoding character set.\n */\n StringEncoding.encodingCharacterSet = function (encoding) {\n if (encoding instanceof CharacterSetECI) {\n return encoding;\n }\n return CharacterSetECI.getCharacterSetECIByName(encoding);\n };\n /**\n * Runs a fallback for the native decoding funcion.\n */\n StringEncoding.decodeFallback = function (bytes, encoding) {\n var characterSet = this.encodingCharacterSet(encoding);\n if (StringEncoding.isDecodeFallbackSupported(characterSet)) {\n var s = '';\n for (var i = 0, length_1 = bytes.length; i < length_1; i++) {\n var h = bytes[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n s += '%' + h;\n }\n return decodeURIComponent(s);\n }\n if (characterSet.equals(CharacterSetECI.UnicodeBigUnmarked)) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n }\n throw new UnsupportedOperationException(\"Encoding \" + this.encodingName(encoding) + \" not supported by fallback.\");\n };\n StringEncoding.isDecodeFallbackSupported = function (characterSet) {\n return characterSet.equals(CharacterSetECI.UTF8) ||\n characterSet.equals(CharacterSetECI.ISO8859_1) ||\n characterSet.equals(CharacterSetECI.ASCII);\n };\n /**\n * Runs a fallback for the native encoding funcion.\n *\n * @see https://stackoverflow.com/a/17192845/4367683\n */\n StringEncoding.encodeFallback = function (s) {\n var encodedURIstring = btoa(unescape(encodeURIComponent(s)));\n var charList = encodedURIstring.split('');\n var uintArray = [];\n for (var i = 0; i < charList.length; i++) {\n uintArray.push(charList[i].charCodeAt(0));\n }\n return new Uint8Array(uintArray);\n };\n return StringEncoding;\n}());\nexport default StringEncoding;\n","/*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.nio.charset.Charset;*/\n/*import java.util.Map;*/\nimport DecodeHintType from '../DecodeHintType';\nimport CharacterSetECI from './CharacterSetECI';\nimport StringEncoding from '../util/StringEncoding';\n/**\n * Common string-related functions.\n *\n * @author Sean Owen\n * @author Alex Dupre\n */\nvar StringUtils = /** @class */ (function () {\n function StringUtils() {\n }\n // SHIFT_JIS.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING) ||\n // EUC_JP.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING);\n StringUtils.castAsNonUtf8Char = function (code, encoding) {\n if (encoding === void 0) { encoding = null; }\n // ISO 8859-1 is the Java default as UTF-8 is JavaScripts\n // you can see this method as a Java version of String.fromCharCode\n var e = encoding ? encoding.getName() : this.ISO88591;\n // use passed format (fromCharCode will return UTF8 encoding)\n return StringEncoding.decode(new Uint8Array([code]), e);\n };\n /**\n * @param bytes bytes encoding a string, whose encoding should be guessed\n * @param hints decode hints if applicable\n * @return name of guessed encoding; at the moment will only guess one of:\n * {@link #SHIFT_JIS}, {@link #UTF8}, {@link #ISO88591}, or the platform\n * default encoding if none of these can possibly be correct\n */\n StringUtils.guessEncoding = function (bytes, hints) {\n if (hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType.CHARACTER_SET)) {\n return hints.get(DecodeHintType.CHARACTER_SET).toString();\n }\n // For now, merely tries to distinguish ISO-8859-1, UTF-8 and Shift_JIS,\n // which should be by far the most common encodings.\n var length = bytes.length;\n var canBeISO88591 = true;\n var canBeShiftJIS = true;\n var canBeUTF8 = true;\n var utf8BytesLeft = 0;\n // int utf8LowChars = 0\n var utf2BytesChars = 0;\n var utf3BytesChars = 0;\n var utf4BytesChars = 0;\n var sjisBytesLeft = 0;\n // int sjisLowChars = 0\n var sjisKatakanaChars = 0;\n // int sjisDoubleBytesChars = 0\n var sjisCurKatakanaWordLength = 0;\n var sjisCurDoubleBytesWordLength = 0;\n var sjisMaxKatakanaWordLength = 0;\n var sjisMaxDoubleBytesWordLength = 0;\n // int isoLowChars = 0\n // int isoHighChars = 0\n var isoHighOther = 0;\n var utf8bom = bytes.length > 3 &&\n bytes[0] === /*(byte) */ 0xEF &&\n bytes[1] === /*(byte) */ 0xBB &&\n bytes[2] === /*(byte) */ 0xBF;\n for (var i = 0; i < length && (canBeISO88591 || canBeShiftJIS || canBeUTF8); i++) {\n var value = bytes[i] & 0xFF;\n // UTF-8 stuff\n if (canBeUTF8) {\n if (utf8BytesLeft > 0) {\n if ((value & 0x80) === 0) {\n canBeUTF8 = false;\n }\n else {\n utf8BytesLeft--;\n }\n }\n else if ((value & 0x80) !== 0) {\n if ((value & 0x40) === 0) {\n canBeUTF8 = false;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x20) === 0) {\n utf2BytesChars++;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x10) === 0) {\n utf3BytesChars++;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x08) === 0) {\n utf4BytesChars++;\n }\n else {\n canBeUTF8 = false;\n }\n }\n }\n }\n } // else {\n // utf8LowChars++\n // }\n }\n // ISO-8859-1 stuff\n if (canBeISO88591) {\n if (value > 0x7F && value < 0xA0) {\n canBeISO88591 = false;\n }\n else if (value > 0x9F) {\n if (value < 0xC0 || value === 0xD7 || value === 0xF7) {\n isoHighOther++;\n } // else {\n // isoHighChars++\n // }\n } // else {\n // isoLowChars++\n // }\n }\n // Shift_JIS stuff\n if (canBeShiftJIS) {\n if (sjisBytesLeft > 0) {\n if (value < 0x40 || value === 0x7F || value > 0xFC) {\n canBeShiftJIS = false;\n }\n else {\n sjisBytesLeft--;\n }\n }\n else if (value === 0x80 || value === 0xA0 || value > 0xEF) {\n canBeShiftJIS = false;\n }\n else if (value > 0xA0 && value < 0xE0) {\n sjisKatakanaChars++;\n sjisCurDoubleBytesWordLength = 0;\n sjisCurKatakanaWordLength++;\n if (sjisCurKatakanaWordLength > sjisMaxKatakanaWordLength) {\n sjisMaxKatakanaWordLength = sjisCurKatakanaWordLength;\n }\n }\n else if (value > 0x7F) {\n sjisBytesLeft++;\n // sjisDoubleBytesChars++\n sjisCurKatakanaWordLength = 0;\n sjisCurDoubleBytesWordLength++;\n if (sjisCurDoubleBytesWordLength > sjisMaxDoubleBytesWordLength) {\n sjisMaxDoubleBytesWordLength = sjisCurDoubleBytesWordLength;\n }\n }\n else {\n // sjisLowChars++\n sjisCurKatakanaWordLength = 0;\n sjisCurDoubleBytesWordLength = 0;\n }\n }\n }\n if (canBeUTF8 && utf8BytesLeft > 0) {\n canBeUTF8 = false;\n }\n if (canBeShiftJIS && sjisBytesLeft > 0) {\n canBeShiftJIS = false;\n }\n // Easy -- if there is BOM or at least 1 valid not-single byte character (and no evidence it can't be UTF-8), done\n if (canBeUTF8 && (utf8bom || utf2BytesChars + utf3BytesChars + utf4BytesChars > 0)) {\n return StringUtils.UTF8;\n }\n // Easy -- if assuming Shift_JIS or at least 3 valid consecutive not-ascii characters (and no evidence it can't be), done\n if (canBeShiftJIS && (StringUtils.ASSUME_SHIFT_JIS || sjisMaxKatakanaWordLength >= 3 || sjisMaxDoubleBytesWordLength >= 3)) {\n return StringUtils.SHIFT_JIS;\n }\n // Distinguishing Shift_JIS and ISO-8859-1 can be a little tough for short words. The crude heuristic is:\n // - If we saw\n // - only two consecutive katakana chars in the whole text, or\n // - at least 10% of bytes that could be \"upper\" not-alphanumeric Latin1,\n // - then we conclude Shift_JIS, else ISO-8859-1\n if (canBeISO88591 && canBeShiftJIS) {\n return (sjisMaxKatakanaWordLength === 2 && sjisKatakanaChars === 2) || isoHighOther * 10 >= length\n ? StringUtils.SHIFT_JIS : StringUtils.ISO88591;\n }\n // Otherwise, try in order ISO-8859-1, Shift JIS, UTF-8 and fall back to default platform encoding\n if (canBeISO88591) {\n return StringUtils.ISO88591;\n }\n if (canBeShiftJIS) {\n return StringUtils.SHIFT_JIS;\n }\n if (canBeUTF8) {\n return StringUtils.UTF8;\n }\n // Otherwise, we take a wild guess with platform encoding\n return StringUtils.PLATFORM_DEFAULT_ENCODING;\n };\n /**\n *\n * @see https://stackoverflow.com/a/13439711/4367683\n *\n * @param append The new string to append.\n * @param args Argumets values to be formated.\n */\n StringUtils.format = function (append) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var i = -1;\n function callback(exp, p0, p1, p2, p3, p4) {\n if (exp === '%%')\n return '%';\n if (args[++i] === undefined)\n return undefined;\n exp = p2 ? parseInt(p2.substr(1)) : undefined;\n var base = p3 ? parseInt(p3.substr(1)) : undefined;\n var val;\n switch (p4) {\n case 's':\n val = args[i];\n break;\n case 'c':\n val = args[i][0];\n break;\n case 'f':\n val = parseFloat(args[i]).toFixed(exp);\n break;\n case 'p':\n val = parseFloat(args[i]).toPrecision(exp);\n break;\n case 'e':\n val = parseFloat(args[i]).toExponential(exp);\n break;\n case 'x':\n val = parseInt(args[i]).toString(base ? base : 16);\n break;\n case 'd':\n val = parseFloat(parseInt(args[i], base ? base : 10).toPrecision(exp)).toFixed(0);\n break;\n }\n val = typeof val === 'object' ? JSON.stringify(val) : (+val).toString(base);\n var size = parseInt(p1); /* padding size */\n var ch = p1 && (p1[0] + '') === '0' ? '0' : ' '; /* isnull? */\n while (val.length < size)\n val = p0 !== undefined ? val + ch : ch + val; /* isminus? */\n return val;\n }\n var regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;\n return append.replace(regex, callback);\n };\n /**\n *\n */\n StringUtils.getBytes = function (str, encoding) {\n return StringEncoding.encode(str, encoding);\n };\n /**\n * Returns the charcode at the specified index or at index zero.\n */\n StringUtils.getCharCode = function (str, index) {\n if (index === void 0) { index = 0; }\n return str.charCodeAt(index);\n };\n /**\n * Returns char for given charcode\n */\n StringUtils.getCharAt = function (charCode) {\n return String.fromCharCode(charCode);\n };\n StringUtils.SHIFT_JIS = CharacterSetECI.SJIS.getName(); // \"SJIS\"\n StringUtils.GB2312 = 'GB2312';\n StringUtils.ISO88591 = CharacterSetECI.ISO8859_1.getName(); // \"ISO8859_1\"\n StringUtils.EUC_JP = 'EUC_JP';\n StringUtils.UTF8 = CharacterSetECI.UTF8.getName(); // \"UTF8\"\n StringUtils.PLATFORM_DEFAULT_ENCODING = StringUtils.UTF8; // \"UTF8\"//Charset.defaultCharset().name()\n StringUtils.ASSUME_SHIFT_JIS = false;\n return StringUtils;\n}());\nexport default StringUtils;\n","import StringUtils from '../common/StringUtils';\nvar StringBuilder = /** @class */ (function () {\n function StringBuilder(value) {\n if (value === void 0) { value = ''; }\n this.value = value;\n }\n StringBuilder.prototype.enableDecoding = function (encoding) {\n this.encoding = encoding;\n return this;\n };\n StringBuilder.prototype.append = function (s) {\n if (typeof s === 'string') {\n this.value += s.toString();\n }\n else if (this.encoding) {\n // use passed format (fromCharCode will return UTF8 encoding)\n this.value += StringUtils.castAsNonUtf8Char(s, this.encoding);\n }\n else {\n // correctly converts from UTF-8, but not other encodings\n this.value += String.fromCharCode(s);\n }\n return this;\n };\n StringBuilder.prototype.appendChars = function (str, offset, len) {\n for (var i = offset; offset < offset + len; i++) {\n this.append(str[i]);\n }\n return this;\n };\n StringBuilder.prototype.length = function () {\n return this.value.length;\n };\n StringBuilder.prototype.charAt = function (n) {\n return this.value.charAt(n);\n };\n StringBuilder.prototype.deleteCharAt = function (n) {\n this.value = this.value.substr(0, n) + this.value.substring(n + 1);\n };\n StringBuilder.prototype.setCharAt = function (n, c) {\n this.value = this.value.substr(0, n) + c + this.value.substr(n + 1);\n };\n StringBuilder.prototype.substring = function (start, end) {\n return this.value.substring(start, end);\n };\n /**\n * @note helper method for RSS Expanded\n */\n StringBuilder.prototype.setLengthToZero = function () {\n this.value = '';\n };\n StringBuilder.prototype.toString = function () {\n return this.value;\n };\n StringBuilder.prototype.insert = function (n, c) {\n this.value = this.value.substring(0, n) + c + this.value.substring(n);\n };\n return StringBuilder;\n}());\nexport default StringBuilder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nimport BitArray from './BitArray';\nimport System from '../util/System';\nimport Arrays from '../util/Arrays';\nimport StringBuilder from '../util/StringBuilder';\nimport IllegalArgumentException from '../IllegalArgumentException';\n/**\n *

    Represents a 2D matrix of bits. In function arguments below, and throughout the common\n * module, x is the column position, and y is the row position. The ordering is always x, y.\n * The origin is at the top-left.

    \n *\n *

    Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins\n * with a new int. This is done intentionally so that we can copy out a row into a BitArray very\n * efficiently.

    \n *\n *

    The ordering of bits is row-major. Within each int, the least significant bits are used first,\n * meaning they represent lower x values. This is compatible with BitArray's implementation.

    \n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar BitMatrix /*implements Cloneable*/ = /** @class */ (function () {\n /**\n * Creates an empty square {@link BitMatrix}.\n *\n * @param dimension height and width\n */\n // public constructor(dimension: number /*int*/) {\n // this(dimension, dimension)\n // }\n /**\n * Creates an empty {@link BitMatrix}.\n *\n * @param width bit matrix width\n * @param height bit matrix height\n */\n // public constructor(width: number /*int*/, height: number /*int*/) {\n // if (width < 1 || height < 1) {\n // throw new IllegalArgumentException(\"Both dimensions must be greater than 0\")\n // }\n // this.width = width\n // this.height = height\n // this.rowSize = (width + 31) / 32\n // bits = new int[rowSize * height];\n // }\n function BitMatrix(width /*int*/, height /*int*/, rowSize /*int*/, bits) {\n this.width = width;\n this.height = height;\n this.rowSize = rowSize;\n this.bits = bits;\n if (undefined === height || null === height) {\n height = width;\n }\n this.height = height;\n if (width < 1 || height < 1) {\n throw new IllegalArgumentException('Both dimensions must be greater than 0');\n }\n if (undefined === rowSize || null === rowSize) {\n rowSize = Math.floor((width + 31) / 32);\n }\n this.rowSize = rowSize;\n if (undefined === bits || null === bits) {\n this.bits = new Int32Array(this.rowSize * this.height);\n }\n }\n /**\n * Interprets a 2D array of booleans as a {@link BitMatrix}, where \"true\" means an \"on\" bit.\n *\n * @function parse\n * @param image bits of the image, as a row-major 2D array. Elements are arrays representing rows\n * @return {@link BitMatrix} representation of image\n */\n BitMatrix.parseFromBooleanArray = function (image) {\n var height = image.length;\n var width = image[0].length;\n var bits = new BitMatrix(width, height);\n for (var i = 0; i < height; i++) {\n var imageI = image[i];\n for (var j = 0; j < width; j++) {\n if (imageI[j]) {\n bits.set(j, i);\n }\n }\n }\n return bits;\n };\n /**\n *\n * @function parse\n * @param stringRepresentation\n * @param setString\n * @param unsetString\n */\n BitMatrix.parseFromString = function (stringRepresentation, setString, unsetString) {\n if (stringRepresentation === null) {\n throw new IllegalArgumentException('stringRepresentation cannot be null');\n }\n var bits = new Array(stringRepresentation.length);\n var bitsPos = 0;\n var rowStartPos = 0;\n var rowLength = -1;\n var nRows = 0;\n var pos = 0;\n while (pos < stringRepresentation.length) {\n if (stringRepresentation.charAt(pos) === '\\n' ||\n stringRepresentation.charAt(pos) === '\\r') {\n if (bitsPos > rowStartPos) {\n if (rowLength === -1) {\n rowLength = bitsPos - rowStartPos;\n }\n else if (bitsPos - rowStartPos !== rowLength) {\n throw new IllegalArgumentException('row lengths do not match');\n }\n rowStartPos = bitsPos;\n nRows++;\n }\n pos++;\n }\n else if (stringRepresentation.substring(pos, pos + setString.length) === setString) {\n pos += setString.length;\n bits[bitsPos] = true;\n bitsPos++;\n }\n else if (stringRepresentation.substring(pos, pos + unsetString.length) === unsetString) {\n pos += unsetString.length;\n bits[bitsPos] = false;\n bitsPos++;\n }\n else {\n throw new IllegalArgumentException('illegal character encountered: ' + stringRepresentation.substring(pos));\n }\n }\n // no EOL at end?\n if (bitsPos > rowStartPos) {\n if (rowLength === -1) {\n rowLength = bitsPos - rowStartPos;\n }\n else if (bitsPos - rowStartPos !== rowLength) {\n throw new IllegalArgumentException('row lengths do not match');\n }\n nRows++;\n }\n var matrix = new BitMatrix(rowLength, nRows);\n for (var i = 0; i < bitsPos; i++) {\n if (bits[i]) {\n matrix.set(Math.floor(i % rowLength), Math.floor(i / rowLength));\n }\n }\n return matrix;\n };\n /**\n *

    Gets the requested bit, where true means black.

    \n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n * @return value of given bit in matrix\n */\n BitMatrix.prototype.get = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n return ((this.bits[offset] >>> (x & 0x1f)) & 1) !== 0;\n };\n /**\n *

    Sets the given bit to true.

    \n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n */\n BitMatrix.prototype.set = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] |= (1 << (x & 0x1f)) & 0xFFFFFFFF;\n };\n BitMatrix.prototype.unset = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] &= ~((1 << (x & 0x1f)) & 0xFFFFFFFF);\n };\n /**\n *

    Flips the given bit.

    \n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n */\n BitMatrix.prototype.flip = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] ^= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n };\n /**\n * Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding\n * mask bit is set.\n *\n * @param mask XOR mask\n */\n BitMatrix.prototype.xor = function (mask) {\n if (this.width !== mask.getWidth() || this.height !== mask.getHeight()\n || this.rowSize !== mask.getRowSize()) {\n throw new IllegalArgumentException('input matrix dimensions do not match');\n }\n var rowArray = new BitArray(Math.floor(this.width / 32) + 1);\n var rowSize = this.rowSize;\n var bits = this.bits;\n for (var y = 0, height = this.height; y < height; y++) {\n var offset = y * rowSize;\n var row = mask.getRow(y, rowArray).getBitArray();\n for (var x = 0; x < rowSize; x++) {\n bits[offset + x] ^= row[x];\n }\n }\n };\n /**\n * Clears all bits (sets to false).\n */\n BitMatrix.prototype.clear = function () {\n var bits = this.bits;\n var max = bits.length;\n for (var i = 0; i < max; i++) {\n bits[i] = 0;\n }\n };\n /**\n *

    Sets a square region of the bit matrix to true.

    \n *\n * @param left The horizontal position to begin at (inclusive)\n * @param top The vertical position to begin at (inclusive)\n * @param width The width of the region\n * @param height The height of the region\n */\n BitMatrix.prototype.setRegion = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n if (top < 0 || left < 0) {\n throw new IllegalArgumentException('Left and top must be nonnegative');\n }\n if (height < 1 || width < 1) {\n throw new IllegalArgumentException('Height and width must be at least 1');\n }\n var right = left + width;\n var bottom = top + height;\n if (bottom > this.height || right > this.width) {\n throw new IllegalArgumentException('The region must fit inside the matrix');\n }\n var rowSize = this.rowSize;\n var bits = this.bits;\n for (var y = top; y < bottom; y++) {\n var offset = y * rowSize;\n for (var x = left; x < right; x++) {\n bits[offset + Math.floor(x / 32)] |= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n }\n }\n };\n /**\n * A fast method to retrieve one row of data from the matrix as a BitArray.\n *\n * @param y The row to retrieve\n * @param row An optional caller-allocated BitArray, will be allocated if null or too small\n * @return The resulting BitArray - this reference should always be used even when passing\n * your own row\n */\n BitMatrix.prototype.getRow = function (y /*int*/, row) {\n if (row === null || row === undefined || row.getSize() < this.width) {\n row = new BitArray(this.width);\n }\n else {\n row.clear();\n }\n var rowSize = this.rowSize;\n var bits = this.bits;\n var offset = y * rowSize;\n for (var x = 0; x < rowSize; x++) {\n row.setBulk(x * 32, bits[offset + x]);\n }\n return row;\n };\n /**\n * @param y row to set\n * @param row {@link BitArray} to copy from\n */\n BitMatrix.prototype.setRow = function (y /*int*/, row) {\n System.arraycopy(row.getBitArray(), 0, this.bits, y * this.rowSize, this.rowSize);\n };\n /**\n * Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees\n */\n BitMatrix.prototype.rotate180 = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n var topRow = new BitArray(width);\n var bottomRow = new BitArray(width);\n for (var i = 0, length_1 = Math.floor((height + 1) / 2); i < length_1; i++) {\n topRow = this.getRow(i, topRow);\n bottomRow = this.getRow(height - 1 - i, bottomRow);\n topRow.reverse();\n bottomRow.reverse();\n this.setRow(i, bottomRow);\n this.setRow(height - 1 - i, topRow);\n }\n };\n /**\n * This is useful in detecting the enclosing rectangle of a 'pure' barcode.\n *\n * @return {@code left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white\n */\n BitMatrix.prototype.getEnclosingRectangle = function () {\n var width = this.width;\n var height = this.height;\n var rowSize = this.rowSize;\n var bits = this.bits;\n var left = width;\n var top = height;\n var right = -1;\n var bottom = -1;\n for (var y = 0; y < height; y++) {\n for (var x32 = 0; x32 < rowSize; x32++) {\n var theBits = bits[y * rowSize + x32];\n if (theBits !== 0) {\n if (y < top) {\n top = y;\n }\n if (y > bottom) {\n bottom = y;\n }\n if (x32 * 32 < left) {\n var bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n if ((x32 * 32 + bit) < left) {\n left = x32 * 32 + bit;\n }\n }\n if (x32 * 32 + 31 > right) {\n var bit = 31;\n while ((theBits >>> bit) === 0) {\n bit--;\n }\n if ((x32 * 32 + bit) > right) {\n right = x32 * 32 + bit;\n }\n }\n }\n }\n }\n if (right < left || bottom < top) {\n return null;\n }\n return Int32Array.from([left, top, right - left + 1, bottom - top + 1]);\n };\n /**\n * This is useful in detecting a corner of a 'pure' barcode.\n *\n * @return {@code x,y} coordinate of top-left-most 1 bit, or null if it is all white\n */\n BitMatrix.prototype.getTopLeftOnBit = function () {\n var rowSize = this.rowSize;\n var bits = this.bits;\n var bitsOffset = 0;\n while (bitsOffset < bits.length && bits[bitsOffset] === 0) {\n bitsOffset++;\n }\n if (bitsOffset === bits.length) {\n return null;\n }\n var y = bitsOffset / rowSize;\n var x = (bitsOffset % rowSize) * 32;\n var theBits = bits[bitsOffset];\n var bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n x += bit;\n return Int32Array.from([x, y]);\n };\n BitMatrix.prototype.getBottomRightOnBit = function () {\n var rowSize = this.rowSize;\n var bits = this.bits;\n var bitsOffset = bits.length - 1;\n while (bitsOffset >= 0 && bits[bitsOffset] === 0) {\n bitsOffset--;\n }\n if (bitsOffset < 0) {\n return null;\n }\n var y = Math.floor(bitsOffset / rowSize);\n var x = Math.floor(bitsOffset % rowSize) * 32;\n var theBits = bits[bitsOffset];\n var bit = 31;\n while ((theBits >>> bit) === 0) {\n bit--;\n }\n x += bit;\n return Int32Array.from([x, y]);\n };\n /**\n * @return The width of the matrix\n */\n BitMatrix.prototype.getWidth = function () {\n return this.width;\n };\n /**\n * @return The height of the matrix\n */\n BitMatrix.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * @return The row size of the matrix\n */\n BitMatrix.prototype.getRowSize = function () {\n return this.rowSize;\n };\n /*@Override*/\n BitMatrix.prototype.equals = function (o) {\n if (!(o instanceof BitMatrix)) {\n return false;\n }\n var other = o;\n return this.width === other.width && this.height === other.height && this.rowSize === other.rowSize &&\n Arrays.equals(this.bits, other.bits);\n };\n /*@Override*/\n BitMatrix.prototype.hashCode = function () {\n var hash = this.width;\n hash = 31 * hash + this.width;\n hash = 31 * hash + this.height;\n hash = 31 * hash + this.rowSize;\n hash = 31 * hash + Arrays.hashCode(this.bits);\n return hash;\n };\n /**\n * @return string representation using \"X\" for set and \" \" for unset bits\n */\n /*@Override*/\n // public toString(): string {\n // return toString(\": \"X, \" \")\n // }\n /**\n * @param setString representation of a set bit\n * @param unsetString representation of an unset bit\n * @return string representation of entire matrix utilizing given strings\n */\n // public toString(setString: string = \"X \", unsetString: string = \" \"): string {\n // return this.buildToString(setString, unsetString, \"\\n\")\n // }\n /**\n * @param setString representation of a set bit\n * @param unsetString representation of an unset bit\n * @param lineSeparator newline character in string representation\n * @return string representation of entire matrix utilizing given strings and line separator\n * @deprecated call {@link #toString(String,String)} only, which uses \\n line separator always\n */\n // @Deprecated\n BitMatrix.prototype.toString = function (setString, unsetString, lineSeparator) {\n if (setString === void 0) { setString = 'X '; }\n if (unsetString === void 0) { unsetString = ' '; }\n if (lineSeparator === void 0) { lineSeparator = '\\n'; }\n return this.buildToString(setString, unsetString, lineSeparator);\n };\n BitMatrix.prototype.buildToString = function (setString, unsetString, lineSeparator) {\n var result = new StringBuilder();\n // result.append(lineSeparator);\n for (var y = 0, height = this.height; y < height; y++) {\n for (var x = 0, width = this.width; x < width; x++) {\n result.append(this.get(x, y) ? setString : unsetString);\n }\n result.append(lineSeparator);\n }\n return result.toString();\n };\n /*@Override*/\n BitMatrix.prototype.clone = function () {\n return new BitMatrix(this.width, this.height, this.rowSize, this.bits.slice());\n };\n return BitMatrix;\n}());\nexport default BitMatrix;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar NotFoundException = /** @class */ (function (_super) {\n __extends(NotFoundException, _super);\n function NotFoundException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NotFoundException.getNotFoundInstance = function () {\n return new NotFoundException();\n };\n NotFoundException.kind = 'NotFoundException';\n return NotFoundException;\n}(Exception));\nexport default NotFoundException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.common {*/\nimport Binarizer from '../Binarizer';\nimport BitArray from './BitArray';\nimport BitMatrix from './BitMatrix';\nimport NotFoundException from '../NotFoundException';\n/**\n * This Binarizer implementation uses the old ZXing global histogram approach. It is suitable\n * for low-end mobile devices which don't have enough CPU or memory to use a local thresholding\n * algorithm. However, because it picks a global black point, it cannot handle difficult shadows\n * and gradients.\n *\n * Faster mobile devices and all desktop applications should probably use HybridBinarizer instead.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\nvar GlobalHistogramBinarizer = /** @class */ (function (_super) {\n __extends(GlobalHistogramBinarizer, _super);\n function GlobalHistogramBinarizer(source) {\n var _this = _super.call(this, source) || this;\n _this.luminances = GlobalHistogramBinarizer.EMPTY;\n _this.buckets = new Int32Array(GlobalHistogramBinarizer.LUMINANCE_BUCKETS);\n return _this;\n }\n // Applies simple sharpening to the row data to improve performance of the 1D Readers.\n /*@Override*/\n GlobalHistogramBinarizer.prototype.getBlackRow = function (y /*int*/, row) {\n var source = this.getLuminanceSource();\n var width = source.getWidth();\n if (row === undefined || row === null || row.getSize() < width) {\n row = new BitArray(width);\n }\n else {\n row.clear();\n }\n this.initArrays(width);\n var localLuminances = source.getRow(y, this.luminances);\n var localBuckets = this.buckets;\n for (var x = 0; x < width; x++) {\n localBuckets[(localLuminances[x] & 0xff) >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n }\n var blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n if (width < 3) {\n // Special case for very small images\n for (var x = 0; x < width; x++) {\n if ((localLuminances[x] & 0xff) < blackPoint) {\n row.set(x);\n }\n }\n }\n else {\n var left = localLuminances[0] & 0xff;\n var center = localLuminances[1] & 0xff;\n for (var x = 1; x < width - 1; x++) {\n var right = localLuminances[x + 1] & 0xff;\n // A simple -1 4 -1 box filter with a weight of 2.\n if (((center * 4) - left - right) / 2 < blackPoint) {\n row.set(x);\n }\n left = center;\n center = right;\n }\n }\n return row;\n };\n // Does not sharpen the data, as this call is intended to only be used by 2D Readers.\n /*@Override*/\n GlobalHistogramBinarizer.prototype.getBlackMatrix = function () {\n var source = this.getLuminanceSource();\n var width = source.getWidth();\n var height = source.getHeight();\n var matrix = new BitMatrix(width, height);\n // Quickly calculates the histogram by sampling four rows from the image. This proved to be\n // more robust on the blackbox tests than sampling a diagonal as we used to do.\n this.initArrays(width);\n var localBuckets = this.buckets;\n for (var y = 1; y < 5; y++) {\n var row = Math.floor((height * y) / 5);\n var localLuminances_1 = source.getRow(row, this.luminances);\n var right = Math.floor((width * 4) / 5);\n for (var x = Math.floor(width / 5); x < right; x++) {\n var pixel = localLuminances_1[x] & 0xff;\n localBuckets[pixel >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n }\n }\n var blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n // We delay reading the entire image luminance until the black point estimation succeeds.\n // Although we end up reading four rows twice, it is consistent with our motto of\n // \"fail quickly\" which is necessary for continuous scanning.\n var localLuminances = source.getMatrix();\n for (var y = 0; y < height; y++) {\n var offset = y * width;\n for (var x = 0; x < width; x++) {\n var pixel = localLuminances[offset + x] & 0xff;\n if (pixel < blackPoint) {\n matrix.set(x, y);\n }\n }\n }\n return matrix;\n };\n /*@Override*/\n GlobalHistogramBinarizer.prototype.createBinarizer = function (source) {\n return new GlobalHistogramBinarizer(source);\n };\n GlobalHistogramBinarizer.prototype.initArrays = function (luminanceSize /*int*/) {\n if (this.luminances.length < luminanceSize) {\n this.luminances = new Uint8ClampedArray(luminanceSize);\n }\n var buckets = this.buckets;\n for (var x = 0; x < GlobalHistogramBinarizer.LUMINANCE_BUCKETS; x++) {\n buckets[x] = 0;\n }\n };\n GlobalHistogramBinarizer.estimateBlackPoint = function (buckets) {\n // Find the tallest peak in the histogram.\n var numBuckets = buckets.length;\n var maxBucketCount = 0;\n var firstPeak = 0;\n var firstPeakSize = 0;\n for (var x = 0; x < numBuckets; x++) {\n if (buckets[x] > firstPeakSize) {\n firstPeak = x;\n firstPeakSize = buckets[x];\n }\n if (buckets[x] > maxBucketCount) {\n maxBucketCount = buckets[x];\n }\n }\n // Find the second-tallest peak which is somewhat far from the tallest peak.\n var secondPeak = 0;\n var secondPeakScore = 0;\n for (var x = 0; x < numBuckets; x++) {\n var distanceToBiggest = x - firstPeak;\n // Encourage more distant second peaks by multiplying by square of distance.\n var score = buckets[x] * distanceToBiggest * distanceToBiggest;\n if (score > secondPeakScore) {\n secondPeak = x;\n secondPeakScore = score;\n }\n }\n // Make sure firstPeak corresponds to the black peak.\n if (firstPeak > secondPeak) {\n var temp = firstPeak;\n firstPeak = secondPeak;\n secondPeak = temp;\n }\n // If there is too little contrast in the image to pick a meaningful black point, throw rather\n // than waste time trying to decode the image, and risk false positives.\n if (secondPeak - firstPeak <= numBuckets / 16) {\n throw new NotFoundException();\n }\n // Find a valley between them that is low and closer to the white peak.\n var bestValley = secondPeak - 1;\n var bestValleyScore = -1;\n for (var x = secondPeak - 1; x > firstPeak; x--) {\n var fromFirst = x - firstPeak;\n var score = fromFirst * fromFirst * (secondPeak - x) * (maxBucketCount - buckets[x]);\n if (score > bestValleyScore) {\n bestValley = x;\n bestValleyScore = score;\n }\n }\n return bestValley << GlobalHistogramBinarizer.LUMINANCE_SHIFT;\n };\n GlobalHistogramBinarizer.LUMINANCE_BITS = 5;\n GlobalHistogramBinarizer.LUMINANCE_SHIFT = 8 - GlobalHistogramBinarizer.LUMINANCE_BITS;\n GlobalHistogramBinarizer.LUMINANCE_BUCKETS = 1 << GlobalHistogramBinarizer.LUMINANCE_BITS;\n GlobalHistogramBinarizer.EMPTY = Uint8ClampedArray.from([0]);\n return GlobalHistogramBinarizer;\n}(Binarizer));\nexport default GlobalHistogramBinarizer;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport GlobalHistogramBinarizer from './GlobalHistogramBinarizer';\nimport BitMatrix from './BitMatrix';\n/**\n * This class implements a local thresholding algorithm, which while slower than the\n * GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for\n * high frequency images of barcodes with black data on white backgrounds. For this application,\n * it does a much better job than a global blackpoint with severe shadows and gradients.\n * However it tends to produce artifacts on lower frequency images and is therefore not\n * a good general purpose binarizer for uses outside ZXing.\n *\n * This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers,\n * and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already\n * inherently local, and only fails for horizontal gradients. We can revisit that problem later,\n * but for now it was not a win to use local blocks for 1D.\n *\n * This Binarizer is the default for the unit tests and the recommended class for library users.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar HybridBinarizer = /** @class */ (function (_super) {\n __extends(HybridBinarizer, _super);\n function HybridBinarizer(source) {\n var _this = _super.call(this, source) || this;\n _this.matrix = null;\n return _this;\n }\n /**\n * Calculates the final BitMatrix once for all requests. This could be called once from the\n * constructor instead, but there are some advantages to doing it lazily, such as making\n * profiling easier, and not doing heavy lifting when callers don't expect it.\n */\n /*@Override*/\n HybridBinarizer.prototype.getBlackMatrix = function () {\n if (this.matrix !== null) {\n return this.matrix;\n }\n var source = this.getLuminanceSource();\n var width = source.getWidth();\n var height = source.getHeight();\n if (width >= HybridBinarizer.MINIMUM_DIMENSION && height >= HybridBinarizer.MINIMUM_DIMENSION) {\n var luminances = source.getMatrix();\n var subWidth = width >> HybridBinarizer.BLOCK_SIZE_POWER;\n if ((width & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n subWidth++;\n }\n var subHeight = height >> HybridBinarizer.BLOCK_SIZE_POWER;\n if ((height & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n subHeight++;\n }\n var blackPoints = HybridBinarizer.calculateBlackPoints(luminances, subWidth, subHeight, width, height);\n var newMatrix = new BitMatrix(width, height);\n HybridBinarizer.calculateThresholdForBlock(luminances, subWidth, subHeight, width, height, blackPoints, newMatrix);\n this.matrix = newMatrix;\n }\n else {\n // If the image is too small, fall back to the global histogram approach.\n this.matrix = _super.prototype.getBlackMatrix.call(this);\n }\n return this.matrix;\n };\n /*@Override*/\n HybridBinarizer.prototype.createBinarizer = function (source) {\n return new HybridBinarizer(source);\n };\n /**\n * For each block in the image, calculate the average black point using a 5x5 grid\n * of the blocks around it. Also handles the corner cases (fractional blocks are computed based\n * on the last pixels in the row/column which are also used in the previous block).\n */\n HybridBinarizer.calculateThresholdForBlock = function (luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/, blackPoints, matrix) {\n var maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n var maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n for (var y = 0; y < subHeight; y++) {\n var yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n if (yoffset > maxYOffset) {\n yoffset = maxYOffset;\n }\n var top_1 = HybridBinarizer.cap(y, 2, subHeight - 3);\n for (var x = 0; x < subWidth; x++) {\n var xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n if (xoffset > maxXOffset) {\n xoffset = maxXOffset;\n }\n var left = HybridBinarizer.cap(x, 2, subWidth - 3);\n var sum = 0;\n for (var z = -2; z <= 2; z++) {\n var blackRow = blackPoints[top_1 + z];\n sum += blackRow[left - 2] + blackRow[left - 1] + blackRow[left] + blackRow[left + 1] + blackRow[left + 2];\n }\n var average = sum / 25;\n HybridBinarizer.thresholdBlock(luminances, xoffset, yoffset, average, width, matrix);\n }\n }\n };\n HybridBinarizer.cap = function (value /*int*/, min /*int*/, max /*int*/) {\n return value < min ? min : value > max ? max : value;\n };\n /**\n * Applies a single threshold to a block of pixels.\n */\n HybridBinarizer.thresholdBlock = function (luminances, xoffset /*int*/, yoffset /*int*/, threshold /*int*/, stride /*int*/, matrix) {\n for (var y = 0, offset = yoffset * stride + xoffset; y < HybridBinarizer.BLOCK_SIZE; y++, offset += stride) {\n for (var x = 0; x < HybridBinarizer.BLOCK_SIZE; x++) {\n // Comparison needs to be <= so that black == 0 pixels are black even if the threshold is 0.\n if ((luminances[offset + x] & 0xFF) <= threshold) {\n matrix.set(xoffset + x, yoffset + y);\n }\n }\n }\n };\n /**\n * Calculates a single black point for each block of pixels and saves it away.\n * See the following thread for a discussion of this algorithm:\n * http://groups.google.com/group/zxing/browse_thread/thread/d06efa2c35a7ddc0\n */\n HybridBinarizer.calculateBlackPoints = function (luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/) {\n var maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n var maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n // tslint:disable-next-line:whitespace\n var blackPoints = new Array(subHeight); // subWidth\n for (var y = 0; y < subHeight; y++) {\n blackPoints[y] = new Int32Array(subWidth);\n var yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n if (yoffset > maxYOffset) {\n yoffset = maxYOffset;\n }\n for (var x = 0; x < subWidth; x++) {\n var xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n if (xoffset > maxXOffset) {\n xoffset = maxXOffset;\n }\n var sum = 0;\n var min = 0xFF;\n var max = 0;\n for (var yy = 0, offset = yoffset * width + xoffset; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n for (var xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n var pixel = luminances[offset + xx] & 0xFF;\n sum += pixel;\n // still looking for good contrast\n if (pixel < min) {\n min = pixel;\n }\n if (pixel > max) {\n max = pixel;\n }\n }\n // short-circuit min/max tests once dynamic range is met\n if (max - min > HybridBinarizer.MIN_DYNAMIC_RANGE) {\n // finish the rest of the rows quickly\n for (yy++, offset += width; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n for (var xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n sum += luminances[offset + xx] & 0xFF;\n }\n }\n }\n }\n // The default estimate is the average of the values in the block.\n var average = sum >> (HybridBinarizer.BLOCK_SIZE_POWER * 2);\n if (max - min <= HybridBinarizer.MIN_DYNAMIC_RANGE) {\n // If variation within the block is low, assume this is a block with only light or only\n // dark pixels. In that case we do not want to use the average, as it would divide this\n // low contrast area into black and white pixels, essentially creating data out of noise.\n //\n // The default assumption is that the block is light/background. Since no estimate for\n // the level of dark pixels exists locally, use half the min for the block.\n average = min / 2;\n if (y > 0 && x > 0) {\n // Correct the \"white background\" assumption for blocks that have neighbors by comparing\n // the pixels in this block to the previously calculated black points. This is based on\n // the fact that dark barcode symbology is always surrounded by some amount of light\n // background for which reasonable black point estimates were made. The bp estimated at\n // the boundaries is used for the interior.\n // The (min < bp) is arbitrary but works better than other heuristics that were tried.\n var averageNeighborBlackPoint = (blackPoints[y - 1][x] + (2 * blackPoints[y][x - 1]) + blackPoints[y - 1][x - 1]) / 4;\n if (min < averageNeighborBlackPoint) {\n average = averageNeighborBlackPoint;\n }\n }\n }\n blackPoints[y][x] = average;\n }\n }\n return blackPoints;\n };\n // This class uses 5x5 blocks to compute local luminance, where each block is 8x8 pixels.\n // So this is the smallest dimension in each axis we can accept.\n HybridBinarizer.BLOCK_SIZE_POWER = 3;\n HybridBinarizer.BLOCK_SIZE = 1 << HybridBinarizer.BLOCK_SIZE_POWER; // ...0100...00\n HybridBinarizer.BLOCK_SIZE_MASK = HybridBinarizer.BLOCK_SIZE - 1; // ...0011...11\n HybridBinarizer.MINIMUM_DIMENSION = HybridBinarizer.BLOCK_SIZE * 5;\n HybridBinarizer.MIN_DYNAMIC_RANGE = 24;\n return HybridBinarizer;\n}(GlobalHistogramBinarizer));\nexport default HybridBinarizer;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport StringBuilder from './util/StringBuilder';\nimport UnsupportedOperationException from './UnsupportedOperationException';\n/*namespace com.google.zxing {*/\n/**\n * The purpose of this class hierarchy is to abstract different bitmap implementations across\n * platforms into a standard interface for requesting greyscale luminance values. The interface\n * only provides immutable methods; therefore crop and rotation create copies. This is to ensure\n * that one Reader does not modify the original luminance source and leave it in an unknown state\n * for other Readers in the chain.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar LuminanceSource = /** @class */ (function () {\n function LuminanceSource(width /*int*/, height /*int*/) {\n this.width = width;\n this.height = height;\n }\n /**\n * @return The width of the bitmap.\n */\n LuminanceSource.prototype.getWidth = function () {\n return this.width;\n };\n /**\n * @return The height of the bitmap.\n */\n LuminanceSource.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * @return Whether this subclass supports cropping.\n */\n LuminanceSource.prototype.isCropSupported = function () {\n return false;\n };\n /**\n * Returns a new object with cropped image data. Implementations may keep a reference to the\n * original data rather than a copy. Only callable if isCropSupported() is true.\n *\n * @param left The left coordinate, which must be in [0,getWidth())\n * @param top The top coordinate, which must be in [0,getHeight())\n * @param width The width of the rectangle to crop.\n * @param height The height of the rectangle to crop.\n * @return A cropped version of this object.\n */\n LuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n throw new UnsupportedOperationException('This luminance source does not support cropping.');\n };\n /**\n * @return Whether this subclass supports counter-clockwise rotation.\n */\n LuminanceSource.prototype.isRotateSupported = function () {\n return false;\n };\n /**\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n LuminanceSource.prototype.rotateCounterClockwise = function () {\n throw new UnsupportedOperationException('This luminance source does not support rotation by 90 degrees.');\n };\n /**\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n LuminanceSource.prototype.rotateCounterClockwise45 = function () {\n throw new UnsupportedOperationException('This luminance source does not support rotation by 45 degrees.');\n };\n /*@Override*/\n LuminanceSource.prototype.toString = function () {\n var row = new Uint8ClampedArray(this.width);\n var result = new StringBuilder();\n for (var y = 0; y < this.height; y++) {\n var sourceRow = this.getRow(y, row);\n for (var x = 0; x < this.width; x++) {\n var luminance = sourceRow[x] & 0xFF;\n var c = void 0;\n if (luminance < 0x40) {\n c = '#';\n }\n else if (luminance < 0x80) {\n c = '+';\n }\n else if (luminance < 0xC0) {\n c = '.';\n }\n else {\n c = ' ';\n }\n result.append(c);\n }\n result.append('\\n');\n }\n return result.toString();\n };\n return LuminanceSource;\n}());\nexport default LuminanceSource;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport LuminanceSource from './LuminanceSource';\n/*namespace com.google.zxing {*/\n/**\n * A wrapper implementation of {@link LuminanceSource} which inverts the luminances it returns -- black becomes\n * white and vice versa, and each value becomes (255-value).\n *\n * @author Sean Owen\n */\nvar InvertedLuminanceSource = /** @class */ (function (_super) {\n __extends(InvertedLuminanceSource, _super);\n function InvertedLuminanceSource(delegate) {\n var _this = _super.call(this, delegate.getWidth(), delegate.getHeight()) || this;\n _this.delegate = delegate;\n return _this;\n }\n /*@Override*/\n InvertedLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n var sourceRow = this.delegate.getRow(y, row);\n var width = this.getWidth();\n for (var i = 0; i < width; i++) {\n sourceRow[i] = /*(byte)*/ (255 - (sourceRow[i] & 0xFF));\n }\n return sourceRow;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.getMatrix = function () {\n var matrix = this.delegate.getMatrix();\n var length = this.getWidth() * this.getHeight();\n var invertedMatrix = new Uint8ClampedArray(length);\n for (var i = 0; i < length; i++) {\n invertedMatrix[i] = /*(byte)*/ (255 - (matrix[i] & 0xFF));\n }\n return invertedMatrix;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.isCropSupported = function () {\n return this.delegate.isCropSupported();\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new InvertedLuminanceSource(this.delegate.crop(left, top, width, height));\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.isRotateSupported = function () {\n return this.delegate.isRotateSupported();\n };\n /**\n * @return original delegate {@link LuminanceSource} since invert undoes itself\n */\n /*@Override*/\n InvertedLuminanceSource.prototype.invert = function () {\n return this.delegate;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.rotateCounterClockwise = function () {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise());\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise45());\n };\n return InvertedLuminanceSource;\n}(LuminanceSource));\nexport default InvertedLuminanceSource;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport InvertedLuminanceSource from '../core/InvertedLuminanceSource';\nimport LuminanceSource from '../core/LuminanceSource';\nimport IllegalArgumentException from '../core/IllegalArgumentException';\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar HTMLCanvasElementLuminanceSource = /** @class */ (function (_super) {\n __extends(HTMLCanvasElementLuminanceSource, _super);\n function HTMLCanvasElementLuminanceSource(canvas, doAutoInvert) {\n if (doAutoInvert === void 0) { doAutoInvert = false; }\n var _this = _super.call(this, canvas.width, canvas.height) || this;\n _this.canvas = canvas;\n _this.tempCanvasElement = null;\n _this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(canvas, doAutoInvert);\n return _this;\n }\n HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData = function (canvas, doAutoInvert) {\n if (doAutoInvert === void 0) { doAutoInvert = false; }\n var imageData = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);\n return HTMLCanvasElementLuminanceSource.toGrayscaleBuffer(imageData.data, canvas.width, canvas.height, doAutoInvert);\n };\n HTMLCanvasElementLuminanceSource.toGrayscaleBuffer = function (imageBuffer, width, height, doAutoInvert) {\n if (doAutoInvert === void 0) { doAutoInvert = false; }\n var grayscaleBuffer = new Uint8ClampedArray(width * height);\n HTMLCanvasElementLuminanceSource.FRAME_INDEX = !HTMLCanvasElementLuminanceSource.FRAME_INDEX;\n if (HTMLCanvasElementLuminanceSource.FRAME_INDEX || !doAutoInvert) {\n for (var i = 0, j = 0, length_1 = imageBuffer.length; i < length_1; i += 4, j++) {\n var gray = void 0;\n var alpha = imageBuffer[i + 3];\n // The color of fully-transparent pixels is irrelevant. They are often, technically, fully-transparent\n // black (0 alpha, and then 0 RGB). They are often used, of course as the \"white\" area in a\n // barcode image. Force any such pixel to be white:\n if (alpha === 0) {\n gray = 0xFF;\n }\n else {\n var pixelR = imageBuffer[i];\n var pixelG = imageBuffer[i + 1];\n var pixelB = imageBuffer[i + 2];\n // .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC),\n // (306*R) >> 10 is approximately equal to R*0.299, and so on.\n // 0x200 >> 10 is 0.5, it implements rounding.\n gray = (306 * pixelR +\n 601 * pixelG +\n 117 * pixelB +\n 0x200) >> 10;\n }\n grayscaleBuffer[j] = gray;\n }\n }\n else {\n for (var i = 0, j = 0, length_2 = imageBuffer.length; i < length_2; i += 4, j++) {\n var gray = void 0;\n var alpha = imageBuffer[i + 3];\n // The color of fully-transparent pixels is irrelevant. They are often, technically, fully-transparent\n // black (0 alpha, and then 0 RGB). They are often used, of course as the \"white\" area in a\n // barcode image. Force any such pixel to be white:\n if (alpha === 0) {\n gray = 0xFF;\n }\n else {\n var pixelR = imageBuffer[i];\n var pixelG = imageBuffer[i + 1];\n var pixelB = imageBuffer[i + 2];\n // .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC),\n // (306*R) >> 10 is approximately equal to R*0.299, and so on.\n // 0x200 >> 10 is 0.5, it implements rounding.\n gray = (306 * pixelR +\n 601 * pixelG +\n 117 * pixelB +\n 0x200) >> 10;\n }\n grayscaleBuffer[j] = 0xFF - gray;\n }\n }\n return grayscaleBuffer;\n };\n HTMLCanvasElementLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n var start = y * width;\n if (row === null) {\n row = this.buffer.slice(start, start + width);\n }\n else {\n if (row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n // The underlying raster of image consists of bytes with the luminance values\n // TODO: can avoid set/slice?\n row.set(this.buffer.slice(start, start + width));\n }\n return row;\n };\n HTMLCanvasElementLuminanceSource.prototype.getMatrix = function () {\n return this.buffer;\n };\n HTMLCanvasElementLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n HTMLCanvasElementLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n _super.prototype.crop.call(this, left, top, width, height);\n return this;\n };\n /**\n * This is always true, since the image is a gray-scale image.\n *\n * @return true\n */\n HTMLCanvasElementLuminanceSource.prototype.isRotateSupported = function () {\n return true;\n };\n HTMLCanvasElementLuminanceSource.prototype.rotateCounterClockwise = function () {\n this.rotate(-90);\n return this;\n };\n HTMLCanvasElementLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n this.rotate(-45);\n return this;\n };\n HTMLCanvasElementLuminanceSource.prototype.getTempCanvasElement = function () {\n if (null === this.tempCanvasElement) {\n var tempCanvasElement = this.canvas.ownerDocument.createElement('canvas');\n tempCanvasElement.width = this.canvas.width;\n tempCanvasElement.height = this.canvas.height;\n this.tempCanvasElement = tempCanvasElement;\n }\n return this.tempCanvasElement;\n };\n HTMLCanvasElementLuminanceSource.prototype.rotate = function (angle) {\n var tempCanvasElement = this.getTempCanvasElement();\n var tempContext = tempCanvasElement.getContext('2d');\n var angleRadians = angle * HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS;\n // Calculate and set new dimensions for temp canvas\n var width = this.canvas.width;\n var height = this.canvas.height;\n var newWidth = Math.ceil(Math.abs(Math.cos(angleRadians)) * width + Math.abs(Math.sin(angleRadians)) * height);\n var newHeight = Math.ceil(Math.abs(Math.sin(angleRadians)) * width + Math.abs(Math.cos(angleRadians)) * height);\n tempCanvasElement.width = newWidth;\n tempCanvasElement.height = newHeight;\n // Draw at center of temp canvas to prevent clipping of image data\n tempContext.translate(newWidth / 2, newHeight / 2);\n tempContext.rotate(angleRadians);\n tempContext.drawImage(this.canvas, width / -2, height / -2);\n this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(tempCanvasElement);\n return this;\n };\n HTMLCanvasElementLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource(this);\n };\n HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS = Math.PI / 180;\n HTMLCanvasElementLuminanceSource.FRAME_INDEX = true;\n return HTMLCanvasElementLuminanceSource;\n}(LuminanceSource));\nexport { HTMLCanvasElementLuminanceSource };\n","/**\n * @deprecated Moving to @zxing/browser\n *\n * Video input device metadata containing the id and label of the device if available.\n */\nvar VideoInputDevice = /** @class */ (function () {\n /**\n * Creates an instance of VideoInputDevice.\n *\n * @param {string} deviceId the video input device id\n * @param {string} label the label of the device if available\n */\n function VideoInputDevice(deviceId, label, groupId) {\n this.deviceId = deviceId;\n this.label = label;\n /** @inheritdoc */\n this.kind = 'videoinput';\n this.groupId = groupId || undefined;\n }\n /** @inheritdoc */\n VideoInputDevice.prototype.toJSON = function () {\n return {\n kind: this.kind,\n groupId: this.groupId,\n deviceId: this.deviceId,\n label: this.label,\n };\n };\n return VideoInputDevice;\n}());\nexport { VideoInputDevice };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport ArgumentException from '../core/ArgumentException';\nimport BinaryBitmap from '../core/BinaryBitmap';\nimport ChecksumException from '../core/ChecksumException';\nimport HybridBinarizer from '../core/common/HybridBinarizer';\nimport FormatException from '../core/FormatException';\nimport NotFoundException from '../core/NotFoundException';\nimport { HTMLCanvasElementLuminanceSource } from './HTMLCanvasElementLuminanceSource';\nimport { VideoInputDevice } from './VideoInputDevice';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Base class for browser code reader.\n */\nvar BrowserCodeReader = /** @class */ (function () {\n /**\n * Creates an instance of BrowserCodeReader.\n * @param {Reader} reader The reader instance to decode the barcode\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent successful decode tries\n *\n * @memberOf BrowserCodeReader\n */\n function BrowserCodeReader(reader, timeBetweenScansMillis, _hints) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n this.reader = reader;\n this.timeBetweenScansMillis = timeBetweenScansMillis;\n this._hints = _hints;\n /**\n * This will break the loop.\n */\n this._stopContinuousDecode = false;\n /**\n * This will break the loop.\n */\n this._stopAsyncDecode = false;\n /**\n * Delay time between decode attempts made by the scanner.\n */\n this._timeBetweenDecodingAttempts = 0;\n }\n Object.defineProperty(BrowserCodeReader.prototype, \"hasNavigator\", {\n /**\n * If navigator is present.\n */\n get: function () {\n return typeof navigator !== 'undefined';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserCodeReader.prototype, \"isMediaDevicesSuported\", {\n /**\n * If mediaDevices under navigator is supported.\n */\n get: function () {\n return this.hasNavigator && !!navigator.mediaDevices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserCodeReader.prototype, \"canEnumerateDevices\", {\n /**\n * If enumerateDevices under navigator is supported.\n */\n get: function () {\n return !!(this.isMediaDevicesSuported && navigator.mediaDevices.enumerateDevices);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserCodeReader.prototype, \"timeBetweenDecodingAttempts\", {\n /** Time between two decoding tries in milli seconds. */\n get: function () {\n return this._timeBetweenDecodingAttempts;\n },\n /**\n * Change the time span the decoder waits between two decoding tries.\n *\n * @param {number} millis Time between two decoding tries in milli seconds.\n */\n set: function (millis) {\n this._timeBetweenDecodingAttempts = millis < 0 ? 0 : millis;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserCodeReader.prototype, \"hints\", {\n /**\n * Sets the hints.\n */\n get: function () {\n return this._hints;\n },\n /**\n * Sets the hints.\n */\n set: function (hints) {\n this._hints = hints || null;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Lists all the available video input devices.\n */\n BrowserCodeReader.prototype.listVideoInputDevices = function () {\n return __awaiter(this, void 0, void 0, function () {\n var devices, videoDevices, devices_1, devices_1_1, device, kind, deviceId, label, groupId, videoDevice;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.hasNavigator) {\n throw new Error(\"Can't enumerate devices, navigator is not present.\");\n }\n if (!this.canEnumerateDevices) {\n throw new Error(\"Can't enumerate devices, method not supported.\");\n }\n return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()];\n case 1:\n devices = _b.sent();\n videoDevices = [];\n try {\n for (devices_1 = __values(devices), devices_1_1 = devices_1.next(); !devices_1_1.done; devices_1_1 = devices_1.next()) {\n device = devices_1_1.value;\n kind = device.kind === 'video' ? 'videoinput' : device.kind;\n if (kind !== 'videoinput') {\n continue;\n }\n deviceId = device.deviceId || device.id;\n label = device.label || \"Video device \" + (videoDevices.length + 1);\n groupId = device.groupId;\n videoDevice = { deviceId: deviceId, label: label, kind: kind, groupId: groupId };\n videoDevices.push(videoDevice);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (devices_1_1 && !devices_1_1.done && (_a = devices_1.return)) _a.call(devices_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [2 /*return*/, videoDevices];\n }\n });\n });\n };\n /**\n * Obtain the list of available devices with type 'videoinput'.\n *\n * @returns {Promise} an array of available video input devices\n *\n * @memberOf BrowserCodeReader\n *\n * @deprecated Use `listVideoInputDevices` instead.\n */\n BrowserCodeReader.prototype.getVideoInputDevices = function () {\n return __awaiter(this, void 0, void 0, function () {\n var devices;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.listVideoInputDevices()];\n case 1:\n devices = _a.sent();\n return [2 /*return*/, devices.map(function (d) { return new VideoInputDevice(d.deviceId, d.label); })];\n }\n });\n });\n };\n /**\n * Let's you find a device using it's Id.\n */\n BrowserCodeReader.prototype.findDeviceById = function (deviceId) {\n return __awaiter(this, void 0, void 0, function () {\n var devices;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.listVideoInputDevices()];\n case 1:\n devices = _a.sent();\n if (!devices) {\n return [2 /*return*/, null];\n }\n return [2 /*return*/, devices.find(function (x) { return x.deviceId === deviceId; })];\n }\n });\n });\n };\n /**\n * Decodes the barcode from the device specified by deviceId while showing the video in the specified video element.\n *\n * @param deviceId the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n * @param video the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns The decoding result.\n *\n * @memberOf BrowserCodeReader\n *\n * @deprecated Use `decodeOnceFromVideoDevice` instead.\n */\n BrowserCodeReader.prototype.decodeFromInputVideoDevice = function (deviceId, videoSource) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.decodeOnceFromVideoDevice(deviceId, videoSource)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * In one attempt, tries to decode the barcode from the device specified by deviceId while showing the video in the specified video element.\n *\n * @param deviceId the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n * @param video the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeOnceFromVideoDevice = function (deviceId, videoSource) {\n return __awaiter(this, void 0, void 0, function () {\n var videoConstraints, constraints;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reset();\n if (!deviceId) {\n videoConstraints = { facingMode: 'environment' };\n }\n else {\n videoConstraints = { deviceId: { exact: deviceId } };\n }\n constraints = { video: videoConstraints };\n return [4 /*yield*/, this.decodeOnceFromConstraints(constraints, videoSource)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * In one attempt, tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n *\n * @param constraints the media stream constraints to get s valid media stream to decode from\n * @param video the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeOnceFromConstraints = function (constraints, videoSource) {\n return __awaiter(this, void 0, void 0, function () {\n var stream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];\n case 1:\n stream = _a.sent();\n return [4 /*yield*/, this.decodeOnceFromStream(stream, videoSource)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * In one attempt, tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n *\n * @param {MediaStream} [constraints] the media stream constraints to get s valid media stream to decode from\n * @param {string|HTMLVideoElement} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns {Promise} The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeOnceFromStream = function (stream, videoSource) {\n return __awaiter(this, void 0, void 0, function () {\n var video, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reset();\n return [4 /*yield*/, this.attachStreamToVideo(stream, videoSource)];\n case 1:\n video = _a.sent();\n return [4 /*yield*/, this.decodeOnce(video)];\n case 2:\n result = _a.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n /**\n * Continuously decodes the barcode from the device specified by device while showing the video in the specified video element.\n *\n * @param {string|null} [deviceId] the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n * @param {string|HTMLVideoElement|null} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns {Promise}\n *\n * @memberOf BrowserCodeReader\n *\n * @deprecated Use `decodeFromVideoDevice` instead.\n */\n BrowserCodeReader.prototype.decodeFromInputVideoDeviceContinuously = function (deviceId, videoSource, callbackFn) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.decodeFromVideoDevice(deviceId, videoSource, callbackFn)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Continuously tries to decode the barcode from the device specified by device while showing the video in the specified video element.\n *\n * @param {string|null} [deviceId] the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n * @param {string|HTMLVideoElement|null} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns {Promise}\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeFromVideoDevice = function (deviceId, videoSource, callbackFn) {\n return __awaiter(this, void 0, void 0, function () {\n var videoConstraints, constraints;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!deviceId) {\n videoConstraints = { facingMode: 'environment' };\n }\n else {\n videoConstraints = { deviceId: { exact: deviceId } };\n }\n constraints = { video: videoConstraints };\n return [4 /*yield*/, this.decodeFromConstraints(constraints, videoSource, callbackFn)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Continuously tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n *\n * @param {MediaStream} [constraints] the media stream constraints to get s valid media stream to decode from\n * @param {string|HTMLVideoElement} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns {Promise} The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeFromConstraints = function (constraints, videoSource, callbackFn) {\n return __awaiter(this, void 0, void 0, function () {\n var stream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];\n case 1:\n stream = _a.sent();\n return [4 /*yield*/, this.decodeFromStream(stream, videoSource, callbackFn)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * In one attempt, tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n *\n * @param {MediaStream} [constraints] the media stream constraints to get s valid media stream to decode from\n * @param {string|HTMLVideoElement} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n * @returns {Promise} The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeFromStream = function (stream, videoSource, callbackFn) {\n return __awaiter(this, void 0, void 0, function () {\n var video;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reset();\n return [4 /*yield*/, this.attachStreamToVideo(stream, videoSource)];\n case 1:\n video = _a.sent();\n return [4 /*yield*/, this.decodeContinuously(video, callbackFn)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Breaks the decoding loop.\n */\n BrowserCodeReader.prototype.stopAsyncDecode = function () {\n this._stopAsyncDecode = true;\n };\n /**\n * Breaks the decoding loop.\n */\n BrowserCodeReader.prototype.stopContinuousDecode = function () {\n this._stopContinuousDecode = true;\n };\n /**\n * Sets the new stream and request a new decoding-with-delay.\n *\n * @param stream The stream to be shown in the video element.\n * @param decodeFn A callback for the decode method.\n */\n BrowserCodeReader.prototype.attachStreamToVideo = function (stream, videoSource) {\n return __awaiter(this, void 0, void 0, function () {\n var videoElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n videoElement = this.prepareVideoElement(videoSource);\n this.addVideoSource(videoElement, stream);\n this.videoElement = videoElement;\n this.stream = stream;\n return [4 /*yield*/, this.playVideoOnLoadAsync(videoElement)];\n case 1:\n _a.sent();\n return [2 /*return*/, videoElement];\n }\n });\n });\n };\n /**\n *\n * @param videoElement\n */\n BrowserCodeReader.prototype.playVideoOnLoadAsync = function (videoElement) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n return _this.playVideoOnLoad(videoElement, function () { return resolve(); });\n });\n };\n /**\n * Binds listeners and callbacks to the videoElement.\n *\n * @param element\n * @param callbackFn\n */\n BrowserCodeReader.prototype.playVideoOnLoad = function (element, callbackFn) {\n var _this = this;\n this.videoEndedListener = function () { return _this.stopStreams(); };\n this.videoCanPlayListener = function () { return _this.tryPlayVideo(element); };\n element.addEventListener('ended', this.videoEndedListener);\n element.addEventListener('canplay', this.videoCanPlayListener);\n element.addEventListener('playing', callbackFn);\n // if canplay was already fired, we won't know when to play, so just give it a try\n this.tryPlayVideo(element);\n };\n /**\n * Checks if the given video element is currently playing.\n */\n BrowserCodeReader.prototype.isVideoPlaying = function (video) {\n return (video.currentTime > 0 &&\n !video.paused &&\n !video.ended &&\n video.readyState > 2);\n };\n /**\n * Just tries to play the video and logs any errors.\n * The play call is only made is the video is not already playing.\n */\n BrowserCodeReader.prototype.tryPlayVideo = function (videoElement) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.isVideoPlaying(videoElement)) {\n console.warn('Trying to play video that is already playing.');\n return [2 /*return*/];\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, videoElement.play()];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n _a = _b.sent();\n console.warn('It was not possible to play the video.');\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Searches and validates a media element.\n */\n BrowserCodeReader.prototype.getMediaElement = function (mediaElementId, type) {\n var mediaElement = document.getElementById(mediaElementId);\n if (!mediaElement) {\n throw new ArgumentException(\"element with id '\" + mediaElementId + \"' not found\");\n }\n if (mediaElement.nodeName.toLowerCase() !== type.toLowerCase()) {\n throw new ArgumentException(\"element with id '\" + mediaElementId + \"' must be an \" + type + \" element\");\n }\n return mediaElement;\n };\n /**\n * Decodes the barcode from an image.\n *\n * @param {(string|HTMLImageElement)} [source] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\n * @param {string} [url]\n * @returns {Promise} The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeFromImage = function (source, url) {\n if (!source && !url) {\n throw new ArgumentException('either imageElement with a src set or an url must be provided');\n }\n if (url && !source) {\n return this.decodeFromImageUrl(url);\n }\n return this.decodeFromImageElement(source);\n };\n /**\n * Decodes the barcode from a video.\n *\n * @param {(string|HTMLImageElement)} [source] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\n * @param {string} [url]\n * @returns {Promise} The decoding result.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.decodeFromVideo = function (source, url) {\n if (!source && !url) {\n throw new ArgumentException('Either an element with a src set or an URL must be provided');\n }\n if (url && !source) {\n return this.decodeFromVideoUrl(url);\n }\n return this.decodeFromVideoElement(source);\n };\n /**\n * Decodes continuously the barcode from a video.\n *\n * @param {(string|HTMLImageElement)} [source] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\n * @param {string} [url]\n * @returns {Promise} The decoding result.\n *\n * @memberOf BrowserCodeReader\n *\n * @experimental\n */\n BrowserCodeReader.prototype.decodeFromVideoContinuously = function (source, url, callbackFn) {\n if (undefined === source && undefined === url) {\n throw new ArgumentException('Either an element with a src set or an URL must be provided');\n }\n if (url && !source) {\n return this.decodeFromVideoUrlContinuously(url, callbackFn);\n }\n return this.decodeFromVideoElementContinuously(source, callbackFn);\n };\n /**\n * Decodes something from an image HTML element.\n */\n BrowserCodeReader.prototype.decodeFromImageElement = function (source) {\n if (!source) {\n throw new ArgumentException('An image element must be provided.');\n }\n this.reset();\n var element = this.prepareImageElement(source);\n this.imageElement = element;\n var task;\n if (this.isImageLoaded(element)) {\n task = this.decodeOnce(element, false, true);\n }\n else {\n task = this._decodeOnLoadImage(element);\n }\n return task;\n };\n /**\n * Decodes something from an image HTML element.\n */\n BrowserCodeReader.prototype.decodeFromVideoElement = function (source) {\n var element = this._decodeFromVideoElementSetup(source);\n return this._decodeOnLoadVideo(element);\n };\n /**\n * Decodes something from an image HTML element.\n */\n BrowserCodeReader.prototype.decodeFromVideoElementContinuously = function (source, callbackFn) {\n var element = this._decodeFromVideoElementSetup(source);\n return this._decodeOnLoadVideoContinuously(element, callbackFn);\n };\n /**\n * Sets up the video source so it can be decoded when loaded.\n *\n * @param source The video source element.\n */\n BrowserCodeReader.prototype._decodeFromVideoElementSetup = function (source) {\n if (!source) {\n throw new ArgumentException('A video element must be provided.');\n }\n this.reset();\n var element = this.prepareVideoElement(source);\n // defines the video element before starts decoding\n this.videoElement = element;\n return element;\n };\n /**\n * Decodes an image from a URL.\n */\n BrowserCodeReader.prototype.decodeFromImageUrl = function (url) {\n if (!url) {\n throw new ArgumentException('An URL must be provided.');\n }\n this.reset();\n var element = this.prepareImageElement();\n this.imageElement = element;\n var decodeTask = this._decodeOnLoadImage(element);\n element.src = url;\n return decodeTask;\n };\n /**\n * Decodes an image from a URL.\n */\n BrowserCodeReader.prototype.decodeFromVideoUrl = function (url) {\n if (!url) {\n throw new ArgumentException('An URL must be provided.');\n }\n this.reset();\n // creates a new element\n var element = this.prepareVideoElement();\n var decodeTask = this.decodeFromVideoElement(element);\n element.src = url;\n return decodeTask;\n };\n /**\n * Decodes an image from a URL.\n *\n * @experimental\n */\n BrowserCodeReader.prototype.decodeFromVideoUrlContinuously = function (url, callbackFn) {\n if (!url) {\n throw new ArgumentException('An URL must be provided.');\n }\n this.reset();\n // creates a new element\n var element = this.prepareVideoElement();\n var decodeTask = this.decodeFromVideoElementContinuously(element, callbackFn);\n element.src = url;\n return decodeTask;\n };\n BrowserCodeReader.prototype._decodeOnLoadImage = function (element) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.imageLoadedListener = function () {\n return _this.decodeOnce(element, false, true).then(resolve, reject);\n };\n element.addEventListener('load', _this.imageLoadedListener);\n });\n };\n BrowserCodeReader.prototype._decodeOnLoadVideo = function (videoElement) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // plays the video\n return [4 /*yield*/, this.playVideoOnLoadAsync(videoElement)];\n case 1:\n // plays the video\n _a.sent();\n return [4 /*yield*/, this.decodeOnce(videoElement)];\n case 2: \n // starts decoding after played the video\n return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n BrowserCodeReader.prototype._decodeOnLoadVideoContinuously = function (videoElement, callbackFn) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // plays the video\n return [4 /*yield*/, this.playVideoOnLoadAsync(videoElement)];\n case 1:\n // plays the video\n _a.sent();\n // starts decoding after played the video\n this.decodeContinuously(videoElement, callbackFn);\n return [2 /*return*/];\n }\n });\n });\n };\n BrowserCodeReader.prototype.isImageLoaded = function (img) {\n // During the onload event, IE correctly identifies any images that\n // weren’t downloaded as not complete. Others should too. Gecko-based\n // browsers act like NS4 in that they report this incorrectly.\n if (!img.complete) {\n return false;\n }\n // However, they do have two very useful properties: naturalWidth and\n // naturalHeight. These give the true size of the image. If it failed\n // to load, either of these should be zero.\n if (img.naturalWidth === 0) {\n return false;\n }\n // No other way of checking: assume it’s ok.\n return true;\n };\n BrowserCodeReader.prototype.prepareImageElement = function (imageSource) {\n var imageElement;\n if (typeof imageSource === 'undefined') {\n imageElement = document.createElement('img');\n imageElement.width = 200;\n imageElement.height = 200;\n }\n if (typeof imageSource === 'string') {\n imageElement = this.getMediaElement(imageSource, 'img');\n }\n if (imageSource instanceof HTMLImageElement) {\n imageElement = imageSource;\n }\n return imageElement;\n };\n /**\n * Sets a HTMLVideoElement for scanning or creates a new one.\n *\n * @param videoSource The HTMLVideoElement to be set.\n */\n BrowserCodeReader.prototype.prepareVideoElement = function (videoSource) {\n var videoElement;\n if (!videoSource && typeof document !== 'undefined') {\n videoElement = document.createElement('video');\n videoElement.width = 200;\n videoElement.height = 200;\n }\n if (typeof videoSource === 'string') {\n videoElement = (this.getMediaElement(videoSource, 'video'));\n }\n if (videoSource instanceof HTMLVideoElement) {\n videoElement = videoSource;\n }\n // Needed for iOS 11\n videoElement.setAttribute('autoplay', 'true');\n videoElement.setAttribute('muted', 'true');\n videoElement.setAttribute('playsinline', 'true');\n return videoElement;\n };\n /**\n * Tries to decode from the video input until it finds some value.\n */\n BrowserCodeReader.prototype.decodeOnce = function (element, retryIfNotFound, retryIfChecksumOrFormatError) {\n var _this = this;\n if (retryIfNotFound === void 0) { retryIfNotFound = true; }\n if (retryIfChecksumOrFormatError === void 0) { retryIfChecksumOrFormatError = true; }\n this._stopAsyncDecode = false;\n var loop = function (resolve, reject) {\n if (_this._stopAsyncDecode) {\n reject(new NotFoundException('Video stream has ended before any code could be detected.'));\n _this._stopAsyncDecode = undefined;\n return;\n }\n try {\n var result = _this.decode(element);\n resolve(result);\n }\n catch (e) {\n var ifNotFound = retryIfNotFound && e instanceof NotFoundException;\n var isChecksumOrFormatError = e instanceof ChecksumException || e instanceof FormatException;\n var ifChecksumOrFormat = isChecksumOrFormatError && retryIfChecksumOrFormatError;\n if (ifNotFound || ifChecksumOrFormat) {\n // trying again\n return setTimeout(loop, _this._timeBetweenDecodingAttempts, resolve, reject);\n }\n reject(e);\n }\n };\n return new Promise(function (resolve, reject) { return loop(resolve, reject); });\n };\n /**\n * Continuously decodes from video input.\n */\n BrowserCodeReader.prototype.decodeContinuously = function (element, callbackFn) {\n var _this = this;\n this._stopContinuousDecode = false;\n var loop = function () {\n if (_this._stopContinuousDecode) {\n _this._stopContinuousDecode = undefined;\n return;\n }\n try {\n var result = _this.decode(element);\n callbackFn(result, null);\n setTimeout(loop, _this.timeBetweenScansMillis);\n }\n catch (e) {\n callbackFn(null, e);\n var isChecksumOrFormatError = e instanceof ChecksumException || e instanceof FormatException;\n var isNotFound = e instanceof NotFoundException;\n if (isChecksumOrFormatError || isNotFound) {\n // trying again\n setTimeout(loop, _this._timeBetweenDecodingAttempts);\n }\n }\n };\n loop();\n };\n /**\n * Gets the BinaryBitmap for ya! (and decodes it)\n */\n BrowserCodeReader.prototype.decode = function (element) {\n // get binary bitmap for decode function\n var binaryBitmap = this.createBinaryBitmap(element);\n return this.decodeBitmap(binaryBitmap);\n };\n /**\n * Creates a binaryBitmap based in some image source.\n *\n * @param mediaElement HTML element containing drawable image source.\n */\n BrowserCodeReader.prototype.createBinaryBitmap = function (mediaElement) {\n var ctx = this.getCaptureCanvasContext(mediaElement);\n // doing a scan with inverted colors on the second scan should only happen for video elements\n var doAutoInvert = false;\n if (mediaElement instanceof HTMLVideoElement) {\n this.drawFrameOnCanvas(mediaElement);\n doAutoInvert = true;\n }\n else {\n this.drawImageOnCanvas(mediaElement);\n }\n var canvas = this.getCaptureCanvas(mediaElement);\n var luminanceSource = new HTMLCanvasElementLuminanceSource(canvas, doAutoInvert);\n var hybridBinarizer = new HybridBinarizer(luminanceSource);\n return new BinaryBitmap(hybridBinarizer);\n };\n /**\n *\n */\n BrowserCodeReader.prototype.getCaptureCanvasContext = function (mediaElement) {\n if (!this.captureCanvasContext) {\n var elem = this.getCaptureCanvas(mediaElement);\n var ctx = void 0;\n try {\n ctx = elem.getContext('2d', { willReadFrequently: true });\n }\n catch (e) {\n ctx = elem.getContext('2d');\n }\n this.captureCanvasContext = ctx;\n }\n return this.captureCanvasContext;\n };\n /**\n *\n */\n BrowserCodeReader.prototype.getCaptureCanvas = function (mediaElement) {\n if (!this.captureCanvas) {\n var elem = this.createCaptureCanvas(mediaElement);\n this.captureCanvas = elem;\n }\n return this.captureCanvas;\n };\n /**\n * Overwriting this allows you to manipulate the next frame in anyway you want before decode.\n */\n BrowserCodeReader.prototype.drawFrameOnCanvas = function (srcElement, dimensions, canvasElementContext) {\n if (dimensions === void 0) { dimensions = {\n sx: 0,\n sy: 0,\n sWidth: srcElement.videoWidth,\n sHeight: srcElement.videoHeight,\n dx: 0,\n dy: 0,\n dWidth: srcElement.videoWidth,\n dHeight: srcElement.videoHeight,\n }; }\n if (canvasElementContext === void 0) { canvasElementContext = this.captureCanvasContext; }\n canvasElementContext.drawImage(srcElement, dimensions.sx, dimensions.sy, dimensions.sWidth, dimensions.sHeight, dimensions.dx, dimensions.dy, dimensions.dWidth, dimensions.dHeight);\n };\n /**\n * Ovewriting this allows you to manipulate the snapshot image in anyway you want before decode.\n */\n BrowserCodeReader.prototype.drawImageOnCanvas = function (srcElement, dimensions, canvasElementContext) {\n if (dimensions === void 0) { dimensions = {\n sx: 0,\n sy: 0,\n sWidth: srcElement.naturalWidth,\n sHeight: srcElement.naturalHeight,\n dx: 0,\n dy: 0,\n dWidth: srcElement.naturalWidth,\n dHeight: srcElement.naturalHeight,\n }; }\n if (canvasElementContext === void 0) { canvasElementContext = this.captureCanvasContext; }\n canvasElementContext.drawImage(srcElement, dimensions.sx, dimensions.sy, dimensions.sWidth, dimensions.sHeight, dimensions.dx, dimensions.dy, dimensions.dWidth, dimensions.dHeight);\n };\n /**\n * Call the encapsulated readers decode\n */\n BrowserCodeReader.prototype.decodeBitmap = function (binaryBitmap) {\n return this.reader.decode(binaryBitmap, this._hints);\n };\n /**\n * 🖌 Prepares the canvas for capture and scan frames.\n */\n BrowserCodeReader.prototype.createCaptureCanvas = function (mediaElement) {\n if (typeof document === 'undefined') {\n this._destroyCaptureCanvas();\n return null;\n }\n var canvasElement = document.createElement('canvas');\n var width;\n var height;\n if (typeof mediaElement !== 'undefined') {\n if (mediaElement instanceof HTMLVideoElement) {\n width = mediaElement.videoWidth;\n height = mediaElement.videoHeight;\n }\n else if (mediaElement instanceof HTMLImageElement) {\n width = mediaElement.naturalWidth || mediaElement.width;\n height = mediaElement.naturalHeight || mediaElement.height;\n }\n }\n canvasElement.style.width = width + 'px';\n canvasElement.style.height = height + 'px';\n canvasElement.width = width;\n canvasElement.height = height;\n return canvasElement;\n };\n /**\n * Stops the continuous scan and cleans the stream.\n */\n BrowserCodeReader.prototype.stopStreams = function () {\n if (this.stream) {\n this.stream.getVideoTracks().forEach(function (t) { return t.stop(); });\n this.stream = undefined;\n }\n if (this._stopAsyncDecode === false) {\n this.stopAsyncDecode();\n }\n if (this._stopContinuousDecode === false) {\n this.stopContinuousDecode();\n }\n };\n /**\n * Resets the code reader to the initial state. Cancels any ongoing barcode scanning from video or camera.\n *\n * @memberOf BrowserCodeReader\n */\n BrowserCodeReader.prototype.reset = function () {\n // stops the camera, preview and scan 🔴\n this.stopStreams();\n // clean and forget about HTML elements\n this._destroyVideoElement();\n this._destroyImageElement();\n this._destroyCaptureCanvas();\n };\n BrowserCodeReader.prototype._destroyVideoElement = function () {\n if (!this.videoElement) {\n return;\n }\n // first gives freedon to the element 🕊\n if (typeof this.videoEndedListener !== 'undefined') {\n this.videoElement.removeEventListener('ended', this.videoEndedListener);\n }\n if (typeof this.videoPlayingEventListener !== 'undefined') {\n this.videoElement.removeEventListener('playing', this.videoPlayingEventListener);\n }\n if (typeof this.videoCanPlayListener !== 'undefined') {\n this.videoElement.removeEventListener('loadedmetadata', this.videoCanPlayListener);\n }\n // then forgets about that element 😢\n this.cleanVideoSource(this.videoElement);\n this.videoElement = undefined;\n };\n BrowserCodeReader.prototype._destroyImageElement = function () {\n if (!this.imageElement) {\n return;\n }\n // first gives freedon to the element 🕊\n if (undefined !== this.imageLoadedListener) {\n this.imageElement.removeEventListener('load', this.imageLoadedListener);\n }\n // then forget about that element 😢\n this.imageElement.src = undefined;\n this.imageElement.removeAttribute('src');\n this.imageElement = undefined;\n };\n /**\n * Cleans canvas references 🖌\n */\n BrowserCodeReader.prototype._destroyCaptureCanvas = function () {\n // then forget about that element 😢\n this.captureCanvasContext = undefined;\n this.captureCanvas = undefined;\n };\n /**\n * Defines what the videoElement src will be.\n *\n * @param videoElement\n * @param stream\n */\n BrowserCodeReader.prototype.addVideoSource = function (videoElement, stream) {\n // Older browsers may not have `srcObject`\n try {\n // @note Throws Exception if interrupted by a new loaded request\n videoElement.srcObject = stream;\n }\n catch (err) {\n // @note Avoid using this in new browsers, as it is going away.\n // @ts-ignore\n videoElement.src = URL.createObjectURL(stream);\n }\n };\n /**\n * Unbinds a HTML video src property.\n *\n * @param videoElement\n */\n BrowserCodeReader.prototype.cleanVideoSource = function (videoElement) {\n try {\n videoElement.srcObject = null;\n }\n catch (err) {\n videoElement.src = '';\n }\n this.videoElement.removeAttribute('src');\n };\n return BrowserCodeReader;\n}());\nexport { BrowserCodeReader };\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport System from './util/System';\n/**\n *

    Encapsulates the result of decoding a barcode within an image.

    \n *\n * @author Sean Owen\n */\nvar Result = /** @class */ (function () {\n // public constructor(private text: string,\n // Uint8Array rawBytes,\n // ResultPoconst resultPoints: Int32Array,\n // BarcodeFormat format) {\n // this(text, rawBytes, resultPoints, format, System.currentTimeMillis())\n // }\n // public constructor(text: string,\n // Uint8Array rawBytes,\n // ResultPoconst resultPoints: Int32Array,\n // BarcodeFormat format,\n // long timestamp) {\n // this(text, rawBytes, rawBytes == null ? 0 : 8 * rawBytes.length,\n // resultPoints, format, timestamp)\n // }\n function Result(text, rawBytes, numBits, resultPoints, format, timestamp) {\n if (numBits === void 0) { numBits = rawBytes == null ? 0 : 8 * rawBytes.length; }\n if (timestamp === void 0) { timestamp = System.currentTimeMillis(); }\n this.text = text;\n this.rawBytes = rawBytes;\n this.numBits = numBits;\n this.resultPoints = resultPoints;\n this.format = format;\n this.timestamp = timestamp;\n this.text = text;\n this.rawBytes = rawBytes;\n if (undefined === numBits || null === numBits) {\n this.numBits = (rawBytes === null || rawBytes === undefined) ? 0 : 8 * rawBytes.length;\n }\n else {\n this.numBits = numBits;\n }\n this.resultPoints = resultPoints;\n this.format = format;\n this.resultMetadata = null;\n if (undefined === timestamp || null === timestamp) {\n this.timestamp = System.currentTimeMillis();\n }\n else {\n this.timestamp = timestamp;\n }\n }\n /**\n * @return raw text encoded by the barcode\n */\n Result.prototype.getText = function () {\n return this.text;\n };\n /**\n * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}\n */\n Result.prototype.getRawBytes = function () {\n return this.rawBytes;\n };\n /**\n * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\n * @since 3.3.0\n */\n Result.prototype.getNumBits = function () {\n return this.numBits;\n };\n /**\n * @return points related to the barcode in the image. These are typically points\n * identifying finder patterns or the corners of the barcode. The exact meaning is\n * specific to the type of barcode that was decoded.\n */\n Result.prototype.getResultPoints = function () {\n return this.resultPoints;\n };\n /**\n * @return {@link BarcodeFormat} representing the format of the barcode that was decoded\n */\n Result.prototype.getBarcodeFormat = function () {\n return this.format;\n };\n /**\n * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be\n * {@code null}. This contains optional metadata about what was detected about the barcode,\n * like orientation.\n */\n Result.prototype.getResultMetadata = function () {\n return this.resultMetadata;\n };\n Result.prototype.putMetadata = function (type, value) {\n if (this.resultMetadata === null) {\n this.resultMetadata = new Map();\n }\n this.resultMetadata.set(type, value);\n };\n Result.prototype.putAllMetadata = function (metadata) {\n if (metadata !== null) {\n if (this.resultMetadata === null) {\n this.resultMetadata = metadata;\n }\n else {\n this.resultMetadata = new Map(metadata);\n }\n }\n };\n Result.prototype.addResultPoints = function (newPoints) {\n var oldPoints = this.resultPoints;\n if (oldPoints === null) {\n this.resultPoints = newPoints;\n }\n else if (newPoints !== null && newPoints.length > 0) {\n var allPoints = new Array(oldPoints.length + newPoints.length);\n System.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length);\n System.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length);\n this.resultPoints = allPoints;\n }\n };\n Result.prototype.getTimestamp = function () {\n return this.timestamp;\n };\n /*@Override*/\n Result.prototype.toString = function () {\n return this.text;\n };\n return Result;\n}());\nexport default Result;\n","/*\n * Direct port to TypeScript of ZXing by Adrian Toșcă\n */\n/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * Enumerates barcode formats known to this package. Please keep alphabetized.\n *\n * @author Sean Owen\n */\nvar BarcodeFormat;\n(function (BarcodeFormat) {\n /** Aztec 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"AZTEC\"] = 0] = \"AZTEC\";\n /** CODABAR 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODABAR\"] = 1] = \"CODABAR\";\n /** Code 39 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_39\"] = 2] = \"CODE_39\";\n /** Code 93 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_93\"] = 3] = \"CODE_93\";\n /** Code 128 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_128\"] = 4] = \"CODE_128\";\n /** Data Matrix 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"DATA_MATRIX\"] = 5] = \"DATA_MATRIX\";\n /** EAN-8 1D format. */\n BarcodeFormat[BarcodeFormat[\"EAN_8\"] = 6] = \"EAN_8\";\n /** EAN-13 1D format. */\n BarcodeFormat[BarcodeFormat[\"EAN_13\"] = 7] = \"EAN_13\";\n /** ITF (Interleaved Two of Five) 1D format. */\n BarcodeFormat[BarcodeFormat[\"ITF\"] = 8] = \"ITF\";\n /** MaxiCode 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"MAXICODE\"] = 9] = \"MAXICODE\";\n /** PDF417 format. */\n BarcodeFormat[BarcodeFormat[\"PDF_417\"] = 10] = \"PDF_417\";\n /** QR Code 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"QR_CODE\"] = 11] = \"QR_CODE\";\n /** RSS 14 */\n BarcodeFormat[BarcodeFormat[\"RSS_14\"] = 12] = \"RSS_14\";\n /** RSS EXPANDED */\n BarcodeFormat[BarcodeFormat[\"RSS_EXPANDED\"] = 13] = \"RSS_EXPANDED\";\n /** UPC-A 1D format. */\n BarcodeFormat[BarcodeFormat[\"UPC_A\"] = 14] = \"UPC_A\";\n /** UPC-E 1D format. */\n BarcodeFormat[BarcodeFormat[\"UPC_E\"] = 15] = \"UPC_E\";\n /** UPC/EAN extension format. Not a stand-alone format. */\n BarcodeFormat[BarcodeFormat[\"UPC_EAN_EXTENSION\"] = 16] = \"UPC_EAN_EXTENSION\";\n})(BarcodeFormat || (BarcodeFormat = {}));\nexport default BarcodeFormat;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * Represents some type of metadata about the result of the decoding that the decoder\n * wishes to communicate back to the caller.\n *\n * @author Sean Owen\n */\nvar ResultMetadataType;\n(function (ResultMetadataType) {\n /**\n * Unspecified, application-specific metadata. Maps to an unspecified {@link Object}.\n */\n ResultMetadataType[ResultMetadataType[\"OTHER\"] = 0] = \"OTHER\";\n /**\n * Denotes the likely approximate orientation of the barcode in the image. This value\n * is given as degrees rotated clockwise from the normal, upright orientation.\n * For example a 1D barcode which was found by reading top-to-bottom would be\n * said to have orientation \"90\". This key maps to an {@link Integer} whose\n * value is in the range [0,360).\n */\n ResultMetadataType[ResultMetadataType[\"ORIENTATION\"] = 1] = \"ORIENTATION\";\n /**\n *

    2D barcode formats typically encode text, but allow for a sort of 'byte mode'\n * which is sometimes used to encode binary data. While {@link Result} makes available\n * the complete raw bytes in the barcode for these formats, it does not offer the bytes\n * from the byte segments alone.

    \n *\n *

    This maps to a {@link java.util.List} of byte arrays corresponding to the\n * raw bytes in the byte segments in the barcode, in order.

    \n */\n ResultMetadataType[ResultMetadataType[\"BYTE_SEGMENTS\"] = 2] = \"BYTE_SEGMENTS\";\n /**\n * Error correction level used, if applicable. The value type depends on the\n * format, but is typically a String.\n */\n ResultMetadataType[ResultMetadataType[\"ERROR_CORRECTION_LEVEL\"] = 3] = \"ERROR_CORRECTION_LEVEL\";\n /**\n * For some periodicals, indicates the issue number as an {@link Integer}.\n */\n ResultMetadataType[ResultMetadataType[\"ISSUE_NUMBER\"] = 4] = \"ISSUE_NUMBER\";\n /**\n * For some products, indicates the suggested retail price in the barcode as a\n * formatted {@link String}.\n */\n ResultMetadataType[ResultMetadataType[\"SUGGESTED_PRICE\"] = 5] = \"SUGGESTED_PRICE\";\n /**\n * For some products, the possible country of manufacture as a {@link String} denoting the\n * ISO country code. Some map to multiple possible countries, like \"US/CA\".\n */\n ResultMetadataType[ResultMetadataType[\"POSSIBLE_COUNTRY\"] = 6] = \"POSSIBLE_COUNTRY\";\n /**\n * For some products, the extension text\n */\n ResultMetadataType[ResultMetadataType[\"UPC_EAN_EXTENSION\"] = 7] = \"UPC_EAN_EXTENSION\";\n /**\n * PDF417-specific metadata\n */\n ResultMetadataType[ResultMetadataType[\"PDF417_EXTRA_METADATA\"] = 8] = \"PDF417_EXTRA_METADATA\";\n /**\n * If the code format supports structured append and the current scanned code is part of one then the\n * sequence number is given with it.\n */\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_SEQUENCE\"] = 9] = \"STRUCTURED_APPEND_SEQUENCE\";\n /**\n * If the code format supports structured append and the current scanned code is part of one then the\n * parity is given with it.\n */\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_PARITY\"] = 10] = \"STRUCTURED_APPEND_PARITY\";\n})(ResultMetadataType || (ResultMetadataType = {}));\nexport default ResultMetadataType;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.util.List;*/\n/**\n *

    Encapsulates the result of decoding a matrix of bits. This typically\n * applies to 2D barcode formats. For now it contains the raw bytes obtained,\n * as well as a String interpretation of those bytes, if applicable.

    \n *\n * @author Sean Owen\n */\nvar DecoderResult = /** @class */ (function () {\n // public constructor(rawBytes: Uint8Array,\n // text: string,\n // List byteSegments,\n // String ecLevel) {\n // this(rawBytes, text, byteSegments, ecLevel, -1, -1)\n // }\n function DecoderResult(rawBytes, text, byteSegments, ecLevel, structuredAppendSequenceNumber, structuredAppendParity) {\n if (structuredAppendSequenceNumber === void 0) { structuredAppendSequenceNumber = -1; }\n if (structuredAppendParity === void 0) { structuredAppendParity = -1; }\n this.rawBytes = rawBytes;\n this.text = text;\n this.byteSegments = byteSegments;\n this.ecLevel = ecLevel;\n this.structuredAppendSequenceNumber = structuredAppendSequenceNumber;\n this.structuredAppendParity = structuredAppendParity;\n this.numBits = (rawBytes === undefined || rawBytes === null) ? 0 : 8 * rawBytes.length;\n }\n /**\n * @return raw bytes representing the result, or {@code null} if not applicable\n */\n DecoderResult.prototype.getRawBytes = function () {\n return this.rawBytes;\n };\n /**\n * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\n * @since 3.3.0\n */\n DecoderResult.prototype.getNumBits = function () {\n return this.numBits;\n };\n /**\n * @param numBits overrides the number of bits that are valid in {@link #getRawBytes()}\n * @since 3.3.0\n */\n DecoderResult.prototype.setNumBits = function (numBits /*int*/) {\n this.numBits = numBits;\n };\n /**\n * @return text representation of the result\n */\n DecoderResult.prototype.getText = function () {\n return this.text;\n };\n /**\n * @return list of byte segments in the result, or {@code null} if not applicable\n */\n DecoderResult.prototype.getByteSegments = function () {\n return this.byteSegments;\n };\n /**\n * @return name of error correction level used, or {@code null} if not applicable\n */\n DecoderResult.prototype.getECLevel = function () {\n return this.ecLevel;\n };\n /**\n * @return number of errors corrected, or {@code null} if not applicable\n */\n DecoderResult.prototype.getErrorsCorrected = function () {\n return this.errorsCorrected;\n };\n DecoderResult.prototype.setErrorsCorrected = function (errorsCorrected /*Integer*/) {\n this.errorsCorrected = errorsCorrected;\n };\n /**\n * @return number of erasures corrected, or {@code null} if not applicable\n */\n DecoderResult.prototype.getErasures = function () {\n return this.erasures;\n };\n DecoderResult.prototype.setErasures = function (erasures /*Integer*/) {\n this.erasures = erasures;\n };\n /**\n * @return arbitrary additional metadata\n */\n DecoderResult.prototype.getOther = function () {\n return this.other;\n };\n DecoderResult.prototype.setOther = function (other) {\n this.other = other;\n };\n DecoderResult.prototype.hasStructuredAppend = function () {\n return this.structuredAppendParity >= 0 && this.structuredAppendSequenceNumber >= 0;\n };\n DecoderResult.prototype.getStructuredAppendParity = function () {\n return this.structuredAppendParity;\n };\n DecoderResult.prototype.getStructuredAppendSequenceNumber = function () {\n return this.structuredAppendSequenceNumber;\n };\n return DecoderResult;\n}());\nexport default DecoderResult;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n *

    This class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.

    \n *\n *

    Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n *

    \n *\n * @author Sean Owen\n * @author David Olivier\n */\nvar AbstractGenericGF = /** @class */ (function () {\n function AbstractGenericGF() {\n }\n /**\n * @return 2 to the power of a in GF(size)\n */\n AbstractGenericGF.prototype.exp = function (a) {\n return this.expTable[a];\n };\n /**\n * @return base 2 log of a in GF(size)\n */\n AbstractGenericGF.prototype.log = function (a /*int*/) {\n if (a === 0) {\n throw new IllegalArgumentException();\n }\n return this.logTable[a];\n };\n /**\n * Implements both addition and subtraction -- they are the same in GF(size).\n *\n * @return sum/difference of a and b\n */\n AbstractGenericGF.addOrSubtract = function (a /*int*/, b /*int*/) {\n return a ^ b;\n };\n return AbstractGenericGF;\n}());\nexport default AbstractGenericGF;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.reedsolomon {*/\nimport AbstractGenericGF from './AbstractGenericGF';\nimport System from '../../util/System';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n *

    Represents a polynomial whose coefficients are elements of a GF.\n * Instances of this class are immutable.

    \n *\n *

    Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.

    \n *\n * @author Sean Owen\n */\nvar GenericGFPoly = /** @class */ (function () {\n /**\n * @param field the {@link GenericGF} instance representing the field to use\n * to perform computations\n * @param coefficients coefficients as ints representing elements of GF(size), arranged\n * from most significant (highest-power term) coefficient to least significant\n * @throws IllegalArgumentException if argument is null or empty,\n * or if leading coefficient is 0 and this is not a\n * constant polynomial (that is, it is not the monomial \"0\")\n */\n function GenericGFPoly(field, coefficients) {\n if (coefficients.length === 0) {\n throw new IllegalArgumentException();\n }\n this.field = field;\n var coefficientsLength = coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n var firstNonZero = 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = Int32Array.from([0]);\n }\n else {\n this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n System.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n GenericGFPoly.prototype.getCoefficients = function () {\n return this.coefficients;\n };\n /**\n * @return degree of this polynomial\n */\n GenericGFPoly.prototype.getDegree = function () {\n return this.coefficients.length - 1;\n };\n /**\n * @return true iff this polynomial is the monomial \"0\"\n */\n GenericGFPoly.prototype.isZero = function () {\n return this.coefficients[0] === 0;\n };\n /**\n * @return coefficient of x^degree term in this polynomial\n */\n GenericGFPoly.prototype.getCoefficient = function (degree /*int*/) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n };\n /**\n * @return evaluation of this polynomial at a given point\n */\n GenericGFPoly.prototype.evaluateAt = function (a /*int*/) {\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n var coefficients = this.coefficients;\n var result;\n if (a === 1) {\n // Just the sum of the coefficients\n result = 0;\n for (var i = 0, length_1 = coefficients.length; i !== length_1; i++) {\n var coefficient = coefficients[i];\n result = AbstractGenericGF.addOrSubtract(result, coefficient);\n }\n return result;\n }\n result = coefficients[0];\n var size = coefficients.length;\n var field = this.field;\n for (var i = 1; i < size; i++) {\n result = AbstractGenericGF.addOrSubtract(field.multiply(a, result), coefficients[i]);\n }\n return result;\n };\n GenericGFPoly.prototype.addOrSubtract = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n var smallerCoefficients = this.coefficients;\n var largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n var temp = smallerCoefficients;\n smallerCoefficients = largerCoefficients;\n largerCoefficients = temp;\n }\n var sumDiff = new Int32Array(largerCoefficients.length);\n var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n // Copy high-order terms only found in higher-degree polynomial's coefficients\n System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n for (var i = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = AbstractGenericGF.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new GenericGFPoly(this.field, sumDiff);\n };\n GenericGFPoly.prototype.multiply = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero() || other.isZero()) {\n return this.field.getZero();\n }\n var aCoefficients = this.coefficients;\n var aLength = aCoefficients.length;\n var bCoefficients = other.coefficients;\n var bLength = bCoefficients.length;\n var product = new Int32Array(aLength + bLength - 1);\n var field = this.field;\n for (var i = 0; i < aLength; i++) {\n var aCoeff = aCoefficients[i];\n for (var j = 0; j < bLength; j++) {\n product[i + j] = AbstractGenericGF.addOrSubtract(product[i + j], field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.multiplyScalar = function (scalar /*int*/) {\n if (scalar === 0) {\n return this.field.getZero();\n }\n if (scalar === 1) {\n return this;\n }\n var size = this.coefficients.length;\n var field = this.field;\n var product = new Int32Array(size);\n var coefficients = this.coefficients;\n for (var i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], scalar);\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.multiplyByMonomial = function (degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return this.field.getZero();\n }\n var coefficients = this.coefficients;\n var size = coefficients.length;\n var product = new Int32Array(size + degree);\n var field = this.field;\n for (var i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], coefficient);\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.divide = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n }\n if (other.isZero()) {\n throw new IllegalArgumentException('Divide by 0');\n }\n var field = this.field;\n var quotient = field.getZero();\n var remainder = this;\n var denominatorLeadingTerm = other.getCoefficient(other.getDegree());\n var inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm);\n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n var degreeDifference = remainder.getDegree() - other.getDegree();\n var scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n var term = other.multiplyByMonomial(degreeDifference, scale);\n var iterationQuotient = field.buildMonomial(degreeDifference, scale);\n quotient = quotient.addOrSubtract(iterationQuotient);\n remainder = remainder.addOrSubtract(term);\n }\n return [quotient, remainder];\n };\n /*@Override*/\n GenericGFPoly.prototype.toString = function () {\n var result = '';\n for (var degree = this.getDegree(); degree >= 0; degree--) {\n var coefficient = this.getCoefficient(degree);\n if (coefficient !== 0) {\n if (coefficient < 0) {\n result += ' - ';\n coefficient = -coefficient;\n }\n else {\n if (result.length > 0) {\n result += ' + ';\n }\n }\n if (degree === 0 || coefficient !== 1) {\n var alphaPower = this.field.log(coefficient);\n if (alphaPower === 0) {\n result += '1';\n }\n else if (alphaPower === 1) {\n result += 'a';\n }\n else {\n result += 'a^';\n result += alphaPower;\n }\n }\n if (degree !== 0) {\n if (degree === 1) {\n result += 'x';\n }\n else {\n result += 'x^';\n result += degree;\n }\n }\n }\n }\n return result;\n };\n return GenericGFPoly;\n}());\nexport default GenericGFPoly;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ArithmeticException = /** @class */ (function (_super) {\n __extends(ArithmeticException, _super);\n function ArithmeticException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ArithmeticException.kind = 'ArithmeticException';\n return ArithmeticException;\n}(Exception));\nexport default ArithmeticException;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.common.reedsolomon {*/\nimport GenericGFPoly from './GenericGFPoly';\nimport AbstractGenericGF from './AbstractGenericGF';\nimport Integer from '../../util/Integer';\nimport IllegalArgumentException from '../../IllegalArgumentException';\nimport ArithmeticException from '../../ArithmeticException';\n/**\n *

    This class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.

    \n *\n *

    Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n *

    \n *\n * @author Sean Owen\n * @author David Olivier\n */\nvar GenericGF = /** @class */ (function (_super) {\n __extends(GenericGF, _super);\n /**\n * Create a representation of GF(size) using the given primitive polynomial.\n *\n * @param primitive irreducible polynomial whose coefficients are represented by\n * the bits of an int, where the least-significant bit represents the constant\n * coefficient\n * @param size the size of the field\n * @param b the factor b in the generator polynomial can be 0- or 1-based\n * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))).\n * In most cases it should be 1, but for QR code it is 0.\n */\n function GenericGF(primitive /*int*/, size /*int*/, generatorBase /*int*/) {\n var _this = _super.call(this) || this;\n _this.primitive = primitive;\n _this.size = size;\n _this.generatorBase = generatorBase;\n var expTable = new Int32Array(size);\n var x = 1;\n for (var i = 0; i < size; i++) {\n expTable[i] = x;\n x *= 2; // we're assuming the generator alpha is 2\n if (x >= size) {\n x ^= primitive;\n x &= size - 1;\n }\n }\n _this.expTable = expTable;\n var logTable = new Int32Array(size);\n for (var i = 0; i < size - 1; i++) {\n logTable[expTable[i]] = i;\n }\n _this.logTable = logTable;\n // logTable[0] == 0 but this should never be used\n _this.zero = new GenericGFPoly(_this, Int32Array.from([0]));\n _this.one = new GenericGFPoly(_this, Int32Array.from([1]));\n return _this;\n }\n GenericGF.prototype.getZero = function () {\n return this.zero;\n };\n GenericGF.prototype.getOne = function () {\n return this.one;\n };\n /**\n * @return the monomial representing coefficient * x^degree\n */\n GenericGF.prototype.buildMonomial = function (degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return this.zero;\n }\n var coefficients = new Int32Array(degree + 1);\n coefficients[0] = coefficient;\n return new GenericGFPoly(this, coefficients);\n };\n /**\n * @return multiplicative inverse of a\n */\n GenericGF.prototype.inverse = function (a /*int*/) {\n if (a === 0) {\n throw new ArithmeticException();\n }\n return this.expTable[this.size - this.logTable[a] - 1];\n };\n /**\n * @return product of a and b in GF(size)\n */\n GenericGF.prototype.multiply = function (a /*int*/, b /*int*/) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\n };\n GenericGF.prototype.getSize = function () {\n return this.size;\n };\n GenericGF.prototype.getGeneratorBase = function () {\n return this.generatorBase;\n };\n /*@Override*/\n GenericGF.prototype.toString = function () {\n return ('GF(0x' + Integer.toHexString(this.primitive) + ',' + this.size + ')');\n };\n GenericGF.prototype.equals = function (o) {\n return o === this;\n };\n GenericGF.AZTEC_DATA_12 = new GenericGF(0x1069, 4096, 1); // x^12 + x^6 + x^5 + x^3 + 1\n GenericGF.AZTEC_DATA_10 = new GenericGF(0x409, 1024, 1); // x^10 + x^3 + 1\n GenericGF.AZTEC_DATA_6 = new GenericGF(0x43, 64, 1); // x^6 + x + 1\n GenericGF.AZTEC_PARAM = new GenericGF(0x13, 16, 1); // x^4 + x + 1\n GenericGF.QR_CODE_FIELD_256 = new GenericGF(0x011d, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\n GenericGF.DATA_MATRIX_FIELD_256 = new GenericGF(0x012d, 256, 1); // x^8 + x^5 + x^3 + x^2 + 1\n GenericGF.AZTEC_DATA_8 = GenericGF.DATA_MATRIX_FIELD_256;\n GenericGF.MAXICODE_FIELD_64 = GenericGF.AZTEC_DATA_6;\n return GenericGF;\n}(AbstractGenericGF));\nexport default GenericGF;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ReedSolomonException = /** @class */ (function (_super) {\n __extends(ReedSolomonException, _super);\n function ReedSolomonException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ReedSolomonException.kind = 'ReedSolomonException';\n return ReedSolomonException;\n}(Exception));\nexport default ReedSolomonException;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar IllegalStateException = /** @class */ (function (_super) {\n __extends(IllegalStateException, _super);\n function IllegalStateException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IllegalStateException.kind = 'IllegalStateException';\n return IllegalStateException;\n}(Exception));\nexport default IllegalStateException;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.reedsolomon {*/\nimport GenericGF from './GenericGF';\nimport GenericGFPoly from './GenericGFPoly';\nimport ReedSolomonException from '../../ReedSolomonException';\nimport IllegalStateException from '../../IllegalStateException';\n/**\n *

    Implements Reed-Solomon decoding, as the name implies.

    \n *\n *

    The algorithm will not be explained here, but the following references were helpful\n * in creating this implementation:

    \n *\n * \n *\n *

    Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.

    \n *\n * @author Sean Owen\n * @author William Rucklidge\n * @author sanfordsquires\n */\nvar ReedSolomonDecoder = /** @class */ (function () {\n function ReedSolomonDecoder(field) {\n this.field = field;\n }\n /**\n *

    Decodes given set of received codewords, which include both data and error-correction\n * codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place,\n * in the input.

    \n *\n * @param received data and error-correction codewords\n * @param twoS number of error-correction codewords available\n * @throws ReedSolomonException if decoding fails for any reason\n */\n ReedSolomonDecoder.prototype.decode = function (received, twoS /*int*/) {\n var field = this.field;\n var poly = new GenericGFPoly(field, received);\n var syndromeCoefficients = new Int32Array(twoS);\n var noError = true;\n for (var i = 0; i < twoS; i++) {\n var evalResult = poly.evaluateAt(field.exp(i + field.getGeneratorBase()));\n syndromeCoefficients[syndromeCoefficients.length - 1 - i] = evalResult;\n if (evalResult !== 0) {\n noError = false;\n }\n }\n if (noError) {\n return;\n }\n var syndrome = new GenericGFPoly(field, syndromeCoefficients);\n var sigmaOmega = this.runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS);\n var sigma = sigmaOmega[0];\n var omega = sigmaOmega[1];\n var errorLocations = this.findErrorLocations(sigma);\n var errorMagnitudes = this.findErrorMagnitudes(omega, errorLocations);\n for (var i = 0; i < errorLocations.length; i++) {\n var position = received.length - 1 - field.log(errorLocations[i]);\n if (position < 0) {\n throw new ReedSolomonException('Bad error location');\n }\n received[position] = GenericGF.addOrSubtract(received[position], errorMagnitudes[i]);\n }\n };\n ReedSolomonDecoder.prototype.runEuclideanAlgorithm = function (a, b, R /*int*/) {\n // Assume a's degree is >= b's\n if (a.getDegree() < b.getDegree()) {\n var temp = a;\n a = b;\n b = temp;\n }\n var field = this.field;\n var rLast = a;\n var r = b;\n var tLast = field.getZero();\n var t = field.getOne();\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.getDegree() >= (R / 2 | 0)) {\n var rLastLast = rLast;\n var tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Oops, Euclidean algorithm already terminated?\n throw new ReedSolomonException('r_{i-1} was zero');\n }\n r = rLastLast;\n var q = field.getZero();\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n var dltInverse = field.inverse(denominatorLeadingTerm);\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n var degreeDiff = r.getDegree() - rLast.getDegree();\n var scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\n r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiply(tLast).addOrSubtract(tLastLast);\n if (r.getDegree() >= rLast.getDegree()) {\n throw new IllegalStateException('Division algorithm failed to reduce polynomial?');\n }\n }\n var sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n throw new ReedSolomonException('sigmaTilde(0) was zero');\n }\n var inverse = field.inverse(sigmaTildeAtZero);\n var sigma = t.multiplyScalar(inverse);\n var omega = r.multiplyScalar(inverse);\n return [sigma, omega];\n };\n ReedSolomonDecoder.prototype.findErrorLocations = function (errorLocator) {\n // This is a direct application of Chien's search\n var numErrors = errorLocator.getDegree();\n if (numErrors === 1) { // shortcut\n return Int32Array.from([errorLocator.getCoefficient(1)]);\n }\n var result = new Int32Array(numErrors);\n var e = 0;\n var field = this.field;\n for (var i = 1; i < field.getSize() && e < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[e] = field.inverse(i);\n e++;\n }\n }\n if (e !== numErrors) {\n throw new ReedSolomonException('Error locator degree does not match number of roots');\n }\n return result;\n };\n ReedSolomonDecoder.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocations) {\n // This is directly applying Forney's Formula\n var s = errorLocations.length;\n var result = new Int32Array(s);\n var field = this.field;\n for (var i = 0; i < s; i++) {\n var xiInverse = field.inverse(errorLocations[i]);\n var denominator = 1;\n for (var j = 0; j < s; j++) {\n if (i !== j) {\n // denominator = field.multiply(denominator,\n // GenericGF.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)))\n // Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug.\n // Below is a funny-looking workaround from Steven Parkes\n var term = field.multiply(errorLocations[j], xiInverse);\n var termPlus1 = (term & 0x1) === 0 ? term | 1 : term & ~1;\n denominator = field.multiply(denominator, termPlus1);\n }\n }\n result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\n if (field.getGeneratorBase() !== 0) {\n result[i] = field.multiply(result[i], xiInverse);\n }\n }\n return result;\n };\n return ReedSolomonDecoder;\n}());\nexport default ReedSolomonDecoder;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport DecoderResult from '../../common/DecoderResult';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport IllegalStateException from '../../IllegalStateException';\nimport FormatException from '../../FormatException';\nimport StringUtils from '../../common/StringUtils';\nimport Integer from '../../util/Integer';\n// import java.util.Arrays;\nvar Table;\n(function (Table) {\n Table[Table[\"UPPER\"] = 0] = \"UPPER\";\n Table[Table[\"LOWER\"] = 1] = \"LOWER\";\n Table[Table[\"MIXED\"] = 2] = \"MIXED\";\n Table[Table[\"DIGIT\"] = 3] = \"DIGIT\";\n Table[Table[\"PUNCT\"] = 4] = \"PUNCT\";\n Table[Table[\"BINARY\"] = 5] = \"BINARY\";\n})(Table || (Table = {}));\n/**\n *

    The main class which implements Aztec Code decoding -- as opposed to locating and extracting\n * the Aztec Code from an image.

    \n *\n * @author David Olivier\n */\nvar Decoder = /** @class */ (function () {\n function Decoder() {\n }\n Decoder.prototype.decode = function (detectorResult) {\n this.ddata = detectorResult;\n var matrix = detectorResult.getBits();\n var rawbits = this.extractBits(matrix);\n var correctedBits = this.correctBits(rawbits);\n var rawBytes = Decoder.convertBoolArrayToByteArray(correctedBits);\n var result = Decoder.getEncodedData(correctedBits);\n var decoderResult = new DecoderResult(rawBytes, result, null, null);\n decoderResult.setNumBits(correctedBits.length);\n return decoderResult;\n };\n // This method is used for testing the high-level encoder\n Decoder.highLevelDecode = function (correctedBits) {\n return this.getEncodedData(correctedBits);\n };\n /**\n * Gets the string encoded in the aztec code bits\n *\n * @return the decoded string\n */\n Decoder.getEncodedData = function (correctedBits) {\n var endIndex = correctedBits.length;\n var latchTable = Table.UPPER; // table most recently latched to\n var shiftTable = Table.UPPER; // table to use for the next read\n var result = '';\n var index = 0;\n while (index < endIndex) {\n if (shiftTable === Table.BINARY) {\n if (endIndex - index < 5) {\n break;\n }\n var length_1 = Decoder.readCode(correctedBits, index, 5);\n index += 5;\n if (length_1 === 0) {\n if (endIndex - index < 11) {\n break;\n }\n length_1 = Decoder.readCode(correctedBits, index, 11) + 31;\n index += 11;\n }\n for (var charCount = 0; charCount < length_1; charCount++) {\n if (endIndex - index < 8) {\n index = endIndex; // Force outer loop to exit\n break;\n }\n var code = Decoder.readCode(correctedBits, index, 8);\n result += /*(char)*/ StringUtils.castAsNonUtf8Char(code);\n index += 8;\n }\n // Go back to whatever mode we had been in\n shiftTable = latchTable;\n }\n else {\n var size = shiftTable === Table.DIGIT ? 4 : 5;\n if (endIndex - index < size) {\n break;\n }\n var code = Decoder.readCode(correctedBits, index, size);\n index += size;\n var str = Decoder.getCharacter(shiftTable, code);\n if (str.startsWith('CTRL_')) {\n // Table changes\n // ISO/IEC 24778:2008 prescribes ending a shift sequence in the mode from which it was invoked.\n // That's including when that mode is a shift.\n // Our test case dlusbs.png for issue #642 exercises that.\n latchTable = shiftTable; // Latch the current mode, so as to return to Upper after U/S B/S\n shiftTable = Decoder.getTable(str.charAt(5));\n if (str.charAt(6) === 'L') {\n latchTable = shiftTable;\n }\n }\n else {\n result += str;\n // Go back to whatever mode we had been in\n shiftTable = latchTable;\n }\n }\n }\n return result;\n };\n /**\n * gets the table corresponding to the char passed\n */\n Decoder.getTable = function (t) {\n switch (t) {\n case 'L':\n return Table.LOWER;\n case 'P':\n return Table.PUNCT;\n case 'M':\n return Table.MIXED;\n case 'D':\n return Table.DIGIT;\n case 'B':\n return Table.BINARY;\n case 'U':\n default:\n return Table.UPPER;\n }\n };\n /**\n * Gets the character (or string) corresponding to the passed code in the given table\n *\n * @param table the table used\n * @param code the code of the character\n */\n Decoder.getCharacter = function (table, code) {\n switch (table) {\n case Table.UPPER:\n return Decoder.UPPER_TABLE[code];\n case Table.LOWER:\n return Decoder.LOWER_TABLE[code];\n case Table.MIXED:\n return Decoder.MIXED_TABLE[code];\n case Table.PUNCT:\n return Decoder.PUNCT_TABLE[code];\n case Table.DIGIT:\n return Decoder.DIGIT_TABLE[code];\n default:\n // Should not reach here.\n throw new IllegalStateException('Bad table');\n }\n };\n /**\n *

    Performs RS error correction on an array of bits.

    \n *\n * @return the corrected array\n * @throws FormatException if the input contains too many errors\n */\n Decoder.prototype.correctBits = function (rawbits) {\n var gf;\n var codewordSize;\n if (this.ddata.getNbLayers() <= 2) {\n codewordSize = 6;\n gf = GenericGF.AZTEC_DATA_6;\n }\n else if (this.ddata.getNbLayers() <= 8) {\n codewordSize = 8;\n gf = GenericGF.AZTEC_DATA_8;\n }\n else if (this.ddata.getNbLayers() <= 22) {\n codewordSize = 10;\n gf = GenericGF.AZTEC_DATA_10;\n }\n else {\n codewordSize = 12;\n gf = GenericGF.AZTEC_DATA_12;\n }\n var numDataCodewords = this.ddata.getNbDatablocks();\n var numCodewords = rawbits.length / codewordSize;\n if (numCodewords < numDataCodewords) {\n throw new FormatException();\n }\n var offset = rawbits.length % codewordSize;\n var dataWords = new Int32Array(numCodewords);\n for (var i = 0; i < numCodewords; i++, offset += codewordSize) {\n dataWords[i] = Decoder.readCode(rawbits, offset, codewordSize);\n }\n try {\n var rsDecoder = new ReedSolomonDecoder(gf);\n rsDecoder.decode(dataWords, numCodewords - numDataCodewords);\n }\n catch (ex) {\n throw new FormatException(ex);\n }\n // Now perform the unstuffing operation.\n // First, count how many bits are going to be thrown out as stuffing\n var mask = (1 << codewordSize) - 1;\n var stuffedBits = 0;\n for (var i = 0; i < numDataCodewords; i++) {\n var dataWord = dataWords[i];\n if (dataWord === 0 || dataWord === mask) {\n throw new FormatException();\n }\n else if (dataWord === 1 || dataWord === mask - 1) {\n stuffedBits++;\n }\n }\n // Now, actually unpack the bits and remove the stuffing\n var correctedBits = new Array(numDataCodewords * codewordSize - stuffedBits);\n var index = 0;\n for (var i = 0; i < numDataCodewords; i++) {\n var dataWord = dataWords[i];\n if (dataWord === 1 || dataWord === mask - 1) {\n // next codewordSize-1 bits are all zeros or all ones\n correctedBits.fill(dataWord > 1, index, index + codewordSize - 1);\n // Arrays.fill(correctedBits, index, index + codewordSize - 1, dataWord > 1);\n index += codewordSize - 1;\n }\n else {\n for (var bit = codewordSize - 1; bit >= 0; --bit) {\n correctedBits[index++] = (dataWord & (1 << bit)) !== 0;\n }\n }\n }\n return correctedBits;\n };\n /**\n * Gets the array of bits from an Aztec Code matrix\n *\n * @return the array of bits\n */\n Decoder.prototype.extractBits = function (matrix) {\n var compact = this.ddata.isCompact();\n var layers = this.ddata.getNbLayers();\n var baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines\n var alignmentMap = new Int32Array(baseMatrixSize);\n var rawbits = new Array(this.totalBitsInLayer(layers, compact));\n if (compact) {\n for (var i = 0; i < alignmentMap.length; i++) {\n alignmentMap[i] = i;\n }\n }\n else {\n var matrixSize = baseMatrixSize + 1 + 2 * Integer.truncDivision((Integer.truncDivision(baseMatrixSize, 2) - 1), 15);\n var origCenter = baseMatrixSize / 2;\n var center = Integer.truncDivision(matrixSize, 2);\n for (var i = 0; i < origCenter; i++) {\n var newOffset = i + Integer.truncDivision(i, 15);\n alignmentMap[origCenter - i - 1] = center - newOffset - 1;\n alignmentMap[origCenter + i] = center + newOffset + 1;\n }\n }\n for (var i = 0, rowOffset = 0; i < layers; i++) {\n var rowSize = (layers - i) * 4 + (compact ? 9 : 12);\n // The top-left most point of this layer is (not including alignment lines)\n var low = i * 2;\n // The bottom-right most point of this layer is (not including alignment lines)\n var high = baseMatrixSize - 1 - low;\n // We pull bits from the two 2 x rowSize columns and two rowSize x 2 rows\n for (var j = 0; j < rowSize; j++) {\n var columnOffset = j * 2;\n for (var k = 0; k < 2; k++) {\n // left column\n rawbits[rowOffset + columnOffset + k] =\n matrix.get(alignmentMap[low + k], alignmentMap[low + j]);\n // bottom row\n rawbits[rowOffset + 2 * rowSize + columnOffset + k] =\n matrix.get(alignmentMap[low + j], alignmentMap[high - k]);\n // right column\n rawbits[rowOffset + 4 * rowSize + columnOffset + k] =\n matrix.get(alignmentMap[high - k], alignmentMap[high - j]);\n // top row\n rawbits[rowOffset + 6 * rowSize + columnOffset + k] =\n matrix.get(alignmentMap[high - j], alignmentMap[low + k]);\n }\n }\n rowOffset += rowSize * 8;\n }\n return rawbits;\n };\n /**\n * Reads a code of given length and at given index in an array of bits\n */\n Decoder.readCode = function (rawbits, startIndex, length) {\n var res = 0;\n for (var i = startIndex; i < startIndex + length; i++) {\n res <<= 1;\n if (rawbits[i]) {\n res |= 0x01;\n }\n }\n return res;\n };\n /**\n * Reads a code of length 8 in an array of bits, padding with zeros\n */\n Decoder.readByte = function (rawbits, startIndex) {\n var n = rawbits.length - startIndex;\n if (n >= 8) {\n return Decoder.readCode(rawbits, startIndex, 8);\n }\n return Decoder.readCode(rawbits, startIndex, n) << (8 - n);\n };\n /**\n * Packs a bit array into bytes, most significant bit first\n */\n Decoder.convertBoolArrayToByteArray = function (boolArr) {\n var byteArr = new Uint8Array((boolArr.length + 7) / 8);\n for (var i = 0; i < byteArr.length; i++) {\n byteArr[i] = Decoder.readByte(boolArr, 8 * i);\n }\n return byteArr;\n };\n Decoder.prototype.totalBitsInLayer = function (layers, compact) {\n return ((compact ? 88 : 112) + 16 * layers) * layers;\n };\n Decoder.UPPER_TABLE = [\n 'CTRL_PS', ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\n 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'CTRL_LL', 'CTRL_ML', 'CTRL_DL', 'CTRL_BS'\n ];\n Decoder.LOWER_TABLE = [\n 'CTRL_PS', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',\n 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'CTRL_US', 'CTRL_ML', 'CTRL_DL', 'CTRL_BS'\n ];\n Decoder.MIXED_TABLE = [\n 'CTRL_PS', ' ', '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\x07', '\\b', '\\t', '\\n',\n '\\x0b', '\\f', '\\r', '\\x1b', '\\x1c', '\\x1d', '\\x1e', '\\x1f', '@', '\\\\', '^', '_',\n '`', '|', '~', '\\x7f', 'CTRL_LL', 'CTRL_UL', 'CTRL_PL', 'CTRL_BS'\n ];\n Decoder.PUNCT_TABLE = [\n '', '\\r', '\\r\\n', '. ', ', ', ': ', '!', '\"', '#', '$', '%', '&', '\\'', '(', ')',\n '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '{', '}', 'CTRL_UL'\n ];\n Decoder.DIGIT_TABLE = [\n 'CTRL_PS', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', '.', 'CTRL_UL', 'CTRL_US'\n ];\n return Decoder;\n}());\nexport default Decoder;\n","/*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.detector {*/\n/**\n * General math-related and numeric utility functions.\n */\nvar MathUtils = /** @class */ (function () {\n function MathUtils() {\n }\n /**\n * Ends up being a bit faster than {@link Math#round(float)}. This merely rounds its\n * argument to the nearest int, where x.5 rounds up to x+1. Semantics of this shortcut\n * differ slightly from {@link Math#round(float)} in that half rounds down for negative\n * values. -2.5 rounds to -3, not -2. For purposes here it makes no difference.\n *\n * @param d real value to round\n * @return nearest {@code int}\n */\n MathUtils.round = function (d /*float*/) {\n if (isNaN(d))\n return 0;\n if (d <= Number.MIN_SAFE_INTEGER)\n return Number.MIN_SAFE_INTEGER;\n if (d >= Number.MAX_SAFE_INTEGER)\n return Number.MAX_SAFE_INTEGER;\n return /*(int) */ (d + (d < 0.0 ? -0.5 : 0.5)) | 0;\n };\n // TYPESCRIPTPORT: maybe remove round method and call directly Math.round, it looks like it doesn't make sense for js\n /**\n * @param aX point A x coordinate\n * @param aY point A y coordinate\n * @param bX point B x coordinate\n * @param bY point B y coordinate\n * @return Euclidean distance between points A and B\n */\n MathUtils.distance = function (aX /*float|int*/, aY /*float|int*/, bX /*float|int*/, bY /*float|int*/) {\n var xDiff = aX - bX;\n var yDiff = aY - bY;\n return /*(float) */ Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n };\n /**\n * @param aX point A x coordinate\n * @param aY point A y coordinate\n * @param bX point B x coordinate\n * @param bY point B y coordinate\n * @return Euclidean distance between points A and B\n */\n // public static distance(aX: number /*int*/, aY: number /*int*/, bX: number /*int*/, bY: number /*int*/): float {\n // const xDiff = aX - bX\n // const yDiff = aY - bY\n // return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n // }\n /**\n * @param array values to sum\n * @return sum of values in array\n */\n MathUtils.sum = function (array) {\n var count = 0;\n for (var i = 0, length_1 = array.length; i !== length_1; i++) {\n var a = array[i];\n count += a;\n }\n return count;\n };\n return MathUtils;\n}());\nexport default MathUtils;\n","/**\n * Ponyfill for Java's Float class.\n */\nvar Float = /** @class */ (function () {\n function Float() {\n }\n /**\n * SincTS has no difference between int and float, there's all numbers,\n * this is used only to polyfill Java code.\n */\n Float.floatToIntBits = function (f) {\n return f;\n };\n /**\n * The float max value in JS is the number max value.\n */\n Float.MAX_VALUE = Number.MAX_SAFE_INTEGER;\n return Float;\n}());\nexport default Float;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\nimport MathUtils from './common/detector/MathUtils';\nimport Float from './util/Float';\n/**\n *

    Encapsulates a point of interest in an image containing a barcode. Typically, this\n * would be the location of a finder pattern or the corner of the barcode, for example.

    \n *\n * @author Sean Owen\n */\nvar ResultPoint = /** @class */ (function () {\n function ResultPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n ResultPoint.prototype.getX = function () {\n return this.x;\n };\n ResultPoint.prototype.getY = function () {\n return this.y;\n };\n /*@Override*/\n ResultPoint.prototype.equals = function (other) {\n if (other instanceof ResultPoint) {\n var otherPoint = other;\n return this.x === otherPoint.x && this.y === otherPoint.y;\n }\n return false;\n };\n /*@Override*/\n ResultPoint.prototype.hashCode = function () {\n return 31 * Float.floatToIntBits(this.x) + Float.floatToIntBits(this.y);\n };\n /*@Override*/\n ResultPoint.prototype.toString = function () {\n return '(' + this.x + ',' + this.y + ')';\n };\n /**\n * Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC\n * and BC is less than AC, and the angle between BC and BA is less than 180 degrees.\n *\n * @param patterns array of three {@code ResultPoint} to order\n */\n ResultPoint.orderBestPatterns = function (patterns) {\n // Find distances between pattern centers\n var zeroOneDistance = this.distance(patterns[0], patterns[1]);\n var oneTwoDistance = this.distance(patterns[1], patterns[2]);\n var zeroTwoDistance = this.distance(patterns[0], patterns[2]);\n var pointA;\n var pointB;\n var pointC;\n // Assume one closest to other two is B; A and C will just be guesses at first\n if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) {\n pointB = patterns[0];\n pointA = patterns[1];\n pointC = patterns[2];\n }\n else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) {\n pointB = patterns[1];\n pointA = patterns[0];\n pointC = patterns[2];\n }\n else {\n pointB = patterns[2];\n pointA = patterns[0];\n pointC = patterns[1];\n }\n // Use cross product to figure out whether A and C are correct or flipped.\n // This asks whether BC x BA has a positive z component, which is the arrangement\n // we want for A, B, C. If it's negative, then we've got it flipped around and\n // should swap A and C.\n if (this.crossProductZ(pointA, pointB, pointC) < 0.0) {\n var temp = pointA;\n pointA = pointC;\n pointC = temp;\n }\n patterns[0] = pointA;\n patterns[1] = pointB;\n patterns[2] = pointC;\n };\n /**\n * @param pattern1 first pattern\n * @param pattern2 second pattern\n * @return distance between two points\n */\n ResultPoint.distance = function (pattern1, pattern2) {\n return MathUtils.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);\n };\n /**\n * Returns the z component of the cross product between vectors BC and BA.\n */\n ResultPoint.crossProductZ = function (pointA, pointB, pointC) {\n var bX = pointB.x;\n var bY = pointB.y;\n return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX));\n };\n return ResultPoint;\n}());\nexport default ResultPoint;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n *

    Encapsulates the result of detecting a barcode in an image. This includes the raw\n * matrix of black/white pixels corresponding to the barcode, and possibly points of interest\n * in the image, like the location of finder patterns or corners of the barcode in the image.

    \n *\n * @author Sean Owen\n */\nvar DetectorResult = /** @class */ (function () {\n function DetectorResult(bits, points) {\n this.bits = bits;\n this.points = points;\n }\n DetectorResult.prototype.getBits = function () {\n return this.bits;\n };\n DetectorResult.prototype.getPoints = function () {\n return this.points;\n };\n return DetectorResult;\n}());\nexport default DetectorResult;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport DetectorResult from '../common/DetectorResult';\n/**\n *

    Extends {@link DetectorResult} with more information specific to the Aztec format,\n * like the number of layers and whether it's compact.

    \n *\n * @author Sean Owen\n */\nvar AztecDetectorResult = /** @class */ (function (_super) {\n __extends(AztecDetectorResult, _super);\n function AztecDetectorResult(bits, points, compact, nbDatablocks, nbLayers) {\n var _this = _super.call(this, bits, points) || this;\n _this.compact = compact;\n _this.nbDatablocks = nbDatablocks;\n _this.nbLayers = nbLayers;\n return _this;\n }\n AztecDetectorResult.prototype.getNbLayers = function () {\n return this.nbLayers;\n };\n AztecDetectorResult.prototype.getNbDatablocks = function () {\n return this.nbDatablocks;\n };\n AztecDetectorResult.prototype.isCompact = function () {\n return this.compact;\n };\n return AztecDetectorResult;\n}(DetectorResult));\nexport default AztecDetectorResult;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.detector {*/\nimport ResultPoint from '../../ResultPoint';\nimport MathUtils from './MathUtils';\nimport NotFoundException from '../../NotFoundException';\n/**\n *

    \n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region. By keeping track of the\n * last black points it encountered, it determines the corners of the barcode.\n *

    \n *\n * @author David Olivier\n */\nvar WhiteRectangleDetector = /** @class */ (function () {\n // public constructor(private image: BitMatrix) /*throws NotFoundException*/ {\n // this(image, INIT_SIZE, image.getWidth() / 2, image.getHeight() / 2)\n // }\n /**\n * @param image barcode image to find a rectangle in\n * @param initSize initial size of search area around center\n * @param x x position of search center\n * @param y y position of search center\n * @throws NotFoundException if image is too small to accommodate {@code initSize}\n */\n function WhiteRectangleDetector(image, initSize /*int*/, x /*int*/, y /*int*/) {\n this.image = image;\n this.height = image.getHeight();\n this.width = image.getWidth();\n if (undefined === initSize || null === initSize) {\n initSize = WhiteRectangleDetector.INIT_SIZE;\n }\n if (undefined === x || null === x) {\n x = image.getWidth() / 2 | 0;\n }\n if (undefined === y || null === y) {\n y = image.getHeight() / 2 | 0;\n }\n var halfsize = initSize / 2 | 0;\n this.leftInit = x - halfsize;\n this.rightInit = x + halfsize;\n this.upInit = y - halfsize;\n this.downInit = y + halfsize;\n if (this.upInit < 0 || this.leftInit < 0 || this.downInit >= this.height || this.rightInit >= this.width) {\n throw new NotFoundException();\n }\n }\n /**\n *

    \n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region.\n *

    \n *\n * @return {@link ResultPoint}[] describing the corners of the rectangular\n * region. The first and last points are opposed on the diagonal, as\n * are the second and third. The first point will be the topmost\n * point and the last, the bottommost. The second point will be\n * leftmost and the third, the rightmost\n * @throws NotFoundException if no Data Matrix Code can be found\n */\n WhiteRectangleDetector.prototype.detect = function () {\n var left = this.leftInit;\n var right = this.rightInit;\n var up = this.upInit;\n var down = this.downInit;\n var sizeExceeded = false;\n var aBlackPointFoundOnBorder = true;\n var atLeastOneBlackPointFoundOnBorder = false;\n var atLeastOneBlackPointFoundOnRight = false;\n var atLeastOneBlackPointFoundOnBottom = false;\n var atLeastOneBlackPointFoundOnLeft = false;\n var atLeastOneBlackPointFoundOnTop = false;\n var width = this.width;\n var height = this.height;\n while (aBlackPointFoundOnBorder) {\n aBlackPointFoundOnBorder = false;\n // .....\n // . |\n // .....\n var rightBorderNotWhite = true;\n while ((rightBorderNotWhite || !atLeastOneBlackPointFoundOnRight) && right < width) {\n rightBorderNotWhite = this.containsBlackPoint(up, down, right, false);\n if (rightBorderNotWhite) {\n right++;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnRight = true;\n }\n else if (!atLeastOneBlackPointFoundOnRight) {\n right++;\n }\n }\n if (right >= width) {\n sizeExceeded = true;\n break;\n }\n // .....\n // . .\n // .___.\n var bottomBorderNotWhite = true;\n while ((bottomBorderNotWhite || !atLeastOneBlackPointFoundOnBottom) && down < height) {\n bottomBorderNotWhite = this.containsBlackPoint(left, right, down, true);\n if (bottomBorderNotWhite) {\n down++;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnBottom = true;\n }\n else if (!atLeastOneBlackPointFoundOnBottom) {\n down++;\n }\n }\n if (down >= height) {\n sizeExceeded = true;\n break;\n }\n // .....\n // | .\n // .....\n var leftBorderNotWhite = true;\n while ((leftBorderNotWhite || !atLeastOneBlackPointFoundOnLeft) && left >= 0) {\n leftBorderNotWhite = this.containsBlackPoint(up, down, left, false);\n if (leftBorderNotWhite) {\n left--;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnLeft = true;\n }\n else if (!atLeastOneBlackPointFoundOnLeft) {\n left--;\n }\n }\n if (left < 0) {\n sizeExceeded = true;\n break;\n }\n // .___.\n // . .\n // .....\n var topBorderNotWhite = true;\n while ((topBorderNotWhite || !atLeastOneBlackPointFoundOnTop) && up >= 0) {\n topBorderNotWhite = this.containsBlackPoint(left, right, up, true);\n if (topBorderNotWhite) {\n up--;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnTop = true;\n }\n else if (!atLeastOneBlackPointFoundOnTop) {\n up--;\n }\n }\n if (up < 0) {\n sizeExceeded = true;\n break;\n }\n if (aBlackPointFoundOnBorder) {\n atLeastOneBlackPointFoundOnBorder = true;\n }\n }\n if (!sizeExceeded && atLeastOneBlackPointFoundOnBorder) {\n var maxSize = right - left;\n var z = null;\n for (var i = 1; z === null && i < maxSize; i++) {\n z = this.getBlackPointOnSegment(left, down - i, left + i, down);\n }\n if (z == null) {\n throw new NotFoundException();\n }\n var t = null;\n // go down right\n for (var i = 1; t === null && i < maxSize; i++) {\n t = this.getBlackPointOnSegment(left, up + i, left + i, up);\n }\n if (t == null) {\n throw new NotFoundException();\n }\n var x = null;\n // go down left\n for (var i = 1; x === null && i < maxSize; i++) {\n x = this.getBlackPointOnSegment(right, up + i, right - i, up);\n }\n if (x == null) {\n throw new NotFoundException();\n }\n var y = null;\n // go up left\n for (var i = 1; y === null && i < maxSize; i++) {\n y = this.getBlackPointOnSegment(right, down - i, right - i, down);\n }\n if (y == null) {\n throw new NotFoundException();\n }\n return this.centerEdges(y, z, x, t);\n }\n else {\n throw new NotFoundException();\n }\n };\n WhiteRectangleDetector.prototype.getBlackPointOnSegment = function (aX /*float*/, aY /*float*/, bX /*float*/, bY /*float*/) {\n var dist = MathUtils.round(MathUtils.distance(aX, aY, bX, bY));\n var xStep = (bX - aX) / dist;\n var yStep = (bY - aY) / dist;\n var image = this.image;\n for (var i = 0; i < dist; i++) {\n var x = MathUtils.round(aX + i * xStep);\n var y = MathUtils.round(aY + i * yStep);\n if (image.get(x, y)) {\n return new ResultPoint(x, y);\n }\n }\n return null;\n };\n /**\n * recenters the points of a constant distance towards the center\n *\n * @param y bottom most point\n * @param z left most point\n * @param x right most point\n * @param t top most point\n * @return {@link ResultPoint}[] describing the corners of the rectangular\n * region. The first and last points are opposed on the diagonal, as\n * are the second and third. The first point will be the topmost\n * point and the last, the bottommost. The second point will be\n * leftmost and the third, the rightmost\n */\n WhiteRectangleDetector.prototype.centerEdges = function (y, z, x, t) {\n //\n // t t\n // z x\n // x OR z\n // y y\n //\n var yi = y.getX();\n var yj = y.getY();\n var zi = z.getX();\n var zj = z.getY();\n var xi = x.getX();\n var xj = x.getY();\n var ti = t.getX();\n var tj = t.getY();\n var CORR = WhiteRectangleDetector.CORR;\n if (yi < this.width / 2.0) {\n return [\n new ResultPoint(ti - CORR, tj + CORR),\n new ResultPoint(zi + CORR, zj + CORR),\n new ResultPoint(xi - CORR, xj - CORR),\n new ResultPoint(yi + CORR, yj - CORR)\n ];\n }\n else {\n return [\n new ResultPoint(ti + CORR, tj + CORR),\n new ResultPoint(zi + CORR, zj - CORR),\n new ResultPoint(xi - CORR, xj + CORR),\n new ResultPoint(yi - CORR, yj - CORR)\n ];\n }\n };\n /**\n * Determines whether a segment contains a black point\n *\n * @param a min value of the scanned coordinate\n * @param b max value of the scanned coordinate\n * @param fixed value of fixed coordinate\n * @param horizontal set to true if scan must be horizontal, false if vertical\n * @return true if a black point has been found, else false.\n */\n WhiteRectangleDetector.prototype.containsBlackPoint = function (a /*int*/, b /*int*/, fixed /*int*/, horizontal) {\n var image = this.image;\n if (horizontal) {\n for (var x = a; x <= b; x++) {\n if (image.get(x, fixed)) {\n return true;\n }\n }\n }\n else {\n for (var y = a; y <= b; y++) {\n if (image.get(fixed, y)) {\n return true;\n }\n }\n }\n return false;\n };\n WhiteRectangleDetector.INIT_SIZE = 10;\n WhiteRectangleDetector.CORR = 1;\n return WhiteRectangleDetector;\n}());\nexport default WhiteRectangleDetector;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport NotFoundException from '../NotFoundException';\n/**\n * Implementations of this class can, given locations of finder patterns for a QR code in an\n * image, sample the right points in the image to reconstruct the QR code, accounting for\n * perspective distortion. It is abstracted since it is relatively expensive and should be allowed\n * to take advantage of platform-specific optimized implementations, like Sun's Java Advanced\n * Imaging library, but which may not be available in other environments such as J2ME, and vice\n * versa.\n *\n * The implementation used can be controlled by calling {@link #setGridSampler(GridSampler)}\n * with an instance of a class which implements this interface.\n *\n * @author Sean Owen\n */\nvar GridSampler = /** @class */ (function () {\n function GridSampler() {\n }\n /**\n *

    Checks a set of points that have been transformed to sample points on an image against\n * the image's dimensions to see if the point are even within the image.

    \n *\n *

    This method will actually \"nudge\" the endpoints back onto the image if they are found to be\n * barely (less than 1 pixel) off the image. This accounts for imperfect detection of finder\n * patterns in an image where the QR Code runs all the way to the image border.

    \n *\n *

    For efficiency, the method will check points from either end of the line until one is found\n * to be within the image. Because the set of points are assumed to be linear, this is valid.

    \n *\n * @param image image into which the points should map\n * @param points actual points in x1,y1,...,xn,yn form\n * @throws NotFoundException if an endpoint is lies outside the image boundaries\n */\n GridSampler.checkAndNudgePoints = function (image, points) {\n var width = image.getWidth();\n var height = image.getHeight();\n // Check and nudge points from start until we see some that are OK:\n var nudged = true;\n for (var offset = 0; offset < points.length && nudged; offset += 2) {\n var x = Math.floor(points[offset]);\n var y = Math.floor(points[offset + 1]);\n if (x < -1 || x > width || y < -1 || y > height) {\n throw new NotFoundException();\n }\n nudged = false;\n if (x === -1) {\n points[offset] = 0.0;\n nudged = true;\n }\n else if (x === width) {\n points[offset] = width - 1;\n nudged = true;\n }\n if (y === -1) {\n points[offset + 1] = 0.0;\n nudged = true;\n }\n else if (y === height) {\n points[offset + 1] = height - 1;\n nudged = true;\n }\n }\n // Check and nudge points from end:\n nudged = true;\n for (var offset = points.length - 2; offset >= 0 && nudged; offset -= 2) {\n var x = Math.floor(points[offset]);\n var y = Math.floor(points[offset + 1]);\n if (x < -1 || x > width || y < -1 || y > height) {\n throw new NotFoundException();\n }\n nudged = false;\n if (x === -1) {\n points[offset] = 0.0;\n nudged = true;\n }\n else if (x === width) {\n points[offset] = width - 1;\n nudged = true;\n }\n if (y === -1) {\n points[offset + 1] = 0.0;\n nudged = true;\n }\n else if (y === height) {\n points[offset + 1] = height - 1;\n nudged = true;\n }\n }\n };\n return GridSampler;\n}());\nexport default GridSampler;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/**\n *

    This class implements a perspective transform in two dimensions. Given four source and four\n * destination points, it will compute the transformation implied between them. The code is based\n * directly upon section 3.4.2 of George Wolberg's \"Digital Image Warping\"; see pages 54-56.

    \n *\n * @author Sean Owen\n */\nvar PerspectiveTransform = /** @class */ (function () {\n function PerspectiveTransform(a11 /*float*/, a21 /*float*/, a31 /*float*/, a12 /*float*/, a22 /*float*/, a32 /*float*/, a13 /*float*/, a23 /*float*/, a33 /*float*/) {\n this.a11 = a11;\n this.a21 = a21;\n this.a31 = a31;\n this.a12 = a12;\n this.a22 = a22;\n this.a32 = a32;\n this.a13 = a13;\n this.a23 = a23;\n this.a33 = a33;\n }\n PerspectiveTransform.quadrilateralToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/, x0p /*float*/, y0p /*float*/, x1p /*float*/, y1p /*float*/, x2p /*float*/, y2p /*float*/, x3p /*float*/, y3p /*float*/) {\n var qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);\n var sToQ = PerspectiveTransform.squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p);\n return sToQ.times(qToS);\n };\n PerspectiveTransform.prototype.transformPoints = function (points) {\n var max = points.length;\n var a11 = this.a11;\n var a12 = this.a12;\n var a13 = this.a13;\n var a21 = this.a21;\n var a22 = this.a22;\n var a23 = this.a23;\n var a31 = this.a31;\n var a32 = this.a32;\n var a33 = this.a33;\n for (var i = 0; i < max; i += 2) {\n var x = points[i];\n var y = points[i + 1];\n var denominator = a13 * x + a23 * y + a33;\n points[i] = (a11 * x + a21 * y + a31) / denominator;\n points[i + 1] = (a12 * x + a22 * y + a32) / denominator;\n }\n };\n PerspectiveTransform.prototype.transformPointsWithValues = function (xValues, yValues) {\n var a11 = this.a11;\n var a12 = this.a12;\n var a13 = this.a13;\n var a21 = this.a21;\n var a22 = this.a22;\n var a23 = this.a23;\n var a31 = this.a31;\n var a32 = this.a32;\n var a33 = this.a33;\n var n = xValues.length;\n for (var i = 0; i < n; i++) {\n var x = xValues[i];\n var y = yValues[i];\n var denominator = a13 * x + a23 * y + a33;\n xValues[i] = (a11 * x + a21 * y + a31) / denominator;\n yValues[i] = (a12 * x + a22 * y + a32) / denominator;\n }\n };\n PerspectiveTransform.squareToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n var dx3 = x0 - x1 + x2 - x3;\n var dy3 = y0 - y1 + y2 - y3;\n if (dx3 === 0.0 && dy3 === 0.0) {\n // Affine\n return new PerspectiveTransform(x1 - x0, x2 - x1, x0, y1 - y0, y2 - y1, y0, 0.0, 0.0, 1.0);\n }\n else {\n var dx1 = x1 - x2;\n var dx2 = x3 - x2;\n var dy1 = y1 - y2;\n var dy2 = y3 - y2;\n var denominator = dx1 * dy2 - dx2 * dy1;\n var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\n return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, a13, a23, 1.0);\n }\n };\n PerspectiveTransform.quadrilateralToSquare = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n // Here, the adjoint serves as the inverse:\n return PerspectiveTransform.squareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint();\n };\n PerspectiveTransform.prototype.buildAdjoint = function () {\n // Adjoint is the transpose of the cofactor matrix:\n return new PerspectiveTransform(this.a22 * this.a33 - this.a23 * this.a32, this.a23 * this.a31 - this.a21 * this.a33, this.a21 * this.a32 - this.a22 * this.a31, this.a13 * this.a32 - this.a12 * this.a33, this.a11 * this.a33 - this.a13 * this.a31, this.a12 * this.a31 - this.a11 * this.a32, this.a12 * this.a23 - this.a13 * this.a22, this.a13 * this.a21 - this.a11 * this.a23, this.a11 * this.a22 - this.a12 * this.a21);\n };\n PerspectiveTransform.prototype.times = function (other) {\n return new PerspectiveTransform(this.a11 * other.a11 + this.a21 * other.a12 + this.a31 * other.a13, this.a11 * other.a21 + this.a21 * other.a22 + this.a31 * other.a23, this.a11 * other.a31 + this.a21 * other.a32 + this.a31 * other.a33, this.a12 * other.a11 + this.a22 * other.a12 + this.a32 * other.a13, this.a12 * other.a21 + this.a22 * other.a22 + this.a32 * other.a23, this.a12 * other.a31 + this.a22 * other.a32 + this.a32 * other.a33, this.a13 * other.a11 + this.a23 * other.a12 + this.a33 * other.a13, this.a13 * other.a21 + this.a23 * other.a22 + this.a33 * other.a23, this.a13 * other.a31 + this.a23 * other.a32 + this.a33 * other.a33);\n };\n return PerspectiveTransform;\n}());\nexport default PerspectiveTransform;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.common {*/\nimport GridSampler from './GridSampler';\nimport BitMatrix from './BitMatrix';\nimport PerspectiveTransform from './PerspectiveTransform';\nimport NotFoundException from '../NotFoundException';\n/**\n * @author Sean Owen\n */\nvar DefaultGridSampler = /** @class */ (function (_super) {\n __extends(DefaultGridSampler, _super);\n function DefaultGridSampler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /*@Override*/\n DefaultGridSampler.prototype.sampleGrid = function (image, dimensionX /*int*/, dimensionY /*int*/, p1ToX /*float*/, p1ToY /*float*/, p2ToX /*float*/, p2ToY /*float*/, p3ToX /*float*/, p3ToY /*float*/, p4ToX /*float*/, p4ToY /*float*/, p1FromX /*float*/, p1FromY /*float*/, p2FromX /*float*/, p2FromY /*float*/, p3FromX /*float*/, p3FromY /*float*/, p4FromX /*float*/, p4FromY /*float*/) {\n var transform = PerspectiveTransform.quadrilateralToQuadrilateral(p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY);\n return this.sampleGridWithTransform(image, dimensionX, dimensionY, transform);\n };\n /*@Override*/\n DefaultGridSampler.prototype.sampleGridWithTransform = function (image, dimensionX /*int*/, dimensionY /*int*/, transform) {\n if (dimensionX <= 0 || dimensionY <= 0) {\n throw new NotFoundException();\n }\n var bits = new BitMatrix(dimensionX, dimensionY);\n var points = new Float32Array(2 * dimensionX);\n for (var y = 0; y < dimensionY; y++) {\n var max = points.length;\n var iValue = y + 0.5;\n for (var x = 0; x < max; x += 2) {\n points[x] = (x / 2) + 0.5;\n points[x + 1] = iValue;\n }\n transform.transformPoints(points);\n // Quick check to see if points transformed to something inside the image\n // sufficient to check the endpoints\n GridSampler.checkAndNudgePoints(image, points);\n try {\n for (var x = 0; x < max; x += 2) {\n if (image.get(Math.floor(points[x]), Math.floor(points[x + 1]))) {\n // Black(-ish) pixel\n bits.set(x / 2, y);\n }\n }\n }\n catch (aioobe /*: ArrayIndexOutOfBoundsException*/) {\n // This feels wrong, but, sometimes if the finder patterns are misidentified, the resulting\n // transform gets \"twisted\" such that it maps a straight line of points to a set of points\n // whose endpoints are in bounds, but others are not. There is probably some mathematical\n // way to detect this about the transformation that I don't know yet.\n // This results in an ugly runtime exception despite our clever checks above -- can't have\n // that. We could check each point's coordinates but that feels duplicative. We settle for\n // catching and wrapping ArrayIndexOutOfBoundsException.\n throw new NotFoundException();\n }\n }\n return bits;\n };\n return DefaultGridSampler;\n}(GridSampler));\nexport default DefaultGridSampler;\n","import DefaultGridSampler from './DefaultGridSampler';\nvar GridSamplerInstance = /** @class */ (function () {\n function GridSamplerInstance() {\n }\n /**\n * Sets the implementation of GridSampler used by the library. One global\n * instance is stored, which may sound problematic. But, the implementation provided\n * ought to be appropriate for the entire platform, and all uses of this library\n * in the whole lifetime of the JVM. For instance, an Android activity can swap in\n * an implementation that takes advantage of native platform libraries.\n *\n * @param newGridSampler The platform-specific object to install.\n */\n GridSamplerInstance.setGridSampler = function (newGridSampler) {\n GridSamplerInstance.gridSampler = newGridSampler;\n };\n /**\n * @return the current implementation of GridSampler\n */\n GridSamplerInstance.getInstance = function () {\n return GridSamplerInstance.gridSampler;\n };\n GridSamplerInstance.gridSampler = new DefaultGridSampler();\n return GridSamplerInstance;\n}());\nexport default GridSamplerInstance;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport ResultPoint from '../../ResultPoint';\nimport AztecDetectorResult from '../AztecDetectorResult';\nimport MathUtils from '../../common/detector/MathUtils';\nimport WhiteRectangleDetector from '../../common/detector/WhiteRectangleDetector';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport NotFoundException from '../../NotFoundException';\nimport GridSamplerInstance from '../../common/GridSamplerInstance';\nimport Integer from '../../util/Integer';\nvar Point = /** @class */ (function () {\n function Point(x, y) {\n this.x = x;\n this.y = y;\n }\n Point.prototype.toResultPoint = function () {\n return new ResultPoint(this.getX(), this.getY());\n };\n Point.prototype.getX = function () {\n return this.x;\n };\n Point.prototype.getY = function () {\n return this.y;\n };\n return Point;\n}());\nexport { Point };\n/**\n * Encapsulates logic that can detect an Aztec Code in an image, even if the Aztec Code\n * is rotated or skewed, or partially obscured.\n *\n * @author David Olivier\n * @author Frank Yellin\n */\nvar Detector = /** @class */ (function () {\n function Detector(image) {\n this.EXPECTED_CORNER_BITS = new Int32Array([\n 0xee0,\n 0x1dc,\n 0x83b,\n 0x707,\n ]);\n this.image = image;\n }\n Detector.prototype.detect = function () {\n return this.detectMirror(false);\n };\n /**\n * Detects an Aztec Code in an image.\n *\n * @param isMirror if true, image is a mirror-image of original\n * @return {@link AztecDetectorResult} encapsulating results of detecting an Aztec Code\n * @throws NotFoundException if no Aztec Code can be found\n */\n Detector.prototype.detectMirror = function (isMirror) {\n // 1. Get the center of the aztec matrix\n var pCenter = this.getMatrixCenter();\n // 2. Get the center points of the four diagonal points just outside the bull's eye\n // [topRight, bottomRight, bottomLeft, topLeft]\n var bullsEyeCorners = this.getBullsEyeCorners(pCenter);\n if (isMirror) {\n var temp = bullsEyeCorners[0];\n bullsEyeCorners[0] = bullsEyeCorners[2];\n bullsEyeCorners[2] = temp;\n }\n // 3. Get the size of the matrix and other parameters from the bull's eye\n this.extractParameters(bullsEyeCorners);\n // 4. Sample the grid\n var bits = this.sampleGrid(this.image, bullsEyeCorners[this.shift % 4], bullsEyeCorners[(this.shift + 1) % 4], bullsEyeCorners[(this.shift + 2) % 4], bullsEyeCorners[(this.shift + 3) % 4]);\n // 5. Get the corners of the matrix.\n var corners = this.getMatrixCornerPoints(bullsEyeCorners);\n return new AztecDetectorResult(bits, corners, this.compact, this.nbDataBlocks, this.nbLayers);\n };\n /**\n * Extracts the number of data layers and data blocks from the layer around the bull's eye.\n *\n * @param bullsEyeCorners the array of bull's eye corners\n * @throws NotFoundException in case of too many errors or invalid parameters\n */\n Detector.prototype.extractParameters = function (bullsEyeCorners) {\n if (!this.isValidPoint(bullsEyeCorners[0]) || !this.isValidPoint(bullsEyeCorners[1]) ||\n !this.isValidPoint(bullsEyeCorners[2]) || !this.isValidPoint(bullsEyeCorners[3])) {\n throw new NotFoundException();\n }\n var length = 2 * this.nbCenterLayers;\n // Get the bits around the bull's eye\n var sides = new Int32Array([\n this.sampleLine(bullsEyeCorners[0], bullsEyeCorners[1], length),\n this.sampleLine(bullsEyeCorners[1], bullsEyeCorners[2], length),\n this.sampleLine(bullsEyeCorners[2], bullsEyeCorners[3], length),\n this.sampleLine(bullsEyeCorners[3], bullsEyeCorners[0], length) // Top\n ]);\n // bullsEyeCorners[shift] is the corner of the bulls'eye that has three\n // orientation marks.\n // sides[shift] is the row/column that goes from the corner with three\n // orientation marks to the corner with two.\n this.shift = this.getRotation(sides, length);\n // Flatten the parameter bits into a single 28- or 40-bit long\n var parameterData = 0;\n for (var i = 0; i < 4; i++) {\n var side = sides[(this.shift + i) % 4];\n if (this.compact) {\n // Each side of the form ..XXXXXXX. where Xs are parameter data\n parameterData <<= 7;\n parameterData += (side >> 1) & 0x7F;\n }\n else {\n // Each side of the form ..XXXXX.XXXXX. where Xs are parameter data\n parameterData <<= 10;\n parameterData += ((side >> 2) & (0x1f << 5)) + ((side >> 1) & 0x1F);\n }\n }\n // Corrects parameter data using RS. Returns just the data portion\n // without the error correction.\n var correctedData = this.getCorrectedParameterData(parameterData, this.compact);\n if (this.compact) {\n // 8 bits: 2 bits layers and 6 bits data blocks\n this.nbLayers = (correctedData >> 6) + 1;\n this.nbDataBlocks = (correctedData & 0x3F) + 1;\n }\n else {\n // 16 bits: 5 bits layers and 11 bits data blocks\n this.nbLayers = (correctedData >> 11) + 1;\n this.nbDataBlocks = (correctedData & 0x7FF) + 1;\n }\n };\n Detector.prototype.getRotation = function (sides, length) {\n // In a normal pattern, we expect to See\n // ** .* D A\n // * *\n //\n // . *\n // .. .. C B\n //\n // Grab the 3 bits from each of the sides the form the locator pattern and concatenate\n // into a 12-bit integer. Start with the bit at A\n var cornerBits = 0;\n sides.forEach(function (side, idx, arr) {\n // XX......X where X's are orientation marks\n var t = ((side >> (length - 2)) << 1) + (side & 1);\n cornerBits = (cornerBits << 3) + t;\n });\n // for (var side in sides) {\n // // XX......X where X's are orientation marks\n // var t = ((side >> (length - 2)) << 1) + (side & 1);\n // cornerBits = (cornerBits << 3) + t;\n // }\n // Mov the bottom bit to the top, so that the three bits of the locator pattern at A are\n // together. cornerBits is now:\n // 3 orientation bits at A || 3 orientation bits at B || ... || 3 orientation bits at D\n cornerBits = ((cornerBits & 1) << 11) + (cornerBits >> 1);\n // The result shift indicates which element of BullsEyeCorners[] goes into the top-left\n // corner. Since the four rotation values have a Hamming distance of 8, we\n // can easily tolerate two errors.\n for (var shift = 0; shift < 4; shift++) {\n if (Integer.bitCount(cornerBits ^ this.EXPECTED_CORNER_BITS[shift]) <= 2) {\n return shift;\n }\n }\n throw new NotFoundException();\n };\n /**\n * Corrects the parameter bits using Reed-Solomon algorithm.\n *\n * @param parameterData parameter bits\n * @param compact true if this is a compact Aztec code\n * @throws NotFoundException if the array contains too many errors\n */\n Detector.prototype.getCorrectedParameterData = function (parameterData, compact) {\n var numCodewords;\n var numDataCodewords;\n if (compact) {\n numCodewords = 7;\n numDataCodewords = 2;\n }\n else {\n numCodewords = 10;\n numDataCodewords = 4;\n }\n var numECCodewords = numCodewords - numDataCodewords;\n var parameterWords = new Int32Array(numCodewords);\n for (var i = numCodewords - 1; i >= 0; --i) {\n parameterWords[i] = parameterData & 0xF;\n parameterData >>= 4;\n }\n try {\n var rsDecoder = new ReedSolomonDecoder(GenericGF.AZTEC_PARAM);\n rsDecoder.decode(parameterWords, numECCodewords);\n }\n catch (ignored) {\n throw new NotFoundException();\n }\n // Toss the error correction. Just return the data as an integer\n var result = 0;\n for (var i = 0; i < numDataCodewords; i++) {\n result = (result << 4) + parameterWords[i];\n }\n return result;\n };\n /**\n * Finds the corners of a bull-eye centered on the passed point.\n * This returns the centers of the diagonal points just outside the bull's eye\n * Returns [topRight, bottomRight, bottomLeft, topLeft]\n *\n * @param pCenter Center point\n * @return The corners of the bull-eye\n * @throws NotFoundException If no valid bull-eye can be found\n */\n Detector.prototype.getBullsEyeCorners = function (pCenter) {\n var pina = pCenter;\n var pinb = pCenter;\n var pinc = pCenter;\n var pind = pCenter;\n var color = true;\n for (this.nbCenterLayers = 1; this.nbCenterLayers < 9; this.nbCenterLayers++) {\n var pouta = this.getFirstDifferent(pina, color, 1, -1);\n var poutb = this.getFirstDifferent(pinb, color, 1, 1);\n var poutc = this.getFirstDifferent(pinc, color, -1, 1);\n var poutd = this.getFirstDifferent(pind, color, -1, -1);\n // d a\n //\n // c b\n if (this.nbCenterLayers > 2) {\n var q = (this.distancePoint(poutd, pouta) * this.nbCenterLayers) / (this.distancePoint(pind, pina) * (this.nbCenterLayers + 2));\n if (q < 0.75 || q > 1.25 || !this.isWhiteOrBlackRectangle(pouta, poutb, poutc, poutd)) {\n break;\n }\n }\n pina = pouta;\n pinb = poutb;\n pinc = poutc;\n pind = poutd;\n color = !color;\n }\n if (this.nbCenterLayers !== 5 && this.nbCenterLayers !== 7) {\n throw new NotFoundException();\n }\n this.compact = this.nbCenterLayers === 5;\n // Expand the square by .5 pixel in each direction so that we're on the border\n // between the white square and the black square\n var pinax = new ResultPoint(pina.getX() + 0.5, pina.getY() - 0.5);\n var pinbx = new ResultPoint(pinb.getX() + 0.5, pinb.getY() + 0.5);\n var pincx = new ResultPoint(pinc.getX() - 0.5, pinc.getY() + 0.5);\n var pindx = new ResultPoint(pind.getX() - 0.5, pind.getY() - 0.5);\n // Expand the square so that its corners are the centers of the points\n // just outside the bull's eye.\n return this.expandSquare([pinax, pinbx, pincx, pindx], 2 * this.nbCenterLayers - 3, 2 * this.nbCenterLayers);\n };\n /**\n * Finds a candidate center point of an Aztec code from an image\n *\n * @return the center point\n */\n Detector.prototype.getMatrixCenter = function () {\n var pointA;\n var pointB;\n var pointC;\n var pointD;\n // Get a white rectangle that can be the border of the matrix in center bull's eye or\n try {\n var cornerPoints = new WhiteRectangleDetector(this.image).detect();\n pointA = cornerPoints[0];\n pointB = cornerPoints[1];\n pointC = cornerPoints[2];\n pointD = cornerPoints[3];\n }\n catch (e) {\n // This exception can be in case the initial rectangle is white\n // In that case, surely in the bull's eye, we try to expand the rectangle.\n var cx_1 = this.image.getWidth() / 2;\n var cy_1 = this.image.getHeight() / 2;\n pointA = this.getFirstDifferent(new Point(cx_1 + 7, cy_1 - 7), false, 1, -1).toResultPoint();\n pointB = this.getFirstDifferent(new Point(cx_1 + 7, cy_1 + 7), false, 1, 1).toResultPoint();\n pointC = this.getFirstDifferent(new Point(cx_1 - 7, cy_1 + 7), false, -1, 1).toResultPoint();\n pointD = this.getFirstDifferent(new Point(cx_1 - 7, cy_1 - 7), false, -1, -1).toResultPoint();\n }\n // Compute the center of the rectangle\n var cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);\n var cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);\n // Redetermine the white rectangle starting from previously computed center.\n // This will ensure that we end up with a white rectangle in center bull's eye\n // in order to compute a more accurate center.\n try {\n var cornerPoints = new WhiteRectangleDetector(this.image, 15, cx, cy).detect();\n pointA = cornerPoints[0];\n pointB = cornerPoints[1];\n pointC = cornerPoints[2];\n pointD = cornerPoints[3];\n }\n catch (e) {\n // This exception can be in case the initial rectangle is white\n // In that case we try to expand the rectangle.\n pointA = this.getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint();\n pointB = this.getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint();\n pointC = this.getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint();\n pointD = this.getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint();\n }\n // Recompute the center of the rectangle\n cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);\n cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);\n return new Point(cx, cy);\n };\n /**\n * Gets the Aztec code corners from the bull's eye corners and the parameters.\n *\n * @param bullsEyeCorners the array of bull's eye corners\n * @return the array of aztec code corners\n */\n Detector.prototype.getMatrixCornerPoints = function (bullsEyeCorners) {\n return this.expandSquare(bullsEyeCorners, 2 * this.nbCenterLayers, this.getDimension());\n };\n /**\n * Creates a BitMatrix by sampling the provided image.\n * topLeft, topRight, bottomRight, and bottomLeft are the centers of the squares on the\n * diagonal just outside the bull's eye.\n */\n Detector.prototype.sampleGrid = function (image, topLeft, topRight, bottomRight, bottomLeft) {\n var sampler = GridSamplerInstance.getInstance();\n var dimension = this.getDimension();\n var low = dimension / 2 - this.nbCenterLayers;\n var high = dimension / 2 + this.nbCenterLayers;\n return sampler.sampleGrid(image, dimension, dimension, low, low, // topleft\n high, low, // topright\n high, high, // bottomright\n low, high, // bottomleft\n topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n };\n /**\n * Samples a line.\n *\n * @param p1 start point (inclusive)\n * @param p2 end point (exclusive)\n * @param size number of bits\n * @return the array of bits as an int (first bit is high-order bit of result)\n */\n Detector.prototype.sampleLine = function (p1, p2, size) {\n var result = 0;\n var d = this.distanceResultPoint(p1, p2);\n var moduleSize = d / size;\n var px = p1.getX();\n var py = p1.getY();\n var dx = moduleSize * (p2.getX() - p1.getX()) / d;\n var dy = moduleSize * (p2.getY() - p1.getY()) / d;\n for (var i = 0; i < size; i++) {\n if (this.image.get(MathUtils.round(px + i * dx), MathUtils.round(py + i * dy))) {\n result |= 1 << (size - i - 1);\n }\n }\n return result;\n };\n /**\n * @return true if the border of the rectangle passed in parameter is compound of white points only\n * or black points only\n */\n Detector.prototype.isWhiteOrBlackRectangle = function (p1, p2, p3, p4) {\n var corr = 3;\n p1 = new Point(p1.getX() - corr, p1.getY() + corr);\n p2 = new Point(p2.getX() - corr, p2.getY() - corr);\n p3 = new Point(p3.getX() + corr, p3.getY() - corr);\n p4 = new Point(p4.getX() + corr, p4.getY() + corr);\n var cInit = this.getColor(p4, p1);\n if (cInit === 0) {\n return false;\n }\n var c = this.getColor(p1, p2);\n if (c !== cInit) {\n return false;\n }\n c = this.getColor(p2, p3);\n if (c !== cInit) {\n return false;\n }\n c = this.getColor(p3, p4);\n return c === cInit;\n };\n /**\n * Gets the color of a segment\n *\n * @return 1 if segment more than 90% black, -1 if segment is more than 90% white, 0 else\n */\n Detector.prototype.getColor = function (p1, p2) {\n var d = this.distancePoint(p1, p2);\n var dx = (p2.getX() - p1.getX()) / d;\n var dy = (p2.getY() - p1.getY()) / d;\n var error = 0;\n var px = p1.getX();\n var py = p1.getY();\n var colorModel = this.image.get(p1.getX(), p1.getY());\n var iMax = Math.ceil(d);\n for (var i = 0; i < iMax; i++) {\n px += dx;\n py += dy;\n if (this.image.get(MathUtils.round(px), MathUtils.round(py)) !== colorModel) {\n error++;\n }\n }\n var errRatio = error / d;\n if (errRatio > 0.1 && errRatio < 0.9) {\n return 0;\n }\n return (errRatio <= 0.1) === colorModel ? 1 : -1;\n };\n /**\n * Gets the coordinate of the first point with a different color in the given direction\n */\n Detector.prototype.getFirstDifferent = function (init, color, dx, dy) {\n var x = init.getX() + dx;\n var y = init.getY() + dy;\n while (this.isValid(x, y) && this.image.get(x, y) === color) {\n x += dx;\n y += dy;\n }\n x -= dx;\n y -= dy;\n while (this.isValid(x, y) && this.image.get(x, y) === color) {\n x += dx;\n }\n x -= dx;\n while (this.isValid(x, y) && this.image.get(x, y) === color) {\n y += dy;\n }\n y -= dy;\n return new Point(x, y);\n };\n /**\n * Expand the square represented by the corner points by pushing out equally in all directions\n *\n * @param cornerPoints the corners of the square, which has the bull's eye at its center\n * @param oldSide the original length of the side of the square in the target bit matrix\n * @param newSide the new length of the size of the square in the target bit matrix\n * @return the corners of the expanded square\n */\n Detector.prototype.expandSquare = function (cornerPoints, oldSide, newSide) {\n var ratio = newSide / (2.0 * oldSide);\n var dx = cornerPoints[0].getX() - cornerPoints[2].getX();\n var dy = cornerPoints[0].getY() - cornerPoints[2].getY();\n var centerx = (cornerPoints[0].getX() + cornerPoints[2].getX()) / 2.0;\n var centery = (cornerPoints[0].getY() + cornerPoints[2].getY()) / 2.0;\n var result0 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy);\n var result2 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy);\n dx = cornerPoints[1].getX() - cornerPoints[3].getX();\n dy = cornerPoints[1].getY() - cornerPoints[3].getY();\n centerx = (cornerPoints[1].getX() + cornerPoints[3].getX()) / 2.0;\n centery = (cornerPoints[1].getY() + cornerPoints[3].getY()) / 2.0;\n var result1 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy);\n var result3 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy);\n var results = [result0, result1, result2, result3];\n return results;\n };\n Detector.prototype.isValid = function (x, y) {\n return x >= 0 && x < this.image.getWidth() && y > 0 && y < this.image.getHeight();\n };\n Detector.prototype.isValidPoint = function (point) {\n var x = MathUtils.round(point.getX());\n var y = MathUtils.round(point.getY());\n return this.isValid(x, y);\n };\n Detector.prototype.distancePoint = function (a, b) {\n return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());\n };\n Detector.prototype.distanceResultPoint = function (a, b) {\n return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());\n };\n Detector.prototype.getDimension = function () {\n if (this.compact) {\n return 4 * this.nbLayers + 11;\n }\n if (this.nbLayers <= 4) {\n return 4 * this.nbLayers + 15;\n }\n return 4 * this.nbLayers + 2 * (Integer.truncDivision((this.nbLayers - 4), 8) + 1) + 15;\n };\n return Detector;\n}());\nexport default Detector;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Result from '../Result';\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport ResultMetadataType from '../ResultMetadataType';\nimport System from '../util/System';\nimport Decoder from './decoder/Decoder';\nimport Detector from './detector/Detector';\n// import java.util.List;\n// import java.util.Map;\n/**\n * This implementation can detect and decode Aztec codes in an image.\n *\n * @author David Olivier\n */\nvar AztecReader = /** @class */ (function () {\n function AztecReader() {\n }\n /**\n * Locates and decodes a Data Matrix code in an image.\n *\n * @return a String representing the content encoded by the Data Matrix code\n * @throws NotFoundException if a Data Matrix code cannot be found\n * @throws FormatException if a Data Matrix code cannot be decoded\n */\n AztecReader.prototype.decode = function (image, hints) {\n if (hints === void 0) { hints = null; }\n var exception = null;\n var detector = new Detector(image.getBlackMatrix());\n var points = null;\n var decoderResult = null;\n try {\n var detectorResult = detector.detectMirror(false);\n points = detectorResult.getPoints();\n this.reportFoundResultPoints(hints, points);\n decoderResult = new Decoder().decode(detectorResult);\n }\n catch (e) {\n exception = e;\n }\n if (decoderResult == null) {\n try {\n var detectorResult = detector.detectMirror(true);\n points = detectorResult.getPoints();\n this.reportFoundResultPoints(hints, points);\n decoderResult = new Decoder().decode(detectorResult);\n }\n catch (e) {\n if (exception != null) {\n throw exception;\n }\n throw e;\n }\n }\n var result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), decoderResult.getNumBits(), points, BarcodeFormat.AZTEC, System.currentTimeMillis());\n var byteSegments = decoderResult.getByteSegments();\n if (byteSegments != null) {\n result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments);\n }\n var ecLevel = decoderResult.getECLevel();\n if (ecLevel != null) {\n result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n return result;\n };\n AztecReader.prototype.reportFoundResultPoints = function (hints, points) {\n if (hints != null) {\n var rpcb_1 = hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n if (rpcb_1 != null) {\n points.forEach(function (point, idx, arr) {\n rpcb_1.foundPossibleResultPoint(point);\n });\n }\n }\n };\n // @Override\n AztecReader.prototype.reset = function () {\n // do nothing\n };\n return AztecReader;\n}());\nexport default AztecReader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport AztecReader from '../core/aztec/AztecReader';\n/**\n * Aztec Code reader to use from browser.\n *\n * @class BrowserAztecCodeReader\n * @extends {BrowserCodeReader}\n */\nvar BrowserAztecCodeReader = /** @class */ (function (_super) {\n __extends(BrowserAztecCodeReader, _super);\n /**\n * Creates an instance of BrowserAztecCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n *\n * @memberOf BrowserAztecCodeReader\n */\n function BrowserAztecCodeReader(timeBetweenScansMillis) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new AztecReader(), timeBetweenScansMillis) || this;\n }\n return BrowserAztecCodeReader;\n}(BrowserCodeReader));\nexport { BrowserAztecCodeReader };\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport BitArray from '../common/BitArray';\nimport DecodeHintType from '../DecodeHintType';\nimport ResultMetadataType from '../ResultMetadataType';\nimport ResultPoint from '../ResultPoint';\nimport NotFoundException from '../NotFoundException';\n/**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\nvar OneDReader = /** @class */ (function () {\n function OneDReader() {\n }\n /*\n @Override\n public Result decode(BinaryBitmap image) throws NotFoundException, FormatException {\n return decode(image, null);\n }\n */\n // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n // @Override\n OneDReader.prototype.decode = function (image, hints) {\n try {\n return this.doDecode(image, hints);\n }\n catch (nfe) {\n var tryHarder = hints && (hints.get(DecodeHintType.TRY_HARDER) === true);\n if (tryHarder && image.isRotateSupported()) {\n var rotatedImage = image.rotateCounterClockwise();\n var result = this.doDecode(rotatedImage, hints);\n // Record that we found it rotated 90 degrees CCW / 270 degrees CW\n var metadata = result.getResultMetadata();\n var orientation_1 = 270;\n if (metadata !== null && (metadata.get(ResultMetadataType.ORIENTATION) === true)) {\n // But if we found it reversed in doDecode(), add in that result here:\n orientation_1 = (orientation_1 + metadata.get(ResultMetadataType.ORIENTATION) % 360);\n }\n result.putMetadata(ResultMetadataType.ORIENTATION, orientation_1);\n // Update result points\n var points = result.getResultPoints();\n if (points !== null) {\n var height = rotatedImage.getHeight();\n for (var i = 0; i < points.length; i++) {\n points[i] = new ResultPoint(height - points[i].getY() - 1, points[i].getX());\n }\n }\n return result;\n }\n else {\n throw new NotFoundException();\n }\n }\n };\n // @Override\n OneDReader.prototype.reset = function () {\n // do nothing\n };\n /**\n * We're going to examine rows from the middle outward, searching alternately above and below the\n * middle, and farther out each time. rowStep is the number of rows between each successive\n * attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then\n * middle + rowStep, then middle - (2 * rowStep), etc.\n * rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily\n * decided that moving up and down by about 1/16 of the image is pretty good; we try more of the\n * image if \"trying harder\".\n *\n * @param image The image to decode\n * @param hints Any hints that were requested\n * @return The contents of the decoded barcode\n * @throws NotFoundException Any spontaneous errors which occur\n */\n OneDReader.prototype.doDecode = function (image, hints) {\n var width = image.getWidth();\n var height = image.getHeight();\n var row = new BitArray(width);\n var tryHarder = hints && (hints.get(DecodeHintType.TRY_HARDER) === true);\n var rowStep = Math.max(1, height >> (tryHarder ? 8 : 5));\n var maxLines;\n if (tryHarder) {\n maxLines = height; // Look at the whole image, not just the center\n }\n else {\n maxLines = 15; // 15 rows spaced 1/32 apart is roughly the middle half of the image\n }\n var middle = Math.trunc(height / 2);\n for (var x = 0; x < maxLines; x++) {\n // Scanning from the middle out. Determine which row we're looking at next:\n var rowStepsAboveOrBelow = Math.trunc((x + 1) / 2);\n var isAbove = (x & 0x01) === 0; // i.e. is x even?\n var rowNumber = middle + rowStep * (isAbove ? rowStepsAboveOrBelow : -rowStepsAboveOrBelow);\n if (rowNumber < 0 || rowNumber >= height) {\n // Oops, if we run off the top or bottom, stop\n break;\n }\n // Estimate black point for this row and load it:\n try {\n row = image.getBlackRow(rowNumber, row);\n }\n catch (ignored) {\n continue;\n }\n var _loop_1 = function (attempt) {\n if (attempt === 1) { // trying again?\n row.reverse(); // reverse the row and continue\n // This means we will only ever draw result points *once* in the life of this method\n // since we want to avoid drawing the wrong points after flipping the row, and,\n // don't want to clutter with noise from every single row scan -- just the scans\n // that start on the center line.\n if (hints && (hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK) === true)) {\n var newHints_1 = new Map();\n hints.forEach(function (hint, key) { return newHints_1.set(key, hint); });\n newHints_1.delete(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n hints = newHints_1;\n }\n }\n try {\n // Look for a barcode\n var result = this_1.decodeRow(rowNumber, row, hints);\n // We found our barcode\n if (attempt === 1) {\n // But it was upside down, so note that\n result.putMetadata(ResultMetadataType.ORIENTATION, 180);\n // And remember to flip the result points horizontally.\n var points = result.getResultPoints();\n if (points !== null) {\n points[0] = new ResultPoint(width - points[0].getX() - 1, points[0].getY());\n points[1] = new ResultPoint(width - points[1].getX() - 1, points[1].getY());\n }\n }\n return { value: result };\n }\n catch (re) {\n // continue -- just couldn't decode this row\n }\n };\n var this_1 = this;\n // While we have the image data in a BitArray, it's fairly cheap to reverse it in place to\n // handle decoding upside down barcodes.\n for (var attempt = 0; attempt < 2; attempt++) {\n var state_1 = _loop_1(attempt);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n throw new NotFoundException();\n };\n /**\n * Records the size of successive runs of white and black pixels in a row, starting at a given point.\n * The values are recorded in the given array, and the number of runs recorded is equal to the size\n * of the array. If the row starts on a white pixel at the given start point, then the first count\n * recorded is the run of white pixels starting from that point; likewise it is the count of a run\n * of black pixels if the row begin on a black pixels at that point.\n *\n * @param row row to count from\n * @param start offset into row to start at\n * @param counters array into which to record counts\n * @throws NotFoundException if counters cannot be filled entirely from row before running out\n * of pixels\n */\n OneDReader.recordPattern = function (row, start, counters) {\n var numCounters = counters.length;\n for (var index = 0; index < numCounters; index++)\n counters[index] = 0;\n var end = row.getSize();\n if (start >= end) {\n throw new NotFoundException();\n }\n var isWhite = !row.get(start);\n var counterPosition = 0;\n var i = start;\n while (i < end) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (++counterPosition === numCounters) {\n break;\n }\n else {\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n i++;\n }\n // If we read fully the last section of pixels and filled up our counters -- or filled\n // the last counter but ran off the side of the image, OK. Otherwise, a problem.\n if (!(counterPosition === numCounters || (counterPosition === numCounters - 1 && i === end))) {\n throw new NotFoundException();\n }\n };\n OneDReader.recordPatternInReverse = function (row, start, counters) {\n // This could be more efficient I guess\n var numTransitionsLeft = counters.length;\n var last = row.get(start);\n while (start > 0 && numTransitionsLeft >= 0) {\n if (row.get(--start) !== last) {\n numTransitionsLeft--;\n last = !last;\n }\n }\n if (numTransitionsLeft >= 0) {\n throw new NotFoundException();\n }\n OneDReader.recordPattern(row, start + 1, counters);\n };\n /**\n * Determines how closely a set of observed counts of runs of black/white values matches a given\n * target pattern. This is reported as the ratio of the total variance from the expected pattern\n * proportions across all pattern elements, to the length of the pattern.\n *\n * @param counters observed counters\n * @param pattern expected pattern\n * @param maxIndividualVariance The most any counter can differ before we give up\n * @return ratio of total variance between counters and pattern compared to total pattern size\n */\n OneDReader.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\n var numCounters = counters.length;\n var total = 0;\n var patternLength = 0;\n for (var i = 0; i < numCounters; i++) {\n total += counters[i];\n patternLength += pattern[i];\n }\n if (total < patternLength) {\n // If we don't even have one pixel per unit of bar width, assume this is too small\n // to reliably match, so fail:\n return Number.POSITIVE_INFINITY;\n }\n var unitBarWidth = total / patternLength;\n maxIndividualVariance *= unitBarWidth;\n var totalVariance = 0.0;\n for (var x = 0; x < numCounters; x++) {\n var counter = counters[x];\n var scaledPattern = pattern[x] * unitBarWidth;\n var variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n if (variance > maxIndividualVariance) {\n return Number.POSITIVE_INFINITY;\n }\n totalVariance += variance;\n }\n return totalVariance / total;\n };\n return OneDReader;\n}());\nexport default OneDReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport ChecksumException from '../ChecksumException';\nimport DecodeHintType from '../DecodeHintType';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\n// import Reader from '../Reader';\nimport Result from '../Result';\n// import ResultMetadataType from '../ResultMetadataType';\nimport ResultPoint from '../ResultPoint';\nimport OneDReader from './OneDReader';\n/**\n *

    Decodes Code 128 barcodes.

    \n *\n * @author Sean Owen\n */\nvar Code128Reader = /** @class */ (function (_super) {\n __extends(Code128Reader, _super);\n function Code128Reader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Code128Reader.findStartPattern = function (row) {\n var width = row.getSize();\n var rowOffset = row.getNextSet(0);\n var counterPosition = 0;\n var counters = Int32Array.from([0, 0, 0, 0, 0, 0]);\n var patternStart = rowOffset;\n var isWhite = false;\n var patternLength = 6;\n for (var i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === (patternLength - 1)) {\n var bestVariance = Code128Reader.MAX_AVG_VARIANCE;\n var bestMatch = -1;\n for (var startCode = Code128Reader.CODE_START_A; startCode <= Code128Reader.CODE_START_C; startCode++) {\n var variance = OneDReader.patternMatchVariance(counters, Code128Reader.CODE_PATTERNS[startCode], Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = startCode;\n }\n }\n // Look for whitespace before start pattern, >= 50% of width of start pattern\n if (bestMatch >= 0 &&\n row.isRange(Math.max(0, patternStart - (i - patternStart) / 2), patternStart, false)) {\n return Int32Array.from([patternStart, i, bestMatch]);\n }\n patternStart += counters[0] + counters[1];\n counters = counters.slice(2, counters.length);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n };\n Code128Reader.decodeCode = function (row, counters, rowOffset) {\n OneDReader.recordPattern(row, rowOffset, counters);\n var bestVariance = Code128Reader.MAX_AVG_VARIANCE; // worst variance we'll accept\n var bestMatch = -1;\n for (var d = 0; d < Code128Reader.CODE_PATTERNS.length; d++) {\n var pattern = Code128Reader.CODE_PATTERNS[d];\n var variance = this.patternMatchVariance(counters, pattern, Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = d;\n }\n }\n // TODO We're overlooking the fact that the STOP pattern has 7 values, not 6.\n if (bestMatch >= 0) {\n return bestMatch;\n }\n else {\n throw new NotFoundException();\n }\n };\n Code128Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var convertFNC1 = hints && (hints.get(DecodeHintType.ASSUME_GS1) === true);\n var startPatternInfo = Code128Reader.findStartPattern(row);\n var startCode = startPatternInfo[2];\n var currentRawCodesIndex = 0;\n var rawCodes = new Uint8Array(20);\n rawCodes[currentRawCodesIndex++] = startCode;\n var codeSet;\n switch (startCode) {\n case Code128Reader.CODE_START_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_START_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_START_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n default:\n throw new FormatException();\n }\n var done = false;\n var isNextShifted = false;\n var result = '';\n var lastStart = startPatternInfo[0];\n var nextStart = startPatternInfo[1];\n var counters = Int32Array.from([0, 0, 0, 0, 0, 0]);\n var lastCode = 0;\n var code = 0;\n var checksumTotal = startCode;\n var multiplier = 0;\n var lastCharacterWasPrintable = true;\n var upperMode = false;\n var shiftUpperMode = false;\n while (!done) {\n var unshift = isNextShifted;\n isNextShifted = false;\n // Save off last code\n lastCode = code;\n // Decode another code from image\n code = Code128Reader.decodeCode(row, counters, nextStart);\n rawCodes[currentRawCodesIndex++] = code;\n // Remember whether the last code was printable or not (excluding CODE_STOP)\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = true;\n }\n // Add to checksum computation (if not CODE_STOP of course)\n if (code !== Code128Reader.CODE_STOP) {\n multiplier++;\n checksumTotal += multiplier * code;\n }\n // Advance to where the next code will to start\n lastStart = nextStart;\n nextStart += counters.reduce(function (previous, current) { return previous + current; }, 0);\n // Take care of illegal start codes\n switch (code) {\n case Code128Reader.CODE_START_A:\n case Code128Reader.CODE_START_B:\n case Code128Reader.CODE_START_C:\n throw new FormatException();\n }\n switch (codeSet) {\n case Code128Reader.CODE_CODE_A:\n if (code < 64) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((' '.charCodeAt(0) + code));\n }\n else {\n result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n }\n shiftUpperMode = false;\n }\n else if (code < 96) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((code - 64));\n }\n else {\n result += String.fromCharCode((code + 64));\n }\n shiftUpperMode = false;\n }\n else {\n // Don't let CODE_STOP, which always appears, affect whether whether we think the last\n // code was printable or not.\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_FNC_2:\n case Code128Reader.CODE_FNC_3:\n // do nothing?\n break;\n case Code128Reader.CODE_FNC_4_A:\n if (!upperMode && shiftUpperMode) {\n upperMode = true;\n shiftUpperMode = false;\n }\n else if (upperMode && shiftUpperMode) {\n upperMode = false;\n shiftUpperMode = false;\n }\n else {\n shiftUpperMode = true;\n }\n break;\n case Code128Reader.CODE_SHIFT:\n isNextShifted = true;\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_CODE_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_CODE_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n case Code128Reader.CODE_CODE_B:\n if (code < 96) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((' '.charCodeAt(0) + code));\n }\n else {\n result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n }\n shiftUpperMode = false;\n }\n else {\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_FNC_2:\n case Code128Reader.CODE_FNC_3:\n // do nothing?\n break;\n case Code128Reader.CODE_FNC_4_B:\n if (!upperMode && shiftUpperMode) {\n upperMode = true;\n shiftUpperMode = false;\n }\n else if (upperMode && shiftUpperMode) {\n upperMode = false;\n shiftUpperMode = false;\n }\n else {\n shiftUpperMode = true;\n }\n break;\n case Code128Reader.CODE_SHIFT:\n isNextShifted = true;\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n case Code128Reader.CODE_CODE_C:\n if (code < 100) {\n if (code < 10) {\n result += '0';\n }\n result += code;\n }\n else {\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_CODE_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n }\n // Unshift back to another code set if we were shifted\n if (unshift) {\n codeSet = codeSet === Code128Reader.CODE_CODE_A ? Code128Reader.CODE_CODE_B : Code128Reader.CODE_CODE_A;\n }\n }\n var lastPatternSize = nextStart - lastStart;\n // Check for ample whitespace following pattern, but, to do this we first need to remember that\n // we fudged decoding CODE_STOP since it actually has 7 bars, not 6. There is a black bar left\n // to read off. Would be slightly better to properly read. Here we just skip it:\n nextStart = row.getNextUnset(nextStart);\n if (!row.isRange(nextStart, Math.min(row.getSize(), nextStart + (nextStart - lastStart) / 2), false)) {\n throw new NotFoundException();\n }\n // Pull out from sum the value of the penultimate check code\n checksumTotal -= multiplier * lastCode;\n // lastCode is the checksum then:\n if (checksumTotal % 103 !== lastCode) {\n throw new ChecksumException();\n }\n // Need to pull out the check digits from string\n var resultLength = result.length;\n if (resultLength === 0) {\n // false positive\n throw new NotFoundException();\n }\n // Only bother if the result had at least one character, and if the checksum digit happened to\n // be a printable character. If it was just interpreted as a control code, nothing to remove.\n if (resultLength > 0 && lastCharacterWasPrintable) {\n if (codeSet === Code128Reader.CODE_CODE_C) {\n result = result.substring(0, resultLength - 2);\n }\n else {\n result = result.substring(0, resultLength - 1);\n }\n }\n var left = (startPatternInfo[1] + startPatternInfo[0]) / 2.0;\n var right = lastStart + lastPatternSize / 2.0;\n var rawCodesSize = rawCodes.length;\n var rawBytes = new Uint8Array(rawCodesSize);\n for (var i = 0; i < rawCodesSize; i++) {\n rawBytes[i] = rawCodes[i];\n }\n var points = [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)];\n return new Result(result, rawBytes, 0, points, BarcodeFormat.CODE_128, new Date().getTime());\n };\n Code128Reader.CODE_PATTERNS = [\n Int32Array.from([2, 1, 2, 2, 2, 2]),\n Int32Array.from([2, 2, 2, 1, 2, 2]),\n Int32Array.from([2, 2, 2, 2, 2, 1]),\n Int32Array.from([1, 2, 1, 2, 2, 3]),\n Int32Array.from([1, 2, 1, 3, 2, 2]),\n Int32Array.from([1, 3, 1, 2, 2, 2]),\n Int32Array.from([1, 2, 2, 2, 1, 3]),\n Int32Array.from([1, 2, 2, 3, 1, 2]),\n Int32Array.from([1, 3, 2, 2, 1, 2]),\n Int32Array.from([2, 2, 1, 2, 1, 3]),\n Int32Array.from([2, 2, 1, 3, 1, 2]),\n Int32Array.from([2, 3, 1, 2, 1, 2]),\n Int32Array.from([1, 1, 2, 2, 3, 2]),\n Int32Array.from([1, 2, 2, 1, 3, 2]),\n Int32Array.from([1, 2, 2, 2, 3, 1]),\n Int32Array.from([1, 1, 3, 2, 2, 2]),\n Int32Array.from([1, 2, 3, 1, 2, 2]),\n Int32Array.from([1, 2, 3, 2, 2, 1]),\n Int32Array.from([2, 2, 3, 2, 1, 1]),\n Int32Array.from([2, 2, 1, 1, 3, 2]),\n Int32Array.from([2, 2, 1, 2, 3, 1]),\n Int32Array.from([2, 1, 3, 2, 1, 2]),\n Int32Array.from([2, 2, 3, 1, 1, 2]),\n Int32Array.from([3, 1, 2, 1, 3, 1]),\n Int32Array.from([3, 1, 1, 2, 2, 2]),\n Int32Array.from([3, 2, 1, 1, 2, 2]),\n Int32Array.from([3, 2, 1, 2, 2, 1]),\n Int32Array.from([3, 1, 2, 2, 1, 2]),\n Int32Array.from([3, 2, 2, 1, 1, 2]),\n Int32Array.from([3, 2, 2, 2, 1, 1]),\n Int32Array.from([2, 1, 2, 1, 2, 3]),\n Int32Array.from([2, 1, 2, 3, 2, 1]),\n Int32Array.from([2, 3, 2, 1, 2, 1]),\n Int32Array.from([1, 1, 1, 3, 2, 3]),\n Int32Array.from([1, 3, 1, 1, 2, 3]),\n Int32Array.from([1, 3, 1, 3, 2, 1]),\n Int32Array.from([1, 1, 2, 3, 1, 3]),\n Int32Array.from([1, 3, 2, 1, 1, 3]),\n Int32Array.from([1, 3, 2, 3, 1, 1]),\n Int32Array.from([2, 1, 1, 3, 1, 3]),\n Int32Array.from([2, 3, 1, 1, 1, 3]),\n Int32Array.from([2, 3, 1, 3, 1, 1]),\n Int32Array.from([1, 1, 2, 1, 3, 3]),\n Int32Array.from([1, 1, 2, 3, 3, 1]),\n Int32Array.from([1, 3, 2, 1, 3, 1]),\n Int32Array.from([1, 1, 3, 1, 2, 3]),\n Int32Array.from([1, 1, 3, 3, 2, 1]),\n Int32Array.from([1, 3, 3, 1, 2, 1]),\n Int32Array.from([3, 1, 3, 1, 2, 1]),\n Int32Array.from([2, 1, 1, 3, 3, 1]),\n Int32Array.from([2, 3, 1, 1, 3, 1]),\n Int32Array.from([2, 1, 3, 1, 1, 3]),\n Int32Array.from([2, 1, 3, 3, 1, 1]),\n Int32Array.from([2, 1, 3, 1, 3, 1]),\n Int32Array.from([3, 1, 1, 1, 2, 3]),\n Int32Array.from([3, 1, 1, 3, 2, 1]),\n Int32Array.from([3, 3, 1, 1, 2, 1]),\n Int32Array.from([3, 1, 2, 1, 1, 3]),\n Int32Array.from([3, 1, 2, 3, 1, 1]),\n Int32Array.from([3, 3, 2, 1, 1, 1]),\n Int32Array.from([3, 1, 4, 1, 1, 1]),\n Int32Array.from([2, 2, 1, 4, 1, 1]),\n Int32Array.from([4, 3, 1, 1, 1, 1]),\n Int32Array.from([1, 1, 1, 2, 2, 4]),\n Int32Array.from([1, 1, 1, 4, 2, 2]),\n Int32Array.from([1, 2, 1, 1, 2, 4]),\n Int32Array.from([1, 2, 1, 4, 2, 1]),\n Int32Array.from([1, 4, 1, 1, 2, 2]),\n Int32Array.from([1, 4, 1, 2, 2, 1]),\n Int32Array.from([1, 1, 2, 2, 1, 4]),\n Int32Array.from([1, 1, 2, 4, 1, 2]),\n Int32Array.from([1, 2, 2, 1, 1, 4]),\n Int32Array.from([1, 2, 2, 4, 1, 1]),\n Int32Array.from([1, 4, 2, 1, 1, 2]),\n Int32Array.from([1, 4, 2, 2, 1, 1]),\n Int32Array.from([2, 4, 1, 2, 1, 1]),\n Int32Array.from([2, 2, 1, 1, 1, 4]),\n Int32Array.from([4, 1, 3, 1, 1, 1]),\n Int32Array.from([2, 4, 1, 1, 1, 2]),\n Int32Array.from([1, 3, 4, 1, 1, 1]),\n Int32Array.from([1, 1, 1, 2, 4, 2]),\n Int32Array.from([1, 2, 1, 1, 4, 2]),\n Int32Array.from([1, 2, 1, 2, 4, 1]),\n Int32Array.from([1, 1, 4, 2, 1, 2]),\n Int32Array.from([1, 2, 4, 1, 1, 2]),\n Int32Array.from([1, 2, 4, 2, 1, 1]),\n Int32Array.from([4, 1, 1, 2, 1, 2]),\n Int32Array.from([4, 2, 1, 1, 1, 2]),\n Int32Array.from([4, 2, 1, 2, 1, 1]),\n Int32Array.from([2, 1, 2, 1, 4, 1]),\n Int32Array.from([2, 1, 4, 1, 2, 1]),\n Int32Array.from([4, 1, 2, 1, 2, 1]),\n Int32Array.from([1, 1, 1, 1, 4, 3]),\n Int32Array.from([1, 1, 1, 3, 4, 1]),\n Int32Array.from([1, 3, 1, 1, 4, 1]),\n Int32Array.from([1, 1, 4, 1, 1, 3]),\n Int32Array.from([1, 1, 4, 3, 1, 1]),\n Int32Array.from([4, 1, 1, 1, 1, 3]),\n Int32Array.from([4, 1, 1, 3, 1, 1]),\n Int32Array.from([1, 1, 3, 1, 4, 1]),\n Int32Array.from([1, 1, 4, 1, 3, 1]),\n Int32Array.from([3, 1, 1, 1, 4, 1]),\n Int32Array.from([4, 1, 1, 1, 3, 1]),\n Int32Array.from([2, 1, 1, 4, 1, 2]),\n Int32Array.from([2, 1, 1, 2, 1, 4]),\n Int32Array.from([2, 1, 1, 2, 3, 2]),\n Int32Array.from([2, 3, 3, 1, 1, 1, 2]),\n ];\n Code128Reader.MAX_AVG_VARIANCE = 0.25;\n Code128Reader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n Code128Reader.CODE_SHIFT = 98;\n Code128Reader.CODE_CODE_C = 99;\n Code128Reader.CODE_CODE_B = 100;\n Code128Reader.CODE_CODE_A = 101;\n Code128Reader.CODE_FNC_1 = 102;\n Code128Reader.CODE_FNC_2 = 97;\n Code128Reader.CODE_FNC_3 = 96;\n Code128Reader.CODE_FNC_4_A = 101;\n Code128Reader.CODE_FNC_4_B = 100;\n Code128Reader.CODE_START_A = 103;\n Code128Reader.CODE_START_B = 104;\n Code128Reader.CODE_START_C = 105;\n Code128Reader.CODE_STOP = 106;\n return Code128Reader;\n}(OneDReader));\nexport default Code128Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport ChecksumException from '../ChecksumException';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\nimport OneDReader from './OneDReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\n/**\n *

    Decodes Code 39 barcodes. Supports \"Full ASCII Code 39\" if USE_CODE_39_EXTENDED_MODE is set.

    \n *\n * @author Sean Owen\n * @see Code93Reader\n */\nvar Code39Reader = /** @class */ (function (_super) {\n __extends(Code39Reader, _super);\n /**\n * Creates a reader that assumes all encoded data is data, and does not treat the final\n * character as a check digit. It will not decoded \"extended Code 39\" sequences.\n */\n // public Code39Reader() {\n // this(false);\n // }\n /**\n * Creates a reader that can be configured to check the last character as a check digit.\n * It will not decoded \"extended Code 39\" sequences.\n *\n * @param usingCheckDigit if true, treat the last data character as a check digit, not\n * data, and verify that the checksum passes.\n */\n // public Code39Reader(boolean usingCheckDigit) {\n // this(usingCheckDigit, false);\n // }\n /**\n * Creates a reader that can be configured to check the last character as a check digit,\n * or optionally attempt to decode \"extended Code 39\" sequences that are used to encode\n * the full ASCII character set.\n *\n * @param usingCheckDigit if true, treat the last data character as a check digit, not\n * data, and verify that the checksum passes.\n * @param extendedMode if true, will attempt to decode extended Code 39 sequences in the\n * text.\n */\n function Code39Reader(usingCheckDigit, extendedMode) {\n if (usingCheckDigit === void 0) { usingCheckDigit = false; }\n if (extendedMode === void 0) { extendedMode = false; }\n var _this = _super.call(this) || this;\n _this.usingCheckDigit = usingCheckDigit;\n _this.extendedMode = extendedMode;\n _this.decodeRowResult = '';\n _this.counters = new Int32Array(9);\n return _this;\n }\n Code39Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var e_1, _a, e_2, _b;\n var theCounters = this.counters;\n theCounters.fill(0);\n this.decodeRowResult = '';\n var start = Code39Reader.findAsteriskPattern(row, theCounters);\n // Read off white space\n var nextStart = row.getNextSet(start[1]);\n var end = row.getSize();\n var decodedChar;\n var lastStart;\n do {\n Code39Reader.recordPattern(row, nextStart, theCounters);\n var pattern = Code39Reader.toNarrowWidePattern(theCounters);\n if (pattern < 0) {\n throw new NotFoundException();\n }\n decodedChar = Code39Reader.patternToChar(pattern);\n this.decodeRowResult += decodedChar;\n lastStart = nextStart;\n try {\n for (var theCounters_1 = (e_1 = void 0, __values(theCounters)), theCounters_1_1 = theCounters_1.next(); !theCounters_1_1.done; theCounters_1_1 = theCounters_1.next()) {\n var counter = theCounters_1_1.value;\n nextStart += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (theCounters_1_1 && !theCounters_1_1.done && (_a = theCounters_1.return)) _a.call(theCounters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Read off white space\n nextStart = row.getNextSet(nextStart);\n } while (decodedChar !== '*');\n this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 1); // remove asterisk\n // Look for whitespace after pattern:\n var lastPatternSize = 0;\n try {\n for (var theCounters_2 = __values(theCounters), theCounters_2_1 = theCounters_2.next(); !theCounters_2_1.done; theCounters_2_1 = theCounters_2.next()) {\n var counter = theCounters_2_1.value;\n lastPatternSize += counter;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (theCounters_2_1 && !theCounters_2_1.done && (_b = theCounters_2.return)) _b.call(theCounters_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;\n // If 50% of last pattern size, following last pattern, is not whitespace, fail\n // (but if it's whitespace to the very end of the image, that's OK)\n if (nextStart !== end && (whiteSpaceAfterEnd * 2) < lastPatternSize) {\n throw new NotFoundException();\n }\n if (this.usingCheckDigit) {\n var max = this.decodeRowResult.length - 1;\n var total = 0;\n for (var i = 0; i < max; i++) {\n total += Code39Reader.ALPHABET_STRING.indexOf(this.decodeRowResult.charAt(i));\n }\n if (this.decodeRowResult.charAt(max) !== Code39Reader.ALPHABET_STRING.charAt(total % 43)) {\n throw new ChecksumException();\n }\n this.decodeRowResult = this.decodeRowResult.substring(0, max);\n }\n if (this.decodeRowResult.length === 0) {\n // false positive\n throw new NotFoundException();\n }\n var resultString;\n if (this.extendedMode) {\n resultString = Code39Reader.decodeExtended(this.decodeRowResult);\n }\n else {\n resultString = this.decodeRowResult;\n }\n var left = (start[1] + start[0]) / 2.0;\n var right = lastStart + lastPatternSize / 2.0;\n return new Result(resultString, null, 0, [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)], BarcodeFormat.CODE_39, new Date().getTime());\n };\n Code39Reader.findAsteriskPattern = function (row, counters) {\n var width = row.getSize();\n var rowOffset = row.getNextSet(0);\n var counterPosition = 0;\n var patternStart = rowOffset;\n var isWhite = false;\n var patternLength = counters.length;\n for (var i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n // Look for whitespace before start pattern, >= 50% of width of start pattern\n if (this.toNarrowWidePattern(counters) === Code39Reader.ASTERISK_ENCODING &&\n row.isRange(Math.max(0, patternStart - Math.floor((i - patternStart) / 2)), patternStart, false)) {\n return [patternStart, i];\n }\n patternStart += counters[0] + counters[1];\n counters.copyWithin(0, 2, 2 + counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n };\n // For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions\n // per image when using some of our blackbox images.\n Code39Reader.toNarrowWidePattern = function (counters) {\n var e_3, _a;\n var numCounters = counters.length;\n var maxNarrowCounter = 0;\n var wideCounters;\n do {\n var minCounter = 0x7fffffff;\n try {\n for (var counters_1 = (e_3 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n if (counter < minCounter && counter > maxNarrowCounter) {\n minCounter = counter;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n maxNarrowCounter = minCounter;\n wideCounters = 0;\n var totalWideCountersWidth = 0;\n var pattern = 0;\n for (var i = 0; i < numCounters; i++) {\n var counter = counters[i];\n if (counter > maxNarrowCounter) {\n pattern |= 1 << (numCounters - 1 - i);\n wideCounters++;\n totalWideCountersWidth += counter;\n }\n }\n if (wideCounters === 3) {\n // Found 3 wide counters, but are they close enough in width?\n // We can perform a cheap, conservative check to see if any individual\n // counter is more than 1.5 times the average:\n for (var i = 0; i < numCounters && wideCounters > 0; i++) {\n var counter = counters[i];\n if (counter > maxNarrowCounter) {\n wideCounters--;\n // totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average\n if ((counter * 2) >= totalWideCountersWidth) {\n return -1;\n }\n }\n }\n return pattern;\n }\n } while (wideCounters > 3);\n return -1;\n };\n Code39Reader.patternToChar = function (pattern) {\n for (var i = 0; i < Code39Reader.CHARACTER_ENCODINGS.length; i++) {\n if (Code39Reader.CHARACTER_ENCODINGS[i] === pattern) {\n return Code39Reader.ALPHABET_STRING.charAt(i);\n }\n }\n if (pattern === Code39Reader.ASTERISK_ENCODING) {\n return '*';\n }\n throw new NotFoundException();\n };\n Code39Reader.decodeExtended = function (encoded) {\n var length = encoded.length;\n var decoded = '';\n for (var i = 0; i < length; i++) {\n var c = encoded.charAt(i);\n if (c === '+' || c === '$' || c === '%' || c === '/') {\n var next = encoded.charAt(i + 1);\n var decodedChar = '\\0';\n switch (c) {\n case '+':\n // +A to +Z map to a to z\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 32);\n }\n else {\n throw new FormatException();\n }\n break;\n case '$':\n // $A to $Z map to control codes SH to SB\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 64);\n }\n else {\n throw new FormatException();\n }\n break;\n case '%':\n // %A to %E map to control codes ESC to US\n if (next >= 'A' && next <= 'E') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 38);\n }\n else if (next >= 'F' && next <= 'J') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 11);\n }\n else if (next >= 'K' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 16);\n }\n else if (next >= 'P' && next <= 'T') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 43);\n }\n else if (next === 'U') {\n decodedChar = '\\0';\n }\n else if (next === 'V') {\n decodedChar = '@';\n }\n else if (next === 'W') {\n decodedChar = '`';\n }\n else if (next === 'X' || next === 'Y' || next === 'Z') {\n decodedChar = '\\x7f';\n }\n else {\n throw new FormatException();\n }\n break;\n case '/':\n // /A to /O map to ! to , and /Z maps to :\n if (next >= 'A' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 32);\n }\n else if (next === 'Z') {\n decodedChar = ':';\n }\n else {\n throw new FormatException();\n }\n break;\n }\n decoded += decodedChar;\n // bump up i again since we read two characters\n i++;\n }\n else {\n decoded += c;\n }\n }\n return decoded;\n };\n Code39Reader.ALPHABET_STRING = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%';\n /**\n * These represent the encodings of characters, as patterns of wide and narrow bars.\n * The 9 least-significant bits of each int correspond to the pattern of wide and narrow,\n * with 1s representing \"wide\" and 0s representing narrow.\n */\n Code39Reader.CHARACTER_ENCODINGS = [\n 0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064,\n 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C,\n 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016,\n 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x0A8,\n 0x0A2, 0x08A, 0x02A // /-%\n ];\n Code39Reader.ASTERISK_ENCODING = 0x094;\n return Code39Reader;\n}(OneDReader));\nexport default Code39Reader;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport ChecksumException from '../ChecksumException';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\nimport OneDReader from './OneDReader';\nimport Result from '../Result';\n//import com.google.zxing.ResultMetadataType;\nimport ResultPoint from '../ResultPoint';\n/**\n *

    Decodes Code 93 barcodes.

    \n *\n * @author Sean Owen\n * @see Code39Reader\n */\nvar Code93Reader = /** @class */ (function (_super) {\n __extends(Code93Reader, _super);\n //public Code93Reader() {\n // decodeRowResult = new StringBuilder(20);\n // counters = new int[6];\n //}\n function Code93Reader() {\n var _this = _super.call(this) || this;\n _this.decodeRowResult = '';\n _this.counters = new Int32Array(6);\n return _this;\n }\n Code93Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var e_1, _a, e_2, _b;\n var start = this.findAsteriskPattern(row);\n // Read off white space\n var nextStart = row.getNextSet(start[1]);\n var end = row.getSize();\n var theCounters = this.counters;\n theCounters.fill(0);\n this.decodeRowResult = '';\n var decodedChar;\n var lastStart;\n do {\n Code93Reader.recordPattern(row, nextStart, theCounters);\n var pattern = this.toPattern(theCounters);\n if (pattern < 0) {\n throw new NotFoundException();\n }\n decodedChar = this.patternToChar(pattern);\n this.decodeRowResult += decodedChar;\n lastStart = nextStart;\n try {\n for (var theCounters_1 = (e_1 = void 0, __values(theCounters)), theCounters_1_1 = theCounters_1.next(); !theCounters_1_1.done; theCounters_1_1 = theCounters_1.next()) {\n var counter = theCounters_1_1.value;\n nextStart += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (theCounters_1_1 && !theCounters_1_1.done && (_a = theCounters_1.return)) _a.call(theCounters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Read off white space\n nextStart = row.getNextSet(nextStart);\n } while (decodedChar !== '*');\n this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 1); // remove asterisk\n var lastPatternSize = 0;\n try {\n for (var theCounters_2 = __values(theCounters), theCounters_2_1 = theCounters_2.next(); !theCounters_2_1.done; theCounters_2_1 = theCounters_2.next()) {\n var counter = theCounters_2_1.value;\n lastPatternSize += counter;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (theCounters_2_1 && !theCounters_2_1.done && (_b = theCounters_2.return)) _b.call(theCounters_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // Should be at least one more black module\n if (nextStart === end || !row.get(nextStart)) {\n throw new NotFoundException();\n }\n if (this.decodeRowResult.length < 2) {\n // false positive -- need at least 2 checksum digits\n throw new NotFoundException();\n }\n this.checkChecksums(this.decodeRowResult);\n // Remove checksum digits\n this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 2);\n var resultString = this.decodeExtended(this.decodeRowResult);\n var left = (start[1] + start[0]) / 2.0;\n var right = lastStart + lastPatternSize / 2.0;\n return new Result(resultString, null, 0, [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)], BarcodeFormat.CODE_93, new Date().getTime());\n };\n Code93Reader.prototype.findAsteriskPattern = function (row) {\n var width = row.getSize();\n var rowOffset = row.getNextSet(0);\n this.counters.fill(0);\n var theCounters = this.counters;\n var patternStart = rowOffset;\n var isWhite = false;\n var patternLength = theCounters.length;\n var counterPosition = 0;\n for (var i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n theCounters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (this.toPattern(theCounters) === Code93Reader.ASTERISK_ENCODING) {\n return new Int32Array([patternStart, i]);\n }\n patternStart += theCounters[0] + theCounters[1];\n theCounters.copyWithin(0, 2, 2 + counterPosition - 1);\n theCounters[counterPosition - 1] = 0;\n theCounters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n theCounters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException;\n };\n Code93Reader.prototype.toPattern = function (counters) {\n var e_3, _a;\n var sum = 0;\n try {\n for (var counters_1 = __values(counters), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n sum += counter;\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n var pattern = 0;\n var max = counters.length;\n for (var i = 0; i < max; i++) {\n var scaled = Math.round(counters[i] * 9.0 / sum);\n if (scaled < 1 || scaled > 4) {\n return -1;\n }\n if ((i & 0x01) === 0) {\n for (var j = 0; j < scaled; j++) {\n pattern = (pattern << 1) | 0x01;\n }\n }\n else {\n pattern <<= scaled;\n }\n }\n return pattern;\n };\n Code93Reader.prototype.patternToChar = function (pattern) {\n for (var i = 0; i < Code93Reader.CHARACTER_ENCODINGS.length; i++) {\n if (Code93Reader.CHARACTER_ENCODINGS[i] === pattern) {\n return Code93Reader.ALPHABET_STRING.charAt(i);\n }\n }\n throw new NotFoundException();\n };\n Code93Reader.prototype.decodeExtended = function (encoded) {\n var length = encoded.length;\n var decoded = '';\n for (var i = 0; i < length; i++) {\n var c = encoded.charAt(i);\n if (c >= 'a' && c <= 'd') {\n if (i >= length - 1) {\n throw new FormatException();\n }\n var next = encoded.charAt(i + 1);\n var decodedChar = '\\0';\n switch (c) {\n case 'd':\n // +A to +Z map to a to z\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 32);\n }\n else {\n throw new FormatException();\n }\n break;\n case 'a':\n // $A to $Z map to control codes SH to SB\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 64);\n }\n else {\n throw new FormatException();\n }\n break;\n case 'b':\n if (next >= 'A' && next <= 'E') {\n // %A to %E map to control codes ESC to USep\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 38);\n }\n else if (next >= 'F' && next <= 'J') {\n // %F to %J map to ; < = > ?\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 11);\n }\n else if (next >= 'K' && next <= 'O') {\n // %K to %O map to [ \\ ] ^ _\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 16);\n }\n else if (next >= 'P' && next <= 'T') {\n // %P to %T map to { | } ~ DEL\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 43);\n }\n else if (next === 'U') {\n // %U map to NUL\n decodedChar = '\\0';\n }\n else if (next === 'V') {\n // %V map to @\n decodedChar = '@';\n }\n else if (next === 'W') {\n // %W map to `\n decodedChar = '`';\n }\n else if (next >= 'X' && next <= 'Z') {\n // %X to %Z all map to DEL (127)\n decodedChar = String.fromCharCode(127);\n }\n else {\n throw new FormatException();\n }\n break;\n case 'c':\n // /A to /O map to ! to , and /Z maps to :\n if (next >= 'A' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 32);\n }\n else if (next === 'Z') {\n decodedChar = ':';\n }\n else {\n throw new FormatException();\n }\n break;\n }\n decoded += decodedChar;\n // bump up i again since we read two characters\n i++;\n }\n else {\n decoded += c;\n }\n }\n return decoded;\n };\n Code93Reader.prototype.checkChecksums = function (result) {\n var length = result.length;\n this.checkOneChecksum(result, length - 2, 20);\n this.checkOneChecksum(result, length - 1, 15);\n };\n Code93Reader.prototype.checkOneChecksum = function (result, checkPosition, weightMax) {\n var weight = 1;\n var total = 0;\n for (var i = checkPosition - 1; i >= 0; i--) {\n total += weight * Code93Reader.ALPHABET_STRING.indexOf(result.charAt(i));\n if (++weight > weightMax) {\n weight = 1;\n }\n }\n if (result.charAt(checkPosition) !== Code93Reader.ALPHABET_STRING[total % 47]) {\n throw new ChecksumException;\n }\n };\n // Note that 'abcd' are dummy characters in place of control characters.\n Code93Reader.ALPHABET_STRING = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*\";\n /**\n * These represent the encodings of characters, as patterns of wide and narrow bars.\n * The 9 least-significant bits of each int correspond to the pattern of wide and narrow.\n */\n Code93Reader.CHARACTER_ENCODINGS = [\n 0x114, 0x148, 0x144, 0x142, 0x128, 0x124, 0x122, 0x150, 0x112, 0x10A,\n 0x1A8, 0x1A4, 0x1A2, 0x194, 0x192, 0x18A, 0x168, 0x164, 0x162, 0x134,\n 0x11A, 0x158, 0x14C, 0x146, 0x12C, 0x116, 0x1B4, 0x1B2, 0x1AC, 0x1A6,\n 0x196, 0x19A, 0x16C, 0x166, 0x136, 0x13A,\n 0x12E, 0x1D4, 0x1D2, 0x1CA, 0x16E, 0x176, 0x1AE,\n 0x126, 0x1DA, 0x1D6, 0x132, 0x15E,\n ];\n Code93Reader.ASTERISK_ENCODING = Code93Reader.CHARACTER_ENCODINGS[47];\n return Code93Reader;\n}(OneDReader));\nexport default Code93Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\nimport StringBuilder from '../util/StringBuilder';\nimport System from '../util/System';\nimport OneDReader from './OneDReader';\n/**\n *

    Decodes ITF barcodes.

    \n *\n * @author Tjieco\n */\nvar ITFReader = /** @class */ (function (_super) {\n __extends(ITFReader, _super);\n function ITFReader() {\n // private static W = 3; // Pixel width of a 3x wide line\n // private static w = 2; // Pixel width of a 2x wide line\n // private static N = 1; // Pixed width of a narrow line\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // Stores the actual narrow line width of the image being decoded.\n _this.narrowLineWidth = -1;\n return _this;\n }\n // See ITFWriter.PATTERNS\n /*\n \n /!**\n * Patterns of Wide / Narrow lines to indicate each digit\n *!/\n */\n ITFReader.prototype.decodeRow = function (rowNumber, row, hints) {\n var e_1, _a;\n // Find out where the Middle section (payload) starts & ends\n var startRange = this.decodeStart(row);\n var endRange = this.decodeEnd(row);\n var result = new StringBuilder();\n ITFReader.decodeMiddle(row, startRange[1], endRange[0], result);\n var resultString = result.toString();\n var allowedLengths = null;\n if (hints != null) {\n allowedLengths = hints.get(DecodeHintType.ALLOWED_LENGTHS);\n }\n if (allowedLengths == null) {\n allowedLengths = ITFReader.DEFAULT_ALLOWED_LENGTHS;\n }\n // To avoid false positives with 2D barcodes (and other patterns), make\n // an assumption that the decoded string must be a 'standard' length if it's short\n var length = resultString.length;\n var lengthOK = false;\n var maxAllowedLength = 0;\n try {\n for (var allowedLengths_1 = __values(allowedLengths), allowedLengths_1_1 = allowedLengths_1.next(); !allowedLengths_1_1.done; allowedLengths_1_1 = allowedLengths_1.next()) {\n var value = allowedLengths_1_1.value;\n if (length === value) {\n lengthOK = true;\n break;\n }\n if (value > maxAllowedLength) {\n maxAllowedLength = value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allowedLengths_1_1 && !allowedLengths_1_1.done && (_a = allowedLengths_1.return)) _a.call(allowedLengths_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!lengthOK && length > maxAllowedLength) {\n lengthOK = true;\n }\n if (!lengthOK) {\n throw new FormatException();\n }\n var points = [new ResultPoint(startRange[1], rowNumber), new ResultPoint(endRange[0], rowNumber)];\n var resultReturn = new Result(resultString, null, // no natural byte representation for these barcodes\n 0, points, BarcodeFormat.ITF, new Date().getTime());\n return resultReturn;\n };\n /*\n /!**\n * @param row row of black/white values to search\n * @param payloadStart offset of start pattern\n * @param resultString {@link StringBuilder} to append decoded chars to\n * @throws NotFoundException if decoding could not complete successfully\n *!/*/\n ITFReader.decodeMiddle = function (row, payloadStart, payloadEnd, resultString) {\n // Digits are interleaved in pairs - 5 black lines for one digit, and the\n // 5\n // interleaved white lines for the second digit.\n // Therefore, need to scan 10 lines and then\n // split these into two arrays\n var counterDigitPair = new Int32Array(10); // 10\n var counterBlack = new Int32Array(5); // 5\n var counterWhite = new Int32Array(5); // 5\n counterDigitPair.fill(0);\n counterBlack.fill(0);\n counterWhite.fill(0);\n while (payloadStart < payloadEnd) {\n // Get 10 runs of black/white.\n OneDReader.recordPattern(row, payloadStart, counterDigitPair);\n // Split them into each array\n for (var k = 0; k < 5; k++) {\n var twoK = 2 * k;\n counterBlack[k] = counterDigitPair[twoK];\n counterWhite[k] = counterDigitPair[twoK + 1];\n }\n var bestMatch = ITFReader.decodeDigit(counterBlack);\n resultString.append(bestMatch.toString());\n bestMatch = this.decodeDigit(counterWhite);\n resultString.append(bestMatch.toString());\n counterDigitPair.forEach(function (counterDigit) {\n payloadStart += counterDigit;\n });\n }\n };\n /*/!**\n * Identify where the start of the middle / payload section starts.\n *\n * @param row row of black/white values to search\n * @return Array, containing index of start of 'start block' and end of\n * 'start block'\n *!/*/\n ITFReader.prototype.decodeStart = function (row) {\n var endStart = ITFReader.skipWhiteSpace(row);\n var startPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.START_PATTERN);\n // Determine the width of a narrow line in pixels. We can do this by\n // getting the width of the start pattern and dividing by 4 because its\n // made up of 4 narrow lines.\n this.narrowLineWidth = (startPattern[1] - startPattern[0]) / 4;\n this.validateQuietZone(row, startPattern[0]);\n return startPattern;\n };\n /*/!**\n * The start & end patterns must be pre/post fixed by a quiet zone. This\n * zone must be at least 10 times the width of a narrow line. Scan back until\n * we either get to the start of the barcode or match the necessary number of\n * quiet zone pixels.\n *\n * Note: Its assumed the row is reversed when using this method to find\n * quiet zone after the end pattern.\n *\n * ref: http://www.barcode-1.net/i25code.html\n *\n * @param row bit array representing the scanned barcode.\n * @param startPattern index into row of the start or end pattern.\n * @throws NotFoundException if the quiet zone cannot be found\n *!/*/\n ITFReader.prototype.validateQuietZone = function (row, startPattern) {\n var quietCount = this.narrowLineWidth * 10; // expect to find this many pixels of quiet zone\n // if there are not so many pixel at all let's try as many as possible\n quietCount = quietCount < startPattern ? quietCount : startPattern;\n for (var i = startPattern - 1; quietCount > 0 && i >= 0; i--) {\n if (row.get(i)) {\n break;\n }\n quietCount--;\n }\n if (quietCount !== 0) {\n // Unable to find the necessary number of quiet zone pixels.\n throw new NotFoundException();\n }\n };\n /*\n /!**\n * Skip all whitespace until we get to the first black line.\n *\n * @param row row of black/white values to search\n * @return index of the first black line.\n * @throws NotFoundException Throws exception if no black lines are found in the row\n *!/*/\n ITFReader.skipWhiteSpace = function (row) {\n var width = row.getSize();\n var endStart = row.getNextSet(0);\n if (endStart === width) {\n throw new NotFoundException();\n }\n return endStart;\n };\n /*/!**\n * Identify where the end of the middle / payload section ends.\n *\n * @param row row of black/white values to search\n * @return Array, containing index of start of 'end block' and end of 'end\n * block'\n *!/*/\n ITFReader.prototype.decodeEnd = function (row) {\n // For convenience, reverse the row and then\n // search from 'the start' for the end block\n row.reverse();\n try {\n var endStart = ITFReader.skipWhiteSpace(row);\n var endPattern = void 0;\n try {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[0]);\n }\n catch (error) {\n if (error instanceof NotFoundException) {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[1]);\n }\n }\n // The start & end patterns must be pre/post fixed by a quiet zone. This\n // zone must be at least 10 times the width of a narrow line.\n // ref: http://www.barcode-1.net/i25code.html\n this.validateQuietZone(row, endPattern[0]);\n // Now recalculate the indices of where the 'endblock' starts & stops to\n // accommodate\n // the reversed nature of the search\n var temp = endPattern[0];\n endPattern[0] = row.getSize() - endPattern[1];\n endPattern[1] = row.getSize() - temp;\n return endPattern;\n }\n finally {\n // Put the row back the right way.\n row.reverse();\n }\n };\n /*\n /!**\n * @param row row of black/white values to search\n * @param rowOffset position to start search\n * @param pattern pattern of counts of number of black and white pixels that are\n * being searched for as a pattern\n * @return start/end horizontal offset of guard pattern, as an array of two\n * ints\n * @throws NotFoundException if pattern is not found\n *!/*/\n ITFReader.findGuardPattern = function (row, rowOffset, pattern) {\n var patternLength = pattern.length;\n var counters = new Int32Array(patternLength);\n var width = row.getSize();\n var isWhite = false;\n var counterPosition = 0;\n var patternStart = rowOffset;\n counters.fill(0);\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (OneDReader.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE) < ITFReader.MAX_AVG_VARIANCE) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n System.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n };\n /*/!**\n * Attempts to decode a sequence of ITF black/white lines into single\n * digit.\n *\n * @param counters the counts of runs of observed black/white/black/... values\n * @return The decoded digit\n * @throws NotFoundException if digit cannot be decoded\n *!/*/\n ITFReader.decodeDigit = function (counters) {\n var bestVariance = ITFReader.MAX_AVG_VARIANCE; // worst variance we'll accept\n var bestMatch = -1;\n var max = ITFReader.PATTERNS.length;\n for (var i = 0; i < max; i++) {\n var pattern = ITFReader.PATTERNS[i];\n var variance = OneDReader.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = i;\n }\n else if (variance === bestVariance) {\n // if we find a second 'best match' with the same variance, we can not reliably report to have a suitable match\n bestMatch = -1;\n }\n }\n if (bestMatch >= 0) {\n return bestMatch % 10;\n }\n else {\n throw new NotFoundException();\n }\n };\n ITFReader.PATTERNS = [\n Int32Array.from([1, 1, 2, 2, 1]),\n Int32Array.from([2, 1, 1, 1, 2]),\n Int32Array.from([1, 2, 1, 1, 2]),\n Int32Array.from([2, 2, 1, 1, 1]),\n Int32Array.from([1, 1, 2, 1, 2]),\n Int32Array.from([2, 1, 2, 1, 1]),\n Int32Array.from([1, 2, 2, 1, 1]),\n Int32Array.from([1, 1, 1, 2, 2]),\n Int32Array.from([2, 1, 1, 2, 1]),\n Int32Array.from([1, 2, 1, 2, 1]),\n Int32Array.from([1, 1, 3, 3, 1]),\n Int32Array.from([3, 1, 1, 1, 3]),\n Int32Array.from([1, 3, 1, 1, 3]),\n Int32Array.from([3, 3, 1, 1, 1]),\n Int32Array.from([1, 1, 3, 1, 3]),\n Int32Array.from([3, 1, 3, 1, 1]),\n Int32Array.from([1, 3, 3, 1, 1]),\n Int32Array.from([1, 1, 1, 3, 3]),\n Int32Array.from([3, 1, 1, 3, 1]),\n Int32Array.from([1, 3, 1, 3, 1]) // 9\n ];\n ITFReader.MAX_AVG_VARIANCE = 0.38;\n ITFReader.MAX_INDIVIDUAL_VARIANCE = 0.5;\n /* /!** Valid ITF lengths. Anything longer than the largest value is also allowed. *!/*/\n ITFReader.DEFAULT_ALLOWED_LENGTHS = [6, 8, 10, 12, 14];\n /*/!**\n * Start/end guard pattern.\n *\n * Note: The end pattern is reversed because the row is reversed before\n * searching for the END_PATTERN\n *!/*/\n ITFReader.START_PATTERN = Int32Array.from([1, 1, 1, 1]);\n ITFReader.END_PATTERN_REVERSED = [\n Int32Array.from([1, 1, 2]),\n Int32Array.from([1, 1, 3]) // 3x\n ];\n return ITFReader;\n}(OneDReader));\nexport default ITFReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport OneDReader from './OneDReader';\nimport NotFoundException from '../NotFoundException';\nimport FormatException from '../FormatException';\n/**\n *

    Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.

    \n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar AbstractUPCEANReader = /** @class */ (function (_super) {\n __extends(AbstractUPCEANReader, _super);\n function AbstractUPCEANReader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.decodeRowStringBuffer = '';\n return _this;\n }\n // private final UPCEANExtensionSupport extensionReader;\n // private final EANManufacturerOrgSupport eanManSupport;\n /*\n protected UPCEANReader() {\n decodeRowStringBuffer = new StringBuilder(20);\n extensionReader = new UPCEANExtensionSupport();\n eanManSupport = new EANManufacturerOrgSupport();\n }\n */\n AbstractUPCEANReader.findStartGuardPattern = function (row) {\n var foundStart = false;\n var startRange;\n var nextStart = 0;\n var counters = Int32Array.from([0, 0, 0]);\n while (!foundStart) {\n counters = Int32Array.from([0, 0, 0]);\n startRange = AbstractUPCEANReader.findGuardPattern(row, nextStart, false, this.START_END_PATTERN, counters);\n var start = startRange[0];\n nextStart = startRange[1];\n var quietStart = start - (nextStart - start);\n if (quietStart >= 0) {\n foundStart = row.isRange(quietStart, start, false);\n }\n }\n return startRange;\n };\n AbstractUPCEANReader.checkChecksum = function (s) {\n return AbstractUPCEANReader.checkStandardUPCEANChecksum(s);\n };\n AbstractUPCEANReader.checkStandardUPCEANChecksum = function (s) {\n var length = s.length;\n if (length === 0)\n return false;\n var check = parseInt(s.charAt(length - 1), 10);\n return AbstractUPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n };\n AbstractUPCEANReader.getStandardUPCEANChecksum = function (s) {\n var length = s.length;\n var sum = 0;\n for (var i = length - 1; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n sum *= 3;\n for (var i = length - 2; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n return (1000 - sum) % 10;\n };\n AbstractUPCEANReader.decodeEnd = function (row, endStart) {\n return AbstractUPCEANReader.findGuardPattern(row, endStart, false, AbstractUPCEANReader.START_END_PATTERN, new Int32Array(AbstractUPCEANReader.START_END_PATTERN.length).fill(0));\n };\n /**\n * @throws NotFoundException\n */\n AbstractUPCEANReader.findGuardPatternWithoutCounters = function (row, rowOffset, whiteFirst, pattern) {\n return this.findGuardPattern(row, rowOffset, whiteFirst, pattern, new Int32Array(pattern.length));\n };\n /**\n * @param row row of black/white values to search\n * @param rowOffset position to start search\n * @param whiteFirst if true, indicates that the pattern specifies white/black/white/...\n * pixel counts, otherwise, it is interpreted as black/white/black/...\n * @param pattern pattern of counts of number of black and white pixels that are being\n * searched for as a pattern\n * @param counters array of counters, as long as pattern, to re-use\n * @return start/end horizontal offset of guard pattern, as an array of two ints\n * @throws NotFoundException if pattern is not found\n */\n AbstractUPCEANReader.findGuardPattern = function (row, rowOffset, whiteFirst, pattern, counters) {\n var width = row.getSize();\n rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset);\n var counterPosition = 0;\n var patternStart = rowOffset;\n var patternLength = pattern.length;\n var isWhite = whiteFirst;\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (OneDReader.patternMatchVariance(counters, pattern, AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE) < AbstractUPCEANReader.MAX_AVG_VARIANCE) {\n return Int32Array.from([patternStart, x]);\n }\n patternStart += counters[0] + counters[1];\n var slice = counters.slice(2, counters.length);\n for (var i = 0; i < counterPosition - 1; i++) {\n counters[i] = slice[i];\n }\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n };\n AbstractUPCEANReader.decodeDigit = function (row, counters, rowOffset, patterns) {\n this.recordPattern(row, rowOffset, counters);\n var bestVariance = this.MAX_AVG_VARIANCE;\n var bestMatch = -1;\n var max = patterns.length;\n for (var i = 0; i < max; i++) {\n var pattern = patterns[i];\n var variance = OneDReader.patternMatchVariance(counters, pattern, AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = i;\n }\n }\n if (bestMatch >= 0) {\n return bestMatch;\n }\n else {\n throw new NotFoundException();\n }\n };\n // These two values are critical for determining how permissive the decoding will be.\n // We've arrived at these values through a lot of trial and error. Setting them any higher\n // lets false positives creep in quickly.\n AbstractUPCEANReader.MAX_AVG_VARIANCE = 0.48;\n AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n /**\n * Start/end guard pattern.\n */\n AbstractUPCEANReader.START_END_PATTERN = Int32Array.from([1, 1, 1]);\n /**\n * Pattern marking the middle of a UPC/EAN pattern, separating the two halves.\n */\n AbstractUPCEANReader.MIDDLE_PATTERN = Int32Array.from([1, 1, 1, 1, 1]);\n /**\n * end guard pattern.\n */\n AbstractUPCEANReader.END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1]);\n /**\n * \"Odd\", or \"L\" patterns used to encode UPC/EAN digits.\n */\n AbstractUPCEANReader.L_PATTERNS = [\n Int32Array.from([3, 2, 1, 1]),\n Int32Array.from([2, 2, 2, 1]),\n Int32Array.from([2, 1, 2, 2]),\n Int32Array.from([1, 4, 1, 1]),\n Int32Array.from([1, 1, 3, 2]),\n Int32Array.from([1, 2, 3, 1]),\n Int32Array.from([1, 1, 1, 4]),\n Int32Array.from([1, 3, 1, 2]),\n Int32Array.from([1, 2, 1, 3]),\n Int32Array.from([3, 1, 1, 2]),\n ];\n return AbstractUPCEANReader;\n}(OneDReader));\nexport default AbstractUPCEANReader;\n","/*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\n// import UPCEANReader from './UPCEANReader';\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\nimport ResultMetadataType from '../ResultMetadataType';\nimport NotFoundException from '../NotFoundException';\n/**\n * @see UPCEANExtension2Support\n */\nvar UPCEANExtension5Support = /** @class */ (function () {\n function UPCEANExtension5Support() {\n this.CHECK_DIGIT_ENCODINGS = [0x18, 0x14, 0x12, 0x11, 0x0C, 0x06, 0x03, 0x0A, 0x09, 0x05];\n this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n this.decodeRowStringBuffer = '';\n }\n UPCEANExtension5Support.prototype.decodeRow = function (rowNumber, row, extensionStartRange) {\n var result = this.decodeRowStringBuffer;\n var end = this.decodeMiddle(row, extensionStartRange, result);\n var resultString = result.toString();\n var extensionData = UPCEANExtension5Support.parseExtensionString(resultString);\n var resultPoints = [\n new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n new ResultPoint(end, rowNumber)\n ];\n var extensionResult = new Result(resultString, null, 0, resultPoints, BarcodeFormat.UPC_EAN_EXTENSION, new Date().getTime());\n if (extensionData != null) {\n extensionResult.putAllMetadata(extensionData);\n }\n return extensionResult;\n };\n UPCEANExtension5Support.prototype.decodeMiddle = function (row, startRange, resultString) {\n var e_1, _a;\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var lgPatternFound = 0;\n for (var x = 0; x < 5 && rowOffset < end; x++) {\n var bestMatch = AbstractUPCEANReader.decodeDigit(row, counters, rowOffset, AbstractUPCEANReader.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n try {\n for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n rowOffset += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (4 - x);\n }\n if (x !== 4) {\n // Read off separator if not last\n rowOffset = row.getNextSet(rowOffset);\n rowOffset = row.getNextUnset(rowOffset);\n }\n }\n if (resultString.length !== 5) {\n throw new NotFoundException();\n }\n var checkDigit = this.determineCheckDigit(lgPatternFound);\n if (UPCEANExtension5Support.extensionChecksum(resultString.toString()) !== checkDigit) {\n throw new NotFoundException();\n }\n return rowOffset;\n };\n UPCEANExtension5Support.extensionChecksum = function (s) {\n var length = s.length;\n var sum = 0;\n for (var i = length - 2; i >= 0; i -= 2) {\n sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n }\n sum *= 3;\n for (var i = length - 1; i >= 0; i -= 2) {\n sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n }\n sum *= 3;\n return sum % 10;\n };\n UPCEANExtension5Support.prototype.determineCheckDigit = function (lgPatternFound) {\n for (var d = 0; d < 10; d++) {\n if (lgPatternFound === this.CHECK_DIGIT_ENCODINGS[d]) {\n return d;\n }\n }\n throw new NotFoundException();\n };\n UPCEANExtension5Support.parseExtensionString = function (raw) {\n if (raw.length !== 5) {\n return null;\n }\n var value = UPCEANExtension5Support.parseExtension5String(raw);\n if (value == null) {\n return null;\n }\n return new Map([[ResultMetadataType.SUGGESTED_PRICE, value]]);\n };\n UPCEANExtension5Support.parseExtension5String = function (raw) {\n var currency;\n switch (raw.charAt(0)) {\n case '0':\n currency = '£';\n break;\n case '5':\n currency = '$';\n break;\n case '9':\n // Reference: http://www.jollytech.com\n switch (raw) {\n case '90000':\n // No suggested retail price\n return null;\n case '99991':\n // Complementary\n return '0.00';\n case '99990':\n return 'Used';\n }\n // Otherwise... unknown currency?\n currency = '';\n break;\n default:\n currency = '';\n break;\n }\n var rawAmount = parseInt(raw.substring(1));\n var unitsString = (rawAmount / 100).toString();\n var hundredths = rawAmount % 100;\n var hundredthsString = hundredths < 10 ? '0' + hundredths : hundredths.toString(); // fixme\n return currency + unitsString + '.' + hundredthsString;\n };\n return UPCEANExtension5Support;\n}());\nexport default UPCEANExtension5Support;\n","/*\n * Copyright (C) 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\nimport ResultMetadataType from '../ResultMetadataType';\nimport NotFoundException from '../NotFoundException';\n/**\n * @see UPCEANExtension5Support\n */\nvar UPCEANExtension2Support = /** @class */ (function () {\n function UPCEANExtension2Support() {\n this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n this.decodeRowStringBuffer = '';\n }\n UPCEANExtension2Support.prototype.decodeRow = function (rowNumber, row, extensionStartRange) {\n var result = this.decodeRowStringBuffer;\n var end = this.decodeMiddle(row, extensionStartRange, result);\n var resultString = result.toString();\n var extensionData = UPCEANExtension2Support.parseExtensionString(resultString);\n var resultPoints = [\n new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n new ResultPoint(end, rowNumber)\n ];\n var extensionResult = new Result(resultString, null, 0, resultPoints, BarcodeFormat.UPC_EAN_EXTENSION, new Date().getTime());\n if (extensionData != null) {\n extensionResult.putAllMetadata(extensionData);\n }\n return extensionResult;\n };\n UPCEANExtension2Support.prototype.decodeMiddle = function (row, startRange, resultString) {\n var e_1, _a;\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var checkParity = 0;\n for (var x = 0; x < 2 && rowOffset < end; x++) {\n var bestMatch = AbstractUPCEANReader.decodeDigit(row, counters, rowOffset, AbstractUPCEANReader.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n try {\n for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n rowOffset += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (bestMatch >= 10) {\n checkParity |= 1 << (1 - x);\n }\n if (x !== 1) {\n // Read off separator if not last\n rowOffset = row.getNextSet(rowOffset);\n rowOffset = row.getNextUnset(rowOffset);\n }\n }\n if (resultString.length !== 2) {\n throw new NotFoundException();\n }\n if (parseInt(resultString.toString()) % 4 !== checkParity) {\n throw new NotFoundException();\n }\n return rowOffset;\n };\n UPCEANExtension2Support.parseExtensionString = function (raw) {\n if (raw.length !== 2) {\n return null;\n }\n return new Map([[ResultMetadataType.ISSUE_NUMBER, parseInt(raw)]]);\n };\n return UPCEANExtension2Support;\n}());\nexport default UPCEANExtension2Support;\n","/*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport UPCEANExtension5Support from './UPCEANExtension5Support';\nimport UPCEANExtension2Support from './UPCEANExtension2Support';\nvar UPCEANExtensionSupport = /** @class */ (function () {\n function UPCEANExtensionSupport() {\n }\n UPCEANExtensionSupport.decodeRow = function (rowNumber, row, rowOffset) {\n var extensionStartRange = AbstractUPCEANReader.findGuardPattern(row, rowOffset, false, this.EXTENSION_START_PATTERN, new Int32Array(this.EXTENSION_START_PATTERN.length).fill(0));\n try {\n // return null;\n var fiveSupport = new UPCEANExtension5Support();\n return fiveSupport.decodeRow(rowNumber, row, extensionStartRange);\n }\n catch (err) {\n // return null;\n var twoSupport = new UPCEANExtension2Support();\n return twoSupport.decodeRow(rowNumber, row, extensionStartRange);\n }\n };\n UPCEANExtensionSupport.EXTENSION_START_PATTERN = Int32Array.from([1, 1, 2]);\n return UPCEANExtensionSupport;\n}());\nexport default UPCEANExtensionSupport;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport Result from '../Result';\nimport ResultMetadataType from '../ResultMetadataType';\nimport ResultPoint from '../ResultPoint';\nimport UPCEANExtensionSupport from './UPCEANExtensionSupport';\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport NotFoundException from '../NotFoundException';\nimport FormatException from '../FormatException';\nimport ChecksumException from '../ChecksumException';\n/**\n *

    Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.

    \n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar UPCEANReader = /** @class */ (function (_super) {\n __extends(UPCEANReader, _super);\n function UPCEANReader() {\n var _this = _super.call(this) || this;\n _this.decodeRowStringBuffer = '';\n UPCEANReader.L_AND_G_PATTERNS = UPCEANReader.L_PATTERNS.map(function (arr) { return Int32Array.from(arr); });\n for (var i = 10; i < 20; i++) {\n var widths = UPCEANReader.L_PATTERNS[i - 10];\n var reversedWidths = new Int32Array(widths.length);\n for (var j = 0; j < widths.length; j++) {\n reversedWidths[j] = widths[widths.length - j - 1];\n }\n UPCEANReader.L_AND_G_PATTERNS[i] = reversedWidths;\n }\n return _this;\n }\n UPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n var startGuardRange = UPCEANReader.findStartGuardPattern(row);\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n var resultPoint_1 = new ResultPoint((startGuardRange[0] + startGuardRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_1);\n }\n var budello = this.decodeMiddle(row, startGuardRange, this.decodeRowStringBuffer);\n var endStart = budello.rowOffset;\n var result = budello.resultString;\n if (resultPointCallback != null) {\n var resultPoint_2 = new ResultPoint(endStart, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_2);\n }\n var endRange = UPCEANReader.decodeEnd(row, endStart);\n if (resultPointCallback != null) {\n var resultPoint_3 = new ResultPoint((endRange[0] + endRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_3);\n }\n // Make sure there is a quiet zone at least as big as the end pattern after the barcode. The\n // spec might want more whitespace, but in practice this is the maximum we can count on.\n var end = endRange[1];\n var quietEnd = end + (end - endRange[0]);\n if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) {\n throw new NotFoundException();\n }\n var resultString = result.toString();\n // UPC/EAN should never be less than 8 chars anyway\n if (resultString.length < 8) {\n throw new FormatException();\n }\n if (!UPCEANReader.checkChecksum(resultString)) {\n throw new ChecksumException();\n }\n var left = (startGuardRange[1] + startGuardRange[0]) / 2.0;\n var right = (endRange[1] + endRange[0]) / 2.0;\n var format = this.getBarcodeFormat();\n var resultPoint = [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)];\n var decodeResult = new Result(resultString, null, 0, resultPoint, format, new Date().getTime());\n var extensionLength = 0;\n try {\n var extensionResult = UPCEANExtensionSupport.decodeRow(rowNumber, row, endRange[1]);\n decodeResult.putMetadata(ResultMetadataType.UPC_EAN_EXTENSION, extensionResult.getText());\n decodeResult.putAllMetadata(extensionResult.getResultMetadata());\n decodeResult.addResultPoints(extensionResult.getResultPoints());\n extensionLength = extensionResult.getText().length;\n }\n catch (err) {\n }\n var allowedExtensions = hints == null ? null : hints.get(DecodeHintType.ALLOWED_EAN_EXTENSIONS);\n if (allowedExtensions != null) {\n var valid = false;\n for (var length_1 in allowedExtensions) {\n if (extensionLength.toString() === length_1) { // check me\n valid = true;\n break;\n }\n }\n if (!valid) {\n throw new NotFoundException();\n }\n }\n if (format === BarcodeFormat.EAN_13 || format === BarcodeFormat.UPC_A) {\n // let countryID = eanManSupport.lookupContryIdentifier(resultString); todo\n // if (countryID != null) {\n // decodeResult.putMetadata(ResultMetadataType.POSSIBLE_COUNTRY, countryID);\n // }\n }\n return decodeResult;\n };\n UPCEANReader.checkChecksum = function (s) {\n return UPCEANReader.checkStandardUPCEANChecksum(s);\n };\n UPCEANReader.checkStandardUPCEANChecksum = function (s) {\n var length = s.length;\n if (length === 0)\n return false;\n var check = parseInt(s.charAt(length - 1), 10);\n return UPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n };\n UPCEANReader.getStandardUPCEANChecksum = function (s) {\n var length = s.length;\n var sum = 0;\n for (var i = length - 1; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n sum *= 3;\n for (var i = length - 2; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n return (1000 - sum) % 10;\n };\n UPCEANReader.decodeEnd = function (row, endStart) {\n return UPCEANReader.findGuardPattern(row, endStart, false, UPCEANReader.START_END_PATTERN, new Int32Array(UPCEANReader.START_END_PATTERN.length).fill(0));\n };\n return UPCEANReader;\n}(AbstractUPCEANReader));\nexport default UPCEANReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport UPCEANReader from './UPCEANReader';\nimport NotFoundException from '../NotFoundException';\n/**\n *

    Implements decoding of the EAN-13 format.

    \n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar EAN13Reader = /** @class */ (function (_super) {\n __extends(EAN13Reader, _super);\n function EAN13Reader() {\n var _this = _super.call(this) || this;\n _this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n return _this;\n }\n EAN13Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n var e_1, _a, e_2, _b;\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var lgPatternFound = 0;\n for (var x = 0; x < 6 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n try {\n for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n rowOffset += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (5 - x);\n }\n }\n resultString = EAN13Reader.determineFirstDigit(resultString, lgPatternFound);\n var middleRange = UPCEANReader.findGuardPattern(row, rowOffset, true, UPCEANReader.MIDDLE_PATTERN, new Int32Array(UPCEANReader.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (var x = 0; x < 6 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n try {\n for (var counters_2 = (e_2 = void 0, __values(counters)), counters_2_1 = counters_2.next(); !counters_2_1.done; counters_2_1 = counters_2.next()) {\n var counter = counters_2_1.value;\n rowOffset += counter;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (counters_2_1 && !counters_2_1.done && (_b = counters_2.return)) _b.call(counters_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return { rowOffset: rowOffset, resultString: resultString };\n };\n EAN13Reader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat.EAN_13;\n };\n EAN13Reader.determineFirstDigit = function (resultString, lgPatternFound) {\n for (var d = 0; d < 10; d++) {\n if (lgPatternFound === this.FIRST_DIGIT_ENCODINGS[d]) {\n resultString = String.fromCharCode(('0'.charCodeAt(0) + d)) + resultString;\n return resultString;\n }\n }\n throw new NotFoundException();\n };\n EAN13Reader.FIRST_DIGIT_ENCODINGS = [0x00, 0x0B, 0x0D, 0xE, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A];\n return EAN13Reader;\n}(UPCEANReader));\nexport default EAN13Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport UPCEANReader from './UPCEANReader';\n/**\n *

    Implements decoding of the EAN-8 format.

    \n *\n * @author Sean Owen\n */\nvar EAN8Reader = /** @class */ (function (_super) {\n __extends(EAN8Reader, _super);\n function EAN8Reader() {\n var _this = _super.call(this) || this;\n _this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n return _this;\n }\n EAN8Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n var e_1, _a, e_2, _b;\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n for (var x = 0; x < 4 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n try {\n for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n rowOffset += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n var middleRange = UPCEANReader.findGuardPattern(row, rowOffset, true, UPCEANReader.MIDDLE_PATTERN, new Int32Array(UPCEANReader.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (var x = 0; x < 4 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n try {\n for (var counters_2 = (e_2 = void 0, __values(counters)), counters_2_1 = counters_2.next(); !counters_2_1.done; counters_2_1 = counters_2.next()) {\n var counter = counters_2_1.value;\n rowOffset += counter;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (counters_2_1 && !counters_2_1.done && (_b = counters_2.return)) _b.call(counters_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return { rowOffset: rowOffset, resultString: resultString };\n };\n EAN8Reader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat.EAN_8;\n };\n return EAN8Reader;\n}(UPCEANReader));\nexport default EAN8Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport Result from '../Result';\nimport NotFoundException from '../NotFoundException';\nimport EAN13Reader from './EAN13Reader';\nimport UPCEANReader from './UPCEANReader';\n/**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author sam2332 (Sam Rudloff)\n *\n * @source https://github.com/zxing/zxing/blob/3c96923276dd5785d58eb970b6ba3f80d36a9505/core/src/main/java/com/google/zxing/oned/UPCAReader.java\n *\n * @experimental\n */\nvar UPCAReader = /** @class */ (function (_super) {\n __extends(UPCAReader, _super);\n function UPCAReader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ean13Reader = new EAN13Reader();\n return _this;\n }\n // @Override\n UPCAReader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat.UPC_A;\n };\n // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n // @Override\n UPCAReader.prototype.decode = function (image, hints) {\n return this.maybeReturnResult(this.ean13Reader.decode(image));\n };\n // @Override\n UPCAReader.prototype.decodeRow = function (rowNumber, row, hints) {\n return this.maybeReturnResult(this.ean13Reader.decodeRow(rowNumber, row, hints));\n };\n // @Override\n UPCAReader.prototype.decodeMiddle = function (row, startRange, resultString) {\n return this.ean13Reader.decodeMiddle(row, startRange, resultString);\n };\n UPCAReader.prototype.maybeReturnResult = function (result) {\n var text = result.getText();\n if (text.charAt(0) === '0') {\n var upcaResult = new Result(text.substring(1), null, null, result.getResultPoints(), BarcodeFormat.UPC_A);\n if (result.getResultMetadata() != null) {\n upcaResult.putAllMetadata(result.getResultMetadata());\n }\n return upcaResult;\n }\n else {\n throw new NotFoundException();\n }\n };\n UPCAReader.prototype.reset = function () {\n this.ean13Reader.reset();\n };\n return UPCAReader;\n}(UPCEANReader));\nexport default UPCAReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport UPCEANReader from './UPCEANReader';\nimport StringBuilder from '../util/StringBuilder';\nimport NotFoundException from '../NotFoundException';\nimport BarcodeFormat from '../BarcodeFormat';\n// package com.google.zxing.oned;\n// import com.google.zxing.BarcodeFormat;\n// import com.google.zxing.FormatException;\n// import com.google.zxing.NotFoundException;\n// import com.google.zxing.common.BitArray;\n/**\n *

    Implements decoding of the UPC-E format.

    \n *

    This is a great reference for\n * UPC-E information.

    \n *\n * @author Sean Owen\n *\n * @source https://github.com/zxing/zxing/blob/3c96923276dd5785d58eb970b6ba3f80d36a9505/core/src/main/java/com/google/zxing/oned/UPCEReader.java\n *\n * @experimental\n */\nvar UPCEReader = /** @class */ (function (_super) {\n __extends(UPCEReader, _super);\n function UPCEReader() {\n var _this = _super.call(this) || this;\n _this.decodeMiddleCounters = new Int32Array(4);\n return _this;\n }\n /**\n * @throws NotFoundException\n */\n // @Override\n UPCEReader.prototype.decodeMiddle = function (row, startRange, result) {\n var e_1, _a;\n var counters = this.decodeMiddleCounters.map(function (x) { return x; });\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n var lgPatternFound = 0;\n for (var x = 0; x < 6 && rowOffset < end; x++) {\n var bestMatch = UPCEReader.decodeDigit(row, counters, rowOffset, UPCEReader.L_AND_G_PATTERNS);\n result += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n try {\n for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n rowOffset += counter;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (5 - x);\n }\n }\n UPCEReader.determineNumSysAndCheckDigit(new StringBuilder(result), lgPatternFound);\n return rowOffset;\n };\n /**\n * @throws NotFoundException\n */\n // @Override\n UPCEReader.prototype.decodeEnd = function (row, endStart) {\n return UPCEReader.findGuardPatternWithoutCounters(row, endStart, true, UPCEReader.MIDDLE_END_PATTERN);\n };\n /**\n * @throws FormatException\n */\n // @Override\n UPCEReader.prototype.checkChecksum = function (s) {\n return UPCEANReader.checkChecksum(UPCEReader.convertUPCEtoUPCA(s));\n };\n /**\n * @throws NotFoundException\n */\n UPCEReader.determineNumSysAndCheckDigit = function (resultString, lgPatternFound) {\n for (var numSys = 0; numSys <= 1; numSys++) {\n for (var d = 0; d < 10; d++) {\n if (lgPatternFound === this.NUMSYS_AND_CHECK_DIGIT_PATTERNS[numSys][d]) {\n resultString.insert(0, /*(char)*/ ('0' + numSys));\n resultString.append(/*(char)*/ ('0' + d));\n return;\n }\n }\n }\n throw NotFoundException.getNotFoundInstance();\n };\n // @Override\n UPCEReader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat.UPC_E;\n };\n /**\n * Expands a UPC-E value back into its full, equivalent UPC-A code value.\n *\n * @param upce UPC-E code as string of digits\n * @return equivalent UPC-A code as string of digits\n */\n UPCEReader.convertUPCEtoUPCA = function (upce) {\n // the following line is equivalent to upce.getChars(1, 7, upceChars, 0);\n var upceChars = upce.slice(1, 7).split('').map(function (x) { return x.charCodeAt(0); });\n var result = new StringBuilder( /*12*/);\n result.append(upce.charAt(0));\n var lastChar = upceChars[5];\n switch (lastChar) {\n case 0:\n case 1:\n case 2:\n result.appendChars(upceChars, 0, 2);\n result.append(lastChar);\n result.append('0000');\n result.appendChars(upceChars, 2, 3);\n break;\n case 3:\n result.appendChars(upceChars, 0, 3);\n result.append('00000');\n result.appendChars(upceChars, 3, 2);\n break;\n case 4:\n result.appendChars(upceChars, 0, 4);\n result.append('00000');\n result.append(upceChars[4]);\n break;\n default:\n result.appendChars(upceChars, 0, 5);\n result.append('0000');\n result.append(lastChar);\n break;\n }\n // Only append check digit in conversion if supplied\n if (upce.length >= 8) {\n result.append(upce.charAt(7));\n }\n return result.toString();\n };\n /**\n * The pattern that marks the middle, and end, of a UPC-E pattern.\n * There is no \"second half\" to a UPC-E barcode.\n */\n UPCEReader.MIDDLE_END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1]);\n // For an UPC-E barcode, the final digit is represented by the parities used\n // to encode the middle six digits, according to the table below.\n //\n // Parity of next 6 digits\n // Digit 0 1 2 3 4 5\n // 0 Even Even Even Odd Odd Odd\n // 1 Even Even Odd Even Odd Odd\n // 2 Even Even Odd Odd Even Odd\n // 3 Even Even Odd Odd Odd Even\n // 4 Even Odd Even Even Odd Odd\n // 5 Even Odd Odd Even Even Odd\n // 6 Even Odd Odd Odd Even Even\n // 7 Even Odd Even Odd Even Odd\n // 8 Even Odd Even Odd Odd Even\n // 9 Even Odd Odd Even Odd Even\n //\n // The encoding is represented by the following array, which is a bit pattern\n // using Odd = 0 and Even = 1. For example, 5 is represented by:\n //\n // Odd Even Even Odd Odd Even\n // in binary:\n // 0 1 1 0 0 1 == 0x19\n //\n /**\n * See {@link #L_AND_G_PATTERNS}; these values similarly represent patterns of\n * even-odd parity encodings of digits that imply both the number system (0 or 1)\n * used, and the check digit.\n */\n UPCEReader.NUMSYS_AND_CHECK_DIGIT_PATTERNS = [\n Int32Array.from([0x38, 0x34, 0x32, 0x31, 0x2C, 0x26, 0x23, 0x2A, 0x29, 0x25]),\n Int32Array.from([0x07, 0x0B, 0x0D, 0x0E, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1]),\n ];\n return UPCEReader;\n}(UPCEANReader));\nexport default UPCEReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport Result from '../Result';\nimport OneDReader from './OneDReader';\nimport EAN13Reader from './EAN13Reader';\nimport EAN8Reader from './EAN8Reader';\nimport UPCAReader from './UPCAReader';\nimport NotFoundException from '../NotFoundException';\nimport UPCEReader from './UPCEReader';\n/**\n *

    A reader that can read all available UPC/EAN formats. If a caller wants to try to\n * read all such formats, it is most efficient to use this implementation rather than invoke\n * individual readers.

    \n *\n * @author Sean Owen\n */\nvar MultiFormatUPCEANReader = /** @class */ (function (_super) {\n __extends(MultiFormatUPCEANReader, _super);\n function MultiFormatUPCEANReader(hints) {\n var _this = _super.call(this) || this;\n var possibleFormats = hints == null ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n var readers = [];\n if (possibleFormats != null) {\n if (possibleFormats.indexOf(BarcodeFormat.EAN_13) > -1) {\n readers.push(new EAN13Reader());\n }\n if (possibleFormats.indexOf(BarcodeFormat.UPC_A) > -1) {\n readers.push(new UPCAReader());\n }\n if (possibleFormats.indexOf(BarcodeFormat.EAN_8) > -1) {\n readers.push(new EAN8Reader());\n }\n if (possibleFormats.indexOf(BarcodeFormat.UPC_E) > -1) {\n readers.push(new UPCEReader());\n }\n }\n if (readers.length === 0) {\n readers.push(new EAN13Reader());\n readers.push(new UPCAReader());\n readers.push(new EAN8Reader());\n readers.push(new UPCEReader());\n }\n _this.readers = readers;\n return _this;\n }\n MultiFormatUPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n var e_1, _a;\n try {\n for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var reader = _c.value;\n try {\n // const result: Result = reader.decodeRow(rowNumber, row, startGuardPattern, hints);\n var result = reader.decodeRow(rowNumber, row, hints);\n // Special case: a 12-digit code encoded in UPC-A is identical to a \"0\"\n // followed by those 12 digits encoded as EAN-13. Each will recognize such a code,\n // UPC-A as a 12-digit string and EAN-13 as a 13-digit string starting with \"0\".\n // Individually these are correct and their readers will both read such a code\n // and correctly call it EAN-13, or UPC-A, respectively.\n //\n // In this case, if we've been looking for both types, we'd like to call it\n // a UPC-A code. But for efficiency we only run the EAN-13 decoder to also read\n // UPC-A. So we special case it here, and convert an EAN-13 result to a UPC-A\n // result if appropriate.\n //\n // But, don't return UPC-A if UPC-A was not a requested format!\n var ean13MayBeUPCA = result.getBarcodeFormat() === BarcodeFormat.EAN_13 &&\n result.getText().charAt(0) === '0';\n // @SuppressWarnings(\"unchecked\")\n var possibleFormats = hints == null ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n var canReturnUPCA = possibleFormats == null || possibleFormats.includes(BarcodeFormat.UPC_A);\n if (ean13MayBeUPCA && canReturnUPCA) {\n var rawBytes = result.getRawBytes();\n // Transfer the metadata across\n var resultUPCA = new Result(result.getText().substring(1), rawBytes, (rawBytes ? rawBytes.length : null), result.getResultPoints(), BarcodeFormat.UPC_A);\n resultUPCA.putAllMetadata(result.getResultMetadata());\n return resultUPCA;\n }\n return result;\n }\n catch (err) {\n // continue;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n throw new NotFoundException();\n };\n MultiFormatUPCEANReader.prototype.reset = function () {\n var e_2, _a;\n try {\n for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var reader = _c.value;\n reader.reset();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n return MultiFormatUPCEANReader;\n}(OneDReader));\nexport default MultiFormatUPCEANReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport NotFoundException from '../NotFoundException';\nimport OneDReader from './OneDReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\n/**\n *

    Decodes CodaBar barcodes.

    \n *\n * @author Evan @dodobelieve\n * @see CodaBarReader\n */\nvar CodaBarReader = /** @class */ (function (_super) {\n __extends(CodaBarReader, _super);\n function CodaBarReader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.CODA_BAR_CHAR_SET = {\n nnnnnww: '0',\n nnnnwwn: '1',\n nnnwnnw: '2',\n wwnnnnn: '3',\n nnwnnwn: '4',\n wnnnnwn: '5',\n nwnnnnw: '6',\n nwnnwnn: '7',\n nwwnnnn: '8',\n wnnwnnn: '9',\n nnnwwnn: '-',\n nnwwnnn: '$',\n wnnnwnw: ':',\n wnwnnnw: '/',\n wnwnwnn: '.',\n nnwwwww: '+',\n nnwwnwn: 'A',\n nwnwnnw: 'B',\n nnnwnww: 'C',\n nnnwwwn: 'D'\n };\n return _this;\n }\n CodaBarReader.prototype.decodeRow = function (rowNumber, row, hints) {\n var validRowData = this.getValidRowData(row);\n if (!validRowData)\n throw new NotFoundException();\n var retStr = this.codaBarDecodeRow(validRowData.row);\n if (!retStr)\n throw new NotFoundException();\n return new Result(retStr, null, 0, [new ResultPoint(validRowData.left, rowNumber), new ResultPoint(validRowData.right, rowNumber)], BarcodeFormat.CODABAR, new Date().getTime());\n };\n /**\n * converts bit array to valid data array(lengths of black bits and white bits)\n * @param row bit array to convert\n */\n CodaBarReader.prototype.getValidRowData = function (row) {\n var booleanArr = row.toArray();\n var startIndex = booleanArr.indexOf(true);\n if (startIndex === -1)\n return null;\n var lastIndex = booleanArr.lastIndexOf(true);\n if (lastIndex <= startIndex)\n return null;\n booleanArr = booleanArr.slice(startIndex, lastIndex + 1);\n var result = [];\n var lastBit = booleanArr[0];\n var bitLength = 1;\n for (var i = 1; i < booleanArr.length; i++) {\n if (booleanArr[i] === lastBit) {\n bitLength++;\n }\n else {\n lastBit = booleanArr[i];\n result.push(bitLength);\n bitLength = 1;\n }\n }\n result.push(bitLength);\n // CodaBar code data valid\n if (result.length < 23 && (result.length + 1) % 8 !== 0)\n return null;\n return { row: result, left: startIndex, right: lastIndex };\n };\n /**\n * decode codabar code\n * @param row row to cecode\n */\n CodaBarReader.prototype.codaBarDecodeRow = function (row) {\n var code = [];\n var barThreshold = Math.ceil(row.reduce(function (pre, item) { return (pre + item) / 2; }, 0));\n // Read one encoded character at a time.\n while (row.length > 0) {\n var seg = row.splice(0, 8).splice(0, 7);\n var key = seg.map(function (len) { return (len < barThreshold ? 'n' : 'w'); }).join('');\n if (this.CODA_BAR_CHAR_SET[key] === undefined)\n return null;\n code.push(this.CODA_BAR_CHAR_SET[key]);\n }\n var strCode = code.join('');\n if (this.validCodaBarString(strCode))\n return strCode;\n return null;\n };\n /**\n * check if the string is a CodaBar string\n * @param src string to determine\n */\n CodaBarReader.prototype.validCodaBarString = function (src) {\n var reg = /^[A-D].{1,}[A-D]$/;\n return reg.test(src);\n };\n return CodaBarReader;\n}(OneDReader));\nexport default CodaBarReader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport MathUtils from '../../common/detector/MathUtils';\nimport NotFoundException from '../../NotFoundException';\nimport OneDReader from '../OneDReader';\n// import Integer from '../../util/Integer';\n// import Float from '../../util/Float';\nvar AbstractRSSReader = /** @class */ (function (_super) {\n __extends(AbstractRSSReader, _super);\n function AbstractRSSReader() {\n var _this = _super.call(this) || this;\n _this.decodeFinderCounters = new Int32Array(4);\n _this.dataCharacterCounters = new Int32Array(8);\n _this.oddRoundingErrors = new Array(4);\n _this.evenRoundingErrors = new Array(4);\n _this.oddCounts = new Array(_this.dataCharacterCounters.length / 2);\n _this.evenCounts = new Array(_this.dataCharacterCounters.length / 2);\n return _this;\n }\n AbstractRSSReader.prototype.getDecodeFinderCounters = function () {\n return this.decodeFinderCounters;\n };\n AbstractRSSReader.prototype.getDataCharacterCounters = function () {\n return this.dataCharacterCounters;\n };\n AbstractRSSReader.prototype.getOddRoundingErrors = function () {\n return this.oddRoundingErrors;\n };\n AbstractRSSReader.prototype.getEvenRoundingErrors = function () {\n return this.evenRoundingErrors;\n };\n AbstractRSSReader.prototype.getOddCounts = function () {\n return this.oddCounts;\n };\n AbstractRSSReader.prototype.getEvenCounts = function () {\n return this.evenCounts;\n };\n AbstractRSSReader.prototype.parseFinderValue = function (counters, finderPatterns) {\n for (var value = 0; value < finderPatterns.length; value++) {\n if (OneDReader.patternMatchVariance(counters, finderPatterns[value], AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE) < AbstractRSSReader.MAX_AVG_VARIANCE) {\n return value;\n }\n }\n throw new NotFoundException();\n };\n /**\n * @param array values to sum\n * @return sum of values\n * @deprecated call {@link MathUtils#sum(int[])}\n */\n AbstractRSSReader.count = function (array) {\n return MathUtils.sum(new Int32Array(array));\n };\n AbstractRSSReader.increment = function (array, errors) {\n var index = 0;\n var biggestError = errors[0];\n for (var i = 1; i < array.length; i++) {\n if (errors[i] > biggestError) {\n biggestError = errors[i];\n index = i;\n }\n }\n array[index]++;\n };\n AbstractRSSReader.decrement = function (array, errors) {\n var index = 0;\n var biggestError = errors[0];\n for (var i = 1; i < array.length; i++) {\n if (errors[i] < biggestError) {\n biggestError = errors[i];\n index = i;\n }\n }\n array[index]--;\n };\n AbstractRSSReader.isFinderPattern = function (counters) {\n var e_1, _a;\n var firstTwoSum = counters[0] + counters[1];\n var sum = firstTwoSum + counters[2] + counters[3];\n var ratio = firstTwoSum / sum;\n if (ratio >= AbstractRSSReader.MIN_FINDER_PATTERN_RATIO && ratio <= AbstractRSSReader.MAX_FINDER_PATTERN_RATIO) {\n // passes ratio test in spec, but see if the counts are unreasonable\n var minCounter = Number.MAX_SAFE_INTEGER;\n var maxCounter = Number.MIN_SAFE_INTEGER;\n try {\n for (var counters_1 = __values(counters), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n var counter = counters_1_1.value;\n if (counter > maxCounter) {\n maxCounter = counter;\n }\n if (counter < minCounter) {\n minCounter = counter;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return maxCounter < 10 * minCounter;\n }\n return false;\n };\n AbstractRSSReader.MAX_AVG_VARIANCE = 0.2;\n AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE = 0.45;\n AbstractRSSReader.MIN_FINDER_PATTERN_RATIO = 9.5 / 12.0;\n AbstractRSSReader.MAX_FINDER_PATTERN_RATIO = 12.5 / 14.0;\n return AbstractRSSReader;\n}(OneDReader));\nexport default AbstractRSSReader;\n","var DataCharacter = /** @class */ (function () {\n function DataCharacter(value, checksumPortion) {\n this.value = value;\n this.checksumPortion = checksumPortion;\n }\n DataCharacter.prototype.getValue = function () {\n return this.value;\n };\n DataCharacter.prototype.getChecksumPortion = function () {\n return this.checksumPortion;\n };\n DataCharacter.prototype.toString = function () {\n return this.value + '(' + this.checksumPortion + ')';\n };\n DataCharacter.prototype.equals = function (o) {\n if (!(o instanceof DataCharacter)) {\n return false;\n }\n var that = o;\n return this.value === that.value && this.checksumPortion === that.checksumPortion;\n };\n DataCharacter.prototype.hashCode = function () {\n return this.value ^ this.checksumPortion;\n };\n return DataCharacter;\n}());\nexport default DataCharacter;\n","import ResultPoint from '../../ResultPoint';\nvar FinderPattern = /** @class */ (function () {\n function FinderPattern(value, startEnd, start, end, rowNumber) {\n this.value = value;\n this.startEnd = startEnd;\n this.value = value;\n this.startEnd = startEnd;\n this.resultPoints = new Array();\n this.resultPoints.push(new ResultPoint(start, rowNumber));\n this.resultPoints.push(new ResultPoint(end, rowNumber));\n }\n FinderPattern.prototype.getValue = function () {\n return this.value;\n };\n FinderPattern.prototype.getStartEnd = function () {\n return this.startEnd;\n };\n FinderPattern.prototype.getResultPoints = function () {\n return this.resultPoints;\n };\n FinderPattern.prototype.equals = function (o) {\n if (!(o instanceof FinderPattern)) {\n return false;\n }\n var that = o;\n return this.value === that.value;\n };\n FinderPattern.prototype.hashCode = function () {\n return this.value;\n };\n return FinderPattern;\n}());\nexport default FinderPattern;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * RSS util functions.\n */\nvar RSSUtils = /** @class */ (function () {\n function RSSUtils() {\n }\n RSSUtils.getRSSvalue = function (widths, maxWidth, noNarrow) {\n var e_1, _a;\n var n = 0;\n try {\n for (var widths_1 = __values(widths), widths_1_1 = widths_1.next(); !widths_1_1.done; widths_1_1 = widths_1.next()) {\n var width = widths_1_1.value;\n n += width;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (widths_1_1 && !widths_1_1.done && (_a = widths_1.return)) _a.call(widths_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var val = 0;\n var narrowMask = 0;\n var elements = widths.length;\n for (var bar = 0; bar < elements - 1; bar++) {\n var elmWidth = void 0;\n for (elmWidth = 1, narrowMask |= 1 << bar; elmWidth < widths[bar]; elmWidth++, narrowMask &= ~(1 << bar)) {\n var subVal = RSSUtils.combins(n - elmWidth - 1, elements - bar - 2);\n if (noNarrow && (narrowMask === 0) && (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) {\n subVal -= RSSUtils.combins(n - elmWidth - (elements - bar), elements - bar - 2);\n }\n if (elements - bar - 1 > 1) {\n var lessVal = 0;\n for (var mxwElement = n - elmWidth - (elements - bar - 2); mxwElement > maxWidth; mxwElement--) {\n lessVal += RSSUtils.combins(n - elmWidth - mxwElement - 1, elements - bar - 3);\n }\n subVal -= lessVal * (elements - 1 - bar);\n }\n else if (n - elmWidth > maxWidth) {\n subVal--;\n }\n val += subVal;\n }\n n -= elmWidth;\n }\n return val;\n };\n RSSUtils.combins = function (n, r) {\n var maxDenom;\n var minDenom;\n if (n - r > r) {\n minDenom = r;\n maxDenom = n - r;\n }\n else {\n minDenom = n - r;\n maxDenom = r;\n }\n var val = 1;\n var j = 1;\n for (var i = n; i > maxDenom; i--) {\n val *= i;\n if (j <= minDenom) {\n val /= j;\n j++;\n }\n }\n while ((j <= minDenom)) {\n val /= j;\n j++;\n }\n return val;\n };\n return RSSUtils;\n}());\nexport default RSSUtils;\n","import BitArray from '../../../common/BitArray';\nvar BitArrayBuilder = /** @class */ (function () {\n function BitArrayBuilder() {\n }\n BitArrayBuilder.buildBitArray = function (pairs) {\n var charNumber = pairs.length * 2 - 1;\n if (pairs[pairs.length - 1].getRightChar() == null) {\n charNumber -= 1;\n }\n var size = 12 * charNumber;\n var binary = new BitArray(size);\n var accPos = 0;\n var firstPair = pairs[0];\n var firstValue = firstPair.getRightChar().getValue();\n for (var i = 11; i >= 0; --i) {\n if ((firstValue & (1 << i)) !== 0) {\n binary.set(accPos);\n }\n accPos++;\n }\n for (var i = 1; i < pairs.length; ++i) {\n var currentPair = pairs[i];\n var leftValue = currentPair.getLeftChar().getValue();\n for (var j = 11; j >= 0; --j) {\n if ((leftValue & (1 << j)) !== 0) {\n binary.set(accPos);\n }\n accPos++;\n }\n if (currentPair.getRightChar() !== null) {\n var rightValue = currentPair.getRightChar().getValue();\n for (var j = 11; j >= 0; --j) {\n if ((rightValue & (1 << j)) !== 0) {\n binary.set(accPos);\n }\n accPos++;\n }\n }\n }\n return binary;\n };\n return BitArrayBuilder;\n}());\nexport default BitArrayBuilder;\n","var BlockParsedResult = /** @class */ (function () {\n function BlockParsedResult(finished, decodedInformation) {\n if (decodedInformation) {\n this.decodedInformation = null;\n }\n else {\n this.finished = finished;\n this.decodedInformation = decodedInformation;\n }\n }\n BlockParsedResult.prototype.getDecodedInformation = function () {\n return this.decodedInformation;\n };\n BlockParsedResult.prototype.isFinished = function () {\n return this.finished;\n };\n return BlockParsedResult;\n}());\nexport default BlockParsedResult;\n","var DecodedObject = /** @class */ (function () {\n function DecodedObject(newPosition) {\n this.newPosition = newPosition;\n }\n DecodedObject.prototype.getNewPosition = function () {\n return this.newPosition;\n };\n return DecodedObject;\n}());\nexport default DecodedObject;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport DecodedObject from './DecodedObject';\nvar DecodedChar = /** @class */ (function (_super) {\n __extends(DecodedChar, _super);\n function DecodedChar(newPosition, value) {\n var _this = _super.call(this, newPosition) || this;\n _this.value = value;\n return _this;\n }\n DecodedChar.prototype.getValue = function () {\n return this.value;\n };\n DecodedChar.prototype.isFNC1 = function () {\n return this.value === DecodedChar.FNC1;\n };\n DecodedChar.FNC1 = '$';\n return DecodedChar;\n}(DecodedObject));\nexport default DecodedChar;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport DecodedObject from './DecodedObject';\nvar DecodedInformation = /** @class */ (function (_super) {\n __extends(DecodedInformation, _super);\n function DecodedInformation(newPosition, newString, remainingValue) {\n var _this = _super.call(this, newPosition) || this;\n if (remainingValue) {\n _this.remaining = true;\n _this.remainingValue = _this.remainingValue;\n }\n else {\n _this.remaining = false;\n _this.remainingValue = 0;\n }\n _this.newString = newString;\n return _this;\n }\n DecodedInformation.prototype.getNewString = function () {\n return this.newString;\n };\n DecodedInformation.prototype.isRemaining = function () {\n return this.remaining;\n };\n DecodedInformation.prototype.getRemainingValue = function () {\n return this.remainingValue;\n };\n return DecodedInformation;\n}(DecodedObject));\nexport default DecodedInformation;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport FormatException from '../../../../FormatException';\nimport DecodedObject from './DecodedObject';\nvar DecodedNumeric = /** @class */ (function (_super) {\n __extends(DecodedNumeric, _super);\n function DecodedNumeric(newPosition, firstDigit, secondDigit) {\n var _this = _super.call(this, newPosition) || this;\n if (firstDigit < 0 || firstDigit > 10 || secondDigit < 0 || secondDigit > 10) {\n throw new FormatException();\n }\n _this.firstDigit = firstDigit;\n _this.secondDigit = secondDigit;\n return _this;\n }\n DecodedNumeric.prototype.getFirstDigit = function () {\n return this.firstDigit;\n };\n DecodedNumeric.prototype.getSecondDigit = function () {\n return this.secondDigit;\n };\n DecodedNumeric.prototype.getValue = function () {\n return this.firstDigit * 10 + this.secondDigit;\n };\n DecodedNumeric.prototype.isFirstDigitFNC1 = function () {\n return this.firstDigit === DecodedNumeric.FNC1;\n };\n DecodedNumeric.prototype.isSecondDigitFNC1 = function () {\n return this.secondDigit === DecodedNumeric.FNC1;\n };\n DecodedNumeric.prototype.isAnyFNC1 = function () {\n return this.firstDigit === DecodedNumeric.FNC1 || this.secondDigit === DecodedNumeric.FNC1;\n };\n DecodedNumeric.FNC1 = 10;\n return DecodedNumeric;\n}(DecodedObject));\nexport default DecodedNumeric;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport NotFoundException from '../../../../NotFoundException';\nvar FieldParser = /** @class */ (function () {\n function FieldParser() {\n }\n FieldParser.parseFieldsInGeneralPurpose = function (rawInformation) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n if (!rawInformation) {\n return null;\n }\n // Processing 2-digit AIs\n if (rawInformation.length < 2) {\n throw new NotFoundException();\n }\n var firstTwoDigits = rawInformation.substring(0, 2);\n try {\n for (var _e = __values(FieldParser.TWO_DIGIT_DATA_LENGTH), _f = _e.next(); !_f.done; _f = _e.next()) {\n var dataLength = _f.value;\n if (dataLength[0] === firstTwoDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(2, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(2, dataLength[1], rawInformation);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (rawInformation.length < 3) {\n throw new NotFoundException();\n }\n var firstThreeDigits = rawInformation.substring(0, 3);\n try {\n for (var _g = __values(FieldParser.THREE_DIGIT_DATA_LENGTH), _h = _g.next(); !_h.done; _h = _g.next()) {\n var dataLength = _h.value;\n if (dataLength[0] === firstThreeDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(3, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(3, dataLength[1], rawInformation);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n for (var _j = __values(FieldParser.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH), _k = _j.next(); !_k.done; _k = _j.next()) {\n var dataLength = _k.value;\n if (dataLength[0] === firstThreeDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(4, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(4, dataLength[1], rawInformation);\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_k && !_k.done && (_c = _j.return)) _c.call(_j);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (rawInformation.length < 4) {\n throw new NotFoundException();\n }\n var firstFourDigits = rawInformation.substring(0, 4);\n try {\n for (var _l = __values(FieldParser.FOUR_DIGIT_DATA_LENGTH), _m = _l.next(); !_m.done; _m = _l.next()) {\n var dataLength = _m.value;\n if (dataLength[0] === firstFourDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(4, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(4, dataLength[1], rawInformation);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n }\n finally { if (e_4) throw e_4.error; }\n }\n throw new NotFoundException();\n };\n FieldParser.processFixedAI = function (aiSize, fieldSize, rawInformation) {\n if (rawInformation.length < aiSize) {\n throw new NotFoundException();\n }\n var ai = rawInformation.substring(0, aiSize);\n if (rawInformation.length < aiSize + fieldSize) {\n throw new NotFoundException();\n }\n var field = rawInformation.substring(aiSize, aiSize + fieldSize);\n var remaining = rawInformation.substring(aiSize + fieldSize);\n var result = '(' + ai + ')' + field;\n var parsedAI = FieldParser.parseFieldsInGeneralPurpose(remaining);\n return parsedAI == null ? result : result + parsedAI;\n };\n FieldParser.processVariableAI = function (aiSize, variableFieldSize, rawInformation) {\n var ai = rawInformation.substring(0, aiSize);\n var maxSize;\n if (rawInformation.length < aiSize + variableFieldSize) {\n maxSize = rawInformation.length;\n }\n else {\n maxSize = aiSize + variableFieldSize;\n }\n var field = rawInformation.substring(aiSize, maxSize);\n var remaining = rawInformation.substring(maxSize);\n var result = '(' + ai + ')' + field;\n var parsedAI = FieldParser.parseFieldsInGeneralPurpose(remaining);\n return parsedAI == null ? result : result + parsedAI;\n };\n FieldParser.VARIABLE_LENGTH = [];\n FieldParser.TWO_DIGIT_DATA_LENGTH = [\n ['00', 18],\n ['01', 14],\n ['02', 14],\n ['10', FieldParser.VARIABLE_LENGTH, 20],\n ['11', 6],\n ['12', 6],\n ['13', 6],\n ['15', 6],\n ['17', 6],\n ['20', 2],\n ['21', FieldParser.VARIABLE_LENGTH, 20],\n ['22', FieldParser.VARIABLE_LENGTH, 29],\n ['30', FieldParser.VARIABLE_LENGTH, 8],\n ['37', FieldParser.VARIABLE_LENGTH, 8],\n // internal company codes\n ['90', FieldParser.VARIABLE_LENGTH, 30],\n ['91', FieldParser.VARIABLE_LENGTH, 30],\n ['92', FieldParser.VARIABLE_LENGTH, 30],\n ['93', FieldParser.VARIABLE_LENGTH, 30],\n ['94', FieldParser.VARIABLE_LENGTH, 30],\n ['95', FieldParser.VARIABLE_LENGTH, 30],\n ['96', FieldParser.VARIABLE_LENGTH, 30],\n ['97', FieldParser.VARIABLE_LENGTH, 3],\n ['98', FieldParser.VARIABLE_LENGTH, 30],\n ['99', FieldParser.VARIABLE_LENGTH, 30],\n ];\n FieldParser.THREE_DIGIT_DATA_LENGTH = [\n // Same format as above\n ['240', FieldParser.VARIABLE_LENGTH, 30],\n ['241', FieldParser.VARIABLE_LENGTH, 30],\n ['242', FieldParser.VARIABLE_LENGTH, 6],\n ['250', FieldParser.VARIABLE_LENGTH, 30],\n ['251', FieldParser.VARIABLE_LENGTH, 30],\n ['253', FieldParser.VARIABLE_LENGTH, 17],\n ['254', FieldParser.VARIABLE_LENGTH, 20],\n ['400', FieldParser.VARIABLE_LENGTH, 30],\n ['401', FieldParser.VARIABLE_LENGTH, 30],\n ['402', 17],\n ['403', FieldParser.VARIABLE_LENGTH, 30],\n ['410', 13],\n ['411', 13],\n ['412', 13],\n ['413', 13],\n ['414', 13],\n ['420', FieldParser.VARIABLE_LENGTH, 20],\n ['421', FieldParser.VARIABLE_LENGTH, 15],\n ['422', 3],\n ['423', FieldParser.VARIABLE_LENGTH, 15],\n ['424', 3],\n ['425', 3],\n ['426', 3],\n ];\n FieldParser.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH = [\n // Same format as above\n ['310', 6],\n ['311', 6],\n ['312', 6],\n ['313', 6],\n ['314', 6],\n ['315', 6],\n ['316', 6],\n ['320', 6],\n ['321', 6],\n ['322', 6],\n ['323', 6],\n ['324', 6],\n ['325', 6],\n ['326', 6],\n ['327', 6],\n ['328', 6],\n ['329', 6],\n ['330', 6],\n ['331', 6],\n ['332', 6],\n ['333', 6],\n ['334', 6],\n ['335', 6],\n ['336', 6],\n ['340', 6],\n ['341', 6],\n ['342', 6],\n ['343', 6],\n ['344', 6],\n ['345', 6],\n ['346', 6],\n ['347', 6],\n ['348', 6],\n ['349', 6],\n ['350', 6],\n ['351', 6],\n ['352', 6],\n ['353', 6],\n ['354', 6],\n ['355', 6],\n ['356', 6],\n ['357', 6],\n ['360', 6],\n ['361', 6],\n ['362', 6],\n ['363', 6],\n ['364', 6],\n ['365', 6],\n ['366', 6],\n ['367', 6],\n ['368', 6],\n ['369', 6],\n ['390', FieldParser.VARIABLE_LENGTH, 15],\n ['391', FieldParser.VARIABLE_LENGTH, 18],\n ['392', FieldParser.VARIABLE_LENGTH, 15],\n ['393', FieldParser.VARIABLE_LENGTH, 18],\n ['703', FieldParser.VARIABLE_LENGTH, 30],\n ];\n FieldParser.FOUR_DIGIT_DATA_LENGTH = [\n // Same format as above\n ['7001', 13],\n ['7002', FieldParser.VARIABLE_LENGTH, 30],\n ['7003', 10],\n ['8001', 14],\n ['8002', FieldParser.VARIABLE_LENGTH, 20],\n ['8003', FieldParser.VARIABLE_LENGTH, 30],\n ['8004', FieldParser.VARIABLE_LENGTH, 30],\n ['8005', 6],\n ['8006', 18],\n ['8007', FieldParser.VARIABLE_LENGTH, 30],\n ['8008', FieldParser.VARIABLE_LENGTH, 12],\n ['8018', 18],\n ['8020', FieldParser.VARIABLE_LENGTH, 25],\n ['8100', 6],\n ['8101', 10],\n ['8102', 2],\n ['8110', FieldParser.VARIABLE_LENGTH, 70],\n ['8200', FieldParser.VARIABLE_LENGTH, 70],\n ];\n return FieldParser;\n}());\nexport default FieldParser;\n","import FormatException from '../../../../FormatException';\nimport IllegalStateException from '../../../../IllegalStateException';\nimport StringBuilder from '../../../../util/StringBuilder';\nimport BlockParsedResult from './BlockParsedResult';\nimport DecodedChar from './DecodedChar';\nimport DecodedInformation from './DecodedInformation';\nimport DecodedNumeric from './DecodedNumeric';\nimport FieldParser from './FieldParser';\nvar GeneralAppIdDecoder = /** @class */ (function () {\n function GeneralAppIdDecoder(information) {\n this.buffer = new StringBuilder();\n this.information = information;\n }\n GeneralAppIdDecoder.prototype.decodeAllCodes = function (buff, initialPosition) {\n var currentPosition = initialPosition;\n var remaining = null;\n do {\n var info = this.decodeGeneralPurposeField(currentPosition, remaining);\n var parsedFields = FieldParser.parseFieldsInGeneralPurpose(info.getNewString());\n if (parsedFields != null) {\n buff.append(parsedFields);\n }\n if (info.isRemaining()) {\n remaining = '' + info.getRemainingValue();\n }\n else {\n remaining = null;\n }\n if (currentPosition === info.getNewPosition()) { // No step forward!\n break;\n }\n currentPosition = info.getNewPosition();\n } while (true);\n return buff.toString();\n };\n GeneralAppIdDecoder.prototype.isStillNumeric = function (pos) {\n // It's numeric if it still has 7 positions\n // and one of the first 4 bits is \"1\".\n if (pos + 7 > this.information.getSize()) {\n return pos + 4 <= this.information.getSize();\n }\n for (var i = pos; i < pos + 3; ++i) {\n if (this.information.get(i)) {\n return true;\n }\n }\n return this.information.get(pos + 3);\n };\n GeneralAppIdDecoder.prototype.decodeNumeric = function (pos) {\n if (pos + 7 > this.information.getSize()) {\n var numeric_1 = this.extractNumericValueFromBitArray(pos, 4);\n if (numeric_1 === 0) {\n return new DecodedNumeric(this.information.getSize(), DecodedNumeric.FNC1, DecodedNumeric.FNC1);\n }\n return new DecodedNumeric(this.information.getSize(), numeric_1 - 1, DecodedNumeric.FNC1);\n }\n var numeric = this.extractNumericValueFromBitArray(pos, 7);\n var digit1 = (numeric - 8) / 11;\n var digit2 = (numeric - 8) % 11;\n return new DecodedNumeric(pos + 7, digit1, digit2);\n };\n GeneralAppIdDecoder.prototype.extractNumericValueFromBitArray = function (pos, bits) {\n return GeneralAppIdDecoder.extractNumericValueFromBitArray(this.information, pos, bits);\n };\n GeneralAppIdDecoder.extractNumericValueFromBitArray = function (information, pos, bits) {\n var value = 0;\n for (var i = 0; i < bits; ++i) {\n if (information.get(pos + i)) {\n value |= 1 << (bits - i - 1);\n }\n }\n return value;\n };\n GeneralAppIdDecoder.prototype.decodeGeneralPurposeField = function (pos, remaining) {\n // this.buffer.setLength(0);\n this.buffer.setLengthToZero();\n if (remaining != null) {\n this.buffer.append(remaining);\n }\n this.current.setPosition(pos);\n var lastDecoded = this.parseBlocks();\n if (lastDecoded != null && lastDecoded.isRemaining()) {\n return new DecodedInformation(this.current.getPosition(), this.buffer.toString(), lastDecoded.getRemainingValue());\n }\n return new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n };\n GeneralAppIdDecoder.prototype.parseBlocks = function () {\n var isFinished;\n var result;\n do {\n var initialPosition = this.current.getPosition();\n if (this.current.isAlpha()) {\n result = this.parseAlphaBlock();\n isFinished = result.isFinished();\n }\n else if (this.current.isIsoIec646()) {\n result = this.parseIsoIec646Block();\n isFinished = result.isFinished();\n }\n else { // it must be numeric\n result = this.parseNumericBlock();\n isFinished = result.isFinished();\n }\n var positionChanged = initialPosition !== this.current.getPosition();\n if (!positionChanged && !isFinished) {\n break;\n }\n } while (!isFinished);\n return result.getDecodedInformation();\n };\n GeneralAppIdDecoder.prototype.parseNumericBlock = function () {\n while (this.isStillNumeric(this.current.getPosition())) {\n var numeric = this.decodeNumeric(this.current.getPosition());\n this.current.setPosition(numeric.getNewPosition());\n if (numeric.isFirstDigitFNC1()) {\n var information = void 0;\n if (numeric.isSecondDigitFNC1()) {\n information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n }\n else {\n information = new DecodedInformation(this.current.getPosition(), this.buffer.toString(), numeric.getSecondDigit());\n }\n return new BlockParsedResult(true, information);\n }\n this.buffer.append(numeric.getFirstDigit());\n if (numeric.isSecondDigitFNC1()) {\n var information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n return new BlockParsedResult(true, information);\n }\n this.buffer.append(numeric.getSecondDigit());\n }\n if (this.isNumericToAlphaNumericLatch(this.current.getPosition())) {\n this.current.setAlpha();\n this.current.incrementPosition(4);\n }\n return new BlockParsedResult(false);\n };\n GeneralAppIdDecoder.prototype.parseIsoIec646Block = function () {\n while (this.isStillIsoIec646(this.current.getPosition())) {\n var iso = this.decodeIsoIec646(this.current.getPosition());\n this.current.setPosition(iso.getNewPosition());\n if (iso.isFNC1()) {\n var information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n return new BlockParsedResult(true, information);\n }\n this.buffer.append(iso.getValue());\n }\n if (this.isAlphaOr646ToNumericLatch(this.current.getPosition())) {\n this.current.incrementPosition(3);\n this.current.setNumeric();\n }\n else if (this.isAlphaTo646ToAlphaLatch(this.current.getPosition())) {\n if (this.current.getPosition() + 5 < this.information.getSize()) {\n this.current.incrementPosition(5);\n }\n else {\n this.current.setPosition(this.information.getSize());\n }\n this.current.setAlpha();\n }\n return new BlockParsedResult(false);\n };\n GeneralAppIdDecoder.prototype.parseAlphaBlock = function () {\n while (this.isStillAlpha(this.current.getPosition())) {\n var alpha = this.decodeAlphanumeric(this.current.getPosition());\n this.current.setPosition(alpha.getNewPosition());\n if (alpha.isFNC1()) {\n var information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n return new BlockParsedResult(true, information); // end of the char block\n }\n this.buffer.append(alpha.getValue());\n }\n if (this.isAlphaOr646ToNumericLatch(this.current.getPosition())) {\n this.current.incrementPosition(3);\n this.current.setNumeric();\n }\n else if (this.isAlphaTo646ToAlphaLatch(this.current.getPosition())) {\n if (this.current.getPosition() + 5 < this.information.getSize()) {\n this.current.incrementPosition(5);\n }\n else {\n this.current.setPosition(this.information.getSize());\n }\n this.current.setIsoIec646();\n }\n return new BlockParsedResult(false);\n };\n GeneralAppIdDecoder.prototype.isStillIsoIec646 = function (pos) {\n if (pos + 5 > this.information.getSize()) {\n return false;\n }\n var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue >= 5 && fiveBitValue < 16) {\n return true;\n }\n if (pos + 7 > this.information.getSize()) {\n return false;\n }\n var sevenBitValue = this.extractNumericValueFromBitArray(pos, 7);\n if (sevenBitValue >= 64 && sevenBitValue < 116) {\n return true;\n }\n if (pos + 8 > this.information.getSize()) {\n return false;\n }\n var eightBitValue = this.extractNumericValueFromBitArray(pos, 8);\n return eightBitValue >= 232 && eightBitValue < 253;\n };\n GeneralAppIdDecoder.prototype.decodeIsoIec646 = function (pos) {\n var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue === 15) {\n return new DecodedChar(pos + 5, DecodedChar.FNC1);\n }\n if (fiveBitValue >= 5 && fiveBitValue < 15) {\n return new DecodedChar(pos + 5, ('0' + (fiveBitValue - 5)));\n }\n var sevenBitValue = this.extractNumericValueFromBitArray(pos, 7);\n if (sevenBitValue >= 64 && sevenBitValue < 90) {\n return new DecodedChar(pos + 7, ('' + (sevenBitValue + 1)));\n }\n if (sevenBitValue >= 90 && sevenBitValue < 116) {\n return new DecodedChar(pos + 7, ('' + (sevenBitValue + 7)));\n }\n var eightBitValue = this.extractNumericValueFromBitArray(pos, 8);\n var c;\n switch (eightBitValue) {\n case 232:\n c = '!';\n break;\n case 233:\n c = '\"';\n break;\n case 234:\n c = '%';\n break;\n case 235:\n c = '&';\n break;\n case 236:\n c = '\\'';\n break;\n case 237:\n c = '(';\n break;\n case 238:\n c = ')';\n break;\n case 239:\n c = '*';\n break;\n case 240:\n c = '+';\n break;\n case 241:\n c = ',';\n break;\n case 242:\n c = '-';\n break;\n case 243:\n c = '.';\n break;\n case 244:\n c = '/';\n break;\n case 245:\n c = ':';\n break;\n case 246:\n c = ';';\n break;\n case 247:\n c = '<';\n break;\n case 248:\n c = '=';\n break;\n case 249:\n c = '>';\n break;\n case 250:\n c = '?';\n break;\n case 251:\n c = '_';\n break;\n case 252:\n c = ' ';\n break;\n default:\n throw new FormatException();\n }\n return new DecodedChar(pos + 8, c);\n };\n GeneralAppIdDecoder.prototype.isStillAlpha = function (pos) {\n if (pos + 5 > this.information.getSize()) {\n return false;\n }\n // We now check if it's a valid 5-bit value (0..9 and FNC1)\n var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue >= 5 && fiveBitValue < 16) {\n return true;\n }\n if (pos + 6 > this.information.getSize()) {\n return false;\n }\n var sixBitValue = this.extractNumericValueFromBitArray(pos, 6);\n return sixBitValue >= 16 && sixBitValue < 63; // 63 not included\n };\n GeneralAppIdDecoder.prototype.decodeAlphanumeric = function (pos) {\n var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue === 15) {\n return new DecodedChar(pos + 5, DecodedChar.FNC1);\n }\n if (fiveBitValue >= 5 && fiveBitValue < 15) {\n return new DecodedChar(pos + 5, ('0' + (fiveBitValue - 5)));\n }\n var sixBitValue = this.extractNumericValueFromBitArray(pos, 6);\n if (sixBitValue >= 32 && sixBitValue < 58) {\n return new DecodedChar(pos + 6, ('' + (sixBitValue + 33)));\n }\n var c;\n switch (sixBitValue) {\n case 58:\n c = '*';\n break;\n case 59:\n c = ',';\n break;\n case 60:\n c = '-';\n break;\n case 61:\n c = '.';\n break;\n case 62:\n c = '/';\n break;\n default:\n throw new IllegalStateException('Decoding invalid alphanumeric value: ' + sixBitValue);\n }\n return new DecodedChar(pos + 6, c);\n };\n GeneralAppIdDecoder.prototype.isAlphaTo646ToAlphaLatch = function (pos) {\n if (pos + 1 > this.information.getSize()) {\n return false;\n }\n for (var i = 0; i < 5 && i + pos < this.information.getSize(); ++i) {\n if (i === 2) {\n if (!this.information.get(pos + 2)) {\n return false;\n }\n }\n else if (this.information.get(pos + i)) {\n return false;\n }\n }\n return true;\n };\n GeneralAppIdDecoder.prototype.isAlphaOr646ToNumericLatch = function (pos) {\n // Next is alphanumeric if there are 3 positions and they are all zeros\n if (pos + 3 > this.information.getSize()) {\n return false;\n }\n for (var i = pos; i < pos + 3; ++i) {\n if (this.information.get(i)) {\n return false;\n }\n }\n return true;\n };\n GeneralAppIdDecoder.prototype.isNumericToAlphaNumericLatch = function (pos) {\n // Next is alphanumeric if there are 4 positions and they are all zeros, or\n // if there is a subset of this just before the end of the symbol\n if (pos + 1 > this.information.getSize()) {\n return false;\n }\n for (var i = 0; i < 4 && i + pos < this.information.getSize(); ++i) {\n if (this.information.get(pos + i)) {\n return false;\n }\n }\n return true;\n };\n return GeneralAppIdDecoder;\n}());\nexport default GeneralAppIdDecoder;\n","import GeneralAppIdDecoder from './GeneralAppIdDecoder';\nvar AbstractExpandedDecoder = /** @class */ (function () {\n function AbstractExpandedDecoder(information) {\n this.information = information;\n this.generalDecoder = new GeneralAppIdDecoder(information);\n }\n AbstractExpandedDecoder.prototype.getInformation = function () {\n return this.information;\n };\n AbstractExpandedDecoder.prototype.getGeneralDecoder = function () {\n return this.generalDecoder;\n };\n return AbstractExpandedDecoder;\n}());\nexport default AbstractExpandedDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AbstractExpandedDecoder from './AbstractExpandedDecoder';\nvar AI01decoder = /** @class */ (function (_super) {\n __extends(AI01decoder, _super);\n function AI01decoder(information) {\n return _super.call(this, information) || this;\n }\n AI01decoder.prototype.encodeCompressedGtin = function (buf, currentPos) {\n buf.append('(01)');\n var initialPosition = buf.length();\n buf.append('9');\n this.encodeCompressedGtinWithoutAI(buf, currentPos, initialPosition);\n };\n AI01decoder.prototype.encodeCompressedGtinWithoutAI = function (buf, currentPos, initialBufferPosition) {\n for (var i = 0; i < 4; ++i) {\n var currentBlock = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos + 10 * i, 10);\n if (currentBlock / 100 === 0) {\n buf.append('0');\n }\n if (currentBlock / 10 === 0) {\n buf.append('0');\n }\n buf.append(currentBlock);\n }\n AI01decoder.appendCheckDigit(buf, initialBufferPosition);\n };\n AI01decoder.appendCheckDigit = function (buf, currentPos) {\n var checkDigit = 0;\n for (var i = 0; i < 13; i++) {\n // let digit = buf.charAt(i + currentPos) - '0';\n // To be checked\n var digit = buf.charAt(i + currentPos).charCodeAt(0) - '0'.charCodeAt(0);\n checkDigit += (i & 0x01) === 0 ? 3 * digit : digit;\n }\n checkDigit = 10 - (checkDigit % 10);\n if (checkDigit === 10) {\n checkDigit = 0;\n }\n buf.append(checkDigit);\n };\n AI01decoder.GTIN_SIZE = 40;\n return AI01decoder;\n}(AbstractExpandedDecoder));\nexport default AI01decoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI01decoder from './AI01decoder';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI01AndOtherAIs = /** @class */ (function (_super) {\n __extends(AI01AndOtherAIs, _super);\n // the second one is the encodation method, and the other two are for the variable length\n function AI01AndOtherAIs(information) {\n return _super.call(this, information) || this;\n }\n AI01AndOtherAIs.prototype.parseInformation = function () {\n var buff = new StringBuilder();\n buff.append('(01)');\n var initialGtinPosition = buff.length();\n var firstGtinDigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01AndOtherAIs.HEADER_SIZE, 4);\n buff.append(firstGtinDigit);\n this.encodeCompressedGtinWithoutAI(buff, AI01AndOtherAIs.HEADER_SIZE + 4, initialGtinPosition);\n return this.getGeneralDecoder().decodeAllCodes(buff, AI01AndOtherAIs.HEADER_SIZE + 44);\n };\n AI01AndOtherAIs.HEADER_SIZE = 1 + 1 + 2; // first bit encodes the linkage flag,\n return AI01AndOtherAIs;\n}(AI01decoder));\nexport default AI01AndOtherAIs;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport StringBuilder from '../../../../util/StringBuilder';\nimport AbstractExpandedDecoder from './AbstractExpandedDecoder';\nvar AnyAIDecoder = /** @class */ (function (_super) {\n __extends(AnyAIDecoder, _super);\n function AnyAIDecoder(information) {\n return _super.call(this, information) || this;\n }\n AnyAIDecoder.prototype.parseInformation = function () {\n var buf = new StringBuilder();\n return this.getGeneralDecoder().decodeAllCodes(buf, AnyAIDecoder.HEADER_SIZE);\n };\n AnyAIDecoder.HEADER_SIZE = 2 + 1 + 2;\n return AnyAIDecoder;\n}(AbstractExpandedDecoder));\nexport default AnyAIDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI01decoder from './AI01decoder';\nvar AI01weightDecoder = /** @class */ (function (_super) {\n __extends(AI01weightDecoder, _super);\n function AI01weightDecoder(information) {\n return _super.call(this, information) || this;\n }\n AI01weightDecoder.prototype.encodeCompressedWeight = function (buf, currentPos, weightSize) {\n var originalWeightNumeric = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, weightSize);\n this.addWeightCode(buf, originalWeightNumeric);\n var weightNumeric = this.checkWeight(originalWeightNumeric);\n var currentDivisor = 100000;\n for (var i = 0; i < 5; ++i) {\n if (weightNumeric / currentDivisor === 0) {\n buf.append('0');\n }\n currentDivisor /= 10;\n }\n buf.append(weightNumeric);\n };\n return AI01weightDecoder;\n}(AI01decoder));\nexport default AI01weightDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI01weightDecoder from './AI01weightDecoder';\nimport StringBuilder from '../../../../util/StringBuilder';\nimport NotFoundException from '../../../../NotFoundException';\nvar AI013x0xDecoder = /** @class */ (function (_super) {\n __extends(AI013x0xDecoder, _super);\n function AI013x0xDecoder(information) {\n return _super.call(this, information) || this;\n }\n AI013x0xDecoder.prototype.parseInformation = function () {\n if (this.getInformation().getSize() !==\n AI013x0xDecoder.HEADER_SIZE +\n AI01weightDecoder.GTIN_SIZE +\n AI013x0xDecoder.WEIGHT_SIZE) {\n throw new NotFoundException();\n }\n var buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI013x0xDecoder.HEADER_SIZE);\n this.encodeCompressedWeight(buf, AI013x0xDecoder.HEADER_SIZE + AI01weightDecoder.GTIN_SIZE, AI013x0xDecoder.WEIGHT_SIZE);\n return buf.toString();\n };\n AI013x0xDecoder.HEADER_SIZE = 4 + 1;\n AI013x0xDecoder.WEIGHT_SIZE = 15;\n return AI013x0xDecoder;\n}(AI01weightDecoder));\nexport default AI013x0xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI013x0xDecoder from './AI013x0xDecoder';\nvar AI013103decoder = /** @class */ (function (_super) {\n __extends(AI013103decoder, _super);\n function AI013103decoder(information) {\n return _super.call(this, information) || this;\n }\n AI013103decoder.prototype.addWeightCode = function (buf, weight) {\n buf.append('(3103)');\n };\n AI013103decoder.prototype.checkWeight = function (weight) {\n return weight;\n };\n return AI013103decoder;\n}(AI013x0xDecoder));\nexport default AI013103decoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI013x0xDecoder from './AI013x0xDecoder';\nvar AI01320xDecoder = /** @class */ (function (_super) {\n __extends(AI01320xDecoder, _super);\n function AI01320xDecoder(information) {\n return _super.call(this, information) || this;\n }\n AI01320xDecoder.prototype.addWeightCode = function (buf, weight) {\n if (weight < 10000) {\n buf.append('(3202)');\n }\n else {\n buf.append('(3203)');\n }\n };\n AI01320xDecoder.prototype.checkWeight = function (weight) {\n if (weight < 10000) {\n return weight;\n }\n return weight - 10000;\n };\n return AI01320xDecoder;\n}(AI013x0xDecoder));\nexport default AI01320xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI01decoder from './AI01decoder';\nimport NotFoundException from '../../../../NotFoundException';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI01392xDecoder = /** @class */ (function (_super) {\n __extends(AI01392xDecoder, _super);\n function AI01392xDecoder(information) {\n return _super.call(this, information) || this;\n }\n AI01392xDecoder.prototype.parseInformation = function () {\n if (this.getInformation().getSize() < AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE) {\n throw new NotFoundException();\n }\n var buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI01392xDecoder.HEADER_SIZE);\n var lastAIdigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE, AI01392xDecoder.LAST_DIGIT_SIZE);\n buf.append('(392');\n buf.append(lastAIdigit);\n buf.append(')');\n var decodedInformation = this.getGeneralDecoder().decodeGeneralPurposeField(AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01392xDecoder.LAST_DIGIT_SIZE, null);\n buf.append(decodedInformation.getNewString());\n return buf.toString();\n };\n AI01392xDecoder.HEADER_SIZE = 5 + 1 + 2;\n AI01392xDecoder.LAST_DIGIT_SIZE = 2;\n return AI01392xDecoder;\n}(AI01decoder));\nexport default AI01392xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI01decoder from './AI01decoder';\nimport NotFoundException from '../../../../NotFoundException';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI01393xDecoder = /** @class */ (function (_super) {\n __extends(AI01393xDecoder, _super);\n function AI01393xDecoder(information) {\n return _super.call(this, information) || this;\n }\n AI01393xDecoder.prototype.parseInformation = function () {\n if (this.getInformation().getSize() <\n AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE) {\n throw new NotFoundException();\n }\n var buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI01393xDecoder.HEADER_SIZE);\n var lastAIdigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE, AI01393xDecoder.LAST_DIGIT_SIZE);\n buf.append('(393');\n buf.append(lastAIdigit);\n buf.append(')');\n var firstThreeDigits = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01393xDecoder.HEADER_SIZE +\n AI01decoder.GTIN_SIZE +\n AI01393xDecoder.LAST_DIGIT_SIZE, AI01393xDecoder.FIRST_THREE_DIGITS_SIZE);\n if (firstThreeDigits / 100 === 0) {\n buf.append('0');\n }\n if (firstThreeDigits / 10 === 0) {\n buf.append('0');\n }\n buf.append(firstThreeDigits);\n var generalInformation = this.getGeneralDecoder().decodeGeneralPurposeField(AI01393xDecoder.HEADER_SIZE +\n AI01decoder.GTIN_SIZE +\n AI01393xDecoder.LAST_DIGIT_SIZE +\n AI01393xDecoder.FIRST_THREE_DIGITS_SIZE, null);\n buf.append(generalInformation.getNewString());\n return buf.toString();\n };\n AI01393xDecoder.HEADER_SIZE = 5 + 1 + 2;\n AI01393xDecoder.LAST_DIGIT_SIZE = 2;\n AI01393xDecoder.FIRST_THREE_DIGITS_SIZE = 10;\n return AI01393xDecoder;\n}(AI01decoder));\nexport default AI01393xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport AI01weightDecoder from './AI01weightDecoder';\nimport NotFoundException from '../../../../NotFoundException';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI013x0x1xDecoder = /** @class */ (function (_super) {\n __extends(AI013x0x1xDecoder, _super);\n function AI013x0x1xDecoder(information, firstAIdigits, dateCode) {\n var _this = _super.call(this, information) || this;\n _this.dateCode = dateCode;\n _this.firstAIdigits = firstAIdigits;\n return _this;\n }\n AI013x0x1xDecoder.prototype.parseInformation = function () {\n if (this.getInformation().getSize() !==\n AI013x0x1xDecoder.HEADER_SIZE +\n AI013x0x1xDecoder.GTIN_SIZE +\n AI013x0x1xDecoder.WEIGHT_SIZE +\n AI013x0x1xDecoder.DATE_SIZE) {\n throw new NotFoundException();\n }\n var buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI013x0x1xDecoder.HEADER_SIZE);\n this.encodeCompressedWeight(buf, AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE, AI013x0x1xDecoder.WEIGHT_SIZE);\n this.encodeCompressedDate(buf, AI013x0x1xDecoder.HEADER_SIZE +\n AI013x0x1xDecoder.GTIN_SIZE +\n AI013x0x1xDecoder.WEIGHT_SIZE);\n return buf.toString();\n };\n AI013x0x1xDecoder.prototype.encodeCompressedDate = function (buf, currentPos) {\n var numericDate = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, AI013x0x1xDecoder.DATE_SIZE);\n if (numericDate === 38400) {\n return;\n }\n buf.append('(');\n buf.append(this.dateCode);\n buf.append(')');\n var day = numericDate % 32;\n numericDate /= 32;\n var month = (numericDate % 12) + 1;\n numericDate /= 12;\n var year = numericDate;\n if (year / 10 === 0) {\n buf.append('0');\n }\n buf.append(year);\n if (month / 10 === 0) {\n buf.append('0');\n }\n buf.append(month);\n if (day / 10 === 0) {\n buf.append('0');\n }\n buf.append(day);\n };\n AI013x0x1xDecoder.prototype.addWeightCode = function (buf, weight) {\n buf.append('(');\n buf.append(this.firstAIdigits);\n buf.append(weight / 100000);\n buf.append(')');\n };\n AI013x0x1xDecoder.prototype.checkWeight = function (weight) {\n return weight % 100000;\n };\n AI013x0x1xDecoder.HEADER_SIZE = 7 + 1;\n AI013x0x1xDecoder.WEIGHT_SIZE = 20;\n AI013x0x1xDecoder.DATE_SIZE = 16;\n return AI013x0x1xDecoder;\n}(AI01weightDecoder));\nexport default AI013x0x1xDecoder;\n","var ExpandedPair = /** @class */ (function () {\n function ExpandedPair(leftChar, rightChar, finderPatter, mayBeLast) {\n this.leftchar = leftChar;\n this.rightchar = rightChar;\n this.finderpattern = finderPatter;\n this.maybeLast = mayBeLast;\n }\n ExpandedPair.prototype.mayBeLast = function () {\n return this.maybeLast;\n };\n ExpandedPair.prototype.getLeftChar = function () {\n return this.leftchar;\n };\n ExpandedPair.prototype.getRightChar = function () {\n return this.rightchar;\n };\n ExpandedPair.prototype.getFinderPattern = function () {\n return this.finderpattern;\n };\n ExpandedPair.prototype.mustBeLast = function () {\n return this.rightchar == null;\n };\n ExpandedPair.prototype.toString = function () {\n return '[ ' + this.leftchar + ', ' + this.rightchar + ' : ' + (this.finderpattern == null ? 'null' : this.finderpattern.getValue()) + ' ]';\n };\n ExpandedPair.equals = function (o1, o2) {\n if (!(o1 instanceof ExpandedPair)) {\n return false;\n }\n return ExpandedPair.equalsOrNull(o1.leftchar, o2.leftchar) &&\n ExpandedPair.equalsOrNull(o1.rightchar, o2.rightchar) &&\n ExpandedPair.equalsOrNull(o1.finderpattern, o2.finderpattern);\n };\n ExpandedPair.equalsOrNull = function (o1, o2) {\n return o1 === null ? o2 === null : ExpandedPair.equals(o1, o2);\n };\n ExpandedPair.prototype.hashCode = function () {\n // return ExpandedPair.hashNotNull(leftChar) ^ hashNotNull(rightChar) ^ hashNotNull(finderPattern);\n var value = this.leftchar.getValue() ^ this.rightchar.getValue() ^ this.finderpattern.getValue();\n return value;\n };\n return ExpandedPair;\n}());\nexport default ExpandedPair;\n","var ExpandedRow = /** @class */ (function () {\n function ExpandedRow(pairs, rowNumber, wasReversed) {\n this.pairs = pairs;\n this.rowNumber = rowNumber;\n this.wasReversed = wasReversed;\n }\n ExpandedRow.prototype.getPairs = function () {\n return this.pairs;\n };\n ExpandedRow.prototype.getRowNumber = function () {\n return this.rowNumber;\n };\n ExpandedRow.prototype.isReversed = function () {\n return this.wasReversed;\n };\n // check implementation\n ExpandedRow.prototype.isEquivalent = function (otherPairs) {\n return this.checkEqualitity(this, otherPairs);\n };\n // @Override\n ExpandedRow.prototype.toString = function () {\n return '{ ' + this.pairs + ' }';\n };\n /**\n * Two rows are equal if they contain the same pairs in the same order.\n */\n // @Override\n // check implementation\n ExpandedRow.prototype.equals = function (o1, o2) {\n if (!(o1 instanceof ExpandedRow)) {\n return false;\n }\n return this.checkEqualitity(o1, o2) && o1.wasReversed === o2.wasReversed;\n };\n ExpandedRow.prototype.checkEqualitity = function (pair1, pair2) {\n if (!pair1 || !pair2)\n return;\n var result;\n pair1.forEach(function (e1, i) {\n pair2.forEach(function (e2) {\n if (e1.getLeftChar().getValue() === e2.getLeftChar().getValue() && e1.getRightChar().getValue() === e2.getRightChar().getValue() && e1.getFinderPatter().getValue() === e2.getFinderPatter().getValue()) {\n result = true;\n }\n });\n });\n return result;\n };\n return ExpandedRow;\n}());\nexport default ExpandedRow;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../../../BarcodeFormat';\nimport MathUtils from '../../../common/detector/MathUtils';\n// import FormatException from '../../../FormatException';\nimport NotFoundException from '../../../NotFoundException';\nimport Result from '../../../Result';\nimport System from '../../../util/System';\nimport AbstractRSSReader from '../../rss/AbstractRSSReader';\nimport DataCharacter from '../../rss/DataCharacter';\nimport FinderPattern from '../../rss/FinderPattern';\nimport RSSUtils from '../../rss/RSSUtils';\nimport BitArrayBuilder from './BitArrayBuilder';\nimport { createDecoder } from './decoders/AbstractExpandedDecoderComplement';\nimport ExpandedPair from './ExpandedPair';\nimport ExpandedRow from './ExpandedRow';\n// import java.util.ArrayList;\n// import java.util.Iterator;\n// import java.util.List;\n// import java.util.Map;\n// import java.util.Collections;\n/** @experimental */\nvar RSSExpandedReader = /** @class */ (function (_super) {\n __extends(RSSExpandedReader, _super);\n function RSSExpandedReader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.pairs = new Array(RSSExpandedReader.MAX_PAIRS);\n _this.rows = new Array();\n _this.startEnd = [2];\n return _this;\n }\n RSSExpandedReader.prototype.decodeRow = function (rowNumber, row, hints) {\n // Rows can start with even pattern in case in prev rows there where odd number of patters.\n // So lets try twice\n // this.pairs.clear();\n this.pairs.length = 0;\n this.startFromEven = false;\n try {\n return RSSExpandedReader.constructResult(this.decodeRow2pairs(rowNumber, row));\n }\n catch (e) {\n // OK\n // console.log(e);\n }\n this.pairs.length = 0;\n this.startFromEven = true;\n return RSSExpandedReader.constructResult(this.decodeRow2pairs(rowNumber, row));\n };\n RSSExpandedReader.prototype.reset = function () {\n this.pairs.length = 0;\n this.rows.length = 0;\n };\n // Not private for testing\n RSSExpandedReader.prototype.decodeRow2pairs = function (rowNumber, row) {\n var done = false;\n while (!done) {\n try {\n this.pairs.push(this.retrieveNextPair(row, this.pairs, rowNumber));\n }\n catch (error) {\n if (error instanceof NotFoundException) {\n if (!this.pairs.length) {\n throw new NotFoundException();\n }\n // exit this loop when retrieveNextPair() fails and throws\n done = true;\n }\n }\n }\n // TODO: verify sequence of finder patterns as in checkPairSequence()\n if (this.checkChecksum()) {\n return this.pairs;\n }\n var tryStackedDecode;\n if (this.rows.length) {\n tryStackedDecode = true;\n }\n else {\n tryStackedDecode = false;\n }\n // let tryStackedDecode = !this.rows.isEmpty();\n this.storeRow(rowNumber, false); // TODO: deal with reversed rows\n if (tryStackedDecode) {\n // When the image is 180-rotated, then rows are sorted in wrong direction.\n // Try twice with both the directions.\n var ps = this.checkRowsBoolean(false);\n if (ps != null) {\n return ps;\n }\n ps = this.checkRowsBoolean(true);\n if (ps != null) {\n return ps;\n }\n }\n throw new NotFoundException();\n };\n // Need to Verify\n RSSExpandedReader.prototype.checkRowsBoolean = function (reverse) {\n // Limit number of rows we are checking\n // We use recursive algorithm with pure complexity and don't want it to take forever\n // Stacked barcode can have up to 11 rows, so 25 seems reasonable enough\n if (this.rows.length > 25) {\n this.rows.length = 0; // We will never have a chance to get result, so clear it\n return null;\n }\n this.pairs.length = 0;\n if (reverse) {\n this.rows = this.rows.reverse();\n // Collections.reverse(this.rows);\n }\n var ps = null;\n try {\n ps = this.checkRows(new Array(), 0);\n }\n catch (e) {\n // OK\n console.log(e);\n }\n if (reverse) {\n this.rows = this.rows.reverse();\n // Collections.reverse(this.rows);\n }\n return ps;\n };\n // Try to construct a valid rows sequence\n // Recursion is used to implement backtracking\n RSSExpandedReader.prototype.checkRows = function (collectedRows, currentRow) {\n var e_1, _a;\n for (var i = currentRow; i < this.rows.length; i++) {\n var row = this.rows[i];\n this.pairs.length = 0;\n try {\n for (var collectedRows_1 = (e_1 = void 0, __values(collectedRows)), collectedRows_1_1 = collectedRows_1.next(); !collectedRows_1_1.done; collectedRows_1_1 = collectedRows_1.next()) {\n var collectedRow = collectedRows_1_1.value;\n this.pairs.push(collectedRow.getPairs());\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (collectedRows_1_1 && !collectedRows_1_1.done && (_a = collectedRows_1.return)) _a.call(collectedRows_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.pairs.push(row.getPairs());\n if (!RSSExpandedReader.isValidSequence(this.pairs)) {\n continue;\n }\n if (this.checkChecksum()) {\n return this.pairs;\n }\n var rs = new Array(collectedRows);\n rs.push(row);\n try {\n // Recursion: try to add more rows\n return this.checkRows(rs, i + 1);\n }\n catch (e) {\n // We failed, try the next candidate\n console.log(e);\n }\n }\n throw new NotFoundException();\n };\n // Whether the pairs form a valid find pattern sequence,\n // either complete or a prefix\n RSSExpandedReader.isValidSequence = function (pairs) {\n var e_2, _a;\n try {\n for (var _b = __values(RSSExpandedReader.FINDER_PATTERN_SEQUENCES), _c = _b.next(); !_c.done; _c = _b.next()) {\n var sequence = _c.value;\n if (pairs.length > sequence.length) {\n continue;\n }\n var stop_1 = true;\n for (var j = 0; j < pairs.length; j++) {\n if (pairs[j].getFinderPattern().getValue() !== sequence[j]) {\n stop_1 = false;\n break;\n }\n }\n if (stop_1) {\n return true;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return false;\n };\n RSSExpandedReader.prototype.storeRow = function (rowNumber, wasReversed) {\n // Discard if duplicate above or below; otherwise insert in order by row number.\n var insertPos = 0;\n var prevIsSame = false;\n var nextIsSame = false;\n while (insertPos < this.rows.length) {\n var erow = this.rows[insertPos];\n if (erow.getRowNumber() > rowNumber) {\n nextIsSame = erow.isEquivalent(this.pairs);\n break;\n }\n prevIsSame = erow.isEquivalent(this.pairs);\n insertPos++;\n }\n if (nextIsSame || prevIsSame) {\n return;\n }\n // When the row was partially decoded (e.g. 2 pairs found instead of 3),\n // it will prevent us from detecting the barcode.\n // Try to merge partial rows\n // Check whether the row is part of an allready detected row\n if (RSSExpandedReader.isPartialRow(this.pairs, this.rows)) {\n return;\n }\n this.rows.push(insertPos, new ExpandedRow(this.pairs, rowNumber, wasReversed));\n this.removePartialRows(this.pairs, this.rows);\n };\n // Remove all the rows that contains only specified pairs\n RSSExpandedReader.prototype.removePartialRows = function (pairs, rows) {\n var e_3, _a, e_4, _b, e_5, _c;\n try {\n // for (Iterator iterator = rows.iterator(); iterator.hasNext();) {\n // ExpandedRow r = iterator.next();\n // if (r.getPairs().size() == pairs.size()) {\n // continue;\n // }\n // boolean allFound = true;\n // for (ExpandedPair p : r.getPairs()) {\n // boolean found = false;\n // for (ExpandedPair pp : pairs) {\n // if (p.equals(pp)) {\n // found = true;\n // break;\n // }\n // }\n // if (!found) {\n // allFound = false;\n // break;\n // }\n // }\n // if (allFound) {\n // // 'pairs' contains all the pairs from the row 'r'\n // iterator.remove();\n // }\n // }\n for (var rows_1 = __values(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {\n var row = rows_1_1.value;\n if (row.getPairs().length === pairs.length) {\n continue;\n }\n var allFound = true;\n try {\n for (var _d = (e_4 = void 0, __values(row.getPairs())), _e = _d.next(); !_e.done; _e = _d.next()) {\n var p = _e.value;\n var found = false;\n try {\n for (var pairs_1 = (e_5 = void 0, __values(pairs)), pairs_1_1 = pairs_1.next(); !pairs_1_1.done; pairs_1_1 = pairs_1.next()) {\n var pp = pairs_1_1.value;\n if (ExpandedPair.equals(p, pp)) {\n found = true;\n break;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (pairs_1_1 && !pairs_1_1.done && (_c = pairs_1.return)) _c.call(pairs_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (!found) {\n allFound = false;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (rows_1_1 && !rows_1_1.done && (_a = rows_1.return)) _a.call(rows_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n // Returns true when one of the rows already contains all the pairs\n RSSExpandedReader.isPartialRow = function (pairs, rows) {\n var e_6, _a, e_7, _b, e_8, _c;\n try {\n for (var rows_2 = __values(rows), rows_2_1 = rows_2.next(); !rows_2_1.done; rows_2_1 = rows_2.next()) {\n var r = rows_2_1.value;\n var allFound = true;\n try {\n for (var pairs_2 = (e_7 = void 0, __values(pairs)), pairs_2_1 = pairs_2.next(); !pairs_2_1.done; pairs_2_1 = pairs_2.next()) {\n var p = pairs_2_1.value;\n var found = false;\n try {\n for (var _d = (e_8 = void 0, __values(r.getPairs())), _e = _d.next(); !_e.done; _e = _d.next()) {\n var pp = _e.value;\n if (p.equals(pp)) {\n found = true;\n break;\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_c = _d.return)) _c.call(_d);\n }\n finally { if (e_8) throw e_8.error; }\n }\n if (!found) {\n allFound = false;\n break;\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (pairs_2_1 && !pairs_2_1.done && (_b = pairs_2.return)) _b.call(pairs_2);\n }\n finally { if (e_7) throw e_7.error; }\n }\n if (allFound) {\n // the row 'r' contain all the pairs from 'pairs'\n return true;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (rows_2_1 && !rows_2_1.done && (_a = rows_2.return)) _a.call(rows_2);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return false;\n };\n // Only used for unit testing\n RSSExpandedReader.prototype.getRows = function () {\n return this.rows;\n };\n // Not private for unit testing\n RSSExpandedReader.constructResult = function (pairs) {\n var binary = BitArrayBuilder.buildBitArray(pairs);\n var decoder = createDecoder(binary);\n var resultingString = decoder.parseInformation();\n var firstPoints = pairs[0].getFinderPattern().getResultPoints();\n var lastPoints = pairs[pairs.length - 1]\n .getFinderPattern()\n .getResultPoints();\n var points = [firstPoints[0], firstPoints[1], lastPoints[0], lastPoints[1]];\n return new Result(resultingString, null, null, points, BarcodeFormat.RSS_EXPANDED, null);\n };\n RSSExpandedReader.prototype.checkChecksum = function () {\n var firstPair = this.pairs.get(0);\n var checkCharacter = firstPair.getLeftChar();\n var firstCharacter = firstPair.getRightChar();\n if (firstCharacter === null) {\n return false;\n }\n var checksum = firstCharacter.getChecksumPortion();\n var s = 2;\n for (var i = 1; i < this.pairs.size(); ++i) {\n var currentPair = this.pairs.get(i);\n checksum += currentPair.getLeftChar().getChecksumPortion();\n s++;\n var currentRightChar = currentPair.getRightChar();\n if (currentRightChar != null) {\n checksum += currentRightChar.getChecksumPortion();\n s++;\n }\n }\n checksum %= 211;\n var checkCharacterValue = 211 * (s - 4) + checksum;\n return checkCharacterValue === checkCharacter.getValue();\n };\n RSSExpandedReader.getNextSecondBar = function (row, initialPos) {\n var currentPos;\n if (row.get(initialPos)) {\n currentPos = row.getNextUnset(initialPos);\n currentPos = row.getNextSet(currentPos);\n }\n else {\n currentPos = row.getNextSet(initialPos);\n currentPos = row.getNextUnset(currentPos);\n }\n return currentPos;\n };\n // not private for testing\n RSSExpandedReader.prototype.retrieveNextPair = function (row, previousPairs, rowNumber) {\n var isOddPattern = previousPairs.length % 2 === 0;\n if (this.startFromEven) {\n isOddPattern = !isOddPattern;\n }\n var pattern;\n var keepFinding = true;\n var forcedOffset = -1;\n do {\n this.findNextPair(row, previousPairs, forcedOffset);\n pattern = this.parseFoundFinderPattern(row, rowNumber, isOddPattern);\n if (pattern === null) {\n forcedOffset = RSSExpandedReader.getNextSecondBar(row, this.startEnd[0]);\n }\n else {\n keepFinding = false;\n }\n } while (keepFinding);\n // When stacked symbol is split over multiple rows, there's no way to guess if this pair can be last or not.\n // boolean mayBeLast = checkPairSequence(previousPairs, pattern);\n var leftChar = this.decodeDataCharacter(row, pattern, isOddPattern, true);\n if (!this.isEmptyPair(previousPairs) &&\n previousPairs[previousPairs.length - 1].mustBeLast()) {\n throw new NotFoundException();\n }\n var rightChar;\n try {\n rightChar = this.decodeDataCharacter(row, pattern, isOddPattern, false);\n }\n catch (e) {\n rightChar = null;\n console.log(e);\n }\n return new ExpandedPair(leftChar, rightChar, pattern, true);\n };\n RSSExpandedReader.prototype.isEmptyPair = function (pairs) {\n if (pairs.length === 0) {\n return true;\n }\n return false;\n };\n RSSExpandedReader.prototype.findNextPair = function (row, previousPairs, forcedOffset) {\n var counters = this.getDecodeFinderCounters();\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var width = row.getSize();\n var rowOffset;\n if (forcedOffset >= 0) {\n rowOffset = forcedOffset;\n }\n else if (this.isEmptyPair(previousPairs)) {\n rowOffset = 0;\n }\n else {\n var lastPair = previousPairs[previousPairs.length - 1];\n rowOffset = lastPair.getFinderPattern().getStartEnd()[1];\n }\n var searchingEvenPair = previousPairs.length % 2 !== 0;\n if (this.startFromEven) {\n searchingEvenPair = !searchingEvenPair;\n }\n var isWhite = false;\n while (rowOffset < width) {\n isWhite = !row.get(rowOffset);\n if (!isWhite) {\n break;\n }\n rowOffset++;\n }\n var counterPosition = 0;\n var patternStart = rowOffset;\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === 3) {\n if (searchingEvenPair) {\n RSSExpandedReader.reverseCounters(counters);\n }\n if (RSSExpandedReader.isFinderPattern(counters)) {\n this.startEnd[0] = patternStart;\n this.startEnd[1] = x;\n return;\n }\n if (searchingEvenPair) {\n RSSExpandedReader.reverseCounters(counters);\n }\n patternStart += counters[0] + counters[1];\n counters[0] = counters[2];\n counters[1] = counters[3];\n counters[2] = 0;\n counters[3] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n };\n RSSExpandedReader.reverseCounters = function (counters) {\n var length = counters.length;\n for (var i = 0; i < length / 2; ++i) {\n var tmp = counters[i];\n counters[i] = counters[length - i - 1];\n counters[length - i - 1] = tmp;\n }\n };\n RSSExpandedReader.prototype.parseFoundFinderPattern = function (row, rowNumber, oddPattern) {\n // Actually we found elements 2-5.\n var firstCounter;\n var start;\n var end;\n if (oddPattern) {\n // If pattern number is odd, we need to locate element 1 *before* the current block.\n var firstElementStart = this.startEnd[0] - 1;\n // Locate element 1\n while (firstElementStart >= 0 && !row.get(firstElementStart)) {\n firstElementStart--;\n }\n firstElementStart++;\n firstCounter = this.startEnd[0] - firstElementStart;\n start = firstElementStart;\n end = this.startEnd[1];\n }\n else {\n // If pattern number is even, the pattern is reversed, so we need to locate element 1 *after* the current block.\n start = this.startEnd[0];\n end = row.getNextUnset(this.startEnd[1] + 1);\n firstCounter = end - this.startEnd[1];\n }\n // Make 'counters' hold 1-4\n var counters = this.getDecodeFinderCounters();\n System.arraycopy(counters, 0, counters, 1, counters.length - 1);\n counters[0] = firstCounter;\n var value;\n try {\n value = this.parseFinderValue(counters, RSSExpandedReader.FINDER_PATTERNS);\n }\n catch (e) {\n return null;\n }\n // return new FinderPattern(value, new int[] { start, end }, start, end, rowNumber});\n return new FinderPattern(value, [start, end], start, end, rowNumber);\n };\n RSSExpandedReader.prototype.decodeDataCharacter = function (row, pattern, isOddPattern, leftChar) {\n var counters = this.getDataCharacterCounters();\n for (var x = 0; x < counters.length; x++) {\n counters[x] = 0;\n }\n if (leftChar) {\n RSSExpandedReader.recordPatternInReverse(row, pattern.getStartEnd()[0], counters);\n }\n else {\n RSSExpandedReader.recordPattern(row, pattern.getStartEnd()[1], counters);\n // reverse it\n for (var i = 0, j = counters.length - 1; i < j; i++, j--) {\n var temp = counters[i];\n counters[i] = counters[j];\n counters[j] = temp;\n }\n } // counters[] has the pixels of the module\n var numModules = 17; // left and right data characters have all the same length\n var elementWidth = MathUtils.sum(new Int32Array(counters)) / numModules;\n // Sanity check: element width for pattern and the character should match\n var expectedElementWidth = (pattern.getStartEnd()[1] - pattern.getStartEnd()[0]) / 15.0;\n if (Math.abs(elementWidth - expectedElementWidth) / expectedElementWidth >\n 0.3) {\n throw new NotFoundException();\n }\n var oddCounts = this.getOddCounts();\n var evenCounts = this.getEvenCounts();\n var oddRoundingErrors = this.getOddRoundingErrors();\n var evenRoundingErrors = this.getEvenRoundingErrors();\n for (var i = 0; i < counters.length; i++) {\n var value_1 = (1.0 * counters[i]) / elementWidth;\n var count = value_1 + 0.5; // Round\n if (count < 1) {\n if (value_1 < 0.3) {\n throw new NotFoundException();\n }\n count = 1;\n }\n else if (count > 8) {\n if (value_1 > 8.7) {\n throw new NotFoundException();\n }\n count = 8;\n }\n var offset = i / 2;\n if ((i & 0x01) === 0) {\n oddCounts[offset] = count;\n oddRoundingErrors[offset] = value_1 - count;\n }\n else {\n evenCounts[offset] = count;\n evenRoundingErrors[offset] = value_1 - count;\n }\n }\n this.adjustOddEvenCounts(numModules);\n var weightRowNumber = 4 * pattern.getValue() + (isOddPattern ? 0 : 2) + (leftChar ? 0 : 1) - 1;\n var oddSum = 0;\n var oddChecksumPortion = 0;\n for (var i = oddCounts.length - 1; i >= 0; i--) {\n if (RSSExpandedReader.isNotA1left(pattern, isOddPattern, leftChar)) {\n var weight = RSSExpandedReader.WEIGHTS[weightRowNumber][2 * i];\n oddChecksumPortion += oddCounts[i] * weight;\n }\n oddSum += oddCounts[i];\n }\n var evenChecksumPortion = 0;\n // int evenSum = 0;\n for (var i = evenCounts.length - 1; i >= 0; i--) {\n if (RSSExpandedReader.isNotA1left(pattern, isOddPattern, leftChar)) {\n var weight = RSSExpandedReader.WEIGHTS[weightRowNumber][2 * i + 1];\n evenChecksumPortion += evenCounts[i] * weight;\n }\n // evenSum += evenCounts[i];\n }\n var checksumPortion = oddChecksumPortion + evenChecksumPortion;\n if ((oddSum & 0x01) !== 0 || oddSum > 13 || oddSum < 4) {\n throw new NotFoundException();\n }\n var group = (13 - oddSum) / 2;\n var oddWidest = RSSExpandedReader.SYMBOL_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true);\n var vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false);\n var tEven = RSSExpandedReader.EVEN_TOTAL_SUBSET[group];\n var gSum = RSSExpandedReader.GSUM[group];\n var value = vOdd * tEven + vEven + gSum;\n return new DataCharacter(value, checksumPortion);\n };\n RSSExpandedReader.isNotA1left = function (pattern, isOddPattern, leftChar) {\n // A1: pattern.getValue is 0 (A), and it's an oddPattern, and it is a left char\n return !(pattern.getValue() === 0 && isOddPattern && leftChar);\n };\n RSSExpandedReader.prototype.adjustOddEvenCounts = function (numModules) {\n var oddSum = MathUtils.sum(new Int32Array(this.getOddCounts()));\n var evenSum = MathUtils.sum(new Int32Array(this.getEvenCounts()));\n var incrementOdd = false;\n var decrementOdd = false;\n if (oddSum > 13) {\n decrementOdd = true;\n }\n else if (oddSum < 4) {\n incrementOdd = true;\n }\n var incrementEven = false;\n var decrementEven = false;\n if (evenSum > 13) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n var mismatch = oddSum + evenSum - numModules;\n var oddParityBad = (oddSum & 0x01) === 1;\n var evenParityBad = (evenSum & 0x01) === 0;\n if (mismatch === 1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException();\n }\n decrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException();\n }\n decrementEven = true;\n }\n }\n else if (mismatch === -1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException();\n }\n incrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException();\n }\n incrementEven = true;\n }\n }\n else if (mismatch === 0) {\n if (oddParityBad) {\n if (!evenParityBad) {\n throw new NotFoundException();\n }\n // Both bad\n if (oddSum < evenSum) {\n incrementOdd = true;\n decrementEven = true;\n }\n else {\n decrementOdd = true;\n incrementEven = true;\n }\n }\n else {\n if (evenParityBad) {\n throw new NotFoundException();\n }\n // Nothing to do!\n }\n }\n else {\n throw new NotFoundException();\n }\n if (incrementOdd) {\n if (decrementOdd) {\n throw new NotFoundException();\n }\n RSSExpandedReader.increment(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (decrementOdd) {\n RSSExpandedReader.decrement(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (incrementEven) {\n if (decrementEven) {\n throw new NotFoundException();\n }\n RSSExpandedReader.increment(this.getEvenCounts(), this.getOddRoundingErrors());\n }\n if (decrementEven) {\n RSSExpandedReader.decrement(this.getEvenCounts(), this.getEvenRoundingErrors());\n }\n };\n RSSExpandedReader.SYMBOL_WIDEST = [7, 5, 4, 3, 1];\n RSSExpandedReader.EVEN_TOTAL_SUBSET = [4, 20, 52, 104, 204];\n RSSExpandedReader.GSUM = [0, 348, 1388, 2948, 3988];\n RSSExpandedReader.FINDER_PATTERNS = [\n Int32Array.from([1, 8, 4, 1]),\n Int32Array.from([3, 6, 4, 1]),\n Int32Array.from([3, 4, 6, 1]),\n Int32Array.from([3, 2, 8, 1]),\n Int32Array.from([2, 6, 5, 1]),\n Int32Array.from([2, 2, 9, 1]),\n ];\n RSSExpandedReader.WEIGHTS = [\n [1, 3, 9, 27, 81, 32, 96, 77],\n [20, 60, 180, 118, 143, 7, 21, 63],\n [189, 145, 13, 39, 117, 140, 209, 205],\n [193, 157, 49, 147, 19, 57, 171, 91],\n [62, 186, 136, 197, 169, 85, 44, 132],\n [185, 133, 188, 142, 4, 12, 36, 108],\n [113, 128, 173, 97, 80, 29, 87, 50],\n [150, 28, 84, 41, 123, 158, 52, 156],\n [46, 138, 203, 187, 139, 206, 196, 166],\n [76, 17, 51, 153, 37, 111, 122, 155],\n [43, 129, 176, 106, 107, 110, 119, 146],\n [16, 48, 144, 10, 30, 90, 59, 177],\n [109, 116, 137, 200, 178, 112, 125, 164],\n [70, 210, 208, 202, 184, 130, 179, 115],\n [134, 191, 151, 31, 93, 68, 204, 190],\n [148, 22, 66, 198, 172, 94, 71, 2],\n [6, 18, 54, 162, 64, 192, 154, 40],\n [120, 149, 25, 75, 14, 42, 126, 167],\n [79, 26, 78, 23, 69, 207, 199, 175],\n [103, 98, 83, 38, 114, 131, 182, 124],\n [161, 61, 183, 127, 170, 88, 53, 159],\n [55, 165, 73, 8, 24, 72, 5, 15],\n [45, 135, 194, 160, 58, 174, 100, 89],\n ];\n RSSExpandedReader.FINDER_PAT_A = 0;\n RSSExpandedReader.FINDER_PAT_B = 1;\n RSSExpandedReader.FINDER_PAT_C = 2;\n RSSExpandedReader.FINDER_PAT_D = 3;\n RSSExpandedReader.FINDER_PAT_E = 4;\n RSSExpandedReader.FINDER_PAT_F = 5;\n RSSExpandedReader.FINDER_PATTERN_SEQUENCES = [\n [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_A],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_B,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_D,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_C,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_F,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_F,\n RSSExpandedReader.FINDER_PAT_F,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_D,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_E,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_F,\n RSSExpandedReader.FINDER_PAT_F,\n ],\n [\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_A,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_B,\n RSSExpandedReader.FINDER_PAT_C,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_D,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_E,\n RSSExpandedReader.FINDER_PAT_F,\n RSSExpandedReader.FINDER_PAT_F,\n ],\n ];\n RSSExpandedReader.MAX_PAIRS = 11;\n return RSSExpandedReader;\n}(AbstractRSSReader));\nexport default RSSExpandedReader;\n","import IllegalStateException from '../../../../IllegalStateException';\nimport GeneralAppIdDecoder from './GeneralAppIdDecoder';\nimport AI01AndOtherAIs from './AI01AndOtherAIs';\nimport AnyAIDecoder from './AnyAIDecoder';\nimport AI013103decoder from './AI013103decoder';\nimport AI01320xDecoder from './AI01320xDecoder';\nimport AI01392xDecoder from './AI01392xDecoder';\nimport AI01393xDecoder from './AI01393xDecoder';\nimport AI013x0x1xDecoder from './AI013x0x1xDecoder';\nexport function createDecoder(information) {\n try {\n if (information.get(1)) {\n return new AI01AndOtherAIs(information);\n }\n if (!information.get(2)) {\n return new AnyAIDecoder(information);\n }\n var fourBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 4);\n switch (fourBitEncodationMethod) {\n case 4: return new AI013103decoder(information);\n case 5: return new AI01320xDecoder(information);\n }\n var fiveBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 5);\n switch (fiveBitEncodationMethod) {\n case 12: return new AI01392xDecoder(information);\n case 13: return new AI01393xDecoder(information);\n }\n var sevenBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 7);\n switch (sevenBitEncodationMethod) {\n case 56: return new AI013x0x1xDecoder(information, '310', '11');\n case 57: return new AI013x0x1xDecoder(information, '320', '11');\n case 58: return new AI013x0x1xDecoder(information, '310', '13');\n case 59: return new AI013x0x1xDecoder(information, '320', '13');\n case 60: return new AI013x0x1xDecoder(information, '310', '15');\n case 61: return new AI013x0x1xDecoder(information, '320', '15');\n case 62: return new AI013x0x1xDecoder(information, '310', '17');\n case 63: return new AI013x0x1xDecoder(information, '320', '17');\n }\n }\n catch (e) {\n console.log(e);\n throw new IllegalStateException('unknown decoder: ' + information);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport DataCharacter from './DataCharacter';\nvar Pair = /** @class */ (function (_super) {\n __extends(Pair, _super);\n function Pair(value, checksumPortion, finderPattern) {\n var _this = _super.call(this, value, checksumPortion) || this;\n _this.count = 0;\n _this.finderPattern = finderPattern;\n return _this;\n }\n Pair.prototype.getFinderPattern = function () {\n return this.finderPattern;\n };\n Pair.prototype.getCount = function () {\n return this.count;\n };\n Pair.prototype.incrementCount = function () {\n this.count++;\n };\n return Pair;\n}(DataCharacter));\nexport default Pair;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport AbstractRSSReader from './AbstractRSSReader';\nimport Pair from './Pair';\nimport Result from '../../Result';\nimport DecodeHintType from '../../DecodeHintType';\nimport NotFoundException from '../../NotFoundException';\nimport StringBuilder from '../../util/StringBuilder';\nimport BarcodeFormat from '../../BarcodeFormat';\nimport ResultPoint from '../../ResultPoint';\nimport FinderPattern from './FinderPattern';\nimport DataCharacter from './DataCharacter';\nimport MathUtils from '../../common/detector/MathUtils';\nimport RSSUtils from './RSSUtils';\nimport System from '../../util/System';\nimport OneDReader from '../OneDReader';\nvar RSS14Reader = /** @class */ (function (_super) {\n __extends(RSS14Reader, _super);\n function RSS14Reader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.possibleLeftPairs = [];\n _this.possibleRightPairs = [];\n return _this;\n }\n RSS14Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var e_1, _a, e_2, _b;\n var leftPair = this.decodePair(row, false, rowNumber, hints);\n RSS14Reader.addOrTally(this.possibleLeftPairs, leftPair);\n row.reverse();\n var rightPair = this.decodePair(row, true, rowNumber, hints);\n RSS14Reader.addOrTally(this.possibleRightPairs, rightPair);\n row.reverse();\n try {\n for (var _c = __values(this.possibleLeftPairs), _d = _c.next(); !_d.done; _d = _c.next()) {\n var left = _d.value;\n if (left.getCount() > 1) {\n try {\n for (var _e = (e_2 = void 0, __values(this.possibleRightPairs)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var right = _f.value;\n if (right.getCount() > 1 && RSS14Reader.checkChecksum(left, right)) {\n return RSS14Reader.constructResult(left, right);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n throw new NotFoundException();\n };\n RSS14Reader.addOrTally = function (possiblePairs, pair) {\n var e_3, _a;\n if (pair == null) {\n return;\n }\n var found = false;\n try {\n for (var possiblePairs_1 = __values(possiblePairs), possiblePairs_1_1 = possiblePairs_1.next(); !possiblePairs_1_1.done; possiblePairs_1_1 = possiblePairs_1.next()) {\n var other = possiblePairs_1_1.value;\n if (other.getValue() === pair.getValue()) {\n other.incrementCount();\n found = true;\n break;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (possiblePairs_1_1 && !possiblePairs_1_1.done && (_a = possiblePairs_1.return)) _a.call(possiblePairs_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (!found) {\n possiblePairs.push(pair);\n }\n };\n RSS14Reader.prototype.reset = function () {\n this.possibleLeftPairs.length = 0;\n this.possibleRightPairs.length = 0;\n };\n RSS14Reader.constructResult = function (leftPair, rightPair) {\n var symbolValue = 4537077 * leftPair.getValue() + rightPair.getValue();\n var text = new String(symbolValue).toString();\n var buffer = new StringBuilder();\n for (var i = 13 - text.length; i > 0; i--) {\n buffer.append('0');\n }\n buffer.append(text);\n var checkDigit = 0;\n for (var i = 0; i < 13; i++) {\n var digit = buffer.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n checkDigit += ((i & 0x01) === 0) ? 3 * digit : digit;\n }\n checkDigit = 10 - (checkDigit % 10);\n if (checkDigit === 10) {\n checkDigit = 0;\n }\n buffer.append(checkDigit.toString());\n var leftPoints = leftPair.getFinderPattern().getResultPoints();\n var rightPoints = rightPair.getFinderPattern().getResultPoints();\n return new Result(buffer.toString(), null, 0, [leftPoints[0], leftPoints[1], rightPoints[0], rightPoints[1]], BarcodeFormat.RSS_14, new Date().getTime());\n };\n RSS14Reader.checkChecksum = function (leftPair, rightPair) {\n var checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79;\n var targetCheckValue = 9 * leftPair.getFinderPattern().getValue() + rightPair.getFinderPattern().getValue();\n if (targetCheckValue > 72) {\n targetCheckValue--;\n }\n if (targetCheckValue > 8) {\n targetCheckValue--;\n }\n return checkValue === targetCheckValue;\n };\n RSS14Reader.prototype.decodePair = function (row, right, rowNumber, hints) {\n try {\n var startEnd = this.findFinderPattern(row, right);\n var pattern = this.parseFoundFinderPattern(row, rowNumber, right, startEnd);\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n var center = (startEnd[0] + startEnd[1]) / 2.0;\n if (right) {\n // row is actually reversed\n center = row.getSize() - 1 - center;\n }\n resultPointCallback.foundPossibleResultPoint(new ResultPoint(center, rowNumber));\n }\n var outside = this.decodeDataCharacter(row, pattern, true);\n var inside = this.decodeDataCharacter(row, pattern, false);\n return new Pair(1597 * outside.getValue() + inside.getValue(), outside.getChecksumPortion() + 4 * inside.getChecksumPortion(), pattern);\n }\n catch (err) {\n return null;\n }\n };\n RSS14Reader.prototype.decodeDataCharacter = function (row, pattern, outsideChar) {\n var counters = this.getDataCharacterCounters();\n for (var x = 0; x < counters.length; x++) {\n counters[x] = 0;\n }\n if (outsideChar) {\n OneDReader.recordPatternInReverse(row, pattern.getStartEnd()[0], counters);\n }\n else {\n OneDReader.recordPattern(row, pattern.getStartEnd()[1] + 1, counters);\n // reverse it\n for (var i = 0, j = counters.length - 1; i < j; i++, j--) {\n var temp = counters[i];\n counters[i] = counters[j];\n counters[j] = temp;\n }\n }\n var numModules = outsideChar ? 16 : 15;\n var elementWidth = MathUtils.sum(new Int32Array(counters)) / numModules;\n var oddCounts = this.getOddCounts();\n var evenCounts = this.getEvenCounts();\n var oddRoundingErrors = this.getOddRoundingErrors();\n var evenRoundingErrors = this.getEvenRoundingErrors();\n for (var i = 0; i < counters.length; i++) {\n var value = counters[i] / elementWidth;\n var count = Math.floor(value + 0.5);\n if (count < 1) {\n count = 1;\n }\n else if (count > 8) {\n count = 8;\n }\n var offset = Math.floor(i / 2);\n if ((i & 0x01) === 0) {\n oddCounts[offset] = count;\n oddRoundingErrors[offset] = value - count;\n }\n else {\n evenCounts[offset] = count;\n evenRoundingErrors[offset] = value - count;\n }\n }\n this.adjustOddEvenCounts(outsideChar, numModules);\n var oddSum = 0;\n var oddChecksumPortion = 0;\n for (var i = oddCounts.length - 1; i >= 0; i--) {\n oddChecksumPortion *= 9;\n oddChecksumPortion += oddCounts[i];\n oddSum += oddCounts[i];\n }\n var evenChecksumPortion = 0;\n var evenSum = 0;\n for (var i = evenCounts.length - 1; i >= 0; i--) {\n evenChecksumPortion *= 9;\n evenChecksumPortion += evenCounts[i];\n evenSum += evenCounts[i];\n }\n var checksumPortion = oddChecksumPortion + 3 * evenChecksumPortion;\n if (outsideChar) {\n if ((oddSum & 0x01) !== 0 || oddSum > 12 || oddSum < 4) {\n throw new NotFoundException();\n }\n var group = (12 - oddSum) / 2;\n var oddWidest = RSS14Reader.OUTSIDE_ODD_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, false);\n var vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, true);\n var tEven = RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET[group];\n var gSum = RSS14Reader.OUTSIDE_GSUM[group];\n return new DataCharacter(vOdd * tEven + vEven + gSum, checksumPortion);\n }\n else {\n if ((evenSum & 0x01) !== 0 || evenSum > 10 || evenSum < 4) {\n throw new NotFoundException();\n }\n var group = (10 - evenSum) / 2;\n var oddWidest = RSS14Reader.INSIDE_ODD_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true);\n var vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false);\n var tOdd = RSS14Reader.INSIDE_ODD_TOTAL_SUBSET[group];\n var gSum = RSS14Reader.INSIDE_GSUM[group];\n return new DataCharacter(vEven * tOdd + vOdd + gSum, checksumPortion);\n }\n };\n RSS14Reader.prototype.findFinderPattern = function (row, rightFinderPattern) {\n var counters = this.getDecodeFinderCounters();\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var width = row.getSize();\n var isWhite = false;\n var rowOffset = 0;\n while (rowOffset < width) {\n isWhite = !row.get(rowOffset);\n if (rightFinderPattern === isWhite) {\n // Will encounter white first when searching for right finder pattern\n break;\n }\n rowOffset++;\n }\n var counterPosition = 0;\n var patternStart = rowOffset;\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === 3) {\n if (AbstractRSSReader.isFinderPattern(counters)) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n counters[0] = counters[2];\n counters[1] = counters[3];\n counters[2] = 0;\n counters[3] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n };\n RSS14Reader.prototype.parseFoundFinderPattern = function (row, rowNumber, right, startEnd) {\n // Actually we found elements 2-5\n var firstIsBlack = row.get(startEnd[0]);\n var firstElementStart = startEnd[0] - 1;\n // Locate element 1\n while (firstElementStart >= 0 && firstIsBlack !== row.get(firstElementStart)) {\n firstElementStart--;\n }\n firstElementStart++;\n var firstCounter = startEnd[0] - firstElementStart;\n // Make 'counters' hold 1-4\n var counters = this.getDecodeFinderCounters();\n var copy = new Int32Array(counters.length);\n System.arraycopy(counters, 0, copy, 1, counters.length - 1);\n copy[0] = firstCounter;\n var value = this.parseFinderValue(copy, RSS14Reader.FINDER_PATTERNS);\n var start = firstElementStart;\n var end = startEnd[1];\n if (right) {\n // row is actually reversed\n start = row.getSize() - 1 - start;\n end = row.getSize() - 1 - end;\n }\n return new FinderPattern(value, [firstElementStart, startEnd[1]], start, end, rowNumber);\n };\n RSS14Reader.prototype.adjustOddEvenCounts = function (outsideChar, numModules) {\n var oddSum = MathUtils.sum(new Int32Array(this.getOddCounts()));\n var evenSum = MathUtils.sum(new Int32Array(this.getEvenCounts()));\n var incrementOdd = false;\n var decrementOdd = false;\n var incrementEven = false;\n var decrementEven = false;\n if (outsideChar) {\n if (oddSum > 12) {\n decrementOdd = true;\n }\n else if (oddSum < 4) {\n incrementOdd = true;\n }\n if (evenSum > 12) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n }\n else {\n if (oddSum > 11) {\n decrementOdd = true;\n }\n else if (oddSum < 5) {\n incrementOdd = true;\n }\n if (evenSum > 10) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n }\n var mismatch = oddSum + evenSum - numModules;\n var oddParityBad = (oddSum & 0x01) === (outsideChar ? 1 : 0);\n var evenParityBad = (evenSum & 0x01) === 1;\n if (mismatch === 1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException();\n }\n decrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException();\n }\n decrementEven = true;\n }\n }\n else if (mismatch === -1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException();\n }\n incrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException();\n }\n incrementEven = true;\n }\n }\n else if (mismatch === 0) {\n if (oddParityBad) {\n if (!evenParityBad) {\n throw new NotFoundException();\n }\n // Both bad\n if (oddSum < evenSum) {\n incrementOdd = true;\n decrementEven = true;\n }\n else {\n decrementOdd = true;\n incrementEven = true;\n }\n }\n else {\n if (evenParityBad) {\n throw new NotFoundException();\n }\n // Nothing to do!\n }\n }\n else {\n throw new NotFoundException();\n }\n if (incrementOdd) {\n if (decrementOdd) {\n throw new NotFoundException();\n }\n AbstractRSSReader.increment(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (decrementOdd) {\n AbstractRSSReader.decrement(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (incrementEven) {\n if (decrementEven) {\n throw new NotFoundException();\n }\n AbstractRSSReader.increment(this.getEvenCounts(), this.getOddRoundingErrors());\n }\n if (decrementEven) {\n AbstractRSSReader.decrement(this.getEvenCounts(), this.getEvenRoundingErrors());\n }\n };\n RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET = [1, 10, 34, 70, 126];\n RSS14Reader.INSIDE_ODD_TOTAL_SUBSET = [4, 20, 48, 81];\n RSS14Reader.OUTSIDE_GSUM = [0, 161, 961, 2015, 2715];\n RSS14Reader.INSIDE_GSUM = [0, 336, 1036, 1516];\n RSS14Reader.OUTSIDE_ODD_WIDEST = [8, 6, 4, 3, 1];\n RSS14Reader.INSIDE_ODD_WIDEST = [2, 4, 6, 8];\n RSS14Reader.FINDER_PATTERNS = [\n Int32Array.from([3, 8, 2, 1]),\n Int32Array.from([3, 5, 5, 1]),\n Int32Array.from([3, 3, 7, 1]),\n Int32Array.from([3, 1, 9, 1]),\n Int32Array.from([2, 7, 4, 1]),\n Int32Array.from([2, 5, 6, 1]),\n Int32Array.from([2, 3, 8, 1]),\n Int32Array.from([1, 5, 7, 1]),\n Int32Array.from([1, 3, 9, 1]),\n ];\n return RSS14Reader;\n}(AbstractRSSReader));\nexport default RSS14Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport NotFoundException from '../NotFoundException';\nimport Code128Reader from './Code128Reader';\nimport Code39Reader from './Code39Reader';\nimport Code93Reader from './Code93Reader';\nimport ITFReader from './ITFReader';\nimport MultiFormatUPCEANReader from './MultiFormatUPCEANReader';\nimport OneDReader from './OneDReader';\nimport CodaBarReader from './CodaBarReader';\nimport RSSExpandedReader from './rss/expanded/RSSExpandedReader';\nimport RSS14Reader from './rss/RSS14Reader';\n/**\n * @author Daniel Switkin \n * @author Sean Owen\n */\nvar MultiFormatOneDReader = /** @class */ (function (_super) {\n __extends(MultiFormatOneDReader, _super);\n function MultiFormatOneDReader(hints) {\n var _this = _super.call(this) || this;\n _this.readers = [];\n var possibleFormats = !hints ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n var useCode39CheckDigit = hints && hints.get(DecodeHintType.ASSUME_CODE_39_CHECK_DIGIT) !== undefined;\n var useCode39ExtendedMode = hints && hints.get(DecodeHintType.ENABLE_CODE_39_EXTENDED_MODE) !== undefined;\n if (possibleFormats) {\n if (possibleFormats.includes(BarcodeFormat.EAN_13) ||\n possibleFormats.includes(BarcodeFormat.UPC_A) ||\n possibleFormats.includes(BarcodeFormat.EAN_8) ||\n possibleFormats.includes(BarcodeFormat.UPC_E)) {\n _this.readers.push(new MultiFormatUPCEANReader(hints));\n }\n if (possibleFormats.includes(BarcodeFormat.CODE_39)) {\n _this.readers.push(new Code39Reader(useCode39CheckDigit, useCode39ExtendedMode));\n }\n if (possibleFormats.includes(BarcodeFormat.CODE_93)) {\n _this.readers.push(new Code93Reader());\n }\n if (possibleFormats.includes(BarcodeFormat.CODE_128)) {\n _this.readers.push(new Code128Reader());\n }\n if (possibleFormats.includes(BarcodeFormat.ITF)) {\n _this.readers.push(new ITFReader());\n }\n if (possibleFormats.includes(BarcodeFormat.CODABAR)) {\n _this.readers.push(new CodaBarReader());\n }\n if (possibleFormats.includes(BarcodeFormat.RSS_14)) {\n _this.readers.push(new RSS14Reader());\n }\n if (possibleFormats.includes(BarcodeFormat.RSS_EXPANDED)) {\n console.warn('RSS Expanded reader IS NOT ready for production yet! use at your own risk.');\n _this.readers.push(new RSSExpandedReader());\n }\n }\n if (_this.readers.length === 0) {\n _this.readers.push(new MultiFormatUPCEANReader(hints));\n _this.readers.push(new Code39Reader());\n // this.readers.push(new CodaBarReader());\n _this.readers.push(new Code93Reader());\n _this.readers.push(new MultiFormatUPCEANReader(hints));\n _this.readers.push(new Code128Reader());\n _this.readers.push(new ITFReader());\n _this.readers.push(new RSS14Reader());\n // this.readers.push(new RSSExpandedReader());\n }\n return _this;\n }\n // @Override\n MultiFormatOneDReader.prototype.decodeRow = function (rowNumber, row, hints) {\n for (var i = 0; i < this.readers.length; i++) {\n try {\n return this.readers[i].decodeRow(rowNumber, row, hints);\n }\n catch (re) {\n // continue\n }\n }\n throw new NotFoundException();\n };\n // @Override\n MultiFormatOneDReader.prototype.reset = function () {\n this.readers.forEach(function (reader) { return reader.reset(); });\n };\n return MultiFormatOneDReader;\n}(OneDReader));\nexport default MultiFormatOneDReader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport MultiFormatOneDReader from '../core/oned/MultiFormatOneDReader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Barcode reader reader to use from browser.\n */\nvar BrowserBarcodeReader = /** @class */ (function (_super) {\n __extends(BrowserBarcodeReader, _super);\n /**\n * Creates an instance of BrowserBarcodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n * @param {Map} hints\n */\n function BrowserBarcodeReader(timeBetweenScansMillis, hints) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new MultiFormatOneDReader(hints), timeBetweenScansMillis, hints) || this;\n }\n return BrowserBarcodeReader;\n}(BrowserCodeReader));\nexport { BrowserBarcodeReader };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport FormatException from '../../FormatException';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n *

    Encapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.

    \n */\nvar ECBlocks = /** @class */ (function () {\n function ECBlocks(ecCodewords, ecBlocks1, ecBlocks2) {\n this.ecCodewords = ecCodewords;\n this.ecBlocks = [ecBlocks1];\n ecBlocks2 && this.ecBlocks.push(ecBlocks2);\n }\n ECBlocks.prototype.getECCodewords = function () {\n return this.ecCodewords;\n };\n ECBlocks.prototype.getECBlocks = function () {\n return this.ecBlocks;\n };\n return ECBlocks;\n}());\nexport { ECBlocks };\n/**\n *

    Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the Data Matrix code version's format.

    \n */\nvar ECB = /** @class */ (function () {\n function ECB(count, dataCodewords) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n ECB.prototype.getCount = function () {\n return this.count;\n };\n ECB.prototype.getDataCodewords = function () {\n return this.dataCodewords;\n };\n return ECB;\n}());\nexport { ECB };\n/**\n * The Version object encapsulates attributes about a particular\n * size Data Matrix Code.\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar Version = /** @class */ (function () {\n function Version(versionNumber, symbolSizeRows, symbolSizeColumns, dataRegionSizeRows, dataRegionSizeColumns, ecBlocks) {\n var e_1, _a;\n this.versionNumber = versionNumber;\n this.symbolSizeRows = symbolSizeRows;\n this.symbolSizeColumns = symbolSizeColumns;\n this.dataRegionSizeRows = dataRegionSizeRows;\n this.dataRegionSizeColumns = dataRegionSizeColumns;\n this.ecBlocks = ecBlocks;\n // Calculate the total number of codewords\n var total = 0;\n var ecCodewords = ecBlocks.getECCodewords();\n var ecbArray = ecBlocks.getECBlocks();\n try {\n for (var ecbArray_1 = __values(ecbArray), ecbArray_1_1 = ecbArray_1.next(); !ecbArray_1_1.done; ecbArray_1_1 = ecbArray_1.next()) {\n var ecBlock = ecbArray_1_1.value;\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ecbArray_1_1 && !ecbArray_1_1.done && (_a = ecbArray_1.return)) _a.call(ecbArray_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.totalCodewords = total;\n }\n Version.prototype.getVersionNumber = function () {\n return this.versionNumber;\n };\n Version.prototype.getSymbolSizeRows = function () {\n return this.symbolSizeRows;\n };\n Version.prototype.getSymbolSizeColumns = function () {\n return this.symbolSizeColumns;\n };\n Version.prototype.getDataRegionSizeRows = function () {\n return this.dataRegionSizeRows;\n };\n Version.prototype.getDataRegionSizeColumns = function () {\n return this.dataRegionSizeColumns;\n };\n Version.prototype.getTotalCodewords = function () {\n return this.totalCodewords;\n };\n Version.prototype.getECBlocks = function () {\n return this.ecBlocks;\n };\n /**\n *

    Deduces version information from Data Matrix dimensions.

    \n *\n * @param numRows Number of rows in modules\n * @param numColumns Number of columns in modules\n * @return Version for a Data Matrix Code of those dimensions\n * @throws FormatException if dimensions do correspond to a valid Data Matrix size\n */\n Version.getVersionForDimensions = function (numRows, numColumns) {\n var e_2, _a;\n if ((numRows & 0x01) !== 0 || (numColumns & 0x01) !== 0) {\n throw new FormatException();\n }\n try {\n for (var _b = __values(Version.VERSIONS), _c = _b.next(); !_c.done; _c = _b.next()) {\n var version = _c.value;\n if (version.symbolSizeRows === numRows && version.symbolSizeColumns === numColumns) {\n return version;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n throw new FormatException();\n };\n // @Override\n Version.prototype.toString = function () {\n return '' + this.versionNumber;\n };\n /**\n * See ISO 16022:2006 5.5.1 Table 7\n */\n Version.buildVersions = function () {\n return [\n new Version(1, 10, 10, 8, 8, new ECBlocks(5, new ECB(1, 3))),\n new Version(2, 12, 12, 10, 10, new ECBlocks(7, new ECB(1, 5))),\n new Version(3, 14, 14, 12, 12, new ECBlocks(10, new ECB(1, 8))),\n new Version(4, 16, 16, 14, 14, new ECBlocks(12, new ECB(1, 12))),\n new Version(5, 18, 18, 16, 16, new ECBlocks(14, new ECB(1, 18))),\n new Version(6, 20, 20, 18, 18, new ECBlocks(18, new ECB(1, 22))),\n new Version(7, 22, 22, 20, 20, new ECBlocks(20, new ECB(1, 30))),\n new Version(8, 24, 24, 22, 22, new ECBlocks(24, new ECB(1, 36))),\n new Version(9, 26, 26, 24, 24, new ECBlocks(28, new ECB(1, 44))),\n new Version(10, 32, 32, 14, 14, new ECBlocks(36, new ECB(1, 62))),\n new Version(11, 36, 36, 16, 16, new ECBlocks(42, new ECB(1, 86))),\n new Version(12, 40, 40, 18, 18, new ECBlocks(48, new ECB(1, 114))),\n new Version(13, 44, 44, 20, 20, new ECBlocks(56, new ECB(1, 144))),\n new Version(14, 48, 48, 22, 22, new ECBlocks(68, new ECB(1, 174))),\n new Version(15, 52, 52, 24, 24, new ECBlocks(42, new ECB(2, 102))),\n new Version(16, 64, 64, 14, 14, new ECBlocks(56, new ECB(2, 140))),\n new Version(17, 72, 72, 16, 16, new ECBlocks(36, new ECB(4, 92))),\n new Version(18, 80, 80, 18, 18, new ECBlocks(48, new ECB(4, 114))),\n new Version(19, 88, 88, 20, 20, new ECBlocks(56, new ECB(4, 144))),\n new Version(20, 96, 96, 22, 22, new ECBlocks(68, new ECB(4, 174))),\n new Version(21, 104, 104, 24, 24, new ECBlocks(56, new ECB(6, 136))),\n new Version(22, 120, 120, 18, 18, new ECBlocks(68, new ECB(6, 175))),\n new Version(23, 132, 132, 20, 20, new ECBlocks(62, new ECB(8, 163))),\n new Version(24, 144, 144, 22, 22, new ECBlocks(62, new ECB(8, 156), new ECB(2, 155))),\n new Version(25, 8, 18, 6, 16, new ECBlocks(7, new ECB(1, 5))),\n new Version(26, 8, 32, 6, 14, new ECBlocks(11, new ECB(1, 10))),\n new Version(27, 12, 26, 10, 24, new ECBlocks(14, new ECB(1, 16))),\n new Version(28, 12, 36, 10, 16, new ECBlocks(18, new ECB(1, 22))),\n new Version(29, 16, 36, 14, 16, new ECBlocks(24, new ECB(1, 32))),\n new Version(30, 16, 48, 14, 22, new ECBlocks(28, new ECB(1, 49)))\n ];\n };\n Version.VERSIONS = Version.buildVersions();\n return Version;\n}());\nexport default Version;\n","import BitMatrix from '../../common/BitMatrix';\nimport Version from './Version';\nimport FormatException from '../../FormatException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @author bbrown@google.com (Brian Brown)\n */\nvar BitMatrixParser = /** @class */ (function () {\n /**\n * @param bitMatrix {@link BitMatrix} to parse\n * @throws FormatException if dimension is < 8 or > 144 or not 0 mod 2\n */\n function BitMatrixParser(bitMatrix) {\n var dimension = bitMatrix.getHeight();\n if (dimension < 8 || dimension > 144 || (dimension & 0x01) !== 0) {\n throw new FormatException();\n }\n this.version = BitMatrixParser.readVersion(bitMatrix);\n this.mappingBitMatrix = this.extractDataRegion(bitMatrix);\n this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight());\n }\n BitMatrixParser.prototype.getVersion = function () {\n return this.version;\n };\n /**\n *

    Creates the version object based on the dimension of the original bit matrix from\n * the datamatrix code.

    \n *\n *

    See ISO 16022:2006 Table 7 - ECC 200 symbol attributes

    \n *\n * @param bitMatrix Original {@link BitMatrix} including alignment patterns\n * @return {@link Version} encapsulating the Data Matrix Code's \"version\"\n * @throws FormatException if the dimensions of the mapping matrix are not valid\n * Data Matrix dimensions.\n */\n BitMatrixParser.readVersion = function (bitMatrix) {\n var numRows = bitMatrix.getHeight();\n var numColumns = bitMatrix.getWidth();\n return Version.getVersionForDimensions(numRows, numColumns);\n };\n /**\n *

    Reads the bits in the {@link BitMatrix} representing the mapping matrix (No alignment patterns)\n * in the correct order in order to reconstitute the codewords bytes contained within the\n * Data Matrix Code.

    \n *\n * @return bytes encoded within the Data Matrix Code\n * @throws FormatException if the exact number of bytes expected is not read\n */\n BitMatrixParser.prototype.readCodewords = function () {\n var result = new Int8Array(this.version.getTotalCodewords());\n var resultOffset = 0;\n var row = 4;\n var column = 0;\n var numRows = this.mappingBitMatrix.getHeight();\n var numColumns = this.mappingBitMatrix.getWidth();\n var corner1Read = false;\n var corner2Read = false;\n var corner3Read = false;\n var corner4Read = false;\n // Read all of the codewords\n do {\n // Check the four corner cases\n if ((row === numRows) && (column === 0) && !corner1Read) {\n result[resultOffset++] = this.readCorner1(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner1Read = true;\n }\n else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x03) !== 0) && !corner2Read) {\n result[resultOffset++] = this.readCorner2(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner2Read = true;\n }\n else if ((row === numRows + 4) && (column === 2) && ((numColumns & 0x07) === 0) && !corner3Read) {\n result[resultOffset++] = this.readCorner3(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner3Read = true;\n }\n else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x07) === 4) && !corner4Read) {\n result[resultOffset++] = this.readCorner4(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner4Read = true;\n }\n else {\n // Sweep upward diagonally to the right\n do {\n if ((row < numRows) && (column >= 0) && !this.readMappingMatrix.get(column, row)) {\n result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n }\n row -= 2;\n column += 2;\n } while ((row >= 0) && (column < numColumns));\n row += 1;\n column += 3;\n // Sweep downward diagonally to the left\n do {\n if ((row >= 0) && (column < numColumns) && !this.readMappingMatrix.get(column, row)) {\n result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n }\n row += 2;\n column -= 2;\n } while ((row < numRows) && (column >= 0));\n row += 3;\n column += 1;\n }\n } while ((row < numRows) || (column < numColumns));\n if (resultOffset !== this.version.getTotalCodewords()) {\n throw new FormatException();\n }\n return result;\n };\n /**\n *

    Reads a bit of the mapping matrix accounting for boundary wrapping.

    \n *\n * @param row Row to read in the mapping matrix\n * @param column Column to read in the mapping matrix\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return value of the given bit in the mapping matrix\n */\n BitMatrixParser.prototype.readModule = function (row, column, numRows, numColumns) {\n // Adjust the row and column indices based on boundary wrapping\n if (row < 0) {\n row += numRows;\n column += 4 - ((numRows + 4) & 0x07);\n }\n if (column < 0) {\n column += numColumns;\n row += 4 - ((numColumns + 4) & 0x07);\n }\n this.readMappingMatrix.set(column, row);\n return this.mappingBitMatrix.get(column, row);\n };\n /**\n *

    Reads the 8 bits of the standard Utah-shaped pattern.

    \n *\n *

    See ISO 16022:2006, 5.8.1 Figure 6

    \n *\n * @param row Current row in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n * @param column Current column in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the utah shape\n */\n BitMatrixParser.prototype.readUtah = function (row, column, numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(row - 2, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 2, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *

    Reads the 8 bits of the special corner condition 1.

    \n *\n *

    See ISO 16022:2006, Figure F.3

    \n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 1\n */\n BitMatrixParser.prototype.readCorner1 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *

    Reads the 8 bits of the special corner condition 2.

    \n *\n *

    See ISO 16022:2006, Figure F.4

    \n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 2\n */\n BitMatrixParser.prototype.readCorner2 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 4, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *

    Reads the 8 bits of the special corner condition 3.

    \n *\n *

    See ISO 16022:2006, Figure F.5

    \n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 3\n */\n BitMatrixParser.prototype.readCorner3 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *

    Reads the 8 bits of the special corner condition 4.

    \n *\n *

    See ISO 16022:2006, Figure F.6

    \n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 4\n */\n BitMatrixParser.prototype.readCorner4 = function (numRows, numColumns) {\n var currentByte = 0;\n if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n };\n /**\n *

    Extracts the data region from a {@link BitMatrix} that contains\n * alignment patterns.

    \n *\n * @param bitMatrix Original {@link BitMatrix} with alignment patterns\n * @return BitMatrix that has the alignment patterns removed\n */\n BitMatrixParser.prototype.extractDataRegion = function (bitMatrix) {\n var symbolSizeRows = this.version.getSymbolSizeRows();\n var symbolSizeColumns = this.version.getSymbolSizeColumns();\n if (bitMatrix.getHeight() !== symbolSizeRows) {\n throw new IllegalArgumentException('Dimension of bitMatrix must match the version size');\n }\n var dataRegionSizeRows = this.version.getDataRegionSizeRows();\n var dataRegionSizeColumns = this.version.getDataRegionSizeColumns();\n var numDataRegionsRow = symbolSizeRows / dataRegionSizeRows | 0;\n var numDataRegionsColumn = symbolSizeColumns / dataRegionSizeColumns | 0;\n var sizeDataRegionRow = numDataRegionsRow * dataRegionSizeRows;\n var sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns;\n var bitMatrixWithoutAlignment = new BitMatrix(sizeDataRegionColumn, sizeDataRegionRow);\n for (var dataRegionRow = 0; dataRegionRow < numDataRegionsRow; ++dataRegionRow) {\n var dataRegionRowOffset = dataRegionRow * dataRegionSizeRows;\n for (var dataRegionColumn = 0; dataRegionColumn < numDataRegionsColumn; ++dataRegionColumn) {\n var dataRegionColumnOffset = dataRegionColumn * dataRegionSizeColumns;\n for (var i = 0; i < dataRegionSizeRows; ++i) {\n var readRowOffset = dataRegionRow * (dataRegionSizeRows + 2) + 1 + i;\n var writeRowOffset = dataRegionRowOffset + i;\n for (var j = 0; j < dataRegionSizeColumns; ++j) {\n var readColumnOffset = dataRegionColumn * (dataRegionSizeColumns + 2) + 1 + j;\n if (bitMatrix.get(readColumnOffset, readRowOffset)) {\n var writeColumnOffset = dataRegionColumnOffset + j;\n bitMatrixWithoutAlignment.set(writeColumnOffset, writeRowOffset);\n }\n }\n }\n }\n }\n return bitMatrixWithoutAlignment;\n };\n return BitMatrixParser;\n}());\nexport default BitMatrixParser;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n *

    Encapsulates a block of data within a Data Matrix Code. Data Matrix Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.

    \n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar DataBlock = /** @class */ (function () {\n function DataBlock(numDataCodewords, codewords) {\n this.numDataCodewords = numDataCodewords;\n this.codewords = codewords;\n }\n /**\n *

    When Data Matrix Codes use multiple data blocks, they actually interleave the bytes of each of them.\n * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n * method will separate the data into original blocks.

    \n *\n * @param rawCodewords bytes as read directly from the Data Matrix Code\n * @param version version of the Data Matrix Code\n * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n * Data Matrix Code\n */\n DataBlock.getDataBlocks = function (rawCodewords, version) {\n var e_1, _a, e_2, _b;\n // Figure out the number and size of data blocks used by this version\n var ecBlocks = version.getECBlocks();\n // First count the total number of data blocks\n var totalBlocks = 0;\n var ecBlockArray = ecBlocks.getECBlocks();\n try {\n for (var ecBlockArray_1 = __values(ecBlockArray), ecBlockArray_1_1 = ecBlockArray_1.next(); !ecBlockArray_1_1.done; ecBlockArray_1_1 = ecBlockArray_1.next()) {\n var ecBlock = ecBlockArray_1_1.value;\n totalBlocks += ecBlock.getCount();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ecBlockArray_1_1 && !ecBlockArray_1_1.done && (_a = ecBlockArray_1.return)) _a.call(ecBlockArray_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n var result = new Array(totalBlocks);\n var numResultBlocks = 0;\n try {\n for (var ecBlockArray_2 = __values(ecBlockArray), ecBlockArray_2_1 = ecBlockArray_2.next(); !ecBlockArray_2_1.done; ecBlockArray_2_1 = ecBlockArray_2.next()) {\n var ecBlock = ecBlockArray_2_1.value;\n for (var i = 0; i < ecBlock.getCount(); i++) {\n var numDataCodewords = ecBlock.getDataCodewords();\n var numBlockCodewords = ecBlocks.getECCodewords() + numDataCodewords;\n result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (ecBlockArray_2_1 && !ecBlockArray_2_1.done && (_b = ecBlockArray_2.return)) _b.call(ecBlockArray_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // All blocks have the same amount of data, except that the last n\n // (where n may be 0) have 1 less byte. Figure out where these start.\n // TODO(bbrown): There is only one case where there is a difference for Data Matrix for size 144\n var longerBlocksTotalCodewords = result[0].codewords.length;\n // int shorterBlocksTotalCodewords = longerBlocksTotalCodewords - 1;\n var longerBlocksNumDataCodewords = longerBlocksTotalCodewords - ecBlocks.getECCodewords();\n var shorterBlocksNumDataCodewords = longerBlocksNumDataCodewords - 1;\n // The last elements of result may be 1 element shorter for 144 matrix\n // first fill out as many elements as all of them have minus 1\n var rawCodewordsOffset = 0;\n for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n }\n }\n // Fill out the last data block in the longer ones\n var specialVersion = version.getVersionNumber() === 24;\n var numLongerBlocks = specialVersion ? 8 : numResultBlocks;\n for (var j = 0; j < numLongerBlocks; j++) {\n result[j].codewords[longerBlocksNumDataCodewords - 1] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n var max = result[0].codewords.length;\n for (var i = longerBlocksNumDataCodewords; i < max; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n var jOffset = specialVersion ? (j + 8) % numResultBlocks : j;\n var iOffset = specialVersion && jOffset > 7 ? i - 1 : i;\n result[jOffset].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n }\n }\n if (rawCodewordsOffset !== rawCodewords.length) {\n throw new IllegalArgumentException();\n }\n return result;\n };\n DataBlock.prototype.getNumDataCodewords = function () {\n return this.numDataCodewords;\n };\n DataBlock.prototype.getCodewords = function () {\n return this.codewords;\n };\n return DataBlock;\n}());\nexport default DataBlock;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\nimport IllegalArgumentException from '../IllegalArgumentException';\n/**\n *

    This provides an easy abstraction to read bits at a time from a sequence of bytes, where the\n * number of bits read is not often a multiple of 8.

    \n *\n *

    This class is thread-safe but not reentrant -- unless the caller modifies the bytes array\n * it passed in, in which case all bets are off.

    \n *\n * @author Sean Owen\n */\nvar BitSource = /** @class */ (function () {\n /**\n * @param bytes bytes from which this will read bits. Bits will be read from the first byte first.\n * Bits are read within a byte from most-significant to least-significant bit.\n */\n function BitSource(bytes) {\n this.bytes = bytes;\n this.byteOffset = 0;\n this.bitOffset = 0;\n }\n /**\n * @return index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.\n */\n BitSource.prototype.getBitOffset = function () {\n return this.bitOffset;\n };\n /**\n * @return index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.\n */\n BitSource.prototype.getByteOffset = function () {\n return this.byteOffset;\n };\n /**\n * @param numBits number of bits to read\n * @return int representing the bits read. The bits will appear as the least-significant\n * bits of the int\n * @throws IllegalArgumentException if numBits isn't in [1,32] or more than is available\n */\n BitSource.prototype.readBits = function (numBits /*int*/) {\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n throw new IllegalArgumentException('' + numBits);\n }\n var result = 0;\n var bitOffset = this.bitOffset;\n var byteOffset = this.byteOffset;\n var bytes = this.bytes;\n // First, read remainder from current byte\n if (bitOffset > 0) {\n var bitsLeft = 8 - bitOffset;\n var toRead = numBits < bitsLeft ? numBits : bitsLeft;\n var bitsToNotRead = bitsLeft - toRead;\n var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\n result = (bytes[byteOffset] & mask) >> bitsToNotRead;\n numBits -= toRead;\n bitOffset += toRead;\n if (bitOffset === 8) {\n bitOffset = 0;\n byteOffset++;\n }\n }\n // Next read whole bytes\n if (numBits > 0) {\n while (numBits >= 8) {\n result = (result << 8) | (bytes[byteOffset] & 0xFF);\n byteOffset++;\n numBits -= 8;\n }\n // Finally read a partial byte\n if (numBits > 0) {\n var bitsToNotRead = 8 - numBits;\n var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\n result = (result << numBits) | ((bytes[byteOffset] & mask) >> bitsToNotRead);\n bitOffset += numBits;\n }\n }\n this.bitOffset = bitOffset;\n this.byteOffset = byteOffset;\n return result;\n };\n /**\n * @return number of bits that can be read successfully\n */\n BitSource.prototype.available = function () {\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n };\n return BitSource;\n}());\nexport default BitSource;\n","import DecoderResult from '../../common/DecoderResult';\nimport BitSource from '../../common/BitSource';\nimport StringBuilder from '../../util/StringBuilder';\nimport StringEncoding from '../../util/StringEncoding';\nimport StringUtils from '../../common/StringUtils';\nimport FormatException from '../../FormatException';\nimport IllegalStateException from '../../IllegalStateException';\n/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"PAD_ENCODE\"] = 0] = \"PAD_ENCODE\";\n Mode[Mode[\"ASCII_ENCODE\"] = 1] = \"ASCII_ENCODE\";\n Mode[Mode[\"C40_ENCODE\"] = 2] = \"C40_ENCODE\";\n Mode[Mode[\"TEXT_ENCODE\"] = 3] = \"TEXT_ENCODE\";\n Mode[Mode[\"ANSIX12_ENCODE\"] = 4] = \"ANSIX12_ENCODE\";\n Mode[Mode[\"EDIFACT_ENCODE\"] = 5] = \"EDIFACT_ENCODE\";\n Mode[Mode[\"BASE256_ENCODE\"] = 6] = \"BASE256_ENCODE\";\n})(Mode || (Mode = {}));\n/**\n *

    Data Matrix Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one Data Matrix Code. This class decodes the bits back into text.

    \n *\n *

    See ISO 16022:2006, 5.2.1 - 5.2.9.2

    \n *\n * @author bbrown@google.com (Brian Brown)\n * @author Sean Owen\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n function DecodedBitStreamParser() {\n }\n DecodedBitStreamParser.decode = function (bytes) {\n var bits = new BitSource(bytes);\n var result = new StringBuilder();\n var resultTrailer = new StringBuilder();\n var byteSegments = new Array();\n var mode = Mode.ASCII_ENCODE;\n do {\n if (mode === Mode.ASCII_ENCODE) {\n mode = this.decodeAsciiSegment(bits, result, resultTrailer);\n }\n else {\n switch (mode) {\n case Mode.C40_ENCODE:\n this.decodeC40Segment(bits, result);\n break;\n case Mode.TEXT_ENCODE:\n this.decodeTextSegment(bits, result);\n break;\n case Mode.ANSIX12_ENCODE:\n this.decodeAnsiX12Segment(bits, result);\n break;\n case Mode.EDIFACT_ENCODE:\n this.decodeEdifactSegment(bits, result);\n break;\n case Mode.BASE256_ENCODE:\n this.decodeBase256Segment(bits, result, byteSegments);\n break;\n default:\n throw new FormatException();\n }\n mode = Mode.ASCII_ENCODE;\n }\n } while (mode !== Mode.PAD_ENCODE && bits.available() > 0);\n if (resultTrailer.length() > 0) {\n result.append(resultTrailer.toString());\n }\n return new DecoderResult(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, null);\n };\n /**\n * See ISO 16022:2006, 5.2.3 and Annex C, Table C.2\n */\n DecodedBitStreamParser.decodeAsciiSegment = function (bits, result, resultTrailer) {\n var upperShift = false;\n do {\n var oneByte = bits.readBits(8);\n if (oneByte === 0) {\n throw new FormatException();\n }\n else if (oneByte <= 128) { // ASCII data (ASCII value + 1)\n if (upperShift) {\n oneByte += 128;\n // upperShift = false;\n }\n result.append(String.fromCharCode(oneByte - 1));\n return Mode.ASCII_ENCODE;\n }\n else if (oneByte === 129) { // Pad\n return Mode.PAD_ENCODE;\n }\n else if (oneByte <= 229) { // 2-digit data 00-99 (Numeric Value + 130)\n var value = oneByte - 130;\n if (value < 10) { // pad with '0' for single digit values\n result.append('0');\n }\n result.append('' + value);\n }\n else {\n switch (oneByte) {\n case 230: // Latch to C40 encodation\n return Mode.C40_ENCODE;\n case 231: // Latch to Base 256 encodation\n return Mode.BASE256_ENCODE;\n case 232: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 233: // Structured Append\n case 234: // Reader Programming\n // Ignore these symbols for now\n // throw ReaderException.getInstance();\n break;\n case 235: // Upper Shift (shift to Extended ASCII)\n upperShift = true;\n break;\n case 236: // 05 Macro\n result.append('[)>\\u001E05\\u001D');\n resultTrailer.insert(0, '\\u001E\\u0004');\n break;\n case 237: // 06 Macro\n result.append('[)>\\u001E06\\u001D');\n resultTrailer.insert(0, '\\u001E\\u0004');\n break;\n case 238: // Latch to ANSI X12 encodation\n return Mode.ANSIX12_ENCODE;\n case 239: // Latch to Text encodation\n return Mode.TEXT_ENCODE;\n case 240: // Latch to EDIFACT encodation\n return Mode.EDIFACT_ENCODE;\n case 241: // ECI Character\n // TODO(bbrown): I think we need to support ECI\n // throw ReaderException.getInstance();\n // Ignore this symbol for now\n break;\n default:\n // Not to be used in ASCII encodation\n // but work around encoders that end with 254, latch back to ASCII\n if (oneByte !== 254 || bits.available() !== 0) {\n throw new FormatException();\n }\n break;\n }\n }\n } while (bits.available() > 0);\n return Mode.ASCII_ENCODE;\n };\n /**\n * See ISO 16022:2006, 5.2.5 and Annex C, Table C.1\n */\n DecodedBitStreamParser.decodeC40Segment = function (bits, result) {\n // Three C40 values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n // TODO(bbrown): The Upper Shift with C40 doesn't work in the 4 value scenario all the time\n var upperShift = false;\n var cValues = [];\n var shift = 0;\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n var firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (var i = 0; i < 3; i++) {\n var cValue = cValues[i];\n switch (shift) {\n case 0:\n if (cValue < 3) {\n shift = cValue + 1;\n }\n else if (cValue < this.C40_BASIC_SET_CHARS.length) {\n var c40char = this.C40_BASIC_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(c40char);\n }\n }\n else {\n throw new FormatException();\n }\n break;\n case 1:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 128));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue));\n }\n shift = 0;\n break;\n case 2:\n if (cValue < this.C40_SHIFT2_SET_CHARS.length) {\n var c40char = this.C40_SHIFT2_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(c40char);\n }\n }\n else {\n switch (cValue) {\n case 27: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 30: // Upper Shift\n upperShift = true;\n break;\n default:\n throw new FormatException();\n }\n }\n shift = 0;\n break;\n case 3:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 224));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue + 96));\n }\n shift = 0;\n break;\n default:\n throw new FormatException();\n }\n }\n } while (bits.available() > 0);\n };\n /**\n * See ISO 16022:2006, 5.2.6 and Annex C, Table C.2\n */\n DecodedBitStreamParser.decodeTextSegment = function (bits, result) {\n // Three Text values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n // TODO(bbrown): The Upper Shift with Text doesn't work in the 4 value scenario all the time\n var upperShift = false;\n var cValues = [];\n var shift = 0;\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n var firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (var i = 0; i < 3; i++) {\n var cValue = cValues[i];\n switch (shift) {\n case 0:\n if (cValue < 3) {\n shift = cValue + 1;\n }\n else if (cValue < this.TEXT_BASIC_SET_CHARS.length) {\n var textChar = this.TEXT_BASIC_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n }\n else {\n throw new FormatException();\n }\n break;\n case 1:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 128));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue));\n }\n shift = 0;\n break;\n case 2:\n // Shift 2 for Text is the same encoding as C40\n if (cValue < this.TEXT_SHIFT2_SET_CHARS.length) {\n var textChar = this.TEXT_SHIFT2_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n }\n else {\n switch (cValue) {\n case 27: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 30: // Upper Shift\n upperShift = true;\n break;\n default:\n throw new FormatException();\n }\n }\n shift = 0;\n break;\n case 3:\n if (cValue < this.TEXT_SHIFT3_SET_CHARS.length) {\n var textChar = this.TEXT_SHIFT3_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n shift = 0;\n }\n else {\n throw new FormatException();\n }\n break;\n default:\n throw new FormatException();\n }\n }\n } while (bits.available() > 0);\n };\n /**\n * See ISO 16022:2006, 5.2.7\n */\n DecodedBitStreamParser.decodeAnsiX12Segment = function (bits, result) {\n // Three ANSI X12 values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n var cValues = [];\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n var firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (var i = 0; i < 3; i++) {\n var cValue = cValues[i];\n switch (cValue) {\n case 0: // X12 segment terminator \n result.append('\\r');\n break;\n case 1: // X12 segment separator *\n result.append('*');\n break;\n case 2: // X12 sub-element separator >\n result.append('>');\n break;\n case 3: // space\n result.append(' ');\n break;\n default:\n if (cValue < 14) { // 0 - 9\n result.append(String.fromCharCode(cValue + 44));\n }\n else if (cValue < 40) { // A - Z\n result.append(String.fromCharCode(cValue + 51));\n }\n else {\n throw new FormatException();\n }\n break;\n }\n }\n } while (bits.available() > 0);\n };\n DecodedBitStreamParser.parseTwoBytes = function (firstByte, secondByte, result) {\n var fullBitValue = (firstByte << 8) + secondByte - 1;\n var temp = Math.floor(fullBitValue / 1600);\n result[0] = temp;\n fullBitValue -= temp * 1600;\n temp = Math.floor(fullBitValue / 40);\n result[1] = temp;\n result[2] = fullBitValue - temp * 40;\n };\n /**\n * See ISO 16022:2006, 5.2.8 and Annex C Table C.3\n */\n DecodedBitStreamParser.decodeEdifactSegment = function (bits, result) {\n do {\n // If there is only two or less bytes left then it will be encoded as ASCII\n if (bits.available() <= 16) {\n return;\n }\n for (var i = 0; i < 4; i++) {\n var edifactValue = bits.readBits(6);\n // Check for the unlatch character\n if (edifactValue === 0x1F) { // 011111\n // Read rest of byte, which should be 0, and stop\n var bitsLeft = 8 - bits.getBitOffset();\n if (bitsLeft !== 8) {\n bits.readBits(bitsLeft);\n }\n return;\n }\n if ((edifactValue & 0x20) === 0) { // no 1 in the leading (6th) bit\n edifactValue |= 0x40; // Add a leading 01 to the 6 bit binary value\n }\n result.append(String.fromCharCode(edifactValue));\n }\n } while (bits.available() > 0);\n };\n /**\n * See ISO 16022:2006, 5.2.9 and Annex B, B.2\n */\n DecodedBitStreamParser.decodeBase256Segment = function (bits, result, byteSegments) {\n // Figure out how long the Base 256 Segment is.\n var codewordPosition = 1 + bits.getByteOffset(); // position is 1-indexed\n var d1 = this.unrandomize255State(bits.readBits(8), codewordPosition++);\n var count;\n if (d1 === 0) { // Read the remainder of the symbol\n count = bits.available() / 8 | 0;\n }\n else if (d1 < 250) {\n count = d1;\n }\n else {\n count = 250 * (d1 - 249) + this.unrandomize255State(bits.readBits(8), codewordPosition++);\n }\n // We're seeing NegativeArraySizeException errors from users.\n if (count < 0) {\n throw new FormatException();\n }\n var bytes = new Uint8Array(count);\n for (var i = 0; i < count; i++) {\n // Have seen this particular error in the wild, such as at\n // http://www.bcgen.com/demo/IDAutomationStreamingDataMatrix.aspx?MODE=3&D=Fred&PFMT=3&PT=F&X=0.3&O=0&LM=0.2\n if (bits.available() < 8) {\n throw new FormatException();\n }\n bytes[i] = this.unrandomize255State(bits.readBits(8), codewordPosition++);\n }\n byteSegments.push(bytes);\n try {\n result.append(StringEncoding.decode(bytes, StringUtils.ISO88591));\n }\n catch (uee) {\n throw new IllegalStateException('Platform does not support required encoding: ' + uee.message);\n }\n };\n /**\n * See ISO 16022:2006, Annex B, B.2\n */\n DecodedBitStreamParser.unrandomize255State = function (randomizedBase256Codeword, base256CodewordPosition) {\n var pseudoRandomNumber = ((149 * base256CodewordPosition) % 255) + 1;\n var tempVariable = randomizedBase256Codeword - pseudoRandomNumber;\n return tempVariable >= 0 ? tempVariable : tempVariable + 256;\n };\n /**\n * See ISO 16022:2006, Annex C Table C.1\n * The C40 Basic Character Set (*'s used for placeholders for the shift values)\n */\n DecodedBitStreamParser.C40_BASIC_SET_CHARS = [\n '*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n ];\n DecodedBitStreamParser.C40_SHIFT2_SET_CHARS = [\n '!', '\"', '#', '$', '%', '&', '\\'', '(', ')', '*', '+', ',', '-', '.',\n '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\\\', ']', '^', '_'\n ];\n /**\n * See ISO 16022:2006, Annex C Table C.2\n * The Text Basic Character Set (*'s used for placeholders for the shift values)\n */\n DecodedBitStreamParser.TEXT_BASIC_SET_CHARS = [\n '*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',\n 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'\n ];\n // Shift 2 for Text is the same encoding as C40\n DecodedBitStreamParser.TEXT_SHIFT2_SET_CHARS = DecodedBitStreamParser.C40_SHIFT2_SET_CHARS;\n DecodedBitStreamParser.TEXT_SHIFT3_SET_CHARS = [\n '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', String.fromCharCode(127)\n ];\n return DecodedBitStreamParser;\n}());\nexport default DecodedBitStreamParser;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport ChecksumException from '../../ChecksumException';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport BitMatrixParser from './BitMatrixParser';\nimport DataBlock from './DataBlock';\nimport DecodedBitStreamParser from './DecodedBitStreamParser';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n *

    The main class which implements Data Matrix Code decoding -- as opposed to locating and extracting\n * the Data Matrix Code from an image.

    \n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar Decoder = /** @class */ (function () {\n function Decoder() {\n this.rsDecoder = new ReedSolomonDecoder(GenericGF.DATA_MATRIX_FIELD_256);\n }\n /**\n *

    Decodes a Data Matrix Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken\n * to mean a black module.

    \n *\n * @param bits booleans representing white/black Data Matrix Code modules\n * @return text and bytes encoded within the Data Matrix Code\n * @throws FormatException if the Data Matrix Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.decode = function (bits) {\n var e_1, _a;\n // Construct a parser and read version, error-correction level\n var parser = new BitMatrixParser(bits);\n var version = parser.getVersion();\n // Read codewords\n var codewords = parser.readCodewords();\n // Separate into data blocks\n var dataBlocks = DataBlock.getDataBlocks(codewords, version);\n // Count total number of data bytes\n var totalBytes = 0;\n try {\n for (var dataBlocks_1 = __values(dataBlocks), dataBlocks_1_1 = dataBlocks_1.next(); !dataBlocks_1_1.done; dataBlocks_1_1 = dataBlocks_1.next()) {\n var db = dataBlocks_1_1.value;\n totalBytes += db.getNumDataCodewords();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (dataBlocks_1_1 && !dataBlocks_1_1.done && (_a = dataBlocks_1.return)) _a.call(dataBlocks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var resultBytes = new Uint8Array(totalBytes);\n var dataBlocksCount = dataBlocks.length;\n // Error-correct and copy data blocks together into a stream of bytes\n for (var j = 0; j < dataBlocksCount; j++) {\n var dataBlock = dataBlocks[j];\n var codewordBytes = dataBlock.getCodewords();\n var numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (var i = 0; i < numDataCodewords; i++) {\n // De-interlace data blocks.\n resultBytes[i * dataBlocksCount + j] = codewordBytes[i];\n }\n }\n // Decode the contents of that stream of bytes\n return DecodedBitStreamParser.decode(resultBytes);\n };\n /**\n *

    Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place using Reed-Solomon error correction.

    \n *\n * @param codewordBytes data and error correction codewords\n * @param numDataCodewords number of codewords that are data bytes\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords) {\n // const numCodewords = codewordBytes.length;\n // First read into an array of ints\n var codewordsInts = new Int32Array(codewordBytes);\n // for (let i = 0; i < numCodewords; i++) {\n // codewordsInts[i] = codewordBytes[i] & 0xFF;\n // }\n try {\n this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n }\n catch (ignored /* ReedSolomonException */) {\n throw new ChecksumException();\n }\n // Copy back into array of bytes -- only need to worry about the bytes that were data\n // We don't care about errors in the error-correction codewords\n for (var i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = codewordsInts[i];\n }\n };\n return Decoder;\n}());\nexport default Decoder;\n","import WhiteRectangleDetector from '../../common/detector/WhiteRectangleDetector';\nimport DetectorResult from '../../common/DetectorResult';\nimport GridSamplerInstance from '../../common/GridSamplerInstance';\nimport NotFoundException from '../../NotFoundException';\nimport ResultPoint from '../../ResultPoint';\n/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n *

    Encapsulates logic that can detect a Data Matrix Code in an image, even if the Data Matrix Code\n * is rotated or skewed, or partially obscured.

    \n *\n * @author Sean Owen\n */\nvar Detector = /** @class */ (function () {\n function Detector(image) {\n this.image = image;\n this.rectangleDetector = new WhiteRectangleDetector(this.image);\n }\n /**\n *

    Detects a Data Matrix Code in an image.

    \n *\n * @return {@link DetectorResult} encapsulating results of detecting a Data Matrix Code\n * @throws NotFoundException if no Data Matrix Code can be found\n */\n Detector.prototype.detect = function () {\n var cornerPoints = this.rectangleDetector.detect();\n var points = this.detectSolid1(cornerPoints);\n points = this.detectSolid2(points);\n points[3] = this.correctTopRight(points);\n if (!points[3]) {\n throw new NotFoundException();\n }\n points = this.shiftToModuleCenter(points);\n var topLeft = points[0];\n var bottomLeft = points[1];\n var bottomRight = points[2];\n var topRight = points[3];\n var dimensionTop = this.transitionsBetween(topLeft, topRight) + 1;\n var dimensionRight = this.transitionsBetween(bottomRight, topRight) + 1;\n if ((dimensionTop & 0x01) === 1) {\n dimensionTop += 1;\n }\n if ((dimensionRight & 0x01) === 1) {\n dimensionRight += 1;\n }\n if (4 * dimensionTop < 7 * dimensionRight && 4 * dimensionRight < 7 * dimensionTop) {\n // The matrix is square\n dimensionTop = dimensionRight = Math.max(dimensionTop, dimensionRight);\n }\n var bits = Detector.sampleGrid(this.image, topLeft, bottomLeft, bottomRight, topRight, dimensionTop, dimensionRight);\n return new DetectorResult(bits, [topLeft, bottomLeft, bottomRight, topRight]);\n };\n Detector.shiftPoint = function (point, to, div) {\n var x = (to.getX() - point.getX()) / (div + 1);\n var y = (to.getY() - point.getY()) / (div + 1);\n return new ResultPoint(point.getX() + x, point.getY() + y);\n };\n Detector.moveAway = function (point, fromX, fromY) {\n var x = point.getX();\n var y = point.getY();\n if (x < fromX) {\n x -= 1;\n }\n else {\n x += 1;\n }\n if (y < fromY) {\n y -= 1;\n }\n else {\n y += 1;\n }\n return new ResultPoint(x, y);\n };\n /**\n * Detect a solid side which has minimum transition.\n */\n Detector.prototype.detectSolid1 = function (cornerPoints) {\n // 0 2\n // 1 3\n var pointA = cornerPoints[0];\n var pointB = cornerPoints[1];\n var pointC = cornerPoints[3];\n var pointD = cornerPoints[2];\n var trAB = this.transitionsBetween(pointA, pointB);\n var trBC = this.transitionsBetween(pointB, pointC);\n var trCD = this.transitionsBetween(pointC, pointD);\n var trDA = this.transitionsBetween(pointD, pointA);\n // 0..3\n // : :\n // 1--2\n var min = trAB;\n var points = [pointD, pointA, pointB, pointC];\n if (min > trBC) {\n min = trBC;\n points[0] = pointA;\n points[1] = pointB;\n points[2] = pointC;\n points[3] = pointD;\n }\n if (min > trCD) {\n min = trCD;\n points[0] = pointB;\n points[1] = pointC;\n points[2] = pointD;\n points[3] = pointA;\n }\n if (min > trDA) {\n points[0] = pointC;\n points[1] = pointD;\n points[2] = pointA;\n points[3] = pointB;\n }\n return points;\n };\n /**\n * Detect a second solid side next to first solid side.\n */\n Detector.prototype.detectSolid2 = function (points) {\n // A..D\n // : :\n // B--C\n var pointA = points[0];\n var pointB = points[1];\n var pointC = points[2];\n var pointD = points[3];\n // Transition detection on the edge is not stable.\n // To safely detect, shift the points to the module center.\n var tr = this.transitionsBetween(pointA, pointD);\n var pointBs = Detector.shiftPoint(pointB, pointC, (tr + 1) * 4);\n var pointCs = Detector.shiftPoint(pointC, pointB, (tr + 1) * 4);\n var trBA = this.transitionsBetween(pointBs, pointA);\n var trCD = this.transitionsBetween(pointCs, pointD);\n // 0..3\n // | :\n // 1--2\n if (trBA < trCD) {\n // solid sides: A-B-C\n points[0] = pointA;\n points[1] = pointB;\n points[2] = pointC;\n points[3] = pointD;\n }\n else {\n // solid sides: B-C-D\n points[0] = pointB;\n points[1] = pointC;\n points[2] = pointD;\n points[3] = pointA;\n }\n return points;\n };\n /**\n * Calculates the corner position of the white top right module.\n */\n Detector.prototype.correctTopRight = function (points) {\n // A..D\n // | :\n // B--C\n var pointA = points[0];\n var pointB = points[1];\n var pointC = points[2];\n var pointD = points[3];\n // shift points for safe transition detection.\n var trTop = this.transitionsBetween(pointA, pointD);\n var trRight = this.transitionsBetween(pointB, pointD);\n var pointAs = Detector.shiftPoint(pointA, pointB, (trRight + 1) * 4);\n var pointCs = Detector.shiftPoint(pointC, pointB, (trTop + 1) * 4);\n trTop = this.transitionsBetween(pointAs, pointD);\n trRight = this.transitionsBetween(pointCs, pointD);\n var candidate1 = new ResultPoint(pointD.getX() + (pointC.getX() - pointB.getX()) / (trTop + 1), pointD.getY() + (pointC.getY() - pointB.getY()) / (trTop + 1));\n var candidate2 = new ResultPoint(pointD.getX() + (pointA.getX() - pointB.getX()) / (trRight + 1), pointD.getY() + (pointA.getY() - pointB.getY()) / (trRight + 1));\n if (!this.isValid(candidate1)) {\n if (this.isValid(candidate2)) {\n return candidate2;\n }\n return null;\n }\n if (!this.isValid(candidate2)) {\n return candidate1;\n }\n var sumc1 = this.transitionsBetween(pointAs, candidate1) + this.transitionsBetween(pointCs, candidate1);\n var sumc2 = this.transitionsBetween(pointAs, candidate2) + this.transitionsBetween(pointCs, candidate2);\n if (sumc1 > sumc2) {\n return candidate1;\n }\n else {\n return candidate2;\n }\n };\n /**\n * Shift the edge points to the module center.\n */\n Detector.prototype.shiftToModuleCenter = function (points) {\n // A..D\n // | :\n // B--C\n var pointA = points[0];\n var pointB = points[1];\n var pointC = points[2];\n var pointD = points[3];\n // calculate pseudo dimensions\n var dimH = this.transitionsBetween(pointA, pointD) + 1;\n var dimV = this.transitionsBetween(pointC, pointD) + 1;\n // shift points for safe dimension detection\n var pointAs = Detector.shiftPoint(pointA, pointB, dimV * 4);\n var pointCs = Detector.shiftPoint(pointC, pointB, dimH * 4);\n // calculate more precise dimensions\n dimH = this.transitionsBetween(pointAs, pointD) + 1;\n dimV = this.transitionsBetween(pointCs, pointD) + 1;\n if ((dimH & 0x01) === 1) {\n dimH += 1;\n }\n if ((dimV & 0x01) === 1) {\n dimV += 1;\n }\n // WhiteRectangleDetector returns points inside of the rectangle.\n // I want points on the edges.\n var centerX = (pointA.getX() + pointB.getX() + pointC.getX() + pointD.getX()) / 4;\n var centerY = (pointA.getY() + pointB.getY() + pointC.getY() + pointD.getY()) / 4;\n pointA = Detector.moveAway(pointA, centerX, centerY);\n pointB = Detector.moveAway(pointB, centerX, centerY);\n pointC = Detector.moveAway(pointC, centerX, centerY);\n pointD = Detector.moveAway(pointD, centerX, centerY);\n var pointBs;\n var pointDs;\n // shift points to the center of each modules\n pointAs = Detector.shiftPoint(pointA, pointB, dimV * 4);\n pointAs = Detector.shiftPoint(pointAs, pointD, dimH * 4);\n pointBs = Detector.shiftPoint(pointB, pointA, dimV * 4);\n pointBs = Detector.shiftPoint(pointBs, pointC, dimH * 4);\n pointCs = Detector.shiftPoint(pointC, pointD, dimV * 4);\n pointCs = Detector.shiftPoint(pointCs, pointB, dimH * 4);\n pointDs = Detector.shiftPoint(pointD, pointC, dimV * 4);\n pointDs = Detector.shiftPoint(pointDs, pointA, dimH * 4);\n return [pointAs, pointBs, pointCs, pointDs];\n };\n Detector.prototype.isValid = function (p) {\n return p.getX() >= 0 && p.getX() < this.image.getWidth() && p.getY() > 0 && p.getY() < this.image.getHeight();\n };\n Detector.sampleGrid = function (image, topLeft, bottomLeft, bottomRight, topRight, dimensionX, dimensionY) {\n var sampler = GridSamplerInstance.getInstance();\n return sampler.sampleGrid(image, dimensionX, dimensionY, 0.5, 0.5, dimensionX - 0.5, 0.5, dimensionX - 0.5, dimensionY - 0.5, 0.5, dimensionY - 0.5, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n };\n /**\n * Counts the number of black/white transitions between two points, using something like Bresenham's algorithm.\n */\n Detector.prototype.transitionsBetween = function (from, to) {\n // See QR Code Detector, sizeOfBlackWhiteBlackRun()\n var fromX = Math.trunc(from.getX());\n var fromY = Math.trunc(from.getY());\n var toX = Math.trunc(to.getX());\n var toY = Math.trunc(to.getY());\n var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n var temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = -dx / 2;\n var ystep = fromY < toY ? 1 : -1;\n var xstep = fromX < toX ? 1 : -1;\n var transitions = 0;\n var inBlack = this.image.get(steep ? fromY : fromX, steep ? fromX : fromY);\n for (var x = fromX, y = fromY; x !== toX; x += xstep) {\n var isBlack = this.image.get(steep ? y : x, steep ? x : y);\n if (isBlack !== inBlack) {\n transitions++;\n inBlack = isBlack;\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += ystep;\n error -= dx;\n }\n }\n return transitions;\n };\n return Detector;\n}());\nexport default Detector;\n","import BarcodeFormat from '../BarcodeFormat';\nimport BitMatrix from '../common/BitMatrix';\nimport DecodeHintType from '../DecodeHintType';\nimport NotFoundException from '../NotFoundException';\nimport Result from '../Result';\nimport ResultMetadataType from '../ResultMetadataType';\nimport System from '../util/System';\nimport Decoder from './decoder/Decoder';\nimport Detector from './detector/Detector';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * This implementation can detect and decode Data Matrix codes in an image.\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar DataMatrixReader = /** @class */ (function () {\n function DataMatrixReader() {\n this.decoder = new Decoder();\n }\n /**\n * Locates and decodes a Data Matrix code in an image.\n *\n * @return a String representing the content encoded by the Data Matrix code\n * @throws NotFoundException if a Data Matrix code cannot be found\n * @throws FormatException if a Data Matrix code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n // @Override\n // public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException {\n // return decode(image, null);\n // }\n // @Override\n DataMatrixReader.prototype.decode = function (image, hints) {\n if (hints === void 0) { hints = null; }\n var decoderResult;\n var points;\n if (hints != null && hints.has(DecodeHintType.PURE_BARCODE)) {\n var bits = DataMatrixReader.extractPureBits(image.getBlackMatrix());\n decoderResult = this.decoder.decode(bits);\n points = DataMatrixReader.NO_POINTS;\n }\n else {\n var detectorResult = new Detector(image.getBlackMatrix()).detect();\n decoderResult = this.decoder.decode(detectorResult.getBits());\n points = detectorResult.getPoints();\n }\n var rawBytes = decoderResult.getRawBytes();\n var result = new Result(decoderResult.getText(), rawBytes, 8 * rawBytes.length, points, BarcodeFormat.DATA_MATRIX, System.currentTimeMillis());\n var byteSegments = decoderResult.getByteSegments();\n if (byteSegments != null) {\n result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments);\n }\n var ecLevel = decoderResult.getECLevel();\n if (ecLevel != null) {\n result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n return result;\n };\n // @Override\n DataMatrixReader.prototype.reset = function () {\n // do nothing\n };\n /**\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n * which contains only an unrotated, unskewed, image of a code, with some white border\n * around it. This is a specialized method that works exceptionally fast in this special\n * case.\n *\n * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix)\n */\n DataMatrixReader.extractPureBits = function (image) {\n var leftTopBlack = image.getTopLeftOnBit();\n var rightBottomBlack = image.getBottomRightOnBit();\n if (leftTopBlack == null || rightBottomBlack == null) {\n throw new NotFoundException();\n }\n var moduleSize = this.moduleSize(leftTopBlack, image);\n var top = leftTopBlack[1];\n var bottom = rightBottomBlack[1];\n var left = leftTopBlack[0];\n var right = rightBottomBlack[0];\n var matrixWidth = (right - left + 1) / moduleSize;\n var matrixHeight = (bottom - top + 1) / moduleSize;\n if (matrixWidth <= 0 || matrixHeight <= 0) {\n throw new NotFoundException();\n }\n // Push in the \"border\" by half the module width so that we start\n // sampling in the middle of the module. Just in case the image is a\n // little off, this will help recover.\n var nudge = moduleSize / 2;\n top += nudge;\n left += nudge;\n // Now just read off the bits\n var bits = new BitMatrix(matrixWidth, matrixHeight);\n for (var y = 0; y < matrixHeight; y++) {\n var iOffset = top + y * moduleSize;\n for (var x = 0; x < matrixWidth; x++) {\n if (image.get(left + x * moduleSize, iOffset)) {\n bits.set(x, y);\n }\n }\n }\n return bits;\n };\n DataMatrixReader.moduleSize = function (leftTopBlack, image) {\n var width = image.getWidth();\n var x = leftTopBlack[0];\n var y = leftTopBlack[1];\n while (x < width && image.get(x, y)) {\n x++;\n }\n if (x === width) {\n throw new NotFoundException();\n }\n var moduleSize = x - leftTopBlack[0];\n if (moduleSize === 0) {\n throw new NotFoundException();\n }\n return moduleSize;\n };\n DataMatrixReader.NO_POINTS = [];\n return DataMatrixReader;\n}());\nexport default DataMatrixReader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport DataMatrixReader from '../core/datamatrix/DataMatrixReader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserDatamatrixCodeReader = /** @class */ (function (_super) {\n __extends(BrowserDatamatrixCodeReader, _super);\n /**\n * Creates an instance of BrowserQRCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n */\n function BrowserDatamatrixCodeReader(timeBetweenScansMillis) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new DataMatrixReader(), timeBetweenScansMillis) || this;\n }\n return BrowserDatamatrixCodeReader;\n}(BrowserCodeReader));\nexport { BrowserDatamatrixCodeReader };\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport ArgumentException from '../../ArgumentException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\nexport var ErrorCorrectionLevelValues;\n(function (ErrorCorrectionLevelValues) {\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"L\"] = 0] = \"L\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"M\"] = 1] = \"M\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"Q\"] = 2] = \"Q\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"H\"] = 3] = \"H\";\n})(ErrorCorrectionLevelValues || (ErrorCorrectionLevelValues = {}));\n/**\n *

    See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels\n * defined by the QR code standard.

    \n *\n * @author Sean Owen\n */\nvar ErrorCorrectionLevel = /** @class */ (function () {\n function ErrorCorrectionLevel(value, stringValue, bits /*int*/) {\n this.value = value;\n this.stringValue = stringValue;\n this.bits = bits;\n ErrorCorrectionLevel.FOR_BITS.set(bits, this);\n ErrorCorrectionLevel.FOR_VALUE.set(value, this);\n }\n ErrorCorrectionLevel.prototype.getValue = function () {\n return this.value;\n };\n ErrorCorrectionLevel.prototype.getBits = function () {\n return this.bits;\n };\n ErrorCorrectionLevel.fromString = function (s) {\n switch (s) {\n case 'L': return ErrorCorrectionLevel.L;\n case 'M': return ErrorCorrectionLevel.M;\n case 'Q': return ErrorCorrectionLevel.Q;\n case 'H': return ErrorCorrectionLevel.H;\n default: throw new ArgumentException(s + 'not available');\n }\n };\n ErrorCorrectionLevel.prototype.toString = function () {\n return this.stringValue;\n };\n ErrorCorrectionLevel.prototype.equals = function (o) {\n if (!(o instanceof ErrorCorrectionLevel)) {\n return false;\n }\n var other = o;\n return this.value === other.value;\n };\n /**\n * @param bits int containing the two bits encoding a QR Code's error correction level\n * @return ErrorCorrectionLevel representing the encoded error correction level\n */\n ErrorCorrectionLevel.forBits = function (bits /*int*/) {\n if (bits < 0 || bits >= ErrorCorrectionLevel.FOR_BITS.size) {\n throw new IllegalArgumentException();\n }\n return ErrorCorrectionLevel.FOR_BITS.get(bits);\n };\n ErrorCorrectionLevel.FOR_BITS = new Map();\n ErrorCorrectionLevel.FOR_VALUE = new Map();\n /** L = ~7% correction */\n ErrorCorrectionLevel.L = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.L, 'L', 0x01);\n /** M = ~15% correction */\n ErrorCorrectionLevel.M = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.M, 'M', 0x00);\n /** Q = ~25% correction */\n ErrorCorrectionLevel.Q = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.Q, 'Q', 0x03);\n /** H = ~30% correction */\n ErrorCorrectionLevel.H = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.H, 'H', 0x02);\n return ErrorCorrectionLevel;\n}());\nexport default ErrorCorrectionLevel;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport ErrorCorrectionLevel from './ErrorCorrectionLevel';\nimport Integer from '../../util/Integer';\n/**\n *

    Encapsulates a QR Code's format information, including the data mask used and\n * error correction level.

    \n *\n * @author Sean Owen\n * @see DataMask\n * @see ErrorCorrectionLevel\n */\nvar FormatInformation = /** @class */ (function () {\n function FormatInformation(formatInfo /*int*/) {\n // Bits 3,4\n this.errorCorrectionLevel = ErrorCorrectionLevel.forBits((formatInfo >> 3) & 0x03);\n // Bottom 3 bits\n this.dataMask = /*(byte) */ (formatInfo & 0x07);\n }\n FormatInformation.numBitsDiffering = function (a /*int*/, b /*int*/) {\n return Integer.bitCount(a ^ b);\n };\n /**\n * @param maskedFormatInfo1 format info indicator, with mask still applied\n * @param maskedFormatInfo2 second copy of same info; both are checked at the same time\n * to establish best match\n * @return information about the format it specifies, or {@code null}\n * if doesn't seem to match any known pattern\n */\n FormatInformation.decodeFormatInformation = function (maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n var formatInfo = FormatInformation.doDecodeFormatInformation(maskedFormatInfo1, maskedFormatInfo2);\n if (formatInfo !== null) {\n return formatInfo;\n }\n // Should return null, but, some QR codes apparently\n // do not mask this info. Try again by actually masking the pattern\n // first\n return FormatInformation.doDecodeFormatInformation(maskedFormatInfo1 ^ FormatInformation.FORMAT_INFO_MASK_QR, maskedFormatInfo2 ^ FormatInformation.FORMAT_INFO_MASK_QR);\n };\n FormatInformation.doDecodeFormatInformation = function (maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n var e_1, _a;\n // Find the int in FORMAT_INFO_DECODE_LOOKUP with fewest bits differing\n var bestDifference = Number.MAX_SAFE_INTEGER;\n var bestFormatInfo = 0;\n try {\n for (var _b = __values(FormatInformation.FORMAT_INFO_DECODE_LOOKUP), _c = _b.next(); !_c.done; _c = _b.next()) {\n var decodeInfo = _c.value;\n var targetInfo = decodeInfo[0];\n if (targetInfo === maskedFormatInfo1 || targetInfo === maskedFormatInfo2) {\n // Found an exact match\n return new FormatInformation(decodeInfo[1]);\n }\n var bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo1, targetInfo);\n if (bitsDifference < bestDifference) {\n bestFormatInfo = decodeInfo[1];\n bestDifference = bitsDifference;\n }\n if (maskedFormatInfo1 !== maskedFormatInfo2) {\n // also try the other option\n bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo2, targetInfo);\n if (bitsDifference < bestDifference) {\n bestFormatInfo = decodeInfo[1];\n bestDifference = bitsDifference;\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits\n // differing means we found a match\n if (bestDifference <= 3) {\n return new FormatInformation(bestFormatInfo);\n }\n return null;\n };\n FormatInformation.prototype.getErrorCorrectionLevel = function () {\n return this.errorCorrectionLevel;\n };\n FormatInformation.prototype.getDataMask = function () {\n return this.dataMask;\n };\n /*@Override*/\n FormatInformation.prototype.hashCode = function () {\n return (this.errorCorrectionLevel.getBits() << 3) | this.dataMask;\n };\n /*@Override*/\n FormatInformation.prototype.equals = function (o) {\n if (!(o instanceof FormatInformation)) {\n return false;\n }\n var other = o;\n return this.errorCorrectionLevel === other.errorCorrectionLevel &&\n this.dataMask === other.dataMask;\n };\n FormatInformation.FORMAT_INFO_MASK_QR = 0x5412;\n /**\n * See ISO 18004:2006, Annex C, Table C.1\n */\n FormatInformation.FORMAT_INFO_DECODE_LOOKUP = [\n Int32Array.from([0x5412, 0x00]),\n Int32Array.from([0x5125, 0x01]),\n Int32Array.from([0x5E7C, 0x02]),\n Int32Array.from([0x5B4B, 0x03]),\n Int32Array.from([0x45F9, 0x04]),\n Int32Array.from([0x40CE, 0x05]),\n Int32Array.from([0x4F97, 0x06]),\n Int32Array.from([0x4AA0, 0x07]),\n Int32Array.from([0x77C4, 0x08]),\n Int32Array.from([0x72F3, 0x09]),\n Int32Array.from([0x7DAA, 0x0A]),\n Int32Array.from([0x789D, 0x0B]),\n Int32Array.from([0x662F, 0x0C]),\n Int32Array.from([0x6318, 0x0D]),\n Int32Array.from([0x6C41, 0x0E]),\n Int32Array.from([0x6976, 0x0F]),\n Int32Array.from([0x1689, 0x10]),\n Int32Array.from([0x13BE, 0x11]),\n Int32Array.from([0x1CE7, 0x12]),\n Int32Array.from([0x19D0, 0x13]),\n Int32Array.from([0x0762, 0x14]),\n Int32Array.from([0x0255, 0x15]),\n Int32Array.from([0x0D0C, 0x16]),\n Int32Array.from([0x083B, 0x17]),\n Int32Array.from([0x355F, 0x18]),\n Int32Array.from([0x3068, 0x19]),\n Int32Array.from([0x3F31, 0x1A]),\n Int32Array.from([0x3A06, 0x1B]),\n Int32Array.from([0x24B4, 0x1C]),\n Int32Array.from([0x2183, 0x1D]),\n Int32Array.from([0x2EDA, 0x1E]),\n Int32Array.from([0x2BED, 0x1F]),\n ];\n return FormatInformation;\n}());\nexport default FormatInformation;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n *

    Encapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.

    \n */\nvar ECBlocks = /** @class */ (function () {\n function ECBlocks(ecCodewordsPerBlock /*int*/) {\n var ecBlocks = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n ecBlocks[_i - 1] = arguments[_i];\n }\n this.ecCodewordsPerBlock = ecCodewordsPerBlock;\n this.ecBlocks = ecBlocks;\n }\n ECBlocks.prototype.getECCodewordsPerBlock = function () {\n return this.ecCodewordsPerBlock;\n };\n ECBlocks.prototype.getNumBlocks = function () {\n var e_1, _a;\n var total = 0;\n var ecBlocks = this.ecBlocks;\n try {\n for (var ecBlocks_1 = __values(ecBlocks), ecBlocks_1_1 = ecBlocks_1.next(); !ecBlocks_1_1.done; ecBlocks_1_1 = ecBlocks_1.next()) {\n var ecBlock = ecBlocks_1_1.value;\n total += ecBlock.getCount();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ecBlocks_1_1 && !ecBlocks_1_1.done && (_a = ecBlocks_1.return)) _a.call(ecBlocks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return total;\n };\n ECBlocks.prototype.getTotalECCodewords = function () {\n return this.ecCodewordsPerBlock * this.getNumBlocks();\n };\n ECBlocks.prototype.getECBlocks = function () {\n return this.ecBlocks;\n };\n return ECBlocks;\n}());\nexport default ECBlocks;\n","/**\n *

    Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the QR code version's format.

    \n */\nvar ECB = /** @class */ (function () {\n function ECB(count /*int*/, dataCodewords /*int*/) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n ECB.prototype.getCount = function () {\n return this.count;\n };\n ECB.prototype.getDataCodewords = function () {\n return this.dataCodewords;\n };\n return ECB;\n}());\nexport default ECB;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport BitMatrix from '../../common/BitMatrix';\nimport FormatInformation from './FormatInformation';\nimport ECBlocks from './ECBlocks';\nimport ECB from './ECB';\nimport FormatException from '../../FormatException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * See ISO 18004:2006 Annex D\n *\n * @author Sean Owen\n */\nvar Version = /** @class */ (function () {\n function Version(versionNumber /*int*/, alignmentPatternCenters) {\n var e_1, _a;\n var ecBlocks = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n ecBlocks[_i - 2] = arguments[_i];\n }\n this.versionNumber = versionNumber;\n this.alignmentPatternCenters = alignmentPatternCenters;\n this.ecBlocks = ecBlocks;\n var total = 0;\n var ecCodewords = ecBlocks[0].getECCodewordsPerBlock();\n var ecbArray = ecBlocks[0].getECBlocks();\n try {\n for (var ecbArray_1 = __values(ecbArray), ecbArray_1_1 = ecbArray_1.next(); !ecbArray_1_1.done; ecbArray_1_1 = ecbArray_1.next()) {\n var ecBlock = ecbArray_1_1.value;\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ecbArray_1_1 && !ecbArray_1_1.done && (_a = ecbArray_1.return)) _a.call(ecbArray_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.totalCodewords = total;\n }\n Version.prototype.getVersionNumber = function () {\n return this.versionNumber;\n };\n Version.prototype.getAlignmentPatternCenters = function () {\n return this.alignmentPatternCenters;\n };\n Version.prototype.getTotalCodewords = function () {\n return this.totalCodewords;\n };\n Version.prototype.getDimensionForVersion = function () {\n return 17 + 4 * this.versionNumber;\n };\n Version.prototype.getECBlocksForLevel = function (ecLevel) {\n return this.ecBlocks[ecLevel.getValue()];\n // TYPESCRIPTPORT: original was using ordinal, and using the order of levels as defined in ErrorCorrectionLevel enum (LMQH)\n // I will use the direct value from ErrorCorrectionLevelValues enum which in typescript goes to a number\n };\n /**\n *

    Deduces version information purely from QR Code dimensions.

    \n *\n * @param dimension dimension in modules\n * @return Version for a QR Code of that dimension\n * @throws FormatException if dimension is not 1 mod 4\n */\n Version.getProvisionalVersionForDimension = function (dimension /*int*/) {\n if (dimension % 4 !== 1) {\n throw new FormatException();\n }\n try {\n return this.getVersionForNumber((dimension - 17) / 4);\n }\n catch (ignored /*: IllegalArgumentException*/) {\n throw new FormatException();\n }\n };\n Version.getVersionForNumber = function (versionNumber /*int*/) {\n if (versionNumber < 1 || versionNumber > 40) {\n throw new IllegalArgumentException();\n }\n return Version.VERSIONS[versionNumber - 1];\n };\n Version.decodeVersionInformation = function (versionBits /*int*/) {\n var bestDifference = Number.MAX_SAFE_INTEGER;\n var bestVersion = 0;\n for (var i = 0; i < Version.VERSION_DECODE_INFO.length; i++) {\n var targetVersion = Version.VERSION_DECODE_INFO[i];\n // Do the version info bits match exactly? done.\n if (targetVersion === versionBits) {\n return Version.getVersionForNumber(i + 7);\n }\n // Otherwise see if this is the closest to a real version info bit string\n // we have seen so far\n var bitsDifference = FormatInformation.numBitsDiffering(versionBits, targetVersion);\n if (bitsDifference < bestDifference) {\n bestVersion = i + 7;\n bestDifference = bitsDifference;\n }\n }\n // We can tolerate up to 3 bits of error since no two version info codewords will\n // differ in less than 8 bits.\n if (bestDifference <= 3) {\n return Version.getVersionForNumber(bestVersion);\n }\n // If we didn't find a close enough match, fail\n return null;\n };\n /**\n * See ISO 18004:2006 Annex E\n */\n Version.prototype.buildFunctionPattern = function () {\n var dimension = this.getDimensionForVersion();\n var bitMatrix = new BitMatrix(dimension);\n // Top left finder pattern + separator + format\n bitMatrix.setRegion(0, 0, 9, 9);\n // Top right finder pattern + separator + format\n bitMatrix.setRegion(dimension - 8, 0, 8, 9);\n // Bottom left finder pattern + separator + format\n bitMatrix.setRegion(0, dimension - 8, 9, 8);\n // Alignment patterns\n var max = this.alignmentPatternCenters.length;\n for (var x = 0; x < max; x++) {\n var i = this.alignmentPatternCenters[x] - 2;\n for (var y = 0; y < max; y++) {\n if ((x === 0 && (y === 0 || y === max - 1)) || (x === max - 1 && y === 0)) {\n // No alignment patterns near the three finder patterns\n continue;\n }\n bitMatrix.setRegion(this.alignmentPatternCenters[y] - 2, i, 5, 5);\n }\n }\n // Vertical timing pattern\n bitMatrix.setRegion(6, 9, 1, dimension - 17);\n // Horizontal timing pattern\n bitMatrix.setRegion(9, 6, dimension - 17, 1);\n if (this.versionNumber > 6) {\n // Version info, top right\n bitMatrix.setRegion(dimension - 11, 0, 3, 6);\n // Version info, bottom left\n bitMatrix.setRegion(0, dimension - 11, 6, 3);\n }\n return bitMatrix;\n };\n /*@Override*/\n Version.prototype.toString = function () {\n return '' + this.versionNumber;\n };\n /**\n * See ISO 18004:2006 Annex D.\n * Element i represents the raw version bits that specify version i + 7\n */\n Version.VERSION_DECODE_INFO = Int32Array.from([\n 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6,\n 0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78,\n 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683,\n 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB,\n 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250,\n 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B,\n 0x2542E, 0x26A64, 0x27541, 0x28C69\n ]);\n /**\n * See ISO 18004:2006 6.5.1 Table 9\n */\n Version.VERSIONS = [\n new Version(1, new Int32Array(0), new ECBlocks(7, new ECB(1, 19)), new ECBlocks(10, new ECB(1, 16)), new ECBlocks(13, new ECB(1, 13)), new ECBlocks(17, new ECB(1, 9))),\n new Version(2, Int32Array.from([6, 18]), new ECBlocks(10, new ECB(1, 34)), new ECBlocks(16, new ECB(1, 28)), new ECBlocks(22, new ECB(1, 22)), new ECBlocks(28, new ECB(1, 16))),\n new Version(3, Int32Array.from([6, 22]), new ECBlocks(15, new ECB(1, 55)), new ECBlocks(26, new ECB(1, 44)), new ECBlocks(18, new ECB(2, 17)), new ECBlocks(22, new ECB(2, 13))),\n new Version(4, Int32Array.from([6, 26]), new ECBlocks(20, new ECB(1, 80)), new ECBlocks(18, new ECB(2, 32)), new ECBlocks(26, new ECB(2, 24)), new ECBlocks(16, new ECB(4, 9))),\n new Version(5, Int32Array.from([6, 30]), new ECBlocks(26, new ECB(1, 108)), new ECBlocks(24, new ECB(2, 43)), new ECBlocks(18, new ECB(2, 15), new ECB(2, 16)), new ECBlocks(22, new ECB(2, 11), new ECB(2, 12))),\n new Version(6, Int32Array.from([6, 34]), new ECBlocks(18, new ECB(2, 68)), new ECBlocks(16, new ECB(4, 27)), new ECBlocks(24, new ECB(4, 19)), new ECBlocks(28, new ECB(4, 15))),\n new Version(7, Int32Array.from([6, 22, 38]), new ECBlocks(20, new ECB(2, 78)), new ECBlocks(18, new ECB(4, 31)), new ECBlocks(18, new ECB(2, 14), new ECB(4, 15)), new ECBlocks(26, new ECB(4, 13), new ECB(1, 14))),\n new Version(8, Int32Array.from([6, 24, 42]), new ECBlocks(24, new ECB(2, 97)), new ECBlocks(22, new ECB(2, 38), new ECB(2, 39)), new ECBlocks(22, new ECB(4, 18), new ECB(2, 19)), new ECBlocks(26, new ECB(4, 14), new ECB(2, 15))),\n new Version(9, Int32Array.from([6, 26, 46]), new ECBlocks(30, new ECB(2, 116)), new ECBlocks(22, new ECB(3, 36), new ECB(2, 37)), new ECBlocks(20, new ECB(4, 16), new ECB(4, 17)), new ECBlocks(24, new ECB(4, 12), new ECB(4, 13))),\n new Version(10, Int32Array.from([6, 28, 50]), new ECBlocks(18, new ECB(2, 68), new ECB(2, 69)), new ECBlocks(26, new ECB(4, 43), new ECB(1, 44)), new ECBlocks(24, new ECB(6, 19), new ECB(2, 20)), new ECBlocks(28, new ECB(6, 15), new ECB(2, 16))),\n new Version(11, Int32Array.from([6, 30, 54]), new ECBlocks(20, new ECB(4, 81)), new ECBlocks(30, new ECB(1, 50), new ECB(4, 51)), new ECBlocks(28, new ECB(4, 22), new ECB(4, 23)), new ECBlocks(24, new ECB(3, 12), new ECB(8, 13))),\n new Version(12, Int32Array.from([6, 32, 58]), new ECBlocks(24, new ECB(2, 92), new ECB(2, 93)), new ECBlocks(22, new ECB(6, 36), new ECB(2, 37)), new ECBlocks(26, new ECB(4, 20), new ECB(6, 21)), new ECBlocks(28, new ECB(7, 14), new ECB(4, 15))),\n new Version(13, Int32Array.from([6, 34, 62]), new ECBlocks(26, new ECB(4, 107)), new ECBlocks(22, new ECB(8, 37), new ECB(1, 38)), new ECBlocks(24, new ECB(8, 20), new ECB(4, 21)), new ECBlocks(22, new ECB(12, 11), new ECB(4, 12))),\n new Version(14, Int32Array.from([6, 26, 46, 66]), new ECBlocks(30, new ECB(3, 115), new ECB(1, 116)), new ECBlocks(24, new ECB(4, 40), new ECB(5, 41)), new ECBlocks(20, new ECB(11, 16), new ECB(5, 17)), new ECBlocks(24, new ECB(11, 12), new ECB(5, 13))),\n new Version(15, Int32Array.from([6, 26, 48, 70]), new ECBlocks(22, new ECB(5, 87), new ECB(1, 88)), new ECBlocks(24, new ECB(5, 41), new ECB(5, 42)), new ECBlocks(30, new ECB(5, 24), new ECB(7, 25)), new ECBlocks(24, new ECB(11, 12), new ECB(7, 13))),\n new Version(16, Int32Array.from([6, 26, 50, 74]), new ECBlocks(24, new ECB(5, 98), new ECB(1, 99)), new ECBlocks(28, new ECB(7, 45), new ECB(3, 46)), new ECBlocks(24, new ECB(15, 19), new ECB(2, 20)), new ECBlocks(30, new ECB(3, 15), new ECB(13, 16))),\n new Version(17, Int32Array.from([6, 30, 54, 78]), new ECBlocks(28, new ECB(1, 107), new ECB(5, 108)), new ECBlocks(28, new ECB(10, 46), new ECB(1, 47)), new ECBlocks(28, new ECB(1, 22), new ECB(15, 23)), new ECBlocks(28, new ECB(2, 14), new ECB(17, 15))),\n new Version(18, Int32Array.from([6, 30, 56, 82]), new ECBlocks(30, new ECB(5, 120), new ECB(1, 121)), new ECBlocks(26, new ECB(9, 43), new ECB(4, 44)), new ECBlocks(28, new ECB(17, 22), new ECB(1, 23)), new ECBlocks(28, new ECB(2, 14), new ECB(19, 15))),\n new Version(19, Int32Array.from([6, 30, 58, 86]), new ECBlocks(28, new ECB(3, 113), new ECB(4, 114)), new ECBlocks(26, new ECB(3, 44), new ECB(11, 45)), new ECBlocks(26, new ECB(17, 21), new ECB(4, 22)), new ECBlocks(26, new ECB(9, 13), new ECB(16, 14))),\n new Version(20, Int32Array.from([6, 34, 62, 90]), new ECBlocks(28, new ECB(3, 107), new ECB(5, 108)), new ECBlocks(26, new ECB(3, 41), new ECB(13, 42)), new ECBlocks(30, new ECB(15, 24), new ECB(5, 25)), new ECBlocks(28, new ECB(15, 15), new ECB(10, 16))),\n new Version(21, Int32Array.from([6, 28, 50, 72, 94]), new ECBlocks(28, new ECB(4, 116), new ECB(4, 117)), new ECBlocks(26, new ECB(17, 42)), new ECBlocks(28, new ECB(17, 22), new ECB(6, 23)), new ECBlocks(30, new ECB(19, 16), new ECB(6, 17))),\n new Version(22, Int32Array.from([6, 26, 50, 74, 98]), new ECBlocks(28, new ECB(2, 111), new ECB(7, 112)), new ECBlocks(28, new ECB(17, 46)), new ECBlocks(30, new ECB(7, 24), new ECB(16, 25)), new ECBlocks(24, new ECB(34, 13))),\n new Version(23, Int32Array.from([6, 30, 54, 78, 102]), new ECBlocks(30, new ECB(4, 121), new ECB(5, 122)), new ECBlocks(28, new ECB(4, 47), new ECB(14, 48)), new ECBlocks(30, new ECB(11, 24), new ECB(14, 25)), new ECBlocks(30, new ECB(16, 15), new ECB(14, 16))),\n new Version(24, Int32Array.from([6, 28, 54, 80, 106]), new ECBlocks(30, new ECB(6, 117), new ECB(4, 118)), new ECBlocks(28, new ECB(6, 45), new ECB(14, 46)), new ECBlocks(30, new ECB(11, 24), new ECB(16, 25)), new ECBlocks(30, new ECB(30, 16), new ECB(2, 17))),\n new Version(25, Int32Array.from([6, 32, 58, 84, 110]), new ECBlocks(26, new ECB(8, 106), new ECB(4, 107)), new ECBlocks(28, new ECB(8, 47), new ECB(13, 48)), new ECBlocks(30, new ECB(7, 24), new ECB(22, 25)), new ECBlocks(30, new ECB(22, 15), new ECB(13, 16))),\n new Version(26, Int32Array.from([6, 30, 58, 86, 114]), new ECBlocks(28, new ECB(10, 114), new ECB(2, 115)), new ECBlocks(28, new ECB(19, 46), new ECB(4, 47)), new ECBlocks(28, new ECB(28, 22), new ECB(6, 23)), new ECBlocks(30, new ECB(33, 16), new ECB(4, 17))),\n new Version(27, Int32Array.from([6, 34, 62, 90, 118]), new ECBlocks(30, new ECB(8, 122), new ECB(4, 123)), new ECBlocks(28, new ECB(22, 45), new ECB(3, 46)), new ECBlocks(30, new ECB(8, 23), new ECB(26, 24)), new ECBlocks(30, new ECB(12, 15), new ECB(28, 16))),\n new Version(28, Int32Array.from([6, 26, 50, 74, 98, 122]), new ECBlocks(30, new ECB(3, 117), new ECB(10, 118)), new ECBlocks(28, new ECB(3, 45), new ECB(23, 46)), new ECBlocks(30, new ECB(4, 24), new ECB(31, 25)), new ECBlocks(30, new ECB(11, 15), new ECB(31, 16))),\n new Version(29, Int32Array.from([6, 30, 54, 78, 102, 126]), new ECBlocks(30, new ECB(7, 116), new ECB(7, 117)), new ECBlocks(28, new ECB(21, 45), new ECB(7, 46)), new ECBlocks(30, new ECB(1, 23), new ECB(37, 24)), new ECBlocks(30, new ECB(19, 15), new ECB(26, 16))),\n new Version(30, Int32Array.from([6, 26, 52, 78, 104, 130]), new ECBlocks(30, new ECB(5, 115), new ECB(10, 116)), new ECBlocks(28, new ECB(19, 47), new ECB(10, 48)), new ECBlocks(30, new ECB(15, 24), new ECB(25, 25)), new ECBlocks(30, new ECB(23, 15), new ECB(25, 16))),\n new Version(31, Int32Array.from([6, 30, 56, 82, 108, 134]), new ECBlocks(30, new ECB(13, 115), new ECB(3, 116)), new ECBlocks(28, new ECB(2, 46), new ECB(29, 47)), new ECBlocks(30, new ECB(42, 24), new ECB(1, 25)), new ECBlocks(30, new ECB(23, 15), new ECB(28, 16))),\n new Version(32, Int32Array.from([6, 34, 60, 86, 112, 138]), new ECBlocks(30, new ECB(17, 115)), new ECBlocks(28, new ECB(10, 46), new ECB(23, 47)), new ECBlocks(30, new ECB(10, 24), new ECB(35, 25)), new ECBlocks(30, new ECB(19, 15), new ECB(35, 16))),\n new Version(33, Int32Array.from([6, 30, 58, 86, 114, 142]), new ECBlocks(30, new ECB(17, 115), new ECB(1, 116)), new ECBlocks(28, new ECB(14, 46), new ECB(21, 47)), new ECBlocks(30, new ECB(29, 24), new ECB(19, 25)), new ECBlocks(30, new ECB(11, 15), new ECB(46, 16))),\n new Version(34, Int32Array.from([6, 34, 62, 90, 118, 146]), new ECBlocks(30, new ECB(13, 115), new ECB(6, 116)), new ECBlocks(28, new ECB(14, 46), new ECB(23, 47)), new ECBlocks(30, new ECB(44, 24), new ECB(7, 25)), new ECBlocks(30, new ECB(59, 16), new ECB(1, 17))),\n new Version(35, Int32Array.from([6, 30, 54, 78, 102, 126, 150]), new ECBlocks(30, new ECB(12, 121), new ECB(7, 122)), new ECBlocks(28, new ECB(12, 47), new ECB(26, 48)), new ECBlocks(30, new ECB(39, 24), new ECB(14, 25)), new ECBlocks(30, new ECB(22, 15), new ECB(41, 16))),\n new Version(36, Int32Array.from([6, 24, 50, 76, 102, 128, 154]), new ECBlocks(30, new ECB(6, 121), new ECB(14, 122)), new ECBlocks(28, new ECB(6, 47), new ECB(34, 48)), new ECBlocks(30, new ECB(46, 24), new ECB(10, 25)), new ECBlocks(30, new ECB(2, 15), new ECB(64, 16))),\n new Version(37, Int32Array.from([6, 28, 54, 80, 106, 132, 158]), new ECBlocks(30, new ECB(17, 122), new ECB(4, 123)), new ECBlocks(28, new ECB(29, 46), new ECB(14, 47)), new ECBlocks(30, new ECB(49, 24), new ECB(10, 25)), new ECBlocks(30, new ECB(24, 15), new ECB(46, 16))),\n new Version(38, Int32Array.from([6, 32, 58, 84, 110, 136, 162]), new ECBlocks(30, new ECB(4, 122), new ECB(18, 123)), new ECBlocks(28, new ECB(13, 46), new ECB(32, 47)), new ECBlocks(30, new ECB(48, 24), new ECB(14, 25)), new ECBlocks(30, new ECB(42, 15), new ECB(32, 16))),\n new Version(39, Int32Array.from([6, 26, 54, 82, 110, 138, 166]), new ECBlocks(30, new ECB(20, 117), new ECB(4, 118)), new ECBlocks(28, new ECB(40, 47), new ECB(7, 48)), new ECBlocks(30, new ECB(43, 24), new ECB(22, 25)), new ECBlocks(30, new ECB(10, 15), new ECB(67, 16))),\n new Version(40, Int32Array.from([6, 30, 58, 86, 114, 142, 170]), new ECBlocks(30, new ECB(19, 118), new ECB(6, 119)), new ECBlocks(28, new ECB(18, 47), new ECB(31, 48)), new ECBlocks(30, new ECB(34, 24), new ECB(34, 25)), new ECBlocks(30, new ECB(20, 15), new ECB(61, 16)))\n ];\n return Version;\n}());\nexport default Version;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var DataMaskValues;\n(function (DataMaskValues) {\n DataMaskValues[DataMaskValues[\"DATA_MASK_000\"] = 0] = \"DATA_MASK_000\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_001\"] = 1] = \"DATA_MASK_001\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_010\"] = 2] = \"DATA_MASK_010\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_011\"] = 3] = \"DATA_MASK_011\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_100\"] = 4] = \"DATA_MASK_100\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_101\"] = 5] = \"DATA_MASK_101\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_110\"] = 6] = \"DATA_MASK_110\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_111\"] = 7] = \"DATA_MASK_111\";\n})(DataMaskValues || (DataMaskValues = {}));\n/**\n *

    Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations\n * of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix,\n * including areas used for finder patterns, timing patterns, etc. These areas should be unused\n * after the point they are unmasked anyway.

    \n *\n *

    Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position\n * and j is row position. In fact, as the text says, i is row position and j is column position.

    \n *\n * @author Sean Owen\n */\nvar DataMask = /** @class */ (function () {\n // See ISO 18004:2006 6.8.1\n function DataMask(value, isMasked) {\n this.value = value;\n this.isMasked = isMasked;\n }\n // End of enum constants.\n /**\n *

    Implementations of this method reverse the data masking process applied to a QR Code and\n * make its bits ready to read.

    \n *\n * @param bits representation of QR Code bits\n * @param dimension dimension of QR Code, represented by bits, being unmasked\n */\n DataMask.prototype.unmaskBitMatrix = function (bits, dimension /*int*/) {\n for (var i = 0; i < dimension; i++) {\n for (var j = 0; j < dimension; j++) {\n if (this.isMasked(i, j)) {\n bits.flip(j, i);\n }\n }\n }\n };\n DataMask.values = new Map([\n /**\n * 000: mask bits for which (x + y) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_000, new DataMask(DataMaskValues.DATA_MASK_000, function (i /*int*/, j /*int*/) { return ((i + j) & 0x01) === 0; })],\n /**\n * 001: mask bits for which x mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_001, new DataMask(DataMaskValues.DATA_MASK_001, function (i /*int*/, j /*int*/) { return (i & 0x01) === 0; })],\n /**\n * 010: mask bits for which y mod 3 == 0\n */\n [DataMaskValues.DATA_MASK_010, new DataMask(DataMaskValues.DATA_MASK_010, function (i /*int*/, j /*int*/) { return j % 3 === 0; })],\n /**\n * 011: mask bits for which (x + y) mod 3 == 0\n */\n [DataMaskValues.DATA_MASK_011, new DataMask(DataMaskValues.DATA_MASK_011, function (i /*int*/, j /*int*/) { return (i + j) % 3 === 0; })],\n /**\n * 100: mask bits for which (x/2 + y/3) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_100, new DataMask(DataMaskValues.DATA_MASK_100, function (i /*int*/, j /*int*/) { return ((Math.floor(i / 2) + Math.floor(j / 3)) & 0x01) === 0; })],\n /**\n * 101: mask bits for which xy mod 2 + xy mod 3 == 0\n * equivalently, such that xy mod 6 == 0\n */\n [DataMaskValues.DATA_MASK_101, new DataMask(DataMaskValues.DATA_MASK_101, function (i /*int*/, j /*int*/) { return (i * j) % 6 === 0; })],\n /**\n * 110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0\n * equivalently, such that xy mod 6 < 3\n */\n [DataMaskValues.DATA_MASK_110, new DataMask(DataMaskValues.DATA_MASK_110, function (i /*int*/, j /*int*/) { return ((i * j) % 6) < 3; })],\n /**\n * 111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0\n * equivalently, such that (x + y + xy mod 3) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_111, new DataMask(DataMaskValues.DATA_MASK_111, function (i /*int*/, j /*int*/) { return ((i + j + ((i * j) % 3)) & 0x01) === 0; })],\n ]);\n return DataMask;\n}());\nexport default DataMask;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Version from './Version';\nimport FormatInformation from './FormatInformation';\nimport DataMask from './DataMask';\nimport FormatException from '../../FormatException';\n/**\n * @author Sean Owen\n */\nvar BitMatrixParser = /** @class */ (function () {\n /**\n * @param bitMatrix {@link BitMatrix} to parse\n * @throws FormatException if dimension is not >= 21 and 1 mod 4\n */\n function BitMatrixParser(bitMatrix) {\n var dimension = bitMatrix.getHeight();\n if (dimension < 21 || (dimension & 0x03) !== 1) {\n throw new FormatException();\n }\n this.bitMatrix = bitMatrix;\n }\n /**\n *

    Reads format information from one of its two locations within the QR Code.

    \n *\n * @return {@link FormatInformation} encapsulating the QR Code's format info\n * @throws FormatException if both format information locations cannot be parsed as\n * the valid encoding of format information\n */\n BitMatrixParser.prototype.readFormatInformation = function () {\n if (this.parsedFormatInfo !== null && this.parsedFormatInfo !== undefined) {\n return this.parsedFormatInfo;\n }\n // Read top-left format info bits\n var formatInfoBits1 = 0;\n for (var i = 0; i < 6; i++) {\n formatInfoBits1 = this.copyBit(i, 8, formatInfoBits1);\n }\n // .. and skip a bit in the timing pattern ...\n formatInfoBits1 = this.copyBit(7, 8, formatInfoBits1);\n formatInfoBits1 = this.copyBit(8, 8, formatInfoBits1);\n formatInfoBits1 = this.copyBit(8, 7, formatInfoBits1);\n // .. and skip a bit in the timing pattern ...\n for (var j = 5; j >= 0; j--) {\n formatInfoBits1 = this.copyBit(8, j, formatInfoBits1);\n }\n // Read the top-right/bottom-left pattern too\n var dimension = this.bitMatrix.getHeight();\n var formatInfoBits2 = 0;\n var jMin = dimension - 7;\n for (var j = dimension - 1; j >= jMin; j--) {\n formatInfoBits2 = this.copyBit(8, j, formatInfoBits2);\n }\n for (var i = dimension - 8; i < dimension; i++) {\n formatInfoBits2 = this.copyBit(i, 8, formatInfoBits2);\n }\n this.parsedFormatInfo = FormatInformation.decodeFormatInformation(formatInfoBits1, formatInfoBits2);\n if (this.parsedFormatInfo !== null) {\n return this.parsedFormatInfo;\n }\n throw new FormatException();\n };\n /**\n *

    Reads version information from one of its two locations within the QR Code.

    \n *\n * @return {@link Version} encapsulating the QR Code's version\n * @throws FormatException if both version information locations cannot be parsed as\n * the valid encoding of version information\n */\n BitMatrixParser.prototype.readVersion = function () {\n if (this.parsedVersion !== null && this.parsedVersion !== undefined) {\n return this.parsedVersion;\n }\n var dimension = this.bitMatrix.getHeight();\n var provisionalVersion = Math.floor((dimension - 17) / 4);\n if (provisionalVersion <= 6) {\n return Version.getVersionForNumber(provisionalVersion);\n }\n // Read top-right version info: 3 wide by 6 tall\n var versionBits = 0;\n var ijMin = dimension - 11;\n for (var j = 5; j >= 0; j--) {\n for (var i = dimension - 9; i >= ijMin; i--) {\n versionBits = this.copyBit(i, j, versionBits);\n }\n }\n var theParsedVersion = Version.decodeVersionInformation(versionBits);\n if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n this.parsedVersion = theParsedVersion;\n return theParsedVersion;\n }\n // Hmm, failed. Try bottom left: 6 wide by 3 tall\n versionBits = 0;\n for (var i = 5; i >= 0; i--) {\n for (var j = dimension - 9; j >= ijMin; j--) {\n versionBits = this.copyBit(i, j, versionBits);\n }\n }\n theParsedVersion = Version.decodeVersionInformation(versionBits);\n if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n this.parsedVersion = theParsedVersion;\n return theParsedVersion;\n }\n throw new FormatException();\n };\n BitMatrixParser.prototype.copyBit = function (i /*int*/, j /*int*/, versionBits /*int*/) {\n var bit = this.isMirror ? this.bitMatrix.get(j, i) : this.bitMatrix.get(i, j);\n return bit ? (versionBits << 1) | 0x1 : versionBits << 1;\n };\n /**\n *

    Reads the bits in the {@link BitMatrix} representing the finder pattern in the\n * correct order in order to reconstruct the codewords bytes contained within the\n * QR Code.

    \n *\n * @return bytes encoded within the QR Code\n * @throws FormatException if the exact number of bytes expected is not read\n */\n BitMatrixParser.prototype.readCodewords = function () {\n var formatInfo = this.readFormatInformation();\n var version = this.readVersion();\n // Get the data mask for the format used in this QR Code. This will exclude\n // some bits from reading as we wind through the bit matrix.\n var dataMask = DataMask.values.get(formatInfo.getDataMask());\n var dimension = this.bitMatrix.getHeight();\n dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n var functionPattern = version.buildFunctionPattern();\n var readingUp = true;\n var result = new Uint8Array(version.getTotalCodewords());\n var resultOffset = 0;\n var currentByte = 0;\n var bitsRead = 0;\n // Read columns in pairs, from right to left\n for (var j = dimension - 1; j > 0; j -= 2) {\n if (j === 6) {\n // Skip whole column with vertical alignment pattern\n // saves time and makes the other code proceed more cleanly\n j--;\n }\n // Read alternatingly from bottom to top then top to bottom\n for (var count = 0; count < dimension; count++) {\n var i = readingUp ? dimension - 1 - count : count;\n for (var col = 0; col < 2; col++) {\n // Ignore bits covered by the function pattern\n if (!functionPattern.get(j - col, i)) {\n // Read a bit\n bitsRead++;\n currentByte <<= 1;\n if (this.bitMatrix.get(j - col, i)) {\n currentByte |= 1;\n }\n // If we've made a whole byte, save it off\n if (bitsRead === 8) {\n result[resultOffset++] = /*(byte) */ currentByte;\n bitsRead = 0;\n currentByte = 0;\n }\n }\n }\n }\n readingUp = !readingUp; // readingUp ^= true; // readingUp = !readingUp; // switch directions\n }\n if (resultOffset !== version.getTotalCodewords()) {\n throw new FormatException();\n }\n return result;\n };\n /**\n * Revert the mask removal done while reading the code words. The bit matrix should revert to its original state.\n */\n BitMatrixParser.prototype.remask = function () {\n if (this.parsedFormatInfo === null) {\n return; // We have no format information, and have no data mask\n }\n var dataMask = DataMask.values.get(this.parsedFormatInfo.getDataMask());\n var dimension = this.bitMatrix.getHeight();\n dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n };\n /**\n * Prepare the parser for a mirrored operation.\n * This flag has effect only on the {@link #readFormatInformation()} and the\n * {@link #readVersion()}. Before proceeding with {@link #readCodewords()} the\n * {@link #mirror()} method should be called.\n *\n * @param mirror Whether to read version and format information mirrored.\n */\n BitMatrixParser.prototype.setMirror = function (isMirror) {\n this.parsedVersion = null;\n this.parsedFormatInfo = null;\n this.isMirror = isMirror;\n };\n /** Mirror the bit matrix in order to attempt a second reading. */\n BitMatrixParser.prototype.mirror = function () {\n var bitMatrix = this.bitMatrix;\n for (var x = 0, width = bitMatrix.getWidth(); x < width; x++) {\n for (var y = x + 1, height = bitMatrix.getHeight(); y < height; y++) {\n if (bitMatrix.get(x, y) !== bitMatrix.get(y, x)) {\n bitMatrix.flip(y, x);\n bitMatrix.flip(x, y);\n }\n }\n }\n };\n return BitMatrixParser;\n}());\nexport default BitMatrixParser;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n *

    Encapsulates a block of data within a QR Code. QR Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.

    \n *\n * @author Sean Owen\n */\nvar DataBlock = /** @class */ (function () {\n function DataBlock(numDataCodewords /*int*/, codewords) {\n this.numDataCodewords = numDataCodewords;\n this.codewords = codewords;\n }\n /**\n *

    When QR Codes use multiple data blocks, they are actually interleaved.\n * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n * method will separate the data into original blocks.

    \n *\n * @param rawCodewords bytes as read directly from the QR Code\n * @param version version of the QR Code\n * @param ecLevel error-correction level of the QR Code\n * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n * QR Code\n */\n DataBlock.getDataBlocks = function (rawCodewords, version, ecLevel) {\n var e_1, _a, e_2, _b;\n if (rawCodewords.length !== version.getTotalCodewords()) {\n throw new IllegalArgumentException();\n }\n // Figure out the number and size of data blocks used by this version and\n // error correction level\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\n // First count the total number of data blocks\n var totalBlocks = 0;\n var ecBlockArray = ecBlocks.getECBlocks();\n try {\n for (var ecBlockArray_1 = __values(ecBlockArray), ecBlockArray_1_1 = ecBlockArray_1.next(); !ecBlockArray_1_1.done; ecBlockArray_1_1 = ecBlockArray_1.next()) {\n var ecBlock = ecBlockArray_1_1.value;\n totalBlocks += ecBlock.getCount();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ecBlockArray_1_1 && !ecBlockArray_1_1.done && (_a = ecBlockArray_1.return)) _a.call(ecBlockArray_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n var result = new Array(totalBlocks);\n var numResultBlocks = 0;\n try {\n for (var ecBlockArray_2 = __values(ecBlockArray), ecBlockArray_2_1 = ecBlockArray_2.next(); !ecBlockArray_2_1.done; ecBlockArray_2_1 = ecBlockArray_2.next()) {\n var ecBlock = ecBlockArray_2_1.value;\n for (var i = 0; i < ecBlock.getCount(); i++) {\n var numDataCodewords = ecBlock.getDataCodewords();\n var numBlockCodewords = ecBlocks.getECCodewordsPerBlock() + numDataCodewords;\n result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (ecBlockArray_2_1 && !ecBlockArray_2_1.done && (_b = ecBlockArray_2.return)) _b.call(ecBlockArray_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // All blocks have the same amount of data, except that the last n\n // (where n may be 0) have 1 more byte. Figure out where these start.\n var shorterBlocksTotalCodewords = result[0].codewords.length;\n var longerBlocksStartAt = result.length - 1;\n // TYPESCRIPTPORT: check length is correct here\n while (longerBlocksStartAt >= 0) {\n var numCodewords = result[longerBlocksStartAt].codewords.length;\n if (numCodewords === shorterBlocksTotalCodewords) {\n break;\n }\n longerBlocksStartAt--;\n }\n longerBlocksStartAt++;\n var shorterBlocksNumDataCodewords = shorterBlocksTotalCodewords - ecBlocks.getECCodewordsPerBlock();\n // The last elements of result may be 1 element longer\n // first fill out as many elements as all of them have\n var rawCodewordsOffset = 0;\n for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n }\n }\n // Fill out the last data block in the longer ones\n for (var j = longerBlocksStartAt; j < numResultBlocks; j++) {\n result[j].codewords[shorterBlocksNumDataCodewords] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n var max = result[0].codewords.length;\n for (var i = shorterBlocksNumDataCodewords; i < max; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n var iOffset = j < longerBlocksStartAt ? i : i + 1;\n result[j].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n }\n }\n return result;\n };\n DataBlock.prototype.getNumDataCodewords = function () {\n return this.numDataCodewords;\n };\n DataBlock.prototype.getCodewords = function () {\n return this.codewords;\n };\n return DataBlock;\n}());\nexport default DataBlock;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from '../../IllegalArgumentException';\nexport var ModeValues;\n(function (ModeValues) {\n ModeValues[ModeValues[\"TERMINATOR\"] = 0] = \"TERMINATOR\";\n ModeValues[ModeValues[\"NUMERIC\"] = 1] = \"NUMERIC\";\n ModeValues[ModeValues[\"ALPHANUMERIC\"] = 2] = \"ALPHANUMERIC\";\n ModeValues[ModeValues[\"STRUCTURED_APPEND\"] = 3] = \"STRUCTURED_APPEND\";\n ModeValues[ModeValues[\"BYTE\"] = 4] = \"BYTE\";\n ModeValues[ModeValues[\"ECI\"] = 5] = \"ECI\";\n ModeValues[ModeValues[\"KANJI\"] = 6] = \"KANJI\";\n ModeValues[ModeValues[\"FNC1_FIRST_POSITION\"] = 7] = \"FNC1_FIRST_POSITION\";\n ModeValues[ModeValues[\"FNC1_SECOND_POSITION\"] = 8] = \"FNC1_SECOND_POSITION\";\n /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n ModeValues[ModeValues[\"HANZI\"] = 9] = \"HANZI\";\n})(ModeValues || (ModeValues = {}));\n/**\n *

    See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which\n * data can be encoded to bits in the QR code standard.

    \n *\n * @author Sean Owen\n */\nvar Mode = /** @class */ (function () {\n function Mode(value, stringValue, characterCountBitsForVersions, bits /*int*/) {\n this.value = value;\n this.stringValue = stringValue;\n this.characterCountBitsForVersions = characterCountBitsForVersions;\n this.bits = bits;\n Mode.FOR_BITS.set(bits, this);\n Mode.FOR_VALUE.set(value, this);\n }\n /**\n * @param bits four bits encoding a QR Code data mode\n * @return Mode encoded by these bits\n * @throws IllegalArgumentException if bits do not correspond to a known mode\n */\n Mode.forBits = function (bits /*int*/) {\n var mode = Mode.FOR_BITS.get(bits);\n if (undefined === mode) {\n throw new IllegalArgumentException();\n }\n return mode;\n };\n /**\n * @param version version in question\n * @return number of bits used, in this QR Code symbol {@link Version}, to encode the\n * count of characters that will follow encoded in this Mode\n */\n Mode.prototype.getCharacterCountBits = function (version) {\n var versionNumber = version.getVersionNumber();\n var offset;\n if (versionNumber <= 9) {\n offset = 0;\n }\n else if (versionNumber <= 26) {\n offset = 1;\n }\n else {\n offset = 2;\n }\n return this.characterCountBitsForVersions[offset];\n };\n Mode.prototype.getValue = function () {\n return this.value;\n };\n Mode.prototype.getBits = function () {\n return this.bits;\n };\n Mode.prototype.equals = function (o) {\n if (!(o instanceof Mode)) {\n return false;\n }\n var other = o;\n return this.value === other.value;\n };\n Mode.prototype.toString = function () {\n return this.stringValue;\n };\n Mode.FOR_BITS = new Map();\n Mode.FOR_VALUE = new Map();\n Mode.TERMINATOR = new Mode(ModeValues.TERMINATOR, 'TERMINATOR', Int32Array.from([0, 0, 0]), 0x00); // Not really a mode...\n Mode.NUMERIC = new Mode(ModeValues.NUMERIC, 'NUMERIC', Int32Array.from([10, 12, 14]), 0x01);\n Mode.ALPHANUMERIC = new Mode(ModeValues.ALPHANUMERIC, 'ALPHANUMERIC', Int32Array.from([9, 11, 13]), 0x02);\n Mode.STRUCTURED_APPEND = new Mode(ModeValues.STRUCTURED_APPEND, 'STRUCTURED_APPEND', Int32Array.from([0, 0, 0]), 0x03); // Not supported\n Mode.BYTE = new Mode(ModeValues.BYTE, 'BYTE', Int32Array.from([8, 16, 16]), 0x04);\n Mode.ECI = new Mode(ModeValues.ECI, 'ECI', Int32Array.from([0, 0, 0]), 0x07); // character counts don't apply\n Mode.KANJI = new Mode(ModeValues.KANJI, 'KANJI', Int32Array.from([8, 10, 12]), 0x08);\n Mode.FNC1_FIRST_POSITION = new Mode(ModeValues.FNC1_FIRST_POSITION, 'FNC1_FIRST_POSITION', Int32Array.from([0, 0, 0]), 0x05);\n Mode.FNC1_SECOND_POSITION = new Mode(ModeValues.FNC1_SECOND_POSITION, 'FNC1_SECOND_POSITION', Int32Array.from([0, 0, 0]), 0x09);\n /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n Mode.HANZI = new Mode(ModeValues.HANZI, 'HANZI', Int32Array.from([8, 10, 12]), 0x0D);\n return Mode;\n}());\nexport default Mode;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport BitSource from '../../common/BitSource';\nimport CharacterSetECI from '../../common/CharacterSetECI';\nimport DecoderResult from '../../common/DecoderResult';\nimport StringUtils from '../../common/StringUtils';\nimport FormatException from '../../FormatException';\nimport StringBuilder from '../../util/StringBuilder';\nimport StringEncoding from '../../util/StringEncoding';\nimport Mode from './Mode';\n/*import java.io.UnsupportedEncodingException;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collection;*/\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n *

    QR Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one QR Code. This class decodes the bits back into text.

    \n *\n *

    See ISO 18004:2006, 6.4.3 - 6.4.7

    \n *\n * @author Sean Owen\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n function DecodedBitStreamParser() {\n }\n DecodedBitStreamParser.decode = function (bytes, version, ecLevel, hints) {\n var bits = new BitSource(bytes);\n var result = new StringBuilder();\n var byteSegments = new Array(); // 1\n // TYPESCRIPTPORT: I do not use constructor with size 1 as in original Java means capacity and the array length is checked below\n var symbolSequence = -1;\n var parityData = -1;\n try {\n var currentCharacterSetECI = null;\n var fc1InEffect = false;\n var mode = void 0;\n do {\n // While still another segment to read...\n if (bits.available() < 4) {\n // OK, assume we're done. Really, a TERMINATOR mode should have been recorded here\n mode = Mode.TERMINATOR;\n }\n else {\n var modeBits = bits.readBits(4);\n mode = Mode.forBits(modeBits); // mode is encoded by 4 bits\n }\n switch (mode) {\n case Mode.TERMINATOR:\n break;\n case Mode.FNC1_FIRST_POSITION:\n case Mode.FNC1_SECOND_POSITION:\n // We do little with FNC1 except alter the parsed result a bit according to the spec\n fc1InEffect = true;\n break;\n case Mode.STRUCTURED_APPEND:\n if (bits.available() < 16) {\n throw new FormatException();\n }\n // sequence number and parity is added later to the result metadata\n // Read next 8 bits (symbol sequence #) and 8 bits (data: parity), then continue\n symbolSequence = bits.readBits(8);\n parityData = bits.readBits(8);\n break;\n case Mode.ECI:\n // Count doesn't apply to ECI\n var value = DecodedBitStreamParser.parseECIValue(bits);\n currentCharacterSetECI = CharacterSetECI.getCharacterSetECIByValue(value);\n if (currentCharacterSetECI === null) {\n throw new FormatException();\n }\n break;\n case Mode.HANZI:\n // First handle Hanzi mode which does not start with character count\n // Chinese mode contains a sub set indicator right after mode indicator\n var subset = bits.readBits(4);\n var countHanzi = bits.readBits(mode.getCharacterCountBits(version));\n if (subset === DecodedBitStreamParser.GB2312_SUBSET) {\n DecodedBitStreamParser.decodeHanziSegment(bits, result, countHanzi);\n }\n break;\n default:\n // \"Normal\" QR code modes:\n // How many characters will follow, encoded in this mode?\n var count = bits.readBits(mode.getCharacterCountBits(version));\n switch (mode) {\n case Mode.NUMERIC:\n DecodedBitStreamParser.decodeNumericSegment(bits, result, count);\n break;\n case Mode.ALPHANUMERIC:\n DecodedBitStreamParser.decodeAlphanumericSegment(bits, result, count, fc1InEffect);\n break;\n case Mode.BYTE:\n DecodedBitStreamParser.decodeByteSegment(bits, result, count, currentCharacterSetECI, byteSegments, hints);\n break;\n case Mode.KANJI:\n DecodedBitStreamParser.decodeKanjiSegment(bits, result, count);\n break;\n default:\n throw new FormatException();\n }\n break;\n }\n } while (mode !== Mode.TERMINATOR);\n }\n catch (iae /*: IllegalArgumentException*/) {\n // from readBits() calls\n throw new FormatException();\n }\n return new DecoderResult(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, ecLevel === null ? null : ecLevel.toString(), symbolSequence, parityData);\n };\n /**\n * See specification GBT 18284-2000\n */\n DecodedBitStreamParser.decodeHanziSegment = function (bits, result, count /*int*/) {\n // Don't crash trying to read more bits than we have available.\n if (count * 13 > bits.available()) {\n throw new FormatException();\n }\n // Each character will require 2 bytes. Read the characters as 2-byte pairs\n // and decode as GB2312 afterwards\n var buffer = new Uint8Array(2 * count);\n var offset = 0;\n while (count > 0) {\n // Each 13 bits encodes a 2-byte character\n var twoBytes = bits.readBits(13);\n var assembledTwoBytes = (((twoBytes / 0x060) << 8) & 0xFFFFFFFF) | (twoBytes % 0x060);\n if (assembledTwoBytes < 0x003BF) {\n // In the 0xA1A1 to 0xAAFE range\n assembledTwoBytes += 0x0A1A1;\n }\n else {\n // In the 0xB0A1 to 0xFAFE range\n assembledTwoBytes += 0x0A6A1;\n }\n buffer[offset] = /*(byte) */ ((assembledTwoBytes >> 8) & 0xFF);\n buffer[offset + 1] = /*(byte) */ (assembledTwoBytes & 0xFF);\n offset += 2;\n count--;\n }\n try {\n result.append(StringEncoding.decode(buffer, StringUtils.GB2312));\n // TYPESCRIPTPORT: TODO: implement GB2312 decode. StringView from MDN could be a starting point\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException(ignored);\n }\n };\n DecodedBitStreamParser.decodeKanjiSegment = function (bits, result, count /*int*/) {\n // Don't crash trying to read more bits than we have available.\n if (count * 13 > bits.available()) {\n throw new FormatException();\n }\n // Each character will require 2 bytes. Read the characters as 2-byte pairs\n // and decode as Shift_JIS afterwards\n var buffer = new Uint8Array(2 * count);\n var offset = 0;\n while (count > 0) {\n // Each 13 bits encodes a 2-byte character\n var twoBytes = bits.readBits(13);\n var assembledTwoBytes = (((twoBytes / 0x0C0) << 8) & 0xFFFFFFFF) | (twoBytes % 0x0C0);\n if (assembledTwoBytes < 0x01F00) {\n // In the 0x8140 to 0x9FFC range\n assembledTwoBytes += 0x08140;\n }\n else {\n // In the 0xE040 to 0xEBBF range\n assembledTwoBytes += 0x0C140;\n }\n buffer[offset] = /*(byte) */ (assembledTwoBytes >> 8);\n buffer[offset + 1] = /*(byte) */ assembledTwoBytes;\n offset += 2;\n count--;\n }\n // Shift_JIS may not be supported in some environments:\n try {\n result.append(StringEncoding.decode(buffer, StringUtils.SHIFT_JIS));\n // TYPESCRIPTPORT: TODO: implement SHIFT_JIS decode. StringView from MDN could be a starting point\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException(ignored);\n }\n };\n DecodedBitStreamParser.decodeByteSegment = function (bits, result, count /*int*/, currentCharacterSetECI, byteSegments, hints) {\n // Don't crash trying to read more bits than we have available.\n if (8 * count > bits.available()) {\n throw new FormatException();\n }\n var readBytes = new Uint8Array(count);\n for (var i = 0; i < count; i++) {\n readBytes[i] = /*(byte) */ bits.readBits(8);\n }\n var encoding;\n if (currentCharacterSetECI === null) {\n // The spec isn't clear on this mode; see\n // section 6.4.5: t does not say which encoding to assuming\n // upon decoding. I have seen ISO-8859-1 used as well as\n // Shift_JIS -- without anything like an ECI designator to\n // give a hint.\n encoding = StringUtils.guessEncoding(readBytes, hints);\n }\n else {\n encoding = currentCharacterSetECI.getName();\n }\n try {\n result.append(StringEncoding.decode(readBytes, encoding));\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException(ignored);\n }\n byteSegments.push(readBytes);\n };\n DecodedBitStreamParser.toAlphaNumericChar = function (value /*int*/) {\n if (value >= DecodedBitStreamParser.ALPHANUMERIC_CHARS.length) {\n throw new FormatException();\n }\n return DecodedBitStreamParser.ALPHANUMERIC_CHARS[value];\n };\n DecodedBitStreamParser.decodeAlphanumericSegment = function (bits, result, count /*int*/, fc1InEffect) {\n // Read two characters at a time\n var start = result.length();\n while (count > 1) {\n if (bits.available() < 11) {\n throw new FormatException();\n }\n var nextTwoCharsBits = bits.readBits(11);\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(nextTwoCharsBits / 45)));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(nextTwoCharsBits % 45));\n count -= 2;\n }\n if (count === 1) {\n // special case: one character left\n if (bits.available() < 6) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(bits.readBits(6)));\n }\n // See section 6.4.8.1, 6.4.8.2\n if (fc1InEffect) {\n // We need to massage the result a bit if in an FNC1 mode:\n for (var i = start; i < result.length(); i++) {\n if (result.charAt(i) === '%') {\n if (i < result.length() - 1 && result.charAt(i + 1) === '%') {\n // %% is rendered as %\n result.deleteCharAt(i + 1);\n }\n else {\n // In alpha mode, % should be converted to FNC1 separator 0x1D\n result.setCharAt(i, String.fromCharCode(0x1D));\n }\n }\n }\n }\n };\n DecodedBitStreamParser.decodeNumericSegment = function (bits, result, count /*int*/) {\n // Read three digits at a time\n while (count >= 3) {\n // Each 10 bits encodes three digits\n if (bits.available() < 10) {\n throw new FormatException();\n }\n var threeDigitsBits = bits.readBits(10);\n if (threeDigitsBits >= 1000) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(threeDigitsBits / 100)));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(threeDigitsBits / 10) % 10));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(threeDigitsBits % 10));\n count -= 3;\n }\n if (count === 2) {\n // Two digits left over to read, encoded in 7 bits\n if (bits.available() < 7) {\n throw new FormatException();\n }\n var twoDigitsBits = bits.readBits(7);\n if (twoDigitsBits >= 100) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(twoDigitsBits / 10)));\n result.append(DecodedBitStreamParser.toAlphaNumericChar(twoDigitsBits % 10));\n }\n else if (count === 1) {\n // One digit left over to read\n if (bits.available() < 4) {\n throw new FormatException();\n }\n var digitBits = bits.readBits(4);\n if (digitBits >= 10) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser.toAlphaNumericChar(digitBits));\n }\n };\n DecodedBitStreamParser.parseECIValue = function (bits) {\n var firstByte = bits.readBits(8);\n if ((firstByte & 0x80) === 0) {\n // just one byte\n return firstByte & 0x7F;\n }\n if ((firstByte & 0xC0) === 0x80) {\n // two bytes\n var secondByte = bits.readBits(8);\n return (((firstByte & 0x3F) << 8) & 0xFFFFFFFF) | secondByte;\n }\n if ((firstByte & 0xE0) === 0xC0) {\n // three bytes\n var secondThirdBytes = bits.readBits(16);\n return (((firstByte & 0x1F) << 16) & 0xFFFFFFFF) | secondThirdBytes;\n }\n throw new FormatException();\n };\n /**\n * See ISO 18004:2006, 6.4.4 Table 5\n */\n DecodedBitStreamParser.ALPHANUMERIC_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';\n DecodedBitStreamParser.GB2312_SUBSET = 1;\n return DecodedBitStreamParser;\n}());\nexport default DecodedBitStreamParser;\n// function Uint8ArrayToString(a: Uint8Array): string {\n// const CHUNK_SZ = 0x8000;\n// const c = new StringBuilder();\n// for (let i = 0, length = a.length; i < length; i += CHUNK_SZ) {\n// c.append(String.fromCharCode.apply(null, a.subarray(i, i + CHUNK_SZ)));\n// }\n// return c.toString();\n// }\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Meta-data container for QR Code decoding. Instances of this class may be used to convey information back to the\n * decoding caller. Callers are expected to process this.\n *\n * @see com.google.zxing.common.DecoderResult#getOther()\n */\nvar QRCodeDecoderMetaData = /** @class */ (function () {\n function QRCodeDecoderMetaData(mirrored) {\n this.mirrored = mirrored;\n }\n /**\n * @return true if the QR Code was mirrored.\n */\n QRCodeDecoderMetaData.prototype.isMirrored = function () {\n return this.mirrored;\n };\n /**\n * Apply the result points' order correction due to mirroring.\n *\n * @param points Array of points to apply mirror correction to.\n */\n QRCodeDecoderMetaData.prototype.applyMirroredCorrection = function (points) {\n if (!this.mirrored || points === null || points.length < 3) {\n return;\n }\n var bottomLeft = points[0];\n points[0] = points[2];\n points[2] = bottomLeft;\n // No need to 'fix' top-left and alignment pattern.\n };\n return QRCodeDecoderMetaData;\n}());\nexport default QRCodeDecoderMetaData;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport ChecksumException from '../../ChecksumException';\nimport BitMatrix from '../../common/BitMatrix';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport BitMatrixParser from './BitMatrixParser';\nimport DataBlock from './DataBlock';\nimport DecodedBitStreamParser from './DecodedBitStreamParser';\nimport QRCodeDecoderMetaData from './QRCodeDecoderMetaData';\n/*import java.util.Map;*/\n/**\n *

    The main class which implements QR Code decoding -- as opposed to locating and extracting\n * the QR Code from an image.

    \n *\n * @author Sean Owen\n */\nvar Decoder = /** @class */ (function () {\n function Decoder() {\n this.rsDecoder = new ReedSolomonDecoder(GenericGF.QR_CODE_FIELD_256);\n }\n // public decode(image: boolean[][]): DecoderResult /*throws ChecksumException, FormatException*/ {\n // return decode(image, null)\n // }\n /**\n *

    Convenience method that can decode a QR Code represented as a 2D array of booleans.\n * \"true\" is taken to mean a black module.

    \n *\n * @param image booleans representing white/black QR Code modules\n * @param hints decoding hints that should be used to influence decoding\n * @return text and bytes encoded within the QR Code\n * @throws FormatException if the QR Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.decodeBooleanArray = function (image, hints) {\n return this.decodeBitMatrix(BitMatrix.parseFromBooleanArray(image), hints);\n };\n // public decodeBitMatrix(bits: BitMatrix): DecoderResult /*throws ChecksumException, FormatException*/ {\n // return decode(bits, null)\n // }\n /**\n *

    Decodes a QR Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken to mean a black module.

    \n *\n * @param bits booleans representing white/black QR Code modules\n * @param hints decoding hints that should be used to influence decoding\n * @return text and bytes encoded within the QR Code\n * @throws FormatException if the QR Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.decodeBitMatrix = function (bits, hints) {\n // Construct a parser and read version, error-correction level\n var parser = new BitMatrixParser(bits);\n var ex = null;\n try {\n return this.decodeBitMatrixParser(parser, hints);\n }\n catch (e /*: FormatException, ChecksumException*/) {\n ex = e;\n }\n try {\n // Revert the bit matrix\n parser.remask();\n // Will be attempting a mirrored reading of the version and format info.\n parser.setMirror(true);\n // Preemptively read the version.\n parser.readVersion();\n // Preemptively read the format information.\n parser.readFormatInformation();\n /*\n * Since we're here, this means we have successfully detected some kind\n * of version and format information when mirrored. This is a good sign,\n * that the QR code may be mirrored, and we should try once more with a\n * mirrored content.\n */\n // Prepare for a mirrored reading.\n parser.mirror();\n var result = this.decodeBitMatrixParser(parser, hints);\n // Success! Notify the caller that the code was mirrored.\n result.setOther(new QRCodeDecoderMetaData(true));\n return result;\n }\n catch (e /*FormatException | ChecksumException*/) {\n // Throw the exception from the original reading\n if (ex !== null) {\n throw ex;\n }\n throw e;\n }\n };\n Decoder.prototype.decodeBitMatrixParser = function (parser, hints) {\n var e_1, _a, e_2, _b;\n var version = parser.readVersion();\n var ecLevel = parser.readFormatInformation().getErrorCorrectionLevel();\n // Read codewords\n var codewords = parser.readCodewords();\n // Separate into data blocks\n var dataBlocks = DataBlock.getDataBlocks(codewords, version, ecLevel);\n // Count total number of data bytes\n var totalBytes = 0;\n try {\n for (var dataBlocks_1 = __values(dataBlocks), dataBlocks_1_1 = dataBlocks_1.next(); !dataBlocks_1_1.done; dataBlocks_1_1 = dataBlocks_1.next()) {\n var dataBlock = dataBlocks_1_1.value;\n totalBytes += dataBlock.getNumDataCodewords();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (dataBlocks_1_1 && !dataBlocks_1_1.done && (_a = dataBlocks_1.return)) _a.call(dataBlocks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var resultBytes = new Uint8Array(totalBytes);\n var resultOffset = 0;\n try {\n // Error-correct and copy data blocks together into a stream of bytes\n for (var dataBlocks_2 = __values(dataBlocks), dataBlocks_2_1 = dataBlocks_2.next(); !dataBlocks_2_1.done; dataBlocks_2_1 = dataBlocks_2.next()) {\n var dataBlock = dataBlocks_2_1.value;\n var codewordBytes = dataBlock.getCodewords();\n var numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (var i = 0; i < numDataCodewords; i++) {\n resultBytes[resultOffset++] = codewordBytes[i];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (dataBlocks_2_1 && !dataBlocks_2_1.done && (_b = dataBlocks_2.return)) _b.call(dataBlocks_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // Decode the contents of that stream of bytes\n return DecodedBitStreamParser.decode(resultBytes, version, ecLevel, hints);\n };\n /**\n *

    Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place using Reed-Solomon error correction.

    \n *\n * @param codewordBytes data and error correction codewords\n * @param numDataCodewords number of codewords that are data bytes\n * @throws ChecksumException if error correction fails\n */\n Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords /*int*/) {\n // const numCodewords = codewordBytes.length;\n // First read into an array of ints\n var codewordsInts = new Int32Array(codewordBytes);\n // TYPESCRIPTPORT: not realy necessary to transform to ints? could redesign everything to work with unsigned bytes?\n // const codewordsInts = new Int32Array(numCodewords)\n // for (let i = 0; i < numCodewords; i++) {\n // codewordsInts[i] = codewordBytes[i] & 0xFF\n // }\n try {\n this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n }\n catch (ignored /*: ReedSolomonException*/) {\n throw new ChecksumException();\n }\n // Copy back into array of bytes -- only need to worry about the bytes that were data\n // We don't care about errors in the error-correction codewords\n for (var i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = /*(byte) */ codewordsInts[i];\n }\n };\n return Decoder;\n}());\nexport default Decoder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.qrcode.detector {*/\nimport ResultPoint from '../../ResultPoint';\n/**\n *

    Encapsulates an alignment pattern, which are the smaller square patterns found in\n * all but the simplest QR Codes.

    \n *\n * @author Sean Owen\n */\nvar AlignmentPattern = /** @class */ (function (_super) {\n __extends(AlignmentPattern, _super);\n function AlignmentPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/) {\n var _this = _super.call(this, posX, posY) || this;\n _this.estimatedModuleSize = estimatedModuleSize;\n return _this;\n }\n /**\n *

    Determines if this alignment pattern \"about equals\" an alignment pattern at the stated\n * position and size -- meaning, it is at nearly the same center with nearly the same size.

    \n */\n AlignmentPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n var moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n }\n return false;\n };\n /**\n * Combines this object's current estimate of a finder pattern position and module size\n * with a new estimate. It returns a new {@code FinderPattern} containing an average of the two.\n */\n AlignmentPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n var combinedX = (this.getX() + j) / 2.0;\n var combinedY = (this.getY() + i) / 2.0;\n var combinedModuleSize = (this.estimatedModuleSize + newModuleSize) / 2.0;\n return new AlignmentPattern(combinedX, combinedY, combinedModuleSize);\n };\n return AlignmentPattern;\n}(ResultPoint));\nexport default AlignmentPattern;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport AlignmentPattern from './AlignmentPattern';\nimport NotFoundException from '../../NotFoundException';\n/*import java.util.ArrayList;*/\n/*import java.util.List;*/\n/**\n *

    This class attempts to find alignment patterns in a QR Code. Alignment patterns look like finder\n * patterns but are smaller and appear at regular intervals throughout the image.

    \n *\n *

    At the moment this only looks for the bottom-right alignment pattern.

    \n *\n *

    This is mostly a simplified copy of {@link FinderPatternFinder}. It is copied,\n * pasted and stripped down here for maximum performance but does unfortunately duplicate\n * some code.

    \n *\n *

    This class is thread-safe but not reentrant. Each thread must allocate its own object.

    \n *\n * @author Sean Owen\n */\nvar AlignmentPatternFinder = /** @class */ (function () {\n /**\n *

    Creates a finder that will look in a portion of the whole image.

    \n *\n * @param image image to search\n * @param startX left column from which to start searching\n * @param startY top row from which to start searching\n * @param width width of region to search\n * @param height height of region to search\n * @param moduleSize estimated module size so far\n */\n function AlignmentPatternFinder(image, startX /*int*/, startY /*int*/, width /*int*/, height /*int*/, moduleSize /*float*/, resultPointCallback) {\n this.image = image;\n this.startX = startX;\n this.startY = startY;\n this.width = width;\n this.height = height;\n this.moduleSize = moduleSize;\n this.resultPointCallback = resultPointCallback;\n this.possibleCenters = []; // new Array(5))\n // TYPESCRIPTPORT: array initialization without size as the length is checked below\n this.crossCheckStateCount = new Int32Array(3);\n }\n /**\n *

    This method attempts to find the bottom-right alignment pattern in the image. It is a bit messy since\n * it's pretty performance-critical and so is written to be fast foremost.

    \n *\n * @return {@link AlignmentPattern} if found\n * @throws NotFoundException if not found\n */\n AlignmentPatternFinder.prototype.find = function () {\n var startX = this.startX;\n var height = this.height;\n var width = this.width;\n var maxJ = startX + width;\n var middleI = this.startY + (height / 2);\n // We are looking for black/white/black modules in 1:1:1 ratio\n // this tracks the number of black/white/black modules seen so far\n var stateCount = new Int32Array(3);\n var image = this.image;\n for (var iGen = 0; iGen < height; iGen++) {\n // Search from middle outwards\n var i = middleI + ((iGen & 0x01) === 0 ? Math.floor((iGen + 1) / 2) : -Math.floor((iGen + 1) / 2));\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n var j = startX;\n // Burn off leading white pixels before anything else; if we start in the middle of\n // a white run, it doesn't make sense to count its length, since we don't know if the\n // white run continued to the left of the start point\n while (j < maxJ && !image.get(j, i)) {\n j++;\n }\n var currentState = 0;\n while (j < maxJ) {\n if (image.get(j, i)) {\n // Black pixel\n if (currentState === 1) { // Counting black pixels\n stateCount[1]++;\n }\n else { // Counting white pixels\n if (currentState === 2) { // A winner?\n if (this.foundPatternCross(stateCount)) { // Yes\n var confirmed = this.handlePossibleCenter(stateCount, i, j);\n if (confirmed !== null) {\n return confirmed;\n }\n }\n stateCount[0] = stateCount[2];\n stateCount[1] = 1;\n stateCount[2] = 0;\n currentState = 1;\n }\n else {\n stateCount[++currentState]++;\n }\n }\n }\n else { // White pixel\n if (currentState === 1) { // Counting black pixels\n currentState++;\n }\n stateCount[currentState]++;\n }\n j++;\n }\n if (this.foundPatternCross(stateCount)) {\n var confirmed = this.handlePossibleCenter(stateCount, i, maxJ);\n if (confirmed !== null) {\n return confirmed;\n }\n }\n }\n // Hmm, nothing we saw was observed and confirmed twice. If we had\n // any guess at all, return it.\n if (this.possibleCenters.length !== 0) {\n return this.possibleCenters[0];\n }\n throw new NotFoundException();\n };\n /**\n * Given a count of black/white/black pixels just seen and an end position,\n * figures the location of the center of this black/white/black run.\n */\n AlignmentPatternFinder.centerFromEnd = function (stateCount, end /*int*/) {\n return (end - stateCount[2]) - stateCount[1] / 2.0;\n };\n /**\n * @param stateCount count of black/white/black pixels just read\n * @return true iff the proportions of the counts is close enough to the 1/1/1 ratios\n * used by alignment patterns to be considered a match\n */\n AlignmentPatternFinder.prototype.foundPatternCross = function (stateCount) {\n var moduleSize = this.moduleSize;\n var maxVariance = moduleSize / 2.0;\n for (var i = 0; i < 3; i++) {\n if (Math.abs(moduleSize - stateCount[i]) >= maxVariance) {\n return false;\n }\n }\n return true;\n };\n /**\n *

    After a horizontal scan finds a potential alignment pattern, this method\n * \"cross-checks\" by scanning down vertically through the center of the possible\n * alignment pattern to see if the same proportion is detected.

    \n *\n * @param startI row where an alignment pattern was detected\n * @param centerJ center of the section that appears to cross an alignment pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @return vertical center of alignment pattern, or {@link Float#NaN} if not found\n */\n AlignmentPatternFinder.prototype.crossCheckVertical = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var image = this.image;\n var maxI = image.getHeight();\n var stateCount = this.crossCheckStateCount;\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n // Start counting up from center\n var i = startI;\n while (i >= 0 && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i--;\n }\n // If already too many modules in this state or ran off the edge:\n if (i < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i >= 0 && !image.get(centerJ, i) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n i--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n // Now also count down from center\n i = startI + 1;\n while (i < maxI && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i++;\n }\n if (i === maxI || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i < maxI && !image.get(centerJ, i) && stateCount[2] <= maxCount) {\n stateCount[2]++;\n i++;\n }\n if (stateCount[2] > maxCount) {\n return NaN;\n }\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n return NaN;\n }\n return this.foundPatternCross(stateCount) ? AlignmentPatternFinder.centerFromEnd(stateCount, i) : NaN;\n };\n /**\n *

    This is called when a horizontal scan finds a possible alignment pattern. It will\n * cross check with a vertical scan, and if successful, will see if this pattern had been\n * found on a previous horizontal scan. If so, we consider it confirmed and conclude we have\n * found the alignment pattern.

    \n *\n * @param stateCount reading state module counts from horizontal scan\n * @param i row where alignment pattern may be found\n * @param j end of possible alignment pattern in row\n * @return {@link AlignmentPattern} if we have found the same pattern twice, or null if not\n */\n AlignmentPatternFinder.prototype.handlePossibleCenter = function (stateCount, i /*int*/, j /*int*/) {\n var e_1, _a;\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n var centerJ = AlignmentPatternFinder.centerFromEnd(stateCount, j);\n var centerI = this.crossCheckVertical(i, /*(int) */ centerJ, 2 * stateCount[1], stateCountTotal);\n if (!isNaN(centerI)) {\n var estimatedModuleSize = (stateCount[0] + stateCount[1] + stateCount[2]) / 3.0;\n try {\n for (var _b = __values(this.possibleCenters), _c = _b.next(); !_c.done; _c = _b.next()) {\n var center = _c.value;\n // Look for about the same center and module size:\n if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n return center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Hadn't found this before; save it\n var point = new AlignmentPattern(centerJ, centerI, estimatedModuleSize);\n this.possibleCenters.push(point);\n if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n this.resultPointCallback.foundPossibleResultPoint(point);\n }\n }\n return null;\n };\n return AlignmentPatternFinder;\n}());\nexport default AlignmentPatternFinder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing.qrcode.detector {*/\nimport ResultPoint from '../../ResultPoint';\n/**\n *

    Encapsulates a finder pattern, which are the three square patterns found in\n * the corners of QR Codes. It also encapsulates a count of similar finder patterns,\n * as a convenience to the finder's bookkeeping.

    \n *\n * @author Sean Owen\n */\nvar FinderPattern = /** @class */ (function (_super) {\n __extends(FinderPattern, _super);\n // FinderPattern(posX: number/*float*/, posY: number/*float*/, estimatedModuleSize: number/*float*/) {\n // this(posX, posY, estimatedModuleSize, 1)\n // }\n function FinderPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/, count /*int*/) {\n var _this = _super.call(this, posX, posY) || this;\n _this.estimatedModuleSize = estimatedModuleSize;\n _this.count = count;\n if (undefined === count) {\n _this.count = 1;\n }\n return _this;\n }\n FinderPattern.prototype.getEstimatedModuleSize = function () {\n return this.estimatedModuleSize;\n };\n FinderPattern.prototype.getCount = function () {\n return this.count;\n };\n /*\n void incrementCount() {\n this.count++\n }\n */\n /**\n *

    Determines if this finder pattern \"about equals\" a finder pattern at the stated\n * position and size -- meaning, it is at nearly the same center with nearly the same size.

    \n */\n FinderPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n var moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n }\n return false;\n };\n /**\n * Combines this object's current estimate of a finder pattern position and module size\n * with a new estimate. It returns a new {@code FinderPattern} containing a weighted average\n * based on count.\n */\n FinderPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n var combinedCount = this.count + 1;\n var combinedX = (this.count * this.getX() + j) / combinedCount;\n var combinedY = (this.count * this.getY() + i) / combinedCount;\n var combinedModuleSize = (this.count * this.estimatedModuleSize + newModuleSize) / combinedCount;\n return new FinderPattern(combinedX, combinedY, combinedModuleSize, combinedCount);\n };\n return FinderPattern;\n}(ResultPoint));\nexport default FinderPattern;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n *

    Encapsulates information about finder patterns in an image, including the location of\n * the three finder patterns, and their estimated module size.

    \n *\n * @author Sean Owen\n */\nvar FinderPatternInfo = /** @class */ (function () {\n function FinderPatternInfo(patternCenters) {\n this.bottomLeft = patternCenters[0];\n this.topLeft = patternCenters[1];\n this.topRight = patternCenters[2];\n }\n FinderPatternInfo.prototype.getBottomLeft = function () {\n return this.bottomLeft;\n };\n FinderPatternInfo.prototype.getTopLeft = function () {\n return this.topLeft;\n };\n FinderPatternInfo.prototype.getTopRight = function () {\n return this.topRight;\n };\n return FinderPatternInfo;\n}());\nexport default FinderPatternInfo;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.detector {*/\nimport DecodeHintType from '../../DecodeHintType';\nimport ResultPoint from '../../ResultPoint';\nimport FinderPattern from './FinderPattern';\nimport FinderPatternInfo from './FinderPatternInfo';\nimport NotFoundException from '../../NotFoundException';\n/*import java.io.Serializable;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collections;*/\n/*import java.util.Comparator;*/\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n *

    This class attempts to find finder patterns in a QR Code. Finder patterns are the square\n * markers at three corners of a QR Code.

    \n *\n *

    This class is thread-safe but not reentrant. Each thread must allocate its own object.\n *\n * @author Sean Owen\n */\nvar FinderPatternFinder = /** @class */ (function () {\n /**\n *

    Creates a finder that will search the image for three finder patterns.

    \n *\n * @param image image to search\n */\n // public constructor(image: BitMatrix) {\n // this(image, null)\n // }\n function FinderPatternFinder(image, resultPointCallback) {\n this.image = image;\n this.resultPointCallback = resultPointCallback;\n this.possibleCenters = [];\n this.crossCheckStateCount = new Int32Array(5);\n this.resultPointCallback = resultPointCallback;\n }\n FinderPatternFinder.prototype.getImage = function () {\n return this.image;\n };\n FinderPatternFinder.prototype.getPossibleCenters = function () {\n return this.possibleCenters;\n };\n FinderPatternFinder.prototype.find = function (hints) {\n var tryHarder = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType.TRY_HARDER);\n var pureBarcode = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType.PURE_BARCODE);\n var image = this.image;\n var maxI = image.getHeight();\n var maxJ = image.getWidth();\n // We are looking for black/white/black/white/black modules in\n // 1:1:3:1:1 ratio; this tracks the number of such modules seen so far\n // Let's assume that the maximum version QR Code we support takes up 1/4 the height of the\n // image, and then account for the center being 3 modules in size. This gives the smallest\n // number of pixels the center could be, so skip this often. When trying harder, look for all\n // QR versions regardless of how dense they are.\n var iSkip = Math.floor((3 * maxI) / (4 * FinderPatternFinder.MAX_MODULES));\n if (iSkip < FinderPatternFinder.MIN_SKIP || tryHarder) {\n iSkip = FinderPatternFinder.MIN_SKIP;\n }\n var done = false;\n var stateCount = new Int32Array(5);\n for (var i = iSkip - 1; i < maxI && !done; i += iSkip) {\n // Get a row of black/white values\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n stateCount[3] = 0;\n stateCount[4] = 0;\n var currentState = 0;\n for (var j = 0; j < maxJ; j++) {\n if (image.get(j, i)) {\n // Black pixel\n if ((currentState & 1) === 1) { // Counting white pixels\n currentState++;\n }\n stateCount[currentState]++;\n }\n else { // White pixel\n if ((currentState & 1) === 0) { // Counting black pixels\n if (currentState === 4) { // A winner?\n if (FinderPatternFinder.foundPatternCross(stateCount)) { // Yes\n var confirmed = this.handlePossibleCenter(stateCount, i, j, pureBarcode);\n if (confirmed === true) {\n // Start examining every other line. Checking each line turned out to be too\n // expensive and didn't improve performance.\n iSkip = 2;\n if (this.hasSkipped === true) {\n done = this.haveMultiplyConfirmedCenters();\n }\n else {\n var rowSkip = this.findRowSkip();\n if (rowSkip > stateCount[2]) {\n // Skip rows between row of lower confirmed center\n // and top of presumed third confirmed center\n // but back up a bit to get a full chance of detecting\n // it, entire width of center of finder pattern\n // Skip by rowSkip, but back off by stateCount[2] (size of last center\n // of pattern we saw) to be conservative, and also back off by iSkip which\n // is about to be re-added\n i += rowSkip - stateCount[2] - iSkip;\n j = maxJ - 1;\n }\n }\n }\n else {\n stateCount[0] = stateCount[2];\n stateCount[1] = stateCount[3];\n stateCount[2] = stateCount[4];\n stateCount[3] = 1;\n stateCount[4] = 0;\n currentState = 3;\n continue;\n }\n // Clear state to start looking again\n currentState = 0;\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n stateCount[3] = 0;\n stateCount[4] = 0;\n }\n else { // No, shift counts back by two\n stateCount[0] = stateCount[2];\n stateCount[1] = stateCount[3];\n stateCount[2] = stateCount[4];\n stateCount[3] = 1;\n stateCount[4] = 0;\n currentState = 3;\n }\n }\n else {\n stateCount[++currentState]++;\n }\n }\n else { // Counting white pixels\n stateCount[currentState]++;\n }\n }\n }\n if (FinderPatternFinder.foundPatternCross(stateCount)) {\n var confirmed = this.handlePossibleCenter(stateCount, i, maxJ, pureBarcode);\n if (confirmed === true) {\n iSkip = stateCount[0];\n if (this.hasSkipped) {\n // Found a third one\n done = this.haveMultiplyConfirmedCenters();\n }\n }\n }\n }\n var patternInfo = this.selectBestPatterns();\n ResultPoint.orderBestPatterns(patternInfo);\n return new FinderPatternInfo(patternInfo);\n };\n /**\n * Given a count of black/white/black/white/black pixels just seen and an end position,\n * figures the location of the center of this run.\n */\n FinderPatternFinder.centerFromEnd = function (stateCount, end /*int*/) {\n return (end - stateCount[4] - stateCount[3]) - stateCount[2] / 2.0;\n };\n /**\n * @param stateCount count of black/white/black/white/black pixels just read\n * @return true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios\n * used by finder patterns to be considered a match\n */\n FinderPatternFinder.foundPatternCross = function (stateCount) {\n var totalModuleSize = 0;\n for (var i = 0; i < 5; i++) {\n var count = stateCount[i];\n if (count === 0) {\n return false;\n }\n totalModuleSize += count;\n }\n if (totalModuleSize < 7) {\n return false;\n }\n var moduleSize = totalModuleSize / 7.0;\n var maxVariance = moduleSize / 2.0;\n // Allow less than 50% variance from 1-1-3-1-1 proportions\n return Math.abs(moduleSize - stateCount[0]) < maxVariance &&\n Math.abs(moduleSize - stateCount[1]) < maxVariance &&\n Math.abs(3.0 * moduleSize - stateCount[2]) < 3 * maxVariance &&\n Math.abs(moduleSize - stateCount[3]) < maxVariance &&\n Math.abs(moduleSize - stateCount[4]) < maxVariance;\n };\n FinderPatternFinder.prototype.getCrossCheckStateCount = function () {\n var crossCheckStateCount = this.crossCheckStateCount;\n crossCheckStateCount[0] = 0;\n crossCheckStateCount[1] = 0;\n crossCheckStateCount[2] = 0;\n crossCheckStateCount[3] = 0;\n crossCheckStateCount[4] = 0;\n return crossCheckStateCount;\n };\n /**\n * After a vertical and horizontal scan finds a potential finder pattern, this method\n * \"cross-cross-cross-checks\" by scanning down diagonally through the center of the possible\n * finder pattern to see if the same proportion is detected.\n *\n * @param startI row where a finder pattern was detected\n * @param centerJ center of the section that appears to cross a finder pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @param originalStateCountTotal The original state count total.\n * @return true if proportions are withing expected limits\n */\n FinderPatternFinder.prototype.crossCheckDiagonal = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var stateCount = this.getCrossCheckStateCount();\n // Start counting up, left from center finding black center mass\n var i = 0;\n var image = this.image;\n while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i)) {\n stateCount[2]++;\n i++;\n }\n if (startI < i || centerJ < i) {\n return false;\n }\n // Continue up, left finding white space\n while (startI >= i && centerJ >= i && !image.get(centerJ - i, startI - i) &&\n stateCount[1] <= maxCount) {\n stateCount[1]++;\n i++;\n }\n // If already too many modules in this state or ran off the edge:\n if (startI < i || centerJ < i || stateCount[1] > maxCount) {\n return false;\n }\n // Continue up, left finding black border\n while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i) &&\n stateCount[0] <= maxCount) {\n stateCount[0]++;\n i++;\n }\n if (stateCount[0] > maxCount) {\n return false;\n }\n var maxI = image.getHeight();\n var maxJ = image.getWidth();\n // Now also count down, right from center\n i = 1;\n while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i)) {\n stateCount[2]++;\n i++;\n }\n // Ran off the edge?\n if (startI + i >= maxI || centerJ + i >= maxJ) {\n return false;\n }\n while (startI + i < maxI && centerJ + i < maxJ && !image.get(centerJ + i, startI + i) &&\n stateCount[3] < maxCount) {\n stateCount[3]++;\n i++;\n }\n if (startI + i >= maxI || centerJ + i >= maxJ || stateCount[3] >= maxCount) {\n return false;\n }\n while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i) &&\n stateCount[4] < maxCount) {\n stateCount[4]++;\n i++;\n }\n if (stateCount[4] >= maxCount) {\n return false;\n }\n // If we found a finder-pattern-like section, but its size is more than 100% different than\n // the original, assume it's a false positive\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + stateCount[4];\n return Math.abs(stateCountTotal - originalStateCountTotal) < 2 * originalStateCountTotal &&\n FinderPatternFinder.foundPatternCross(stateCount);\n };\n /**\n *

    After a horizontal scan finds a potential finder pattern, this method\n * \"cross-checks\" by scanning down vertically through the center of the possible\n * finder pattern to see if the same proportion is detected.

    \n *\n * @param startI row where a finder pattern was detected\n * @param centerJ center of the section that appears to cross a finder pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @return vertical center of finder pattern, or {@link Float#NaN} if not found\n */\n FinderPatternFinder.prototype.crossCheckVertical = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var image = this.image;\n var maxI = image.getHeight();\n var stateCount = this.getCrossCheckStateCount();\n // Start counting up from center\n var i = startI;\n while (i >= 0 && image.get(centerJ, i)) {\n stateCount[2]++;\n i--;\n }\n if (i < 0) {\n return NaN;\n }\n while (i >= 0 && !image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i--;\n }\n // If already too many modules in this state or ran off the edge:\n if (i < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i >= 0 && image.get(centerJ, i) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n i--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n // Now also count down from center\n i = startI + 1;\n while (i < maxI && image.get(centerJ, i)) {\n stateCount[2]++;\n i++;\n }\n if (i === maxI) {\n return NaN;\n }\n while (i < maxI && !image.get(centerJ, i) && stateCount[3] < maxCount) {\n stateCount[3]++;\n i++;\n }\n if (i === maxI || stateCount[3] >= maxCount) {\n return NaN;\n }\n while (i < maxI && image.get(centerJ, i) && stateCount[4] < maxCount) {\n stateCount[4]++;\n i++;\n }\n if (stateCount[4] >= maxCount) {\n return NaN;\n }\n // If we found a finder-pattern-like section, but its size is more than 40% different than\n // the original, assume it's a false positive\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n return NaN;\n }\n return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, i) : NaN;\n };\n /**\n *

    Like {@link #crossCheckVertical(int, int, int, int)}, and in fact is basically identical,\n * except it reads horizontally instead of vertically. This is used to cross-cross\n * check a vertical cross check and locate the real center of the alignment pattern.

    \n */\n FinderPatternFinder.prototype.crossCheckHorizontal = function (startJ /*int*/, centerI /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n var image = this.image;\n var maxJ = image.getWidth();\n var stateCount = this.getCrossCheckStateCount();\n var j = startJ;\n while (j >= 0 && image.get(j, centerI)) {\n stateCount[2]++;\n j--;\n }\n if (j < 0) {\n return NaN;\n }\n while (j >= 0 && !image.get(j, centerI) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n j--;\n }\n if (j < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (j >= 0 && image.get(j, centerI) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n j--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n j = startJ + 1;\n while (j < maxJ && image.get(j, centerI)) {\n stateCount[2]++;\n j++;\n }\n if (j === maxJ) {\n return NaN;\n }\n while (j < maxJ && !image.get(j, centerI) && stateCount[3] < maxCount) {\n stateCount[3]++;\n j++;\n }\n if (j === maxJ || stateCount[3] >= maxCount) {\n return NaN;\n }\n while (j < maxJ && image.get(j, centerI) && stateCount[4] < maxCount) {\n stateCount[4]++;\n j++;\n }\n if (stateCount[4] >= maxCount) {\n return NaN;\n }\n // If we found a finder-pattern-like section, but its size is significantly different than\n // the original, assume it's a false positive\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= originalStateCountTotal) {\n return NaN;\n }\n return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, j) : NaN;\n };\n /**\n *

    This is called when a horizontal scan finds a possible alignment pattern. It will\n * cross check with a vertical scan, and if successful, will, ah, cross-cross-check\n * with another horizontal scan. This is needed primarily to locate the real horizontal\n * center of the pattern in cases of extreme skew.\n * And then we cross-cross-cross check with another diagonal scan.

    \n *\n *

    If that succeeds the finder pattern location is added to a list that tracks\n * the number of times each location has been nearly-matched as a finder pattern.\n * Each additional find is more evidence that the location is in fact a finder\n * pattern center\n *\n * @param stateCount reading state module counts from horizontal scan\n * @param i row where finder pattern may be found\n * @param j end of possible finder pattern in row\n * @param pureBarcode true if in \"pure barcode\" mode\n * @return true if a finder pattern candidate was found this time\n */\n FinderPatternFinder.prototype.handlePossibleCenter = function (stateCount, i /*int*/, j /*int*/, pureBarcode) {\n var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n var centerJ = FinderPatternFinder.centerFromEnd(stateCount, j);\n var centerI = this.crossCheckVertical(i, /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal);\n if (!isNaN(centerI)) {\n // Re-cross check\n centerJ = this.crossCheckHorizontal(/*(int) */ Math.floor(centerJ), /*(int) */ Math.floor(centerI), stateCount[2], stateCountTotal);\n if (!isNaN(centerJ) &&\n (!pureBarcode || this.crossCheckDiagonal(/*(int) */ Math.floor(centerI), /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal))) {\n var estimatedModuleSize = stateCountTotal / 7.0;\n var found = false;\n var possibleCenters = this.possibleCenters;\n for (var index = 0, length_1 = possibleCenters.length; index < length_1; index++) {\n var center = possibleCenters[index];\n // Look for about the same center and module size:\n if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n possibleCenters[index] = center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n found = true;\n break;\n }\n }\n if (!found) {\n var point = new FinderPattern(centerJ, centerI, estimatedModuleSize);\n possibleCenters.push(point);\n if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n this.resultPointCallback.foundPossibleResultPoint(point);\n }\n }\n return true;\n }\n }\n return false;\n };\n /**\n * @return number of rows we could safely skip during scanning, based on the first\n * two finder patterns that have been located. In some cases their position will\n * allow us to infer that the third pattern must lie below a certain point farther\n * down in the image.\n */\n FinderPatternFinder.prototype.findRowSkip = function () {\n var e_1, _a;\n var max = this.possibleCenters.length;\n if (max <= 1) {\n return 0;\n }\n var firstConfirmedCenter = null;\n try {\n for (var _b = __values(this.possibleCenters), _c = _b.next(); !_c.done; _c = _b.next()) {\n var center = _c.value;\n if (center.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n if (firstConfirmedCenter == null) {\n firstConfirmedCenter = center;\n }\n else {\n // We have two confirmed centers\n // How far down can we skip before resuming looking for the next\n // pattern? In the worst case, only the difference between the\n // difference in the x / y coordinates of the two centers.\n // This is the case where you find top left last.\n this.hasSkipped = true;\n return /*(int) */ Math.floor((Math.abs(firstConfirmedCenter.getX() - center.getX()) -\n Math.abs(firstConfirmedCenter.getY() - center.getY())) / 2);\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return 0;\n };\n /**\n * @return true iff we have found at least 3 finder patterns that have been detected\n * at least {@link #CENTER_QUORUM} times each, and, the estimated module size of the\n * candidates is \"pretty similar\"\n */\n FinderPatternFinder.prototype.haveMultiplyConfirmedCenters = function () {\n var e_2, _a, e_3, _b;\n var confirmedCount = 0;\n var totalModuleSize = 0.0;\n var max = this.possibleCenters.length;\n try {\n for (var _c = __values(this.possibleCenters), _d = _c.next(); !_d.done; _d = _c.next()) {\n var pattern = _d.value;\n if (pattern.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n confirmedCount++;\n totalModuleSize += pattern.getEstimatedModuleSize();\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (confirmedCount < 3) {\n return false;\n }\n // OK, we have at least 3 confirmed centers, but, it's possible that one is a \"false positive\"\n // and that we need to keep looking. We detect this by asking if the estimated module sizes\n // vary too much. We arbitrarily say that when the total deviation from average exceeds\n // 5% of the total module size estimates, it's too much.\n var average = totalModuleSize / max;\n var totalDeviation = 0.0;\n try {\n for (var _e = __values(this.possibleCenters), _f = _e.next(); !_f.done; _f = _e.next()) {\n var pattern = _f.value;\n totalDeviation += Math.abs(pattern.getEstimatedModuleSize() - average);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return totalDeviation <= 0.05 * totalModuleSize;\n };\n /**\n * @return the 3 best {@link FinderPattern}s from our list of candidates. The \"best\" are\n * those that have been detected at least {@link #CENTER_QUORUM} times, and whose module\n * size differs from the average among those patterns the least\n * @throws NotFoundException if 3 such finder patterns do not exist\n */\n FinderPatternFinder.prototype.selectBestPatterns = function () {\n var e_4, _a, e_5, _b;\n var startSize = this.possibleCenters.length;\n if (startSize < 3) {\n // Couldn't find enough finder patterns\n throw new NotFoundException();\n }\n var possibleCenters = this.possibleCenters;\n var average;\n // Filter outlier possibilities whose module size is too different\n if (startSize > 3) {\n // But we can only afford to do so if we have at least 4 possibilities to choose from\n var totalModuleSize = 0.0;\n var square = 0.0;\n try {\n for (var _c = __values(this.possibleCenters), _d = _c.next(); !_d.done; _d = _c.next()) {\n var center = _d.value;\n var size = center.getEstimatedModuleSize();\n totalModuleSize += size;\n square += size * size;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_4) throw e_4.error; }\n }\n average = totalModuleSize / startSize;\n var stdDev = Math.sqrt(square / startSize - average * average);\n possibleCenters.sort(\n /**\n *

    Orders by furthest from average

    \n */\n // FurthestFromAverageComparator implements Comparator\n function (center1, center2) {\n var dA = Math.abs(center2.getEstimatedModuleSize() - average);\n var dB = Math.abs(center1.getEstimatedModuleSize() - average);\n return dA < dB ? -1 : dA > dB ? 1 : 0;\n });\n var limit = Math.max(0.2 * average, stdDev);\n for (var i = 0; i < possibleCenters.length && possibleCenters.length > 3; i++) {\n var pattern = possibleCenters[i];\n if (Math.abs(pattern.getEstimatedModuleSize() - average) > limit) {\n possibleCenters.splice(i, 1);\n i--;\n }\n }\n }\n if (possibleCenters.length > 3) {\n // Throw away all but those first size candidate points we found.\n var totalModuleSize = 0.0;\n try {\n for (var possibleCenters_1 = __values(possibleCenters), possibleCenters_1_1 = possibleCenters_1.next(); !possibleCenters_1_1.done; possibleCenters_1_1 = possibleCenters_1.next()) {\n var possibleCenter = possibleCenters_1_1.value;\n totalModuleSize += possibleCenter.getEstimatedModuleSize();\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (possibleCenters_1_1 && !possibleCenters_1_1.done && (_b = possibleCenters_1.return)) _b.call(possibleCenters_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n average = totalModuleSize / possibleCenters.length;\n possibleCenters.sort(\n /**\n *

    Orders by {@link FinderPattern#getCount()}, descending.

    \n */\n // CenterComparator implements Comparator\n function (center1, center2) {\n if (center2.getCount() === center1.getCount()) {\n var dA = Math.abs(center2.getEstimatedModuleSize() - average);\n var dB = Math.abs(center1.getEstimatedModuleSize() - average);\n return dA < dB ? 1 : dA > dB ? -1 : 0;\n }\n else {\n return center2.getCount() - center1.getCount();\n }\n });\n possibleCenters.splice(3); // this is not realy necessary as we only return first 3 anyway\n }\n return [\n possibleCenters[0],\n possibleCenters[1],\n possibleCenters[2]\n ];\n };\n FinderPatternFinder.CENTER_QUORUM = 2;\n FinderPatternFinder.MIN_SKIP = 3; // 1 pixel/module times 3 modules/center\n FinderPatternFinder.MAX_MODULES = 57; // support up to version 10 for mobile clients\n return FinderPatternFinder;\n}());\nexport default FinderPatternFinder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport MathUtils from '../../common/detector/MathUtils';\nimport DetectorResult from '../../common/DetectorResult';\n// import GridSampler from '../../common/GridSampler';\nimport GridSamplerInstance from '../../common/GridSamplerInstance';\nimport PerspectiveTransform from '../../common/PerspectiveTransform';\nimport DecodeHintType from '../../DecodeHintType';\nimport NotFoundException from '../../NotFoundException';\nimport ResultPoint from '../../ResultPoint';\nimport Version from '../decoder/Version';\nimport AlignmentPatternFinder from './AlignmentPatternFinder';\nimport FinderPatternFinder from './FinderPatternFinder';\n/*import java.util.Map;*/\n/**\n *

    Encapsulates logic that can detect a QR Code in an image, even if the QR Code\n * is rotated or skewed, or partially obscured.

    \n *\n * @author Sean Owen\n */\nvar Detector = /** @class */ (function () {\n function Detector(image) {\n this.image = image;\n }\n Detector.prototype.getImage = function () {\n return this.image;\n };\n Detector.prototype.getResultPointCallback = function () {\n return this.resultPointCallback;\n };\n /**\n *

    Detects a QR Code in an image.

    \n *\n * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n * @throws NotFoundException if QR Code cannot be found\n * @throws FormatException if a QR Code cannot be decoded\n */\n // public detect(): DetectorResult /*throws NotFoundException, FormatException*/ {\n // return detect(null)\n // }\n /**\n *

    Detects a QR Code in an image.

    \n *\n * @param hints optional hints to detector\n * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n * @throws NotFoundException if QR Code cannot be found\n * @throws FormatException if a QR Code cannot be decoded\n */\n Detector.prototype.detect = function (hints) {\n this.resultPointCallback = (hints === null || hints === undefined) ? null :\n /*(ResultPointCallback) */ hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n var finder = new FinderPatternFinder(this.image, this.resultPointCallback);\n var info = finder.find(hints);\n return this.processFinderPatternInfo(info);\n };\n Detector.prototype.processFinderPatternInfo = function (info) {\n var topLeft = info.getTopLeft();\n var topRight = info.getTopRight();\n var bottomLeft = info.getBottomLeft();\n var moduleSize = this.calculateModuleSize(topLeft, topRight, bottomLeft);\n if (moduleSize < 1.0) {\n throw new NotFoundException('No pattern found in proccess finder.');\n }\n var dimension = Detector.computeDimension(topLeft, topRight, bottomLeft, moduleSize);\n var provisionalVersion = Version.getProvisionalVersionForDimension(dimension);\n var modulesBetweenFPCenters = provisionalVersion.getDimensionForVersion() - 7;\n var alignmentPattern = null;\n // Anything above version 1 has an alignment pattern\n if (provisionalVersion.getAlignmentPatternCenters().length > 0) {\n // Guess where a \"bottom right\" finder pattern would have been\n var bottomRightX = topRight.getX() - topLeft.getX() + bottomLeft.getX();\n var bottomRightY = topRight.getY() - topLeft.getY() + bottomLeft.getY();\n // Estimate that alignment pattern is closer by 3 modules\n // from \"bottom right\" to known top left location\n var correctionToTopLeft = 1.0 - 3.0 / modulesBetweenFPCenters;\n var estAlignmentX = /*(int) */ Math.floor(topLeft.getX() + correctionToTopLeft * (bottomRightX - topLeft.getX()));\n var estAlignmentY = /*(int) */ Math.floor(topLeft.getY() + correctionToTopLeft * (bottomRightY - topLeft.getY()));\n // Kind of arbitrary -- expand search radius before giving up\n for (var i = 4; i <= 16; i <<= 1) {\n try {\n alignmentPattern = this.findAlignmentInRegion(moduleSize, estAlignmentX, estAlignmentY, i);\n break;\n }\n catch (re /*NotFoundException*/) {\n if (!(re instanceof NotFoundException)) {\n throw re;\n }\n // try next round\n }\n }\n // If we didn't find alignment pattern... well try anyway without it\n }\n var transform = Detector.createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension);\n var bits = Detector.sampleGrid(this.image, transform, dimension);\n var points;\n if (alignmentPattern === null) {\n points = [bottomLeft, topLeft, topRight];\n }\n else {\n points = [bottomLeft, topLeft, topRight, alignmentPattern];\n }\n return new DetectorResult(bits, points);\n };\n Detector.createTransform = function (topLeft, topRight, bottomLeft, alignmentPattern, dimension /*int*/) {\n var dimMinusThree = dimension - 3.5;\n var bottomRightX; /*float*/\n var bottomRightY; /*float*/\n var sourceBottomRightX; /*float*/\n var sourceBottomRightY; /*float*/\n if (alignmentPattern !== null) {\n bottomRightX = alignmentPattern.getX();\n bottomRightY = alignmentPattern.getY();\n sourceBottomRightX = dimMinusThree - 3.0;\n sourceBottomRightY = sourceBottomRightX;\n }\n else {\n // Don't have an alignment pattern, just make up the bottom-right point\n bottomRightX = (topRight.getX() - topLeft.getX()) + bottomLeft.getX();\n bottomRightY = (topRight.getY() - topLeft.getY()) + bottomLeft.getY();\n sourceBottomRightX = dimMinusThree;\n sourceBottomRightY = dimMinusThree;\n }\n return PerspectiveTransform.quadrilateralToQuadrilateral(3.5, 3.5, dimMinusThree, 3.5, sourceBottomRightX, sourceBottomRightY, 3.5, dimMinusThree, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRightX, bottomRightY, bottomLeft.getX(), bottomLeft.getY());\n };\n Detector.sampleGrid = function (image, transform, dimension /*int*/) {\n var sampler = GridSamplerInstance.getInstance();\n return sampler.sampleGridWithTransform(image, dimension, dimension, transform);\n };\n /**\n *

    Computes the dimension (number of modules on a size) of the QR Code based on the position\n * of the finder patterns and estimated module size.

    \n */\n Detector.computeDimension = function (topLeft, topRight, bottomLeft, moduleSize /*float*/) {\n var tltrCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, topRight) / moduleSize);\n var tlblCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, bottomLeft) / moduleSize);\n var dimension = Math.floor((tltrCentersDimension + tlblCentersDimension) / 2) + 7;\n switch (dimension & 0x03) { // mod 4\n case 0:\n dimension++;\n break;\n // 1? do nothing\n case 2:\n dimension--;\n break;\n case 3:\n throw new NotFoundException('Dimensions could be not found.');\n }\n return dimension;\n };\n /**\n *

    Computes an average estimated module size based on estimated derived from the positions\n * of the three finder patterns.

    \n *\n * @param topLeft detected top-left finder pattern center\n * @param topRight detected top-right finder pattern center\n * @param bottomLeft detected bottom-left finder pattern center\n * @return estimated module size\n */\n Detector.prototype.calculateModuleSize = function (topLeft, topRight, bottomLeft) {\n // Take the average\n return (this.calculateModuleSizeOneWay(topLeft, topRight) +\n this.calculateModuleSizeOneWay(topLeft, bottomLeft)) / 2.0;\n };\n /**\n *

    Estimates module size based on two finder patterns -- it uses\n * {@link #sizeOfBlackWhiteBlackRunBothWays(int, int, int, int)} to figure the\n * width of each, measuring along the axis between their centers.

    \n */\n Detector.prototype.calculateModuleSizeOneWay = function (pattern, otherPattern) {\n var moduleSizeEst1 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(pattern.getX()), \n /*(int) */ Math.floor(pattern.getY()), \n /*(int) */ Math.floor(otherPattern.getX()), \n /*(int) */ Math.floor(otherPattern.getY()));\n var moduleSizeEst2 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(otherPattern.getX()), \n /*(int) */ Math.floor(otherPattern.getY()), \n /*(int) */ Math.floor(pattern.getX()), \n /*(int) */ Math.floor(pattern.getY()));\n if (isNaN(moduleSizeEst1)) {\n return moduleSizeEst2 / 7.0;\n }\n if (isNaN(moduleSizeEst2)) {\n return moduleSizeEst1 / 7.0;\n }\n // Average them, and divide by 7 since we've counted the width of 3 black modules,\n // and 1 white and 1 black module on either side. Ergo, divide sum by 14.\n return (moduleSizeEst1 + moduleSizeEst2) / 14.0;\n };\n /**\n * See {@link #sizeOfBlackWhiteBlackRun(int, int, int, int)}; computes the total width of\n * a finder pattern by looking for a black-white-black run from the center in the direction\n * of another point (another finder pattern center), and in the opposite direction too.\n */\n Detector.prototype.sizeOfBlackWhiteBlackRunBothWays = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n var result = this.sizeOfBlackWhiteBlackRun(fromX, fromY, toX, toY);\n // Now count other way -- don't run off image though of course\n var scale = 1.0;\n var otherToX = fromX - (toX - fromX);\n if (otherToX < 0) {\n scale = fromX / /*(float) */ (fromX - otherToX);\n otherToX = 0;\n }\n else if (otherToX >= this.image.getWidth()) {\n scale = (this.image.getWidth() - 1 - fromX) / /*(float) */ (otherToX - fromX);\n otherToX = this.image.getWidth() - 1;\n }\n var otherToY = /*(int) */ Math.floor(fromY - (toY - fromY) * scale);\n scale = 1.0;\n if (otherToY < 0) {\n scale = fromY / /*(float) */ (fromY - otherToY);\n otherToY = 0;\n }\n else if (otherToY >= this.image.getHeight()) {\n scale = (this.image.getHeight() - 1 - fromY) / /*(float) */ (otherToY - fromY);\n otherToY = this.image.getHeight() - 1;\n }\n otherToX = /*(int) */ Math.floor(fromX + (otherToX - fromX) * scale);\n result += this.sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY);\n // Middle pixel is double-counted this way; subtract 1\n return result - 1.0;\n };\n /**\n *

    This method traces a line from a point in the image, in the direction towards another point.\n * It begins in a black region, and keeps going until it finds white, then black, then white again.\n * It reports the distance from the start to this point.

    \n *\n *

    This is used when figuring out how wide a finder pattern is, when the finder pattern\n * may be skewed or rotated.

    \n */\n Detector.prototype.sizeOfBlackWhiteBlackRun = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n // Mild variant of Bresenham's algorithm\n // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm\n var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n var temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = -dx / 2;\n var xstep = fromX < toX ? 1 : -1;\n var ystep = fromY < toY ? 1 : -1;\n // In black pixels, looking for white, first or second time.\n var state = 0;\n // Loop up until x == toX, but not beyond\n var xLimit = toX + xstep;\n for (var x = fromX, y = fromY; x !== xLimit; x += xstep) {\n var realX = steep ? y : x;\n var realY = steep ? x : y;\n // Does current pixel mean we have moved white to black or vice versa?\n // Scanning black in state 0,2 and white in state 1, so if we find the wrong\n // color, advance to next state or end if we are in state 2 already\n if ((state === 1) === this.image.get(realX, realY)) {\n if (state === 2) {\n return MathUtils.distance(x, y, fromX, fromY);\n }\n state++;\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += ystep;\n error -= dx;\n }\n }\n // Found black-white-black; give the benefit of the doubt that the next pixel outside the image\n // is \"white\" so this last point at (toX+xStep,toY) is the right ending. This is really a\n // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.\n if (state === 2) {\n return MathUtils.distance(toX + xstep, toY, fromX, fromY);\n }\n // else we didn't find even black-white-black; no estimate is really possible\n return NaN;\n };\n /**\n *

    Attempts to locate an alignment pattern in a limited region of the image, which is\n * guessed to contain it. This method uses {@link AlignmentPattern}.

    \n *\n * @param overallEstModuleSize estimated module size so far\n * @param estAlignmentX x coordinate of center of area probably containing alignment pattern\n * @param estAlignmentY y coordinate of above\n * @param allowanceFactor number of pixels in all directions to search from the center\n * @return {@link AlignmentPattern} if found, or null otherwise\n * @throws NotFoundException if an unexpected error occurs during detection\n */\n Detector.prototype.findAlignmentInRegion = function (overallEstModuleSize /*float*/, estAlignmentX /*int*/, estAlignmentY /*int*/, allowanceFactor /*float*/) {\n // Look for an alignment pattern (3 modules in size) around where it\n // should be\n var allowance = /*(int) */ Math.floor(allowanceFactor * overallEstModuleSize);\n var alignmentAreaLeftX = Math.max(0, estAlignmentX - allowance);\n var alignmentAreaRightX = Math.min(this.image.getWidth() - 1, estAlignmentX + allowance);\n if (alignmentAreaRightX - alignmentAreaLeftX < overallEstModuleSize * 3) {\n throw new NotFoundException('Alignment top exceeds estimated module size.');\n }\n var alignmentAreaTopY = Math.max(0, estAlignmentY - allowance);\n var alignmentAreaBottomY = Math.min(this.image.getHeight() - 1, estAlignmentY + allowance);\n if (alignmentAreaBottomY - alignmentAreaTopY < overallEstModuleSize * 3) {\n throw new NotFoundException('Alignment bottom exceeds estimated module size.');\n }\n var alignmentFinder = new AlignmentPatternFinder(this.image, alignmentAreaLeftX, alignmentAreaTopY, alignmentAreaRightX - alignmentAreaLeftX, alignmentAreaBottomY - alignmentAreaTopY, overallEstModuleSize, this.resultPointCallback);\n return alignmentFinder.find();\n };\n return Detector;\n}());\nexport default Detector;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport BitMatrix from '../common/BitMatrix';\nimport DecodeHintType from '../DecodeHintType';\nimport NotFoundException from '../NotFoundException';\nimport Result from '../Result';\nimport ResultMetadataType from '../ResultMetadataType';\n// import DetectorResult from '../common/DetectorResult';\nimport Decoder from './decoder/Decoder';\nimport QRCodeDecoderMetaData from './decoder/QRCodeDecoderMetaData';\nimport Detector from './detector/Detector';\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n * This implementation can detect and decode QR Codes in an image.\n *\n * @author Sean Owen\n */\nvar QRCodeReader = /** @class */ (function () {\n function QRCodeReader() {\n this.decoder = new Decoder();\n }\n QRCodeReader.prototype.getDecoder = function () {\n return this.decoder;\n };\n /**\n * Locates and decodes a QR code in an image.\n *\n * @return a representing: string the content encoded by the QR code\n * @throws NotFoundException if a QR code cannot be found\n * @throws FormatException if a QR code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n /*@Override*/\n // public decode(image: BinaryBitmap): Result /*throws NotFoundException, ChecksumException, FormatException */ {\n // return this.decode(image, null)\n // }\n /*@Override*/\n QRCodeReader.prototype.decode = function (image, hints) {\n var decoderResult;\n var points;\n if (hints !== undefined && hints !== null && undefined !== hints.get(DecodeHintType.PURE_BARCODE)) {\n var bits = QRCodeReader.extractPureBits(image.getBlackMatrix());\n decoderResult = this.decoder.decodeBitMatrix(bits, hints);\n points = QRCodeReader.NO_POINTS;\n }\n else {\n var detectorResult = new Detector(image.getBlackMatrix()).detect(hints);\n decoderResult = this.decoder.decodeBitMatrix(detectorResult.getBits(), hints);\n points = detectorResult.getPoints();\n }\n // If the code was mirrored: swap the bottom-left and the top-right points.\n if (decoderResult.getOther() instanceof QRCodeDecoderMetaData) {\n decoderResult.getOther().applyMirroredCorrection(points);\n }\n var result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat.QR_CODE, undefined);\n var byteSegments = decoderResult.getByteSegments();\n if (byteSegments !== null) {\n result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments);\n }\n var ecLevel = decoderResult.getECLevel();\n if (ecLevel !== null) {\n result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n if (decoderResult.hasStructuredAppend()) {\n result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, decoderResult.getStructuredAppendSequenceNumber());\n result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_PARITY, decoderResult.getStructuredAppendParity());\n }\n return result;\n };\n /*@Override*/\n QRCodeReader.prototype.reset = function () {\n // do nothing\n };\n /**\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n * which contains only an unrotated, unskewed, image of a code, with some white border\n * around it. This is a specialized method that works exceptionally fast in this special\n * case.\n *\n * @see com.google.zxing.datamatrix.DataMatrixReader#extractPureBits(BitMatrix)\n */\n QRCodeReader.extractPureBits = function (image) {\n var leftTopBlack = image.getTopLeftOnBit();\n var rightBottomBlack = image.getBottomRightOnBit();\n if (leftTopBlack === null || rightBottomBlack === null) {\n throw new NotFoundException();\n }\n var moduleSize = this.moduleSize(leftTopBlack, image);\n var top = leftTopBlack[1];\n var bottom = rightBottomBlack[1];\n var left = leftTopBlack[0];\n var right = rightBottomBlack[0];\n // Sanity check!\n if (left >= right || top >= bottom) {\n throw new NotFoundException();\n }\n if (bottom - top !== right - left) {\n // Special case, where bottom-right module wasn't black so we found something else in the last row\n // Assume it's a square, so use height as the width\n right = left + (bottom - top);\n if (right >= image.getWidth()) {\n // Abort if that would not make sense -- off image\n throw new NotFoundException();\n }\n }\n var matrixWidth = Math.round((right - left + 1) / moduleSize);\n var matrixHeight = Math.round((bottom - top + 1) / moduleSize);\n if (matrixWidth <= 0 || matrixHeight <= 0) {\n throw new NotFoundException();\n }\n if (matrixHeight !== matrixWidth) {\n // Only possibly decode square regions\n throw new NotFoundException();\n }\n // Push in the \"border\" by half the module width so that we start\n // sampling in the middle of the module. Just in case the image is a\n // little off, this will help recover.\n var nudge = /*(int) */ Math.floor(moduleSize / 2.0);\n top += nudge;\n left += nudge;\n // But careful that this does not sample off the edge\n // \"right\" is the farthest-right valid pixel location -- right+1 is not necessarily\n // This is positive by how much the inner x loop below would be too large\n var nudgedTooFarRight = left + /*(int) */ Math.floor((matrixWidth - 1) * moduleSize) - right;\n if (nudgedTooFarRight > 0) {\n if (nudgedTooFarRight > nudge) {\n // Neither way fits; abort\n throw new NotFoundException();\n }\n left -= nudgedTooFarRight;\n }\n // See logic above\n var nudgedTooFarDown = top + /*(int) */ Math.floor((matrixHeight - 1) * moduleSize) - bottom;\n if (nudgedTooFarDown > 0) {\n if (nudgedTooFarDown > nudge) {\n // Neither way fits; abort\n throw new NotFoundException();\n }\n top -= nudgedTooFarDown;\n }\n // Now just read off the bits\n var bits = new BitMatrix(matrixWidth, matrixHeight);\n for (var y = 0; y < matrixHeight; y++) {\n var iOffset = top + /*(int) */ Math.floor(y * moduleSize);\n for (var x = 0; x < matrixWidth; x++) {\n if (image.get(left + /*(int) */ Math.floor(x * moduleSize), iOffset)) {\n bits.set(x, y);\n }\n }\n }\n return bits;\n };\n QRCodeReader.moduleSize = function (leftTopBlack, image) {\n var height = image.getHeight();\n var width = image.getWidth();\n var x = leftTopBlack[0];\n var y = leftTopBlack[1];\n var inBlack = true;\n var transitions = 0;\n while (x < width && y < height) {\n if (inBlack !== image.get(x, y)) {\n if (++transitions === 5) {\n break;\n }\n inBlack = !inBlack;\n }\n x++;\n y++;\n }\n if (x === width || y === height) {\n throw new NotFoundException();\n }\n return (x - leftTopBlack[0]) / 7.0;\n };\n QRCodeReader.NO_POINTS = new Array();\n return QRCodeReader;\n}());\nexport default QRCodeReader;\n","/*\n* Copyright 2009 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.pdf417;\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import java.util.Arrays;\nimport Arrays from '../util/Arrays';\n// import java.util.Collection;\n// import com.google.zxing.common.detector.MathUtils;\nimport MathUtils from '../common/detector/MathUtils';\n/**\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author Guenther Grau\n */\nvar PDF417Common = /** @class */ (function () {\n function PDF417Common() {\n }\n PDF417Common.prototype.PDF417Common = function () {\n };\n /**\n * @param moduleBitCount values to sum\n * @return sum of values\n * @deprecated call {@link MathUtils#sum(int[])}\n */\n // @Deprecated\n PDF417Common.getBitCountSum = function (moduleBitCount) {\n return MathUtils.sum(moduleBitCount);\n };\n PDF417Common.toIntArray = function (list) {\n var e_1, _a;\n if (list == null || !list.length) {\n return PDF417Common.EMPTY_INT_ARRAY;\n }\n var result = new Int32Array(list.length);\n var i = 0;\n try {\n for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {\n var integer = list_1_1.value;\n result[i++] = integer;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n };\n /**\n * @param symbol encoded symbol to translate to a codeword\n * @return the codeword corresponding to the symbol.\n */\n PDF417Common.getCodeword = function (symbol /*int*/) {\n var i = Arrays.binarySearch(PDF417Common.SYMBOL_TABLE, symbol & 0x3FFFF);\n if (i < 0) {\n return -1;\n }\n return (PDF417Common.CODEWORD_TABLE[i] - 1) % PDF417Common.NUMBER_OF_CODEWORDS;\n };\n PDF417Common.NUMBER_OF_CODEWORDS = 929;\n // Maximum Codewords (Data + Error).\n PDF417Common.MAX_CODEWORDS_IN_BARCODE = PDF417Common.NUMBER_OF_CODEWORDS - 1;\n PDF417Common.MIN_ROWS_IN_BARCODE = 3;\n PDF417Common.MAX_ROWS_IN_BARCODE = 90;\n // One left row indication column + max 30 data columns + one right row indicator column\n // public static /*final*/ MAX_CODEWORDS_IN_ROW: /*int*/ number = 32;\n PDF417Common.MODULES_IN_CODEWORD = 17;\n PDF417Common.MODULES_IN_STOP_PATTERN = 18;\n PDF417Common.BARS_IN_MODULE = 8;\n PDF417Common.EMPTY_INT_ARRAY = new Int32Array([]);\n /**\n * The sorted table of all possible symbols. Extracted from the PDF417\n * specification. The index of a symbol in this table corresponds to the\n * index into the codeword table.\n */\n PDF417Common.SYMBOL_TABLE = Int32Array.from([\n 0x1025e, 0x1027a, 0x1029e, 0x102bc, 0x102f2, 0x102f4, 0x1032e, 0x1034e, 0x1035c, 0x10396, 0x103a6, 0x103ac,\n 0x10422, 0x10428, 0x10436, 0x10442, 0x10444, 0x10448, 0x10450, 0x1045e, 0x10466, 0x1046c, 0x1047a, 0x10482,\n 0x1049e, 0x104a0, 0x104bc, 0x104c6, 0x104d8, 0x104ee, 0x104f2, 0x104f4, 0x10504, 0x10508, 0x10510, 0x1051e,\n 0x10520, 0x1053c, 0x10540, 0x10578, 0x10586, 0x1058c, 0x10598, 0x105b0, 0x105be, 0x105ce, 0x105dc, 0x105e2,\n 0x105e4, 0x105e8, 0x105f6, 0x1062e, 0x1064e, 0x1065c, 0x1068e, 0x1069c, 0x106b8, 0x106de, 0x106fa, 0x10716,\n 0x10726, 0x1072c, 0x10746, 0x1074c, 0x10758, 0x1076e, 0x10792, 0x10794, 0x107a2, 0x107a4, 0x107a8, 0x107b6,\n 0x10822, 0x10828, 0x10842, 0x10848, 0x10850, 0x1085e, 0x10866, 0x1086c, 0x1087a, 0x10882, 0x10884, 0x10890,\n 0x1089e, 0x108a0, 0x108bc, 0x108c6, 0x108cc, 0x108d8, 0x108ee, 0x108f2, 0x108f4, 0x10902, 0x10908, 0x1091e,\n 0x10920, 0x1093c, 0x10940, 0x10978, 0x10986, 0x10998, 0x109b0, 0x109be, 0x109ce, 0x109dc, 0x109e2, 0x109e4,\n 0x109e8, 0x109f6, 0x10a08, 0x10a10, 0x10a1e, 0x10a20, 0x10a3c, 0x10a40, 0x10a78, 0x10af0, 0x10b06, 0x10b0c,\n 0x10b18, 0x10b30, 0x10b3e, 0x10b60, 0x10b7c, 0x10b8e, 0x10b9c, 0x10bb8, 0x10bc2, 0x10bc4, 0x10bc8, 0x10bd0,\n 0x10bde, 0x10be6, 0x10bec, 0x10c2e, 0x10c4e, 0x10c5c, 0x10c62, 0x10c64, 0x10c68, 0x10c76, 0x10c8e, 0x10c9c,\n 0x10cb8, 0x10cc2, 0x10cc4, 0x10cc8, 0x10cd0, 0x10cde, 0x10ce6, 0x10cec, 0x10cfa, 0x10d0e, 0x10d1c, 0x10d38,\n 0x10d70, 0x10d7e, 0x10d82, 0x10d84, 0x10d88, 0x10d90, 0x10d9e, 0x10da0, 0x10dbc, 0x10dc6, 0x10dcc, 0x10dd8,\n 0x10dee, 0x10df2, 0x10df4, 0x10e16, 0x10e26, 0x10e2c, 0x10e46, 0x10e58, 0x10e6e, 0x10e86, 0x10e8c, 0x10e98,\n 0x10eb0, 0x10ebe, 0x10ece, 0x10edc, 0x10f0a, 0x10f12, 0x10f14, 0x10f22, 0x10f28, 0x10f36, 0x10f42, 0x10f44,\n 0x10f48, 0x10f50, 0x10f5e, 0x10f66, 0x10f6c, 0x10fb2, 0x10fb4, 0x11022, 0x11028, 0x11042, 0x11048, 0x11050,\n 0x1105e, 0x1107a, 0x11082, 0x11084, 0x11090, 0x1109e, 0x110a0, 0x110bc, 0x110c6, 0x110cc, 0x110d8, 0x110ee,\n 0x110f2, 0x110f4, 0x11102, 0x1111e, 0x11120, 0x1113c, 0x11140, 0x11178, 0x11186, 0x11198, 0x111b0, 0x111be,\n 0x111ce, 0x111dc, 0x111e2, 0x111e4, 0x111e8, 0x111f6, 0x11208, 0x1121e, 0x11220, 0x11278, 0x112f0, 0x1130c,\n 0x11330, 0x1133e, 0x11360, 0x1137c, 0x1138e, 0x1139c, 0x113b8, 0x113c2, 0x113c8, 0x113d0, 0x113de, 0x113e6,\n 0x113ec, 0x11408, 0x11410, 0x1141e, 0x11420, 0x1143c, 0x11440, 0x11478, 0x114f0, 0x115e0, 0x1160c, 0x11618,\n 0x11630, 0x1163e, 0x11660, 0x1167c, 0x116c0, 0x116f8, 0x1171c, 0x11738, 0x11770, 0x1177e, 0x11782, 0x11784,\n 0x11788, 0x11790, 0x1179e, 0x117a0, 0x117bc, 0x117c6, 0x117cc, 0x117d8, 0x117ee, 0x1182e, 0x11834, 0x1184e,\n 0x1185c, 0x11862, 0x11864, 0x11868, 0x11876, 0x1188e, 0x1189c, 0x118b8, 0x118c2, 0x118c8, 0x118d0, 0x118de,\n 0x118e6, 0x118ec, 0x118fa, 0x1190e, 0x1191c, 0x11938, 0x11970, 0x1197e, 0x11982, 0x11984, 0x11990, 0x1199e,\n 0x119a0, 0x119bc, 0x119c6, 0x119cc, 0x119d8, 0x119ee, 0x119f2, 0x119f4, 0x11a0e, 0x11a1c, 0x11a38, 0x11a70,\n 0x11a7e, 0x11ae0, 0x11afc, 0x11b08, 0x11b10, 0x11b1e, 0x11b20, 0x11b3c, 0x11b40, 0x11b78, 0x11b8c, 0x11b98,\n 0x11bb0, 0x11bbe, 0x11bce, 0x11bdc, 0x11be2, 0x11be4, 0x11be8, 0x11bf6, 0x11c16, 0x11c26, 0x11c2c, 0x11c46,\n 0x11c4c, 0x11c58, 0x11c6e, 0x11c86, 0x11c98, 0x11cb0, 0x11cbe, 0x11cce, 0x11cdc, 0x11ce2, 0x11ce4, 0x11ce8,\n 0x11cf6, 0x11d06, 0x11d0c, 0x11d18, 0x11d30, 0x11d3e, 0x11d60, 0x11d7c, 0x11d8e, 0x11d9c, 0x11db8, 0x11dc4,\n 0x11dc8, 0x11dd0, 0x11dde, 0x11de6, 0x11dec, 0x11dfa, 0x11e0a, 0x11e12, 0x11e14, 0x11e22, 0x11e24, 0x11e28,\n 0x11e36, 0x11e42, 0x11e44, 0x11e50, 0x11e5e, 0x11e66, 0x11e6c, 0x11e82, 0x11e84, 0x11e88, 0x11e90, 0x11e9e,\n 0x11ea0, 0x11ebc, 0x11ec6, 0x11ecc, 0x11ed8, 0x11eee, 0x11f1a, 0x11f2e, 0x11f32, 0x11f34, 0x11f4e, 0x11f5c,\n 0x11f62, 0x11f64, 0x11f68, 0x11f76, 0x12048, 0x1205e, 0x12082, 0x12084, 0x12090, 0x1209e, 0x120a0, 0x120bc,\n 0x120d8, 0x120f2, 0x120f4, 0x12108, 0x1211e, 0x12120, 0x1213c, 0x12140, 0x12178, 0x12186, 0x12198, 0x121b0,\n 0x121be, 0x121e2, 0x121e4, 0x121e8, 0x121f6, 0x12204, 0x12210, 0x1221e, 0x12220, 0x12278, 0x122f0, 0x12306,\n 0x1230c, 0x12330, 0x1233e, 0x12360, 0x1237c, 0x1238e, 0x1239c, 0x123b8, 0x123c2, 0x123c8, 0x123d0, 0x123e6,\n 0x123ec, 0x1241e, 0x12420, 0x1243c, 0x124f0, 0x125e0, 0x12618, 0x1263e, 0x12660, 0x1267c, 0x126c0, 0x126f8,\n 0x12738, 0x12770, 0x1277e, 0x12782, 0x12784, 0x12790, 0x1279e, 0x127a0, 0x127bc, 0x127c6, 0x127cc, 0x127d8,\n 0x127ee, 0x12820, 0x1283c, 0x12840, 0x12878, 0x128f0, 0x129e0, 0x12bc0, 0x12c18, 0x12c30, 0x12c3e, 0x12c60,\n 0x12c7c, 0x12cc0, 0x12cf8, 0x12df0, 0x12e1c, 0x12e38, 0x12e70, 0x12e7e, 0x12ee0, 0x12efc, 0x12f04, 0x12f08,\n 0x12f10, 0x12f20, 0x12f3c, 0x12f40, 0x12f78, 0x12f86, 0x12f8c, 0x12f98, 0x12fb0, 0x12fbe, 0x12fce, 0x12fdc,\n 0x1302e, 0x1304e, 0x1305c, 0x13062, 0x13068, 0x1308e, 0x1309c, 0x130b8, 0x130c2, 0x130c8, 0x130d0, 0x130de,\n 0x130ec, 0x130fa, 0x1310e, 0x13138, 0x13170, 0x1317e, 0x13182, 0x13184, 0x13190, 0x1319e, 0x131a0, 0x131bc,\n 0x131c6, 0x131cc, 0x131d8, 0x131f2, 0x131f4, 0x1320e, 0x1321c, 0x13270, 0x1327e, 0x132e0, 0x132fc, 0x13308,\n 0x1331e, 0x13320, 0x1333c, 0x13340, 0x13378, 0x13386, 0x13398, 0x133b0, 0x133be, 0x133ce, 0x133dc, 0x133e2,\n 0x133e4, 0x133e8, 0x133f6, 0x1340e, 0x1341c, 0x13438, 0x13470, 0x1347e, 0x134e0, 0x134fc, 0x135c0, 0x135f8,\n 0x13608, 0x13610, 0x1361e, 0x13620, 0x1363c, 0x13640, 0x13678, 0x136f0, 0x1370c, 0x13718, 0x13730, 0x1373e,\n 0x13760, 0x1377c, 0x1379c, 0x137b8, 0x137c2, 0x137c4, 0x137c8, 0x137d0, 0x137de, 0x137e6, 0x137ec, 0x13816,\n 0x13826, 0x1382c, 0x13846, 0x1384c, 0x13858, 0x1386e, 0x13874, 0x13886, 0x13898, 0x138b0, 0x138be, 0x138ce,\n 0x138dc, 0x138e2, 0x138e4, 0x138e8, 0x13906, 0x1390c, 0x13930, 0x1393e, 0x13960, 0x1397c, 0x1398e, 0x1399c,\n 0x139b8, 0x139c8, 0x139d0, 0x139de, 0x139e6, 0x139ec, 0x139fa, 0x13a06, 0x13a0c, 0x13a18, 0x13a30, 0x13a3e,\n 0x13a60, 0x13a7c, 0x13ac0, 0x13af8, 0x13b0e, 0x13b1c, 0x13b38, 0x13b70, 0x13b7e, 0x13b88, 0x13b90, 0x13b9e,\n 0x13ba0, 0x13bbc, 0x13bcc, 0x13bd8, 0x13bee, 0x13bf2, 0x13bf4, 0x13c12, 0x13c14, 0x13c22, 0x13c24, 0x13c28,\n 0x13c36, 0x13c42, 0x13c48, 0x13c50, 0x13c5e, 0x13c66, 0x13c6c, 0x13c82, 0x13c84, 0x13c90, 0x13c9e, 0x13ca0,\n 0x13cbc, 0x13cc6, 0x13ccc, 0x13cd8, 0x13cee, 0x13d02, 0x13d04, 0x13d08, 0x13d10, 0x13d1e, 0x13d20, 0x13d3c,\n 0x13d40, 0x13d78, 0x13d86, 0x13d8c, 0x13d98, 0x13db0, 0x13dbe, 0x13dce, 0x13ddc, 0x13de4, 0x13de8, 0x13df6,\n 0x13e1a, 0x13e2e, 0x13e32, 0x13e34, 0x13e4e, 0x13e5c, 0x13e62, 0x13e64, 0x13e68, 0x13e76, 0x13e8e, 0x13e9c,\n 0x13eb8, 0x13ec2, 0x13ec4, 0x13ec8, 0x13ed0, 0x13ede, 0x13ee6, 0x13eec, 0x13f26, 0x13f2c, 0x13f3a, 0x13f46,\n 0x13f4c, 0x13f58, 0x13f6e, 0x13f72, 0x13f74, 0x14082, 0x1409e, 0x140a0, 0x140bc, 0x14104, 0x14108, 0x14110,\n 0x1411e, 0x14120, 0x1413c, 0x14140, 0x14178, 0x1418c, 0x14198, 0x141b0, 0x141be, 0x141e2, 0x141e4, 0x141e8,\n 0x14208, 0x14210, 0x1421e, 0x14220, 0x1423c, 0x14240, 0x14278, 0x142f0, 0x14306, 0x1430c, 0x14318, 0x14330,\n 0x1433e, 0x14360, 0x1437c, 0x1438e, 0x143c2, 0x143c4, 0x143c8, 0x143d0, 0x143e6, 0x143ec, 0x14408, 0x14410,\n 0x1441e, 0x14420, 0x1443c, 0x14440, 0x14478, 0x144f0, 0x145e0, 0x1460c, 0x14618, 0x14630, 0x1463e, 0x14660,\n 0x1467c, 0x146c0, 0x146f8, 0x1471c, 0x14738, 0x14770, 0x1477e, 0x14782, 0x14784, 0x14788, 0x14790, 0x147a0,\n 0x147bc, 0x147c6, 0x147cc, 0x147d8, 0x147ee, 0x14810, 0x14820, 0x1483c, 0x14840, 0x14878, 0x148f0, 0x149e0,\n 0x14bc0, 0x14c30, 0x14c3e, 0x14c60, 0x14c7c, 0x14cc0, 0x14cf8, 0x14df0, 0x14e38, 0x14e70, 0x14e7e, 0x14ee0,\n 0x14efc, 0x14f04, 0x14f08, 0x14f10, 0x14f1e, 0x14f20, 0x14f3c, 0x14f40, 0x14f78, 0x14f86, 0x14f8c, 0x14f98,\n 0x14fb0, 0x14fce, 0x14fdc, 0x15020, 0x15040, 0x15078, 0x150f0, 0x151e0, 0x153c0, 0x15860, 0x1587c, 0x158c0,\n 0x158f8, 0x159f0, 0x15be0, 0x15c70, 0x15c7e, 0x15ce0, 0x15cfc, 0x15dc0, 0x15df8, 0x15e08, 0x15e10, 0x15e20,\n 0x15e40, 0x15e78, 0x15ef0, 0x15f0c, 0x15f18, 0x15f30, 0x15f60, 0x15f7c, 0x15f8e, 0x15f9c, 0x15fb8, 0x1604e,\n 0x1605c, 0x1608e, 0x1609c, 0x160b8, 0x160c2, 0x160c4, 0x160c8, 0x160de, 0x1610e, 0x1611c, 0x16138, 0x16170,\n 0x1617e, 0x16184, 0x16188, 0x16190, 0x1619e, 0x161a0, 0x161bc, 0x161c6, 0x161cc, 0x161d8, 0x161f2, 0x161f4,\n 0x1620e, 0x1621c, 0x16238, 0x16270, 0x1627e, 0x162e0, 0x162fc, 0x16304, 0x16308, 0x16310, 0x1631e, 0x16320,\n 0x1633c, 0x16340, 0x16378, 0x16386, 0x1638c, 0x16398, 0x163b0, 0x163be, 0x163ce, 0x163dc, 0x163e2, 0x163e4,\n 0x163e8, 0x163f6, 0x1640e, 0x1641c, 0x16438, 0x16470, 0x1647e, 0x164e0, 0x164fc, 0x165c0, 0x165f8, 0x16610,\n 0x1661e, 0x16620, 0x1663c, 0x16640, 0x16678, 0x166f0, 0x16718, 0x16730, 0x1673e, 0x16760, 0x1677c, 0x1678e,\n 0x1679c, 0x167b8, 0x167c2, 0x167c4, 0x167c8, 0x167d0, 0x167de, 0x167e6, 0x167ec, 0x1681c, 0x16838, 0x16870,\n 0x168e0, 0x168fc, 0x169c0, 0x169f8, 0x16bf0, 0x16c10, 0x16c1e, 0x16c20, 0x16c3c, 0x16c40, 0x16c78, 0x16cf0,\n 0x16de0, 0x16e18, 0x16e30, 0x16e3e, 0x16e60, 0x16e7c, 0x16ec0, 0x16ef8, 0x16f1c, 0x16f38, 0x16f70, 0x16f7e,\n 0x16f84, 0x16f88, 0x16f90, 0x16f9e, 0x16fa0, 0x16fbc, 0x16fc6, 0x16fcc, 0x16fd8, 0x17026, 0x1702c, 0x17046,\n 0x1704c, 0x17058, 0x1706e, 0x17086, 0x1708c, 0x17098, 0x170b0, 0x170be, 0x170ce, 0x170dc, 0x170e8, 0x17106,\n 0x1710c, 0x17118, 0x17130, 0x1713e, 0x17160, 0x1717c, 0x1718e, 0x1719c, 0x171b8, 0x171c2, 0x171c4, 0x171c8,\n 0x171d0, 0x171de, 0x171e6, 0x171ec, 0x171fa, 0x17206, 0x1720c, 0x17218, 0x17230, 0x1723e, 0x17260, 0x1727c,\n 0x172c0, 0x172f8, 0x1730e, 0x1731c, 0x17338, 0x17370, 0x1737e, 0x17388, 0x17390, 0x1739e, 0x173a0, 0x173bc,\n 0x173cc, 0x173d8, 0x173ee, 0x173f2, 0x173f4, 0x1740c, 0x17418, 0x17430, 0x1743e, 0x17460, 0x1747c, 0x174c0,\n 0x174f8, 0x175f0, 0x1760e, 0x1761c, 0x17638, 0x17670, 0x1767e, 0x176e0, 0x176fc, 0x17708, 0x17710, 0x1771e,\n 0x17720, 0x1773c, 0x17740, 0x17778, 0x17798, 0x177b0, 0x177be, 0x177dc, 0x177e2, 0x177e4, 0x177e8, 0x17822,\n 0x17824, 0x17828, 0x17836, 0x17842, 0x17844, 0x17848, 0x17850, 0x1785e, 0x17866, 0x1786c, 0x17882, 0x17884,\n 0x17888, 0x17890, 0x1789e, 0x178a0, 0x178bc, 0x178c6, 0x178cc, 0x178d8, 0x178ee, 0x178f2, 0x178f4, 0x17902,\n 0x17904, 0x17908, 0x17910, 0x1791e, 0x17920, 0x1793c, 0x17940, 0x17978, 0x17986, 0x1798c, 0x17998, 0x179b0,\n 0x179be, 0x179ce, 0x179dc, 0x179e2, 0x179e4, 0x179e8, 0x179f6, 0x17a04, 0x17a08, 0x17a10, 0x17a1e, 0x17a20,\n 0x17a3c, 0x17a40, 0x17a78, 0x17af0, 0x17b06, 0x17b0c, 0x17b18, 0x17b30, 0x17b3e, 0x17b60, 0x17b7c, 0x17b8e,\n 0x17b9c, 0x17bb8, 0x17bc4, 0x17bc8, 0x17bd0, 0x17bde, 0x17be6, 0x17bec, 0x17c2e, 0x17c32, 0x17c34, 0x17c4e,\n 0x17c5c, 0x17c62, 0x17c64, 0x17c68, 0x17c76, 0x17c8e, 0x17c9c, 0x17cb8, 0x17cc2, 0x17cc4, 0x17cc8, 0x17cd0,\n 0x17cde, 0x17ce6, 0x17cec, 0x17d0e, 0x17d1c, 0x17d38, 0x17d70, 0x17d82, 0x17d84, 0x17d88, 0x17d90, 0x17d9e,\n 0x17da0, 0x17dbc, 0x17dc6, 0x17dcc, 0x17dd8, 0x17dee, 0x17e26, 0x17e2c, 0x17e3a, 0x17e46, 0x17e4c, 0x17e58,\n 0x17e6e, 0x17e72, 0x17e74, 0x17e86, 0x17e8c, 0x17e98, 0x17eb0, 0x17ece, 0x17edc, 0x17ee2, 0x17ee4, 0x17ee8,\n 0x17ef6, 0x1813a, 0x18172, 0x18174, 0x18216, 0x18226, 0x1823a, 0x1824c, 0x18258, 0x1826e, 0x18272, 0x18274,\n 0x18298, 0x182be, 0x182e2, 0x182e4, 0x182e8, 0x182f6, 0x1835e, 0x1837a, 0x183ae, 0x183d6, 0x18416, 0x18426,\n 0x1842c, 0x1843a, 0x18446, 0x18458, 0x1846e, 0x18472, 0x18474, 0x18486, 0x184b0, 0x184be, 0x184ce, 0x184dc,\n 0x184e2, 0x184e4, 0x184e8, 0x184f6, 0x18506, 0x1850c, 0x18518, 0x18530, 0x1853e, 0x18560, 0x1857c, 0x1858e,\n 0x1859c, 0x185b8, 0x185c2, 0x185c4, 0x185c8, 0x185d0, 0x185de, 0x185e6, 0x185ec, 0x185fa, 0x18612, 0x18614,\n 0x18622, 0x18628, 0x18636, 0x18642, 0x18650, 0x1865e, 0x1867a, 0x18682, 0x18684, 0x18688, 0x18690, 0x1869e,\n 0x186a0, 0x186bc, 0x186c6, 0x186cc, 0x186d8, 0x186ee, 0x186f2, 0x186f4, 0x1872e, 0x1874e, 0x1875c, 0x18796,\n 0x187a6, 0x187ac, 0x187d2, 0x187d4, 0x18826, 0x1882c, 0x1883a, 0x18846, 0x1884c, 0x18858, 0x1886e, 0x18872,\n 0x18874, 0x18886, 0x18898, 0x188b0, 0x188be, 0x188ce, 0x188dc, 0x188e2, 0x188e4, 0x188e8, 0x188f6, 0x1890c,\n 0x18930, 0x1893e, 0x18960, 0x1897c, 0x1898e, 0x189b8, 0x189c2, 0x189c8, 0x189d0, 0x189de, 0x189e6, 0x189ec,\n 0x189fa, 0x18a18, 0x18a30, 0x18a3e, 0x18a60, 0x18a7c, 0x18ac0, 0x18af8, 0x18b1c, 0x18b38, 0x18b70, 0x18b7e,\n 0x18b82, 0x18b84, 0x18b88, 0x18b90, 0x18b9e, 0x18ba0, 0x18bbc, 0x18bc6, 0x18bcc, 0x18bd8, 0x18bee, 0x18bf2,\n 0x18bf4, 0x18c22, 0x18c24, 0x18c28, 0x18c36, 0x18c42, 0x18c48, 0x18c50, 0x18c5e, 0x18c66, 0x18c7a, 0x18c82,\n 0x18c84, 0x18c90, 0x18c9e, 0x18ca0, 0x18cbc, 0x18ccc, 0x18cf2, 0x18cf4, 0x18d04, 0x18d08, 0x18d10, 0x18d1e,\n 0x18d20, 0x18d3c, 0x18d40, 0x18d78, 0x18d86, 0x18d98, 0x18dce, 0x18de2, 0x18de4, 0x18de8, 0x18e2e, 0x18e32,\n 0x18e34, 0x18e4e, 0x18e5c, 0x18e62, 0x18e64, 0x18e68, 0x18e8e, 0x18e9c, 0x18eb8, 0x18ec2, 0x18ec4, 0x18ec8,\n 0x18ed0, 0x18efa, 0x18f16, 0x18f26, 0x18f2c, 0x18f46, 0x18f4c, 0x18f58, 0x18f6e, 0x18f8a, 0x18f92, 0x18f94,\n 0x18fa2, 0x18fa4, 0x18fa8, 0x18fb6, 0x1902c, 0x1903a, 0x19046, 0x1904c, 0x19058, 0x19072, 0x19074, 0x19086,\n 0x19098, 0x190b0, 0x190be, 0x190ce, 0x190dc, 0x190e2, 0x190e8, 0x190f6, 0x19106, 0x1910c, 0x19130, 0x1913e,\n 0x19160, 0x1917c, 0x1918e, 0x1919c, 0x191b8, 0x191c2, 0x191c8, 0x191d0, 0x191de, 0x191e6, 0x191ec, 0x191fa,\n 0x19218, 0x1923e, 0x19260, 0x1927c, 0x192c0, 0x192f8, 0x19338, 0x19370, 0x1937e, 0x19382, 0x19384, 0x19390,\n 0x1939e, 0x193a0, 0x193bc, 0x193c6, 0x193cc, 0x193d8, 0x193ee, 0x193f2, 0x193f4, 0x19430, 0x1943e, 0x19460,\n 0x1947c, 0x194c0, 0x194f8, 0x195f0, 0x19638, 0x19670, 0x1967e, 0x196e0, 0x196fc, 0x19702, 0x19704, 0x19708,\n 0x19710, 0x19720, 0x1973c, 0x19740, 0x19778, 0x19786, 0x1978c, 0x19798, 0x197b0, 0x197be, 0x197ce, 0x197dc,\n 0x197e2, 0x197e4, 0x197e8, 0x19822, 0x19824, 0x19842, 0x19848, 0x19850, 0x1985e, 0x19866, 0x1987a, 0x19882,\n 0x19884, 0x19890, 0x1989e, 0x198a0, 0x198bc, 0x198cc, 0x198f2, 0x198f4, 0x19902, 0x19908, 0x1991e, 0x19920,\n 0x1993c, 0x19940, 0x19978, 0x19986, 0x19998, 0x199ce, 0x199e2, 0x199e4, 0x199e8, 0x19a08, 0x19a10, 0x19a1e,\n 0x19a20, 0x19a3c, 0x19a40, 0x19a78, 0x19af0, 0x19b18, 0x19b3e, 0x19b60, 0x19b9c, 0x19bc2, 0x19bc4, 0x19bc8,\n 0x19bd0, 0x19be6, 0x19c2e, 0x19c34, 0x19c4e, 0x19c5c, 0x19c62, 0x19c64, 0x19c68, 0x19c8e, 0x19c9c, 0x19cb8,\n 0x19cc2, 0x19cc8, 0x19cd0, 0x19ce6, 0x19cfa, 0x19d0e, 0x19d1c, 0x19d38, 0x19d70, 0x19d7e, 0x19d82, 0x19d84,\n 0x19d88, 0x19d90, 0x19da0, 0x19dcc, 0x19df2, 0x19df4, 0x19e16, 0x19e26, 0x19e2c, 0x19e46, 0x19e4c, 0x19e58,\n 0x19e74, 0x19e86, 0x19e8c, 0x19e98, 0x19eb0, 0x19ebe, 0x19ece, 0x19ee2, 0x19ee4, 0x19ee8, 0x19f0a, 0x19f12,\n 0x19f14, 0x19f22, 0x19f24, 0x19f28, 0x19f42, 0x19f44, 0x19f48, 0x19f50, 0x19f5e, 0x19f6c, 0x19f9a, 0x19fae,\n 0x19fb2, 0x19fb4, 0x1a046, 0x1a04c, 0x1a072, 0x1a074, 0x1a086, 0x1a08c, 0x1a098, 0x1a0b0, 0x1a0be, 0x1a0e2,\n 0x1a0e4, 0x1a0e8, 0x1a0f6, 0x1a106, 0x1a10c, 0x1a118, 0x1a130, 0x1a13e, 0x1a160, 0x1a17c, 0x1a18e, 0x1a19c,\n 0x1a1b8, 0x1a1c2, 0x1a1c4, 0x1a1c8, 0x1a1d0, 0x1a1de, 0x1a1e6, 0x1a1ec, 0x1a218, 0x1a230, 0x1a23e, 0x1a260,\n 0x1a27c, 0x1a2c0, 0x1a2f8, 0x1a31c, 0x1a338, 0x1a370, 0x1a37e, 0x1a382, 0x1a384, 0x1a388, 0x1a390, 0x1a39e,\n 0x1a3a0, 0x1a3bc, 0x1a3c6, 0x1a3cc, 0x1a3d8, 0x1a3ee, 0x1a3f2, 0x1a3f4, 0x1a418, 0x1a430, 0x1a43e, 0x1a460,\n 0x1a47c, 0x1a4c0, 0x1a4f8, 0x1a5f0, 0x1a61c, 0x1a638, 0x1a670, 0x1a67e, 0x1a6e0, 0x1a6fc, 0x1a702, 0x1a704,\n 0x1a708, 0x1a710, 0x1a71e, 0x1a720, 0x1a73c, 0x1a740, 0x1a778, 0x1a786, 0x1a78c, 0x1a798, 0x1a7b0, 0x1a7be,\n 0x1a7ce, 0x1a7dc, 0x1a7e2, 0x1a7e4, 0x1a7e8, 0x1a830, 0x1a860, 0x1a87c, 0x1a8c0, 0x1a8f8, 0x1a9f0, 0x1abe0,\n 0x1ac70, 0x1ac7e, 0x1ace0, 0x1acfc, 0x1adc0, 0x1adf8, 0x1ae04, 0x1ae08, 0x1ae10, 0x1ae20, 0x1ae3c, 0x1ae40,\n 0x1ae78, 0x1aef0, 0x1af06, 0x1af0c, 0x1af18, 0x1af30, 0x1af3e, 0x1af60, 0x1af7c, 0x1af8e, 0x1af9c, 0x1afb8,\n 0x1afc4, 0x1afc8, 0x1afd0, 0x1afde, 0x1b042, 0x1b05e, 0x1b07a, 0x1b082, 0x1b084, 0x1b088, 0x1b090, 0x1b09e,\n 0x1b0a0, 0x1b0bc, 0x1b0cc, 0x1b0f2, 0x1b0f4, 0x1b102, 0x1b104, 0x1b108, 0x1b110, 0x1b11e, 0x1b120, 0x1b13c,\n 0x1b140, 0x1b178, 0x1b186, 0x1b198, 0x1b1ce, 0x1b1e2, 0x1b1e4, 0x1b1e8, 0x1b204, 0x1b208, 0x1b210, 0x1b21e,\n 0x1b220, 0x1b23c, 0x1b240, 0x1b278, 0x1b2f0, 0x1b30c, 0x1b33e, 0x1b360, 0x1b39c, 0x1b3c2, 0x1b3c4, 0x1b3c8,\n 0x1b3d0, 0x1b3e6, 0x1b410, 0x1b41e, 0x1b420, 0x1b43c, 0x1b440, 0x1b478, 0x1b4f0, 0x1b5e0, 0x1b618, 0x1b660,\n 0x1b67c, 0x1b6c0, 0x1b738, 0x1b782, 0x1b784, 0x1b788, 0x1b790, 0x1b79e, 0x1b7a0, 0x1b7cc, 0x1b82e, 0x1b84e,\n 0x1b85c, 0x1b88e, 0x1b89c, 0x1b8b8, 0x1b8c2, 0x1b8c4, 0x1b8c8, 0x1b8d0, 0x1b8e6, 0x1b8fa, 0x1b90e, 0x1b91c,\n 0x1b938, 0x1b970, 0x1b97e, 0x1b982, 0x1b984, 0x1b988, 0x1b990, 0x1b99e, 0x1b9a0, 0x1b9cc, 0x1b9f2, 0x1b9f4,\n 0x1ba0e, 0x1ba1c, 0x1ba38, 0x1ba70, 0x1ba7e, 0x1bae0, 0x1bafc, 0x1bb08, 0x1bb10, 0x1bb20, 0x1bb3c, 0x1bb40,\n 0x1bb98, 0x1bbce, 0x1bbe2, 0x1bbe4, 0x1bbe8, 0x1bc16, 0x1bc26, 0x1bc2c, 0x1bc46, 0x1bc4c, 0x1bc58, 0x1bc72,\n 0x1bc74, 0x1bc86, 0x1bc8c, 0x1bc98, 0x1bcb0, 0x1bcbe, 0x1bcce, 0x1bce2, 0x1bce4, 0x1bce8, 0x1bd06, 0x1bd0c,\n 0x1bd18, 0x1bd30, 0x1bd3e, 0x1bd60, 0x1bd7c, 0x1bd9c, 0x1bdc2, 0x1bdc4, 0x1bdc8, 0x1bdd0, 0x1bde6, 0x1bdfa,\n 0x1be12, 0x1be14, 0x1be22, 0x1be24, 0x1be28, 0x1be42, 0x1be44, 0x1be48, 0x1be50, 0x1be5e, 0x1be66, 0x1be82,\n 0x1be84, 0x1be88, 0x1be90, 0x1be9e, 0x1bea0, 0x1bebc, 0x1becc, 0x1bef4, 0x1bf1a, 0x1bf2e, 0x1bf32, 0x1bf34,\n 0x1bf4e, 0x1bf5c, 0x1bf62, 0x1bf64, 0x1bf68, 0x1c09a, 0x1c0b2, 0x1c0b4, 0x1c11a, 0x1c132, 0x1c134, 0x1c162,\n 0x1c164, 0x1c168, 0x1c176, 0x1c1ba, 0x1c21a, 0x1c232, 0x1c234, 0x1c24e, 0x1c25c, 0x1c262, 0x1c264, 0x1c268,\n 0x1c276, 0x1c28e, 0x1c2c2, 0x1c2c4, 0x1c2c8, 0x1c2d0, 0x1c2de, 0x1c2e6, 0x1c2ec, 0x1c2fa, 0x1c316, 0x1c326,\n 0x1c33a, 0x1c346, 0x1c34c, 0x1c372, 0x1c374, 0x1c41a, 0x1c42e, 0x1c432, 0x1c434, 0x1c44e, 0x1c45c, 0x1c462,\n 0x1c464, 0x1c468, 0x1c476, 0x1c48e, 0x1c49c, 0x1c4b8, 0x1c4c2, 0x1c4c8, 0x1c4d0, 0x1c4de, 0x1c4e6, 0x1c4ec,\n 0x1c4fa, 0x1c51c, 0x1c538, 0x1c570, 0x1c57e, 0x1c582, 0x1c584, 0x1c588, 0x1c590, 0x1c59e, 0x1c5a0, 0x1c5bc,\n 0x1c5c6, 0x1c5cc, 0x1c5d8, 0x1c5ee, 0x1c5f2, 0x1c5f4, 0x1c616, 0x1c626, 0x1c62c, 0x1c63a, 0x1c646, 0x1c64c,\n 0x1c658, 0x1c66e, 0x1c672, 0x1c674, 0x1c686, 0x1c68c, 0x1c698, 0x1c6b0, 0x1c6be, 0x1c6ce, 0x1c6dc, 0x1c6e2,\n 0x1c6e4, 0x1c6e8, 0x1c712, 0x1c714, 0x1c722, 0x1c728, 0x1c736, 0x1c742, 0x1c744, 0x1c748, 0x1c750, 0x1c75e,\n 0x1c766, 0x1c76c, 0x1c77a, 0x1c7ae, 0x1c7d6, 0x1c7ea, 0x1c81a, 0x1c82e, 0x1c832, 0x1c834, 0x1c84e, 0x1c85c,\n 0x1c862, 0x1c864, 0x1c868, 0x1c876, 0x1c88e, 0x1c89c, 0x1c8b8, 0x1c8c2, 0x1c8c8, 0x1c8d0, 0x1c8de, 0x1c8e6,\n 0x1c8ec, 0x1c8fa, 0x1c90e, 0x1c938, 0x1c970, 0x1c97e, 0x1c982, 0x1c984, 0x1c990, 0x1c99e, 0x1c9a0, 0x1c9bc,\n 0x1c9c6, 0x1c9cc, 0x1c9d8, 0x1c9ee, 0x1c9f2, 0x1c9f4, 0x1ca38, 0x1ca70, 0x1ca7e, 0x1cae0, 0x1cafc, 0x1cb02,\n 0x1cb04, 0x1cb08, 0x1cb10, 0x1cb20, 0x1cb3c, 0x1cb40, 0x1cb78, 0x1cb86, 0x1cb8c, 0x1cb98, 0x1cbb0, 0x1cbbe,\n 0x1cbce, 0x1cbdc, 0x1cbe2, 0x1cbe4, 0x1cbe8, 0x1cbf6, 0x1cc16, 0x1cc26, 0x1cc2c, 0x1cc3a, 0x1cc46, 0x1cc58,\n 0x1cc72, 0x1cc74, 0x1cc86, 0x1ccb0, 0x1ccbe, 0x1ccce, 0x1cce2, 0x1cce4, 0x1cce8, 0x1cd06, 0x1cd0c, 0x1cd18,\n 0x1cd30, 0x1cd3e, 0x1cd60, 0x1cd7c, 0x1cd9c, 0x1cdc2, 0x1cdc4, 0x1cdc8, 0x1cdd0, 0x1cdde, 0x1cde6, 0x1cdfa,\n 0x1ce22, 0x1ce28, 0x1ce42, 0x1ce50, 0x1ce5e, 0x1ce66, 0x1ce7a, 0x1ce82, 0x1ce84, 0x1ce88, 0x1ce90, 0x1ce9e,\n 0x1cea0, 0x1cebc, 0x1cecc, 0x1cef2, 0x1cef4, 0x1cf2e, 0x1cf32, 0x1cf34, 0x1cf4e, 0x1cf5c, 0x1cf62, 0x1cf64,\n 0x1cf68, 0x1cf96, 0x1cfa6, 0x1cfac, 0x1cfca, 0x1cfd2, 0x1cfd4, 0x1d02e, 0x1d032, 0x1d034, 0x1d04e, 0x1d05c,\n 0x1d062, 0x1d064, 0x1d068, 0x1d076, 0x1d08e, 0x1d09c, 0x1d0b8, 0x1d0c2, 0x1d0c4, 0x1d0c8, 0x1d0d0, 0x1d0de,\n 0x1d0e6, 0x1d0ec, 0x1d0fa, 0x1d11c, 0x1d138, 0x1d170, 0x1d17e, 0x1d182, 0x1d184, 0x1d188, 0x1d190, 0x1d19e,\n 0x1d1a0, 0x1d1bc, 0x1d1c6, 0x1d1cc, 0x1d1d8, 0x1d1ee, 0x1d1f2, 0x1d1f4, 0x1d21c, 0x1d238, 0x1d270, 0x1d27e,\n 0x1d2e0, 0x1d2fc, 0x1d302, 0x1d304, 0x1d308, 0x1d310, 0x1d31e, 0x1d320, 0x1d33c, 0x1d340, 0x1d378, 0x1d386,\n 0x1d38c, 0x1d398, 0x1d3b0, 0x1d3be, 0x1d3ce, 0x1d3dc, 0x1d3e2, 0x1d3e4, 0x1d3e8, 0x1d3f6, 0x1d470, 0x1d47e,\n 0x1d4e0, 0x1d4fc, 0x1d5c0, 0x1d5f8, 0x1d604, 0x1d608, 0x1d610, 0x1d620, 0x1d640, 0x1d678, 0x1d6f0, 0x1d706,\n 0x1d70c, 0x1d718, 0x1d730, 0x1d73e, 0x1d760, 0x1d77c, 0x1d78e, 0x1d79c, 0x1d7b8, 0x1d7c2, 0x1d7c4, 0x1d7c8,\n 0x1d7d0, 0x1d7de, 0x1d7e6, 0x1d7ec, 0x1d826, 0x1d82c, 0x1d83a, 0x1d846, 0x1d84c, 0x1d858, 0x1d872, 0x1d874,\n 0x1d886, 0x1d88c, 0x1d898, 0x1d8b0, 0x1d8be, 0x1d8ce, 0x1d8e2, 0x1d8e4, 0x1d8e8, 0x1d8f6, 0x1d90c, 0x1d918,\n 0x1d930, 0x1d93e, 0x1d960, 0x1d97c, 0x1d99c, 0x1d9c2, 0x1d9c4, 0x1d9c8, 0x1d9d0, 0x1d9e6, 0x1d9fa, 0x1da0c,\n 0x1da18, 0x1da30, 0x1da3e, 0x1da60, 0x1da7c, 0x1dac0, 0x1daf8, 0x1db38, 0x1db82, 0x1db84, 0x1db88, 0x1db90,\n 0x1db9e, 0x1dba0, 0x1dbcc, 0x1dbf2, 0x1dbf4, 0x1dc22, 0x1dc42, 0x1dc44, 0x1dc48, 0x1dc50, 0x1dc5e, 0x1dc66,\n 0x1dc7a, 0x1dc82, 0x1dc84, 0x1dc88, 0x1dc90, 0x1dc9e, 0x1dca0, 0x1dcbc, 0x1dccc, 0x1dcf2, 0x1dcf4, 0x1dd04,\n 0x1dd08, 0x1dd10, 0x1dd1e, 0x1dd20, 0x1dd3c, 0x1dd40, 0x1dd78, 0x1dd86, 0x1dd98, 0x1ddce, 0x1dde2, 0x1dde4,\n 0x1dde8, 0x1de2e, 0x1de32, 0x1de34, 0x1de4e, 0x1de5c, 0x1de62, 0x1de64, 0x1de68, 0x1de8e, 0x1de9c, 0x1deb8,\n 0x1dec2, 0x1dec4, 0x1dec8, 0x1ded0, 0x1dee6, 0x1defa, 0x1df16, 0x1df26, 0x1df2c, 0x1df46, 0x1df4c, 0x1df58,\n 0x1df72, 0x1df74, 0x1df8a, 0x1df92, 0x1df94, 0x1dfa2, 0x1dfa4, 0x1dfa8, 0x1e08a, 0x1e092, 0x1e094, 0x1e0a2,\n 0x1e0a4, 0x1e0a8, 0x1e0b6, 0x1e0da, 0x1e10a, 0x1e112, 0x1e114, 0x1e122, 0x1e124, 0x1e128, 0x1e136, 0x1e142,\n 0x1e144, 0x1e148, 0x1e150, 0x1e166, 0x1e16c, 0x1e17a, 0x1e19a, 0x1e1b2, 0x1e1b4, 0x1e20a, 0x1e212, 0x1e214,\n 0x1e222, 0x1e224, 0x1e228, 0x1e236, 0x1e242, 0x1e248, 0x1e250, 0x1e25e, 0x1e266, 0x1e26c, 0x1e27a, 0x1e282,\n 0x1e284, 0x1e288, 0x1e290, 0x1e2a0, 0x1e2bc, 0x1e2c6, 0x1e2cc, 0x1e2d8, 0x1e2ee, 0x1e2f2, 0x1e2f4, 0x1e31a,\n 0x1e332, 0x1e334, 0x1e35c, 0x1e362, 0x1e364, 0x1e368, 0x1e3ba, 0x1e40a, 0x1e412, 0x1e414, 0x1e422, 0x1e428,\n 0x1e436, 0x1e442, 0x1e448, 0x1e450, 0x1e45e, 0x1e466, 0x1e46c, 0x1e47a, 0x1e482, 0x1e484, 0x1e490, 0x1e49e,\n 0x1e4a0, 0x1e4bc, 0x1e4c6, 0x1e4cc, 0x1e4d8, 0x1e4ee, 0x1e4f2, 0x1e4f4, 0x1e502, 0x1e504, 0x1e508, 0x1e510,\n 0x1e51e, 0x1e520, 0x1e53c, 0x1e540, 0x1e578, 0x1e586, 0x1e58c, 0x1e598, 0x1e5b0, 0x1e5be, 0x1e5ce, 0x1e5dc,\n 0x1e5e2, 0x1e5e4, 0x1e5e8, 0x1e5f6, 0x1e61a, 0x1e62e, 0x1e632, 0x1e634, 0x1e64e, 0x1e65c, 0x1e662, 0x1e668,\n 0x1e68e, 0x1e69c, 0x1e6b8, 0x1e6c2, 0x1e6c4, 0x1e6c8, 0x1e6d0, 0x1e6e6, 0x1e6fa, 0x1e716, 0x1e726, 0x1e72c,\n 0x1e73a, 0x1e746, 0x1e74c, 0x1e758, 0x1e772, 0x1e774, 0x1e792, 0x1e794, 0x1e7a2, 0x1e7a4, 0x1e7a8, 0x1e7b6,\n 0x1e812, 0x1e814, 0x1e822, 0x1e824, 0x1e828, 0x1e836, 0x1e842, 0x1e844, 0x1e848, 0x1e850, 0x1e85e, 0x1e866,\n 0x1e86c, 0x1e87a, 0x1e882, 0x1e884, 0x1e888, 0x1e890, 0x1e89e, 0x1e8a0, 0x1e8bc, 0x1e8c6, 0x1e8cc, 0x1e8d8,\n 0x1e8ee, 0x1e8f2, 0x1e8f4, 0x1e902, 0x1e904, 0x1e908, 0x1e910, 0x1e920, 0x1e93c, 0x1e940, 0x1e978, 0x1e986,\n 0x1e98c, 0x1e998, 0x1e9b0, 0x1e9be, 0x1e9ce, 0x1e9dc, 0x1e9e2, 0x1e9e4, 0x1e9e8, 0x1e9f6, 0x1ea04, 0x1ea08,\n 0x1ea10, 0x1ea20, 0x1ea40, 0x1ea78, 0x1eaf0, 0x1eb06, 0x1eb0c, 0x1eb18, 0x1eb30, 0x1eb3e, 0x1eb60, 0x1eb7c,\n 0x1eb8e, 0x1eb9c, 0x1ebb8, 0x1ebc2, 0x1ebc4, 0x1ebc8, 0x1ebd0, 0x1ebde, 0x1ebe6, 0x1ebec, 0x1ec1a, 0x1ec2e,\n 0x1ec32, 0x1ec34, 0x1ec4e, 0x1ec5c, 0x1ec62, 0x1ec64, 0x1ec68, 0x1ec8e, 0x1ec9c, 0x1ecb8, 0x1ecc2, 0x1ecc4,\n 0x1ecc8, 0x1ecd0, 0x1ece6, 0x1ecfa, 0x1ed0e, 0x1ed1c, 0x1ed38, 0x1ed70, 0x1ed7e, 0x1ed82, 0x1ed84, 0x1ed88,\n 0x1ed90, 0x1ed9e, 0x1eda0, 0x1edcc, 0x1edf2, 0x1edf4, 0x1ee16, 0x1ee26, 0x1ee2c, 0x1ee3a, 0x1ee46, 0x1ee4c,\n 0x1ee58, 0x1ee6e, 0x1ee72, 0x1ee74, 0x1ee86, 0x1ee8c, 0x1ee98, 0x1eeb0, 0x1eebe, 0x1eece, 0x1eedc, 0x1eee2,\n 0x1eee4, 0x1eee8, 0x1ef12, 0x1ef22, 0x1ef24, 0x1ef28, 0x1ef36, 0x1ef42, 0x1ef44, 0x1ef48, 0x1ef50, 0x1ef5e,\n 0x1ef66, 0x1ef6c, 0x1ef7a, 0x1efae, 0x1efb2, 0x1efb4, 0x1efd6, 0x1f096, 0x1f0a6, 0x1f0ac, 0x1f0ba, 0x1f0ca,\n 0x1f0d2, 0x1f0d4, 0x1f116, 0x1f126, 0x1f12c, 0x1f13a, 0x1f146, 0x1f14c, 0x1f158, 0x1f16e, 0x1f172, 0x1f174,\n 0x1f18a, 0x1f192, 0x1f194, 0x1f1a2, 0x1f1a4, 0x1f1a8, 0x1f1da, 0x1f216, 0x1f226, 0x1f22c, 0x1f23a, 0x1f246,\n 0x1f258, 0x1f26e, 0x1f272, 0x1f274, 0x1f286, 0x1f28c, 0x1f298, 0x1f2b0, 0x1f2be, 0x1f2ce, 0x1f2dc, 0x1f2e2,\n 0x1f2e4, 0x1f2e8, 0x1f2f6, 0x1f30a, 0x1f312, 0x1f314, 0x1f322, 0x1f328, 0x1f342, 0x1f344, 0x1f348, 0x1f350,\n 0x1f35e, 0x1f366, 0x1f37a, 0x1f39a, 0x1f3ae, 0x1f3b2, 0x1f3b4, 0x1f416, 0x1f426, 0x1f42c, 0x1f43a, 0x1f446,\n 0x1f44c, 0x1f458, 0x1f46e, 0x1f472, 0x1f474, 0x1f486, 0x1f48c, 0x1f498, 0x1f4b0, 0x1f4be, 0x1f4ce, 0x1f4dc,\n 0x1f4e2, 0x1f4e4, 0x1f4e8, 0x1f4f6, 0x1f506, 0x1f50c, 0x1f518, 0x1f530, 0x1f53e, 0x1f560, 0x1f57c, 0x1f58e,\n 0x1f59c, 0x1f5b8, 0x1f5c2, 0x1f5c4, 0x1f5c8, 0x1f5d0, 0x1f5de, 0x1f5e6, 0x1f5ec, 0x1f5fa, 0x1f60a, 0x1f612,\n 0x1f614, 0x1f622, 0x1f624, 0x1f628, 0x1f636, 0x1f642, 0x1f644, 0x1f648, 0x1f650, 0x1f65e, 0x1f666, 0x1f67a,\n 0x1f682, 0x1f684, 0x1f688, 0x1f690, 0x1f69e, 0x1f6a0, 0x1f6bc, 0x1f6cc, 0x1f6f2, 0x1f6f4, 0x1f71a, 0x1f72e,\n 0x1f732, 0x1f734, 0x1f74e, 0x1f75c, 0x1f762, 0x1f764, 0x1f768, 0x1f776, 0x1f796, 0x1f7a6, 0x1f7ac, 0x1f7ba,\n 0x1f7d2, 0x1f7d4, 0x1f89a, 0x1f8ae, 0x1f8b2, 0x1f8b4, 0x1f8d6, 0x1f8ea, 0x1f91a, 0x1f92e, 0x1f932, 0x1f934,\n 0x1f94e, 0x1f95c, 0x1f962, 0x1f964, 0x1f968, 0x1f976, 0x1f996, 0x1f9a6, 0x1f9ac, 0x1f9ba, 0x1f9ca, 0x1f9d2,\n 0x1f9d4, 0x1fa1a, 0x1fa2e, 0x1fa32, 0x1fa34, 0x1fa4e, 0x1fa5c, 0x1fa62, 0x1fa64, 0x1fa68, 0x1fa76, 0x1fa8e,\n 0x1fa9c, 0x1fab8, 0x1fac2, 0x1fac4, 0x1fac8, 0x1fad0, 0x1fade, 0x1fae6, 0x1faec, 0x1fb16, 0x1fb26, 0x1fb2c,\n 0x1fb3a, 0x1fb46, 0x1fb4c, 0x1fb58, 0x1fb6e, 0x1fb72, 0x1fb74, 0x1fb8a, 0x1fb92, 0x1fb94, 0x1fba2, 0x1fba4,\n 0x1fba8, 0x1fbb6, 0x1fbda\n ]);\n /**\n * This table contains to codewords for all symbols.\n */\n PDF417Common.CODEWORD_TABLE = Int32Array.from([\n 2627, 1819, 2622, 2621, 1813, 1812, 2729, 2724, 2723, 2779, 2774, 2773, 902, 896, 908, 868, 865, 861, 859, 2511,\n 873, 871, 1780, 835, 2493, 825, 2491, 842, 837, 844, 1764, 1762, 811, 810, 809, 2483, 807, 2482, 806, 2480, 815,\n 814, 813, 812, 2484, 817, 816, 1745, 1744, 1742, 1746, 2655, 2637, 2635, 2626, 2625, 2623, 2628, 1820, 2752,\n 2739, 2737, 2728, 2727, 2725, 2730, 2785, 2783, 2778, 2777, 2775, 2780, 787, 781, 747, 739, 736, 2413, 754, 752,\n 1719, 692, 689, 681, 2371, 678, 2369, 700, 697, 694, 703, 1688, 1686, 642, 638, 2343, 631, 2341, 627, 2338, 651,\n 646, 643, 2345, 654, 652, 1652, 1650, 1647, 1654, 601, 599, 2322, 596, 2321, 594, 2319, 2317, 611, 610, 608, 606,\n 2324, 603, 2323, 615, 614, 612, 1617, 1616, 1614, 1612, 616, 1619, 1618, 2575, 2538, 2536, 905, 901, 898, 909,\n 2509, 2507, 2504, 870, 867, 864, 860, 2512, 875, 872, 1781, 2490, 2489, 2487, 2485, 1748, 836, 834, 832, 830,\n 2494, 827, 2492, 843, 841, 839, 845, 1765, 1763, 2701, 2676, 2674, 2653, 2648, 2656, 2634, 2633, 2631, 2629,\n 1821, 2638, 2636, 2770, 2763, 2761, 2750, 2745, 2753, 2736, 2735, 2733, 2731, 1848, 2740, 2738, 2786, 2784, 591,\n 588, 576, 569, 566, 2296, 1590, 537, 534, 526, 2276, 522, 2274, 545, 542, 539, 548, 1572, 1570, 481, 2245, 466,\n 2242, 462, 2239, 492, 485, 482, 2249, 496, 494, 1534, 1531, 1528, 1538, 413, 2196, 406, 2191, 2188, 425, 419,\n 2202, 415, 2199, 432, 430, 427, 1472, 1467, 1464, 433, 1476, 1474, 368, 367, 2160, 365, 2159, 362, 2157, 2155,\n 2152, 378, 377, 375, 2166, 372, 2165, 369, 2162, 383, 381, 379, 2168, 1419, 1418, 1416, 1414, 385, 1411, 384,\n 1423, 1422, 1420, 1424, 2461, 802, 2441, 2439, 790, 786, 783, 794, 2409, 2406, 2403, 750, 742, 738, 2414, 756,\n 753, 1720, 2367, 2365, 2362, 2359, 1663, 693, 691, 684, 2373, 680, 2370, 702, 699, 696, 704, 1690, 1687, 2337,\n 2336, 2334, 2332, 1624, 2329, 1622, 640, 637, 2344, 634, 2342, 630, 2340, 650, 648, 645, 2346, 655, 653, 1653,\n 1651, 1649, 1655, 2612, 2597, 2595, 2571, 2568, 2565, 2576, 2534, 2529, 2526, 1787, 2540, 2537, 907, 904, 900,\n 910, 2503, 2502, 2500, 2498, 1768, 2495, 1767, 2510, 2508, 2506, 869, 866, 863, 2513, 876, 874, 1782, 2720, 2713,\n 2711, 2697, 2694, 2691, 2702, 2672, 2670, 2664, 1828, 2678, 2675, 2647, 2646, 2644, 2642, 1823, 2639, 1822, 2654,\n 2652, 2650, 2657, 2771, 1855, 2765, 2762, 1850, 1849, 2751, 2749, 2747, 2754, 353, 2148, 344, 342, 336, 2142,\n 332, 2140, 345, 1375, 1373, 306, 2130, 299, 2128, 295, 2125, 319, 314, 311, 2132, 1354, 1352, 1349, 1356, 262,\n 257, 2101, 253, 2096, 2093, 274, 273, 267, 2107, 263, 2104, 280, 278, 275, 1316, 1311, 1308, 1320, 1318, 2052,\n 202, 2050, 2044, 2040, 219, 2063, 212, 2060, 208, 2055, 224, 221, 2066, 1260, 1258, 1252, 231, 1248, 229, 1266,\n 1264, 1261, 1268, 155, 1998, 153, 1996, 1994, 1991, 1988, 165, 164, 2007, 162, 2006, 159, 2003, 2000, 172, 171,\n 169, 2012, 166, 2010, 1186, 1184, 1182, 1179, 175, 1176, 173, 1192, 1191, 1189, 1187, 176, 1194, 1193, 2313,\n 2307, 2305, 592, 589, 2294, 2292, 2289, 578, 572, 568, 2297, 580, 1591, 2272, 2267, 2264, 1547, 538, 536, 529,\n 2278, 525, 2275, 547, 544, 541, 1574, 1571, 2237, 2235, 2229, 1493, 2225, 1489, 478, 2247, 470, 2244, 465, 2241,\n 493, 488, 484, 2250, 498, 495, 1536, 1533, 1530, 1539, 2187, 2186, 2184, 2182, 1432, 2179, 1430, 2176, 1427, 414,\n 412, 2197, 409, 2195, 405, 2193, 2190, 426, 424, 421, 2203, 418, 2201, 431, 429, 1473, 1471, 1469, 1466, 434,\n 1477, 1475, 2478, 2472, 2470, 2459, 2457, 2454, 2462, 803, 2437, 2432, 2429, 1726, 2443, 2440, 792, 789, 785,\n 2401, 2399, 2393, 1702, 2389, 1699, 2411, 2408, 2405, 745, 741, 2415, 758, 755, 1721, 2358, 2357, 2355, 2353,\n 1661, 2350, 1660, 2347, 1657, 2368, 2366, 2364, 2361, 1666, 690, 687, 2374, 683, 2372, 701, 698, 705, 1691, 1689,\n 2619, 2617, 2610, 2608, 2605, 2613, 2593, 2588, 2585, 1803, 2599, 2596, 2563, 2561, 2555, 1797, 2551, 1795, 2573,\n 2570, 2567, 2577, 2525, 2524, 2522, 2520, 1786, 2517, 1785, 2514, 1783, 2535, 2533, 2531, 2528, 1788, 2541, 2539,\n 906, 903, 911, 2721, 1844, 2715, 2712, 1838, 1836, 2699, 2696, 2693, 2703, 1827, 1826, 1824, 2673, 2671, 2669,\n 2666, 1829, 2679, 2677, 1858, 1857, 2772, 1854, 1853, 1851, 1856, 2766, 2764, 143, 1987, 139, 1986, 135, 133,\n 131, 1984, 128, 1983, 125, 1981, 138, 137, 136, 1985, 1133, 1132, 1130, 112, 110, 1974, 107, 1973, 104, 1971,\n 1969, 122, 121, 119, 117, 1977, 114, 1976, 124, 1115, 1114, 1112, 1110, 1117, 1116, 84, 83, 1953, 81, 1952, 78,\n 1950, 1948, 1945, 94, 93, 91, 1959, 88, 1958, 85, 1955, 99, 97, 95, 1961, 1086, 1085, 1083, 1081, 1078, 100,\n 1090, 1089, 1087, 1091, 49, 47, 1917, 44, 1915, 1913, 1910, 1907, 59, 1926, 56, 1925, 53, 1922, 1919, 66, 64,\n 1931, 61, 1929, 1042, 1040, 1038, 71, 1035, 70, 1032, 68, 1048, 1047, 1045, 1043, 1050, 1049, 12, 10, 1869, 1867,\n 1864, 1861, 21, 1880, 19, 1877, 1874, 1871, 28, 1888, 25, 1886, 22, 1883, 982, 980, 977, 974, 32, 30, 991, 989,\n 987, 984, 34, 995, 994, 992, 2151, 2150, 2147, 2146, 2144, 356, 355, 354, 2149, 2139, 2138, 2136, 2134, 1359,\n 343, 341, 338, 2143, 335, 2141, 348, 347, 346, 1376, 1374, 2124, 2123, 2121, 2119, 1326, 2116, 1324, 310, 308,\n 305, 2131, 302, 2129, 298, 2127, 320, 318, 316, 313, 2133, 322, 321, 1355, 1353, 1351, 1357, 2092, 2091, 2089,\n 2087, 1276, 2084, 1274, 2081, 1271, 259, 2102, 256, 2100, 252, 2098, 2095, 272, 269, 2108, 266, 2106, 281, 279,\n 277, 1317, 1315, 1313, 1310, 282, 1321, 1319, 2039, 2037, 2035, 2032, 1203, 2029, 1200, 1197, 207, 2053, 205,\n 2051, 201, 2049, 2046, 2043, 220, 218, 2064, 215, 2062, 211, 2059, 228, 226, 223, 2069, 1259, 1257, 1254, 232,\n 1251, 230, 1267, 1265, 1263, 2316, 2315, 2312, 2311, 2309, 2314, 2304, 2303, 2301, 2299, 1593, 2308, 2306, 590,\n 2288, 2287, 2285, 2283, 1578, 2280, 1577, 2295, 2293, 2291, 579, 577, 574, 571, 2298, 582, 581, 1592, 2263, 2262,\n 2260, 2258, 1545, 2255, 1544, 2252, 1541, 2273, 2271, 2269, 2266, 1550, 535, 532, 2279, 528, 2277, 546, 543, 549,\n 1575, 1573, 2224, 2222, 2220, 1486, 2217, 1485, 2214, 1482, 1479, 2238, 2236, 2234, 2231, 1496, 2228, 1492, 480,\n 477, 2248, 473, 2246, 469, 2243, 490, 487, 2251, 497, 1537, 1535, 1532, 2477, 2476, 2474, 2479, 2469, 2468, 2466,\n 2464, 1730, 2473, 2471, 2453, 2452, 2450, 2448, 1729, 2445, 1728, 2460, 2458, 2456, 2463, 805, 804, 2428, 2427,\n 2425, 2423, 1725, 2420, 1724, 2417, 1722, 2438, 2436, 2434, 2431, 1727, 2444, 2442, 793, 791, 788, 795, 2388,\n 2386, 2384, 1697, 2381, 1696, 2378, 1694, 1692, 2402, 2400, 2398, 2395, 1703, 2392, 1701, 2412, 2410, 2407, 751,\n 748, 744, 2416, 759, 757, 1807, 2620, 2618, 1806, 1805, 2611, 2609, 2607, 2614, 1802, 1801, 1799, 2594, 2592,\n 2590, 2587, 1804, 2600, 2598, 1794, 1793, 1791, 1789, 2564, 2562, 2560, 2557, 1798, 2554, 1796, 2574, 2572, 2569,\n 2578, 1847, 1846, 2722, 1843, 1842, 1840, 1845, 2716, 2714, 1835, 1834, 1832, 1830, 1839, 1837, 2700, 2698, 2695,\n 2704, 1817, 1811, 1810, 897, 862, 1777, 829, 826, 838, 1760, 1758, 808, 2481, 1741, 1740, 1738, 1743, 2624, 1818,\n 2726, 2776, 782, 740, 737, 1715, 686, 679, 695, 1682, 1680, 639, 628, 2339, 647, 644, 1645, 1643, 1640, 1648,\n 602, 600, 597, 595, 2320, 593, 2318, 609, 607, 604, 1611, 1610, 1608, 1606, 613, 1615, 1613, 2328, 926, 924, 892,\n 886, 899, 857, 850, 2505, 1778, 824, 823, 821, 819, 2488, 818, 2486, 833, 831, 828, 840, 1761, 1759, 2649, 2632,\n 2630, 2746, 2734, 2732, 2782, 2781, 570, 567, 1587, 531, 527, 523, 540, 1566, 1564, 476, 467, 463, 2240, 486,\n 483, 1524, 1521, 1518, 1529, 411, 403, 2192, 399, 2189, 423, 416, 1462, 1457, 1454, 428, 1468, 1465, 2210, 366,\n 363, 2158, 360, 2156, 357, 2153, 376, 373, 370, 2163, 1410, 1409, 1407, 1405, 382, 1402, 380, 1417, 1415, 1412,\n 1421, 2175, 2174, 777, 774, 771, 784, 732, 725, 722, 2404, 743, 1716, 676, 674, 668, 2363, 665, 2360, 685, 1684,\n 1681, 626, 624, 622, 2335, 620, 2333, 617, 2330, 641, 635, 649, 1646, 1644, 1642, 2566, 928, 925, 2530, 2527,\n 894, 891, 888, 2501, 2499, 2496, 858, 856, 854, 851, 1779, 2692, 2668, 2665, 2645, 2643, 2640, 2651, 2768, 2759,\n 2757, 2744, 2743, 2741, 2748, 352, 1382, 340, 337, 333, 1371, 1369, 307, 300, 296, 2126, 315, 312, 1347, 1342,\n 1350, 261, 258, 250, 2097, 246, 2094, 271, 268, 264, 1306, 1301, 1298, 276, 1312, 1309, 2115, 203, 2048, 195,\n 2045, 191, 2041, 213, 209, 2056, 1246, 1244, 1238, 225, 1234, 222, 1256, 1253, 1249, 1262, 2080, 2079, 154, 1997,\n 150, 1995, 147, 1992, 1989, 163, 160, 2004, 156, 2001, 1175, 1174, 1172, 1170, 1167, 170, 1164, 167, 1185, 1183,\n 1180, 1177, 174, 1190, 1188, 2025, 2024, 2022, 587, 586, 564, 559, 556, 2290, 573, 1588, 520, 518, 512, 2268,\n 508, 2265, 530, 1568, 1565, 461, 457, 2233, 450, 2230, 446, 2226, 479, 471, 489, 1526, 1523, 1520, 397, 395,\n 2185, 392, 2183, 389, 2180, 2177, 410, 2194, 402, 422, 1463, 1461, 1459, 1456, 1470, 2455, 799, 2433, 2430, 779,\n 776, 773, 2397, 2394, 2390, 734, 728, 724, 746, 1717, 2356, 2354, 2351, 2348, 1658, 677, 675, 673, 670, 667, 688,\n 1685, 1683, 2606, 2589, 2586, 2559, 2556, 2552, 927, 2523, 2521, 2518, 2515, 1784, 2532, 895, 893, 890, 2718,\n 2709, 2707, 2689, 2687, 2684, 2663, 2662, 2660, 2658, 1825, 2667, 2769, 1852, 2760, 2758, 142, 141, 1139, 1138,\n 134, 132, 129, 126, 1982, 1129, 1128, 1126, 1131, 113, 111, 108, 105, 1972, 101, 1970, 120, 118, 115, 1109, 1108,\n 1106, 1104, 123, 1113, 1111, 82, 79, 1951, 75, 1949, 72, 1946, 92, 89, 86, 1956, 1077, 1076, 1074, 1072, 98,\n 1069, 96, 1084, 1082, 1079, 1088, 1968, 1967, 48, 45, 1916, 42, 1914, 39, 1911, 1908, 60, 57, 54, 1923, 50, 1920,\n 1031, 1030, 1028, 1026, 67, 1023, 65, 1020, 62, 1041, 1039, 1036, 1033, 69, 1046, 1044, 1944, 1943, 1941, 11, 9,\n 1868, 7, 1865, 1862, 1859, 20, 1878, 16, 1875, 13, 1872, 970, 968, 966, 963, 29, 960, 26, 23, 983, 981, 978, 975,\n 33, 971, 31, 990, 988, 985, 1906, 1904, 1902, 993, 351, 2145, 1383, 331, 330, 328, 326, 2137, 323, 2135, 339,\n 1372, 1370, 294, 293, 291, 289, 2122, 286, 2120, 283, 2117, 309, 303, 317, 1348, 1346, 1344, 245, 244, 242, 2090,\n 239, 2088, 236, 2085, 2082, 260, 2099, 249, 270, 1307, 1305, 1303, 1300, 1314, 189, 2038, 186, 2036, 183, 2033,\n 2030, 2026, 206, 198, 2047, 194, 216, 1247, 1245, 1243, 1240, 227, 1237, 1255, 2310, 2302, 2300, 2286, 2284,\n 2281, 565, 563, 561, 558, 575, 1589, 2261, 2259, 2256, 2253, 1542, 521, 519, 517, 514, 2270, 511, 533, 1569,\n 1567, 2223, 2221, 2218, 2215, 1483, 2211, 1480, 459, 456, 453, 2232, 449, 474, 491, 1527, 1525, 1522, 2475, 2467,\n 2465, 2451, 2449, 2446, 801, 800, 2426, 2424, 2421, 2418, 1723, 2435, 780, 778, 775, 2387, 2385, 2382, 2379,\n 1695, 2375, 1693, 2396, 735, 733, 730, 727, 749, 1718, 2616, 2615, 2604, 2603, 2601, 2584, 2583, 2581, 2579,\n 1800, 2591, 2550, 2549, 2547, 2545, 1792, 2542, 1790, 2558, 929, 2719, 1841, 2710, 2708, 1833, 1831, 2690, 2688,\n 2686, 1815, 1809, 1808, 1774, 1756, 1754, 1737, 1736, 1734, 1739, 1816, 1711, 1676, 1674, 633, 629, 1638, 1636,\n 1633, 1641, 598, 1605, 1604, 1602, 1600, 605, 1609, 1607, 2327, 887, 853, 1775, 822, 820, 1757, 1755, 1584, 524,\n 1560, 1558, 468, 464, 1514, 1511, 1508, 1519, 408, 404, 400, 1452, 1447, 1444, 417, 1458, 1455, 2208, 364, 361,\n 358, 2154, 1401, 1400, 1398, 1396, 374, 1393, 371, 1408, 1406, 1403, 1413, 2173, 2172, 772, 726, 723, 1712, 672,\n 669, 666, 682, 1678, 1675, 625, 623, 621, 618, 2331, 636, 632, 1639, 1637, 1635, 920, 918, 884, 880, 889, 849,\n 848, 847, 846, 2497, 855, 852, 1776, 2641, 2742, 2787, 1380, 334, 1367, 1365, 301, 297, 1340, 1338, 1335, 1343,\n 255, 251, 247, 1296, 1291, 1288, 265, 1302, 1299, 2113, 204, 196, 192, 2042, 1232, 1230, 1224, 214, 1220, 210,\n 1242, 1239, 1235, 1250, 2077, 2075, 151, 148, 1993, 144, 1990, 1163, 1162, 1160, 1158, 1155, 161, 1152, 157,\n 1173, 1171, 1168, 1165, 168, 1181, 1178, 2021, 2020, 2018, 2023, 585, 560, 557, 1585, 516, 509, 1562, 1559, 458,\n 447, 2227, 472, 1516, 1513, 1510, 398, 396, 393, 390, 2181, 386, 2178, 407, 1453, 1451, 1449, 1446, 420, 1460,\n 2209, 769, 764, 720, 712, 2391, 729, 1713, 664, 663, 661, 659, 2352, 656, 2349, 671, 1679, 1677, 2553, 922, 919,\n 2519, 2516, 885, 883, 881, 2685, 2661, 2659, 2767, 2756, 2755, 140, 1137, 1136, 130, 127, 1125, 1124, 1122, 1127,\n 109, 106, 102, 1103, 1102, 1100, 1098, 116, 1107, 1105, 1980, 80, 76, 73, 1947, 1068, 1067, 1065, 1063, 90, 1060,\n 87, 1075, 1073, 1070, 1080, 1966, 1965, 46, 43, 40, 1912, 36, 1909, 1019, 1018, 1016, 1014, 58, 1011, 55, 1008,\n 51, 1029, 1027, 1024, 1021, 63, 1037, 1034, 1940, 1939, 1937, 1942, 8, 1866, 4, 1863, 1, 1860, 956, 954, 952,\n 949, 946, 17, 14, 969, 967, 964, 961, 27, 957, 24, 979, 976, 972, 1901, 1900, 1898, 1896, 986, 1905, 1903, 350,\n 349, 1381, 329, 327, 324, 1368, 1366, 292, 290, 287, 284, 2118, 304, 1341, 1339, 1337, 1345, 243, 240, 237, 2086,\n 233, 2083, 254, 1297, 1295, 1293, 1290, 1304, 2114, 190, 187, 184, 2034, 180, 2031, 177, 2027, 199, 1233, 1231,\n 1229, 1226, 217, 1223, 1241, 2078, 2076, 584, 555, 554, 552, 550, 2282, 562, 1586, 507, 506, 504, 502, 2257, 499,\n 2254, 515, 1563, 1561, 445, 443, 441, 2219, 438, 2216, 435, 2212, 460, 454, 475, 1517, 1515, 1512, 2447, 798,\n 797, 2422, 2419, 770, 768, 766, 2383, 2380, 2376, 721, 719, 717, 714, 731, 1714, 2602, 2582, 2580, 2548, 2546,\n 2543, 923, 921, 2717, 2706, 2705, 2683, 2682, 2680, 1771, 1752, 1750, 1733, 1732, 1731, 1735, 1814, 1707, 1670,\n 1668, 1631, 1629, 1626, 1634, 1599, 1598, 1596, 1594, 1603, 1601, 2326, 1772, 1753, 1751, 1581, 1554, 1552, 1504,\n 1501, 1498, 1509, 1442, 1437, 1434, 401, 1448, 1445, 2206, 1392, 1391, 1389, 1387, 1384, 359, 1399, 1397, 1394,\n 1404, 2171, 2170, 1708, 1672, 1669, 619, 1632, 1630, 1628, 1773, 1378, 1363, 1361, 1333, 1328, 1336, 1286, 1281,\n 1278, 248, 1292, 1289, 2111, 1218, 1216, 1210, 197, 1206, 193, 1228, 1225, 1221, 1236, 2073, 2071, 1151, 1150,\n 1148, 1146, 152, 1143, 149, 1140, 145, 1161, 1159, 1156, 1153, 158, 1169, 1166, 2017, 2016, 2014, 2019, 1582,\n 510, 1556, 1553, 452, 448, 1506, 1500, 394, 391, 387, 1443, 1441, 1439, 1436, 1450, 2207, 765, 716, 713, 1709,\n 662, 660, 657, 1673, 1671, 916, 914, 879, 878, 877, 882, 1135, 1134, 1121, 1120, 1118, 1123, 1097, 1096, 1094,\n 1092, 103, 1101, 1099, 1979, 1059, 1058, 1056, 1054, 77, 1051, 74, 1066, 1064, 1061, 1071, 1964, 1963, 1007,\n 1006, 1004, 1002, 999, 41, 996, 37, 1017, 1015, 1012, 1009, 52, 1025, 1022, 1936, 1935, 1933, 1938, 942, 940,\n 938, 935, 932, 5, 2, 955, 953, 950, 947, 18, 943, 15, 965, 962, 958, 1895, 1894, 1892, 1890, 973, 1899, 1897,\n 1379, 325, 1364, 1362, 288, 285, 1334, 1332, 1330, 241, 238, 234, 1287, 1285, 1283, 1280, 1294, 2112, 188, 185,\n 181, 178, 2028, 1219, 1217, 1215, 1212, 200, 1209, 1227, 2074, 2072, 583, 553, 551, 1583, 505, 503, 500, 513,\n 1557, 1555, 444, 442, 439, 436, 2213, 455, 451, 1507, 1505, 1502, 796, 763, 762, 760, 767, 711, 710, 708, 706,\n 2377, 718, 715, 1710, 2544, 917, 915, 2681, 1627, 1597, 1595, 2325, 1769, 1749, 1747, 1499, 1438, 1435, 2204,\n 1390, 1388, 1385, 1395, 2169, 2167, 1704, 1665, 1662, 1625, 1623, 1620, 1770, 1329, 1282, 1279, 2109, 1214, 1207,\n 1222, 2068, 2065, 1149, 1147, 1144, 1141, 146, 1157, 1154, 2013, 2011, 2008, 2015, 1579, 1549, 1546, 1495, 1487,\n 1433, 1431, 1428, 1425, 388, 1440, 2205, 1705, 658, 1667, 1664, 1119, 1095, 1093, 1978, 1057, 1055, 1052, 1062,\n 1962, 1960, 1005, 1003, 1000, 997, 38, 1013, 1010, 1932, 1930, 1927, 1934, 941, 939, 936, 933, 6, 930, 3, 951,\n 948, 944, 1889, 1887, 1884, 1881, 959, 1893, 1891, 35, 1377, 1360, 1358, 1327, 1325, 1322, 1331, 1277, 1275,\n 1272, 1269, 235, 1284, 2110, 1205, 1204, 1201, 1198, 182, 1195, 179, 1213, 2070, 2067, 1580, 501, 1551, 1548,\n 440, 437, 1497, 1494, 1490, 1503, 761, 709, 707, 1706, 913, 912, 2198, 1386, 2164, 2161, 1621, 1766, 2103, 1208,\n 2058, 2054, 1145, 1142, 2005, 2002, 1999, 2009, 1488, 1429, 1426, 2200, 1698, 1659, 1656, 1975, 1053, 1957, 1954,\n 1001, 998, 1924, 1921, 1918, 1928, 937, 934, 931, 1879, 1876, 1873, 1870, 945, 1885, 1882, 1323, 1273, 1270,\n 2105, 1202, 1199, 1196, 1211, 2061, 2057, 1576, 1543, 1540, 1484, 1481, 1478, 1491, 1700\n ]);\n return PDF417Common;\n}());\nexport default PDF417Common;\n","/*\n* Copyright 2007 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// import java.util.List;\n/**\n * @author Guenther Grau\n */\nvar PDF417DetectorResult = /** @class */ (function () {\n function PDF417DetectorResult(bits, points) {\n this.bits = bits;\n this.points = points;\n }\n PDF417DetectorResult.prototype.getBits = function () {\n return this.bits;\n };\n PDF417DetectorResult.prototype.getPoints = function () {\n return this.points;\n };\n return PDF417DetectorResult;\n}());\nexport default PDF417DetectorResult;\n","/*\n* Copyright 2009 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import com.google.zxing.NotFoundException;\n// import com.google.zxing.ResultPoint;\nimport ResultPoint from '../../ResultPoint';\nimport System from '../../util/System';\nimport Arrays from '../../util/Arrays';\nimport PDF417DetectorResult from './PDF417DetectorResult';\n// import java.util.ArrayList;\n// import java.util.Arrays;\n// import java.util.List;\n// import java.util.Map;\n/**\n *

    Encapsulates logic that can detect a PDF417 Code in an image, even if the\n * PDF417 Code is rotated or skewed, or partially obscured.

    \n *\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Guenther Grau\n */\nvar Detector = /** @class */ (function () {\n function Detector() {\n }\n /**\n *

    Detects a PDF417 Code in an image. Only checks 0 and 180 degree rotations.

    \n *\n * @param image barcode image to decode\n * @param hints optional hints to detector\n * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will\n * be found and returned\n * @return {@link PDF417DetectorResult} encapsulating results of detecting a PDF417 code\n * @throws NotFoundException if no PDF417 Code can be found\n */\n Detector.detectMultiple = function (image, hints, multiple) {\n // TODO detection improvement, tryHarder could try several different luminance thresholds/blackpoints or even\n // different binarizers\n // boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);\n var bitMatrix = image.getBlackMatrix();\n var barcodeCoordinates = Detector.detect(multiple, bitMatrix);\n if (!barcodeCoordinates.length) {\n bitMatrix = bitMatrix.clone();\n bitMatrix.rotate180();\n barcodeCoordinates = Detector.detect(multiple, bitMatrix);\n }\n return new PDF417DetectorResult(bitMatrix, barcodeCoordinates);\n };\n /**\n * Detects PDF417 codes in an image. Only checks 0 degree rotation\n * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will\n * be found and returned\n * @param bitMatrix bit matrix to detect barcodes in\n * @return List of ResultPoint arrays containing the coordinates of found barcodes\n */\n Detector.detect = function (multiple, bitMatrix) {\n var e_1, _a;\n var barcodeCoordinates = new Array();\n var row = 0;\n var column = 0;\n var foundBarcodeInRow = false;\n while (row < bitMatrix.getHeight()) {\n var vertices = Detector.findVertices(bitMatrix, row, column);\n if (vertices[0] == null && vertices[3] == null) {\n if (!foundBarcodeInRow) {\n // we didn't find any barcode so that's the end of searching\n break;\n }\n // we didn't find a barcode starting at the given column and row. Try again from the first column and slightly\n // below the lowest barcode we found so far.\n foundBarcodeInRow = false;\n column = 0;\n try {\n for (var barcodeCoordinates_1 = (e_1 = void 0, __values(barcodeCoordinates)), barcodeCoordinates_1_1 = barcodeCoordinates_1.next(); !barcodeCoordinates_1_1.done; barcodeCoordinates_1_1 = barcodeCoordinates_1.next()) {\n var barcodeCoordinate = barcodeCoordinates_1_1.value;\n if (barcodeCoordinate[1] != null) {\n row = Math.trunc(Math.max(row, barcodeCoordinate[1].getY()));\n }\n if (barcodeCoordinate[3] != null) {\n row = Math.max(row, Math.trunc(barcodeCoordinate[3].getY()));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (barcodeCoordinates_1_1 && !barcodeCoordinates_1_1.done && (_a = barcodeCoordinates_1.return)) _a.call(barcodeCoordinates_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n row += Detector.ROW_STEP;\n continue;\n }\n foundBarcodeInRow = true;\n barcodeCoordinates.push(vertices);\n if (!multiple) {\n break;\n }\n // if we didn't find a right row indicator column, then continue the search for the next barcode after the\n // start pattern of the barcode just found.\n if (vertices[2] != null) {\n column = Math.trunc(vertices[2].getX());\n row = Math.trunc(vertices[2].getY());\n }\n else {\n column = Math.trunc(vertices[4].getX());\n row = Math.trunc(vertices[4].getY());\n }\n }\n return barcodeCoordinates;\n };\n /**\n * Locate the vertices and the codewords area of a black blob using the Start\n * and Stop patterns as locators.\n *\n * @param matrix the scanned barcode image.\n * @return an array containing the vertices:\n * vertices[0] x, y top left barcode\n * vertices[1] x, y bottom left barcode\n * vertices[2] x, y top right barcode\n * vertices[3] x, y bottom right barcode\n * vertices[4] x, y top left codeword area\n * vertices[5] x, y bottom left codeword area\n * vertices[6] x, y top right codeword area\n * vertices[7] x, y bottom right codeword area\n */\n Detector.findVertices = function (matrix, startRow, startColumn) {\n var height = matrix.getHeight();\n var width = matrix.getWidth();\n // const result = new ResultPoint[8];\n var result = new Array(8);\n Detector.copyToResult(result, Detector.findRowsWithPattern(matrix, height, width, startRow, startColumn, Detector.START_PATTERN), Detector.INDEXES_START_PATTERN);\n if (result[4] != null) {\n startColumn = Math.trunc(result[4].getX());\n startRow = Math.trunc(result[4].getY());\n }\n Detector.copyToResult(result, Detector.findRowsWithPattern(matrix, height, width, startRow, startColumn, Detector.STOP_PATTERN), Detector.INDEXES_STOP_PATTERN);\n return result;\n };\n Detector.copyToResult = function (result, tmpResult, destinationIndexes) {\n for (var i = 0; i < destinationIndexes.length; i++) {\n result[destinationIndexes[i]] = tmpResult[i];\n }\n };\n Detector.findRowsWithPattern = function (matrix, height, width, startRow, startColumn, pattern) {\n // const result = new ResultPoint[4];\n var result = new Array(4);\n var found = false;\n var counters = new Int32Array(pattern.length);\n for (; startRow < height; startRow += Detector.ROW_STEP) {\n var loc = Detector.findGuardPattern(matrix, startColumn, startRow, width, false, pattern, counters);\n if (loc != null) {\n while (startRow > 0) {\n var previousRowLoc = Detector.findGuardPattern(matrix, startColumn, --startRow, width, false, pattern, counters);\n if (previousRowLoc != null) {\n loc = previousRowLoc;\n }\n else {\n startRow++;\n break;\n }\n }\n result[0] = new ResultPoint(loc[0], startRow);\n result[1] = new ResultPoint(loc[1], startRow);\n found = true;\n break;\n }\n }\n var stopRow = startRow + 1;\n // Last row of the current symbol that contains pattern\n if (found) {\n var skippedRowCount = 0;\n var previousRowLoc = Int32Array.from([Math.trunc(result[0].getX()), Math.trunc(result[1].getX())]);\n for (; stopRow < height; stopRow++) {\n var loc = Detector.findGuardPattern(matrix, previousRowLoc[0], stopRow, width, false, pattern, counters);\n // a found pattern is only considered to belong to the same barcode if the start and end positions\n // don't differ too much. Pattern drift should be not bigger than two for consecutive rows. With\n // a higher number of skipped rows drift could be larger. To keep it simple for now, we allow a slightly\n // larger drift and don't check for skipped rows.\n if (loc != null &&\n Math.abs(previousRowLoc[0] - loc[0]) < Detector.MAX_PATTERN_DRIFT &&\n Math.abs(previousRowLoc[1] - loc[1]) < Detector.MAX_PATTERN_DRIFT) {\n previousRowLoc = loc;\n skippedRowCount = 0;\n }\n else {\n if (skippedRowCount > Detector.SKIPPED_ROW_COUNT_MAX) {\n break;\n }\n else {\n skippedRowCount++;\n }\n }\n }\n stopRow -= skippedRowCount + 1;\n result[2] = new ResultPoint(previousRowLoc[0], stopRow);\n result[3] = new ResultPoint(previousRowLoc[1], stopRow);\n }\n if (stopRow - startRow < Detector.BARCODE_MIN_HEIGHT) {\n Arrays.fill(result, null);\n }\n return result;\n };\n /**\n * @param matrix row of black/white values to search\n * @param column x position to start search\n * @param row y position to start search\n * @param width the number of pixels to search on this row\n * @param pattern pattern of counts of number of black and white pixels that are\n * being searched for as a pattern\n * @param counters array of counters, as long as pattern, to re-use\n * @return start/end horizontal offset of guard pattern, as an array of two ints.\n */\n Detector.findGuardPattern = function (matrix, column, row, width, whiteFirst, pattern, counters) {\n Arrays.fillWithin(counters, 0, counters.length, 0);\n var patternStart = column;\n var pixelDrift = 0;\n // if there are black pixels left of the current pixel shift to the left, but only for MAX_PIXEL_DRIFT pixels\n while (matrix.get(patternStart, row) && patternStart > 0 && pixelDrift++ < Detector.MAX_PIXEL_DRIFT) {\n patternStart--;\n }\n var x = patternStart;\n var counterPosition = 0;\n var patternLength = pattern.length;\n for (var isWhite = whiteFirst; x < width; x++) {\n var pixel = matrix.get(x, row);\n if (pixel !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (Detector.patternMatchVariance(counters, pattern, Detector.MAX_INDIVIDUAL_VARIANCE) < Detector.MAX_AVG_VARIANCE) {\n return new Int32Array([patternStart, x]);\n }\n patternStart += counters[0] + counters[1];\n System.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n if (counterPosition === patternLength - 1 &&\n Detector.patternMatchVariance(counters, pattern, Detector.MAX_INDIVIDUAL_VARIANCE) < Detector.MAX_AVG_VARIANCE) {\n return new Int32Array([patternStart, x - 1]);\n }\n return null;\n };\n /**\n * Determines how closely a set of observed counts of runs of black/white\n * values matches a given target pattern. This is reported as the ratio of\n * the total variance from the expected pattern proportions across all\n * pattern elements, to the length of the pattern.\n *\n * @param counters observed counters\n * @param pattern expected pattern\n * @param maxIndividualVariance The most any counter can differ before we give up\n * @return ratio of total variance between counters and pattern compared to total pattern size\n */\n Detector.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\n var numCounters = counters.length;\n var total = 0;\n var patternLength = 0;\n for (var i = 0; i < numCounters; i++) {\n total += counters[i];\n patternLength += pattern[i];\n }\n if (total < patternLength) {\n // If we don't even have one pixel per unit of bar width, assume this\n // is too small to reliably match, so fail:\n return /*Float.POSITIVE_INFINITY*/ Infinity;\n }\n // We're going to fake floating-point math in integers. We just need to use more bits.\n // Scale up patternLength so that intermediate values below like scaledCounter will have\n // more \"significant digits\".\n var unitBarWidth = total / patternLength;\n maxIndividualVariance *= unitBarWidth;\n var totalVariance = 0.0;\n for (var x = 0; x < numCounters; x++) {\n var counter = counters[x];\n var scaledPattern = pattern[x] * unitBarWidth;\n var variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n if (variance > maxIndividualVariance) {\n return /*Float.POSITIVE_INFINITY*/ Infinity;\n }\n totalVariance += variance;\n }\n return totalVariance / total;\n };\n Detector.INDEXES_START_PATTERN = Int32Array.from([0, 4, 1, 5]);\n Detector.INDEXES_STOP_PATTERN = Int32Array.from([6, 2, 7, 3]);\n Detector.MAX_AVG_VARIANCE = 0.42;\n Detector.MAX_INDIVIDUAL_VARIANCE = 0.8;\n // B S B S B S B S Bar/Space pattern\n // 11111111 0 1 0 1 0 1 000\n Detector.START_PATTERN = Int32Array.from([8, 1, 1, 1, 1, 1, 1, 3]);\n // 1111111 0 1 000 1 0 1 00 1\n Detector.STOP_PATTERN = Int32Array.from([7, 1, 1, 3, 1, 1, 1, 2, 1]);\n Detector.MAX_PIXEL_DRIFT = 3;\n Detector.MAX_PATTERN_DRIFT = 5;\n // if we set the value too low, then we don't detect the correct height of the bar if the start patterns are damaged.\n // if we set the value too high, then we might detect the start pattern from a neighbor barcode.\n Detector.SKIPPED_ROW_COUNT_MAX = 25;\n // A PDF471 barcode should have at least 3 rows, with each row being >= 3 times the module width. Therefore it should be at least\n // 9 pixels tall. To be conservative, we use about half the size to ensure we don't miss it.\n Detector.ROW_STEP = 5;\n Detector.BARCODE_MIN_HEIGHT = 10;\n return Detector;\n}());\nexport default Detector;\n","/*\n* Copyright 2012 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder.ec;\nimport IllegalArgumentException from '../../../IllegalArgumentException';\nimport System from '../../../util/System';\nimport StringBuilder from '../../../util/StringBuilder';\n/**\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.GenericGFPoly\n */\nvar ModulusPoly = /** @class */ (function () {\n function ModulusPoly(field, coefficients) {\n if (coefficients.length === 0) {\n throw new IllegalArgumentException();\n }\n this.field = field;\n var coefficientsLength = /*int*/ coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n var firstNonZero = /*int*/ 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = new Int32Array([0]);\n }\n else {\n this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n System.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n ModulusPoly.prototype.getCoefficients = function () {\n return this.coefficients;\n };\n /**\n * @return degree of this polynomial\n */\n ModulusPoly.prototype.getDegree = function () {\n return this.coefficients.length - 1;\n };\n /**\n * @return true iff this polynomial is the monomial \"0\"\n */\n ModulusPoly.prototype.isZero = function () {\n return this.coefficients[0] === 0;\n };\n /**\n * @return coefficient of x^degree term in this polynomial\n */\n ModulusPoly.prototype.getCoefficient = function (degree) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n };\n /**\n * @return evaluation of this polynomial at a given point\n */\n ModulusPoly.prototype.evaluateAt = function (a) {\n var e_1, _a;\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n if (a === 1) {\n // Just the sum of the coefficients\n var sum = /*int*/ 0;\n try {\n for (var _b = __values(this.coefficients), _c = _b.next(); !_c.done; _c = _b.next()) {\n var coefficient = _c.value /*int*/;\n sum = this.field.add(sum, coefficient);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return sum;\n }\n var result = /*int*/ this.coefficients[0];\n var size = /*int*/ this.coefficients.length;\n for (var i /*int*/ = 1; i < size; i++) {\n result = this.field.add(this.field.multiply(a, result), this.coefficients[i]);\n }\n return result;\n };\n ModulusPoly.prototype.add = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n }\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n var smallerCoefficients = this.coefficients;\n var largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n var temp = smallerCoefficients;\n smallerCoefficients = largerCoefficients;\n largerCoefficients = temp;\n }\n var sumDiff = new Int32Array(largerCoefficients.length);\n var lengthDiff = /*int*/ largerCoefficients.length - smallerCoefficients.length;\n // Copy high-order terms only found in higher-degree polynomial's coefficients\n System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n for (var i /*int*/ = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = this.field.add(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new ModulusPoly(this.field, sumDiff);\n };\n ModulusPoly.prototype.subtract = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n }\n if (other.isZero()) {\n return this;\n }\n return this.add(other.negative());\n };\n ModulusPoly.prototype.multiply = function (other) {\n if (other instanceof ModulusPoly) {\n return this.multiplyOther(other);\n }\n return this.multiplyScalar(other);\n };\n ModulusPoly.prototype.multiplyOther = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n }\n if (this.isZero() || other.isZero()) {\n // return this.field.getZero();\n return new ModulusPoly(this.field, new Int32Array([0]));\n }\n var aCoefficients = this.coefficients;\n var aLength = /*int*/ aCoefficients.length;\n var bCoefficients = other.coefficients;\n var bLength = /*int*/ bCoefficients.length;\n var product = new Int32Array(aLength + bLength - 1);\n for (var i /*int*/ = 0; i < aLength; i++) {\n var aCoeff = /*int*/ aCoefficients[i];\n for (var j /*int*/ = 0; j < bLength; j++) {\n product[i + j] = this.field.add(product[i + j], this.field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new ModulusPoly(this.field, product);\n };\n ModulusPoly.prototype.negative = function () {\n var size = /*int*/ this.coefficients.length;\n var negativeCoefficients = new Int32Array(size);\n for (var i /*int*/ = 0; i < size; i++) {\n negativeCoefficients[i] = this.field.subtract(0, this.coefficients[i]);\n }\n return new ModulusPoly(this.field, negativeCoefficients);\n };\n ModulusPoly.prototype.multiplyScalar = function (scalar) {\n if (scalar === 0) {\n return new ModulusPoly(this.field, new Int32Array([0]));\n }\n if (scalar === 1) {\n return this;\n }\n var size = /*int*/ this.coefficients.length;\n var product = new Int32Array(size);\n for (var i /*int*/ = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], scalar);\n }\n return new ModulusPoly(this.field, product);\n };\n ModulusPoly.prototype.multiplyByMonomial = function (degree, coefficient) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return new ModulusPoly(this.field, new Int32Array([0]));\n }\n var size = /*int*/ this.coefficients.length;\n var product = new Int32Array(size + degree);\n for (var i /*int*/ = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], coefficient);\n }\n return new ModulusPoly(this.field, product);\n };\n /*\n ModulusPoly[] divide(other: ModulusPoly) {\n if (!field.equals(other.field)) {\n throw new IllegalArgumentException(\"ModulusPolys do not have same ModulusGF field\");\n }\n if (other.isZero()) {\n throw new IllegalArgumentException(\"Divide by 0\");\n }\n \n let quotient: ModulusPoly = field.getZero();\n let remainder: ModulusPoly = this;\n \n let denominatorLeadingTerm: /*int/ number = other.getCoefficient(other.getDegree());\n let inverseDenominatorLeadingTerm: /*int/ number = field.inverse(denominatorLeadingTerm);\n \n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n let degreeDifference: /*int/ number = remainder.getDegree() - other.getDegree();\n let scale: /*int/ number = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n let term: ModulusPoly = other.multiplyByMonomial(degreeDifference, scale);\n let iterationQuotient: ModulusPoly = field.buildMonomial(degreeDifference, scale);\n quotient = quotient.add(iterationQuotient);\n remainder = remainder.subtract(term);\n }\n \n return new ModulusPoly[] { quotient, remainder };\n }\n */\n // @Override\n ModulusPoly.prototype.toString = function () {\n var result = new StringBuilder( /*8 * this.getDegree()*/); // dynamic string size in JS\n for (var degree /*int*/ = this.getDegree(); degree >= 0; degree--) {\n var coefficient = /*int*/ this.getCoefficient(degree);\n if (coefficient !== 0) {\n if (coefficient < 0) {\n result.append(' - ');\n coefficient = -coefficient;\n }\n else {\n if (result.length() > 0) {\n result.append(' + ');\n }\n }\n if (degree === 0 || coefficient !== 1) {\n result.append(coefficient);\n }\n if (degree !== 0) {\n if (degree === 1) {\n result.append('x');\n }\n else {\n result.append('x^');\n result.append(degree);\n }\n }\n }\n }\n return result.toString();\n };\n return ModulusPoly;\n}());\nexport default ModulusPoly;\n","import IllegalArgumentException from '../../../IllegalArgumentException';\nimport ArithmeticException from '../../../ArithmeticException';\nvar ModulusBase = /** @class */ (function () {\n function ModulusBase() {\n }\n ModulusBase.prototype.add = function (a, b) {\n return (a + b) % this.modulus;\n };\n ModulusBase.prototype.subtract = function (a, b) {\n return (this.modulus + a - b) % this.modulus;\n };\n ModulusBase.prototype.exp = function (a) {\n return this.expTable[a];\n };\n ModulusBase.prototype.log = function (a) {\n if (a === 0) {\n throw new IllegalArgumentException();\n }\n return this.logTable[a];\n };\n ModulusBase.prototype.inverse = function (a) {\n if (a === 0) {\n throw new ArithmeticException();\n }\n return this.expTable[this.modulus - this.logTable[a] - 1];\n };\n ModulusBase.prototype.multiply = function (a, b) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.modulus - 1)];\n };\n ModulusBase.prototype.getSize = function () {\n return this.modulus;\n };\n ModulusBase.prototype.equals = function (o) {\n return o === this;\n };\n return ModulusBase;\n}());\nexport default ModulusBase;\n","/*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n// package com.google.zxing.pdf417.decoder.ec;\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../../PDF417Common';\nimport ModulusPoly from './ModulusPoly';\nimport IllegalArgumentException from '../../../IllegalArgumentException';\nimport ModulusBase from './ModulusBase';\n/**\n *

    A field based on powers of a generator integer, modulo some modulus.

    \n *\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.GenericGF\n */\nvar ModulusGF = /** @class */ (function (_super) {\n __extends(ModulusGF, _super);\n // private /*final*/ modulus: /*int*/ number;\n function ModulusGF(modulus, generator) {\n var _this = _super.call(this) || this;\n _this.modulus = modulus;\n _this.expTable = new Int32Array(modulus);\n _this.logTable = new Int32Array(modulus);\n var x = /*int*/ 1;\n for (var i /*int*/ = 0; i < modulus; i++) {\n _this.expTable[i] = x;\n x = (x * generator) % modulus;\n }\n for (var i /*int*/ = 0; i < modulus - 1; i++) {\n _this.logTable[_this.expTable[i]] = i;\n }\n // logTable[0] == 0 but this should never be used\n _this.zero = new ModulusPoly(_this, new Int32Array([0]));\n _this.one = new ModulusPoly(_this, new Int32Array([1]));\n return _this;\n }\n ModulusGF.prototype.getZero = function () {\n return this.zero;\n };\n ModulusGF.prototype.getOne = function () {\n return this.one;\n };\n ModulusGF.prototype.buildMonomial = function (degree, coefficient) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return this.zero;\n }\n var coefficients = new Int32Array(degree + 1);\n coefficients[0] = coefficient;\n return new ModulusPoly(this, coefficients);\n };\n ModulusGF.PDF417_GF = new ModulusGF(PDF417Common.NUMBER_OF_CODEWORDS, 3);\n return ModulusGF;\n}(ModulusBase));\nexport default ModulusGF;\n","/*\n* Copyright 2012 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder.ec;\n// import com.google.zxing.ChecksumException;\nimport ChecksumException from '../../../ChecksumException';\nimport ModulusPoly from './ModulusPoly';\nimport ModulusGF from './ModulusGF';\n/**\n *

    PDF417 error correction implementation.

    \n *\n *

    This example\n * is quite useful in understanding the algorithm.

    \n *\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.ReedSolomonDecoder\n */\nvar ErrorCorrection = /** @class */ (function () {\n function ErrorCorrection() {\n this.field = ModulusGF.PDF417_GF;\n }\n /**\n * @param received received codewords\n * @param numECCodewords number of those codewords used for EC\n * @param erasures location of erasures\n * @return number of errors\n * @throws ChecksumException if errors cannot be corrected, maybe because of too many errors\n */\n ErrorCorrection.prototype.decode = function (received, numECCodewords, erasures) {\n var e_1, _a;\n var poly = new ModulusPoly(this.field, received);\n var S = new Int32Array(numECCodewords);\n var error = false;\n for (var i /*int*/ = numECCodewords; i > 0; i--) {\n var evaluation = poly.evaluateAt(this.field.exp(i));\n S[numECCodewords - i] = evaluation;\n if (evaluation !== 0) {\n error = true;\n }\n }\n if (!error) {\n return 0;\n }\n var knownErrors = this.field.getOne();\n if (erasures != null) {\n try {\n for (var erasures_1 = __values(erasures), erasures_1_1 = erasures_1.next(); !erasures_1_1.done; erasures_1_1 = erasures_1.next()) {\n var erasure = erasures_1_1.value;\n var b = this.field.exp(received.length - 1 - erasure);\n // Add (1 - bx) term:\n var term = new ModulusPoly(this.field, new Int32Array([this.field.subtract(0, b), 1]));\n knownErrors = knownErrors.multiply(term);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (erasures_1_1 && !erasures_1_1.done && (_a = erasures_1.return)) _a.call(erasures_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n var syndrome = new ModulusPoly(this.field, S);\n // syndrome = syndrome.multiply(knownErrors);\n var sigmaOmega = this.runEuclideanAlgorithm(this.field.buildMonomial(numECCodewords, 1), syndrome, numECCodewords);\n var sigma = sigmaOmega[0];\n var omega = sigmaOmega[1];\n // sigma = sigma.multiply(knownErrors);\n var errorLocations = this.findErrorLocations(sigma);\n var errorMagnitudes = this.findErrorMagnitudes(omega, sigma, errorLocations);\n for (var i /*int*/ = 0; i < errorLocations.length; i++) {\n var position = received.length - 1 - this.field.log(errorLocations[i]);\n if (position < 0) {\n throw ChecksumException.getChecksumInstance();\n }\n received[position] = this.field.subtract(received[position], errorMagnitudes[i]);\n }\n return errorLocations.length;\n };\n /**\n *\n * @param ModulusPoly\n * @param a\n * @param ModulusPoly\n * @param b\n * @param int\n * @param R\n * @throws ChecksumException\n */\n ErrorCorrection.prototype.runEuclideanAlgorithm = function (a, b, R) {\n // Assume a's degree is >= b's\n if (a.getDegree() < b.getDegree()) {\n var temp = a;\n a = b;\n b = temp;\n }\n var rLast = a;\n var r = b;\n var tLast = this.field.getZero();\n var t = this.field.getOne();\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.getDegree() >= Math.round(R / 2)) {\n var rLastLast = rLast;\n var tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Oops, Euclidean algorithm already terminated?\n throw ChecksumException.getChecksumInstance();\n }\n r = rLastLast;\n var q = this.field.getZero();\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n var dltInverse = this.field.inverse(denominatorLeadingTerm);\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n var degreeDiff = r.getDegree() - rLast.getDegree();\n var scale = this.field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n q = q.add(this.field.buildMonomial(degreeDiff, scale));\n r = r.subtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiply(tLast).subtract(tLastLast).negative();\n }\n var sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n throw ChecksumException.getChecksumInstance();\n }\n var inverse = this.field.inverse(sigmaTildeAtZero);\n var sigma = t.multiply(inverse);\n var omega = r.multiply(inverse);\n return [sigma, omega];\n };\n /**\n *\n * @param errorLocator\n * @throws ChecksumException\n */\n ErrorCorrection.prototype.findErrorLocations = function (errorLocator) {\n // This is a direct application of Chien's search\n var numErrors = errorLocator.getDegree();\n var result = new Int32Array(numErrors);\n var e = 0;\n for (var i /*int*/ = 1; i < this.field.getSize() && e < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[e] = this.field.inverse(i);\n e++;\n }\n }\n if (e !== numErrors) {\n throw ChecksumException.getChecksumInstance();\n }\n return result;\n };\n ErrorCorrection.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocator, errorLocations) {\n var errorLocatorDegree = errorLocator.getDegree();\n var formalDerivativeCoefficients = new Int32Array(errorLocatorDegree);\n for (var i /*int*/ = 1; i <= errorLocatorDegree; i++) {\n formalDerivativeCoefficients[errorLocatorDegree - i] =\n this.field.multiply(i, errorLocator.getCoefficient(i));\n }\n var formalDerivative = new ModulusPoly(this.field, formalDerivativeCoefficients);\n // This is directly applying Forney's Formula\n var s = errorLocations.length;\n var result = new Int32Array(s);\n for (var i /*int*/ = 0; i < s; i++) {\n var xiInverse = this.field.inverse(errorLocations[i]);\n var numerator = this.field.subtract(0, errorEvaluator.evaluateAt(xiInverse));\n var denominator = this.field.inverse(formalDerivative.evaluateAt(xiInverse));\n result[i] = this.field.multiply(numerator, denominator);\n }\n return result;\n };\n return ErrorCorrection;\n}());\nexport default ErrorCorrection;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.NotFoundException;\nimport NotFoundException from '../../NotFoundException';\n// import com.google.zxing.ResultPoint;\nimport ResultPoint from '../../ResultPoint';\n/**\n * @author Guenther Grau\n */\nvar BoundingBox = /** @class */ (function () {\n function BoundingBox(image, topLeft, bottomLeft, topRight, bottomRight) {\n if (image instanceof BoundingBox) {\n this.constructor_2(image);\n }\n else {\n this.constructor_1(image, topLeft, bottomLeft, topRight, bottomRight);\n }\n }\n /**\n *\n * @param image\n * @param topLeft\n * @param bottomLeft\n * @param topRight\n * @param bottomRight\n *\n * @throws NotFoundException\n */\n BoundingBox.prototype.constructor_1 = function (image, topLeft, bottomLeft, topRight, bottomRight) {\n var leftUnspecified = topLeft == null || bottomLeft == null;\n var rightUnspecified = topRight == null || bottomRight == null;\n if (leftUnspecified && rightUnspecified) {\n throw new NotFoundException();\n }\n if (leftUnspecified) {\n topLeft = new ResultPoint(0, topRight.getY());\n bottomLeft = new ResultPoint(0, bottomRight.getY());\n }\n else if (rightUnspecified) {\n topRight = new ResultPoint(image.getWidth() - 1, topLeft.getY());\n bottomRight = new ResultPoint(image.getWidth() - 1, bottomLeft.getY());\n }\n this.image = image;\n this.topLeft = topLeft;\n this.bottomLeft = bottomLeft;\n this.topRight = topRight;\n this.bottomRight = bottomRight;\n this.minX = Math.trunc(Math.min(topLeft.getX(), bottomLeft.getX()));\n this.maxX = Math.trunc(Math.max(topRight.getX(), bottomRight.getX()));\n this.minY = Math.trunc(Math.min(topLeft.getY(), topRight.getY()));\n this.maxY = Math.trunc(Math.max(bottomLeft.getY(), bottomRight.getY()));\n };\n BoundingBox.prototype.constructor_2 = function (boundingBox) {\n this.image = boundingBox.image;\n this.topLeft = boundingBox.getTopLeft();\n this.bottomLeft = boundingBox.getBottomLeft();\n this.topRight = boundingBox.getTopRight();\n this.bottomRight = boundingBox.getBottomRight();\n this.minX = boundingBox.getMinX();\n this.maxX = boundingBox.getMaxX();\n this.minY = boundingBox.getMinY();\n this.maxY = boundingBox.getMaxY();\n };\n /**\n * @throws NotFoundException\n */\n BoundingBox.merge = function (leftBox, rightBox) {\n if (leftBox == null) {\n return rightBox;\n }\n if (rightBox == null) {\n return leftBox;\n }\n return new BoundingBox(leftBox.image, leftBox.topLeft, leftBox.bottomLeft, rightBox.topRight, rightBox.bottomRight);\n };\n /**\n * @throws NotFoundException\n */\n BoundingBox.prototype.addMissingRows = function (missingStartRows, missingEndRows, isLeft) {\n var newTopLeft = this.topLeft;\n var newBottomLeft = this.bottomLeft;\n var newTopRight = this.topRight;\n var newBottomRight = this.bottomRight;\n if (missingStartRows > 0) {\n var top_1 = isLeft ? this.topLeft : this.topRight;\n var newMinY = Math.trunc(top_1.getY() - missingStartRows);\n if (newMinY < 0) {\n newMinY = 0;\n }\n var newTop = new ResultPoint(top_1.getX(), newMinY);\n if (isLeft) {\n newTopLeft = newTop;\n }\n else {\n newTopRight = newTop;\n }\n }\n if (missingEndRows > 0) {\n var bottom = isLeft ? this.bottomLeft : this.bottomRight;\n var newMaxY = Math.trunc(bottom.getY() + missingEndRows);\n if (newMaxY >= this.image.getHeight()) {\n newMaxY = this.image.getHeight() - 1;\n }\n var newBottom = new ResultPoint(bottom.getX(), newMaxY);\n if (isLeft) {\n newBottomLeft = newBottom;\n }\n else {\n newBottomRight = newBottom;\n }\n }\n return new BoundingBox(this.image, newTopLeft, newBottomLeft, newTopRight, newBottomRight);\n };\n BoundingBox.prototype.getMinX = function () {\n return this.minX;\n };\n BoundingBox.prototype.getMaxX = function () {\n return this.maxX;\n };\n BoundingBox.prototype.getMinY = function () {\n return this.minY;\n };\n BoundingBox.prototype.getMaxY = function () {\n return this.maxY;\n };\n BoundingBox.prototype.getTopLeft = function () {\n return this.topLeft;\n };\n BoundingBox.prototype.getTopRight = function () {\n return this.topRight;\n };\n BoundingBox.prototype.getBottomLeft = function () {\n return this.bottomLeft;\n };\n BoundingBox.prototype.getBottomRight = function () {\n return this.bottomRight;\n };\n return BoundingBox;\n}());\nexport default BoundingBox;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417.decoder;\n/**\n * @author Guenther Grau\n */\nvar BarcodeMetadata = /** @class */ (function () {\n function BarcodeMetadata(columnCount, rowCountUpperPart, rowCountLowerPart, errorCorrectionLevel) {\n this.columnCount = columnCount;\n this.errorCorrectionLevel = errorCorrectionLevel;\n this.rowCountUpperPart = rowCountUpperPart;\n this.rowCountLowerPart = rowCountLowerPart;\n this.rowCount = rowCountUpperPart + rowCountLowerPart;\n }\n BarcodeMetadata.prototype.getColumnCount = function () {\n return this.columnCount;\n };\n BarcodeMetadata.prototype.getErrorCorrectionLevel = function () {\n return this.errorCorrectionLevel;\n };\n BarcodeMetadata.prototype.getRowCount = function () {\n return this.rowCount;\n };\n BarcodeMetadata.prototype.getRowCountUpperPart = function () {\n return this.rowCountUpperPart;\n };\n BarcodeMetadata.prototype.getRowCountLowerPart = function () {\n return this.rowCountLowerPart;\n };\n return BarcodeMetadata;\n}());\nexport default BarcodeMetadata;\n","/**\n * Java Formatter class polyfill that works in the JS way.\n */\nvar Formatter = /** @class */ (function () {\n function Formatter() {\n this.buffer = '';\n }\n /**\n *\n * @see https://stackoverflow.com/a/13439711/4367683\n *\n * @param str\n * @param arr\n */\n Formatter.form = function (str, arr) {\n var i = -1;\n function callback(exp, p0, p1, p2, p3, p4) {\n if (exp === '%%')\n return '%';\n if (arr[++i] === undefined)\n return undefined;\n exp = p2 ? parseInt(p2.substr(1)) : undefined;\n var base = p3 ? parseInt(p3.substr(1)) : undefined;\n var val;\n switch (p4) {\n case 's':\n val = arr[i];\n break;\n case 'c':\n val = arr[i][0];\n break;\n case 'f':\n val = parseFloat(arr[i]).toFixed(exp);\n break;\n case 'p':\n val = parseFloat(arr[i]).toPrecision(exp);\n break;\n case 'e':\n val = parseFloat(arr[i]).toExponential(exp);\n break;\n case 'x':\n val = parseInt(arr[i]).toString(base ? base : 16);\n break;\n case 'd':\n val = parseFloat(parseInt(arr[i], base ? base : 10).toPrecision(exp)).toFixed(0);\n break;\n }\n val = typeof val === 'object' ? JSON.stringify(val) : (+val).toString(base);\n var size = parseInt(p1); /* padding size */\n var ch = p1 && (p1[0] + '') === '0' ? '0' : ' '; /* isnull? */\n while (val.length < size)\n val = p0 !== undefined ? val + ch : ch + val; /* isminus? */\n return val;\n }\n var regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;\n return str.replace(regex, callback);\n };\n /**\n *\n * @param append The new string to append.\n * @param args Argumets values to be formated.\n */\n Formatter.prototype.format = function (append) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n this.buffer += Formatter.form(append, args);\n };\n /**\n * Returns the Formatter string value.\n */\n Formatter.prototype.toString = function () {\n return this.buffer;\n };\n return Formatter;\n}());\nexport default Formatter;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder;\n// import java.util.Formatter;\nimport Formatter from '../../util/Formatter';\nimport BoundingBox from './BoundingBox';\n/**\n * @author Guenther Grau\n */\nvar DetectionResultColumn = /** @class */ (function () {\n function DetectionResultColumn(boundingBox) {\n this.boundingBox = new BoundingBox(boundingBox);\n // this.codewords = new Codeword[boundingBox.getMaxY() - boundingBox.getMinY() + 1];\n this.codewords = new Array(boundingBox.getMaxY() - boundingBox.getMinY() + 1);\n }\n /*final*/ DetectionResultColumn.prototype.getCodewordNearby = function (imageRow) {\n var codeword = this.getCodeword(imageRow);\n if (codeword != null) {\n return codeword;\n }\n for (var i = 1; i < DetectionResultColumn.MAX_NEARBY_DISTANCE; i++) {\n var nearImageRow = this.imageRowToCodewordIndex(imageRow) - i;\n if (nearImageRow >= 0) {\n codeword = this.codewords[nearImageRow];\n if (codeword != null) {\n return codeword;\n }\n }\n nearImageRow = this.imageRowToCodewordIndex(imageRow) + i;\n if (nearImageRow < this.codewords.length) {\n codeword = this.codewords[nearImageRow];\n if (codeword != null) {\n return codeword;\n }\n }\n }\n return null;\n };\n /*final int*/ DetectionResultColumn.prototype.imageRowToCodewordIndex = function (imageRow) {\n return imageRow - this.boundingBox.getMinY();\n };\n /*final void*/ DetectionResultColumn.prototype.setCodeword = function (imageRow, codeword) {\n this.codewords[this.imageRowToCodewordIndex(imageRow)] = codeword;\n };\n /*final*/ DetectionResultColumn.prototype.getCodeword = function (imageRow) {\n return this.codewords[this.imageRowToCodewordIndex(imageRow)];\n };\n /*final*/ DetectionResultColumn.prototype.getBoundingBox = function () {\n return this.boundingBox;\n };\n /*final*/ DetectionResultColumn.prototype.getCodewords = function () {\n return this.codewords;\n };\n // @Override\n DetectionResultColumn.prototype.toString = function () {\n var e_1, _a;\n var formatter = new Formatter();\n var row = 0;\n try {\n for (var _b = __values(this.codewords), _c = _b.next(); !_c.done; _c = _b.next()) {\n var codeword = _c.value;\n if (codeword == null) {\n formatter.format('%3d: | %n', row++);\n continue;\n }\n formatter.format('%3d: %3d|%3d%n', row++, codeword.getRowNumber(), codeword.getValue());\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return formatter.toString();\n };\n DetectionResultColumn.MAX_NEARBY_DISTANCE = 5;\n return DetectionResultColumn;\n}());\nexport default DetectionResultColumn;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\n// import java.util.ArrayList;\n// import java.util.Collection;\n// import java.util.HashMap;\n// import java.util.Map;\n// import java.util.Map.Entry;\n/**\n * @author Guenther Grau\n */\nvar BarcodeValue = /** @class */ (function () {\n function BarcodeValue() {\n this.values = new Map();\n }\n /**\n * Add an occurrence of a value\n */\n BarcodeValue.prototype.setValue = function (value) {\n value = Math.trunc(value);\n var confidence = this.values.get(value);\n if (confidence == null) {\n confidence = 0;\n }\n confidence++;\n this.values.set(value, confidence);\n };\n /**\n * Determines the maximum occurrence of a set value and returns all values which were set with this occurrence.\n * @return an array of int, containing the values with the highest occurrence, or null, if no value was set\n */\n BarcodeValue.prototype.getValue = function () {\n var e_1, _a;\n var maxConfidence = -1;\n var result = new Array();\n var _loop_1 = function (key, value) {\n var entry = {\n getKey: function () { return key; },\n getValue: function () { return value; },\n };\n if (entry.getValue() > maxConfidence) {\n maxConfidence = entry.getValue();\n result = [];\n result.push(entry.getKey());\n }\n else if (entry.getValue() === maxConfidence) {\n result.push(entry.getKey());\n }\n };\n try {\n for (var _b = __values(this.values.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n _loop_1(key, value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return PDF417Common.toIntArray(result);\n };\n BarcodeValue.prototype.getConfidence = function (value) {\n return this.values.get(value);\n };\n return BarcodeValue;\n}());\nexport default BarcodeValue;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\nimport BarcodeMetadata from './BarcodeMetadata';\nimport DetectionResultColumn from './DetectionResultColumn';\nimport BarcodeValue from './BarcodeValue';\n/**\n * @author Guenther Grau\n */\nvar DetectionResultRowIndicatorColumn = /** @class */ (function (_super) {\n __extends(DetectionResultRowIndicatorColumn, _super);\n function DetectionResultRowIndicatorColumn(boundingBox, isLeft) {\n var _this = _super.call(this, boundingBox) || this;\n _this._isLeft = isLeft;\n return _this;\n }\n DetectionResultRowIndicatorColumn.prototype.setRowNumbers = function () {\n var e_1, _a;\n try {\n for (var _b = __values(this.getCodewords()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var codeword = _c.value /*Codeword*/;\n if (codeword != null) {\n codeword.setRowNumberAsRowIndicatorColumn();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n // TODO implement properly\n // TODO maybe we should add missing codewords to store the correct row number to make\n // finding row numbers for other columns easier\n // use row height count to make detection of invalid row numbers more reliable\n DetectionResultRowIndicatorColumn.prototype.adjustCompleteIndicatorColumnRowNumbers = function (barcodeMetadata) {\n var codewords = this.getCodewords();\n this.setRowNumbers();\n this.removeIncorrectCodewords(codewords, barcodeMetadata);\n var boundingBox = this.getBoundingBox();\n var top = this._isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight();\n var bottom = this._isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight();\n var firstRow = this.imageRowToCodewordIndex(Math.trunc(top.getY()));\n var lastRow = this.imageRowToCodewordIndex(Math.trunc(bottom.getY()));\n // We need to be careful using the average row height. Barcode could be skewed so that we have smaller and\n // taller rows\n // float averageRowHeight = (lastRow - firstRow) / /*(float)*/ barcodeMetadata.getRowCount();\n var barcodeRow = -1;\n var maxRowHeight = 1;\n var currentRowHeight = 0;\n for (var codewordsRow /*int*/ = firstRow; codewordsRow < lastRow; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n var codeword = codewords[codewordsRow];\n // float expectedRowNumber = (codewordsRow - firstRow) / averageRowHeight;\n // if (Math.abs(codeword.getRowNumber() - expectedRowNumber) > 2) {\n // SimpleLog.log(LEVEL.WARNING,\n // \"Removing codeword, rowNumberSkew too high, codeword[\" + codewordsRow + \"]: Expected Row: \" +\n // expectedRowNumber + \", RealRow: \" + codeword.getRowNumber() + \", value: \" + codeword.getValue());\n // codewords[codewordsRow] = null;\n // }\n var rowDifference = codeword.getRowNumber() - barcodeRow;\n // TODO improve handling with case where first row indicator doesn't start with 0\n if (rowDifference === 0) {\n currentRowHeight++;\n }\n else if (rowDifference === 1) {\n maxRowHeight = Math.max(maxRowHeight, currentRowHeight);\n currentRowHeight = 1;\n barcodeRow = codeword.getRowNumber();\n }\n else if (rowDifference < 0 ||\n codeword.getRowNumber() >= barcodeMetadata.getRowCount() ||\n rowDifference > codewordsRow) {\n codewords[codewordsRow] = null;\n }\n else {\n var checkedRows = void 0;\n if (maxRowHeight > 2) {\n checkedRows = (maxRowHeight - 2) * rowDifference;\n }\n else {\n checkedRows = rowDifference;\n }\n var closePreviousCodewordFound = checkedRows >= codewordsRow;\n for (var i /*int*/ = 1; i <= checkedRows && !closePreviousCodewordFound; i++) {\n // there must be (height * rowDifference) number of codewords missing. For now we assume height = 1.\n // This should hopefully get rid of most problems already.\n closePreviousCodewordFound = codewords[codewordsRow - i] != null;\n }\n if (closePreviousCodewordFound) {\n codewords[codewordsRow] = null;\n }\n else {\n barcodeRow = codeword.getRowNumber();\n currentRowHeight = 1;\n }\n }\n }\n // return (int) (averageRowHeight + 0.5);\n };\n DetectionResultRowIndicatorColumn.prototype.getRowHeights = function () {\n var e_2, _a;\n var barcodeMetadata = this.getBarcodeMetadata();\n if (barcodeMetadata == null) {\n return null;\n }\n this.adjustIncompleteIndicatorColumnRowNumbers(barcodeMetadata);\n var result = new Int32Array(barcodeMetadata.getRowCount());\n try {\n for (var _b = __values(this.getCodewords()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var codeword = _c.value /*Codeword*/;\n if (codeword != null) {\n var rowNumber = codeword.getRowNumber();\n if (rowNumber >= result.length) {\n // We have more rows than the barcode metadata allows for, ignore them.\n continue;\n }\n result[rowNumber]++;\n } // else throw exception?\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n };\n // TODO maybe we should add missing codewords to store the correct row number to make\n // finding row numbers for other columns easier\n // use row height count to make detection of invalid row numbers more reliable\n DetectionResultRowIndicatorColumn.prototype.adjustIncompleteIndicatorColumnRowNumbers = function (barcodeMetadata) {\n var boundingBox = this.getBoundingBox();\n var top = this._isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight();\n var bottom = this._isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight();\n var firstRow = this.imageRowToCodewordIndex(Math.trunc(top.getY()));\n var lastRow = this.imageRowToCodewordIndex(Math.trunc(bottom.getY()));\n // float averageRowHeight = (lastRow - firstRow) / /*(float)*/ barcodeMetadata.getRowCount();\n var codewords = this.getCodewords();\n var barcodeRow = -1;\n var maxRowHeight = 1;\n var currentRowHeight = 0;\n for (var codewordsRow /*int*/ = firstRow; codewordsRow < lastRow; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n var codeword = codewords[codewordsRow];\n codeword.setRowNumberAsRowIndicatorColumn();\n var rowDifference = codeword.getRowNumber() - barcodeRow;\n // TODO improve handling with case where first row indicator doesn't start with 0\n if (rowDifference === 0) {\n currentRowHeight++;\n }\n else if (rowDifference === 1) {\n maxRowHeight = Math.max(maxRowHeight, currentRowHeight);\n currentRowHeight = 1;\n barcodeRow = codeword.getRowNumber();\n }\n else if (codeword.getRowNumber() >= barcodeMetadata.getRowCount()) {\n codewords[codewordsRow] = null;\n }\n else {\n barcodeRow = codeword.getRowNumber();\n currentRowHeight = 1;\n }\n }\n // return (int) (averageRowHeight + 0.5);\n };\n DetectionResultRowIndicatorColumn.prototype.getBarcodeMetadata = function () {\n var e_3, _a;\n var codewords = this.getCodewords();\n var barcodeColumnCount = new BarcodeValue();\n var barcodeRowCountUpperPart = new BarcodeValue();\n var barcodeRowCountLowerPart = new BarcodeValue();\n var barcodeECLevel = new BarcodeValue();\n try {\n for (var codewords_1 = __values(codewords), codewords_1_1 = codewords_1.next(); !codewords_1_1.done; codewords_1_1 = codewords_1.next()) {\n var codeword = codewords_1_1.value /*Codeword*/;\n if (codeword == null) {\n continue;\n }\n codeword.setRowNumberAsRowIndicatorColumn();\n var rowIndicatorValue = codeword.getValue() % 30;\n var codewordRowNumber = codeword.getRowNumber();\n if (!this._isLeft) {\n codewordRowNumber += 2;\n }\n switch (codewordRowNumber % 3) {\n case 0:\n barcodeRowCountUpperPart.setValue(rowIndicatorValue * 3 + 1);\n break;\n case 1:\n barcodeECLevel.setValue(rowIndicatorValue / 3);\n barcodeRowCountLowerPart.setValue(rowIndicatorValue % 3);\n break;\n case 2:\n barcodeColumnCount.setValue(rowIndicatorValue + 1);\n break;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (codewords_1_1 && !codewords_1_1.done && (_a = codewords_1.return)) _a.call(codewords_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n // Maybe we should check if we have ambiguous values?\n if ((barcodeColumnCount.getValue().length === 0) ||\n (barcodeRowCountUpperPart.getValue().length === 0) ||\n (barcodeRowCountLowerPart.getValue().length === 0) ||\n (barcodeECLevel.getValue().length === 0) ||\n barcodeColumnCount.getValue()[0] < 1 ||\n barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] < PDF417Common.MIN_ROWS_IN_BARCODE ||\n barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] > PDF417Common.MAX_ROWS_IN_BARCODE) {\n return null;\n }\n var barcodeMetadata = new BarcodeMetadata(barcodeColumnCount.getValue()[0], barcodeRowCountUpperPart.getValue()[0], barcodeRowCountLowerPart.getValue()[0], barcodeECLevel.getValue()[0]);\n this.removeIncorrectCodewords(codewords, barcodeMetadata);\n return barcodeMetadata;\n };\n DetectionResultRowIndicatorColumn.prototype.removeIncorrectCodewords = function (codewords, barcodeMetadata) {\n // Remove codewords which do not match the metadata\n // TODO Maybe we should keep the incorrect codewords for the start and end positions?\n for (var codewordRow /*int*/ = 0; codewordRow < codewords.length; codewordRow++) {\n var codeword = codewords[codewordRow];\n if (codewords[codewordRow] == null) {\n continue;\n }\n var rowIndicatorValue = codeword.getValue() % 30;\n var codewordRowNumber = codeword.getRowNumber();\n if (codewordRowNumber > barcodeMetadata.getRowCount()) {\n codewords[codewordRow] = null;\n continue;\n }\n if (!this._isLeft) {\n codewordRowNumber += 2;\n }\n switch (codewordRowNumber % 3) {\n case 0:\n if (rowIndicatorValue * 3 + 1 !== barcodeMetadata.getRowCountUpperPart()) {\n codewords[codewordRow] = null;\n }\n break;\n case 1:\n if (Math.trunc(rowIndicatorValue / 3) !== barcodeMetadata.getErrorCorrectionLevel() ||\n rowIndicatorValue % 3 !== barcodeMetadata.getRowCountLowerPart()) {\n codewords[codewordRow] = null;\n }\n break;\n case 2:\n if (rowIndicatorValue + 1 !== barcodeMetadata.getColumnCount()) {\n codewords[codewordRow] = null;\n }\n break;\n }\n }\n };\n DetectionResultRowIndicatorColumn.prototype.isLeft = function () {\n return this._isLeft;\n };\n // @Override\n DetectionResultRowIndicatorColumn.prototype.toString = function () {\n return 'IsLeft: ' + this._isLeft + '\\n' + _super.prototype.toString.call(this);\n };\n return DetectionResultRowIndicatorColumn;\n}(DetectionResultColumn));\nexport default DetectionResultRowIndicatorColumn;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\nimport Formatter from '../../util/Formatter';\n/**\n * @author Guenther Grau\n */\nvar DetectionResult = /** @class */ (function () {\n function DetectionResult(barcodeMetadata, boundingBox) {\n /*final*/ this.ADJUST_ROW_NUMBER_SKIP = 2;\n this.barcodeMetadata = barcodeMetadata;\n this.barcodeColumnCount = barcodeMetadata.getColumnCount();\n this.boundingBox = boundingBox;\n // this.detectionResultColumns = new DetectionResultColumn[this.barcodeColumnCount + 2];\n this.detectionResultColumns = new Array(this.barcodeColumnCount + 2);\n }\n DetectionResult.prototype.getDetectionResultColumns = function () {\n this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[0]);\n this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[this.barcodeColumnCount + 1]);\n var unadjustedCodewordCount = PDF417Common.MAX_CODEWORDS_IN_BARCODE;\n var previousUnadjustedCount;\n do {\n previousUnadjustedCount = unadjustedCodewordCount;\n unadjustedCodewordCount = this.adjustRowNumbersAndGetCount();\n } while (unadjustedCodewordCount > 0 && unadjustedCodewordCount < previousUnadjustedCount);\n return this.detectionResultColumns;\n };\n DetectionResult.prototype.adjustIndicatorColumnRowNumbers = function (detectionResultColumn) {\n if (detectionResultColumn != null) {\n detectionResultColumn\n .adjustCompleteIndicatorColumnRowNumbers(this.barcodeMetadata);\n }\n };\n // TODO ensure that no detected codewords with unknown row number are left\n // we should be able to estimate the row height and use it as a hint for the row number\n // we should also fill the rows top to bottom and bottom to top\n /**\n * @return number of codewords which don't have a valid row number. Note that the count is not accurate as codewords\n * will be counted several times. It just serves as an indicator to see when we can stop adjusting row numbers\n */\n DetectionResult.prototype.adjustRowNumbersAndGetCount = function () {\n var unadjustedCount = this.adjustRowNumbersByRow();\n if (unadjustedCount === 0) {\n return 0;\n }\n for (var barcodeColumn /*int*/ = 1; barcodeColumn < this.barcodeColumnCount + 1; barcodeColumn++) {\n var codewords = this.detectionResultColumns[barcodeColumn].getCodewords();\n for (var codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n if (!codewords[codewordsRow].hasValidRowNumber()) {\n this.adjustRowNumbers(barcodeColumn, codewordsRow, codewords);\n }\n }\n }\n return unadjustedCount;\n };\n DetectionResult.prototype.adjustRowNumbersByRow = function () {\n this.adjustRowNumbersFromBothRI();\n // TODO we should only do full row adjustments if row numbers of left and right row indicator column match.\n // Maybe it's even better to calculated the height (rows: d) and divide it by the number of barcode\n // rows. This, together with the LRI and RRI row numbers should allow us to get a good estimate where a row\n // number starts and ends.\n var unadjustedCount = this.adjustRowNumbersFromLRI();\n return unadjustedCount + this.adjustRowNumbersFromRRI();\n };\n DetectionResult.prototype.adjustRowNumbersFromBothRI = function () {\n if (this.detectionResultColumns[0] == null || this.detectionResultColumns[this.barcodeColumnCount + 1] == null) {\n return;\n }\n var LRIcodewords = this.detectionResultColumns[0].getCodewords();\n var RRIcodewords = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords();\n for (var codewordsRow /*int*/ = 0; codewordsRow < LRIcodewords.length; codewordsRow++) {\n if (LRIcodewords[codewordsRow] != null &&\n RRIcodewords[codewordsRow] != null &&\n LRIcodewords[codewordsRow].getRowNumber() === RRIcodewords[codewordsRow].getRowNumber()) {\n for (var barcodeColumn /*int*/ = 1; barcodeColumn <= this.barcodeColumnCount; barcodeColumn++) {\n var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword == null) {\n continue;\n }\n codeword.setRowNumber(LRIcodewords[codewordsRow].getRowNumber());\n if (!codeword.hasValidRowNumber()) {\n this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow] = null;\n }\n }\n }\n }\n };\n DetectionResult.prototype.adjustRowNumbersFromRRI = function () {\n if (this.detectionResultColumns[this.barcodeColumnCount + 1] == null) {\n return 0;\n }\n var unadjustedCount = 0;\n var codewords = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords();\n for (var codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n var rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber();\n var invalidRowCounts = 0;\n for (var barcodeColumn /*int*/ = this.barcodeColumnCount + 1; barcodeColumn > 0 && invalidRowCounts < this.ADJUST_ROW_NUMBER_SKIP; barcodeColumn--) {\n var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword != null) {\n invalidRowCounts = DetectionResult.adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword);\n if (!codeword.hasValidRowNumber()) {\n unadjustedCount++;\n }\n }\n }\n }\n return unadjustedCount;\n };\n DetectionResult.prototype.adjustRowNumbersFromLRI = function () {\n if (this.detectionResultColumns[0] == null) {\n return 0;\n }\n var unadjustedCount = 0;\n var codewords = this.detectionResultColumns[0].getCodewords();\n for (var codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n var rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber();\n var invalidRowCounts = 0;\n for (var barcodeColumn /*int*/ = 1; barcodeColumn < this.barcodeColumnCount + 1 && invalidRowCounts < this.ADJUST_ROW_NUMBER_SKIP; barcodeColumn++) {\n var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword != null) {\n invalidRowCounts = DetectionResult.adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword);\n if (!codeword.hasValidRowNumber()) {\n unadjustedCount++;\n }\n }\n }\n }\n return unadjustedCount;\n };\n DetectionResult.adjustRowNumberIfValid = function (rowIndicatorRowNumber, invalidRowCounts, codeword) {\n if (codeword == null) {\n return invalidRowCounts;\n }\n if (!codeword.hasValidRowNumber()) {\n if (codeword.isValidRowNumber(rowIndicatorRowNumber)) {\n codeword.setRowNumber(rowIndicatorRowNumber);\n invalidRowCounts = 0;\n }\n else {\n ++invalidRowCounts;\n }\n }\n return invalidRowCounts;\n };\n DetectionResult.prototype.adjustRowNumbers = function (barcodeColumn, codewordsRow, codewords) {\n var e_1, _a;\n if (this.detectionResultColumns[barcodeColumn - 1] == null) {\n return;\n }\n var codeword = codewords[codewordsRow];\n var previousColumnCodewords = this.detectionResultColumns[barcodeColumn - 1].getCodewords();\n var nextColumnCodewords = previousColumnCodewords;\n if (this.detectionResultColumns[barcodeColumn + 1] != null) {\n nextColumnCodewords = this.detectionResultColumns[barcodeColumn + 1].getCodewords();\n }\n // let otherCodewords: Codeword[] = new Codeword[14];\n var otherCodewords = new Array(14);\n otherCodewords[2] = previousColumnCodewords[codewordsRow];\n otherCodewords[3] = nextColumnCodewords[codewordsRow];\n if (codewordsRow > 0) {\n otherCodewords[0] = codewords[codewordsRow - 1];\n otherCodewords[4] = previousColumnCodewords[codewordsRow - 1];\n otherCodewords[5] = nextColumnCodewords[codewordsRow - 1];\n }\n if (codewordsRow > 1) {\n otherCodewords[8] = codewords[codewordsRow - 2];\n otherCodewords[10] = previousColumnCodewords[codewordsRow - 2];\n otherCodewords[11] = nextColumnCodewords[codewordsRow - 2];\n }\n if (codewordsRow < codewords.length - 1) {\n otherCodewords[1] = codewords[codewordsRow + 1];\n otherCodewords[6] = previousColumnCodewords[codewordsRow + 1];\n otherCodewords[7] = nextColumnCodewords[codewordsRow + 1];\n }\n if (codewordsRow < codewords.length - 2) {\n otherCodewords[9] = codewords[codewordsRow + 2];\n otherCodewords[12] = previousColumnCodewords[codewordsRow + 2];\n otherCodewords[13] = nextColumnCodewords[codewordsRow + 2];\n }\n try {\n for (var otherCodewords_1 = __values(otherCodewords), otherCodewords_1_1 = otherCodewords_1.next(); !otherCodewords_1_1.done; otherCodewords_1_1 = otherCodewords_1.next()) {\n var otherCodeword = otherCodewords_1_1.value;\n if (DetectionResult.adjustRowNumber(codeword, otherCodeword)) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (otherCodewords_1_1 && !otherCodewords_1_1.done && (_a = otherCodewords_1.return)) _a.call(otherCodewords_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * @return true, if row number was adjusted, false otherwise\n */\n DetectionResult.adjustRowNumber = function (codeword, otherCodeword) {\n if (otherCodeword == null) {\n return false;\n }\n if (otherCodeword.hasValidRowNumber() && otherCodeword.getBucket() === codeword.getBucket()) {\n codeword.setRowNumber(otherCodeword.getRowNumber());\n return true;\n }\n return false;\n };\n DetectionResult.prototype.getBarcodeColumnCount = function () {\n return this.barcodeColumnCount;\n };\n DetectionResult.prototype.getBarcodeRowCount = function () {\n return this.barcodeMetadata.getRowCount();\n };\n DetectionResult.prototype.getBarcodeECLevel = function () {\n return this.barcodeMetadata.getErrorCorrectionLevel();\n };\n DetectionResult.prototype.setBoundingBox = function (boundingBox) {\n this.boundingBox = boundingBox;\n };\n DetectionResult.prototype.getBoundingBox = function () {\n return this.boundingBox;\n };\n DetectionResult.prototype.setDetectionResultColumn = function (barcodeColumn, detectionResultColumn) {\n this.detectionResultColumns[barcodeColumn] = detectionResultColumn;\n };\n DetectionResult.prototype.getDetectionResultColumn = function (barcodeColumn) {\n return this.detectionResultColumns[barcodeColumn];\n };\n // @Override\n DetectionResult.prototype.toString = function () {\n var rowIndicatorColumn = this.detectionResultColumns[0];\n if (rowIndicatorColumn == null) {\n rowIndicatorColumn = this.detectionResultColumns[this.barcodeColumnCount + 1];\n }\n // try (\n var formatter = new Formatter();\n // ) {\n for (var codewordsRow /*int*/ = 0; codewordsRow < rowIndicatorColumn.getCodewords().length; codewordsRow++) {\n formatter.format('CW %3d:', codewordsRow);\n for (var barcodeColumn /*int*/ = 0; barcodeColumn < this.barcodeColumnCount + 2; barcodeColumn++) {\n if (this.detectionResultColumns[barcodeColumn] == null) {\n formatter.format(' | ');\n continue;\n }\n var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword == null) {\n formatter.format(' | ');\n continue;\n }\n formatter.format(' %3d|%3d', codeword.getRowNumber(), codeword.getValue());\n }\n formatter.format('%n');\n }\n return formatter.toString();\n // }\n };\n return DetectionResult;\n}());\nexport default DetectionResult;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417.decoder;\n/**\n * @author Guenther Grau\n */\nvar Codeword = /** @class */ (function () {\n function Codeword(startX, endX, bucket, value) {\n this.rowNumber = Codeword.BARCODE_ROW_UNKNOWN;\n this.startX = Math.trunc(startX);\n this.endX = Math.trunc(endX);\n this.bucket = Math.trunc(bucket);\n this.value = Math.trunc(value);\n }\n Codeword.prototype.hasValidRowNumber = function () {\n return this.isValidRowNumber(this.rowNumber);\n };\n Codeword.prototype.isValidRowNumber = function (rowNumber) {\n return rowNumber !== Codeword.BARCODE_ROW_UNKNOWN && this.bucket === (rowNumber % 3) * 3;\n };\n Codeword.prototype.setRowNumberAsRowIndicatorColumn = function () {\n this.rowNumber = Math.trunc((Math.trunc(this.value / 30)) * 3 + Math.trunc(this.bucket / 3));\n };\n Codeword.prototype.getWidth = function () {\n return this.endX - this.startX;\n };\n Codeword.prototype.getStartX = function () {\n return this.startX;\n };\n Codeword.prototype.getEndX = function () {\n return this.endX;\n };\n Codeword.prototype.getBucket = function () {\n return this.bucket;\n };\n Codeword.prototype.getValue = function () {\n return this.value;\n };\n Codeword.prototype.getRowNumber = function () {\n return this.rowNumber;\n };\n Codeword.prototype.setRowNumber = function (rowNumber) {\n this.rowNumber = rowNumber;\n };\n // @Override\n Codeword.prototype.toString = function () {\n return this.rowNumber + '|' + this.value;\n };\n Codeword.BARCODE_ROW_UNKNOWN = -1;\n return Codeword;\n}());\nexport default Codeword;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.common.detector.MathUtils;\nimport MathUtils from '../../common/detector/MathUtils';\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\nimport Float from '../../util/Float';\n/**\n * @author Guenther Grau\n * @author creatale GmbH (christoph.schulz@creatale.de)\n */\nvar PDF417CodewordDecoder = /** @class */ (function () {\n function PDF417CodewordDecoder() {\n }\n /* @note\n * this action have to be performed before first use of class\n * - static constructor\n * working with 32bit float (based from Java logic)\n */\n PDF417CodewordDecoder.initialize = function () {\n // Pre-computes the symbol ratio table.\n for ( /*int*/var i = 0; i < PDF417Common.SYMBOL_TABLE.length; i++) {\n var currentSymbol = PDF417Common.SYMBOL_TABLE[i];\n var currentBit = currentSymbol & 0x1;\n for ( /*int*/var j = 0; j < PDF417Common.BARS_IN_MODULE; j++) {\n var size = 0.0;\n while ((currentSymbol & 0x1) === currentBit) {\n size += 1.0;\n currentSymbol >>= 1;\n }\n currentBit = currentSymbol & 0x1;\n if (!PDF417CodewordDecoder.RATIOS_TABLE[i]) {\n PDF417CodewordDecoder.RATIOS_TABLE[i] = new Array(PDF417Common.BARS_IN_MODULE);\n }\n PDF417CodewordDecoder.RATIOS_TABLE[i][PDF417Common.BARS_IN_MODULE - j - 1] = Math.fround(size / PDF417Common.MODULES_IN_CODEWORD);\n }\n }\n this.bSymbolTableReady = true;\n };\n PDF417CodewordDecoder.getDecodedValue = function (moduleBitCount) {\n var decodedValue = PDF417CodewordDecoder.getDecodedCodewordValue(PDF417CodewordDecoder.sampleBitCounts(moduleBitCount));\n if (decodedValue !== -1) {\n return decodedValue;\n }\n return PDF417CodewordDecoder.getClosestDecodedValue(moduleBitCount);\n };\n PDF417CodewordDecoder.sampleBitCounts = function (moduleBitCount) {\n var bitCountSum = MathUtils.sum(moduleBitCount);\n var result = new Int32Array(PDF417Common.BARS_IN_MODULE);\n var bitCountIndex = 0;\n var sumPreviousBits = 0;\n for ( /*int*/var i = 0; i < PDF417Common.MODULES_IN_CODEWORD; i++) {\n var sampleIndex = bitCountSum / (2 * PDF417Common.MODULES_IN_CODEWORD) +\n (i * bitCountSum) / PDF417Common.MODULES_IN_CODEWORD;\n if (sumPreviousBits + moduleBitCount[bitCountIndex] <= sampleIndex) {\n sumPreviousBits += moduleBitCount[bitCountIndex];\n bitCountIndex++;\n }\n result[bitCountIndex]++;\n }\n return result;\n };\n PDF417CodewordDecoder.getDecodedCodewordValue = function (moduleBitCount) {\n var decodedValue = PDF417CodewordDecoder.getBitValue(moduleBitCount);\n return PDF417Common.getCodeword(decodedValue) === -1 ? -1 : decodedValue;\n };\n PDF417CodewordDecoder.getBitValue = function (moduleBitCount) {\n var result = /*long*/ 0;\n for (var /*int*/ i = 0; i < moduleBitCount.length; i++) {\n for ( /*int*/var bit = 0; bit < moduleBitCount[i]; bit++) {\n result = (result << 1) | (i % 2 === 0 ? 1 : 0);\n }\n }\n return Math.trunc(result);\n };\n // working with 32bit float (as in Java)\n PDF417CodewordDecoder.getClosestDecodedValue = function (moduleBitCount) {\n var bitCountSum = MathUtils.sum(moduleBitCount);\n var bitCountRatios = new Array(PDF417Common.BARS_IN_MODULE);\n if (bitCountSum > 1) {\n for (var /*int*/ i = 0; i < bitCountRatios.length; i++) {\n bitCountRatios[i] = Math.fround(moduleBitCount[i] / bitCountSum);\n }\n }\n var bestMatchError = Float.MAX_VALUE;\n var bestMatch = -1;\n if (!this.bSymbolTableReady) {\n PDF417CodewordDecoder.initialize();\n }\n for ( /*int*/var j = 0; j < PDF417CodewordDecoder.RATIOS_TABLE.length; j++) {\n var error = 0.0;\n var ratioTableRow = PDF417CodewordDecoder.RATIOS_TABLE[j];\n for ( /*int*/var k = 0; k < PDF417Common.BARS_IN_MODULE; k++) {\n var diff = Math.fround(ratioTableRow[k] - bitCountRatios[k]);\n error += Math.fround(diff * diff);\n if (error >= bestMatchError) {\n break;\n }\n }\n if (error < bestMatchError) {\n bestMatchError = error;\n bestMatch = PDF417Common.SYMBOL_TABLE[j];\n }\n }\n return bestMatch;\n };\n // flag that the table is ready for use\n PDF417CodewordDecoder.bSymbolTableReady = false;\n PDF417CodewordDecoder.RATIOS_TABLE = new Array(PDF417Common.SYMBOL_TABLE.length).map(function (x) { return x = new Array(PDF417Common.BARS_IN_MODULE); });\n return PDF417CodewordDecoder;\n}());\nexport default PDF417CodewordDecoder;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417;\n/**\n * @author Guenther Grau\n */\nvar PDF417ResultMetadata = /** @class */ (function () {\n function PDF417ResultMetadata() {\n this.segmentCount = -1;\n this.fileSize = -1;\n this.timestamp = -1;\n this.checksum = -1;\n }\n /**\n * The Segment ID represents the segment of the whole file distributed over different symbols.\n *\n * @return File segment index\n */\n PDF417ResultMetadata.prototype.getSegmentIndex = function () {\n return this.segmentIndex;\n };\n PDF417ResultMetadata.prototype.setSegmentIndex = function (segmentIndex) {\n this.segmentIndex = segmentIndex;\n };\n /**\n * Is the same for each related PDF417 symbol\n *\n * @return File ID\n */\n PDF417ResultMetadata.prototype.getFileId = function () {\n return this.fileId;\n };\n PDF417ResultMetadata.prototype.setFileId = function (fileId) {\n this.fileId = fileId;\n };\n /**\n * @return always null\n * @deprecated use dedicated already parsed fields\n */\n // @Deprecated\n PDF417ResultMetadata.prototype.getOptionalData = function () {\n return this.optionalData;\n };\n /**\n * @param optionalData old optional data format as int array\n * @deprecated parse and use new fields\n */\n // @Deprecated\n PDF417ResultMetadata.prototype.setOptionalData = function (optionalData) {\n this.optionalData = optionalData;\n };\n /**\n * @return true if it is the last segment\n */\n PDF417ResultMetadata.prototype.isLastSegment = function () {\n return this.lastSegment;\n };\n PDF417ResultMetadata.prototype.setLastSegment = function (lastSegment) {\n this.lastSegment = lastSegment;\n };\n /**\n * @return count of segments, -1 if not set\n */\n PDF417ResultMetadata.prototype.getSegmentCount = function () {\n return this.segmentCount;\n };\n PDF417ResultMetadata.prototype.setSegmentCount = function (segmentCount /*int*/) {\n this.segmentCount = segmentCount;\n };\n PDF417ResultMetadata.prototype.getSender = function () {\n return this.sender || null;\n };\n PDF417ResultMetadata.prototype.setSender = function (sender) {\n this.sender = sender;\n };\n PDF417ResultMetadata.prototype.getAddressee = function () {\n return this.addressee || null;\n };\n PDF417ResultMetadata.prototype.setAddressee = function (addressee) {\n this.addressee = addressee;\n };\n /**\n * Filename of the encoded file\n *\n * @return filename\n */\n PDF417ResultMetadata.prototype.getFileName = function () {\n return this.fileName;\n };\n PDF417ResultMetadata.prototype.setFileName = function (fileName) {\n this.fileName = fileName;\n };\n /**\n * filesize in bytes of the encoded file\n *\n * @return filesize in bytes, -1 if not set\n */\n PDF417ResultMetadata.prototype.getFileSize = function () {\n return this.fileSize;\n };\n PDF417ResultMetadata.prototype.setFileSize = function (fileSize /*long*/) {\n this.fileSize = fileSize;\n };\n /**\n * 16-bit CRC checksum using CCITT-16\n *\n * @return crc checksum, -1 if not set\n */\n PDF417ResultMetadata.prototype.getChecksum = function () {\n return this.checksum;\n };\n PDF417ResultMetadata.prototype.setChecksum = function (checksum /*int*/) {\n this.checksum = checksum;\n };\n /**\n * unix epock timestamp, elapsed seconds since 1970-01-01\n *\n * @return elapsed seconds, -1 if not set\n */\n PDF417ResultMetadata.prototype.getTimestamp = function () {\n return this.timestamp;\n };\n PDF417ResultMetadata.prototype.setTimestamp = function (timestamp /*long*/) {\n this.timestamp = timestamp;\n };\n return PDF417ResultMetadata;\n}());\nexport default PDF417ResultMetadata;\n","/**\n * Ponyfill for Java's Long class.\n */\nvar Long = /** @class */ (function () {\n function Long() {\n }\n /**\n * Parses a string to a number, since JS has no really Int64.\n *\n * @param num Numeric string.\n * @param radix Destination radix.\n */\n Long.parseLong = function (num, radix) {\n if (radix === void 0) { radix = undefined; }\n return parseInt(num, radix);\n };\n return Long;\n}());\nexport default Long;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar NullPointerException = /** @class */ (function (_super) {\n __extends(NullPointerException, _super);\n function NullPointerException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullPointerException.kind = 'NullPointerException';\n return NullPointerException;\n}(Exception));\nexport default NullPointerException;\n","import IndexOutOfBoundsException from '../IndexOutOfBoundsException';\nimport NullPointerException from '../NullPointerException';\n/*\n * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * This code is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License version 2 only, as\n * published by the Free Software Foundation. Oracle designates this\n * particular file as subject to the \"Classpath\" exception as provided\n * by Oracle in the LICENSE file that accompanied this code.\n *\n * This code is distributed in the hope that it will be useful, but WITHOUT\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n * version 2 for more details (a copy is included in the LICENSE file that\n * accompanied this code).\n *\n * You should have received a copy of the GNU General Public License version\n * 2 along with this work; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n *\n * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\n * or visit www.oracle.com if you need additional information or have any\n * questions.\n */\n// package java.io;\n/**\n * This abstract class is the superclass of all classes representing\n * an output stream of bytes. An output stream accepts output bytes\n * and sends them to some sink.\n *

    \n * Applications that need to define a subclass of\n * OutputStream must always provide at least a method\n * that writes one byte of output.\n *\n * @author Arthur van Hoff\n * @see java.io.BufferedOutputStream\n * @see java.io.ByteArrayOutputStream\n * @see java.io.DataOutputStream\n * @see java.io.FilterOutputStream\n * @see java.io.InputStream\n * @see java.io.OutputStream#write(int)\n * @since JDK1.0\n */\nvar OutputStream /*implements Closeable, Flushable*/ = /** @class */ (function () {\n function OutputStream() {\n }\n /**\n * Writes b.length bytes from the specified byte array\n * to this output stream. The general contract for write(b)\n * is that it should have exactly the same effect as the call\n * write(b, 0, b.length).\n *\n * @param b the data.\n * @exception IOException if an I/O error occurs.\n * @see java.io.OutputStream#write(byte[], int, int)\n */\n OutputStream.prototype.writeBytes = function (b) {\n this.writeBytesOffset(b, 0, b.length);\n };\n /**\n * Writes len bytes from the specified byte array\n * starting at offset off to this output stream.\n * The general contract for write(b, off, len) is that\n * some of the bytes in the array b are written to the\n * output stream in order; element b[off] is the first\n * byte written and b[off+len-1] is the last byte written\n * by this operation.\n *

    \n * The write method of OutputStream calls\n * the write method of one argument on each of the bytes to be\n * written out. Subclasses are encouraged to override this method and\n * provide a more efficient implementation.\n *

    \n * If b is null, a\n * NullPointerException is thrown.\n *

    \n * If off is negative, or len is negative, or\n * off+len is greater than the length of the array\n * b, then an IndexOutOfBoundsException is thrown.\n *\n * @param b the data.\n * @param off the start offset in the data.\n * @param len the number of bytes to write.\n * @exception IOException if an I/O error occurs. In particular,\n * an IOException is thrown if the output\n * stream is closed.\n */\n OutputStream.prototype.writeBytesOffset = function (b, off, len) {\n if (b == null) {\n throw new NullPointerException();\n }\n else if ((off < 0) || (off > b.length) || (len < 0) ||\n ((off + len) > b.length) || ((off + len) < 0)) {\n throw new IndexOutOfBoundsException();\n }\n else if (len === 0) {\n return;\n }\n for (var i = 0; i < len; i++) {\n this.write(b[off + i]);\n }\n };\n /**\n * Flushes this output stream and forces any buffered output bytes\n * to be written out. The general contract of flush is\n * that calling it is an indication that, if any bytes previously\n * written have been buffered by the implementation of the output\n * stream, such bytes should immediately be written to their\n * intended destination.\n *

    \n * If the intended destination of this stream is an abstraction provided by\n * the underlying operating system, for example a file, then flushing the\n * stream guarantees only that bytes previously written to the stream are\n * passed to the operating system for writing; it does not guarantee that\n * they are actually written to a physical device such as a disk drive.\n *

    \n * The flush method of OutputStream does nothing.\n *\n * @exception IOException if an I/O error occurs.\n */\n OutputStream.prototype.flush = function () {\n };\n /**\n * Closes this output stream and releases any system resources\n * associated with this stream. The general contract of close\n * is that it closes the output stream. A closed stream cannot perform\n * output operations and cannot be reopened.\n *

    \n * The close method of OutputStream does nothing.\n *\n * @exception IOException if an I/O error occurs.\n */\n OutputStream.prototype.close = function () {\n };\n return OutputStream;\n}());\nexport default OutputStream;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar OutOfMemoryError = /** @class */ (function (_super) {\n __extends(OutOfMemoryError, _super);\n function OutOfMemoryError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return OutOfMemoryError;\n}(Exception));\nexport default OutOfMemoryError;\n","/*\n * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * This code is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License version 2 only, as\n * published by the Free Software Foundation. Oracle designates this\n * particular file as subject to the \"Classpath\" exception as provided\n * by Oracle in the LICENSE file that accompanied this code.\n *\n * This code is distributed in the hope that it will be useful, but WITHOUT\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n * version 2 for more details (a copy is included in the LICENSE file that\n * accompanied this code).\n *\n * You should have received a copy of the GNU General Public License version\n * 2 along with this work; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n *\n * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\n * or visit www.oracle.com if you need additional information or have any\n * questions.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n// package java.io;\n// import java.util.Arrays;\nimport Arrays from './Arrays';\nimport OutputStream from './OutputStream';\nimport Integer from './Integer';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport OutOfMemoryError from '../OutOfMemoryError';\nimport System from './System';\nimport IndexOutOfBoundsException from '../IndexOutOfBoundsException';\n/**\n * This class implements an output stream in which the data is\n * written into a byte array. The buffer automatically grows as data\n * is written to it.\n * The data can be retrieved using toByteArray() and\n * toString().\n *

    \n * Closing a ByteArrayOutputStream has no effect. The methods in\n * this class can be called after the stream has been closed without\n * generating an IOException.\n *\n * @author Arthur van Hoff\n * @since JDK1.0\n */\nvar ByteArrayOutputStream = /** @class */ (function (_super) {\n __extends(ByteArrayOutputStream, _super);\n /**\n * Creates a new byte array output stream. The buffer capacity is\n * initially 32 bytes, though its size increases if necessary.\n */\n // public constructor() {\n // this(32);\n // }\n /**\n * Creates a new byte array output stream, with a buffer capacity of\n * the specified size, in bytes.\n *\n * @param size the initial size.\n * @exception IllegalArgumentException if size is negative.\n */\n function ByteArrayOutputStream(size) {\n if (size === void 0) { size = 32; }\n var _this = _super.call(this) || this;\n /**\n * The number of valid bytes in the buffer.\n */\n _this.count = 0;\n if (size < 0) {\n throw new IllegalArgumentException('Negative initial size: '\n + size);\n }\n _this.buf = new Uint8Array(size);\n return _this;\n }\n /**\n * Increases the capacity if necessary to ensure that it can hold\n * at least the number of elements specified by the minimum\n * capacity argument.\n *\n * @param minCapacity the desired minimum capacity\n * @throws OutOfMemoryError if {@code minCapacity < 0}. This is\n * interpreted as a request for the unsatisfiably large capacity\n * {@code (long) Integer.MAX_VALUE + (minCapacity - Integer.MAX_VALUE)}.\n */\n ByteArrayOutputStream.prototype.ensureCapacity = function (minCapacity) {\n // overflow-conscious code\n if (minCapacity - this.buf.length > 0)\n this.grow(minCapacity);\n };\n /**\n * Increases the capacity to ensure that it can hold at least the\n * number of elements specified by the minimum capacity argument.\n *\n * @param minCapacity the desired minimum capacity\n */\n ByteArrayOutputStream.prototype.grow = function (minCapacity) {\n // overflow-conscious code\n var oldCapacity = this.buf.length;\n var newCapacity = oldCapacity << 1;\n if (newCapacity - minCapacity < 0)\n newCapacity = minCapacity;\n if (newCapacity < 0) {\n if (minCapacity < 0) // overflow\n throw new OutOfMemoryError();\n newCapacity = Integer.MAX_VALUE;\n }\n this.buf = Arrays.copyOfUint8Array(this.buf, newCapacity);\n };\n /**\n * Writes the specified byte to this byte array output stream.\n *\n * @param b the byte to be written.\n */\n ByteArrayOutputStream.prototype.write = function (b) {\n this.ensureCapacity(this.count + 1);\n this.buf[this.count] = /*(byte)*/ b;\n this.count += 1;\n };\n /**\n * Writes len bytes from the specified byte array\n * starting at offset off to this byte array output stream.\n *\n * @param b the data.\n * @param off the start offset in the data.\n * @param len the number of bytes to write.\n */\n ByteArrayOutputStream.prototype.writeBytesOffset = function (b, off, len) {\n if ((off < 0) || (off > b.length) || (len < 0) ||\n ((off + len) - b.length > 0)) {\n throw new IndexOutOfBoundsException();\n }\n this.ensureCapacity(this.count + len);\n System.arraycopy(b, off, this.buf, this.count, len);\n this.count += len;\n };\n /**\n * Writes the complete contents of this byte array output stream to\n * the specified output stream argument, as if by calling the output\n * stream's write method using out.write(buf, 0, count).\n *\n * @param out the output stream to which to write the data.\n * @exception IOException if an I/O error occurs.\n */\n ByteArrayOutputStream.prototype.writeTo = function (out) {\n out.writeBytesOffset(this.buf, 0, this.count);\n };\n /**\n * Resets the count field of this byte array output\n * stream to zero, so that all currently accumulated output in the\n * output stream is discarded. The output stream can be used again,\n * reusing the already allocated buffer space.\n *\n * @see java.io.ByteArrayInputStream#count\n */\n ByteArrayOutputStream.prototype.reset = function () {\n this.count = 0;\n };\n /**\n * Creates a newly allocated byte array. Its size is the current\n * size of this output stream and the valid contents of the buffer\n * have been copied into it.\n *\n * @return the current contents of this output stream, as a byte array.\n * @see java.io.ByteArrayOutputStream#size()\n */\n ByteArrayOutputStream.prototype.toByteArray = function () {\n return Arrays.copyOfUint8Array(this.buf, this.count);\n };\n /**\n * Returns the current size of the buffer.\n *\n * @return the value of the count field, which is the number\n * of valid bytes in this output stream.\n * @see java.io.ByteArrayOutputStream#count\n */\n ByteArrayOutputStream.prototype.size = function () {\n return this.count;\n };\n ByteArrayOutputStream.prototype.toString = function (param) {\n if (!param) {\n return this.toString_void();\n }\n if (typeof param === 'string') {\n return this.toString_string(param);\n }\n return this.toString_number(param);\n };\n /**\n * Converts the buffer's contents into a string decoding bytes using the\n * platform's default character set. The length of the new String\n * is a function of the character set, and hence may not be equal to the\n * size of the buffer.\n *\n *

    This method always replaces malformed-input and unmappable-character\n * sequences with the default replacement string for the platform's\n * default character set. The {@linkplain java.nio.charset.CharsetDecoder}\n * class should be used when more control over the decoding process is\n * required.\n *\n * @return String decoded from the buffer's contents.\n * @since JDK1.1\n */\n ByteArrayOutputStream.prototype.toString_void = function () {\n return new String(this.buf /*, 0, this.count*/).toString();\n };\n /**\n * Converts the buffer's contents into a string by decoding the bytes using\n * the specified {@link java.nio.charset.Charset charsetName}. The length of\n * the new String is a function of the charset, and hence may not be\n * equal to the length of the byte array.\n *\n *

    This method always replaces malformed-input and unmappable-character\n * sequences with this charset's default replacement string. The {@link\n * java.nio.charset.CharsetDecoder} class should be used when more control\n * over the decoding process is required.\n *\n * @param charsetName the name of a supported\n * {@linkplain java.nio.charset.Charset charset}\n * @return String decoded from the buffer's contents.\n * @exception UnsupportedEncodingException\n * If the named charset is not supported\n * @since JDK1.1\n */\n ByteArrayOutputStream.prototype.toString_string = function (charsetName) {\n return new String(this.buf /*, 0, this.count, charsetName*/).toString();\n };\n /**\n * Creates a newly allocated string. Its size is the current size of\n * the output stream and the valid contents of the buffer have been\n * copied into it. Each character c in the resulting string is\n * constructed from the corresponding element b in the byte\n * array such that:\n *

    \n     *     c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))\n     * 
    \n *\n * @deprecated This method does not properly convert bytes into characters.\n * As of JDK 1.1, the preferred way to do this is via the\n * toString(String enc) method, which takes an encoding-name\n * argument, or the toString() method, which uses the\n * platform's default character encoding.\n *\n * @param hibyte the high byte of each resulting Unicode character.\n * @return the current contents of the output stream, as a string.\n * @see java.io.ByteArrayOutputStream#size()\n * @see java.io.ByteArrayOutputStream#toString(String)\n * @see java.io.ByteArrayOutputStream#toString()\n */\n // @Deprecated\n ByteArrayOutputStream.prototype.toString_number = function (hibyte) {\n return new String(this.buf /*, hibyte, 0, this.count*/).toString();\n };\n /**\n * Closing a ByteArrayOutputStream has no effect. The methods in\n * this class can be called after the stream has been closed without\n * generating an IOException.\n *

    \n *\n * @throws IOException\n */\n ByteArrayOutputStream.prototype.close = function () {\n };\n return ByteArrayOutputStream;\n}(OutputStream));\nexport default ByteArrayOutputStream;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.FormatException;\nimport FormatException from '../../FormatException';\n// import com.google.zxing.common.CharacterSetECI;\nimport CharacterSetECI from '../../common/CharacterSetECI';\n// import com.google.zxing.common.DecoderResult;\nimport DecoderResult from '../../common/DecoderResult';\n// import com.google.zxing.pdf417.PDF417ResultMetadata;\nimport PDF417ResultMetadata from '../PDF417ResultMetadata';\n// import java.io.ByteArrayOutputStream;\n// import java.math.BigInteger;\n// import java.nio.charset.Charset;\n// import java.nio.charset.StandardCharsets;\n// import java.util.Arrays;\nimport Arrays from '../../util/Arrays';\nimport StringBuilder from '../../util/StringBuilder';\nimport Integer from '../../util/Integer';\nimport Long from '../../util/Long';\nimport ByteArrayOutputStream from '../../util/ByteArrayOutputStream';\nimport StringEncoding from '../../util/StringEncoding';\n/*private*/ var Mode;\n(function (Mode) {\n Mode[Mode[\"ALPHA\"] = 0] = \"ALPHA\";\n Mode[Mode[\"LOWER\"] = 1] = \"LOWER\";\n Mode[Mode[\"MIXED\"] = 2] = \"MIXED\";\n Mode[Mode[\"PUNCT\"] = 3] = \"PUNCT\";\n Mode[Mode[\"ALPHA_SHIFT\"] = 4] = \"ALPHA_SHIFT\";\n Mode[Mode[\"PUNCT_SHIFT\"] = 5] = \"PUNCT_SHIFT\";\n})(Mode || (Mode = {}));\n/**\n * Indirectly access the global BigInt constructor, it\n * allows browsers that doesn't support BigInt to run\n * the library without breaking due to \"undefined BigInt\"\n * errors.\n */\nfunction getBigIntConstructor() {\n if (typeof window !== 'undefined') {\n return window['BigInt'] || null;\n }\n if (typeof global !== 'undefined') {\n return global['BigInt'] || null;\n }\n if (typeof self !== 'undefined') {\n return self['BigInt'] || null;\n }\n throw new Error('Can\\'t search globals for BigInt!');\n}\n/**\n * Used to store the BigInt constructor.\n */\nvar BigInteger;\n/**\n * This function creates a bigint value. It allows browsers\n * that doesn't support BigInt to run the rest of the library\n * by not directly accessing the BigInt constructor.\n */\nfunction createBigInt(num) {\n if (typeof BigInteger === 'undefined') {\n BigInteger = getBigIntConstructor();\n }\n if (BigInteger === null) {\n throw new Error('BigInt is not supported!');\n }\n return BigInteger(num);\n}\nfunction getEXP900() {\n // in Java - array with length = 16\n var EXP900 = [];\n EXP900[0] = createBigInt(1);\n var nineHundred = createBigInt(900);\n EXP900[1] = nineHundred;\n // in Java - array with length = 16\n for (var i /*int*/ = 2; i < 16; i++) {\n EXP900[i] = EXP900[i - 1] * nineHundred;\n }\n return EXP900;\n}\n/**\n *

    This class contains the methods for decoding the PDF417 codewords.

    \n *\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author Guenther Grau\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n function DecodedBitStreamParser() {\n }\n // private DecodedBitStreamParser() {\n // }\n /**\n *\n * @param codewords\n * @param ecLevel\n *\n * @throws FormatException\n */\n DecodedBitStreamParser.decode = function (codewords, ecLevel) {\n // pass encoding to result (will be used for decode symbols in byte mode)\n var result = new StringBuilder('');\n // let encoding: Charset = StandardCharsets.ISO_8859_1;\n var encoding = CharacterSetECI.ISO8859_1;\n /**\n * @note the next command is specific from this TypeScript library\n * because TS can't properly cast some values to char and\n * convert it to string later correctly due to encoding\n * differences from Java version. As reported here:\n * https://github.com/zxing-js/library/pull/264/files#r382831593\n */\n result.enableDecoding(encoding);\n // Get compaction mode\n var codeIndex = 1;\n var code = codewords[codeIndex++];\n var resultMetadata = new PDF417ResultMetadata();\n while (codeIndex < codewords[0]) {\n switch (code) {\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex, result);\n break;\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n codeIndex = DecodedBitStreamParser.byteCompaction(code, codewords, encoding, codeIndex, result);\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n result.append(/*(char)*/ codewords[codeIndex++]);\n break;\n case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex, result);\n break;\n case DecodedBitStreamParser.ECI_CHARSET:\n var charsetECI = CharacterSetECI.getCharacterSetECIByValue(codewords[codeIndex++]);\n // encoding = Charset.forName(charsetECI.getName());\n break;\n case DecodedBitStreamParser.ECI_GENERAL_PURPOSE:\n // Can't do anything with generic ECI; skip its 2 characters\n codeIndex += 2;\n break;\n case DecodedBitStreamParser.ECI_USER_DEFINED:\n // Can't do anything with user ECI; skip its 1 character\n codeIndex++;\n break;\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n codeIndex = DecodedBitStreamParser.decodeMacroBlock(codewords, codeIndex, resultMetadata);\n break;\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n // Should not see these outside a macro block\n throw new FormatException();\n default:\n // Default to text compaction. During testing numerous barcodes\n // appeared to be missing the starting mode. In these cases defaulting\n // to text compaction seems to work.\n codeIndex--;\n codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex, result);\n break;\n }\n if (codeIndex < codewords.length) {\n code = codewords[codeIndex++];\n }\n else {\n throw FormatException.getFormatInstance();\n }\n }\n if (result.length() === 0) {\n throw FormatException.getFormatInstance();\n }\n var decoderResult = new DecoderResult(null, result.toString(), null, ecLevel);\n decoderResult.setOther(resultMetadata);\n return decoderResult;\n };\n /**\n *\n * @param int\n * @param param1\n * @param codewords\n * @param int\n * @param codeIndex\n * @param PDF417ResultMetadata\n * @param resultMetadata\n *\n * @throws FormatException\n */\n // @SuppressWarnings(\"deprecation\")\n DecodedBitStreamParser.decodeMacroBlock = function (codewords, codeIndex, resultMetadata) {\n if (codeIndex + DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) {\n // we must have at least two bytes left for the segment index\n throw FormatException.getFormatInstance();\n }\n var segmentIndexArray = new Int32Array(DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS);\n for (var i /*int*/ = 0; i < DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) {\n segmentIndexArray[i] = codewords[codeIndex];\n }\n resultMetadata.setSegmentIndex(Integer.parseInt(DecodedBitStreamParser.decodeBase900toBase10(segmentIndexArray, DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS)));\n var fileId = new StringBuilder();\n codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex, fileId);\n resultMetadata.setFileId(fileId.toString());\n var optionalFieldsStart = -1;\n if (codewords[codeIndex] === DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD) {\n optionalFieldsStart = codeIndex + 1;\n }\n while (codeIndex < codewords[0]) {\n switch (codewords[codeIndex]) {\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n codeIndex++;\n switch (codewords[codeIndex]) {\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME:\n var fileName = new StringBuilder();\n codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex + 1, fileName);\n resultMetadata.setFileName(fileName.toString());\n break;\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SENDER:\n var sender = new StringBuilder();\n codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex + 1, sender);\n resultMetadata.setSender(sender.toString());\n break;\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE:\n var addressee = new StringBuilder();\n codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex + 1, addressee);\n resultMetadata.setAddressee(addressee.toString());\n break;\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT:\n var segmentCount = new StringBuilder();\n codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, segmentCount);\n resultMetadata.setSegmentCount(Integer.parseInt(segmentCount.toString()));\n break;\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP:\n var timestamp = new StringBuilder();\n codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, timestamp);\n resultMetadata.setTimestamp(Long.parseLong(timestamp.toString()));\n break;\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM:\n var checksum = new StringBuilder();\n codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, checksum);\n resultMetadata.setChecksum(Integer.parseInt(checksum.toString()));\n break;\n case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE:\n var fileSize = new StringBuilder();\n codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, fileSize);\n resultMetadata.setFileSize(Long.parseLong(fileSize.toString()));\n break;\n default:\n throw FormatException.getFormatInstance();\n }\n break;\n case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n codeIndex++;\n resultMetadata.setLastSegment(true);\n break;\n default:\n throw FormatException.getFormatInstance();\n }\n }\n // copy optional fields to additional options\n if (optionalFieldsStart !== -1) {\n var optionalFieldsLength = codeIndex - optionalFieldsStart;\n if (resultMetadata.isLastSegment()) {\n // do not include terminator\n optionalFieldsLength--;\n }\n resultMetadata.setOptionalData(Arrays.copyOfRange(codewords, optionalFieldsStart, optionalFieldsStart + optionalFieldsLength));\n }\n return codeIndex;\n };\n /**\n * Text Compaction mode (see 5.4.1.5) permits all printable ASCII characters to be\n * encoded, i.e. values 32 - 126 inclusive in accordance with ISO/IEC 646 (IRV), as\n * well as selected control characters.\n *\n * @param codewords The array of codewords (data + error)\n * @param codeIndex The current index into the codeword array.\n * @param result The decoded data is appended to the result.\n * @return The next index into the codeword array.\n */\n DecodedBitStreamParser.textCompaction = function (codewords, codeIndex, result) {\n // 2 character per codeword\n var textCompactionData = new Int32Array((codewords[0] - codeIndex) * 2);\n // Used to hold the byte compaction value if there is a mode shift\n var byteCompactionData = new Int32Array((codewords[0] - codeIndex) * 2);\n var index = 0;\n var end = false;\n while ((codeIndex < codewords[0]) && !end) {\n var code = codewords[codeIndex++];\n if (code < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n textCompactionData[index] = code / 30;\n textCompactionData[index + 1] = code % 30;\n index += 2;\n }\n else {\n switch (code) {\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n // reinitialize text compaction mode to alpha sub mode\n textCompactionData[index++] = DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH;\n break;\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n codeIndex--;\n end = true;\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n // The Mode Shift codeword 913 shall cause a temporary\n // switch from Text Compaction mode to Byte Compaction mode.\n // This switch shall be in effect for only the next codeword,\n // after which the mode shall revert to the prevailing sub-mode\n // of the Text Compaction mode. Codeword 913 is only available\n // in Text Compaction mode; its use is described in 5.4.2.4.\n textCompactionData[index] = DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE;\n code = codewords[codeIndex++];\n byteCompactionData[index] = code;\n index++;\n break;\n }\n }\n }\n DecodedBitStreamParser.decodeTextCompaction(textCompactionData, byteCompactionData, index, result);\n return codeIndex;\n };\n /**\n * The Text Compaction mode includes all the printable ASCII characters\n * (i.e. values from 32 to 126) and three ASCII control characters: HT or tab\n * (9: e), LF or line feed (10: e), and CR or carriage\n * return (13: e). The Text Compaction mode also includes various latch\n * and shift characters which are used exclusively within the mode. The Text\n * Compaction mode encodes up to 2 characters per codeword. The compaction rules\n * for converting data into PDF417 codewords are defined in 5.4.2.2. The sub-mode\n * switches are defined in 5.4.2.3.\n *\n * @param textCompactionData The text compaction data.\n * @param byteCompactionData The byte compaction data if there\n * was a mode shift.\n * @param length The size of the text compaction and byte compaction data.\n * @param result The decoded data is appended to the result.\n */\n DecodedBitStreamParser.decodeTextCompaction = function (textCompactionData, byteCompactionData, length, result) {\n // Beginning from an initial state of the Alpha sub-mode\n // The default compaction mode for PDF417 in effect at the start of each symbol shall always be Text\n // Compaction mode Alpha sub-mode (alphabetic: uppercase). A latch codeword from another mode to the Text\n // Compaction mode shall always switch to the Text Compaction Alpha sub-mode.\n var subMode = Mode.ALPHA;\n var priorToShiftMode = Mode.ALPHA;\n var i = 0;\n while (i < length) {\n var subModeCh = textCompactionData[i];\n var ch = /*char*/ '';\n switch (subMode) {\n case Mode.ALPHA:\n // Alpha (alphabetic: uppercase)\n if (subModeCh < 26) {\n // Upper case Alpha Character\n // Note: 65 = 'A' ASCII -> there is byte code of symbol\n ch = /*(char)('A' + subModeCh) */ String.fromCharCode(65 + subModeCh);\n }\n else {\n switch (subModeCh) {\n case 26:\n ch = ' ';\n break;\n case DecodedBitStreamParser.LL:\n subMode = Mode.LOWER;\n break;\n case DecodedBitStreamParser.ML:\n subMode = Mode.MIXED;\n break;\n case DecodedBitStreamParser.PS:\n // Shift to punctuation\n priorToShiftMode = subMode;\n subMode = Mode.PUNCT_SHIFT;\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n result.append(/*(char)*/ byteCompactionData[i]);\n break;\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n subMode = Mode.ALPHA;\n break;\n }\n }\n break;\n case Mode.LOWER:\n // Lower (alphabetic: lowercase)\n if (subModeCh < 26) {\n ch = /*(char)('a' + subModeCh)*/ String.fromCharCode(97 + subModeCh);\n }\n else {\n switch (subModeCh) {\n case 26:\n ch = ' ';\n break;\n case DecodedBitStreamParser.AS:\n // Shift to alpha\n priorToShiftMode = subMode;\n subMode = Mode.ALPHA_SHIFT;\n break;\n case DecodedBitStreamParser.ML:\n subMode = Mode.MIXED;\n break;\n case DecodedBitStreamParser.PS:\n // Shift to punctuation\n priorToShiftMode = subMode;\n subMode = Mode.PUNCT_SHIFT;\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n // TODO Does this need to use the current character encoding? See other occurrences below\n result.append(/*(char)*/ byteCompactionData[i]);\n break;\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n subMode = Mode.ALPHA;\n break;\n }\n }\n break;\n case Mode.MIXED:\n // Mixed (punctuation: e)\n if (subModeCh < DecodedBitStreamParser.PL) {\n ch = DecodedBitStreamParser.MIXED_CHARS[subModeCh];\n }\n else {\n switch (subModeCh) {\n case DecodedBitStreamParser.PL:\n subMode = Mode.PUNCT;\n break;\n case 26:\n ch = ' ';\n break;\n case DecodedBitStreamParser.LL:\n subMode = Mode.LOWER;\n break;\n case DecodedBitStreamParser.AL:\n subMode = Mode.ALPHA;\n break;\n case DecodedBitStreamParser.PS:\n // Shift to punctuation\n priorToShiftMode = subMode;\n subMode = Mode.PUNCT_SHIFT;\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n result.append(/*(char)*/ byteCompactionData[i]);\n break;\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n subMode = Mode.ALPHA;\n break;\n }\n }\n break;\n case Mode.PUNCT:\n // Punctuation\n if (subModeCh < DecodedBitStreamParser.PAL) {\n ch = DecodedBitStreamParser.PUNCT_CHARS[subModeCh];\n }\n else {\n switch (subModeCh) {\n case DecodedBitStreamParser.PAL:\n subMode = Mode.ALPHA;\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n result.append(/*(char)*/ byteCompactionData[i]);\n break;\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n subMode = Mode.ALPHA;\n break;\n }\n }\n break;\n case Mode.ALPHA_SHIFT:\n // Restore sub-mode\n subMode = priorToShiftMode;\n if (subModeCh < 26) {\n ch = /*(char)('A' + subModeCh)*/ String.fromCharCode(65 + subModeCh);\n }\n else {\n switch (subModeCh) {\n case 26:\n ch = ' ';\n break;\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n subMode = Mode.ALPHA;\n break;\n }\n }\n break;\n case Mode.PUNCT_SHIFT:\n // Restore sub-mode\n subMode = priorToShiftMode;\n if (subModeCh < DecodedBitStreamParser.PAL) {\n ch = DecodedBitStreamParser.PUNCT_CHARS[subModeCh];\n }\n else {\n switch (subModeCh) {\n case DecodedBitStreamParser.PAL:\n subMode = Mode.ALPHA;\n break;\n case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n // PS before Shift-to-Byte is used as a padding character,\n // see 5.4.2.4 of the specification\n result.append(/*(char)*/ byteCompactionData[i]);\n break;\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n subMode = Mode.ALPHA;\n break;\n }\n }\n break;\n }\n // if (ch !== 0) {\n if (ch !== '') {\n // Append decoded character to result\n result.append(ch);\n }\n i++;\n }\n };\n /**\n * Byte Compaction mode (see 5.4.3) permits all 256 possible 8-bit byte values to be encoded.\n * This includes all ASCII characters value 0 to 127 inclusive and provides for international\n * character set support.\n *\n * @param mode The byte compaction mode i.e. 901 or 924\n * @param codewords The array of codewords (data + error)\n * @param encoding Currently active character encoding\n * @param codeIndex The current index into the codeword array.\n * @param result The decoded data is appended to the result.\n * @return The next index into the codeword array.\n */\n DecodedBitStreamParser.byteCompaction = function (mode, codewords, encoding, codeIndex, result) {\n var decodedBytes = new ByteArrayOutputStream();\n var count = 0;\n var value = /*long*/ 0;\n var end = false;\n switch (mode) {\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n // Total number of Byte Compaction characters to be encoded\n // is not a multiple of 6\n var byteCompactedCodewords = new Int32Array(6);\n var nextCode = codewords[codeIndex++];\n while ((codeIndex < codewords[0]) && !end) {\n byteCompactedCodewords[count++] = nextCode;\n // Base 900\n value = 900 * value + nextCode;\n nextCode = codewords[codeIndex++];\n // perhaps it should be ok to check only nextCode >= TEXT_COMPACTION_MODE_LATCH\n switch (nextCode) {\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n codeIndex--;\n end = true;\n break;\n default:\n if ((count % 5 === 0) && (count > 0)) {\n // Decode every 5 codewords\n // Convert to Base 256\n for (var j /*int*/ = 0; j < 6; ++j) {\n /* @note\n * JavaScript stores numbers as 64 bits floating point numbers, but all bitwise operations are performed on 32 bits binary numbers.\n * So the next bitwise operation could not be done with simple numbers\n */\n decodedBytes.write(/*(byte)*/ Number(createBigInt(value) >> createBigInt(8 * (5 - j))));\n }\n value = 0;\n count = 0;\n }\n break;\n }\n }\n // if the end of all codewords is reached the last codeword needs to be added\n if (codeIndex === codewords[0] && nextCode < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n byteCompactedCodewords[count++] = nextCode;\n }\n // If Byte Compaction mode is invoked with codeword 901,\n // the last group of codewords is interpreted directly\n // as one byte per codeword, without compaction.\n for (var i /*int*/ = 0; i < count; i++) {\n decodedBytes.write(/*(byte)*/ byteCompactedCodewords[i]);\n }\n break;\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n // Total number of Byte Compaction characters to be encoded\n // is an integer multiple of 6\n while (codeIndex < codewords[0] && !end) {\n var code = codewords[codeIndex++];\n if (code < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n count++;\n // Base 900\n value = 900 * value + code;\n }\n else {\n switch (code) {\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n codeIndex--;\n end = true;\n break;\n }\n }\n if ((count % 5 === 0) && (count > 0)) {\n // Decode every 5 codewords\n // Convert to Base 256\n /* @note\n * JavaScript stores numbers as 64 bits floating point numbers, but all bitwise operations are performed on 32 bits binary numbers.\n * So the next bitwise operation could not be done with simple numbers\n */\n for (var j /*int*/ = 0; j < 6; ++j) {\n decodedBytes.write(/*(byte)*/ Number(createBigInt(value) >> createBigInt(8 * (5 - j))));\n }\n value = 0;\n count = 0;\n }\n }\n break;\n }\n result.append(StringEncoding.decode(decodedBytes.toByteArray(), encoding));\n return codeIndex;\n };\n /**\n * Numeric Compaction mode (see 5.4.4) permits efficient encoding of numeric data strings.\n *\n * @param codewords The array of codewords (data + error)\n * @param codeIndex The current index into the codeword array.\n * @param result The decoded data is appended to the result.\n * @return The next index into the codeword array.\n *\n * @throws FormatException\n */\n DecodedBitStreamParser.numericCompaction = function (codewords, codeIndex /*int*/, result) {\n var count = 0;\n var end = false;\n var numericCodewords = new Int32Array(DecodedBitStreamParser.MAX_NUMERIC_CODEWORDS);\n while (codeIndex < codewords[0] && !end) {\n var code = codewords[codeIndex++];\n if (codeIndex === codewords[0]) {\n end = true;\n }\n if (code < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n numericCodewords[count] = code;\n count++;\n }\n else {\n switch (code) {\n case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n codeIndex--;\n end = true;\n break;\n }\n }\n if ((count % DecodedBitStreamParser.MAX_NUMERIC_CODEWORDS === 0 || code === DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH || end) && count > 0) {\n // Re-invoking Numeric Compaction mode (by using codeword 902\n // while in Numeric Compaction mode) serves to terminate the\n // current Numeric Compaction mode grouping as described in 5.4.4.2,\n // and then to start a new one grouping.\n result.append(DecodedBitStreamParser.decodeBase900toBase10(numericCodewords, count));\n count = 0;\n }\n }\n return codeIndex;\n };\n /**\n * Convert a list of Numeric Compacted codewords from Base 900 to Base 10.\n *\n * @param codewords The array of codewords\n * @param count The number of codewords\n * @return The decoded string representing the Numeric data.\n *\n * EXAMPLE\n * Encode the fifteen digit numeric string 000213298174000\n * Prefix the numeric string with a 1 and set the initial value of\n * t = 1 000 213 298 174 000\n * Calculate codeword 0\n * d0 = 1 000 213 298 174 000 mod 900 = 200\n *\n * t = 1 000 213 298 174 000 div 900 = 1 111 348 109 082\n * Calculate codeword 1\n * d1 = 1 111 348 109 082 mod 900 = 282\n *\n * t = 1 111 348 109 082 div 900 = 1 234 831 232\n * Calculate codeword 2\n * d2 = 1 234 831 232 mod 900 = 632\n *\n * t = 1 234 831 232 div 900 = 1 372 034\n * Calculate codeword 3\n * d3 = 1 372 034 mod 900 = 434\n *\n * t = 1 372 034 div 900 = 1 524\n * Calculate codeword 4\n * d4 = 1 524 mod 900 = 624\n *\n * t = 1 524 div 900 = 1\n * Calculate codeword 5\n * d5 = 1 mod 900 = 1\n * t = 1 div 900 = 0\n * Codeword sequence is: 1, 624, 434, 632, 282, 200\n *\n * Decode the above codewords involves\n * 1 x 900 power of 5 + 624 x 900 power of 4 + 434 x 900 power of 3 +\n * 632 x 900 power of 2 + 282 x 900 power of 1 + 200 x 900 power of 0 = 1000213298174000\n *\n * Remove leading 1 => Result is 000213298174000\n *\n * @throws FormatException\n */\n DecodedBitStreamParser.decodeBase900toBase10 = function (codewords, count) {\n var result = createBigInt(0);\n for (var i /*int*/ = 0; i < count; i++) {\n result += DecodedBitStreamParser.EXP900[count - i - 1] * createBigInt(codewords[i]);\n }\n var resultString = result.toString();\n if (resultString.charAt(0) !== '1') {\n throw new FormatException();\n }\n return resultString.substring(1);\n };\n DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH = 900;\n DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH = 901;\n DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH = 902;\n DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6 = 924;\n DecodedBitStreamParser.ECI_USER_DEFINED = 925;\n DecodedBitStreamParser.ECI_GENERAL_PURPOSE = 926;\n DecodedBitStreamParser.ECI_CHARSET = 927;\n DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK = 928;\n DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD = 923;\n DecodedBitStreamParser.MACRO_PDF417_TERMINATOR = 922;\n DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE = 913;\n DecodedBitStreamParser.MAX_NUMERIC_CODEWORDS = 15;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME = 0;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT = 1;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP = 2;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SENDER = 3;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE = 4;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE = 5;\n DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM = 6;\n DecodedBitStreamParser.PL = 25;\n DecodedBitStreamParser.LL = 27;\n DecodedBitStreamParser.AS = 27;\n DecodedBitStreamParser.ML = 28;\n DecodedBitStreamParser.AL = 28;\n DecodedBitStreamParser.PS = 29;\n DecodedBitStreamParser.PAL = 29;\n DecodedBitStreamParser.PUNCT_CHARS = ';<>@[\\\\]_`~!\\r\\t,:\\n-.$/\"|*()?{}\\'';\n DecodedBitStreamParser.MIXED_CHARS = '0123456789&\\r\\t,:#-.$/+%*=^';\n /**\n * Table containing values for the exponent of 900.\n * This is used in the numeric compaction decode algorithm.\n */\n DecodedBitStreamParser.EXP900 = getBigIntConstructor() ? getEXP900() : [];\n DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS = 2;\n return DecodedBitStreamParser;\n}());\nexport default DecodedBitStreamParser;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.ChecksumException;\nimport ChecksumException from '../../ChecksumException';\n// import com.google.zxing.FormatException;\nimport FormatException from '../../FormatException';\n// import com.google.zxing.NotFoundException;\nimport NotFoundException from '../../NotFoundException';\n// import com.google.zxing.common.detector.MathUtils;\nimport MathUtils from '../../common/detector/MathUtils';\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\n// import com.google.zxing.pdf417.decoder.ec.ErrorCorrection;\nimport ErrorCorrection from './ec/ErrorCorrection';\n// local\nimport BoundingBox from './BoundingBox';\nimport DetectionResultRowIndicatorColumn from './DetectionResultRowIndicatorColumn';\nimport DetectionResult from './DetectionResult';\nimport DetectionResultColumn from './DetectionResultColumn';\nimport Codeword from './Codeword';\nimport BarcodeValue from './BarcodeValue';\nimport PDF417CodewordDecoder from './PDF417CodewordDecoder';\nimport DecodedBitStreamParser from './DecodedBitStreamParser';\n// utils\nimport Formatter from '../../util/Formatter';\n// import java.util.ArrayList;\n// import java.util.Collection;\n// import java.util.Formatter;\n// import java.util.List;\n/**\n * @author Guenther Grau\n */\nvar PDF417ScanningDecoder = /** @class */ (function () {\n function PDF417ScanningDecoder() {\n }\n /**\n * @TODO don't pass in minCodewordWidth and maxCodewordWidth, pass in barcode columns for start and stop pattern\n *\n * columns. That way width can be deducted from the pattern column.\n * This approach also allows to detect more details about the barcode, e.g. if a bar type (white or black) is wider\n * than it should be. This can happen if the scanner used a bad blackpoint.\n *\n * @param BitMatrix\n * @param image\n * @param ResultPoint\n * @param imageTopLeft\n * @param ResultPoint\n * @param imageBottomLeft\n * @param ResultPoint\n * @param imageTopRight\n * @param ResultPoint\n * @param imageBottomRight\n * @param int\n * @param minCodewordWidth\n * @param int\n * @param maxCodewordWidth\n *\n * @throws NotFoundException\n * @throws FormatException\n * @throws ChecksumException\n */\n PDF417ScanningDecoder.decode = function (image, imageTopLeft, imageBottomLeft, imageTopRight, imageBottomRight, minCodewordWidth, maxCodewordWidth) {\n var boundingBox = new BoundingBox(image, imageTopLeft, imageBottomLeft, imageTopRight, imageBottomRight);\n var leftRowIndicatorColumn = null;\n var rightRowIndicatorColumn = null;\n var detectionResult;\n for (var firstPass /*boolean*/ = true;; firstPass = false) {\n if (imageTopLeft != null) {\n leftRowIndicatorColumn = PDF417ScanningDecoder.getRowIndicatorColumn(image, boundingBox, imageTopLeft, true, minCodewordWidth, maxCodewordWidth);\n }\n if (imageTopRight != null) {\n rightRowIndicatorColumn = PDF417ScanningDecoder.getRowIndicatorColumn(image, boundingBox, imageTopRight, false, minCodewordWidth, maxCodewordWidth);\n }\n detectionResult = PDF417ScanningDecoder.merge(leftRowIndicatorColumn, rightRowIndicatorColumn);\n if (detectionResult == null) {\n throw NotFoundException.getNotFoundInstance();\n }\n var resultBox = detectionResult.getBoundingBox();\n if (firstPass && resultBox != null &&\n (resultBox.getMinY() < boundingBox.getMinY() || resultBox.getMaxY() > boundingBox.getMaxY())) {\n boundingBox = resultBox;\n }\n else {\n break;\n }\n }\n detectionResult.setBoundingBox(boundingBox);\n var maxBarcodeColumn = detectionResult.getBarcodeColumnCount() + 1;\n detectionResult.setDetectionResultColumn(0, leftRowIndicatorColumn);\n detectionResult.setDetectionResultColumn(maxBarcodeColumn, rightRowIndicatorColumn);\n var leftToRight = leftRowIndicatorColumn != null;\n for (var barcodeColumnCount /*int*/ = 1; barcodeColumnCount <= maxBarcodeColumn; barcodeColumnCount++) {\n var barcodeColumn = leftToRight ? barcodeColumnCount : maxBarcodeColumn - barcodeColumnCount;\n if (detectionResult.getDetectionResultColumn(barcodeColumn) !== /* null */ undefined) {\n // This will be the case for the opposite row indicator column, which doesn't need to be decoded again.\n continue;\n }\n var detectionResultColumn = void 0;\n if (barcodeColumn === 0 || barcodeColumn === maxBarcodeColumn) {\n detectionResultColumn = new DetectionResultRowIndicatorColumn(boundingBox, barcodeColumn === 0);\n }\n else {\n detectionResultColumn = new DetectionResultColumn(boundingBox);\n }\n detectionResult.setDetectionResultColumn(barcodeColumn, detectionResultColumn);\n var startColumn = -1;\n var previousStartColumn = startColumn;\n // TODO start at a row for which we know the start position, then detect upwards and downwards from there.\n for (var imageRow /*int*/ = boundingBox.getMinY(); imageRow <= boundingBox.getMaxY(); imageRow++) {\n startColumn = PDF417ScanningDecoder.getStartColumn(detectionResult, barcodeColumn, imageRow, leftToRight);\n if (startColumn < 0 || startColumn > boundingBox.getMaxX()) {\n if (previousStartColumn === -1) {\n continue;\n }\n startColumn = previousStartColumn;\n }\n var codeword = PDF417ScanningDecoder.detectCodeword(image, boundingBox.getMinX(), boundingBox.getMaxX(), leftToRight, startColumn, imageRow, minCodewordWidth, maxCodewordWidth);\n if (codeword != null) {\n detectionResultColumn.setCodeword(imageRow, codeword);\n previousStartColumn = startColumn;\n minCodewordWidth = Math.min(minCodewordWidth, codeword.getWidth());\n maxCodewordWidth = Math.max(maxCodewordWidth, codeword.getWidth());\n }\n }\n }\n return PDF417ScanningDecoder.createDecoderResult(detectionResult);\n };\n /**\n *\n * @param leftRowIndicatorColumn\n * @param rightRowIndicatorColumn\n *\n * @throws NotFoundException\n */\n PDF417ScanningDecoder.merge = function (leftRowIndicatorColumn, rightRowIndicatorColumn) {\n if (leftRowIndicatorColumn == null && rightRowIndicatorColumn == null) {\n return null;\n }\n var barcodeMetadata = PDF417ScanningDecoder.getBarcodeMetadata(leftRowIndicatorColumn, rightRowIndicatorColumn);\n if (barcodeMetadata == null) {\n return null;\n }\n var boundingBox = BoundingBox.merge(PDF417ScanningDecoder.adjustBoundingBox(leftRowIndicatorColumn), PDF417ScanningDecoder.adjustBoundingBox(rightRowIndicatorColumn));\n return new DetectionResult(barcodeMetadata, boundingBox);\n };\n /**\n *\n * @param rowIndicatorColumn\n *\n * @throws NotFoundException\n */\n PDF417ScanningDecoder.adjustBoundingBox = function (rowIndicatorColumn) {\n var e_1, _a;\n if (rowIndicatorColumn == null) {\n return null;\n }\n var rowHeights = rowIndicatorColumn.getRowHeights();\n if (rowHeights == null) {\n return null;\n }\n var maxRowHeight = PDF417ScanningDecoder.getMax(rowHeights);\n var missingStartRows = 0;\n try {\n for (var rowHeights_1 = __values(rowHeights), rowHeights_1_1 = rowHeights_1.next(); !rowHeights_1_1.done; rowHeights_1_1 = rowHeights_1.next()) {\n var rowHeight = rowHeights_1_1.value /*int*/;\n missingStartRows += maxRowHeight - rowHeight;\n if (rowHeight > 0) {\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (rowHeights_1_1 && !rowHeights_1_1.done && (_a = rowHeights_1.return)) _a.call(rowHeights_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var codewords = rowIndicatorColumn.getCodewords();\n for (var row /*int*/ = 0; missingStartRows > 0 && codewords[row] == null; row++) {\n missingStartRows--;\n }\n var missingEndRows = 0;\n for (var row /*int*/ = rowHeights.length - 1; row >= 0; row--) {\n missingEndRows += maxRowHeight - rowHeights[row];\n if (rowHeights[row] > 0) {\n break;\n }\n }\n for (var row /*int*/ = codewords.length - 1; missingEndRows > 0 && codewords[row] == null; row--) {\n missingEndRows--;\n }\n return rowIndicatorColumn.getBoundingBox().addMissingRows(missingStartRows, missingEndRows, rowIndicatorColumn.isLeft());\n };\n PDF417ScanningDecoder.getMax = function (values) {\n var e_2, _a;\n var maxValue = -1;\n try {\n for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value /*int*/;\n maxValue = Math.max(maxValue, value);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return maxValue;\n };\n PDF417ScanningDecoder.getBarcodeMetadata = function (leftRowIndicatorColumn, rightRowIndicatorColumn) {\n var leftBarcodeMetadata;\n if (leftRowIndicatorColumn == null ||\n (leftBarcodeMetadata = leftRowIndicatorColumn.getBarcodeMetadata()) == null) {\n return rightRowIndicatorColumn == null ? null : rightRowIndicatorColumn.getBarcodeMetadata();\n }\n var rightBarcodeMetadata;\n if (rightRowIndicatorColumn == null ||\n (rightBarcodeMetadata = rightRowIndicatorColumn.getBarcodeMetadata()) == null) {\n return leftBarcodeMetadata;\n }\n if (leftBarcodeMetadata.getColumnCount() !== rightBarcodeMetadata.getColumnCount() &&\n leftBarcodeMetadata.getErrorCorrectionLevel() !== rightBarcodeMetadata.getErrorCorrectionLevel() &&\n leftBarcodeMetadata.getRowCount() !== rightBarcodeMetadata.getRowCount()) {\n return null;\n }\n return leftBarcodeMetadata;\n };\n PDF417ScanningDecoder.getRowIndicatorColumn = function (image, boundingBox, startPoint, leftToRight, minCodewordWidth, maxCodewordWidth) {\n var rowIndicatorColumn = new DetectionResultRowIndicatorColumn(boundingBox, leftToRight);\n for (var i /*int*/ = 0; i < 2; i++) {\n var increment = i === 0 ? 1 : -1;\n var startColumn = Math.trunc(Math.trunc(startPoint.getX()));\n for (var imageRow /*int*/ = Math.trunc(Math.trunc(startPoint.getY())); imageRow <= boundingBox.getMaxY() &&\n imageRow >= boundingBox.getMinY(); imageRow += increment) {\n var codeword = PDF417ScanningDecoder.detectCodeword(image, 0, image.getWidth(), leftToRight, startColumn, imageRow, minCodewordWidth, maxCodewordWidth);\n if (codeword != null) {\n rowIndicatorColumn.setCodeword(imageRow, codeword);\n if (leftToRight) {\n startColumn = codeword.getStartX();\n }\n else {\n startColumn = codeword.getEndX();\n }\n }\n }\n }\n return rowIndicatorColumn;\n };\n /**\n *\n * @param detectionResult\n * @param BarcodeValue\n * @param param2\n * @param param3\n * @param barcodeMatrix\n *\n * @throws NotFoundException\n */\n PDF417ScanningDecoder.adjustCodewordCount = function (detectionResult, barcodeMatrix) {\n var barcodeMatrix01 = barcodeMatrix[0][1];\n var numberOfCodewords = barcodeMatrix01.getValue();\n var calculatedNumberOfCodewords = detectionResult.getBarcodeColumnCount() *\n detectionResult.getBarcodeRowCount() -\n PDF417ScanningDecoder.getNumberOfECCodeWords(detectionResult.getBarcodeECLevel());\n if (numberOfCodewords.length === 0) {\n if (calculatedNumberOfCodewords < 1 || calculatedNumberOfCodewords > PDF417Common.MAX_CODEWORDS_IN_BARCODE) {\n throw NotFoundException.getNotFoundInstance();\n }\n barcodeMatrix01.setValue(calculatedNumberOfCodewords);\n }\n else if (numberOfCodewords[0] !== calculatedNumberOfCodewords) {\n // The calculated one is more reliable as it is derived from the row indicator columns\n barcodeMatrix01.setValue(calculatedNumberOfCodewords);\n }\n };\n /**\n *\n * @param detectionResult\n *\n * @throws FormatException\n * @throws ChecksumException\n * @throws NotFoundException\n */\n PDF417ScanningDecoder.createDecoderResult = function (detectionResult) {\n var barcodeMatrix = PDF417ScanningDecoder.createBarcodeMatrix(detectionResult);\n PDF417ScanningDecoder.adjustCodewordCount(detectionResult, barcodeMatrix);\n var erasures /*Collection*/ = new Array();\n var codewords = new Int32Array(detectionResult.getBarcodeRowCount() * detectionResult.getBarcodeColumnCount());\n var ambiguousIndexValuesList = /*List*/ [];\n var ambiguousIndexesList = /*Collection*/ new Array();\n for (var row /*int*/ = 0; row < detectionResult.getBarcodeRowCount(); row++) {\n for (var column /*int*/ = 0; column < detectionResult.getBarcodeColumnCount(); column++) {\n var values = barcodeMatrix[row][column + 1].getValue();\n var codewordIndex = row * detectionResult.getBarcodeColumnCount() + column;\n if (values.length === 0) {\n erasures.push(codewordIndex);\n }\n else if (values.length === 1) {\n codewords[codewordIndex] = values[0];\n }\n else {\n ambiguousIndexesList.push(codewordIndex);\n ambiguousIndexValuesList.push(values);\n }\n }\n }\n var ambiguousIndexValues = new Array(ambiguousIndexValuesList.length);\n for (var i /*int*/ = 0; i < ambiguousIndexValues.length; i++) {\n ambiguousIndexValues[i] = ambiguousIndexValuesList[i];\n }\n return PDF417ScanningDecoder.createDecoderResultFromAmbiguousValues(detectionResult.getBarcodeECLevel(), codewords, PDF417Common.toIntArray(erasures), PDF417Common.toIntArray(ambiguousIndexesList), ambiguousIndexValues);\n };\n /**\n * This method deals with the fact, that the decoding process doesn't always yield a single most likely value. The\n * current error correction implementation doesn't deal with erasures very well, so it's better to provide a value\n * for these ambiguous codewords instead of treating it as an erasure. The problem is that we don't know which of\n * the ambiguous values to choose. We try decode using the first value, and if that fails, we use another of the\n * ambiguous values and try to decode again. This usually only happens on very hard to read and decode barcodes,\n * so decoding the normal barcodes is not affected by this.\n *\n * @param erasureArray contains the indexes of erasures\n * @param ambiguousIndexes array with the indexes that have more than one most likely value\n * @param ambiguousIndexValues two dimensional array that contains the ambiguous values. The first dimension must\n * be the same length as the ambiguousIndexes array\n *\n * @throws FormatException\n * @throws ChecksumException\n */\n PDF417ScanningDecoder.createDecoderResultFromAmbiguousValues = function (ecLevel, codewords, erasureArray, ambiguousIndexes, ambiguousIndexValues) {\n var ambiguousIndexCount = new Int32Array(ambiguousIndexes.length);\n var tries = 100;\n while (tries-- > 0) {\n for (var i /*int*/ = 0; i < ambiguousIndexCount.length; i++) {\n codewords[ambiguousIndexes[i]] = ambiguousIndexValues[i][ambiguousIndexCount[i]];\n }\n try {\n return PDF417ScanningDecoder.decodeCodewords(codewords, ecLevel, erasureArray);\n }\n catch (err) {\n var ignored = err instanceof ChecksumException;\n if (!ignored) {\n throw err;\n }\n }\n if (ambiguousIndexCount.length === 0) {\n throw ChecksumException.getChecksumInstance();\n }\n for (var i /*int*/ = 0; i < ambiguousIndexCount.length; i++) {\n if (ambiguousIndexCount[i] < ambiguousIndexValues[i].length - 1) {\n ambiguousIndexCount[i]++;\n break;\n }\n else {\n ambiguousIndexCount[i] = 0;\n if (i === ambiguousIndexCount.length - 1) {\n throw ChecksumException.getChecksumInstance();\n }\n }\n }\n }\n throw ChecksumException.getChecksumInstance();\n };\n PDF417ScanningDecoder.createBarcodeMatrix = function (detectionResult) {\n var e_3, _a, e_4, _b;\n // let barcodeMatrix: BarcodeValue[][] =\n // new BarcodeValue[detectionResult.getBarcodeRowCount()][detectionResult.getBarcodeColumnCount() + 2];\n var barcodeMatrix = Array.from({ length: detectionResult.getBarcodeRowCount() }, function () { return new Array(detectionResult.getBarcodeColumnCount() + 2); });\n for (var row /*int*/ = 0; row < barcodeMatrix.length; row++) {\n for (var column_1 /*int*/ = 0; column_1 < barcodeMatrix[row].length; column_1++) {\n barcodeMatrix[row][column_1] = new BarcodeValue();\n }\n }\n var column = 0;\n try {\n for (var _c = __values(detectionResult.getDetectionResultColumns()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var detectionResultColumn = _d.value /*DetectionResultColumn*/;\n if (detectionResultColumn != null) {\n try {\n for (var _e = (e_4 = void 0, __values(detectionResultColumn.getCodewords())), _f = _e.next(); !_f.done; _f = _e.next()) {\n var codeword = _f.value /*Codeword*/;\n if (codeword != null) {\n var rowNumber = codeword.getRowNumber();\n if (rowNumber >= 0) {\n if (rowNumber >= barcodeMatrix.length) {\n // We have more rows than the barcode metadata allows for, ignore them.\n continue;\n }\n barcodeMatrix[rowNumber][column].setValue(codeword.getValue());\n }\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n column++;\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return barcodeMatrix;\n };\n PDF417ScanningDecoder.isValidBarcodeColumn = function (detectionResult, barcodeColumn) {\n return barcodeColumn >= 0 && barcodeColumn <= detectionResult.getBarcodeColumnCount() + 1;\n };\n PDF417ScanningDecoder.getStartColumn = function (detectionResult, barcodeColumn, imageRow, leftToRight) {\n var e_5, _a;\n var offset = leftToRight ? 1 : -1;\n var codeword = null;\n if (PDF417ScanningDecoder.isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {\n codeword = detectionResult.getDetectionResultColumn(barcodeColumn - offset).getCodeword(imageRow);\n }\n if (codeword != null) {\n return leftToRight ? codeword.getEndX() : codeword.getStartX();\n }\n codeword = detectionResult.getDetectionResultColumn(barcodeColumn).getCodewordNearby(imageRow);\n if (codeword != null) {\n return leftToRight ? codeword.getStartX() : codeword.getEndX();\n }\n if (PDF417ScanningDecoder.isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {\n codeword = detectionResult.getDetectionResultColumn(barcodeColumn - offset).getCodewordNearby(imageRow);\n }\n if (codeword != null) {\n return leftToRight ? codeword.getEndX() : codeword.getStartX();\n }\n var skippedColumns = 0;\n while (PDF417ScanningDecoder.isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {\n barcodeColumn -= offset;\n try {\n for (var _b = (e_5 = void 0, __values(detectionResult.getDetectionResultColumn(barcodeColumn).getCodewords())), _c = _b.next(); !_c.done; _c = _b.next()) {\n var previousRowCodeword = _c.value /*Codeword*/;\n if (previousRowCodeword != null) {\n return (leftToRight ? previousRowCodeword.getEndX() : previousRowCodeword.getStartX()) +\n offset *\n skippedColumns *\n (previousRowCodeword.getEndX() - previousRowCodeword.getStartX());\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n skippedColumns++;\n }\n return leftToRight ? detectionResult.getBoundingBox().getMinX() : detectionResult.getBoundingBox().getMaxX();\n };\n PDF417ScanningDecoder.detectCodeword = function (image, minColumn, maxColumn, leftToRight, startColumn, imageRow, minCodewordWidth, maxCodewordWidth) {\n startColumn = PDF417ScanningDecoder.adjustCodewordStartColumn(image, minColumn, maxColumn, leftToRight, startColumn, imageRow);\n // we usually know fairly exact now how long a codeword is. We should provide minimum and maximum expected length\n // and try to adjust the read pixels, e.g. remove single pixel errors or try to cut off exceeding pixels.\n // min and maxCodewordWidth should not be used as they are calculated for the whole barcode an can be inaccurate\n // for the current position\n var moduleBitCount = PDF417ScanningDecoder.getModuleBitCount(image, minColumn, maxColumn, leftToRight, startColumn, imageRow);\n if (moduleBitCount == null) {\n return null;\n }\n var endColumn;\n var codewordBitCount = MathUtils.sum(moduleBitCount);\n if (leftToRight) {\n endColumn = startColumn + codewordBitCount;\n }\n else {\n for (var i /*int*/ = 0; i < moduleBitCount.length / 2; i++) {\n var tmpCount = moduleBitCount[i];\n moduleBitCount[i] = moduleBitCount[moduleBitCount.length - 1 - i];\n moduleBitCount[moduleBitCount.length - 1 - i] = tmpCount;\n }\n endColumn = startColumn;\n startColumn = endColumn - codewordBitCount;\n }\n // TODO implement check for width and correction of black and white bars\n // use start (and maybe stop pattern) to determine if black bars are wider than white bars. If so, adjust.\n // should probably done only for codewords with a lot more than 17 bits.\n // The following fixes 10-1.png, which has wide black bars and small white bars\n // for (let i /*int*/ = 0; i < moduleBitCount.length; i++) {\n // if (i % 2 === 0) {\n // moduleBitCount[i]--;\n // } else {\n // moduleBitCount[i]++;\n // }\n // }\n // We could also use the width of surrounding codewords for more accurate results, but this seems\n // sufficient for now\n if (!PDF417ScanningDecoder.checkCodewordSkew(codewordBitCount, minCodewordWidth, maxCodewordWidth)) {\n // We could try to use the startX and endX position of the codeword in the same column in the previous row,\n // create the bit count from it and normalize it to 8. This would help with single pixel errors.\n return null;\n }\n var decodedValue = PDF417CodewordDecoder.getDecodedValue(moduleBitCount);\n var codeword = PDF417Common.getCodeword(decodedValue);\n if (codeword === -1) {\n return null;\n }\n return new Codeword(startColumn, endColumn, PDF417ScanningDecoder.getCodewordBucketNumber(decodedValue), codeword);\n };\n PDF417ScanningDecoder.getModuleBitCount = function (image, minColumn, maxColumn, leftToRight, startColumn, imageRow) {\n var imageColumn = startColumn;\n var moduleBitCount = new Int32Array(8);\n var moduleNumber = 0;\n var increment = leftToRight ? 1 : -1;\n var previousPixelValue = leftToRight;\n while ((leftToRight ? imageColumn < maxColumn : imageColumn >= minColumn) &&\n moduleNumber < moduleBitCount.length) {\n if (image.get(imageColumn, imageRow) === previousPixelValue) {\n moduleBitCount[moduleNumber]++;\n imageColumn += increment;\n }\n else {\n moduleNumber++;\n previousPixelValue = !previousPixelValue;\n }\n }\n if (moduleNumber === moduleBitCount.length ||\n ((imageColumn === (leftToRight ? maxColumn : minColumn)) &&\n moduleNumber === moduleBitCount.length - 1)) {\n return moduleBitCount;\n }\n return null;\n };\n PDF417ScanningDecoder.getNumberOfECCodeWords = function (barcodeECLevel) {\n return 2 << barcodeECLevel;\n };\n PDF417ScanningDecoder.adjustCodewordStartColumn = function (image, minColumn, maxColumn, leftToRight, codewordStartColumn, imageRow) {\n var correctedStartColumn = codewordStartColumn;\n var increment = leftToRight ? -1 : 1;\n // there should be no black pixels before the start column. If there are, then we need to start earlier.\n for (var i /*int*/ = 0; i < 2; i++) {\n while ((leftToRight ? correctedStartColumn >= minColumn : correctedStartColumn < maxColumn) &&\n leftToRight === image.get(correctedStartColumn, imageRow)) {\n if (Math.abs(codewordStartColumn - correctedStartColumn) > PDF417ScanningDecoder.CODEWORD_SKEW_SIZE) {\n return codewordStartColumn;\n }\n correctedStartColumn += increment;\n }\n increment = -increment;\n leftToRight = !leftToRight;\n }\n return correctedStartColumn;\n };\n PDF417ScanningDecoder.checkCodewordSkew = function (codewordSize, minCodewordWidth, maxCodewordWidth) {\n return minCodewordWidth - PDF417ScanningDecoder.CODEWORD_SKEW_SIZE <= codewordSize &&\n codewordSize <= maxCodewordWidth + PDF417ScanningDecoder.CODEWORD_SKEW_SIZE;\n };\n /**\n * @throws FormatException,\n * @throws ChecksumException\n */\n PDF417ScanningDecoder.decodeCodewords = function (codewords, ecLevel, erasures) {\n if (codewords.length === 0) {\n throw FormatException.getFormatInstance();\n }\n var numECCodewords = 1 << (ecLevel + 1);\n var correctedErrorsCount = PDF417ScanningDecoder.correctErrors(codewords, erasures, numECCodewords);\n PDF417ScanningDecoder.verifyCodewordCount(codewords, numECCodewords);\n // Decode the codewords\n var decoderResult = DecodedBitStreamParser.decode(codewords, '' + ecLevel);\n decoderResult.setErrorsCorrected(correctedErrorsCount);\n decoderResult.setErasures(erasures.length);\n return decoderResult;\n };\n /**\n *

    Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place.

    \n *\n * @param codewords data and error correction codewords\n * @param erasures positions of any known erasures\n * @param numECCodewords number of error correction codewords that are available in codewords\n * @throws ChecksumException if error correction fails\n */\n PDF417ScanningDecoder.correctErrors = function (codewords, erasures, numECCodewords) {\n if (erasures != null &&\n erasures.length > numECCodewords / 2 + PDF417ScanningDecoder.MAX_ERRORS ||\n numECCodewords < 0 ||\n numECCodewords > PDF417ScanningDecoder.MAX_EC_CODEWORDS) {\n // Too many errors or EC Codewords is corrupted\n throw ChecksumException.getChecksumInstance();\n }\n return PDF417ScanningDecoder.errorCorrection.decode(codewords, numECCodewords, erasures);\n };\n /**\n * Verify that all is OK with the codeword array.\n * @throws FormatException\n */\n PDF417ScanningDecoder.verifyCodewordCount = function (codewords, numECCodewords) {\n if (codewords.length < 4) {\n // Codeword array size should be at least 4 allowing for\n // Count CW, At least one Data CW, Error Correction CW, Error Correction CW\n throw FormatException.getFormatInstance();\n }\n // The first codeword, the Symbol Length Descriptor, shall always encode the total number of data\n // codewords in the symbol, including the Symbol Length Descriptor itself, data codewords and pad\n // codewords, but excluding the number of error correction codewords.\n var numberOfCodewords = codewords[0];\n if (numberOfCodewords > codewords.length) {\n throw FormatException.getFormatInstance();\n }\n if (numberOfCodewords === 0) {\n // Reset to the length of the array - 8 (Allow for at least level 3 Error Correction (8 Error Codewords)\n if (numECCodewords < codewords.length) {\n codewords[0] = codewords.length - numECCodewords;\n }\n else {\n throw FormatException.getFormatInstance();\n }\n }\n };\n PDF417ScanningDecoder.getBitCountForCodeword = function (codeword) {\n var result = new Int32Array(8);\n var previousValue = 0;\n var i = result.length - 1;\n while (true) {\n if ((codeword & 0x1) !== previousValue) {\n previousValue = codeword & 0x1;\n i--;\n if (i < 0) {\n break;\n }\n }\n result[i]++;\n codeword >>= 1;\n }\n return result;\n };\n PDF417ScanningDecoder.getCodewordBucketNumber = function (codeword) {\n if (codeword instanceof Int32Array) {\n return this.getCodewordBucketNumber_Int32Array(codeword);\n }\n return this.getCodewordBucketNumber_number(codeword);\n };\n PDF417ScanningDecoder.getCodewordBucketNumber_number = function (codeword) {\n return PDF417ScanningDecoder.getCodewordBucketNumber(PDF417ScanningDecoder.getBitCountForCodeword(codeword));\n };\n PDF417ScanningDecoder.getCodewordBucketNumber_Int32Array = function (moduleBitCount) {\n return (moduleBitCount[0] - moduleBitCount[2] + moduleBitCount[4] - moduleBitCount[6] + 9) % 9;\n };\n PDF417ScanningDecoder.toString = function (barcodeMatrix) {\n var formatter = new Formatter();\n // try (let formatter = new Formatter()) {\n for (var row /*int*/ = 0; row < barcodeMatrix.length; row++) {\n formatter.format('Row %2d: ', row);\n for (var column /*int*/ = 0; column < barcodeMatrix[row].length; column++) {\n var barcodeValue = barcodeMatrix[row][column];\n if (barcodeValue.getValue().length === 0) {\n formatter.format(' ', null);\n }\n else {\n formatter.format('%4d(%2d)', barcodeValue.getValue()[0], barcodeValue.getConfidence(barcodeValue.getValue()[0]));\n }\n }\n formatter.format('%n');\n }\n return formatter.toString();\n // }\n };\n /*final*/ PDF417ScanningDecoder.CODEWORD_SKEW_SIZE = 2;\n /*final*/ PDF417ScanningDecoder.MAX_ERRORS = 3;\n /*final*/ PDF417ScanningDecoder.MAX_EC_CODEWORDS = 512;\n /*final*/ PDF417ScanningDecoder.errorCorrection = new ErrorCorrection();\n return PDF417ScanningDecoder;\n}());\nexport default PDF417ScanningDecoder;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417;\n// import com.google.zxing.BarcodeFormat;\nimport BarcodeFormat from '../BarcodeFormat';\n// import com.google.zxing.ChecksumException;\nimport ChecksumException from '../ChecksumException';\n// import com.google.zxing.FormatException;\nimport FormatException from '../FormatException';\n// import com.google.zxing.NotFoundException;\nimport NotFoundException from '../NotFoundException';\n// import com.google.zxing.Result;\nimport Result from '../Result';\n// import com.google.zxing.common.DecoderResult;\n// import com.google.zxing.multi.MultipleBarcodeReader;\n// import com.google.zxing.pdf417.decoder.PDF417ScanningDecoder;\n// import com.google.zxing.pdf417.detector.Detector;\n// import com.google.zxing.pdf417.detector.PDF417DetectorResult;\nimport PDF417Common from './PDF417Common';\nimport Integer from '../util/Integer';\nimport ResultMetadataType from '../ResultMetadataType';\nimport Detector from './detector/Detector';\nimport PDF417ScanningDecoder from './decoder/PDF417ScanningDecoder';\n// import java.util.ArrayList;\n// import java.util.List;\n// import java.util.Map;\n/**\n * This implementation can detect and decode PDF417 codes in an image.\n *\n * @author Guenther Grau\n */\nvar PDF417Reader = /** @class */ (function () {\n function PDF417Reader() {\n }\n // private static /*final Result[]*/ EMPTY_RESULT_ARRAY: Result[] = new Result([0]);\n /**\n * Locates and decodes a PDF417 code in an image.\n *\n * @return a String representing the content encoded by the PDF417 code\n * @throws NotFoundException if a PDF417 code cannot be found,\n * @throws FormatException if a PDF417 cannot be decoded\n * @throws ChecksumException\n */\n // @Override\n PDF417Reader.prototype.decode = function (image, hints) {\n if (hints === void 0) { hints = null; }\n var result = PDF417Reader.decode(image, hints, false);\n if (result == null || result.length === 0 || result[0] == null) {\n throw NotFoundException.getNotFoundInstance();\n }\n return result[0];\n };\n /**\n *\n * @param BinaryBitmap\n * @param image\n * @throws NotFoundException\n */\n // @Override\n PDF417Reader.prototype.decodeMultiple = function (image, hints) {\n if (hints === void 0) { hints = null; }\n try {\n return PDF417Reader.decode(image, hints, true);\n }\n catch (ignored) {\n if (ignored instanceof FormatException || ignored instanceof ChecksumException) {\n throw NotFoundException.getNotFoundInstance();\n }\n throw ignored;\n }\n };\n /**\n *\n * @param image\n * @param hints\n * @param multiple\n *\n * @throws NotFoundException\n * @throws FormatExceptionß\n * @throws ChecksumException\n */\n PDF417Reader.decode = function (image, hints, multiple) {\n var e_1, _a;\n var results = new Array();\n var detectorResult = Detector.detectMultiple(image, hints, multiple);\n try {\n for (var _b = __values(detectorResult.getPoints()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var points = _c.value;\n var decoderResult = PDF417ScanningDecoder.decode(detectorResult.getBits(), points[4], points[5], points[6], points[7], PDF417Reader.getMinCodewordWidth(points), PDF417Reader.getMaxCodewordWidth(points));\n var result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat.PDF_417);\n result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, decoderResult.getECLevel());\n var pdf417ResultMetadata = decoderResult.getOther();\n if (pdf417ResultMetadata != null) {\n result.putMetadata(ResultMetadataType.PDF417_EXTRA_METADATA, pdf417ResultMetadata);\n }\n results.push(result);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return results.map(function (x) { return x; });\n };\n PDF417Reader.getMaxWidth = function (p1, p2) {\n if (p1 == null || p2 == null) {\n return 0;\n }\n return Math.trunc(Math.abs(p1.getX() - p2.getX()));\n };\n PDF417Reader.getMinWidth = function (p1, p2) {\n if (p1 == null || p2 == null) {\n return Integer.MAX_VALUE;\n }\n return Math.trunc(Math.abs(p1.getX() - p2.getX()));\n };\n PDF417Reader.getMaxCodewordWidth = function (p) {\n return Math.floor(Math.max(Math.max(PDF417Reader.getMaxWidth(p[0], p[4]), PDF417Reader.getMaxWidth(p[6], p[2]) * PDF417Common.MODULES_IN_CODEWORD /\n PDF417Common.MODULES_IN_STOP_PATTERN), Math.max(PDF417Reader.getMaxWidth(p[1], p[5]), PDF417Reader.getMaxWidth(p[7], p[3]) * PDF417Common.MODULES_IN_CODEWORD /\n PDF417Common.MODULES_IN_STOP_PATTERN)));\n };\n PDF417Reader.getMinCodewordWidth = function (p) {\n return Math.floor(Math.min(Math.min(PDF417Reader.getMinWidth(p[0], p[4]), PDF417Reader.getMinWidth(p[6], p[2]) * PDF417Common.MODULES_IN_CODEWORD /\n PDF417Common.MODULES_IN_STOP_PATTERN), Math.min(PDF417Reader.getMinWidth(p[1], p[5]), PDF417Reader.getMinWidth(p[7], p[3]) * PDF417Common.MODULES_IN_CODEWORD /\n PDF417Common.MODULES_IN_STOP_PATTERN)));\n };\n // @Override\n PDF417Reader.prototype.reset = function () {\n // nothing needs to be reset\n };\n return PDF417Reader;\n}());\nexport default PDF417Reader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ReaderException = /** @class */ (function (_super) {\n __extends(ReaderException, _super);\n function ReaderException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ReaderException.kind = 'ReaderException';\n return ReaderException;\n}(Exception));\nexport default ReaderException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport DecodeHintType from './DecodeHintType';\nimport BarcodeFormat from './BarcodeFormat';\nimport QRCodeReader from './qrcode/QRCodeReader';\nimport AztecReader from './aztec/AztecReader';\nimport MultiFormatOneDReader from './oned/MultiFormatOneDReader';\nimport DataMatrixReader from './datamatrix/DataMatrixReader';\nimport NotFoundException from './NotFoundException';\nimport PDF417Reader from './pdf417/PDF417Reader';\nimport ReaderException from './ReaderException';\n/*namespace com.google.zxing {*/\n/**\n * MultiFormatReader is a convenience class and the main entry point into the library for most uses.\n * By default it attempts to decode all barcode formats that the library supports. Optionally, you\n * can provide a hints object to request different behavior, for example only decoding QR codes.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatReader = /** @class */ (function () {\n function MultiFormatReader() {\n }\n /**\n * This version of decode honors the intent of Reader.decode(BinaryBitmap) in that it\n * passes null as a hint to the decoders. However, that makes it inefficient to call repeatedly.\n * Use setHints() followed by decodeWithState() for continuous scan applications.\n *\n * @param image The pixel data to decode\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n /*@Override*/\n // public decode(image: BinaryBitmap): Result {\n // setHints(null)\n // return decodeInternal(image)\n // }\n /**\n * Decode an image using the hints provided. Does not honor existing state.\n *\n * @param image The pixel data to decode\n * @param hints The hints to use, clearing the previous state.\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n /*@Override*/\n MultiFormatReader.prototype.decode = function (image, hints) {\n this.setHints(hints);\n return this.decodeInternal(image);\n };\n /**\n * Decode an image using the state set up by calling setHints() previously. Continuous scan\n * clients will get a large speed increase by using this instead of decode().\n *\n * @param image The pixel data to decode\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n MultiFormatReader.prototype.decodeWithState = function (image) {\n // Make sure to set up the default state so we don't crash\n if (this.readers === null || this.readers === undefined) {\n this.setHints(null);\n }\n return this.decodeInternal(image);\n };\n /**\n * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls\n * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This\n * is important for performance in continuous scan clients.\n *\n * @param hints The set of hints to use for subsequent calls to decode(image)\n */\n MultiFormatReader.prototype.setHints = function (hints) {\n this.hints = hints;\n var tryHarder = hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType.TRY_HARDER);\n /*@SuppressWarnings(\"unchecked\")*/\n var formats = hints === null || hints === undefined ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n var readers = new Array();\n if (formats !== null && formats !== undefined) {\n var addOneDReader = formats.some(function (f) {\n return f === BarcodeFormat.UPC_A ||\n f === BarcodeFormat.UPC_E ||\n f === BarcodeFormat.EAN_13 ||\n f === BarcodeFormat.EAN_8 ||\n f === BarcodeFormat.CODABAR ||\n f === BarcodeFormat.CODE_39 ||\n f === BarcodeFormat.CODE_93 ||\n f === BarcodeFormat.CODE_128 ||\n f === BarcodeFormat.ITF ||\n f === BarcodeFormat.RSS_14 ||\n f === BarcodeFormat.RSS_EXPANDED;\n });\n // Put 1D readers upfront in \"normal\" mode\n // TYPESCRIPTPORT: TODO: uncomment below as they are ported\n if (addOneDReader && !tryHarder) {\n readers.push(new MultiFormatOneDReader(hints));\n }\n if (formats.includes(BarcodeFormat.QR_CODE)) {\n readers.push(new QRCodeReader());\n }\n if (formats.includes(BarcodeFormat.DATA_MATRIX)) {\n readers.push(new DataMatrixReader());\n }\n if (formats.includes(BarcodeFormat.AZTEC)) {\n readers.push(new AztecReader());\n }\n if (formats.includes(BarcodeFormat.PDF_417)) {\n readers.push(new PDF417Reader());\n }\n // if (formats.includes(BarcodeFormat.MAXICODE)) {\n // readers.push(new MaxiCodeReader())\n // }\n // At end in \"try harder\" mode\n if (addOneDReader && tryHarder) {\n readers.push(new MultiFormatOneDReader(hints));\n }\n }\n if (readers.length === 0) {\n if (!tryHarder) {\n readers.push(new MultiFormatOneDReader(hints));\n }\n readers.push(new QRCodeReader());\n readers.push(new DataMatrixReader());\n readers.push(new AztecReader());\n readers.push(new PDF417Reader());\n // readers.push(new MaxiCodeReader())\n if (tryHarder) {\n readers.push(new MultiFormatOneDReader(hints));\n }\n }\n this.readers = readers; // .toArray(new Reader[readers.size()])\n };\n /*@Override*/\n MultiFormatReader.prototype.reset = function () {\n var e_1, _a;\n if (this.readers !== null) {\n try {\n for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var reader = _c.value;\n reader.reset();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n };\n /**\n * @throws NotFoundException\n */\n MultiFormatReader.prototype.decodeInternal = function (image) {\n var e_2, _a;\n if (this.readers === null) {\n throw new ReaderException('No readers where selected, nothing can be read.');\n }\n try {\n for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var reader = _c.value;\n // Trying to decode with ${reader} reader.\n try {\n return reader.decode(image, this.hints);\n }\n catch (ex) {\n if (ex instanceof ReaderException) {\n continue;\n }\n // Bad Exception.\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n throw new NotFoundException('No MultiFormat Readers were able to detect the code.');\n };\n return MultiFormatReader;\n}());\nexport default MultiFormatReader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport MultiFormatReader from '../core/MultiFormatReader';\nvar BrowserMultiFormatReader = /** @class */ (function (_super) {\n __extends(BrowserMultiFormatReader, _super);\n function BrowserMultiFormatReader(hints, timeBetweenScansMillis) {\n if (hints === void 0) { hints = null; }\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n var _this = this;\n var reader = new MultiFormatReader();\n reader.setHints(hints);\n _this = _super.call(this, reader, timeBetweenScansMillis) || this;\n return _this;\n }\n /**\n * Overwrite decodeBitmap to call decodeWithState, which will pay\n * attention to the hints set in the constructor function\n */\n BrowserMultiFormatReader.prototype.decodeBitmap = function (binaryBitmap) {\n return this.reader.decodeWithState(binaryBitmap);\n };\n return BrowserMultiFormatReader;\n}(BrowserCodeReader));\nexport { BrowserMultiFormatReader };\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * These are a set of hints that you may pass to Writers to specify their behavior.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar EncodeHintType;\n(function (EncodeHintType) {\n /**\n * Specifies what degree of error correction to use, for example in QR Codes.\n * Type depends on the encoder. For example for QR codes it's type\n * {@link com.google.zxing.qrcode.decoder.ErrorCorrectionLevel ErrorCorrectionLevel}.\n * For Aztec it is of type {@link Integer}, representing the minimal percentage of error correction words.\n * For PDF417 it is of type {@link Integer}, valid values being 0 to 8.\n * In all cases, it can also be a {@link String} representation of the desired value as well.\n * Note: an Aztec symbol should have a minimum of 25% EC words.\n */\n EncodeHintType[EncodeHintType[\"ERROR_CORRECTION\"] = 0] = \"ERROR_CORRECTION\";\n /**\n * Specifies what character encoding to use where applicable (type {@link String})\n */\n EncodeHintType[EncodeHintType[\"CHARACTER_SET\"] = 1] = \"CHARACTER_SET\";\n /**\n * Specifies the matrix shape for Data Matrix (type {@link com.google.zxing.datamatrix.encoder.SymbolShapeHint})\n */\n EncodeHintType[EncodeHintType[\"DATA_MATRIX_SHAPE\"] = 2] = \"DATA_MATRIX_SHAPE\";\n /**\n * Specifies whether to use compact mode for Data Matrix (type {@link Boolean}, or \"true\" or \"false\"\n * {@link String } value).\n * The compact encoding mode also supports the encoding of characters that are not in the ISO-8859-1\n * character set via ECIs.\n * Please note that in that case, the most compact character encoding is chosen for characters in\n * the input that are not in the ISO-8859-1 character set. Based on experience, some scanners do not\n * support encodings like cp-1256 (Arabic). In such cases the encoding can be forced to UTF-8 by\n * means of the {@link #CHARACTER_SET} encoding hint.\n * Compact encoding also provides GS1-FNC1 support when {@link #GS1_FORMAT} is selected. In this case\n * group-separator character (ASCII 29 decimal) can be used to encode the positions of FNC1 codewords\n * for the purpose of delimiting AIs.\n * This option and {@link #FORCE_C40} are mutually exclusive.\n */\n EncodeHintType[EncodeHintType[\"DATA_MATRIX_COMPACT\"] = 3] = \"DATA_MATRIX_COMPACT\";\n /**\n * Specifies a minimum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.\n *\n * @deprecated use width/height params in\n * {@link com.google.zxing.datamatrix.DataMatrixWriter#encode(String, BarcodeFormat, int, int)}\n */\n /*@Deprecated*/\n EncodeHintType[EncodeHintType[\"MIN_SIZE\"] = 4] = \"MIN_SIZE\";\n /**\n * Specifies a maximum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.\n *\n * @deprecated without replacement\n */\n /*@Deprecated*/\n EncodeHintType[EncodeHintType[\"MAX_SIZE\"] = 5] = \"MAX_SIZE\";\n /**\n * Specifies margin, in pixels, to use when generating the barcode. The meaning can vary\n * by format; for example it controls margin before and after the barcode horizontally for\n * most 1D formats. (Type {@link Integer}, or {@link String} representation of the integer value).\n */\n EncodeHintType[EncodeHintType[\"MARGIN\"] = 6] = \"MARGIN\";\n /**\n * Specifies whether to use compact mode for PDF417 (type {@link Boolean}, or \"true\" or \"false\"\n * {@link String} value).\n */\n EncodeHintType[EncodeHintType[\"PDF417_COMPACT\"] = 7] = \"PDF417_COMPACT\";\n /**\n * Specifies what compaction mode to use for PDF417 (type\n * {@link com.google.zxing.pdf417.encoder.Compaction Compaction} or {@link String} value of one of its\n * enum values).\n */\n EncodeHintType[EncodeHintType[\"PDF417_COMPACTION\"] = 8] = \"PDF417_COMPACTION\";\n /**\n * Specifies the minimum and maximum number of rows and columns for PDF417 (type\n * {@link com.google.zxing.pdf417.encoder.Dimensions Dimensions}).\n */\n EncodeHintType[EncodeHintType[\"PDF417_DIMENSIONS\"] = 9] = \"PDF417_DIMENSIONS\";\n /**\n * Specifies the required number of layers for an Aztec code.\n * A negative number (-1, -2, -3, -4) specifies a compact Aztec code.\n * 0 indicates to use the minimum number of layers (the default).\n * A positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code.\n * (Type {@link Integer}, or {@link String} representation of the integer value).\n */\n EncodeHintType[EncodeHintType[\"AZTEC_LAYERS\"] = 10] = \"AZTEC_LAYERS\";\n /**\n * Specifies the exact version of QR code to be encoded.\n * (Type {@link Integer}, or {@link String} representation of the integer value).\n */\n EncodeHintType[EncodeHintType[\"QR_VERSION\"] = 11] = \"QR_VERSION\";\n /**\n * Specifies whether the data should be encoded to the GS1 standard (type {@link Boolean}, or \"true\" or \"false\"\n * {@link String } value).\n */\n EncodeHintType[EncodeHintType[\"GS1_FORMAT\"] = 12] = \"GS1_FORMAT\";\n /**\n * Forces C40 encoding for data-matrix (type {@link Boolean}, or \"true\" or \"false\") {@link String } value). This\n * option and {@link #DATA_MATRIX_COMPACT} are mutually exclusive.\n */\n EncodeHintType[EncodeHintType[\"FORCE_C40\"] = 13] = \"FORCE_C40\";\n})(EncodeHintType || (EncodeHintType = {}));\nexport default EncodeHintType;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport PDF417Reader from '../core/pdf417/PDF417Reader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserPDF417Reader = /** @class */ (function (_super) {\n __extends(BrowserPDF417Reader, _super);\n /**\n * Creates an instance of BrowserPDF417Reader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n */\n function BrowserPDF417Reader(timeBetweenScansMillis) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new PDF417Reader(), timeBetweenScansMillis) || this;\n }\n return BrowserPDF417Reader;\n}(BrowserCodeReader));\nexport { BrowserPDF417Reader };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport QRCodeReader from '../core/qrcode/QRCodeReader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserQRCodeReader = /** @class */ (function (_super) {\n __extends(BrowserQRCodeReader, _super);\n /**\n * Creates an instance of BrowserQRCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n */\n function BrowserQRCodeReader(timeBetweenScansMillis) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new QRCodeReader(), timeBetweenScansMillis) || this;\n }\n return BrowserQRCodeReader;\n}(BrowserCodeReader));\nexport { BrowserQRCodeReader };\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport GenericGFPoly from './GenericGFPoly';\nimport System from '../../util/System';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n *

    Implements Reed-Solomon encoding, as the name implies.

    \n *\n * @author Sean Owen\n * @author William Rucklidge\n */\nvar ReedSolomonEncoder = /** @class */ (function () {\n /**\n * A reed solomon error-correcting encoding constructor is created by\n * passing as Galois Field with of size equal to the number of code\n * words (symbols) in the alphabet (the number of values in each\n * element of arrays that are encoded/decoded).\n * @param field A galois field with a number of elements equal to the size\n * of the alphabet of symbols to encode.\n */\n function ReedSolomonEncoder(field) {\n this.field = field;\n this.cachedGenerators = [];\n this.cachedGenerators.push(new GenericGFPoly(field, Int32Array.from([1])));\n }\n ReedSolomonEncoder.prototype.buildGenerator = function (degree /*int*/) {\n var cachedGenerators = this.cachedGenerators;\n if (degree >= cachedGenerators.length) {\n var lastGenerator = cachedGenerators[cachedGenerators.length - 1];\n var field = this.field;\n for (var d = cachedGenerators.length; d <= degree; d++) {\n var nextGenerator = lastGenerator.multiply(new GenericGFPoly(field, Int32Array.from([1, field.exp(d - 1 + field.getGeneratorBase())])));\n cachedGenerators.push(nextGenerator);\n lastGenerator = nextGenerator;\n }\n }\n return cachedGenerators[degree];\n };\n /**\n *

    Encode a sequence of code words (symbols) using Reed-Solomon to allow decoders\n * to detect and correct errors that may have been introduced when the resulting\n * data is stored or transmitted.

    \n *\n * @param toEncode array used for both and output. Caller initializes the array with\n * the code words (symbols) to be encoded followed by empty elements allocated to make\n * space for error-correction code words in the encoded output. The array contains\n * the encdoded output when encode returns. Code words are encoded as numbers from\n * 0 to n-1, where n is the number of possible code words (symbols), as determined\n * by the size of the Galois Field passed in the constructor of this object.\n * @param ecBytes the number of elements reserved in the array (first parameter)\n * to store error-correction code words. Thus, the number of code words (symbols)\n * to encode in the first parameter is thus toEncode.length - ecBytes.\n * Note, the use of \"bytes\" in the name of this parameter is misleading, as there may\n * be more or fewer than 256 symbols being encoded, as determined by the number of\n * elements in the Galois Field passed as a constructor to this object.\n * @throws IllegalArgumentException thrown in response to validation errros.\n */\n ReedSolomonEncoder.prototype.encode = function (toEncode, ecBytes /*int*/) {\n if (ecBytes === 0) {\n throw new IllegalArgumentException('No error correction bytes');\n }\n var dataBytes = toEncode.length - ecBytes;\n if (dataBytes <= 0) {\n throw new IllegalArgumentException('No data bytes provided');\n }\n var generator = this.buildGenerator(ecBytes);\n var infoCoefficients = new Int32Array(dataBytes);\n System.arraycopy(toEncode, 0, infoCoefficients, 0, dataBytes);\n var info = new GenericGFPoly(this.field, infoCoefficients);\n info = info.multiplyByMonomial(ecBytes, 1);\n var remainder = info.divide(generator)[1];\n var coefficients = remainder.getCoefficients();\n var numZeroCoefficients = ecBytes - coefficients.length;\n for (var i = 0; i < numZeroCoefficients; i++) {\n toEncode[dataBytes + i] = 0;\n }\n System.arraycopy(coefficients, 0, toEncode, dataBytes + numZeroCoefficients, coefficients.length);\n };\n return ReedSolomonEncoder;\n}());\nexport default ReedSolomonEncoder;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * @author Satoru Takabayashi\n * @author Daniel Switkin\n * @author Sean Owen\n */\nvar MaskUtil = /** @class */ (function () {\n function MaskUtil() {\n // do nothing\n }\n /**\n * Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and\n * give penalty to them. Example: 00000 or 11111.\n */\n MaskUtil.applyMaskPenaltyRule1 = function (matrix) {\n return MaskUtil.applyMaskPenaltyRule1Internal(matrix, true) + MaskUtil.applyMaskPenaltyRule1Internal(matrix, false);\n };\n /**\n * Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give\n * penalty to them. This is actually equivalent to the spec's rule, which is to find MxN blocks and give a\n * penalty proportional to (M-1)x(N-1), because this is the number of 2x2 blocks inside such a block.\n */\n MaskUtil.applyMaskPenaltyRule2 = function (matrix) {\n var penalty = 0;\n var array = matrix.getArray();\n var width = matrix.getWidth();\n var height = matrix.getHeight();\n for (var y = 0; y < height - 1; y++) {\n var arrayY = array[y];\n for (var x = 0; x < width - 1; x++) {\n var value = arrayY[x];\n if (value === arrayY[x + 1] && value === array[y + 1][x] && value === array[y + 1][x + 1]) {\n penalty++;\n }\n }\n }\n return MaskUtil.N2 * penalty;\n };\n /**\n * Apply mask penalty rule 3 and return the penalty. Find consecutive runs of 1:1:3:1:1:4\n * starting with black, or 4:1:1:3:1:1 starting with white, and give penalty to them. If we\n * find patterns like 000010111010000, we give penalty once.\n */\n MaskUtil.applyMaskPenaltyRule3 = function (matrix) {\n var numPenalties = 0;\n var array = matrix.getArray();\n var width = matrix.getWidth();\n var height = matrix.getHeight();\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var arrayY = array[y]; // We can at least optimize this access\n if (x + 6 < width &&\n arrayY[x] === 1 &&\n arrayY[x + 1] === 0 &&\n arrayY[x + 2] === 1 &&\n arrayY[x + 3] === 1 &&\n arrayY[x + 4] === 1 &&\n arrayY[x + 5] === 0 &&\n arrayY[x + 6] === 1 &&\n (MaskUtil.isWhiteHorizontal(arrayY, x - 4, x) || MaskUtil.isWhiteHorizontal(arrayY, x + 7, x + 11))) {\n numPenalties++;\n }\n if (y + 6 < height &&\n array[y][x] === 1 &&\n array[y + 1][x] === 0 &&\n array[y + 2][x] === 1 &&\n array[y + 3][x] === 1 &&\n array[y + 4][x] === 1 &&\n array[y + 5][x] === 0 &&\n array[y + 6][x] === 1 &&\n (MaskUtil.isWhiteVertical(array, x, y - 4, y) || MaskUtil.isWhiteVertical(array, x, y + 7, y + 11))) {\n numPenalties++;\n }\n }\n }\n return numPenalties * MaskUtil.N3;\n };\n MaskUtil.isWhiteHorizontal = function (rowArray, from /*int*/, to /*int*/) {\n from = Math.max(from, 0);\n to = Math.min(to, rowArray.length);\n for (var i = from; i < to; i++) {\n if (rowArray[i] === 1) {\n return false;\n }\n }\n return true;\n };\n MaskUtil.isWhiteVertical = function (array, col /*int*/, from /*int*/, to /*int*/) {\n from = Math.max(from, 0);\n to = Math.min(to, array.length);\n for (var i = from; i < to; i++) {\n if (array[i][col] === 1) {\n return false;\n }\n }\n return true;\n };\n /**\n * Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give\n * penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance.\n */\n MaskUtil.applyMaskPenaltyRule4 = function (matrix) {\n var numDarkCells = 0;\n var array = matrix.getArray();\n var width = matrix.getWidth();\n var height = matrix.getHeight();\n for (var y = 0; y < height; y++) {\n var arrayY = array[y];\n for (var x = 0; x < width; x++) {\n if (arrayY[x] === 1) {\n numDarkCells++;\n }\n }\n }\n var numTotalCells = matrix.getHeight() * matrix.getWidth();\n var fivePercentVariances = Math.floor(Math.abs(numDarkCells * 2 - numTotalCells) * 10 / numTotalCells);\n return fivePercentVariances * MaskUtil.N4;\n };\n /**\n * Return the mask bit for \"getMaskPattern\" at \"x\" and \"y\". See 8.8 of JISX0510:2004 for mask\n * pattern conditions.\n */\n MaskUtil.getDataMaskBit = function (maskPattern /*int*/, x /*int*/, y /*int*/) {\n var intermediate; /*int*/\n var temp; /*int*/\n switch (maskPattern) {\n case 0:\n intermediate = (y + x) & 0x1;\n break;\n case 1:\n intermediate = y & 0x1;\n break;\n case 2:\n intermediate = x % 3;\n break;\n case 3:\n intermediate = (y + x) % 3;\n break;\n case 4:\n intermediate = (Math.floor(y / 2) + Math.floor(x / 3)) & 0x1;\n break;\n case 5:\n temp = y * x;\n intermediate = (temp & 0x1) + (temp % 3);\n break;\n case 6:\n temp = y * x;\n intermediate = ((temp & 0x1) + (temp % 3)) & 0x1;\n break;\n case 7:\n temp = y * x;\n intermediate = ((temp % 3) + ((y + x) & 0x1)) & 0x1;\n break;\n default:\n throw new IllegalArgumentException('Invalid mask pattern: ' + maskPattern);\n }\n return intermediate === 0;\n };\n /**\n * Helper function for applyMaskPenaltyRule1. We need this for doing this calculation in both\n * vertical and horizontal orders respectively.\n */\n MaskUtil.applyMaskPenaltyRule1Internal = function (matrix, isHorizontal) {\n var penalty = 0;\n var iLimit = isHorizontal ? matrix.getHeight() : matrix.getWidth();\n var jLimit = isHorizontal ? matrix.getWidth() : matrix.getHeight();\n var array = matrix.getArray();\n for (var i = 0; i < iLimit; i++) {\n var numSameBitCells = 0;\n var prevBit = -1;\n for (var j = 0; j < jLimit; j++) {\n var bit = isHorizontal ? array[i][j] : array[j][i];\n if (bit === prevBit) {\n numSameBitCells++;\n }\n else {\n if (numSameBitCells >= 5) {\n penalty += MaskUtil.N1 + (numSameBitCells - 5);\n }\n numSameBitCells = 1; // Include the cell itself.\n prevBit = bit;\n }\n }\n if (numSameBitCells >= 5) {\n penalty += MaskUtil.N1 + (numSameBitCells - 5);\n }\n }\n return penalty;\n };\n // Penalty weights from section 6.8.2.1\n MaskUtil.N1 = 3;\n MaskUtil.N2 = 3;\n MaskUtil.N3 = 40;\n MaskUtil.N4 = 10;\n return MaskUtil;\n}());\nexport default MaskUtil;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.encoder {*/\n/*import java.util.Arrays;*/\nimport Arrays from '../../util/Arrays';\nimport StringBuilder from '../../util/StringBuilder';\n/**\n * JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned\n * -1, 0, and 1, I'm going to use less memory and go with bytes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar ByteMatrix = /** @class */ (function () {\n function ByteMatrix(width /*int*/, height /*int*/) {\n this.width = width;\n this.height = height;\n var bytes = new Array(height); // [height][width]\n for (var i = 0; i !== height; i++) {\n bytes[i] = new Uint8Array(width);\n }\n this.bytes = bytes;\n }\n ByteMatrix.prototype.getHeight = function () {\n return this.height;\n };\n ByteMatrix.prototype.getWidth = function () {\n return this.width;\n };\n ByteMatrix.prototype.get = function (x /*int*/, y /*int*/) {\n return this.bytes[y][x];\n };\n /**\n * @return an internal representation as bytes, in row-major order. array[y][x] represents point (x,y)\n */\n ByteMatrix.prototype.getArray = function () {\n return this.bytes;\n };\n // TYPESCRIPTPORT: preffer to let two methods instead of override to avoid type comparison inside\n ByteMatrix.prototype.setNumber = function (x /*int*/, y /*int*/, value /*byte|int*/) {\n this.bytes[y][x] = value;\n };\n // public set(x: number /*int*/, y: number /*int*/, value: number /*int*/): void {\n // bytes[y][x] = (byte) value\n // }\n ByteMatrix.prototype.setBoolean = function (x /*int*/, y /*int*/, value) {\n this.bytes[y][x] = /*(byte) */ (value ? 1 : 0);\n };\n ByteMatrix.prototype.clear = function (value /*byte*/) {\n var e_1, _a;\n try {\n for (var _b = __values(this.bytes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var aByte = _c.value;\n Arrays.fill(aByte, value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n ByteMatrix.prototype.equals = function (o) {\n if (!(o instanceof ByteMatrix)) {\n return false;\n }\n var other = o;\n if (this.width !== other.width) {\n return false;\n }\n if (this.height !== other.height) {\n return false;\n }\n for (var y = 0, height = this.height; y < height; ++y) {\n var bytesY = this.bytes[y];\n var otherBytesY = other.bytes[y];\n for (var x = 0, width = this.width; x < width; ++x) {\n if (bytesY[x] !== otherBytesY[x]) {\n return false;\n }\n }\n }\n return true;\n };\n /*@Override*/\n ByteMatrix.prototype.toString = function () {\n var result = new StringBuilder(); // (2 * width * height + 2)\n for (var y = 0, height = this.height; y < height; ++y) {\n var bytesY = this.bytes[y];\n for (var x = 0, width = this.width; x < width; ++x) {\n switch (bytesY[x]) {\n case 0:\n result.append(' 0');\n break;\n case 1:\n result.append(' 1');\n break;\n default:\n result.append(' ');\n break;\n }\n }\n result.append('\\n');\n }\n return result.toString();\n };\n return ByteMatrix;\n}());\nexport default ByteMatrix;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport StringBuilder from '../../util/StringBuilder';\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar QRCode = /** @class */ (function () {\n function QRCode() {\n this.maskPattern = -1;\n }\n QRCode.prototype.getMode = function () {\n return this.mode;\n };\n QRCode.prototype.getECLevel = function () {\n return this.ecLevel;\n };\n QRCode.prototype.getVersion = function () {\n return this.version;\n };\n QRCode.prototype.getMaskPattern = function () {\n return this.maskPattern;\n };\n QRCode.prototype.getMatrix = function () {\n return this.matrix;\n };\n /*@Override*/\n QRCode.prototype.toString = function () {\n var result = new StringBuilder(); // (200)\n result.append('<<\\n');\n result.append(' mode: ');\n result.append(this.mode ? this.mode.toString() : 'null');\n result.append('\\n ecLevel: ');\n result.append(this.ecLevel ? this.ecLevel.toString() : 'null');\n result.append('\\n version: ');\n result.append(this.version ? this.version.toString() : 'null');\n result.append('\\n maskPattern: ');\n result.append(this.maskPattern.toString());\n if (this.matrix) {\n result.append('\\n matrix:\\n');\n result.append(this.matrix.toString());\n }\n else {\n result.append('\\n matrix: null\\n');\n }\n result.append('>>\\n');\n return result.toString();\n };\n QRCode.prototype.setMode = function (value) {\n this.mode = value;\n };\n QRCode.prototype.setECLevel = function (value) {\n this.ecLevel = value;\n };\n QRCode.prototype.setVersion = function (version) {\n this.version = version;\n };\n QRCode.prototype.setMaskPattern = function (value /*int*/) {\n this.maskPattern = value;\n };\n QRCode.prototype.setMatrix = function (value) {\n this.matrix = value;\n };\n // Check if \"mask_pattern\" is valid.\n QRCode.isValidMaskPattern = function (maskPattern /*int*/) {\n return maskPattern >= 0 && maskPattern < QRCode.NUM_MASK_PATTERNS;\n };\n QRCode.NUM_MASK_PATTERNS = 8;\n return QRCode;\n}());\nexport default QRCode;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar WriterException = /** @class */ (function (_super) {\n __extends(WriterException, _super);\n function WriterException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WriterException.kind = 'WriterException';\n return WriterException;\n}(Exception));\nexport default WriterException;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.encoder {*/\nimport BitArray from '../../common/BitArray';\nimport Integer from '../../util/Integer';\nimport QRCode from './QRCode';\nimport MaskUtil from './MaskUtil';\nimport WriterException from '../../WriterException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar MatrixUtil = /** @class */ (function () {\n function MatrixUtil() {\n // do nothing\n }\n // Set all cells to -1 (TYPESCRIPTPORT: 255). -1 (TYPESCRIPTPORT: 255) means that the cell is empty (not set yet).\n //\n // JAVAPORT: We shouldn't need to do this at all. The code should be rewritten to begin encoding\n // with the ByteMatrix initialized all to zero.\n MatrixUtil.clearMatrix = function (matrix) {\n // TYPESCRIPTPORT: we use UintArray se changed here from -1 to 255\n matrix.clear(/*(byte) */ /*-1*/ 255);\n };\n // Build 2D matrix of QR Code from \"dataBits\" with \"ecLevel\", \"version\" and \"getMaskPattern\". On\n // success, store the result in \"matrix\" and return true.\n MatrixUtil.buildMatrix = function (dataBits, ecLevel, version, maskPattern /*int*/, matrix) {\n MatrixUtil.clearMatrix(matrix);\n MatrixUtil.embedBasicPatterns(version, matrix);\n // Type information appear with any version.\n MatrixUtil.embedTypeInfo(ecLevel, maskPattern, matrix);\n // Version info appear if version >= 7.\n MatrixUtil.maybeEmbedVersionInfo(version, matrix);\n // Data should be embedded at end.\n MatrixUtil.embedDataBits(dataBits, maskPattern, matrix);\n };\n // Embed basic patterns. On success, modify the matrix and return true.\n // The basic patterns are:\n // - Position detection patterns\n // - Timing patterns\n // - Dark dot at the left bottom corner\n // - Position adjustment patterns, if need be\n MatrixUtil.embedBasicPatterns = function (version, matrix) {\n // Let's get started with embedding big squares at corners.\n MatrixUtil.embedPositionDetectionPatternsAndSeparators(matrix);\n // Then, embed the dark dot at the left bottom corner.\n MatrixUtil.embedDarkDotAtLeftBottomCorner(matrix);\n // Position adjustment patterns appear if version >= 2.\n MatrixUtil.maybeEmbedPositionAdjustmentPatterns(version, matrix);\n // Timing patterns should be embedded after position adj. patterns.\n MatrixUtil.embedTimingPatterns(matrix);\n };\n // Embed type information. On success, modify the matrix.\n MatrixUtil.embedTypeInfo = function (ecLevel, maskPattern /*int*/, matrix) {\n var typeInfoBits = new BitArray();\n MatrixUtil.makeTypeInfoBits(ecLevel, maskPattern, typeInfoBits);\n for (var i = 0, size = typeInfoBits.getSize(); i < size; ++i) {\n // Place bits in LSB to MSB order. LSB (least significant bit) is the last value in\n // \"typeInfoBits\".\n var bit = typeInfoBits.get(typeInfoBits.getSize() - 1 - i);\n // Type info bits at the left top corner. See 8.9 of JISX0510:2004 (p.46).\n var coordinates = MatrixUtil.TYPE_INFO_COORDINATES[i];\n var x1 = coordinates[0];\n var y1 = coordinates[1];\n matrix.setBoolean(x1, y1, bit);\n if (i < 8) {\n // Right top corner.\n var x2 = matrix.getWidth() - i - 1;\n var y2 = 8;\n matrix.setBoolean(x2, y2, bit);\n }\n else {\n // Left bottom corner.\n var x2 = 8;\n var y2 = matrix.getHeight() - 7 + (i - 8);\n matrix.setBoolean(x2, y2, bit);\n }\n }\n };\n // Embed version information if need be. On success, modify the matrix and return true.\n // See 8.10 of JISX0510:2004 (p.47) for how to embed version information.\n MatrixUtil.maybeEmbedVersionInfo = function (version, matrix) {\n if (version.getVersionNumber() < 7) { // Version info is necessary if version >= 7.\n return; // Don't need version info.\n }\n var versionInfoBits = new BitArray();\n MatrixUtil.makeVersionInfoBits(version, versionInfoBits);\n var bitIndex = 6 * 3 - 1; // It will decrease from 17 to 0.\n for (var i = 0; i < 6; ++i) {\n for (var j = 0; j < 3; ++j) {\n // Place bits in LSB (least significant bit) to MSB order.\n var bit = versionInfoBits.get(bitIndex);\n bitIndex--;\n // Left bottom corner.\n matrix.setBoolean(i, matrix.getHeight() - 11 + j, bit);\n // Right bottom corner.\n matrix.setBoolean(matrix.getHeight() - 11 + j, i, bit);\n }\n }\n };\n // Embed \"dataBits\" using \"getMaskPattern\". On success, modify the matrix and return true.\n // For debugging purposes, it skips masking process if \"getMaskPattern\" is -1(TYPESCRIPTPORT: 255).\n // See 8.7 of JISX0510:2004 (p.38) for how to embed data bits.\n MatrixUtil.embedDataBits = function (dataBits, maskPattern /*int*/, matrix) {\n var bitIndex = 0;\n var direction = -1;\n // Start from the right bottom cell.\n var x = matrix.getWidth() - 1;\n var y = matrix.getHeight() - 1;\n while (x > 0) {\n // Skip the vertical timing pattern.\n if (x === 6) {\n x -= 1;\n }\n while (y >= 0 && y < matrix.getHeight()) {\n for (var i = 0; i < 2; ++i) {\n var xx = x - i;\n // Skip the cell if it's not empty.\n if (!MatrixUtil.isEmpty(matrix.get(xx, y))) {\n continue;\n }\n var bit = void 0;\n if (bitIndex < dataBits.getSize()) {\n bit = dataBits.get(bitIndex);\n ++bitIndex;\n }\n else {\n // Padding bit. If there is no bit left, we'll fill the left cells with 0, as described\n // in 8.4.9 of JISX0510:2004 (p. 24).\n bit = false;\n }\n // Skip masking if mask_pattern is -1 (TYPESCRIPTPORT: 255).\n if (maskPattern !== 255 && MaskUtil.getDataMaskBit(maskPattern, xx, y)) {\n bit = !bit;\n }\n matrix.setBoolean(xx, y, bit);\n }\n y += direction;\n }\n direction = -direction; // Reverse the direction.\n y += direction;\n x -= 2; // Move to the left.\n }\n // All bits should be consumed.\n if (bitIndex !== dataBits.getSize()) {\n throw new WriterException('Not all bits consumed: ' + bitIndex + '/' + dataBits.getSize());\n }\n };\n // Return the position of the most significant bit set (one: to) in the \"value\". The most\n // significant bit is position 32. If there is no bit set, return 0. Examples:\n // - findMSBSet(0) => 0\n // - findMSBSet(1) => 1\n // - findMSBSet(255) => 8\n MatrixUtil.findMSBSet = function (value /*int*/) {\n return 32 - Integer.numberOfLeadingZeros(value);\n };\n // Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for \"value\" using polynomial \"poly\". The BCH\n // code is used for encoding type information and version information.\n // Example: Calculation of version information of 7.\n // f(x) is created from 7.\n // - 7 = 000111 in 6 bits\n // - f(x) = x^2 + x^1 + x^0\n // g(x) is given by the standard (p. 67)\n // - g(x) = x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1\n // Multiply f(x) by x^(18 - 6)\n // - f'(x) = f(x) * x^(18 - 6)\n // - f'(x) = x^14 + x^13 + x^12\n // Calculate the remainder of f'(x) / g(x)\n // x^2\n // __________________________________________________\n // g(x) )x^14 + x^13 + x^12\n // x^14 + x^13 + x^12 + x^11 + x^10 + x^7 + x^4 + x^2\n // --------------------------------------------------\n // x^11 + x^10 + x^7 + x^4 + x^2\n //\n // The remainder is x^11 + x^10 + x^7 + x^4 + x^2\n // Encode it in binary: 110010010100\n // The return value is 0xc94 (1100 1001 0100)\n //\n // Since all coefficients in the polynomials are 1 or 0, we can do the calculation by bit\n // operations. We don't care if coefficients are positive or negative.\n MatrixUtil.calculateBCHCode = function (value /*int*/, poly /*int*/) {\n if (poly === 0) {\n throw new IllegalArgumentException('0 polynomial');\n }\n // If poly is \"1 1111 0010 0101\" (version info poly), msbSetInPoly is 13. We'll subtract 1\n // from 13 to make it 12.\n var msbSetInPoly = MatrixUtil.findMSBSet(poly);\n value <<= msbSetInPoly - 1;\n // Do the division business using exclusive-or operations.\n while (MatrixUtil.findMSBSet(value) >= msbSetInPoly) {\n value ^= poly << (MatrixUtil.findMSBSet(value) - msbSetInPoly);\n }\n // Now the \"value\" is the remainder (i.e. the BCH code)\n return value;\n };\n // Make bit vector of type information. On success, store the result in \"bits\" and return true.\n // Encode error correction level and mask pattern. See 8.9 of\n // JISX0510:2004 (p.45) for details.\n MatrixUtil.makeTypeInfoBits = function (ecLevel, maskPattern /*int*/, bits) {\n if (!QRCode.isValidMaskPattern(maskPattern)) {\n throw new WriterException('Invalid mask pattern');\n }\n var typeInfo = (ecLevel.getBits() << 3) | maskPattern;\n bits.appendBits(typeInfo, 5);\n var bchCode = MatrixUtil.calculateBCHCode(typeInfo, MatrixUtil.TYPE_INFO_POLY);\n bits.appendBits(bchCode, 10);\n var maskBits = new BitArray();\n maskBits.appendBits(MatrixUtil.TYPE_INFO_MASK_PATTERN, 15);\n bits.xor(maskBits);\n if (bits.getSize() !== 15) { // Just in case.\n throw new WriterException('should not happen but we got: ' + bits.getSize());\n }\n };\n // Make bit vector of version information. On success, store the result in \"bits\" and return true.\n // See 8.10 of JISX0510:2004 (p.45) for details.\n MatrixUtil.makeVersionInfoBits = function (version, bits) {\n bits.appendBits(version.getVersionNumber(), 6);\n var bchCode = MatrixUtil.calculateBCHCode(version.getVersionNumber(), MatrixUtil.VERSION_INFO_POLY);\n bits.appendBits(bchCode, 12);\n if (bits.getSize() !== 18) { // Just in case.\n throw new WriterException('should not happen but we got: ' + bits.getSize());\n }\n };\n // Check if \"value\" is empty.\n MatrixUtil.isEmpty = function (value /*int*/) {\n return value === 255; // -1\n };\n MatrixUtil.embedTimingPatterns = function (matrix) {\n // -8 is for skipping position detection patterns (7: size), and two horizontal/vertical\n // separation patterns (1: size). Thus, 8 = 7 + 1.\n for (var i = 8; i < matrix.getWidth() - 8; ++i) {\n var bit = (i + 1) % 2;\n // Horizontal line.\n if (MatrixUtil.isEmpty(matrix.get(i, 6))) {\n matrix.setNumber(i, 6, bit);\n }\n // Vertical line.\n if (MatrixUtil.isEmpty(matrix.get(6, i))) {\n matrix.setNumber(6, i, bit);\n }\n }\n };\n // Embed the lonely dark dot at left bottom corner. JISX0510:2004 (p.46)\n MatrixUtil.embedDarkDotAtLeftBottomCorner = function (matrix) {\n if (matrix.get(8, matrix.getHeight() - 8) === 0) {\n throw new WriterException();\n }\n matrix.setNumber(8, matrix.getHeight() - 8, 1);\n };\n MatrixUtil.embedHorizontalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var x = 0; x < 8; ++x) {\n if (!MatrixUtil.isEmpty(matrix.get(xStart + x, yStart))) {\n throw new WriterException();\n }\n matrix.setNumber(xStart + x, yStart, 0);\n }\n };\n MatrixUtil.embedVerticalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 7; ++y) {\n if (!MatrixUtil.isEmpty(matrix.get(xStart, yStart + y))) {\n throw new WriterException();\n }\n matrix.setNumber(xStart, yStart + y, 0);\n }\n };\n MatrixUtil.embedPositionAdjustmentPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 5; ++y) {\n var patternY = MatrixUtil.POSITION_ADJUSTMENT_PATTERN[y];\n for (var x = 0; x < 5; ++x) {\n matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n }\n }\n };\n MatrixUtil.embedPositionDetectionPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 7; ++y) {\n var patternY = MatrixUtil.POSITION_DETECTION_PATTERN[y];\n for (var x = 0; x < 7; ++x) {\n matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n }\n }\n };\n // Embed position detection patterns and surrounding vertical/horizontal separators.\n MatrixUtil.embedPositionDetectionPatternsAndSeparators = function (matrix) {\n // Embed three big squares at corners.\n var pdpWidth = MatrixUtil.POSITION_DETECTION_PATTERN[0].length;\n // Left top corner.\n MatrixUtil.embedPositionDetectionPattern(0, 0, matrix);\n // Right top corner.\n MatrixUtil.embedPositionDetectionPattern(matrix.getWidth() - pdpWidth, 0, matrix);\n // Left bottom corner.\n MatrixUtil.embedPositionDetectionPattern(0, matrix.getWidth() - pdpWidth, matrix);\n // Embed horizontal separation patterns around the squares.\n var hspWidth = 8;\n // Left top corner.\n MatrixUtil.embedHorizontalSeparationPattern(0, hspWidth - 1, matrix);\n // Right top corner.\n MatrixUtil.embedHorizontalSeparationPattern(matrix.getWidth() - hspWidth, hspWidth - 1, matrix);\n // Left bottom corner.\n MatrixUtil.embedHorizontalSeparationPattern(0, matrix.getWidth() - hspWidth, matrix);\n // Embed vertical separation patterns around the squares.\n var vspSize = 7;\n // Left top corner.\n MatrixUtil.embedVerticalSeparationPattern(vspSize, 0, matrix);\n // Right top corner.\n MatrixUtil.embedVerticalSeparationPattern(matrix.getHeight() - vspSize - 1, 0, matrix);\n // Left bottom corner.\n MatrixUtil.embedVerticalSeparationPattern(vspSize, matrix.getHeight() - vspSize, matrix);\n };\n // Embed position adjustment patterns if need be.\n MatrixUtil.maybeEmbedPositionAdjustmentPatterns = function (version, matrix) {\n if (version.getVersionNumber() < 2) { // The patterns appear if version >= 2\n return;\n }\n var index = version.getVersionNumber() - 1;\n var coordinates = MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index];\n for (var i = 0, length_1 = coordinates.length; i !== length_1; i++) {\n var y = coordinates[i];\n if (y >= 0) {\n for (var j = 0; j !== length_1; j++) {\n var x = coordinates[j];\n if (x >= 0 && MatrixUtil.isEmpty(matrix.get(x, y))) {\n // If the cell is unset, we embed the position adjustment pattern here.\n // -2 is necessary since the x/y coordinates point to the center of the pattern, not the\n // left top corner.\n MatrixUtil.embedPositionAdjustmentPattern(x - 2, y - 2, matrix);\n }\n }\n }\n }\n };\n MatrixUtil.POSITION_DETECTION_PATTERN = Array.from([\n Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n ]);\n MatrixUtil.POSITION_ADJUSTMENT_PATTERN = Array.from([\n Int32Array.from([1, 1, 1, 1, 1]),\n Int32Array.from([1, 0, 0, 0, 1]),\n Int32Array.from([1, 0, 1, 0, 1]),\n Int32Array.from([1, 0, 0, 0, 1]),\n Int32Array.from([1, 1, 1, 1, 1]),\n ]);\n // From Appendix E. Table 1, JIS0510X:2004 (71: p). The table was double-checked by komatsu.\n MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE = Array.from([\n Int32Array.from([-1, -1, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 18, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 22, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 26, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 30, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 34, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 22, 38, -1, -1, -1, -1]),\n Int32Array.from([6, 24, 42, -1, -1, -1, -1]),\n Int32Array.from([6, 26, 46, -1, -1, -1, -1]),\n Int32Array.from([6, 28, 50, -1, -1, -1, -1]),\n Int32Array.from([6, 30, 54, -1, -1, -1, -1]),\n Int32Array.from([6, 32, 58, -1, -1, -1, -1]),\n Int32Array.from([6, 34, 62, -1, -1, -1, -1]),\n Int32Array.from([6, 26, 46, 66, -1, -1, -1]),\n Int32Array.from([6, 26, 48, 70, -1, -1, -1]),\n Int32Array.from([6, 26, 50, 74, -1, -1, -1]),\n Int32Array.from([6, 30, 54, 78, -1, -1, -1]),\n Int32Array.from([6, 30, 56, 82, -1, -1, -1]),\n Int32Array.from([6, 30, 58, 86, -1, -1, -1]),\n Int32Array.from([6, 34, 62, 90, -1, -1, -1]),\n Int32Array.from([6, 28, 50, 72, 94, -1, -1]),\n Int32Array.from([6, 26, 50, 74, 98, -1, -1]),\n Int32Array.from([6, 30, 54, 78, 102, -1, -1]),\n Int32Array.from([6, 28, 54, 80, 106, -1, -1]),\n Int32Array.from([6, 32, 58, 84, 110, -1, -1]),\n Int32Array.from([6, 30, 58, 86, 114, -1, -1]),\n Int32Array.from([6, 34, 62, 90, 118, -1, -1]),\n Int32Array.from([6, 26, 50, 74, 98, 122, -1]),\n Int32Array.from([6, 30, 54, 78, 102, 126, -1]),\n Int32Array.from([6, 26, 52, 78, 104, 130, -1]),\n Int32Array.from([6, 30, 56, 82, 108, 134, -1]),\n Int32Array.from([6, 34, 60, 86, 112, 138, -1]),\n Int32Array.from([6, 30, 58, 86, 114, 142, -1]),\n Int32Array.from([6, 34, 62, 90, 118, 146, -1]),\n Int32Array.from([6, 30, 54, 78, 102, 126, 150]),\n Int32Array.from([6, 24, 50, 76, 102, 128, 154]),\n Int32Array.from([6, 28, 54, 80, 106, 132, 158]),\n Int32Array.from([6, 32, 58, 84, 110, 136, 162]),\n Int32Array.from([6, 26, 54, 82, 110, 138, 166]),\n Int32Array.from([6, 30, 58, 86, 114, 142, 170]),\n ]);\n // Type info cells at the left top corner.\n MatrixUtil.TYPE_INFO_COORDINATES = Array.from([\n Int32Array.from([8, 0]),\n Int32Array.from([8, 1]),\n Int32Array.from([8, 2]),\n Int32Array.from([8, 3]),\n Int32Array.from([8, 4]),\n Int32Array.from([8, 5]),\n Int32Array.from([8, 7]),\n Int32Array.from([8, 8]),\n Int32Array.from([7, 8]),\n Int32Array.from([5, 8]),\n Int32Array.from([4, 8]),\n Int32Array.from([3, 8]),\n Int32Array.from([2, 8]),\n Int32Array.from([1, 8]),\n Int32Array.from([0, 8]),\n ]);\n // From Appendix D in JISX0510:2004 (p. 67)\n MatrixUtil.VERSION_INFO_POLY = 0x1f25; // 1 1111 0010 0101\n // From Appendix C in JISX0510:2004 (p.65).\n MatrixUtil.TYPE_INFO_POLY = 0x537;\n MatrixUtil.TYPE_INFO_MASK_PATTERN = 0x5412;\n return MatrixUtil;\n}());\nexport default MatrixUtil;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar BlockPair = /** @class */ (function () {\n function BlockPair(dataBytes, errorCorrectionBytes) {\n this.dataBytes = dataBytes;\n this.errorCorrectionBytes = errorCorrectionBytes;\n }\n BlockPair.prototype.getDataBytes = function () {\n return this.dataBytes;\n };\n BlockPair.prototype.getErrorCorrectionBytes = function () {\n return this.errorCorrectionBytes;\n };\n return BlockPair;\n}());\nexport default BlockPair;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.encoder {*/\nimport EncodeHintType from '../../EncodeHintType';\nimport BitArray from '../../common/BitArray';\nimport CharacterSetECI from '../../common/CharacterSetECI';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonEncoder from '../../common/reedsolomon/ReedSolomonEncoder';\nimport Mode from '../decoder/Mode';\nimport Version from '../decoder/Version';\nimport MaskUtil from './MaskUtil';\nimport ByteMatrix from './ByteMatrix';\nimport QRCode from './QRCode';\nimport MatrixUtil from './MatrixUtil';\nimport StringEncoding from '../../util/StringEncoding';\nimport BlockPair from './BlockPair';\nimport WriterException from '../../WriterException';\n/*import java.io.UnsupportedEncodingException;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collection;*/\n/*import java.util.Map;*/\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar Encoder = /** @class */ (function () {\n // TYPESCRIPTPORT: changed to UTF8, the default for js\n function Encoder() {\n }\n // The mask penalty calculation is complicated. See Table 21 of JISX0510:2004 (p.45) for details.\n // Basically it applies four rules and summate all penalties.\n Encoder.calculateMaskPenalty = function (matrix) {\n return MaskUtil.applyMaskPenaltyRule1(matrix)\n + MaskUtil.applyMaskPenaltyRule2(matrix)\n + MaskUtil.applyMaskPenaltyRule3(matrix)\n + MaskUtil.applyMaskPenaltyRule4(matrix);\n };\n /**\n * @param content text to encode\n * @param ecLevel error correction level to use\n * @return {@link QRCode} representing the encoded QR code\n * @throws WriterException if encoding can't succeed, because of for example invalid content\n * or configuration\n */\n // public static encode(content: string, ecLevel: ErrorCorrectionLevel): QRCode /*throws WriterException*/ {\n // return encode(content, ecLevel, null)\n // }\n Encoder.encode = function (content, ecLevel, hints) {\n if (hints === void 0) { hints = null; }\n // Determine what character encoding has been specified by the caller, if any\n var encoding = Encoder.DEFAULT_BYTE_MODE_ENCODING;\n var hasEncodingHint = hints !== null && undefined !== hints.get(EncodeHintType.CHARACTER_SET);\n if (hasEncodingHint) {\n encoding = hints.get(EncodeHintType.CHARACTER_SET).toString();\n }\n // Pick an encoding mode appropriate for the content. Note that this will not attempt to use\n // multiple modes / segments even if that were more efficient. Twould be nice.\n var mode = this.chooseMode(content, encoding);\n // This will store the header information, like mode and\n // length, as well as \"header\" segments like an ECI segment.\n var headerBits = new BitArray();\n // Append ECI segment if applicable\n if (mode === Mode.BYTE && (hasEncodingHint || Encoder.DEFAULT_BYTE_MODE_ENCODING !== encoding)) {\n var eci = CharacterSetECI.getCharacterSetECIByName(encoding);\n if (eci !== undefined) {\n this.appendECI(eci, headerBits);\n }\n }\n // (With ECI in place,) Write the mode marker\n this.appendModeInfo(mode, headerBits);\n // Collect data within the main segment, separately, to count its size if needed. Don't add it to\n // main payload yet.\n var dataBits = new BitArray();\n this.appendBytes(content, mode, dataBits, encoding);\n var version;\n if (hints !== null && undefined !== hints.get(EncodeHintType.QR_VERSION)) {\n var versionNumber = Number.parseInt(hints.get(EncodeHintType.QR_VERSION).toString(), 10);\n version = Version.getVersionForNumber(versionNumber);\n var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, version);\n if (!this.willFit(bitsNeeded, version, ecLevel)) {\n throw new WriterException('Data too big for requested version');\n }\n }\n else {\n version = this.recommendVersion(ecLevel, mode, headerBits, dataBits);\n }\n var headerAndDataBits = new BitArray();\n headerAndDataBits.appendBitArray(headerBits);\n // Find \"length\" of main segment and write it\n var numLetters = mode === Mode.BYTE ? dataBits.getSizeInBytes() : content.length;\n this.appendLengthInfo(numLetters, version, mode, headerAndDataBits);\n // Put data together into the overall payload\n headerAndDataBits.appendBitArray(dataBits);\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\n var numDataBytes = version.getTotalCodewords() - ecBlocks.getTotalECCodewords();\n // Terminate the bits properly.\n this.terminateBits(numDataBytes, headerAndDataBits);\n // Interleave data bits with error correction code.\n var finalBits = this.interleaveWithECBytes(headerAndDataBits, version.getTotalCodewords(), numDataBytes, ecBlocks.getNumBlocks());\n var qrCode = new QRCode();\n qrCode.setECLevel(ecLevel);\n qrCode.setMode(mode);\n qrCode.setVersion(version);\n // Choose the mask pattern and set to \"qrCode\".\n var dimension = version.getDimensionForVersion();\n var matrix = new ByteMatrix(dimension, dimension);\n var maskPattern = this.chooseMaskPattern(finalBits, ecLevel, version, matrix);\n qrCode.setMaskPattern(maskPattern);\n // Build the matrix and set it to \"qrCode\".\n MatrixUtil.buildMatrix(finalBits, ecLevel, version, maskPattern, matrix);\n qrCode.setMatrix(matrix);\n return qrCode;\n };\n /**\n * Decides the smallest version of QR code that will contain all of the provided data.\n *\n * @throws WriterException if the data cannot fit in any version\n */\n Encoder.recommendVersion = function (ecLevel, mode, headerBits, dataBits) {\n // Hard part: need to know version to know how many bits length takes. But need to know how many\n // bits it takes to know version. First we take a guess at version by assuming version will be\n // the minimum, 1:\n var provisionalBitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, Version.getVersionForNumber(1));\n var provisionalVersion = this.chooseVersion(provisionalBitsNeeded, ecLevel);\n // Use that guess to calculate the right version. I am still not sure this works in 100% of cases.\n var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, provisionalVersion);\n return this.chooseVersion(bitsNeeded, ecLevel);\n };\n Encoder.calculateBitsNeeded = function (mode, headerBits, dataBits, version) {\n return headerBits.getSize() + mode.getCharacterCountBits(version) + dataBits.getSize();\n };\n /**\n * @return the code point of the table used in alphanumeric mode or\n * -1 if there is no corresponding code in the table.\n */\n Encoder.getAlphanumericCode = function (code /*int*/) {\n if (code < Encoder.ALPHANUMERIC_TABLE.length) {\n return Encoder.ALPHANUMERIC_TABLE[code];\n }\n return -1;\n };\n // public static chooseMode(content: string): Mode {\n // return chooseMode(content, null);\n // }\n /**\n * Choose the best mode by examining the content. Note that 'encoding' is used as a hint;\n * if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}.\n */\n Encoder.chooseMode = function (content, encoding) {\n if (encoding === void 0) { encoding = null; }\n if (CharacterSetECI.SJIS.getName() === encoding && this.isOnlyDoubleByteKanji(content)) {\n // Choose Kanji mode if all input are double-byte characters\n return Mode.KANJI;\n }\n var hasNumeric = false;\n var hasAlphanumeric = false;\n for (var i = 0, length_1 = content.length; i < length_1; ++i) {\n var c = content.charAt(i);\n if (Encoder.isDigit(c)) {\n hasNumeric = true;\n }\n else if (this.getAlphanumericCode(c.charCodeAt(0)) !== -1) {\n hasAlphanumeric = true;\n }\n else {\n return Mode.BYTE;\n }\n }\n if (hasAlphanumeric) {\n return Mode.ALPHANUMERIC;\n }\n if (hasNumeric) {\n return Mode.NUMERIC;\n }\n return Mode.BYTE;\n };\n Encoder.isOnlyDoubleByteKanji = function (content) {\n var bytes;\n try {\n bytes = StringEncoding.encode(content, CharacterSetECI.SJIS); // content.getBytes(\"Shift_JIS\"))\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n return false;\n }\n var length = bytes.length;\n if (length % 2 !== 0) {\n return false;\n }\n for (var i = 0; i < length; i += 2) {\n var byte1 = bytes[i] & 0xFF;\n if ((byte1 < 0x81 || byte1 > 0x9F) && (byte1 < 0xE0 || byte1 > 0xEB)) {\n return false;\n }\n }\n return true;\n };\n Encoder.chooseMaskPattern = function (bits, ecLevel, version, matrix) {\n var minPenalty = Number.MAX_SAFE_INTEGER; // Lower penalty is better.\n var bestMaskPattern = -1;\n // We try all mask patterns to choose the best one.\n for (var maskPattern = 0; maskPattern < QRCode.NUM_MASK_PATTERNS; maskPattern++) {\n MatrixUtil.buildMatrix(bits, ecLevel, version, maskPattern, matrix);\n var penalty = this.calculateMaskPenalty(matrix);\n if (penalty < minPenalty) {\n minPenalty = penalty;\n bestMaskPattern = maskPattern;\n }\n }\n return bestMaskPattern;\n };\n Encoder.chooseVersion = function (numInputBits /*int*/, ecLevel) {\n for (var versionNum = 1; versionNum <= 40; versionNum++) {\n var version = Version.getVersionForNumber(versionNum);\n if (Encoder.willFit(numInputBits, version, ecLevel)) {\n return version;\n }\n }\n throw new WriterException('Data too big');\n };\n /**\n * @return true if the number of input bits will fit in a code with the specified version and\n * error correction level.\n */\n Encoder.willFit = function (numInputBits /*int*/, version, ecLevel) {\n // In the following comments, we use numbers of Version 7-H.\n // numBytes = 196\n var numBytes = version.getTotalCodewords();\n // getNumECBytes = 130\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\n var numEcBytes = ecBlocks.getTotalECCodewords();\n // getNumDataBytes = 196 - 130 = 66\n var numDataBytes = numBytes - numEcBytes;\n var totalInputBytes = (numInputBits + 7) / 8;\n return numDataBytes >= totalInputBytes;\n };\n /**\n * Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24).\n */\n Encoder.terminateBits = function (numDataBytes /*int*/, bits) {\n var capacity = numDataBytes * 8;\n if (bits.getSize() > capacity) {\n throw new WriterException('data bits cannot fit in the QR Code' + bits.getSize() + ' > ' +\n capacity);\n }\n for (var i = 0; i < 4 && bits.getSize() < capacity; ++i) {\n bits.appendBit(false);\n }\n // Append termination bits. See 8.4.8 of JISX0510:2004 (p.24) for details.\n // If the last byte isn't 8-bit aligned, we'll add padding bits.\n var numBitsInLastByte = bits.getSize() & 0x07;\n if (numBitsInLastByte > 0) {\n for (var i = numBitsInLastByte; i < 8; i++) {\n bits.appendBit(false);\n }\n }\n // If we have more space, we'll fill the space with padding patterns defined in 8.4.9 (p.24).\n var numPaddingBytes = numDataBytes - bits.getSizeInBytes();\n for (var i = 0; i < numPaddingBytes; ++i) {\n bits.appendBits((i & 0x01) === 0 ? 0xEC : 0x11, 8);\n }\n if (bits.getSize() !== capacity) {\n throw new WriterException('Bits size does not equal capacity');\n }\n };\n /**\n * Get number of data bytes and number of error correction bytes for block id \"blockID\". Store\n * the result in \"numDataBytesInBlock\", and \"numECBytesInBlock\". See table 12 in 8.5.1 of\n * JISX0510:2004 (p.30)\n */\n Encoder.getNumDataBytesAndNumECBytesForBlockID = function (numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/, blockID /*int*/, numDataBytesInBlock, numECBytesInBlock) {\n if (blockID >= numRSBlocks) {\n throw new WriterException('Block ID too large');\n }\n // numRsBlocksInGroup2 = 196 % 5 = 1\n var numRsBlocksInGroup2 = numTotalBytes % numRSBlocks;\n // numRsBlocksInGroup1 = 5 - 1 = 4\n var numRsBlocksInGroup1 = numRSBlocks - numRsBlocksInGroup2;\n // numTotalBytesInGroup1 = 196 / 5 = 39\n var numTotalBytesInGroup1 = Math.floor(numTotalBytes / numRSBlocks);\n // numTotalBytesInGroup2 = 39 + 1 = 40\n var numTotalBytesInGroup2 = numTotalBytesInGroup1 + 1;\n // numDataBytesInGroup1 = 66 / 5 = 13\n var numDataBytesInGroup1 = Math.floor(numDataBytes / numRSBlocks);\n // numDataBytesInGroup2 = 13 + 1 = 14\n var numDataBytesInGroup2 = numDataBytesInGroup1 + 1;\n // numEcBytesInGroup1 = 39 - 13 = 26\n var numEcBytesInGroup1 = numTotalBytesInGroup1 - numDataBytesInGroup1;\n // numEcBytesInGroup2 = 40 - 14 = 26\n var numEcBytesInGroup2 = numTotalBytesInGroup2 - numDataBytesInGroup2;\n // Sanity checks.\n // 26 = 26\n if (numEcBytesInGroup1 !== numEcBytesInGroup2) {\n throw new WriterException('EC bytes mismatch');\n }\n // 5 = 4 + 1.\n if (numRSBlocks !== numRsBlocksInGroup1 + numRsBlocksInGroup2) {\n throw new WriterException('RS blocks mismatch');\n }\n // 196 = (13 + 26) * 4 + (14 + 26) * 1\n if (numTotalBytes !==\n ((numDataBytesInGroup1 + numEcBytesInGroup1) *\n numRsBlocksInGroup1) +\n ((numDataBytesInGroup2 + numEcBytesInGroup2) *\n numRsBlocksInGroup2)) {\n throw new WriterException('Total bytes mismatch');\n }\n if (blockID < numRsBlocksInGroup1) {\n numDataBytesInBlock[0] = numDataBytesInGroup1;\n numECBytesInBlock[0] = numEcBytesInGroup1;\n }\n else {\n numDataBytesInBlock[0] = numDataBytesInGroup2;\n numECBytesInBlock[0] = numEcBytesInGroup2;\n }\n };\n /**\n * Interleave \"bits\" with corresponding error correction bytes. On success, store the result in\n * \"result\". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details.\n */\n Encoder.interleaveWithECBytes = function (bits, numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/) {\n var e_1, _a, e_2, _b;\n // \"bits\" must have \"getNumDataBytes\" bytes of data.\n if (bits.getSizeInBytes() !== numDataBytes) {\n throw new WriterException('Number of bits and data bytes does not match');\n }\n // Step 1. Divide data bytes into blocks and generate error correction bytes for them. We'll\n // store the divided data bytes blocks and error correction bytes blocks into \"blocks\".\n var dataBytesOffset = 0;\n var maxNumDataBytes = 0;\n var maxNumEcBytes = 0;\n // Since, we know the number of reedsolmon blocks, we can initialize the vector with the number.\n var blocks = new Array(); // new Array(numRSBlocks)\n for (var i = 0; i < numRSBlocks; ++i) {\n var numDataBytesInBlock = new Int32Array(1);\n var numEcBytesInBlock = new Int32Array(1);\n Encoder.getNumDataBytesAndNumECBytesForBlockID(numTotalBytes, numDataBytes, numRSBlocks, i, numDataBytesInBlock, numEcBytesInBlock);\n var size = numDataBytesInBlock[0];\n var dataBytes = new Uint8Array(size);\n bits.toBytes(8 * dataBytesOffset, dataBytes, 0, size);\n var ecBytes = Encoder.generateECBytes(dataBytes, numEcBytesInBlock[0]);\n blocks.push(new BlockPair(dataBytes, ecBytes));\n maxNumDataBytes = Math.max(maxNumDataBytes, size);\n maxNumEcBytes = Math.max(maxNumEcBytes, ecBytes.length);\n dataBytesOffset += numDataBytesInBlock[0];\n }\n if (numDataBytes !== dataBytesOffset) {\n throw new WriterException('Data bytes does not match offset');\n }\n var result = new BitArray();\n // First, place data blocks.\n for (var i = 0; i < maxNumDataBytes; ++i) {\n try {\n for (var blocks_1 = (e_1 = void 0, __values(blocks)), blocks_1_1 = blocks_1.next(); !blocks_1_1.done; blocks_1_1 = blocks_1.next()) {\n var block = blocks_1_1.value;\n var dataBytes = block.getDataBytes();\n if (i < dataBytes.length) {\n result.appendBits(dataBytes[i], 8);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (blocks_1_1 && !blocks_1_1.done && (_a = blocks_1.return)) _a.call(blocks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n // Then, place error correction blocks.\n for (var i = 0; i < maxNumEcBytes; ++i) {\n try {\n for (var blocks_2 = (e_2 = void 0, __values(blocks)), blocks_2_1 = blocks_2.next(); !blocks_2_1.done; blocks_2_1 = blocks_2.next()) {\n var block = blocks_2_1.value;\n var ecBytes = block.getErrorCorrectionBytes();\n if (i < ecBytes.length) {\n result.appendBits(ecBytes[i], 8);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (blocks_2_1 && !blocks_2_1.done && (_b = blocks_2.return)) _b.call(blocks_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (numTotalBytes !== result.getSizeInBytes()) { // Should be same.\n throw new WriterException('Interleaving error: ' + numTotalBytes + ' and ' +\n result.getSizeInBytes() + ' differ.');\n }\n return result;\n };\n Encoder.generateECBytes = function (dataBytes, numEcBytesInBlock /*int*/) {\n var numDataBytes = dataBytes.length;\n var toEncode = new Int32Array(numDataBytes + numEcBytesInBlock); // int[numDataBytes + numEcBytesInBlock]\n for (var i = 0; i < numDataBytes; i++) {\n toEncode[i] = dataBytes[i] & 0xFF;\n }\n new ReedSolomonEncoder(GenericGF.QR_CODE_FIELD_256).encode(toEncode, numEcBytesInBlock);\n var ecBytes = new Uint8Array(numEcBytesInBlock);\n for (var i = 0; i < numEcBytesInBlock; i++) {\n ecBytes[i] = /*(byte) */ toEncode[numDataBytes + i];\n }\n return ecBytes;\n };\n /**\n * Append mode info. On success, store the result in \"bits\".\n */\n Encoder.appendModeInfo = function (mode, bits) {\n bits.appendBits(mode.getBits(), 4);\n };\n /**\n * Append length info. On success, store the result in \"bits\".\n */\n Encoder.appendLengthInfo = function (numLetters /*int*/, version, mode, bits) {\n var numBits = mode.getCharacterCountBits(version);\n if (numLetters >= (1 << numBits)) {\n throw new WriterException(numLetters + ' is bigger than ' + ((1 << numBits) - 1));\n }\n bits.appendBits(numLetters, numBits);\n };\n /**\n * Append \"bytes\" in \"mode\" mode (encoding) into \"bits\". On success, store the result in \"bits\".\n */\n Encoder.appendBytes = function (content, mode, bits, encoding) {\n switch (mode) {\n case Mode.NUMERIC:\n Encoder.appendNumericBytes(content, bits);\n break;\n case Mode.ALPHANUMERIC:\n Encoder.appendAlphanumericBytes(content, bits);\n break;\n case Mode.BYTE:\n Encoder.append8BitBytes(content, bits, encoding);\n break;\n case Mode.KANJI:\n Encoder.appendKanjiBytes(content, bits);\n break;\n default:\n throw new WriterException('Invalid mode: ' + mode);\n }\n };\n Encoder.getDigit = function (singleCharacter) {\n return singleCharacter.charCodeAt(0) - 48;\n };\n Encoder.isDigit = function (singleCharacter) {\n var cn = Encoder.getDigit(singleCharacter);\n return cn >= 0 && cn <= 9;\n };\n Encoder.appendNumericBytes = function (content, bits) {\n var length = content.length;\n var i = 0;\n while (i < length) {\n var num1 = Encoder.getDigit(content.charAt(i));\n if (i + 2 < length) {\n // Encode three numeric letters in ten bits.\n var num2 = Encoder.getDigit(content.charAt(i + 1));\n var num3 = Encoder.getDigit(content.charAt(i + 2));\n bits.appendBits(num1 * 100 + num2 * 10 + num3, 10);\n i += 3;\n }\n else if (i + 1 < length) {\n // Encode two numeric letters in seven bits.\n var num2 = Encoder.getDigit(content.charAt(i + 1));\n bits.appendBits(num1 * 10 + num2, 7);\n i += 2;\n }\n else {\n // Encode one numeric letter in four bits.\n bits.appendBits(num1, 4);\n i++;\n }\n }\n };\n Encoder.appendAlphanumericBytes = function (content, bits) {\n var length = content.length;\n var i = 0;\n while (i < length) {\n var code1 = Encoder.getAlphanumericCode(content.charCodeAt(i));\n if (code1 === -1) {\n throw new WriterException();\n }\n if (i + 1 < length) {\n var code2 = Encoder.getAlphanumericCode(content.charCodeAt(i + 1));\n if (code2 === -1) {\n throw new WriterException();\n }\n // Encode two alphanumeric letters in 11 bits.\n bits.appendBits(code1 * 45 + code2, 11);\n i += 2;\n }\n else {\n // Encode one alphanumeric letter in six bits.\n bits.appendBits(code1, 6);\n i++;\n }\n }\n };\n Encoder.append8BitBytes = function (content, bits, encoding) {\n var bytes;\n try {\n bytes = StringEncoding.encode(content, encoding);\n }\n catch (uee /*: UnsupportedEncodingException*/) {\n throw new WriterException(uee);\n }\n for (var i = 0, length_2 = bytes.length; i !== length_2; i++) {\n var b = bytes[i];\n bits.appendBits(b, 8);\n }\n };\n /**\n * @throws WriterException\n */\n Encoder.appendKanjiBytes = function (content, bits) {\n var bytes;\n try {\n bytes = StringEncoding.encode(content, CharacterSetECI.SJIS);\n }\n catch (uee /*: UnsupportedEncodingException*/) {\n throw new WriterException(uee);\n }\n var length = bytes.length;\n for (var i = 0; i < length; i += 2) {\n var byte1 = bytes[i] & 0xFF;\n var byte2 = bytes[i + 1] & 0xFF;\n var code = ((byte1 << 8) & 0xFFFFFFFF) | byte2;\n var subtracted = -1;\n if (code >= 0x8140 && code <= 0x9ffc) {\n subtracted = code - 0x8140;\n }\n else if (code >= 0xe040 && code <= 0xebbf) {\n subtracted = code - 0xc140;\n }\n if (subtracted === -1) {\n throw new WriterException('Invalid byte sequence');\n }\n var encoded = ((subtracted >> 8) * 0xc0) + (subtracted & 0xff);\n bits.appendBits(encoded, 13);\n }\n };\n Encoder.appendECI = function (eci, bits) {\n bits.appendBits(Mode.ECI.getBits(), 4);\n // This is correct for values up to 127, which is all we need now.\n bits.appendBits(eci.getValue(), 8);\n };\n // The original table is defined in the table 5 of JISX0510:2004 (p.19).\n Encoder.ALPHANUMERIC_TABLE = Int32Array.from([\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,\n ]);\n Encoder.DEFAULT_BYTE_MODE_ENCODING = CharacterSetECI.UTF8.getName(); // \"ISO-8859-1\"\n return Encoder;\n}());\nexport default Encoder;\n","import EncodeHintType from '../core/EncodeHintType';\nimport Encoder from '../core/qrcode/encoder/Encoder';\nimport ErrorCorrectionLevel from '../core/qrcode/decoder/ErrorCorrectionLevel';\nimport IllegalArgumentException from '../core/IllegalArgumentException';\nimport IllegalStateException from '../core/IllegalStateException';\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar BrowserQRCodeSvgWriter = /** @class */ (function () {\n function BrowserQRCodeSvgWriter() {\n }\n /**\n * Writes and renders a QRCode SVG element.\n *\n * @param contents\n * @param width\n * @param height\n * @param hints\n */\n BrowserQRCodeSvgWriter.prototype.write = function (contents, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (contents.length === 0) {\n throw new IllegalArgumentException('Found empty contents');\n }\n // if (format != BarcodeFormat.QR_CODE) {\n // throw new IllegalArgumentException(\"Can only encode QR_CODE, but got \" + format)\n // }\n if (width < 0 || height < 0) {\n throw new IllegalArgumentException('Requested dimensions are too small: ' + width + 'x' + height);\n }\n var errorCorrectionLevel = ErrorCorrectionLevel.L;\n var quietZone = BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE;\n if (hints !== null) {\n if (undefined !== hints.get(EncodeHintType.ERROR_CORRECTION)) {\n errorCorrectionLevel = ErrorCorrectionLevel.fromString(hints.get(EncodeHintType.ERROR_CORRECTION).toString());\n }\n if (undefined !== hints.get(EncodeHintType.MARGIN)) {\n quietZone = Number.parseInt(hints.get(EncodeHintType.MARGIN).toString(), 10);\n }\n }\n var code = Encoder.encode(contents, errorCorrectionLevel, hints);\n return this.renderResult(code, width, height, quietZone);\n };\n /**\n * Renders the result and then appends it to the DOM.\n */\n BrowserQRCodeSvgWriter.prototype.writeToDom = function (containerElement, contents, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (typeof containerElement === 'string') {\n containerElement = document.querySelector(containerElement);\n }\n var svgElement = this.write(contents, width, height, hints);\n if (containerElement)\n containerElement.appendChild(svgElement);\n };\n /**\n * Note that the input matrix uses 0 == white, 1 == black.\n * The output matrix uses 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n */\n BrowserQRCodeSvgWriter.prototype.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n var input = code.getMatrix();\n if (input === null) {\n throw new IllegalStateException();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var qrWidth = inputWidth + (quietZone * 2);\n var qrHeight = inputHeight + (quietZone * 2);\n var outputWidth = Math.max(width, qrWidth);\n var outputHeight = Math.max(height, qrHeight);\n var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n // handle all the padding from 100x100 (the actual QR) up to 200x160.\n var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n var svgElement = this.createSVGElement(outputWidth, outputHeight);\n for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY) === 1) {\n var svgRectElement = this.createSvgRectElement(outputX, outputY, multiple, multiple);\n svgElement.appendChild(svgRectElement);\n }\n }\n }\n return svgElement;\n };\n /**\n * Creates a SVG element.\n *\n * @param w SVG's width attribute\n * @param h SVG's height attribute\n */\n BrowserQRCodeSvgWriter.prototype.createSVGElement = function (w, h) {\n var svgElement = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'svg');\n svgElement.setAttributeNS(null, 'height', w.toString());\n svgElement.setAttributeNS(null, 'width', h.toString());\n return svgElement;\n };\n /**\n * Creates a SVG rect element.\n *\n * @param x Element's x coordinate\n * @param y Element's y coordinate\n * @param w Element's width attribute\n * @param h Element's height attribute\n */\n BrowserQRCodeSvgWriter.prototype.createSvgRectElement = function (x, y, w, h) {\n var rect = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'rect');\n rect.setAttributeNS(null, 'x', x.toString());\n rect.setAttributeNS(null, 'y', y.toString());\n rect.setAttributeNS(null, 'height', w.toString());\n rect.setAttributeNS(null, 'width', h.toString());\n rect.setAttributeNS(null, 'fill', '#000000');\n return rect;\n };\n BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE = 4;\n /**\n * SVG markup NameSpace\n */\n BrowserQRCodeSvgWriter.SVG_NS = 'http://www.w3.org/2000/svg';\n return BrowserQRCodeSvgWriter;\n}());\nexport { BrowserQRCodeSvgWriter };\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport EncodeHintType from '../EncodeHintType';\nimport BitMatrix from '../common/BitMatrix';\nimport ErrorCorrectionLevel from './decoder/ErrorCorrectionLevel';\nimport Encoder from './encoder/Encoder';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport IllegalStateException from '../IllegalStateException';\n/*import java.util.Map;*/\n/**\n * This object renders a QR Code as a BitMatrix 2D array of greyscale values.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar QRCodeWriter = /** @class */ (function () {\n function QRCodeWriter() {\n }\n /*@Override*/\n // public encode(contents: string, format: BarcodeFormat, width: number /*int*/, height: number /*int*/): BitMatrix\n // /*throws WriterException */ {\n // return encode(contents, format, width, height, null)\n // }\n /*@Override*/\n QRCodeWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n if (contents.length === 0) {\n throw new IllegalArgumentException('Found empty contents');\n }\n if (format !== BarcodeFormat.QR_CODE) {\n throw new IllegalArgumentException('Can only encode QR_CODE, but got ' + format);\n }\n if (width < 0 || height < 0) {\n throw new IllegalArgumentException(\"Requested dimensions are too small: \" + width + \"x\" + height);\n }\n var errorCorrectionLevel = ErrorCorrectionLevel.L;\n var quietZone = QRCodeWriter.QUIET_ZONE_SIZE;\n if (hints !== null) {\n if (undefined !== hints.get(EncodeHintType.ERROR_CORRECTION)) {\n errorCorrectionLevel = ErrorCorrectionLevel.fromString(hints.get(EncodeHintType.ERROR_CORRECTION).toString());\n }\n if (undefined !== hints.get(EncodeHintType.MARGIN)) {\n quietZone = Number.parseInt(hints.get(EncodeHintType.MARGIN).toString(), 10);\n }\n }\n var code = Encoder.encode(contents, errorCorrectionLevel, hints);\n return QRCodeWriter.renderResult(code, width, height, quietZone);\n };\n // Note that the input matrix uses 0 == white, 1 == black, while the output matrix uses\n // 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n QRCodeWriter.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n var input = code.getMatrix();\n if (input === null) {\n throw new IllegalStateException();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var qrWidth = inputWidth + (quietZone * 2);\n var qrHeight = inputHeight + (quietZone * 2);\n var outputWidth = Math.max(width, qrWidth);\n var outputHeight = Math.max(height, qrHeight);\n var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n // handle all the padding from 100x100 (the actual QR) up to 200x160.\n var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n var output = new BitMatrix(outputWidth, outputHeight);\n for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY) === 1) {\n output.setRegion(outputX, outputY, multiple, multiple);\n }\n }\n }\n return output;\n };\n QRCodeWriter.QUIET_ZONE_SIZE = 4;\n return QRCodeWriter;\n}());\nexport default QRCodeWriter;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// import DataMatrixWriter from './datamatrix/DataMatrixWriter'\n// import CodaBarWriter from './oned/CodaBarWriter'\n// import Code128Writer from './oned/Code128Writer'\n// import Code39Writer from './oned/Code39Writer'\n// import Code93Writer from './oned/Code93Writer'\n// import EAN13Writer from './oned/EAN13Writer'\n// import EAN8Writer from './oned/EAN8Writer'\n// import ITFWriter from './oned/ITFWriter'\n// import UPCAWriter from './oned/UPCAWriter'\n// import UPCEWriter from './oned/UPCEWriter'\n// import PDF417Writer from './pdf417/PDF417Writer'\nimport QRCodeWriter from './qrcode/QRCodeWriter';\nimport BarcodeFormat from './BarcodeFormat';\nimport IllegalArgumentException from './IllegalArgumentException';\n/*import java.util.Map;*/\n/**\n * This is a factory class which finds the appropriate Writer subclass for the BarcodeFormat\n * requested and encodes the barcode with the supplied contents.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatWriter = /** @class */ (function () {\n function MultiFormatWriter() {\n }\n /*@Override*/\n // public encode(contents: string,\n // format: BarcodeFormat,\n // width: number /*int*/,\n // height: number /*int*/): BitMatrix /*throws WriterException */ {\n // return encode(contents, format, width, height, null)\n // }\n /*@Override*/\n MultiFormatWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n var writer;\n switch (format) {\n // case BarcodeFormat.EAN_8:\n // writer = new EAN8Writer()\n // break\n // case BarcodeFormat.UPC_E:\n // writer = new UPCEWriter()\n // break\n // case BarcodeFormat.EAN_13:\n // writer = new EAN13Writer()\n // break\n // case BarcodeFormat.UPC_A:\n // writer = new UPCAWriter()\n // break\n case BarcodeFormat.QR_CODE:\n writer = new QRCodeWriter();\n break;\n // case BarcodeFormat.CODE_39:\n // writer = new Code39Writer()\n // break\n // case BarcodeFormat.CODE_93:\n // writer = new Code93Writer()\n // break\n // case BarcodeFormat.CODE_128:\n // writer = new Code128Writer()\n // break\n // case BarcodeFormat.ITF:\n // writer = new ITFWriter()\n // break\n // case BarcodeFormat.PDF_417:\n // writer = new PDF417Writer()\n // break\n // case BarcodeFormat.CODABAR:\n // writer = new CodaBarWriter()\n // break\n // case BarcodeFormat.DATA_MATRIX:\n // writer = new DataMatrixWriter()\n // break\n // case BarcodeFormat.AZTEC:\n // writer = new AztecWriter()\n // break\n default:\n throw new IllegalArgumentException('No encoder available for format ' + format);\n }\n return writer.encode(contents, format, width, height, hints);\n };\n return MultiFormatWriter;\n}());\nexport default MultiFormatWriter;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing {*/\nimport System from './util/System';\nimport LuminanceSource from './LuminanceSource';\nimport InvertedLuminanceSource from './InvertedLuminanceSource';\nimport IllegalArgumentException from './IllegalArgumentException';\n/**\n * This object extends LuminanceSource around an array of YUV data returned from the camera driver,\n * with the option to crop to a rectangle within the full data. This can be used to exclude\n * superfluous pixels around the perimeter and speed up decoding.\n *\n * It works for any pixel format where the Y channel is planar and appears first, including\n * YCbCr_420_SP and YCbCr_422_SP.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar PlanarYUVLuminanceSource = /** @class */ (function (_super) {\n __extends(PlanarYUVLuminanceSource, _super);\n function PlanarYUVLuminanceSource(yuvData, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/, width /*int*/, height /*int*/, reverseHorizontal) {\n var _this = _super.call(this, width, height) || this;\n _this.yuvData = yuvData;\n _this.dataWidth = dataWidth;\n _this.dataHeight = dataHeight;\n _this.left = left;\n _this.top = top;\n if (left + width > dataWidth || top + height > dataHeight) {\n throw new IllegalArgumentException('Crop rectangle does not fit within image data.');\n }\n if (reverseHorizontal) {\n _this.reverseHorizontal(width, height);\n }\n return _this;\n }\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n if (row === null || row === undefined || row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n var offset = (y + this.top) * this.dataWidth + this.left;\n System.arraycopy(this.yuvData, offset, row, 0, width);\n return row;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.getMatrix = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n // If the caller asks for the entire underlying image, save the copy and give them the\n // original data. The docs specifically warn that result.length must be ignored.\n if (width === this.dataWidth && height === this.dataHeight) {\n return this.yuvData;\n }\n var area = width * height;\n var matrix = new Uint8ClampedArray(area);\n var inputOffset = this.top * this.dataWidth + this.left;\n // If the width matches the full width of the underlying data, perform a single copy.\n if (width === this.dataWidth) {\n System.arraycopy(this.yuvData, inputOffset, matrix, 0, area);\n return matrix;\n }\n // Otherwise copy one cropped row at a time.\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n System.arraycopy(this.yuvData, inputOffset, matrix, outputOffset, width);\n inputOffset += this.dataWidth;\n }\n return matrix;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new PlanarYUVLuminanceSource(this.yuvData, this.dataWidth, this.dataHeight, this.left + left, this.top + top, width, height, false);\n };\n PlanarYUVLuminanceSource.prototype.renderThumbnail = function () {\n var width = this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n var height = this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n var pixels = new Int32Array(width * height);\n var yuv = this.yuvData;\n var inputOffset = this.top * this.dataWidth + this.left;\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n for (var x = 0; x < width; x++) {\n var grey = yuv[inputOffset + x * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR] & 0xff;\n pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101);\n }\n inputOffset += this.dataWidth * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n }\n return pixels;\n };\n /**\n * @return width of image from {@link #renderThumbnail()}\n */\n PlanarYUVLuminanceSource.prototype.getThumbnailWidth = function () {\n return this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n };\n /**\n * @return height of image from {@link #renderThumbnail()}\n */\n PlanarYUVLuminanceSource.prototype.getThumbnailHeight = function () {\n return this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n };\n PlanarYUVLuminanceSource.prototype.reverseHorizontal = function (width /*int*/, height /*int*/) {\n var yuvData = this.yuvData;\n for (var y = 0, rowStart = this.top * this.dataWidth + this.left; y < height; y++, rowStart += this.dataWidth) {\n var middle = rowStart + width / 2;\n for (var x1 = rowStart, x2 = rowStart + width - 1; x1 < middle; x1++, x2--) {\n var temp = yuvData[x1];\n yuvData[x1] = yuvData[x2];\n yuvData[x2] = temp;\n }\n }\n };\n PlanarYUVLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource(this);\n };\n PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR = 2;\n return PlanarYUVLuminanceSource;\n}(LuminanceSource));\nexport default PlanarYUVLuminanceSource;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/*namespace com.google.zxing {*/\nimport './InvertedLuminanceSource'; // required because of circular dependencies between LuminanceSource and InvertedLuminanceSource\nimport InvertedLuminanceSource from './InvertedLuminanceSource';\nimport LuminanceSource from './LuminanceSource';\nimport System from './util/System';\nimport IllegalArgumentException from './IllegalArgumentException';\n/**\n * This class is used to help decode images from files which arrive as RGB data from\n * an ARGB pixel array. It does not support rotation.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Betaminos\n */\nvar RGBLuminanceSource = /** @class */ (function (_super) {\n __extends(RGBLuminanceSource, _super);\n function RGBLuminanceSource(luminances, width /*int*/, height /*int*/, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/) {\n var _this = _super.call(this, width, height) || this;\n _this.dataWidth = dataWidth;\n _this.dataHeight = dataHeight;\n _this.left = left;\n _this.top = top;\n if (luminances.BYTES_PER_ELEMENT === 4) { // Int32Array\n var size = width * height;\n var luminancesUint8Array = new Uint8ClampedArray(size);\n for (var offset = 0; offset < size; offset++) {\n var pixel = luminances[offset];\n var r = (pixel >> 16) & 0xff; // red\n var g2 = (pixel >> 7) & 0x1fe; // 2 * green\n var b = pixel & 0xff; // blue\n // Calculate green-favouring average cheaply\n luminancesUint8Array[offset] = /*(byte) */ ((r + g2 + b) / 4) & 0xFF;\n }\n _this.luminances = luminancesUint8Array;\n }\n else {\n _this.luminances = luminances;\n }\n if (undefined === dataWidth) {\n _this.dataWidth = width;\n }\n if (undefined === dataHeight) {\n _this.dataHeight = height;\n }\n if (undefined === left) {\n _this.left = 0;\n }\n if (undefined === top) {\n _this.top = 0;\n }\n if (_this.left + width > _this.dataWidth || _this.top + height > _this.dataHeight) {\n throw new IllegalArgumentException('Crop rectangle does not fit within image data.');\n }\n return _this;\n }\n /*@Override*/\n RGBLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n if (row === null || row === undefined || row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n var offset = (y + this.top) * this.dataWidth + this.left;\n System.arraycopy(this.luminances, offset, row, 0, width);\n return row;\n };\n /*@Override*/\n RGBLuminanceSource.prototype.getMatrix = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n // If the caller asks for the entire underlying image, save the copy and give them the\n // original data. The docs specifically warn that result.length must be ignored.\n if (width === this.dataWidth && height === this.dataHeight) {\n return this.luminances;\n }\n var area = width * height;\n var matrix = new Uint8ClampedArray(area);\n var inputOffset = this.top * this.dataWidth + this.left;\n // If the width matches the full width of the underlying data, perform a single copy.\n if (width === this.dataWidth) {\n System.arraycopy(this.luminances, inputOffset, matrix, 0, area);\n return matrix;\n }\n // Otherwise copy one cropped row at a time.\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n System.arraycopy(this.luminances, inputOffset, matrix, outputOffset, width);\n inputOffset += this.dataWidth;\n }\n return matrix;\n };\n /*@Override*/\n RGBLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n /*@Override*/\n RGBLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new RGBLuminanceSource(this.luminances, width, height, this.dataWidth, this.dataHeight, this.left + left, this.top + top);\n };\n RGBLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource(this);\n };\n return RGBLuminanceSource;\n}(LuminanceSource));\nexport default RGBLuminanceSource;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport CharacterSetECI from '../common/CharacterSetECI';\n/**\n * Just to make a shortcut between Java code and TS code.\n */\nvar Charset = /** @class */ (function (_super) {\n __extends(Charset, _super);\n function Charset() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Charset.forName = function (name) {\n return this.getCharacterSetECIByName(name);\n };\n return Charset;\n}(CharacterSetECI));\nexport default Charset;\n","import CharacterSetECI from '../common/CharacterSetECI';\n/**\n * Just to make a shortcut between Java code and TS code.\n */\nvar StandardCharsets = /** @class */ (function () {\n function StandardCharsets() {\n }\n StandardCharsets.ISO_8859_1 = CharacterSetECI.ISO8859_1;\n return StandardCharsets;\n}());\nexport default StandardCharsets;\n","import Arrays from '../../util/Arrays';\n/**\n * Symbol Character Placement Program. Adapted from Annex M.1 in ISO/IEC 16022:2000(E).\n */\nvar DefaultPlacement = /** @class */ (function () {\n /**\n * Main constructor\n *\n * @param codewords the codewords to place\n * @param numcols the number of columns\n * @param numrows the number of rows\n */\n function DefaultPlacement(codewords, numcols, numrows) {\n this.codewords = codewords;\n this.numcols = numcols;\n this.numrows = numrows;\n this.bits = new Uint8Array(numcols * numrows);\n Arrays.fill(this.bits, 2); // Initialize with \"not set\" value\n }\n DefaultPlacement.prototype.getNumrows = function () {\n return this.numrows;\n };\n DefaultPlacement.prototype.getNumcols = function () {\n return this.numcols;\n };\n DefaultPlacement.prototype.getBits = function () {\n return this.bits;\n };\n DefaultPlacement.prototype.getBit = function (col, row) {\n return this.bits[row * this.numcols + col] === 1;\n };\n DefaultPlacement.prototype.setBit = function (col, row, bit) {\n this.bits[row * this.numcols + col] = bit ? 1 : 0;\n };\n DefaultPlacement.prototype.noBit = function (col, row) {\n return this.bits[row * this.numcols + col] === 2;\n };\n DefaultPlacement.prototype.place = function () {\n var pos = 0;\n var row = 4;\n var col = 0;\n do {\n // repeatedly first check for one of the special corner cases, then...\n if (row === this.numrows && col === 0) {\n this.corner1(pos++);\n }\n if (row === this.numrows - 2 && col === 0 && this.numcols % 4 !== 0) {\n this.corner2(pos++);\n }\n if (row === this.numrows - 2 && col === 0 && this.numcols % 8 === 4) {\n this.corner3(pos++);\n }\n if (row === this.numrows + 4 && col === 2 && this.numcols % 8 === 0) {\n this.corner4(pos++);\n }\n // sweep upward diagonally, inserting successive characters...\n do {\n if (row < this.numrows && col >= 0 && this.noBit(col, row)) {\n this.utah(row, col, pos++);\n }\n row -= 2;\n col += 2;\n } while (row >= 0 && col < this.numcols);\n row++;\n col += 3;\n // and then sweep downward diagonally, inserting successive characters, ...\n do {\n if (row >= 0 && col < this.numcols && this.noBit(col, row)) {\n this.utah(row, col, pos++);\n }\n row += 2;\n col -= 2;\n } while (row < this.numrows && col >= 0);\n row += 3;\n col++;\n // ...until the entire array is scanned\n } while (row < this.numrows || col < this.numcols);\n // Lastly, if the lower right-hand corner is untouched, fill in fixed pattern\n if (this.noBit(this.numcols - 1, this.numrows - 1)) {\n this.setBit(this.numcols - 1, this.numrows - 1, true);\n this.setBit(this.numcols - 2, this.numrows - 2, true);\n }\n };\n DefaultPlacement.prototype.module = function (row, col, pos, bit) {\n if (row < 0) {\n row += this.numrows;\n col += 4 - ((this.numrows + 4) % 8);\n }\n if (col < 0) {\n col += this.numcols;\n row += 4 - ((this.numcols + 4) % 8);\n }\n // Note the conversion:\n var v = this.codewords.charCodeAt(pos);\n v &= 1 << (8 - bit);\n this.setBit(col, row, v !== 0);\n };\n /**\n * Places the 8 bits of a utah-shaped symbol character in ECC200.\n *\n * @param row the row\n * @param col the column\n * @param pos character position\n */\n DefaultPlacement.prototype.utah = function (row, col, pos) {\n this.module(row - 2, col - 2, pos, 1);\n this.module(row - 2, col - 1, pos, 2);\n this.module(row - 1, col - 2, pos, 3);\n this.module(row - 1, col - 1, pos, 4);\n this.module(row - 1, col, pos, 5);\n this.module(row, col - 2, pos, 6);\n this.module(row, col - 1, pos, 7);\n this.module(row, col, pos, 8);\n };\n DefaultPlacement.prototype.corner1 = function (pos) {\n this.module(this.numrows - 1, 0, pos, 1);\n this.module(this.numrows - 1, 1, pos, 2);\n this.module(this.numrows - 1, 2, pos, 3);\n this.module(0, this.numcols - 2, pos, 4);\n this.module(0, this.numcols - 1, pos, 5);\n this.module(1, this.numcols - 1, pos, 6);\n this.module(2, this.numcols - 1, pos, 7);\n this.module(3, this.numcols - 1, pos, 8);\n };\n DefaultPlacement.prototype.corner2 = function (pos) {\n this.module(this.numrows - 3, 0, pos, 1);\n this.module(this.numrows - 2, 0, pos, 2);\n this.module(this.numrows - 1, 0, pos, 3);\n this.module(0, this.numcols - 4, pos, 4);\n this.module(0, this.numcols - 3, pos, 5);\n this.module(0, this.numcols - 2, pos, 6);\n this.module(0, this.numcols - 1, pos, 7);\n this.module(1, this.numcols - 1, pos, 8);\n };\n DefaultPlacement.prototype.corner3 = function (pos) {\n this.module(this.numrows - 3, 0, pos, 1);\n this.module(this.numrows - 2, 0, pos, 2);\n this.module(this.numrows - 1, 0, pos, 3);\n this.module(0, this.numcols - 2, pos, 4);\n this.module(0, this.numcols - 1, pos, 5);\n this.module(1, this.numcols - 1, pos, 6);\n this.module(2, this.numcols - 1, pos, 7);\n this.module(3, this.numcols - 1, pos, 8);\n };\n DefaultPlacement.prototype.corner4 = function (pos) {\n this.module(this.numrows - 1, 0, pos, 1);\n this.module(this.numrows - 1, this.numcols - 1, pos, 2);\n this.module(0, this.numcols - 3, pos, 3);\n this.module(0, this.numcols - 2, pos, 4);\n this.module(0, this.numcols - 1, pos, 5);\n this.module(1, this.numcols - 3, pos, 6);\n this.module(1, this.numcols - 2, pos, 7);\n this.module(1, this.numcols - 1, pos, 8);\n };\n return DefaultPlacement;\n}());\nexport default DefaultPlacement;\n","var _a;\n/**\n * Lookup table which factors to use for which number of error correction codewords.\n * See FACTORS.\n */\nexport var FACTOR_SETS = [\n 5, 7, 10, 11, 12, 14, 18, 20, 24, 28, 36, 42, 48, 56, 62, 68,\n];\n/**\n * Precomputed polynomial factors for ECC 200.\n */\nexport var FACTORS = [\n [228, 48, 15, 111, 62],\n [23, 68, 144, 134, 240, 92, 254],\n [28, 24, 185, 166, 223, 248, 116, 255, 110, 61],\n [175, 138, 205, 12, 194, 168, 39, 245, 60, 97, 120],\n [41, 153, 158, 91, 61, 42, 142, 213, 97, 178, 100, 242],\n [156, 97, 192, 252, 95, 9, 157, 119, 138, 45, 18, 186, 83, 185],\n [\n 83, 195, 100, 39, 188, 75, 66, 61, 241, 213, 109, 129, 94, 254, 225, 48, 90,\n 188,\n ],\n [\n 15, 195, 244, 9, 233, 71, 168, 2, 188, 160, 153, 145, 253, 79, 108, 82, 27,\n 174, 186, 172,\n ],\n [\n 52, 190, 88, 205, 109, 39, 176, 21, 155, 197, 251, 223, 155, 21, 5, 172,\n 254, 124, 12, 181, 184, 96, 50, 193,\n ],\n [\n 211, 231, 43, 97, 71, 96, 103, 174, 37, 151, 170, 53, 75, 34, 249, 121, 17,\n 138, 110, 213, 141, 136, 120, 151, 233, 168, 93, 255,\n ],\n [\n 245, 127, 242, 218, 130, 250, 162, 181, 102, 120, 84, 179, 220, 251, 80,\n 182, 229, 18, 2, 4, 68, 33, 101, 137, 95, 119, 115, 44, 175, 184, 59, 25,\n 225, 98, 81, 112,\n ],\n [\n 77, 193, 137, 31, 19, 38, 22, 153, 247, 105, 122, 2, 245, 133, 242, 8, 175,\n 95, 100, 9, 167, 105, 214, 111, 57, 121, 21, 1, 253, 57, 54, 101, 248, 202,\n 69, 50, 150, 177, 226, 5, 9, 5,\n ],\n [\n 245, 132, 172, 223, 96, 32, 117, 22, 238, 133, 238, 231, 205, 188, 237, 87,\n 191, 106, 16, 147, 118, 23, 37, 90, 170, 205, 131, 88, 120, 100, 66, 138,\n 186, 240, 82, 44, 176, 87, 187, 147, 160, 175, 69, 213, 92, 253, 225, 19,\n ],\n [\n 175, 9, 223, 238, 12, 17, 220, 208, 100, 29, 175, 170, 230, 192, 215, 235,\n 150, 159, 36, 223, 38, 200, 132, 54, 228, 146, 218, 234, 117, 203, 29, 232,\n 144, 238, 22, 150, 201, 117, 62, 207, 164, 13, 137, 245, 127, 67, 247, 28,\n 155, 43, 203, 107, 233, 53, 143, 46,\n ],\n [\n 242, 93, 169, 50, 144, 210, 39, 118, 202, 188, 201, 189, 143, 108, 196, 37,\n 185, 112, 134, 230, 245, 63, 197, 190, 250, 106, 185, 221, 175, 64, 114, 71,\n 161, 44, 147, 6, 27, 218, 51, 63, 87, 10, 40, 130, 188, 17, 163, 31, 176,\n 170, 4, 107, 232, 7, 94, 166, 224, 124, 86, 47, 11, 204,\n ],\n [\n 220, 228, 173, 89, 251, 149, 159, 56, 89, 33, 147, 244, 154, 36, 73, 127,\n 213, 136, 248, 180, 234, 197, 158, 177, 68, 122, 93, 213, 15, 160, 227, 236,\n 66, 139, 153, 185, 202, 167, 179, 25, 220, 232, 96, 210, 231, 136, 223, 239,\n 181, 241, 59, 52, 172, 25, 49, 232, 211, 189, 64, 54, 108, 153, 132, 63, 96,\n 103, 82, 186,\n ],\n];\nexport var /*final*/ MODULO_VALUE = 0x12d;\nvar static_LOG = function (LOG, ALOG) {\n var p = 1;\n for (var i = 0; i < 255; i++) {\n ALOG[i] = p;\n LOG[p] = i;\n p *= 2;\n if (p >= 256) {\n p ^= MODULO_VALUE;\n }\n }\n return {\n LOG: LOG,\n ALOG: ALOG,\n };\n};\nexport var LOG = (_a = static_LOG([], []), _a.LOG), ALOG = _a.ALOG;\nexport var SymbolShapeHint;\n(function (SymbolShapeHint) {\n SymbolShapeHint[SymbolShapeHint[\"FORCE_NONE\"] = 0] = \"FORCE_NONE\";\n SymbolShapeHint[SymbolShapeHint[\"FORCE_SQUARE\"] = 1] = \"FORCE_SQUARE\";\n SymbolShapeHint[SymbolShapeHint[\"FORCE_RECTANGLE\"] = 2] = \"FORCE_RECTANGLE\";\n})(SymbolShapeHint || (SymbolShapeHint = {}));\n/**\n * Padding character\n */\nexport var PAD = 129;\n/**\n * mode latch to C40 encodation mode\n */\nexport var LATCH_TO_C40 = 230;\n/**\n * mode latch to Base 256 encodation mode\n */\nexport var LATCH_TO_BASE256 = 231;\n/**\n * FNC1 Codeword\n */\n// private static FNC1 = 232;\n/**\n * Structured Append Codeword\n */\n// private static STRUCTURED_APPEND = 233;\n/**\n * Reader Programming\n */\n// private static READER_PROGRAMMING = 234;\n/**\n * Upper Shift\n */\nexport var UPPER_SHIFT = 235;\n/**\n * 05 Macro\n */\nexport var MACRO_05 = 236;\n/**\n * 06 Macro\n */\nexport var MACRO_06 = 237;\n/**\n * mode latch to ANSI X.12 encodation mode\n */\nexport var LATCH_TO_ANSIX12 = 238;\n/**\n * mode latch to Text encodation mode\n */\nexport var LATCH_TO_TEXT = 239;\n/**\n * mode latch to EDIFACT encodation mode\n */\nexport var LATCH_TO_EDIFACT = 240;\n/**\n * ECI character (Extended Channel Interpretation)\n */\n// private export const ECI = 241;\n/**\n * Unlatch from C40 encodation\n */\nexport var C40_UNLATCH = 254;\n/**\n * Unlatch from X12 encodation\n */\nexport var X12_UNLATCH = 254;\n/**\n * 05 Macro header\n */\nexport var MACRO_05_HEADER = '[)>\\u001E05\\u001D';\n/**\n * 06 Macro header\n */\nexport var MACRO_06_HEADER = '[)>\\u001E06\\u001D';\n/**\n * Macro trailer\n */\nexport var MACRO_TRAILER = '\\u001E\\u0004';\nexport var ASCII_ENCODATION = 0;\nexport var C40_ENCODATION = 1;\nexport var TEXT_ENCODATION = 2;\nexport var X12_ENCODATION = 3;\nexport var EDIFACT_ENCODATION = 4;\nexport var BASE256_ENCODATION = 5;\n","import StringBuilder from '../../util/StringBuilder';\nimport { ALOG, FACTORS, FACTOR_SETS, LOG } from './constants';\n/**\n * Error Correction Code for ECC200.\n */\nvar ErrorCorrection = /** @class */ (function () {\n function ErrorCorrection() {\n }\n /**\n * Creates the ECC200 error correction for an encoded message.\n *\n * @param codewords the codewords\n * @param symbolInfo information about the symbol to be encoded\n * @return the codewords with interleaved error correction.\n */\n ErrorCorrection.encodeECC200 = function (codewords, symbolInfo) {\n if (codewords.length !== symbolInfo.getDataCapacity()) {\n throw new Error('The number of codewords does not match the selected symbol');\n }\n var sb = new StringBuilder();\n sb.append(codewords);\n var blockCount = symbolInfo.getInterleavedBlockCount();\n if (blockCount === 1) {\n var ecc = this.createECCBlock(codewords, symbolInfo.getErrorCodewords());\n sb.append(ecc);\n }\n else {\n // sb.setLength(sb.capacity());\n var dataSizes = [];\n var errorSizes = [];\n for (var i = 0; i < blockCount; i++) {\n dataSizes[i] = symbolInfo.getDataLengthForInterleavedBlock(i + 1);\n errorSizes[i] = symbolInfo.getErrorLengthForInterleavedBlock(i + 1);\n }\n for (var block = 0; block < blockCount; block++) {\n var temp = new StringBuilder();\n for (var d = block; d < symbolInfo.getDataCapacity(); d += blockCount) {\n temp.append(codewords.charAt(d));\n }\n var ecc = this.createECCBlock(temp.toString(), errorSizes[block]);\n var pos = 0;\n for (var e = block; e < errorSizes[block] * blockCount; e += blockCount) {\n sb.setCharAt(symbolInfo.getDataCapacity() + e, ecc.charAt(pos++));\n }\n }\n }\n return sb.toString();\n };\n ErrorCorrection.createECCBlock = function (codewords, numECWords) {\n var table = -1;\n for (var i = 0; i < FACTOR_SETS.length; i++) {\n if (FACTOR_SETS[i] === numECWords) {\n table = i;\n break;\n }\n }\n if (table < 0) {\n throw new Error('Illegal number of error correction codewords specified: ' + numECWords);\n }\n var poly = FACTORS[table];\n var ecc = [];\n for (var i = 0; i < numECWords; i++) {\n ecc[i] = 0;\n }\n for (var i = 0; i < codewords.length; i++) {\n var m = ecc[numECWords - 1] ^ codewords.charAt(i).charCodeAt(0);\n for (var k = numECWords - 1; k > 0; k--) {\n if (m !== 0 && poly[k] !== 0) {\n ecc[k] = ecc[k - 1] ^ ALOG[(LOG[m] + LOG[poly[k]]) % 255];\n }\n else {\n ecc[k] = ecc[k - 1];\n }\n }\n if (m !== 0 && poly[0] !== 0) {\n ecc[0] = ALOG[(LOG[m] + LOG[poly[0]]) % 255];\n }\n else {\n ecc[0] = 0;\n }\n }\n var eccReversed = [];\n for (var i = 0; i < numECWords; i++) {\n eccReversed[i] = ecc[numECWords - i - 1];\n }\n return eccReversed.map(function (c) { return String.fromCharCode(c); }).join('');\n };\n return ErrorCorrection;\n}());\nexport default ErrorCorrection;\n","import { ASCII_ENCODATION, BASE256_ENCODATION, C40_ENCODATION, EDIFACT_ENCODATION, LATCH_TO_ANSIX12, LATCH_TO_BASE256, LATCH_TO_C40, LATCH_TO_EDIFACT, LATCH_TO_TEXT, TEXT_ENCODATION, UPPER_SHIFT, X12_ENCODATION, } from './constants';\n// tslint:disable-next-line:no-circular-imports\nimport HighLevelEncoder from './HighLevelEncoder';\nvar ASCIIEncoder = /** @class */ (function () {\n function ASCIIEncoder() {\n }\n ASCIIEncoder.prototype.getEncodingMode = function () {\n return ASCII_ENCODATION;\n };\n ASCIIEncoder.prototype.encode = function (context) {\n // step B\n var n = HighLevelEncoder.determineConsecutiveDigitCount(context.getMessage(), context.pos);\n if (n >= 2) {\n context.writeCodeword(this.encodeASCIIDigits(context.getMessage().charCodeAt(context.pos), context.getMessage().charCodeAt(context.pos + 1)));\n context.pos += 2;\n }\n else {\n var c = context.getCurrentChar();\n var newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, this.getEncodingMode());\n if (newMode !== this.getEncodingMode()) {\n switch (newMode) {\n case BASE256_ENCODATION:\n context.writeCodeword(LATCH_TO_BASE256);\n context.signalEncoderChange(BASE256_ENCODATION);\n return;\n case C40_ENCODATION:\n context.writeCodeword(LATCH_TO_C40);\n context.signalEncoderChange(C40_ENCODATION);\n return;\n case X12_ENCODATION:\n context.writeCodeword(LATCH_TO_ANSIX12);\n context.signalEncoderChange(X12_ENCODATION);\n break;\n case TEXT_ENCODATION:\n context.writeCodeword(LATCH_TO_TEXT);\n context.signalEncoderChange(TEXT_ENCODATION);\n break;\n case EDIFACT_ENCODATION:\n context.writeCodeword(LATCH_TO_EDIFACT);\n context.signalEncoderChange(EDIFACT_ENCODATION);\n break;\n default:\n throw new Error('Illegal mode: ' + newMode);\n }\n }\n else if (HighLevelEncoder.isExtendedASCII(c)) {\n context.writeCodeword(UPPER_SHIFT);\n context.writeCodeword(c - 128 + 1);\n context.pos++;\n }\n else {\n context.writeCodeword(c + 1);\n context.pos++;\n }\n }\n };\n ASCIIEncoder.prototype.encodeASCIIDigits = function (digit1, digit2) {\n if (HighLevelEncoder.isDigit(digit1) && HighLevelEncoder.isDigit(digit2)) {\n var num = (digit1 - 48) * 10 + (digit2 - 48);\n return num + 130;\n }\n throw new Error('not digits: ' + digit1 + digit2);\n };\n return ASCIIEncoder;\n}());\nexport { ASCIIEncoder };\n","import StringUtils from '../../common/StringUtils';\nimport StringBuilder from '../../util/StringBuilder';\nimport HighLevelEncoder from './HighLevelEncoder';\nimport { BASE256_ENCODATION, ASCII_ENCODATION } from './constants';\nvar Base256Encoder = /** @class */ (function () {\n function Base256Encoder() {\n }\n Base256Encoder.prototype.getEncodingMode = function () {\n return BASE256_ENCODATION;\n };\n Base256Encoder.prototype.encode = function (context) {\n var buffer = new StringBuilder();\n buffer.append(0); // Initialize length field\n while (context.hasMoreCharacters()) {\n var c = context.getCurrentChar();\n buffer.append(c);\n context.pos++;\n var newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, this.getEncodingMode());\n if (newMode !== this.getEncodingMode()) {\n // Return to ASCII encodation, which will actually handle latch to new mode\n context.signalEncoderChange(ASCII_ENCODATION);\n break;\n }\n }\n var dataCount = buffer.length() - 1;\n var lengthFieldSize = 1;\n var currentSize = context.getCodewordCount() + dataCount + lengthFieldSize;\n context.updateSymbolInfo(currentSize);\n var mustPad = context.getSymbolInfo().getDataCapacity() - currentSize > 0;\n if (context.hasMoreCharacters() || mustPad) {\n if (dataCount <= 249) {\n buffer.setCharAt(0, StringUtils.getCharAt(dataCount));\n }\n else if (dataCount <= 1555) {\n buffer.setCharAt(0, StringUtils.getCharAt(Math.floor(dataCount / 250) + 249));\n buffer.insert(1, StringUtils.getCharAt(dataCount % 250));\n }\n else {\n throw new Error('Message length not in valid ranges: ' + dataCount);\n }\n }\n for (var i = 0, c = buffer.length(); i < c; i++) {\n context.writeCodeword(this.randomize255State(buffer.charAt(i).charCodeAt(0), context.getCodewordCount() + 1));\n }\n };\n Base256Encoder.prototype.randomize255State = function (ch, codewordPosition) {\n var pseudoRandom = ((149 * codewordPosition) % 255) + 1;\n var tempVariable = ch + pseudoRandom;\n if (tempVariable <= 255) {\n return tempVariable;\n }\n else {\n return tempVariable - 256;\n }\n };\n return Base256Encoder;\n}());\nexport { Base256Encoder };\n","import StringBuilder from '../../util/StringBuilder';\nimport HighLevelEncoder from './HighLevelEncoder';\nimport { C40_ENCODATION, LATCH_TO_C40, ASCII_ENCODATION, C40_UNLATCH, } from './constants';\nvar C40Encoder = /** @class */ (function () {\n function C40Encoder() {\n }\n C40Encoder.prototype.getEncodingMode = function () {\n return C40_ENCODATION;\n };\n C40Encoder.prototype.encodeMaximal = function (context) {\n var buffer = new StringBuilder();\n var lastCharSize = 0;\n var backtrackStartPosition = context.pos;\n var backtrackBufferLength = 0;\n while (context.hasMoreCharacters()) {\n var c = context.getCurrentChar();\n context.pos++;\n lastCharSize = this.encodeChar(c, buffer);\n if (buffer.length() % 3 === 0) {\n backtrackStartPosition = context.pos;\n backtrackBufferLength = buffer.length();\n }\n }\n if (backtrackBufferLength !== buffer.length()) {\n var unwritten = Math.floor((buffer.length() / 3) * 2);\n var curCodewordCount = Math.floor(context.getCodewordCount() + unwritten + 1); // +1 for the latch to C40\n context.updateSymbolInfo(curCodewordCount);\n var available = context.getSymbolInfo().getDataCapacity() - curCodewordCount;\n var rest = Math.floor(buffer.length() % 3);\n if ((rest === 2 && available !== 2) ||\n (rest === 1 && (lastCharSize > 3 || available !== 1))) {\n // buffer.setLength(backtrackBufferLength);\n context.pos = backtrackStartPosition;\n }\n }\n if (buffer.length() > 0) {\n context.writeCodeword(LATCH_TO_C40);\n }\n this.handleEOD(context, buffer);\n };\n C40Encoder.prototype.encode = function (context) {\n // step C\n var buffer = new StringBuilder();\n while (context.hasMoreCharacters()) {\n var c = context.getCurrentChar();\n context.pos++;\n var lastCharSize = this.encodeChar(c, buffer);\n var unwritten = Math.floor(buffer.length() / 3) * 2;\n var curCodewordCount = context.getCodewordCount() + unwritten;\n context.updateSymbolInfo(curCodewordCount);\n var available = context.getSymbolInfo().getDataCapacity() - curCodewordCount;\n if (!context.hasMoreCharacters()) {\n // Avoid having a single C40 value in the last triplet\n var removed = new StringBuilder();\n if (buffer.length() % 3 === 2 && available !== 2) {\n lastCharSize = this.backtrackOneCharacter(context, buffer, removed, lastCharSize);\n }\n while (buffer.length() % 3 === 1 &&\n (lastCharSize > 3 || available !== 1)) {\n lastCharSize = this.backtrackOneCharacter(context, buffer, removed, lastCharSize);\n }\n break;\n }\n var count = buffer.length();\n if (count % 3 === 0) {\n var newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, this.getEncodingMode());\n if (newMode !== this.getEncodingMode()) {\n // Return to ASCII encodation, which will actually handle latch to new mode\n context.signalEncoderChange(ASCII_ENCODATION);\n break;\n }\n }\n }\n this.handleEOD(context, buffer);\n };\n C40Encoder.prototype.backtrackOneCharacter = function (context, buffer, removed, lastCharSize) {\n var count = buffer.length();\n var test = buffer.toString().substring(0, count - lastCharSize);\n buffer.setLengthToZero();\n buffer.append(test);\n // buffer.delete(count - lastCharSize, count);\n /*for (let i = count - lastCharSize; i < count; i++) {\n buffer.deleteCharAt(i);\n }*/\n context.pos--;\n var c = context.getCurrentChar();\n lastCharSize = this.encodeChar(c, removed);\n context.resetSymbolInfo(); // Deal with possible reduction in symbol size\n return lastCharSize;\n };\n C40Encoder.prototype.writeNextTriplet = function (context, buffer) {\n context.writeCodewords(this.encodeToCodewords(buffer.toString()));\n var test = buffer.toString().substring(3);\n buffer.setLengthToZero();\n buffer.append(test);\n // buffer.delete(0, 3);\n /*for (let i = 0; i < 3; i++) {\n buffer.deleteCharAt(i);\n }*/\n };\n /**\n * Handle \"end of data\" situations\n *\n * @param context the encoder context\n * @param buffer the buffer with the remaining encoded characters\n */\n C40Encoder.prototype.handleEOD = function (context, buffer) {\n var unwritten = Math.floor((buffer.length() / 3) * 2);\n var rest = buffer.length() % 3;\n var curCodewordCount = context.getCodewordCount() + unwritten;\n context.updateSymbolInfo(curCodewordCount);\n var available = context.getSymbolInfo().getDataCapacity() - curCodewordCount;\n if (rest === 2) {\n buffer.append('\\0'); // Shift 1\n while (buffer.length() >= 3) {\n this.writeNextTriplet(context, buffer);\n }\n if (context.hasMoreCharacters()) {\n context.writeCodeword(C40_UNLATCH);\n }\n }\n else if (available === 1 && rest === 1) {\n while (buffer.length() >= 3) {\n this.writeNextTriplet(context, buffer);\n }\n if (context.hasMoreCharacters()) {\n context.writeCodeword(C40_UNLATCH);\n }\n // else no unlatch\n context.pos--;\n }\n else if (rest === 0) {\n while (buffer.length() >= 3) {\n this.writeNextTriplet(context, buffer);\n }\n if (available > 0 || context.hasMoreCharacters()) {\n context.writeCodeword(C40_UNLATCH);\n }\n }\n else {\n throw new Error('Unexpected case. Please report!');\n }\n context.signalEncoderChange(ASCII_ENCODATION);\n };\n C40Encoder.prototype.encodeChar = function (c, sb) {\n if (c === ' '.charCodeAt(0)) {\n sb.append(3);\n return 1;\n }\n if (c >= '0'.charCodeAt(0) && c <= '9'.charCodeAt(0)) {\n sb.append(c - 48 + 4);\n return 1;\n }\n if (c >= 'A'.charCodeAt(0) && c <= 'Z'.charCodeAt(0)) {\n sb.append(c - 65 + 14);\n return 1;\n }\n if (c < ' '.charCodeAt(0)) {\n sb.append(0); // Shift 1 Set\n sb.append(c);\n return 2;\n }\n if (c <= '/'.charCodeAt(0)) {\n sb.append(1); // Shift 2 Set\n sb.append(c - 33);\n return 2;\n }\n if (c <= '@'.charCodeAt(0)) {\n sb.append(1); // Shift 2 Set\n sb.append(c - 58 + 15);\n return 2;\n }\n if (c <= '_'.charCodeAt(0)) {\n sb.append(1); // Shift 2 Set\n sb.append(c - 91 + 22);\n return 2;\n }\n if (c <= 127) {\n sb.append(2); // Shift 3 Set\n sb.append(c - 96);\n return 2;\n }\n sb.append(1 + \"\\u001E\"); // Shift 2, Upper Shift\n var len = 2;\n len += this.encodeChar(c - 128, sb);\n return len;\n };\n C40Encoder.prototype.encodeToCodewords = function (sb) {\n var v = 1600 * sb.charCodeAt(0) + 40 * sb.charCodeAt(1) + sb.charCodeAt(2) + 1;\n var cw1 = v / 256;\n var cw2 = v % 256;\n var result = new StringBuilder();\n result.append(cw1);\n result.append(cw2);\n return result.toString();\n };\n return C40Encoder;\n}());\nexport { C40Encoder };\n","import StringUtils from '../../common/StringUtils';\nimport StringBuilder from '../../util/StringBuilder';\nimport { EDIFACT_ENCODATION, ASCII_ENCODATION } from './constants';\nimport HighLevelEncoder from './HighLevelEncoder';\nvar EdifactEncoder = /** @class */ (function () {\n function EdifactEncoder() {\n }\n EdifactEncoder.prototype.getEncodingMode = function () {\n return EDIFACT_ENCODATION;\n };\n EdifactEncoder.prototype.encode = function (context) {\n // step F\n var buffer = new StringBuilder();\n while (context.hasMoreCharacters()) {\n var c = context.getCurrentChar();\n this.encodeChar(c, buffer);\n context.pos++;\n var count = buffer.length();\n if (count >= 4) {\n context.writeCodewords(this.encodeToCodewords(buffer.toString()));\n var test_1 = buffer.toString().substring(4);\n buffer.setLengthToZero();\n buffer.append(test_1);\n // buffer.delete(0, 4);\n // for (let i = 0; i < 4; i++) {\n // buffer.deleteCharAt(i);\n // }\n var newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, this.getEncodingMode());\n if (newMode !== this.getEncodingMode()) {\n // Return to ASCII encodation, which will actually handle latch to new mode\n context.signalEncoderChange(ASCII_ENCODATION);\n break;\n }\n }\n }\n buffer.append(StringUtils.getCharAt(31)); // Unlatch\n this.handleEOD(context, buffer);\n };\n /**\n * Handle \"end of data\" situations\n *\n * @param context the encoder context\n * @param buffer the buffer with the remaining encoded characters\n */\n EdifactEncoder.prototype.handleEOD = function (context, buffer) {\n try {\n var count = buffer.length();\n if (count === 0) {\n return; // Already finished\n }\n if (count === 1) {\n // Only an unlatch at the end\n context.updateSymbolInfo();\n var available = context.getSymbolInfo().getDataCapacity() -\n context.getCodewordCount();\n var remaining = context.getRemainingCharacters();\n // The following two lines are a hack inspired by the 'fix' from https://sourceforge.net/p/barcode4j/svn/221/\n if (remaining > available) {\n context.updateSymbolInfo(context.getCodewordCount() + 1);\n available =\n context.getSymbolInfo().getDataCapacity() -\n context.getCodewordCount();\n }\n if (remaining <= available && available <= 2) {\n return; // No unlatch\n }\n }\n if (count > 4) {\n throw new Error('Count must not exceed 4');\n }\n var restChars = count - 1;\n var encoded = this.encodeToCodewords(buffer.toString());\n var endOfSymbolReached = !context.hasMoreCharacters();\n var restInAscii = endOfSymbolReached && restChars <= 2;\n if (restChars <= 2) {\n context.updateSymbolInfo(context.getCodewordCount() + restChars);\n var available = context.getSymbolInfo().getDataCapacity() -\n context.getCodewordCount();\n if (available >= 3) {\n restInAscii = false;\n context.updateSymbolInfo(context.getCodewordCount() + encoded.length);\n // available = context.symbolInfo.dataCapacity - context.getCodewordCount();\n }\n }\n if (restInAscii) {\n context.resetSymbolInfo();\n context.pos -= restChars;\n }\n else {\n context.writeCodewords(encoded);\n }\n }\n finally {\n context.signalEncoderChange(ASCII_ENCODATION);\n }\n };\n EdifactEncoder.prototype.encodeChar = function (c, sb) {\n if (c >= ' '.charCodeAt(0) && c <= '?'.charCodeAt(0)) {\n sb.append(c);\n }\n else if (c >= '@'.charCodeAt(0) && c <= '^'.charCodeAt(0)) {\n sb.append(StringUtils.getCharAt(c - 64));\n }\n else {\n HighLevelEncoder.illegalCharacter(StringUtils.getCharAt(c));\n }\n };\n EdifactEncoder.prototype.encodeToCodewords = function (sb) {\n var len = sb.length;\n if (len === 0) {\n throw new Error('StringBuilder must not be empty');\n }\n var c1 = sb.charAt(0).charCodeAt(0);\n var c2 = len >= 2 ? sb.charAt(1).charCodeAt(0) : 0;\n var c3 = len >= 3 ? sb.charAt(2).charCodeAt(0) : 0;\n var c4 = len >= 4 ? sb.charAt(3).charCodeAt(0) : 0;\n var v = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4;\n var cw1 = (v >> 16) & 255;\n var cw2 = (v >> 8) & 255;\n var cw3 = v & 255;\n var res = new StringBuilder();\n res.append(cw1);\n if (len >= 2) {\n res.append(cw2);\n }\n if (len >= 3) {\n res.append(cw3);\n }\n return res.toString();\n };\n return EdifactEncoder;\n}());\nexport { EdifactEncoder };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Symbol info table for DataMatrix.\n */\nvar SymbolInfo = /** @class */ (function () {\n function SymbolInfo(rectangular, dataCapacity, errorCodewords, matrixWidth, matrixHeight, dataRegions, rsBlockData, rsBlockError) {\n if (rsBlockData === void 0) { rsBlockData = 0; }\n if (rsBlockError === void 0) { rsBlockError = 0; }\n this.rectangular = rectangular;\n this.dataCapacity = dataCapacity;\n this.errorCodewords = errorCodewords;\n this.matrixWidth = matrixWidth;\n this.matrixHeight = matrixHeight;\n this.dataRegions = dataRegions;\n this.rsBlockData = rsBlockData;\n this.rsBlockError = rsBlockError;\n }\n SymbolInfo.lookup = function (dataCodewords, shape, minSize, maxSize, fail) {\n var e_1, _a;\n if (shape === void 0) { shape = 0 /* FORCE_NONE */; }\n if (minSize === void 0) { minSize = null; }\n if (maxSize === void 0) { maxSize = null; }\n if (fail === void 0) { fail = true; }\n try {\n for (var PROD_SYMBOLS_1 = __values(PROD_SYMBOLS), PROD_SYMBOLS_1_1 = PROD_SYMBOLS_1.next(); !PROD_SYMBOLS_1_1.done; PROD_SYMBOLS_1_1 = PROD_SYMBOLS_1.next()) {\n var symbol = PROD_SYMBOLS_1_1.value;\n if (shape === 1 /* FORCE_SQUARE */ && symbol.rectangular) {\n continue;\n }\n if (shape === 2 /* FORCE_RECTANGLE */ && !symbol.rectangular) {\n continue;\n }\n if (minSize != null &&\n (symbol.getSymbolWidth() < minSize.getWidth() ||\n symbol.getSymbolHeight() < minSize.getHeight())) {\n continue;\n }\n if (maxSize != null &&\n (symbol.getSymbolWidth() > maxSize.getWidth() ||\n symbol.getSymbolHeight() > maxSize.getHeight())) {\n continue;\n }\n if (dataCodewords <= symbol.dataCapacity) {\n return symbol;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (PROD_SYMBOLS_1_1 && !PROD_SYMBOLS_1_1.done && (_a = PROD_SYMBOLS_1.return)) _a.call(PROD_SYMBOLS_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (fail) {\n throw new Error(\"Can't find a symbol arrangement that matches the message. Data codewords: \" +\n dataCodewords);\n }\n return null;\n };\n SymbolInfo.prototype.getHorizontalDataRegions = function () {\n switch (this.dataRegions) {\n case 1:\n return 1;\n case 2:\n case 4:\n return 2;\n case 16:\n return 4;\n case 36:\n return 6;\n default:\n throw new Error('Cannot handle this number of data regions');\n }\n };\n SymbolInfo.prototype.getVerticalDataRegions = function () {\n switch (this.dataRegions) {\n case 1:\n case 2:\n return 1;\n case 4:\n return 2;\n case 16:\n return 4;\n case 36:\n return 6;\n default:\n throw new Error('Cannot handle this number of data regions');\n }\n };\n SymbolInfo.prototype.getSymbolDataWidth = function () {\n return this.getHorizontalDataRegions() * this.matrixWidth;\n };\n SymbolInfo.prototype.getSymbolDataHeight = function () {\n return this.getVerticalDataRegions() * this.matrixHeight;\n };\n SymbolInfo.prototype.getSymbolWidth = function () {\n return this.getSymbolDataWidth() + this.getHorizontalDataRegions() * 2;\n };\n SymbolInfo.prototype.getSymbolHeight = function () {\n return this.getSymbolDataHeight() + this.getVerticalDataRegions() * 2;\n };\n SymbolInfo.prototype.getCodewordCount = function () {\n return this.dataCapacity + this.errorCodewords;\n };\n SymbolInfo.prototype.getInterleavedBlockCount = function () {\n if (!this.rsBlockData)\n return 1;\n return this.dataCapacity / this.rsBlockData;\n };\n SymbolInfo.prototype.getDataCapacity = function () {\n return this.dataCapacity;\n };\n SymbolInfo.prototype.getErrorCodewords = function () {\n return this.errorCodewords;\n };\n SymbolInfo.prototype.getDataLengthForInterleavedBlock = function (index) {\n return this.rsBlockData;\n };\n SymbolInfo.prototype.getErrorLengthForInterleavedBlock = function (index) {\n return this.rsBlockError;\n };\n return SymbolInfo;\n}());\nexport default SymbolInfo;\nvar DataMatrixSymbolInfo144 = /** @class */ (function (_super) {\n __extends(DataMatrixSymbolInfo144, _super);\n function DataMatrixSymbolInfo144() {\n return _super.call(this, false, 1558, 620, 22, 22, 36, -1, 62) || this;\n }\n DataMatrixSymbolInfo144.prototype.getInterleavedBlockCount = function () {\n return 10;\n };\n DataMatrixSymbolInfo144.prototype.getDataLengthForInterleavedBlock = function (index) {\n return index <= 8 ? 156 : 155;\n };\n return DataMatrixSymbolInfo144;\n}(SymbolInfo));\nexport var PROD_SYMBOLS = [\n new SymbolInfo(false, 3, 5, 8, 8, 1),\n new SymbolInfo(false, 5, 7, 10, 10, 1),\n /*rect*/ new SymbolInfo(true, 5, 7, 16, 6, 1),\n new SymbolInfo(false, 8, 10, 12, 12, 1),\n /*rect*/ new SymbolInfo(true, 10, 11, 14, 6, 2),\n new SymbolInfo(false, 12, 12, 14, 14, 1),\n /*rect*/ new SymbolInfo(true, 16, 14, 24, 10, 1),\n new SymbolInfo(false, 18, 14, 16, 16, 1),\n new SymbolInfo(false, 22, 18, 18, 18, 1),\n /*rect*/ new SymbolInfo(true, 22, 18, 16, 10, 2),\n new SymbolInfo(false, 30, 20, 20, 20, 1),\n /*rect*/ new SymbolInfo(true, 32, 24, 16, 14, 2),\n new SymbolInfo(false, 36, 24, 22, 22, 1),\n new SymbolInfo(false, 44, 28, 24, 24, 1),\n /*rect*/ new SymbolInfo(true, 49, 28, 22, 14, 2),\n new SymbolInfo(false, 62, 36, 14, 14, 4),\n new SymbolInfo(false, 86, 42, 16, 16, 4),\n new SymbolInfo(false, 114, 48, 18, 18, 4),\n new SymbolInfo(false, 144, 56, 20, 20, 4),\n new SymbolInfo(false, 174, 68, 22, 22, 4),\n new SymbolInfo(false, 204, 84, 24, 24, 4, 102, 42),\n new SymbolInfo(false, 280, 112, 14, 14, 16, 140, 56),\n new SymbolInfo(false, 368, 144, 16, 16, 16, 92, 36),\n new SymbolInfo(false, 456, 192, 18, 18, 16, 114, 48),\n new SymbolInfo(false, 576, 224, 20, 20, 16, 144, 56),\n new SymbolInfo(false, 696, 272, 22, 22, 16, 174, 68),\n new SymbolInfo(false, 816, 336, 24, 24, 16, 136, 56),\n new SymbolInfo(false, 1050, 408, 18, 18, 36, 175, 68),\n new SymbolInfo(false, 1304, 496, 20, 20, 36, 163, 62),\n new DataMatrixSymbolInfo144(),\n];\n","import StringBuilder from '../../util/StringBuilder';\nimport SymbolInfo from './SymbolInfo';\nvar EncoderContext = /** @class */ (function () {\n function EncoderContext(msg) {\n this.msg = msg;\n this.pos = 0;\n this.skipAtEnd = 0;\n // From this point on Strings are not Unicode anymore!\n var msgBinary = msg.split('').map(function (c) { return c.charCodeAt(0); });\n var sb = new StringBuilder();\n for (var i = 0, c = msgBinary.length; i < c; i++) {\n var ch = String.fromCharCode(msgBinary[i] & 0xff);\n if (ch === '?' && msg.charAt(i) !== '?') {\n throw new Error('Message contains characters outside ISO-8859-1 encoding.');\n }\n sb.append(ch);\n }\n this.msg = sb.toString(); // Not Unicode here!\n this.shape = 0 /* FORCE_NONE */;\n this.codewords = new StringBuilder();\n this.newEncoding = -1;\n }\n EncoderContext.prototype.setSymbolShape = function (shape) {\n this.shape = shape;\n };\n EncoderContext.prototype.setSizeConstraints = function (minSize, maxSize) {\n this.minSize = minSize;\n this.maxSize = maxSize;\n };\n EncoderContext.prototype.getMessage = function () {\n return this.msg;\n };\n EncoderContext.prototype.setSkipAtEnd = function (count) {\n this.skipAtEnd = count;\n };\n EncoderContext.prototype.getCurrentChar = function () {\n return this.msg.charCodeAt(this.pos);\n };\n EncoderContext.prototype.getCurrent = function () {\n return this.msg.charCodeAt(this.pos);\n };\n EncoderContext.prototype.getCodewords = function () {\n return this.codewords;\n };\n EncoderContext.prototype.writeCodewords = function (codewords) {\n this.codewords.append(codewords);\n };\n EncoderContext.prototype.writeCodeword = function (codeword) {\n this.codewords.append(codeword);\n };\n EncoderContext.prototype.getCodewordCount = function () {\n return this.codewords.length();\n };\n EncoderContext.prototype.getNewEncoding = function () {\n return this.newEncoding;\n };\n EncoderContext.prototype.signalEncoderChange = function (encoding) {\n this.newEncoding = encoding;\n };\n EncoderContext.prototype.resetEncoderSignal = function () {\n this.newEncoding = -1;\n };\n EncoderContext.prototype.hasMoreCharacters = function () {\n return this.pos < this.getTotalMessageCharCount();\n };\n EncoderContext.prototype.getTotalMessageCharCount = function () {\n return this.msg.length - this.skipAtEnd;\n };\n EncoderContext.prototype.getRemainingCharacters = function () {\n return this.getTotalMessageCharCount() - this.pos;\n };\n EncoderContext.prototype.getSymbolInfo = function () {\n return this.symbolInfo;\n };\n EncoderContext.prototype.updateSymbolInfo = function (len) {\n if (len === void 0) { len = this.getCodewordCount(); }\n if (this.symbolInfo == null || len > this.symbolInfo.getDataCapacity()) {\n this.symbolInfo = SymbolInfo.lookup(len, this.shape, this.minSize, this.maxSize, true);\n }\n };\n EncoderContext.prototype.resetSymbolInfo = function () {\n this.symbolInfo = null;\n };\n return EncoderContext;\n}());\nexport { EncoderContext };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport StringUtils from '../../common/StringUtils';\nimport StringBuilder from '../../util/StringBuilder';\nimport { C40Encoder } from './C40Encoder';\nimport HighLevelEncoder from './HighLevelEncoder';\nimport { X12_ENCODATION, ASCII_ENCODATION, X12_UNLATCH } from './constants';\nvar X12Encoder = /** @class */ (function (_super) {\n __extends(X12Encoder, _super);\n function X12Encoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n X12Encoder.prototype.getEncodingMode = function () {\n return X12_ENCODATION;\n };\n X12Encoder.prototype.encode = function (context) {\n // step C\n var buffer = new StringBuilder();\n while (context.hasMoreCharacters()) {\n var c = context.getCurrentChar();\n context.pos++;\n this.encodeChar(c, buffer);\n var count = buffer.length();\n if (count % 3 === 0) {\n this.writeNextTriplet(context, buffer);\n var newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, this.getEncodingMode());\n if (newMode !== this.getEncodingMode()) {\n // Return to ASCII encodation, which will actually handle latch to new mode\n context.signalEncoderChange(ASCII_ENCODATION);\n break;\n }\n }\n }\n this.handleEOD(context, buffer);\n };\n X12Encoder.prototype.encodeChar = function (c, sb) {\n switch (c) {\n case 13: // CR (Carriage return)\n sb.append(0);\n break;\n case '*'.charCodeAt(0):\n sb.append(1);\n break;\n case '>'.charCodeAt(0):\n sb.append(2);\n break;\n case ' '.charCodeAt(0):\n sb.append(3);\n break;\n default:\n if (c >= '0'.charCodeAt(0) && c <= '9'.charCodeAt(0)) {\n sb.append(c - 48 + 4);\n }\n else if (c >= 'A'.charCodeAt(0) && c <= 'Z'.charCodeAt(0)) {\n sb.append(c - 65 + 14);\n }\n else {\n HighLevelEncoder.illegalCharacter(StringUtils.getCharAt(c));\n }\n break;\n }\n return 1;\n };\n X12Encoder.prototype.handleEOD = function (context, buffer) {\n context.updateSymbolInfo();\n var available = context.getSymbolInfo().getDataCapacity() - context.getCodewordCount();\n var count = buffer.length();\n context.pos -= count;\n if (context.getRemainingCharacters() > 1 ||\n available > 1 ||\n context.getRemainingCharacters() !== available) {\n context.writeCodeword(X12_UNLATCH);\n }\n if (context.getNewEncoding() < 0) {\n context.signalEncoderChange(ASCII_ENCODATION);\n }\n };\n return X12Encoder;\n}(C40Encoder));\nexport { X12Encoder };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { C40Encoder } from './C40Encoder';\nimport { TEXT_ENCODATION } from './constants';\nvar TextEncoder = /** @class */ (function (_super) {\n __extends(TextEncoder, _super);\n function TextEncoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextEncoder.prototype.getEncodingMode = function () {\n return TEXT_ENCODATION;\n };\n TextEncoder.prototype.encodeChar = function (c, sb) {\n if (c === ' '.charCodeAt(0)) {\n sb.append(3);\n return 1;\n }\n if (c >= '0'.charCodeAt(0) && c <= '9'.charCodeAt(0)) {\n sb.append(c - 48 + 4);\n return 1;\n }\n if (c >= 'a'.charCodeAt(0) && c <= 'z'.charCodeAt(0)) {\n sb.append(c - 97 + 14);\n return 1;\n }\n if (c < ' '.charCodeAt(0)) {\n sb.append(0); // Shift 1 Set\n sb.append(c);\n return 2;\n }\n if (c <= '/'.charCodeAt(0)) {\n sb.append(1); // Shift 2 Set\n sb.append(c - 33);\n return 2;\n }\n if (c <= '@'.charCodeAt(0)) {\n sb.append(1); // Shift 2 Set\n sb.append(c - 58 + 15);\n return 2;\n }\n if (c >= '['.charCodeAt(0) && c <= '_'.charCodeAt(0)) {\n sb.append(1); // Shift 2 Set\n sb.append(c - 91 + 22);\n return 2;\n }\n if (c === '`'.charCodeAt(0)) {\n sb.append(2); // Shift 3 Set\n sb.append(0); // '`' - 96 == 0\n return 2;\n }\n if (c <= 'Z'.charCodeAt(0)) {\n sb.append(2); // Shift 3 Set\n sb.append(c - 65 + 1);\n return 2;\n }\n if (c <= 127) {\n sb.append(2); // Shift 3 Set\n sb.append(c - 123 + 27);\n return 2;\n }\n sb.append(1 + \"\\u001E\"); // Shift 2, Upper Shift\n var len = 2;\n len += this.encodeChar(c - 128, sb);\n return len;\n };\n return TextEncoder;\n}(C40Encoder));\nexport { TextEncoder };\n","// tslint:disable-next-line:no-circular-imports\nimport { ASCIIEncoder } from './ASCIIEncoder';\n// tslint:disable-next-line:no-circular-imports\nimport { Base256Encoder } from './Base256Encoder';\n// tslint:disable-next-line:no-circular-imports\nimport { C40Encoder } from './C40Encoder';\nimport { ASCII_ENCODATION, BASE256_ENCODATION, C40_ENCODATION, EDIFACT_ENCODATION, MACRO_05, MACRO_05_HEADER, MACRO_06, MACRO_06_HEADER, MACRO_TRAILER, PAD, TEXT_ENCODATION, X12_ENCODATION, } from './constants';\n// tslint:disable-next-line:no-circular-imports\nimport { EdifactEncoder } from './EdifactEncoder';\nimport { EncoderContext } from './EncoderContext';\n// tslint:disable-next-line:no-circular-imports\nimport { X12Encoder } from './X12Encoder';\n// tslint:disable-next-line:no-circular-imports\nimport { TextEncoder } from './TextEncoder';\nimport Arrays from '../../util/Arrays';\nimport Integer from '../../util/Integer';\n/**\n * DataMatrix ECC 200 data encoder following the algorithm described in ISO/IEC 16022:200(E) in\n * annex S.\n */\nvar HighLevelEncoder = /** @class */ (function () {\n function HighLevelEncoder() {\n }\n HighLevelEncoder.randomize253State = function (codewordPosition) {\n var pseudoRandom = ((149 * codewordPosition) % 253) + 1;\n var tempVariable = PAD + pseudoRandom;\n return tempVariable <= 254 ? tempVariable : tempVariable - 254;\n };\n /**\n * Performs message encoding of a DataMatrix message using the algorithm described in annex P\n * of ISO/IEC 16022:2000(E).\n *\n * @param msg the message\n * @param shape requested shape. May be {@code SymbolShapeHint.FORCE_NONE},\n * {@code SymbolShapeHint.FORCE_SQUARE} or {@code SymbolShapeHint.FORCE_RECTANGLE}.\n * @param minSize the minimum symbol size constraint or null for no constraint\n * @param maxSize the maximum symbol size constraint or null for no constraint\n * @param forceC40 enforce C40 encoding\n * @return the encoded message (the char values range from 0 to 255)\n */\n HighLevelEncoder.encodeHighLevel = function (msg, shape, minSize, maxSize, forceC40) {\n if (shape === void 0) { shape = 0 /* FORCE_NONE */; }\n if (minSize === void 0) { minSize = null; }\n if (maxSize === void 0) { maxSize = null; }\n if (forceC40 === void 0) { forceC40 = false; }\n // the codewords 0..255 are encoded as Unicode characters\n var c40Encoder = new C40Encoder();\n var encoders = [\n new ASCIIEncoder(),\n c40Encoder,\n new TextEncoder(),\n new X12Encoder(),\n new EdifactEncoder(),\n new Base256Encoder(),\n ];\n var context = new EncoderContext(msg);\n context.setSymbolShape(shape);\n context.setSizeConstraints(minSize, maxSize);\n if (msg.startsWith(MACRO_05_HEADER) && msg.endsWith(MACRO_TRAILER)) {\n context.writeCodeword(MACRO_05);\n context.setSkipAtEnd(2);\n context.pos += MACRO_05_HEADER.length;\n }\n else if (msg.startsWith(MACRO_06_HEADER) && msg.endsWith(MACRO_TRAILER)) {\n context.writeCodeword(MACRO_06);\n context.setSkipAtEnd(2);\n context.pos += MACRO_06_HEADER.length;\n }\n var encodingMode = ASCII_ENCODATION; // Default mode\n if (forceC40) {\n c40Encoder.encodeMaximal(context);\n encodingMode = context.getNewEncoding();\n context.resetEncoderSignal();\n }\n while (context.hasMoreCharacters()) {\n encoders[encodingMode].encode(context);\n if (context.getNewEncoding() >= 0) {\n encodingMode = context.getNewEncoding();\n context.resetEncoderSignal();\n }\n }\n var len = context.getCodewordCount();\n context.updateSymbolInfo();\n var capacity = context.getSymbolInfo().getDataCapacity();\n if (len < capacity &&\n encodingMode !== ASCII_ENCODATION &&\n encodingMode !== BASE256_ENCODATION &&\n encodingMode !== EDIFACT_ENCODATION) {\n context.writeCodeword('\\u00fe'); // Unlatch (254)\n }\n // Padding\n var codewords = context.getCodewords();\n if (codewords.length() < capacity) {\n codewords.append(PAD);\n }\n while (codewords.length() < capacity) {\n codewords.append(this.randomize253State(codewords.length() + 1));\n }\n return context.getCodewords().toString();\n };\n HighLevelEncoder.lookAheadTest = function (msg, startpos, currentMode) {\n var newMode = this.lookAheadTestIntern(msg, startpos, currentMode);\n if (currentMode === X12_ENCODATION && newMode === X12_ENCODATION) {\n var endpos = Math.min(startpos + 3, msg.length);\n for (var i = startpos; i < endpos; i++) {\n if (!this.isNativeX12(msg.charCodeAt(i))) {\n return ASCII_ENCODATION;\n }\n }\n }\n else if (currentMode === EDIFACT_ENCODATION &&\n newMode === EDIFACT_ENCODATION) {\n var endpos = Math.min(startpos + 4, msg.length);\n for (var i = startpos; i < endpos; i++) {\n if (!this.isNativeEDIFACT(msg.charCodeAt(i))) {\n return ASCII_ENCODATION;\n }\n }\n }\n return newMode;\n };\n HighLevelEncoder.lookAheadTestIntern = function (msg, startpos, currentMode) {\n if (startpos >= msg.length) {\n return currentMode;\n }\n var charCounts;\n // step J\n if (currentMode === ASCII_ENCODATION) {\n charCounts = [0, 1, 1, 1, 1, 1.25];\n }\n else {\n charCounts = [1, 2, 2, 2, 2, 2.25];\n charCounts[currentMode] = 0;\n }\n var charsProcessed = 0;\n var mins = new Uint8Array(6);\n var intCharCounts = [];\n while (true) {\n // step K\n if (startpos + charsProcessed === msg.length) {\n Arrays.fill(mins, 0);\n Arrays.fill(intCharCounts, 0);\n var min = this.findMinimums(charCounts, intCharCounts, Integer.MAX_VALUE, mins);\n var minCount = this.getMinimumCount(mins);\n if (intCharCounts[ASCII_ENCODATION] === min) {\n return ASCII_ENCODATION;\n }\n if (minCount === 1) {\n if (mins[BASE256_ENCODATION] > 0) {\n return BASE256_ENCODATION;\n }\n if (mins[EDIFACT_ENCODATION] > 0) {\n return EDIFACT_ENCODATION;\n }\n if (mins[TEXT_ENCODATION] > 0) {\n return TEXT_ENCODATION;\n }\n if (mins[X12_ENCODATION] > 0) {\n return X12_ENCODATION;\n }\n }\n return C40_ENCODATION;\n }\n var c = msg.charCodeAt(startpos + charsProcessed);\n charsProcessed++;\n // step L\n if (this.isDigit(c)) {\n charCounts[ASCII_ENCODATION] += 0.5;\n }\n else if (this.isExtendedASCII(c)) {\n charCounts[ASCII_ENCODATION] = Math.ceil(charCounts[ASCII_ENCODATION]);\n charCounts[ASCII_ENCODATION] += 2.0;\n }\n else {\n charCounts[ASCII_ENCODATION] = Math.ceil(charCounts[ASCII_ENCODATION]);\n charCounts[ASCII_ENCODATION]++;\n }\n // step M\n if (this.isNativeC40(c)) {\n charCounts[C40_ENCODATION] += 2.0 / 3.0;\n }\n else if (this.isExtendedASCII(c)) {\n charCounts[C40_ENCODATION] += 8.0 / 3.0;\n }\n else {\n charCounts[C40_ENCODATION] += 4.0 / 3.0;\n }\n // step N\n if (this.isNativeText(c)) {\n charCounts[TEXT_ENCODATION] += 2.0 / 3.0;\n }\n else if (this.isExtendedASCII(c)) {\n charCounts[TEXT_ENCODATION] += 8.0 / 3.0;\n }\n else {\n charCounts[TEXT_ENCODATION] += 4.0 / 3.0;\n }\n // step O\n if (this.isNativeX12(c)) {\n charCounts[X12_ENCODATION] += 2.0 / 3.0;\n }\n else if (this.isExtendedASCII(c)) {\n charCounts[X12_ENCODATION] += 13.0 / 3.0;\n }\n else {\n charCounts[X12_ENCODATION] += 10.0 / 3.0;\n }\n // step P\n if (this.isNativeEDIFACT(c)) {\n charCounts[EDIFACT_ENCODATION] += 3.0 / 4.0;\n }\n else if (this.isExtendedASCII(c)) {\n charCounts[EDIFACT_ENCODATION] += 17.0 / 4.0;\n }\n else {\n charCounts[EDIFACT_ENCODATION] += 13.0 / 4.0;\n }\n // step Q\n if (this.isSpecialB256(c)) {\n charCounts[BASE256_ENCODATION] += 4.0;\n }\n else {\n charCounts[BASE256_ENCODATION]++;\n }\n // step R\n if (charsProcessed >= 4) {\n Arrays.fill(mins, 0);\n Arrays.fill(intCharCounts, 0);\n this.findMinimums(charCounts, intCharCounts, Integer.MAX_VALUE, mins);\n if (intCharCounts[ASCII_ENCODATION] <\n this.min(intCharCounts[BASE256_ENCODATION], intCharCounts[C40_ENCODATION], intCharCounts[TEXT_ENCODATION], intCharCounts[X12_ENCODATION], intCharCounts[EDIFACT_ENCODATION])) {\n return ASCII_ENCODATION;\n }\n if (intCharCounts[BASE256_ENCODATION] < intCharCounts[ASCII_ENCODATION] ||\n intCharCounts[BASE256_ENCODATION] + 1 <\n this.min(intCharCounts[C40_ENCODATION], intCharCounts[TEXT_ENCODATION], intCharCounts[X12_ENCODATION], intCharCounts[EDIFACT_ENCODATION])) {\n return BASE256_ENCODATION;\n }\n if (intCharCounts[EDIFACT_ENCODATION] + 1 <\n this.min(intCharCounts[BASE256_ENCODATION], intCharCounts[C40_ENCODATION], intCharCounts[TEXT_ENCODATION], intCharCounts[X12_ENCODATION], intCharCounts[ASCII_ENCODATION])) {\n return EDIFACT_ENCODATION;\n }\n if (intCharCounts[TEXT_ENCODATION] + 1 <\n this.min(intCharCounts[BASE256_ENCODATION], intCharCounts[C40_ENCODATION], intCharCounts[EDIFACT_ENCODATION], intCharCounts[X12_ENCODATION], intCharCounts[ASCII_ENCODATION])) {\n return TEXT_ENCODATION;\n }\n if (intCharCounts[X12_ENCODATION] + 1 <\n this.min(intCharCounts[BASE256_ENCODATION], intCharCounts[C40_ENCODATION], intCharCounts[EDIFACT_ENCODATION], intCharCounts[TEXT_ENCODATION], intCharCounts[ASCII_ENCODATION])) {\n return X12_ENCODATION;\n }\n if (intCharCounts[C40_ENCODATION] + 1 <\n this.min(intCharCounts[ASCII_ENCODATION], intCharCounts[BASE256_ENCODATION], intCharCounts[EDIFACT_ENCODATION], intCharCounts[TEXT_ENCODATION])) {\n if (intCharCounts[C40_ENCODATION] < intCharCounts[X12_ENCODATION]) {\n return C40_ENCODATION;\n }\n if (intCharCounts[C40_ENCODATION] === intCharCounts[X12_ENCODATION]) {\n var p = startpos + charsProcessed + 1;\n while (p < msg.length) {\n var tc = msg.charCodeAt(p);\n if (this.isX12TermSep(tc)) {\n return X12_ENCODATION;\n }\n if (!this.isNativeX12(tc)) {\n break;\n }\n p++;\n }\n return C40_ENCODATION;\n }\n }\n }\n }\n };\n HighLevelEncoder.min = function (f1, f2, f3, f4, f5) {\n var val = Math.min(f1, Math.min(f2, Math.min(f3, f4)));\n if (f5 === undefined) {\n return val;\n }\n else {\n return Math.min(val, f5);\n }\n };\n HighLevelEncoder.findMinimums = function (charCounts, intCharCounts, min, mins) {\n for (var i = 0; i < 6; i++) {\n var current = (intCharCounts[i] = Math.ceil(charCounts[i]));\n if (min > current) {\n min = current;\n Arrays.fill(mins, 0);\n }\n if (min === current) {\n mins[i] = mins[i] + 1;\n }\n }\n return min;\n };\n HighLevelEncoder.getMinimumCount = function (mins) {\n var minCount = 0;\n for (var i = 0; i < 6; i++) {\n minCount += mins[i];\n }\n return minCount || 0;\n };\n HighLevelEncoder.isDigit = function (ch) {\n return ch >= '0'.charCodeAt(0) && ch <= '9'.charCodeAt(0);\n };\n HighLevelEncoder.isExtendedASCII = function (ch) {\n return ch >= 128 && ch <= 255;\n };\n HighLevelEncoder.isNativeC40 = function (ch) {\n return (ch === ' '.charCodeAt(0) ||\n (ch >= '0'.charCodeAt(0) && ch <= '9'.charCodeAt(0)) ||\n (ch >= 'A'.charCodeAt(0) && ch <= 'Z'.charCodeAt(0)));\n };\n HighLevelEncoder.isNativeText = function (ch) {\n return (ch === ' '.charCodeAt(0) ||\n (ch >= '0'.charCodeAt(0) && ch <= '9'.charCodeAt(0)) ||\n (ch >= 'a'.charCodeAt(0) && ch <= 'z'.charCodeAt(0)));\n };\n HighLevelEncoder.isNativeX12 = function (ch) {\n return (this.isX12TermSep(ch) ||\n ch === ' '.charCodeAt(0) ||\n (ch >= '0'.charCodeAt(0) && ch <= '9'.charCodeAt(0)) ||\n (ch >= 'A'.charCodeAt(0) && ch <= 'Z'.charCodeAt(0)));\n };\n HighLevelEncoder.isX12TermSep = function (ch) {\n return (ch === 13 || // CR\n ch === '*'.charCodeAt(0) ||\n ch === '>'.charCodeAt(0));\n };\n HighLevelEncoder.isNativeEDIFACT = function (ch) {\n return ch >= ' '.charCodeAt(0) && ch <= '^'.charCodeAt(0);\n };\n HighLevelEncoder.isSpecialB256 = function (ch) {\n return false; // TODO NOT IMPLEMENTED YET!!!\n };\n /**\n * Determines the number of consecutive characters that are encodable using numeric compaction.\n *\n * @param msg the message\n * @param startpos the start position within the message\n * @return the requested character count\n */\n HighLevelEncoder.determineConsecutiveDigitCount = function (msg, startpos) {\n if (startpos === void 0) { startpos = 0; }\n var len = msg.length;\n var idx = startpos;\n while (idx < len && this.isDigit(msg.charCodeAt(idx))) {\n idx++;\n }\n return idx - startpos;\n };\n HighLevelEncoder.illegalCharacter = function (singleCharacter) {\n var hex = Integer.toHexString(singleCharacter.charCodeAt(0));\n hex = '0000'.substring(0, 4 - hex.length) + hex;\n throw new Error('Illegal character: ' + singleCharacter + ' (0x' + hex + ')');\n };\n return HighLevelEncoder;\n}());\nexport default HighLevelEncoder;\n","/**\n * Set of CharsetEncoders for a given input string\n *\n * Invariants:\n * - The list contains only encoders from CharacterSetECI (list is shorter then the list of encoders available on\n * the platform for which ECI values are defined).\n * - The list contains encoders at least one encoder for every character in the input.\n * - The first encoder in the list is always the ISO-8859-1 encoder even of no character in the input can be encoded\n * by it.\n * - If the input contains a character that is not in ISO-8859-1 then the last two entries in the list will be the\n * UTF-8 encoder and the UTF-16BE encoder.\n *\n * @author Alex Geller\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport Charset from '../util/Charset';\nimport StandardCharsets from '../util/StandardCharsets';\nimport StringEncoding from '../util/StringEncoding';\nimport StringUtils from './StringUtils';\nvar CharsetEncoder = /** @class */ (function () {\n function CharsetEncoder(charset) {\n this.charset = charset;\n this.name = charset.name;\n }\n CharsetEncoder.prototype.canEncode = function (c) {\n try {\n return StringEncoding.encode(c, this.charset) != null;\n }\n catch (ex) {\n return false;\n }\n };\n return CharsetEncoder;\n}());\nvar ECIEncoderSet = /** @class */ (function () {\n /**\n * Constructs an encoder set\n *\n * @param stringToEncode the string that needs to be encoded\n * @param priorityCharset The preferred {@link Charset} or null.\n * @param fnc1 fnc1 denotes the character in the input that represents the FNC1 character or -1 for a non-GS1 bar\n * code. When specified, it is considered an error to pass it as argument to the methods canEncode() or encode().\n */\n function ECIEncoderSet(stringToEncode, priorityCharset, fnc1) {\n var e_1, _a, e_2, _b, e_3, _c;\n this.ENCODERS = [\n 'IBM437',\n 'ISO-8859-2',\n 'ISO-8859-3',\n 'ISO-8859-4',\n 'ISO-8859-5',\n 'ISO-8859-6',\n 'ISO-8859-7',\n 'ISO-8859-8',\n 'ISO-8859-9',\n 'ISO-8859-10',\n 'ISO-8859-11',\n 'ISO-8859-13',\n 'ISO-8859-14',\n 'ISO-8859-15',\n 'ISO-8859-16',\n 'windows-1250',\n 'windows-1251',\n 'windows-1252',\n 'windows-1256',\n 'Shift_JIS',\n ].map(function (name) { return new CharsetEncoder(Charset.forName(name)); });\n this.encoders = [];\n var neededEncoders = [];\n // we always need the ISO-8859-1 encoder. It is the default encoding\n neededEncoders.push(new CharsetEncoder(StandardCharsets.ISO_8859_1));\n var needUnicodeEncoder = priorityCharset != null && priorityCharset.name.startsWith('UTF');\n // Walk over the input string and see if all characters can be encoded with the list of encoders\n for (var i = 0; i < stringToEncode.length; i++) {\n var canEncode = false;\n try {\n for (var neededEncoders_1 = (e_1 = void 0, __values(neededEncoders)), neededEncoders_1_1 = neededEncoders_1.next(); !neededEncoders_1_1.done; neededEncoders_1_1 = neededEncoders_1.next()) {\n var encoder = neededEncoders_1_1.value;\n var singleCharacter = stringToEncode.charAt(i);\n var c = singleCharacter.charCodeAt(0);\n if (c === fnc1 || encoder.canEncode(singleCharacter)) {\n canEncode = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (neededEncoders_1_1 && !neededEncoders_1_1.done && (_a = neededEncoders_1.return)) _a.call(neededEncoders_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!canEncode) {\n try {\n // for the character at position i we don't yet have an encoder in the list\n for (var _d = (e_2 = void 0, __values(this.ENCODERS)), _e = _d.next(); !_e.done; _e = _d.next()) {\n var encoder = _e.value;\n if (encoder.canEncode(stringToEncode.charAt(i))) {\n // Good, we found an encoder that can encode the character. We add him to the list and continue scanning\n // the input\n neededEncoders.push(encoder);\n canEncode = true;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (!canEncode) {\n // The character is not encodeable by any of the single byte encoders so we remember that we will need a\n // Unicode encoder.\n needUnicodeEncoder = true;\n }\n }\n if (neededEncoders.length === 1 && !needUnicodeEncoder) {\n // the entire input can be encoded by the ISO-8859-1 encoder\n this.encoders = [neededEncoders[0]];\n }\n else {\n // we need more than one single byte encoder or we need a Unicode encoder.\n // In this case we append a UTF-8 and UTF-16 encoder to the list\n this.encoders = [];\n var index = 0;\n try {\n for (var neededEncoders_2 = __values(neededEncoders), neededEncoders_2_1 = neededEncoders_2.next(); !neededEncoders_2_1.done; neededEncoders_2_1 = neededEncoders_2.next()) {\n var encoder = neededEncoders_2_1.value;\n this.encoders[index++] = encoder;\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (neededEncoders_2_1 && !neededEncoders_2_1.done && (_c = neededEncoders_2.return)) _c.call(neededEncoders_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n // this.encoders[index] = new CharsetEncoder(StandardCharsets.UTF_8);\n // this.encoders[index + 1] = new CharsetEncoder(StandardCharsets.UTF_16BE);\n }\n // Compute priorityEncoderIndex by looking up priorityCharset in encoders\n var priorityEncoderIndexValue = -1;\n if (priorityCharset != null) {\n for (var i = 0; i < this.encoders.length; i++) {\n if (this.encoders[i] != null &&\n priorityCharset.name === this.encoders[i].name) {\n priorityEncoderIndexValue = i;\n break;\n }\n }\n }\n this.priorityEncoderIndex = priorityEncoderIndexValue;\n // invariants\n // if(this?.encoders?.[0].name !== StandardCharsets.ISO_8859_1)){\n // throw new Error(\"ISO-8859-1 must be the first encoder\");\n // }\n }\n ECIEncoderSet.prototype.length = function () {\n return this.encoders.length;\n };\n ECIEncoderSet.prototype.getCharsetName = function (index) {\n if (!(index < this.length())) {\n throw new Error('index must be less than length');\n }\n return this.encoders[index].name;\n };\n ECIEncoderSet.prototype.getCharset = function (index) {\n if (!(index < this.length())) {\n throw new Error('index must be less than length');\n }\n return this.encoders[index].charset;\n };\n ECIEncoderSet.prototype.getECIValue = function (encoderIndex) {\n return this.encoders[encoderIndex].charset.getValueIdentifier();\n };\n /*\n * returns -1 if no priority charset was defined\n */\n ECIEncoderSet.prototype.getPriorityEncoderIndex = function () {\n return this.priorityEncoderIndex;\n };\n ECIEncoderSet.prototype.canEncode = function (c, encoderIndex) {\n if (!(encoderIndex < this.length())) {\n throw new Error('index must be less than length');\n }\n return true;\n };\n ECIEncoderSet.prototype.encode = function (c, encoderIndex) {\n if (!(encoderIndex < this.length())) {\n throw new Error('index must be less than length');\n }\n return StringEncoding.encode(StringUtils.getCharAt(c), this.encoders[encoderIndex].name);\n };\n return ECIEncoderSet;\n}());\nexport { ECIEncoderSet };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { MACRO_05_HEADER, MACRO_06_HEADER, MACRO_TRAILER, } from './constants';\nimport HighLevelEncoder from './HighLevelEncoder';\nimport { MinimalECIInput } from '../../common/MinimalECIInput';\nimport Integer from '../../util/Integer';\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"ASCII\"] = 0] = \"ASCII\";\n Mode[Mode[\"C40\"] = 1] = \"C40\";\n Mode[Mode[\"TEXT\"] = 2] = \"TEXT\";\n Mode[Mode[\"X12\"] = 3] = \"X12\";\n Mode[Mode[\"EDF\"] = 4] = \"EDF\";\n Mode[Mode[\"B256\"] = 5] = \"B256\";\n})(Mode || (Mode = {}));\nvar C40_SHIFT2_CHARS = [\n '!',\n '\"',\n '#',\n '$',\n '%',\n '&',\n \"'\",\n '(',\n ')',\n '*',\n '+',\n ',',\n '-',\n '.',\n '/',\n ':',\n ';',\n '<',\n '=',\n '>',\n '?',\n '@',\n '[',\n '\\\\',\n ']',\n '^',\n '_',\n];\nvar MinimalEncoder = /** @class */ (function () {\n function MinimalEncoder() {\n }\n MinimalEncoder.isExtendedASCII = function (ch, fnc1) {\n return ch !== fnc1 && ch >= 128 && ch <= 255;\n };\n MinimalEncoder.isInC40Shift1Set = function (ch) {\n return ch <= 31;\n };\n MinimalEncoder.isInC40Shift2Set = function (ch, fnc1) {\n var e_1, _a;\n try {\n for (var C40_SHIFT2_CHARS_1 = __values(C40_SHIFT2_CHARS), C40_SHIFT2_CHARS_1_1 = C40_SHIFT2_CHARS_1.next(); !C40_SHIFT2_CHARS_1_1.done; C40_SHIFT2_CHARS_1_1 = C40_SHIFT2_CHARS_1.next()) {\n var c40Shift2Char = C40_SHIFT2_CHARS_1_1.value;\n if (c40Shift2Char.charCodeAt(0) === ch) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (C40_SHIFT2_CHARS_1_1 && !C40_SHIFT2_CHARS_1_1.done && (_a = C40_SHIFT2_CHARS_1.return)) _a.call(C40_SHIFT2_CHARS_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return ch === fnc1;\n };\n MinimalEncoder.isInTextShift1Set = function (ch) {\n return this.isInC40Shift1Set(ch);\n };\n MinimalEncoder.isInTextShift2Set = function (ch, fnc1) {\n return this.isInC40Shift2Set(ch, fnc1);\n };\n /**\n * Performs message encoding of a DataMatrix message\n *\n * @param msg the message\n * @param priorityCharset The preferred {@link Charset}. When the value of the argument is null, the algorithm\n * chooses charsets that leads to a minimal representation. Otherwise the algorithm will use the priority\n * charset to encode any character in the input that can be encoded by it if the charset is among the\n * supported charsets.\n * @param fnc1 denotes the character in the input that represents the FNC1 character or -1 if this is not a GS1\n * bar code. If the value is not -1 then a FNC1 is also prepended.\n * @param shape requested shape.\n * @return the encoded message (the char values range from 0 to 255)\n */\n MinimalEncoder.encodeHighLevel = function (msg, priorityCharset, fnc1, shape) {\n if (priorityCharset === void 0) { priorityCharset = null; }\n if (fnc1 === void 0) { fnc1 = -1; }\n if (shape === void 0) { shape = 0 /* FORCE_NONE */; }\n var macroId = 0;\n if (msg.startsWith(MACRO_05_HEADER) && msg.endsWith(MACRO_TRAILER)) {\n macroId = 5;\n msg = msg.substring(MACRO_05_HEADER.length, msg.length - 2);\n }\n else if (msg.startsWith(MACRO_06_HEADER) && msg.endsWith(MACRO_TRAILER)) {\n macroId = 6;\n msg = msg.substring(MACRO_06_HEADER.length, msg.length - 2);\n }\n return decodeURIComponent(escape(String.fromCharCode.apply(String, __spread(this.encode(msg, priorityCharset, fnc1, shape, macroId)))));\n };\n /**\n * Encodes input minimally and returns an array of the codewords\n *\n * @param input The string to encode\n * @param priorityCharset The preferred {@link Charset}. When the value of the argument is null, the algorithm\n * chooses charsets that leads to a minimal representation. Otherwise the algorithm will use the priority\n * charset to encode any character in the input that can be encoded by it if the charset is among the\n * supported charsets.\n * @param fnc1 denotes the character in the input that represents the FNC1 character or -1 if this is not a GS1\n * bar code. If the value is not -1 then a FNC1 is also prepended.\n * @param shape requested shape.\n * @param macroId Prepends the specified macro function in case that a value of 5 or 6 is specified.\n * @return An array of bytes representing the codewords of a minimal encoding.\n */\n MinimalEncoder.encode = function (input, priorityCharset, fnc1, shape, macroId) {\n return this.encodeMinimally(new Input(input, priorityCharset, fnc1, shape, macroId)).getBytes();\n };\n MinimalEncoder.addEdge = function (edges, edge) {\n var vertexIndex = edge.fromPosition + edge.characterLength;\n if (edges[vertexIndex][edge.getEndMode()] === null ||\n edges[vertexIndex][edge.getEndMode()].cachedTotalSize >\n edge.cachedTotalSize) {\n edges[vertexIndex][edge.getEndMode()] = edge;\n }\n };\n /** @return the number of words in which the string starting at from can be encoded in c40 or text mode.\n * The number of characters encoded is returned in characterLength.\n * The number of characters encoded is also minimal in the sense that the algorithm stops as soon\n * as a character encoding fills a C40 word competely (three C40 values). An exception is at the\n * end of the string where two C40 values are allowed (according to the spec the third c40 value\n * is filled with 0 (Shift 1) in this case).\n */\n MinimalEncoder.getNumberOfC40Words = function (input, from, c40, characterLength) {\n var thirdsCount = 0;\n for (var i = from; i < input.length(); i++) {\n if (input.isECI(i)) {\n characterLength[0] = 0;\n return 0;\n }\n var ci = input.charAt(i);\n if ((c40 && HighLevelEncoder.isNativeC40(ci)) ||\n (!c40 && HighLevelEncoder.isNativeText(ci))) {\n thirdsCount++; // native\n }\n else if (!MinimalEncoder.isExtendedASCII(ci, input.getFNC1Character())) {\n thirdsCount += 2; // shift\n }\n else {\n var asciiValue = ci & 0xff;\n if (asciiValue >= 128 &&\n ((c40 && HighLevelEncoder.isNativeC40(asciiValue - 128)) ||\n (!c40 && HighLevelEncoder.isNativeText(asciiValue - 128)))) {\n thirdsCount += 3; // shift, Upper shift\n }\n else {\n thirdsCount += 4; // shift, Upper shift, shift\n }\n }\n if (thirdsCount % 3 === 0 ||\n ((thirdsCount - 2) % 3 === 0 && i + 1 === input.length())) {\n characterLength[0] = i - from + 1;\n return Math.ceil(thirdsCount / 3.0);\n }\n }\n characterLength[0] = 0;\n return 0;\n };\n MinimalEncoder.addEdges = function (input, edges, from, previous) {\n var e_2, _a;\n if (input.isECI(from)) {\n this.addEdge(edges, new Edge(input, Mode.ASCII, from, 1, previous));\n return;\n }\n var ch = input.charAt(from);\n if (previous === null || previous.getEndMode() !== Mode.EDF) {\n // not possible to unlatch a full EDF edge to something\n // else\n if (HighLevelEncoder.isDigit(ch) &&\n input.haveNCharacters(from, 2) &&\n HighLevelEncoder.isDigit(input.charAt(from + 1))) {\n // two digits ASCII encoded\n this.addEdge(edges, new Edge(input, Mode.ASCII, from, 2, previous));\n }\n else {\n // one ASCII encoded character or an extended character via Upper Shift\n this.addEdge(edges, new Edge(input, Mode.ASCII, from, 1, previous));\n }\n var modes = [Mode.C40, Mode.TEXT];\n try {\n for (var modes_1 = __values(modes), modes_1_1 = modes_1.next(); !modes_1_1.done; modes_1_1 = modes_1.next()) {\n var mode = modes_1_1.value;\n var characterLength = [];\n if (MinimalEncoder.getNumberOfC40Words(input, from, mode === Mode.C40, characterLength) > 0) {\n this.addEdge(edges, new Edge(input, mode, from, characterLength[0], previous));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (modes_1_1 && !modes_1_1.done && (_a = modes_1.return)) _a.call(modes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (input.haveNCharacters(from, 3) &&\n HighLevelEncoder.isNativeX12(input.charAt(from)) &&\n HighLevelEncoder.isNativeX12(input.charAt(from + 1)) &&\n HighLevelEncoder.isNativeX12(input.charAt(from + 2))) {\n this.addEdge(edges, new Edge(input, Mode.X12, from, 3, previous));\n }\n this.addEdge(edges, new Edge(input, Mode.B256, from, 1, previous));\n }\n // We create 4 EDF edges, with 1, 2 3 or 4 characters length. The fourth normally doesn't have a latch to ASCII\n // unless it is 2 characters away from the end of the input.\n var i;\n for (i = 0; i < 3; i++) {\n var pos = from + i;\n if (input.haveNCharacters(pos, 1) &&\n HighLevelEncoder.isNativeEDIFACT(input.charAt(pos))) {\n this.addEdge(edges, new Edge(input, Mode.EDF, from, i + 1, previous));\n }\n else {\n break;\n }\n }\n if (i === 3 &&\n input.haveNCharacters(from, 4) &&\n HighLevelEncoder.isNativeEDIFACT(input.charAt(from + 3))) {\n this.addEdge(edges, new Edge(input, Mode.EDF, from, 4, previous));\n }\n };\n MinimalEncoder.encodeMinimally = function (input) {\n /* The minimal encoding is computed by Dijkstra. The acyclic graph is modeled as follows:\n * A vertex represents a combination of a position in the input and an encoding mode where position 0\n * denotes the position left of the first character, 1 the position left of the second character and so on.\n * Likewise the end vertices are located after the last character at position input.length().\n * For any position there might be up to six vertices, one for each of the encoding types ASCII, C40, TEXT, X12,\n * EDF and B256.\n *\n * As an example consider the input string \"ABC123\" then at position 0 there is only one vertex with the default\n * ASCII encodation. At position 3 there might be vertices for the types ASCII, C40, X12, EDF and B256.\n *\n * An edge leading to such a vertex encodes one or more of the characters left of the position that the vertex\n * represents. It encodes the characters in the encoding mode of the vertex that it ends on. In other words,\n * all edges leading to a particular vertex encode the same characters (the length of the suffix can vary) using the same\n * encoding mode.\n * As an example consider the input string \"ABC123\" and the vertex (4,EDF). Possible edges leading to this vertex\n * are:\n * (0,ASCII) --EDF(ABC1)--> (4,EDF)\n * (1,ASCII) --EDF(BC1)--> (4,EDF)\n * (1,B256) --EDF(BC1)--> (4,EDF)\n * (1,EDF) --EDF(BC1)--> (4,EDF)\n * (2,ASCII) --EDF(C1)--> (4,EDF)\n * (2,B256) --EDF(C1)--> (4,EDF)\n * (2,EDF) --EDF(C1)--> (4,EDF)\n * (3,ASCII) --EDF(1)--> (4,EDF)\n * (3,B256) --EDF(1)--> (4,EDF)\n * (3,EDF) --EDF(1)--> (4,EDF)\n * (3,C40) --EDF(1)--> (4,EDF)\n * (3,X12) --EDF(1)--> (4,EDF)\n *\n * The edges leading to a vertex are stored in such a way that there is a fast way to enumerate the edges ending\n * on a particular vertex.\n *\n * The algorithm processes the vertices in order of their position thereby performing the following:\n *\n * For every vertex at position i the algorithm enumerates the edges ending on the vertex and removes all but the\n * shortest from that list.\n * Then it processes the vertices for the position i+1. If i+1 == input.length() then the algorithm ends\n * and chooses the the edge with the smallest size from any of the edges leading to vertices at this position.\n * Otherwise the algorithm computes all possible outgoing edges for the vertices at the position i+1\n *\n * Examples:\n * The process is illustrated by showing the graph (edges) after each iteration from left to right over the input:\n * An edge is drawn as follows \"(\" + fromVertex + \") -- \" + encodingMode + \"(\" + encodedInput + \") (\" +\n * accumulatedSize + \") --> (\" + toVertex + \")\"\n *\n * Example 1 encoding the string \"ABCDEFG\":\n *\n *\n * Situation after adding edges to the start vertex (0,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF)\n * (0,ASCII) C40(ABC) (3) --> (3,C40)\n * (0,ASCII) TEXT(ABC) (5) --> (3,TEXT)\n * (0,ASCII) X12(ABC) (3) --> (3,X12)\n * (0,ASCII) EDF(ABC) (4) --> (3,EDF)\n * (0,ASCII) EDF(ABCD) (4) --> (4,EDF)\n *\n * Situation after adding edges to vertices at position 1\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF)\n * (0,ASCII) C40(ABC) (3) --> (3,C40)\n * (0,ASCII) TEXT(ABC) (5) --> (3,TEXT)\n * (0,ASCII) X12(ABC) (3) --> (3,X12)\n * (0,ASCII) EDF(ABC) (4) --> (3,EDF)\n * (0,ASCII) EDF(ABCD) (4) --> (4,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) B256(B) (4) --> (2,B256)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BC) (5) --> (3,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) C40(BCD) (4) --> (4,C40)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) TEXT(BCD) (6) --> (4,TEXT)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) X12(BCD) (4) --> (4,X12)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BCD) (5) --> (4,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BCDE) (5) --> (5,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) ASCII(B) (4) --> (2,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256)\n * (0,ASCII) B256(A) (3) --> (1,B256) EDF(BC) (6) --> (3,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) C40(BCD) (5) --> (4,C40)\n * (0,ASCII) B256(A) (3) --> (1,B256) TEXT(BCD) (7) --> (4,TEXT)\n * (0,ASCII) B256(A) (3) --> (1,B256) X12(BCD) (5) --> (4,X12)\n * (0,ASCII) B256(A) (3) --> (1,B256) EDF(BCD) (6) --> (4,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) EDF(BCDE) (6) --> (5,EDF)\n *\n * Edge \"(1,ASCII) ASCII(B) (2) --> (2,ASCII)\" is minimal for the vertex (2,ASCII) so that edge \"(1,B256) ASCII(B) (4) --> (2,ASCII)\" is removed.\n * Edge \"(1,B256) B256(B) (3) --> (2,B256)\" is minimal for the vertext (2,B256) so that the edge \"(1,ASCII) B256(B) (4) --> (2,B256)\" is removed.\n *\n * Situation after adding edges to vertices at position 2\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF)\n * (0,ASCII) C40(ABC) (3) --> (3,C40)\n * (0,ASCII) TEXT(ABC) (5) --> (3,TEXT)\n * (0,ASCII) X12(ABC) (3) --> (3,X12)\n * (0,ASCII) EDF(ABC) (4) --> (3,EDF)\n * (0,ASCII) EDF(ABCD) (4) --> (4,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BC) (5) --> (3,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) C40(BCD) (4) --> (4,C40)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) TEXT(BCD) (6) --> (4,TEXT)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) X12(BCD) (4) --> (4,X12)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BCD) (5) --> (4,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BCDE) (5) --> (5,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256)\n * (0,ASCII) B256(A) (3) --> (1,B256) EDF(BC) (6) --> (3,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) C40(BCD) (5) --> (4,C40)\n * (0,ASCII) B256(A) (3) --> (1,B256) TEXT(BCD) (7) --> (4,TEXT)\n * (0,ASCII) B256(A) (3) --> (1,B256) X12(BCD) (5) --> (4,X12)\n * (0,ASCII) B256(A) (3) --> (1,B256) EDF(BCD) (6) --> (4,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) EDF(BCDE) (6) --> (5,EDF)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) ASCII(C) (5) --> (3,ASCII)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) B256(C) (6) --> (3,B256)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) EDF(CD) (7) --> (4,EDF)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) C40(CDE) (6) --> (5,C40)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) TEXT(CDE) (8) --> (5,TEXT)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) X12(CDE) (6) --> (5,X12)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) EDF(CDE) (7) --> (5,EDF)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF) EDF(CDEF) (7) --> (6,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) B256(C) (5) --> (3,B256)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) EDF(CD) (6) --> (4,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) C40(CDE) (5) --> (5,C40)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) TEXT(CDE) (7) --> (5,TEXT)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) X12(CDE) (5) --> (5,X12)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) EDF(CDE) (6) --> (5,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) EDF(CDEF) (6) --> (6,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) ASCII(C) (4) --> (3,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) B256(C) (4) --> (3,B256)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) EDF(CD) (6) --> (4,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) C40(CDE) (5) --> (5,C40)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) TEXT(CDE) (7) --> (5,TEXT)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) X12(CDE) (5) --> (5,X12)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) EDF(CDE) (6) --> (5,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) EDF(CDEF) (6) --> (6,EDF)\n *\n * Edge \"(2,ASCII) ASCII(C) (3) --> (3,ASCII)\" is minimal for the vertex (3,ASCII) so that edges \"(2,EDF) ASCII(C) (5) --> (3,ASCII)\"\n * and \"(2,B256) ASCII(C) (4) --> (3,ASCII)\" can be removed.\n * Edge \"(0,ASCII) EDF(ABC) (4) --> (3,EDF)\" is minimal for the vertex (3,EDF) so that edges \"(1,ASCII) EDF(BC) (5) --> (3,EDF)\"\n * and \"(1,B256) EDF(BC) (6) --> (3,EDF)\" can be removed.\n * Edge \"(2,B256) B256(C) (4) --> (3,B256)\" is minimal for the vertex (3,B256) so that edges \"(2,ASCII) B256(C) (5) --> (3,B256)\"\n * and \"(2,EDF) B256(C) (6) --> (3,B256)\" can be removed.\n *\n * This continues for vertices 3 thru 7\n *\n * Situation after adding edges to vertices at position 7\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256)\n * (0,ASCII) EDF(AB) (4) --> (2,EDF)\n * (0,ASCII) C40(ABC) (3) --> (3,C40)\n * (0,ASCII) TEXT(ABC) (5) --> (3,TEXT)\n * (0,ASCII) X12(ABC) (3) --> (3,X12)\n * (0,ASCII) EDF(ABC) (4) --> (3,EDF)\n * (0,ASCII) EDF(ABCD) (4) --> (4,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) C40(BCD) (4) --> (4,C40)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) TEXT(BCD) (6) --> (4,TEXT)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) X12(BCD) (4) --> (4,X12)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) EDF(BCDE) (5) --> (5,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256)\n * (0,ASCII) C40(ABC) (3) --> (3,C40) C40(DEF) (5) --> (6,C40)\n * (0,ASCII) X12(ABC) (3) --> (3,X12) X12(DEF) (5) --> (6,X12)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) C40(CDE) (5) --> (5,C40)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) TEXT(CDE) (7) --> (5,TEXT)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) X12(CDE) (5) --> (5,X12)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) EDF(CDEF) (6) --> (6,EDF)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) C40(BCD) (4) --> (4,C40) C40(EFG) (6) --> (7,C40) //Solution 1\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) X12(BCD) (4) --> (4,X12) X12(EFG) (6) --> (7,X12) //Solution 2\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) B256(C) (4) --> (3,B256)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) ASCII(D) (4) --> (4,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) TEXT(DEF) (8) --> (6,TEXT)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) EDF(DEFG) (7) --> (7,EDF)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) B256(C) (4) --> (3,B256) B256(D) (5) --> (4,B256)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) ASCII(D) (4) --> (4,ASCII) ASCII(E) (5) --> (5,ASCII)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) ASCII(D) (4) --> (4,ASCII) TEXT(EFG) (9) --> (7,TEXT)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) B256(C) (4) --> (3,B256) B256(D) (5) --> (4,B256) B256(E) (6) --> (5,B256)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) ASCII(D) (4) --> (4,ASCII) ASCII(E) (5) --> (5,ASCII) ASCII(F) (6) --> (6,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) B256(C) (4) --> (3,B256) B256(D) (5) --> (4,B256) B256(E) (6) --> (5,B256) B256(F) (7) --> (6,B256)\n * (0,ASCII) ASCII(A) (1) --> (1,ASCII) ASCII(B) (2) --> (2,ASCII) ASCII(C) (3) --> (3,ASCII) ASCII(D) (4) --> (4,ASCII) ASCII(E) (5) --> (5,ASCII) ASCII(F) (6) --> (6,ASCII) ASCII(G) (7) --> (7,ASCII)\n * (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) B256(C) (4) --> (3,B256) B256(D) (5) --> (4,B256) B256(E) (6) --> (5,B256) B256(F) (7) --> (6,B256) B256(G) (8) --> (7,B256)\n *\n * Hence a minimal encoding of \"ABCDEFG\" is either ASCII(A),C40(BCDEFG) or ASCII(A), X12(BCDEFG) with a size of 5 bytes.\n */\n var inputLength = input.length();\n // Array that represents vertices. There is a vertex for every character and mode.\n // The last dimension in the array below encodes the 6 modes ASCII, C40, TEXT, X12, EDF and B256\n var edges = Array(inputLength + 1)\n .fill(null)\n .map(function () { return Array(6).fill(0); });\n this.addEdges(input, edges, 0, null);\n for (var i = 1; i <= inputLength; i++) {\n for (var j = 0; j < 6; j++) {\n if (edges[i][j] !== null && i < inputLength) {\n this.addEdges(input, edges, i, edges[i][j]);\n }\n }\n // optimize memory by removing edges that have been passed.\n for (var j = 0; j < 6; j++) {\n edges[i - 1][j] = null;\n }\n }\n var minimalJ = -1;\n var minimalSize = Integer.MAX_VALUE;\n for (var j = 0; j < 6; j++) {\n if (edges[inputLength][j] !== null) {\n var edge = edges[inputLength][j];\n var size = j >= 1 && j <= 3 ? edge.cachedTotalSize + 1 : edge.cachedTotalSize; // C40, TEXT and X12 need an\n // extra unlatch at the end\n if (size < minimalSize) {\n minimalSize = size;\n minimalJ = j;\n }\n }\n }\n if (minimalJ < 0) {\n throw new Error('Failed to encode \"' + input + '\"');\n }\n return new Result(edges[inputLength][minimalJ]);\n };\n return MinimalEncoder;\n}());\nexport { MinimalEncoder };\nvar Result = /** @class */ (function () {\n function Result(solution) {\n var input = solution.input;\n var size = 0;\n var bytesAL = [];\n var randomizePostfixLength = [];\n var randomizeLengths = [];\n if ((solution.mode === Mode.C40 ||\n solution.mode === Mode.TEXT ||\n solution.mode === Mode.X12) &&\n solution.getEndMode() !== Mode.ASCII) {\n size += this.prepend(Edge.getBytes(254), bytesAL);\n }\n var current = solution;\n while (current !== null) {\n size += this.prepend(current.getDataBytes(), bytesAL);\n if (current.previous === null ||\n current.getPreviousStartMode() !== current.getMode()) {\n if (current.getMode() === Mode.B256) {\n if (size <= 249) {\n bytesAL.unshift(size);\n size++;\n }\n else {\n bytesAL.unshift(size % 250);\n bytesAL.unshift(size / 250 + 249);\n size += 2;\n }\n randomizePostfixLength.push(bytesAL.length);\n randomizeLengths.push(size);\n }\n this.prepend(current.getLatchBytes(), bytesAL);\n size = 0;\n }\n current = current.previous;\n }\n if (input.getMacroId() === 5) {\n size += this.prepend(Edge.getBytes(236), bytesAL);\n }\n else if (input.getMacroId() === 6) {\n size += this.prepend(Edge.getBytes(237), bytesAL);\n }\n if (input.getFNC1Character() > 0) {\n size += this.prepend(Edge.getBytes(232), bytesAL);\n }\n for (var i = 0; i < randomizePostfixLength.length; i++) {\n this.applyRandomPattern(bytesAL, bytesAL.length - randomizePostfixLength[i], randomizeLengths[i]);\n }\n // add padding\n var capacity = solution.getMinSymbolSize(bytesAL.length);\n if (bytesAL.length < capacity) {\n bytesAL.push(129);\n }\n while (bytesAL.length < capacity) {\n bytesAL.push(this.randomize253State(bytesAL.length + 1));\n }\n this.bytes = new Uint8Array(bytesAL.length);\n for (var i = 0; i < this.bytes.length; i++) {\n this.bytes[i] = bytesAL[i];\n }\n }\n Result.prototype.prepend = function (bytes, into) {\n for (var i = bytes.length - 1; i >= 0; i--) {\n into.unshift(bytes[i]);\n }\n return bytes.length;\n };\n Result.prototype.randomize253State = function (codewordPosition) {\n var pseudoRandom = ((149 * codewordPosition) % 253) + 1;\n var tempVariable = 129 + pseudoRandom;\n return tempVariable <= 254 ? tempVariable : tempVariable - 254;\n };\n Result.prototype.applyRandomPattern = function (bytesAL, startPosition, length) {\n for (var i = 0; i < length; i++) {\n // See \"B.1 253-state algorithm\n var Pad_codeword_position = startPosition + i;\n var Pad_codeword_value = bytesAL[Pad_codeword_position] & 0xff;\n var pseudo_random_number = ((149 * (Pad_codeword_position + 1)) % 255) + 1;\n var temp_variable = Pad_codeword_value + pseudo_random_number;\n bytesAL[Pad_codeword_position] =\n temp_variable <= 255 ? temp_variable : temp_variable - 256;\n }\n };\n Result.prototype.getBytes = function () {\n return this.bytes;\n };\n return Result;\n}());\nvar Edge = /** @class */ (function () {\n function Edge(input, mode, fromPosition, characterLength, previous) {\n this.input = input;\n this.mode = mode;\n this.fromPosition = fromPosition;\n this.characterLength = characterLength;\n this.previous = previous;\n this.allCodewordCapacities = [\n 3, 5, 8, 10, 12, 16, 18, 22, 30, 32, 36, 44, 49, 62, 86, 114, 144, 174, 204,\n 280, 368, 456, 576, 696, 816, 1050, 1304, 1558,\n ];\n this.squareCodewordCapacities = [\n 3, 5, 8, 12, 18, 22, 30, 36, 44, 62, 86, 114, 144, 174, 204, 280, 368, 456,\n 576, 696, 816, 1050, 1304, 1558,\n ];\n this.rectangularCodewordCapacities = [5, 10, 16, 33, 32, 49];\n if (!(fromPosition + characterLength <= input.length())) {\n throw new Error('Invalid edge');\n }\n var size = previous !== null ? previous.cachedTotalSize : 0;\n var previousMode = this.getPreviousMode();\n /*\n * Switching modes\n * ASCII -> C40: latch 230\n * ASCII -> TEXT: latch 239\n * ASCII -> X12: latch 238\n * ASCII -> EDF: latch 240\n * ASCII -> B256: latch 231\n * C40 -> ASCII: word(c1,c2,c3), 254\n * TEXT -> ASCII: word(c1,c2,c3), 254\n * X12 -> ASCII: word(c1,c2,c3), 254\n * EDIFACT -> ASCII: Unlatch character,0,0,0 or c1,Unlatch character,0,0 or c1,c2,Unlatch character,0 or\n * c1,c2,c3,Unlatch character\n * B256 -> ASCII: without latch after n bytes\n */\n switch (mode) {\n case Mode.ASCII:\n size++;\n if (input.isECI(fromPosition) ||\n MinimalEncoder.isExtendedASCII(input.charAt(fromPosition), input.getFNC1Character())) {\n size++;\n }\n if (previousMode === Mode.C40 ||\n previousMode === Mode.TEXT ||\n previousMode === Mode.X12) {\n size++; // unlatch 254 to ASCII\n }\n break;\n case Mode.B256:\n size++;\n if (previousMode !== Mode.B256) {\n size++; // byte count\n }\n else if (this.getB256Size() === 250) {\n size++; // extra byte count\n }\n if (previousMode === Mode.ASCII) {\n size++; // latch to B256\n }\n else if (previousMode === Mode.C40 ||\n previousMode === Mode.TEXT ||\n previousMode === Mode.X12) {\n size += 2; // unlatch to ASCII, latch to B256\n }\n break;\n case Mode.C40:\n case Mode.TEXT:\n case Mode.X12:\n if (mode === Mode.X12) {\n size += 2;\n }\n else {\n var charLen = [];\n size +=\n MinimalEncoder.getNumberOfC40Words(input, fromPosition, mode === Mode.C40, charLen) * 2;\n }\n if (previousMode === Mode.ASCII || previousMode === Mode.B256) {\n size++; // additional byte for latch from ASCII to this mode\n }\n else if (previousMode !== mode &&\n (previousMode === Mode.C40 ||\n previousMode === Mode.TEXT ||\n previousMode === Mode.X12)) {\n size += 2; // unlatch 254 to ASCII followed by latch to this mode\n }\n break;\n case Mode.EDF:\n size += 3;\n if (previousMode === Mode.ASCII || previousMode === Mode.B256) {\n size++; // additional byte for latch from ASCII to this mode\n }\n else if (previousMode === Mode.C40 ||\n previousMode === Mode.TEXT ||\n previousMode === Mode.X12) {\n size += 2; // unlatch 254 to ASCII followed by latch to this mode\n }\n break;\n }\n this.cachedTotalSize = size;\n }\n // does not count beyond 250\n Edge.prototype.getB256Size = function () {\n var cnt = 0;\n var current = this;\n while (current !== null && current.mode === Mode.B256 && cnt <= 250) {\n cnt++;\n current = current.previous;\n }\n return cnt;\n };\n Edge.prototype.getPreviousStartMode = function () {\n return this.previous === null ? Mode.ASCII : this.previous.mode;\n };\n Edge.prototype.getPreviousMode = function () {\n return this.previous === null ? Mode.ASCII : this.previous.getEndMode();\n };\n /** Returns Mode.ASCII in case that:\n * - Mode is EDIFACT and characterLength is less than 4 or the remaining characters can be encoded in at most 2\n * ASCII bytes.\n * - Mode is C40, TEXT or X12 and the remaining characters can be encoded in at most 1 ASCII byte.\n * Returns mode in all other cases.\n * */\n Edge.prototype.getEndMode = function () {\n if (this.mode === Mode.EDF) {\n if (this.characterLength < 4) {\n return Mode.ASCII;\n }\n var lastASCII = this.getLastASCII(); // see 5.2.8.2 EDIFACT encodation Rules\n if (lastASCII > 0 &&\n this.getCodewordsRemaining(this.cachedTotalSize + lastASCII) <=\n 2 - lastASCII) {\n return Mode.ASCII;\n }\n }\n if (this.mode === Mode.C40 ||\n this.mode === Mode.TEXT ||\n this.mode === Mode.X12) {\n // see 5.2.5.2 C40 encodation rules and 5.2.7.2 ANSI X12 encodation rules\n if (this.fromPosition + this.characterLength >= this.input.length() &&\n this.getCodewordsRemaining(this.cachedTotalSize) === 0) {\n return Mode.ASCII;\n }\n var lastASCII = this.getLastASCII();\n if (lastASCII === 1 &&\n this.getCodewordsRemaining(this.cachedTotalSize + 1) === 0) {\n return Mode.ASCII;\n }\n }\n return this.mode;\n };\n Edge.prototype.getMode = function () {\n return this.mode;\n };\n /** Peeks ahead and returns 1 if the postfix consists of exactly two digits, 2 if the postfix consists of exactly\n * two consecutive digits and a non extended character or of 4 digits.\n * Returns 0 in any other case\n **/\n Edge.prototype.getLastASCII = function () {\n var length = this.input.length();\n var from = this.fromPosition + this.characterLength;\n if (length - from > 4 || from >= length) {\n return 0;\n }\n if (length - from === 1) {\n if (MinimalEncoder.isExtendedASCII(this.input.charAt(from), this.input.getFNC1Character())) {\n return 0;\n }\n return 1;\n }\n if (length - from === 2) {\n if (MinimalEncoder.isExtendedASCII(this.input.charAt(from), this.input.getFNC1Character()) ||\n MinimalEncoder.isExtendedASCII(this.input.charAt(from + 1), this.input.getFNC1Character())) {\n return 0;\n }\n if (HighLevelEncoder.isDigit(this.input.charAt(from)) &&\n HighLevelEncoder.isDigit(this.input.charAt(from + 1))) {\n return 1;\n }\n return 2;\n }\n if (length - from === 3) {\n if (HighLevelEncoder.isDigit(this.input.charAt(from)) &&\n HighLevelEncoder.isDigit(this.input.charAt(from + 1)) &&\n !MinimalEncoder.isExtendedASCII(this.input.charAt(from + 2), this.input.getFNC1Character())) {\n return 2;\n }\n if (HighLevelEncoder.isDigit(this.input.charAt(from + 1)) &&\n HighLevelEncoder.isDigit(this.input.charAt(from + 2)) &&\n !MinimalEncoder.isExtendedASCII(this.input.charAt(from), this.input.getFNC1Character())) {\n return 2;\n }\n return 0;\n }\n if (HighLevelEncoder.isDigit(this.input.charAt(from)) &&\n HighLevelEncoder.isDigit(this.input.charAt(from + 1)) &&\n HighLevelEncoder.isDigit(this.input.charAt(from + 2)) &&\n HighLevelEncoder.isDigit(this.input.charAt(from + 3))) {\n return 2;\n }\n return 0;\n };\n /** Returns the capacity in codewords of the smallest symbol that has enough capacity to fit the given minimal\n * number of codewords.\n **/\n Edge.prototype.getMinSymbolSize = function (minimum) {\n var e_3, _a, e_4, _b, e_5, _c;\n switch (this.input.getShapeHint()) {\n case 1 /* FORCE_SQUARE */:\n try {\n for (var _d = __values(this.squareCodewordCapacities), _e = _d.next(); !_e.done; _e = _d.next()) {\n var capacity = _e.value;\n if (capacity >= minimum) {\n return capacity;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_3) throw e_3.error; }\n }\n break;\n case 2 /* FORCE_RECTANGLE */:\n try {\n for (var _f = __values(this.rectangularCodewordCapacities), _g = _f.next(); !_g.done; _g = _f.next()) {\n var capacity = _g.value;\n if (capacity >= minimum) {\n return capacity;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_4) throw e_4.error; }\n }\n break;\n }\n try {\n for (var _h = __values(this.allCodewordCapacities), _j = _h.next(); !_j.done; _j = _h.next()) {\n var capacity = _j.value;\n if (capacity >= minimum) {\n return capacity;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_c = _h.return)) _c.call(_h);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return this.allCodewordCapacities[this.allCodewordCapacities.length - 1];\n };\n /** Returns the remaining capacity in codewords of the smallest symbol that has enough capacity to fit the given\n * minimal number of codewords.\n **/\n Edge.prototype.getCodewordsRemaining = function (minimum) {\n return this.getMinSymbolSize(minimum) - minimum;\n };\n Edge.getBytes = function (c1, c2) {\n var result = new Uint8Array(c2 ? 2 : 1);\n result[0] = c1;\n if (c2) {\n result[1] = c2;\n }\n return result;\n };\n Edge.prototype.setC40Word = function (bytes, offset, c1, c2, c3) {\n var val16 = 1600 * (c1 & 0xff) + 40 * (c2 & 0xff) + (c3 & 0xff) + 1;\n bytes[offset] = val16 / 256;\n bytes[offset + 1] = val16 % 256;\n };\n Edge.prototype.getX12Value = function (c) {\n return c === 13\n ? 0\n : c === 42\n ? 1\n : c === 62\n ? 2\n : c === 32\n ? 3\n : c >= 48 && c <= 57\n ? c - 44\n : c >= 65 && c <= 90\n ? c - 51\n : c;\n };\n Edge.prototype.getX12Words = function () {\n if (!(this.characterLength % 3 === 0)) {\n throw new Error('X12 words must be a multiple of 3');\n }\n var result = new Uint8Array((this.characterLength / 3) * 2);\n for (var i = 0; i < result.length; i += 2) {\n this.setC40Word(result, i, this.getX12Value(this.input.charAt(this.fromPosition + (i / 2) * 3)), this.getX12Value(this.input.charAt(this.fromPosition + (i / 2) * 3 + 1)), this.getX12Value(this.input.charAt(this.fromPosition + (i / 2) * 3 + 2)));\n }\n return result;\n };\n Edge.prototype.getShiftValue = function (c, c40, fnc1) {\n return (c40 && MinimalEncoder.isInC40Shift1Set(c)) ||\n (!c40 && MinimalEncoder.isInTextShift1Set(c))\n ? 0\n : (c40 && MinimalEncoder.isInC40Shift2Set(c, fnc1)) ||\n (!c40 && MinimalEncoder.isInTextShift2Set(c, fnc1))\n ? 1\n : 2;\n };\n Edge.prototype.getC40Value = function (c40, setIndex, c, fnc1) {\n if (c === fnc1) {\n if (!(setIndex === 2)) {\n throw new Error('FNC1 cannot be used in C40 shift 2');\n }\n return 27;\n }\n if (c40) {\n return c <= 31\n ? c\n : c === 32\n ? 3\n : c <= 47\n ? c - 33\n : c <= 57\n ? c - 44\n : c <= 64\n ? c - 43\n : c <= 90\n ? c - 51\n : c <= 95\n ? c - 69\n : c <= 127\n ? c - 96\n : c;\n }\n else {\n return c === 0\n ? 0\n : setIndex === 0 && c <= 3\n ? c - 1 // is this a bug in the spec?\n : setIndex === 1 && c <= 31\n ? c\n : c === 32\n ? 3\n : c >= 33 && c <= 47\n ? c - 33\n : c >= 48 && c <= 57\n ? c - 44\n : c >= 58 && c <= 64\n ? c - 43\n : c >= 65 && c <= 90\n ? c - 64\n : c >= 91 && c <= 95\n ? c - 69\n : c === 96\n ? 0\n : c >= 97 && c <= 122\n ? c - 83\n : c >= 123 && c <= 127\n ? c - 96\n : c;\n }\n };\n Edge.prototype.getC40Words = function (c40, fnc1) {\n var c40Values = [];\n for (var i = 0; i < this.characterLength; i++) {\n var ci = this.input.charAt(this.fromPosition + i);\n if ((c40 && HighLevelEncoder.isNativeC40(ci)) ||\n (!c40 && HighLevelEncoder.isNativeText(ci))) {\n c40Values.push(this.getC40Value(c40, 0, ci, fnc1));\n }\n else if (!MinimalEncoder.isExtendedASCII(ci, fnc1)) {\n var shiftValue = this.getShiftValue(ci, c40, fnc1);\n c40Values.push(shiftValue); // Shift[123]\n c40Values.push(this.getC40Value(c40, shiftValue, ci, fnc1));\n }\n else {\n var asciiValue = (ci & 0xff) - 128;\n if ((c40 && HighLevelEncoder.isNativeC40(asciiValue)) ||\n (!c40 && HighLevelEncoder.isNativeText(asciiValue))) {\n c40Values.push(1); // Shift 2\n c40Values.push(30); // Upper Shift\n c40Values.push(this.getC40Value(c40, 0, asciiValue, fnc1));\n }\n else {\n c40Values.push(1); // Shift 2\n c40Values.push(30); // Upper Shift\n var shiftValue = this.getShiftValue(asciiValue, c40, fnc1);\n c40Values.push(shiftValue); // Shift[123]\n c40Values.push(this.getC40Value(c40, shiftValue, asciiValue, fnc1));\n }\n }\n }\n if (c40Values.length % 3 !== 0) {\n if (!((c40Values.length - 2) % 3 === 0 &&\n this.fromPosition + this.characterLength === this.input.length())) {\n throw new Error('C40 words must be a multiple of 3');\n }\n c40Values.push(0); // pad with 0 (Shift 1)\n }\n var result = new Uint8Array((c40Values.length / 3) * 2);\n var byteIndex = 0;\n for (var i = 0; i < c40Values.length; i += 3) {\n this.setC40Word(result, byteIndex, c40Values[i] & 0xff, c40Values[i + 1] & 0xff, c40Values[i + 2] & 0xff);\n byteIndex += 2;\n }\n return result;\n };\n Edge.prototype.getEDFBytes = function () {\n var numberOfThirds = Math.ceil(this.characterLength / 4.0);\n var result = new Uint8Array(numberOfThirds * 3);\n var pos = this.fromPosition;\n var endPos = Math.min(this.fromPosition + this.characterLength - 1, this.input.length() - 1);\n for (var i = 0; i < numberOfThirds; i += 3) {\n var edfValues = [];\n for (var j = 0; j < 4; j++) {\n if (pos <= endPos) {\n edfValues[j] = this.input.charAt(pos++) & 0x3f;\n }\n else {\n edfValues[j] = pos === endPos + 1 ? 0x1f : 0;\n }\n }\n var val24 = edfValues[0] << 18;\n val24 |= edfValues[1] << 12;\n val24 |= edfValues[2] << 6;\n val24 |= edfValues[3];\n result[i] = (val24 >> 16) & 0xff;\n result[i + 1] = (val24 >> 8) & 0xff;\n result[i + 2] = val24 & 0xff;\n }\n return result;\n };\n Edge.prototype.getLatchBytes = function () {\n switch (this.getPreviousMode()) {\n case Mode.ASCII:\n case Mode.B256: // after B256 ends (via length) we are back to ASCII\n switch (this.mode) {\n case Mode.B256:\n return Edge.getBytes(231);\n case Mode.C40:\n return Edge.getBytes(230);\n case Mode.TEXT:\n return Edge.getBytes(239);\n case Mode.X12:\n return Edge.getBytes(238);\n case Mode.EDF:\n return Edge.getBytes(240);\n }\n break;\n case Mode.C40:\n case Mode.TEXT:\n case Mode.X12:\n if (this.mode !== this.getPreviousMode()) {\n switch (this.mode) {\n case Mode.ASCII:\n return Edge.getBytes(254);\n case Mode.B256:\n return Edge.getBytes(254, 231);\n case Mode.C40:\n return Edge.getBytes(254, 230);\n case Mode.TEXT:\n return Edge.getBytes(254, 239);\n case Mode.X12:\n return Edge.getBytes(254, 238);\n case Mode.EDF:\n return Edge.getBytes(254, 240);\n }\n }\n break;\n case Mode.EDF:\n // The rightmost EDIFACT edge always contains an unlatch character\n if (this.mode !== Mode.EDF) {\n throw new Error('Cannot switch from EDF to ' + this.mode);\n }\n break;\n }\n return new Uint8Array(0);\n };\n // Important: The function does not return the length bytes (one or two) in case of B256 encoding\n Edge.prototype.getDataBytes = function () {\n switch (this.mode) {\n case Mode.ASCII:\n if (this.input.isECI(this.fromPosition)) {\n return Edge.getBytes(241, this.input.getECIValue(this.fromPosition) + 1);\n }\n else if (MinimalEncoder.isExtendedASCII(this.input.charAt(this.fromPosition), this.input.getFNC1Character())) {\n return Edge.getBytes(235, this.input.charAt(this.fromPosition) - 127);\n }\n else if (this.characterLength === 2) {\n return Edge.getBytes(this.input.charAt(this.fromPosition) * 10 +\n this.input.charAt(this.fromPosition + 1) +\n 130);\n }\n else if (this.input.isFNC1(this.fromPosition)) {\n return Edge.getBytes(232);\n }\n else {\n return Edge.getBytes(this.input.charAt(this.fromPosition) + 1);\n }\n case Mode.B256:\n return Edge.getBytes(this.input.charAt(this.fromPosition));\n case Mode.C40:\n return this.getC40Words(true, this.input.getFNC1Character());\n case Mode.TEXT:\n return this.getC40Words(false, this.input.getFNC1Character());\n case Mode.X12:\n return this.getX12Words();\n case Mode.EDF:\n return this.getEDFBytes();\n }\n };\n return Edge;\n}());\nvar Input = /** @class */ (function (_super) {\n __extends(Input, _super);\n function Input(stringToEncode, priorityCharset, fnc1, shape, macroId) {\n var _this = _super.call(this, stringToEncode, priorityCharset, fnc1) || this;\n _this.shape = shape;\n _this.macroId = macroId;\n return _this;\n }\n Input.prototype.getMacroId = function () {\n return this.macroId;\n };\n Input.prototype.getShapeHint = function () {\n return this.shape;\n };\n return Input;\n}(MinimalECIInput));\n","import { ECIEncoderSet } from './ECIEncoderSet';\nimport Integer from '../util/Integer';\nimport StringBuilder from '../util/StringBuilder';\nvar COST_PER_ECI = 3; // approximated (latch + 2 codewords)\nvar MinimalECIInput = /** @class */ (function () {\n /**\n * Constructs a minimal input\n *\n * @param stringToEncode the character string to encode\n * @param priorityCharset The preferred {@link Charset}. When the value of the argument is null, the algorithm\n * chooses charsets that leads to a minimal representation. Otherwise the algorithm will use the priority\n * charset to encode any character in the input that can be encoded by it if the charset is among the\n * supported charsets.\n * @param fnc1 denotes the character in the input that represents the FNC1 character or -1 if this is not GS1\n * input.\n */\n function MinimalECIInput(stringToEncode, priorityCharset, fnc1) {\n this.fnc1 = fnc1;\n var encoderSet = new ECIEncoderSet(stringToEncode, priorityCharset, fnc1);\n if (encoderSet.length() === 1) {\n // optimization for the case when all can be encoded without ECI in ISO-8859-1\n for (var i = 0; i < this.bytes.length; i++) {\n var c = stringToEncode.charAt(i).charCodeAt(0);\n this.bytes[i] = c === fnc1 ? 1000 : c;\n }\n }\n else {\n this.bytes = this.encodeMinimally(stringToEncode, encoderSet, fnc1);\n }\n }\n MinimalECIInput.prototype.getFNC1Character = function () {\n return this.fnc1;\n };\n /**\n * Returns the length of this input. The length is the number\n * of {@code byte}s, FNC1 characters or ECIs in the sequence.\n *\n * @return the number of {@code char}s in this sequence\n */\n MinimalECIInput.prototype.length = function () {\n return this.bytes.length;\n };\n MinimalECIInput.prototype.haveNCharacters = function (index, n) {\n if (index + n - 1 >= this.bytes.length) {\n return false;\n }\n for (var i = 0; i < n; i++) {\n if (this.isECI(index + i)) {\n return false;\n }\n }\n return true;\n };\n /**\n * Returns the {@code byte} value at the specified index. An index ranges from zero\n * to {@code length() - 1}. The first {@code byte} value of the sequence is at\n * index zero, the next at index one, and so on, as for array\n * indexing.\n *\n * @param index the index of the {@code byte} value to be returned\n *\n * @return the specified {@code byte} value as character or the FNC1 character\n *\n * @throws IndexOutOfBoundsException\n * if the {@code index} argument is negative or not less than\n * {@code length()}\n * @throws IllegalArgumentException\n * if the value at the {@code index} argument is an ECI (@see #isECI)\n */\n MinimalECIInput.prototype.charAt = function (index) {\n if (index < 0 || index >= this.length()) {\n throw new Error('' + index);\n }\n if (this.isECI(index)) {\n throw new Error('value at ' + index + ' is not a character but an ECI');\n }\n return this.isFNC1(index) ? this.fnc1 : this.bytes[index];\n };\n /**\n * Returns a {@code CharSequence} that is a subsequence of this sequence.\n * The subsequence starts with the {@code char} value at the specified index and\n * ends with the {@code char} value at index {@code end - 1}. The length\n * (in {@code char}s) of the\n * returned sequence is {@code end - start}, so if {@code start == end}\n * then an empty sequence is returned.\n *\n * @param start the start index, inclusive\n * @param end the end index, exclusive\n *\n * @return the specified subsequence\n *\n * @throws IndexOutOfBoundsException\n * if {@code start} or {@code end} are negative,\n * if {@code end} is greater than {@code length()},\n * or if {@code start} is greater than {@code end}\n * @throws IllegalArgumentException\n * if a value in the range {@code start}-{@code end} is an ECI (@see #isECI)\n */\n MinimalECIInput.prototype.subSequence = function (start, end) {\n if (start < 0 || start > end || end > this.length()) {\n throw new Error('' + start);\n }\n var result = new StringBuilder();\n for (var i = start; i < end; i++) {\n if (this.isECI(i)) {\n throw new Error('value at ' + i + ' is not a character but an ECI');\n }\n result.append(this.charAt(i));\n }\n return result.toString();\n };\n /**\n * Determines if a value is an ECI\n *\n * @param index the index of the value\n *\n * @return true if the value at position {@code index} is an ECI\n *\n * @throws IndexOutOfBoundsException\n * if the {@code index} argument is negative or not less than\n * {@code length()}\n */\n MinimalECIInput.prototype.isECI = function (index) {\n if (index < 0 || index >= this.length()) {\n throw new Error('' + index);\n }\n return this.bytes[index] > 255 && this.bytes[index] <= 999;\n };\n /**\n * Determines if a value is the FNC1 character\n *\n * @param index the index of the value\n *\n * @return true if the value at position {@code index} is the FNC1 character\n *\n * @throws IndexOutOfBoundsException\n * if the {@code index} argument is negative or not less than\n * {@code length()}\n */\n MinimalECIInput.prototype.isFNC1 = function (index) {\n if (index < 0 || index >= this.length()) {\n throw new Error('' + index);\n }\n return this.bytes[index] === 1000;\n };\n /**\n * Returns the {@code int} ECI value at the specified index. An index ranges from zero\n * to {@code length() - 1}. The first {@code byte} value of the sequence is at\n * index zero, the next at index one, and so on, as for array\n * indexing.\n *\n * @param index the index of the {@code int} value to be returned\n *\n * @return the specified {@code int} ECI value.\n * The ECI specified the encoding of all bytes with a higher index until the\n * next ECI or until the end of the input if no other ECI follows.\n *\n * @throws IndexOutOfBoundsException\n * if the {@code index} argument is negative or not less than\n * {@code length()}\n * @throws IllegalArgumentException\n * if the value at the {@code index} argument is not an ECI (@see #isECI)\n */\n MinimalECIInput.prototype.getECIValue = function (index) {\n if (index < 0 || index >= this.length()) {\n throw new Error('' + index);\n }\n if (!this.isECI(index)) {\n throw new Error('value at ' + index + ' is not an ECI but a character');\n }\n return this.bytes[index] - 256;\n };\n MinimalECIInput.prototype.addEdge = function (edges, to, edge) {\n if (edges[to][edge.encoderIndex] == null ||\n edges[to][edge.encoderIndex].cachedTotalSize > edge.cachedTotalSize) {\n edges[to][edge.encoderIndex] = edge;\n }\n };\n MinimalECIInput.prototype.addEdges = function (stringToEncode, encoderSet, edges, from, previous, fnc1) {\n var ch = stringToEncode.charAt(from).charCodeAt(0);\n var start = 0;\n var end = encoderSet.length();\n if (encoderSet.getPriorityEncoderIndex() >= 0 &&\n (ch === fnc1 ||\n encoderSet.canEncode(ch, encoderSet.getPriorityEncoderIndex()))) {\n start = encoderSet.getPriorityEncoderIndex();\n end = start + 1;\n }\n for (var i = start; i < end; i++) {\n if (ch === fnc1 || encoderSet.canEncode(ch, i)) {\n this.addEdge(edges, from + 1, new InputEdge(ch, encoderSet, i, previous, fnc1));\n }\n }\n };\n MinimalECIInput.prototype.encodeMinimally = function (stringToEncode, encoderSet, fnc1) {\n var inputLength = stringToEncode.length;\n // Array that represents vertices. There is a vertex for every character and encoding.\n var edges = new InputEdge[inputLength + 1][encoderSet.length()]();\n this.addEdges(stringToEncode, encoderSet, edges, 0, null, fnc1);\n for (var i = 1; i <= inputLength; i++) {\n for (var j = 0; j < encoderSet.length(); j++) {\n if (edges[i][j] != null && i < inputLength) {\n this.addEdges(stringToEncode, encoderSet, edges, i, edges[i][j], fnc1);\n }\n }\n // optimize memory by removing edges that have been passed.\n for (var j = 0; j < encoderSet.length(); j++) {\n edges[i - 1][j] = null;\n }\n }\n var minimalJ = -1;\n var minimalSize = Integer.MAX_VALUE;\n for (var j = 0; j < encoderSet.length(); j++) {\n if (edges[inputLength][j] != null) {\n var edge = edges[inputLength][j];\n if (edge.cachedTotalSize < minimalSize) {\n minimalSize = edge.cachedTotalSize;\n minimalJ = j;\n }\n }\n }\n if (minimalJ < 0) {\n throw new Error('Failed to encode \"' + stringToEncode + '\"');\n }\n var intsAL = [];\n var current = edges[inputLength][minimalJ];\n while (current != null) {\n if (current.isFNC1()) {\n intsAL.unshift(1000);\n }\n else {\n var bytes = encoderSet.encode(current.c, current.encoderIndex);\n for (var i = bytes.length - 1; i >= 0; i--) {\n intsAL.unshift(bytes[i] & 0xff);\n }\n }\n var previousEncoderIndex = current.previous === null ? 0 : current.previous.encoderIndex;\n if (previousEncoderIndex !== current.encoderIndex) {\n intsAL.unshift(256 + encoderSet.getECIValue(current.encoderIndex));\n }\n current = current.previous;\n }\n var ints = [];\n for (var i = 0; i < ints.length; i++) {\n ints[i] = intsAL[i];\n }\n return ints;\n };\n return MinimalECIInput;\n}());\nexport { MinimalECIInput };\nvar InputEdge = /** @class */ (function () {\n function InputEdge(c, encoderSet, encoderIndex, previous, fnc1) {\n this.c = c;\n this.encoderSet = encoderSet;\n this.encoderIndex = encoderIndex;\n this.previous = previous;\n this.fnc1 = fnc1;\n this.c = c === fnc1 ? 1000 : c;\n var size = this.isFNC1() ? 1 : encoderSet.encode(c, encoderIndex).length;\n var previousEncoderIndex = previous === null ? 0 : previous.encoderIndex;\n if (previousEncoderIndex !== encoderIndex) {\n size += COST_PER_ECI;\n }\n if (previous != null) {\n size += previous.cachedTotalSize;\n }\n this.cachedTotalSize = size;\n }\n InputEdge.prototype.isFNC1 = function () {\n return this.c === 1000;\n };\n return InputEdge;\n}());\n","import BarcodeFormat from '../BarcodeFormat';\nimport BitMatrix from '../common/BitMatrix';\nimport EncodeHintType from '../EncodeHintType';\nimport ByteMatrix from '../qrcode/encoder/ByteMatrix';\nimport Charset from '../util/Charset';\nimport { DefaultPlacement, ErrorCorrection, HighLevelEncoder, MinimalEncoder, SymbolInfo, } from './encoder';\nvar DataMatrixWriter = /** @class */ (function () {\n function DataMatrixWriter() {\n }\n DataMatrixWriter.prototype.encode = function (contents, format, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (contents.trim() === '') {\n throw new Error('Found empty contents');\n }\n if (format !== BarcodeFormat.DATA_MATRIX) {\n throw new Error('Can only encode DATA_MATRIX, but got ' + format);\n }\n if (width < 0 || height < 0) {\n throw new Error('Requested dimensions can\\'t be negative: ' + width + 'x' + height);\n }\n // Try to get force shape & min / max size\n var shape = 0 /* FORCE_NONE */;\n var minSize = null;\n var maxSize = null;\n if (hints != null) {\n var requestedShape = hints.get(EncodeHintType.DATA_MATRIX_SHAPE);\n if (requestedShape != null) {\n shape = requestedShape;\n }\n var requestedMinSize = hints.get(EncodeHintType.MIN_SIZE);\n if (requestedMinSize != null) {\n minSize = requestedMinSize;\n }\n var requestedMaxSize = hints.get(EncodeHintType.MAX_SIZE);\n if (requestedMaxSize != null) {\n maxSize = requestedMaxSize;\n }\n }\n // 1. step: Data encodation\n var encoded;\n var hasCompactionHint = hints != null &&\n hints.has(EncodeHintType.DATA_MATRIX_COMPACT) &&\n Boolean(hints.get(EncodeHintType.DATA_MATRIX_COMPACT).toString());\n if (hasCompactionHint) {\n var hasGS1FormatHint = hints.has(EncodeHintType.GS1_FORMAT) &&\n Boolean(hints.get(EncodeHintType.GS1_FORMAT).toString());\n var charset = null;\n var hasEncodingHint = hints.has(EncodeHintType.CHARACTER_SET);\n if (hasEncodingHint) {\n charset = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString());\n }\n encoded = MinimalEncoder.encodeHighLevel(contents, charset, hasGS1FormatHint ? 0x1d : -1, shape);\n }\n else {\n var hasForceC40Hint = hints != null &&\n hints.has(EncodeHintType.FORCE_C40) &&\n Boolean(hints.get(EncodeHintType.FORCE_C40).toString());\n encoded = HighLevelEncoder.encodeHighLevel(contents, shape, minSize, maxSize, hasForceC40Hint);\n }\n var symbolInfo = SymbolInfo.lookup(encoded.length, shape, minSize, maxSize, true);\n // 2. step: ECC generation\n var codewords = ErrorCorrection.encodeECC200(encoded, symbolInfo);\n // 3. step: Module placement in Matrix\n var placement = new DefaultPlacement(codewords, symbolInfo.getSymbolDataWidth(), symbolInfo.getSymbolDataHeight());\n placement.place();\n // 4. step: low-level encoding\n return this.encodeLowLevel(placement, symbolInfo, width, height);\n };\n /**\n * Encode the given symbol info to a bit matrix.\n *\n * @param placement The DataMatrix placement.\n * @param symbolInfo The symbol info to encode.\n * @return The bit matrix generated.\n */\n DataMatrixWriter.prototype.encodeLowLevel = function (placement, symbolInfo, width, height) {\n var symbolWidth = symbolInfo.getSymbolDataWidth();\n var symbolHeight = symbolInfo.getSymbolDataHeight();\n var matrix = new ByteMatrix(symbolInfo.getSymbolWidth(), symbolInfo.getSymbolHeight());\n var matrixY = 0;\n for (var y = 0; y < symbolHeight; y++) {\n // Fill the top edge with alternate 0 / 1\n var matrixX = void 0;\n if (y % symbolInfo.matrixHeight === 0) {\n matrixX = 0;\n for (var x = 0; x < symbolInfo.getSymbolWidth(); x++) {\n matrix.setBoolean(matrixX, matrixY, x % 2 === 0);\n matrixX++;\n }\n matrixY++;\n }\n matrixX = 0;\n for (var x = 0; x < symbolWidth; x++) {\n // Fill the right edge with full 1\n if (x % symbolInfo.matrixWidth === 0) {\n matrix.setBoolean(matrixX, matrixY, true);\n matrixX++;\n }\n matrix.setBoolean(matrixX, matrixY, placement.getBit(x, y));\n matrixX++;\n // Fill the right edge with alternate 0 / 1\n if (x % symbolInfo.matrixWidth === symbolInfo.matrixWidth - 1) {\n matrix.setBoolean(matrixX, matrixY, y % 2 === 0);\n matrixX++;\n }\n }\n matrixY++;\n // Fill the bottom edge with full 1\n if (y % symbolInfo.matrixHeight === symbolInfo.matrixHeight - 1) {\n matrixX = 0;\n for (var x = 0; x < symbolInfo.getSymbolWidth(); x++) {\n matrix.setBoolean(matrixX, matrixY, true);\n matrixX++;\n }\n matrixY++;\n }\n }\n return this.convertByteMatrixToBitMatrix(matrix, width, height);\n };\n /**\n * Convert the ByteMatrix to BitMatrix.\n *\n * @param reqHeight The requested height of the image (in pixels) with the Datamatrix code\n * @param reqWidth The requested width of the image (in pixels) with the Datamatrix code\n * @param matrix The input matrix.\n * @return The output matrix.\n */\n DataMatrixWriter.prototype.convertByteMatrixToBitMatrix = function (matrix, reqWidth, reqHeight) {\n var matrixWidth = matrix.getWidth();\n var matrixHeight = matrix.getHeight();\n var outputWidth = Math.max(reqWidth, matrixWidth);\n var outputHeight = Math.max(reqHeight, matrixHeight);\n var multiple = Math.min(outputWidth / matrixWidth, outputHeight / matrixHeight);\n var leftPadding = (outputWidth - matrixWidth * multiple) / 2;\n var topPadding = (outputHeight - matrixHeight * multiple) / 2;\n var output;\n // remove padding if requested width and height are too small\n if (reqHeight < matrixHeight || reqWidth < matrixWidth) {\n leftPadding = 0;\n topPadding = 0;\n output = new BitMatrix(matrixWidth, matrixHeight);\n }\n else {\n output = new BitMatrix(reqWidth, reqHeight);\n }\n output.clear();\n for (var inputY = 0, outputY = topPadding; inputY < matrixHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the bytematrix\n for (var inputX = 0, outputX = leftPadding; inputX < matrixWidth; inputX++, outputX += multiple) {\n if (matrix.get(inputX, inputY) === 1) {\n output.setRegion(outputX, outputY, multiple, multiple);\n }\n }\n }\n return output;\n };\n return DataMatrixWriter;\n}());\nexport default DataMatrixWriter;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n/**\n * Aztec 2D code representation\n *\n * @author Rustam Abdullaev\n */\nvar AztecCode = /** @class */ (function () {\n function AztecCode() {\n }\n /**\n * @return {@code true} if compact instead of full mode\n */\n AztecCode.prototype.isCompact = function () {\n return this.compact;\n };\n AztecCode.prototype.setCompact = function (compact) {\n this.compact = compact;\n };\n /**\n * @return size in pixels (width and height)\n */\n AztecCode.prototype.getSize = function () {\n return this.size;\n };\n AztecCode.prototype.setSize = function (size) {\n this.size = size;\n };\n /**\n * @return number of levels\n */\n AztecCode.prototype.getLayers = function () {\n return this.layers;\n };\n AztecCode.prototype.setLayers = function (layers) {\n this.layers = layers;\n };\n /**\n * @return number of data codewords\n */\n AztecCode.prototype.getCodeWords = function () {\n return this.codeWords;\n };\n AztecCode.prototype.setCodeWords = function (codeWords) {\n this.codeWords = codeWords;\n };\n /**\n * @return the symbol image\n */\n AztecCode.prototype.getMatrix = function () {\n return this.matrix;\n };\n AztecCode.prototype.setMatrix = function (matrix) {\n this.matrix = matrix;\n };\n return AztecCode;\n}());\nexport default AztecCode;\n","var Collections = /** @class */ (function () {\n function Collections() {\n }\n /**\n * The singletonList(T) method is used to return an immutable list containing only the specified object.\n */\n Collections.singletonList = function (item) {\n return [item];\n };\n /**\n * The min(Collection, Comparator) method is used to return the minimum element of the given collection, according to the order induced by the specified comparator.\n */\n Collections.min = function (collection, comparator) {\n return collection.sort(comparator)[0];\n };\n return Collections;\n}());\nexport default Collections;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar Token = /** @class */ (function () {\n function Token(previous) {\n this.previous = previous;\n }\n Token.prototype.getPrevious = function () {\n return this.previous;\n };\n return Token;\n}());\nexport default Token;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Token from './Token';\nimport Integer from '../../util/Integer';\nvar SimpleToken = /** @class */ (function (_super) {\n __extends(SimpleToken, _super);\n function SimpleToken(previous, value, bitCount) {\n var _this = _super.call(this, previous) || this;\n _this.value = value;\n _this.bitCount = bitCount;\n return _this;\n }\n /**\n * @Override\n */\n SimpleToken.prototype.appendTo = function (bitArray, text) {\n bitArray.appendBits(this.value, this.bitCount);\n };\n SimpleToken.prototype.add = function (value, bitCount) {\n return new SimpleToken(this, value, bitCount);\n };\n SimpleToken.prototype.addBinaryShift = function (start, byteCount) {\n // no-op can't binary shift a simple token\n console.warn('addBinaryShift on SimpleToken, this simply returns a copy of this token');\n return new SimpleToken(this, start, byteCount);\n };\n /**\n * @Override\n */\n SimpleToken.prototype.toString = function () {\n var value = this.value & ((1 << this.bitCount) - 1);\n value |= 1 << this.bitCount;\n return '<' + Integer.toBinaryString(value | (1 << this.bitCount)).substring(1) + '>';\n };\n return SimpleToken;\n}(Token));\nexport default SimpleToken;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport SimpleToken from './SimpleToken';\nvar BinaryShiftToken = /** @class */ (function (_super) {\n __extends(BinaryShiftToken, _super);\n function BinaryShiftToken(previous, binaryShiftStart, binaryShiftByteCount) {\n var _this = _super.call(this, previous, 0, 0) || this;\n _this.binaryShiftStart = binaryShiftStart;\n _this.binaryShiftByteCount = binaryShiftByteCount;\n return _this;\n }\n /**\n * @Override\n */\n BinaryShiftToken.prototype.appendTo = function (bitArray, text) {\n for (var i = 0; i < this.binaryShiftByteCount; i++) {\n if (i === 0 || (i === 31 && this.binaryShiftByteCount <= 62)) {\n // We need a header before the first character, and before\n // character 31 when the total byte code is <= 62\n bitArray.appendBits(31, 5); // BINARY_SHIFT\n if (this.binaryShiftByteCount > 62) {\n bitArray.appendBits(this.binaryShiftByteCount - 31, 16);\n }\n else if (i === 0) {\n // 1 <= binaryShiftByteCode <= 62\n bitArray.appendBits(Math.min(this.binaryShiftByteCount, 31), 5);\n }\n else {\n // 32 <= binaryShiftCount <= 62 and i == 31\n bitArray.appendBits(this.binaryShiftByteCount - 31, 5);\n }\n }\n bitArray.appendBits(text[this.binaryShiftStart + i], 8);\n }\n };\n BinaryShiftToken.prototype.addBinaryShift = function (start, byteCount) {\n // int bitCount = (byteCount * 8) + (byteCount <= 31 ? 10 : byteCount <= 62 ? 20 : 21);\n return new BinaryShiftToken(this, start, byteCount);\n };\n /**\n * @Override\n */\n BinaryShiftToken.prototype.toString = function () {\n return '<' + this.binaryShiftStart + '::' + (this.binaryShiftStart + this.binaryShiftByteCount - 1) + '>';\n };\n return BinaryShiftToken;\n}(SimpleToken));\nexport default BinaryShiftToken;\n","import SimpleToken from './SimpleToken';\nimport BinaryShiftToken from './BinaryShiftToken';\nexport function addBinaryShift(token, start, byteCount) {\n // int bitCount = (byteCount * 8) + (byteCount <= 31 ? 10 : byteCount <= 62 ? 20 : 21);\n return new BinaryShiftToken(token, start, byteCount);\n}\nexport function add(token, value, bitCount) {\n return new SimpleToken(token, value, bitCount);\n}\n","import SimpleToken from './SimpleToken';\nexport var /*final*/ MODE_NAMES = [\n 'UPPER',\n 'LOWER',\n 'DIGIT',\n 'MIXED',\n 'PUNCT'\n];\nexport var /*final*/ MODE_UPPER = 0; // 5 bits\nexport var /*final*/ MODE_LOWER = 1; // 5 bits\nexport var /*final*/ MODE_DIGIT = 2; // 4 bits\nexport var /*final*/ MODE_MIXED = 3; // 5 bits\nexport var /*final*/ MODE_PUNCT = 4; // 5 bits\nexport var EMPTY_TOKEN = new SimpleToken(null, 0, 0);\n","// The Latch Table shows, for each pair of Modes, the optimal method for\n// getting from one mode to another. In the worst possible case, this can\n// be up to 14 bits. In the best possible case, we are already there!\n// The high half-word of each entry gives the number of bits.\n// The low half-word of each entry are the actual bits necessary to change\nexport var LATCH_TABLE = [\n Int32Array.from([\n 0,\n (5 << 16) + 28,\n (5 << 16) + 30,\n (5 << 16) + 29,\n (10 << 16) + (29 << 5) + 30 // UPPER -> MIXED -> PUNCT\n ]),\n Int32Array.from([\n (9 << 16) + (30 << 4) + 14,\n 0,\n (5 << 16) + 30,\n (5 << 16) + 29,\n (10 << 16) + (29 << 5) + 30 // LOWER -> MIXED -> PUNCT\n ]),\n Int32Array.from([\n (4 << 16) + 14,\n (9 << 16) + (14 << 5) + 28,\n 0,\n (9 << 16) + (14 << 5) + 29,\n (14 << 16) + (14 << 10) + (29 << 5) + 30\n // DIGIT -> UPPER -> MIXED -> PUNCT\n ]),\n Int32Array.from([\n (5 << 16) + 29,\n (5 << 16) + 28,\n (10 << 16) + (29 << 5) + 30,\n 0,\n (5 << 16) + 30 // MIXED -> PUNCT\n ]),\n Int32Array.from([\n (5 << 16) + 31,\n (10 << 16) + (31 << 5) + 28,\n (10 << 16) + (31 << 5) + 30,\n (10 << 16) + (31 << 5) + 29,\n 0\n ])\n];\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport Arrays from '../../util/Arrays';\nimport * as C from './EncoderConstants';\nexport function static_SHIFT_TABLE(SHIFT_TABLE) {\n var e_1, _a;\n try {\n for (var SHIFT_TABLE_1 = __values(SHIFT_TABLE), SHIFT_TABLE_1_1 = SHIFT_TABLE_1.next(); !SHIFT_TABLE_1_1.done; SHIFT_TABLE_1_1 = SHIFT_TABLE_1.next()) {\n var table = SHIFT_TABLE_1_1.value /*Int32Array*/;\n Arrays.fill(table, -1);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (SHIFT_TABLE_1_1 && !SHIFT_TABLE_1_1.done && (_a = SHIFT_TABLE_1.return)) _a.call(SHIFT_TABLE_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n SHIFT_TABLE[C.MODE_UPPER][C.MODE_PUNCT] = 0;\n SHIFT_TABLE[C.MODE_LOWER][C.MODE_PUNCT] = 0;\n SHIFT_TABLE[C.MODE_LOWER][C.MODE_UPPER] = 28;\n SHIFT_TABLE[C.MODE_MIXED][C.MODE_PUNCT] = 0;\n SHIFT_TABLE[C.MODE_DIGIT][C.MODE_PUNCT] = 0;\n SHIFT_TABLE[C.MODE_DIGIT][C.MODE_UPPER] = 15;\n return SHIFT_TABLE;\n}\nexport var /*final*/ SHIFT_TABLE = static_SHIFT_TABLE(Arrays.createInt32Array(6, 6)); // mode shift codes, per table\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.aztec.encoder;\n// import java.util.Deque;\n// import java.util.LinkedList;\n// import com.google.zxing.common.BitArray;\nimport BitArray from '../../common/BitArray';\nimport * as TokenHelpers from './TokenHelpers';\nimport * as C from './EncoderConstants';\nimport * as LatchTable from './LatchTable';\nimport * as ShiftTable from './ShiftTable';\nimport StringUtils from '../../common/StringUtils';\n/**\n * State represents all information about a sequence necessary to generate the current output.\n * Note that a state is immutable.\n */\nvar State = /** @class */ (function () {\n function State(token, mode, binaryBytes, bitCount) {\n this.token = token;\n this.mode = mode;\n this.binaryShiftByteCount = binaryBytes;\n this.bitCount = bitCount;\n // Make sure we match the token\n // int binaryShiftBitCount = (binaryShiftByteCount * 8) +\n // (binaryShiftByteCount === 0 ? 0 :\n // binaryShiftByteCount <= 31 ? 10 :\n // binaryShiftByteCount <= 62 ? 20 : 21);\n // assert this.bitCount === token.getTotalBitCount() + binaryShiftBitCount;\n }\n State.prototype.getMode = function () {\n return this.mode;\n };\n State.prototype.getToken = function () {\n return this.token;\n };\n State.prototype.getBinaryShiftByteCount = function () {\n return this.binaryShiftByteCount;\n };\n State.prototype.getBitCount = function () {\n return this.bitCount;\n };\n // Create a new state representing this state with a latch to a (not\n // necessary different) mode, and then a code.\n State.prototype.latchAndAppend = function (mode, value) {\n // assert binaryShiftByteCount === 0;\n var bitCount = this.bitCount;\n var token = this.token;\n if (mode !== this.mode) {\n var latch = LatchTable.LATCH_TABLE[this.mode][mode];\n token = TokenHelpers.add(token, latch & 0xffff, latch >> 16);\n bitCount += latch >> 16;\n }\n var latchModeBitCount = mode === C.MODE_DIGIT ? 4 : 5;\n token = TokenHelpers.add(token, value, latchModeBitCount);\n return new State(token, mode, 0, bitCount + latchModeBitCount);\n };\n // Create a new state representing this state, with a temporary shift\n // to a different mode to output a single value.\n State.prototype.shiftAndAppend = function (mode, value) {\n // assert binaryShiftByteCount === 0 && this.mode !== mode;\n var token = this.token;\n var thisModeBitCount = this.mode === C.MODE_DIGIT ? 4 : 5;\n // Shifts exist only to UPPER and PUNCT, both with tokens size 5.\n token = TokenHelpers.add(token, ShiftTable.SHIFT_TABLE[this.mode][mode], thisModeBitCount);\n token = TokenHelpers.add(token, value, 5);\n return new State(token, this.mode, 0, this.bitCount + thisModeBitCount + 5);\n };\n // Create a new state representing this state, but an additional character\n // output in Binary Shift mode.\n State.prototype.addBinaryShiftChar = function (index) {\n var token = this.token;\n var mode = this.mode;\n var bitCount = this.bitCount;\n if (this.mode === C.MODE_PUNCT || this.mode === C.MODE_DIGIT) {\n // assert binaryShiftByteCount === 0;\n var latch = LatchTable.LATCH_TABLE[mode][C.MODE_UPPER];\n token = TokenHelpers.add(token, latch & 0xffff, latch >> 16);\n bitCount += latch >> 16;\n mode = C.MODE_UPPER;\n }\n var deltaBitCount = this.binaryShiftByteCount === 0 || this.binaryShiftByteCount === 31\n ? 18\n : this.binaryShiftByteCount === 62\n ? 9\n : 8;\n var result = new State(token, mode, this.binaryShiftByteCount + 1, bitCount + deltaBitCount);\n if (result.binaryShiftByteCount === 2047 + 31) {\n // The string is as long as it's allowed to be. We should end it.\n result = result.endBinaryShift(index + 1);\n }\n return result;\n };\n // Create the state identical to this one, but we are no longer in\n // Binary Shift mode.\n State.prototype.endBinaryShift = function (index) {\n if (this.binaryShiftByteCount === 0) {\n return this;\n }\n var token = this.token;\n token = TokenHelpers.addBinaryShift(token, index - this.binaryShiftByteCount, this.binaryShiftByteCount);\n // assert token.getTotalBitCount() === this.bitCount;\n return new State(token, this.mode, 0, this.bitCount);\n };\n // Returns true if \"this\" state is better (equal: or) to be in than \"that\"\n // state under all possible circumstances.\n State.prototype.isBetterThanOrEqualTo = function (other) {\n var newModeBitCount = this.bitCount + (LatchTable.LATCH_TABLE[this.mode][other.mode] >> 16);\n if (this.binaryShiftByteCount < other.binaryShiftByteCount) {\n // add additional B/S encoding cost of other, if any\n newModeBitCount +=\n State.calculateBinaryShiftCost(other) -\n State.calculateBinaryShiftCost(this);\n }\n else if (this.binaryShiftByteCount > other.binaryShiftByteCount &&\n other.binaryShiftByteCount > 0) {\n // maximum possible additional cost (it: h)\n newModeBitCount += 10;\n }\n return newModeBitCount <= other.bitCount;\n };\n State.prototype.toBitArray = function (text) {\n var e_1, _a;\n // Reverse the tokens, so that they are in the order that they should\n // be output\n var symbols = [];\n for (var token = this.endBinaryShift(text.length).token; token !== null; token = token.getPrevious()) {\n symbols.unshift(token);\n }\n var bitArray = new BitArray();\n try {\n // Add each token to the result.\n for (var symbols_1 = __values(symbols), symbols_1_1 = symbols_1.next(); !symbols_1_1.done; symbols_1_1 = symbols_1.next()) {\n var symbol = symbols_1_1.value;\n symbol.appendTo(bitArray, text);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (symbols_1_1 && !symbols_1_1.done && (_a = symbols_1.return)) _a.call(symbols_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // assert bitArray.getSize() === this.bitCount;\n return bitArray;\n };\n /**\n * @Override\n */\n State.prototype.toString = function () {\n return StringUtils.format('%s bits=%d bytes=%d', C.MODE_NAMES[this.mode], this.bitCount, this.binaryShiftByteCount);\n };\n State.calculateBinaryShiftCost = function (state) {\n if (state.binaryShiftByteCount > 62) {\n return 21; // B/S with extended length\n }\n if (state.binaryShiftByteCount > 31) {\n return 20; // two B/S\n }\n if (state.binaryShiftByteCount > 0) {\n return 10; // one B/S\n }\n return 0;\n };\n State.INITIAL_STATE = new State(C.EMPTY_TOKEN, C.MODE_UPPER, 0, 0);\n return State;\n}());\nexport default State;\n","import * as C from './EncoderConstants';\nimport Arrays from '../../util/Arrays';\nimport StringUtils from '../../common/StringUtils';\nexport function static_CHAR_MAP(CHAR_MAP) {\n var spaceCharCode = StringUtils.getCharCode(' ');\n var pointCharCode = StringUtils.getCharCode('.');\n var commaCharCode = StringUtils.getCharCode(',');\n CHAR_MAP[C.MODE_UPPER][spaceCharCode] = 1;\n var zUpperCharCode = StringUtils.getCharCode('Z');\n var aUpperCharCode = StringUtils.getCharCode('A');\n for (var c = aUpperCharCode; c <= zUpperCharCode; c++) {\n CHAR_MAP[C.MODE_UPPER][c] = c - aUpperCharCode + 2;\n }\n CHAR_MAP[C.MODE_LOWER][spaceCharCode] = 1;\n var zLowerCharCode = StringUtils.getCharCode('z');\n var aLowerCharCode = StringUtils.getCharCode('a');\n for (var c = aLowerCharCode; c <= zLowerCharCode; c++) {\n CHAR_MAP[C.MODE_LOWER][c] = c - aLowerCharCode + 2;\n }\n CHAR_MAP[C.MODE_DIGIT][spaceCharCode] = 1;\n var nineCharCode = StringUtils.getCharCode('9');\n var zeroCharCode = StringUtils.getCharCode('0');\n for (var c = zeroCharCode; c <= nineCharCode; c++) {\n CHAR_MAP[C.MODE_DIGIT][c] = c - zeroCharCode + 2;\n }\n CHAR_MAP[C.MODE_DIGIT][commaCharCode] = 12;\n CHAR_MAP[C.MODE_DIGIT][pointCharCode] = 13;\n var mixedTable = [\n '\\x00',\n ' ',\n '\\x01',\n '\\x02',\n '\\x03',\n '\\x04',\n '\\x05',\n '\\x06',\n '\\x07',\n '\\b',\n '\\t',\n '\\n',\n '\\x0b',\n '\\f',\n '\\r',\n '\\x1b',\n '\\x1c',\n '\\x1d',\n '\\x1e',\n '\\x1f',\n '@',\n '\\\\',\n '^',\n '_',\n '`',\n '|',\n '~',\n '\\x7f'\n ];\n for (var i = 0; i < mixedTable.length; i++) {\n CHAR_MAP[C.MODE_MIXED][StringUtils.getCharCode(mixedTable[i])] = i;\n }\n var punctTable = [\n '\\x00',\n '\\r',\n '\\x00',\n '\\x00',\n '\\x00',\n '\\x00',\n '!',\n '\\'',\n '#',\n '$',\n '%',\n '&',\n '\\'',\n '(',\n ')',\n '*',\n '+',\n ',',\n '-',\n '.',\n '/',\n ':',\n ';',\n '<',\n '=',\n '>',\n '?',\n '[',\n ']',\n '{',\n '}'\n ];\n for (var i = 0; i < punctTable.length; i++) {\n if (StringUtils.getCharCode(punctTable[i]) > 0) {\n CHAR_MAP[C.MODE_PUNCT][StringUtils.getCharCode(punctTable[i])] = i;\n }\n }\n return CHAR_MAP;\n}\nexport var CHAR_MAP = static_CHAR_MAP(Arrays.createInt32Array(5, 256));\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import java.util.Collection;\n// import java.util.Collections;\nimport Collections from '../../util/Collections';\n// import java.util.Comparator;\n// import java.util.Iterator;\n// import java.util.LinkedList;\nimport State from './State';\nimport * as C from './EncoderConstants';\nimport * as CharMap from './CharMap';\nimport * as ShiftTable from './ShiftTable';\nimport StringUtils from '../../common/StringUtils';\n/**\n * This produces nearly optimal encodings of text into the first-level of\n * encoding used by Aztec code.\n *\n * It uses a dynamic algorithm. For each prefix of the string, it determines\n * a set of encodings that could lead to this prefix. We repeatedly add a\n * character and generate a new set of optimal encodings until we have read\n * through the entire input.\n *\n * @author Frank Yellin\n * @author Rustam Abdullaev\n */\nvar HighLevelEncoder = /** @class */ (function () {\n function HighLevelEncoder(text) {\n this.text = text;\n }\n /**\n * @return text represented by this encoder encoded as a {@link BitArray}\n */\n HighLevelEncoder.prototype.encode = function () {\n var spaceCharCode = StringUtils.getCharCode(' ');\n var lineBreakCharCode = StringUtils.getCharCode('\\n');\n var states = Collections.singletonList(State.INITIAL_STATE);\n for (var index = 0; index < this.text.length; index++) {\n var pairCode = void 0;\n var nextChar = index + 1 < this.text.length ? this.text[index + 1] : 0;\n switch (this.text[index]) {\n case StringUtils.getCharCode('\\r'):\n pairCode = nextChar === lineBreakCharCode ? 2 : 0;\n break;\n case StringUtils.getCharCode('.'):\n pairCode = nextChar === spaceCharCode ? 3 : 0;\n break;\n case StringUtils.getCharCode(','):\n pairCode = nextChar === spaceCharCode ? 4 : 0;\n break;\n case StringUtils.getCharCode(':'):\n pairCode = nextChar === spaceCharCode ? 5 : 0;\n break;\n default:\n pairCode = 0;\n }\n if (pairCode > 0) {\n // We have one of the four special PUNCT pairs. Treat them specially.\n // Get a new set of states for the two new characters.\n states = HighLevelEncoder.updateStateListForPair(states, index, pairCode);\n index++;\n }\n else {\n // Get a new set of states for the new character.\n states = this.updateStateListForChar(states, index);\n }\n }\n // We are left with a set of states. Find the shortest one.\n var minState = Collections.min(states, function (a, b) {\n return a.getBitCount() - b.getBitCount();\n });\n // Convert it to a bit array, and return.\n return minState.toBitArray(this.text);\n };\n // We update a set of states for a new character by updating each state\n // for the new character, merging the results, and then removing the\n // non-optimal states.\n HighLevelEncoder.prototype.updateStateListForChar = function (states, index) {\n var e_1, _a;\n var result = [];\n try {\n for (var states_1 = __values(states), states_1_1 = states_1.next(); !states_1_1.done; states_1_1 = states_1.next()) {\n var state = states_1_1.value /*State*/;\n this.updateStateForChar(state, index, result);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (states_1_1 && !states_1_1.done && (_a = states_1.return)) _a.call(states_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return HighLevelEncoder.simplifyStates(result);\n };\n // Return a set of states that represent the possible ways of updating this\n // state for the next character. The resulting set of states are added to\n // the \"result\" list.\n HighLevelEncoder.prototype.updateStateForChar = function (state, index, result) {\n var ch = (this.text[index] & 0xff);\n var charInCurrentTable = CharMap.CHAR_MAP[state.getMode()][ch] > 0;\n var stateNoBinary = null;\n for (var mode /*int*/ = 0; mode <= C.MODE_PUNCT; mode++) {\n var charInMode = CharMap.CHAR_MAP[mode][ch];\n if (charInMode > 0) {\n if (stateNoBinary == null) {\n // Only create stateNoBinary the first time it's required.\n stateNoBinary = state.endBinaryShift(index);\n }\n // Try generating the character by latching to its mode\n if (!charInCurrentTable ||\n mode === state.getMode() ||\n mode === C.MODE_DIGIT) {\n // If the character is in the current table, we don't want to latch to\n // any other mode except possibly digit (which uses only 4 bits). Any\n // other latch would be equally successful *after* this character, and\n // so wouldn't save any bits.\n var latchState = stateNoBinary.latchAndAppend(mode, charInMode);\n result.push(latchState);\n }\n // Try generating the character by switching to its mode.\n if (!charInCurrentTable &&\n ShiftTable.SHIFT_TABLE[state.getMode()][mode] >= 0) {\n // It never makes sense to temporarily shift to another mode if the\n // character exists in the current mode. That can never save bits.\n var shiftState = stateNoBinary.shiftAndAppend(mode, charInMode);\n result.push(shiftState);\n }\n }\n }\n if (state.getBinaryShiftByteCount() > 0 ||\n CharMap.CHAR_MAP[state.getMode()][ch] === 0) {\n // It's never worthwhile to go into binary shift mode if you're not already\n // in binary shift mode, and the character exists in your current mode.\n // That can never save bits over just outputting the char in the current mode.\n var binaryState = state.addBinaryShiftChar(index);\n result.push(binaryState);\n }\n };\n HighLevelEncoder.updateStateListForPair = function (states, index, pairCode) {\n var e_2, _a;\n var result = [];\n try {\n for (var states_2 = __values(states), states_2_1 = states_2.next(); !states_2_1.done; states_2_1 = states_2.next()) {\n var state = states_2_1.value /*State*/;\n this.updateStateForPair(state, index, pairCode, result);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (states_2_1 && !states_2_1.done && (_a = states_2.return)) _a.call(states_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return this.simplifyStates(result);\n };\n HighLevelEncoder.updateStateForPair = function (state, index, pairCode, result) {\n var stateNoBinary = state.endBinaryShift(index);\n // Possibility 1. Latch to C.MODE_PUNCT, and then append this code\n result.push(stateNoBinary.latchAndAppend(C.MODE_PUNCT, pairCode));\n if (state.getMode() !== C.MODE_PUNCT) {\n // Possibility 2. Shift to C.MODE_PUNCT, and then append this code.\n // Every state except C.MODE_PUNCT (handled above) can shift\n result.push(stateNoBinary.shiftAndAppend(C.MODE_PUNCT, pairCode));\n }\n if (pairCode === 3 || pairCode === 4) {\n // both characters are in DIGITS. Sometimes better to just add two digits\n var digitState = stateNoBinary\n .latchAndAppend(C.MODE_DIGIT, 16 - pairCode) // period or comma in DIGIT\n .latchAndAppend(C.MODE_DIGIT, 1); // space in DIGIT\n result.push(digitState);\n }\n if (state.getBinaryShiftByteCount() > 0) {\n // It only makes sense to do the characters as binary if we're already\n // in binary mode.\n var binaryState = state\n .addBinaryShiftChar(index)\n .addBinaryShiftChar(index + 1);\n result.push(binaryState);\n }\n };\n HighLevelEncoder.simplifyStates = function (states) {\n var e_3, _a, e_4, _b;\n var result = [];\n try {\n for (var states_3 = __values(states), states_3_1 = states_3.next(); !states_3_1.done; states_3_1 = states_3.next()) {\n var newState = states_3_1.value;\n var add = true;\n var _loop_1 = function (oldState) {\n if (oldState.isBetterThanOrEqualTo(newState)) {\n add = false;\n return \"break\";\n }\n if (newState.isBetterThanOrEqualTo(oldState)) {\n // iterator.remove();\n result = result.filter(function (x) { return x !== oldState; }); // remove old state\n }\n };\n try {\n for (var result_1 = (e_4 = void 0, __values(result)), result_1_1 = result_1.next(); !result_1_1.done; result_1_1 = result_1.next()) {\n var oldState = result_1_1.value;\n var state_1 = _loop_1(oldState);\n if (state_1 === \"break\")\n break;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (result_1_1 && !result_1_1.done && (_b = result_1.return)) _b.call(result_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n if (add) {\n result.push(newState);\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (states_3_1 && !states_3_1.done && (_a = states_3.return)) _a.call(states_3);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n };\n return HighLevelEncoder;\n}());\nexport default HighLevelEncoder;\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BitArray from '../../common/BitArray';\nimport IllegalArgumentException from '../../IllegalArgumentException';\nimport StringUtils from '../../common/StringUtils';\nimport BitMatrix from '../../common/BitMatrix';\nimport AztecCode from './AztecCode';\nimport ReedSolomonEncoder from '../../common/reedsolomon/ReedSolomonEncoder';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport HighLevelEncoder from './HighLevelEncoder';\nimport Integer from '../../util/Integer';\n/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.aztec.encoder;\n// import com.google.zxing.common.BitArray;\n// import com.google.zxing.common.BitMatrix;\n// import com.google.zxing.common.reedsolomon.GenericGF;\n// import com.google.zxing.common.reedsolomon.ReedSolomonEncoder;\n/**\n * Generates Aztec 2D barcodes.\n *\n * @author Rustam Abdullaev\n */\nvar Encoder = /** @class */ (function () {\n function Encoder() {\n }\n /**\n * Encodes the given binary content as an Aztec symbol\n *\n * @param data input data string\n * @return Aztec symbol matrix with metadata\n */\n Encoder.encodeBytes = function (data) {\n return Encoder.encode(data, Encoder.DEFAULT_EC_PERCENT, Encoder.DEFAULT_AZTEC_LAYERS);\n };\n /**\n * Encodes the given binary content as an Aztec symbol\n *\n * @param data input data string\n * @param minECCPercent minimal percentage of error check words (According to ISO/IEC 24778:2008,\n * a minimum of 23% + 3 words is recommended)\n * @param userSpecifiedLayers if non-zero, a user-specified value for the number of layers\n * @return Aztec symbol matrix with metadata\n */\n Encoder.encode = function (data, minECCPercent, userSpecifiedLayers) {\n // High-level encode\n var bits = new HighLevelEncoder(data).encode();\n // stuff bits and choose symbol size\n var eccBits = Integer.truncDivision((bits.getSize() * minECCPercent), 100) + 11;\n var totalSizeBits = bits.getSize() + eccBits;\n var compact;\n var layers;\n var totalBitsInLayer;\n var wordSize;\n var stuffedBits;\n if (userSpecifiedLayers !== Encoder.DEFAULT_AZTEC_LAYERS) {\n compact = userSpecifiedLayers < 0;\n layers = Math.abs(userSpecifiedLayers);\n if (layers > (compact ? Encoder.MAX_NB_BITS_COMPACT : Encoder.MAX_NB_BITS)) {\n throw new IllegalArgumentException(StringUtils.format('Illegal value %s for layers', userSpecifiedLayers));\n }\n totalBitsInLayer = Encoder.totalBitsInLayer(layers, compact);\n wordSize = Encoder.WORD_SIZE[layers];\n var usableBitsInLayers = totalBitsInLayer - (totalBitsInLayer % wordSize);\n stuffedBits = Encoder.stuffBits(bits, wordSize);\n if (stuffedBits.getSize() + eccBits > usableBitsInLayers) {\n throw new IllegalArgumentException('Data to large for user specified layer');\n }\n if (compact && stuffedBits.getSize() > wordSize * 64) {\n // Compact format only allows 64 data words, though C4 can hold more words than that\n throw new IllegalArgumentException('Data to large for user specified layer');\n }\n }\n else {\n wordSize = 0;\n stuffedBits = null;\n // We look at the possible table sizes in the order Compact1, Compact2, Compact3,\n // Compact4, Normal4,... Normal(i) for i < 4 isn't typically used since Compact(i+1)\n // is the same size, but has more data.\n for (var i /*int*/ = 0;; i++) {\n if (i > Encoder.MAX_NB_BITS) {\n throw new IllegalArgumentException('Data too large for an Aztec code');\n }\n compact = i <= 3;\n layers = compact ? i + 1 : i;\n totalBitsInLayer = Encoder.totalBitsInLayer(layers, compact);\n if (totalSizeBits > totalBitsInLayer) {\n continue;\n }\n // [Re]stuff the bits if this is the first opportunity, or if the\n // wordSize has changed\n if (stuffedBits == null || wordSize !== Encoder.WORD_SIZE[layers]) {\n wordSize = Encoder.WORD_SIZE[layers];\n stuffedBits = Encoder.stuffBits(bits, wordSize);\n }\n var usableBitsInLayers = totalBitsInLayer - (totalBitsInLayer % wordSize);\n if (compact && stuffedBits.getSize() > wordSize * 64) {\n // Compact format only allows 64 data words, though C4 can hold more words than that\n continue;\n }\n if (stuffedBits.getSize() + eccBits <= usableBitsInLayers) {\n break;\n }\n }\n }\n var messageBits = Encoder.generateCheckWords(stuffedBits, totalBitsInLayer, wordSize);\n // generate mode message\n var messageSizeInWords = stuffedBits.getSize() / wordSize;\n var modeMessage = Encoder.generateModeMessage(compact, layers, messageSizeInWords);\n // allocate symbol\n var baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines\n var alignmentMap = new Int32Array(baseMatrixSize);\n var matrixSize;\n if (compact) {\n // no alignment marks in compact mode, alignmentMap is a no-op\n matrixSize = baseMatrixSize;\n for (var i /*int*/ = 0; i < alignmentMap.length; i++) {\n alignmentMap[i] = i;\n }\n }\n else {\n matrixSize = baseMatrixSize + 1 + 2 * Integer.truncDivision((Integer.truncDivision(baseMatrixSize, 2) - 1), 15);\n var origCenter = Integer.truncDivision(baseMatrixSize, 2);\n var center = Integer.truncDivision(matrixSize, 2);\n for (var i /*int*/ = 0; i < origCenter; i++) {\n var newOffset = i + Integer.truncDivision(i, 15);\n alignmentMap[origCenter - i - 1] = center - newOffset - 1;\n alignmentMap[origCenter + i] = center + newOffset + 1;\n }\n }\n var matrix = new BitMatrix(matrixSize);\n // draw data bits\n for (var i /*int*/ = 0, rowOffset = 0; i < layers; i++) {\n var rowSize = (layers - i) * 4 + (compact ? 9 : 12);\n for (var j /*int*/ = 0; j < rowSize; j++) {\n var columnOffset = j * 2;\n for (var k /*int*/ = 0; k < 2; k++) {\n if (messageBits.get(rowOffset + columnOffset + k)) {\n matrix.set(alignmentMap[i * 2 + k], alignmentMap[i * 2 + j]);\n }\n if (messageBits.get(rowOffset + rowSize * 2 + columnOffset + k)) {\n matrix.set(alignmentMap[i * 2 + j], alignmentMap[baseMatrixSize - 1 - i * 2 - k]);\n }\n if (messageBits.get(rowOffset + rowSize * 4 + columnOffset + k)) {\n matrix.set(alignmentMap[baseMatrixSize - 1 - i * 2 - k], alignmentMap[baseMatrixSize - 1 - i * 2 - j]);\n }\n if (messageBits.get(rowOffset + rowSize * 6 + columnOffset + k)) {\n matrix.set(alignmentMap[baseMatrixSize - 1 - i * 2 - j], alignmentMap[i * 2 + k]);\n }\n }\n }\n rowOffset += rowSize * 8;\n }\n // draw mode message\n Encoder.drawModeMessage(matrix, compact, matrixSize, modeMessage);\n // draw alignment marks\n if (compact) {\n Encoder.drawBullsEye(matrix, Integer.truncDivision(matrixSize, 2), 5);\n }\n else {\n Encoder.drawBullsEye(matrix, Integer.truncDivision(matrixSize, 2), 7);\n for (var i /*int*/ = 0, j = 0; i < Integer.truncDivision(baseMatrixSize, 2) - 1; i += 15, j += 16) {\n for (var k /*int*/ = Integer.truncDivision(matrixSize, 2) & 1; k < matrixSize; k += 2) {\n matrix.set(Integer.truncDivision(matrixSize, 2) - j, k);\n matrix.set(Integer.truncDivision(matrixSize, 2) + j, k);\n matrix.set(k, Integer.truncDivision(matrixSize, 2) - j);\n matrix.set(k, Integer.truncDivision(matrixSize, 2) + j);\n }\n }\n }\n var aztec = new AztecCode();\n aztec.setCompact(compact);\n aztec.setSize(matrixSize);\n aztec.setLayers(layers);\n aztec.setCodeWords(messageSizeInWords);\n aztec.setMatrix(matrix);\n return aztec;\n };\n Encoder.drawBullsEye = function (matrix, center, size) {\n for (var i /*int*/ = 0; i < size; i += 2) {\n for (var j /*int*/ = center - i; j <= center + i; j++) {\n matrix.set(j, center - i);\n matrix.set(j, center + i);\n matrix.set(center - i, j);\n matrix.set(center + i, j);\n }\n }\n matrix.set(center - size, center - size);\n matrix.set(center - size + 1, center - size);\n matrix.set(center - size, center - size + 1);\n matrix.set(center + size, center - size);\n matrix.set(center + size, center - size + 1);\n matrix.set(center + size, center + size - 1);\n };\n Encoder.generateModeMessage = function (compact, layers, messageSizeInWords) {\n var modeMessage = new BitArray();\n if (compact) {\n modeMessage.appendBits(layers - 1, 2);\n modeMessage.appendBits(messageSizeInWords - 1, 6);\n modeMessage = Encoder.generateCheckWords(modeMessage, 28, 4);\n }\n else {\n modeMessage.appendBits(layers - 1, 5);\n modeMessage.appendBits(messageSizeInWords - 1, 11);\n modeMessage = Encoder.generateCheckWords(modeMessage, 40, 4);\n }\n return modeMessage;\n };\n Encoder.drawModeMessage = function (matrix, compact, matrixSize, modeMessage) {\n var center = Integer.truncDivision(matrixSize, 2);\n if (compact) {\n for (var i /*int*/ = 0; i < 7; i++) {\n var offset = center - 3 + i;\n if (modeMessage.get(i)) {\n matrix.set(offset, center - 5);\n }\n if (modeMessage.get(i + 7)) {\n matrix.set(center + 5, offset);\n }\n if (modeMessage.get(20 - i)) {\n matrix.set(offset, center + 5);\n }\n if (modeMessage.get(27 - i)) {\n matrix.set(center - 5, offset);\n }\n }\n }\n else {\n for (var i /*int*/ = 0; i < 10; i++) {\n var offset = center - 5 + i + Integer.truncDivision(i, 5);\n if (modeMessage.get(i)) {\n matrix.set(offset, center - 7);\n }\n if (modeMessage.get(i + 10)) {\n matrix.set(center + 7, offset);\n }\n if (modeMessage.get(29 - i)) {\n matrix.set(offset, center + 7);\n }\n if (modeMessage.get(39 - i)) {\n matrix.set(center - 7, offset);\n }\n }\n }\n };\n Encoder.generateCheckWords = function (bitArray, totalBits, wordSize) {\n var e_1, _a;\n // bitArray is guaranteed to be a multiple of the wordSize, so no padding needed\n var messageSizeInWords = bitArray.getSize() / wordSize;\n var rs = new ReedSolomonEncoder(Encoder.getGF(wordSize));\n var totalWords = Integer.truncDivision(totalBits, wordSize);\n var messageWords = Encoder.bitsToWords(bitArray, wordSize, totalWords);\n rs.encode(messageWords, totalWords - messageSizeInWords);\n var startPad = totalBits % wordSize;\n var messageBits = new BitArray();\n messageBits.appendBits(0, startPad);\n try {\n for (var _b = __values(Array.from(messageWords)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var messageWord = _c.value /*: int*/;\n messageBits.appendBits(messageWord, wordSize);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return messageBits;\n };\n Encoder.bitsToWords = function (stuffedBits, wordSize, totalWords) {\n var message = new Int32Array(totalWords);\n var i;\n var n;\n for (i = 0, n = stuffedBits.getSize() / wordSize; i < n; i++) {\n var value = 0;\n for (var j /*int*/ = 0; j < wordSize; j++) {\n value |= stuffedBits.get(i * wordSize + j) ? (1 << wordSize - j - 1) : 0;\n }\n message[i] = value;\n }\n return message;\n };\n Encoder.getGF = function (wordSize) {\n switch (wordSize) {\n case 4:\n return GenericGF.AZTEC_PARAM;\n case 6:\n return GenericGF.AZTEC_DATA_6;\n case 8:\n return GenericGF.AZTEC_DATA_8;\n case 10:\n return GenericGF.AZTEC_DATA_10;\n case 12:\n return GenericGF.AZTEC_DATA_12;\n default:\n throw new IllegalArgumentException('Unsupported word size ' + wordSize);\n }\n };\n Encoder.stuffBits = function (bits, wordSize) {\n var out = new BitArray();\n var n = bits.getSize();\n var mask = (1 << wordSize) - 2;\n for (var i /*int*/ = 0; i < n; i += wordSize) {\n var word = 0;\n for (var j /*int*/ = 0; j < wordSize; j++) {\n if (i + j >= n || bits.get(i + j)) {\n word |= 1 << (wordSize - 1 - j);\n }\n }\n if ((word & mask) === mask) {\n out.appendBits(word & mask, wordSize);\n i--;\n }\n else if ((word & mask) === 0) {\n out.appendBits(word | 1, wordSize);\n i--;\n }\n else {\n out.appendBits(word, wordSize);\n }\n }\n return out;\n };\n Encoder.totalBitsInLayer = function (layers, compact) {\n return ((compact ? 88 : 112) + 16 * layers) * layers;\n };\n Encoder.DEFAULT_EC_PERCENT = 33; // default minimal percentage of error check words\n Encoder.DEFAULT_AZTEC_LAYERS = 0;\n Encoder.MAX_NB_BITS = 32;\n Encoder.MAX_NB_BITS_COMPACT = 4;\n Encoder.WORD_SIZE = Int32Array.from([\n 4, 6, 6, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 12, 12\n ]);\n return Encoder;\n}());\nexport default Encoder;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.aztec;\n// import com.google.zxing.BarcodeFormat;\nimport BarcodeFormat from '../BarcodeFormat';\n// import com.google.zxing.EncodeHintType;\nimport EncodeHintType from '../EncodeHintType';\n// import com.google.zxing.aztec.encoder.Encoder;\nimport Encoder from './encoder/Encoder';\n// import com.google.zxing.common.BitMatrix;\nimport BitMatrix from '../common/BitMatrix';\n// import java.nio.charset.Charset;\nimport Charset from '../util/Charset';\n// import java.nio.charset.StandardCharsets;\nimport StandardCharsets from '../util/StandardCharsets';\n// import java.util.Map;\nimport Integer from '../util/Integer';\nimport IllegalStateException from '../IllegalStateException';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport StringUtils from '../common/StringUtils';\n/**\n * Renders an Aztec code as a {@link BitMatrix}.\n */\nvar AztecWriter = /** @class */ (function () {\n function AztecWriter() {\n }\n // @Override\n AztecWriter.prototype.encode = function (contents, format, width, height) {\n return this.encodeWithHints(contents, format, width, height, null);\n };\n // @Override\n AztecWriter.prototype.encodeWithHints = function (contents, format, width, height, hints) {\n var charset = StandardCharsets.ISO_8859_1;\n var eccPercent = Encoder.DEFAULT_EC_PERCENT;\n var layers = Encoder.DEFAULT_AZTEC_LAYERS;\n if (hints != null) {\n if (hints.has(EncodeHintType.CHARACTER_SET)) {\n charset = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString());\n }\n if (hints.has(EncodeHintType.ERROR_CORRECTION)) {\n eccPercent = Integer.parseInt(hints.get(EncodeHintType.ERROR_CORRECTION).toString());\n }\n if (hints.has(EncodeHintType.AZTEC_LAYERS)) {\n layers = Integer.parseInt(hints.get(EncodeHintType.AZTEC_LAYERS).toString());\n }\n }\n return AztecWriter.encodeLayers(contents, format, width, height, charset, eccPercent, layers);\n };\n AztecWriter.encodeLayers = function (contents, format, width, height, charset, eccPercent, layers) {\n if (format !== BarcodeFormat.AZTEC) {\n throw new IllegalArgumentException('Can only encode AZTEC, but got ' + format);\n }\n var aztec = Encoder.encode(StringUtils.getBytes(contents, charset), eccPercent, layers);\n return AztecWriter.renderResult(aztec, width, height);\n };\n AztecWriter.renderResult = function (code, width, height) {\n var input = code.getMatrix();\n if (input == null) {\n throw new IllegalStateException();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var outputWidth = Math.max(width, inputWidth);\n var outputHeight = Math.max(height, inputHeight);\n var multiple = Math.min(outputWidth / inputWidth, outputHeight / inputHeight);\n var leftPadding = (outputWidth - (inputWidth * multiple)) / 2;\n var topPadding = (outputHeight - (inputHeight * multiple)) / 2;\n var output = new BitMatrix(outputWidth, outputHeight);\n for (var inputY /*int*/ = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX /*int*/ = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY)) {\n output.setRegion(outputX, outputY, multiple, multiple);\n }\n }\n }\n return output;\n };\n return AztecWriter;\n}());\nexport default AztecWriter;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { BrowserMultiFormatReader } from \"@zxing/library\";\nimport Webcam from \"react-webcam\";\nexport const BarcodeScannerComponent = ({ onUpdate, onError, width = \"100%\", height = \"100%\", facingMode = \"environment\", torch, delay = 500, videoConstraints, stopStream, }) => {\n const webcamRef = React.useRef(null);\n const capture = React.useCallback(() => {\n const codeReader = new BrowserMultiFormatReader();\n // @ts-ignore\n const imageSrc = webcamRef?.current?.getScreenshot();\n if (imageSrc) {\n codeReader\n .decodeFromImage(undefined, imageSrc)\n .then((result) => {\n onUpdate(null, result);\n })\n .catch((err) => {\n onUpdate(err);\n });\n }\n }, [onUpdate]);\n React.useEffect(() => {\n // Turn on the flashlight if prop is defined and device has the capability\n if (typeof torch === \"boolean\" &&\n // @ts-ignore\n navigator?.mediaDevices?.getSupportedConstraints().torch) {\n // @ts-ignore\n const stream = webcamRef?.current?.video.srcObject;\n const track = stream?.getVideoTracks()[0]; // get the active track of the stream\n if (track &&\n track.getCapabilities().torch &&\n !track.getConstraints().torch) {\n track\n .applyConstraints({\n advanced: [{ torch }],\n })\n .catch((err) => onUpdate(err));\n }\n }\n }, [torch, onUpdate]);\n React.useEffect(() => {\n if (stopStream) {\n // @ts-ignore\n let stream = webcamRef?.current?.video.srcObject;\n if (stream) {\n stream.getTracks().forEach((track) => {\n stream.removeTrack(track);\n track.stop();\n });\n stream = null;\n }\n }\n }, [stopStream]);\n React.useEffect(() => {\n const interval = setInterval(capture, delay);\n return () => {\n clearInterval(interval);\n };\n }, []);\n return (_jsx(Webcam, { width: width, height: height, ref: webcamRef, screenshotFormat: \"image/jpeg\", videoConstraints: videoConstraints || {\n facingMode,\n }, audio: false, onUserMediaError: onError }));\n};\nexport default BarcodeScannerComponent;\n","import BarcodeScannerComponent from './BarcodeScannerComponent';\nexport default BarcodeScannerComponent;\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
    \r\n * {value}\r\n * \r\n *
    \r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
    {counter}
    \r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a